diff options
134 files changed, 28232 insertions, 18636 deletions
diff --git a/docs/README.Win32-Viruses b/docs/README.Win32-Viruses new file mode 100644 index 0000000000..4646da83cf --- /dev/null +++ b/docs/README.Win32-Viruses @@ -0,0 +1,57 @@ +While this article is specific to the Nimda worm, +the information can be applied to preventing the spread +of many Win32 viruses. Thanks to the Samba Users Group of Japan +(SUGJ) for this article. +=============================================================================== +Steps against Nimba Worm for Samba + +Author: HASEGAWA Yosuke +Translator: TAKAHASHI Motonobu <monyo@samba.gr.jp> + +The information in this article applies to + Samba 2.0.x + Samba 2.2.x + Windows 95/98/Me/NT/2000 + +SYMPTOMS + This article describes measures against Nimba Worm for Samba + server. + +DESCRIPTION + Nimba Worm is infected through shared disks on a network, as well as through + Microsoft IIS, Internet Explorer and mailer of Outlook series. + + At this time, the worm copies itself by the name *.nws and *.eml on + the shared disk, moreover, by the name of Riched20.dll in the folder + where *.doc file is included. + + To prevent infection through the shared disk offered by Samba, set + up as follows: + +----- +[global] + ... + # This can break Administration installations of Office2k. + # in that case, don't veto the riched20.dll + veto files = /*.eml/*.nws/riched20.dll/ +----- + + By setting the "veto files" parameter, matched files on the Samba + server are completely hidden from the clients and making it impossible + to access them at all. + + In addition to it, the following setting is also pointed out by the + samba-jp:09448 thread: when the + "readme.txt.{3050F4D8-98B5-11CF-BB82-00AA00BDCE0B}" file exists on + a Samba server, it is visible only as "readme.txt" and dangerous + code may be executed if this file is double-clicked. + + Setting the following, +----- + veto files = /*.{*}/ +----- + any files having CLSID in its file extension will be inaccessible from any + clients. + +This technical article is created based on the discussion of +samba-jp:09448 and samba-jp:10900 threads. diff --git a/docs/Samba-Developers-Guide.html b/docs/Samba-Developers-Guide.html new file mode 100644 index 0000000000..7c008667af --- /dev/null +++ b/docs/Samba-Developers-Guide.html @@ -0,0 +1,8355 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<HTML +><HEAD +><TITLE +>SAMBA Developers Guide</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ +"></HEAD +><BODY +CLASS="BOOK" +BGCOLOR="#FFFFFF" +TEXT="#000000" +LINK="#0000FF" +VLINK="#840084" +ALINK="#0000FF" +><DIV +CLASS="BOOK" +><A +NAME="SAMBA-DEVELOPER-DOCUMENTATION"><DIV +CLASS="TITLEPAGE" +><H1 +CLASS="TITLE" +><A +NAME="SAMBA-DEVELOPER-DOCUMENTATION">SAMBA Developers Guide</H1 +><H3 +CLASS="AUTHOR" +><A +NAME="AEN4">SAMBA Team</H3 +><HR></DIV +><HR><H1 +><A +NAME="AEN8">Abstract</H1 +><P +><I +CLASS="EMPHASIS" +>Last Update</I +> : Mon Sep 30 15:23:53 CDT 2002</P +><P +>This book is a collection of documents that might be useful for +people developing samba or those interested in doing so. +It's nothing more than a collection of documents written by samba developers about +the internals of various parts of samba and the SMB protocol. It's still incomplete. +The most recent version of this document +can be found at <A +HREF="http://devel.samba.org/" +TARGET="_top" +>http://devel.samba.org/</A +>. +Please send updates to <A +HREF="mailto:jelmer@samba.org" +TARGET="_top" +>jelmer@samba.org</A +>.</P +><P +>This documentation is distributed under the GNU General Public License (GPL) +version 2. A copy of the license is included with the Samba source +distribution. A copy can be found on-line at <A +HREF="http://www.fsf.org/licenses/gpl.txt" +TARGET="_top" +>http://www.fsf.org/licenses/gpl.txt</A +></P +><DIV +CLASS="TOC" +><DL +><DT +><B +>Table of Contents</B +></DT +><DT +><A +HREF="#NETBIOS" +>Definition of NetBIOS Protocol and Name Resolution Modes</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN24" +>NETBIOS</A +></DT +><DT +><A +HREF="#AEN35" +>BROADCAST NetBIOS</A +></DT +><DT +><A +HREF="#AEN39" +>NBNS NetBIOS</A +></DT +></DL +></DD +><DT +><A +HREF="#ARCHITECTURE" +>Samba Architecture</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN54" +>Introduction</A +></DT +><DT +><A +HREF="#AEN65" +>Multithreading and Samba</A +></DT +><DT +><A +HREF="#AEN70" +>Threading smbd</A +></DT +><DT +><A +HREF="#AEN86" +>Threading nmbd</A +></DT +><DT +><A +HREF="#AEN92" +>nbmd Design</A +></DT +></DL +></DD +><DT +><A +HREF="#DEBUG" +>The samba DEBUG system</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN103" +>New Output Syntax</A +></DT +><DT +><A +HREF="#AEN128" +>The DEBUG() Macro</A +></DT +><DT +><A +HREF="#AEN151" +>The DEBUGADD() Macro</A +></DT +><DT +><A +HREF="#AEN159" +>The DEBUGLVL() Macro</A +></DT +><DT +><A +HREF="#AEN179" +>New Functions</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN181" +>dbgtext()</A +></DT +><DT +><A +HREF="#AEN184" +>dbghdr()</A +></DT +><DT +><A +HREF="#AEN188" +>format_debug_text()</A +></DT +></DL +></DD +></DL +></DD +><DT +><A +HREF="#CODINGSUGGESTIONS" +>Coding Suggestions</A +></DT +><DT +><A +HREF="#INTERNALS" +>Samba Internals</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN284" +>Character Handling</A +></DT +><DT +><A +HREF="#AEN288" +>The new functions</A +></DT +><DT +><A +HREF="#AEN317" +>Macros in byteorder.h</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN320" +>CVAL(buf,pos)</A +></DT +><DT +><A +HREF="#AEN323" +>PVAL(buf,pos)</A +></DT +><DT +><A +HREF="#AEN326" +>SCVAL(buf,pos,val)</A +></DT +><DT +><A +HREF="#AEN329" +>SVAL(buf,pos)</A +></DT +><DT +><A +HREF="#AEN332" +>IVAL(buf,pos)</A +></DT +><DT +><A +HREF="#AEN335" +>SVALS(buf,pos)</A +></DT +><DT +><A +HREF="#AEN338" +>IVALS(buf,pos)</A +></DT +><DT +><A +HREF="#AEN341" +>SSVAL(buf,pos,val)</A +></DT +><DT +><A +HREF="#AEN344" +>SIVAL(buf,pos,val)</A +></DT +><DT +><A +HREF="#AEN347" +>SSVALS(buf,pos,val)</A +></DT +><DT +><A +HREF="#AEN350" +>SIVALS(buf,pos,val)</A +></DT +><DT +><A +HREF="#AEN353" +>RSVAL(buf,pos)</A +></DT +><DT +><A +HREF="#AEN356" +>RIVAL(buf,pos)</A +></DT +><DT +><A +HREF="#AEN359" +>RSSVAL(buf,pos,val)</A +></DT +><DT +><A +HREF="#AEN362" +>RSIVAL(buf,pos,val)</A +></DT +></DL +></DD +><DT +><A +HREF="#AEN365" +>LAN Manager Samba API</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN371" +>Parameters</A +></DT +><DT +><A +HREF="#AEN406" +>Return value</A +></DT +></DL +></DD +><DT +><A +HREF="#AEN420" +>Code character table</A +></DT +></DL +></DD +><DT +><A +HREF="#PARSING" +>The smb.conf file</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN451" +>Lexical Analysis</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN472" +>Handling of Whitespace</A +></DT +><DT +><A +HREF="#AEN484" +>Handling of Line Continuation</A +></DT +><DT +><A +HREF="#AEN495" +>Line Continuation Quirks</A +></DT +></DL +></DD +><DT +><A +HREF="#AEN515" +>Syntax</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN530" +>About params.c</A +></DT +></DL +></DD +></DL +></DD +><DT +><A +HREF="#UNIX-SMB" +>NetBIOS in a Unix World</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN540" +>Introduction</A +></DT +><DT +><A +HREF="#AEN544" +>Usernames</A +></DT +><DT +><A +HREF="#AEN552" +>File Ownership</A +></DT +><DT +><A +HREF="#AEN557" +>Passwords</A +></DT +><DT +><A +HREF="#AEN563" +>Locking</A +></DT +><DT +><A +HREF="#AEN570" +>Deny Modes</A +></DT +><DT +><A +HREF="#AEN574" +>Trapdoor UIDs</A +></DT +><DT +><A +HREF="#AEN578" +>Port numbers</A +></DT +><DT +><A +HREF="#AEN583" +>Protocol Complexity</A +></DT +></DL +></DD +><DT +><A +HREF="#TRACING" +>Tracing samba system calls</A +></DT +><DT +><A +HREF="#NTDOMAIN" +>NT Domain RPC's</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN651" +>Introduction</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN687" +>Sources</A +></DT +><DT +><A +HREF="#AEN694" +>Credits</A +></DT +></DL +></DD +><DT +><A +HREF="#AEN701" +>Notes and Structures</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN703" +>Notes</A +></DT +><DT +><A +HREF="#AEN716" +>Enumerations</A +></DT +><DT +><A +HREF="#AEN774" +>Structures</A +></DT +></DL +></DD +><DT +><A +HREF="#AEN1570" +>MSRPC over Transact Named Pipe</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN1573" +>MSRPC Pipes</A +></DT +><DT +><A +HREF="#AEN1587" +>Header</A +></DT +><DT +><A +HREF="#AEN1841" +>Tail</A +></DT +><DT +><A +HREF="#AEN1853" +>RPC Bind / Bind Ack</A +></DT +><DT +><A +HREF="#AEN1897" +>NTLSA Transact Named Pipe</A +></DT +><DT +><A +HREF="#AEN1938" +>LSA Open Policy</A +></DT +><DT +><A +HREF="#AEN1972" +>LSA Query Info Policy</A +></DT +><DT +><A +HREF="#AEN2000" +>LSA Enumerate Trusted Domains</A +></DT +><DT +><A +HREF="#AEN2024" +>LSA Open Secret</A +></DT +><DT +><A +HREF="#AEN2053" +>LSA Close</A +></DT +><DT +><A +HREF="#AEN2070" +>LSA Lookup SIDS</A +></DT +><DT +><A +HREF="#AEN2129" +>LSA Lookup Names</A +></DT +></DL +></DD +><DT +><A +HREF="#AEN2192" +>NETLOGON rpc Transact Named Pipe</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN2231" +>LSA Request Challenge</A +></DT +><DT +><A +HREF="#AEN2266" +>LSA Authenticate 2</A +></DT +><DT +><A +HREF="#AEN2305" +>LSA Server Password Set</A +></DT +><DT +><A +HREF="#AEN2334" +>LSA SAM Logon</A +></DT +><DT +><A +HREF="#AEN2358" +>LSA SAM Logoff</A +></DT +></DL +></DD +><DT +><A +HREF="#AEN2381" +>\\MAILSLOT\NET\NTLOGON</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN2385" +>Query for PDC</A +></DT +><DT +><A +HREF="#AEN2459" +>SAM Logon</A +></DT +></DL +></DD +><DT +><A +HREF="#AEN2549" +>SRVSVC Transact Named Pipe</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN2561" +>Net Share Enum</A +></DT +><DT +><A +HREF="#AEN2622" +>Net Server Get Info</A +></DT +></DL +></DD +><DT +><A +HREF="#AEN2653" +>Cryptographic side of NT Domain Authentication</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN2655" +>Definitions</A +></DT +><DT +><A +HREF="#AEN2698" +>Protocol</A +></DT +><DT +><A +HREF="#AEN2708" +>Comments</A +></DT +></DL +></DD +><DT +><A +HREF="#AEN2715" +>SIDs and RIDs</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN2723" +>Well-known SIDs</A +></DT +><DT +><A +HREF="#AEN2811" +>Well-known RIDS</A +></DT +></DL +></DD +></DL +></DD +><DT +><A +HREF="#PRINTING" +>Samba Printing Internals</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN2895" +>Abstract</A +></DT +><DT +><A +HREF="#AEN2898" +>Printing Interface to Various Back ends</A +></DT +><DT +><A +HREF="#AEN2924" +>Print Queue TDB's</A +></DT +><DT +><A +HREF="#AEN2958" +>ChangeID & Client Caching of Printer Information</A +></DT +><DT +><A +HREF="#AEN2961" +>Windows NT/2K Printer Change Notify</A +></DT +></DL +></DD +><DT +><A +HREF="#WINS" +>Samba WINS Internals</A +></DT +><DD +><DL +><DT +><A +HREF="#AEN3032" +>WINS Failover</A +></DT +></DL +></DD +></DL +></DIV +><DIV +CLASS="CHAPTER" +><HR><H1 +><A +NAME="NETBIOS">Definition of NetBIOS Protocol and Name Resolution Modes</H1 +><DIV +CLASS="SECT1" +><H2 +CLASS="SECT1" +><A +NAME="AEN24">NETBIOS</H2 +><P +>NetBIOS runs over the following tranports: TCP/IP; NetBEUI and IPX/SPX. +Samba only uses NetBIOS over TCP/IP. For details on the TCP/IP NetBIOS +Session Service NetBIOS Datagram Service, and NetBIOS Names, see +rfc1001.txt and rfc1002.txt.</P +><P +> +NetBEUI is a raw NetBIOS frame protocol implementation that allows NetBIOS +datagrams to be sent out over the 'wire' embedded within LLC frames. +NetBEUI is not required when using NetBIOS over TCP/IP protocols and it +is preferable NOT to install NetBEUI if it can be avoided.</P +><P +> +IPX/SPX is also not required when using NetBIOS over TCP/IP, and it is +preferable NOT to install the IPX/SPX transport unless you are using Novell +servers. At the very least, it is recommended that you do not install +'NetBIOS over IPX/SPX'.</P +><P +>[When installing Windows 95, you will find that NetBEUI and IPX/SPX are +installed as the default protocols. This is because they are the simplest +to manage: no Windows 95 user-configuration is required].</P +><P +> +NetBIOS applications (such as samba) offer their services (for example, +SMB file and print sharing) on a NetBIOS name. They must claim this name +on the network before doing so. The NetBIOS session service will then +accept connections on the application's behalf (on the NetBIOS name +claimed by the application). A NetBIOS session between the application +and the client can then commence.</P +><P +> +NetBIOS names consist of 15 characters plus a 'type' character. This is +similar, in concept, to an IP address and a TCP port number, respectively. +A NetBIOS-aware application on a host will offer different services under +different NetBIOS name types, just as a host will offer different TCP/IP +services on different port numbers.</P +><P +> +NetBIOS names must be claimed on a network, and must be defended. The use +of NetBIOS names is most suitable on a single subnet; a Local Area Network +or a Wide Area Network.</P +><P +> +NetBIOS names are either UNIQUE or GROUP. Only one application can claim a +UNIQUE NetBIOS name on a network.</P +><P +>There are two kinds of NetBIOS Name resolution: Broadcast and Point-to-Point.</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN35">BROADCAST NetBIOS</H2 +><P +> +Clients can claim names, and therefore offer services on successfully claimed +names, on their broadcast-isolated subnet. One way to get NetBIOS services +(such as browsing: see ftp.microsoft.com/drg/developr/CIFS/browdiff.txt; and +SMB file/print sharing: see cifs4.txt) working on a LAN or WAN is to make +your routers forward all broadcast packets from TCP/IP ports 137, 138 and 139.</P +><P +> +This, however, is not recommended. If you have a large LAN or WAN, you will +find that some of your hosts spend 95 percent of their time dealing with +broadcast traffic. [If you have IPX/SPX on your LAN or WAN, you will find +that this is already happening: a packet analyzer will show, roughly +every twelve minutes, great swathes of broadcast traffic!].</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN39">NBNS NetBIOS</H2 +><P +>rfc1001.txt describes, amongst other things, the implementation and use +of, a 'NetBIOS Name Service'. NT/AS offers 'Windows Internet Name Service' +which is fully rfc1001/2 compliant, but has had to take specific action +with certain NetBIOS names in order to make it useful. (for example, it +deals with the registration of <1c> <1d> <1e> names all in different ways. +I recommend the reading of the Microsoft WINS Server Help files for full +details).</P +><P +> +The use of a WINS server cuts down on broadcast network traffic for +NetBIOS name resolution. It has the effect of pulling all the broadcast +isolated subnets together into a single NetBIOS scope, across your LAN +or WAN, while avoiding the use of TCP/IP broadcast packets.</P +><P +>When you have a WINS server on your LAN, WINS clients will be able to +contact the WINS server to resolve NetBIOS names. Note that only those +WINS clients that have registered with the same WINS server will be +visible. The WINS server _can_ have static NetBIOS entries added to its +database (usually for security reasons you might want to consider putting +your domain controllers or other important servers as static entries, +but you should not rely on this as your sole means of security), but for +the most part, NetBIOS names are registered dynamically.</P +><P +>This provides some confusion for lots of people, and is worth mentioning +here: a Browse Server is NOT a WINS Server, even if these services are +implemented in the same application. A Browse Server _needs_ a WINS server +because a Browse Server is a WINS client, which is _not_ the same thing].</P +><P +>Clients can claim names, and therefore offer services on successfully claimed +names, on their broadcast-isolated subnet. One way to get NetBIOS services +(such as browsing: see ftp.microsoft.com/drg/developr/CIFS/browdiff.txt; and +SMB file/print sharing: see cifs6.txt) working on a LAN or WAN is to make +your routers forward all broadcast packets from TCP/IP ports 137, 138 and 139. +You will find, however, if you do this on a large LAN or a WAN, that your +network is completely swamped by NetBIOS and browsing packets, which is why +WINS was developed to minimise the necessity of broadcast traffic.</P +><P +> +WINS Clients therefore claim names from the WINS server. If the WINS +server allows them to register a name, the client's NetBIOS session service +can then offer services on this name. Other WINS clients will then +contact the WINS server to resolve a NetBIOS name.</P +></DIV +></DIV +><DIV +CLASS="CHAPTER" +><HR><H1 +><A +NAME="ARCHITECTURE">Samba Architecture</H1 +><DIV +CLASS="SECT1" +><H2 +CLASS="SECT1" +><A +NAME="AEN54">Introduction</H2 +><P +>This document gives a general overview of how Samba works +internally. The Samba Team has tried to come up with a model which is +the best possible compromise between elegance, portability, security +and the constraints imposed by the very messy SMB and CIFS +protocol. </P +><P +>It also tries to answer some of the frequently asked questions such as:</P +><P +></P +><OL +TYPE="1" +><LI +><P +> Is Samba secure when running on Unix? The xyz platform? + What about the root priveliges issue?</P +></LI +><LI +><P +>Pros and cons of multithreading in various parts of Samba</P +></LI +><LI +><P +>Why not have a separate process for name resolution, WINS, and browsing?</P +></LI +></OL +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN65">Multithreading and Samba</H2 +><P +>People sometimes tout threads as a uniformly good thing. They are very +nice in their place but are quite inappropriate for smbd. nmbd is +another matter, and multi-threading it would be very nice. </P +><P +>The short version is that smbd is not multithreaded, and alternative +servers that take this approach under Unix (such as Syntax, at the +time of writing) suffer tremendous performance penalties and are less +robust. nmbd is not threaded either, but this is because it is not +possible to do it while keeping code consistent and portable across 35 +or more platforms. (This drawback also applies to threading smbd.)</P +><P +>The longer versions is that there are very good reasons for not making +smbd multi-threaded. Multi-threading would actually make Samba much +slower, less scalable, less portable and much less robust. The fact +that we use a separate process for each connection is one of Samba's +biggest advantages.</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN70">Threading smbd</H2 +><P +>A few problems that would arise from a threaded smbd are:</P +><P +></P +><OL +TYPE="1" +><LI +><P +> It's not only to create threads instead of processes, but you + must care about all variables if they have to be thread specific + (currently they would be global).</P +></LI +><LI +><P +> if one thread dies (eg. a seg fault) then all threads die. We can + immediately throw robustness out the window.</P +></LI +><LI +><P +> many of the system calls we make are blocking. Non-blocking + equivalents of many calls are either not available or are awkward (and + slow) to use. So while we block in one thread all clients are + waiting. Imagine if one share is a slow NFS filesystem and the others + are fast, we will end up slowing all clients to the speed of NFS.</P +></LI +><LI +><P +> you can't run as a different uid in different threads. This means + we would have to switch uid/gid on _every_ SMB packet. It would be + horrendously slow.</P +></LI +><LI +><P +> the per process file descriptor limit would mean that we could only + support a limited number of clients.</P +></LI +><LI +><P +> we couldn't use the system locking calls as the locking context of + fcntl() is a process, not a thread.</P +></LI +></OL +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN86">Threading nmbd</H2 +><P +>This would be ideal, but gets sunk by portability requirements.</P +><P +>Andrew tried to write a test threads library for nmbd that used only +ansi-C constructs (using setjmp and longjmp). Unfortunately some OSes +defeat this by restricting longjmp to calling addresses that are +shallower than the current address on the stack (apparently AIX does +this). This makes a truly portable threads library impossible. So to +support all our current platforms we would have to code nmbd both with +and without threads, and as the real aim of threads is to make the +code clearer we would not have gained anything. (it is a myth that +threads make things faster. threading is like recursion, it can make +things clear but the same thing can always be done faster by some +other method)</P +><P +>Chris tried to spec out a general design that would abstract threading +vs separate processes (vs other methods?) and make them accessible +through some general API. This doesn't work because of the data +sharing requirements of the protocol (packets in the future depending +on packets now, etc.) At least, the code would work but would be very +clumsy, and besides the fork() type model would never work on Unix. (Is there an OS that it would work on, for nmbd?)</P +><P +>A fork() is cheap, but not nearly cheap enough to do on every UDP +packet that arrives. Having a pool of processes is possible but is +nasty to program cleanly due to the enormous amount of shared data (in +complex structures) between the processes. We can't rely on each +platform having a shared memory system.</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN92">nbmd Design</H2 +><P +>Originally Andrew used recursion to simulate a multi-threaded +environment, which use the stack enormously and made for really +confusing debugging sessions. Luke Leighton rewrote it to use a +queuing system that keeps state information on each packet. The +first version used a single structure which was used by all the +pending states. As the initialisation of this structure was +done by adding arguments, as the functionality developed, it got +pretty messy. So, it was replaced with a higher-order function +and a pointer to a user-defined memory block. This suddenly +made things much simpler: large numbers of functions could be +made static, and modularised. This is the same principle as used +in NT's kernel, and achieves the same effect as threads, but in +a single process.</P +><P +>Then Jeremy rewrote nmbd. The packet data in nmbd isn't what's on the +wire. It's a nice format that is very amenable to processing but still +keeps the idea of a distinct packet. See "struct packet_struct" in +nameserv.h. It has all the detail but none of the on-the-wire +mess. This makes it ideal for using in disk or memory-based databases +for browsing and WINS support. </P +></DIV +></DIV +><DIV +CLASS="CHAPTER" +><HR><H1 +><A +NAME="DEBUG">The samba DEBUG system</H1 +><DIV +CLASS="SECT1" +><H2 +CLASS="SECT1" +><A +NAME="AEN103">New Output Syntax</H2 +><P +> The syntax of a debugging log file is represented as:</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> >debugfile< :== { >debugmsg< } + + >debugmsg< :== >debughdr< '\n' >debugtext< + + >debughdr< :== '[' TIME ',' LEVEL ']' FILE ':' [FUNCTION] '(' LINE ')' + + >debugtext< :== { >debugline< } + + >debugline< :== TEXT '\n'</PRE +></TD +></TR +></TABLE +></P +><P +>TEXT is a string of characters excluding the newline character.</P +><P +>LEVEL is the DEBUG level of the message (an integer in the range + 0..10).</P +><P +>TIME is a timestamp.</P +><P +>FILE is the name of the file from which the debug message was +generated.</P +><P +>FUNCTION is the function from which the debug message was generated.</P +><P +>LINE is the line number of the debug statement that generated the +message.</P +><P +>Basically, what that all means is:</P +><P +></P +><OL +TYPE="1" +><LI +><P +>A debugging log file is made up of debug messages.</P +></LI +><LI +><P +>Each debug message is made up of a header and text. The header is +separated from the text by a newline.</P +></LI +><LI +><P +>The header begins with the timestamp and debug level of the +message enclosed in brackets. The filename, function, and line +number at which the message was generated follow. The filename is +terminated by a colon, and the function name is terminated by the +parenthesis which contain the line number. Depending upon the +compiler, the function name may be missing (it is generated by the +__FUNCTION__ macro, which is not universally implemented, dangit).</P +></LI +><LI +><P +>The message text is made up of zero or more lines, each terminated +by a newline.</P +></LI +></OL +><P +>Here's some example output:</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> [1998/08/03 12:55:25, 1] nmbd.c:(659) + Netbios nameserver version 1.9.19-prealpha started. + Copyright Andrew Tridgell 1994-1997 + [1998/08/03 12:55:25, 3] loadparm.c:(763) + Initializing global parameters</PRE +></TD +></TR +></TABLE +></P +><P +>Note that in the above example the function names are not listed on +the header line. That's because the example above was generated on an +SGI Indy, and the SGI compiler doesn't support the __FUNCTION__ macro.</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN128">The DEBUG() Macro</H2 +><P +>Use of the DEBUG() macro is unchanged. DEBUG() takes two parameters. +The first is the message level, the second is the body of a function +call to the Debug1() function.</P +><P +>That's confusing.</P +><P +>Here's an example which may help a bit. If you would write</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>printf( "This is a %s message.\n", "debug" );</PRE +></TD +></TR +></TABLE +></P +><P +>to send the output to stdout, then you would write</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>DEBUG( 0, ( "This is a %s message.\n", "debug" ) );</PRE +></TD +></TR +></TABLE +></P +><P +>to send the output to the debug file. All of the normal printf() +formatting escapes work.</P +><P +>Note that in the above example the DEBUG message level is set to 0. +Messages at level 0 always print. Basically, if the message level is +less than or equal to the global value DEBUGLEVEL, then the DEBUG +statement is processed.</P +><P +>The output of the above example would be something like:</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> [1998/07/30 16:00:51, 0] file.c:function(128) + This is a debug message.</PRE +></TD +></TR +></TABLE +></P +><P +>Each call to DEBUG() creates a new header *unless* the output produced +by the previous call to DEBUG() did not end with a '\n'. Output to the +debug file is passed through a formatting buffer which is flushed +every time a newline is encountered. If the buffer is not empty when +DEBUG() is called, the new input is simply appended.</P +><P +>...but that's really just a Kludge. It was put in place because +DEBUG() has been used to write partial lines. Here's a simple (dumb) +example of the kind of thing I'm talking about:</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> DEBUG( 0, ("The test returned " ) ); + if( test() ) + DEBUG(0, ("True") ); + else + DEBUG(0, ("False") ); + DEBUG(0, (".\n") );</PRE +></TD +></TR +></TABLE +></P +><P +>Without the format buffer, the output (assuming test() returned true) +would look like this:</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> [1998/07/30 16:00:51, 0] file.c:function(256) + The test returned + [1998/07/30 16:00:51, 0] file.c:function(258) + True + [1998/07/30 16:00:51, 0] file.c:function(261) + .</PRE +></TD +></TR +></TABLE +></P +><P +>Which isn't much use. The format buffer kludge fixes this problem.</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN151">The DEBUGADD() Macro</H2 +><P +>In addition to the kludgey solution to the broken line problem +described above, there is a clean solution. The DEBUGADD() macro never +generates a header. It will append new text to the current debug +message even if the format buffer is empty. The syntax of the +DEBUGADD() macro is the same as that of the DEBUG() macro.</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> DEBUG( 0, ("This is the first line.\n" ) ); + DEBUGADD( 0, ("This is the second line.\nThis is the third line.\n" ) );</PRE +></TD +></TR +></TABLE +></P +><P +>Produces</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> [1998/07/30 16:00:51, 0] file.c:function(512) + This is the first line. + This is the second line. + This is the third line.</PRE +></TD +></TR +></TABLE +></P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN159">The DEBUGLVL() Macro</H2 +><P +>One of the problems with the DEBUG() macro was that DEBUG() lines +tended to get a bit long. Consider this example from +nmbd_sendannounce.c:</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> DEBUG(3,("send_local_master_announcement: type %x for name %s on subnet %s for workgroup %s\n", + type, global_myname, subrec->subnet_name, work->work_group));</PRE +></TD +></TR +></TABLE +></P +><P +>One solution to this is to break it down using DEBUG() and DEBUGADD(), +as follows:</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> DEBUG( 3, ( "send_local_master_announcement: " ) ); + DEBUGADD( 3, ( "type %x for name %s ", type, global_myname ) ); + DEBUGADD( 3, ( "on subnet %s ", subrec->subnet_name ) ); + DEBUGADD( 3, ( "for workgroup %s\n", work->work_group ) );</PRE +></TD +></TR +></TABLE +></P +><P +>A similar, but arguably nicer approach is to use the DEBUGLVL() macro. +This macro returns True if the message level is less than or equal to +the global DEBUGLEVEL value, so:</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> if( DEBUGLVL( 3 ) ) + { + dbgtext( "send_local_master_announcement: " ); + dbgtext( "type %x for name %s ", type, global_myname ); + dbgtext( "on subnet %s ", subrec->subnet_name ); + dbgtext( "for workgroup %s\n", work->work_group ); + }</PRE +></TD +></TR +></TABLE +></P +><P +>(The dbgtext() function is explained below.)</P +><P +>There are a few advantages to this scheme:</P +><P +></P +><OL +TYPE="1" +><LI +><P +>The test is performed only once.</P +></LI +><LI +><P +>You can allocate variables off of the stack that will only be used +within the DEBUGLVL() block.</P +></LI +><LI +><P +>Processing that is only relevant to debug output can be contained +within the DEBUGLVL() block.</P +></LI +></OL +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN179">New Functions</H2 +><DIV +CLASS="SECT2" +><H3 +CLASS="SECT2" +><A +NAME="AEN181">dbgtext()</H3 +><P +>This function prints debug message text to the debug file (and +possibly to syslog) via the format buffer. The function uses a +variable argument list just like printf() or Debug1(). The +input is printed into a buffer using the vslprintf() function, +and then passed to format_debug_text(). + +If you use DEBUGLVL() you will probably print the body of the +message using dbgtext(). </P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN184">dbghdr()</H3 +><P +>This is the function that writes a debug message header. +Headers are not processed via the format buffer. Also note that +if the format buffer is not empty, a call to dbghdr() will not +produce any output. See the comments in dbghdr() for more info.</P +><P +>It is not likely that this function will be called directly. It +is used by DEBUG() and DEBUGADD().</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN188">format_debug_text()</H3 +><P +>This is a static function in debug.c. It stores the output text +for the body of the message in a buffer until it encounters a +newline. When the newline character is found, the buffer is +written to the debug file via the Debug1() function, and the +buffer is reset. This allows us to add the indentation at the +beginning of each line of the message body, and also ensures +that the output is written a line at a time (which cleans up +syslog output).</P +></DIV +></DIV +></DIV +><DIV +CLASS="CHAPTER" +><HR><H1 +><A +NAME="CODINGSUGGESTIONS">Coding Suggestions</H1 +><P +>So you want to add code to Samba ...</P +><P +>One of the daunting tasks facing a programmer attempting to write code for +Samba is understanding the various coding conventions used by those most +active in the project. These conventions were mostly unwritten and helped +improve either the portability, stability or consistency of the code. This +document will attempt to document a few of the more important coding +practices used at this time on the Samba project. The coding practices are +expected to change slightly over time, and even to grow as more is learned +about obscure portability considerations. Two existing documents +<TT +CLASS="FILENAME" +>samba/source/internals.doc</TT +> and +<TT +CLASS="FILENAME" +>samba/source/architecture.doc</TT +> provide +additional information.</P +><P +>The loosely related question of coding style is very personal and this +document does not attempt to address that subject, except to say that I +have observed that eight character tabs seem to be preferred in Samba +source. If you are interested in the topic of coding style, two oft-quoted +documents are:</P +><P +><A +HREF="http://lxr.linux.no/source/Documentation/CodingStyle" +TARGET="_top" +>http://lxr.linux.no/source/Documentation/CodingStyle</A +></P +><P +><A +HREF="http://www.fsf.org/prep/standards_toc.html" +TARGET="_top" +>http://www.fsf.org/prep/standards_toc.html</A +></P +><P +>But note that coding style in Samba varies due to the many different +programmers who have contributed.</P +><P +>Following are some considerations you should use when adding new code to +Samba. First and foremost remember that:</P +><P +>Portability is a primary consideration in adding function, as is network +compatability with de facto, existing, real world CIFS/SMB implementations. +There are lots of platforms that Samba builds on so use caution when adding +a call to a library function that is not invoked in existing Samba code. +Also note that there are many quite different SMB/CIFS clients that Samba +tries to support, not all of which follow the SNIA CIFS Technical Reference +(or the earlier Microsoft reference documents or the X/Open book on the SMB +Standard) perfectly.</P +><P +>Here are some other suggestions:</P +><P +></P +><OL +TYPE="1" +><LI +><P +> use d_printf instead of printf for display text + reason: enable auto-substitution of translated language text </P +></LI +><LI +><P +> use SAFE_FREE instead of free + reason: reduce traps due to null pointers</P +></LI +><LI +><P +> don't use bzero use memset, or ZERO_STRUCT and ZERO_STRUCTP macros + reason: not POSIX</P +></LI +><LI +><P +> don't use strcpy and strlen (use safe_* equivalents) + reason: to avoid traps due to buffer overruns</P +></LI +><LI +><P +> don't use getopt_long, use popt functions instead + reason: portability</P +></LI +><LI +><P +> explicitly add const qualifiers on parm passing in functions where parm + is input only (somewhat controversial but const can be #defined away)</P +></LI +><LI +><P +> when passing a va_list as an arg, or assigning one to another + please use the VA_COPY() macro + reason: on some platforms, va_list is a struct that must be + initialized in each function...can SEGV if you don't.</P +></LI +><LI +><P +> discourage use of threads + reason: portability (also see architecture.doc)</P +></LI +><LI +><P +> don't explicitly include new header files in C files - new h files + should be included by adding them once to includes.h + reason: consistency</P +></LI +><LI +><P +> don't explicitly extern functions (they are autogenerated by + "make proto" into proto.h) + reason: consistency</P +></LI +><LI +><P +> use endian safe macros when unpacking SMBs (see byteorder.h and + internals.doc) + reason: not everyone uses Intel</P +></LI +><LI +><P +> Note Unicode implications of charset handling (see internals.doc). See + pull_* and push_* and convert_string functions. + reason: Internationalization</P +></LI +><LI +><P +> Don't assume English only + reason: See above</P +></LI +><LI +><P +> Try to avoid using in/out parameters (functions that return data which + overwrites input parameters) + reason: Can cause stability problems</P +></LI +><LI +><P +> Ensure copyright notices are correct, don't append Tridge's name to code + that he didn't write. If you did not write the code, make sure that it + can coexist with the rest of the Samba GPLed code.</P +></LI +><LI +><P +> Consider usage of DATA_BLOBs for length specified byte-data. + reason: stability</P +></LI +><LI +><P +> Take advantage of tdbs for database like function + reason: consistency</P +></LI +><LI +><P +> Don't access the SAM_ACCOUNT structure directly, they should be accessed + via pdb_get...() and pdb_set...() functions. + reason: stability, consistency</P +></LI +><LI +><P +> Don't check a password directly against the passdb, always use the + check_password() interface. + reason: long term pluggability</P +></LI +><LI +><P +> Try to use asprintf rather than pstrings and fstrings where possible</P +></LI +><LI +><P +> Use normal C comments / * instead of C++ comments // like + this. Although the C++ comment format is part of the C99 + standard, some older vendor C compilers do not accept it.</P +></LI +><LI +><P +> Try to write documentation for API functions and structures + explaining the point of the code, the way it should be used, and + any special conditions or results. Mark these with a double-star + comment start / ** so that they can be picked up by Doxygen, as in + this file.</P +></LI +><LI +><P +> Keep the scope narrow. This means making functions/variables + static whenever possible. We don't want our namespace + polluted. Each module should have a minimal number of externally + visible functions or variables.</P +></LI +><LI +><P +> Use function pointers to keep knowledge about particular pieces of + code isolated in one place. We don't want a particular piece of + functionality to be spread out across lots of places - that makes + for fragile, hand to maintain code. Instead, design an interface + and use tables containing function pointers to implement specific + functionality. This is particularly important for command + interpreters. </P +></LI +><LI +><P +> Think carefully about what it will be like for someone else to add + to and maintain your code. If it would be hard for someone else to + maintain then do it another way. </P +></LI +></OL +><P +>The suggestions above are simply that, suggestions, but the information may +help in reducing the routine rework done on new code. The preceeding list +is expected to change routinely as new support routines and macros are +added.</P +></DIV +><DIV +CLASS="CHAPTER" +><HR><H1 +><A +NAME="INTERNALS">Samba Internals</H1 +><DIV +CLASS="SECT1" +><H2 +CLASS="SECT1" +><A +NAME="AEN284">Character Handling</H2 +><P +>This section describes character set handling in Samba, as implemented in +Samba 3.0 and above</P +><P +>In the past Samba had very ad-hoc character set handling. Scattered +throughout the code were numerous calls which converted particular +strings to/from DOS codepages. The problem is that there was no way of +telling if a particular char* is in dos codepage or unix +codepage. This led to a nightmare of code that tried to cope with +particular cases without handlingt the general case.</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN288">The new functions</H2 +><P +>The new system works like this:</P +><P +></P +><OL +TYPE="1" +><LI +><P +> all char* strings inside Samba are "unix" strings. These are + multi-byte strings that are in the charset defined by the "unix + charset" option in smb.conf. </P +></LI +><LI +><P +> there is no single fixed character set for unix strings, but any + character set that is used does need the following properties: + </P +><P +></P +><OL +TYPE="a" +><LI +><P +> must not contain NULLs except for termination + </P +></LI +><LI +><P +> must be 7-bit compatible with C strings, so that a constant + string or character in C will be byte-for-byte identical to the + equivalent string in the chosen character set. + </P +></LI +><LI +><P +> when you uppercase or lowercase a string it does not become + longer than the original string + </P +></LI +><LI +><P +> must be able to correctly hold all characters that your client + will throw at it + </P +></LI +></OL +><P +> For example, UTF-8 is fine, and most multi-byte asian character sets + are fine, but UCS2 could not be used for unix strings as they + contain nulls. + </P +></LI +><LI +><P +> when you need to put a string into a buffer that will be sent on the + wire, or you need a string in a character set format that is + compatible with the clients character set then you need to use a + pull_ or push_ function. The pull_ functions pull a string from a + wire buffer into a (multi-byte) unix string. The push_ functions + push a string out to a wire buffer. </P +></LI +><LI +><P +> the two main pull_ and push_ functions you need to understand are + pull_string and push_string. These functions take a base pointer + that should point at the start of the SMB packet that the string is + in. The functions will check the flags field in this packet to + automatically determine if the packet is marked as a unicode packet, + and they will choose whether to use unicode for this string based on + that flag. You may also force this decision using the STR_UNICODE or + STR_ASCII flags. For use in smbd/ and libsmb/ there are wrapper + functions clistr_ and srvstr_ that call the pull_/push_ functions + with the appropriate first argument. + </P +><P +> You may also call the pull_ascii/pull_ucs2 or push_ascii/push_ucs2 + functions if you know that a particular string is ascii or + unicode. There are also a number of other convenience functions in + charcnv.c that call the pull_/push_ functions with particularly + common arguments, such as pull_ascii_pstring() + </P +></LI +><LI +><P +> The biggest thing to remember is that internal (unix) strings in Samba + may now contain multi-byte characters. This means you cannot assume + that characters are always 1 byte long. Often this means that you will + have to convert strings to ucs2 and back again in order to do some + (seemingly) simple task. For examples of how to do this see functions + like strchr_m(). I know this is very slow, and we will eventually + speed it up but right now we want this stuff correct not fast.</P +></LI +><LI +><P +> all lp_ functions now return unix strings. The magic "DOS" flag on + parameters is gone.</P +></LI +><LI +><P +> all vfs functions take unix strings. Don't convert when passing to them</P +></LI +></OL +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN317">Macros in byteorder.h</H2 +><P +>This section describes the macros defined in byteorder.h. These macros +are used extensively in the Samba code.</P +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN320">CVAL(buf,pos)</H3 +><P +>returns the byte at offset pos within buffer buf as an unsigned character.</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN323">PVAL(buf,pos)</H3 +><P +>returns the value of CVAL(buf,pos) cast to type unsigned integer.</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN326">SCVAL(buf,pos,val)</H3 +><P +>sets the byte at offset pos within buffer buf to value val.</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN329">SVAL(buf,pos)</H3 +><P +> returns the value of the unsigned short (16 bit) little-endian integer at + offset pos within buffer buf. An integer of this type is sometimes + refered to as "USHORT".</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN332">IVAL(buf,pos)</H3 +><P +>returns the value of the unsigned 32 bit little-endian integer at offset +pos within buffer buf.</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN335">SVALS(buf,pos)</H3 +><P +>returns the value of the signed short (16 bit) little-endian integer at +offset pos within buffer buf.</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN338">IVALS(buf,pos)</H3 +><P +>returns the value of the signed 32 bit little-endian integer at offset pos +within buffer buf.</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN341">SSVAL(buf,pos,val)</H3 +><P +>sets the unsigned short (16 bit) little-endian integer at offset pos within +buffer buf to value val.</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN344">SIVAL(buf,pos,val)</H3 +><P +>sets the unsigned 32 bit little-endian integer at offset pos within buffer +buf to the value val.</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN347">SSVALS(buf,pos,val)</H3 +><P +>sets the short (16 bit) signed little-endian integer at offset pos within +buffer buf to the value val.</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN350">SIVALS(buf,pos,val)</H3 +><P +>sets the signed 32 bit little-endian integer at offset pos withing buffer +buf to the value val.</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN353">RSVAL(buf,pos)</H3 +><P +>returns the value of the unsigned short (16 bit) big-endian integer at +offset pos within buffer buf.</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN356">RIVAL(buf,pos)</H3 +><P +>returns the value of the unsigned 32 bit big-endian integer at offset +pos within buffer buf.</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN359">RSSVAL(buf,pos,val)</H3 +><P +>sets the value of the unsigned short (16 bit) big-endian integer at +offset pos within buffer buf to value val. +refered to as "USHORT".</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN362">RSIVAL(buf,pos,val)</H3 +><P +>sets the value of the unsigned 32 bit big-endian integer at offset +pos within buffer buf to value val.</P +></DIV +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN365">LAN Manager Samba API</H2 +><P +>This section describes the functions need to make a LAN Manager RPC call. +This information had been obtained by examining the Samba code and the LAN +Manager 2.0 API documentation. It should not be considered entirely +reliable.</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>call_api(int prcnt, int drcnt, int mprcnt, int mdrcnt, + char *param, char *data, char **rparam, char **rdata);</PRE +></TD +></TR +></TABLE +></P +><P +>This function is defined in client.c. It uses an SMB transaction to call a +remote api.</P +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN371">Parameters</H3 +><P +>The parameters are as follows:</P +><P +></P +><OL +TYPE="1" +><LI +><P +> prcnt: the number of bytes of parameters begin sent.</P +></LI +><LI +><P +> drcnt: the number of bytes of data begin sent.</P +></LI +><LI +><P +> mprcnt: the maximum number of bytes of parameters which should be returned</P +></LI +><LI +><P +> mdrcnt: the maximum number of bytes of data which should be returned</P +></LI +><LI +><P +> param: a pointer to the parameters to be sent.</P +></LI +><LI +><P +> data: a pointer to the data to be sent.</P +></LI +><LI +><P +> rparam: a pointer to a pointer which will be set to point to the returned + paramters. The caller of call_api() must deallocate this memory.</P +></LI +><LI +><P +> rdata: a pointer to a pointer which will be set to point to the returned + data. The caller of call_api() must deallocate this memory.</P +></LI +></OL +><P +>These are the parameters which you ought to send, in the order of their +appearance in the parameter block:</P +><P +></P +><OL +TYPE="1" +><LI +><P +>An unsigned 16 bit integer API number. You should set this value with +SSVAL(). I do not know where these numbers are described.</P +></LI +><LI +><P +>An ASCIIZ string describing the parameters to the API function as defined +in the LAN Manager documentation. The first parameter, which is the server +name, is ommited. This string is based uppon the API function as described +in the manual, not the data which is actually passed.</P +></LI +><LI +><P +>An ASCIIZ string describing the data structure which ought to be returned.</P +></LI +><LI +><P +>Any parameters which appear in the function call, as defined in the LAN +Manager API documentation, after the "Server" and up to and including the +"uLevel" parameters.</P +></LI +><LI +><P +>An unsigned 16 bit integer which gives the size in bytes of the buffer we +will use to receive the returned array of data structures. Presumably this +should be the same as mdrcnt. This value should be set with SSVAL().</P +></LI +><LI +><P +>An ASCIIZ string describing substructures which should be returned. If no +substructures apply, this string is of zero length.</P +></LI +></OL +><P +>The code in client.c always calls call_api() with no data. It is unclear +when a non-zero length data buffer would be sent.</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN406">Return value</H3 +><P +>The returned parameters (pointed to by rparam), in their order of appearance +are:</P +><P +></P +><OL +TYPE="1" +><LI +><P +>An unsigned 16 bit integer which contains the API function's return code. +This value should be read with SVAL().</P +></LI +><LI +><P +>An adjustment which tells the amount by which pointers in the returned +data should be adjusted. This value should be read with SVAL(). Basically, +the address of the start of the returned data buffer should have the returned +pointer value added to it and then have this value subtracted from it in +order to obtain the currect offset into the returned data buffer.</P +></LI +><LI +><P +>A count of the number of elements in the array of structures returned. +It is also possible that this may sometimes be the number of bytes returned.</P +></LI +></OL +><P +>When call_api() returns, rparam points to the returned parameters. The +first if these is the result code. It will be zero if the API call +suceeded. This value by be read with "SVAL(rparam,0)".</P +><P +>The second parameter may be read as "SVAL(rparam,2)". It is a 16 bit offset +which indicates what the base address of the returned data buffer was when +it was built on the server. It should be used to correct pointer before +use.</P +><P +>The returned data buffer contains the array of returned data structures. +Note that all pointers must be adjusted before use. The function +fix_char_ptr() in client.c can be used for this purpose.</P +><P +>The third parameter (which may be read as "SVAL(rparam,4)") has something to +do with indicating the amount of data returned or possibly the amount of +data which can be returned if enough buffer space is allowed.</P +></DIV +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN420">Code character table</H2 +><P +>Certain data structures are described by means of ASCIIz strings containing +code characters. These are the code characters:</P +><P +></P +><OL +TYPE="1" +><LI +><P +>W a type byte little-endian unsigned integer</P +></LI +><LI +><P +>N a count of substructures which follow</P +></LI +><LI +><P +>D a four byte little-endian unsigned integer</P +></LI +><LI +><P +>B a byte (with optional count expressed as trailing ASCII digits)</P +></LI +><LI +><P +>z a four byte offset to a NULL terminated string</P +></LI +><LI +><P +>l a four byte offset to non-string user data</P +></LI +><LI +><P +>b an offset to data (with count expressed as trailing ASCII digits)</P +></LI +><LI +><P +>r pointer to returned data buffer???</P +></LI +><LI +><P +>L length in bytes of returned data buffer???</P +></LI +><LI +><P +>h number of bytes of information available???</P +></LI +></OL +></DIV +></DIV +><DIV +CLASS="CHAPTER" +><HR><H1 +><A +NAME="PARSING">The smb.conf file</H1 +><DIV +CLASS="SECT1" +><H2 +CLASS="SECT1" +><A +NAME="AEN451">Lexical Analysis</H2 +><P +>Basically, the file is processed on a line by line basis. There are +four types of lines that are recognized by the lexical analyzer +(params.c):</P +><P +></P +><OL +TYPE="1" +><LI +><P +>Blank lines - Lines containing only whitespace.</P +></LI +><LI +><P +>Comment lines - Lines beginning with either a semi-colon or a +pound sign (';' or '#').</P +></LI +><LI +><P +>Section header lines - Lines beginning with an open square bracket ('[').</P +></LI +><LI +><P +>Parameter lines - Lines beginning with any other character. +(The default line type.)</P +></LI +></OL +><P +>The first two are handled exclusively by the lexical analyzer, which +ignores them. The latter two line types are scanned for</P +><P +></P +><OL +TYPE="1" +><LI +><P +> - Section names</P +></LI +><LI +><P +> - Parameter names</P +></LI +><LI +><P +> - Parameter values</P +></LI +></OL +><P +>These are the only tokens passed to the parameter loader +(loadparm.c). Parameter names and values are divided from one +another by an equal sign: '='.</P +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN472">Handling of Whitespace</H3 +><P +>Whitespace is defined as all characters recognized by the isspace() +function (see ctype(3C)) except for the newline character ('\n') +The newline is excluded because it identifies the end of the line.</P +><P +></P +><OL +TYPE="1" +><LI +><P +>The lexical analyzer scans past white space at the beginning of a line.</P +></LI +><LI +><P +>Section and parameter names may contain internal white space. All +whitespace within a name is compressed to a single space character. </P +></LI +><LI +><P +>Internal whitespace within a parameter value is kept verbatim with +the exception of carriage return characters ('\r'), all of which +are removed.</P +></LI +><LI +><P +>Leading and trailing whitespace is removed from names and values.</P +></LI +></OL +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN484">Handling of Line Continuation</H3 +><P +>Long section header and parameter lines may be extended across +multiple lines by use of the backslash character ('\\'). Line +continuation is ignored for blank and comment lines.</P +><P +>If the last (non-whitespace) character within a section header or on +a parameter line is a backslash, then the next line will be +(logically) concatonated with the current line by the lexical +analyzer. For example:</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> param name = parameter value string \ + with line continuation.</PRE +></TD +></TR +></TABLE +></P +><P +>Would be read as</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> param name = parameter value string with line continuation.</PRE +></TD +></TR +></TABLE +></P +><P +>Note that there are five spaces following the word 'string', +representing the one space between 'string' and '\\' in the top +line, plus the four preceeding the word 'with' in the second line. +(Yes, I'm counting the indentation.)</P +><P +>Line continuation characters are ignored on blank lines and at the end +of comments. They are *only* recognized within section and parameter +lines.</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN495">Line Continuation Quirks</H3 +><P +>Note the following example:</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> param name = parameter value string \ + \ + with line continuation.</PRE +></TD +></TR +></TABLE +></P +><P +>The middle line is *not* parsed as a blank line because it is first +concatonated with the top line. The result is</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>param name = parameter value string with line continuation.</PRE +></TD +></TR +></TABLE +></P +><P +>The same is true for comment lines.</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> param name = parameter value string \ + ; comment \ + with a comment.</PRE +></TD +></TR +></TABLE +></P +><P +>This becomes:</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>param name = parameter value string ; comment with a comment.</PRE +></TD +></TR +></TABLE +></P +><P +>On a section header line, the closing bracket (']') is considered a +terminating character, and the rest of the line is ignored. The lines</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> [ section name ] garbage \ + param name = value</PRE +></TD +></TR +></TABLE +></P +><P +>are read as</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> [section name] + param name = value</PRE +></TD +></TR +></TABLE +></P +></DIV +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN515">Syntax</H2 +><P +>The syntax of the smb.conf file is as follows:</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> <file> :== { <section> } EOF + <section> :== <section header> { <parameter line> } + <section header> :== '[' NAME ']' + <parameter line> :== NAME '=' VALUE NL</PRE +></TD +></TR +></TABLE +></P +><P +>Basically, this means that</P +><P +></P +><OL +TYPE="1" +><LI +><P +> a file is made up of zero or more sections, and is terminated by + an EOF (we knew that).</P +></LI +><LI +><P +> A section is made up of a section header followed by zero or more + parameter lines.</P +></LI +><LI +><P +> A section header is identified by an opening bracket and + terminated by the closing bracket. The enclosed NAME identifies + the section.</P +></LI +><LI +><P +> A parameter line is divided into a NAME and a VALUE. The *first* + equal sign on the line separates the NAME from the VALUE. The + VALUE is terminated by a newline character (NL = '\n').</P +></LI +></OL +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN530">About params.c</H3 +><P +>The parsing of the config file is a bit unusual if you are used to +lex, yacc, bison, etc. Both lexical analysis (scanning) and parsing +are performed by params.c. Values are loaded via callbacks to +loadparm.c.</P +></DIV +></DIV +></DIV +><DIV +CLASS="CHAPTER" +><HR><H1 +><A +NAME="UNIX-SMB">NetBIOS in a Unix World</H1 +><DIV +CLASS="SECT1" +><H2 +CLASS="SECT1" +><A +NAME="AEN540">Introduction</H2 +><P +>This is a short document that describes some of the issues that +confront a SMB implementation on unix, and how Samba copes with +them. They may help people who are looking at unix<->PC +interoperability.</P +><P +>It was written to help out a person who was writing a paper on unix to +PC connectivity.</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN544">Usernames</H2 +><P +>The SMB protocol has only a loose username concept. Early SMB +protocols (such as CORE and COREPLUS) have no username concept at +all. Even in later protocols clients often attempt operations +(particularly printer operations) without first validating a username +on the server.</P +><P +>Unix security is based around username/password pairs. A unix box +should not allow clients to do any substantive operation without some +sort of validation. </P +><P +>The problem mostly manifests itself when the unix server is in "share +level" security mode. This is the default mode as the alternative +"user level" security mode usually forces a client to connect to the +server as the same user for each connected share, which is +inconvenient in many sites.</P +><P +>In "share level" security the client normally gives a username in the +"session setup" protocol, but does not supply an accompanying +password. The client then connects to resources using the "tree +connect" protocol, and supplies a password. The problem is that the +user on the PC types the username and the password in different +contexts, unaware that they need to go together to give access to the +server. The username is normally the one the user typed in when they +"logged onto" the PC (this assumes Windows for Workgroups). The +password is the one they chose when connecting to the disk or printer.</P +><P +>The user often chooses a totally different username for their login as +for the drive connection. Often they also want to access different +drives as different usernames. The unix server needs some way of +divining the correct username to combine with each password.</P +><P +>Samba tries to avoid this problem using several methods. These succeed +in the vast majority of cases. The methods include username maps, the +service%user syntax, the saving of session setup usernames for later +validation and the derivation of the username from the service name +(either directly or via the user= option).</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN552">File Ownership</H2 +><P +>The commonly used SMB protocols have no way of saying "you can't do +that because you don't own the file". They have, in fact, no concept +of file ownership at all.</P +><P +>This brings up all sorts of interesting problems. For example, when +you copy a file to a unix drive, and the file is world writeable but +owned by another user the file will transfer correctly but will +receive the wrong date. This is because the utime() call under unix +only succeeds for the owner of the file, or root, even if the file is +world writeable. For security reasons Samba does all file operations +as the validated user, not root, so the utime() fails. This can stuff +up shared development diectories as programs like "make" will not get +file time comparisons right.</P +><P +>There are several possible solutions to this problem, including +username mapping, and forcing a specific username for particular +shares.</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN557">Passwords</H2 +><P +>Many SMB clients uppercase passwords before sending them. I have no +idea why they do this. Interestingly WfWg uppercases the password only +if the server is running a protocol greater than COREPLUS, so +obviously it isn't just the data entry routines that are to blame.</P +><P +>Unix passwords are case sensitive. So if users use mixed case +passwords they are in trouble.</P +><P +>Samba can try to cope with this by either using the "password level" +option which causes Samba to try the offered password with up to the +specified number of case changes, or by using the "password server" +option which allows Samba to do its validation via another machine +(typically a WinNT server).</P +><P +>Samba supports the password encryption method used by SMB +clients. Note that the use of password encryption in Microsoft +networking leads to password hashes that are "plain text equivalent". +This means that it is *VERY* important to ensure that the Samba +smbpasswd file containing these password hashes is only readable +by the root user. See the documentation ENCRYPTION.txt for more +details.</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN563">Locking</H2 +><P +>The locking calls available under a DOS/Windows environment are much +richer than those available in unix. This means a unix server (like +Samba) choosing to use the standard fcntl() based unix locking calls +to implement SMB locking has to improvise a bit.</P +><P +>One major problem is that dos locks can be in a 32 bit (unsigned) +range. Unix locking calls are 32 bits, but are signed, giving only a 31 +bit range. Unfortunately OLE2 clients use the top bit to select a +locking range used for OLE semaphores.</P +><P +>To work around this problem Samba compresses the 32 bit range into 31 +bits by appropriate bit shifting. This seems to work but is not +ideal. In a future version a separate SMB lockd may be added to cope +with the problem.</P +><P +>It also doesn't help that many unix lockd daemons are very buggy and +crash at the slightest provocation. They normally go mostly unused in +a unix environment because few unix programs use byte range +locking. The stress of huge numbers of lock requests from dos/windows +clients can kill the daemon on some systems.</P +><P +>The second major problem is the "opportunistic locking" requested by +some clients. If a client requests opportunistic locking then it is +asking the server to notify it if anyone else tries to do something on +the same file, at which time the client will say if it is willing to +give up its lock. Unix has no simple way of implementing +opportunistic locking, and currently Samba has no support for it.</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN570">Deny Modes</H2 +><P +>When a SMB client opens a file it asks for a particular "deny mode" to +be placed on the file. These modes (DENY_NONE, DENY_READ, DENY_WRITE, +DENY_ALL, DENY_FCB and DENY_DOS) specify what actions should be +allowed by anyone else who tries to use the file at the same time. If +DENY_READ is placed on the file, for example, then any attempt to open +the file for reading should fail.</P +><P +>Unix has no equivalent notion. To implement this Samba uses either lock +files based on the files inode and placed in a separate lock +directory or a shared memory implementation. The lock file method +is clumsy and consumes processing and file resources, +the shared memory implementation is vastly prefered and is turned on +by default for those systems that support it.</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN574">Trapdoor UIDs</H2 +><P +>A SMB session can run with several uids on the one socket. This +happens when a user connects to two shares with different +usernames. To cope with this the unix server needs to switch uids +within the one process. On some unixes (such as SCO) this is not +possible. This means that on those unixes the client is restricted to +a single uid.</P +><P +>Note that you can also get the "trapdoor uid" message for other +reasons. Please see the FAQ for details.</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN578">Port numbers</H2 +><P +>There is a convention that clients on sockets use high "unprivilaged" +port numbers (>1000) and connect to servers on low "privilaged" port +numbers. This is enforced in Unix as non-root users can't open a +socket for listening on port numbers less than 1000.</P +><P +>Most PC based SMB clients (such as WfWg and WinNT) don't follow this +convention completely. The main culprit is the netbios nameserving on +udp port 137. Name query requests come from a source port of 137. This +is a problem when you combine it with the common firewalling technique +of not allowing incoming packets on low port numbers. This means that +these clients can't query a netbios nameserver on the other side of a +low port based firewall.</P +><P +>The problem is more severe with netbios node status queries. I've +found that WfWg, Win95 and WinNT3.5 all respond to netbios node status +queries on port 137 no matter what the source port was in the +request. This works between machines that are both using port 137, but +it means it's not possible for a unix user to do a node status request +to any of these OSes unless they are running as root. The answer comes +back, but it goes to port 137 which the unix user can't listen +on. Interestingly WinNT3.1 got this right - it sends node status +responses back to the source port in the request.</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN583">Protocol Complexity</H2 +><P +>There are many "protocol levels" in the SMB protocol. It seems that +each time new functionality was added to a Microsoft operating system, +they added the equivalent functions in a new protocol level of the SMB +protocol to "externalise" the new capabilities.</P +><P +>This means the protocol is very "rich", offering many ways of doing +each file operation. This means SMB servers need to be complex and +large. It also means it is very difficult to make them bug free. It is +not just Samba that suffers from this problem, other servers such as +WinNT don't support every variation of every call and it has almost +certainly been a headache for MS developers to support the myriad of +SMB calls that are available.</P +><P +>There are about 65 "top level" operations in the SMB protocol (things +like SMBread and SMBwrite). Some of these include hundreds of +sub-functions (SMBtrans has at least 120 sub-functions, like +DosPrintQAdd and NetSessionEnum). All of them take several options +that can change the way they work. Many take dozens of possible +"information levels" that change the structures that need to be +returned. Samba supports all but 2 of the "top level" functions. It +supports only 8 (so far) of the SMBtrans sub-functions. Even NT +doesn't support them all.</P +><P +>Samba currently supports up to the "NT LM 0.12" protocol, which is the +one preferred by Win95 and WinNT3.5. Luckily this protocol level has a +"capabilities" field which specifies which super-duper new-fangled +options the server suports. This helps to make the implementation of +this protocol level much easier.</P +><P +>There is also a problem with the SMB specications. SMB is a X/Open +spec, but the X/Open book is far from ideal, and fails to cover many +important issues, leaving much to the imagination. Microsoft recently +renamed the SMB protocol CIFS (Common Internet File System) and have +published new specifications. These are far superior to the old +X/Open documents but there are still undocumented calls and features. +This specification is actively being worked on by a CIFS developers +mailing list hosted by Microsft.</P +></DIV +></DIV +><DIV +CLASS="CHAPTER" +><HR><H1 +><A +NAME="TRACING">Tracing samba system calls</H1 +><P +>This file describes how to do a system call trace on Samba to work out +what its doing wrong. This is not for the faint of heart, but if you +are reading this then you are probably desperate.</P +><P +>Actually its not as bad as the the above makes it sound, just don't +expect the output to be very pretty :-)</P +><P +>Ok, down to business. One of the big advantages of unix systems is +that they nearly all come with a system trace utility that allows you +to monitor all system calls that a program is making. This is +extremely using for debugging and also helps when trying to work out +why something is slower than you expect. You can use system tracing +without any special compilation options. </P +><P +>The system trace utility is called different things on different +systems. On Linux systems its called strace. Under SunOS 4 its called +trace. Under SVR4 style systems (including solaris) its called +truss. Under many BSD systems its called ktrace. </P +><P +>The first thing you should do is read the man page for your native +system call tracer. In the discussion below I'll assume its called +strace as strace is the only portable system tracer (its available for +free for many unix types) and its also got some of the nicest +features.</P +><P +>Next, try using strace on some simple commands. For example, <B +CLASS="COMMAND" +>strace +ls</B +> or <B +CLASS="COMMAND" +>strace echo hello</B +>.</P +><P +> +You'll notice that it produces a LOT of output. It is showing you the +arguments to every system call that the program makes and the +result. Very little happens in a program without a system call so you +get lots of output. You'll also find that it produces a lot of +"preamble" stuff showing the loading of shared libraries etc. Ignore +this (unless its going wrong!)</P +><P +>For example, the only line that really matters in the <B +CLASS="COMMAND" +>strace echo +hello</B +> output is:</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>write(1, "hello\n", 6) = 6</PRE +></TD +></TR +></TABLE +></P +><P +>all the rest is just setting up to run the program.</P +><P +>Ok, now you're familiar with strace. To use it on Samba you need to +strace the running smbd daemon. The way I tend ot use it is to first +login from my Windows PC to the Samba server, then use smbstatus to +find which process ID that client is attached to, then as root I do +<B +CLASS="COMMAND" +>strace -p PID</B +> to attach to that process. I normally redirect the +stderr output from this command to a file for later perusal. For +example, if I'm using a csh style shell:</P +><P +><B +CLASS="COMMAND" +>strace -f -p 3872 >& strace.out</B +></P +><P +>or with a sh style shell:</P +><P +><B +CLASS="COMMAND" +>strace -f -p 3872 > strace.out 2>&1</B +></P +><P +>Note the "-f" option. This is only available on some systems, and +allows you to trace not just the current process, but any children it +forks. This is great for finding printing problems caused by the +"print command" being wrong.</P +><P +>Once you are attached you then can do whatever it is on the client +that is causing problems and you will capture all the system calls +that smbd makes. </P +><P +>So how do you interpret the results? Generally I search through the +output for strings that I know will appear when the problem +happens. For example, if I am having touble with permissions on a file +I would search for that files name in the strace output and look at +the surrounding lines. Another trick is to match up file descriptor +numbers and "follow" what happens to an open file until it is closed.</P +><P +>Beyond this you will have to use your initiative. To give you an idea +of what you are looking for here is a piece of strace output that +shows that <TT +CLASS="FILENAME" +>/dev/null</TT +> is not world writeable, which +causes printing to fail with Samba:</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>[pid 28268] open("/dev/null", O_RDWR) = -1 EACCES (Permission denied) +[pid 28268] open("/dev/null", O_WRONLY) = -1 EACCES (Permission denied)</PRE +></TD +></TR +></TABLE +></P +><P +>The process is trying to first open <TT +CLASS="FILENAME" +>/dev/null</TT +> read-write +then read-only. Both fail. This means <TT +CLASS="FILENAME" +>/dev/null</TT +> has +incorrect permissions.</P +></DIV +><DIV +CLASS="CHAPTER" +><HR><H1 +><A +NAME="NTDOMAIN">NT Domain RPC's</H1 +><DIV +CLASS="SECT1" +><H2 +CLASS="SECT1" +><A +NAME="AEN651">Introduction</H2 +><P +>This document contains information to provide an NT workstation with login +services, without the need for an NT server. It is the sgml version of <A +HREF="http://mailhost.cb1.com/~lkcl/cifsntdomain.txt" +TARGET="_top" +>http://mailhost.cb1.com/~lkcl/cifsntdomain.txt</A +>, controlled by Luke.</P +><P +>It should be possible to select a domain instead of a workgroup (in the NT +workstation's TCP/IP settings) and after the obligatory reboot, type in a +username, password, select a domain and successfully log in. I would +appreciate any feedback on your experiences with this process, and any +comments, corrections and additions to this document.</P +><P +>The packets described here can be easily derived from (and are probably +better understood using) Netmon.exe. You will need to use the version +of Netmon that matches your system, in order to correctly decode the +NETLOGON, lsarpc and srvsvc Transact pipes. This document is derived from +NT Service Pack 1 and its corresponding version of Netmon. It is intended +that an annotated packet trace be produced, which will likely be more +instructive than this document.</P +><P +>Also needed, to fully implement NT Domain Login Services, is the +document describing the cryptographic part of the NT authentication. +This document is available from comp.protocols.smb; from the ntsecurity.net +digest and from the samba digest, amongst other sources.</P +><P +>A copy is available from:</P +><P +><A +HREF="http://ntbugtraq.rc.on.ca/SCRIPTS/WA.EXE?A2=ind9708;L=ntbugtraq;O=A;P=2935" +TARGET="_top" +>http://ntbugtraq.rc.on.ca/SCRIPTS/WA.EXE?A2=ind9708;L=ntbugtraq;O=A;P=2935</A +></P +><P +><A +HREF="http://mailhost.cb1.com/~lkcl/crypt.html" +TARGET="_top" +>http://mailhost.cb1.com/~lkcl/crypt.html</A +></P +><P +>A c-code implementation, provided by <A +HREF="mailto:linus@incolumitas.se" +TARGET="_top" +>Linus Nordberg</A +> +of this protocol is available from:</P +><P +><A +HREF="http://samba.org/cgi-bin/mfs/01/digest/1997/97aug/0391.html" +TARGET="_top" +>http://samba.org/cgi-bin/mfs/01/digest/1997/97aug/0391.html</A +></P +><P +><A +HREF="http://mailhost.cb1.com/~lkcl/crypt.txt" +TARGET="_top" +>http://mailhost.cb1.com/~lkcl/crypt.txt</A +></P +><P +>Also used to provide debugging information is the Check Build version of +NT workstation, and enabling full debugging in NETLOGON. This is +achieved by setting the following REG_SZ registry key to 0x1ffffff:</P +><P +><TT +CLASS="FILENAME" +>HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters</TT +></P +><P +><I +CLASS="EMPHASIS" +>Incorrect direct editing of the registry can cause your +machine to fail. Then again, so can incorrect implementation of this +protocol. See "Liability:" above.</I +></P +><P +>Bear in mind that each packet over-the-wire will have its origin in an +API call. Therefore, there are likely to be structures, enumerations +and defines that are usefully documented elsewhere.</P +><P +>This document is by no means complete or authoritative. Missing sections +include, but are not limited to:</P +><P +></P +><OL +TYPE="1" +><LI +><P +>Mappings of RIDs to usernames (and vice-versa).</P +></LI +><LI +><P +>What a User ID is and what a Group ID is.</P +></LI +><LI +><P +>The exact meaning/definition of various magic constants or enumerations.</P +></LI +><LI +><P +>The reply error code and use of that error code when a +workstation becomes a member of a domain (to be described later). +Failure to return this error code will make the workstation report +that it is already a member of the domain.</P +></LI +><LI +><P +>the cryptographic side of the NetrServerPasswordSet command, +which would allow the workstation to change its password. This password is +used to generate the long-term session key. [It is possible to reject this +command, and keep the default workstation password].</P +></LI +></OL +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN687">Sources</H3 +><P +></P +><TABLE +BORDER="0" +><TBODY +><TR +><TD +>cket Traces from Netmonitor (Service Pack 1 and above)</TD +></TR +><TR +><TD +>ul Ashton and Luke Leighton's other "NT Domain" doc.</TD +></TR +><TR +><TD +>FS documentation - cifs6.txt</TD +></TR +><TR +><TD +>FS documentation - cifsrap2.txt</TD +></TR +></TBODY +></TABLE +><P +></P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN694">Credits</H3 +><P +></P +><TABLE +BORDER="0" +><TBODY +><TR +><TD +>Paul Ashton: loads of work with Net Monitor; understanding the NT authentication system; reference implementation of the NT domain support on which this document is originally based.</TD +></TR +><TR +><TD +>Duncan Stansfield: low-level analysis of MSRPC Pipes.</TD +></TR +><TR +><TD +>Linus Nordberg: producing c-code from Paul's crypto spec.</TD +></TR +><TR +><TD +>Windows Sourcer development team</TD +></TR +></TBODY +></TABLE +><P +></P +></DIV +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN701">Notes and Structures</H2 +><DIV +CLASS="SECT2" +><H3 +CLASS="SECT2" +><A +NAME="AEN703">Notes</H3 +><P +></P +><OL +TYPE="1" +><LI +><P +>In the SMB Transact pipes, some "Structures", described here, appear to be +4-byte aligned with the SMB header, at their start. Exactly which +"Structures" need aligning is not precisely known or documented.</P +></LI +><LI +><P +>In the UDP NTLOGON Mailslots, some "Structures", described here, appear to be +2-byte aligned with the start of the mailslot, at their start.</P +></LI +><LI +><P +>Domain SID is of the format S-revision-version-auth1-auth2...authN. +e.g S-1-5-123-456-789-123-456. the 5 could be a sub-revision.</P +></LI +><LI +><P +>any undocumented buffer pointers must be non-zero if the string buffer it +refers to contains characters. exactly what value they should be is unknown. +0x0000 0002 seems to do the trick to indicate that the buffer exists. a +NULL buffer pointer indicates that the string buffer is of zero length. +If the buffer pointer is NULL, then it is suspected that the structure it +refers to is NOT put into (or taken out of) the SMB data stream. This is +empirically derived from, for example, the LSA SAM Logon response packet, +where if the buffer pointer is NULL, the user information is not inserted +into the data stream. Exactly what happens with an array of buffer pointers +is not known, although an educated guess can be made.</P +></LI +><LI +><P +>an array of structures (a container) appears to have a count and a pointer. +if the count is zero, the pointer is also zero. no further data is put +into or taken out of the SMB data stream. if the count is non-zero, then +the pointer is also non-zero. immediately following the pointer is the +count again, followed by an array of container sub-structures. the count +appears a third time after the last sub-structure.</P +></LI +></OL +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN716">Enumerations</H3 +><DIV +CLASS="SECT3" +><H4 +CLASS="SECT3" +><A +NAME="AEN718">MSRPC Header type</H4 +><P +>command number in the msrpc packet header</P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>MSRPC_Request:</DT +><DD +><P +>0x00</P +></DD +><DT +>MSRPC_Response:</DT +><DD +><P +>0x02</P +></DD +><DT +>MSRPC_Bind:</DT +><DD +><P +>0x0B</P +></DD +><DT +>MSRPC_BindAck:</DT +><DD +><P +>0x0C</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN738">MSRPC Packet info</H4 +><P +>The meaning of these flags is undocumented</P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>FirstFrag:</DT +><DD +><P +>0x01 </P +></DD +><DT +>LastFrag:</DT +><DD +><P +>0x02 </P +></DD +><DT +>NotaFrag:</DT +><DD +><P +>0x04 </P +></DD +><DT +>RecRespond:</DT +><DD +><P +>0x08 </P +></DD +><DT +>NoMultiplex:</DT +><DD +><P +>0x10 </P +></DD +><DT +>NotForIdemp:</DT +><DD +><P +>0x20 </P +></DD +><DT +>NotforBcast:</DT +><DD +><P +>0x40 </P +></DD +><DT +>NoUuid:</DT +><DD +><P +>0x80 </P +></DD +></DL +></DIV +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN774">Structures</H3 +><DIV +CLASS="SECT3" +><H4 +CLASS="SECT3" +><A +NAME="AEN776">VOID *</H4 +><P +>sizeof VOID* is 32 bits.</P +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN779">char</H4 +><P +>sizeof char is 8 bits.</P +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN782">UTIME</H4 +><P +>UTIME is 32 bits, indicating time in seconds since 01jan1970. documented in cifs6.txt (section 3.5 page, page 30).</P +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN785">NTTIME</H4 +><P +>NTTIME is 64 bits. documented in cifs6.txt (section 3.5 page, page 30).</P +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN788">DOM_SID (domain SID structure)</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT32</DT +><DD +><P +>num of sub-authorities in domain SID</P +></DD +><DT +>UINT8</DT +><DD +><P +>SID revision number</P +></DD +><DT +>UINT8</DT +><DD +><P +>num of sub-authorities in domain SID</P +></DD +><DT +>UINT8[6]</DT +><DD +><P +>6 bytes for domain SID - Identifier Authority.</P +></DD +><DT +>UINT16[n_subauths]</DT +><DD +><P +>domain SID sub-authorities</P +></DD +></DL +></DIV +><P +><I +CLASS="EMPHASIS" +>Note: the domain SID is documented elsewhere.</I +></P +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN813">STR (string)</H4 +><P +>STR (string) is a char[] : a null-terminated string of ascii characters.</P +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN816">UNIHDR (unicode string header)</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT16</DT +><DD +><P +>length of unicode string</P +></DD +><DT +>UINT16</DT +><DD +><P +>max length of unicode string</P +></DD +><DT +>UINT32</DT +><DD +><P +>4 - undocumented.</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN831">UNIHDR2 (unicode string header plus buffer pointer)</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UNIHDR</DT +><DD +><P +>unicode string header</P +></DD +><DT +>VOID*</DT +><DD +><P +>undocumented buffer pointer</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN842">UNISTR (unicode string)</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT16[]</DT +><DD +><P +>null-terminated string of unicode characters.</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN849">NAME (length-indicated unicode string)</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT32</DT +><DD +><P +>length of unicode string</P +></DD +><DT +>UINT16[]</DT +><DD +><P +>null-terminated string of unicode characters.</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN860">UNISTR2 (aligned unicode string)</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT8[]</DT +><DD +><P +>padding to get unicode string 4-byte aligned with the start of the SMB header.</P +></DD +><DT +>UINT32</DT +><DD +><P +>max length of unicode string</P +></DD +><DT +>UINT32</DT +><DD +><P +>0 - undocumented</P +></DD +><DT +>UINT32</DT +><DD +><P +>length of unicode string</P +></DD +><DT +>UINT16[]</DT +><DD +><P +>string of uncode characters</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN883">OBJ_ATTR (object attributes)</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT32</DT +><DD +><P +>0x18 - length (in bytes) including the length field.</P +></DD +><DT +>VOID*</DT +><DD +><P +>0 - root directory (pointer)</P +></DD +><DT +>VOID*</DT +><DD +><P +>0 - object name (pointer)</P +></DD +><DT +>UINT32</DT +><DD +><P +>0 - attributes (undocumented)</P +></DD +><DT +>VOID*</DT +><DD +><P +>0 - security descriptior (pointer)</P +></DD +><DT +>UINT32</DT +><DD +><P +>0 - security quality of service</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN910">POL_HND (LSA policy handle)</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>char[20]</DT +><DD +><P +>policy handle</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN917">DOM_SID2 (domain SID structure, SIDS stored in unicode)</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT32</DT +><DD +><P +>5 - SID type</P +></DD +><DT +>UINT32</DT +><DD +><P +>0 - undocumented</P +></DD +><DT +>UNIHDR2</DT +><DD +><P +>domain SID unicode string header</P +></DD +><DT +>UNISTR</DT +><DD +><P +>domain SID unicode string</P +></DD +></DL +></DIV +><P +><I +CLASS="EMPHASIS" +>Note: there is a conflict between the unicode string header and the unicode string itself as to which to use to indicate string length. this will need to be resolved.</I +></P +><P +><I +CLASS="EMPHASIS" +>Note: the SID type indicates, for example, an alias; a well-known group etc. this is documented somewhere.</I +></P +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN940">DOM_RID (domain RID structure)</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT32</DT +><DD +><P +>5 - well-known SID. 1 - user SID (see ShowACLs)</P +></DD +><DT +>UINT32</DT +><DD +><P +>5 - undocumented</P +></DD +><DT +>UINT32</DT +><DD +><P +>domain RID </P +></DD +><DT +>UINT32</DT +><DD +><P +>0 - domain index out of above reference domains</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN959">LOG_INFO (server, account, client structure)</H4 +><P +><I +CLASS="EMPHASIS" +>Note: logon server name starts with two '\' characters and is upper case.</I +></P +><P +><I +CLASS="EMPHASIS" +>Note: account name is the logon client name from the LSA Request Challenge, with a $ on the end of it, in upper case.</I +></P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>VOID*</DT +><DD +><P +>undocumented buffer pointer</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>logon server unicode string</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>account name unicode string</P +></DD +><DT +>UINT16</DT +><DD +><P +>sec_chan - security channel type</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>logon client machine unicode string</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN986">CLNT_SRV (server, client names structure)</H4 +><P +><I +CLASS="EMPHASIS" +>Note: logon server name starts with two '\' characters and is upper case.</I +></P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>VOID*</DT +><DD +><P +>undocumented buffer pointer</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>logon server unicode string</P +></DD +><DT +>VOID*</DT +><DD +><P +>undocumented buffer pointer</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>logon client machine unicode string</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1007">CREDS (credentials + time stamp)</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>char[8]</DT +><DD +><P +>credentials</P +></DD +><DT +>UTIME</DT +><DD +><P +>time stamp</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1018">CLNT_INFO2 (server, client structure, client credentials)</H4 +><P +><I +CLASS="EMPHASIS" +>Note: whenever this structure appears in a request, you must take a copy of the client-calculated credentials received, because they will beused in subsequent credential checks. the presumed intention is to + maintain an authenticated request/response trail.</I +></P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>CLNT_SRV</DT +><DD +><P +>client and server names</P +></DD +><DT +>UINT8[]</DT +><DD +><P +>???? padding, for 4-byte alignment with SMB header.</P +></DD +><DT +>VOID*</DT +><DD +><P +>pointer to client credentials.</P +></DD +><DT +>CREDS</DT +><DD +><P +>client-calculated credentials + client time</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1039">CLNT_INFO (server, account, client structure, client credentials)</H4 +><P +><I +CLASS="EMPHASIS" +>Note: whenever this structure appears in a request, you must take a copy of the client-calculated credentials received, because they will be used in subsequent credential checks. the presumed intention is to maintain an authenticated request/response trail.</I +></P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>LOG_INFO</DT +><DD +><P +>logon account info</P +></DD +><DT +>CREDS</DT +><DD +><P +>client-calculated credentials + client time</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1052">ID_INFO_1 (id info structure, auth level 1)</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>VOID*</DT +><DD +><P +>ptr_id_info_1</P +></DD +><DT +>UNIHDR</DT +><DD +><P +>domain name unicode header</P +></DD +><DT +>UINT32</DT +><DD +><P +>param control</P +></DD +><DT +>UINT64</DT +><DD +><P +>logon ID</P +></DD +><DT +>UNIHDR</DT +><DD +><P +>user name unicode header</P +></DD +><DT +>UNIHDR</DT +><DD +><P +>workgroup name unicode header</P +></DD +><DT +>char[16]</DT +><DD +><P +>arc4 LM OWF Password</P +></DD +><DT +>char[16]</DT +><DD +><P +>arc4 NT OWF Password</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>domain name unicode string</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>user name unicode string</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>workstation name unicode string</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1099">SAM_INFO (sam logon/logoff id info structure)</H4 +><P +><I +CLASS="EMPHASIS" +>Note: presumably, the return credentials is supposedly for the server to verify that the credential chain hasn't been compromised.</I +></P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>CLNT_INFO2</DT +><DD +><P +>client identification/authentication info</P +></DD +><DT +>VOID*</DT +><DD +><P +>pointer to return credentials.</P +></DD +><DT +>CRED</DT +><DD +><P +>return credentials - ignored.</P +></DD +><DT +>UINT16</DT +><DD +><P +>logon level</P +></DD +><DT +>UINT16</DT +><DD +><P +>switch value</P +></DD +></DL +></DIV +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> switch (switch_value) + case 1: + { + ID_INFO_1 id_info_1; + }</PRE +></TD +></TR +></TABLE +></P +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1126">GID (group id info)</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT32</DT +><DD +><P +>group id</P +></DD +><DT +>UINT32</DT +><DD +><P +>user attributes (only used by NT 3.1 and 3.51)</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1137">DOM_REF (domain reference info)</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>VOID*</DT +><DD +><P +>undocumented buffer pointer.</P +></DD +><DT +>UINT32</DT +><DD +><P +>num referenced domains?</P +></DD +><DT +>VOID*</DT +><DD +><P +>undocumented domain name buffer pointer.</P +></DD +><DT +>UINT32</DT +><DD +><P +>32 - max number of entries</P +></DD +><DT +>UINT32</DT +><DD +><P +>4 - num referenced domains?</P +></DD +><DT +>UNIHDR2</DT +><DD +><P +>domain name unicode string header</P +></DD +><DT +>UNIHDR2[num_ref_doms-1]</DT +><DD +><P +>referenced domain unicode string headers</P +></DD +><DT +>UNISTR</DT +><DD +><P +>domain name unicode string</P +></DD +><DT +>DOM_SID[num_ref_doms]</DT +><DD +><P +>referenced domain SIDs</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1176">DOM_INFO (domain info, levels 3 and 5 are the same))</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT8[]</DT +><DD +><P +>??? padding to get 4-byte alignment with start of SMB header</P +></DD +><DT +>UINT16</DT +><DD +><P +>domain name string length * 2</P +></DD +><DT +>UINT16</DT +><DD +><P +>domain name string length * 2</P +></DD +><DT +>VOID*</DT +><DD +><P +>undocumented domain name string buffer pointer</P +></DD +><DT +>VOID*</DT +><DD +><P +>undocumented domain SID string buffer pointer</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>domain name (unicode string)</P +></DD +><DT +>DOM_SID</DT +><DD +><P +>domain SID</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1207">USER_INFO (user logon info)</H4 +><P +><I +CLASS="EMPHASIS" +>Note: it would be nice to know what the 16 byte user session key is for.</I +></P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>NTTIME</DT +><DD +><P +>logon time</P +></DD +><DT +>NTTIME</DT +><DD +><P +>logoff time</P +></DD +><DT +>NTTIME</DT +><DD +><P +>kickoff time</P +></DD +><DT +>NTTIME</DT +><DD +><P +>password last set time</P +></DD +><DT +>NTTIME</DT +><DD +><P +>password can change time</P +></DD +><DT +>NTTIME</DT +><DD +><P +>password must change time</P +></DD +><DT +>UNIHDR</DT +><DD +><P +>username unicode string header</P +></DD +><DT +>UNIHDR</DT +><DD +><P +>user's full name unicode string header</P +></DD +><DT +>UNIHDR</DT +><DD +><P +>logon script unicode string header</P +></DD +><DT +>UNIHDR</DT +><DD +><P +>profile path unicode string header</P +></DD +><DT +>UNIHDR</DT +><DD +><P +>home directory unicode string header</P +></DD +><DT +>UNIHDR</DT +><DD +><P +>home directory drive unicode string header</P +></DD +><DT +>UINT16</DT +><DD +><P +>logon count</P +></DD +><DT +>UINT16</DT +><DD +><P +>bad password count</P +></DD +><DT +>UINT32</DT +><DD +><P +>User ID</P +></DD +><DT +>UINT32</DT +><DD +><P +>Group ID</P +></DD +><DT +>UINT32</DT +><DD +><P +>num groups</P +></DD +><DT +>VOID*</DT +><DD +><P +>undocumented buffer pointer to groups.</P +></DD +><DT +>UINT32</DT +><DD +><P +>user flags</P +></DD +><DT +>char[16]</DT +><DD +><P +>user session key</P +></DD +><DT +>UNIHDR</DT +><DD +><P +>logon server unicode string header</P +></DD +><DT +>UNIHDR</DT +><DD +><P +>logon domain unicode string header</P +></DD +><DT +>VOID*</DT +><DD +><P +>undocumented logon domain id pointer</P +></DD +><DT +>char[40]</DT +><DD +><P +>40 undocumented padding bytes. future expansion?</P +></DD +><DT +>UINT32</DT +><DD +><P +>0 - num_other_sids?</P +></DD +><DT +>VOID*</DT +><DD +><P +>NULL - undocumented pointer to other domain SIDs.</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>username unicode string</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>user's full name unicode string</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>logon script unicode string</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>profile path unicode string</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>home directory unicode string</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>home directory drive unicode string</P +></DD +><DT +>UINT32</DT +><DD +><P +>num groups</P +></DD +><DT +>GID[num_groups]</DT +><DD +><P +>group info</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>logon server unicode string</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>logon domain unicode string</P +></DD +><DT +>DOM_SID</DT +><DD +><P +>domain SID</P +></DD +><DT +>DOM_SID[num_sids]</DT +><DD +><P +>other domain SIDs?</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1364">SH_INFO_1_PTR (pointers to level 1 share info strings)</H4 +><P +><I +CLASS="EMPHASIS" +>Note: see cifsrap2.txt section5, page 10.</I +></P +><P +></P +><TABLE +BORDER="0" +><TBODY +><TR +><TD +>0 for shi1_type indicates a Disk.</TD +></TR +><TR +><TD +>1 for shi1_type indicates a Print Queue.</TD +></TR +><TR +><TD +>2 for shi1_type indicates a Device.</TD +></TR +><TR +><TD +>3 for shi1_type indicates an IPC pipe.</TD +></TR +><TR +><TD +>0x8000 0000 (top bit set in shi1_type) indicates a hidden share.</TD +></TR +></TBODY +></TABLE +><P +></P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>VOID*</DT +><DD +><P +>shi1_netname - pointer to net name</P +></DD +><DT +>UINT32</DT +><DD +><P +>shi1_type - type of share. 0 - undocumented.</P +></DD +><DT +>VOID*</DT +><DD +><P +>shi1_remark - pointer to comment.</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1387">SH_INFO_1_STR (level 1 share info strings)</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UNISTR2</DT +><DD +><P +>shi1_netname - unicode string of net name</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>shi1_remark - unicode string of comment.</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1398">SHARE_INFO_1_CTR</H4 +><P +>share container with 0 entries:</P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT32</DT +><DD +><P +>0 - EntriesRead</P +></DD +><DT +>UINT32</DT +><DD +><P +>0 - Buffer</P +></DD +></DL +></DIV +><P +>share container with > 0 entries:</P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT32</DT +><DD +><P +>EntriesRead</P +></DD +><DT +>UINT32</DT +><DD +><P +>non-zero - Buffer</P +></DD +><DT +>UINT32</DT +><DD +><P +>EntriesRead</P +></DD +><DT +>SH_INFO_1_PTR[EntriesRead]</DT +><DD +><P +>share entry pointers</P +></DD +><DT +>SH_INFO_1_STR[EntriesRead]</DT +><DD +><P +>share entry strings</P +></DD +><DT +>UINT8[]</DT +><DD +><P +>padding to get unicode string 4-byte aligned with start of the SMB header.</P +></DD +><DT +>UINT32</DT +><DD +><P +>EntriesRead</P +></DD +><DT +>UINT32</DT +><DD +><P +>0 - padding</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1444">SERVER_INFO_101</H4 +><P +><I +CLASS="EMPHASIS" +>Note: see cifs6.txt section 6.4 - the fields described therein will be of assistance here. for example, the type listed below is the same as fServerType, which is described in 6.4.1. </I +></P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>SV_TYPE_WORKSTATION</DT +><DD +><P +>0x00000001 All workstations</P +></DD +><DT +>SV_TYPE_SERVER</DT +><DD +><P +>0x00000002 All servers</P +></DD +><DT +>SV_TYPE_SQLSERVER</DT +><DD +><P +>0x00000004 Any server running with SQL server</P +></DD +><DT +>SV_TYPE_DOMAIN_CTRL</DT +><DD +><P +>0x00000008 Primary domain controller</P +></DD +><DT +>SV_TYPE_DOMAIN_BAKCTRL</DT +><DD +><P +>0x00000010 Backup domain controller</P +></DD +><DT +>SV_TYPE_TIME_SOURCE</DT +><DD +><P +>0x00000020 Server running the timesource service</P +></DD +><DT +>SV_TYPE_AFP</DT +><DD +><P +>0x00000040 Apple File Protocol servers</P +></DD +><DT +>SV_TYPE_NOVELL</DT +><DD +><P +>0x00000080 Novell servers</P +></DD +><DT +>SV_TYPE_DOMAIN_MEMBER</DT +><DD +><P +>0x00000100 Domain Member</P +></DD +><DT +>SV_TYPE_PRINTQ_SERVER</DT +><DD +><P +>0x00000200 Server sharing print queue</P +></DD +><DT +>SV_TYPE_DIALIN_SERVER</DT +><DD +><P +>0x00000400 Server running dialin service.</P +></DD +><DT +>SV_TYPE_XENIX_SERVER</DT +><DD +><P +>0x00000800 Xenix server</P +></DD +><DT +>SV_TYPE_NT</DT +><DD +><P +>0x00001000 NT server</P +></DD +><DT +>SV_TYPE_WFW</DT +><DD +><P +>0x00002000 Server running Windows for </P +></DD +><DT +>SV_TYPE_SERVER_NT</DT +><DD +><P +>0x00008000 Windows NT non DC server</P +></DD +><DT +>SV_TYPE_POTENTIAL_BROWSER</DT +><DD +><P +>0x00010000 Server that can run the browser service</P +></DD +><DT +>SV_TYPE_BACKUP_BROWSER</DT +><DD +><P +>0x00020000 Backup browser server</P +></DD +><DT +>SV_TYPE_MASTER_BROWSER</DT +><DD +><P +>0x00040000 Master browser server</P +></DD +><DT +>SV_TYPE_DOMAIN_MASTER</DT +><DD +><P +>0x00080000 Domain Master Browser server</P +></DD +><DT +>SV_TYPE_LOCAL_LIST_ONLY</DT +><DD +><P +>0x40000000 Enumerate only entries marked "local"</P +></DD +><DT +>SV_TYPE_DOMAIN_ENUM</DT +><DD +><P +>0x80000000 Enumerate Domains. The pszServer and pszDomain parameters must be NULL.</P +></DD +></DL +></DIV +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT32</DT +><DD +><P +>500 - platform_id</P +></DD +><DT +>VOID*</DT +><DD +><P +>pointer to name</P +></DD +><DT +>UINT32</DT +><DD +><P +>5 - major version</P +></DD +><DT +>UINT32</DT +><DD +><P +>4 - minor version</P +></DD +><DT +>UINT32</DT +><DD +><P +>type (SV_TYPE_... bit field)</P +></DD +><DT +>VOID*</DT +><DD +><P +>pointer to comment</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>sv101_name - unicode string of server name</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>sv_101_comment - unicode string of server comment.</P +></DD +><DT +>UINT8[]</DT +><DD +><P +>padding to get unicode string 4-byte aligned with start of the SMB header.</P +></DD +></DL +></DIV +></DIV +></DIV +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN1570">MSRPC over Transact Named Pipe</H2 +><P +>For details on the SMB Transact Named Pipe, see cifs6.txt</P +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN1573">MSRPC Pipes</H3 +><P +>The MSRPC is conducted over an SMB Transact Pipe with a name of +<TT +CLASS="FILENAME" +>\PIPE\</TT +>. You must first obtain a 16 bit file handle, by +sending a SMBopenX with the pipe name <TT +CLASS="FILENAME" +>\PIPE\srvsvc</TT +> for +example. You can then perform an SMB Trans, +and must carry out an SMBclose on the file handle once you are finished.</P +><P +>Trans Requests must be sent with two setup UINT16s, no UINT16 params (none +known about), and UINT8 data parameters sufficient to contain the MSRPC +header, and MSRPC data. The first UINT16 setup parameter must be either +0x0026 to indicate an RPC, or 0x0001 to indicate Set Named Pipe Handle +state. The second UINT16 parameter must be the file handle for the pipe, +obtained above.</P +><P +>The Data section for an API Command of 0x0026 (RPC pipe) in the Trans +Request is the RPC Header, followed by the RPC Data. The Data section for +an API Command of 0x0001 (Set Named Pipe Handle state) is two bytes. The +only value seen for these two bytes is 0x00 0x43.</P +><P +>MSRPC Responses are sent as response data inside standard SMB Trans +responses, with the MSRPC Header, MSRPC Data and MSRPC tail.</P +><P +>It is suspected that the Trans Requests will need to be at least 2-byte +aligned (probably 4-byte). This is standard practice for SMBs. It is also +independent of the observed 4-byte alignments with the start of the MSRPC +header, including the 4-byte alignment between the MSRPC header and the +MSRPC data.</P +><P +>First, an SMBtconX connection is made to the IPC$ share. The connection +must be made using encrypted passwords, not clear-text. Then, an SMBopenX +is made on the pipe. Then, a Set Named Pipe Handle State must be sent, +after which the pipe is ready to accept API commands. Lastly, and SMBclose +is sent.</P +><P +>To be resolved:</P +><P +>lkcl/01nov97 there appear to be two additional bytes after the null-terminated \PIPE\ name for the RPC pipe. Values seen so far are +listed below:</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> initial SMBopenX request: RPC API command 0x26 params: + "\\PIPE\\lsarpc" 0x65 0x63; 0x72 0x70; 0x44 0x65; + "\\PIPE\\srvsvc" 0x73 0x76; 0x4E 0x00; 0x5C 0x43;</PRE +></TD +></TR +></TABLE +></P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN1587">Header</H3 +><P +>[section to be rewritten, following receipt of work by Duncan Stansfield]</P +><P +>Interesting note: if you set packed data representation to 0x0100 0000 +then all 4-byte and 2-byte word ordering is turned around!</P +><P +>The start of each of the NTLSA and NETLOGON named pipes begins with:</P +><P +><B +>offset: </B +>00</P +><P +><B +>Variable type: </B +>UINT8</P +><P +><B +>Variable data: </B +>5 - RPC major version</P +><P +><B +>offset: </B +>01</P +><P +><B +>Variable type: </B +>UINT8</P +><P +><B +>Variable data: </B +>0 - RPC minor version</P +><P +><B +>offset: </B +>02</P +><P +><B +>Variable type: </B +>UINT8</P +><P +><B +>Variable data: </B +>2 - RPC response packet</P +><P +><B +>offset: </B +>03</P +><P +><B +>Variable type: </B +>UINT8</P +><P +><B +>Variable data: </B +>3 - (FirstFrag bit-wise or with LastFrag)</P +><P +><B +>offset: </B +>04</P +><P +><B +>Variable type: </B +>UINT32</P +><P +><B +>Variable data: </B +>0x1000 0000 - packed data representation</P +><P +><B +>offset: </B +>08</P +><P +><B +>Variable type: </B +>UINT16</P +><P +><B +>Variable data: </B +>fragment length - data size (bytes) inc header and tail.</P +><P +><B +>offset: </B +>0A</P +><P +><B +>Variable type: </B +>UINT16</P +><P +><B +>Variable data: </B +>0 - authentication length </P +><P +><B +>offset: </B +>0C</P +><P +><B +>Variable type: </B +>UINT32</P +><P +><B +>Variable data: </B +>call identifier. matches 12th UINT32 of incoming RPC data.</P +><P +><B +>offset: </B +>10</P +><P +><B +>Variable type: </B +>UINT32</P +><P +><B +>Variable data: </B +>allocation hint - data size (bytes) minus header and tail.</P +><P +><B +>offset: </B +>14</P +><P +><B +>Variable type: </B +>UINT16</P +><P +><B +>Variable data: </B +>0 - presentation context identifier</P +><P +><B +>offset: </B +>16</P +><P +><B +>Variable type: </B +>UINT8</P +><P +><B +>Variable data: </B +>0 - cancel count</P +><P +><B +>offset: </B +>17</P +><P +><B +>Variable type: </B +>UINT8</P +><P +><B +>Variable data: </B +>in replies: 0 - reserved; in requests: opnum - see #defines.</P +><P +><B +>offset: </B +>18</P +><P +><B +>Variable type: </B +>......</P +><P +><B +>Variable data: </B +>start of data (goes on for allocation_hint bytes)</P +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1648">RPC_Packet for request, response, bind and bind acknowledgement</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT8 versionmaj</DT +><DD +><P +>reply same as request (0x05)</P +></DD +><DT +>UINT8 versionmin</DT +><DD +><P +>reply same as request (0x00)</P +></DD +><DT +>UINT8 type</DT +><DD +><P +>one of the MSRPC_Type enums</P +></DD +><DT +>UINT8 flags</DT +><DD +><P +>reply same as request (0x00 for Bind, 0x03 for Request)</P +></DD +><DT +>UINT32 representation</DT +><DD +><P +>reply same as request (0x00000010)</P +></DD +><DT +>UINT16 fraglength</DT +><DD +><P +>the length of the data section of the SMB trans packet</P +></DD +><DT +>UINT16 authlength</DT +><DD +><P +></P +></DD +><DT +>UINT32 callid</DT +><DD +><P +>call identifier. (e.g. 0x00149594)</P +></DD +><DT +>* stub USE TvPacket</DT +><DD +><P +>the remainder of the packet depending on the "type"</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1687">Interface identification</H4 +><P +>the interfaces are numbered. as yet I haven't seen more than one interface used on the same pipe name srvsvc</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>abstract (0x4B324FC8, 0x01D31670, 0x475A7812, 0x88E16EBF, 0x00000003) +transfer (0x8A885D04, 0x11C91CEB, 0x0008E89F, 0x6048102B, 0x00000002)</PRE +></TD +></TR +></TABLE +></P +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1692">RPC_Iface RW</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT8 byte[16]</DT +><DD +><P +>16 bytes of number</P +></DD +><DT +>UINT32 version</DT +><DD +><P +>the interface number</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1703">RPC_ReqBind RW</H4 +><P +>the remainder of the packet after the header if "type" was Bind in the response header, "type" should be BindAck</P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT16 maxtsize</DT +><DD +><P +>maximum transmission fragment size (0x1630)</P +></DD +><DT +>UINT16 maxrsize</DT +><DD +><P +>max receive fragment size (0x1630)</P +></DD +><DT +>UINT32 assocgid</DT +><DD +><P +>associated group id (0x0)</P +></DD +><DT +>UINT32 numelements</DT +><DD +><P +>the number of elements (0x1)</P +></DD +><DT +>UINT16 contextid</DT +><DD +><P +>presentation context identifier (0x0)</P +></DD +><DT +>UINT8 numsyntaxes</DT +><DD +><P +>the number of syntaxes (has always been 1?)(0x1)</P +></DD +><DT +>UINT8[]</DT +><DD +><P +>4-byte alignment padding, against SMB header</P +></DD +><DT +>* abstractint USE RPC_Iface</DT +><DD +><P +>num and vers. of interface client is using</P +></DD +><DT +>* transferint USE RPC_Iface</DT +><DD +><P +>num and vers. of interface to use for replies</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1743">RPC_Address RW</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT16 length</DT +><DD +><P +>length of the string including null terminator</P +></DD +><DT +>* port USE string</DT +><DD +><P +>the string above in single byte, null terminated form</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1754">RPC_ResBind RW</H4 +><P +>the response to place after the header in the reply packet</P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT16 maxtsize</DT +><DD +><P +>same as request</P +></DD +><DT +>UINT16 maxrsize</DT +><DD +><P +>same as request</P +></DD +><DT +>UINT32 assocgid</DT +><DD +><P +>zero</P +></DD +><DT +>* secondaddr USE RPC_Address</DT +><DD +><P +>the address string, as described earlier</P +></DD +><DT +>UINT8[]</DT +><DD +><P +>4-byte alignment padding, against SMB header</P +></DD +><DT +>UINT8 numresults</DT +><DD +><P +>the number of results (0x01)</P +></DD +><DT +>UINT8[]</DT +><DD +><P +>4-byte alignment padding, against SMB header</P +></DD +><DT +>UINT16 result</DT +><DD +><P +>result (0x00 = accept)</P +></DD +><DT +>UINT16 reason</DT +><DD +><P +>reason (0x00 = no reason specified)</P +></DD +><DT +>* transfersyntax USE RPC_Iface</DT +><DD +><P +>the transfer syntax from the request</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1798">RPC_ReqNorm RW</H4 +><P +>the remainder of the packet after the header for every other other request</P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT32 allochint</DT +><DD +><P +>the size of the stub data in bytes</P +></DD +><DT +>UINT16 prescontext</DT +><DD +><P +>presentation context identifier (0x0)</P +></DD +><DT +>UINT16 opnum</DT +><DD +><P +>operation number (0x15)</P +></DD +><DT +>* stub USE TvPacket</DT +><DD +><P +>a packet dependent on the pipe name (probably the interface) and the op number)</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1818">RPC_ResNorm RW</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT32 allochint</DT +><DD +><P +># size of the stub data in bytes</P +></DD +><DT +>UINT16 prescontext</DT +><DD +><P +># presentation context identifier (same as request)</P +></DD +><DT +>UINT8 cancelcount</DT +><DD +><P +># cancel count? (0x0)</P +></DD +><DT +>UINT8 reserved</DT +><DD +><P +># 0 - one byte padding</P +></DD +><DT +>* stub USE TvPacket</DT +><DD +><P +># the remainder of the reply</P +></DD +></DL +></DIV +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN1841">Tail</H3 +><P +>The end of each of the NTLSA and NETLOGON named pipes ends with:</P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>......</DT +><DD +><P +>end of data</P +></DD +><DT +>UINT32</DT +><DD +><P +>return code</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN1853">RPC Bind / Bind Ack</H3 +><P +>RPC Binds are the process of associating an RPC pipe (e.g \PIPE\lsarpc) +with a "transfer syntax" (see RPC_Iface structure). The purpose for doing +this is unknown.</P +><P +><I +CLASS="EMPHASIS" +>Note: The RPC_ResBind SMB Transact request is sent with two uint16 setup parameters. The first is 0x0026; the second is the file handle + returned by the SMBopenX Transact response.</I +></P +><P +><I +CLASS="EMPHASIS" +>Note: The RPC_ResBind members maxtsize, maxrsize and assocgid are the same in the response as the same members in the RPC_ReqBind. The + RPC_ResBind member transfersyntax is the same in the response as + the</I +></P +><P +><I +CLASS="EMPHASIS" +>Note: The RPC_ResBind response member secondaddr contains the name of what is presumed to be the service behind the RPC pipe. The + mapping identified so far is:</I +></P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>initial SMBopenX request:</DT +><DD +><P +>RPC_ResBind response:</P +></DD +><DT +>"\\PIPE\\srvsvc"</DT +><DD +><P +>"\\PIPE\\ntsvcs"</P +></DD +><DT +>"\\PIPE\\samr"</DT +><DD +><P +>"\\PIPE\\lsass"</P +></DD +><DT +>"\\PIPE\\lsarpc"</DT +><DD +><P +>"\\PIPE\\lsass"</P +></DD +><DT +>"\\PIPE\\wkssvc"</DT +><DD +><P +>"\\PIPE\\wksvcs"</P +></DD +><DT +>"\\PIPE\\NETLOGON"</DT +><DD +><P +>"\\PIPE\\NETLOGON"</P +></DD +></DL +></DIV +><P +><I +CLASS="EMPHASIS" +>Note: The RPC_Packet fraglength member in both the Bind Request and Bind Acknowledgment must contain the length of the entire RPC data, including the RPC_Packet header.</I +></P +><P +>Request:</P +><P +></P +><TABLE +BORDER="0" +><TBODY +><TR +><TD +>RPC_Packet</TD +></TR +><TR +><TD +>RPC_ReqBind</TD +></TR +></TBODY +></TABLE +><P +></P +><P +>Response:</P +><P +></P +><TABLE +BORDER="0" +><TBODY +><TR +><TD +>RPC_Packet</TD +></TR +><TR +><TD +>RPC_ResBind</TD +></TR +></TBODY +></TABLE +><P +></P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN1897">NTLSA Transact Named Pipe</H3 +><P +>The sequence of actions taken on this pipe are:</P +><P +></P +><TABLE +BORDER="0" +><TBODY +><TR +><TD +>Establish a connection to the IPC$ share (SMBtconX). use encrypted passwords.</TD +></TR +><TR +><TD +>Open an RPC Pipe with the name "\\PIPE\\lsarpc". Store the file handle.</TD +></TR +><TR +><TD +>Using the file handle, send a Set Named Pipe Handle state to 0x4300.</TD +></TR +><TR +><TD +>Send an LSA Open Policy request. Store the Policy Handle.</TD +></TR +><TR +><TD +>Using the Policy Handle, send LSA Query Info Policy requests, etc.</TD +></TR +><TR +><TD +>Using the Policy Handle, send an LSA Close.</TD +></TR +><TR +><TD +>Close the IPC$ share.</TD +></TR +></TBODY +></TABLE +><P +></P +><P +>Defines for this pipe, identifying the query are:</P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>LSA Open Policy:</DT +><DD +><P +>0x2c</P +></DD +><DT +>LSA Query Info Policy:</DT +><DD +><P +>0x07</P +></DD +><DT +>LSA Enumerate Trusted Domains:</DT +><DD +><P +>0x0d</P +></DD +><DT +>LSA Open Secret:</DT +><DD +><P +>0xff</P +></DD +><DT +>LSA Lookup SIDs:</DT +><DD +><P +>0xfe</P +></DD +><DT +>LSA Lookup Names:</DT +><DD +><P +>0xfd</P +></DD +><DT +>LSA Close:</DT +><DD +><P +>0x00</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN1938">LSA Open Policy</H3 +><P +><I +CLASS="EMPHASIS" +>Note: The policy handle can be anything you like.</I +></P +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1942">Request</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>VOID*</DT +><DD +><P +>buffer pointer</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>server name - unicode string starting with two '\'s</P +></DD +><DT +>OBJ_ATTR</DT +><DD +><P +>object attributes</P +></DD +><DT +>UINT32</DT +><DD +><P +>1 - desired access</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1961">Response</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>POL_HND</DT +><DD +><P +>LSA policy handle</P +></DD +><DT +>return</DT +><DD +><P +>0 - indicates success</P +></DD +></DL +></DIV +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN1972">LSA Query Info Policy</H3 +><P +><I +CLASS="EMPHASIS" +>Note: The info class in response must be the same as that in the request.</I +></P +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1976">Request</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>POL_HND</DT +><DD +><P +>LSA policy handle</P +></DD +><DT +>UINT16</DT +><DD +><P +>info class (also a policy handle?)</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN1987">Response</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>VOID*</DT +><DD +><P +>undocumented buffer pointer</P +></DD +><DT +>UINT16</DT +><DD +><P +>info class (same as info class in request).</P +></DD +></DL +></DIV +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>switch (info class) +case 3: +case 5: +{ +DOM_INFO domain info, levels 3 and 5 (are the same). +} + +return 0 - indicates success</PRE +></TD +></TR +></TABLE +></P +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2000">LSA Enumerate Trusted Domains</H3 +><DIV +CLASS="SECT3" +><H4 +CLASS="SECT3" +><A +NAME="AEN2002">Request</H4 +><P +>no extra data</P +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2005">Response</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT32</DT +><DD +><P +>0 - enumeration context</P +></DD +><DT +>UINT32</DT +><DD +><P +>0 - entries read</P +></DD +><DT +>UINT32</DT +><DD +><P +>0 - trust information</P +></DD +><DT +>return</DT +><DD +><P +>0x8000 001a - "no trusted domains" success code</P +></DD +></DL +></DIV +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2024">LSA Open Secret</H3 +><DIV +CLASS="SECT3" +><H4 +CLASS="SECT3" +><A +NAME="AEN2026">Request</H4 +><P +>no extra data</P +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2029">Response</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT32</DT +><DD +><P +>0 - undocumented</P +></DD +><DT +>UINT32</DT +><DD +><P +>0 - undocumented</P +></DD +><DT +>UINT32</DT +><DD +><P +>0 - undocumented</P +></DD +><DT +>UINT32</DT +><DD +><P +>0 - undocumented</P +></DD +><DT +>UINT32</DT +><DD +><P +>0 - undocumented</P +></DD +></DL +></DIV +><P +>return 0x0C00 0034 - "no such secret" success code</P +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2053">LSA Close</H3 +><DIV +CLASS="SECT3" +><H4 +CLASS="SECT3" +><A +NAME="AEN2055">Request</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>POL_HND</DT +><DD +><P +>policy handle to be closed</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2062">Response</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>POL_HND</DT +><DD +><P +>0s - closed policy handle (all zeros)</P +></DD +></DL +></DIV +><P +>return 0 - indicates success</P +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2070">LSA Lookup SIDS</H3 +><P +><I +CLASS="EMPHASIS" +>Note: num_entries in response must be same as num_entries in request.</I +></P +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2074">Request</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>POL_HND</DT +><DD +><P +>LSA policy handle</P +></DD +><DT +>UINT32</DT +><DD +><P +>num_entries</P +></DD +><DT +>VOID*</DT +><DD +><P +>undocumented domain SID buffer pointer</P +></DD +><DT +>VOID*</DT +><DD +><P +>undocumented domain name buffer pointer</P +></DD +><DT +>VOID*[num_entries] undocumented domain SID pointers to be looked up.</DT +><DD +><P +>DOM_SID[num_entries] domain SIDs to be looked up.</P +></DD +><DT +>char[16]</DT +><DD +><P +>completely undocumented 16 bytes.</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2101">Response</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>DOM_REF</DT +><DD +><P +>domain reference response</P +></DD +><DT +>UINT32</DT +><DD +><P +>num_entries (listed above)</P +></DD +><DT +>VOID*</DT +><DD +><P +>undocumented buffer pointer</P +></DD +><DT +>UINT32</DT +><DD +><P +>num_entries (listed above)</P +></DD +><DT +>DOM_SID2[num_entries]</DT +><DD +><P +>domain SIDs (from Request, listed above).</P +></DD +><DT +>UINT32</DT +><DD +><P +>num_entries (listed above)</P +></DD +></DL +></DIV +><P +>return 0 - indicates success</P +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2129">LSA Lookup Names</H3 +><P +><I +CLASS="EMPHASIS" +>Note: num_entries in response must be same as num_entries in request.</I +></P +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2133">Request</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>POL_HND</DT +><DD +><P +>LSA policy handle</P +></DD +><DT +>UINT32</DT +><DD +><P +>num_entries</P +></DD +><DT +>UINT32</DT +><DD +><P +>num_entries</P +></DD +><DT +>VOID*</DT +><DD +><P +>undocumented domain SID buffer pointer</P +></DD +><DT +>VOID*</DT +><DD +><P +>undocumented domain name buffer pointer</P +></DD +><DT +>NAME[num_entries]</DT +><DD +><P +>names to be looked up.</P +></DD +><DT +>char[]</DT +><DD +><P +>undocumented bytes - falsely translated SID structure?</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2164">Response</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>DOM_REF</DT +><DD +><P +>domain reference response</P +></DD +><DT +>UINT32</DT +><DD +><P +>num_entries (listed above)</P +></DD +><DT +>VOID*</DT +><DD +><P +>undocumented buffer pointer</P +></DD +><DT +>UINT32</DT +><DD +><P +>num_entries (listed above)</P +></DD +><DT +>DOM_RID[num_entries]</DT +><DD +><P +>domain SIDs (from Request, listed above).</P +></DD +><DT +>UINT32</DT +><DD +><P +>num_entries (listed above)</P +></DD +></DL +></DIV +><P +>return 0 - indicates success</P +></DIV +></DIV +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN2192">NETLOGON rpc Transact Named Pipe</H2 +><P +>The sequence of actions taken on this pipe are:</P +><P +></P +><TABLE +BORDER="0" +><TBODY +><TR +><TD +>tablish a connection to the IPC$ share (SMBtconX). use encrypted passwords.</TD +></TR +><TR +><TD +>en an RPC Pipe with the name "\\PIPE\\NETLOGON". Store the file handle.</TD +></TR +><TR +><TD +>ing the file handle, send a Set Named Pipe Handle state to 0x4300.</TD +></TR +><TR +><TD +>eate Client Challenge. Send LSA Request Challenge. Store Server Challenge.</TD +></TR +><TR +><TD +>lculate Session Key. Send an LSA Auth 2 Challenge. Store Auth2 Challenge.</TD +></TR +><TR +><TD +>lc/Verify Client Creds. Send LSA Srv PW Set. Calc/Verify Server Creds.</TD +></TR +><TR +><TD +>lc/Verify Client Creds. Send LSA SAM Logon . Calc/Verify Server Creds.</TD +></TR +><TR +><TD +>lc/Verify Client Creds. Send LSA SAM Logoff. Calc/Verify Server Creds.</TD +></TR +><TR +><TD +>ose the IPC$ share.</TD +></TR +></TBODY +></TABLE +><P +></P +><P +>Defines for this pipe, identifying the query are</P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>LSA Request Challenge:</DT +><DD +><P +>0x04</P +></DD +><DT +>LSA Server Password Set:</DT +><DD +><P +>0x06</P +></DD +><DT +>LSA SAM Logon:</DT +><DD +><P +>0x02</P +></DD +><DT +>LSA SAM Logoff:</DT +><DD +><P +>0x03</P +></DD +><DT +>LSA Auth 2:</DT +><DD +><P +>0x0f</P +></DD +><DT +>LSA Logon Control:</DT +><DD +><P +>0x0e</P +></DD +></DL +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2231">LSA Request Challenge</H3 +><P +><I +CLASS="EMPHASIS" +>Note: logon server name starts with two '\' characters and is upper case.</I +></P +><P +><I +CLASS="EMPHASIS" +>Note: logon client is the machine, not the user.</I +></P +><P +><I +CLASS="EMPHASIS" +>Note: the initial LanManager password hash, against which the challenge is issued, is the machine name itself (lower case). there will becalls issued (LSA Server Password Set) which will change this, later. refusing these calls allows you to always deal with the same password (i.e the LM# of the machine name in lower case).</I +></P +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2239">Request</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>VOID*</DT +><DD +><P +>undocumented buffer pointer</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>logon server unicode string</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>logon client unicode string</P +></DD +><DT +>char[8]</DT +><DD +><P +>client challenge</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2258">Response</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>char[8]</DT +><DD +><P +>server challenge</P +></DD +></DL +></DIV +><P +>return 0 - indicates success</P +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2266">LSA Authenticate 2</H3 +><P +><I +CLASS="EMPHASIS" +>Note: in between request and response, calculate the client credentials, and check them against the client-calculated credentials (this process uses the previously received client credentials).</I +></P +><P +><I +CLASS="EMPHASIS" +>Note: neg_flags in the response is the same as that in the request.</I +></P +><P +><I +CLASS="EMPHASIS" +>Note: you must take a copy of the client-calculated credentials received here, because they will be used in subsequent authentication packets.</I +></P +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2274">Request</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>LOG_INFO</DT +><DD +><P +>client identification info</P +></DD +><DT +>char[8]</DT +><DD +><P +>client-calculated credentials</P +></DD +><DT +>UINT8[]</DT +><DD +><P +>padding to 4-byte align with start of SMB header.</P +></DD +><DT +>UINT32</DT +><DD +><P +>neg_flags - negotiated flags (usual value is 0x0000 01ff)</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2293">Response</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>char[8]</DT +><DD +><P +>server credentials.</P +></DD +><DT +>UINT32</DT +><DD +><P +>neg_flags - same as neg_flags in request.</P +></DD +></DL +></DIV +><P +>return 0 - indicates success. failure value unknown.</P +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2305">LSA Server Password Set</H3 +><P +><I +CLASS="EMPHASIS" +>Note: the new password is suspected to be a DES encryption using the old password to generate the key.</I +></P +><P +><I +CLASS="EMPHASIS" +>Note: in between request and response, calculate the client credentials, and check them against the client-calculated credentials (this process uses the previously received client credentials).</I +></P +><P +><I +CLASS="EMPHASIS" +>Note: the server credentials are constructed from the client-calculated credentials and the client time + 1 second.</I +></P +><P +><I +CLASS="EMPHASIS" +>Note: you must take a copy of the client-calculated credentials received here, because they will be used in subsequent authentication packets.</I +></P +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2315">Request</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>CLNT_INFO</DT +><DD +><P +>client identification/authentication info</P +></DD +><DT +>char[]</DT +><DD +><P +>new password - undocumented.</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2326">Response</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>CREDS</DT +><DD +><P +>server credentials. server time stamp appears to be ignored.</P +></DD +></DL +></DIV +><P +>return 0 - indicates success; 0xC000 006a indicates failure</P +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2334">LSA SAM Logon</H3 +><P +><I +CLASS="EMPHASIS" +>Note: valid_user is True iff the username and password hash are valid for + the requested domain.</I +></P +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2338">Request</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>SAM_INFO</DT +><DD +><P +>sam_id structure</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2345">Response</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>VOID*</DT +><DD +><P +>undocumented buffer pointer</P +></DD +><DT +>CREDS</DT +><DD +><P +>server credentials. server time stamp appears to be ignored.</P +></DD +></DL +></DIV +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>if (valid_user) +{ + UINT16 3 - switch value indicating USER_INFO structure. + VOID* non-zero - pointer to USER_INFO structure + USER_INFO user logon information + + UINT32 1 - Authoritative response; 0 - Non-Auth? + + return 0 - indicates success +} +else +{ + UINT16 0 - switch value. value to indicate no user presumed. + VOID* 0x0000 0000 - indicates no USER_INFO structure. + + UINT32 1 - Authoritative response; 0 - Non-Auth? + + return 0xC000 0064 - NT_STATUS_NO_SUCH_USER. +}</PRE +></TD +></TR +></TABLE +></P +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2358">LSA SAM Logoff</H3 +><P +><I +CLASS="EMPHASIS" +>Note: presumably, the SAM_INFO structure is validated, and a (currently + undocumented) error code returned if the Logoff is invalid.</I +></P +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2362">Request</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>SAM_INFO</DT +><DD +><P +>sam_id structure</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2369">Response</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>VOID*</DT +><DD +><P +>undocumented buffer pointer</P +></DD +><DT +>CREDS</DT +><DD +><P +>server credentials. server time stamp appears to be ignored.</P +></DD +></DL +></DIV +><P +>return 0 - indicates success. undocumented failure indication.</P +></DIV +></DIV +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN2381">\\MAILSLOT\NET\NTLOGON</H2 +><P +><I +CLASS="EMPHASIS" +>Note: mailslots will contain a response mailslot, to which the response + should be sent. the target NetBIOS name is REQUEST_NAME<20>, where + REQUEST_NAME is the name of the machine that sent the request.</I +></P +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2385">Query for PDC</H3 +><P +><I +CLASS="EMPHASIS" +>Note: NTversion, LMNTtoken, LM20token in response are the same as those given in the request.</I +></P +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2389">Request</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT16</DT +><DD +><P +>0x0007 - Query for PDC</P +></DD +><DT +>STR</DT +><DD +><P +>machine name</P +></DD +><DT +>STR</DT +><DD +><P +>response mailslot</P +></DD +><DT +>UINT8[]</DT +><DD +><P +>padding to 2-byte align with start of mailslot.</P +></DD +><DT +>UNISTR</DT +><DD +><P +>machine name</P +></DD +><DT +>UINT32</DT +><DD +><P +>NTversion</P +></DD +><DT +>UINT16</DT +><DD +><P +>LMNTtoken</P +></DD +><DT +>UINT16</DT +><DD +><P +>LM20token</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2424">Response</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT16</DT +><DD +><P +>0x000A - Respose to Query for PDC</P +></DD +><DT +>STR</DT +><DD +><P +>machine name (in uppercase)</P +></DD +><DT +>UINT8[]</DT +><DD +><P +>padding to 2-byte align with start of mailslot.</P +></DD +><DT +>UNISTR</DT +><DD +><P +>machine name</P +></DD +><DT +>UNISTR</DT +><DD +><P +>domain name</P +></DD +><DT +>UINT32</DT +><DD +><P +>NTversion (same as received in request)</P +></DD +><DT +>UINT16</DT +><DD +><P +>LMNTtoken (same as received in request)</P +></DD +><DT +>UINT16</DT +><DD +><P +>LM20token (same as received in request)</P +></DD +></DL +></DIV +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2459">SAM Logon</H3 +><P +><I +CLASS="EMPHASIS" +>Note: machine name in response is preceded by two '\' characters.</I +></P +><P +><I +CLASS="EMPHASIS" +>Note: NTversion, LMNTtoken, LM20token in response are the same as those given in the request.</I +></P +><P +><I +CLASS="EMPHASIS" +>Note: user name in the response is presumably the same as that in the request.</I +></P +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2467">Request</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT16</DT +><DD +><P +>0x0012 - SAM Logon</P +></DD +><DT +>UINT16</DT +><DD +><P +>request count</P +></DD +><DT +>UNISTR</DT +><DD +><P +>machine name</P +></DD +><DT +>UNISTR</DT +><DD +><P +>user name</P +></DD +><DT +>STR</DT +><DD +><P +>response mailslot</P +></DD +><DT +>UINT32</DT +><DD +><P +>alloweable account</P +></DD +><DT +>UINT32</DT +><DD +><P +>domain SID size</P +></DD +><DT +>char[sid_size]</DT +><DD +><P +>domain SID, of sid_size bytes.</P +></DD +><DT +>UINT8[]</DT +><DD +><P +>???? padding to 4? 2? -byte align with start of mailslot.</P +></DD +><DT +>UINT32</DT +><DD +><P +>NTversion</P +></DD +><DT +>UINT16</DT +><DD +><P +>LMNTtoken</P +></DD +><DT +>UINT16</DT +><DD +><P +>LM20token</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2518">Response</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT16</DT +><DD +><P +>0x0013 - Response to SAM Logon</P +></DD +><DT +>UNISTR</DT +><DD +><P +>machine name</P +></DD +><DT +>UNISTR</DT +><DD +><P +>user name - workstation trust account</P +></DD +><DT +>UNISTR</DT +><DD +><P +>domain name </P +></DD +><DT +>UINT32</DT +><DD +><P +>NTversion</P +></DD +><DT +>UINT16</DT +><DD +><P +>LMNTtoken</P +></DD +><DT +>UINT16</DT +><DD +><P +>LM20token</P +></DD +></DL +></DIV +></DIV +></DIV +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN2549">SRVSVC Transact Named Pipe</H2 +><P +>Defines for this pipe, identifying the query are:</P +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>Net Share Enum</DT +><DD +><P +>0x0f</P +></DD +><DT +>Net Server Get Info</DT +><DD +><P +>0x15</P +></DD +></DL +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2561">Net Share Enum</H3 +><P +><I +CLASS="EMPHASIS" +>Note: share level and switch value in the response are presumably the same as those in the request.</I +></P +><P +><I +CLASS="EMPHASIS" +>Note: cifsrap2.txt (section 5) may be of limited assistance here.</I +></P +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2567">Request</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>VOID*</DT +><DD +><P +>pointer (to server name?)</P +></DD +><DT +>UNISTR2</DT +><DD +><P +>server name</P +></DD +><DT +>UINT8[]</DT +><DD +><P +>padding to get unicode string 4-byte aligned with the start of the SMB header.</P +></DD +><DT +>UINT32</DT +><DD +><P +>share level</P +></DD +><DT +>UINT32</DT +><DD +><P +>switch value</P +></DD +><DT +>VOID*</DT +><DD +><P +>pointer to SHARE_INFO_1_CTR</P +></DD +><DT +>SHARE_INFO_1_CTR</DT +><DD +><P +>share info with 0 entries</P +></DD +><DT +>UINT32</DT +><DD +><P +>preferred maximum length (0xffff ffff)</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2602">Response</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT32</DT +><DD +><P +>share level</P +></DD +><DT +>UINT32</DT +><DD +><P +>switch value</P +></DD +><DT +>VOID*</DT +><DD +><P +>pointer to SHARE_INFO_1_CTR</P +></DD +><DT +>SHARE_INFO_1_CTR</DT +><DD +><P +>share info (only added if share info ptr is non-zero)</P +></DD +></DL +></DIV +><P +>return 0 - indicates success</P +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2622">Net Server Get Info</H3 +><P +><I +CLASS="EMPHASIS" +>Note: level is the same value as in the request.</I +></P +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2626">Request</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UNISTR2</DT +><DD +><P +>server name</P +></DD +><DT +>UINT32</DT +><DD +><P +>switch level</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2637">Response</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>UINT32</DT +><DD +><P +>switch level</P +></DD +><DT +>VOID*</DT +><DD +><P +>pointer to SERVER_INFO_101</P +></DD +><DT +>SERVER_INFO_101</DT +><DD +><P +>server info (only added if server info ptr is non-zero)</P +></DD +></DL +></DIV +><P +>return 0 - indicates success</P +></DIV +></DIV +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN2653">Cryptographic side of NT Domain Authentication</H2 +><DIV +CLASS="SECT2" +><H3 +CLASS="SECT2" +><A +NAME="AEN2655">Definitions</H3 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>Add(A1,A2)</DT +><DD +><P +>Intel byte ordered addition of corresponding 4 byte words in arrays A1 and A2</P +></DD +><DT +>E(K,D)</DT +><DD +><P +>DES ECB encryption of 8 byte data D using 7 byte key K</P +></DD +><DT +>lmowf()</DT +><DD +><P +>Lan man hash</P +></DD +><DT +>ntowf()</DT +><DD +><P +>NT hash</P +></DD +><DT +>PW</DT +><DD +><P +>md4(machine_password) == md4(lsadump $machine.acc) == +pwdump(machine$) (initially) == md4(lmowf(unicode(machine)))</P +></DD +><DT +>ARC4(K,Lk,D,Ld)</DT +><DD +><P +>ARC4 encryption of data D of length Ld with key K of length Lk</P +></DD +><DT +>v[m..n(,l)]</DT +><DD +><P +>subset of v from bytes m to n, optionally padded with zeroes to length l</P +></DD +><DT +>Cred(K,D)</DT +><DD +><P +>E(K[7..7,7],E(K[0..6],D)) computes a credential</P +></DD +><DT +>Time()</DT +><DD +><P +>4 byte current time</P +></DD +><DT +>Cc,Cs</DT +><DD +><P +>8 byte client and server challenges Rc,Rs: 8 byte client and server credentials</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2698">Protocol</H3 +><P +>C->S ReqChal,Cc S->C Cs</P +><P +>C & S compute session key Ks = E(PW[9..15],E(PW[0..6],Add(Cc,Cs)))</P +><P +>C: Rc = Cred(Ks,Cc) C->S Authenticate,Rc S: Rs = Cred(Ks,Cs), +assert(Rc == Cred(Ks,Cc)) S->C Rs C: assert(Rs == Cred(Ks,Cs))</P +><P +>On joining the domain the client will optionally attempt to change its +password and the domain controller may refuse to update it depending +on registry settings. This will also occur weekly afterwards.</P +><P +>C: Tc = Time(), Rc' = Cred(Ks,Rc+Tc) C->S ServerPasswordSet,Rc',Tc, +arc4(Ks[0..7,16],lmowf(randompassword()) C: Rc = Cred(Ks,Rc+Tc+1) S: +assert(Rc' == Cred(Ks,Rc+Tc)), Ts = Time() S: Rs' = Cred(Ks,Rs+Tc+1) +S->C Rs',Ts C: assert(Rs' == Cred(Ks,Rs+Tc+1)) S: Rs = Rs'</P +><P +>User: U with password P wishes to login to the domain (incidental data +such as workstation and domain omitted)</P +><P +>C: Tc = Time(), Rc' = Cred(Ks,Rc+Tc) C->S NetLogonSamLogon,Rc',Tc,U, +arc4(Ks[0..7,16],16,ntowf(P),16), arc4(Ks[0..7,16],16,lmowf(P),16) S: +assert(Rc' == Cred(Ks,Rc+Tc)) assert(passwords match those in SAM) S: +Ts = Time()</P +><P +>S->C Cred(Ks,Cred(Ks,Rc+Tc+1)),userinfo(logon script,UID,SIDs,etc) C: +assert(Rs == Cred(Ks,Cred(Rc+Tc+1)) C: Rc = Cred(Ks,Rc+Tc+1)</P +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2708">Comments</H3 +><P +>On first joining the domain the session key could be computed by +anyone listening in on the network as the machine password has a well +known value. Until the machine is rebooted it will use this session +key to encrypt NT and LM one way functions of passwords which are +password equivalents. Any user who logs in before the machine has been +rebooted a second time will have their password equivalent exposed. Of +course the new machine password is exposed at this time anyway.</P +><P +>None of the returned user info such as logon script, profile path and +SIDs *appear* to be protected by anything other than the TCP checksum.</P +><P +>The server time stamps appear to be ignored.</P +><P +>The client sends a ReturnAuthenticator in the SamLogon request which I +can't find a use for. However its time is used as the timestamp +returned by the server.</P +><P +>The password OWFs should NOT be sent over the network reversibly +encrypted. They should be sent using ARC4(Ks,md4(owf)) with the server +computing the same function using the owf values in the SAM.</P +></DIV +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN2715">SIDs and RIDs</H2 +><P +>SIDs and RIDs are well documented elsewhere.</P +><P +>A SID is an NT Security ID (see DOM_SID structure). They are of the form:</P +><P +></P +><TABLE +BORDER="0" +><TBODY +><TR +><TD +>revision-NN-SubAuth1-SubAuth2-SubAuth3... </TD +></TR +><TR +><TD +>revision-0xNNNNNNNNNNNN-SubAuth1-SubAuth2-SubAuth3...</TD +></TR +></TBODY +></TABLE +><P +></P +><P +>currently, the SID revision is 1. +The Sub-Authorities are known as Relative IDs (RIDs).</P +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2723">Well-known SIDs</H3 +><DIV +CLASS="SECT3" +><H4 +CLASS="SECT3" +><A +NAME="AEN2725">Universal well-known SIDs</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>Null SID</DT +><DD +><P +>S-1-0-0</P +></DD +><DT +>World</DT +><DD +><P +>S-1-1-0</P +></DD +><DT +>Local</DT +><DD +><P +>S-1-2-0</P +></DD +><DT +>Creator Owner ID</DT +><DD +><P +>S-1-3-0</P +></DD +><DT +>Creator Group ID</DT +><DD +><P +>S-1-3-1</P +></DD +><DT +>Creator Owner Server ID</DT +><DD +><P +>S-1-3-2</P +></DD +><DT +>Creator Group Server ID</DT +><DD +><P +>S-1-3-3</P +></DD +><DT +>(Non-unique IDs)</DT +><DD +><P +>S-1-4</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2760">NT well-known SIDs</H4 +><P +></P +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>NT Authority</DT +><DD +><P +>S-1-5</P +></DD +><DT +>Dialup</DT +><DD +><P +>S-1-5-1</P +></DD +><DT +>Network</DT +><DD +><P +>S-1-5-2</P +></DD +><DT +>Batch</DT +><DD +><P +>S-1-5-3</P +></DD +><DT +>Interactive</DT +><DD +><P +>S-1-5-4</P +></DD +><DT +>Service</DT +><DD +><P +>S-1-5-6</P +></DD +><DT +>AnonymousLogon(aka null logon session)</DT +><DD +><P +>S-1-5-7</P +></DD +><DT +>Proxy</DT +><DD +><P +>S-1-5-8</P +></DD +><DT +>ServerLogon(aka domain controller account)</DT +><DD +><P +>S-1-5-8</P +></DD +><DT +>(Logon IDs)</DT +><DD +><P +>S-1-5-5-X-Y</P +></DD +><DT +>(NT non-unique IDs)</DT +><DD +><P +>S-1-5-0x15-...</P +></DD +><DT +>(Built-in domain)</DT +><DD +><P +>s-1-5-0x20</P +></DD +></DL +></DIV +></DIV +></DIV +><DIV +CLASS="SECT2" +><HR><H3 +CLASS="SECT2" +><A +NAME="AEN2811">Well-known RIDS</H3 +><P +>A RID is a sub-authority value, as part of either a SID, or in the case +of Group RIDs, part of the DOM_GID structure, in the USER_INFO_1 +structure, in the LSA SAM Logon response.</P +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2814">Well-known RID users</H4 +><P +><B +>Groupname: </B +>DOMAIN_USER_RID_ADMIN</P +><P +><B +>????: </B +>0x0000</P +><P +><B +>RID: </B +>01F4</P +><P +><B +>Groupname: </B +>DOMAIN_USER_RID_GUEST</P +><P +><B +>????: </B +>0x0000</P +><P +><B +>RID: </B +>01F5</P +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2828">Well-known RID groups</H4 +><P +><B +>Groupname: </B +> DOMAIN_GROUP_RID_ADMINS</P +><P +><B +>????: </B +>0x0000</P +><P +><B +>RID: </B +>0200</P +><P +><B +>Groupname: </B +> DOMAIN_GROUP_RID_USERS</P +><P +><B +>????: </B +>0x0000</P +><P +><B +>RID: </B +>0201</P +><P +><B +>Groupname: </B +> DOMAIN_GROUP_RID_GUESTS</P +><P +><B +>????: </B +>0x0000</P +><P +><B +>RID: </B +>0202</P +></DIV +><DIV +CLASS="SECT3" +><HR><H4 +CLASS="SECT3" +><A +NAME="AEN2846">Well-known RID aliases</H4 +><P +><B +>Groupname: </B +> DOMAIN_ALIAS_RID_ADMINS</P +><P +><B +>????: </B +>0x0000</P +><P +><B +>RID: </B +>0220</P +><P +><B +>Groupname: </B +> DOMAIN_ALIAS_RID_USERS</P +><P +><B +>????: </B +>0x0000</P +><P +><B +>RID: </B +>0221</P +><P +><B +>Groupname: </B +> DOMAIN_ALIAS_RID_GUESTS</P +><P +><B +>????: </B +>0x0000</P +><P +><B +>RID: </B +>0222</P +><P +><B +>Groupname: </B +> DOMAIN_ALIAS_RID_POWER_USERS</P +><P +><B +>????: </B +>0x0000</P +><P +><B +>RID: </B +>0223</P +><P +><B +>Groupname: </B +> DOMAIN_ALIAS_RID_ACCOUNT_OPS</P +><P +><B +>????: </B +>0x0000</P +><P +><B +>RID: </B +>0224</P +><P +><B +>Groupname: </B +> DOMAIN_ALIAS_RID_SYSTEM_OPS</P +><P +><B +>????: </B +>0x0000</P +><P +><B +>RID: </B +>0225</P +><P +><B +>Groupname: </B +> DOMAIN_ALIAS_RID_PRINT_OPS</P +><P +><B +>????: </B +>0x0000</P +><P +><B +>RID: </B +>0226</P +><P +><B +>Groupname: </B +> DOMAIN_ALIAS_RID_BACKUP_OPS</P +><P +><B +>????: </B +>0x0000</P +><P +><B +>RID: </B +>0227</P +><P +><B +>Groupname: </B +> DOMAIN_ALIAS_RID_REPLICATOR</P +><P +><B +>????: </B +>0x0000</P +><P +><B +>RID: </B +>0228</P +></DIV +></DIV +></DIV +></DIV +><DIV +CLASS="CHAPTER" +><HR><H1 +><A +NAME="PRINTING">Samba Printing Internals</H1 +><DIV +CLASS="SECT1" +><H2 +CLASS="SECT1" +><A +NAME="AEN2895">Abstract</H2 +><P +>The purpose of this document is to provide some insight into +Samba's printing functionality and also to describe the semantics +of certain features of Windows client printing.</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN2898">Printing Interface to Various Back ends</H2 +><P +>Samba uses a table of function pointers to seven functions. The +function prototypes are defined in the <TT +CLASS="VARNAME" +>printif</TT +> structure declared +in <TT +CLASS="FILENAME" +>printing.h</TT +>.</P +><P +></P +><UL +><LI +><P +>retrieve the contents of a print queue</P +></LI +><LI +><P +>pause the print queue</P +></LI +><LI +><P +>resume a paused print queue</P +></LI +><LI +><P +>delete a job from the queue</P +></LI +><LI +><P +>pause a job in the print queue</P +></LI +><LI +><P +>result a paused print job in the queue</P +></LI +><LI +><P +>submit a job to the print queue</P +></LI +></UL +><P +>Currently there are only two printing back end implementations +defined.</P +><P +></P +><UL +><LI +><P +>a generic set of functions for working with standard UNIX + printing subsystems</P +></LI +><LI +><P +>a set of CUPS specific functions (this is only enabled if + the CUPS libraries were located at compile time).</P +></LI +></UL +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN2924">Print Queue TDB's</H2 +><P +>Samba provides periodic caching of the output from the "lpq command" +for performance reasons. This cache time is configurable in seconds. +Obviously the longer the cache time the less often smbd will be +required to exec a copy of lpq. However, the accuracy of the print +queue contents displayed to clients will be diminished as well.</P +><P +>The list of currently opened print queue TDB's can be found +be examining the list of tdb_print_db structures ( see print_db_head +in printing.c ). A queue TDB is opened using the wrapper function +printing.c:get_print_db_byname(). The function ensures that smbd +does not open more than MAX_PRINT_DBS_OPEN in an effort to prevent +a large print server from exhausting all available file descriptors. +If the number of open queue TDB's exceeds the MAX_PRINT_DBS_OPEN +limit, smbd falls back to a most recently used algorithm for maintaining +a list of open TDB's.</P +><P +>There are two ways in which a a print job can be entered into +a print queue's TDB. The first is to submit the job from a Windows +client which will insert the job information directly into the TDB. +The second method is to have the print job picked up by executing the +"lpq command".</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>/* included from printing.h */ +struct printjob { + pid_t pid; /* which process launched the job */ + int sysjob; /* the system (lp) job number */ + int fd; /* file descriptor of open file if open */ + time_t starttime; /* when the job started spooling */ + int status; /* the status of this job */ + size_t size; /* the size of the job so far */ + int page_count; /* then number of pages so far */ + BOOL spooled; /* has it been sent to the spooler yet? */ + BOOL smbjob; /* set if the job is a SMB job */ + fstring filename; /* the filename used to spool the file */ + fstring jobname; /* the job name given to us by the client */ + fstring user; /* the user who started the job */ + fstring queuename; /* service number of printer for this job */ + NT_DEVICEMODE *nt_devmode; +};</PRE +></TD +></TR +></TABLE +></P +><P +>The current manifestation of the printjob structure contains a field +for the UNIX job id returned from the "lpq command" and a Windows job +ID (32-bit bounded by PRINT_MAX_JOBID). When a print job is returned +by the "lpq command" that does not match an existing job in the queue's +TDB, a 32-bit job ID above the <*vance doesn't know what word is missing here*> is generating by adding UNIX_JOB_START to +the id reported by lpq.</P +><P +>In order to match a 32-bit Windows jobid onto a 16-bit lanman print job +id, smbd uses an in memory TDB to match the former to a number appropriate +for old lanman clients.</P +><P +>When updating a print queue, smbd will perform the following +steps ( refer to <TT +CLASS="FILENAME" +>print.c:print_queue_update()</TT +> ):</P +><P +></P +><OL +TYPE="1" +><LI +><P +>Check to see if another smbd is currently in + the process of updating the queue contents by checking the pid + stored in <TT +CLASS="CONSTANT" +>LOCK/<TT +CLASS="REPLACEABLE" +><I +>printer_name</I +></TT +></TT +>. + If so, then do not update the TDB.</P +></LI +><LI +><P +>Lock the mutex entry in the TDB and store our own pid. + Check that this succeeded, else fail.</P +></LI +><LI +><P +>Store the updated time stamp for the new cache + listing</P +></LI +><LI +><P +>Retrieve the queue listing via "lpq command"</P +></LI +><LI +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> foreach job in the queue + { + if the job is a UNIX job, create a new entry; + if the job has a Windows based jobid, then + { + Lookup the record by the jobid; + if the lookup failed, then + treat it as a UNIX job; + else + update the job status only + } + }</PRE +></TD +></TR +></TABLE +></P +></LI +><LI +><P +>Delete any jobs in the TDB that are not + in the in the lpq listing</P +></LI +><LI +><P +>Store the print queue status in the TDB</P +></LI +><LI +><P +>update the cache time stamp again</P +></LI +></OL +><P +>Note that it is the contents of this TDB that is returned to Windows +clients and not the actual listing from the "lpq command".</P +><P +>The NT_DEVICEMODE stored as part of the printjob structure is used to +store a pointer to a non-default DeviceMode associated with the print +job. The pointer will be non-null when the client included a Device +Mode in the OpenPrinterEx() call and subsequently submitted a job for +printing on that same handle. If the client did not include a Device +Mode in the OpenPrinterEx() request, the nt_devmode field is NULL +and the job has the printer's device mode associated with it by default.</P +><P +>Only non-default Device Mode are stored with print jobs in the print +queue TDB. Otherwise, the Device Mode is obtained from the printer +object when the client issues a GetJob(level == 2) request.</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN2958">ChangeID & Client Caching of Printer Information</H2 +><P +>[To be filled in later]</P +></DIV +><DIV +CLASS="SECT1" +><HR><H2 +CLASS="SECT1" +><A +NAME="AEN2961">Windows NT/2K Printer Change Notify</H2 +><P +>When working with Windows NT+ clients, it is possible for a +print server to use RPC to send asynchronous change notification +events to clients for certain printer and print job attributes. +This can be useful when the client needs to know that a new +job has been added to the queue for a given printer or that the +driver for a printer has been changed. Note that this is done +entirely orthogonal to cache updates based on a new ChangeID for +a printer object.</P +><P +>The basic set of RPC's used to implement change notification are</P +><P +></P +><UL +><LI +><P +>RemoteFindFirstPrinterChangeNotifyEx ( RFFPCN )</P +></LI +><LI +><P +>RemoteFindNextPrinterChangeNotifyEx ( RFNPCN )</P +></LI +><LI +><P +>FindClosePrinterChangeNotify( FCPCN )</P +></LI +><LI +><P +>ReplyOpenPrinter</P +></LI +><LI +><P +>ReplyClosePrinter</P +></LI +><LI +><P +>RouteRefreshPrinterChangeNotify ( RRPCN )</P +></LI +></UL +><P +>One additional RPC is available to a server, but is never used by the +Windows spooler service:</P +><P +></P +><UL +><LI +><P +>RouteReplyPrinter()</P +></LI +></UL +><P +>The opnum for all of these RPC's are defined in include/rpc_spoolss.h</P +><P +>Windows NT print servers use a bizarre method of sending print +notification event to clients. The process of registering a new change +notification handle is as follows. The 'C' is for client and the +'S' is for server. All error conditions have been eliminated.</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>C: Obtain handle to printer or to the printer + server via the standard OpenPrinterEx() call. +S: Respond with a valid handle to object + +C: Send a RFFPCN request with the previously obtained + handle with either (a) set of flags for change events + to monitor, or (b) a PRINTER_NOTIFY_OPTIONS structure + containing the event information to monitor. The windows + spooler has only been observed to use (b). +S: The <* another missing word*> opens a new TCP session to the client (thus requiring + all print clients to be CIFS servers as well) and sends + a ReplyOpenPrinter() request to the client. +C: The client responds with a printer handle that can be used to + send event notification messages. +S: The server replies success to the RFFPCN request. + +C: The windows spooler follows the RFFPCN with a RFNPCN + request to fetch the current values of all monitored + attributes. +S: The server replies with an array SPOOL_NOTIFY_INFO_DATA + structures (contained in a SPOOL_NOTIFY_INFO structure). + +C: If the change notification handle is ever released by the + client via a FCPCN request, the server sends a ReplyClosePrinter() + request back to the client first. However a request of this + nature from the client is often an indication that the previous + notification event was not marshalled correctly by the server + or a piece of data was wrong. +S: The server closes the internal change notification handle + (POLICY_HND) and does not send any further change notification + events to the client for that printer or job.</PRE +></TD +></TR +></TABLE +></P +><P +>The current list of notification events supported by Samba can be +found by examining the internal tables in srv_spoolss_nt.c</P +><P +></P +><UL +><LI +><P +>printer_notify_table[]</P +></LI +><LI +><P +>job_notify_table[]</P +></LI +></UL +><P +>When an event occurs that could be monitored, smbd sends a message +to itself about the change. The list of events to be transmitted +are queued by the smbd process sending the message to prevent an +overload of TDB usage and the internal message is sent during smbd's +idle loop (refer to printing/notify.c and the functions +send_spoolss_notify2_msg() and print_notify_send_messages() ).</P +><P +>The decision of whether or not the change is to be sent to connected +clients is made by the routine which actually sends the notification. +( refer to srv_spoolss_nt.c:recieve_notify2_message() ).</P +><P +>Because it possible to receive a listing of multiple changes for +multiple printers, the notification events must be split into +categories by the printer name. This makes it possible to group +multiple change events to be sent in a single RPC according to the +printer handle obtained via a ReplyOpenPrinter().</P +><P +>The actual change notification is performed using the RRPCN request +RPC. This packet contains</P +><P +></P +><UL +><LI +><P +>the printer handle registered with the +client's spooler on which the change occurred</P +></LI +><LI +><P +>The change_low value which was sent as part +of the last RFNPCN request from the client</P +></LI +><LI +><P +>The SPOOL_NOTIFY_INFO container with the event +information</P +></LI +></UL +><P +>A <TT +CLASS="VARNAME" +>SPOOL_NOTIFY_INFO</TT +> contains:</P +><P +></P +><UL +><LI +><P +>the version and flags field are predefined +and should not be changed</P +></LI +><LI +><P +>The count field is the number of entries +in the SPOOL_NOTIFY_INFO_DATA array</P +></LI +></UL +><P +>The <TT +CLASS="VARNAME" +>SPOOL_NOTIFY_INFO_DATA</TT +> entries contain:</P +><P +></P +><UL +><LI +><P +>The type defines whether or not this event +is for a printer or a print job</P +></LI +><LI +><P +>The field is the flag identifying the event</P +></LI +><LI +><P +>the notify_data union contains the new valuie of the +attribute</P +></LI +><LI +><P +>The enc_type defines the size of the structure for marshalling +and unmarshalling</P +></LI +><LI +><P +>(a) the id must be 0 for a printer event on a printer handle. +(b) the id must be the job id for an event on a printer job +(c) the id must be the matching number of the printer index used +in the response packet to the RFNPCN when using a print server +handle for notification. Samba currently uses the snum of +the printer for this which can break if the list of services +has been modified since the notification handle was registered.</P +></LI +><LI +><P +>The size is either (a) the string length in UNICODE for strings, +(b) the size in bytes of the security descriptor, or (c) 0 for +data values.</P +></LI +></UL +></DIV +></DIV +><DIV +CLASS="CHAPTER" +><HR><H1 +><A +NAME="WINS">Samba WINS Internals</H1 +><DIV +CLASS="SECT1" +><H2 +CLASS="SECT1" +><A +NAME="AEN3032">WINS Failover</H2 +><P +>The current Samba codebase possesses the capability to use groups of WINS +servers that share a common namespace for NetBIOS name registration and +resolution. The formal parameter syntax is</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> WINS_SERVER_PARAM = SERVER [ SEPARATOR SERVER_LIST ] + WINS_SERVER_PARAM = "wins server" + SERVER = ADDR[:TAG] + ADDR = ip_addr | fqdn + TAG = string + SEPARATOR = comma | \s+ + SERVER_LIST = SERVER [ SEPARATOR SERVER_LIST ]</PRE +></TD +></TR +></TABLE +></P +><P +>A simple example of a valid wins server setting is</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>[global] + wins server = 192.168.1.2 192.168.1.3</PRE +></TD +></TR +></TABLE +></P +><P +>In the event that no TAG is defined in for a SERVER in the list, smbd assigns a default +TAG of "*". A TAG is used to group servers of a shared NetBIOS namespace together. Upon +startup, nmbd will attempt to register the netbios name value with one server in each +tagged group.</P +><P +>An example using tags to group WINS servers together is show here. Note that the use of +interface names in the tags is only by convention and is not a technical requirement.</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>[global] + wins server = 192.168.1.2:eth0 192.168.1.3:eth0 192.168.2.2:eth1</PRE +></TD +></TR +></TABLE +></P +><P +>Using this configuration, nmbd would attempt to register the server's NetBIOS name +with one WINS server in each group. Because the "eth0" group has two servers, the +second server would only be used when a registration (or resolution) request to +the first server in that group timed out.</P +><P +>NetBIOS name resolution follows a similar pattern as name registration. When resolving +a NetBIOS name via WINS, smbd and other Samba programs will attempt to query a single WINS +server in a tagged group until either a positive response is obtained at least once or +until a server from every tagged group has responded negatively to the name query request. +If a timeout occurs when querying a specific WINS server, that server is marked as down to +prevent further timeouts and the next server in the WINS group is contacted. Once marked as +dead, Samba will not attempt to contact that server for name registration/resolution queries +for a period of 10 minutes.</P +></DIV +></DIV +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/docs/Samba-HOWTO-Collection.pdf b/docs/Samba-HOWTO-Collection.pdf index 57b7083492..874badf995 100644 --- a/docs/Samba-HOWTO-Collection.pdf +++ b/docs/Samba-HOWTO-Collection.pdf @@ -1,6 +1,6 @@ %PDF-1.3 %âãÏÓ -1 0 obj<</Producer(htmldoc 1.8.20 Copyright 1997-2002 Easy Software Products, All Rights Reserved.)/CreationDate(D:20021004182614-0200)/Title(SAMBA Project Documentation)/Creator(Modular DocBook HTML Stylesheet Version 1.77)>>endobj +1 0 obj<</Producer(htmldoc 1.8.22 Copyright 1997-2002 Easy Software Products, All Rights Reserved.)/CreationDate(D:20020930160555+0500)/Title(SAMBA Project Documentation)/Creator(Modular DocBook HTML Stylesheet Version 1.76b+)>>endobj 2 0 obj<</Type/Encoding/Differences[ 32/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle/parenleft/parenright/asterisk/plus/comma/minus/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 128/Euro 130/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE 145/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 159/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]>>endobj 3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj 4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier-Bold/Encoding 2 0 R>>endobj @@ -13,50 +13,50 @@ 11 0 obj<</Type/Font/Subtype/Type1/BaseFont/Helvetica/Encoding 2 0 R>>endobj 12 0 obj<</Type/Font/Subtype/Type1/BaseFont/Helvetica-Bold/Encoding 2 0 R>>endobj 13 0 obj<</Type/Font/Subtype/Type1/BaseFont/Symbol>>endobj -14 0 obj<</Subtype/Link/Rect[72.0 684.0 223.5 697.0]/Border[0 0 0]/Dest[1100 0 R/XYZ 0 734 0]>>endobj -15 0 obj<</Subtype/Link/Rect[108.0 670.8 174.9 683.8]/Border[0 0 0]/Dest[1100 0 R/XYZ 0 696 0]>>endobj -16 0 obj<</Subtype/Link/Rect[72.0 644.4 112.9 657.4]/Border[0 0 0]/Dest[1114 0 R/XYZ 0 734 0]>>endobj -17 0 obj<</Subtype/Link/Rect[72.0 618.0 277.3 631.0]/Border[0 0 0]/Dest[1124 0 R/XYZ 0 734 0]>>endobj -18 0 obj<</Subtype/Link/Rect[108.0 604.8 249.2 617.8]/Border[0 0 0]/Dest[1124 0 R/XYZ 0 696 0]>>endobj -19 0 obj<</Subtype/Link/Rect[108.0 591.6 255.0 604.6]/Border[0 0 0]/Dest[1124 0 R/XYZ 0 568 0]>>endobj -20 0 obj<</Subtype/Link/Rect[108.0 578.4 257.7 591.4]/Border[0 0 0]/Dest[1124 0 R/XYZ 0 163 0]>>endobj -21 0 obj<</Subtype/Link/Rect[108.0 565.2 309.0 578.2]/Border[0 0 0]/Dest[1126 0 R/XYZ 0 734 0]>>endobj -22 0 obj<</Subtype/Link/Rect[108.0 552.0 313.9 565.0]/Border[0 0 0]/Dest[1126 0 R/XYZ 0 385 0]>>endobj -23 0 obj<</Subtype/Link/Rect[108.0 538.8 284.9 551.8]/Border[0 0 0]/Dest[1126 0 R/XYZ 0 283 0]>>endobj -24 0 obj<</Subtype/Link/Rect[144.0 525.6 316.0 538.6]/Border[0 0 0]/Dest[1126 0 R/XYZ 0 129 0]>>endobj -25 0 obj<</Subtype/Link/Rect[144.0 512.4 364.6 525.4]/Border[0 0 0]/Dest[1128 0 R/XYZ 0 303 0]>>endobj -26 0 obj<</Subtype/Link/Rect[108.0 499.2 362.2 512.2]/Border[0 0 0]/Dest[1130 0 R/XYZ 0 718 0]>>endobj -27 0 obj<</Subtype/Link/Rect[108.0 486.0 315.8 499.0]/Border[0 0 0]/Dest[1130 0 R/XYZ 0 551 0]>>endobj -28 0 obj<</Subtype/Link/Rect[108.0 472.8 511.6 485.8]/Border[0 0 0]/Dest[1130 0 R/XYZ 0 383 0]>>endobj -29 0 obj<</Subtype/Link/Rect[108.0 459.6 259.4 472.6]/Border[0 0 0]/Dest[1130 0 R/XYZ 0 169 0]>>endobj -30 0 obj<</Subtype/Link/Rect[144.0 446.4 272.0 459.4]/Border[0 0 0]/Dest[1132 0 R/XYZ 0 652 0]>>endobj -31 0 obj<</Subtype/Link/Rect[144.0 433.2 222.5 446.2]/Border[0 0 0]/Dest[1132 0 R/XYZ 0 594 0]>>endobj -32 0 obj<</Subtype/Link/Rect[144.0 420.0 303.2 433.0]/Border[0 0 0]/Dest[1132 0 R/XYZ 0 509 0]>>endobj -33 0 obj<</Subtype/Link/Rect[144.0 406.8 331.6 419.8]/Border[0 0 0]/Dest[1132 0 R/XYZ 0 200 0]>>endobj -34 0 obj<</Subtype/Link/Rect[144.0 393.6 213.7 406.6]/Border[0 0 0]/Dest[1134 0 R/XYZ 0 718 0]>>endobj -35 0 obj<</Subtype/Link/Rect[144.0 380.4 268.3 393.4]/Border[0 0 0]/Dest[1134 0 R/XYZ 0 264 0]>>endobj -36 0 obj<</Subtype/Link/Rect[72.0 354.0 267.5 367.0]/Border[0 0 0]/Dest[1136 0 R/XYZ 0 734 0]>>endobj -37 0 obj<</Subtype/Link/Rect[108.0 340.8 181.6 353.8]/Border[0 0 0]/Dest[1136 0 R/XYZ 0 696 0]>>endobj -38 0 obj<</Subtype/Link/Rect[108.0 327.6 184.7 340.6]/Border[0 0 0]/Dest[1136 0 R/XYZ 0 529 0]>>endobj -39 0 obj<</Subtype/Link/Rect[108.0 314.4 150.5 327.4]/Border[0 0 0]/Dest[1136 0 R/XYZ 0 173 0]>>endobj -40 0 obj<</Subtype/Link/Rect[144.0 301.2 198.7 314.2]/Border[0 0 0]/Dest[1136 0 R/XYZ 0 139 0]>>endobj -41 0 obj<</Subtype/Link/Rect[144.0 288.0 198.7 301.0]/Border[0 0 0]/Dest[1138 0 R/XYZ 0 705 0]>>endobj -42 0 obj<</Subtype/Link/Rect[144.0 274.8 198.7 287.8]/Border[0 0 0]/Dest[1138 0 R/XYZ 0 501 0]>>endobj -43 0 obj<</Subtype/Link/Rect[144.0 261.6 198.7 274.6]/Border[0 0 0]/Dest[1140 0 R/XYZ 0 586 0]>>endobj -44 0 obj<</Subtype/Link/Rect[144.0 248.4 198.7 261.4]/Border[0 0 0]/Dest[1140 0 R/XYZ 0 435 0]>>endobj -45 0 obj<</Subtype/Link/Rect[144.0 235.2 198.7 248.2]/Border[0 0 0]/Dest[1140 0 R/XYZ 0 311 0]>>endobj -46 0 obj<</Subtype/Link/Rect[144.0 222.0 198.7 235.0]/Border[0 0 0]/Dest[1142 0 R/XYZ 0 718 0]>>endobj -47 0 obj<</Subtype/Link/Rect[144.0 208.8 198.7 221.8]/Border[0 0 0]/Dest[1142 0 R/XYZ 0 356 0]>>endobj -48 0 obj<</Subtype/Link/Rect[144.0 195.6 198.7 208.6]/Border[0 0 0]/Dest[1144 0 R/XYZ 0 679 0]>>endobj -49 0 obj<</Subtype/Link/Rect[144.0 182.4 209.7 195.4]/Border[0 0 0]/Dest[1144 0 R/XYZ 0 488 0]>>endobj -50 0 obj<</Subtype/Link/Rect[144.0 169.2 209.7 182.2]/Border[0 0 0]/Dest[1144 0 R/XYZ 0 351 0]>>endobj -51 0 obj<</Subtype/Link/Rect[108.0 156.0 221.4 169.0]/Border[0 0 0]/Dest[1144 0 R/XYZ 0 213 0]>>endobj -52 0 obj<</Subtype/Link/Rect[72.0 129.6 348.8 142.6]/Border[0 0 0]/Dest[1146 0 R/XYZ 0 734 0]>>endobj -53 0 obj<</Subtype/Link/Rect[108.0 116.4 161.5 129.4]/Border[0 0 0]/Dest[1146 0 R/XYZ 0 672 0]>>endobj -54 0 obj<</Subtype/Link/Rect[108.0 103.2 327.7 116.2]/Border[0 0 0]/Dest[1146 0 R/XYZ 0 439 0]>>endobj -55 0 obj<</Subtype/Link/Rect[144.0 90.0 213.1 103.0]/Border[0 0 0]/Dest[1146 0 R/XYZ 0 311 0]>>endobj -56 0 obj<</Subtype/Link/Rect[144.0 76.8 239.6 89.8]/Border[0 0 0]/Dest[1148 0 R/XYZ 0 441 0]>>endobj -57 0 obj<</Subtype/Link/Rect[144.0 63.6 231.1 76.6]/Border[0 0 0]/Dest[1148 0 R/XYZ 0 303 0]>>endobj +14 0 obj<</Subtype/Link/Rect[72.0 684.0 223.5 697.0]/Border[0 0 0]/Dest[1083 0 R/XYZ 0 734 0]>>endobj +15 0 obj<</Subtype/Link/Rect[108.0 670.8 174.9 683.8]/Border[0 0 0]/Dest[1083 0 R/XYZ 0 696 0]>>endobj +16 0 obj<</Subtype/Link/Rect[72.0 644.4 112.9 657.4]/Border[0 0 0]/Dest[1083 0 R/XYZ 0 734 0]>>endobj +17 0 obj<</Subtype/Link/Rect[72.0 618.0 224.5 631.0]/Border[0 0 0]/Dest[1095 0 R/XYZ 0 734 0]>>endobj +18 0 obj<</Subtype/Link/Rect[108.0 604.8 229.9 617.8]/Border[0 0 0]/Dest[1095 0 R/XYZ 0 696 0]>>endobj +19 0 obj<</Subtype/Link/Rect[108.0 591.6 235.7 604.6]/Border[0 0 0]/Dest[1095 0 R/XYZ 0 568 0]>>endobj +20 0 obj<</Subtype/Link/Rect[108.0 578.4 238.5 591.4]/Border[0 0 0]/Dest[1095 0 R/XYZ 0 163 0]>>endobj +21 0 obj<</Subtype/Link/Rect[108.0 565.2 289.8 578.2]/Border[0 0 0]/Dest[1097 0 R/XYZ 0 734 0]>>endobj +22 0 obj<</Subtype/Link/Rect[108.0 552.0 294.7 565.0]/Border[0 0 0]/Dest[1097 0 R/XYZ 0 382 0]>>endobj +23 0 obj<</Subtype/Link/Rect[108.0 538.8 265.7 551.8]/Border[0 0 0]/Dest[1097 0 R/XYZ 0 280 0]>>endobj +24 0 obj<</Subtype/Link/Rect[126.0 525.6 270.5 538.6]/Border[0 0 0]/Dest[1097 0 R/XYZ 0 126 0]>>endobj +25 0 obj<</Subtype/Link/Rect[126.0 512.4 319.1 525.4]/Border[0 0 0]/Dest[1099 0 R/XYZ 0 300 0]>>endobj +26 0 obj<</Subtype/Link/Rect[108.0 499.2 342.9 512.2]/Border[0 0 0]/Dest[1101 0 R/XYZ 0 718 0]>>endobj +27 0 obj<</Subtype/Link/Rect[108.0 486.0 296.5 499.0]/Border[0 0 0]/Dest[1101 0 R/XYZ 0 551 0]>>endobj +28 0 obj<</Subtype/Link/Rect[108.0 472.8 492.3 485.8]/Border[0 0 0]/Dest[1101 0 R/XYZ 0 383 0]>>endobj +29 0 obj<</Subtype/Link/Rect[108.0 459.6 234.6 472.6]/Border[0 0 0]/Dest[1101 0 R/XYZ 0 169 0]>>endobj +30 0 obj<</Subtype/Link/Rect[126.0 446.4 221.0 459.4]/Border[0 0 0]/Dest[1103 0 R/XYZ 0 652 0]>>endobj +31 0 obj<</Subtype/Link/Rect[126.0 433.2 171.5 446.2]/Border[0 0 0]/Dest[1103 0 R/XYZ 0 594 0]>>endobj +32 0 obj<</Subtype/Link/Rect[126.0 420.0 252.2 433.0]/Border[0 0 0]/Dest[1103 0 R/XYZ 0 509 0]>>endobj +33 0 obj<</Subtype/Link/Rect[126.0 406.8 280.6 419.8]/Border[0 0 0]/Dest[1103 0 R/XYZ 0 200 0]>>endobj +34 0 obj<</Subtype/Link/Rect[126.0 393.6 162.7 406.6]/Border[0 0 0]/Dest[1105 0 R/XYZ 0 718 0]>>endobj +35 0 obj<</Subtype/Link/Rect[126.0 380.4 217.3 393.4]/Border[0 0 0]/Dest[1105 0 R/XYZ 0 264 0]>>endobj +36 0 obj<</Subtype/Link/Rect[72.0 354.0 214.7 367.0]/Border[0 0 0]/Dest[1107 0 R/XYZ 0 734 0]>>endobj +37 0 obj<</Subtype/Link/Rect[108.0 340.8 162.4 353.8]/Border[0 0 0]/Dest[1107 0 R/XYZ 0 696 0]>>endobj +38 0 obj<</Subtype/Link/Rect[108.0 327.6 165.5 340.6]/Border[0 0 0]/Dest[1107 0 R/XYZ 0 529 0]>>endobj +39 0 obj<</Subtype/Link/Rect[108.0 314.4 131.2 327.4]/Border[0 0 0]/Dest[1107 0 R/XYZ 0 170 0]>>endobj +40 0 obj<</Subtype/Link/Rect[126.0 301.2 153.2 314.2]/Border[0 0 0]/Dest[1107 0 R/XYZ 0 136 0]>>endobj +41 0 obj<</Subtype/Link/Rect[126.0 288.0 153.2 301.0]/Border[0 0 0]/Dest[1109 0 R/XYZ 0 705 0]>>endobj +42 0 obj<</Subtype/Link/Rect[126.0 274.8 153.2 287.8]/Border[0 0 0]/Dest[1109 0 R/XYZ 0 501 0]>>endobj +43 0 obj<</Subtype/Link/Rect[126.0 261.6 153.2 274.6]/Border[0 0 0]/Dest[1111 0 R/XYZ 0 573 0]>>endobj +44 0 obj<</Subtype/Link/Rect[126.0 248.4 153.2 261.4]/Border[0 0 0]/Dest[1111 0 R/XYZ 0 422 0]>>endobj +45 0 obj<</Subtype/Link/Rect[126.0 235.2 153.2 248.2]/Border[0 0 0]/Dest[1111 0 R/XYZ 0 298 0]>>endobj +46 0 obj<</Subtype/Link/Rect[126.0 222.0 153.2 235.0]/Border[0 0 0]/Dest[1113 0 R/XYZ 0 705 0]>>endobj +47 0 obj<</Subtype/Link/Rect[126.0 208.8 153.2 221.8]/Border[0 0 0]/Dest[1113 0 R/XYZ 0 343 0]>>endobj +48 0 obj<</Subtype/Link/Rect[126.0 195.6 153.2 208.6]/Border[0 0 0]/Dest[1115 0 R/XYZ 0 679 0]>>endobj +49 0 obj<</Subtype/Link/Rect[126.0 182.4 158.7 195.4]/Border[0 0 0]/Dest[1115 0 R/XYZ 0 528 0]>>endobj +50 0 obj<</Subtype/Link/Rect[126.0 169.2 158.7 182.2]/Border[0 0 0]/Dest[1115 0 R/XYZ 0 390 0]>>endobj +51 0 obj<</Subtype/Link/Rect[108.0 156.0 202.1 169.0]/Border[0 0 0]/Dest[1115 0 R/XYZ 0 253 0]>>endobj +52 0 obj<</Subtype/Link/Rect[72.0 129.6 296.0 142.6]/Border[0 0 0]/Dest[1117 0 R/XYZ 0 734 0]>>endobj +53 0 obj<</Subtype/Link/Rect[108.0 116.4 142.2 129.4]/Border[0 0 0]/Dest[1117 0 R/XYZ 0 696 0]>>endobj +54 0 obj<</Subtype/Link/Rect[108.0 103.2 308.4 116.2]/Border[0 0 0]/Dest[1117 0 R/XYZ 0 463 0]>>endobj +55 0 obj<</Subtype/Link/Rect[126.0 90.0 167.6 103.0]/Border[0 0 0]/Dest[1117 0 R/XYZ 0 335 0]>>endobj +56 0 obj<</Subtype/Link/Rect[126.0 76.8 194.1 89.8]/Border[0 0 0]/Dest[1119 0 R/XYZ 0 454 0]>>endobj +57 0 obj<</Subtype/Link/Rect[126.0 63.6 185.6 76.6]/Border[0 0 0]/Dest[1119 0 R/XYZ 0 317 0]>>endobj 58 0 obj[14 0 R 15 0 R 16 0 R @@ -101,50 +101,50 @@ 55 0 R 56 0 R 57 0 R]endobj -59 0 obj<</Subtype/Link/Rect[72.0 684.0 348.8 697.0]/Border[0 0 0]/Dest[1146 0 R/XYZ 0 734 0]>>endobj -60 0 obj<</Subtype/Link/Rect[144.0 670.8 251.2 683.8]/Border[0 0 0]/Dest[1148 0 R/XYZ 0 157 0]>>endobj -61 0 obj<</Subtype/Link/Rect[108.0 657.6 382.4 670.6]/Border[0 0 0]/Dest[1150 0 R/XYZ 0 339 0]>>endobj -62 0 obj<</Subtype/Link/Rect[144.0 644.4 291.6 657.4]/Border[0 0 0]/Dest[1152 0 R/XYZ 0 266 0]>>endobj -63 0 obj<</Subtype/Link/Rect[144.0 631.2 260.1 644.2]/Border[0 0 0]/Dest[1154 0 R/XYZ 0 734 0]>>endobj -64 0 obj<</Subtype/Link/Rect[144.0 618.0 223.8 631.0]/Border[0 0 0]/Dest[1156 0 R/XYZ 0 459 0]>>endobj -65 0 obj<</Subtype/Link/Rect[144.0 604.8 230.5 617.8]/Border[0 0 0]/Dest[1156 0 R/XYZ 0 361 0]>>endobj -66 0 obj<</Subtype/Link/Rect[144.0 591.6 236.6 604.6]/Border[0 0 0]/Dest[1156 0 R/XYZ 0 224 0]>>endobj -67 0 obj<</Subtype/Link/Rect[108.0 578.4 523.2 591.4]/Border[0 0 0]/Dest[1158 0 R/XYZ 0 670 0]>>endobj -68 0 obj<</Subtype/Link/Rect[108.0 565.2 497.9 578.2]/Border[0 0 0]/Dest[1158 0 R/XYZ 0 126 0]>>endobj -69 0 obj<</Subtype/Link/Rect[144.0 552.0 389.3 565.0]/Border[0 0 0]/Dest[1162 0 R/XYZ 0 734 0]>>endobj -70 0 obj<</Subtype/Link/Rect[144.0 538.8 455.0 551.8]/Border[0 0 0]/Dest[1162 0 R/XYZ 0 484 0]>>endobj -71 0 obj<</Subtype/Link/Rect[144.0 525.6 368.5 538.6]/Border[0 0 0]/Dest[1162 0 R/XYZ 0 132 0]>>endobj -72 0 obj<</Subtype/Link/Rect[108.0 512.4 181.6 525.4]/Border[0 0 0]/Dest[1164 0 R/XYZ 0 263 0]>>endobj -73 0 obj<</Subtype/Link/Rect[72.0 486.0 460.7 499.0]/Border[0 0 0]/Dest[1166 0 R/XYZ 0 734 0]>>endobj -74 0 obj<</Subtype/Link/Rect[108.0 472.8 202.4 485.8]/Border[0 0 0]/Dest[1166 0 R/XYZ 0 672 0]>>endobj -75 0 obj<</Subtype/Link/Rect[108.0 459.6 244.9 472.6]/Border[0 0 0]/Dest[1168 0 R/XYZ 0 148 0]>>endobj -76 0 obj<</Subtype/Link/Rect[108.0 446.4 270.2 459.4]/Border[0 0 0]/Dest[1170 0 R/XYZ 0 705 0]>>endobj -77 0 obj<</Subtype/Link/Rect[72.0 420.0 402.3 433.0]/Border[0 0 0]/Dest[1172 0 R/XYZ 0 734 0]>>endobj -78 0 obj<</Subtype/Link/Rect[108.0 406.8 179.2 419.8]/Border[0 0 0]/Dest[1172 0 R/XYZ 0 672 0]>>endobj -79 0 obj<</Subtype/Link/Rect[144.0 393.6 197.2 406.6]/Border[0 0 0]/Dest[1174 0 R/XYZ 0 652 0]>>endobj -80 0 obj<</Subtype/Link/Rect[72.0 367.2 412.7 380.2]/Border[0 0 0]/Dest[1176 0 R/XYZ 0 734 0]>>endobj -81 0 obj<</Subtype/Link/Rect[108.0 354.0 444.7 367.0]/Border[0 0 0]/Dest[1176 0 R/XYZ 0 672 0]>>endobj -82 0 obj<</Subtype/Link/Rect[108.0 340.8 319.1 353.8]/Border[0 0 0]/Dest[1176 0 R/XYZ 0 497 0]>>endobj -83 0 obj<</Subtype/Link/Rect[108.0 327.6 231.1 340.6]/Border[0 0 0]/Dest[1176 0 R/XYZ 0 330 0]>>endobj -84 0 obj<</Subtype/Link/Rect[108.0 314.4 292.2 327.4]/Border[0 0 0]/Dest[1178 0 R/XYZ 0 665 0]>>endobj -85 0 obj<</Subtype/Link/Rect[144.0 301.2 244.5 314.2]/Border[0 0 0]/Dest[1178 0 R/XYZ 0 432 0]>>endobj -86 0 obj<</Subtype/Link/Rect[144.0 288.0 269.6 301.0]/Border[0 0 0]/Dest[1178 0 R/XYZ 0 189 0]>>endobj -87 0 obj<</Subtype/Link/Rect[108.0 274.8 301.4 287.8]/Border[0 0 0]/Dest[1180 0 R/XYZ 0 692 0]>>endobj -88 0 obj<</Subtype/Link/Rect[108.0 261.6 392.1 274.6]/Border[0 0 0]/Dest[1180 0 R/XYZ 0 260 0]>>endobj -89 0 obj<</Subtype/Link/Rect[108.0 248.4 384.2 261.4]/Border[0 0 0]/Dest[1184 0 R/XYZ 0 599 0]>>endobj -90 0 obj<</Subtype/Link/Rect[72.0 222.0 277.1 235.0]/Border[0 0 0]/Dest[1186 0 R/XYZ 0 734 0]>>endobj -91 0 obj<</Subtype/Link/Rect[108.0 208.8 181.6 221.8]/Border[0 0 0]/Dest[1186 0 R/XYZ 0 696 0]>>endobj -92 0 obj<</Subtype/Link/Rect[108.0 195.6 189.0 208.6]/Border[0 0 0]/Dest[1186 0 R/XYZ 0 278 0]>>endobj -93 0 obj<</Subtype/Link/Rect[144.0 182.4 245.7 195.4]/Border[0 0 0]/Dest[1188 0 R/XYZ 0 702 0]>>endobj -94 0 obj<</Subtype/Link/Rect[144.0 169.2 330.4 182.2]/Border[0 0 0]/Dest[1190 0 R/XYZ 0 471 0]>>endobj -95 0 obj<</Subtype/Link/Rect[144.0 156.0 323.3 169.0]/Border[0 0 0]/Dest[1192 0 R/XYZ 0 718 0]>>endobj -96 0 obj<</Subtype/Link/Rect[144.0 142.8 386.9 155.8]/Border[0 0 0]/Dest[1192 0 R/XYZ 0 348 0]>>endobj -97 0 obj<</Subtype/Link/Rect[144.0 129.6 278.1 142.6]/Border[0 0 0]/Dest[1194 0 R/XYZ 0 171 0]>>endobj -98 0 obj<</Subtype/Link/Rect[108.0 116.4 220.1 129.4]/Border[0 0 0]/Dest[1196 0 R/XYZ 0 652 0]>>endobj -99 0 obj<</Subtype/Link/Rect[144.0 103.2 250.3 116.2]/Border[0 0 0]/Dest[1196 0 R/XYZ 0 551 0]>>endobj -100 0 obj<</Subtype/Link/Rect[144.0 90.0 317.2 103.0]/Border[0 0 0]/Dest[1196 0 R/XYZ 0 426 0]>>endobj -101 0 obj<</Subtype/Link/Rect[144.0 76.8 258.3 89.8]/Border[0 0 0]/Dest[1196 0 R/XYZ 0 341 0]>>endobj -102 0 obj<</Subtype/Link/Rect[144.0 63.6 270.5 76.6]/Border[0 0 0]/Dest[1196 0 R/XYZ 0 243 0]>>endobj +59 0 obj<</Subtype/Link/Rect[72.0 684.0 296.0 697.0]/Border[0 0 0]/Dest[1117 0 R/XYZ 0 734 0]>>endobj +60 0 obj<</Subtype/Link/Rect[126.0 670.8 205.7 683.8]/Border[0 0 0]/Dest[1119 0 R/XYZ 0 168 0]>>endobj +61 0 obj<</Subtype/Link/Rect[108.0 657.6 363.1 670.6]/Border[0 0 0]/Dest[1121 0 R/XYZ 0 347 0]>>endobj +62 0 obj<</Subtype/Link/Rect[126.0 644.4 246.1 657.4]/Border[0 0 0]/Dest[1123 0 R/XYZ 0 295 0]>>endobj +63 0 obj<</Subtype/Link/Rect[126.0 631.2 214.6 644.2]/Border[0 0 0]/Dest[1125 0 R/XYZ 0 734 0]>>endobj +64 0 obj<</Subtype/Link/Rect[126.0 618.0 178.2 631.0]/Border[0 0 0]/Dest[1127 0 R/XYZ 0 456 0]>>endobj +65 0 obj<</Subtype/Link/Rect[126.0 604.8 185.0 617.8]/Border[0 0 0]/Dest[1127 0 R/XYZ 0 358 0]>>endobj +66 0 obj<</Subtype/Link/Rect[126.0 591.6 191.1 604.6]/Border[0 0 0]/Dest[1127 0 R/XYZ 0 221 0]>>endobj +67 0 obj<</Subtype/Link/Rect[108.0 578.4 504.0 591.4]/Border[0 0 0]/Dest[1129 0 R/XYZ 0 667 0]>>endobj +68 0 obj<</Subtype/Link/Rect[108.0 565.2 478.6 578.2]/Border[0 0 0]/Dest[1131 0 R/XYZ 0 734 0]>>endobj +69 0 obj<</Subtype/Link/Rect[126.0 552.0 343.8 565.0]/Border[0 0 0]/Dest[1133 0 R/XYZ 0 692 0]>>endobj +70 0 obj<</Subtype/Link/Rect[126.0 538.8 409.5 551.8]/Border[0 0 0]/Dest[1133 0 R/XYZ 0 440 0]>>endobj +71 0 obj<</Subtype/Link/Rect[126.0 525.6 323.0 538.6]/Border[0 0 0]/Dest[1135 0 R/XYZ 0 734 0]>>endobj +72 0 obj<</Subtype/Link/Rect[108.0 512.4 162.4 525.4]/Border[0 0 0]/Dest[1135 0 R/XYZ 0 172 0]>>endobj +73 0 obj<</Subtype/Link/Rect[72.0 486.0 407.8 499.0]/Border[0 0 0]/Dest[1139 0 R/XYZ 0 734 0]>>endobj +74 0 obj<</Subtype/Link/Rect[108.0 472.8 183.2 485.8]/Border[0 0 0]/Dest[1139 0 R/XYZ 0 672 0]>>endobj +75 0 obj<</Subtype/Link/Rect[108.0 459.6 225.6 472.6]/Border[0 0 0]/Dest[1141 0 R/XYZ 0 127 0]>>endobj +76 0 obj<</Subtype/Link/Rect[108.0 446.4 251.0 459.4]/Border[0 0 0]/Dest[1143 0 R/XYZ 0 679 0]>>endobj +77 0 obj<</Subtype/Link/Rect[72.0 420.0 349.4 433.0]/Border[0 0 0]/Dest[1145 0 R/XYZ 0 734 0]>>endobj +78 0 obj<</Subtype/Link/Rect[108.0 406.8 159.9 419.8]/Border[0 0 0]/Dest[1145 0 R/XYZ 0 672 0]>>endobj +79 0 obj<</Subtype/Link/Rect[126.0 393.6 151.7 406.6]/Border[0 0 0]/Dest[1147 0 R/XYZ 0 652 0]>>endobj +80 0 obj<</Subtype/Link/Rect[72.0 367.2 359.8 380.2]/Border[0 0 0]/Dest[1149 0 R/XYZ 0 734 0]>>endobj +81 0 obj<</Subtype/Link/Rect[108.0 354.0 425.4 367.0]/Border[0 0 0]/Dest[1149 0 R/XYZ 0 672 0]>>endobj +82 0 obj<</Subtype/Link/Rect[108.0 340.8 299.9 353.8]/Border[0 0 0]/Dest[1149 0 R/XYZ 0 497 0]>>endobj +83 0 obj<</Subtype/Link/Rect[108.0 327.6 211.9 340.6]/Border[0 0 0]/Dest[1149 0 R/XYZ 0 330 0]>>endobj +84 0 obj<</Subtype/Link/Rect[108.0 314.4 273.0 327.4]/Border[0 0 0]/Dest[1151 0 R/XYZ 0 665 0]>>endobj +85 0 obj<</Subtype/Link/Rect[126.0 301.2 199.0 314.2]/Border[0 0 0]/Dest[1151 0 R/XYZ 0 432 0]>>endobj +86 0 obj<</Subtype/Link/Rect[126.0 288.0 224.1 301.0]/Border[0 0 0]/Dest[1151 0 R/XYZ 0 189 0]>>endobj +87 0 obj<</Subtype/Link/Rect[108.0 274.8 282.2 287.8]/Border[0 0 0]/Dest[1153 0 R/XYZ 0 692 0]>>endobj +88 0 obj<</Subtype/Link/Rect[108.0 261.6 372.8 274.6]/Border[0 0 0]/Dest[1153 0 R/XYZ 0 260 0]>>endobj +89 0 obj<</Subtype/Link/Rect[108.0 248.4 364.9 261.4]/Border[0 0 0]/Dest[1157 0 R/XYZ 0 599 0]>>endobj +90 0 obj<</Subtype/Link/Rect[72.0 222.0 224.2 235.0]/Border[0 0 0]/Dest[1159 0 R/XYZ 0 734 0]>>endobj +91 0 obj<</Subtype/Link/Rect[108.0 208.8 162.4 221.8]/Border[0 0 0]/Dest[1159 0 R/XYZ 0 696 0]>>endobj +92 0 obj<</Subtype/Link/Rect[108.0 195.6 169.7 208.6]/Border[0 0 0]/Dest[1159 0 R/XYZ 0 278 0]>>endobj +93 0 obj<</Subtype/Link/Rect[126.0 182.4 200.2 195.4]/Border[0 0 0]/Dest[1161 0 R/XYZ 0 702 0]>>endobj +94 0 obj<</Subtype/Link/Rect[126.0 169.2 284.9 182.2]/Border[0 0 0]/Dest[1163 0 R/XYZ 0 469 0]>>endobj +95 0 obj<</Subtype/Link/Rect[126.0 156.0 277.8 169.0]/Border[0 0 0]/Dest[1165 0 R/XYZ 0 705 0]>>endobj +96 0 obj<</Subtype/Link/Rect[126.0 142.8 341.4 155.8]/Border[0 0 0]/Dest[1165 0 R/XYZ 0 332 0]>>endobj +97 0 obj<</Subtype/Link/Rect[126.0 129.6 232.6 142.6]/Border[0 0 0]/Dest[1167 0 R/XYZ 0 155 0]>>endobj +98 0 obj<</Subtype/Link/Rect[108.0 116.4 200.9 129.4]/Border[0 0 0]/Dest[1169 0 R/XYZ 0 652 0]>>endobj +99 0 obj<</Subtype/Link/Rect[126.0 103.2 204.8 116.2]/Border[0 0 0]/Dest[1169 0 R/XYZ 0 551 0]>>endobj +100 0 obj<</Subtype/Link/Rect[126.0 90.0 271.7 103.0]/Border[0 0 0]/Dest[1169 0 R/XYZ 0 426 0]>>endobj +101 0 obj<</Subtype/Link/Rect[126.0 76.8 212.8 89.8]/Border[0 0 0]/Dest[1169 0 R/XYZ 0 341 0]>>endobj +102 0 obj<</Subtype/Link/Rect[126.0 63.6 225.0 76.6]/Border[0 0 0]/Dest[1169 0 R/XYZ 0 243 0]>>endobj 103 0 obj[59 0 R 60 0 R 61 0 R @@ -189,49 +189,49 @@ 100 0 R 101 0 R 102 0 R]endobj -104 0 obj<</Subtype/Link/Rect[72.0 684.0 277.1 697.0]/Border[0 0 0]/Dest[1186 0 R/XYZ 0 734 0]>>endobj -105 0 obj<</Subtype/Link/Rect[108.0 670.8 300.2 683.8]/Border[0 0 0]/Dest[1198 0 R/XYZ 0 359 0]>>endobj -106 0 obj<</Subtype/Link/Rect[72.0 644.4 264.8 657.4]/Border[0 0 0]/Dest[1202 0 R/XYZ 0 734 0]>>endobj -107 0 obj<</Subtype/Link/Rect[108.0 631.2 181.6 644.2]/Border[0 0 0]/Dest[1202 0 R/XYZ 0 696 0]>>endobj -108 0 obj<</Subtype/Link/Rect[108.0 618.0 251.9 631.0]/Border[0 0 0]/Dest[1204 0 R/XYZ 0 734 0]>>endobj -109 0 obj<</Subtype/Link/Rect[108.0 604.8 236.0 617.8]/Border[0 0 0]/Dest[1204 0 R/XYZ 0 278 0]>>endobj -110 0 obj<</Subtype/Link/Rect[108.0 591.6 287.0 604.6]/Border[0 0 0]/Dest[1206 0 R/XYZ 0 734 0]>>endobj -111 0 obj<</Subtype/Link/Rect[108.0 578.4 210.4 591.4]/Border[0 0 0]/Dest[1206 0 R/XYZ 0 304 0]>>endobj -112 0 obj<</Subtype/Link/Rect[108.0 565.2 231.1 578.2]/Border[0 0 0]/Dest[1208 0 R/XYZ 0 646 0]>>endobj -113 0 obj<</Subtype/Link/Rect[108.0 552.0 229.3 565.0]/Border[0 0 0]/Dest[1208 0 R/XYZ 0 299 0]>>endobj -114 0 obj<</Subtype/Link/Rect[108.0 538.8 210.0 551.8]/Border[0 0 0]/Dest[1208 0 R/XYZ 0 210 0]>>endobj -115 0 obj<</Subtype/Link/Rect[108.0 525.6 196.6 538.6]/Border[0 0 0]/Dest[1210 0 R/XYZ 0 734 0]>>endobj -116 0 obj<</Subtype/Link/Rect[72.0 499.2 192.4 512.2]/Border[0 0 0]/Dest[1212 0 R/XYZ 0 734 0]>>endobj -117 0 obj<</Subtype/Link/Rect[108.0 486.0 181.6 499.0]/Border[0 0 0]/Dest[1212 0 R/XYZ 0 696 0]>>endobj -118 0 obj<</Subtype/Link/Rect[108.0 472.8 323.7 485.8]/Border[0 0 0]/Dest[1212 0 R/XYZ 0 467 0]>>endobj -119 0 obj<</Subtype/Link/Rect[72.0 446.4 278.4 459.4]/Border[0 0 0]/Dest[1216 0 R/XYZ 0 734 0]>>endobj -120 0 obj<</Subtype/Link/Rect[108.0 433.2 305.4 446.2]/Border[0 0 0]/Dest[1216 0 R/XYZ 0 696 0]>>endobj -121 0 obj<</Subtype/Link/Rect[108.0 420.0 293.5 433.0]/Border[0 0 0]/Dest[1218 0 R/XYZ 0 362 0]>>endobj -122 0 obj<</Subtype/Link/Rect[108.0 406.8 313.4 419.8]/Border[0 0 0]/Dest[1218 0 R/XYZ 0 155 0]>>endobj -123 0 obj<</Subtype/Link/Rect[72.0 380.4 431.7 393.4]/Border[0 0 0]/Dest[1222 0 R/XYZ 0 734 0]>>endobj -124 0 obj<</Subtype/Link/Rect[108.0 367.2 170.0 380.2]/Border[0 0 0]/Dest[1222 0 R/XYZ 0 672 0]>>endobj -125 0 obj<</Subtype/Link/Rect[108.0 354.0 187.1 367.0]/Border[0 0 0]/Dest[1222 0 R/XYZ 0 544 0]>>endobj -126 0 obj<</Subtype/Link/Rect[108.0 340.8 239.1 353.8]/Border[0 0 0]/Dest[1222 0 R/XYZ 0 231 0]>>endobj -127 0 obj<</Subtype/Link/Rect[144.0 327.6 229.8 340.6]/Border[0 0 0]/Dest[1224 0 R/XYZ 0 560 0]>>endobj -128 0 obj<</Subtype/Link/Rect[108.0 314.4 227.5 327.4]/Border[0 0 0]/Dest[1224 0 R/XYZ 0 409 0]>>endobj -129 0 obj<</Subtype/Link/Rect[144.0 301.2 330.1 314.2]/Border[0 0 0]/Dest[1224 0 R/XYZ 0 294 0]>>endobj -130 0 obj<</Subtype/Link/Rect[144.0 288.0 272.3 301.0]/Border[0 0 0]/Dest[1226 0 R/XYZ 0 734 0]>>endobj -131 0 obj<</Subtype/Link/Rect[144.0 274.8 330.4 287.8]/Border[0 0 0]/Dest[1226 0 R/XYZ 0 292 0]>>endobj -132 0 obj<</Subtype/Link/Rect[144.0 261.6 310.8 274.6]/Border[0 0 0]/Dest[1228 0 R/XYZ 0 665 0]>>endobj -133 0 obj<</Subtype/Link/Rect[144.0 248.4 244.5 261.4]/Border[0 0 0]/Dest[1228 0 R/XYZ 0 488 0]>>endobj -134 0 obj<</Subtype/Link/Rect[108.0 235.2 265.4 248.2]/Border[0 0 0]/Dest[1228 0 R/XYZ 0 351 0]>>endobj -135 0 obj<</Subtype/Link/Rect[144.0 222.0 231.4 235.0]/Border[0 0 0]/Dest[1228 0 R/XYZ 0 209 0]>>endobj -136 0 obj<</Subtype/Link/Rect[144.0 208.8 238.1 221.8]/Border[0 0 0]/Dest[1230 0 R/XYZ 0 599 0]>>endobj -137 0 obj<</Subtype/Link/Rect[144.0 195.6 262.6 208.6]/Border[0 0 0]/Dest[1230 0 R/XYZ 0 330 0]>>endobj -138 0 obj<</Subtype/Link/Rect[108.0 182.4 183.5 195.4]/Border[0 0 0]/Dest[1244 0 R/XYZ 0 296 0]>>endobj -139 0 obj<</Subtype/Link/Rect[108.0 169.2 182.9 182.2]/Border[0 0 0]/Dest[1246 0 R/XYZ 0 734 0]>>endobj -140 0 obj<</Subtype/Link/Rect[72.0 142.8 421.8 155.8]/Border[0 0 0]/Dest[1248 0 R/XYZ 0 734 0]>>endobj -141 0 obj<</Subtype/Link/Rect[108.0 129.6 224.7 142.6]/Border[0 0 0]/Dest[1248 0 R/XYZ 0 672 0]>>endobj -142 0 obj<</Subtype/Link/Rect[108.0 116.4 186.5 129.4]/Border[0 0 0]/Dest[1248 0 R/XYZ 0 584 0]>>endobj -143 0 obj<</Subtype/Link/Rect[108.0 103.2 321.6 116.2]/Border[0 0 0]/Dest[1250 0 R/XYZ 0 718 0]>>endobj -144 0 obj<</Subtype/Link/Rect[108.0 90.0 435.5 103.0]/Border[0 0 0]/Dest[1252 0 R/XYZ 0 613 0]>>endobj -145 0 obj<</Subtype/Link/Rect[144.0 76.8 374.7 89.8]/Border[0 0 0]/Dest[1252 0 R/XYZ 0 227 0]>>endobj -146 0 obj<</Subtype/Link/Rect[144.0 63.6 404.0 76.6]/Border[0 0 0]/Dest[1254 0 R/XYZ 0 359 0]>>endobj +104 0 obj<</Subtype/Link/Rect[72.0 684.0 224.2 697.0]/Border[0 0 0]/Dest[1159 0 R/XYZ 0 734 0]>>endobj +105 0 obj<</Subtype/Link/Rect[108.0 670.8 280.9 683.8]/Border[0 0 0]/Dest[1171 0 R/XYZ 0 357 0]>>endobj +106 0 obj<</Subtype/Link/Rect[72.0 644.4 212.0 657.4]/Border[0 0 0]/Dest[1175 0 R/XYZ 0 734 0]>>endobj +107 0 obj<</Subtype/Link/Rect[108.0 631.2 162.4 644.2]/Border[0 0 0]/Dest[1175 0 R/XYZ 0 696 0]>>endobj +108 0 obj<</Subtype/Link/Rect[108.0 618.0 232.7 631.0]/Border[0 0 0]/Dest[1177 0 R/XYZ 0 734 0]>>endobj +109 0 obj<</Subtype/Link/Rect[108.0 604.8 216.7 617.8]/Border[0 0 0]/Dest[1177 0 R/XYZ 0 272 0]>>endobj +110 0 obj<</Subtype/Link/Rect[108.0 591.6 267.8 604.6]/Border[0 0 0]/Dest[1179 0 R/XYZ 0 734 0]>>endobj +111 0 obj<</Subtype/Link/Rect[108.0 578.4 191.1 591.4]/Border[0 0 0]/Dest[1179 0 R/XYZ 0 301 0]>>endobj +112 0 obj<</Subtype/Link/Rect[108.0 565.2 211.9 578.2]/Border[0 0 0]/Dest[1181 0 R/XYZ 0 617 0]>>endobj +113 0 obj<</Subtype/Link/Rect[108.0 552.0 210.1 565.0]/Border[0 0 0]/Dest[1181 0 R/XYZ 0 264 0]>>endobj +114 0 obj<</Subtype/Link/Rect[108.0 538.8 190.8 551.8]/Border[0 0 0]/Dest[1181 0 R/XYZ 0 175 0]>>endobj +115 0 obj<</Subtype/Link/Rect[108.0 525.6 177.4 538.6]/Border[0 0 0]/Dest[1183 0 R/XYZ 0 734 0]>>endobj +116 0 obj<</Subtype/Link/Rect[72.0 499.2 139.5 512.2]/Border[0 0 0]/Dest[1185 0 R/XYZ 0 734 0]>>endobj +117 0 obj<</Subtype/Link/Rect[108.0 486.0 162.4 499.0]/Border[0 0 0]/Dest[1185 0 R/XYZ 0 696 0]>>endobj +118 0 obj<</Subtype/Link/Rect[108.0 472.8 304.4 485.8]/Border[0 0 0]/Dest[1185 0 R/XYZ 0 465 0]>>endobj +119 0 obj<</Subtype/Link/Rect[72.0 446.4 220.1 459.4]/Border[0 0 0]/Dest[1189 0 R/XYZ 0 734 0]>>endobj +120 0 obj<</Subtype/Link/Rect[108.0 433.2 280.6 446.2]/Border[0 0 0]/Dest[1189 0 R/XYZ 0 696 0]>>endobj +121 0 obj<</Subtype/Link/Rect[108.0 420.0 268.7 433.0]/Border[0 0 0]/Dest[1191 0 R/XYZ 0 362 0]>>endobj +122 0 obj<</Subtype/Link/Rect[108.0 406.8 288.6 419.8]/Border[0 0 0]/Dest[1191 0 R/XYZ 0 155 0]>>endobj +123 0 obj<</Subtype/Link/Rect[72.0 380.4 373.3 393.4]/Border[0 0 0]/Dest[1195 0 R/XYZ 0 734 0]>>endobj +124 0 obj<</Subtype/Link/Rect[108.0 367.2 145.3 380.2]/Border[0 0 0]/Dest[1195 0 R/XYZ 0 672 0]>>endobj +125 0 obj<</Subtype/Link/Rect[108.0 354.0 162.4 367.0]/Border[0 0 0]/Dest[1195 0 R/XYZ 0 544 0]>>endobj +126 0 obj<</Subtype/Link/Rect[108.0 340.8 214.3 353.8]/Border[0 0 0]/Dest[1195 0 R/XYZ 0 231 0]>>endobj +127 0 obj<</Subtype/Link/Rect[126.0 327.6 178.8 340.6]/Border[0 0 0]/Dest[1197 0 R/XYZ 0 560 0]>>endobj +128 0 obj<</Subtype/Link/Rect[108.0 314.4 202.7 327.4]/Border[0 0 0]/Dest[1197 0 R/XYZ 0 409 0]>>endobj +129 0 obj<</Subtype/Link/Rect[126.0 301.2 279.1 314.2]/Border[0 0 0]/Dest[1197 0 R/XYZ 0 294 0]>>endobj +130 0 obj<</Subtype/Link/Rect[126.0 288.0 221.3 301.0]/Border[0 0 0]/Dest[1199 0 R/XYZ 0 734 0]>>endobj +131 0 obj<</Subtype/Link/Rect[126.0 274.8 279.4 287.8]/Border[0 0 0]/Dest[1199 0 R/XYZ 0 292 0]>>endobj +132 0 obj<</Subtype/Link/Rect[126.0 261.6 259.8 274.6]/Border[0 0 0]/Dest[1201 0 R/XYZ 0 665 0]>>endobj +133 0 obj<</Subtype/Link/Rect[126.0 248.4 193.5 261.4]/Border[0 0 0]/Dest[1201 0 R/XYZ 0 488 0]>>endobj +134 0 obj<</Subtype/Link/Rect[108.0 235.2 240.6 248.2]/Border[0 0 0]/Dest[1201 0 R/XYZ 0 351 0]>>endobj +135 0 obj<</Subtype/Link/Rect[126.0 222.0 180.4 235.0]/Border[0 0 0]/Dest[1201 0 R/XYZ 0 209 0]>>endobj +136 0 obj<</Subtype/Link/Rect[126.0 208.8 187.1 221.8]/Border[0 0 0]/Dest[1203 0 R/XYZ 0 599 0]>>endobj +137 0 obj<</Subtype/Link/Rect[126.0 195.6 211.6 208.6]/Border[0 0 0]/Dest[1203 0 R/XYZ 0 330 0]>>endobj +138 0 obj<</Subtype/Link/Rect[108.0 182.4 158.7 195.4]/Border[0 0 0]/Dest[1217 0 R/XYZ 0 217 0]>>endobj +139 0 obj<</Subtype/Link/Rect[108.0 169.2 158.1 182.2]/Border[0 0 0]/Dest[1219 0 R/XYZ 0 679 0]>>endobj +140 0 obj<</Subtype/Link/Rect[72.0 142.8 363.5 155.8]/Border[0 0 0]/Dest[1221 0 R/XYZ 0 734 0]>>endobj +141 0 obj<</Subtype/Link/Rect[108.0 129.6 200.0 142.6]/Border[0 0 0]/Dest[1221 0 R/XYZ 0 672 0]>>endobj +142 0 obj<</Subtype/Link/Rect[108.0 116.4 161.8 129.4]/Border[0 0 0]/Dest[1221 0 R/XYZ 0 584 0]>>endobj +143 0 obj<</Subtype/Link/Rect[108.0 103.2 296.8 116.2]/Border[0 0 0]/Dest[1223 0 R/XYZ 0 718 0]>>endobj +144 0 obj<</Subtype/Link/Rect[108.0 90.0 410.8 103.0]/Border[0 0 0]/Dest[1225 0 R/XYZ 0 613 0]>>endobj +145 0 obj<</Subtype/Link/Rect[126.0 76.8 323.7 89.8]/Border[0 0 0]/Dest[1225 0 R/XYZ 0 227 0]>>endobj +146 0 obj<</Subtype/Link/Rect[126.0 63.6 353.0 76.6]/Border[0 0 0]/Dest[1227 0 R/XYZ 0 356 0]>>endobj 147 0 obj[104 0 R 105 0 R 106 0 R @@ -275,50 +275,50 @@ 144 0 R 145 0 R 146 0 R]endobj -148 0 obj<</Subtype/Link/Rect[72.0 684.0 421.8 697.0]/Border[0 0 0]/Dest[1248 0 R/XYZ 0 734 0]>>endobj -149 0 obj<</Subtype/Link/Rect[144.0 670.8 320.9 683.8]/Border[0 0 0]/Dest[1254 0 R/XYZ 0 149 0]>>endobj -150 0 obj<</Subtype/Link/Rect[108.0 657.6 266.9 670.6]/Border[0 0 0]/Dest[1256 0 R/XYZ 0 467 0]>>endobj -151 0 obj<</Subtype/Link/Rect[108.0 644.4 258.3 657.4]/Border[0 0 0]/Dest[1258 0 R/XYZ 0 208 0]>>endobj -152 0 obj<</Subtype/Link/Rect[108.0 631.2 249.1 644.2]/Border[0 0 0]/Dest[1260 0 R/XYZ 0 203 0]>>endobj -153 0 obj<</Subtype/Link/Rect[108.0 618.0 298.4 631.0]/Border[0 0 0]/Dest[1266 0 R/XYZ 0 547 0]>>endobj -154 0 obj<</Subtype/Link/Rect[144.0 604.8 373.5 617.8]/Border[0 0 0]/Dest[1268 0 R/XYZ 0 560 0]>>endobj -155 0 obj<</Subtype/Link/Rect[144.0 591.6 447.7 604.6]/Border[0 0 0]/Dest[1268 0 R/XYZ 0 126 0]>>endobj -156 0 obj<</Subtype/Link/Rect[108.0 578.4 436.5 591.4]/Border[0 0 0]/Dest[1276 0 R/XYZ 0 135 0]>>endobj -157 0 obj<</Subtype/Link/Rect[72.0 552.0 518.1 565.0]/Border[0 0 0]/Dest[1282 0 R/XYZ 0 734 0]>>endobj -158 0 obj<</Subtype/Link/Rect[108.0 538.8 224.7 551.8]/Border[0 0 0]/Dest[1282 0 R/XYZ 0 672 0]>>endobj -159 0 obj<</Subtype/Link/Rect[108.0 525.6 186.5 538.6]/Border[0 0 0]/Dest[1282 0 R/XYZ 0 597 0]>>endobj -160 0 obj<</Subtype/Link/Rect[108.0 512.4 364.6 525.4]/Border[0 0 0]/Dest[1282 0 R/XYZ 0 225 0]>>endobj -161 0 obj<</Subtype/Link/Rect[144.0 499.2 405.8 512.2]/Border[0 0 0]/Dest[1284 0 R/XYZ 0 734 0]>>endobj -162 0 obj<</Subtype/Link/Rect[144.0 486.0 292.5 499.0]/Border[0 0 0]/Dest[1284 0 R/XYZ 0 609 0]>>endobj -163 0 obj<</Subtype/Link/Rect[108.0 472.8 331.3 485.8]/Border[0 0 0]/Dest[1284 0 R/XYZ 0 524 0]>>endobj -164 0 obj<</Subtype/Link/Rect[108.0 459.6 273.6 472.6]/Border[0 0 0]/Dest[1284 0 R/XYZ 0 383 0]>>endobj -165 0 obj<</Subtype/Link/Rect[144.0 446.4 351.1 459.4]/Border[0 0 0]/Dest[1286 0 R/XYZ 0 620 0]>>endobj -166 0 obj<</Subtype/Link/Rect[72.0 420.0 484.2 433.0]/Border[0 0 0]/Dest[1288 0 R/XYZ 0 734 0]>>endobj -167 0 obj<</Subtype/Link/Rect[108.0 406.8 168.2 419.8]/Border[0 0 0]/Dest[1288 0 R/XYZ 0 672 0]>>endobj -168 0 obj<</Subtype/Link/Rect[108.0 393.6 187.1 406.6]/Border[0 0 0]/Dest[1288 0 R/XYZ 0 412 0]>>endobj -169 0 obj<</Subtype/Link/Rect[108.0 380.4 245.2 393.4]/Border[0 0 0]/Dest[1290 0 R/XYZ 0 573 0]>>endobj -170 0 obj<</Subtype/Link/Rect[108.0 367.2 384.2 380.2]/Border[0 0 0]/Dest[1290 0 R/XYZ 0 471 0]>>endobj -171 0 obj<</Subtype/Link/Rect[108.0 354.0 273.0 367.0]/Border[0 0 0]/Dest[1292 0 R/XYZ 0 734 0]>>endobj -172 0 obj<</Subtype/Link/Rect[144.0 340.8 291.6 353.8]/Border[0 0 0]/Dest[1292 0 R/XYZ 0 700 0]>>endobj -173 0 obj<</Subtype/Link/Rect[144.0 327.6 263.5 340.6]/Border[0 0 0]/Dest[1292 0 R/XYZ 0 143 0]>>endobj -174 0 obj<</Subtype/Link/Rect[108.0 314.4 287.0 327.4]/Border[0 0 0]/Dest[1294 0 R/XYZ 0 243 0]>>endobj -175 0 obj<</Subtype/Link/Rect[108.0 301.2 256.2 314.2]/Border[0 0 0]/Dest[1296 0 R/XYZ 0 718 0]>>endobj -176 0 obj<</Subtype/Link/Rect[108.0 288.0 330.7 301.0]/Border[0 0 0]/Dest[1296 0 R/XYZ 0 336 0]>>endobj -177 0 obj<</Subtype/Link/Rect[108.0 274.8 324.3 287.8]/Border[0 0 0]/Dest[1298 0 R/XYZ 0 322 0]>>endobj -178 0 obj<</Subtype/Link/Rect[108.0 261.6 185.9 274.6]/Border[0 0 0]/Dest[1300 0 R/XYZ 0 492 0]>>endobj -179 0 obj<</Subtype/Link/Rect[72.0 235.2 347.9 248.2]/Border[0 0 0]/Dest[1302 0 R/XYZ 0 734 0]>>endobj -180 0 obj<</Subtype/Link/Rect[108.0 222.0 323.1 235.0]/Border[0 0 0]/Dest[1302 0 R/XYZ 0 500 0]>>endobj -181 0 obj<</Subtype/Link/Rect[108.0 208.8 324.9 221.8]/Border[0 0 0]/Dest[1302 0 R/XYZ 0 393 0]>>endobj -182 0 obj<</Subtype/Link/Rect[108.0 195.6 203.3 208.6]/Border[0 0 0]/Dest[1302 0 R/XYZ 0 217 0]>>endobj -183 0 obj<</Subtype/Link/Rect[108.0 182.4 244.9 195.4]/Border[0 0 0]/Dest[1304 0 R/XYZ 0 530 0]>>endobj -184 0 obj<</Subtype/Link/Rect[108.0 169.2 258.9 182.2]/Border[0 0 0]/Dest[1304 0 R/XYZ 0 213 0]>>endobj -185 0 obj<</Subtype/Link/Rect[144.0 156.0 242.1 169.0]/Border[0 0 0]/Dest[1304 0 R/XYZ 0 125 0]>>endobj -186 0 obj<</Subtype/Link/Rect[108.0 142.8 230.2 155.8]/Border[0 0 0]/Dest[1306 0 R/XYZ 0 665 0]>>endobj -187 0 obj<</Subtype/Link/Rect[108.0 129.6 233.6 142.6]/Border[0 0 0]/Dest[1306 0 R/XYZ 0 577 0]>>endobj -188 0 obj<</Subtype/Link/Rect[108.0 116.4 158.4 129.4]/Border[0 0 0]/Dest[1306 0 R/XYZ 0 502 0]>>endobj -189 0 obj<</Subtype/Link/Rect[72.0 90.0 268.2 103.0]/Border[0 0 0]/Dest[1308 0 R/XYZ 0 734 0]>>endobj -190 0 obj<</Subtype/Link/Rect[108.0 76.8 231.7 89.8]/Border[0 0 0]/Dest[1308 0 R/XYZ 0 696 0]>>endobj -191 0 obj<</Subtype/Link/Rect[108.0 63.6 253.4 76.6]/Border[0 0 0]/Dest[1308 0 R/XYZ 0 515 0]>>endobj +148 0 obj<</Subtype/Link/Rect[72.0 684.0 363.5 697.0]/Border[0 0 0]/Dest[1221 0 R/XYZ 0 734 0]>>endobj +149 0 obj<</Subtype/Link/Rect[126.0 670.8 269.9 683.8]/Border[0 0 0]/Dest[1227 0 R/XYZ 0 143 0]>>endobj +150 0 obj<</Subtype/Link/Rect[108.0 657.6 242.1 670.6]/Border[0 0 0]/Dest[1229 0 R/XYZ 0 467 0]>>endobj +151 0 obj<</Subtype/Link/Rect[108.0 644.4 233.6 657.4]/Border[0 0 0]/Dest[1231 0 R/XYZ 0 205 0]>>endobj +152 0 obj<</Subtype/Link/Rect[108.0 631.2 224.4 644.2]/Border[0 0 0]/Dest[1233 0 R/XYZ 0 203 0]>>endobj +153 0 obj<</Subtype/Link/Rect[108.0 618.0 273.6 631.0]/Border[0 0 0]/Dest[1239 0 R/XYZ 0 547 0]>>endobj +154 0 obj<</Subtype/Link/Rect[126.0 604.8 322.5 617.8]/Border[0 0 0]/Dest[1241 0 R/XYZ 0 560 0]>>endobj +155 0 obj<</Subtype/Link/Rect[126.0 591.6 396.7 604.6]/Border[0 0 0]/Dest[1241 0 R/XYZ 0 126 0]>>endobj +156 0 obj<</Subtype/Link/Rect[108.0 578.4 411.7 591.4]/Border[0 0 0]/Dest[1249 0 R/XYZ 0 135 0]>>endobj +157 0 obj<</Subtype/Link/Rect[72.0 552.0 459.8 565.0]/Border[0 0 0]/Dest[1255 0 R/XYZ 0 734 0]>>endobj +158 0 obj<</Subtype/Link/Rect[108.0 538.8 200.0 551.8]/Border[0 0 0]/Dest[1255 0 R/XYZ 0 672 0]>>endobj +159 0 obj<</Subtype/Link/Rect[108.0 525.6 161.8 538.6]/Border[0 0 0]/Dest[1255 0 R/XYZ 0 597 0]>>endobj +160 0 obj<</Subtype/Link/Rect[108.0 512.4 339.9 525.4]/Border[0 0 0]/Dest[1255 0 R/XYZ 0 223 0]>>endobj +161 0 obj<</Subtype/Link/Rect[126.0 499.2 354.8 512.2]/Border[0 0 0]/Dest[1257 0 R/XYZ 0 734 0]>>endobj +162 0 obj<</Subtype/Link/Rect[126.0 486.0 241.5 499.0]/Border[0 0 0]/Dest[1257 0 R/XYZ 0 609 0]>>endobj +163 0 obj<</Subtype/Link/Rect[108.0 472.8 306.6 485.8]/Border[0 0 0]/Dest[1257 0 R/XYZ 0 524 0]>>endobj +164 0 obj<</Subtype/Link/Rect[108.0 459.6 248.8 472.6]/Border[0 0 0]/Dest[1257 0 R/XYZ 0 383 0]>>endobj +165 0 obj<</Subtype/Link/Rect[126.0 446.4 300.1 459.4]/Border[0 0 0]/Dest[1259 0 R/XYZ 0 617 0]>>endobj +166 0 obj<</Subtype/Link/Rect[72.0 420.0 425.8 433.0]/Border[0 0 0]/Dest[1261 0 R/XYZ 0 734 0]>>endobj +167 0 obj<</Subtype/Link/Rect[108.0 406.8 143.4 419.8]/Border[0 0 0]/Dest[1261 0 R/XYZ 0 672 0]>>endobj +168 0 obj<</Subtype/Link/Rect[108.0 393.6 162.4 406.6]/Border[0 0 0]/Dest[1261 0 R/XYZ 0 412 0]>>endobj +169 0 obj<</Subtype/Link/Rect[108.0 380.4 220.4 393.4]/Border[0 0 0]/Dest[1263 0 R/XYZ 0 573 0]>>endobj +170 0 obj<</Subtype/Link/Rect[108.0 367.2 359.5 380.2]/Border[0 0 0]/Dest[1263 0 R/XYZ 0 471 0]>>endobj +171 0 obj<</Subtype/Link/Rect[108.0 354.0 248.3 367.0]/Border[0 0 0]/Dest[1265 0 R/XYZ 0 734 0]>>endobj +172 0 obj<</Subtype/Link/Rect[126.0 340.8 240.6 353.8]/Border[0 0 0]/Dest[1265 0 R/XYZ 0 700 0]>>endobj +173 0 obj<</Subtype/Link/Rect[126.0 327.6 212.5 340.6]/Border[0 0 0]/Dest[1265 0 R/XYZ 0 138 0]>>endobj +174 0 obj<</Subtype/Link/Rect[108.0 314.4 262.3 327.4]/Border[0 0 0]/Dest[1267 0 R/XYZ 0 227 0]>>endobj +175 0 obj<</Subtype/Link/Rect[108.0 301.2 231.4 314.2]/Border[0 0 0]/Dest[1269 0 R/XYZ 0 705 0]>>endobj +176 0 obj<</Subtype/Link/Rect[108.0 288.0 306.0 301.0]/Border[0 0 0]/Dest[1269 0 R/XYZ 0 320 0]>>endobj +177 0 obj<</Subtype/Link/Rect[108.0 274.8 299.5 287.8]/Border[0 0 0]/Dest[1271 0 R/XYZ 0 309 0]>>endobj +178 0 obj<</Subtype/Link/Rect[108.0 261.6 155.7 274.6]/Border[0 0 0]/Dest[1273 0 R/XYZ 0 478 0]>>endobj +179 0 obj<</Subtype/Link/Rect[72.0 235.2 209.8 248.2]/Border[0 0 0]/Dest[1275 0 R/XYZ 0 734 0]>>endobj +180 0 obj<</Subtype/Link/Rect[108.0 222.0 207.0 235.0]/Border[0 0 0]/Dest[1275 0 R/XYZ 0 696 0]>>endobj +181 0 obj<</Subtype/Link/Rect[108.0 208.8 228.7 221.8]/Border[0 0 0]/Dest[1275 0 R/XYZ 0 515 0]>>endobj +182 0 obj<</Subtype/Link/Rect[108.0 195.6 192.0 208.6]/Border[0 0 0]/Dest[1275 0 R/XYZ 0 137 0]>>endobj +183 0 obj<</Subtype/Link/Rect[108.0 182.4 216.8 195.4]/Border[0 0 0]/Dest[1277 0 R/XYZ 0 533 0]>>endobj +184 0 obj<</Subtype/Link/Rect[126.0 169.2 303.8 182.2]/Border[0 0 0]/Dest[1277 0 R/XYZ 0 273 0]>>endobj +185 0 obj<</Subtype/Link/Rect[108.0 156.0 221.0 169.0]/Border[0 0 0]/Dest[1283 0 R/XYZ 0 511 0]>>endobj +186 0 obj<</Subtype/Link/Rect[108.0 142.8 291.0 155.8]/Border[0 0 0]/Dest[1285 0 R/XYZ 0 560 0]>>endobj +187 0 obj<</Subtype/Link/Rect[108.0 129.6 265.4 142.6]/Border[0 0 0]/Dest[1287 0 R/XYZ 0 567 0]>>endobj +188 0 obj<</Subtype/Link/Rect[108.0 116.4 245.8 129.4]/Border[0 0 0]/Dest[1287 0 R/XYZ 0 208 0]>>endobj +189 0 obj<</Subtype/Link/Rect[108.0 103.2 257.1 116.2]/Border[0 0 0]/Dest[1289 0 R/XYZ 0 454 0]>>endobj +190 0 obj<</Subtype/Link/Rect[108.0 90.0 246.4 103.0]/Border[0 0 0]/Dest[1291 0 R/XYZ 0 679 0]>>endobj +191 0 obj<</Subtype/Link/Rect[108.0 76.8 191.4 89.8]/Border[0 0 0]/Dest[1291 0 R/XYZ 0 590 0]>>endobj 192 0 obj[148 0 R 149 0 R 150 0 R @@ -363,53 +363,52 @@ 189 0 R 190 0 R 191 0 R]endobj -193 0 obj<</Subtype/Link/Rect[72.0 684.0 268.2 697.0]/Border[0 0 0]/Dest[1308 0 R/XYZ 0 734 0]>>endobj -194 0 obj<</Subtype/Link/Rect[108.0 670.8 216.8 683.8]/Border[0 0 0]/Dest[1308 0 R/XYZ 0 137 0]>>endobj -195 0 obj<</Subtype/Link/Rect[108.0 657.6 241.5 670.6]/Border[0 0 0]/Dest[1310 0 R/XYZ 0 533 0]>>endobj -196 0 obj<</Subtype/Link/Rect[144.0 644.4 354.8 657.4]/Border[0 0 0]/Dest[1310 0 R/XYZ 0 273 0]>>endobj -197 0 obj<</Subtype/Link/Rect[108.0 631.2 245.8 644.2]/Border[0 0 0]/Dest[1316 0 R/XYZ 0 560 0]>>endobj -198 0 obj<</Subtype/Link/Rect[108.0 618.0 315.8 631.0]/Border[0 0 0]/Dest[1318 0 R/XYZ 0 613 0]>>endobj -199 0 obj<</Subtype/Link/Rect[108.0 604.8 290.1 617.8]/Border[0 0 0]/Dest[1320 0 R/XYZ 0 622 0]>>endobj -200 0 obj<</Subtype/Link/Rect[108.0 591.6 270.5 604.6]/Border[0 0 0]/Dest[1320 0 R/XYZ 0 266 0]>>endobj -201 0 obj<</Subtype/Link/Rect[108.0 578.4 281.8 591.4]/Border[0 0 0]/Dest[1322 0 R/XYZ 0 520 0]>>endobj -202 0 obj<</Subtype/Link/Rect[108.0 565.2 276.6 578.2]/Border[0 0 0]/Dest[1324 0 R/XYZ 0 734 0]>>endobj -203 0 obj<</Subtype/Link/Rect[108.0 552.0 221.7 565.0]/Border[0 0 0]/Dest[1324 0 R/XYZ 0 645 0]>>endobj -204 0 obj<</Subtype/Link/Rect[72.0 525.6 255.6 538.6]/Border[0 0 0]/Dest[1326 0 R/XYZ 0 734 0]>>endobj -205 0 obj<</Subtype/Link/Rect[108.0 512.4 190.8 525.4]/Border[0 0 0]/Dest[1326 0 R/XYZ 0 696 0]>>endobj -206 0 obj<</Subtype/Link/Rect[108.0 499.2 169.4 512.2]/Border[0 0 0]/Dest[1326 0 R/XYZ 0 449 0]>>endobj -207 0 obj<</Subtype/Link/Rect[144.0 486.0 220.4 499.0]/Border[0 0 0]/Dest[1326 0 R/XYZ 0 416 0]>>endobj -208 0 obj<</Subtype/Link/Rect[144.0 472.8 247.0 485.8]/Border[0 0 0]/Dest[1326 0 R/XYZ 0 146 0]>>endobj -209 0 obj<</Subtype/Link/Rect[144.0 459.6 346.3 472.6]/Border[0 0 0]/Dest[1328 0 R/XYZ 0 652 0]>>endobj -210 0 obj<</Subtype/Link/Rect[108.0 446.4 197.8 459.4]/Border[0 0 0]/Dest[1328 0 R/XYZ 0 515 0]>>endobj -211 0 obj<</Subtype/Link/Rect[108.0 433.2 175.2 446.2]/Border[0 0 0]/Dest[1328 0 R/XYZ 0 255 0]>>endobj -212 0 obj<</Subtype/Link/Rect[108.0 420.0 175.8 433.0]/Border[0 0 0]/Dest[1330 0 R/XYZ 0 718 0]>>endobj -213 0 obj<</Subtype/Link/Rect[108.0 406.8 169.4 419.8]/Border[0 0 0]/Dest[1330 0 R/XYZ 0 537 0]>>endobj -214 0 obj<</Subtype/Link/Rect[108.0 393.6 189.3 406.6]/Border[0 0 0]/Dest[1330 0 R/XYZ 0 409 0]>>endobj -215 0 obj<</Subtype/Link/Rect[108.0 380.4 174.6 393.4]/Border[0 0 0]/Dest[1330 0 R/XYZ 0 189 0]>>endobj -216 0 obj<</Subtype/Link/Rect[108.0 367.2 180.1 380.2]/Border[0 0 0]/Dest[1332 0 R/XYZ 0 734 0]>>endobj -217 0 obj<</Subtype/Link/Rect[108.0 354.0 180.1 367.0]/Border[0 0 0]/Dest[1332 0 R/XYZ 0 645 0]>>endobj -218 0 obj<</Subtype/Link/Rect[108.0 340.8 182.5 353.8]/Border[0 0 0]/Dest[1332 0 R/XYZ 0 477 0]>>endobj -219 0 obj<</Subtype/Link/Rect[108.0 327.6 208.2 340.6]/Border[0 0 0]/Dest[1332 0 R/XYZ 0 349 0]>>endobj -220 0 obj<</Subtype/Link/Rect[108.0 314.4 217.4 327.4]/Border[0 0 0]/Dest[1332 0 R/XYZ 0 129 0]>>endobj -221 0 obj<</Subtype/Link/Rect[108.0 301.2 194.8 314.2]/Border[0 0 0]/Dest[1334 0 R/XYZ 0 639 0]>>endobj -222 0 obj<</Subtype/Link/Rect[108.0 288.0 194.2 301.0]/Border[0 0 0]/Dest[1334 0 R/XYZ 0 511 0]>>endobj -223 0 obj<</Subtype/Link/Rect[108.0 274.8 196.0 287.8]/Border[0 0 0]/Dest[1334 0 R/XYZ 0 436 0]>>endobj -224 0 obj<</Subtype/Link/Rect[108.0 261.6 188.7 274.6]/Border[0 0 0]/Dest[1336 0 R/XYZ 0 388 0]>>endobj -225 0 obj<</Subtype/Link/Rect[72.0 235.2 271.5 248.2]/Border[0 0 0]/Dest[1338 0 R/XYZ 0 734 0]>>endobj -226 0 obj<</Subtype/Link/Rect[108.0 222.0 215.5 235.0]/Border[0 0 0]/Dest[1338 0 R/XYZ 0 668 0]>>endobj -227 0 obj<</Subtype/Link/Rect[108.0 208.8 182.0 221.8]/Border[0 0 0]/Dest[1338 0 R/XYZ 0 461 0]>>endobj -228 0 obj<</Subtype/Link/Rect[144.0 195.6 532.3 208.6]/Border[0 0 0]/Dest[1338 0 R/XYZ 0 427 0]>>endobj -229 0 obj<</Subtype/Link/Rect[144.0 182.4 499.9 195.4]/Border[0 0 0]/Dest[1340 0 R/XYZ 0 734 0]>>endobj -230 0 obj<</Subtype/Link/Rect[144.0 169.2 181.6 182.2]/Border[0 0 0]/Dest[1340 0 R/XYZ 0 734 0]>>endobj -231 0 obj<</Subtype/Link/Rect[144.0 156.0 488.9 169.0]/Border[0 0 0]/Dest[1340 0 R/XYZ 0 523 0]>>endobj -232 0 obj<</Subtype/Link/Rect[144.0 142.8 458.7 155.8]/Border[0 0 0]/Dest[1340 0 R/XYZ 0 408 0]>>endobj -233 0 obj<</Subtype/Link/Rect[108.0 129.6 248.2 142.6]/Border[0 0 0]/Dest[1340 0 R/XYZ 0 151 0]>>endobj -234 0 obj<</Subtype/Link/Rect[144.0 116.4 351.5 129.4]/Border[0 0 0]/Dest[1340 0 R/XYZ 0 118 0]>>endobj -235 0 obj<</Subtype/Link/Rect[144.0 103.2 350.5 116.2]/Border[0 0 0]/Dest[1342 0 R/XYZ 0 626 0]>>endobj -236 0 obj<</Subtype/Link/Rect[144.0 90.0 334.3 103.0]/Border[0 0 0]/Dest[1342 0 R/XYZ 0 475 0]>>endobj -237 0 obj<</Subtype/Link/Rect[144.0 76.8 300.1 89.8]/Border[0 0 0]/Dest[1342 0 R/XYZ 0 377 0]>>endobj -238 0 obj<</Subtype/Link/Rect[108.0 63.6 206.7 76.6]/Border[0 0 0]/Dest[1342 0 R/XYZ 0 292 0]>>endobj -239 0 obj[193 0 R +193 0 obj<</Subtype/Link/Rect[72.0 684.0 197.3 697.0]/Border[0 0 0]/Dest[1293 0 R/XYZ 0 734 0]>>endobj +194 0 obj<</Subtype/Link/Rect[108.0 670.8 166.1 683.8]/Border[0 0 0]/Dest[1293 0 R/XYZ 0 696 0]>>endobj +195 0 obj<</Subtype/Link/Rect[108.0 657.6 144.7 670.6]/Border[0 0 0]/Dest[1293 0 R/XYZ 0 449 0]>>endobj +196 0 obj<</Subtype/Link/Rect[126.0 644.4 169.4 657.4]/Border[0 0 0]/Dest[1293 0 R/XYZ 0 416 0]>>endobj +197 0 obj<</Subtype/Link/Rect[126.0 631.2 196.0 644.2]/Border[0 0 0]/Dest[1293 0 R/XYZ 0 146 0]>>endobj +198 0 obj<</Subtype/Link/Rect[126.0 618.0 295.3 631.0]/Border[0 0 0]/Dest[1295 0 R/XYZ 0 652 0]>>endobj +199 0 obj<</Subtype/Link/Rect[108.0 604.8 173.1 617.8]/Border[0 0 0]/Dest[1295 0 R/XYZ 0 515 0]>>endobj +200 0 obj<</Subtype/Link/Rect[108.0 591.6 150.5 604.6]/Border[0 0 0]/Dest[1295 0 R/XYZ 0 255 0]>>endobj +201 0 obj<</Subtype/Link/Rect[108.0 578.4 151.1 591.4]/Border[0 0 0]/Dest[1297 0 R/XYZ 0 718 0]>>endobj +202 0 obj<</Subtype/Link/Rect[108.0 565.2 144.7 578.2]/Border[0 0 0]/Dest[1297 0 R/XYZ 0 537 0]>>endobj +203 0 obj<</Subtype/Link/Rect[108.0 552.0 164.5 565.0]/Border[0 0 0]/Dest[1297 0 R/XYZ 0 409 0]>>endobj +204 0 obj<</Subtype/Link/Rect[108.0 538.8 149.9 551.8]/Border[0 0 0]/Dest[1297 0 R/XYZ 0 189 0]>>endobj +205 0 obj<</Subtype/Link/Rect[108.0 525.6 155.4 538.6]/Border[0 0 0]/Dest[1299 0 R/XYZ 0 734 0]>>endobj +206 0 obj<</Subtype/Link/Rect[108.0 512.4 149.8 525.4]/Border[0 0 0]/Dest[1299 0 R/XYZ 0 645 0]>>endobj +207 0 obj<</Subtype/Link/Rect[108.0 499.2 152.3 512.2]/Border[0 0 0]/Dest[1299 0 R/XYZ 0 477 0]>>endobj +208 0 obj<</Subtype/Link/Rect[108.0 486.0 178.0 499.0]/Border[0 0 0]/Dest[1299 0 R/XYZ 0 349 0]>>endobj +209 0 obj<</Subtype/Link/Rect[108.0 472.8 187.1 485.8]/Border[0 0 0]/Dest[1299 0 R/XYZ 0 129 0]>>endobj +210 0 obj<</Subtype/Link/Rect[108.0 459.6 164.5 472.6]/Border[0 0 0]/Dest[1301 0 R/XYZ 0 639 0]>>endobj +211 0 obj<</Subtype/Link/Rect[108.0 446.4 163.9 459.4]/Border[0 0 0]/Dest[1301 0 R/XYZ 0 511 0]>>endobj +212 0 obj<</Subtype/Link/Rect[108.0 433.2 165.8 446.2]/Border[0 0 0]/Dest[1301 0 R/XYZ 0 436 0]>>endobj +213 0 obj<</Subtype/Link/Rect[108.0 420.0 158.4 433.0]/Border[0 0 0]/Dest[1303 0 R/XYZ 0 388 0]>>endobj +214 0 obj<</Subtype/Link/Rect[72.0 393.6 213.2 406.6]/Border[0 0 0]/Dest[1305 0 R/XYZ 0 734 0]>>endobj +215 0 obj<</Subtype/Link/Rect[108.0 380.4 190.8 393.4]/Border[0 0 0]/Dest[1305 0 R/XYZ 0 668 0]>>endobj +216 0 obj<</Subtype/Link/Rect[108.0 367.2 157.2 380.2]/Border[0 0 0]/Dest[1305 0 R/XYZ 0 461 0]>>endobj +217 0 obj<</Subtype/Link/Rect[126.0 354.0 481.3 367.0]/Border[0 0 0]/Dest[1305 0 R/XYZ 0 427 0]>>endobj +218 0 obj<</Subtype/Link/Rect[126.0 340.8 486.5 353.8]/Border[0 0 0]/Dest[1307 0 R/XYZ 0 734 0]>>endobj +219 0 obj<</Subtype/Link/Rect[126.0 327.6 437.9 340.6]/Border[0 0 0]/Dest[1307 0 R/XYZ 0 520 0]>>endobj +220 0 obj<</Subtype/Link/Rect[126.0 314.4 407.7 327.4]/Border[0 0 0]/Dest[1307 0 R/XYZ 0 422 0]>>endobj +221 0 obj<</Subtype/Link/Rect[108.0 301.2 223.5 314.2]/Border[0 0 0]/Dest[1307 0 R/XYZ 0 165 0]>>endobj +222 0 obj<</Subtype/Link/Rect[126.0 288.0 300.5 301.0]/Border[0 0 0]/Dest[1307 0 R/XYZ 0 132 0]>>endobj +223 0 obj<</Subtype/Link/Rect[126.0 274.8 299.5 287.8]/Border[0 0 0]/Dest[1309 0 R/XYZ 0 652 0]>>endobj +224 0 obj<</Subtype/Link/Rect[126.0 261.6 283.3 274.6]/Border[0 0 0]/Dest[1309 0 R/XYZ 0 501 0]>>endobj +225 0 obj<</Subtype/Link/Rect[126.0 248.4 249.1 261.4]/Border[0 0 0]/Dest[1309 0 R/XYZ 0 403 0]>>endobj +226 0 obj<</Subtype/Link/Rect[108.0 235.2 181.9 248.2]/Border[0 0 0]/Dest[1309 0 R/XYZ 0 319 0]>>endobj +227 0 obj<</Subtype/Link/Rect[108.0 222.0 243.0 235.0]/Border[0 0 0]/Dest[1311 0 R/XYZ 0 734 0]>>endobj +228 0 obj<</Subtype/Link/Rect[72.0 195.6 284.0 208.6]/Border[0 0 0]/Dest[1313 0 R/XYZ 0 734 0]>>endobj +229 0 obj<</Subtype/Link/Rect[108.0 182.4 162.4 195.4]/Border[0 0 0]/Dest[1313 0 R/XYZ 0 696 0]>>endobj +230 0 obj<</Subtype/Link/Rect[108.0 169.2 222.9 182.2]/Border[0 0 0]/Dest[1313 0 R/XYZ 0 581 0]>>endobj +231 0 obj<</Subtype/Link/Rect[126.0 156.0 215.8 169.0]/Border[0 0 0]/Dest[1313 0 R/XYZ 0 493 0]>>endobj +232 0 obj<</Subtype/Link/Rect[126.0 142.8 190.8 155.8]/Border[0 0 0]/Dest[1313 0 R/XYZ 0 382 0]>>endobj +233 0 obj<</Subtype/Link/Rect[72.0 116.4 145.6 129.4]/Border[0 0 0]/Dest[1317 0 R/XYZ 0 734 0]>>endobj +234 0 obj<</Subtype/Link/Rect[108.0 103.2 162.4 116.2]/Border[0 0 0]/Dest[1317 0 R/XYZ 0 696 0]>>endobj +235 0 obj<</Subtype/Link/Rect[108.0 90.0 163.3 103.0]/Border[0 0 0]/Dest[1317 0 R/XYZ 0 436 0]>>endobj +236 0 obj<</Subtype/Link/Rect[108.0 76.8 165.7 89.8]/Border[0 0 0]/Dest[1317 0 R/XYZ 0 295 0]>>endobj +237 0 obj<</Subtype/Link/Rect[108.0 63.6 170.6 76.6]/Border[0 0 0]/Dest[1319 0 R/XYZ 0 639 0]>>endobj +238 0 obj[193 0 R 194 0 R 195 0 R 196 0 R @@ -453,88 +452,77 @@ 234 0 R 235 0 R 236 0 R -237 0 R -238 0 R]endobj -240 0 obj<</Subtype/Link/Rect[72.0 684.0 271.5 697.0]/Border[0 0 0]/Dest[1338 0 R/XYZ 0 734 0]>>endobj -241 0 obj<</Subtype/Link/Rect[108.0 670.8 267.8 683.8]/Border[0 0 0]/Dest[1344 0 R/XYZ 0 718 0]>>endobj -242 0 obj<</Subtype/Link/Rect[72.0 644.4 342.4 657.4]/Border[0 0 0]/Dest[1346 0 R/XYZ 0 734 0]>>endobj -243 0 obj<</Subtype/Link/Rect[108.0 631.2 187.1 644.2]/Border[0 0 0]/Dest[1346 0 R/XYZ 0 672 0]>>endobj -244 0 obj<</Subtype/Link/Rect[108.0 618.0 247.6 631.0]/Border[0 0 0]/Dest[1346 0 R/XYZ 0 557 0]>>endobj -245 0 obj<</Subtype/Link/Rect[144.0 604.8 266.8 617.8]/Border[0 0 0]/Dest[1346 0 R/XYZ 0 469 0]>>endobj -246 0 obj<</Subtype/Link/Rect[144.0 591.6 241.8 604.6]/Border[0 0 0]/Dest[1346 0 R/XYZ 0 358 0]>>endobj -247 0 obj<</Subtype/Link/Rect[72.0 565.2 204.0 578.2]/Border[0 0 0]/Dest[1350 0 R/XYZ 0 734 0]>>endobj -248 0 obj<</Subtype/Link/Rect[108.0 552.0 187.1 565.0]/Border[0 0 0]/Dest[1350 0 R/XYZ 0 696 0]>>endobj -249 0 obj<</Subtype/Link/Rect[108.0 538.8 188.0 551.8]/Border[0 0 0]/Dest[1350 0 R/XYZ 0 436 0]>>endobj -250 0 obj<</Subtype/Link/Rect[108.0 525.6 190.5 538.6]/Border[0 0 0]/Dest[1350 0 R/XYZ 0 295 0]>>endobj -251 0 obj<</Subtype/Link/Rect[108.0 512.4 195.4 525.4]/Border[0 0 0]/Dest[1352 0 R/XYZ 0 639 0]>>endobj -252 0 obj<</Subtype/Link/Rect[108.0 499.2 267.8 512.2]/Border[0 0 0]/Dest[1352 0 R/XYZ 0 287 0]>>endobj -253 0 obj<</Subtype/Link/Rect[108.0 486.0 166.4 499.0]/Border[0 0 0]/Dest[1352 0 R/XYZ 0 185 0]>>endobj -254 0 obj<</Subtype/Link/Rect[72.0 459.6 252.6 472.6]/Border[0 0 0]/Dest[1354 0 R/XYZ 0 734 0]>>endobj -255 0 obj<</Subtype/Link/Rect[72.0 433.2 181.1 446.2]/Border[0 0 0]/Dest[1356 0 R/XYZ 0 734 0]>>endobj -256 0 obj<</Subtype/Link/Rect[108.0 420.0 162.7 433.0]/Border[0 0 0]/Dest[1356 0 R/XYZ 0 655 0]>>endobj -257 0 obj<</Subtype/Link/Rect[108.0 406.8 178.9 419.8]/Border[0 0 0]/Dest[1356 0 R/XYZ 0 447 0]>>endobj -258 0 obj<</Subtype/Link/Rect[108.0 393.6 160.2 406.6]/Border[0 0 0]/Dest[1356 0 R/XYZ 0 333 0]>>endobj -259 0 obj[240 0 R +237 0 R]endobj +239 0 obj<</Subtype/Link/Rect[72.0 684.0 145.6 697.0]/Border[0 0 0]/Dest[1317 0 R/XYZ 0 734 0]>>endobj +240 0 obj<</Subtype/Link/Rect[108.0 670.8 243.0 683.8]/Border[0 0 0]/Dest[1319 0 R/XYZ 0 287 0]>>endobj +241 0 obj<</Subtype/Link/Rect[108.0 657.6 141.6 670.6]/Border[0 0 0]/Dest[1319 0 R/XYZ 0 185 0]>>endobj +242 0 obj<</Subtype/Link/Rect[72.0 631.2 194.3 644.2]/Border[0 0 0]/Dest[1321 0 R/XYZ 0 734 0]>>endobj +243 0 obj<</Subtype/Link/Rect[72.0 604.8 122.7 617.8]/Border[0 0 0]/Dest[1323 0 R/XYZ 0 734 0]>>endobj +244 0 obj<</Subtype/Link/Rect[108.0 591.6 137.9 604.6]/Border[0 0 0]/Dest[1323 0 R/XYZ 0 655 0]>>endobj +245 0 obj<</Subtype/Link/Rect[108.0 578.4 154.1 591.4]/Border[0 0 0]/Dest[1323 0 R/XYZ 0 447 0]>>endobj +246 0 obj<</Subtype/Link/Rect[108.0 565.2 135.5 578.2]/Border[0 0 0]/Dest[1323 0 R/XYZ 0 333 0]>>endobj +247 0 obj[239 0 R +240 0 R 241 0 R 242 0 R 243 0 R 244 0 R 245 0 R -246 0 R -247 0 R -248 0 R -249 0 R -250 0 R +246 0 R]endobj +248 0 obj<</S/URI/URI(http://www.samba.org/)>>endobj +249 0 obj<</Subtype/Link/Rect[185.6 631.0 289.8 644.0]/Border[0 0 0]/A 248 0 R>>endobj +250 0 obj<</S/URI/URI(mailto:jerry@samba.org)>>endobj +251 0 obj<</Subtype/Link/Rect[72.0 617.8 148.4 630.8]/Border[0 0 0]/A 250 0 R>>endobj +252 0 obj<</S/URI/URI(http://www.fsf.org/licenses/gpl.txt)>>endobj +253 0 obj<</Subtype/Link/Rect[72.0 565.0 223.3 578.0]/Border[0 0 0]/A 252 0 R>>endobj +254 0 obj<</Subtype/Link/Rect[72.0 499.0 212.9 512.0]/Border[0 0 0]/Dest[1095 0 R/XYZ 0 734 0]>>endobj +255 0 obj<</Subtype/Link/Rect[108.0 485.8 230.5 498.8]/Border[0 0 0]/Dest[1095 0 R/XYZ 0 696 0]>>endobj +256 0 obj<</Subtype/Link/Rect[108.0 472.6 235.7 485.6]/Border[0 0 0]/Dest[1095 0 R/XYZ 0 568 0]>>endobj +257 0 obj<</Subtype/Link/Rect[108.0 459.4 239.1 472.4]/Border[0 0 0]/Dest[1095 0 R/XYZ 0 163 0]>>endobj +258 0 obj<</Subtype/Link/Rect[108.0 446.2 290.4 459.2]/Border[0 0 0]/Dest[1097 0 R/XYZ 0 734 0]>>endobj +259 0 obj<</Subtype/Link/Rect[108.0 433.0 293.5 446.0]/Border[0 0 0]/Dest[1097 0 R/XYZ 0 382 0]>>endobj +260 0 obj<</Subtype/Link/Rect[108.0 419.8 265.7 432.8]/Border[0 0 0]/Dest[1097 0 R/XYZ 0 280 0]>>endobj +261 0 obj<</Subtype/Link/Rect[144.0 406.6 288.5 419.6]/Border[0 0 0]/Dest[1097 0 R/XYZ 0 126 0]>>endobj +262 0 obj<</Subtype/Link/Rect[144.0 393.4 338.9 406.4]/Border[0 0 0]/Dest[1099 0 R/XYZ 0 300 0]>>endobj +263 0 obj<</Subtype/Link/Rect[108.0 380.2 345.4 393.2]/Border[0 0 0]/Dest[1101 0 R/XYZ 0 718 0]>>endobj +264 0 obj<</Subtype/Link/Rect[108.0 367.0 294.7 380.0]/Border[0 0 0]/Dest[1101 0 R/XYZ 0 551 0]>>endobj +265 0 obj<</Subtype/Link/Rect[108.0 353.8 481.4 366.8]/Border[0 0 0]/Dest[1101 0 R/XYZ 0 383 0]>>endobj +266 0 obj<</Subtype/Link/Rect[108.0 340.6 232.6 353.6]/Border[0 0 0]/Dest[1101 0 R/XYZ 0 169 0]>>endobj +267 0 obj<</Subtype/Link/Rect[144.0 327.4 240.2 340.4]/Border[0 0 0]/Dest[1103 0 R/XYZ 0 652 0]>>endobj +268 0 obj<</Subtype/Link/Rect[144.0 314.2 188.9 327.2]/Border[0 0 0]/Dest[1103 0 R/XYZ 0 594 0]>>endobj +269 0 obj<</Subtype/Link/Rect[144.0 301.0 270.2 314.0]/Border[0 0 0]/Dest[1103 0 R/XYZ 0 509 0]>>endobj +270 0 obj<</Subtype/Link/Rect[144.0 287.8 298.6 300.8]/Border[0 0 0]/Dest[1103 0 R/XYZ 0 200 0]>>endobj +271 0 obj<</Subtype/Link/Rect[144.0 274.6 179.4 287.6]/Border[0 0 0]/Dest[1105 0 R/XYZ 0 718 0]>>endobj +272 0 obj<</Subtype/Link/Rect[144.0 261.4 236.0 274.4]/Border[0 0 0]/Dest[1105 0 R/XYZ 0 264 0]>>endobj +273 0 obj<</Subtype/Link/Rect[72.0 248.2 208.0 261.2]/Border[0 0 0]/Dest[1107 0 R/XYZ 0 734 0]>>endobj +274 0 obj<</Subtype/Link/Rect[108.0 235.0 163.0 248.0]/Border[0 0 0]/Dest[1107 0 R/XYZ 0 696 0]>>endobj +275 0 obj<</Subtype/Link/Rect[108.0 221.8 163.6 234.8]/Border[0 0 0]/Dest[1107 0 R/XYZ 0 529 0]>>endobj +276 0 obj<</Subtype/Link/Rect[108.0 208.6 130.6 221.6]/Border[0 0 0]/Dest[1107 0 R/XYZ 0 170 0]>>endobj +277 0 obj<</Subtype/Link/Rect[144.0 195.4 170.6 208.4]/Border[0 0 0]/Dest[1107 0 R/XYZ 0 136 0]>>endobj +278 0 obj<</Subtype/Link/Rect[144.0 182.2 170.6 195.2]/Border[0 0 0]/Dest[1109 0 R/XYZ 0 705 0]>>endobj +279 0 obj<</Subtype/Link/Rect[144.0 169.0 170.6 182.0]/Border[0 0 0]/Dest[1109 0 R/XYZ 0 501 0]>>endobj +280 0 obj<</Subtype/Link/Rect[144.0 155.8 170.6 168.8]/Border[0 0 0]/Dest[1111 0 R/XYZ 0 573 0]>>endobj +281 0 obj<</Subtype/Link/Rect[144.0 142.6 170.6 155.6]/Border[0 0 0]/Dest[1111 0 R/XYZ 0 422 0]>>endobj +282 0 obj<</Subtype/Link/Rect[144.0 129.4 170.6 142.4]/Border[0 0 0]/Dest[1111 0 R/XYZ 0 298 0]>>endobj +283 0 obj<</Subtype/Link/Rect[144.0 116.2 170.6 129.2]/Border[0 0 0]/Dest[1113 0 R/XYZ 0 705 0]>>endobj +284 0 obj<</Subtype/Link/Rect[144.0 103.0 170.6 116.0]/Border[0 0 0]/Dest[1113 0 R/XYZ 0 343 0]>>endobj +285 0 obj<</Subtype/Link/Rect[144.0 89.8 170.6 102.8]/Border[0 0 0]/Dest[1115 0 R/XYZ 0 679 0]>>endobj +286 0 obj<</Subtype/Link/Rect[144.0 76.6 176.1 89.6]/Border[0 0 0]/Dest[1115 0 R/XYZ 0 528 0]>>endobj +287 0 obj<</Subtype/Link/Rect[144.0 63.4 176.1 76.4]/Border[0 0 0]/Dest[1115 0 R/XYZ 0 390 0]>>endobj +288 0 obj[249 0 R 251 0 R -252 0 R 253 0 R 254 0 R 255 0 R 256 0 R 257 0 R -258 0 R]endobj -260 0 obj<</S/URI/URI(http://www.samba.org/)>>endobj -261 0 obj<</Subtype/Link/Rect[185.6 631.0 289.8 644.0]/Border[0 0 0]/A 260 0 R>>endobj -262 0 obj<</S/URI/URI(mailto:jerry@samba.org)>>endobj -263 0 obj<</Subtype/Link/Rect[72.0 617.8 148.4 630.8]/Border[0 0 0]/A 262 0 R>>endobj -264 0 obj<</S/URI/URI(http://www.fsf.org/licenses/gpl.txt)>>endobj -265 0 obj<</Subtype/Link/Rect[72.0 565.0 223.3 578.0]/Border[0 0 0]/A 264 0 R>>endobj -266 0 obj<</Subtype/Link/Rect[80.2 499.0 223.9 512.0]/Border[0 0 0]/Dest[1124 0 R/XYZ 0 734 0]>>endobj -267 0 obj<</Subtype/Link/Rect[124.5 485.8 249.8 498.8]/Border[0 0 0]/Dest[1124 0 R/XYZ 0 696 0]>>endobj -268 0 obj<</Subtype/Link/Rect[124.5 472.6 255.0 485.6]/Border[0 0 0]/Dest[1124 0 R/XYZ 0 568 0]>>endobj -269 0 obj<</Subtype/Link/Rect[124.5 459.4 258.3 472.4]/Border[0 0 0]/Dest[1124 0 R/XYZ 0 163 0]>>endobj -270 0 obj<</Subtype/Link/Rect[124.5 446.2 309.7 459.2]/Border[0 0 0]/Dest[1126 0 R/XYZ 0 734 0]>>endobj -271 0 obj<</Subtype/Link/Rect[124.5 433.0 312.7 446.0]/Border[0 0 0]/Dest[1126 0 R/XYZ 0 385 0]>>endobj -272 0 obj<</Subtype/Link/Rect[124.5 419.8 284.9 432.8]/Border[0 0 0]/Dest[1126 0 R/XYZ 0 283 0]>>endobj -273 0 obj<</Subtype/Link/Rect[168.8 406.6 316.0 419.6]/Border[0 0 0]/Dest[1126 0 R/XYZ 0 129 0]>>endobj -274 0 obj<</Subtype/Link/Rect[168.8 393.4 366.4 406.4]/Border[0 0 0]/Dest[1128 0 R/XYZ 0 303 0]>>endobj -275 0 obj<</Subtype/Link/Rect[124.5 380.2 364.7 393.2]/Border[0 0 0]/Dest[1130 0 R/XYZ 0 718 0]>>endobj -276 0 obj<</Subtype/Link/Rect[124.5 367.0 313.9 380.0]/Border[0 0 0]/Dest[1130 0 R/XYZ 0 551 0]>>endobj -277 0 obj<</Subtype/Link/Rect[124.5 353.8 500.6 366.8]/Border[0 0 0]/Dest[1130 0 R/XYZ 0 383 0]>>endobj -278 0 obj<</Subtype/Link/Rect[130.0 340.6 257.3 353.6]/Border[0 0 0]/Dest[1130 0 R/XYZ 0 169 0]>>endobj -279 0 obj<</Subtype/Link/Rect[174.2 327.4 273.2 340.4]/Border[0 0 0]/Dest[1132 0 R/XYZ 0 652 0]>>endobj -280 0 obj<</Subtype/Link/Rect[174.2 314.2 221.9 327.2]/Border[0 0 0]/Dest[1132 0 R/XYZ 0 594 0]>>endobj -281 0 obj<</Subtype/Link/Rect[174.2 301.0 303.2 314.0]/Border[0 0 0]/Dest[1132 0 R/XYZ 0 509 0]>>endobj -282 0 obj<</Subtype/Link/Rect[174.2 287.8 331.6 300.8]/Border[0 0 0]/Dest[1132 0 R/XYZ 0 200 0]>>endobj -283 0 obj<</Subtype/Link/Rect[174.2 274.6 212.4 287.6]/Border[0 0 0]/Dest[1134 0 R/XYZ 0 718 0]>>endobj -284 0 obj<</Subtype/Link/Rect[174.2 261.4 269.0 274.4]/Border[0 0 0]/Dest[1134 0 R/XYZ 0 264 0]>>endobj -285 0 obj<</Subtype/Link/Rect[80.2 248.2 219.0 261.2]/Border[0 0 0]/Dest[1136 0 R/XYZ 0 734 0]>>endobj -286 0 obj<</Subtype/Link/Rect[124.5 235.0 182.2 248.0]/Border[0 0 0]/Dest[1136 0 R/XYZ 0 696 0]>>endobj -287 0 obj<</Subtype/Link/Rect[124.5 221.8 182.9 234.8]/Border[0 0 0]/Dest[1136 0 R/XYZ 0 529 0]>>endobj -288 0 obj<</Subtype/Link/Rect[124.5 208.6 149.9 221.6]/Border[0 0 0]/Dest[1136 0 R/XYZ 0 173 0]>>endobj -289 0 obj<</Subtype/Link/Rect[168.8 195.4 198.1 208.4]/Border[0 0 0]/Dest[1136 0 R/XYZ 0 139 0]>>endobj -290 0 obj<</Subtype/Link/Rect[168.8 182.2 198.1 195.2]/Border[0 0 0]/Dest[1138 0 R/XYZ 0 705 0]>>endobj -291 0 obj<</Subtype/Link/Rect[168.8 169.0 198.1 182.0]/Border[0 0 0]/Dest[1138 0 R/XYZ 0 501 0]>>endobj -292 0 obj<</Subtype/Link/Rect[168.8 155.8 198.1 168.8]/Border[0 0 0]/Dest[1140 0 R/XYZ 0 586 0]>>endobj -293 0 obj<</Subtype/Link/Rect[168.8 142.6 198.1 155.6]/Border[0 0 0]/Dest[1140 0 R/XYZ 0 435 0]>>endobj -294 0 obj<</Subtype/Link/Rect[168.8 129.4 198.1 142.4]/Border[0 0 0]/Dest[1140 0 R/XYZ 0 311 0]>>endobj -295 0 obj<</Subtype/Link/Rect[168.8 116.2 198.1 129.2]/Border[0 0 0]/Dest[1142 0 R/XYZ 0 718 0]>>endobj -296 0 obj<</Subtype/Link/Rect[168.8 103.0 198.1 116.0]/Border[0 0 0]/Dest[1142 0 R/XYZ 0 356 0]>>endobj -297 0 obj<</Subtype/Link/Rect[168.8 89.8 198.1 102.8]/Border[0 0 0]/Dest[1144 0 R/XYZ 0 679 0]>>endobj -298 0 obj<</Subtype/Link/Rect[174.2 76.6 209.1 89.6]/Border[0 0 0]/Dest[1144 0 R/XYZ 0 488 0]>>endobj -299 0 obj<</Subtype/Link/Rect[174.2 63.4 209.1 76.4]/Border[0 0 0]/Dest[1144 0 R/XYZ 0 351 0]>>endobj -300 0 obj[261 0 R +258 0 R +259 0 R +260 0 R +261 0 R +262 0 R 263 0 R +264 0 R 265 0 R 266 0 R 267 0 R @@ -557,9 +545,59 @@ 284 0 R 285 0 R 286 0 R -287 0 R -288 0 R -289 0 R +287 0 R]endobj +289 0 obj<</Subtype/Link/Rect[108.0 721.0 202.7 734.0]/Border[0 0 0]/Dest[1115 0 R/XYZ 0 253 0]>>endobj +290 0 obj<</Subtype/Link/Rect[72.0 707.8 278.9 720.8]/Border[0 0 0]/Dest[1117 0 R/XYZ 0 734 0]>>endobj +291 0 obj<</Subtype/Link/Rect[108.0 694.6 141.6 707.6]/Border[0 0 0]/Dest[1117 0 R/XYZ 0 696 0]>>endobj +292 0 obj<</Subtype/Link/Rect[108.0 681.4 306.6 694.4]/Border[0 0 0]/Dest[1117 0 R/XYZ 0 463 0]>>endobj +293 0 obj<</Subtype/Link/Rect[144.0 668.2 210.0 681.2]/Border[0 0 0]/Dest[1117 0 R/XYZ 0 335 0]>>endobj +294 0 obj<</Subtype/Link/Rect[144.0 655.0 249.6 668.0]/Border[0 0 0]/Dest[1119 0 R/XYZ 0 454 0]>>endobj +295 0 obj<</Subtype/Link/Rect[144.0 641.8 236.4 654.8]/Border[0 0 0]/Dest[1119 0 R/XYZ 0 317 0]>>endobj +296 0 obj<</Subtype/Link/Rect[144.0 628.6 262.8 641.6]/Border[0 0 0]/Dest[1119 0 R/XYZ 0 168 0]>>endobj +297 0 obj<</Subtype/Link/Rect[108.0 615.4 359.5 628.4]/Border[0 0 0]/Dest[1121 0 R/XYZ 0 347 0]>>endobj +298 0 obj<</Subtype/Link/Rect[144.0 602.2 261.6 615.2]/Border[0 0 0]/Dest[1123 0 R/XYZ 0 295 0]>>endobj +299 0 obj<</Subtype/Link/Rect[144.0 589.0 228.3 602.0]/Border[0 0 0]/Dest[1125 0 R/XYZ 0 734 0]>>endobj +300 0 obj<</Subtype/Link/Rect[144.0 575.8 193.8 588.8]/Border[0 0 0]/Dest[1127 0 R/XYZ 0 456 0]>>endobj +301 0 obj<</Subtype/Link/Rect[144.0 562.6 200.5 575.6]/Border[0 0 0]/Dest[1127 0 R/XYZ 0 358 0]>>endobj +302 0 obj<</Subtype/Link/Rect[144.0 549.4 205.4 562.4]/Border[0 0 0]/Dest[1127 0 R/XYZ 0 221 0]>>endobj +303 0 obj<</Subtype/Link/Rect[108.0 536.2 504.0 549.2]/Border[0 0 0]/Dest[1129 0 R/XYZ 0 667 0]>>endobj +304 0 obj<</Subtype/Link/Rect[108.0 523.0 476.2 536.0]/Border[0 0 0]/Dest[1131 0 R/XYZ 0 734 0]>>endobj +305 0 obj<</Subtype/Link/Rect[144.0 509.8 360.6 522.8]/Border[0 0 0]/Dest[1133 0 R/XYZ 0 692 0]>>endobj +306 0 obj<</Subtype/Link/Rect[144.0 496.6 422.6 509.6]/Border[0 0 0]/Dest[1133 0 R/XYZ 0 440 0]>>endobj +307 0 obj<</Subtype/Link/Rect[144.0 483.4 344.1 496.4]/Border[0 0 0]/Dest[1135 0 R/XYZ 0 734 0]>>endobj +308 0 obj<</Subtype/Link/Rect[108.0 470.2 162.4 483.2]/Border[0 0 0]/Dest[1135 0 R/XYZ 0 172 0]>>endobj +309 0 obj<</Subtype/Link/Rect[72.0 457.0 385.2 470.0]/Border[0 0 0]/Dest[1139 0 R/XYZ 0 734 0]>>endobj +310 0 obj<</Subtype/Link/Rect[108.0 443.8 182.5 456.8]/Border[0 0 0]/Dest[1139 0 R/XYZ 0 672 0]>>endobj +311 0 obj<</Subtype/Link/Rect[108.0 430.6 225.6 443.6]/Border[0 0 0]/Dest[1141 0 R/XYZ 0 127 0]>>endobj +312 0 obj<</Subtype/Link/Rect[108.0 417.4 249.2 430.4]/Border[0 0 0]/Dest[1143 0 R/XYZ 0 679 0]>>endobj +313 0 obj<</Subtype/Link/Rect[72.0 404.2 333.5 417.2]/Border[0 0 0]/Dest[1145 0 R/XYZ 0 734 0]>>endobj +314 0 obj<</Subtype/Link/Rect[108.0 391.0 160.6 404.0]/Border[0 0 0]/Dest[1145 0 R/XYZ 0 672 0]>>endobj +315 0 obj<</Subtype/Link/Rect[144.0 377.8 169.1 390.8]/Border[0 0 0]/Dest[1147 0 R/XYZ 0 652 0]>>endobj +316 0 obj<</Subtype/Link/Rect[72.0 364.6 341.5 377.6]/Border[0 0 0]/Dest[1149 0 R/XYZ 0 734 0]>>endobj +317 0 obj<</Subtype/Link/Rect[108.0 351.4 422.4 364.4]/Border[0 0 0]/Dest[1149 0 R/XYZ 0 672 0]>>endobj +318 0 obj<</Subtype/Link/Rect[108.0 338.2 299.3 351.2]/Border[0 0 0]/Dest[1149 0 R/XYZ 0 497 0]>>endobj +319 0 obj<</Subtype/Link/Rect[108.0 325.0 209.5 338.0]/Border[0 0 0]/Dest[1149 0 R/XYZ 0 330 0]>>endobj +320 0 obj<</Subtype/Link/Rect[108.0 311.8 271.8 324.8]/Border[0 0 0]/Dest[1151 0 R/XYZ 0 665 0]>>endobj +321 0 obj<</Subtype/Link/Rect[144.0 298.6 218.2 311.6]/Border[0 0 0]/Dest[1151 0 R/XYZ 0 432 0]>>endobj +322 0 obj<</Subtype/Link/Rect[144.0 285.4 243.3 298.4]/Border[0 0 0]/Dest[1151 0 R/XYZ 0 189 0]>>endobj +323 0 obj<</Subtype/Link/Rect[108.0 272.2 280.9 285.2]/Border[0 0 0]/Dest[1153 0 R/XYZ 0 692 0]>>endobj +324 0 obj<</Subtype/Link/Rect[108.0 259.0 377.8 272.0]/Border[0 0 0]/Dest[1153 0 R/XYZ 0 260 0]>>endobj +325 0 obj<</Subtype/Link/Rect[108.0 245.8 368.0 258.8]/Border[0 0 0]/Dest[1157 0 R/XYZ 0 599 0]>>endobj +326 0 obj<</Subtype/Link/Rect[72.0 232.6 214.4 245.6]/Border[0 0 0]/Dest[1159 0 R/XYZ 0 734 0]>>endobj +327 0 obj<</Subtype/Link/Rect[108.0 219.4 163.0 232.4]/Border[0 0 0]/Dest[1159 0 R/XYZ 0 696 0]>>endobj +328 0 obj<</Subtype/Link/Rect[108.0 206.2 170.3 219.2]/Border[0 0 0]/Dest[1159 0 R/XYZ 0 278 0]>>endobj +329 0 obj<</Subtype/Link/Rect[144.0 193.0 221.3 206.0]/Border[0 0 0]/Dest[1161 0 R/XYZ 0 702 0]>>endobj +330 0 obj<</Subtype/Link/Rect[144.0 179.8 304.1 192.8]/Border[0 0 0]/Dest[1163 0 R/XYZ 0 469 0]>>endobj +331 0 obj<</Subtype/Link/Rect[144.0 166.6 298.3 179.6]/Border[0 0 0]/Dest[1165 0 R/XYZ 0 705 0]>>endobj +332 0 obj<</Subtype/Link/Rect[144.0 153.4 353.9 166.4]/Border[0 0 0]/Dest[1165 0 R/XYZ 0 332 0]>>endobj +333 0 obj<</Subtype/Link/Rect[144.0 140.2 254.3 153.2]/Border[0 0 0]/Dest[1167 0 R/XYZ 0 155 0]>>endobj +334 0 obj<</Subtype/Link/Rect[108.0 127.0 199.7 140.0]/Border[0 0 0]/Dest[1169 0 R/XYZ 0 652 0]>>endobj +335 0 obj<</Subtype/Link/Rect[144.0 113.8 222.8 126.8]/Border[0 0 0]/Dest[1169 0 R/XYZ 0 551 0]>>endobj +336 0 obj<</Subtype/Link/Rect[144.0 100.6 294.6 113.6]/Border[0 0 0]/Dest[1169 0 R/XYZ 0 426 0]>>endobj +337 0 obj<</Subtype/Link/Rect[144.0 87.4 230.8 100.4]/Border[0 0 0]/Dest[1169 0 R/XYZ 0 341 0]>>endobj +338 0 obj<</Subtype/Link/Rect[144.0 74.2 243.6 87.2]/Border[0 0 0]/Dest[1169 0 R/XYZ 0 243 0]>>endobj +339 0 obj<</Subtype/Link/Rect[108.0 61.0 279.7 63.0]/Border[0 0 0]/Dest[1171 0 R/XYZ 0 357 0]>>endobj +340 0 obj[289 0 R 290 0 R 291 0 R 292 0 R @@ -569,59 +607,9 @@ 296 0 R 297 0 R 298 0 R -299 0 R]endobj -301 0 obj<</Subtype/Link/Rect[124.5 721.0 222.0 734.0]/Border[0 0 0]/Dest[1144 0 R/XYZ 0 213 0]>>endobj -302 0 obj<</Subtype/Link/Rect[80.2 707.8 289.9 720.8]/Border[0 0 0]/Dest[1146 0 R/XYZ 0 734 0]>>endobj -303 0 obj<</Subtype/Link/Rect[124.5 694.6 160.9 707.6]/Border[0 0 0]/Dest[1146 0 R/XYZ 0 672 0]>>endobj -304 0 obj<</Subtype/Link/Rect[124.5 681.4 325.9 694.4]/Border[0 0 0]/Dest[1146 0 R/XYZ 0 439 0]>>endobj -305 0 obj<</Subtype/Link/Rect[171.5 668.2 237.5 681.2]/Border[0 0 0]/Dest[1146 0 R/XYZ 0 311 0]>>endobj -306 0 obj<</Subtype/Link/Rect[171.5 655.0 277.1 668.0]/Border[0 0 0]/Dest[1148 0 R/XYZ 0 441 0]>>endobj -307 0 obj<</Subtype/Link/Rect[171.5 641.8 263.9 654.8]/Border[0 0 0]/Dest[1148 0 R/XYZ 0 303 0]>>endobj -308 0 obj<</Subtype/Link/Rect[171.5 628.6 290.3 641.6]/Border[0 0 0]/Dest[1148 0 R/XYZ 0 157 0]>>endobj -309 0 obj<</Subtype/Link/Rect[124.5 615.4 378.7 628.4]/Border[0 0 0]/Dest[1150 0 R/XYZ 0 339 0]>>endobj -310 0 obj<</Subtype/Link/Rect[168.8 602.2 289.1 615.2]/Border[0 0 0]/Dest[1152 0 R/XYZ 0 266 0]>>endobj -311 0 obj<</Subtype/Link/Rect[168.8 589.0 255.8 602.0]/Border[0 0 0]/Dest[1154 0 R/XYZ 0 734 0]>>endobj -312 0 obj<</Subtype/Link/Rect[168.8 575.8 221.3 588.8]/Border[0 0 0]/Dest[1156 0 R/XYZ 0 459 0]>>endobj -313 0 obj<</Subtype/Link/Rect[168.8 562.6 228.0 575.6]/Border[0 0 0]/Dest[1156 0 R/XYZ 0 361 0]>>endobj -314 0 obj<</Subtype/Link/Rect[168.8 549.4 232.9 562.4]/Border[0 0 0]/Dest[1156 0 R/XYZ 0 224 0]>>endobj -315 0 obj<</Subtype/Link/Rect[124.5 536.2 523.3 549.2]/Border[0 0 0]/Dest[1158 0 R/XYZ 0 670 0]>>endobj -316 0 obj<</Subtype/Link/Rect[124.5 523.0 495.4 536.0]/Border[0 0 0]/Dest[1158 0 R/XYZ 0 126 0]>>endobj -317 0 obj<</Subtype/Link/Rect[168.8 509.8 388.1 522.8]/Border[0 0 0]/Dest[1162 0 R/XYZ 0 734 0]>>endobj -318 0 obj<</Subtype/Link/Rect[168.8 496.6 450.1 509.6]/Border[0 0 0]/Dest[1162 0 R/XYZ 0 484 0]>>endobj -319 0 obj<</Subtype/Link/Rect[168.8 483.4 371.6 496.4]/Border[0 0 0]/Dest[1162 0 R/XYZ 0 132 0]>>endobj -320 0 obj<</Subtype/Link/Rect[124.5 470.2 181.6 483.2]/Border[0 0 0]/Dest[1164 0 R/XYZ 0 263 0]>>endobj -321 0 obj<</Subtype/Link/Rect[80.2 457.0 396.2 470.0]/Border[0 0 0]/Dest[1166 0 R/XYZ 0 734 0]>>endobj -322 0 obj<</Subtype/Link/Rect[124.5 443.8 201.8 456.8]/Border[0 0 0]/Dest[1166 0 R/XYZ 0 672 0]>>endobj -323 0 obj<</Subtype/Link/Rect[124.5 430.6 244.9 443.6]/Border[0 0 0]/Dest[1168 0 R/XYZ 0 148 0]>>endobj -324 0 obj<</Subtype/Link/Rect[124.5 417.4 268.4 430.4]/Border[0 0 0]/Dest[1170 0 R/XYZ 0 705 0]>>endobj -325 0 obj<</Subtype/Link/Rect[80.2 404.2 344.5 417.2]/Border[0 0 0]/Dest[1172 0 R/XYZ 0 734 0]>>endobj -326 0 obj<</Subtype/Link/Rect[124.5 391.0 179.8 404.0]/Border[0 0 0]/Dest[1172 0 R/XYZ 0 672 0]>>endobj -327 0 obj<</Subtype/Link/Rect[168.8 377.8 196.6 390.8]/Border[0 0 0]/Dest[1174 0 R/XYZ 0 652 0]>>endobj -328 0 obj<</Subtype/Link/Rect[80.2 364.6 352.5 377.6]/Border[0 0 0]/Dest[1176 0 R/XYZ 0 734 0]>>endobj -329 0 obj<</Subtype/Link/Rect[124.5 351.4 441.7 364.4]/Border[0 0 0]/Dest[1176 0 R/XYZ 0 672 0]>>endobj -330 0 obj<</Subtype/Link/Rect[124.5 338.2 318.5 351.2]/Border[0 0 0]/Dest[1176 0 R/XYZ 0 497 0]>>endobj -331 0 obj<</Subtype/Link/Rect[124.5 325.0 228.7 338.0]/Border[0 0 0]/Dest[1176 0 R/XYZ 0 330 0]>>endobj -332 0 obj<</Subtype/Link/Rect[124.5 311.8 291.0 324.8]/Border[0 0 0]/Dest[1178 0 R/XYZ 0 665 0]>>endobj -333 0 obj<</Subtype/Link/Rect[168.8 298.6 245.8 311.6]/Border[0 0 0]/Dest[1178 0 R/XYZ 0 432 0]>>endobj -334 0 obj<</Subtype/Link/Rect[168.8 285.4 270.8 298.4]/Border[0 0 0]/Dest[1178 0 R/XYZ 0 189 0]>>endobj -335 0 obj<</Subtype/Link/Rect[124.5 272.2 300.2 285.2]/Border[0 0 0]/Dest[1180 0 R/XYZ 0 692 0]>>endobj -336 0 obj<</Subtype/Link/Rect[124.5 259.0 397.0 272.0]/Border[0 0 0]/Dest[1180 0 R/XYZ 0 260 0]>>endobj -337 0 obj<</Subtype/Link/Rect[124.5 245.8 387.3 258.8]/Border[0 0 0]/Dest[1184 0 R/XYZ 0 599 0]>>endobj -338 0 obj<</Subtype/Link/Rect[80.2 232.6 225.4 245.6]/Border[0 0 0]/Dest[1186 0 R/XYZ 0 734 0]>>endobj -339 0 obj<</Subtype/Link/Rect[124.5 219.4 182.2 232.4]/Border[0 0 0]/Dest[1186 0 R/XYZ 0 696 0]>>endobj -340 0 obj<</Subtype/Link/Rect[124.5 206.2 189.6 219.2]/Border[0 0 0]/Dest[1186 0 R/XYZ 0 278 0]>>endobj -341 0 obj<</Subtype/Link/Rect[168.8 193.0 248.8 206.0]/Border[0 0 0]/Dest[1188 0 R/XYZ 0 702 0]>>endobj -342 0 obj<</Subtype/Link/Rect[168.8 179.8 331.6 192.8]/Border[0 0 0]/Dest[1190 0 R/XYZ 0 471 0]>>endobj -343 0 obj<</Subtype/Link/Rect[168.8 166.6 325.8 179.6]/Border[0 0 0]/Dest[1192 0 R/XYZ 0 718 0]>>endobj -344 0 obj<</Subtype/Link/Rect[168.8 153.4 381.4 166.4]/Border[0 0 0]/Dest[1192 0 R/XYZ 0 348 0]>>endobj -345 0 obj<</Subtype/Link/Rect[168.8 140.2 281.8 153.2]/Border[0 0 0]/Dest[1194 0 R/XYZ 0 171 0]>>endobj -346 0 obj<</Subtype/Link/Rect[124.5 127.0 218.9 140.0]/Border[0 0 0]/Dest[1196 0 R/XYZ 0 652 0]>>endobj -347 0 obj<</Subtype/Link/Rect[168.8 113.8 250.3 126.8]/Border[0 0 0]/Dest[1196 0 R/XYZ 0 551 0]>>endobj -348 0 obj<</Subtype/Link/Rect[168.8 100.6 322.1 113.6]/Border[0 0 0]/Dest[1196 0 R/XYZ 0 426 0]>>endobj -349 0 obj<</Subtype/Link/Rect[168.8 87.4 258.3 100.4]/Border[0 0 0]/Dest[1196 0 R/XYZ 0 341 0]>>endobj -350 0 obj<</Subtype/Link/Rect[168.8 74.2 271.1 87.2]/Border[0 0 0]/Dest[1196 0 R/XYZ 0 243 0]>>endobj -351 0 obj<</Subtype/Link/Rect[124.5 61.0 299.0 63.0]/Border[0 0 0]/Dest[1198 0 R/XYZ 0 359 0]>>endobj -352 0 obj[301 0 R +299 0 R +300 0 R +301 0 R 302 0 R 303 0 R 304 0 R @@ -659,9 +647,59 @@ 336 0 R 337 0 R 338 0 R -339 0 R -340 0 R -341 0 R +339 0 R]endobj +341 0 obj<</Subtype/Link/Rect[72.0 721.0 205.2 734.0]/Border[0 0 0]/Dest[1175 0 R/XYZ 0 734 0]>>endobj +342 0 obj<</Subtype/Link/Rect[108.0 707.8 163.0 720.8]/Border[0 0 0]/Dest[1175 0 R/XYZ 0 696 0]>>endobj +343 0 obj<</Subtype/Link/Rect[108.0 694.6 233.9 707.6]/Border[0 0 0]/Dest[1177 0 R/XYZ 0 734 0]>>endobj +344 0 obj<</Subtype/Link/Rect[108.0 681.4 218.0 694.4]/Border[0 0 0]/Dest[1177 0 R/XYZ 0 272 0]>>endobj +345 0 obj<</Subtype/Link/Rect[108.0 668.2 270.2 681.2]/Border[0 0 0]/Dest[1179 0 R/XYZ 0 734 0]>>endobj +346 0 obj<</Subtype/Link/Rect[108.0 655.0 191.7 668.0]/Border[0 0 0]/Dest[1179 0 R/XYZ 0 301 0]>>endobj +347 0 obj<</Subtype/Link/Rect[108.0 641.8 213.7 654.8]/Border[0 0 0]/Dest[1181 0 R/XYZ 0 617 0]>>endobj +348 0 obj<</Subtype/Link/Rect[108.0 628.6 210.7 641.6]/Border[0 0 0]/Dest[1181 0 R/XYZ 0 264 0]>>endobj +349 0 obj<</Subtype/Link/Rect[108.0 615.4 190.8 628.4]/Border[0 0 0]/Dest[1181 0 R/XYZ 0 175 0]>>endobj +350 0 obj<</Subtype/Link/Rect[108.0 602.2 177.4 615.2]/Border[0 0 0]/Dest[1183 0 R/XYZ 0 734 0]>>endobj +351 0 obj<</Subtype/Link/Rect[72.0 589.0 135.8 602.0]/Border[0 0 0]/Dest[1185 0 R/XYZ 0 734 0]>>endobj +352 0 obj<</Subtype/Link/Rect[108.0 575.8 163.0 588.8]/Border[0 0 0]/Dest[1185 0 R/XYZ 0 696 0]>>endobj +353 0 obj<</Subtype/Link/Rect[108.0 562.6 303.2 575.6]/Border[0 0 0]/Dest[1185 0 R/XYZ 0 465 0]>>endobj +354 0 obj<</Subtype/Link/Rect[72.0 549.4 212.6 562.4]/Border[0 0 0]/Dest[1189 0 R/XYZ 0 734 0]>>endobj +355 0 obj<</Subtype/Link/Rect[108.0 536.2 280.0 549.2]/Border[0 0 0]/Dest[1189 0 R/XYZ 0 696 0]>>endobj +356 0 obj<</Subtype/Link/Rect[108.0 523.0 267.5 536.0]/Border[0 0 0]/Dest[1191 0 R/XYZ 0 362 0]>>endobj +357 0 obj<</Subtype/Link/Rect[108.0 509.8 290.5 522.8]/Border[0 0 0]/Dest[1191 0 R/XYZ 0 155 0]>>endobj +358 0 obj<</Subtype/Link/Rect[72.0 496.6 352.5 509.6]/Border[0 0 0]/Dest[1195 0 R/XYZ 0 734 0]>>endobj +359 0 obj<</Subtype/Link/Rect[108.0 483.4 145.3 496.4]/Border[0 0 0]/Dest[1195 0 R/XYZ 0 672 0]>>endobj +360 0 obj<</Subtype/Link/Rect[108.0 470.2 163.0 483.2]/Border[0 0 0]/Dest[1195 0 R/XYZ 0 544 0]>>endobj +361 0 obj<</Subtype/Link/Rect[108.0 457.0 213.1 470.0]/Border[0 0 0]/Dest[1195 0 R/XYZ 0 231 0]>>endobj +362 0 obj<</Subtype/Link/Rect[144.0 443.8 197.5 456.8]/Border[0 0 0]/Dest[1197 0 R/XYZ 0 560 0]>>endobj +363 0 obj<</Subtype/Link/Rect[108.0 430.6 199.7 443.6]/Border[0 0 0]/Dest[1197 0 R/XYZ 0 409 0]>>endobj +364 0 obj<</Subtype/Link/Rect[144.0 417.4 297.7 430.4]/Border[0 0 0]/Dest[1197 0 R/XYZ 0 294 0]>>endobj +365 0 obj<</Subtype/Link/Rect[144.0 404.2 236.9 417.2]/Border[0 0 0]/Dest[1199 0 R/XYZ 0 734 0]>>endobj +366 0 obj<</Subtype/Link/Rect[144.0 391.0 297.4 404.0]/Border[0 0 0]/Dest[1199 0 R/XYZ 0 292 0]>>endobj +367 0 obj<</Subtype/Link/Rect[144.0 377.8 279.0 390.8]/Border[0 0 0]/Dest[1201 0 R/XYZ 0 665 0]>>endobj +368 0 obj<</Subtype/Link/Rect[144.0 364.6 211.5 377.6]/Border[0 0 0]/Dest[1201 0 R/XYZ 0 488 0]>>endobj +369 0 obj<</Subtype/Link/Rect[108.0 351.4 243.1 364.4]/Border[0 0 0]/Dest[1201 0 R/XYZ 0 351 0]>>endobj +370 0 obj<</Subtype/Link/Rect[144.0 338.2 199.0 351.2]/Border[0 0 0]/Dest[1201 0 R/XYZ 0 209 0]>>endobj +371 0 obj<</Subtype/Link/Rect[144.0 325.0 204.5 338.0]/Border[0 0 0]/Dest[1203 0 R/XYZ 0 599 0]>>endobj +372 0 obj<</Subtype/Link/Rect[144.0 311.8 228.3 324.8]/Border[0 0 0]/Dest[1203 0 R/XYZ 0 330 0]>>endobj +373 0 obj<</Subtype/Link/Rect[108.0 298.6 158.1 311.6]/Border[0 0 0]/Dest[1217 0 R/XYZ 0 217 0]>>endobj +374 0 obj<</Subtype/Link/Rect[108.0 285.4 158.1 298.4]/Border[0 0 0]/Dest[1219 0 R/XYZ 0 679 0]>>endobj +375 0 obj<</Subtype/Link/Rect[72.0 272.2 348.2 285.2]/Border[0 0 0]/Dest[1221 0 R/XYZ 0 734 0]>>endobj +376 0 obj<</Subtype/Link/Rect[108.0 259.0 201.8 272.0]/Border[0 0 0]/Dest[1221 0 R/XYZ 0 672 0]>>endobj +377 0 obj<</Subtype/Link/Rect[108.0 245.8 161.8 258.8]/Border[0 0 0]/Dest[1221 0 R/XYZ 0 584 0]>>endobj +378 0 obj<</Subtype/Link/Rect[108.0 232.6 298.1 245.6]/Border[0 0 0]/Dest[1223 0 R/XYZ 0 718 0]>>endobj +379 0 obj<</Subtype/Link/Rect[108.0 219.4 412.0 232.4]/Border[0 0 0]/Dest[1225 0 R/XYZ 0 613 0]>>endobj +380 0 obj<</Subtype/Link/Rect[144.0 206.2 341.7 219.2]/Border[0 0 0]/Dest[1225 0 R/XYZ 0 227 0]>>endobj +381 0 obj<</Subtype/Link/Rect[144.0 193.0 373.1 206.0]/Border[0 0 0]/Dest[1227 0 R/XYZ 0 356 0]>>endobj +382 0 obj<</Subtype/Link/Rect[144.0 179.8 288.5 192.8]/Border[0 0 0]/Dest[1227 0 R/XYZ 0 143 0]>>endobj +383 0 obj<</Subtype/Link/Rect[108.0 166.6 244.0 179.6]/Border[0 0 0]/Dest[1229 0 R/XYZ 0 467 0]>>endobj +384 0 obj<</Subtype/Link/Rect[108.0 153.4 233.6 166.4]/Border[0 0 0]/Dest[1231 0 R/XYZ 0 205 0]>>endobj +385 0 obj<</Subtype/Link/Rect[108.0 140.2 225.6 153.2]/Border[0 0 0]/Dest[1233 0 R/XYZ 0 203 0]>>endobj +386 0 obj<</Subtype/Link/Rect[108.0 127.0 271.2 140.0]/Border[0 0 0]/Dest[1239 0 R/XYZ 0 547 0]>>endobj +387 0 obj<</Subtype/Link/Rect[144.0 113.8 340.5 126.8]/Border[0 0 0]/Dest[1241 0 R/XYZ 0 560 0]>>endobj +388 0 obj<</Subtype/Link/Rect[144.0 100.6 416.6 113.6]/Border[0 0 0]/Dest[1241 0 R/XYZ 0 126 0]>>endobj +389 0 obj<</Subtype/Link/Rect[108.0 87.4 404.4 100.4]/Border[0 0 0]/Dest[1249 0 R/XYZ 0 135 0]>>endobj +390 0 obj<</Subtype/Link/Rect[72.0 74.2 438.4 87.2]/Border[0 0 0]/Dest[1255 0 R/XYZ 0 734 0]>>endobj +391 0 obj<</Subtype/Link/Rect[108.0 61.0 201.8 74.0]/Border[0 0 0]/Dest[1255 0 R/XYZ 0 672 0]>>endobj +392 0 obj[341 0 R 342 0 R 343 0 R 344 0 R @@ -671,59 +709,9 @@ 348 0 R 349 0 R 350 0 R -351 0 R]endobj -353 0 obj<</Subtype/Link/Rect[80.2 721.0 216.2 734.0]/Border[0 0 0]/Dest[1202 0 R/XYZ 0 734 0]>>endobj -354 0 obj<</Subtype/Link/Rect[124.5 707.8 182.2 720.8]/Border[0 0 0]/Dest[1202 0 R/XYZ 0 696 0]>>endobj -355 0 obj<</Subtype/Link/Rect[124.5 694.6 253.1 707.6]/Border[0 0 0]/Dest[1204 0 R/XYZ 0 734 0]>>endobj -356 0 obj<</Subtype/Link/Rect[124.5 681.4 237.2 694.4]/Border[0 0 0]/Dest[1204 0 R/XYZ 0 278 0]>>endobj -357 0 obj<</Subtype/Link/Rect[124.5 668.2 289.5 681.2]/Border[0 0 0]/Dest[1206 0 R/XYZ 0 734 0]>>endobj -358 0 obj<</Subtype/Link/Rect[124.5 655.0 211.0 668.0]/Border[0 0 0]/Dest[1206 0 R/XYZ 0 304 0]>>endobj -359 0 obj<</Subtype/Link/Rect[124.5 641.8 233.0 654.8]/Border[0 0 0]/Dest[1208 0 R/XYZ 0 646 0]>>endobj -360 0 obj<</Subtype/Link/Rect[124.5 628.6 229.9 641.6]/Border[0 0 0]/Dest[1208 0 R/XYZ 0 299 0]>>endobj -361 0 obj<</Subtype/Link/Rect[124.5 615.4 210.0 628.4]/Border[0 0 0]/Dest[1208 0 R/XYZ 0 210 0]>>endobj -362 0 obj<</Subtype/Link/Rect[124.5 602.2 196.6 615.2]/Border[0 0 0]/Dest[1210 0 R/XYZ 0 734 0]>>endobj -363 0 obj<</Subtype/Link/Rect[80.2 589.0 146.8 602.0]/Border[0 0 0]/Dest[1212 0 R/XYZ 0 734 0]>>endobj -364 0 obj<</Subtype/Link/Rect[124.5 575.8 182.2 588.8]/Border[0 0 0]/Dest[1212 0 R/XYZ 0 696 0]>>endobj -365 0 obj<</Subtype/Link/Rect[124.5 562.6 322.5 575.6]/Border[0 0 0]/Dest[1212 0 R/XYZ 0 467 0]>>endobj -366 0 obj<</Subtype/Link/Rect[85.8 549.4 229.1 562.4]/Border[0 0 0]/Dest[1216 0 R/XYZ 0 734 0]>>endobj -367 0 obj<</Subtype/Link/Rect[130.0 536.2 304.8 549.2]/Border[0 0 0]/Dest[1216 0 R/XYZ 0 696 0]>>endobj -368 0 obj<</Subtype/Link/Rect[130.0 523.0 292.2 536.0]/Border[0 0 0]/Dest[1218 0 R/XYZ 0 362 0]>>endobj -369 0 obj<</Subtype/Link/Rect[130.0 509.8 315.2 522.8]/Border[0 0 0]/Dest[1218 0 R/XYZ 0 155 0]>>endobj -370 0 obj<</Subtype/Link/Rect[85.8 496.6 369.0 509.6]/Border[0 0 0]/Dest[1222 0 R/XYZ 0 734 0]>>endobj -371 0 obj<</Subtype/Link/Rect[130.0 483.4 170.0 496.4]/Border[0 0 0]/Dest[1222 0 R/XYZ 0 672 0]>>endobj -372 0 obj<</Subtype/Link/Rect[130.0 470.2 187.8 483.2]/Border[0 0 0]/Dest[1222 0 R/XYZ 0 544 0]>>endobj -373 0 obj<</Subtype/Link/Rect[130.0 457.0 237.9 470.0]/Border[0 0 0]/Dest[1222 0 R/XYZ 0 231 0]>>endobj -374 0 obj<</Subtype/Link/Rect[174.2 443.8 230.5 456.8]/Border[0 0 0]/Dest[1224 0 R/XYZ 0 560 0]>>endobj -375 0 obj<</Subtype/Link/Rect[130.0 430.6 224.4 443.6]/Border[0 0 0]/Dest[1224 0 R/XYZ 0 409 0]>>endobj -376 0 obj<</Subtype/Link/Rect[174.2 417.4 330.7 430.4]/Border[0 0 0]/Dest[1224 0 R/XYZ 0 294 0]>>endobj -377 0 obj<</Subtype/Link/Rect[174.2 404.2 269.9 417.2]/Border[0 0 0]/Dest[1226 0 R/XYZ 0 734 0]>>endobj -378 0 obj<</Subtype/Link/Rect[174.2 391.0 330.4 404.0]/Border[0 0 0]/Dest[1226 0 R/XYZ 0 292 0]>>endobj -379 0 obj<</Subtype/Link/Rect[174.2 377.8 312.0 390.8]/Border[0 0 0]/Dest[1228 0 R/XYZ 0 665 0]>>endobj -380 0 obj<</Subtype/Link/Rect[174.2 364.6 244.5 377.6]/Border[0 0 0]/Dest[1228 0 R/XYZ 0 488 0]>>endobj -381 0 obj<</Subtype/Link/Rect[130.0 351.4 267.8 364.4]/Border[0 0 0]/Dest[1228 0 R/XYZ 0 351 0]>>endobj -382 0 obj<</Subtype/Link/Rect[174.2 338.2 232.0 351.2]/Border[0 0 0]/Dest[1228 0 R/XYZ 0 209 0]>>endobj -383 0 obj<</Subtype/Link/Rect[174.2 325.0 237.5 338.0]/Border[0 0 0]/Dest[1230 0 R/XYZ 0 599 0]>>endobj -384 0 obj<</Subtype/Link/Rect[174.2 311.8 261.3 324.8]/Border[0 0 0]/Dest[1230 0 R/XYZ 0 330 0]>>endobj -385 0 obj<</Subtype/Link/Rect[130.0 298.6 182.9 311.6]/Border[0 0 0]/Dest[1244 0 R/XYZ 0 296 0]>>endobj -386 0 obj<</Subtype/Link/Rect[130.0 285.4 182.9 298.4]/Border[0 0 0]/Dest[1246 0 R/XYZ 0 734 0]>>endobj -387 0 obj<</Subtype/Link/Rect[85.8 272.2 364.7 285.2]/Border[0 0 0]/Dest[1248 0 R/XYZ 0 734 0]>>endobj -388 0 obj<</Subtype/Link/Rect[130.0 259.0 226.5 272.0]/Border[0 0 0]/Dest[1248 0 R/XYZ 0 672 0]>>endobj -389 0 obj<</Subtype/Link/Rect[130.0 245.8 186.5 258.8]/Border[0 0 0]/Dest[1248 0 R/XYZ 0 584 0]>>endobj -390 0 obj<</Subtype/Link/Rect[130.0 232.6 322.8 245.6]/Border[0 0 0]/Dest[1250 0 R/XYZ 0 718 0]>>endobj -391 0 obj<</Subtype/Link/Rect[130.0 219.4 436.8 232.4]/Border[0 0 0]/Dest[1252 0 R/XYZ 0 613 0]>>endobj -392 0 obj<</Subtype/Link/Rect[174.2 206.2 374.7 219.2]/Border[0 0 0]/Dest[1252 0 R/XYZ 0 227 0]>>endobj -393 0 obj<</Subtype/Link/Rect[174.2 193.0 406.1 206.0]/Border[0 0 0]/Dest[1254 0 R/XYZ 0 359 0]>>endobj -394 0 obj<</Subtype/Link/Rect[174.2 179.8 321.5 192.8]/Border[0 0 0]/Dest[1254 0 R/XYZ 0 149 0]>>endobj -395 0 obj<</Subtype/Link/Rect[130.0 166.6 268.7 179.6]/Border[0 0 0]/Dest[1256 0 R/XYZ 0 467 0]>>endobj -396 0 obj<</Subtype/Link/Rect[130.0 153.4 258.3 166.4]/Border[0 0 0]/Dest[1258 0 R/XYZ 0 208 0]>>endobj -397 0 obj<</Subtype/Link/Rect[130.0 140.2 250.4 153.2]/Border[0 0 0]/Dest[1260 0 R/XYZ 0 203 0]>>endobj -398 0 obj<</Subtype/Link/Rect[130.0 127.0 295.9 140.0]/Border[0 0 0]/Dest[1266 0 R/XYZ 0 547 0]>>endobj -399 0 obj<</Subtype/Link/Rect[174.2 113.8 373.5 126.8]/Border[0 0 0]/Dest[1268 0 R/XYZ 0 560 0]>>endobj -400 0 obj<</Subtype/Link/Rect[174.2 100.6 449.6 113.6]/Border[0 0 0]/Dest[1268 0 R/XYZ 0 126 0]>>endobj -401 0 obj<</Subtype/Link/Rect[130.0 87.4 429.2 100.4]/Border[0 0 0]/Dest[1276 0 R/XYZ 0 135 0]>>endobj -402 0 obj<</Subtype/Link/Rect[85.8 74.2 454.9 87.2]/Border[0 0 0]/Dest[1282 0 R/XYZ 0 734 0]>>endobj -403 0 obj<</Subtype/Link/Rect[130.0 61.0 226.5 74.0]/Border[0 0 0]/Dest[1282 0 R/XYZ 0 672 0]>>endobj -404 0 obj[353 0 R +351 0 R +352 0 R +353 0 R 354 0 R 355 0 R 356 0 R @@ -761,9 +749,59 @@ 388 0 R 389 0 R 390 0 R -391 0 R -392 0 R -393 0 R +391 0 R]endobj +393 0 obj<</Subtype/Link/Rect[108.0 721.0 161.8 734.0]/Border[0 0 0]/Dest[1255 0 R/XYZ 0 597 0]>>endobj +394 0 obj<</Subtype/Link/Rect[108.0 707.8 341.1 720.8]/Border[0 0 0]/Dest[1255 0 R/XYZ 0 223 0]>>endobj +395 0 obj<</Subtype/Link/Rect[144.0 694.6 373.5 707.6]/Border[0 0 0]/Dest[1257 0 R/XYZ 0 734 0]>>endobj +396 0 obj<</Subtype/Link/Rect[144.0 681.4 259.5 694.4]/Border[0 0 0]/Dest[1257 0 R/XYZ 0 609 0]>>endobj +397 0 obj<</Subtype/Link/Rect[108.0 668.2 309.0 681.2]/Border[0 0 0]/Dest[1257 0 R/XYZ 0 524 0]>>endobj +398 0 obj<</Subtype/Link/Rect[108.0 655.0 248.9 668.0]/Border[0 0 0]/Dest[1257 0 R/XYZ 0 383 0]>>endobj +399 0 obj<</Subtype/Link/Rect[144.0 641.8 318.2 654.8]/Border[0 0 0]/Dest[1259 0 R/XYZ 0 617 0]>>endobj +400 0 obj<</Subtype/Link/Rect[72.0 628.6 403.7 641.6]/Border[0 0 0]/Dest[1261 0 R/XYZ 0 734 0]>>endobj +401 0 obj<</Subtype/Link/Rect[108.0 615.4 144.7 628.4]/Border[0 0 0]/Dest[1261 0 R/XYZ 0 672 0]>>endobj +402 0 obj<</Subtype/Link/Rect[108.0 602.2 163.0 615.2]/Border[0 0 0]/Dest[1261 0 R/XYZ 0 412 0]>>endobj +403 0 obj<</Subtype/Link/Rect[108.0 589.0 219.2 602.0]/Border[0 0 0]/Dest[1263 0 R/XYZ 0 573 0]>>endobj +404 0 obj<</Subtype/Link/Rect[108.0 575.8 357.6 588.8]/Border[0 0 0]/Dest[1263 0 R/XYZ 0 471 0]>>endobj +405 0 obj<</Subtype/Link/Rect[108.0 562.6 246.4 575.6]/Border[0 0 0]/Dest[1265 0 R/XYZ 0 734 0]>>endobj +406 0 obj<</Subtype/Link/Rect[144.0 549.4 258.0 562.4]/Border[0 0 0]/Dest[1265 0 R/XYZ 0 700 0]>>endobj +407 0 obj<</Subtype/Link/Rect[144.0 536.2 230.5 549.2]/Border[0 0 0]/Dest[1265 0 R/XYZ 0 138 0]>>endobj +408 0 obj<</Subtype/Link/Rect[108.0 523.0 262.3 536.0]/Border[0 0 0]/Dest[1267 0 R/XYZ 0 227 0]>>endobj +409 0 obj<</Subtype/Link/Rect[108.0 509.8 230.8 522.8]/Border[0 0 0]/Dest[1269 0 R/XYZ 0 705 0]>>endobj +410 0 obj<</Subtype/Link/Rect[108.0 496.6 306.0 509.6]/Border[0 0 0]/Dest[1269 0 R/XYZ 0 320 0]>>endobj +411 0 obj<</Subtype/Link/Rect[108.0 483.4 299.6 496.4]/Border[0 0 0]/Dest[1271 0 R/XYZ 0 309 0]>>endobj +412 0 obj<</Subtype/Link/Rect[108.0 470.2 154.4 483.2]/Border[0 0 0]/Dest[1273 0 R/XYZ 0 478 0]>>endobj +413 0 obj<</Subtype/Link/Rect[72.0 457.0 200.6 470.0]/Border[0 0 0]/Dest[1275 0 R/XYZ 0 734 0]>>endobj +414 0 obj<</Subtype/Link/Rect[108.0 443.8 205.2 456.8]/Border[0 0 0]/Dest[1275 0 R/XYZ 0 696 0]>>endobj +415 0 obj<</Subtype/Link/Rect[108.0 430.6 229.3 443.6]/Border[0 0 0]/Dest[1275 0 R/XYZ 0 515 0]>>endobj +416 0 obj<</Subtype/Link/Rect[108.0 417.4 193.2 430.4]/Border[0 0 0]/Dest[1275 0 R/XYZ 0 137 0]>>endobj +417 0 obj<</Subtype/Link/Rect[108.0 404.2 217.4 417.2]/Border[0 0 0]/Dest[1277 0 R/XYZ 0 533 0]>>endobj +418 0 obj<</Subtype/Link/Rect[144.0 391.0 321.8 404.0]/Border[0 0 0]/Dest[1277 0 R/XYZ 0 273 0]>>endobj +419 0 obj<</Subtype/Link/Rect[108.0 377.8 219.2 390.8]/Border[0 0 0]/Dest[1283 0 R/XYZ 0 511 0]>>endobj +420 0 obj<</Subtype/Link/Rect[108.0 364.6 288.0 377.6]/Border[0 0 0]/Dest[1285 0 R/XYZ 0 560 0]>>endobj +421 0 obj<</Subtype/Link/Rect[108.0 351.4 262.3 364.4]/Border[0 0 0]/Dest[1287 0 R/XYZ 0 567 0]>>endobj +422 0 obj<</Subtype/Link/Rect[108.0 338.2 248.2 351.2]/Border[0 0 0]/Dest[1287 0 R/XYZ 0 208 0]>>endobj +423 0 obj<</Subtype/Link/Rect[108.0 325.0 257.7 338.0]/Border[0 0 0]/Dest[1289 0 R/XYZ 0 454 0]>>endobj +424 0 obj<</Subtype/Link/Rect[108.0 311.8 249.5 324.8]/Border[0 0 0]/Dest[1291 0 R/XYZ 0 679 0]>>endobj +425 0 obj<</Subtype/Link/Rect[108.0 298.6 191.4 311.6]/Border[0 0 0]/Dest[1291 0 R/XYZ 0 590 0]>>endobj +426 0 obj<</Subtype/Link/Rect[72.0 285.4 189.9 298.4]/Border[0 0 0]/Dest[1293 0 R/XYZ 0 734 0]>>endobj +427 0 obj<</Subtype/Link/Rect[108.0 272.2 166.7 285.2]/Border[0 0 0]/Dest[1293 0 R/XYZ 0 696 0]>>endobj +428 0 obj<</Subtype/Link/Rect[108.0 259.0 144.0 272.0]/Border[0 0 0]/Dest[1293 0 R/XYZ 0 449 0]>>endobj +429 0 obj<</Subtype/Link/Rect[144.0 245.8 186.2 258.8]/Border[0 0 0]/Dest[1293 0 R/XYZ 0 416 0]>>endobj +430 0 obj<</Subtype/Link/Rect[144.0 232.6 212.1 245.6]/Border[0 0 0]/Dest[1293 0 R/XYZ 0 146 0]>>endobj +431 0 obj<</Subtype/Link/Rect[144.0 219.4 315.3 232.4]/Border[0 0 0]/Dest[1295 0 R/XYZ 0 652 0]>>endobj +432 0 obj<</Subtype/Link/Rect[108.0 206.2 171.9 219.2]/Border[0 0 0]/Dest[1295 0 R/XYZ 0 515 0]>>endobj +433 0 obj<</Subtype/Link/Rect[108.0 193.0 149.9 206.0]/Border[0 0 0]/Dest[1295 0 R/XYZ 0 255 0]>>endobj +434 0 obj<</Subtype/Link/Rect[108.0 179.8 149.2 192.8]/Border[0 0 0]/Dest[1297 0 R/XYZ 0 718 0]>>endobj +435 0 obj<</Subtype/Link/Rect[108.0 166.6 143.4 179.6]/Border[0 0 0]/Dest[1297 0 R/XYZ 0 537 0]>>endobj +436 0 obj<</Subtype/Link/Rect[108.0 153.4 164.5 166.4]/Border[0 0 0]/Dest[1297 0 R/XYZ 0 409 0]>>endobj +437 0 obj<</Subtype/Link/Rect[108.0 140.2 148.6 153.2]/Border[0 0 0]/Dest[1297 0 R/XYZ 0 189 0]>>endobj +438 0 obj<</Subtype/Link/Rect[108.0 127.0 154.1 140.0]/Border[0 0 0]/Dest[1299 0 R/XYZ 0 734 0]>>endobj +439 0 obj<</Subtype/Link/Rect[108.0 113.8 150.5 126.8]/Border[0 0 0]/Dest[1299 0 R/XYZ 0 645 0]>>endobj +440 0 obj<</Subtype/Link/Rect[108.0 100.6 152.3 113.6]/Border[0 0 0]/Dest[1299 0 R/XYZ 0 477 0]>>endobj +441 0 obj<</Subtype/Link/Rect[108.0 87.4 178.6 100.4]/Border[0 0 0]/Dest[1299 0 R/XYZ 0 349 0]>>endobj +442 0 obj<</Subtype/Link/Rect[108.0 74.2 185.9 87.2]/Border[0 0 0]/Dest[1299 0 R/XYZ 0 129 0]>>endobj +443 0 obj<</Subtype/Link/Rect[108.0 61.0 163.3 74.0]/Border[0 0 0]/Dest[1301 0 R/XYZ 0 639 0]>>endobj +444 0 obj[393 0 R 394 0 R 395 0 R 396 0 R @@ -773,59 +811,9 @@ 400 0 R 401 0 R 402 0 R -403 0 R]endobj -405 0 obj<</Subtype/Link/Rect[130.0 721.0 186.5 734.0]/Border[0 0 0]/Dest[1282 0 R/XYZ 0 597 0]>>endobj -406 0 obj<</Subtype/Link/Rect[130.0 707.8 365.9 720.8]/Border[0 0 0]/Dest[1282 0 R/XYZ 0 225 0]>>endobj -407 0 obj<</Subtype/Link/Rect[174.2 694.6 406.5 707.6]/Border[0 0 0]/Dest[1284 0 R/XYZ 0 734 0]>>endobj -408 0 obj<</Subtype/Link/Rect[174.2 681.4 292.5 694.4]/Border[0 0 0]/Dest[1284 0 R/XYZ 0 609 0]>>endobj -409 0 obj<</Subtype/Link/Rect[130.0 668.2 333.8 681.2]/Border[0 0 0]/Dest[1284 0 R/XYZ 0 524 0]>>endobj -410 0 obj<</Subtype/Link/Rect[130.0 655.0 273.6 668.0]/Border[0 0 0]/Dest[1284 0 R/XYZ 0 383 0]>>endobj -411 0 obj<</Subtype/Link/Rect[174.2 641.8 351.2 654.8]/Border[0 0 0]/Dest[1286 0 R/XYZ 0 620 0]>>endobj -412 0 obj<</Subtype/Link/Rect[85.8 628.6 420.2 641.6]/Border[0 0 0]/Dest[1288 0 R/XYZ 0 734 0]>>endobj -413 0 obj<</Subtype/Link/Rect[130.0 615.4 169.4 628.4]/Border[0 0 0]/Dest[1288 0 R/XYZ 0 672 0]>>endobj -414 0 obj<</Subtype/Link/Rect[130.0 602.2 187.8 615.2]/Border[0 0 0]/Dest[1288 0 R/XYZ 0 412 0]>>endobj -415 0 obj<</Subtype/Link/Rect[130.0 589.0 244.0 602.0]/Border[0 0 0]/Dest[1290 0 R/XYZ 0 573 0]>>endobj -416 0 obj<</Subtype/Link/Rect[130.0 575.8 382.4 588.8]/Border[0 0 0]/Dest[1290 0 R/XYZ 0 471 0]>>endobj -417 0 obj<</Subtype/Link/Rect[130.0 562.6 271.2 575.6]/Border[0 0 0]/Dest[1292 0 R/XYZ 0 734 0]>>endobj -418 0 obj<</Subtype/Link/Rect[174.2 549.4 291.0 562.4]/Border[0 0 0]/Dest[1292 0 R/XYZ 0 700 0]>>endobj -419 0 obj<</Subtype/Link/Rect[174.2 536.2 263.5 549.2]/Border[0 0 0]/Dest[1292 0 R/XYZ 0 143 0]>>endobj -420 0 obj<</Subtype/Link/Rect[130.0 523.0 287.0 536.0]/Border[0 0 0]/Dest[1294 0 R/XYZ 0 243 0]>>endobj -421 0 obj<</Subtype/Link/Rect[130.0 509.8 255.6 522.8]/Border[0 0 0]/Dest[1296 0 R/XYZ 0 718 0]>>endobj -422 0 obj<</Subtype/Link/Rect[130.0 496.6 330.8 509.6]/Border[0 0 0]/Dest[1296 0 R/XYZ 0 336 0]>>endobj -423 0 obj<</Subtype/Link/Rect[130.0 483.4 324.3 496.4]/Border[0 0 0]/Dest[1298 0 R/XYZ 0 322 0]>>endobj -424 0 obj<</Subtype/Link/Rect[135.5 470.2 184.7 483.2]/Border[0 0 0]/Dest[1300 0 R/XYZ 0 492 0]>>endobj -425 0 obj<</Subtype/Link/Rect[85.8 457.0 293.8 470.0]/Border[0 0 0]/Dest[1302 0 R/XYZ 0 734 0]>>endobj -426 0 obj<</Subtype/Link/Rect[130.0 443.8 326.2 456.8]/Border[0 0 0]/Dest[1302 0 R/XYZ 0 500 0]>>endobj -427 0 obj<</Subtype/Link/Rect[130.0 430.6 327.4 443.6]/Border[0 0 0]/Dest[1302 0 R/XYZ 0 393 0]>>endobj -428 0 obj<</Subtype/Link/Rect[130.0 417.4 202.7 430.4]/Border[0 0 0]/Dest[1302 0 R/XYZ 0 217 0]>>endobj -429 0 obj<</Subtype/Link/Rect[130.0 404.2 243.7 417.2]/Border[0 0 0]/Dest[1304 0 R/XYZ 0 530 0]>>endobj -430 0 obj<</Subtype/Link/Rect[130.0 391.0 260.8 404.0]/Border[0 0 0]/Dest[1304 0 R/XYZ 0 213 0]>>endobj -431 0 obj<</Subtype/Link/Rect[174.2 377.8 244.5 390.8]/Border[0 0 0]/Dest[1304 0 R/XYZ 0 125 0]>>endobj -432 0 obj<</Subtype/Link/Rect[130.0 364.6 230.2 377.6]/Border[0 0 0]/Dest[1306 0 R/XYZ 0 665 0]>>endobj -433 0 obj<</Subtype/Link/Rect[130.0 351.4 231.8 364.4]/Border[0 0 0]/Dest[1306 0 R/XYZ 0 577 0]>>endobj -434 0 obj<</Subtype/Link/Rect[130.0 338.2 157.8 351.2]/Border[0 0 0]/Dest[1306 0 R/XYZ 0 502 0]>>endobj -435 0 obj<</Subtype/Link/Rect[85.8 325.0 217.1 338.0]/Border[0 0 0]/Dest[1308 0 R/XYZ 0 734 0]>>endobj -436 0 obj<</Subtype/Link/Rect[130.0 311.8 229.9 324.8]/Border[0 0 0]/Dest[1308 0 R/XYZ 0 696 0]>>endobj -437 0 obj<</Subtype/Link/Rect[130.0 298.6 254.1 311.6]/Border[0 0 0]/Dest[1308 0 R/XYZ 0 515 0]>>endobj -438 0 obj<</Subtype/Link/Rect[130.0 285.4 218.0 298.4]/Border[0 0 0]/Dest[1308 0 R/XYZ 0 137 0]>>endobj -439 0 obj<</Subtype/Link/Rect[130.0 272.2 242.1 285.2]/Border[0 0 0]/Dest[1310 0 R/XYZ 0 533 0]>>endobj -440 0 obj<</Subtype/Link/Rect[174.2 259.0 354.8 272.0]/Border[0 0 0]/Dest[1310 0 R/XYZ 0 273 0]>>endobj -441 0 obj<</Subtype/Link/Rect[130.0 245.8 244.0 258.8]/Border[0 0 0]/Dest[1316 0 R/XYZ 0 560 0]>>endobj -442 0 obj<</Subtype/Link/Rect[130.0 232.6 312.7 245.6]/Border[0 0 0]/Dest[1318 0 R/XYZ 0 613 0]>>endobj -443 0 obj<</Subtype/Link/Rect[130.0 219.4 287.1 232.4]/Border[0 0 0]/Dest[1320 0 R/XYZ 0 622 0]>>endobj -444 0 obj<</Subtype/Link/Rect[130.0 206.2 273.0 219.2]/Border[0 0 0]/Dest[1320 0 R/XYZ 0 266 0]>>endobj -445 0 obj<</Subtype/Link/Rect[130.0 193.0 282.5 206.0]/Border[0 0 0]/Dest[1322 0 R/XYZ 0 520 0]>>endobj -446 0 obj<</Subtype/Link/Rect[135.5 179.8 279.7 192.8]/Border[0 0 0]/Dest[1324 0 R/XYZ 0 734 0]>>endobj -447 0 obj<</Subtype/Link/Rect[135.5 166.6 221.7 179.6]/Border[0 0 0]/Dest[1324 0 R/XYZ 0 645 0]>>endobj -448 0 obj<</Subtype/Link/Rect[85.8 153.4 206.4 166.4]/Border[0 0 0]/Dest[1326 0 R/XYZ 0 734 0]>>endobj -449 0 obj<</Subtype/Link/Rect[130.0 140.2 191.4 153.2]/Border[0 0 0]/Dest[1326 0 R/XYZ 0 696 0]>>endobj -450 0 obj<</Subtype/Link/Rect[130.0 127.0 168.8 140.0]/Border[0 0 0]/Dest[1326 0 R/XYZ 0 449 0]>>endobj -451 0 obj<</Subtype/Link/Rect[174.2 113.8 219.2 126.8]/Border[0 0 0]/Dest[1326 0 R/XYZ 0 416 0]>>endobj -452 0 obj<</Subtype/Link/Rect[174.2 100.6 245.1 113.6]/Border[0 0 0]/Dest[1326 0 R/XYZ 0 146 0]>>endobj -453 0 obj<</Subtype/Link/Rect[174.2 87.4 348.3 100.4]/Border[0 0 0]/Dest[1328 0 R/XYZ 0 652 0]>>endobj -454 0 obj<</Subtype/Link/Rect[130.0 74.2 196.6 87.2]/Border[0 0 0]/Dest[1328 0 R/XYZ 0 515 0]>>endobj -455 0 obj<</Subtype/Link/Rect[130.0 61.0 174.6 74.0]/Border[0 0 0]/Dest[1328 0 R/XYZ 0 255 0]>>endobj -456 0 obj[405 0 R +403 0 R +404 0 R +405 0 R 406 0 R 407 0 R 408 0 R @@ -863,9 +851,42 @@ 440 0 R 441 0 R 442 0 R -443 0 R -444 0 R -445 0 R +443 0 R]endobj +445 0 obj<</Subtype/Link/Rect[108.0 721.0 162.1 734.0]/Border[0 0 0]/Dest[1301 0 R/XYZ 0 511 0]>>endobj +446 0 obj<</Subtype/Link/Rect[108.0 707.8 165.8 720.8]/Border[0 0 0]/Dest[1301 0 R/XYZ 0 436 0]>>endobj +447 0 obj<</Subtype/Link/Rect[108.0 694.6 156.6 707.6]/Border[0 0 0]/Dest[1303 0 R/XYZ 0 388 0]>>endobj +448 0 obj<</Subtype/Link/Rect[72.0 681.4 204.6 694.4]/Border[0 0 0]/Dest[1305 0 R/XYZ 0 734 0]>>endobj +449 0 obj<</Subtype/Link/Rect[108.0 668.2 191.4 681.2]/Border[0 0 0]/Dest[1305 0 R/XYZ 0 668 0]>>endobj +450 0 obj<</Subtype/Link/Rect[108.0 655.0 156.6 668.0]/Border[0 0 0]/Dest[1305 0 R/XYZ 0 461 0]>>endobj +451 0 obj<</Subtype/Link/Rect[144.0 641.8 500.6 654.8]/Border[0 0 0]/Dest[1305 0 R/XYZ 0 427 0]>>endobj +452 0 obj<</Subtype/Link/Rect[144.0 628.6 503.9 641.6]/Border[0 0 0]/Dest[1307 0 R/XYZ 0 734 0]>>endobj +453 0 obj<</Subtype/Link/Rect[144.0 615.4 457.2 628.4]/Border[0 0 0]/Dest[1307 0 R/XYZ 0 520 0]>>endobj +454 0 obj<</Subtype/Link/Rect[144.0 602.2 426.3 615.2]/Border[0 0 0]/Dest[1307 0 R/XYZ 0 422 0]>>endobj +455 0 obj<</Subtype/Link/Rect[108.0 589.0 221.1 602.0]/Border[0 0 0]/Dest[1307 0 R/XYZ 0 165 0]>>endobj +456 0 obj<</Subtype/Link/Rect[144.0 575.8 318.5 588.8]/Border[0 0 0]/Dest[1307 0 R/XYZ 0 132 0]>>endobj +457 0 obj<</Subtype/Link/Rect[144.0 562.6 318.2 575.6]/Border[0 0 0]/Dest[1309 0 R/XYZ 0 652 0]>>endobj +458 0 obj<</Subtype/Link/Rect[144.0 549.4 299.5 562.4]/Border[0 0 0]/Dest[1309 0 R/XYZ 0 501 0]>>endobj +459 0 obj<</Subtype/Link/Rect[144.0 536.2 268.4 549.2]/Border[0 0 0]/Dest[1309 0 R/XYZ 0 403 0]>>endobj +460 0 obj<</Subtype/Link/Rect[108.0 523.0 180.9 536.0]/Border[0 0 0]/Dest[1309 0 R/XYZ 0 319 0]>>endobj +461 0 obj<</Subtype/Link/Rect[108.0 509.8 241.2 522.8]/Border[0 0 0]/Dest[1311 0 R/XYZ 0 734 0]>>endobj +462 0 obj<</Subtype/Link/Rect[72.0 496.6 270.6 509.6]/Border[0 0 0]/Dest[1313 0 R/XYZ 0 734 0]>>endobj +463 0 obj<</Subtype/Link/Rect[108.0 483.4 163.0 496.4]/Border[0 0 0]/Dest[1313 0 R/XYZ 0 696 0]>>endobj +464 0 obj<</Subtype/Link/Rect[108.0 470.2 221.0 483.2]/Border[0 0 0]/Dest[1313 0 R/XYZ 0 581 0]>>endobj +465 0 obj<</Subtype/Link/Rect[144.0 457.0 230.2 470.0]/Border[0 0 0]/Dest[1313 0 R/XYZ 0 493 0]>>endobj +466 0 obj<</Subtype/Link/Rect[144.0 443.8 206.9 456.8]/Border[0 0 0]/Dest[1313 0 R/XYZ 0 382 0]>>endobj +467 0 obj<</Subtype/Link/Rect[72.0 430.6 140.8 443.6]/Border[0 0 0]/Dest[1317 0 R/XYZ 0 734 0]>>endobj +468 0 obj<</Subtype/Link/Rect[108.0 417.4 163.0 430.4]/Border[0 0 0]/Dest[1317 0 R/XYZ 0 696 0]>>endobj +469 0 obj<</Subtype/Link/Rect[108.0 404.2 163.9 417.2]/Border[0 0 0]/Dest[1317 0 R/XYZ 0 436 0]>>endobj +470 0 obj<</Subtype/Link/Rect[108.0 391.0 165.1 404.0]/Border[0 0 0]/Dest[1317 0 R/XYZ 0 295 0]>>endobj +471 0 obj<</Subtype/Link/Rect[108.0 377.8 173.7 390.8]/Border[0 0 0]/Dest[1319 0 R/XYZ 0 639 0]>>endobj +472 0 obj<</Subtype/Link/Rect[108.0 364.6 244.3 377.6]/Border[0 0 0]/Dest[1319 0 R/XYZ 0 287 0]>>endobj +473 0 obj<</Subtype/Link/Rect[108.0 351.4 142.8 364.4]/Border[0 0 0]/Dest[1319 0 R/XYZ 0 185 0]>>endobj +474 0 obj<</Subtype/Link/Rect[72.0 338.2 183.8 351.2]/Border[0 0 0]/Dest[1321 0 R/XYZ 0 734 0]>>endobj +475 0 obj<</Subtype/Link/Rect[72.0 325.0 119.7 338.0]/Border[0 0 0]/Dest[1323 0 R/XYZ 0 734 0]>>endobj +476 0 obj<</Subtype/Link/Rect[108.0 311.8 137.3 324.8]/Border[0 0 0]/Dest[1323 0 R/XYZ 0 655 0]>>endobj +477 0 obj<</Subtype/Link/Rect[108.0 298.6 152.9 311.6]/Border[0 0 0]/Dest[1323 0 R/XYZ 0 447 0]>>endobj +478 0 obj<</Subtype/Link/Rect[108.0 285.4 133.7 298.4]/Border[0 0 0]/Dest[1323 0 R/XYZ 0 333 0]>>endobj +479 0 obj[445 0 R 446 0 R 447 0 R 448 0 R @@ -875,52 +896,9 @@ 452 0 R 453 0 R 454 0 R -455 0 R]endobj -457 0 obj<</Subtype/Link/Rect[130.0 721.0 174.0 734.0]/Border[0 0 0]/Dest[1330 0 R/XYZ 0 718 0]>>endobj -458 0 obj<</Subtype/Link/Rect[130.0 707.8 168.2 720.8]/Border[0 0 0]/Dest[1330 0 R/XYZ 0 537 0]>>endobj -459 0 obj<</Subtype/Link/Rect[130.0 694.6 189.3 707.6]/Border[0 0 0]/Dest[1330 0 R/XYZ 0 409 0]>>endobj -460 0 obj<</Subtype/Link/Rect[130.0 681.4 173.4 694.4]/Border[0 0 0]/Dest[1330 0 R/XYZ 0 189 0]>>endobj -461 0 obj<</Subtype/Link/Rect[130.0 668.2 178.9 681.2]/Border[0 0 0]/Dest[1332 0 R/XYZ 0 734 0]>>endobj -462 0 obj<</Subtype/Link/Rect[135.5 655.0 180.7 668.0]/Border[0 0 0]/Dest[1332 0 R/XYZ 0 645 0]>>endobj -463 0 obj<</Subtype/Link/Rect[135.5 641.8 182.6 654.8]/Border[0 0 0]/Dest[1332 0 R/XYZ 0 477 0]>>endobj -464 0 obj<</Subtype/Link/Rect[135.5 628.6 208.8 641.6]/Border[0 0 0]/Dest[1332 0 R/XYZ 0 349 0]>>endobj -465 0 obj<</Subtype/Link/Rect[135.5 615.4 216.2 628.4]/Border[0 0 0]/Dest[1332 0 R/XYZ 0 129 0]>>endobj -466 0 obj<</Subtype/Link/Rect[135.5 602.2 193.6 615.2]/Border[0 0 0]/Dest[1334 0 R/XYZ 0 639 0]>>endobj -467 0 obj<</Subtype/Link/Rect[135.5 589.0 192.3 602.0]/Border[0 0 0]/Dest[1334 0 R/XYZ 0 511 0]>>endobj -468 0 obj<</Subtype/Link/Rect[135.5 575.8 196.0 588.8]/Border[0 0 0]/Dest[1334 0 R/XYZ 0 436 0]>>endobj -469 0 obj<</Subtype/Link/Rect[135.5 562.6 186.8 575.6]/Border[0 0 0]/Dest[1336 0 R/XYZ 0 388 0]>>endobj -470 0 obj<</Subtype/Link/Rect[85.8 549.4 221.1 562.4]/Border[0 0 0]/Dest[1338 0 R/XYZ 0 734 0]>>endobj -471 0 obj<</Subtype/Link/Rect[130.0 536.2 216.2 549.2]/Border[0 0 0]/Dest[1338 0 R/XYZ 0 668 0]>>endobj -472 0 obj<</Subtype/Link/Rect[130.0 523.0 181.3 536.0]/Border[0 0 0]/Dest[1338 0 R/XYZ 0 461 0]>>endobj -473 0 obj<</Subtype/Link/Rect[174.2 509.8 533.6 522.8]/Border[0 0 0]/Dest[1338 0 R/XYZ 0 427 0]>>endobj -474 0 obj<</Subtype/Link/Rect[174.2 496.6 536.9 509.6]/Border[0 0 0]/Dest[1340 0 R/XYZ 0 734 0]>>endobj -475 0 obj<</Subtype/Link/Rect[174.2 483.4 490.2 496.4]/Border[0 0 0]/Dest[1340 0 R/XYZ 0 523 0]>>endobj -476 0 obj<</Subtype/Link/Rect[174.2 470.2 459.3 483.2]/Border[0 0 0]/Dest[1340 0 R/XYZ 0 408 0]>>endobj -477 0 obj<</Subtype/Link/Rect[130.0 457.0 245.8 470.0]/Border[0 0 0]/Dest[1340 0 R/XYZ 0 151 0]>>endobj -478 0 obj<</Subtype/Link/Rect[174.2 443.8 351.5 456.8]/Border[0 0 0]/Dest[1340 0 R/XYZ 0 118 0]>>endobj -479 0 obj<</Subtype/Link/Rect[174.2 430.6 351.2 443.6]/Border[0 0 0]/Dest[1342 0 R/XYZ 0 626 0]>>endobj -480 0 obj<</Subtype/Link/Rect[174.2 417.4 332.5 430.4]/Border[0 0 0]/Dest[1342 0 R/XYZ 0 475 0]>>endobj -481 0 obj<</Subtype/Link/Rect[174.2 404.2 301.4 417.2]/Border[0 0 0]/Dest[1342 0 R/XYZ 0 377 0]>>endobj -482 0 obj<</Subtype/Link/Rect[130.0 391.0 205.6 404.0]/Border[0 0 0]/Dest[1342 0 R/XYZ 0 292 0]>>endobj -483 0 obj<</Subtype/Link/Rect[130.0 377.8 265.9 390.8]/Border[0 0 0]/Dest[1344 0 R/XYZ 0 718 0]>>endobj -484 0 obj<</Subtype/Link/Rect[85.8 364.6 287.1 377.6]/Border[0 0 0]/Dest[1346 0 R/XYZ 0 734 0]>>endobj -485 0 obj<</Subtype/Link/Rect[130.0 351.4 187.8 364.4]/Border[0 0 0]/Dest[1346 0 R/XYZ 0 672 0]>>endobj -486 0 obj<</Subtype/Link/Rect[130.0 338.2 245.8 351.2]/Border[0 0 0]/Dest[1346 0 R/XYZ 0 557 0]>>endobj -487 0 obj<</Subtype/Link/Rect[174.2 325.0 263.2 338.0]/Border[0 0 0]/Dest[1346 0 R/XYZ 0 469 0]>>endobj -488 0 obj<</Subtype/Link/Rect[174.2 311.8 239.9 324.8]/Border[0 0 0]/Dest[1346 0 R/XYZ 0 358 0]>>endobj -489 0 obj<</Subtype/Link/Rect[85.8 298.6 157.2 311.6]/Border[0 0 0]/Dest[1350 0 R/XYZ 0 734 0]>>endobj -490 0 obj<</Subtype/Link/Rect[130.0 285.4 187.8 298.4]/Border[0 0 0]/Dest[1350 0 R/XYZ 0 696 0]>>endobj -491 0 obj<</Subtype/Link/Rect[130.0 272.2 188.7 285.2]/Border[0 0 0]/Dest[1350 0 R/XYZ 0 436 0]>>endobj -492 0 obj<</Subtype/Link/Rect[130.0 259.0 189.9 272.0]/Border[0 0 0]/Dest[1350 0 R/XYZ 0 295 0]>>endobj -493 0 obj<</Subtype/Link/Rect[130.0 245.8 198.4 258.8]/Border[0 0 0]/Dest[1352 0 R/XYZ 0 639 0]>>endobj -494 0 obj<</Subtype/Link/Rect[130.0 232.6 269.0 245.6]/Border[0 0 0]/Dest[1352 0 R/XYZ 0 287 0]>>endobj -495 0 obj<</Subtype/Link/Rect[130.0 219.4 167.6 232.4]/Border[0 0 0]/Dest[1352 0 R/XYZ 0 185 0]>>endobj -496 0 obj<</Subtype/Link/Rect[85.8 206.2 200.3 219.2]/Border[0 0 0]/Dest[1354 0 R/XYZ 0 734 0]>>endobj -497 0 obj<</Subtype/Link/Rect[85.8 193.0 136.2 206.0]/Border[0 0 0]/Dest[1356 0 R/XYZ 0 734 0]>>endobj -498 0 obj<</Subtype/Link/Rect[130.0 179.8 162.1 192.8]/Border[0 0 0]/Dest[1356 0 R/XYZ 0 655 0]>>endobj -499 0 obj<</Subtype/Link/Rect[130.0 166.6 177.7 179.6]/Border[0 0 0]/Dest[1356 0 R/XYZ 0 447 0]>>endobj -500 0 obj<</Subtype/Link/Rect[130.0 153.4 158.4 166.4]/Border[0 0 0]/Dest[1356 0 R/XYZ 0 333 0]>>endobj -501 0 obj[457 0 R +455 0 R +456 0 R +457 0 R 458 0 R 459 0 R 460 0 R @@ -941,281 +919,269 @@ 475 0 R 476 0 R 477 0 R -478 0 R -479 0 R -480 0 R -481 0 R -482 0 R -483 0 R -484 0 R -485 0 R -486 0 R -487 0 R -488 0 R -489 0 R -490 0 R +478 0 R]endobj +480 0 obj<</S/URI/URI(http://www.samba.org/)>>endobj +481 0 obj<</Subtype/Link/Rect[367.1 584.2 468.3 597.2]/Border[0 0 0]/A 480 0 R>>endobj +482 0 obj[481 0 R]endobj +483 0 obj<</S/URI/URI(mailto:samba@samba.org)>>endobj +484 0 obj<</Subtype/Link/Rect[164.2 193.4 250.8 206.4]/Border[0 0 0]/A 483 0 R>>endobj +485 0 obj<</S/URI/URI(http://samba.org/samba)>>endobj +486 0 obj<</Subtype/Link/Rect[233.0 180.2 338.7 193.2]/Border[0 0 0]/A 485 0 R>>endobj +487 0 obj[484 0 R +486 0 R]endobj +488 0 obj<</S/Launch/F(ENCRYPTION.html)>>endobj +489 0 obj<</Subtype/Link/Rect[174.0 508.6 270.6 521.6]/Border[0 0 0]/A 488 0 R>>endobj +490 0 obj<</S/Launch/F(#PASSWORDLEVEL)>>endobj +491 0 obj<</Subtype/Link/Rect[73.4 245.2 154.4 256.2]/Border[0 0 0]/A 490 0 R>>endobj +492 0 obj<</S/Launch/F(#USERNAMELEVEL)>>endobj +493 0 obj<</Subtype/Link/Rect[73.4 234.4 149.0 245.4]/Border[0 0 0]/A 492 0 R>>endobj +494 0 obj[489 0 R 491 0 R -492 0 R -493 0 R -494 0 R -495 0 R -496 0 R -497 0 R -498 0 R -499 0 R -500 0 R]endobj -502 0 obj<</S/URI/URI(http://www.samba.org/)>>endobj -503 0 obj<</Subtype/Link/Rect[367.1 584.2 468.3 597.2]/Border[0 0 0]/A 502 0 R>>endobj -504 0 obj[503 0 R]endobj -505 0 obj<</S/URI/URI(mailto:samba@samba.org)>>endobj -506 0 obj<</Subtype/Link/Rect[164.2 153.8 250.8 166.8]/Border[0 0 0]/A 505 0 R>>endobj -507 0 obj<</S/URI/URI(http://samba.org/samba)>>endobj -508 0 obj<</Subtype/Link/Rect[233.0 140.6 338.7 153.6]/Border[0 0 0]/A 507 0 R>>endobj -509 0 obj[506 0 R -508 0 R]endobj -510 0 obj<</S/Launch/F(ENCRYPTION.html)>>endobj -511 0 obj<</Subtype/Link/Rect[174.0 562.6 270.6 575.6]/Border[0 0 0]/A 510 0 R>>endobj -512 0 obj<</S/Launch/F(#PASSWORDLEVEL)>>endobj -513 0 obj<</Subtype/Link/Rect[72.0 300.6 153.0 311.6]/Border[0 0 0]/A 512 0 R>>endobj -514 0 obj<</S/Launch/F(#USERNAMELEVEL)>>endobj -515 0 obj<</Subtype/Link/Rect[72.0 289.8 147.6 300.8]/Border[0 0 0]/A 514 0 R>>endobj -516 0 obj[511 0 R -513 0 R -515 0 R]endobj -517 0 obj<</S/Launch/F(winbind.html)>>endobj -518 0 obj<</Subtype/Link/Rect[503.4 161.0 544.6 174.0]/Border[0 0 0]/A 517 0 R>>endobj -519 0 obj<</S/Launch/F(winbind.html)>>endobj -520 0 obj<</Subtype/Link/Rect[72.0 147.8 115.4 160.8]/Border[0 0 0]/A 519 0 R>>endobj -521 0 obj[518 0 R -520 0 R]endobj -522 0 obj<</S/URI/URI(http://rsync.samba.org/)>>endobj -523 0 obj<</Subtype/Link/Rect[118.1 89.0 222.3 102.0]/Border[0 0 0]/A 522 0 R>>endobj -524 0 obj[523 0 R]endobj -525 0 obj<</S/Launch/F(#OBEYPAMRESTRICTIONS)>>endobj -526 0 obj<</Subtype/Link/Rect[235.4 659.0 332.9 672.0]/Border[0 0 0]/A 525 0 R>>endobj -527 0 obj<</S/Launch/F(#ENCRYPTPASSWORDS)>>endobj -528 0 obj<</Subtype/Link/Rect[338.7 579.8 449.4 592.8]/Border[0 0 0]/A 527 0 R>>endobj -529 0 obj[526 0 R -528 0 R]endobj -530 0 obj<</S/URI/URI(http://www.microsoft.com/NTServer/nts/downloads/winfeatures/NTSDistrFile/AdminGuide.asp)>>endobj -531 0 obj<</Subtype/Link/Rect[72.0 586.6 183.5 599.6]/Border[0 0 0]/A 530 0 R>>endobj -532 0 obj<</S/Launch/F(#HOSTMSDFS)>>endobj -533 0 obj<</Subtype/Link/Rect[345.1 507.4 417.7 520.4]/Border[0 0 0]/A 532 0 R>>endobj -534 0 obj<</S/Launch/F(#MSDFSROOT)>>endobj -535 0 obj<</Subtype/Link/Rect[380.8 494.2 453.4 507.2]/Border[0 0 0]/A 534 0 R>>endobj -536 0 obj[531 0 R -533 0 R -535 0 R]endobj -537 0 obj<</S/Launch/F(#NTACLSUPPORT)>>endobj -538 0 obj<</Subtype/Link/Rect[339.9 526.6 438.9 539.6]/Border[0 0 0]/A 537 0 R>>endobj -539 0 obj[538 0 R]endobj -540 0 obj<</S/Launch/F(#SECURITYMASK)>>endobj -541 0 obj<</Subtype/Link/Rect[493.0 707.8 545.8 720.8]/Border[0 0 0]/A 540 0 R>>endobj -542 0 obj<</S/Launch/F(#SECURITYMASK)>>endobj -543 0 obj<</Subtype/Link/Rect[72.0 694.6 98.4 707.6]/Border[0 0 0]/A 542 0 R>>endobj -544 0 obj<</S/Launch/F(#CREATEMASK)>>endobj -545 0 obj<</Subtype/Link/Rect[356.1 615.4 428.7 628.4]/Border[0 0 0]/A 544 0 R>>endobj -546 0 obj<</S/Launch/F(#FORCESECURITYMODE)>>endobj -547 0 obj<</Subtype/Link/Rect[424.3 562.6 549.7 575.6]/Border[0 0 0]/A 546 0 R>>endobj -548 0 obj<</S/Launch/F(#FORCECREATEMODE)>>endobj -549 0 obj<</Subtype/Link/Rect[356.1 483.4 468.3 496.4]/Border[0 0 0]/A 548 0 R>>endobj -550 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj -551 0 obj<</Subtype/Link/Rect[72.0 206.2 144.6 219.2]/Border[0 0 0]/A 550 0 R>>endobj -552 0 obj[541 0 R +493 0 R]endobj +495 0 obj<</S/Launch/F(winbind.html)>>endobj +496 0 obj<</Subtype/Link/Rect[503.4 113.7 544.6 126.7]/Border[0 0 0]/A 495 0 R>>endobj +497 0 obj<</S/Launch/F(winbind.html)>>endobj +498 0 obj<</Subtype/Link/Rect[72.0 100.5 115.4 113.5]/Border[0 0 0]/A 497 0 R>>endobj +499 0 obj[496 0 R +498 0 R]endobj +500 0 obj<</S/URI/URI(http://rsync.samba.org/)>>endobj +501 0 obj<</Subtype/Link/Rect[118.1 67.2 222.3 80.2]/Border[0 0 0]/A 500 0 R>>endobj +502 0 obj[501 0 R]endobj +503 0 obj<</S/Launch/F(#OBEYPAMRESTRICTIONS)>>endobj +504 0 obj<</Subtype/Link/Rect[235.4 632.6 332.9 645.6]/Border[0 0 0]/A 503 0 R>>endobj +505 0 obj<</S/Launch/F(#ENCRYPTPASSWORDS)>>endobj +506 0 obj<</Subtype/Link/Rect[338.7 553.4 449.4 566.4]/Border[0 0 0]/A 505 0 R>>endobj +507 0 obj[504 0 R +506 0 R]endobj +508 0 obj<</S/URI/URI(http://www.microsoft.com/NTServer/nts/downloads/winfeatures/NTSDistrFile/AdminGuide.asp)>>endobj +509 0 obj<</Subtype/Link/Rect[72.0 586.6 183.5 599.6]/Border[0 0 0]/A 508 0 R>>endobj +510 0 obj<</S/Launch/F(#HOSTMSDFS)>>endobj +511 0 obj<</Subtype/Link/Rect[345.1 507.4 417.7 520.4]/Border[0 0 0]/A 510 0 R>>endobj +512 0 obj<</S/Launch/F(#MSDFSROOT)>>endobj +513 0 obj<</Subtype/Link/Rect[380.8 494.2 453.4 507.2]/Border[0 0 0]/A 512 0 R>>endobj +514 0 obj[509 0 R +511 0 R +513 0 R]endobj +515 0 obj<</S/Launch/F(#NTACLSUPPORT)>>endobj +516 0 obj<</Subtype/Link/Rect[339.9 526.6 438.9 539.6]/Border[0 0 0]/A 515 0 R>>endobj +517 0 obj[516 0 R]endobj +518 0 obj<</S/Launch/F(#SECURITYMASK)>>endobj +519 0 obj<</Subtype/Link/Rect[493.0 707.8 545.8 720.8]/Border[0 0 0]/A 518 0 R>>endobj +520 0 obj<</S/Launch/F(#SECURITYMASK)>>endobj +521 0 obj<</Subtype/Link/Rect[72.0 694.6 98.4 707.6]/Border[0 0 0]/A 520 0 R>>endobj +522 0 obj<</S/Launch/F(#CREATEMASK)>>endobj +523 0 obj<</Subtype/Link/Rect[356.1 615.4 428.7 628.4]/Border[0 0 0]/A 522 0 R>>endobj +524 0 obj<</S/Launch/F(#FORCESECURITYMODE)>>endobj +525 0 obj<</Subtype/Link/Rect[424.3 562.6 549.7 575.6]/Border[0 0 0]/A 524 0 R>>endobj +526 0 obj<</S/Launch/F(#FORCECREATEMODE)>>endobj +527 0 obj<</Subtype/Link/Rect[356.1 483.4 468.3 496.4]/Border[0 0 0]/A 526 0 R>>endobj +528 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj +529 0 obj<</Subtype/Link/Rect[72.0 206.2 144.6 219.2]/Border[0 0 0]/A 528 0 R>>endobj +530 0 obj[519 0 R +521 0 R +523 0 R +525 0 R +527 0 R +529 0 R]endobj +531 0 obj<</S/URI/URI(http://imprints.sourceforge.net)>>endobj +532 0 obj<</Subtype/Link/Rect[143.7 544.6 280.3 557.6]/Border[0 0 0]/A 531 0 R>>endobj +533 0 obj<</S/URI/URI(http://msdn.microsoft.com/)>>endobj +534 0 obj<</Subtype/Link/Rect[218.6 518.2 341.1 531.2]/Border[0 0 0]/A 533 0 R>>endobj +535 0 obj<</S/URI/URI(http://support.microsoft.com/support/kb/articles/Q189/1/05.ASP)>>endobj +536 0 obj<</Subtype/Link/Rect[72.0 293.8 355.9 306.8]/Border[0 0 0]/A 535 0 R>>endobj +537 0 obj<</Subtype/Link/Rect[488.0 69.1 534.8 82.1]/Border[0 0 0]/Dest[1171 0 R/XYZ 0 357 0]>>endobj +538 0 obj[532 0 R +534 0 R +536 0 R +537 0 R]endobj +539 0 obj<</Subtype/Link/Rect[94.2 719.6 125.4 732.6]/Border[0 0 0]/Dest[1171 0 R/XYZ 0 357 0]>>endobj +540 0 obj<</S/Launch/F(#WRITELIST)>>endobj +541 0 obj<</Subtype/Link/Rect[91.9 354.5 157.9 367.5]/Border[0 0 0]/A 540 0 R>>endobj +542 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj +543 0 obj<</Subtype/Link/Rect[184.4 341.3 285.8 354.3]/Border[0 0 0]/A 542 0 R>>endobj +544 0 obj<</S/Launch/F(#GUESTOK)>>endobj +545 0 obj<</Subtype/Link/Rect[160.6 314.9 228.6 327.9]/Border[0 0 0]/A 544 0 R>>endobj +546 0 obj<</S/Launch/F(#MAPTOGUEST)>>endobj +547 0 obj<</Subtype/Link/Rect[501.3 205.0 536.7 218.0]/Border[0 0 0]/A 546 0 R>>endobj +548 0 obj<</S/Launch/F(#MAPTOGUEST)>>endobj +549 0 obj<</Subtype/Link/Rect[94.2 191.8 174.1 204.8]/Border[0 0 0]/A 548 0 R>>endobj +550 0 obj[539 0 R +541 0 R 543 0 R 545 0 R 547 0 R -549 0 R -551 0 R]endobj -553 0 obj<</S/URI/URI(http://imprints.sourceforge.net)>>endobj -554 0 obj<</Subtype/Link/Rect[143.7 544.6 280.3 557.6]/Border[0 0 0]/A 553 0 R>>endobj -555 0 obj<</S/URI/URI(http://msdn.microsoft.com/)>>endobj -556 0 obj<</Subtype/Link/Rect[218.6 518.2 341.1 531.2]/Border[0 0 0]/A 555 0 R>>endobj -557 0 obj<</S/URI/URI(http://support.microsoft.com/support/kb/articles/Q189/1/05.ASP)>>endobj -558 0 obj<</Subtype/Link/Rect[72.0 293.8 355.9 306.8]/Border[0 0 0]/A 557 0 R>>endobj -559 0 obj<</Subtype/Link/Rect[488.0 69.1 534.8 82.1]/Border[0 0 0]/Dest[1198 0 R/XYZ 0 359 0]>>endobj -560 0 obj[554 0 R -556 0 R -558 0 R -559 0 R]endobj -561 0 obj<</Subtype/Link/Rect[94.2 719.6 125.4 732.6]/Border[0 0 0]/Dest[1198 0 R/XYZ 0 359 0]>>endobj -562 0 obj<</S/Launch/F(#WRITELIST)>>endobj -563 0 obj<</Subtype/Link/Rect[91.9 357.3 157.9 370.3]/Border[0 0 0]/A 562 0 R>>endobj -564 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj -565 0 obj<</Subtype/Link/Rect[184.4 344.1 285.8 357.1]/Border[0 0 0]/A 564 0 R>>endobj -566 0 obj<</S/Launch/F(#GUESTOK)>>endobj -567 0 obj<</Subtype/Link/Rect[160.6 317.7 228.6 330.7]/Border[0 0 0]/A 566 0 R>>endobj -568 0 obj<</S/Launch/F(#MAPTOGUEST)>>endobj -569 0 obj<</Subtype/Link/Rect[501.3 207.8 536.7 220.8]/Border[0 0 0]/A 568 0 R>>endobj -570 0 obj<</S/Launch/F(#MAPTOGUEST)>>endobj -571 0 obj<</Subtype/Link/Rect[94.2 194.6 174.1 207.6]/Border[0 0 0]/A 570 0 R>>endobj -572 0 obj[561 0 R -563 0 R -565 0 R -567 0 R -569 0 R -571 0 R]endobj -573 0 obj<</S/Launch/F(#PRINTERADMIN)>>endobj -574 0 obj<</Subtype/Link/Rect[451.3 607.5 537.1 620.5]/Border[0 0 0]/A 573 0 R>>endobj -575 0 obj[574 0 R]endobj -576 0 obj<</S/Launch/F(rpcclient.1.html)>>endobj -577 0 obj<</Subtype/Link/Rect[233.6 649.4 379.3 662.4]/Border[0 0 0]/A 576 0 R>>endobj -578 0 obj<</S/Launch/F(#SHOWADDPRINTERWIZARD)>>endobj -579 0 obj<</Subtype/Link/Rect[108.0 239.4 299.4 252.4]/Border[0 0 0]/A 578 0 R>>endobj -580 0 obj<</S/Launch/F(#ADDPRINTERCOMMAND)>>endobj -581 0 obj<</Subtype/Link/Rect[453.9 213.0 526.5 226.0]/Border[0 0 0]/A 580 0 R>>endobj -582 0 obj<</S/Launch/F(#ADDPRINTERCOMMAND)>>endobj -583 0 obj<</Subtype/Link/Rect[72.0 199.8 118.2 212.8]/Border[0 0 0]/A 582 0 R>>endobj -584 0 obj<</S/Launch/F(#DELETEPRINTERCOMMAND)>>endobj -585 0 obj<</Subtype/Link/Rect[189.3 94.2 334.5 107.2]/Border[0 0 0]/A 584 0 R>>endobj -586 0 obj<</S/Launch/F(#ADDPRINTERCOMMAN)>>endobj -587 0 obj<</Subtype/Link/Rect[200.6 67.8 326.0 80.8]/Border[0 0 0]/A 586 0 R>>endobj -588 0 obj[577 0 R -579 0 R +549 0 R]endobj +551 0 obj<</S/Launch/F(#PRINTERADMIN)>>endobj +552 0 obj<</Subtype/Link/Rect[451.3 604.6 537.1 617.6]/Border[0 0 0]/A 551 0 R>>endobj +553 0 obj[552 0 R]endobj +554 0 obj<</S/Launch/F(rpcclient.1.html)>>endobj +555 0 obj<</Subtype/Link/Rect[233.6 636.2 379.3 649.2]/Border[0 0 0]/A 554 0 R>>endobj +556 0 obj<</S/Launch/F(#SHOWADDPRINTERWIZARD)>>endobj +557 0 obj<</Subtype/Link/Rect[108.0 223.3 299.4 236.3]/Border[0 0 0]/A 556 0 R>>endobj +558 0 obj<</S/Launch/F(#ADDPRINTERCOMMAND)>>endobj +559 0 obj<</Subtype/Link/Rect[453.9 196.9 526.5 209.9]/Border[0 0 0]/A 558 0 R>>endobj +560 0 obj<</S/Launch/F(#ADDPRINTERCOMMAND)>>endobj +561 0 obj<</Subtype/Link/Rect[72.0 183.7 118.2 196.7]/Border[0 0 0]/A 560 0 R>>endobj +562 0 obj<</S/Launch/F(#DELETEPRINTERCOMMAND)>>endobj +563 0 obj<</Subtype/Link/Rect[189.3 78.1 334.5 91.1]/Border[0 0 0]/A 562 0 R>>endobj +564 0 obj[555 0 R +557 0 R +559 0 R +561 0 R +563 0 R]endobj +565 0 obj<</S/Launch/F(#ADDPRINTERCOMMAN)>>endobj +566 0 obj<</Subtype/Link/Rect[200.6 721.0 326.0 734.0]/Border[0 0 0]/A 565 0 R>>endobj +567 0 obj[566 0 R]endobj +568 0 obj<</S/Launch/F(#ENUMPORTSCOMMAND)>>endobj +569 0 obj<</Subtype/Link/Rect[451.4 681.4 510.8 694.4]/Border[0 0 0]/A 568 0 R>>endobj +570 0 obj<</S/Launch/F(#ENUMPORTSCOMMAND)>>endobj +571 0 obj<</Subtype/Link/Rect[72.0 668.2 118.2 681.2]/Border[0 0 0]/A 570 0 R>>endobj +572 0 obj<</S/URI/URI(http://imprints.sourceforge.net/)>>endobj +573 0 obj<</Subtype/Link/Rect[297.8 593.0 437.4 606.0]/Border[0 0 0]/A 572 0 R>>endobj +574 0 obj[569 0 R +571 0 R +573 0 R]endobj +575 0 obj<</S/URI/URI(http://imprints.sourceforge.net/)>>endobj +576 0 obj<</Subtype/Link/Rect[409.9 112.5 549.5 125.5]/Border[0 0 0]/A 575 0 R>>endobj +577 0 obj[576 0 R]endobj +578 0 obj<</S/Launch/F(#SECURITY)>>endobj +579 0 obj<</Subtype/Link/Rect[73.4 613.6 116.6 624.6]/Border[0 0 0]/A 578 0 R>>endobj +580 0 obj<</S/Launch/F(DOMAIN_MEMBER.html)>>endobj +581 0 obj<</Subtype/Link/Rect[430.0 586.1 554.1 599.1]/Border[0 0 0]/A 580 0 R>>endobj +582 0 obj<</S/Launch/F(ADS-HOWTO.html)>>endobj +583 0 obj<</Subtype/Link/Rect[223.0 559.7 317.8 572.7]/Border[0 0 0]/A 582 0 R>>endobj +584 0 obj[579 0 R 581 0 R -583 0 R -585 0 R -587 0 R]endobj -589 0 obj<</S/Launch/F(#ENUMPORTSCOMMAND)>>endobj -590 0 obj<</Subtype/Link/Rect[451.4 681.4 510.8 694.4]/Border[0 0 0]/A 589 0 R>>endobj -591 0 obj<</S/Launch/F(#ENUMPORTSCOMMAND)>>endobj -592 0 obj<</Subtype/Link/Rect[72.0 668.2 118.2 681.2]/Border[0 0 0]/A 591 0 R>>endobj -593 0 obj<</S/URI/URI(http://imprints.sourceforge.net/)>>endobj -594 0 obj<</Subtype/Link/Rect[297.8 593.0 437.4 606.0]/Border[0 0 0]/A 593 0 R>>endobj -595 0 obj[590 0 R -592 0 R -594 0 R]endobj -596 0 obj<</S/URI/URI(http://imprints.sourceforge.net/)>>endobj -597 0 obj<</Subtype/Link/Rect[409.9 115.4 549.5 128.4]/Border[0 0 0]/A 596 0 R>>endobj -598 0 obj[597 0 R]endobj -599 0 obj<</S/Launch/F(#SECURITY)>>endobj -600 0 obj<</Subtype/Link/Rect[72.0 615.0 115.2 626.0]/Border[0 0 0]/A 599 0 R>>endobj -601 0 obj<</S/Launch/F(DOMAIN_MEMBER.html)>>endobj -602 0 obj<</Subtype/Link/Rect[430.0 589.0 554.1 602.0]/Border[0 0 0]/A 601 0 R>>endobj -603 0 obj<</S/Launch/F(ADS-HOWTO.html)>>endobj -604 0 obj<</Subtype/Link/Rect[223.0 562.6 317.8 575.6]/Border[0 0 0]/A 603 0 R>>endobj -605 0 obj[600 0 R -602 0 R -604 0 R]endobj -606 0 obj<</S/Launch/F(smbpasswd.8.html)>>endobj -607 0 obj<</Subtype/Link/Rect[218.7 452.2 284.9 465.2]/Border[0 0 0]/A 606 0 R>>endobj -608 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj -609 0 obj<</Subtype/Link/Rect[350.3 135.4 422.9 148.4]/Border[0 0 0]/A 608 0 R>>endobj -610 0 obj<</S/Launch/F(#SECURITY)>>endobj -611 0 obj<</Subtype/Link/Rect[169.1 95.8 235.1 108.8]/Border[0 0 0]/A 610 0 R>>endobj -612 0 obj[607 0 R -609 0 R -611 0 R]endobj -613 0 obj<</S/Launch/F(#WORKGROUP)>>endobj -614 0 obj<</Subtype/Link/Rect[146.2 721.0 225.4 734.0]/Border[0 0 0]/A 613 0 R>>endobj -615 0 obj<</S/Launch/F(#ENCRYPTPASSWORDS)>>endobj -616 0 obj<</Subtype/Link/Rect[224.7 641.8 336.9 654.8]/Border[0 0 0]/A 615 0 R>>endobj -617 0 obj<</S/Launch/F(#PASSWORDSERVER)>>endobj -618 0 obj<</Subtype/Link/Rect[188.7 602.2 300.9 615.2]/Border[0 0 0]/A 617 0 R>>endobj -619 0 obj<</S/Launch/F(#SECURITYEQUALSSERVER)>>endobj -620 0 obj<</Subtype/Link/Rect[275.2 69.0 351.3 82.0]/Border[0 0 0]/A 619 0 R>>endobj -621 0 obj[614 0 R -616 0 R -618 0 R -620 0 R]endobj -622 0 obj<</S/Launch/F(winbind.html)>>endobj -623 0 obj<</Subtype/Link/Rect[151.1 681.4 219.5 694.4]/Border[0 0 0]/A 622 0 R>>endobj -624 0 obj<</S/URI/URI(http://www.linuxworld.com)>>endobj -625 0 obj<</Subtype/Link/Rect[438.0 364.6 495.1 377.6]/Border[0 0 0]/A 624 0 R>>endobj -626 0 obj<</S/URI/URI(http://www.linuxworld.com/linuxworld/lw-1998-10/lw-10-samba.html)>>endobj -627 0 obj<</Subtype/Link/Rect[72.0 351.4 186.6 364.4]/Border[0 0 0]/A 626 0 R>>endobj -628 0 obj[623 0 R +583 0 R]endobj +585 0 obj<</S/Launch/F(smbpasswd.8.html)>>endobj +586 0 obj<</Subtype/Link/Rect[218.7 452.2 284.9 465.2]/Border[0 0 0]/A 585 0 R>>endobj +587 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj +588 0 obj<</Subtype/Link/Rect[350.3 135.4 422.9 148.4]/Border[0 0 0]/A 587 0 R>>endobj +589 0 obj<</S/Launch/F(#SECURITY)>>endobj +590 0 obj<</Subtype/Link/Rect[169.1 95.8 235.1 108.8]/Border[0 0 0]/A 589 0 R>>endobj +591 0 obj[586 0 R +588 0 R +590 0 R]endobj +592 0 obj<</S/Launch/F(#WORKGROUP)>>endobj +593 0 obj<</Subtype/Link/Rect[146.2 721.0 225.4 734.0]/Border[0 0 0]/A 592 0 R>>endobj +594 0 obj<</S/Launch/F(#ENCRYPTPASSWORDS)>>endobj +595 0 obj<</Subtype/Link/Rect[224.7 641.8 336.9 654.8]/Border[0 0 0]/A 594 0 R>>endobj +596 0 obj<</S/Launch/F(#PASSWORDSERVER)>>endobj +597 0 obj<</Subtype/Link/Rect[188.7 602.2 300.9 615.2]/Border[0 0 0]/A 596 0 R>>endobj +598 0 obj<</S/Launch/F(#SECURITYEQUALSSERVER)>>endobj +599 0 obj<</Subtype/Link/Rect[275.2 69.0 351.3 82.0]/Border[0 0 0]/A 598 0 R>>endobj +600 0 obj[593 0 R +595 0 R +597 0 R +599 0 R]endobj +601 0 obj<</S/Launch/F(winbind.html)>>endobj +602 0 obj<</Subtype/Link/Rect[151.1 681.4 219.5 694.4]/Border[0 0 0]/A 601 0 R>>endobj +603 0 obj<</S/URI/URI(http://www.linuxworld.com)>>endobj +604 0 obj<</Subtype/Link/Rect[438.0 364.6 495.1 377.6]/Border[0 0 0]/A 603 0 R>>endobj +605 0 obj<</S/URI/URI(http://www.linuxworld.com/linuxworld/lw-1998-10/lw-10-samba.html)>>endobj +606 0 obj<</Subtype/Link/Rect[72.0 351.4 186.6 364.4]/Border[0 0 0]/A 605 0 R>>endobj +607 0 obj[602 0 R +604 0 R +606 0 R]endobj +608 0 obj<</S/URI/URI(mailto:jtrostel@snapserver.com)>>endobj +609 0 obj<</Subtype/Link/Rect[197.9 304.6 310.1 317.6]/Border[0 0 0]/A 608 0 R>>endobj +610 0 obj[609 0 R]endobj +611 0 obj<</S/URI/URI(http://samba.org/)>>endobj +612 0 obj<</Subtype/Link/Rect[151.1 438.2 262.3 451.2]/Border[0 0 0]/A 611 0 R>>endobj +613 0 obj[612 0 R]endobj +614 0 obj<</S/Launch/F(winbindd.8.html)>>endobj +615 0 obj<</Subtype/Link/Rect[306.3 232.9 363.4 245.9]/Border[0 0 0]/A 614 0 R>>endobj +616 0 obj<</S/Launch/F(#WINBINDSEPARATOR)>>endobj +617 0 obj<</Subtype/Link/Rect[100.4 161.5 192.2 172.5]/Border[0 0 0]/A 616 0 R>>endobj +618 0 obj<</S/Launch/F(#WINBINDUID)>>endobj +619 0 obj<</Subtype/Link/Rect[100.4 139.9 159.8 150.9]/Border[0 0 0]/A 618 0 R>>endobj +620 0 obj<</S/Launch/F(#WINBINDGID)>>endobj +621 0 obj<</Subtype/Link/Rect[100.4 118.3 159.8 129.3]/Border[0 0 0]/A 620 0 R>>endobj +622 0 obj<</S/Launch/F(#WINBINDENUMUSERS)>>endobj +623 0 obj<</Subtype/Link/Rect[100.4 96.7 197.6 107.7]/Border[0 0 0]/A 622 0 R>>endobj +624 0 obj<</S/Launch/F(#WINBINDENUMGROUP)>>endobj +625 0 obj<</Subtype/Link/Rect[100.4 85.9 203.0 96.9]/Border[0 0 0]/A 624 0 R>>endobj +626 0 obj<</S/Launch/F(#TEMPLATEHOMEDIR)>>endobj +627 0 obj<</Subtype/Link/Rect[100.4 64.3 186.8 75.3]/Border[0 0 0]/A 626 0 R>>endobj +628 0 obj[615 0 R +617 0 R +619 0 R +621 0 R +623 0 R 625 0 R 627 0 R]endobj -629 0 obj<</S/URI/URI(mailto:jtrostel@snapserver.com)>>endobj -630 0 obj<</Subtype/Link/Rect[197.9 304.6 310.1 317.6]/Border[0 0 0]/A 629 0 R>>endobj +629 0 obj<</S/Launch/F(#TEMPLATESHELL)>>endobj +630 0 obj<</Subtype/Link/Rect[100.4 721.6 176.0 732.6]/Border[0 0 0]/A 629 0 R>>endobj 631 0 obj[630 0 R]endobj -632 0 obj<</S/URI/URI(http://samba.org/)>>endobj -633 0 obj<</Subtype/Link/Rect[151.1 438.2 262.3 451.2]/Border[0 0 0]/A 632 0 R>>endobj -634 0 obj[633 0 R]endobj -635 0 obj<</S/Launch/F(winbindd.8.html)>>endobj -636 0 obj<</Subtype/Link/Rect[306.3 235.8 363.4 248.8]/Border[0 0 0]/A 635 0 R>>endobj -637 0 obj<</S/Launch/F(#WINBINDSEPARATOR)>>endobj -638 0 obj<</Subtype/Link/Rect[99.0 165.8 190.8 176.8]/Border[0 0 0]/A 637 0 R>>endobj -639 0 obj<</S/Launch/F(#WINBINDUID)>>endobj -640 0 obj<</Subtype/Link/Rect[99.0 144.2 158.4 155.2]/Border[0 0 0]/A 639 0 R>>endobj -641 0 obj<</S/Launch/F(#WINBINDGID)>>endobj -642 0 obj<</Subtype/Link/Rect[99.0 122.6 158.4 133.6]/Border[0 0 0]/A 641 0 R>>endobj -643 0 obj<</S/Launch/F(#WINBINDENUMUSERS)>>endobj -644 0 obj<</Subtype/Link/Rect[99.0 101.0 196.2 112.0]/Border[0 0 0]/A 643 0 R>>endobj -645 0 obj<</S/Launch/F(#WINBINDENUMGROUP)>>endobj -646 0 obj<</Subtype/Link/Rect[99.0 90.2 201.6 101.2]/Border[0 0 0]/A 645 0 R>>endobj -647 0 obj<</S/Launch/F(#TEMPLATEHOMEDIR)>>endobj -648 0 obj<</Subtype/Link/Rect[99.0 68.6 185.4 79.6]/Border[0 0 0]/A 647 0 R>>endobj -649 0 obj<</S/Launch/F(#TEMPLATESHELL)>>endobj -650 0 obj<</Subtype/Link/Rect[99.0 57.8 174.6 68.8]/Border[0 0 0]/A 649 0 R>>endobj -651 0 obj[636 0 R -638 0 R -640 0 R -642 0 R +632 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj +633 0 obj<</Subtype/Link/Rect[153.2 599.8 225.8 612.8]/Border[0 0 0]/A 632 0 R>>endobj +634 0 obj<</S/Launch/F(ENCRYPTION.html)>>endobj +635 0 obj<</Subtype/Link/Rect[303.1 599.8 389.9 612.8]/Border[0 0 0]/A 634 0 R>>endobj +636 0 obj<</S/Launch/F(UNIX_INSTALL.html)>>endobj +637 0 obj<</Subtype/Link/Rect[333.5 442.5 438.0 455.5]/Border[0 0 0]/A 636 0 R>>endobj +638 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj +639 0 obj<</Subtype/Link/Rect[440.4 429.3 541.8 442.3]/Border[0 0 0]/A 638 0 R>>endobj +640 0 obj[633 0 R +635 0 R +637 0 R +639 0 R]endobj +641 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj +642 0 obj<</Subtype/Link/Rect[465.5 659.0 546.8 672.0]/Border[0 0 0]/A 641 0 R>>endobj +643 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj +644 0 obj<</Subtype/Link/Rect[72.0 645.8 92.8 658.8]/Border[0 0 0]/A 643 0 R>>endobj +645 0 obj<</S/Launch/F(#NETBIOSNAME)>>endobj +646 0 obj<</Subtype/Link/Rect[95.0 572.0 159.8 583.0]/Border[0 0 0]/A 645 0 R>>endobj +647 0 obj<</S/Launch/F(#WORKGROUP)>>endobj +648 0 obj<</Subtype/Link/Rect[95.0 561.2 143.6 572.2]/Border[0 0 0]/A 647 0 R>>endobj +649 0 obj<</S/Launch/F(#OSLEVEL)>>endobj +650 0 obj<</Subtype/Link/Rect[95.0 528.8 138.2 539.8]/Border[0 0 0]/A 649 0 R>>endobj +651 0 obj<</S/Launch/F(#PERFERREDMASTER)>>endobj +652 0 obj<</Subtype/Link/Rect[95.0 518.0 181.4 529.0]/Border[0 0 0]/A 651 0 R>>endobj +653 0 obj<</S/Launch/F(#DOMAINMASTER)>>endobj +654 0 obj<</Subtype/Link/Rect[95.0 507.2 165.2 518.2]/Border[0 0 0]/A 653 0 R>>endobj +655 0 obj<</S/Launch/F(#LOCALMASTER)>>endobj +656 0 obj<</Subtype/Link/Rect[95.0 496.4 159.8 507.4]/Border[0 0 0]/A 655 0 R>>endobj +657 0 obj<</S/Launch/F(#SECURITYEQUALSUSER)>>endobj +658 0 obj<</Subtype/Link/Rect[95.0 464.0 138.2 475.0]/Border[0 0 0]/A 657 0 R>>endobj +659 0 obj<</S/Launch/F(#ENCRYPTPASSWORDS)>>endobj +660 0 obj<</Subtype/Link/Rect[95.0 431.6 186.8 442.6]/Border[0 0 0]/A 659 0 R>>endobj +661 0 obj<</S/Launch/F(#DOMAINLOGONS)>>endobj +662 0 obj<</Subtype/Link/Rect[95.0 399.2 165.2 410.2]/Border[0 0 0]/A 661 0 R>>endobj +663 0 obj<</S/Launch/F(#LOGONPATH)>>endobj +664 0 obj<</Subtype/Link/Rect[95.0 366.8 149.0 377.8]/Border[0 0 0]/A 663 0 R>>endobj +665 0 obj<</S/Launch/F(#LOGONDRIVE)>>endobj +666 0 obj<</Subtype/Link/Rect[95.0 323.6 154.4 334.6]/Border[0 0 0]/A 665 0 R>>endobj +667 0 obj<</S/Launch/F(#LOGONHOME)>>endobj +668 0 obj<</Subtype/Link/Rect[95.0 312.8 149.0 323.8]/Border[0 0 0]/A 667 0 R>>endobj +669 0 obj<</S/Launch/F(#LOGONSCRIPT)>>endobj +670 0 obj<</Subtype/Link/Rect[95.0 269.6 159.8 280.6]/Border[0 0 0]/A 669 0 R>>endobj +671 0 obj<</S/Launch/F(#PATH)>>endobj +672 0 obj<</Subtype/Link/Rect[95.0 226.4 116.6 237.4]/Border[0 0 0]/A 671 0 R>>endobj +673 0 obj<</S/Launch/F(#READONLY)>>endobj +674 0 obj<</Subtype/Link/Rect[95.0 215.6 143.6 226.6]/Border[0 0 0]/A 673 0 R>>endobj +675 0 obj<</S/Launch/F(#WRITELIST)>>endobj +676 0 obj<</Subtype/Link/Rect[95.0 204.8 149.0 215.8]/Border[0 0 0]/A 675 0 R>>endobj +677 0 obj<</S/Launch/F(#PATH)>>endobj +678 0 obj<</Subtype/Link/Rect[95.0 161.6 116.6 172.6]/Border[0 0 0]/A 677 0 R>>endobj +679 0 obj<</S/Launch/F(#READONLY)>>endobj +680 0 obj<</Subtype/Link/Rect[95.0 150.8 143.6 161.8]/Border[0 0 0]/A 679 0 R>>endobj +681 0 obj<</S/Launch/F(#CREATEMASK)>>endobj +682 0 obj<</Subtype/Link/Rect[95.0 140.0 154.4 151.0]/Border[0 0 0]/A 681 0 R>>endobj +683 0 obj<</S/Launch/F(#DIRECTORYMASK)>>endobj +684 0 obj<</Subtype/Link/Rect[95.0 129.2 170.6 140.2]/Border[0 0 0]/A 683 0 R>>endobj +685 0 obj<</S/Launch/F(ENCRYPTION.html)>>endobj +686 0 obj<</Subtype/Link/Rect[108.0 62.1 200.6 75.1]/Border[0 0 0]/A 685 0 R>>endobj +687 0 obj[642 0 R 644 0 R 646 0 R 648 0 R -650 0 R]endobj -652 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj -653 0 obj<</Subtype/Link/Rect[153.2 599.8 225.8 612.8]/Border[0 0 0]/A 652 0 R>>endobj -654 0 obj<</S/Launch/F(ENCRYPTION.html)>>endobj -655 0 obj<</Subtype/Link/Rect[303.1 599.8 389.9 612.8]/Border[0 0 0]/A 654 0 R>>endobj -656 0 obj<</S/Launch/F(UNIX_INSTALL.html)>>endobj -657 0 obj<</Subtype/Link/Rect[333.5 442.5 438.0 455.5]/Border[0 0 0]/A 656 0 R>>endobj -658 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj -659 0 obj<</Subtype/Link/Rect[440.4 429.3 541.8 442.3]/Border[0 0 0]/A 658 0 R>>endobj -660 0 obj[653 0 R -655 0 R -657 0 R -659 0 R]endobj -661 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj -662 0 obj<</Subtype/Link/Rect[465.5 659.0 546.8 672.0]/Border[0 0 0]/A 661 0 R>>endobj -663 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj -664 0 obj<</Subtype/Link/Rect[72.0 645.8 92.8 658.8]/Border[0 0 0]/A 663 0 R>>endobj -665 0 obj<</S/Launch/F(#NETBIOSNAME)>>endobj -666 0 obj<</Subtype/Link/Rect[93.6 573.4 158.4 584.4]/Border[0 0 0]/A 665 0 R>>endobj -667 0 obj<</S/Launch/F(#WORKGROUP)>>endobj -668 0 obj<</Subtype/Link/Rect[93.6 562.6 142.2 573.6]/Border[0 0 0]/A 667 0 R>>endobj -669 0 obj<</S/Launch/F(#OSLEVEL)>>endobj -670 0 obj<</Subtype/Link/Rect[93.6 530.2 136.8 541.2]/Border[0 0 0]/A 669 0 R>>endobj -671 0 obj<</S/Launch/F(#PERFERREDMASTER)>>endobj -672 0 obj<</Subtype/Link/Rect[93.6 519.4 180.0 530.4]/Border[0 0 0]/A 671 0 R>>endobj -673 0 obj<</S/Launch/F(#DOMAINMASTER)>>endobj -674 0 obj<</Subtype/Link/Rect[93.6 508.6 163.8 519.6]/Border[0 0 0]/A 673 0 R>>endobj -675 0 obj<</S/Launch/F(#LOCALMASTER)>>endobj -676 0 obj<</Subtype/Link/Rect[93.6 497.8 158.4 508.8]/Border[0 0 0]/A 675 0 R>>endobj -677 0 obj<</S/Launch/F(#SECURITYEQUALSUSER)>>endobj -678 0 obj<</Subtype/Link/Rect[93.6 465.4 136.8 476.4]/Border[0 0 0]/A 677 0 R>>endobj -679 0 obj<</S/Launch/F(#ENCRYPTPASSWORDS)>>endobj -680 0 obj<</Subtype/Link/Rect[93.6 433.0 185.4 444.0]/Border[0 0 0]/A 679 0 R>>endobj -681 0 obj<</S/Launch/F(#DOMAINLOGONS)>>endobj -682 0 obj<</Subtype/Link/Rect[93.6 400.6 163.8 411.6]/Border[0 0 0]/A 681 0 R>>endobj -683 0 obj<</S/Launch/F(#LOGONPATH)>>endobj -684 0 obj<</Subtype/Link/Rect[93.6 368.2 147.6 379.2]/Border[0 0 0]/A 683 0 R>>endobj -685 0 obj<</S/Launch/F(#LOGONDRIVE)>>endobj -686 0 obj<</Subtype/Link/Rect[93.6 325.0 153.0 336.0]/Border[0 0 0]/A 685 0 R>>endobj -687 0 obj<</S/Launch/F(#LOGONHOME)>>endobj -688 0 obj<</Subtype/Link/Rect[93.6 314.2 147.6 325.2]/Border[0 0 0]/A 687 0 R>>endobj -689 0 obj<</S/Launch/F(#LOGONSCRIPT)>>endobj -690 0 obj<</Subtype/Link/Rect[93.6 271.0 158.4 282.0]/Border[0 0 0]/A 689 0 R>>endobj -691 0 obj<</S/Launch/F(#PATH)>>endobj -692 0 obj<</Subtype/Link/Rect[93.6 227.8 115.2 238.8]/Border[0 0 0]/A 691 0 R>>endobj -693 0 obj<</S/Launch/F(#READONLY)>>endobj -694 0 obj<</Subtype/Link/Rect[93.6 217.0 142.2 228.0]/Border[0 0 0]/A 693 0 R>>endobj -695 0 obj<</S/Launch/F(#WRITELIST)>>endobj -696 0 obj<</Subtype/Link/Rect[93.6 206.2 147.6 217.2]/Border[0 0 0]/A 695 0 R>>endobj -697 0 obj<</S/Launch/F(#PATH)>>endobj -698 0 obj<</Subtype/Link/Rect[93.6 163.0 115.2 174.0]/Border[0 0 0]/A 697 0 R>>endobj -699 0 obj<</S/Launch/F(#READONLY)>>endobj -700 0 obj<</Subtype/Link/Rect[93.6 152.2 142.2 163.2]/Border[0 0 0]/A 699 0 R>>endobj -701 0 obj<</S/Launch/F(#CREATEMASK)>>endobj -702 0 obj<</Subtype/Link/Rect[93.6 141.4 153.0 152.4]/Border[0 0 0]/A 701 0 R>>endobj -703 0 obj<</S/Launch/F(#DIRECTORYMASK)>>endobj -704 0 obj<</Subtype/Link/Rect[93.6 130.6 169.2 141.6]/Border[0 0 0]/A 703 0 R>>endobj -705 0 obj<</S/Launch/F(ENCRYPTION.html)>>endobj -706 0 obj<</Subtype/Link/Rect[108.0 65.0 200.6 78.0]/Border[0 0 0]/A 705 0 R>>endobj -707 0 obj[662 0 R +650 0 R +652 0 R +654 0 R +656 0 R +658 0 R +660 0 R +662 0 R 664 0 R 666 0 R 668 0 R @@ -1227,3798 +1193,3645 @@ 680 0 R 682 0 R 684 0 R -686 0 R -688 0 R -690 0 R -692 0 R -694 0 R -696 0 R -698 0 R -700 0 R -702 0 R -704 0 R -706 0 R]endobj -708 0 obj<</S/Launch/F(#DOMAINADMINGROUP)>>endobj -709 0 obj<</Subtype/Link/Rect[494.2 641.8 530.0 654.8]/Border[0 0 0]/A 708 0 R>>endobj -710 0 obj<</S/Launch/F(#DOMAINADMINGROUP)>>endobj -711 0 obj<</Subtype/Link/Rect[72.0 628.6 127.9 641.6]/Border[0 0 0]/A 710 0 R>>endobj -712 0 obj[709 0 R -711 0 R]endobj -713 0 obj<</S/Launch/F(smbpasswd.8.html)>>endobj -714 0 obj<</Subtype/Link/Rect[72.0 551.8 138.6 564.8]/Border[0 0 0]/A 713 0 R>>endobj -715 0 obj<</S/Launch/F(#ADDUSERSCRIPT)>>endobj -716 0 obj<</Subtype/Link/Rect[420.0 263.3 486.9 276.3]/Border[0 0 0]/A 715 0 R>>endobj -717 0 obj[714 0 R -716 0 R]endobj -718 0 obj<</S/URI/URI(http://www.microsoft.com/ntserver/management/deployment/planguide/prof_policies.asp)>>endobj -719 0 obj<</Subtype/Link/Rect[139.8 135.8 387.6 148.8]/Border[0 0 0]/A 718 0 R>>endobj -720 0 obj[719 0 R]endobj -721 0 obj<</S/URI/URI(ftp://ftp.microsoft.com/Softlib/MSLFILES/NEXUS.EXE)>>endobj -722 0 obj<</Subtype/Link/Rect[285.2 259.0 540.0 272.0]/Border[0 0 0]/A 721 0 R>>endobj -723 0 obj<</S/URI/URI(ftp://ftp.microsoft.com/Softlib/MSLFILES/SRVTOOLS.EXE)>>endobj -724 0 obj<</Subtype/Link/Rect[230.8 219.4 505.8 232.4]/Border[0 0 0]/A 723 0 R>>endobj -725 0 obj[722 0 R -724 0 R]endobj -726 0 obj<</S/URI/URI(http://www.tcpdump.org/)>>endobj -727 0 obj<</Subtype/Link/Rect[349.4 483.4 455.4 496.4]/Border[0 0 0]/A 726 0 R>>endobj -728 0 obj<</S/URI/URI(http://www.ethereal.com/)>>endobj -729 0 obj<</Subtype/Link/Rect[424.5 470.2 536.6 483.2]/Border[0 0 0]/A 728 0 R>>endobj -730 0 obj[727 0 R -729 0 R]endobj -731 0 obj<</S/URI/URI(http://samba.org)>>endobj -732 0 obj<</Subtype/Link/Rect[233.5 602.2 308.1 615.2]/Border[0 0 0]/A 731 0 R>>endobj -733 0 obj<</S/URI/URI(http://www.skippy.net/linux/smb-howto.html)>>endobj -734 0 obj<</Subtype/Link/Rect[144.0 549.4 346.1 562.4]/Border[0 0 0]/A 733 0 R>>endobj -735 0 obj<</S/URI/URI(http://bioserve.latrobe.edu.au/samba)>>endobj -736 0 obj<</Subtype/Link/Rect[179.7 523.0 342.3 536.0]/Border[0 0 0]/A 735 0 R>>endobj -737 0 obj<</S/URI/URI(http://samba.org/cifs/)>>endobj -738 0 obj<</Subtype/Link/Rect[282.1 509.8 378.7 522.8]/Border[0 0 0]/A 737 0 R>>endobj -739 0 obj<</S/URI/URI(http://mailhost.cb1.com/~lkcl/ntdom/)>>endobj -740 0 obj<</Subtype/Link/Rect[241.5 496.6 408.5 509.6]/Border[0 0 0]/A 739 0 R>>endobj -741 0 obj<</S/URI/URI(ftp://ftp.microsoft.com/developr/drg/CIFS/)>>endobj -742 0 obj<</Subtype/Link/Rect[277.5 483.4 469.1 496.4]/Border[0 0 0]/A 741 0 R>>endobj -743 0 obj<</S/URI/URI(http://samba.org)>>endobj -744 0 obj<</Subtype/Link/Rect[358.2 430.6 432.8 443.6]/Border[0 0 0]/A 743 0 R>>endobj -745 0 obj<</S/URI/URI(http://www.samba-tng.org/)>>endobj -746 0 obj<</Subtype/Link/Rect[298.4 391.0 422.8 404.0]/Border[0 0 0]/A 745 0 R>>endobj -747 0 obj[732 0 R -734 0 R -736 0 R -738 0 R -740 0 R -742 0 R -744 0 R -746 0 R]endobj -748 0 obj<</S/URI/URI(http://lists.samba.org/)>>endobj -749 0 obj<</Subtype/Link/Rect[132.8 615.4 227.8 628.4]/Border[0 0 0]/A 748 0 R>>endobj -750 0 obj<</S/URI/URI(http://lists.samba.org/mailman/roster/samba-ntdom)>>endobj -751 0 obj<</Subtype/Link/Rect[306.3 602.2 328.0 615.2]/Border[0 0 0]/A 750 0 R>>endobj -752 0 obj[749 0 R -751 0 R]endobj -753 0 obj<</S/Launch/F(Samba-PDC-HOWTO.html)>>endobj -754 0 obj<</Subtype/Link/Rect[210.4 613.0 317.8 626.0]/Border[0 0 0]/A 753 0 R>>endobj -755 0 obj[754 0 R]endobj -756 0 obj<</S/URI/URI(http://www.openldap.org/)>>endobj -757 0 obj<</Subtype/Link/Rect[169.5 560.2 285.9 573.2]/Border[0 0 0]/A 756 0 R>>endobj -758 0 obj<</S/URI/URI(http://iplanet.netscape.com/directory)>>endobj -759 0 obj<</Subtype/Link/Rect[223.9 547.0 387.9 560.0]/Border[0 0 0]/A 758 0 R>>endobj -760 0 obj<</S/URI/URI(http://www.ora.com/)>>endobj -761 0 obj<</Subtype/Link/Rect[112.6 520.6 202.0 533.6]/Border[0 0 0]/A 760 0 R>>endobj -762 0 obj<</S/URI/URI(http://www.unav.es/cti/ldap-smb/ldap-smb-2_2-howto.html)>>endobj -763 0 obj<</Subtype/Link/Rect[125.1 454.6 267.5 467.6]/Border[0 0 0]/A 762 0 R>>endobj -764 0 obj<</S/URI/URI(http://samba.idealx.org/)>>endobj -765 0 obj<</Subtype/Link/Rect[243.7 441.4 287.3 454.4]/Border[0 0 0]/A 764 0 R>>endobj -766 0 obj<</S/Launch/F(#ENCRYPTPASSWORDS)>>endobj -767 0 obj<</Subtype/Link/Rect[212.8 366.2 332.5 379.2]/Border[0 0 0]/A 766 0 R>>endobj -768 0 obj[757 0 R -759 0 R +686 0 R]endobj +688 0 obj<</S/Launch/F(#DOMAINADMINGROUP)>>endobj +689 0 obj<</Subtype/Link/Rect[494.2 641.8 530.0 654.8]/Border[0 0 0]/A 688 0 R>>endobj +690 0 obj<</S/Launch/F(#DOMAINADMINGROUP)>>endobj +691 0 obj<</Subtype/Link/Rect[72.0 628.6 127.9 641.6]/Border[0 0 0]/A 690 0 R>>endobj +692 0 obj[689 0 R +691 0 R]endobj +693 0 obj<</S/Launch/F(smbpasswd.8.html)>>endobj +694 0 obj<</Subtype/Link/Rect[72.0 548.9 138.6 561.9]/Border[0 0 0]/A 693 0 R>>endobj +695 0 obj<</S/Launch/F(#ADDUSERSCRIPT)>>endobj +696 0 obj<</Subtype/Link/Rect[420.0 260.4 486.9 273.4]/Border[0 0 0]/A 695 0 R>>endobj +697 0 obj[694 0 R +696 0 R]endobj +698 0 obj<</S/URI/URI(http://www.microsoft.com/ntserver/management/deployment/planguide/prof_policies.asp)>>endobj +699 0 obj<</Subtype/Link/Rect[139.8 132.9 387.6 145.9]/Border[0 0 0]/A 698 0 R>>endobj +700 0 obj[699 0 R]endobj +701 0 obj<</S/URI/URI(ftp://ftp.microsoft.com/Softlib/MSLFILES/NEXUS.EXE)>>endobj +702 0 obj<</Subtype/Link/Rect[285.2 259.0 540.0 272.0]/Border[0 0 0]/A 701 0 R>>endobj +703 0 obj<</S/URI/URI(ftp://ftp.microsoft.com/Softlib/MSLFILES/SRVTOOLS.EXE)>>endobj +704 0 obj<</Subtype/Link/Rect[230.8 219.4 505.8 232.4]/Border[0 0 0]/A 703 0 R>>endobj +705 0 obj[702 0 R +704 0 R]endobj +706 0 obj<</S/URI/URI(http://www.tcpdump.org/)>>endobj +707 0 obj<</Subtype/Link/Rect[349.4 483.4 455.4 496.4]/Border[0 0 0]/A 706 0 R>>endobj +708 0 obj<</S/URI/URI(http://www.ethereal.com/)>>endobj +709 0 obj<</Subtype/Link/Rect[424.5 470.2 536.6 483.2]/Border[0 0 0]/A 708 0 R>>endobj +710 0 obj[707 0 R +709 0 R]endobj +711 0 obj<</S/URI/URI(http://samba.org)>>endobj +712 0 obj<</Subtype/Link/Rect[233.5 602.2 308.1 615.2]/Border[0 0 0]/A 711 0 R>>endobj +713 0 obj<</S/URI/URI(http://www.skippy.net/linux/smb-howto.html)>>endobj +714 0 obj<</Subtype/Link/Rect[144.0 549.4 346.1 562.4]/Border[0 0 0]/A 713 0 R>>endobj +715 0 obj<</S/URI/URI(http://bioserve.latrobe.edu.au/samba)>>endobj +716 0 obj<</Subtype/Link/Rect[179.7 523.0 342.3 536.0]/Border[0 0 0]/A 715 0 R>>endobj +717 0 obj<</S/URI/URI(http://samba.org/cifs/)>>endobj +718 0 obj<</Subtype/Link/Rect[282.1 509.8 378.7 522.8]/Border[0 0 0]/A 717 0 R>>endobj +719 0 obj<</S/URI/URI(http://mailhost.cb1.com/~lkcl/ntdom/)>>endobj +720 0 obj<</Subtype/Link/Rect[241.5 496.6 408.5 509.6]/Border[0 0 0]/A 719 0 R>>endobj +721 0 obj<</S/URI/URI(ftp://ftp.microsoft.com/developr/drg/CIFS/)>>endobj +722 0 obj<</Subtype/Link/Rect[277.5 483.4 469.1 496.4]/Border[0 0 0]/A 721 0 R>>endobj +723 0 obj<</S/URI/URI(http://samba.org)>>endobj +724 0 obj<</Subtype/Link/Rect[358.2 430.6 432.8 443.6]/Border[0 0 0]/A 723 0 R>>endobj +725 0 obj<</S/URI/URI(http://www.samba-tng.org/)>>endobj +726 0 obj<</Subtype/Link/Rect[298.4 391.0 422.8 404.0]/Border[0 0 0]/A 725 0 R>>endobj +727 0 obj[712 0 R +714 0 R +716 0 R +718 0 R +720 0 R +722 0 R +724 0 R +726 0 R]endobj +728 0 obj<</S/URI/URI(http://lists.samba.org/)>>endobj +729 0 obj<</Subtype/Link/Rect[132.8 615.4 227.8 628.4]/Border[0 0 0]/A 728 0 R>>endobj +730 0 obj<</S/URI/URI(http://lists.samba.org/mailman/roster/samba-ntdom)>>endobj +731 0 obj<</Subtype/Link/Rect[306.3 602.2 328.0 615.2]/Border[0 0 0]/A 730 0 R>>endobj +732 0 obj[729 0 R +731 0 R]endobj +733 0 obj<</S/Launch/F(Samba-PDC-HOWTO.html)>>endobj +734 0 obj<</Subtype/Link/Rect[210.4 613.0 317.8 626.0]/Border[0 0 0]/A 733 0 R>>endobj +735 0 obj[734 0 R]endobj +736 0 obj<</S/URI/URI(http://www.openldap.org/)>>endobj +737 0 obj<</Subtype/Link/Rect[169.5 560.2 285.9 573.2]/Border[0 0 0]/A 736 0 R>>endobj +738 0 obj<</S/URI/URI(http://iplanet.netscape.com/directory)>>endobj +739 0 obj<</Subtype/Link/Rect[223.9 547.0 387.9 560.0]/Border[0 0 0]/A 738 0 R>>endobj +740 0 obj<</S/URI/URI(http://www.ora.com/)>>endobj +741 0 obj<</Subtype/Link/Rect[112.6 520.6 202.0 533.6]/Border[0 0 0]/A 740 0 R>>endobj +742 0 obj<</S/URI/URI(http://www.unav.es/cti/ldap-smb/ldap-smb-2_2-howto.html)>>endobj +743 0 obj<</Subtype/Link/Rect[125.1 454.6 267.5 467.6]/Border[0 0 0]/A 742 0 R>>endobj +744 0 obj<</S/URI/URI(http://samba.idealx.org/)>>endobj +745 0 obj<</Subtype/Link/Rect[243.7 441.4 287.3 454.4]/Border[0 0 0]/A 744 0 R>>endobj +746 0 obj<</S/Launch/F(#ENCRYPTPASSWORDS)>>endobj +747 0 obj<</Subtype/Link/Rect[212.8 366.2 332.5 379.2]/Border[0 0 0]/A 746 0 R>>endobj +748 0 obj[737 0 R +739 0 R +741 0 R +743 0 R +745 0 R +747 0 R]endobj +749 0 obj<</S/URI/URI(http://www.padl.com/)>>endobj +750 0 obj<</Subtype/Link/Rect[284.3 602.2 380.9 615.2]/Border[0 0 0]/A 749 0 R>>endobj +751 0 obj<</S/Launch/F(samba-patches@samba.org)>>endobj +752 0 obj<</Subtype/Link/Rect[332.3 487.4 458.0 500.4]/Border[0 0 0]/A 751 0 R>>endobj +753 0 obj<</S/Launch/F(jerry@samba.org)>>endobj +754 0 obj<</Subtype/Link/Rect[476.6 487.4 555.8 500.4]/Border[0 0 0]/A 753 0 R>>endobj +755 0 obj<</S/Launch/F(jerry@samba.org)>>endobj +756 0 obj<</Subtype/Link/Rect[271.2 254.5 350.4 267.5]/Border[0 0 0]/A 755 0 R>>endobj +757 0 obj[750 0 R +752 0 R +754 0 R +756 0 R]endobj +758 0 obj<</S/Launch/F(#LDAPSSL)>>endobj +759 0 obj<</Subtype/Link/Rect[108.0 721.0 141.3 734.0]/Border[0 0 0]/A 758 0 R>>endobj +760 0 obj<</S/Launch/F(#LDAPSERVER)>>endobj +761 0 obj<</Subtype/Link/Rect[108.0 707.8 156.6 720.8]/Border[0 0 0]/A 760 0 R>>endobj +762 0 obj<</S/Launch/F(#LDAPADMINDN)>>endobj +763 0 obj<</Subtype/Link/Rect[108.0 694.6 170.9 707.6]/Border[0 0 0]/A 762 0 R>>endobj +764 0 obj<</S/Launch/F(#LDAPSUFFIX)>>endobj +765 0 obj<</Subtype/Link/Rect[108.0 681.4 155.4 694.4]/Border[0 0 0]/A 764 0 R>>endobj +766 0 obj<</S/Launch/F(#LDAPFILTER)>>endobj +767 0 obj<</Subtype/Link/Rect[108.0 668.2 151.1 681.2]/Border[0 0 0]/A 766 0 R>>endobj +768 0 obj<</S/Launch/F(#LDAPPORT)>>endobj +769 0 obj<</Subtype/Link/Rect[108.0 655.0 147.4 668.0]/Border[0 0 0]/A 768 0 R>>endobj +770 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj +771 0 obj<</Subtype/Link/Rect[186.9 628.6 243.1 641.6]/Border[0 0 0]/A 770 0 R>>endobj +772 0 obj[759 0 R 761 0 R 763 0 R 765 0 R -767 0 R]endobj -769 0 obj<</S/URI/URI(http://www.padl.com/)>>endobj -770 0 obj<</Subtype/Link/Rect[284.3 602.2 380.9 615.2]/Border[0 0 0]/A 769 0 R>>endobj -771 0 obj<</S/Launch/F(samba-patches@samba.org)>>endobj -772 0 obj<</Subtype/Link/Rect[332.3 487.4 458.0 500.4]/Border[0 0 0]/A 771 0 R>>endobj -773 0 obj<</S/Launch/F(jerry@samba.org)>>endobj -774 0 obj<</Subtype/Link/Rect[476.6 487.4 555.8 500.4]/Border[0 0 0]/A 773 0 R>>endobj -775 0 obj<</S/Launch/F(jerry@samba.org)>>endobj -776 0 obj<</Subtype/Link/Rect[271.2 237.0 350.4 250.0]/Border[0 0 0]/A 775 0 R>>endobj -777 0 obj[770 0 R -772 0 R -774 0 R -776 0 R]endobj -778 0 obj<</S/Launch/F(#LDAPSSL)>>endobj -779 0 obj<</Subtype/Link/Rect[108.0 61.4 141.3 74.4]/Border[0 0 0]/A 778 0 R>>endobj -780 0 obj[779 0 R]endobj -781 0 obj<</S/Launch/F(#LDAPSERVER)>>endobj -782 0 obj<</Subtype/Link/Rect[108.0 721.0 156.6 734.0]/Border[0 0 0]/A 781 0 R>>endobj -783 0 obj<</S/Launch/F(#LDAPADMINDN)>>endobj -784 0 obj<</Subtype/Link/Rect[108.0 707.8 170.9 720.8]/Border[0 0 0]/A 783 0 R>>endobj -785 0 obj<</S/Launch/F(#LDAPSUFFIX)>>endobj -786 0 obj<</Subtype/Link/Rect[108.0 694.6 155.4 707.6]/Border[0 0 0]/A 785 0 R>>endobj -787 0 obj<</S/Launch/F(#LDAPFILTER)>>endobj -788 0 obj<</Subtype/Link/Rect[108.0 681.4 151.1 694.4]/Border[0 0 0]/A 787 0 R>>endobj -789 0 obj<</S/Launch/F(#LDAPPORT)>>endobj -790 0 obj<</Subtype/Link/Rect[108.0 668.2 147.4 681.2]/Border[0 0 0]/A 789 0 R>>endobj -791 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj -792 0 obj<</Subtype/Link/Rect[186.9 641.8 243.1 654.8]/Border[0 0 0]/A 791 0 R>>endobj -793 0 obj[782 0 R -784 0 R -786 0 R -788 0 R -790 0 R -792 0 R]endobj -794 0 obj<</S/Launch/F(ENCRYPTION.html)>>endobj -795 0 obj<</Subtype/Link/Rect[72.0 566.6 176.8 579.6]/Border[0 0 0]/A 794 0 R>>endobj -796 0 obj[795 0 R]endobj -797 0 obj<</S/Launch/F(Samba-PDC-HOWTO.html)>>endobj -798 0 obj<</Subtype/Link/Rect[72.0 523.0 176.7 536.0]/Border[0 0 0]/A 797 0 R>>endobj -799 0 obj[798 0 R]endobj -800 0 obj<</S/URI/URI(mailto:jerry@samba.org)>>endobj -801 0 obj<</Subtype/Link/Rect[302.7 445.4 381.8 458.4]/Border[0 0 0]/A 800 0 R>>endobj -802 0 obj[801 0 R]endobj -803 0 obj<</S/URI/URI(http://www.thursby.com/)>>endobj -804 0 obj<</Subtype/Link/Rect[91.9 621.8 131.3 634.8]/Border[0 0 0]/A 803 0 R>>endobj -805 0 obj<</S/URI/URI(http://www.umich.edu/~rsug/netatalk/)>>endobj -806 0 obj<</Subtype/Link/Rect[72.0 503.0 109.3 516.0]/Border[0 0 0]/A 805 0 R>>endobj -807 0 obj<</S/URI/URI(http://www.cs.mu.oz.au/appletalk/atalk.html)>>endobj -808 0 obj<</Subtype/Link/Rect[130.7 503.0 154.8 516.0]/Border[0 0 0]/A 807 0 R>>endobj -809 0 obj<</S/URI/URI(http://www.eats.com/linux_mac_win.html)>>endobj -810 0 obj<</Subtype/Link/Rect[72.0 476.6 258.1 489.6]/Border[0 0 0]/A 809 0 R>>endobj -811 0 obj<</S/URI/URI(http://carol.wins.uva.nl/~leeuw/samba/warp.html)>>endobj -812 0 obj<</Subtype/Link/Rect[325.6 367.8 544.5 380.8]/Border[0 0 0]/A 811 0 R>>endobj -813 0 obj[804 0 R -806 0 R -808 0 R -810 0 R -812 0 R]endobj -814 0 obj<</S/URI/URI(ftp://ftp.microsoft.com/BusSys/Clients/LANMAN.OS2/)>>endobj -815 0 obj<</Subtype/Link/Rect[72.0 661.0 319.2 674.0]/Border[0 0 0]/A 814 0 R>>endobj -816 0 obj<</S/URI/URI(http://carol.wins.uva.nl/~leeuw/lanman.html)>>endobj -817 0 obj<</Subtype/Link/Rect[340.6 661.0 538.7 674.0]/Border[0 0 0]/A 816 0 R>>endobj -818 0 obj<</S/URI/URI(ftp://ftp.cdrom.com/pub/os2/network/ndis/)>>endobj -819 0 obj<</Subtype/Link/Rect[173.1 538.6 363.5 551.6]/Border[0 0 0]/A 818 0 R>>endobj -820 0 obj<</S/URI/URI(http://carol.wins.uva.nl/~leeuw/samba/fix.html)>>endobj -821 0 obj<</Subtype/Link/Rect[220.2 450.2 429.3 463.2]/Border[0 0 0]/A 820 0 R>>endobj -822 0 obj[815 0 R -817 0 R -819 0 R -821 0 R]endobj -823 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj -824 0 obj<</Subtype/Link/Rect[218.7 321.4 275.0 334.4]/Border[0 0 0]/A 823 0 R>>endobj -825 0 obj[824 0 R]endobj -826 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj -827 0 obj<</Subtype/Link/Rect[493.6 579.8 549.8 592.8]/Border[0 0 0]/A 826 0 R>>endobj -828 0 obj[827 0 R]endobj -829 0 obj<</S/URI/URI(http://samba.org/samba/cvs.html)>>endobj -830 0 obj<</Subtype/Link/Rect[354.3 573.4 500.7 586.4]/Border[0 0 0]/A 829 0 R>>endobj -831 0 obj<</S/URI/URI(http://samba.org/cgi-bin/cvsweb)>>endobj -832 0 obj<</Subtype/Link/Rect[135.9 373.8 283.2 386.8]/Border[0 0 0]/A 831 0 R>>endobj -833 0 obj<</S/URI/URI(http://www.cyclic.com/)>>endobj -834 0 obj<</Subtype/Link/Rect[391.6 262.6 498.2 275.6]/Border[0 0 0]/A 833 0 R>>endobj -835 0 obj[830 0 R -832 0 R -834 0 R]endobj -836 0 obj<</S/Launch/F(Diagnosis.html)>>endobj -837 0 obj<</Subtype/Link/Rect[185.0 350.6 229.3 363.6]/Border[0 0 0]/A 836 0 R>>endobj -838 0 obj[837 0 R]endobj -839 0 obj<</Dests 840 0 R>>endobj -840 0 obj<</Kids[841 0 R]>>endobj -841 0 obj<</Limits[(ads)(winbind)]/Names[(ads)842 0 R(aen1001)843 0 R(aen1031)844 0 R(aen1039)845 0 R(aen1043)846 0 R(aen1053)847 0 R(aen1056)848 0 R(aen1060)849 0 R(aen1082)850 0 R(aen1128)851 0 R(aen1144)852 0 R(aen1153)853 0 R(aen1161)854 0 R(aen1189)855 0 R(aen119)856 0 R(aen1200)857 0 R(aen1212)858 0 R(aen1215)859 0 R(aen1218)860 0 R(aen1231)861 0 R(aen1242)862 0 R(aen1275)863 0 R(aen1339)864 0 R(aen1344)865 0 R(aen135)866 0 R(aen1397)867 0 R(aen1401)868 0 R(aen1414)869 0 R(aen1421)870 0 R(aen1425)871 0 R(aen1430)872 0 R(aen1434)873 0 R(aen144)874 0 R(aen1450)875 0 R(aen1458)876 0 R(aen1462)877 0 R(aen1465)878 0 R(aen1472)879 0 R(aen1485)880 0 R(aen1499)881 0 R(aen1510)882 0 R(aen1529)883 0 R(aen1562)884 0 R(aen1578)885 0 R(aen1589)886 0 R(aen160)887 0 R(aen1625)888 0 R(aen1627)889 0 R(aen1644)890 0 R(aen1651)891 0 R(aen1657)892 0 R(aen1674)893 0 R(aen1707)894 0 R(aen1714)895 0 R(aen1724)896 0 R(aen174)897 0 R(aen1744)898 0 R(aen1750)899 0 R(aen1789)900 0 R(aen179)901 0 R(aen183)902 0 R(aen1832)903 0 R(aen1851)904 0 R(aen186)905 0 R(aen1886)906 0 R(aen1895)907 0 R(aen1910)908 0 R(aen195)909 0 R(aen1958)910 0 R(aen20)911 0 R(aen200)912 0 R(aen2002)913 0 R(aen209)914 0 R(aen2116)915 0 R(aen2142)916 0 R(aen2161)917 0 R(aen2169)918 0 R(aen2177)919 0 R(aen2185)920 0 R(aen2192)921 0 R(aen2228)922 0 R(aen223)923 0 R(aen2241)924 0 R(aen2244)925 0 R(aen2254)926 0 R(aen228)927 0 R(aen2290)928 0 R(aen2294)929 0 R(aen2302)930 0 R(aen2305)931 0 R(aen2308)932 0 R(aen2311)933 0 R(aen2315)934 0 R(aen2332)935 0 R(aen2353)936 0 R(aen2373)937 0 R(aen238)938 0 R(aen240)939 0 R(aen2402)940 0 R(aen2407)941 0 R(aen2419)942 0 R(aen2421)943 0 R(aen2438)944 0 R(aen246)945 0 R(aen2466)946 0 R(aen2471)947 0 R(aen2491)948 0 R(aen252)949 0 R(aen2561)950 0 R(aen2569)951 0 R(aen2587)952 0 R(aen2593)953 0 R(aen2602)954 0 R(aen2614)955 0 R(aen2624)956 0 R(aen2628)957 0 R(aen2640)958 0 R(aen2645)959 0 R(aen2648)960 0 R(aen2659)961 0 R(aen2663)962 0 R(aen267)963 0 R(aen2672)964 0 R(aen2679)965 0 R(aen2684)966 0 R(aen2719)967 0 R(aen272)968 0 R(aen2738)969 0 R(aen2756)970 0 R(aen2766)971 0 R(aen2775)972 0 R(aen278)973 0 R(aen2793)974 0 R(aen2796)975 0 R(aen28)976 0 R(aen2814)977 0 R(aen2820)978 0 R(aen2822)979 0 R(aen2830)980 0 R(aen2836)981 0 R(aen2840)982 0 R(aen2847)983 0 R(aen2852)984 0 R(aen2857)985 0 R(aen286)986 0 R(aen2861)987 0 R(aen2866)988 0 R(aen2869)989 0 R(aen2872)990 0 R(aen2877)991 0 R(aen2881)992 0 R(aen2888)993 0 R(aen2893)994 0 R(aen2897)995 0 R(aen2900)996 0 R(aen2932)997 0 R(aen2953)998 0 R(aen2962)999 0 R(aen2964)1000 0 R(aen2979)1001 0 R(aen2988)1002 0 R(aen2992)1003 0 R(aen3002)1004 0 R(aen3004)1005 0 R(aen3009)1006 0 R(aen3014)1007 0 R(aen3018)1008 0 R(aen3023)1009 0 R(aen3039)1010 0 R(aen3063)1011 0 R(aen3068)1012 0 R(aen3071)1013 0 R(aen3076)1014 0 R(aen3111)1015 0 R(aen3118)1016 0 R(aen312)1017 0 R(aen3124)1018 0 R(aen3141)1019 0 R(aen3151)1020 0 R(aen3154)1021 0 R(aen3201)1022 0 R(aen3206)1023 0 R(aen3210)1024 0 R(aen329)1025 0 R(aen337)1026 0 R(aen343)1027 0 R(aen348)1028 0 R(aen365)1029 0 R(aen387)1030 0 R(aen4)1031 0 R(aen403)1032 0 R(aen419)1033 0 R(aen430)1034 0 R(aen438)1035 0 R(aen450)1036 0 R(aen462)1037 0 R(aen467)1038 0 R(aen475)1039 0 R(aen480)1040 0 R(aen483)1041 0 R(aen495)1042 0 R(aen505)1043 0 R(aen533)1044 0 R(aen541)1045 0 R(aen558)1046 0 R(aen56)1047 0 R(aen565)1048 0 R(aen570)1049 0 R(aen575)1050 0 R(aen596)1051 0 R(aen60)1052 0 R(aen640)1053 0 R(aen647)1054 0 R(aen667)1055 0 R(aen702)1056 0 R(aen722)1057 0 R(aen731)1058 0 R(aen74)1059 0 R(aen742)1060 0 R(aen762)1061 0 R(aen777)1062 0 R(aen791)1063 0 R(aen798)1064 0 R(aen8)1065 0 R(aen80)1066 0 R(aen820)1067 0 R(aen884)1068 0 R(aen90)1069 0 R(aen905)1070 0 R(aen927)1071 0 R(aen938)1072 0 R(aen973)1073 0 R(aen990)1074 0 R(bugreport)1075 0 R(cvs-access)1076 0 R(diagnosis)1077 0 R(domain-security)1078 0 R(groupmapping)1079 0 R(improved-browsing)1080 0 R(install)1081 0 R(integrate-ms-networks)1082 0 R(migration)1083 0 R(msdfs)1084 0 R(other-clients)1085 0 R(pam)1086 0 R(portability)1087 0 R(printing)1088 0 R(printingdebug)1089 0 R(samba-bdc)1090 0 R(samba-howto-collection.html)1091 0 R(samba-ldap-howto)1092 0 R(samba-pdc)1093 0 R(samba-project-documentation)1094 0 R(securitylevels)1095 0 R(speed)1096 0 R(unix-permissions)1097 0 R(winbind)1098 0 R]>>endobj -842 0 obj<</D[1302 0 R/XYZ 0 734 0]>>endobj -843 0 obj<</D[1192 0 R/XYZ 0 348 0]>>endobj -844 0 obj<</D[1194 0 R/XYZ 0 171 0]>>endobj -845 0 obj<</D[1196 0 R/XYZ 0 652 0]>>endobj -846 0 obj<</D[1196 0 R/XYZ 0 551 0]>>endobj -847 0 obj<</D[1196 0 R/XYZ 0 426 0]>>endobj -848 0 obj<</D[1196 0 R/XYZ 0 341 0]>>endobj -849 0 obj<</D[1196 0 R/XYZ 0 243 0]>>endobj -850 0 obj<</D[1198 0 R/XYZ 0 359 0]>>endobj -851 0 obj<</D[1202 0 R/XYZ 0 696 0]>>endobj -852 0 obj<</D[1204 0 R/XYZ 0 734 0]>>endobj -853 0 obj<</D[1204 0 R/XYZ 0 278 0]>>endobj -854 0 obj<</D[1206 0 R/XYZ 0 734 0]>>endobj -855 0 obj<</D[1206 0 R/XYZ 0 304 0]>>endobj -856 0 obj<</D[1128 0 R/XYZ 0 303 0]>>endobj -857 0 obj<</D[1208 0 R/XYZ 0 646 0]>>endobj -858 0 obj<</D[1208 0 R/XYZ 0 299 0]>>endobj -859 0 obj<</D[1208 0 R/XYZ 0 210 0]>>endobj -860 0 obj<</D[1210 0 R/XYZ 0 734 0]>>endobj -861 0 obj<</D[1212 0 R/XYZ 0 696 0]>>endobj -862 0 obj<</D[1212 0 R/XYZ 0 467 0]>>endobj -863 0 obj<</D[1216 0 R/XYZ 0 696 0]>>endobj -864 0 obj<</D[1218 0 R/XYZ 0 362 0]>>endobj -865 0 obj<</D[1218 0 R/XYZ 0 155 0]>>endobj -866 0 obj<</D[1130 0 R/XYZ 0 718 0]>>endobj -867 0 obj<</D[1222 0 R/XYZ 0 672 0]>>endobj -868 0 obj<</D[1222 0 R/XYZ 0 544 0]>>endobj -869 0 obj<</D[1222 0 R/XYZ 0 231 0]>>endobj -870 0 obj<</D[1224 0 R/XYZ 0 560 0]>>endobj -871 0 obj<</D[1224 0 R/XYZ 0 409 0]>>endobj -872 0 obj<</D[1224 0 R/XYZ 0 294 0]>>endobj -873 0 obj<</D[1226 0 R/XYZ 0 734 0]>>endobj -874 0 obj<</D[1130 0 R/XYZ 0 551 0]>>endobj -875 0 obj<</D[1226 0 R/XYZ 0 292 0]>>endobj -876 0 obj<</D[1228 0 R/XYZ 0 665 0]>>endobj -877 0 obj<</D[1228 0 R/XYZ 0 488 0]>>endobj -878 0 obj<</D[1228 0 R/XYZ 0 351 0]>>endobj -879 0 obj<</D[1228 0 R/XYZ 0 209 0]>>endobj -880 0 obj<</D[1230 0 R/XYZ 0 599 0]>>endobj -881 0 obj<</D[1230 0 R/XYZ 0 330 0]>>endobj -882 0 obj<</D[1230 0 R/XYZ 0 192 0]>>endobj -883 0 obj<</D[1232 0 R/XYZ 0 692 0]>>endobj -884 0 obj<</D[1232 0 R/XYZ 0 288 0]>>endobj -885 0 obj<</D[1234 0 R/XYZ 0 718 0]>>endobj -886 0 obj<</D[1234 0 R/XYZ 0 571 0]>>endobj -887 0 obj<</D[1130 0 R/XYZ 0 383 0]>>endobj -888 0 obj<</D[1236 0 R/XYZ 0 527 0]>>endobj -889 0 obj<</D[1236 0 R/XYZ 0 501 0]>>endobj -890 0 obj<</D[1238 0 R/XYZ 0 600 0]>>endobj -891 0 obj<</D[1240 0 R/XYZ 0 686 0]>>endobj -892 0 obj<</D[1240 0 R/XYZ 0 620 0]>>endobj -893 0 obj<</D[1240 0 R/XYZ 0 381 0]>>endobj -894 0 obj<</D[1242 0 R/XYZ 0 429 0]>>endobj -895 0 obj<</D[1244 0 R/XYZ 0 296 0]>>endobj -896 0 obj<</D[1246 0 R/XYZ 0 734 0]>>endobj -897 0 obj<</D[1130 0 R/XYZ 0 169 0]>>endobj -898 0 obj<</D[1248 0 R/XYZ 0 672 0]>>endobj -899 0 obj<</D[1248 0 R/XYZ 0 584 0]>>endobj -900 0 obj<</D[1250 0 R/XYZ 0 718 0]>>endobj -901 0 obj<</D[1132 0 R/XYZ 0 652 0]>>endobj -902 0 obj<</D[1132 0 R/XYZ 0 594 0]>>endobj -903 0 obj<</D[1252 0 R/XYZ 0 613 0]>>endobj -904 0 obj<</D[1252 0 R/XYZ 0 227 0]>>endobj -905 0 obj<</D[1132 0 R/XYZ 0 509 0]>>endobj -906 0 obj<</D[1254 0 R/XYZ 0 359 0]>>endobj -907 0 obj<</D[1254 0 R/XYZ 0 149 0]>>endobj -908 0 obj<</D[1256 0 R/XYZ 0 467 0]>>endobj -909 0 obj<</D[1132 0 R/XYZ 0 200 0]>>endobj -910 0 obj<</D[1258 0 R/XYZ 0 208 0]>>endobj -911 0 obj<</D[1124 0 R/XYZ 0 696 0]>>endobj -912 0 obj<</D[1134 0 R/XYZ 0 718 0]>>endobj -913 0 obj<</D[1260 0 R/XYZ 0 203 0]>>endobj -914 0 obj<</D[1134 0 R/XYZ 0 264 0]>>endobj -915 0 obj<</D[1266 0 R/XYZ 0 547 0]>>endobj -916 0 obj<</D[1268 0 R/XYZ 0 560 0]>>endobj -917 0 obj<</D[1268 0 R/XYZ 0 126 0]>>endobj -918 0 obj<</D[1270 0 R/XYZ 0 599 0]>>endobj -919 0 obj<</D[1270 0 R/XYZ 0 425 0]>>endobj -920 0 obj<</D[1270 0 R/XYZ 0 201 0]>>endobj -921 0 obj<</D[1272 0 R/XYZ 0 734 0]>>endobj -922 0 obj<</D[1274 0 R/XYZ 0 428 0]>>endobj -923 0 obj<</D[1136 0 R/XYZ 0 696 0]>>endobj -924 0 obj<</D[1276 0 R/XYZ 0 531 0]>>endobj -925 0 obj<</D[1276 0 R/XYZ 0 449 0]>>endobj -926 0 obj<</D[1276 0 R/XYZ 0 135 0]>>endobj -927 0 obj<</D[1136 0 R/XYZ 0 529 0]>>endobj -928 0 obj<</D[1282 0 R/XYZ 0 672 0]>>endobj -929 0 obj<</D[1282 0 R/XYZ 0 597 0]>>endobj -930 0 obj<</D[1282 0 R/XYZ 0 225 0]>>endobj -931 0 obj<</D[1284 0 R/XYZ 0 734 0]>>endobj -932 0 obj<</D[1284 0 R/XYZ 0 609 0]>>endobj -933 0 obj<</D[1284 0 R/XYZ 0 524 0]>>endobj -934 0 obj<</D[1284 0 R/XYZ 0 383 0]>>endobj -935 0 obj<</D[1286 0 R/XYZ 0 620 0]>>endobj -936 0 obj<</D[1288 0 R/XYZ 0 672 0]>>endobj -937 0 obj<</D[1288 0 R/XYZ 0 412 0]>>endobj -938 0 obj<</D[1136 0 R/XYZ 0 173 0]>>endobj -939 0 obj<</D[1136 0 R/XYZ 0 139 0]>>endobj -940 0 obj<</D[1290 0 R/XYZ 0 573 0]>>endobj -941 0 obj<</D[1290 0 R/XYZ 0 471 0]>>endobj -942 0 obj<</D[1292 0 R/XYZ 0 734 0]>>endobj -943 0 obj<</D[1292 0 R/XYZ 0 700 0]>>endobj -944 0 obj<</D[1292 0 R/XYZ 0 143 0]>>endobj -945 0 obj<</D[1138 0 R/XYZ 0 705 0]>>endobj -946 0 obj<</D[1294 0 R/XYZ 0 243 0]>>endobj -947 0 obj<</D[1296 0 R/XYZ 0 718 0]>>endobj -948 0 obj<</D[1296 0 R/XYZ 0 336 0]>>endobj -949 0 obj<</D[1138 0 R/XYZ 0 501 0]>>endobj -950 0 obj<</D[1298 0 R/XYZ 0 322 0]>>endobj -951 0 obj<</D[1300 0 R/XYZ 0 492 0]>>endobj -952 0 obj<</D[1302 0 R/XYZ 0 500 0]>>endobj -953 0 obj<</D[1302 0 R/XYZ 0 393 0]>>endobj -954 0 obj<</D[1302 0 R/XYZ 0 217 0]>>endobj -955 0 obj<</D[1304 0 R/XYZ 0 530 0]>>endobj -956 0 obj<</D[1304 0 R/XYZ 0 213 0]>>endobj -957 0 obj<</D[1304 0 R/XYZ 0 125 0]>>endobj -958 0 obj<</D[1306 0 R/XYZ 0 665 0]>>endobj -959 0 obj<</D[1306 0 R/XYZ 0 577 0]>>endobj -960 0 obj<</D[1306 0 R/XYZ 0 502 0]>>endobj -961 0 obj<</D[1308 0 R/XYZ 0 696 0]>>endobj -962 0 obj<</D[1308 0 R/XYZ 0 515 0]>>endobj -963 0 obj<</D[1140 0 R/XYZ 0 586 0]>>endobj -964 0 obj<</D[1308 0 R/XYZ 0 137 0]>>endobj -965 0 obj<</D[1310 0 R/XYZ 0 533 0]>>endobj -966 0 obj<</D[1310 0 R/XYZ 0 273 0]>>endobj -967 0 obj<</D[1316 0 R/XYZ 0 560 0]>>endobj -968 0 obj<</D[1140 0 R/XYZ 0 435 0]>>endobj -969 0 obj<</D[1318 0 R/XYZ 0 613 0]>>endobj -970 0 obj<</D[1320 0 R/XYZ 0 622 0]>>endobj -971 0 obj<</D[1320 0 R/XYZ 0 266 0]>>endobj -972 0 obj<</D[1322 0 R/XYZ 0 520 0]>>endobj -973 0 obj<</D[1140 0 R/XYZ 0 311 0]>>endobj -974 0 obj<</D[1324 0 R/XYZ 0 734 0]>>endobj -975 0 obj<</D[1324 0 R/XYZ 0 645 0]>>endobj -976 0 obj<</D[1124 0 R/XYZ 0 568 0]>>endobj -977 0 obj<</D[1326 0 R/XYZ 0 696 0]>>endobj -978 0 obj<</D[1326 0 R/XYZ 0 449 0]>>endobj -979 0 obj<</D[1326 0 R/XYZ 0 416 0]>>endobj -980 0 obj<</D[1326 0 R/XYZ 0 146 0]>>endobj -981 0 obj<</D[1328 0 R/XYZ 0 652 0]>>endobj -982 0 obj<</D[1328 0 R/XYZ 0 515 0]>>endobj -983 0 obj<</D[1328 0 R/XYZ 0 255 0]>>endobj -984 0 obj<</D[1330 0 R/XYZ 0 718 0]>>endobj -985 0 obj<</D[1330 0 R/XYZ 0 537 0]>>endobj -986 0 obj<</D[1142 0 R/XYZ 0 718 0]>>endobj -987 0 obj<</D[1330 0 R/XYZ 0 409 0]>>endobj -988 0 obj<</D[1330 0 R/XYZ 0 189 0]>>endobj -989 0 obj<</D[1332 0 R/XYZ 0 734 0]>>endobj -990 0 obj<</D[1332 0 R/XYZ 0 645 0]>>endobj -991 0 obj<</D[1332 0 R/XYZ 0 477 0]>>endobj -992 0 obj<</D[1332 0 R/XYZ 0 349 0]>>endobj -993 0 obj<</D[1332 0 R/XYZ 0 129 0]>>endobj -994 0 obj<</D[1334 0 R/XYZ 0 639 0]>>endobj -995 0 obj<</D[1334 0 R/XYZ 0 511 0]>>endobj -996 0 obj<</D[1334 0 R/XYZ 0 436 0]>>endobj -997 0 obj<</D[1336 0 R/XYZ 0 388 0]>>endobj -998 0 obj<</D[1338 0 R/XYZ 0 668 0]>>endobj -999 0 obj<</D[1338 0 R/XYZ 0 461 0]>>endobj -1000 0 obj<</D[1338 0 R/XYZ 0 427 0]>>endobj -1001 0 obj<</D[1340 0 R/XYZ 0 734 0]>>endobj -1002 0 obj<</D[1340 0 R/XYZ 0 523 0]>>endobj -1003 0 obj<</D[1340 0 R/XYZ 0 408 0]>>endobj -1004 0 obj<</D[1340 0 R/XYZ 0 151 0]>>endobj -1005 0 obj<</D[1340 0 R/XYZ 0 118 0]>>endobj -1006 0 obj<</D[1342 0 R/XYZ 0 626 0]>>endobj -1007 0 obj<</D[1342 0 R/XYZ 0 475 0]>>endobj -1008 0 obj<</D[1342 0 R/XYZ 0 377 0]>>endobj -1009 0 obj<</D[1342 0 R/XYZ 0 292 0]>>endobj -1010 0 obj<</D[1344 0 R/XYZ 0 718 0]>>endobj -1011 0 obj<</D[1346 0 R/XYZ 0 672 0]>>endobj -1012 0 obj<</D[1346 0 R/XYZ 0 557 0]>>endobj -1013 0 obj<</D[1346 0 R/XYZ 0 469 0]>>endobj -1014 0 obj<</D[1346 0 R/XYZ 0 358 0]>>endobj -1015 0 obj<</D[1350 0 R/XYZ 0 696 0]>>endobj -1016 0 obj<</D[1350 0 R/XYZ 0 436 0]>>endobj -1017 0 obj<</D[1142 0 R/XYZ 0 356 0]>>endobj -1018 0 obj<</D[1350 0 R/XYZ 0 295 0]>>endobj -1019 0 obj<</D[1352 0 R/XYZ 0 639 0]>>endobj -1020 0 obj<</D[1352 0 R/XYZ 0 287 0]>>endobj -1021 0 obj<</D[1352 0 R/XYZ 0 185 0]>>endobj -1022 0 obj<</D[1356 0 R/XYZ 0 655 0]>>endobj -1023 0 obj<</D[1356 0 R/XYZ 0 447 0]>>endobj -1024 0 obj<</D[1356 0 R/XYZ 0 333 0]>>endobj -1025 0 obj<</D[1144 0 R/XYZ 0 679 0]>>endobj -1026 0 obj<</D[1144 0 R/XYZ 0 488 0]>>endobj -1027 0 obj<</D[1144 0 R/XYZ 0 351 0]>>endobj -1028 0 obj<</D[1144 0 R/XYZ 0 213 0]>>endobj -1029 0 obj<</D[1146 0 R/XYZ 0 672 0]>>endobj -1030 0 obj<</D[1146 0 R/XYZ 0 439 0]>>endobj -1031 0 obj<</D[1100 0 R/XYZ 0 696 0]>>endobj -1032 0 obj<</D[1146 0 R/XYZ 0 311 0]>>endobj -1033 0 obj<</D[1148 0 R/XYZ 0 441 0]>>endobj -1034 0 obj<</D[1148 0 R/XYZ 0 303 0]>>endobj -1035 0 obj<</D[1148 0 R/XYZ 0 157 0]>>endobj -1036 0 obj<</D[1150 0 R/XYZ 0 339 0]>>endobj -1037 0 obj<</D[1152 0 R/XYZ 0 266 0]>>endobj -1038 0 obj<</D[1154 0 R/XYZ 0 734 0]>>endobj -1039 0 obj<</D[1156 0 R/XYZ 0 459 0]>>endobj -1040 0 obj<</D[1156 0 R/XYZ 0 361 0]>>endobj -1041 0 obj<</D[1156 0 R/XYZ 0 224 0]>>endobj -1042 0 obj<</D[1158 0 R/XYZ 0 670 0]>>endobj -1043 0 obj<</D[1158 0 R/XYZ 0 126 0]>>endobj -1044 0 obj<</D[1162 0 R/XYZ 0 734 0]>>endobj -1045 0 obj<</D[1162 0 R/XYZ 0 484 0]>>endobj -1046 0 obj<</D[1162 0 R/XYZ 0 132 0]>>endobj -1047 0 obj<</D[1124 0 R/XYZ 0 163 0]>>endobj -1048 0 obj<</D[1164 0 R/XYZ 0 523 0]>>endobj -1049 0 obj<</D[1164 0 R/XYZ 0 377 0]>>endobj -1050 0 obj<</D[1164 0 R/XYZ 0 263 0]>>endobj -1051 0 obj<</D[1166 0 R/XYZ 0 672 0]>>endobj -1052 0 obj<</D[1126 0 R/XYZ 0 734 0]>>endobj -1053 0 obj<</D[1168 0 R/XYZ 0 148 0]>>endobj -1054 0 obj<</D[1170 0 R/XYZ 0 705 0]>>endobj -1055 0 obj<</D[1172 0 R/XYZ 0 672 0]>>endobj -1056 0 obj<</D[1174 0 R/XYZ 0 652 0]>>endobj -1057 0 obj<</D[1176 0 R/XYZ 0 672 0]>>endobj -1058 0 obj<</D[1176 0 R/XYZ 0 497 0]>>endobj -1059 0 obj<</D[1126 0 R/XYZ 0 385 0]>>endobj -1060 0 obj<</D[1176 0 R/XYZ 0 330 0]>>endobj -1061 0 obj<</D[1178 0 R/XYZ 0 665 0]>>endobj -1062 0 obj<</D[1178 0 R/XYZ 0 432 0]>>endobj -1063 0 obj<</D[1178 0 R/XYZ 0 189 0]>>endobj -1064 0 obj<</D[1180 0 R/XYZ 0 692 0]>>endobj -1065 0 obj<</D[1114 0 R/XYZ 0 734 0]>>endobj -1066 0 obj<</D[1126 0 R/XYZ 0 283 0]>>endobj -1067 0 obj<</D[1180 0 R/XYZ 0 260 0]>>endobj -1068 0 obj<</D[1184 0 R/XYZ 0 599 0]>>endobj -1069 0 obj<</D[1126 0 R/XYZ 0 129 0]>>endobj -1070 0 obj<</D[1186 0 R/XYZ 0 696 0]>>endobj -1071 0 obj<</D[1186 0 R/XYZ 0 278 0]>>endobj -1072 0 obj<</D[1188 0 R/XYZ 0 702 0]>>endobj -1073 0 obj<</D[1190 0 R/XYZ 0 471 0]>>endobj -1074 0 obj<</D[1192 0 R/XYZ 0 718 0]>>endobj -1075 0 obj<</D[1350 0 R/XYZ 0 734 0]>>endobj -1076 0 obj<</D[1346 0 R/XYZ 0 734 0]>>endobj -1077 0 obj<</D[1136 0 R/XYZ 0 734 0]>>endobj -1078 0 obj<</D[1216 0 R/XYZ 0 734 0]>>endobj -1079 0 obj<</D[1354 0 R/XYZ 0 734 0]>>endobj -1080 0 obj<</D[1308 0 R/XYZ 0 734 0]>>endobj -1081 0 obj<</D[1124 0 R/XYZ 0 734 0]>>endobj -1082 0 obj<</D[1146 0 R/XYZ 0 734 0]>>endobj -1083 0 obj<</D[1198 0 R/XYZ 0 359 0]>>endobj -1084 0 obj<</D[1172 0 R/XYZ 0 734 0]>>endobj -1085 0 obj<</D[1338 0 R/XYZ 0 734 0]>>endobj -1086 0 obj<</D[1166 0 R/XYZ 0 734 0]>>endobj -1087 0 obj<</D[1356 0 R/XYZ 0 734 0]>>endobj -1088 0 obj<</D[1186 0 R/XYZ 0 734 0]>>endobj -1089 0 obj<</D[1202 0 R/XYZ 0 734 0]>>endobj -1090 0 obj<</D[1282 0 R/XYZ 0 734 0]>>endobj -1091 0 obj<</D[1100 0 R/XYZ 0 734 0]>>endobj -1092 0 obj<</D[1288 0 R/XYZ 0 734 0]>>endobj -1093 0 obj<</D[1248 0 R/XYZ 0 734 0]>>endobj -1094 0 obj<</D[1100 0 R/XYZ 0 734 0]>>endobj -1095 0 obj<</D[1212 0 R/XYZ 0 734 0]>>endobj -1096 0 obj<</D[1326 0 R/XYZ 0 734 0]>>endobj -1097 0 obj<</D[1176 0 R/XYZ 0 734 0]>>endobj -1098 0 obj<</D[1222 0 R/XYZ 0 734 0]>>endobj -1099 0 obj<</Type/Pages/Count 131/Kids[1100 0 R -1102 0 R -1104 0 R -1106 0 R -1108 0 R -1110 0 R -1112 0 R -1114 0 R -1116 0 R -1118 0 R -1120 0 R -1122 0 R -1124 0 R -1126 0 R -1128 0 R -1130 0 R -1132 0 R -1134 0 R -1136 0 R -1138 0 R -1140 0 R -1142 0 R -1144 0 R -1146 0 R -1148 0 R -1150 0 R -1152 0 R -1154 0 R -1156 0 R -1158 0 R -1160 0 R -1162 0 R -1164 0 R -1166 0 R -1168 0 R -1170 0 R -1172 0 R -1174 0 R -1176 0 R -1178 0 R -1180 0 R -1182 0 R -1184 0 R -1186 0 R -1188 0 R -1190 0 R -1192 0 R -1194 0 R -1196 0 R -1198 0 R -1200 0 R -1202 0 R -1204 0 R -1206 0 R -1208 0 R -1210 0 R -1212 0 R -1214 0 R -1216 0 R -1218 0 R -1220 0 R -1222 0 R -1224 0 R -1226 0 R -1228 0 R -1230 0 R -1232 0 R -1234 0 R -1236 0 R -1238 0 R -1240 0 R -1242 0 R -1244 0 R -1246 0 R -1248 0 R -1250 0 R -1252 0 R -1254 0 R -1256 0 R -1258 0 R -1260 0 R -1262 0 R -1264 0 R -1266 0 R -1268 0 R -1270 0 R -1272 0 R -1274 0 R -1276 0 R -1278 0 R -1280 0 R -1282 0 R -1284 0 R -1286 0 R -1288 0 R -1290 0 R -1292 0 R -1294 0 R -1296 0 R -1298 0 R -1300 0 R -1302 0 R -1304 0 R -1306 0 R -1308 0 R -1310 0 R -1312 0 R -1314 0 R -1316 0 R -1318 0 R -1320 0 R -1322 0 R -1324 0 R -1326 0 R -1328 0 R -1330 0 R -1332 0 R -1334 0 R -1336 0 R -1338 0 R -1340 0 R -1342 0 R -1344 0 R -1346 0 R -1348 0 R -1350 0 R -1352 0 R -1354 0 R -1356 0 R -1358 0 R -1360 0 R +767 0 R +769 0 R +771 0 R]endobj +773 0 obj<</S/Launch/F(ENCRYPTION.html)>>endobj +774 0 obj<</Subtype/Link/Rect[72.0 553.4 176.8 566.4]/Border[0 0 0]/A 773 0 R>>endobj +775 0 obj[774 0 R]endobj +776 0 obj<</S/Launch/F(Samba-PDC-HOWTO.html)>>endobj +777 0 obj<</Subtype/Link/Rect[72.0 509.8 176.7 522.8]/Border[0 0 0]/A 776 0 R>>endobj +778 0 obj[777 0 R]endobj +779 0 obj<</S/URI/URI(mailto:jerry@samba.org)>>endobj +780 0 obj<</Subtype/Link/Rect[302.7 431.7 381.8 444.7]/Border[0 0 0]/A 779 0 R>>endobj +781 0 obj[780 0 R]endobj +782 0 obj<</S/URI/URI(http://www.thursby.com/)>>endobj +783 0 obj<</Subtype/Link/Rect[91.9 621.8 131.3 634.8]/Border[0 0 0]/A 782 0 R>>endobj +784 0 obj<</S/URI/URI(http://www.umich.edu/~rsug/netatalk/)>>endobj +785 0 obj<</Subtype/Link/Rect[72.0 503.0 109.3 516.0]/Border[0 0 0]/A 784 0 R>>endobj +786 0 obj<</S/URI/URI(http://www.cs.mu.oz.au/appletalk/atalk.html)>>endobj +787 0 obj<</Subtype/Link/Rect[130.7 503.0 154.8 516.0]/Border[0 0 0]/A 786 0 R>>endobj +788 0 obj<</S/URI/URI(http://www.eats.com/linux_mac_win.html)>>endobj +789 0 obj<</Subtype/Link/Rect[72.0 476.6 258.1 489.6]/Border[0 0 0]/A 788 0 R>>endobj +790 0 obj<</S/URI/URI(http://carol.wins.uva.nl/~leeuw/samba/warp.html)>>endobj +791 0 obj<</Subtype/Link/Rect[325.6 367.8 544.5 380.8]/Border[0 0 0]/A 790 0 R>>endobj +792 0 obj[783 0 R +785 0 R +787 0 R +789 0 R +791 0 R]endobj +793 0 obj<</S/URI/URI(ftp://ftp.microsoft.com/BusSys/Clients/LANMAN.OS2/)>>endobj +794 0 obj<</Subtype/Link/Rect[72.0 661.0 319.2 674.0]/Border[0 0 0]/A 793 0 R>>endobj +795 0 obj<</S/URI/URI(http://carol.wins.uva.nl/~leeuw/lanman.html)>>endobj +796 0 obj<</Subtype/Link/Rect[340.6 661.0 538.7 674.0]/Border[0 0 0]/A 795 0 R>>endobj +797 0 obj<</S/URI/URI(ftp://ftp.cdrom.com/pub/os2/network/ndis/)>>endobj +798 0 obj<</Subtype/Link/Rect[173.1 535.7 363.5 548.7]/Border[0 0 0]/A 797 0 R>>endobj +799 0 obj<</S/URI/URI(http://carol.wins.uva.nl/~leeuw/samba/fix.html)>>endobj +800 0 obj<</Subtype/Link/Rect[220.2 464.1 429.3 477.1]/Border[0 0 0]/A 799 0 R>>endobj +801 0 obj[794 0 R +796 0 R +798 0 R +800 0 R]endobj +802 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj +803 0 obj<</Subtype/Link/Rect[218.7 347.8 275.0 360.8]/Border[0 0 0]/A 802 0 R>>endobj +804 0 obj[803 0 R]endobj +805 0 obj<</S/Launch/F(smb.conf.5.html)>>endobj +806 0 obj<</Subtype/Link/Rect[493.6 595.0 549.8 608.0]/Border[0 0 0]/A 805 0 R>>endobj +807 0 obj[806 0 R]endobj +808 0 obj<</S/URI/URI(http://samba.org/samba/cvs.html)>>endobj +809 0 obj<</Subtype/Link/Rect[354.3 597.4 500.7 610.4]/Border[0 0 0]/A 808 0 R>>endobj +810 0 obj<</S/URI/URI(http://samba.org/cgi-bin/cvsweb)>>endobj +811 0 obj<</Subtype/Link/Rect[135.9 397.8 283.2 410.8]/Border[0 0 0]/A 810 0 R>>endobj +812 0 obj<</S/URI/URI(http://www.cyclic.com/)>>endobj +813 0 obj<</Subtype/Link/Rect[391.6 286.6 498.2 299.6]/Border[0 0 0]/A 812 0 R>>endobj +814 0 obj[809 0 R +811 0 R +813 0 R]endobj +815 0 obj<</S/Launch/F(Diagnosis.html)>>endobj +816 0 obj<</Subtype/Link/Rect[185.0 350.6 229.3 363.6]/Border[0 0 0]/A 815 0 R>>endobj +817 0 obj[816 0 R]endobj +818 0 obj<</Dests 819 0 R>>endobj +819 0 obj<</Kids[820 0 R]>>endobj +820 0 obj<</Limits[(aen1028)(winbind)]/Names[(aen1028)821 0 R(aen1036)822 0 R(aen1040)823 0 R(aen1050)824 0 R(aen1053)825 0 R(aen1057)826 0 R(aen1079)827 0 R(aen1125)828 0 R(aen1141)829 0 R(aen1150)830 0 R(aen1158)831 0 R(aen1186)832 0 R(aen119)833 0 R(aen1197)834 0 R(aen1209)835 0 R(aen1212)836 0 R(aen1215)837 0 R(aen1228)838 0 R(aen1239)839 0 R(aen1272)840 0 R(aen1336)841 0 R(aen1341)842 0 R(aen135)843 0 R(aen1394)844 0 R(aen1398)845 0 R(aen1411)846 0 R(aen1418)847 0 R(aen1422)848 0 R(aen1427)849 0 R(aen1431)850 0 R(aen144)851 0 R(aen1447)852 0 R(aen1455)853 0 R(aen1459)854 0 R(aen1462)855 0 R(aen1469)856 0 R(aen1482)857 0 R(aen1496)858 0 R(aen1507)859 0 R(aen1526)860 0 R(aen1559)861 0 R(aen1575)862 0 R(aen1586)863 0 R(aen160)864 0 R(aen1622)865 0 R(aen1624)866 0 R(aen1641)867 0 R(aen1648)868 0 R(aen1654)869 0 R(aen1671)870 0 R(aen1704)871 0 R(aen1711)872 0 R(aen1721)873 0 R(aen174)874 0 R(aen1741)875 0 R(aen1747)876 0 R(aen1786)877 0 R(aen179)878 0 R(aen1829)879 0 R(aen183)880 0 R(aen1848)881 0 R(aen186)882 0 R(aen1883)883 0 R(aen1892)884 0 R(aen1907)885 0 R(aen195)886 0 R(aen1955)887 0 R(aen1999)888 0 R(aen20)889 0 R(aen200)890 0 R(aen209)891 0 R(aen2113)892 0 R(aen2139)893 0 R(aen2158)894 0 R(aen2166)895 0 R(aen2174)896 0 R(aen2182)897 0 R(aen2189)898 0 R(aen2225)899 0 R(aen223)900 0 R(aen2238)901 0 R(aen2241)902 0 R(aen2251)903 0 R(aen228)904 0 R(aen2287)905 0 R(aen2291)906 0 R(aen2299)907 0 R(aen2302)908 0 R(aen2305)909 0 R(aen2308)910 0 R(aen2312)911 0 R(aen2329)912 0 R(aen2350)913 0 R(aen2370)914 0 R(aen238)915 0 R(aen2399)916 0 R(aen240)917 0 R(aen2404)918 0 R(aen2416)919 0 R(aen2418)920 0 R(aen2435)921 0 R(aen246)922 0 R(aen2463)923 0 R(aen2468)924 0 R(aen2488)925 0 R(aen252)926 0 R(aen2558)927 0 R(aen2566)928 0 R(aen2577)929 0 R(aen2581)930 0 R(aen2590)931 0 R(aen2597)932 0 R(aen2602)933 0 R(aen2637)934 0 R(aen2656)935 0 R(aen267)936 0 R(aen2674)937 0 R(aen2684)938 0 R(aen2693)939 0 R(aen2711)940 0 R(aen2714)941 0 R(aen272)942 0 R(aen2732)943 0 R(aen2738)944 0 R(aen2740)945 0 R(aen2748)946 0 R(aen2754)947 0 R(aen2758)948 0 R(aen2765)949 0 R(aen2770)950 0 R(aen2775)951 0 R(aen2779)952 0 R(aen278)953 0 R(aen2784)954 0 R(aen2787)955 0 R(aen2790)956 0 R(aen2795)957 0 R(aen2799)958 0 R(aen28)959 0 R(aen2806)960 0 R(aen2811)961 0 R(aen2815)962 0 R(aen2818)963 0 R(aen2850)964 0 R(aen286)965 0 R(aen2871)966 0 R(aen2880)967 0 R(aen2882)968 0 R(aen2897)969 0 R(aen2906)970 0 R(aen2910)971 0 R(aen2920)972 0 R(aen2922)973 0 R(aen2927)974 0 R(aen2932)975 0 R(aen2936)976 0 R(aen2941)977 0 R(aen2957)978 0 R(aen2981)979 0 R(aen2986)980 0 R(aen2989)981 0 R(aen2994)982 0 R(aen3029)983 0 R(aen3036)984 0 R(aen3042)985 0 R(aen3059)986 0 R(aen3069)987 0 R(aen3072)988 0 R(aen3119)989 0 R(aen312)990 0 R(aen3124)991 0 R(aen3128)992 0 R(aen329)993 0 R(aen334)994 0 R(aen340)995 0 R(aen345)996 0 R(aen362)997 0 R(aen384)998 0 R(aen4)999 0 R(aen400)1000 0 R(aen416)1001 0 R(aen427)1002 0 R(aen435)1003 0 R(aen447)1004 0 R(aen459)1005 0 R(aen464)1006 0 R(aen472)1007 0 R(aen477)1008 0 R(aen480)1009 0 R(aen492)1010 0 R(aen502)1011 0 R(aen530)1012 0 R(aen538)1013 0 R(aen555)1014 0 R(aen56)1015 0 R(aen562)1016 0 R(aen567)1017 0 R(aen572)1018 0 R(aen593)1019 0 R(aen60)1020 0 R(aen637)1021 0 R(aen644)1022 0 R(aen664)1023 0 R(aen699)1024 0 R(aen719)1025 0 R(aen728)1026 0 R(aen739)1027 0 R(aen74)1028 0 R(aen759)1029 0 R(aen774)1030 0 R(aen788)1031 0 R(aen795)1032 0 R(aen8)1033 0 R(aen80)1034 0 R(aen817)1035 0 R(aen881)1036 0 R(aen90)1037 0 R(aen902)1038 0 R(aen924)1039 0 R(aen935)1040 0 R(aen970)1041 0 R(aen987)1042 0 R(aen998)1043 0 R(bugreport)1044 0 R(cvs-access)1045 0 R(diagnosis)1046 0 R(domain-security)1047 0 R(groupmapping)1048 0 R(improved-browsing)1049 0 R(install)1050 0 R(integrate-ms-networks)1051 0 R(migration)1052 0 R(msdfs)1053 0 R(other-clients)1054 0 R(pam)1055 0 R(portability)1056 0 R(printing)1057 0 R(printingdebug)1058 0 R(samba-bdc)1059 0 R(samba-howto-collection.html)1060 0 R(samba-ldap-howto)1061 0 R(samba-pdc)1062 0 R(samba-project-documentation)1063 0 R(securitylevels)1064 0 R(speed)1065 0 R(unix-permissions)1066 0 R(winbind)1067 0 R]>>endobj +821 0 obj<</D[1167 0 R/XYZ 0 155 0]>>endobj +822 0 obj<</D[1169 0 R/XYZ 0 652 0]>>endobj +823 0 obj<</D[1169 0 R/XYZ 0 551 0]>>endobj +824 0 obj<</D[1169 0 R/XYZ 0 426 0]>>endobj +825 0 obj<</D[1169 0 R/XYZ 0 341 0]>>endobj +826 0 obj<</D[1169 0 R/XYZ 0 243 0]>>endobj +827 0 obj<</D[1171 0 R/XYZ 0 357 0]>>endobj +828 0 obj<</D[1175 0 R/XYZ 0 696 0]>>endobj +829 0 obj<</D[1177 0 R/XYZ 0 734 0]>>endobj +830 0 obj<</D[1177 0 R/XYZ 0 272 0]>>endobj +831 0 obj<</D[1179 0 R/XYZ 0 734 0]>>endobj +832 0 obj<</D[1179 0 R/XYZ 0 301 0]>>endobj +833 0 obj<</D[1099 0 R/XYZ 0 300 0]>>endobj +834 0 obj<</D[1181 0 R/XYZ 0 617 0]>>endobj +835 0 obj<</D[1181 0 R/XYZ 0 264 0]>>endobj +836 0 obj<</D[1181 0 R/XYZ 0 175 0]>>endobj +837 0 obj<</D[1183 0 R/XYZ 0 734 0]>>endobj +838 0 obj<</D[1185 0 R/XYZ 0 696 0]>>endobj +839 0 obj<</D[1185 0 R/XYZ 0 465 0]>>endobj +840 0 obj<</D[1189 0 R/XYZ 0 696 0]>>endobj +841 0 obj<</D[1191 0 R/XYZ 0 362 0]>>endobj +842 0 obj<</D[1191 0 R/XYZ 0 155 0]>>endobj +843 0 obj<</D[1101 0 R/XYZ 0 718 0]>>endobj +844 0 obj<</D[1195 0 R/XYZ 0 672 0]>>endobj +845 0 obj<</D[1195 0 R/XYZ 0 544 0]>>endobj +846 0 obj<</D[1195 0 R/XYZ 0 231 0]>>endobj +847 0 obj<</D[1197 0 R/XYZ 0 560 0]>>endobj +848 0 obj<</D[1197 0 R/XYZ 0 409 0]>>endobj +849 0 obj<</D[1197 0 R/XYZ 0 294 0]>>endobj +850 0 obj<</D[1199 0 R/XYZ 0 734 0]>>endobj +851 0 obj<</D[1101 0 R/XYZ 0 551 0]>>endobj +852 0 obj<</D[1199 0 R/XYZ 0 292 0]>>endobj +853 0 obj<</D[1201 0 R/XYZ 0 665 0]>>endobj +854 0 obj<</D[1201 0 R/XYZ 0 488 0]>>endobj +855 0 obj<</D[1201 0 R/XYZ 0 351 0]>>endobj +856 0 obj<</D[1201 0 R/XYZ 0 209 0]>>endobj +857 0 obj<</D[1203 0 R/XYZ 0 599 0]>>endobj +858 0 obj<</D[1203 0 R/XYZ 0 330 0]>>endobj +859 0 obj<</D[1203 0 R/XYZ 0 192 0]>>endobj +860 0 obj<</D[1205 0 R/XYZ 0 692 0]>>endobj +861 0 obj<</D[1205 0 R/XYZ 0 285 0]>>endobj +862 0 obj<</D[1207 0 R/XYZ 0 705 0]>>endobj +863 0 obj<</D[1207 0 R/XYZ 0 557 0]>>endobj +864 0 obj<</D[1101 0 R/XYZ 0 383 0]>>endobj +865 0 obj<</D[1209 0 R/XYZ 0 503 0]>>endobj +866 0 obj<</D[1209 0 R/XYZ 0 477 0]>>endobj +867 0 obj<</D[1211 0 R/XYZ 0 564 0]>>endobj +868 0 obj<</D[1213 0 R/XYZ 0 640 0]>>endobj +869 0 obj<</D[1213 0 R/XYZ 0 574 0]>>endobj +870 0 obj<</D[1213 0 R/XYZ 0 335 0]>>endobj +871 0 obj<</D[1215 0 R/XYZ 0 357 0]>>endobj +872 0 obj<</D[1217 0 R/XYZ 0 217 0]>>endobj +873 0 obj<</D[1219 0 R/XYZ 0 679 0]>>endobj +874 0 obj<</D[1101 0 R/XYZ 0 169 0]>>endobj +875 0 obj<</D[1221 0 R/XYZ 0 672 0]>>endobj +876 0 obj<</D[1221 0 R/XYZ 0 584 0]>>endobj +877 0 obj<</D[1223 0 R/XYZ 0 718 0]>>endobj +878 0 obj<</D[1103 0 R/XYZ 0 652 0]>>endobj +879 0 obj<</D[1225 0 R/XYZ 0 613 0]>>endobj +880 0 obj<</D[1103 0 R/XYZ 0 594 0]>>endobj +881 0 obj<</D[1225 0 R/XYZ 0 227 0]>>endobj +882 0 obj<</D[1103 0 R/XYZ 0 509 0]>>endobj +883 0 obj<</D[1227 0 R/XYZ 0 356 0]>>endobj +884 0 obj<</D[1227 0 R/XYZ 0 143 0]>>endobj +885 0 obj<</D[1229 0 R/XYZ 0 467 0]>>endobj +886 0 obj<</D[1103 0 R/XYZ 0 200 0]>>endobj +887 0 obj<</D[1231 0 R/XYZ 0 205 0]>>endobj +888 0 obj<</D[1233 0 R/XYZ 0 203 0]>>endobj +889 0 obj<</D[1095 0 R/XYZ 0 696 0]>>endobj +890 0 obj<</D[1105 0 R/XYZ 0 718 0]>>endobj +891 0 obj<</D[1105 0 R/XYZ 0 264 0]>>endobj +892 0 obj<</D[1239 0 R/XYZ 0 547 0]>>endobj +893 0 obj<</D[1241 0 R/XYZ 0 560 0]>>endobj +894 0 obj<</D[1241 0 R/XYZ 0 126 0]>>endobj +895 0 obj<</D[1243 0 R/XYZ 0 599 0]>>endobj +896 0 obj<</D[1243 0 R/XYZ 0 423 0]>>endobj +897 0 obj<</D[1243 0 R/XYZ 0 196 0]>>endobj +898 0 obj<</D[1245 0 R/XYZ 0 734 0]>>endobj +899 0 obj<</D[1247 0 R/XYZ 0 428 0]>>endobj +900 0 obj<</D[1107 0 R/XYZ 0 696 0]>>endobj +901 0 obj<</D[1249 0 R/XYZ 0 531 0]>>endobj +902 0 obj<</D[1249 0 R/XYZ 0 449 0]>>endobj +903 0 obj<</D[1249 0 R/XYZ 0 135 0]>>endobj +904 0 obj<</D[1107 0 R/XYZ 0 529 0]>>endobj +905 0 obj<</D[1255 0 R/XYZ 0 672 0]>>endobj +906 0 obj<</D[1255 0 R/XYZ 0 597 0]>>endobj +907 0 obj<</D[1255 0 R/XYZ 0 223 0]>>endobj +908 0 obj<</D[1257 0 R/XYZ 0 734 0]>>endobj +909 0 obj<</D[1257 0 R/XYZ 0 609 0]>>endobj +910 0 obj<</D[1257 0 R/XYZ 0 524 0]>>endobj +911 0 obj<</D[1257 0 R/XYZ 0 383 0]>>endobj +912 0 obj<</D[1259 0 R/XYZ 0 617 0]>>endobj +913 0 obj<</D[1261 0 R/XYZ 0 672 0]>>endobj +914 0 obj<</D[1261 0 R/XYZ 0 412 0]>>endobj +915 0 obj<</D[1107 0 R/XYZ 0 170 0]>>endobj +916 0 obj<</D[1263 0 R/XYZ 0 573 0]>>endobj +917 0 obj<</D[1107 0 R/XYZ 0 136 0]>>endobj +918 0 obj<</D[1263 0 R/XYZ 0 471 0]>>endobj +919 0 obj<</D[1265 0 R/XYZ 0 734 0]>>endobj +920 0 obj<</D[1265 0 R/XYZ 0 700 0]>>endobj +921 0 obj<</D[1265 0 R/XYZ 0 138 0]>>endobj +922 0 obj<</D[1109 0 R/XYZ 0 705 0]>>endobj +923 0 obj<</D[1267 0 R/XYZ 0 227 0]>>endobj +924 0 obj<</D[1269 0 R/XYZ 0 705 0]>>endobj +925 0 obj<</D[1269 0 R/XYZ 0 320 0]>>endobj +926 0 obj<</D[1109 0 R/XYZ 0 501 0]>>endobj +927 0 obj<</D[1271 0 R/XYZ 0 309 0]>>endobj +928 0 obj<</D[1273 0 R/XYZ 0 478 0]>>endobj +929 0 obj<</D[1275 0 R/XYZ 0 696 0]>>endobj +930 0 obj<</D[1275 0 R/XYZ 0 515 0]>>endobj +931 0 obj<</D[1275 0 R/XYZ 0 137 0]>>endobj +932 0 obj<</D[1277 0 R/XYZ 0 533 0]>>endobj +933 0 obj<</D[1277 0 R/XYZ 0 273 0]>>endobj +934 0 obj<</D[1283 0 R/XYZ 0 511 0]>>endobj +935 0 obj<</D[1285 0 R/XYZ 0 560 0]>>endobj +936 0 obj<</D[1111 0 R/XYZ 0 573 0]>>endobj +937 0 obj<</D[1287 0 R/XYZ 0 567 0]>>endobj +938 0 obj<</D[1287 0 R/XYZ 0 208 0]>>endobj +939 0 obj<</D[1289 0 R/XYZ 0 454 0]>>endobj +940 0 obj<</D[1291 0 R/XYZ 0 679 0]>>endobj +941 0 obj<</D[1291 0 R/XYZ 0 590 0]>>endobj +942 0 obj<</D[1111 0 R/XYZ 0 422 0]>>endobj +943 0 obj<</D[1293 0 R/XYZ 0 696 0]>>endobj +944 0 obj<</D[1293 0 R/XYZ 0 449 0]>>endobj +945 0 obj<</D[1293 0 R/XYZ 0 416 0]>>endobj +946 0 obj<</D[1293 0 R/XYZ 0 146 0]>>endobj +947 0 obj<</D[1295 0 R/XYZ 0 652 0]>>endobj +948 0 obj<</D[1295 0 R/XYZ 0 515 0]>>endobj +949 0 obj<</D[1295 0 R/XYZ 0 255 0]>>endobj +950 0 obj<</D[1297 0 R/XYZ 0 718 0]>>endobj +951 0 obj<</D[1297 0 R/XYZ 0 537 0]>>endobj +952 0 obj<</D[1297 0 R/XYZ 0 409 0]>>endobj +953 0 obj<</D[1111 0 R/XYZ 0 298 0]>>endobj +954 0 obj<</D[1297 0 R/XYZ 0 189 0]>>endobj +955 0 obj<</D[1299 0 R/XYZ 0 734 0]>>endobj +956 0 obj<</D[1299 0 R/XYZ 0 645 0]>>endobj +957 0 obj<</D[1299 0 R/XYZ 0 477 0]>>endobj +958 0 obj<</D[1299 0 R/XYZ 0 349 0]>>endobj +959 0 obj<</D[1095 0 R/XYZ 0 568 0]>>endobj +960 0 obj<</D[1299 0 R/XYZ 0 129 0]>>endobj +961 0 obj<</D[1301 0 R/XYZ 0 639 0]>>endobj +962 0 obj<</D[1301 0 R/XYZ 0 511 0]>>endobj +963 0 obj<</D[1301 0 R/XYZ 0 436 0]>>endobj +964 0 obj<</D[1303 0 R/XYZ 0 388 0]>>endobj +965 0 obj<</D[1113 0 R/XYZ 0 705 0]>>endobj +966 0 obj<</D[1305 0 R/XYZ 0 668 0]>>endobj +967 0 obj<</D[1305 0 R/XYZ 0 461 0]>>endobj +968 0 obj<</D[1305 0 R/XYZ 0 427 0]>>endobj +969 0 obj<</D[1307 0 R/XYZ 0 734 0]>>endobj +970 0 obj<</D[1307 0 R/XYZ 0 520 0]>>endobj +971 0 obj<</D[1307 0 R/XYZ 0 422 0]>>endobj +972 0 obj<</D[1307 0 R/XYZ 0 165 0]>>endobj +973 0 obj<</D[1307 0 R/XYZ 0 132 0]>>endobj +974 0 obj<</D[1309 0 R/XYZ 0 652 0]>>endobj +975 0 obj<</D[1309 0 R/XYZ 0 501 0]>>endobj +976 0 obj<</D[1309 0 R/XYZ 0 403 0]>>endobj +977 0 obj<</D[1309 0 R/XYZ 0 319 0]>>endobj +978 0 obj<</D[1311 0 R/XYZ 0 734 0]>>endobj +979 0 obj<</D[1313 0 R/XYZ 0 696 0]>>endobj +980 0 obj<</D[1313 0 R/XYZ 0 581 0]>>endobj +981 0 obj<</D[1313 0 R/XYZ 0 493 0]>>endobj +982 0 obj<</D[1313 0 R/XYZ 0 382 0]>>endobj +983 0 obj<</D[1317 0 R/XYZ 0 696 0]>>endobj +984 0 obj<</D[1317 0 R/XYZ 0 436 0]>>endobj +985 0 obj<</D[1317 0 R/XYZ 0 295 0]>>endobj +986 0 obj<</D[1319 0 R/XYZ 0 639 0]>>endobj +987 0 obj<</D[1319 0 R/XYZ 0 287 0]>>endobj +988 0 obj<</D[1319 0 R/XYZ 0 185 0]>>endobj +989 0 obj<</D[1323 0 R/XYZ 0 655 0]>>endobj +990 0 obj<</D[1113 0 R/XYZ 0 343 0]>>endobj +991 0 obj<</D[1323 0 R/XYZ 0 447 0]>>endobj +992 0 obj<</D[1323 0 R/XYZ 0 333 0]>>endobj +993 0 obj<</D[1115 0 R/XYZ 0 679 0]>>endobj +994 0 obj<</D[1115 0 R/XYZ 0 528 0]>>endobj +995 0 obj<</D[1115 0 R/XYZ 0 390 0]>>endobj +996 0 obj<</D[1115 0 R/XYZ 0 253 0]>>endobj +997 0 obj<</D[1117 0 R/XYZ 0 696 0]>>endobj +998 0 obj<</D[1117 0 R/XYZ 0 463 0]>>endobj +999 0 obj<</D[1083 0 R/XYZ 0 696 0]>>endobj +1000 0 obj<</D[1117 0 R/XYZ 0 335 0]>>endobj +1001 0 obj<</D[1119 0 R/XYZ 0 454 0]>>endobj +1002 0 obj<</D[1119 0 R/XYZ 0 317 0]>>endobj +1003 0 obj<</D[1119 0 R/XYZ 0 168 0]>>endobj +1004 0 obj<</D[1121 0 R/XYZ 0 347 0]>>endobj +1005 0 obj<</D[1123 0 R/XYZ 0 295 0]>>endobj +1006 0 obj<</D[1125 0 R/XYZ 0 734 0]>>endobj +1007 0 obj<</D[1127 0 R/XYZ 0 456 0]>>endobj +1008 0 obj<</D[1127 0 R/XYZ 0 358 0]>>endobj +1009 0 obj<</D[1127 0 R/XYZ 0 221 0]>>endobj +1010 0 obj<</D[1129 0 R/XYZ 0 667 0]>>endobj +1011 0 obj<</D[1131 0 R/XYZ 0 734 0]>>endobj +1012 0 obj<</D[1133 0 R/XYZ 0 692 0]>>endobj +1013 0 obj<</D[1133 0 R/XYZ 0 440 0]>>endobj +1014 0 obj<</D[1135 0 R/XYZ 0 734 0]>>endobj +1015 0 obj<</D[1095 0 R/XYZ 0 163 0]>>endobj +1016 0 obj<</D[1135 0 R/XYZ 0 437 0]>>endobj +1017 0 obj<</D[1135 0 R/XYZ 0 288 0]>>endobj +1018 0 obj<</D[1135 0 R/XYZ 0 172 0]>>endobj +1019 0 obj<</D[1139 0 R/XYZ 0 672 0]>>endobj +1020 0 obj<</D[1097 0 R/XYZ 0 734 0]>>endobj +1021 0 obj<</D[1141 0 R/XYZ 0 127 0]>>endobj +1022 0 obj<</D[1143 0 R/XYZ 0 679 0]>>endobj +1023 0 obj<</D[1145 0 R/XYZ 0 672 0]>>endobj +1024 0 obj<</D[1147 0 R/XYZ 0 652 0]>>endobj +1025 0 obj<</D[1149 0 R/XYZ 0 672 0]>>endobj +1026 0 obj<</D[1149 0 R/XYZ 0 497 0]>>endobj +1027 0 obj<</D[1149 0 R/XYZ 0 330 0]>>endobj +1028 0 obj<</D[1097 0 R/XYZ 0 382 0]>>endobj +1029 0 obj<</D[1151 0 R/XYZ 0 665 0]>>endobj +1030 0 obj<</D[1151 0 R/XYZ 0 432 0]>>endobj +1031 0 obj<</D[1151 0 R/XYZ 0 189 0]>>endobj +1032 0 obj<</D[1153 0 R/XYZ 0 692 0]>>endobj +1033 0 obj<</D[1085 0 R/XYZ 0 734 0]>>endobj +1034 0 obj<</D[1097 0 R/XYZ 0 280 0]>>endobj +1035 0 obj<</D[1153 0 R/XYZ 0 260 0]>>endobj +1036 0 obj<</D[1157 0 R/XYZ 0 599 0]>>endobj +1037 0 obj<</D[1097 0 R/XYZ 0 126 0]>>endobj +1038 0 obj<</D[1159 0 R/XYZ 0 696 0]>>endobj +1039 0 obj<</D[1159 0 R/XYZ 0 278 0]>>endobj +1040 0 obj<</D[1161 0 R/XYZ 0 702 0]>>endobj +1041 0 obj<</D[1163 0 R/XYZ 0 469 0]>>endobj +1042 0 obj<</D[1165 0 R/XYZ 0 705 0]>>endobj +1043 0 obj<</D[1165 0 R/XYZ 0 332 0]>>endobj +1044 0 obj<</D[1317 0 R/XYZ 0 734 0]>>endobj +1045 0 obj<</D[1313 0 R/XYZ 0 734 0]>>endobj +1046 0 obj<</D[1107 0 R/XYZ 0 734 0]>>endobj +1047 0 obj<</D[1189 0 R/XYZ 0 734 0]>>endobj +1048 0 obj<</D[1321 0 R/XYZ 0 734 0]>>endobj +1049 0 obj<</D[1275 0 R/XYZ 0 734 0]>>endobj +1050 0 obj<</D[1095 0 R/XYZ 0 734 0]>>endobj +1051 0 obj<</D[1117 0 R/XYZ 0 734 0]>>endobj +1052 0 obj<</D[1171 0 R/XYZ 0 357 0]>>endobj +1053 0 obj<</D[1145 0 R/XYZ 0 734 0]>>endobj +1054 0 obj<</D[1305 0 R/XYZ 0 734 0]>>endobj +1055 0 obj<</D[1139 0 R/XYZ 0 734 0]>>endobj +1056 0 obj<</D[1323 0 R/XYZ 0 734 0]>>endobj +1057 0 obj<</D[1159 0 R/XYZ 0 734 0]>>endobj +1058 0 obj<</D[1175 0 R/XYZ 0 734 0]>>endobj +1059 0 obj<</D[1255 0 R/XYZ 0 734 0]>>endobj +1060 0 obj<</D[1083 0 R/XYZ 0 734 0]>>endobj +1061 0 obj<</D[1261 0 R/XYZ 0 734 0]>>endobj +1062 0 obj<</D[1221 0 R/XYZ 0 734 0]>>endobj +1063 0 obj<</D[1083 0 R/XYZ 0 734 0]>>endobj +1064 0 obj<</D[1185 0 R/XYZ 0 734 0]>>endobj +1065 0 obj<</D[1293 0 R/XYZ 0 734 0]>>endobj +1066 0 obj<</D[1149 0 R/XYZ 0 734 0]>>endobj +1067 0 obj<</D[1195 0 R/XYZ 0 734 0]>>endobj +1068 0 obj<</Type/Pages/Count 129/Kids[1069 0 R +1071 0 R +1073 0 R +1075 0 R +1077 0 R +1079 0 R +1081 0 R +1083 0 R +1085 0 R +1087 0 R +1089 0 R +1091 0 R +1093 0 R +1095 0 R +1097 0 R +1099 0 R +1101 0 R +1103 0 R +1105 0 R +1107 0 R +1109 0 R +1111 0 R +1113 0 R +1115 0 R +1117 0 R +1119 0 R +1121 0 R +1123 0 R +1125 0 R +1127 0 R +1129 0 R +1131 0 R +1133 0 R +1135 0 R +1137 0 R +1139 0 R +1141 0 R +1143 0 R +1145 0 R +1147 0 R +1149 0 R +1151 0 R +1153 0 R +1155 0 R +1157 0 R +1159 0 R +1161 0 R +1163 0 R +1165 0 R +1167 0 R +1169 0 R +1171 0 R +1173 0 R +1175 0 R +1177 0 R +1179 0 R +1181 0 R +1183 0 R +1185 0 R +1187 0 R +1189 0 R +1191 0 R +1193 0 R +1195 0 R +1197 0 R +1199 0 R +1201 0 R +1203 0 R +1205 0 R +1207 0 R +1209 0 R +1211 0 R +1213 0 R +1215 0 R +1217 0 R +1219 0 R +1221 0 R +1223 0 R +1225 0 R +1227 0 R +1229 0 R +1231 0 R +1233 0 R +1235 0 R +1237 0 R +1239 0 R +1241 0 R +1243 0 R +1245 0 R +1247 0 R +1249 0 R +1251 0 R +1253 0 R +1255 0 R +1257 0 R +1259 0 R +1261 0 R +1263 0 R +1265 0 R +1267 0 R +1269 0 R +1271 0 R +1273 0 R +1275 0 R +1277 0 R +1279 0 R +1281 0 R +1283 0 R +1285 0 R +1287 0 R +1289 0 R +1291 0 R +1293 0 R +1295 0 R +1297 0 R +1299 0 R +1301 0 R +1303 0 R +1305 0 R +1307 0 R +1309 0 R +1311 0 R +1313 0 R +1315 0 R +1317 0 R +1319 0 R +1321 0 R +1323 0 R +1325 0 R ]>>endobj -1100 0 obj<</Type/Page/Parent 1099 0 R/Contents 1101 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1101 0 obj<</Filter/FlateDecode/Length 94 >>stream +1069 0 obj<</Type/Page/Parent 1068 0 R/Contents 1070 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1070 0 obj<</Filter/FlateDecode/Length 94 >>stream x+ä2T0 ä endobj -1102 0 obj<</Type/Page/Parent 1099 0 R/Contents 1103 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 58 0 R>>endobj -1103 0 obj<</Filter/FlateDecode/Length 3675 >>stream -xÍ\Ûr#Ç
}߯˜·8U5÷áä%µ—8Ù*ßbɵy•¸c‘THj×þûœt£1$ѶèU\µÅ3g Ñh4f”ÿ¾(²ÿYWfU›]-^ä“WøOÁ¾ÿ¯dmÝãßEVõ“.€»ìâ…ƒ‹¬kGœƒ‹¬hŠIã¶Z5“)„vͤ€BÄÀ¼œôŽeò~Rc\“Àq¤šiõ,zF¸ÈšÓÉ9UjˆLœƒ‹lÚBÛÄ95‹ö%Òc°Ð4êÆGz¶¥‰n¬Ã‹¬Ì›IåØŠžkÚ^<×”|ª -e˜ºtÎ$C§–ç`4Ô854Œ+òŽ¦é1
Íé÷Ä:¶-è¤Ä:¶cÂu¬ÃL -“‚õl]ÐIƪrz=ºA@rCàÔnãŒn0NÝÆeECô˜nè©Nb¦Z¦›Ä:¡‹Ô”X‡
’9íJø¬îsI(=Óµê ÄbõŽô˜ -s5¥¡ƒÅS¼`ÁöŒ67ÖaÎL=bUa¤E&ÕP@R8pAA#=V…Û¬N,ˆ˜*qŸt¬ÃP©dþM¬Ç`!©ñ¬Ã4‡š»±ƒmkZy¶/GÏ• Û:%%¤‘“¨Lœƒ!H'AÇy M$1æ1<‘señ‘Ã…(_‰uì´ ë0Åâ€ûõ,R–×Êc°-cÙu˜.d -O¬ºªYº«$N}fœƒÑ…ƩøàB#ƒ#‹ù†Cë0œÔM¹äë0c´FBs¬Ã0Yn°±ƒÅ¶çŸ«n€_-ÝÕ’§vç`tƒqê†0.¸ÁÈà†ÈªÙ‰u˜n`2L -yÌHê¸ÜÒX‡é‰Qc=‹BÖõ,§®Ç(ë˱dÁ"ê¼dÁN§œÓÊcÔèHÑXÆz[Áh,K º¬q;ÕÔ€L]‚˜Þ¢7’syTÖ¹!ç \&)$=‹Z‹Ñ†z¬“SŒÕäj™É›ç¬EA"Øa -fæX‡179‰ÁU?•T¨‚%ÁÆVÜêë0ˉK¬ -F$0AÁ‚œàÈ"•ãH˜X‡1¶eìX‡iϘõ,Tô’U©®å”䔊,ÎQ°'±S)…c‹8˜zÖaªÌ#Pë1؂Ʊƒ•²Û±ƒmâ‰UsÛñ`® gndQÇuYe¬p• 74²(404±Ó-²mb~J¢p‡#P,h„X‘<9'ÎAšB½é1X©Éë0X„æÕê1µe
’XÉïgù]Õ•"?rZp½Ü)¶0»hÝê`60r’VîL‘¹íìW -H‡=É'V¢ åAKÊ;ç L,¦HÁ¢Dƒ:"‡CUl£•# ‰
\c¤Ç&ÖX‹ §_U¬€$6pAŒ‘›XcU¬T™Q¬€$6pAŒ‘›XcU,¢•Î\¥u–Ä.ˆ1Òck¬ŠEBNS& ‰
\c¤Ç&ÖXËÝKL|«ÀÄFNÅ$Òã(6±*¶Ó“ŠÄ.ˆ1Òck¬Š•Z3j+ ‰
\c¤Ç&ÖX+g²A‚(×ceÑìX‡Á¢œè«‚+=;A‚œàȪ Ä:l‚•TS”®¢V@¹’j"×µPš7’s–2Û&Òc°Ò"K,s1¶&îXB…þ¦Ì„B"–»D¦å0F»FF9ˆG¡Ê«’@Á‰Ó¸¹ý±1ÎAn~Ü£— 8´€§‰gÊÑ(d_ùm®Ì”TcdL«•8\~Û˜Ààv4—y™„`–ÔCF9HÏWpG⇽
½å(ÒAºªÂ“— LFÇÑÉtœ}6N<ŒK–ä7
…é+ó.aQýÓnƒD.Yò–ß&.2Cײgg”ˆC±Ì8Ô½€¿M\d(@~›v)Pö‰zuùâüËeVvùÎE© ëêìòZÞ5àòÕ—Ãû»Y¶ú½^-·³åvóçËÿ쾎Xßdç_6Ø/)ç,:+)è‹‹—_¿zÉ1X)]ɸ˜}·^ýgvµ•ëèÖ}¸þfuõ°ÀS†í|µ$Ëã_¥ääóü¯ ç_ÖfÎ{
¬d¸íØWm°ãr6,8ãtZVý÷½,J–—Ù4•ùzù~³]aj¦“®yfÊï›#WJzû¬…Í–×·Ãýv¶&Å<èÖè+&¼„pUøÏÕ'™+çñŽíJï˜ôEˆ¾ìír³îîD -Ñ<^–×2:ŸÔÓ2H¼œm$¶KtBM€œþР訟`$Xj!ŒŒ¥aÏW]r±Ý‹Uå¤Ê§ábþW^Âa:]ú~6¨õØÚ8x{;“qxë£Gƒ,gìÅ]»nf’N¸Jú0úæ÷D—Å5g|óWŽRåbß!¯æw×óå
€´]¶1È9åÕ|9¬çê„.:–êé{Plô -G†¶ -åH¶\¼7þqÛ‘º wìÝ€ÐĵüppjuŽßY~Ñ9Ö+ÁêIaFÏ—³íõ„Å AÞA_è”±ìív7tŸ$7ùýnÔ¼¼CM³DFø8oà°Qö1a FI¡"9]7ô¹äÙédÚÆ4ÈÖ‹Ý<U(}‚‡yëz˜-´Ç‘¯«Âfþ¦ç£Îäð5Z#Ý®µã Ý_#—ëŸ)ráwó-LÀÿÝ‹7·Ã:ìĸµŠ›Ñðq˜ßñ$á‚·&Ñ}ê¿£L]›Ùú£V 8‚ÕÕÓígE<Xù•4=Ê}ÝqîÃ*YâßóÙÎs8˨û–óŸ¨(òyª¯îæ8ãÉe¼Çód›|ôš=ã¯?ÊQÓßí¨ƒIho½ùöâ/â¾hÔûîû¹†Wàu«Èwóeÿ“]®cuËß\êeÎÁåòÇý»¿½8/å*B2YgÛ+,lÑË2Æùh®ÐÅ;0WÁÉ5>å"Wq¦åí “Ž©‹òßJ"ƹ]º¼EÈIvÂ7H)jÞ¬–Šã»xúz·Zÿø7*]á+» ó)òÓ12‚Ýãà‚5º¡ñ}JœÐ7óáf¹ÚÄÕ„®xgÝd˜…˜\ÃŽX -£ÄァnÀßfì¡[”7ââju/©°ÄKÛ&޾ѽǸ¸½ü^µ~Ûø`?rÝD=Ïx[^ß®l:ð"®G¿J—Þ¡ª -S´]]îj8-æqŠ²¯fgrm\ë0ü6ígOî¨'oàwëù2fo_õf“Òß¼ý·,$¿ýY$-ýäõ:esEãý»×”†µQU'9™DWà#½ÉÖ3‰÷ÅW««cÀÓíÃGLÚ[ -íW¡í¼;zHðª=ÜßÕ‘RÖøµÅrXhÑ‚ÎxwÚJvÇ -µÀ·}å…𣽷ÐY‰©o'+"ZŠXzY=åN›añ^p´3¤"»€); -Ÿ£Ü7×ÐFwsZî÷ÖÞ.·ëÕõ -+!c—ä4 -þJ©jÏ>æ±×{¹Ù<,îi‚¤þF:Š'+ã~¥8ïqVÎðòÀïi(Aw«>ö Ä -ÓÒÏÞíü<jŒô矑1âÜ³Ý }˜G‘îà³7F{%#-½gdŒ¾ÉٙДðöÁܬ‡{´Góg°ojKëz}R -g°:DþS+t´¼ ù¸+C½Ãád¬7^î>Ú»Düqo|yyôŸèÆBߦõPÕÚ©x8ˆŒ§ÃMmœÜ?_3LG;5üŸÈ/ùšp>·ã‹| -endobj -1104 0 obj<</Type/Page/Parent 1099 0 R/Contents 1105 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 103 0 R>>endobj -1105 0 obj<</Filter/FlateDecode/Length 4540 >>stream -xÍ\ÛrÇ}×WìC”BØûâ)¥‹«Ê’•ŽR•Ê‚$,Ë -3Ä2ßœ&Ì^fü$vÝ$bÆ4˜YœV]Š[‰N+ -[À«b3ñXÆ`5Æø̪äj2† ÑÍ`JN\^U8\N2†Õ›K,qËc Cر4ËlÓ`ƒˆ%,Šj°õÎjx©ZÑmô_ˆ8^—C‡Mæ¤$»â-Ù
@Æi²›8Ín#1‘ø”qÈl)é€e¶;$–°¨HW«ë“™ƒÕ$ÑÇ2‹-†Š|,a9tÃU1kѳ±A½e«G2èS«7rðžEVG¢ªY;ÉXÔ$nÚÙðHœpK£+þÈÈåÝ0##cZH
ý¦Ís2>mäÕc׌#ˆIUaDF2¶ÐYÂ`'’-øX1Àz2@Ö£˜8µ8碒×ìAœmÙ4çŠ
Öâ$c1>Q³ŒÅøÊÁXÆ`kqU4–0XÄ^c°ÈrK¦ ;á5놖HK¤†SÓÀ64q9r½úM!Õ–È~Í œFÜÄIuŠúM!uÇÊŸa5b%¥¡b1R;GPk?l»Cí— v1º3’±XW3d ƒ…ÄZ},aÙ3Ɉe¶’º›XÂ`‘ÎÀlfÆâN$ïp–1X¤\,QØ3Ôfbôaψ - Âx¥’-#QqÀ`DF25‰W –0X8ž˜±(B\‘e¶‘$XÂ`g±¶*ÆPÄX®³ŒÁ"RðXÆ`a°P¢Í”8Í‹ 5®ÄÈ!$ã™Æ„¶²©Æ¢$#ƒE’
§ã,a°PÊ`,aQ¿žKXØNÔO¬c(Õ,ÏÌX¶nø\U’dUE0%%NMË9‚Xâ{¹Y“É@Æ`áÚrbÃ#/,)ø##žaA{¤‘ñ‘qdŽìr–0Æj*K,aÑŸÔ -®ŠÈEÑdlªp6¨"
¢;KØTálPEE7–1„…ÀÂ%-@lŸ³„¡ -¸R:c%…Èál-é@4¡)Dâ4gpŽ •DkçBNt& -"ƒ$¡ñ¡ŒEG’`KrÂ-çÄê¦æm(ÖÕ¾°MM\(¼œÑË5Ï,Þ`ûažÈåÚ6pR=K®esô,ÈÕÑ$.GRAXù)$cˆ‰5·Ä†iÑ5?(í×BG†i#'… -ÉÓÂâ¡ÎÝê¦9KºEh㱌Á"e6,CÌÃJcwLŽ\h#;ÉKÒ,XÂAk‹x ‹1ˆwp–1Xä„°PËXÄÉÅÌŒ
â G·»IØ;'r9RÐÅd"cÁH‡ñPg ƒE°„E¹Éñ±ŒÁÂÏ@ÿ63c°8ïÇYÂ`µF,añÒpVUk+Lôw³ïÈHVeF”M•êÞ9‡à4ÙrΡh@:¸ÆéUÓtýÝŽvd°ÜJ.³Â)s„GÁíE0-‘‡áVJòßx¨õw“92¹FÄ„ðy¸~’)Âi7®Õë´Ä©‚ëPsëÙÖßía‘ þÂ(‚2¡Ä6çŠõ¾E¦—) ‚S×kãt!ˆPfóú»-$2!Ó2Š û–VD<)ÁuRÞ§CËÈÌJ·‡E&¦uò5¡bBhAÎ8‡àÐ×@xLܳ“GO^â»ãìäLSä1îAÛ*;9ÕËf|<{|2}9Ïú³ìy¿ÚÎWÛÍ_O~ݽ^ŸgO^â¸ç2Ï‘äژ訉?¿˜^mçk%Q¦=}œ•#ùC|…ÉÏ×Óíbu.ŸCù“¼ŒÜëcý*Î}ün±:í?éRÐi›4Ëj¾ýÔ¯?$N4Nñi±½I`šu1‰O—ï§òé“—ðqñÈŽšI)$8c¡øϨҵâ*->ÿÉ|;{²Úl0ëìb4ëWg22ýȾÝ?ùD}„æ/9*WÚ¯A½o¦Ë¹ÊÉ»øáz¾é/¯·‹~%”(2}}ªDíî›p½™ŸêÈ€mgDxÛ5Mœ8n̬J3òŽÁ‘ÚqÇÒ¶#j—E˜å!:,ƪ•¾6C{‰Pö²raO.T5¨.º:-÷Í|ûìÕÏjwÒF„A|Fϧ³0š_þ¢¹Ê'9áŽxÅÄûéõ?Ÿ¨xh¹Œ»6Šw¶¸º€åÔÑLn]ÌúBQ™ìîY0gôÅÌ@mùHëý壿ÐDïñ…Vw¿iŠReQ0°¾èIH’otX¸ŸúþÃõ•Ì€&ã·0§ÃÂE!`Ðê={÷*È >ÀN &ßä{‰…ÈQ:ä»ðtâì?‰Æ±5Þ¯d¢k¸³ëÕLüæF†˜éJ½$.n>qj4,Ì‘l{ -[Ž“;>_]ö¿ë¶£fßÜl%ëÚP[˜ã<ô Ì0_¦¯£@ëª -žÙÅtuž¾ŒkKÊIá¸çŽäÊ®‚¡ÉêÕçá:‰¿¬Ç-·‚ô@qsB»˜^öçú4(½¬¢=ÜéØÕ•Ú±ô½]…*ÝÔסWfPâ[Njˢʼn®—’ÉÓî•î -¹‚Ü\LCµ‰tWÇý¸“î÷¥¨3\Šy1 ‡¾«±›Lì 6úO«ùzs±ÐŽºÄUýýZkQ>ÜH²|{ÍœûÉŠ{nvŸ.ÖóÙ¶_‡Ì -±_ÖãšýO#H”íƒá^àMk„ïêž‹ÓI6ÉÙú®ÄZÿò_=\HŸê`þІ–±ù¢/»X --²mçÛ$ˆÔGÖux±^ ½Rxü̓©ƒÈ—"?ü†¢)jcкУ›fAc?ÕtHª›UáÞ?G×g í~œ\Æà -y/Ÿ¿œ®ÏCPAË„_]Ûå÷K\¨$É¥úpgzXþ*¾€·¨vßþ¥óÓÓÓ´KØÒT˼‰õºŽöŽÈ`ãðÇ~A?.TUƒÊðPç_ü8PE>}ûN}0^¬ïS(ÔGT‡þ¿&vô±ƒíQ‹¶CwÔ‡žjþî[Ä=#xË’ºöE?¬´9s´7öJ¾“o¹¼Zªuêº%Á²VÉIß_næPášïâ»\OU)ê>B†õ¡7yÞ]LuÍr•m…Š‡«1o$%¹ÿ&óâUÚ®ŒÉ¢?óëÿ¥’¿„ä'nä8çÃÌMö¼¶š)^úLåëÛéì.f†#Õi¾^w<‰×Ò‹i"Û¾+¾—eÒe3Þ-Nà×ßø„$ÕðÍ‘kßÉ”ÍjܘÙu5«³ç—\¨É–᥋ò[¾1¤Â ‰ÿ“!ýM_êìÒ{‘ø; -8™¬Á£ëµäñÓ×Ïžfo×ý¯h”d/úÙõ‹7¹äOÇ%¶¾•—KO/"×'þñèÿXQòendstream -endobj -1106 0 obj<</Type/Page/Parent 1099 0 R/Contents 1107 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 147 0 R>>endobj -1107 0 obj<</Filter/FlateDecode/Length 3948 >>stream -xÍ›]s[Ç
†ïý+Îô*©žoò¢Óqì:u&N\K÷–¦h‰ ?ŠršßØà²ã:¡âvÆ£÷¼Ü= -Mô¶—s¬Ã°“–4åX‡%™Ôx€±Ã¢†«V/KݯÁÌ -Ìê‘k%¤5™s«9‘•ÀîzÛT¢gžÖcض²‹$ì»±£çX¢¥±ºhõTò,.4aÑÐE3¨»½t»=AQ¦Ã´6ÐcXß{ÖaØ®D\7ÖaQFß±K”íc=†¥kÜØ *>¡Žº)0U#ÇFÞÌ9(ªJe¤Ç°¬âæ¡ÃâéØ×X‡·*‰àÆqû2l'W‰¹‰XuæÔ<™cã'ˆ8Ô|X>“Ã’2°‚±Ãv4ë0ì´ÎìppAÿ^qÉ„aÙt6³lÄš*,×|ä˜8ÝyÆ9¨¾‹Ú:‰ŒÃw=%é1,ú#Mê1²–²oŒõ–°ÃR9`ß<³Ç°IçŽu˜4 E˜±Ã’]ýÌÁ‘jYú´Å˜#EŽ(€3Æ•áŒBƒ9©ñÀL†S4·ê¤ -l`äØÌ]QgÎA,_Éx#=†åŒÁ+óÐ^Žbî-™·‹®É;=†%,ôžu–:aâXÕ¥b£já&ºuIœn;ãdR-MŒôX^)gcƒ.]8UDÙ9]ÛH]Wë0i¬Ãâž•Ø!õXÜs‚
BµáÄ…Rä„Jl]"+cF(V#ë0¯¥^÷cÃkIÀâJñµŠÜk«§ùÊX‡™˜Ê}2ëqÐKe6¼¶ -gøZEU?Œu‘›F–ÀX‡a)üÐÖX‡aIÜgFdâ1ŽšÇ‘Ëpˆ"+r"'ÇÆ:,BIÁØ°ôÇ,RUȼd ùm2)˜mGÊ `êY‡KLÆNy¬jSô$Wm2m2K¸k0–üVØ0TÃ<T‘šXœ¿Da)*m(©Ì¢ˆ$ºNÉ(Eb1?Ý$c浤ڳ‹²2§U—tQ¢…‘Ô‰+)[|J~)dH3&GvéÔ¸¥ 7jª7R’ªœeWáôØ@Îia¤‚5ÎÁuAS -³çqjÙú™#.'ˆ,Ô¶½#=ˉT6Ôc±\“ga=–à!…„õX"€d)Ç:,@ûŽu–fÀ:Œ‰4^f]$ÕS ¸‰þW32%û¯6ÊAô¤'Ô§Ò_Èþ¡ç #S–
Þ‘)Ô¹Â^ÿ΃"eÊA¤ 4¢í'S¨±
Âu²a3(ëP¢{æ„ÃVŽS!q«\’ëßYÈÈP˜H#†_ cHDÔW¢¥‚ÈÃD6„toâ”™Ü8áГžZg§ðãâ"¤ßç ƒÖDæÂñúA‰ÓØFlÙP®Ž=‰#Éé’†•Ë³PÌpÂÎœA¸i9à¢õ‚œãœÂ¦<gPT_ÎãT,l!V©8êò…üP9ƒ¼n,3ç íÒWç gKJžÌ„#xÎ * :5K÷ÕÅ£/ŸI.+.Þ²U)i÷Mqq©w<žq1{³ZÛ·Å“íf¿Øìoÿzñãá5Äîªøòñ¼”yÎâDg•LôÅ“ëÙÍ~±“Q yÓ^~Qô#yÄ -Ïß,¢Î)Æœ/æw»åþW™JÊÜœ„V‹w‹•Q‰îqqExpÜ–Aç\8Ó
vá–zþpI?ëÒ(¨sPqˆ<TâÅv§qP?Ì·ë›Õb¯ßXYt¹¸Õ -Ü¿ZÊܾÒí²¨të\€
kŠsªà“¥›´¦VésÃ΢¢ì}
ª‹Å$¯IC'.'¿Ë9M¦Òÿr»ž…ó5_FÅ„ûáô -Ú]ï–ÔêTÜø¥öå‰Wâhú¨˜|C2\Ò”jçμÅÅlwµNÆíMjýpÔà«€´‡Ž^súml -ù¢|p6\¢mÃÑwhß³B¯·»ŸÂò°çOH?dŸ¨E÷Á¡ÄѽXÎwÛÛí[]%úÕVk¼Z¬·¡n•€Ù§³ŽÈò.”ºƒ3å“Ù*žE¸Ù£M®
ñ ú \Zµ ‡¨ÔjÕU¡Á;ßw³u(Ç))syNÛi9:Õ9ÜŸS/͵`âkŠFá)„¿Wß6ö¤(¤–+įÔË}r¹[Ñtá®ßí¯¹gYÎó嶘/h<¯bôàzïDî™t9Z°«¼"½Ý!Xûè¾úîëÝ64 m©ôùS1 -Ù“®á§µî;M^îÛ†šjÊ{Õ+á—»ÅN¢Ìí2…|”“ïÜZò—)¹^ÝG»çùà ڙ|•=TèàôøÕlþÓÅE8z§–ú)É'Îœi—#¹f´:_˜‡Q F7´~ 9¬oý™“ÑbµLN©Õô‰*}`XRFE?HÐl…wÂküÖ‡/HST¼Ð*Tľ…s±»»ÕŠ‹oRìüòx>gÍÃI4͇ï+`Þך}²Z¦T;¸*Ï1ÄòÖ}‹áÌþ wo½^¯œUòuÚÐÃï=àÍ6wá¾lðùµfüLÉ[󞻇ßa`¹Õøcªð¤u5qYXœä¸úË÷›3Ì~ölõë_d#ð!d®ŠRœˆßþŽ#p¯-yüïöõ/ý`Ž/mã×hÓ\.ŸSëÌùã_=–FÑ‹ù¾xºßI=˜‹õZ²Ýų^¾Ü»üb¹\Šqþyñèßþtëztendstream -endobj -1108 0 obj<</Type/Page/Parent 1099 0 R/Contents 1109 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 192 0 R>>endobj -1109 0 obj<</Filter/FlateDecode/Length 4542 >>stream -xÍ\ÛrÇ}×Wà)Qbï»yII”d+¥#ҥǮDØA $ÿ}N÷ÌtŸ ‹–H*I•‹ggvº§¯3kÿþ MðÿlÔ䣢Í&ã ~‘dò·?É/£ºìðÏŨèÆY£ã£ª×Ä\ŒÚɸ$ŽàbÔåã‚8‚‹QVæã†HÆ`›fÜ2KlW&f¼å“zÜÑXÆ`³j (c°U3•1Øn‹%
B“¼æ&õ~Ä’'ù8HôËlшõYe ƒ -Y”³„Á¶ÅpfÂ`¡ªŠÇeLdlfÆ`ËVilQ‹@yŽÅÀ&Z²b‚xé$“iõÉ ¬c°¥Ï£,a°u)ÂúXÂA,ÉØ°¤Ií¥%)ð%E®+d×#ˆIÕ‚‘Œe¹2»e¶Åm¬.¨êjlI\P -Ë,"¯J²k•5ê<šNM„cIvuŽ`Ì®ÎivMsj:uŽ ô—©êÛÕЃ…}§µ)K,¶ 1Ûd¢?Ÿ™0´‹÷0Ël-vácƒ…)ñ{˾¢]{/cè¿3Ël¥!ÈÆ2^ŒJÔ¼fÆ`‘˜
>)4È„˜¨À
<rYVˆ8F2†±$ cuÚ²›h˜Ði°i—ebeN†Ü–K>0ršaœ#(!ÀIÆÁ Zfa ƒ˜0ƒHXBÊKŸ™1XšI̬Ö4–0X|M3k -გyC
H&f,âJâ –0XdÌ‚YÂ`ê:f ‹¸]|fÆ"®î®1ˆëXÄm`4–0XØ?¯™±D&1H”QÉN˜2‘2‹ q%,ÊÈäµÎeˆÛKl+e±„!†Zgƒ!£ð•ì<@¬˜àbÔHð/#ˆW"þÀdq¢:K,ÇÎ:KlÝdž0ˆ!¼(Æ`+µ(›9ˆŠ—[!]*pQ#×JÚvŽ š+ÉrÎÄbQì@P›”1XÂK8¨ëc¡†„…meO‰u¾?˜™°(I -WŒ;&¡+z¨"2ÒÄu–0Æ–Ñ“³„…Õ½!Ö1ض‹q–°,Y½ÎXƲ¯µx³„Á6ÒR;+õ@ÑVê’Z -UØPÆ`Ñ/Â>%,ÂJðsVC–˜¿·˜ÉšB3Vs!±„11^=éL2V'%
Ö¤½j@>±±0Ö6–?ÊÆØNüÍǪ%™ #1p¢a*à"¢ôÒ„1-²uÇ,a°|³„EV zþÚ°$4·fà¹_Räp¼V¢i…#ˆWfâqN2‹ò6'6¼çfv’‘+ðWF®kpŽ è@š9'ƒmä‰X² °Ä††°<6,YÁ]®À—¹NŠœ#h˵q¹qdV‹eûPÆ"ŒäHb ‹0ª]Ÿ™°#Ň
 aKôEˆyˆ01-:&Hc¤$L‰.b&xLŒ#¦sš0Ó8¤J¬ÅÆ”÷IFp’1X¤S~%c°Ø±ÁXÂPd†˜öZÆ`ÑèBNcUAR‡˜q`»¸PÆ9É8ˆSaod*â$,nðRb cIçœe¾–f’™ƒEsÑÌA$53^Ép®I#N€X’V©N26qlh'ÎÅq6ˆÙ¸|c›8ÎñÒX˜/el§¦Î<S໹N,Â9‚UOAd˜‰É¢²d¥’t9l«,pE5| c°H)æ
¯DjQ7SàrDNcžså•Rc:É,:e¼Ò¦e!YMyYÎ=j@j¼šE׉×ê³ÊI¥"q6H:¡N2Sà’FY³GP$•ÉIÆ`µH!–0X˜yNcuA¸x±òSÿ¶åDÅ|;2ÆæƒfN‡8^;§¯BŸmv¥Û«"ƒ(GÆèA%õ% !‚h”Uƒ¬1c#“¡³âvŠ&¤lpΡ¬\Ô9‡àÂBšS¥Âž[DÑ¿MªÈÈB¤áÂcBÄ„Z.8çP)v`œ¾'̶[ú·½,2:C„xy,¼Ì &„âuŒs(/“HâœCpº%Æ=9ypð\Åèä½.r‚›¼¦œé5.~ž=<™ž^ô£åûÑáòrÓ_nÖÿ8ùuû¦wõatðñ;“y‰´˜èQ.=<<Ÿ^mú•Œ’ÝiÏ›Æò›FÆðËÏËOò:ÿ&=´Yê386ÉŠ8Ëx?ÿp½ê…l¥1ÇÓÅéT~•¼Z¦)Pñë’`Â{¦*Þ_å]úIK¥GŽVóÅtõ‡üŠ[䲎=].¦óKý&m£E3«åÅEòày™4‘ãÔ³êJ¨D0H—â€HÇ• ½îßËùåüòƒL<Xûæ\¥çìò$ÿÅ» æ(ðMLÓT1iã“ûF»è'Y|t|ëÿkTéät›ÉòW*}nâ,‹ePi1n&i—VK˜ÝBwª„ÊL¨éå™È.…UQFAŸVË•> -Ë6»u™öNزØ<®û†‚ÖCAÿXoúÅÎ-/æ³y¯«Ç–Tm…Ú'(´ò~~†‘'
ì]Ù]üØ”AZtÕCa›¡°ïΧÁDáuMòž%Rã -éà6%:î7›ãÑ…"95\«õ#A˜ìo—ÓE|Á‹¿¬£û H‘{´¢WÝD#Ql¹mG"bóí¶Ì÷Í«Ç/^ÿ÷ðÍë“·o^Ž7ŸÕµ3œ/5uÊ5aÇÅé/ìëQ6pÝÿ¢{üM'@·cïòIJ´™å&*gZ
àT¾82…èÀŸ0!ÿåæñ,è¯#³¾AIòd:û-ØŠ|.‘%‡påáJâK% Nw¡PÀ 1»
jÕÄåÊ«~pëçÁÆõÌ–U?š˜ÜÅ}q(ý¤°T“÷ikÙK*˜J|—4,ø¨jhŒG«~Õÿ~=_Ï7¡ÄÅA—ræÛ~z–|âÜ}<tQvþ -²=’ö.ØÖP Ù׫åu¨kRZÜ™îþˆ4
Å|p0\ýÞDÿûõôbþ>50K¯ÔÔÐð‰c*\Fd!{Rc¬¨qÂÐYÚ™„ãå¾:÷2äPÁ·“˜u¾_Q-r¼¾e©ÉV9zOcÅÚèl*8|cè¾µ£™wHë¥N$GŸá=ªñ‘»³ÍCkÍxósf
‹\Ý¥’kfýJÐN¤ëoO¥m#KA¸Ì¶e7}¾;ï/uÝh-ƒÍ5ã;QÏtûvôèé¡EnMÏeߟõg*‚bUÝY;ãf¥Õê¡_—CÏ8%ì`‹<€âèÇêÀÓÐäaßÌ-v¬¢?JÅ%¾î>ª ÿøH{+øºLßþWÚ{˜ò–3lµyûý@6”=y§Ä_÷!W– -g¿Bÿ,–)-¸QÛW ï0]Å?௸«øþ‡>An*.¬ÂQ>Jõ{?–×á—/úÍìà·Õi5–BPT€úÛ.#îWÄ.Gî42¨‡ò®úxd"ù8]¾îóÙ¶yX冃Sáåç蛪ê~«Æ1N%D׸cÀ·,”‰EÔÝÛØ£åz=ÇG;yì²÷Ï'7óû;cÃH¢ù@ø¤_ëiÍàc½&‰c4Õ"«ä&;Ãb4jô¹ws&ÊR}ñï.^¤£ÑðŠõãÐDEÜtØ¥Åe¸2¶ÄÉÝ#ŽõföiW‹_\Ã&ÜÖWøÒt(ßëe¬nbþª#×K„ê$|Gûê©e°Z*u^,®VËñ@_ÁYÙ{ºÂW©vÀg^–6ö3z]u;‡.ç×þê¶"å?Ž8XùpgßÀù>ÎûOâ€òï7›.5=Èí³uvàkÎzçžøkë»5>ú_ú’[âß -÷„7
aÅ+W§ä¯¶—~Öc{‰/֬ǽ51¾>Qwnñ?Ø£égœø<~Æ){„ÿÈ -þ•qýóøñ«'å{“_qˆ›§Ùµ47vâSÈžJÿÛÈç¤gçeïŸ<øσÿ¥ÔHŽendstream -endobj -1110 0 obj<</Type/Page/Parent 1099 0 R/Contents 1111 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 239 0 R>>endobj -1111 0 obj<</Filter/FlateDecode/Length 4146 >>stream -xÕ\]“Ç}ׯ˜7ÉUYŠó=ó”’ב£Š×ëh×µ/z‘\‰ÉaH®dç×ç -ÛÉB³F¡LhàÒq>*“JI!6ÏiŒu˜ìlm댔·£¦ãŒÌdD½z6«ð•cçåžul]ŒjÏ:¼L²qE×~=I0ÈX‡ÁÖå@gÁ6Ù -;®do†1 c¹6Åt0ÎA¦Æé1Ø4Ç@8Öa¦ê:Öa&ò±¢n“ó²à‰U20u'ú)ç ª«dP7´LË”2Öa´Å2(=ë0©;†ß\[‡ÉolŒJc0ÿtє̘À‰öÊ9¨Æ(Œ -ƒ1ÆŠ1‘åuX1VŒ m³´!S•cÊÊkÉÀŒ \[ÂyÆ9ˆ.3Š Fz6¯©Kë1X„/L3c[Uä7c‹8äY1î¢ ÓŒ8Ñ^9!TŒQÒc°šÒX‡ÁÖ5
„±c"aé{VÔÍǘ·KDa2…©ëà2ij¸Ç8ÑeJÑ×HÁ–--që1)T‹BiÍËT4`` -Žv$¸TIiŒ¸SeiO,Ú1O1ÞTá1ÚsÐVç Yh$Ôc°X¸^,YÀ1:IPKž3‘K±TÐ'ɺҾVT÷Âì`
×’lãxk*°‚)'HëÊ[•²ECMù[b¥)Ö…šÐ”‘kYì¿eRë0ÚbwòÊŠàŒÜ¯‚9Á‘ÍRl¬Ãh[жåX‡Á64Oë0¦_ÊJ©dÁf9¶.kë1Xl¼¹cÅ«iê¼Ê€ì¯3§N -儺¼ôd¡9‚Œz\€ -¦Xt>$ÎAÝ?)B2=L£œ
\CyžqŠÐÆ‘"´Ny¢°½98ž›ÆI;4Ð\-g`íПrB¬ôÜ‘"AWXÎÀ„®¦ðmœƒd!%FŠÐœ»8lLhà0ÅÐN9I(í~FŠÐTÒux9ê "pC¾PÎAª¤EnE‹V¤00¡CB€aSÎAÓ1’,4k%©f¡ThäX5ã„PHÉ#Eh-I³e`B'ñ=SÒcˆew+b±Së¾–10±å”sB‘ø7‰5¡¥¤¢+8‘¢œƒ" ¤Å&¤®Ê˜ÐÀµ9æq’PÚ~Œ¡8TКM˜ÐÀ5X3å„дBœ2’öÐl,©ošH¦ƒa5Ž÷ÐØŽ7Mã¤þ(}6Òc°è#öO]z„«X;fÛÒIÍXž9ŒÆ?ÔñGéÀ¥ã*é1Ä"É*+bùÜâƒBLlàGóp@!ÎAŪƒü%‘¼M¦•¤.²ÿ -"Òc4…}ˬäm1d‹œ·ñm‹ô´ö¬Ã´M¦˜šÖ¯Ç`‘PÀZÕÊc°i/Ùc°p\åÛ:ŒâöJ•Jöl™
´ò,Zù±ò,FÝëì1±-B±ë×áeR`ÎøÑð,bŠ·×c°ÐÊ÷+Î/$QÎfäœYq¶±«óçǶâlcVç+Îmƒ³•õXo¬L†Ø‡*, cF[¤½p¯±Ã œõ,úÁÂÕ¶ƒhDë0XäNp¯µu,¬ÇB1Öa80剣¬Çäüz YÜ›K:Ÿâh†¹ÎÈ>––åì)#çûÈâßGc&ßÓ6èX‡ÁâÄ -Ù™TMúÞêvjS7Ùô[v#•lóhêöîõj&î¥%CsR3Óñ˜k‡ÎBm#}£ïÿÞ Oq.Ƥޚö3¶Á¸Móð£Z‹-)/cs±–$äöupj2˜j¨éêüÐoÞq^È_émópS"Ž -n{Èi>ÛD–8ð,ª…Õ{Þ/×Ýf¾íWœ $æö§»û¢_[Îðȇ`$šCý/׋~òŽuÏéØvÒÿÄDöm8Ì!/‘ð¼ŸÏ8‘D©?ÆÀOtñeè¨8Ž_–úÐÐËàûÔ÷§ÙûÙ"£i‡Ä/kC¦–x· Y†ø˨{Tj´!7q2C\ÞŒËõ¨ÄcûãÛîwäÞULÊ{™oÙb\’–FÄ“mú8áI¾{FÒwz.˜7³I·gKÌÙêSvJ»ÔçY†#úpÚí3¯°pf¼¡Âi§‹~M†ÈŠB'æ¤GùT?F›šf0!÷N™/g{qx¸šÿ›½ˆ:›îY§RûOû‰6
ŠH-†ñí¢û¼98Eþ¾œK~r}sú³ÑÇÂu"O½=“öŽL?aÞÅlñ›ÙÑÚ}ìÛ?ú¼í6°ÏkÔ[öÓ°ûãÎî+ļ£ž‰NA1o/Ø;ÍüÔsU+Ã]¥ždÞyâŠ$VmŽvsê£Y{smï`r3ŸŠ›ë“óUpj3±Zwjýô‡7¼|pY5œ|‡£¡nÓqöðEº[upƸÙÌÃyʯ*3ë›YSØe£¯PžÜsVÈPí”xÔYȦóIÌp¦'Œ#3ã4?E›ÚvúP¾ã`]Ì–ýæú‘N‚ZºXvëu쨙§a½Fùý^¢1ÅiBÞ`]-BUMÝÎóxÇ@WÀMÈàö;:-NSN¶Ïð qÞ…ÌáV!ÊÏCv÷ÿ`TÈÌ(ñ -OHÜ·ibw·ŠSÏÕÜN뛽ÞÔUäG÷—/%„m»ëy9Û¢Þ"I8"Ì׾艖áodHw_]Á›æϪ®H²ñÉêJ·’IH¬÷%=j¢|i‡Ê›%[ç/ž_…lâ!%™¸5‹»”xñõÿrÿÆŸ!ÈÈØMß~Õ÷§û¹=ªÇ»~û–Znƒ|§C7y«sÿ1¶Þóáú|hÑåG'œVôܘ¸‹ÐkÚ÷×âÁ[D³ø,×'£Ë3Ç®ø&ÝŠ<G7Àô^FÆ™—LúÕíüÍœußË«§2Z~Ó¹é6|g†©ž6±¶€ëîÕl"Gu<^VÙ=¯ -Ôjí†ñó…ò|…±±ÞÑq´;¸†’yI&’~Ñ— ê¡<¸~Ô$›‹§q×Õ8tØñÓgN4î‡õ¥¯:îìܽz²êåäíÏHÁ;¯¾û
½CËâIã¨7ð¿ôÅ&\ -ñÚ„#¾ÍF\p14üYŽ<i˜NâÄ>ý™Ì·RMS¹Y;²äkrÏdÍÐ0éà -ÞÀ˜7›þnÍŸÓk.<:õ’Œ¦í×Ãñ^þÈv÷ëVŠ¦øK}”±@ÑZ®/Q`µËîëó_ž¾àw tu«…òí®›¼#¿ª±·›ž6
.L/æô.¦¿åЊѤg_7<Ñp¼g° -½Ä‰Q|´þ 5°xc{;_„Rê -çÝm˜ù´°õvwÝm·˜Í2Å‘Êk±pò¶[½áQÆÍIŽ3÷Cš,w؇&FYì^.?q,’›ÛöŸÏD>j
Œ™¢®&ïâ°;¦_—FAô9Kz¥8\›‡Aí¼“)<˜i-±Çܧ¿%ɃÜ'Z*KOaÆ_øË›7(ÔâOdy¢ÆgÉÇbÏã¶|ú¸å;à¯ôlÊ…RúÏ`6¿ðÿ5„ÿ‹_hâ©7?ˆÄó¾&Ç+]<õç'šWÏ.¾–à äoHx“úÉÝE˜.ÖÉrÔnhnÕôPtúä=ùío×þùè?Ä!DCendstream -endobj -1112 0 obj<</Type/Page/Parent 1099 0 R/Contents 1113 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 259 0 R>>endobj -1113 0 obj<</Filter/FlateDecode/Length 1600 >>stream -xÕYËvÔFÝû+´t#ÔÝzõÒ˜X$8xÙŽ5™‘yÆ$Ÿ[Õ¯’8>ÎññÕUU׫««å?ŽTVà¿Ê™:ëvGE^à ýPôãõsz’Õ¥ÅÏ]fl®<ØfGÊkÁ ¸Ël‘·‚p—)¥r-H‰Áb°>-)1غž)–¬µy%4›šT™ -"0·€ô -ÁBçÖ¿É‹ -V7y#YÉ$“—’lÛIlk¬%ÛË¡/,ô…Ð3 AzϹXGN@è„í°'’ƒELŒdÛ¨¹¬À»L%Å!j–¬nÉ—Ä -¶¬æ²ƒmŠÙºœ¸ÊÖ¨Ÿ8bâ§T…M¤l
/§¸b=×j’‹œ€ˆ‚¢ºI¤Ä`‘ýR²SiW$ÙF“ªÚr R*´G\CÆÏXÁV‰sšXV`°¶Ä -‰uËV5lé–a$–
¬[&±Çeë–
²ìXYªßÊœ6.XhQ}ëH×oSGŸµ8k†=†Y‹%UƒŸ¡R¤Ë¿ç|¥DÒ †ãÞd=‡-Š„FN@Xã*%’¬´D·£°³R¢ÒÀá•%N@RÚ¢e$Ò)m¨ê‚RI©ç`Z‘•‘J5u©D:¥u™vXÉ )õœÂ¦‡©‘”˜lHmbv‹ÎdaDÀ`k*!+0X˜ß -Ö\áŠQ`öv,Š¯¡KÎ×`É€Äô%™8.IwYKÇJ℆J(‘ƒm©KÖÛ¦
â@´&p¼|â„N´Xåµ° mÓRò}}8#8TYã_Lrèðñt4’œç¸9&N@2¦ÆÉ™HN“AéÇà@Rê¹–‚¸§Ë£'gGL¶|‡^‡ -Ó!†ŸÎèÍx˜|°ý˜¾n\sÑ)R°n7\¨’”ÒÓ_]šË¼°>ÍBœ.P±R4BžS¡ †ç…òrØOãúÐí7ã@•¯Š‡²é›õxg¬s›ë¹ù)šiÏÝ“ÎýHþá"aâöº¡=›Ó{_QÇ7[ýõ‚ÁOU(ªé¸¥ÉU—+\Â^½Ç·ThʆòEh>ö—ìºOQ»bÿz¿^"º„¶w§ú0Ìr¿Ñ§î–·)&†ºzD‡bâKÇEÝ~¾!\{é´xÝ_Ó~3påUÈOìÐOïÙG¾Â‘×ü_”æóBœ>ÖÈ:…kÿ›Žâ\™u˜§£<ï‡~Zm)_÷ð:ì¼ÍðŽ9Ü~'MÒ'gÑØÙ>ƒ‰fÞ&Ÿõ—.5º -5~çdÛþ¶ßºbÆÂäÄÇáã×Ø|Åû*çNáèê§Á§ -#ep«Ÿ¦qrnáv짙ù”VTPLÜhå±É#Qw涓ý~Õ]ù¾€!%ÍŸ8¾x¸hò:gÓa¼,†jÛ„çz㄃ËWå§ÁGˆBpœ¦ê¹ãõ<™ç«}wÕsÖðá+̦`á-áÝ#(º mŸAµkŽâžð|×Ü]0kâ’áFÐÝêú:d½Ì -3xXq«¨üÑþE&?ÄKJk.[ÕØ/pÕ5Ráê9Ž¸Õåf»ÙÿEjp¿níwÒ9|Þ «ÄɆ»«¬Ñ0ÅKÕ‹ó7¿qæÒ@öQ~Þ>¶ÍZL˜¸¢§|¢‹J¼¦¾6’gZçu¸ã>ŒYÿNKpªnç¾kÎÛdzŸ_rjp¥þ~*,øî½À‡ÿgþ?;´þNߢôZƒ¿¯ÐGmÜI/N~zz’OㇾÛgÏÆî°Ã‡€U¸¥\c,õŸ†¾~¬o7”½—G¿ý
LÒIfendstream -endobj -1114 0 obj<</Type/Page/Parent 1099 0 R/Contents 1115 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1115 0 obj<</Filter/FlateDecode/Length 159 >>stream +1071 0 obj<</Type/Page/Parent 1068 0 R/Contents 1072 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 58 0 R>>endobj +1072 0 obj<</Filter/FlateDecode/Length 3160 >>stream +xÕ[MsÉ
½ëWÌ-›ªˆšïæ’’í8q•íu,ºœëHI\“…¤äÝ¿@7 +Ï:¶.X&+Þ+ŽQˆ)8Ñ@9±˜¬•r’²)-—’ƒ-Ù!Æ:LÊÖ²¢,ž«÷˜²í”sKÝ’{”sf%M¨¤Ç`±Å]Æ:vÜl²Ï“<k &+¦à!%ñ;3%p¢»rÂï-ͨœƒd +% #=[æäõlE™É±ƒm9˜¬Ã0éÁËŠ¡iá¶'34pb™rbÊ”×EIÁæ)ùÁX‡Á–
ímc[W´Auì˜w‹²U‰õ*Ç42m cÄÊP:2ÎAR·ïô,'wÇ:L +µXUcE¡¦áí+00…³¤TÎAZV7Òc°m¶!ê1)D¹ÚÉ:Œ`H3x×X‰“1ª”Ç`±N^e¤².móÐ@ŠGŽqb]*š‘!9aJF'¨‘ƒ-(êë0ØšÇ:L†–ØÆz6£óű“2ŠUÙc°
ÛÆŠ“2šVJæ¤À‰W”s0:I9qRË0<¨¤ÇpCÕ’u,Š¸ÐX‡Á"_ÂPc†¡8Åü¼bhAI5äÏ’8±L9£¡Ê‰¡A.¦¤Ç´Þ)¨±KgŒg
“¡g&ë0-2Š$e=ýý¼£K7Gö,"Éì1XT0^gÁ"b3ªV£vDÂÝ”¥uÆŠq•Ã©/ŽA”dcŠ^å„›u¡®’ƒÍ7E=¦È)7«¬¤IœˆTéÒá2"<ËŹ±,Z íRÍÑÒn@’¢® dfœÈ!¤h'ŽkˆHÎAL˜åPËHÁ¢ÚÝ`
üÀ2i“ñ®À¡…°²iR:¼Œô,ê±Ö³“JÔb8Y‡ÁÂõ²ƒEe
sT)Ý(d½VbrÅ–&)9ÂñÉŽŽé‚û× S!8¤óªÈ¤ƒ31Ó ŽwJGÆ9ˆ1Ñ¡xAiF*L”s•ìE6àJS2—Ã+lb`\#ýJ°éž +ˆÚ:Ä9ˆ¥Mo»-¯¤±“20¹À‰œr"‡•{LžÉN䔹\™ÉNä”9D)íX‘c`r9åD=‡ù…ÉNä”c¹m(mWžO€ÊEŽåŒ9T^ê—ŒÉNä”9œ\I’?éH©ymeúÀ‰œr"‡ÒHýBõÄ„ÈŽ›0ãD®êI~ÈÀôœÈ)Çñ™å¡ ÎR +&þ[œï_HmEÂcˆT¤ ”ƒàp,ᾆ† 1Ááô¯g6#®hTÎ dN7&%Ò +VRta_–ÕÁŽIßÍI)°mË'ÕÛkÁ"[°4OŽ¡)¯×éùj½ìÂÒ´£¦:0å·Íá'9yû¸`…Õ–Ÿyò°*ë jÅqb*yµX»ÙŒž£lÒø¼[\²h:*Û(>éW±ØM6€Æ7¶WÙ†8þŠ’û~ÜÊ'/¿ªëþ–€â±jƒOÒ¿ó#ô¥i|ô¾ïÄxdß*¬²¾éù‡õe^w¼Gq Ôú춻î9#PèŸ2zØÇ8ÅÜfÝålÛÏËéâš,¦F«Žyk—žMÝr*F# +£,ÔU[É.&‚d:¿–ënÁ[åx•Çä½²‰ò'[øèTù ØöÁóeß9ÐqX—1›ïZõÕüœ¢ƒŠ©¶ ûábX\M¯ï–zz¡ŠH³¸®¦³~Ä{n‚ÌžSBKóÓ-ßcÎ(·¡ùÎïï?†»%î“ NQZôÅl0ŠZ͸Ÿ§ë›0€¥œ5Rëm·ä3{(yx¿î‰ÞA!ý˜{ªm÷œ»å:$ Ü¥T_ É©ØšúÃpÈàŠ°.B‘,æçñ‡?¼rþ§¨V8¶íب:qˆ?¾ê«å ÕP9ÊÔÐé¢__Ž(r(ðª¨i~èéŒ-¿eñÏeßRZ•úõt¶î—ìóûžý€<Ç4€ŠÂ£r™“S&Ú–:&–ŽOÊ‚¤#oàå“úé²ëçRã
•#{Ùcšû7÷õöf˜,ÿ áPžMWº?Ðv=xˆ®nºe8BñÓ")Ý}7Q¿Á1‚¶1zN<âÏ¥‰iÕ/ï{ÉW¸—/¾û©”¥â2¼9Çùð‘Û|›×°#hBb¡t=Av§Î…ÙÝbú;)†JÕrìÅlŠÎŠ£SDSÇ¡¼—@’Aƒsp¿òˆgÚÿÛ3;3ÌÖVzñëÙßØ~dë°‘?^}¼æg´¹ŠXæ}œ.Æ¿ëã2Ö»xüv"Ç£±$<Î?mÿú׳“œŸ¢»¶Î°__À;¬î™òÏ‹ƒO;¾¾8Á«^ÔúSëãM'këG}Ź•¾ÀhâD“D§Ä¬Ç‹añ‘G"ŽMÐÇaùé¤*Z£*°ÇxÙ=tŒ"Ü‚¸öbÚ]/†UÜ%¸NöwHs¶Ù=õéîá÷ý4ãnû\ âb¸åœæ/’W/ä<À¦xDì[½o?˜zßÝó›A× +Äx÷E¢£D‹#x8·ÈY´êæçeÙÝ•AÔ{†Xþ!îš$+(¼ýE¤Q÷j±^—w(‚¤ÌCLÂ%‡zlƱh§ÊŸ®Vwó[R“y¼JÙå‡'z&î?†fª4µú¬nþ@åñDêúiƒêå¦æœ,[¼Fˆ…Ÿ¹x‡o9ýðw°ÅßÆl™Á©í€Í(IcdªGÌàmòó›ÁÖ°Õ·ÿìç7£&k~3øºú€Í`7?¾Åù2íç7ƒ/ÀØy¹ñh•–_-è}íz¦B&fà
ËÈÖ(MÉ¡B}„g멼OÆ]hQÆ—?7Ý}ìGðy˜¾-E{‡ËŠß² ƒŽ÷›æ¬'øKÖÇ÷$ø>Óµ$(Ïûë%.¿å)>]ÁˆîÂÞœñ"òÛ7éHp;v9|æâ’.ùõ×ÿŸq¿ {1 ·œø€.ÞÝ$gÚ×àBœm¾É8£ùÅßbž^÷‹ËÐf^_Ü"&…Åæ[´¾´>h.ó:†æû~5Ìî´×ÂørGÖnÊï÷ñ~â+ŒÛ»¥Œ‰&M_|ÀôÉëé⎯¡é[$}é…EŸÅÏÆñÛŠ=dp¾¬5œàöäfý}•tpe\9ÖM[V/I†Ù½¾6«ñŸÃˆú™¼=6•&o«ÊÕ}Ë÷``‰Ê'/ÛðmÇ)>äsã·]ñ[µdëÛ´ÿÕTI·º
Þ˜áçSÚZÿœýçèO ÿ…endstream +endobj +1073 0 obj<</Type/Page/Parent 1068 0 R/Contents 1074 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 103 0 R>>endobj +1074 0 obj<</Filter/FlateDecode/Length 4072 >>stream +xÍ\MsǽëWì!ç@û‰Å)¥+V•%+!¥*•‚",Ë +æôtîÌ +†™°[T$Å\€ro¬b°™ØgVvÊP™Ÿ«FÄ>‡}¬b°po•Y1LŒ}…
écÃö('°{Úçhb.mäzn½ +æ0¼ÉXÁ`'zb+fBtªÎ*ùUä ê˜Aªš0U3ÄCË’â;©˜,#±²ƒmÍcòXÁTgLu2+,B!Ôɬ`¨ƒ0osV1Ma[ ³‚Á¨:³bxf†¡|¬b°µ… +gÍŒÍtl~ÚÐŒ¡N]ÂM3©,b@¥¬`°pâ½±‚¡¶V#cƒE¤k¼ã0CnŒ4@™5ö}‹ñm¤,B&âØÉBö8®3jeRqФWš$vÒRŸX14«M„UÌEÍRP(Å\6¦Nyæ`¬%½#§ˆ¶)pUô
—Ô9;Š;&EæÆ<FýD%H+ÔœÕÉ0³ÙáÊÐÒàÀ6CÄXÞIÅ`¡$¦Í¬`°¶É3ËÅ®!%C˜DÀg +DŒl`ðErá?5”Ìœ@*™ŸÀŠ)Íxo¨b,&âr/+[MöDRa°Ö±‚Áš³g‘ÍôµÅF¬™ÍkÀLÏX\#dq=a=˜È +‚ÛŽ¢ñ Læ-‰CÑW'ÕL4óÀ0)ö§U„6©<iäÂ,ΠĤ؋¢g1 Û´XaŒ…µœ€)¬W‹˜@ôÖÄ•0Ú7I†pn&¤íÈ +æCY» +F0Ìl©Š•&•(R‚‰{#“ŠÁ¢i ++‰
å¬b(‹ŒKEVûfô±<úJ–8°¬€ºÂ鄘\fN …²Z8<!AZÉi¨,\¿ÖL_"xÐõ-Ÿ
ÀÄ¡g•]LÎy@Îöã åÁ,& ‡È Åa
“É05w·¥¾,ð*‹9ý´L*Á[eƒE&¼7V0V«©l !—ÄG¥ê"Ðb +žébJ‚—Ùl&ƒÅ)Õ)+¬õ d¬`ˆkñ?³AÜqH¾Í‘J&.ý*@L‹˜T‹·Ç +¦H܆2V0XzX0Ï,#Õê…UÖêì<V1X¨ïõ™MYìE« qìgSÕäAÕÔeJ 8dGµpRK:·Oi›iŠÕ<ìg>çHDðÿ™LF˜¾>•AÖk¥û#ÿår! ŽžŽY³3Qr¦(N™)ÚPqسŸM+æü=R1!ÊE´GœËšgèS$ÎÖ°”û™3Z¦–p%J&|Í–!&lä³ aK]ìçÏ>adJœ*8B%ÒódwîñɃ‡ÏXÇÅÉ8¤ÐmÑMšâäÔÞTàãùw'³7‹b8+žëÝb½Ûþõ䌂ۗu‡UöÝs|çíf¶[®ßò{\ó®Æ‹PÅ‹c~„„´jã'¯—ëÓá½ÍˆöȤãK~s½Ø½6ï +±¯'Iæ|¸ØÍ®·[Ì0?͇õGLàMQ˜ÑWü¯œR˜#&Xmùålµ0eñq×Ge7‹ípqµ[kR´Z2æÌÌ÷™–ÉâWÛÅ©Í€`íÒ†K¦cßuqâ¸:p›&ͨ˃<ÆgˆË“Öx<šÔU˜ålXÍU-–897C ¯XÂCƒ¼\ì?ÿÉ\ +ªn%(Üjðæ2YíÉl¦@«¼ë¿ÆŠW¥©ÅfåûñÅ?Ÿ˜bÜðý$*|¶¼V@,GÅîÀÞŸ7EU™:=oßc.wÜ|a¡Dnw¡Ï{è]ªjS]"l"×âéK³}•êÇaxwuÉo2Éú¾s‹ÞIüý¨ñúy”-!ß,¢ú¸ÓoE‰¨ZRbÿ†÷46rÁºOqÿÍÇDŒ7{»ýìj=g0ÜrÈ3[[èC¤óããܧÎñb7p(¦oªâtqy1ün+ŽœÈ#ËvÇ£ÐdëGGÃC‹õiú:ê…¾ù *WIAT|ïz?ܹ¦}Ö×¢j(ÕQDJÒÑòI+^ÜÒ·‹ùÕf¹J#©¤ca¸tó"ëC"F£CZ¤yyø.ß^mÌ”læŽÓVse‘µe»Ÿ
["´³]¬íb±ºXlò#wj“\Ë”€Ä/öËNU̇@ ~øóöæ¡ó ‡äËÕ]öwï„žÙAŒ$%ç8³«Ý9ò¬åYTPÝƱh¾ùuaA‘Ú¶1eºîŸ«ÎŒQ•è7‰5^ÌÞׇ,M:’¯—åb¨Õ|Û«7Adܳ˜LÓèÁR°™ãÏ™üV¿>V³˜¡ºmc}ØŒÉ\(sÔ\H–÷|¼óP|‹ÍîØ5ü|©¡šDit·@áùBXÅl‘|+§Œ,b]ªÞ€—#äZù’–-¥¶Ø½mJ¦_=zAű벧Є4ÜÝút¹Ým–o®v!÷F7§9ð©EͲçØì›ÙÅ…Å^„ÃÊgZÍÖ³·at{sÁs3BðUVª‡DÝü±²òãá3¯ž*²²ùÝgy5)Z:’‘ðu¤%€)ÄýZÐðwªô||º¿R详SäÑÍ|ËÑûEÅN“ס&*“eU’ÑxD¥’íäÀùìÀ+¼Iª«CÀÛËu¶«7^
#ò”+=úþ4’M‰ÖXÞ’?ÛÔM@oɽª°S&—ïÅ‹å|3l‡3Û`M?j»´˜×–ß+ųXT¡QšÍtüûv·Xq£â‰µ§»Í"èrúäá„æ ¯¤}· ‹™bÝé.¨ðÒ½ŠŽ·:õó5ÂÏ•$ÅîÕ÷°”ÿˆ Ç®¤ˆG¿v;ÑßùªW×tñV4"õùùåóÛ9¡õ׫ÅfµÜòt$…#!g·—¡¥Æ–¸gý1´Ò+ûn5u×fYL4ûÑ8 +Ų¶O—›Å|7lB†‰ì©¸¿¾IЇùRUÃóÕ¡ìæ…l éHf··L’æ +ƒ¿ÇôzkŠ·£¡@Ëî ÝTtKF¿ÙÂãOû5çúz/àZÑ Ù§¡¾ Àßh£'¨q¤óW;7«cv|ï,ݽͱ>éó(9nxÈyò„á"yž&Êÿ¹¤Oþ忶KðÊ;¡ŸôÈ;ÿrú×ÅãÅÎuÀí…Ô*žn–èh‡ÄMgOáSsMûþßÿ†Z%QÁ÷•íÍ4®h¤RêÎuÛŸ°‰¯uq>º—I4Ø{z#•¾˜mÞ†3 +endobj +1075 0 obj<</Type/Page/Parent 1068 0 R/Contents 1076 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 147 0 R>>endobj +1076 0 obj<</Filter/FlateDecode/Length 3487 >>stream +xÕ[ÛrÇ}×WlùÉ© +à½/ö!•¢¥È‘Ë´‘*å—äÚ +â‚#§+ç &…Áà#Fz±{i¬.)n_? KFÈiKœ¾ÊH9-ÏfduÚ´á Æ9"à´°f€˜Í¸çFÊÀçƒ."ò(0y—¥Œ‘äi+kžò1*à8 ‡ƒŸUãƒÂñX–Øk†Q9– +"W4¢„œŸR€ÈÂó£{ÃØIÁVtÇ:¶®©‡Mì1#SIùŒõl‘Œ•=È2ñW)’R€èá +êpÂ_EXç Ä ˆjâD€Ð£È`³HzVbudÅÌE˳HÀ#«€¢:q2ì]ä„8ŒÚ‘sâ4pÈHzÖôKzü`¬Ãš,j7³ª2«ÄƒêŠ" U"”Å8ã°³bɼ¥žFzLqé׎u˜âÖˆ‘UšLÝ–I¼ n¡D`¬iœœ…¶æç Ì +ji¤Ç`‘d¡XdÛT%²ƒÉÎGÖaì<’‹Ÿ™î^”8ò%ÔU î!Â3·"rª.PTfá@ê0X9õŽu˜º048Öa°ðdzCû`ëz¶bžw¬ÃÐ5ejˆ¬±€‡ û N€lã[”iñMAäGY³©fÈ9U° 6ÅHÁ–¬"#çL“\Š!øQßTÀiä´5–Ž¤è‘7cÝEOU òD(¿v66@LŠÔ†e(Ò ÈJÝ%³ ×FÈ%W4Òc°ˆ<˜6²3&0ÚDV· ºÛ“-ˆÓÂ¥±YFz彪Ó"Ñ`Ð#ˆ.b ä„<Fz¬ÒBScuÚ\Ë2Ô°‰ +„“È“-! ÛÇ¡‹2=DR=(Õ +Áœ +Ñ2ó1R‚ÃYAj\„àš–Š\„40²q"b¥e +¼•
–äjaBq`£W2
D.Bp8mì»Æ)„ RÄç`°MäÄTÁA0·žƒààwn=™¥Ã²8HÏ–~#pr>¡Ž'Xü-Ö1å`ì<RrSml˜ƒÜzDä"ä¦ðÀç 8ô#MäDHˆ@d‚h¡=€8J„àP% l!84ሆÆEˆå2I™sÜyϸÁA¤ À}{þì›—-Mί¤rJ+4ùer~)WøyñõùübÙ%ÃUò|Xïºõnû—óŸ1 +ç/㨠.›äöõëM¿Þõëk>Ç€î¸ÃïÉÙþövØìø;v0¯y]Æßû5BƒÒb‚ñÑùêb. 2—Õø+j¥éøë7/ËumIJ¬!+TÌvÚ_oæ»~9Ë0ßn—(ÒÙ8ÙÕfXñGœ7„ÚÖÅP›Ûº©®‹g› ÌSš|˶Ðô¡ÿ)+Ý3GŽ°Dk°ÑÃŽ¼è.ö××£AxV½¼¥èÓu°ÔëÍ +géR§L¡àg…gÅxoæóG¸u›Ž3>¾ýtÅ 4²œÌÌxÖí,ð!é"Šª2û[ +ŽeÁC̺˜Ëï¬Úf|t¾¾”gž-(Éâz1òÑÒɶۼï6º—Å´QöQ¶¤l)ŽÄ}§þ÷Ã…È^MÑÈúl‘.þ:Êžç!â¯?²÷°ßÝîÅcxÉùÿrpG=ÑÌü!5·»Í|}ÝQ}óUROTiØÂñ£XîÎEªTÍyRßÌ?ˆåÒiV‡cøzØîΛþVÓx3mg!›h¨÷E'R£ ï¿sÅGùñj\¾Ÿ¯ŠWUŽék_¸@³§Ž2¶I£"‡nø¦›/?2Ï¥ÏõlÅfc`±¹žô*£Ä¾rD“Á,j•³n±ßô»ßøkÇàDɲ{ß-%Øá§U„OªÌ'¯rÕÑ*T
h–$þ$…Šªq\¨œ gi}1¬n—ÝN¼2‹EÊe·•P1VãèbR®¸M,ú-Åo½ññÂÇŠãç‚c=—$LóÁIäÌë×ÿF•Ð +…ˆx9¬æÚÜ Ççiˆ¡ŸÑïH·“¡icÔ'|î¡®Ê#ŸÎ²4–=ßý:ô{h|ÚPÕ͵¯Ãu€•2?ž‹ÕÑD›Õ_øMÂKœ±pøÐïnø¬o¥’3kÛ39rئ"t0½!SÝ‘IÖ¤¾40ùðž -ƒ*wÕtïúõåðA,|:`»ëKIƾÓÔÒg]ßüà:rJšËãJïÝDhÜãÖ©ô" .%Òs’ÝÍø#ªYkâ/P$kCƒHßݺæŒ÷ÑI‹AN^$V!wk5,
ú¤:{”âC7Ç¥³>èÓÙÛuÕk¥pV„*ÿ‡ázXË~¡
Š¶æC×éÍ]„"Ú;.vìâd<M¸Ó´®`ô5ÜK—V˜½ýñÕ¿y”ˆfÖrí·ã‘…f™[éžÉ§ñ~¨mï§ÏªŽ›÷¼.cø8¹`¼Ð⿲éQÜû³Q5&x3ú'¼x…?ºx¸³M‡»™HæÓ.—Bï{¤tq%¼î—uŸµ‡÷ùð¨Þ–¸îì|¾¹îÄ—Ø[…†óíVåæû’§M¥GPéõ îû½OýsÐÎËÇ×OXåÝ°ùEM‚ÓýhéïH‹8ªÔðÍU½§ýb3l‡+±ŠÄ˜7Þt«AkGÆB³¼
=Ú^ËM¼&+B ”<Ÿ/ÇN +º½Ôy9’ñú4Þ\X·ŽÀ®$¼w”ªT繘6CšŠmÁPxWÏ«ùFšjô]xŸ#ãÝÿ»Í×ð›a¹ÔL«XKxÝH²qoØñ[<~¯7݆ñbÛkÍÆr¨m-®¤/Cæq^÷ ÔL¡úL𕸯t¾/~¹F ½®vE²ç_°Ò½E?êÙ‚CŽ;`ÞØë6j£óÅ›´è¦þÒ,ºî&ãÃG®…ÃÅͽk'lÆ؈‹£]6Ââø ®(ìžéTÊPý%Éùf¿ÕbŸo[q²XÀÈúÅ +^öäÿóE«¿ÈôGúù²É‘ßØ…Æ7±hsÎ]p[ý%o•‰+~4å²÷é|½×Aþ¥[ò\¶oÍø°*TøŠGÄß»ÁŽòn÷¡ŠáQ_~(ïôýê§õ›<y¹üí+jRãš*d÷ÇÒ'W÷Úw6Uùæ%¾•¿¨ÂÇuïå‹h|ÄsvrúíI‚¦øçn±K^‹=ë5+ƒf—6K&MÚò›Ÿ¾ï9ã?ΟýëÙ7 á>endstream +endobj +1077 0 obj<</Type/Page/Parent 1068 0 R/Contents 1078 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 192 0 R>>endobj +1078 0 obj<</Filter/FlateDecode/Length 4177 >>stream +xÍ[]wÜÆ
}÷¯àS›>H&—ß}é±%;uë¯JÊñcÏjEYLvEe?lçß÷^ÀJ[–"¥í9Žï^ÎÀ +¨¬ƒã¾$'ûF£@t™„œƒH "ªr"p¸Ù8éJÚVzLË_c†i¹ˆÃ`3É +:³Ç´$c‹u€ë0Ø–¨c£a`Á¢¦åu¬Ç`ƒSËÜZÂ…d¯âþ +¢ŠA)àÊ¡*ˆ\MyŒ3ˆ5™lqRM‰%è1ØŒ Ô¦õ˜Fà¦ìX‡ÁÖ¬º
.”±v‰Ñ"€j†h9¤è¥œƒP¥¤*Ê9ˆÂX1%=+–cÆš +!¬Žõ,2 ‰[ZŽÂÁ€ÅlF@M”Eɇ5Š0/s$1X$ëÖ³C<ëYÁJÑä£HƒÅ&ˆCžH/¬ÃÐF²‘±ƒE m)Ë ‡2¥H
@!D¡WKÈW0c"@Y–äÈ93`®é1Mȳƒ
•@ÊåìqRŠ*€Ó:ˆW2îs“2§é1XÙŽë0Xø1VX_ê1Xä}¬š±ÓÇr˜ÊXÁbý½ÈAUœ˜%sc͈
⥨±0PIÁâ½Æ:Lu˜l¬D0=B +à¤b z˜UIÁ"öSÏ:VN½n¬Ãð"d'?6ˆ„z]â·Dþa{£‘31\9BIÉQ¤qdH´6ÔcŒÅŽŽÕµ±“+9Ö0ƒ‚nocƒÀ“pD± +
™”'¨*y¾‡M`z¤ÄšÑ sz|Ÿô¬ÆŠ4ÌÔ\QqÐ +?Ôc°8ŒÖnlxiJz¼.‡#ˆ&9-Íldˆ”)›ºˆ'@Ä@´i0PIÁJÞ1VÒEoåbJq€LËm#rRJç e¥ƒé1Ø’îX‡Áb&˜O$àK=¦[R2c=f”Ñá
6Âé[ŸU%›g©'Š¥®n‡º:Bp̧6ÎA‹ü
“褃•ž±AIÁÈCò~TÓÁ(ŽrAœq\†°ƒó)é1^)âX‡)¬ uÖ“ÍÈÆŠ¸8Âqãñäï*ìȈpÊÂÛDR¥Œr'bŽ3)!#ײy£œˆˆºEb€ Hþ.¾ª/C;-3ÊAp¨s +Ǥ¬yuJÁ<hgœ¤
åDHìÊQKþ®BŽLJ))$ëWã‚“ÝÊ8ƒàPk¢ýËWóu"‚Ñ §ù;Cp>®¸2†0Ý„Õ›R‚«ØQ9yl"©TN2ü»è¬ƒ$|ä1RÏOž<}ÙbHNÎe{JÑl¯‹ääL¾‡àçÙ'ÓÓy—çÉÁp¹î.׫¿üŒQˆˆŒ£ö¸«aØÞ„Ã~øçð™üd‚O,€Éz ÄY£Íòñ'ÌsÞÜ,;2h€ÊO§SþŠ}>9>ï2£0L:à8å¤?ñ˜=>ò~Ù/¦Ëßøk«ÆLJŴ¿”_‘Üu4U[óy·$õô%2̨[ây-y’€BÿúËþò#Cq›·ñ}ëQÝ°¬ºÌ{Ø‹b+ÕGM’§Í(Ö®Ñ&*¬QWã£ûñ¿:§Ð²²XبúÁ°XÑvm—óýr€ƒ,dI°µ™RÓË3N“!›çŨè‹årXÊ£<fÂmdAC'÷ŽºêåSîø·Õº[ð÷e}?ÌûY߉ÄȘeSŠìR–8ïçãÃðਵ{õ#ýµ.ƒ†¬ +Ü +~¸˜wD‘5‰!1ÀùÄí‘{ó2úóE7¿âØh+uèÙT–+šfÑu_ñ)” Ä»õ?d$>„µãKIíí×ÔU0¾Ö8l…UQh¬†ÀȤys>ˆm8GûÐ_ž
Ÿ£Ã[bk¿<}óBfÀ¹)ãc[¦Au-jóç˜d§ë>Ä,Gõ„Ÿ¾™•_]®ÖËÍŒÜêïŒíŽÈ·Ýúó°ü…?c£`ö¿¿>âqÑ»1¢ÿx…š4hƒºÃûî=:îÖ똳±b£ + +mÄÑÞTõ£aºŸDÓ3Õhÿi5†:¡êù[áŽ"ù~ÉlT{ÒT¶ˆ‡ïÞ<{õö¿ïÞž½{½¿þ"ÑËÚÄâ/,ß~£{ÉïyçÛÚc-T], k˜»¡¬´…¿Èhè»lÃFEØŒ±ôÝ.ÑH>v%Ežó›ÌªÙÛÖÏfÁ4¸À þz‹*áùtöKð¼±É¢§›]Пù½*=U{W¨)Xæ¨wI!ã+T<s)Hø¹OÓ¥™Ð×<ZÈŠ +³¨cìšpÜb ó-£75ÏU69ŽJpYÝÝß/»e÷ë¦_õëP˜¡ºBB ‘rÔMÏbA¥GÌm_Ñ+¨´‡~–Ï\ÒËaŠ.Òýâò+ÜEÒéìÜžÝLçýùX‚À–«ÝÎ3v„óXÜ¢+Ѫ/…ÁgÀ]•èeØdWG1ݤ£+Þ]ÿ#GƒLjŽx”@ÂibÊ>By…N¯…Ð
C|ÀöµZëÖ‡ÍMk±ä›7CÍ‹©>œj`;vœéQõwÜgzRæÀ×Θ6n(u§š†Òí±×çÝúÃE'µ~žÄ³@ÒËnœ!GéNµkýވƅÓî²ëκ3ÑiD3úD¾û QYÜù²e?‹LT$Z¯X’DCS÷©Ópä¢ÅJ;¹á +.Ãc+Óòö›¡"–a|â– äÀ»+ùÕ‘ÑmcØíø\B©7 +ïUö@\ÄÒ +|‹g—’7Êp¯5gÆ%œ‡/XÚñ;n…ù8ä—žø¥÷Iâ~s€€¡´÷]qŒk¼T"ÖƯWËáÓX‚ “¨þÓ%š÷±Ë‹ïuúanG1+«Âå@]¢Ý¾Pæ–S¶×»xühíWîê¨O}'ß`hyÍpN-¶¾ÃnÙ÷/ªkéßR;<Üã}6×›|îW«¬ÕÆ*Ô™²@®I£iņ.$R–6Ào/×÷ä¨a†h^Åñ+ªh‚{*ªá²[
óMüˆãKé?N¤;Î4j‚°»ÍRMgËaöT“zè\mNÑ^¿ã +AÙmù¦¦mè¾!úÅÙÝuØщT·¾¥ei]©›lÅŸßã×·I¤í€?|`4@vmôŸÐpµWD~ïÚíë·Ç¢;.)kO}d*þŒ‚4}‹o.Ï<€J1pÜÛZlrÑãöoe'|'ŽŸd’iè¦uÞýûÇ£w?I×oµÄx +endobj +1079 0 obj<</Type/Page/Parent 1068 0 R/Contents 1080 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 238 0 R>>endobj +1080 0 obj<</Filter/FlateDecode/Length 3360 >>stream +xÕ[MsǽóWìMRUîì7N)‰ŠlU™%Ed‹.+`AÁ°È üú¼×óÕ !Y:H€’*›oz¶¿¦g¦wüŸ3“¤ø¿Iê,É«d²<KG)ž„¼û…O’ªãŸË$ÏF…‹äúLÁe2.G•â\&&+G¹"óŠƒæå¨Á ãbdA…Ë2Œ¶„^£:©+Ê¥ch¹šÊ\9®F¸¦•‰ä¤2%’2hÙäbaRP +–•8¶lð¯R€8/B8½¡gåŠ\œŽ§0Z€ÈE¹1ß8+—§ d)€r–3µø¼2Œ‡ +S"J‘´‚˜œnÖBñŽ“H³rÆ(ψrŽ*8‘ËÇõßÊU"òrä¬\SZÏx- ï‹ RäX¾r±Ë•/(&åËs¥¼[~(CF(AªÝ ä39Ë8[â ƒ-¬µ¢(Åk
«i.@†ajh~ 4fB•,µ¹ +#°†{•(+ÍPmeÿÃíˆØ<ÎôÈ)ˆð.‘Ôl>ÞÕlÅâ¬d‹mO£Y…<.÷QVc°WsÅ*¶¡«0CË¥F± +ÃÅp¢–Õ,RHk¥1XlÝ´Eƒ•=U|¯
¶:Üȼ˄yg! +1wC‘SPB?9„ÎC†Že ’ƒÅö +ÊQÁb›µÇ*JYŠ²ƒÅÚ‡‘5+U± +38,NŠU˜.÷,’µ,«ìN›M„F€¸0B¸‰;ºÈ)S±õÓ‚ ¶„Ü9¡(À÷dÐ1h½Ç)ˆA1çá¿ ¨1_)ÊEVa°XÎáƒÈ*aa€ºµêbò„_ÂNTWA›r}¤Æ`‘ÙZÕ,ŽmP)² +ƒ…?+Í*L…k*dÂx˶o@…¤J\“"©1XY'«0^ŠÜ‡Âa`ûRÔ²8ÙHP¹™ÉgPÚ¡Q 5¦JâüÈ*L•$#kÓ3uç ¹ + N–Ëíy«äOŒ +"s™`‘Sê ,•"5[¦tJVÜ‰Ý Žìº +Zd•›1É˹
öâ)U@48%Çó²l¾º#uÒ•Ø*oUeíúc;Ø +€MM¨jË~êVqÌ›ò$jššD>¥Ê¨ßz +´“›!8Úù…P…æ`éZYüO¹r9cö+×í0ßþy¾DkNo¶pâ„Èqq<¬ÛÓùįò8àšSZW¼8Žé»ê–ýð_©¿8<6~²l×k_—Ñ‘4n©Brœ?½8Å2¼èe>py÷Š&—‹¹?¢ñ +ÍûgãÏq»%nì†ÛNù%fEð<rJÜ8›älº<éõÆÇíмÂG¾ôœWyt¢?·™Ê›_VXiíîŸîrÿ´]Ù] +ÿ¢¤EIí×ÑDµÑ¾öG¶äác'µ?æÍA¯½ê^†®D¸ÕÝÆ
:>ïŸÑ~S +ÌÜæ2:T¾åì6¶m…âlùúœ—LF»©ø¶55x_Öþ*³§½d>ø)ù§brgÛ^N¨ÉzÀbaWBl'Ó0§ÃâP;¨iÿ°Zô¶ëă@ÝC?„~‡.2‡Òì`ö'4ë/ÎùC9éžy§1Òa+};_Au‰+:¸±¿tH½[˜r7ô»µüœ_lð‰àh[:oî•è‰ö¯L)´6Lèü-Ð\ÝØ"ƒ{°¡ÈÜ\¾½xýV²ßBCw³m'Ÿ$Àz²Í†~)q9÷j>úM?“±y¡õ{7¼Ñü~«~Ù-:wÒÆ„õUt´~°¿6Îæ×1£*¬3íÌ%:'qXG×ífƒä•"ØX&ÛÕ8W¾o +#+êùc‹±xïm +endobj +1081 0 obj<</Type/Page/Parent 1068 0 R/Contents 1082 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 247 0 R>>endobj +1082 0 obj<</Filter/FlateDecode/Length 597 >>stream +xÍUMSÛ0½çWì‘",>¬czhI‰™öj\fb;
N§ý÷Ý•G½1Ó¡%™±çi÷IïiWò÷™„Œþœ´Pµ³Ld42=n.y¬öôlA;á"ØÀz–À +›ÄÐ2ȉç¼Ð0/-øŒç‰K Åriì[DIƒ)¦¨“Óú<í(G)ÒØ‚õ,5 +MÃÕIQÞmjèïá¬ï†ºžßOÄ2 %³æ‘6WL;¹©·ýnhºÎ¢&°©‹( +endobj +1083 0 obj<</Type/Page/Parent 1068 0 R/Contents 1084 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1084 0 obj<</Filter/FlateDecode/Length 159 >>stream x…ŽA‚0…ïûï¨g;æ˜Gˆz3Ѹ?@ÆH$"ÁÿoN^LÓ¤é{ïk_ŠARŒÜ sˆ"MpÙA[XŸËl¤Ç„fió+”Aí/GBh„årPC8$›¸yײÀmÚ'œ†øîR?UÓsè·¡ýFÙ.Ñ]Æ‚õš ©ê‹ójqÖéùÀ?®õ¤½·òxyÆœƒº«•ã;Òendstream endobj -1116 0 obj<</Type/Page/Parent 1099 0 R/Contents 1117 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F6 9 0 R/F7 10 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 300 0 R>>endobj -1117 0 obj<</Filter/FlateDecode/Length 2453 >>stream -xY[SÛH~çWtÍË2U ¬»ÌË.M†*&a§Ø‡y‘í6(±$¯$‡ðïç;§¥î#Öb\©2ùøtî—n™ÿøj†¾J&jUžÌ¼~C>}üñéÄ÷C/Qñ<ñfªTŸzY¶êžWqàw¥J/ê¥Bz T~ì{¡Š—yŠ’ˆ¹Ð‡´D Xª(ô|Á s$îä,Õ<´H§€ðÅà‹”Øx:lx±Šâ™‰0"µH-L°TYB®ZN@2é[-$(1Ø õR!*1ØhNîZŃM©Ž5î†)JÆ‚œ»=gü³œ€äPBJ-)19xÈc›…Tˇ‚18ÄÀ9ÔsÆË ¥³ò‘%%ëÏ)Žl“»Ž˜ÜM(»–5î¢\u—s·çŒ–Ê(–”lS†+0Ø8¦Vq¬À4~u™e%‹¬#–å`ÂyÆcÆÍj€
fàØ{Ç ‡f)’áH‰)˜¬À`“ê&XÁ¢wGš¿çRV`„ͪÓlBÍ"7¦!jÏ™Ø,' L¢
Bå%“±d›$cV`°YLîZ³SUi¢‹]›©0õyˆ©yCFÄPŒæ¨c‹¢£:ŽìœÖ„`¦Ó~u¬q*&g jœb$œØ0"§+0™QÙ+0ÌbJVb°!mY'+1¹œQ@V³Ä`ãdä•Ä`ç´¢œ¬i¨(†3ýÞ -¸†ê9ÓA–¡Î8ÿ–”,Ò“Ž,6>‚q¬À`qæ"ŽÁ1ue%ΩU+0Ø$y%1¥) F¶²&Ma V—¦ž3y±œ€6M–ìÓÔKÒFDG8V`ÈâÖ^s¬À`qò£‰+0‚ÁM -5¡;V`°é|,+p )^|VVb°èZô©c‹w¬À¸üÍ|êDËJ6àa·,¦•ÆEn>X´ òÈwChå‰CGIÄÍîZRb°1]++0 ¦ÓÃÉÎ<MÃÛ'ì™õFŠêˆ5²H4wb°ŒXV`°¸ Î%kdqþðÍ;¢}0bY!›Pô‚˜¼ŠMÇJ^Œ4»zð1=)v.!c×a²K3-XÁ¢&°ëd6^!^Ë’W‹F—š%‹»j&eÏÇvMDXÔStþ#WŒ8"âc¸¾8./#¯ÃQŠj8–ÞŒg¥Â¾EqÙm}L-å8@'çcð`Ñ -JLÞ²EË"]1 -Ú¿ŽùtD6™¤Â•9çub*gÈ”J‚½—Ç€ùR`ny0Éï†q -Ë£åX#ÊÝhE Ñ5¢–5¢8-¹ÁFBt`¨eh`^çz‡ Ñ5¢–5¢¸
s3«Œ„èÀQ˲(_0†P8Ác9˱XfÞEŒ¯œØÀ±˜åX,1·~#ÆÀ‰
‹YŽÅbsƒ6bœØÀ±˜ãx0휖 DÃ2`98ÞNèÝ2gƧ¿OòƒØè‘áä,÷aqrñó>S‹
¾»HÒL-Öü•~³:½Z¶]“¯º_ßð\‚¦4ÏCA€'Oïò¶S_wë¼Ó晨æT]ªÅó^]ퟰéѯ—QvÅêúfA£ÐÓ3uŽè#Ò³x.Zµ¬ëï -?sµª·[½êŠºRõFýöåqñ¿^¯õZuµzÈËe®Öõj_êªËÍc?t£ºg^uÞ´žºU]óJëªÝ7TÞ©|»ííò$Ãnjµoè9SË}§ÚºÔ]Qê–•±3Û¼y‚òoõ’´À£J«nZ8·,óN•‡xµ*k$¤Ñ+(Tp©íCèßÓƒÿ¬d©Õ¦ÞWk•s®ù;#þà/Žš'uªž»nwyqñòòâµ” -ßTÄ6ÉPÙSõ[ýBr[µ&Cåh‡…Fû>\ýþáêpyñ½¦íß›VýÐéš]ª?tŽ‘¥¹@F©ûÌXgDüÎß`ÒcVë_ªûb».ª'Vý¡¨ò¦8Jsø¾æ€v -då®nºSÜ"”ÃÉ…ÇÝú}Õ᥺n4Ö$»Ü–K4oµ)žö™‰M±Õo4ÌMüæ!WMÎM„¨„¯hîÞ‚"ÕÜüãf:UžÜåMy8º‰fJÞw ¾T]ÞtCq)–:«Â÷^þÆB.LlšºÄ„ëníQ>Õ ïf£‰5°ítS¡2?ô% §À B§Ó:×e]¶u>Ž&}ßV‚rá˜ÚbÚ„=ãL‚•y±53^™j¶ºÁrØê(Âì}›©±‰tUtÄbˆìbÜWÅOµÚØ'GØ™¿o'û?;\¬\Ý|y8S›Ç'|Õü'ÿø¼àÁ÷3õåá"8Sº[yžw¼7¸g}v“ñHgÿí³h[uSWÿèÔcÝ|ÿçXb¸q ¡xº#oŠü©ª[Êâ}Sc%—Ç,8za˜ôö§šV·7G*š^i×ϵñŒö/¼ëj\«Ôþ¡Í-èý%§WÚ}ƒ;Í%ýúùö¿täêš{GÝ_Nì¨Ma`z™ÝÕ«ïÐœšé•ô{¾Û‘›_1<UŽ[Ýa…çø‹=Ö¦+#ŠÍû•¯B¸FMÏ¥ì$|Å8YóÛªkêõžo¼‡]©Ã!“Š®Úv_îèF<êHÏtïÐ!2¡aþ¤8éŸDþñàK†÷•˜×…÷¯ýø7¶å6 -endobj -1118 0 obj<</Type/Page/Parent 1099 0 R/Contents 1119 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F2 5 0 R/F6 9 0 R/F8 11 0 R>>/XObject<<>>>>/Annots 352 0 R>>endobj -1119 0 obj<</Filter/FlateDecode/Length 3312 >>stream -xZ]sÛÈ|ׯ؇<8¦ €ŸO)Ù>ç\e霓§*•ˆ„$œIB@Ëþ÷éž%v:B¦SW¥s«¹³3=³³ÔÏ7Ɖ›§.›¹Õöl<ã7ü‘ðÇï?›¦£©›-f£±Ûºy†ÿy°qWg·.OGs!ƒÂª°‹Qêfót´€ÕÙ˜S U˜q>Z -'6S8)¤b°³¬gV1ØÅ4xÀIo]šô§õ"L—£Ü],è’ŽôÜd6š“3@N ¦ÌÆ(ŠÁNRYÁ`!_¦¬`°HäŒc#˜t -ß"«ì4ë¹¼\RµŒax6
ˆñx2e*1 OÜÌP$Ç3Ëi²LhÖP §ËÌL“¢ñˆ¤I8…XABÈ™„—¤6Ð>IR1%cî8T1cÉ ¿°‚Á.'JXÁ¬‡¾EV1%œ@%ao]
tÞ%šÎæ^à„Ë#H0œš²…‹*š%+˜.Ï‘ÈúiáS—øiÉ´“p*²‚9mÆ -5…U>+F¥NluËŠÁ.Ù ¢eÅ[7Á’Öyƒ&Ìm°l)˜ ‘²gK¤Ç¦@ SÀ'’ŠÁ¢Î”ÌpC’±‚!º—ZV6!}q¬b°Ùu'¬`°Hu¦¬`ȘôçU{„F¤ì<Aú⼊!ršõ¼²%2™3ãrFÆl‰›±/+,v]ˆÇ -‹¦Žp#+ØË—K™;+L½RL!§¬Œ8V0…´Ö‡;K`NA5ä;BÄ`ÑL0mdƒMúc3 Œb„±Š;’°‚ÁbûêvÂÍVÆ -‹Õ¢>+†c¦9ŽUg õJ1«ªï•½€»q2™ÐeC&¤`°è—˜6²‚Á.Øî…Œ€¼a¬b°hp9²‚Áâ 1ëûIÆ®iÇF¢Ë<jNR6/ô“É -ÄÀ }$ƒÅi#SV0XT,\ -†™ðõÂbÀZ -éÕ+ï$*Ñ|ã9u0Äim³
ØÞ€2B°†Hš~¨¦;ãá53@Jàá"9»y¬z"©,²Ì*¦‚ YÁ`s*YÁPÁ®#‘UËGçU÷ -(,{±Í°xqŸÁ¬LÀáRÂ];’ŠÁ¢°â0T1ÃI©pdå̄ -¬b°è_:¯bŽZfx¨³viRDË‚‘v -ë…ˆ¬`°ØàÐ"+,®M1²‚!N(È{`ƒµ³wdMˆ;לUŒ¡b:ŽË!AøI’ŠáÖé\XoÖöÖάhöÀÌR1ÌbmÌÐ'¸gÛ¤‚ÁÚ}XXÁ^‡±Œµ’â#¶'à®™¢‰Ì°`F\ë‡â¨îÏ<,§†l(ºP‡1tɽ,²^œ¶ý>ÏåʳxzÐ0b…0YÁ`±Èa8²‚é1w1aC -4/DÆz§ÐC}£å¦’²x°Óv˜Ór;V0XÄãXÁ`qï†S‘Ìü°Š#«ØשÎ˺í0X„‡€‚eÅ<dðÂY.§m><CnÇúð"+8„Yn7Ö‡YÁ!ÜÀÂ=ŒMñ|5$ô‘^)f¸L•°‚.îg¨›0–¹NÐYç“9–¥4+ÐŽ[™p8}uK–¹‰ã²$Ø`"©,^ç&šøÉâðì'áœ!úãIl–¶:Pï˜ÔI[uÉÔ_¹l+
‘TŒICDÖÅÁß2ŽjbׂCŒ¡3î–¼4XÁ`±·áe9²‚‘´£…°ŠÁÚƒkëÊ×=lWÑ'bL‹ÂB´‘L—M‹È -Æ´(ð¥ŒU«cÓe6¾Èz—ñPbƒà²!ïrÄp -CárdƒÅSTŽ¬`ºlV1X,s8YÁ`ñÔ‡p#+,J
¹¬`¬Ü»Ô+.®VŽ(s†,\ÁÌЂ++²‚ÁbéCåÈ -f¸l呵U`oU8‹ð½ÄþÍ9#‚M¼è -%ÞÌ BfqàÈàÊ<ðQˆaxë\!8É"g&ñ¶n›§E¾˜½ŽÃÖ‰'v~и7•
œ@pØOeœM]¬îP²xÆ#0“ÂK»D.Bpþu¹g&qÿðÆŽ|ÑdÇᨈƒdà"„Iܪp¦ë8K.<vvâMÇþM‹øÜadz>æ'Ú -ë/²A“ïwmqWç--^\¹Ïån]=6nW´Uý¥qe{ï®òíM~|šþ,Éà<çwÅn=`c¬Ž¦ƒ&.ómá~/šj³oËjçÊËÝþ.ܧ]ùíÕ‡r·ÿæàõf}Š«xy¹þíÛLH÷ê‰åçÅ«¢]½º¯š¶é´S9¦òIé©Ækôu´ªv·?9Evêôÿÿ™`r껦A¬îOšäIa—¦åÛäñùηoŠµ•$rÿçjE
—°_¤è–ƒ5v}_¸Ë¢}ýþ·+gó¿ÉW÷Åq«½Œc¡=kôÃů¿]]_¹Ûrsš¹a]~ÒÐp;y{yå>TÕ—ýÃINüüþ–žä|Ø¥_«GwS£±Ýîw+®ôÆ廵»ÕVn]<lªï®is4?#ðöÂ0tožé[½ä
G&EÖ«}]¶ß]õð'§¸zË;¶"›ÒÝVµkŠb‹öÜ OZlµ;®s¿<ñ}ù ПšBëþòÚaQäèƒûö¾Øµå -±)ê¯E}|²'WíEþ¥'wÛb{SÔ®ºål" -<º¬«m^„ødÖáâ~óDÉŸŽïI©ÍµÄL«
êõu\©ž¥á’í<fÅ~<¿°Ü¯Ë¦Ë›}‹v…Ÿn…äÔùfóÝmó]~‡ßö3vÜœ©#ñ5Ç5‚ù›ýñÎ8héø}Þ«©Ì'•²t2ù -Eÿn¶7Ïì=ñ‡×ç¯ØÚ(|î.ÊU]5Õmë4ˆwh·îê{Ó[˜ŠÂau<ÓTñçÖáûò»÷Íé¸2O-
gï²j‹¡ -ÄŸ\…3Üp%º|ÿ/÷±¨·eÃrv¯ËÖ·Ìî4‡Uz¾Z±!87nÜ$z`Rõ_žÖÊ?ËâѤGÝîóݹò\áŽÍ_£;¹^«(óMu7à€Ô*.΃ós«À~ðnØ®$ȸ¹Ïëï·ø¶epš.LnÜ®zÜus_þxÃÄlj&k·.ëbÕVõw'Êý¸¬8Åpz¬òcQœ¢õó¡óñ‡6{K†2¨ÃEµ.o¿³>¼¸?¥D¯J†×ï7un+ÕßeXŠ8<àÀP¯E²ª‹¼-К›/î!¯qÍÀ˜S›†vÊ´tÞ6 -Lÿð -?Ÿ¤Öð–£ÕÇñ#Ên`í<)âa}x{¿5-w]U›¦h;Ú¯“çnvŸïs,‡&Øx6éÕÉs—ºPw/÷1_}Á o@‚'æO”àÄó<¾Ëzf×1QqnÁ1ÔŸÁÞlJKëú$UÕvQÚë¶\ìÅ·uµ
ýf<úÆß=Óx^½ã3ßÁøü=^ào——Ÿ«®Î/^Ÿ£r«?°/º·Õj¿…§æ5Ý}Ég:~üå<Å›ÙúÅù
Žchò$'ü{1Á_¬óÝ‹¿ùåúìgÿšñiendstream -endobj -1120 0 obj<</Type/Page/Parent 1099 0 R/Contents 1121 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F6 9 0 R/F8 11 0 R>>/XObject<<>>>>/Annots 404 0 R>>endobj -1121 0 obj<</Filter/FlateDecode/Length 3058 >>stream -xZ]oÛF}÷¯ôa‘Ö -I‘U`±pœ´ë"v²¶‚ìÛ‚¦h›$ºÇÿ~ϹCÍ\WŠŽç~Ï;£ü~›b3KÌ47Õú$šDø ¿ÄürýóI1IL^ä“ȬM6ŸÌ°27' -®Í|>™*NÁµ‰ÓÔI‘…É$3ù,™ÇIAž„ìœd”Nb“"©1Øél’jVa°E<Z›‰Ö4Ç’µ™4A -ƒÍŠ‘XÁSdÖ+Õxm’xÆ(9“¬¹ ꃔè -zsSæÅq -BeT0ºŽÔØ:ƒkUF¹”ŠU)À«8«Ãq -RhD•ŽÔlŽZW¬¨ÌæS)ÀY -͈J±0™ÂMOj6›a·xÖŠ-")¿yé™ -rK5×P˜žU,:Üñ¬Âì9#áXÁNÙÒ=+î¤B#Ød¸ã!ÝáÉâIÁflRŠUìl¥ŠU˜ÅÁ`ÏZ“¤âÑq…@“sS“:Öï¡59’æî1X9…«0™3~Â`¥´«0œ‘¬{Vc°)ÏÏƬŸÉåAšÎQ/ÐU¶
Ï)ƒ¤ÇyRc°y>«1Ø‚UU˜Î$šØG“4‹–€{Va°Ø7£µ -ƒEÐ4ksžÒÐjÁ VËMy,Ãà˜Gp*È“h7¬_„SQ“3J«Û-á9…¾!óÏ4e… -¢àXa¬…HœcÅÞé<“¤bÀÉŒb’‡4‰‰÷¤Æ› Š“¦HÛdŒã¡0‰I -ƒEG€Zù]afâ˜tÏjÌÄ#Ö†bšÏmü‘d¬dCá1ô"Œ°Ê³ -ƒEÒçšµevrq*`Æ$’†U˜s Ù±[›+Ç6§Ãøšp œ -É -3’Ì”b‹VkVaz$ùô’†U8’#½Öú‹aTæfd9d#é1õzDÖZ»$?µ‚d©ÂXjSäY…i²¤È³Ö¨È¸q.&ÉÂ&hÜ_Lo†½K¤Ø™ýlSM +MÕb:ÄO± -ƒ-x7ñ¬¸›ävÀã€37Q°%Q6B -²ZQ' T³[àH@NA´[ΞS'KÒs -ÂÔd¼Pc°¨¸éTjMp¦Y…ÁJRkF5EÙÈYkÜñ~Æ`çÜñžµ”Žµh©0YDPašœR°cíRdÄ^…ä2Ãm.Ž™)“MŸÛjQr¥*íïÚ¼±‘¸µH}ª×*ÌP°qúµƒE-Š‹c,\Ëæ¨6jU&aŒ©1Xí#Va(•+²¬1Xìr¸ãÔjyN4«0XبõjŒ -‡^-Yc°èt”Ó«1Øœ· -ÏÚ®ã -''-JMLj†ÜÜ«0XÔ¬òk†G¸Â*ÇjV^«0lFCB™¸µƒÍ’cèESdAb³Â³§zVc°£
·Vc°È ^\<«0Xôý«0lƸ€ºµƒÍxq±ÃǾ¿v›ÈÝÒbx„í‡,xVafAlö¬ÂÌ7¶Z«0£Ákg5+ã§gÅøxj'Õ8âÎ" ³ÂP‹ˆäËï -«0XRäY…irÎô:Öª‡¹P@¹ˆ1ì8>ùÀ$GjL“8Ó(Va°x;ÛK¢`«íVž|86ÆÈa+í!ÊÈ“ƒ/«0Xt)(u‚5&+qP¬Ç`ñ†;VÆ“;·ä{‰‘C´‡g¼£‡€Šó9Q&Ø4sµNÆX'…9å+ÞP×rCî8ÁáÆ¢9¹ý9ù¸uv'a+Êy# -Ðuök<wZÎ*pœ‚Ð'
Æs‚Ã#Ÿ/¡€2„-rqœ‚àdôóœ‡à0Bâip/S’'³>›Àf₇äXÊsádŠ§ 8ûVņ,.xH÷X~‡tåâ8ÁaàËÑ SAp˜iÔ:¹âÊQBÏá|OK<†1Ç úx/‚¼ùpsŒGÃû°c^´d
ö3î -üžz<BqÃ~Mì!8̾¸Úì—)ˆ@ÉNwœ‚6ø¸¸ì×1ø$Ƕ¤8Ááæ¬9ÁáqTËôQD»Wv*W>\±ö¶Hma«ÉðnÇ:qÝC¸n‡¼=÷nqòö'4éØ,îðáC^ÌÌb)Ÿ9DfQ½)&_üúòsˆîÞ¼1ïëÛÝý}³¹7Ÿ»fÓÛoÚÛU½ÞŽ—à,ÁG§Rg‹%ÄÆAÁ›¾k—»ªoÚÍaI‘”yiaÝ™Çî5Gb§A±_Ê’DâÖ,[saÊoõ¿Ž°5
-½©{ áîÑŠ®ÊGSn–˜mÝ}«»@\GfgA
¿´·³éÿa6iwýã®?ÂâüyÛ¾+7÷õñBgA¡×å“ùÜnû›ªk÷Q^ag¸NÏ–ßÊMU/]™!m6°.Wf¹/ýâNu¥‡EÝÔÕ®kúg³ª¿Õ«@rÇ¢þ¢Mƒ–tð²íjSµëÇUÝ×ðt+™ÀV4íêç“GîãÊ2’|)
Ä û'6Ѻl6oÊõmi’É÷ñªC=¢Ãñø¥m6lIåÆ\-Ì{+ÿ©éœ†ä°µ›xÍZo
åýÚl–íÓçúœÕHæXökæÙ4[Ó?àË-:Wÿ -ÿnŸö¡7_Ûî·ãŒÃE4èòeSuí¶½ëÍu½n±Ñá6zä{ÿ¼\…š‘®ßx‚©%(ÿª\×æ§VSá_ì»êáp@_Šgéó -ãF‰ùÂœíúdMUrD0—V¡ ¿”2ÕI½ÿܵ8…/Þ›³Õªµ:Ž³=|ö^×ÛݪGh«l£ÃÒ^–CXÚÅfÛ#IÖ{îÐóvs×Üï:ùÉaé/6'‚¹û³wç ¬ëú÷]ÓÕk¤+P´ãáÙ3(kQoeDZ0†[ó)4¿¼dx„ùج›^‚v”qá± ¨Vh‘¡ulR8\Üè}ëò‰3‡‰)·¦ä³.»çýyµ•W«º;"éÉ+)ÿÜÕ3µmÐ -®ër¬R.|lLÖ»²úí)tXŒå„“¾/mž>ØõC@†óüü+ oýó®F@Ã¥lÐÚ,ºÝ¶7gUz{l?Pœ¯3ÓD{¬%G…ÿÕ~\nv,!vÖ:lËaM/
çå‡O›SØ}úÓêù‡¿L]8}û¨1T6rÇîåv ·Âóv½F¸pzÉÅS2õ¡ëÚ#îJx w†›çm_¯qY5USÛ -€’»æ¨ƒÏÖÁ!ÃF‹xtæ¡^=š -sÝ…Á¤˜åÆ©
_sÆ[Âܵ›ãæßß^~8\8£cŸ ¾Ò#ö;Ñ;<ƒ:{Gßþh®êþ sÉ0HVõÒ‘p¾¦IÝ“¯ÛrÍM+÷ëÉyYPáKÙûO—gWÿ;ÿtµ¸þôqÒïÍ.þ&1tó7Û{<ÖÞ$C×?«zÛåÙ;1Œ3Š&ÏûÎ -endobj -1122 0 obj<</Type/Page/Parent 1099 0 R/Contents 1123 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F6 9 0 R/F8 11 0 R>>/XObject<<>>>>/Annots 456 0 R>>endobj -1123 0 obj<</Filter/FlateDecode/Length 2995 >>stream -x•ZMsÛF½ëWÌÍÞƒ)|äiK–lGµ±¥•äò!IÐ -ƒM¦cY…ÁÎœ\W㕉+½nhý…†„þÆ(3$6+Læȱ -[a³cáïƒI~«0lF~aÕÀÚz„ÓŒÊæ\U -ƒÎƲ -Ãà ¥1ØéØ*ë|äö‚ãpU - dµ
¤Æ`Ãé˜U˜®È¯’U˜¬Ô±Ó¬0XìÄ‘¬ÂDÈ=ïdm=Séý~$õd÷ÓŽç…cƺIÊ8Va°³Œ‰w¬Â´J:ÂÀjÖîDÇ*†0°Ø¨3“¢M°!`‡Ï{@Dbg³Jb„¹)ÛŒ#5;<Å*ƒ’ p¬Æt†ÉS¬Ât&Bˆ«0š’¥e5ï´CRÅ錕„J›ÐYËM3Ù°aÈ®™ -rdÊ”ÀW60© ’ƒ§\Ó± -ƒ…õZÖ®Š.Ä“ ›œ -#À{¢Ó¬1؈e£X…Á"ÀHì Yc„?d¤k2©C{F§‚$Šrf[“Q1p×± -ƒ•N¦X…ÁÎYþŠ•
B¿ÒÔ-’u†Cáœ9omny¥hìã!<@Y²²s]öEÇŠ» ö”-žYÅCÝ'Ö¬Â\v:–U˜&³lœf»l–Ø’bKpÕ¹ƒP‹ÁÔ,ŠdªX«Ç›œ‚¹¨Vú†…ô…'±#5+½W± -sÑŒ&
Š5†§~ÇZ“¤±y˜ôD€xêà`Ò@ö&õ’!–âŽU˜sTQ¬Â4˜qV¬Â48bœÍSNLIœÚb -Ùº,’Š`—N"ötiΪSÓ;ãDØI§ lÅ‚X^V¦'é˜UžDœœ¬
}Àò‡(6ØÜ$‚D±Â\–Ób‹ Š¬ÂX6ˆYK«1XÙ¬ŠU˜Á—8
²brŒ¦*c±˜h‘3y`ÅDÅ*¼3Y±bòNÖšèXw&+VLdÓî:ÖšŒiXÎ+6’X -Bá ©1XlN¨DZt–(jœ -Sq€?W¬Â`±—àÏ k—Å'ýnƒ¤ -«05'̬cf›å€áXÁ&,DÅ*ššA³Æ`c-kC…¹Pæݹ 1vRl©1XªÕ˜¡`ÛrŠ5f(¸Õ+&…¸
°Ú0ÂÅä“vœ5Á‘C-jÏQƒ¨Æ`1ShÅ“å5RÉ*Ìø³µ:ÖŒACêTô -p÷\oà@j<ìXëÀNÖìX…ƒ+ô²œHC‰¢5g ;FÐ9 ƒ„ZÌûðt 5‹½;VaºÃݬX…i0'VÅ*Œc¢×šÁò3Ðìñ5ØAÌ{¢#5‹³ jQÁf¼ÿ+Va˜„ÊGI²èR€‰êeJ¶€1TjåPq¤Æ`‘Æi¯‡¢3Y…¬]4¶3ˆÓ&Q…é뜩s,O¤0äõÓ,ÏB(© ±Ñ5©1XéNTâÁOä:†á ¢‚¨WH<<Èt£F~·¶²‘fý¸*wIŽ›ös!Öã³e¿ÿ¹|aKÆÃÛqÒœQeô0Ä|Œ»èt≗“sœÜ²ç K€§ 8ô[¼{ìt*Çlì8‰ -¶ŠŒ
ܦò;œ
ˆ°”á"ÇPÂ&Yü]„!„€çkO½8;ÿˆê -ÍÃ꧳Ì<,ä>0Å[4íhò¯‡?öŸï›ïæyŸ/ß›z»^Œ¿@W
¾Ì;ÊC!õÄ^=ßžóÎüØæËê©*[“›«z•WksY¯»¦^.ËÆÔkÓ=—f]v¯uóòïÃëÁþñ‚¡wÉßêW³¨e±oPØvyWa§j½0UׂŠÁÏ’û.úƒõí¹\›ª7n¯.áJ¹(µïö\I¼Ž\æksŸ¯sóX"rLÉvó÷ -ÝúHÂn6åZ* -<õ·›ÃVŽ+ÁßH¨“õ&U£½XV'5'\Ö¼IÿR£e6kì¬ßÕëÕ¦©¢ô›úU6 ~Ùƒ‡õŽ’‚¯m7ˆÛϪ|5õÓ û°JAܬ½ßï,ì{ -w0aÃ=ƒ‡Æ*oÑÂNÑí?ž?ç/J5”ö×®Óu9•ÙLþXo;VI¾(`°ÉzëkãMƒæ3öÏùŸ·Ë®âdQ…§¼ði7¢#9”;ܺxYÐܶ[ŸÖQAãyíÄh²É›ª×ž¨=Æk¸WÑÍfY/%{æàUϯ§ï‹ãÀî&˜}küöü^þ,—‘9jÖ¾6¼Y.Ì›§ü¥4µõó
~‘wfQnpÿÃÙíyåØÏ°•{D÷g«ÙʱÍþ6{WæÓVy®“çù”ÇG¾ï3¼ˆÍc>ÄÜ_|~aÐôÿÀïÅ–£ëp±yâÐðs\¬ñ -endobj -1124 0 obj<</Type/Page/Parent 1099 0 R/Contents 1125 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F6 9 0 R/F8 11 0 R>>/XObject<<>>>>/Annots 501 0 R>>endobj -1125 0 obj<</Filter/FlateDecode/Length 2446 >>stream -xZÛnÛH}÷WôÛ$ÀD¯ŸŽ³¹ -.ÂÙ‚Y:M*ÀqI6K©4Å& J„Ò`A‹#i•Æ|dg‹YfRTÞÔ:’V0Šà,FäˆE)˜RëH¦Ñ,1iˆ˜PpIN€:HÁål¡H+m²þ99Ìä爃#E0É"š°`´8pAD厴‚H -ƒÃt@R%5Lj„chº°áYÀt"@l:Á0˜V0‰mxäIN°çD-2ÉHZÁxnÃÍ“ Ö>@Z¤rGZÁ¦ú‚LˆE±ÑsA3<#D„ø’á‘°€‚ -îPnH–ãD!NAxŠbEàÄ•jÌg\ÕÈJE&(SVd0gè-Q…)*Ù’gÉŠhŒbdM.2xd9©6CÐÉ"M¼``À† þ·HŒ*lÆš…›0sJVa°C¨X…w&D)$ŠÕl¼˜Èjv¹@fÁfl)ŠUxg"TÒ°®Wc° +ÛÉjL6›¬Wc°èlˆ³ÄU4+›p¢YaT"R#©1ØÍÉiÖ˜U<õ¹Ï¯|;æWÊïÀÚ|:Vá1¿Žµùdm>«ð˜ß‘íóÛËöùt¬Í÷À& Ú–]}†æ;¿bFœC©îQ³Æ`ag®d5›ò„rš5fCÖ¤Ó¬0X¬Ùw¬ÂÈQ°bGVcæ7hÖ˜ù'Ñèó/æwNVͯÃ`ÑÓ°"Ç*Öjv¬Â`q@¡&«0²d»ƒ¥«Œ²3ƒ²«0ØŒ‡–³«1â±ù:Vc°q0ñYc°XßDVa°˜t¬4»LدFŸ5f~—Ù>GQ‚o™#‰† µ6ʨٱ -3ƒ²«03²®«03˜p§8VaÄ^iY™#JNVcDã -öѨYc°ÐŒ^çX…Á¢‹h¯4fœ9ì9Y{ÌaSó˜ã@—I È6r¬Â`<úµ¬4 -lö”@ -²)r²H; -DZ -ƒEiÀ+Ç*Œ@"TXîÈj3&ŠÝ± -3 R#kËŠ†sO€gÒxR#>+M3ЬÂ`Ñ41ï‹&‘U,ŽÌ‰f…á‰TÉjl}žh–qƒÍSÚ È -» -Ó+Y‘c%gƒlˆM¯FVcØM9P8¶Ušõ[?dóë0즜°«0XÕ¼Q“È*»a†•9V -6Jì]ɬE"*;²H‚!Ï’µ¢±½-õ¢‚”èÀJK‰«0׃›š!5‰¬Â\3Å*ƒ7bád¹m",’%‡‚ÃÄaå^)“é -j6ᬯX…Á¢4µQé.©dFrÙ£]aô©EäÂ?﯇¼EDÈ!å„MÜ"°š‘Ô,&ÌáY ¾Â\ÄÓÉÊöq¶Jƒ‹xÖ[$² -CÓi Y…ÁâjÖjFô¤ÁYM‚”浚«04ã¯Ë%„¸ƒ±$dÛY@½ -¢$xþ9N¢Jû‡R‰¾E´ddoŸxU -È×öÏêò«ù^W?OÑòJaýã‹Çó¸€Ë”÷ÙùÏ0ç ¸;®.®Þ_˜ë¶ù“óÙ‡¦8ì0áçÃíãß¾PàÝ"Äuýæâ®Û·y!jŒ÷RËeŒ«(ˆ”ÎÿýæìŸgÿ·TY™endstream -endobj -1126 0 obj<</Type/Page/Parent 1099 0 R/Contents 1127 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 504 0 R>>endobj -1127 0 obj<</Filter/FlateDecode/Length 1081 >>stream -xVMoã6½ûWL·6bÚ²ìØÎ-)ºÛ=´‹n|é‘–(‹µDª$¯þø¾!åÄIÓ -îHÞ¶*ÔÚì¨Ñ{uRAR¹B}pãwi%VÖ"_€i,g«ŠÆ|µo·¥XÑŸÔZ§ž’2ŽÆ³á¶Ïˆï»w…ŠIs¶®•A[C"è¬6Ì2Þ#Ûw²ÝJ:¨-yÔeLø©àÜŽ.¨¡»žL‡ƒð|BX·{º7*{Y1ç•Žifb6T:»¦Û^7%SÃÕ¾ÕF:ýZ±-•\1í/©Ò¢r=8ÆÑÎÙ“mbd10xAb‚ÒWz×?'ëÅAŽSE°î(hƒëÉ׶oJ’}°LY%YFwI!ñvY&Žl§Î )ôAµ'Q-ïõ¦÷½lÈ(Uz†`¢ØZy„ -}Íå@R)‘Dâ¬
ߦՓPò…XJ9Ë—ÆctÚzjœqÚû ’D"Bz¥èÀà;UhÀ³ÅGl„§ŒÜ6ŠÙ`õU=gøa¶rÿ\¼Ï€Å†,ÐQAÅ2miúl -E:¼GúÒöèäX›¶Ó
äÌË€Ñão@yDûz>7ì{2zº•ËÝKÐo*¯: q( þ§“èèÑEzÿ6šOa@àë¹À§ÿ¾ -EÍ?WMF¼e´ ÉQé´ÙÇý³ºí›èŽ‚>ªm’ÙtüŠ€2ó÷³Þ;+ž‹eçÖŽU·k(æ}±?^âaŒÓ`»:F“…YN‹“fcèɇ`@f¸Œ¦“Œ9Ük¼Ä¹ -endobj -1128 0 obj<</Type/Page/Parent 1099 0 R/Contents 1129 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1129 0 obj<</Filter/FlateDecode/Length 1446 >>stream -x•V]oÛ6}ϯ¸ëK]¬‘?ã8öÐviMºÆÅ4Ã@I”ÄF"’Jê¿sIivÔ´À8v,ò~žsî½;˜Ò¿S:žÑ|IYs0I&4?:JV´Xãó/+©fG‹döÔƒ““o/¼^ŒßžÐô˜Ö|,WSZçû“ ³Ñ4Y$tåå†æ§ôÆJá%ùJ’kRÊŒ.TÙZá•ÑT¨Z&/Ö_`nASXas‡³ãd ƒ£u%ŸÀˉfSË'.;R:Ø–_ÃG®MseeæÝöså¼UiË>:Ç™²”ÎÓÖ´¨€ÈÙBÃaÀùtŽ:Ày¿E[×[r&Ì„&'%Uæ!x46ç¨4äM)a²¿™W™Dp˜Ónpq#JTÚXu½;$Ï)/“E—29ÅÉ"¼ÖqOdM¦sJQÓÀ³Ò%Õê–Ý)wë9¡“¾œ‹h›ºŸÏemRQÿÝ'<Aƒ‘pÿïÆÞ–Ö´ú•Þ_¿ûxùéCwx6Ù;ü¹BîÖp¶l9s{Ú|ß/N†v²÷GAc¾ŒÁ>T*«º2 ¤h €¥ÑõÐ’tKBo–ô |…Ï$²Ì´!D´8iï¥}‰ -sé$¡yø£,Õ¦Dµh$Û‡ÚaâYHõ zÈVÐép8¡›Ñ… @5`ã¤wõôž^‰&¤PaR¡òúãåŸWçïÿÕü2pré…ªÝÍ‹¾bþsÊßßu4v -G‘æƒ Ù04òfļËe!Ú9¢[}5·|nâ\V„
Ó»ãÖÙqm2QP*ƵJÇ'7/†i¾…¹Æ K¥a¹‰ -'Rƒ|ÌZ«<´Dzȹ dÇrëx/œ -Æ#„…Ó0YÛH=Äħ‹ó¿þ¹:{óéãùúš1ÓéèN–çñ§ÉQ§Ç‹SZwÂg;]‰å<ñxH%|ĺ^Ïýsn³1Ö)€™ÛÄC¬÷¢V9çi -ïù –1†HFN¹bjJ+hv±ûÒ¶Ú
:yù;»×ÜÍ -¸ï–êF“´–»'ƒP»Ã/ì³w‚?¡yl€Ípo? Œ5Ì-RL¬T -è«5è‚Îÿ¨KË®KG§˜žÖ¦`½IóàOãÃãÒíMËk4¢i‘wV>à>Eß]ïÅ–Ùð -endobj -1130 0 obj<</Type/Page/Parent 1099 0 R/Contents 1131 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1131 0 obj<</Filter/FlateDecode/Length 1361 >>stream -xWkS7ýί¸Ðu¦xýÀÃ72IZfBÁm&3™éÈ»2VØ•¶’ð¿ï¹Ò -?0%)a¥û8÷Üs¯ÿÙPß:Òјòj¯Ÿõix2ʆ4šœð{üZIó½·Ó½Þ‡
4ãÊxrBÓ‚p¼ß§iÞùݘ;ž–¦±ôfú
‡a7îô¤Ï{NÚ{•KŸ%CŒ>/pM9*ä\iY°‘ÚXOƒ£ÓžÏëŒ.æ¤_(}»~Ì/¤&Qà<•¸‡—;ɶûÔ!üiÑÁwý
žïÇÙˆŸjégʸ®s:ùÚŒ
–ÒY§*U -[.in,NŸôš¢æ\É-LS´÷’„&©½]†X^w¬]²ô¢ßKùèIê?pEî¾Èr£ç›V:à -™µÿL$»ü4}F7¨QëƒD œ‹edS‹‡Òµ`ý
°¾vÐ\L¾VHërcå×7Eå;ûð‹i¶¢¬ö©˜“ðìúd×ñ0ñé“7T‰ÀJYøì”óÈy7JŸ4ë%jŠC•X‰%H¥ÆED”öÒ΄ç€Lí•áÚ0CËðQWË\Í—À‹+î+]©5)á^æ•pwL r+Ó]7:æsœDÔœ›RÝnç)\ìÌPaôÏžîÐGôÀJÈuœY#Š\ -q3d¹©@ˆ"Ýê¿H»Œ¦˜ŒÜ˜•h¬•¼s…˜Q®f"=)ûœrQlímS²îÙ¿ºî -r¹Uµ?Gq0°å9ž¡¹5U¬f*u'JÊV‰·a¼F`ø{®R-íBÔŽ¾q›; ð˜ôÛŸWaærüa¬)
£eÉ£SPAëî=7“iÇÎ*ÎLäaÍSn¥
ŽÞ©²ŒRŽyeÙrý”×¼rtq4
²q6ÌèÆËšŽg—`‚^ÝË3 - -!+£7ƒ±!ï/)ú?•X¤µ~k½ˆ9´:›ê¸k˜‚¬è©„+æ 6,-m=’¯-ø†mF×iS}(ÿ´gì"áùÂl}y2wß™æ˜~än˜¹íÝõµðiì‚Ú,ÑÐsJ>ʼñbVJzÀ8‰Ù®“/*hÆ/±Ïààbµ;ÛP(ƒu¨Ø¶¥ð¤ÏPmc aq—íR6ϳY–µ8@›ÀWäGÄ?ºÕ¢ä¡ÂÒP[µpiå]廫CݳdžKz ÆZqeÀ‚̽•fÞÍ_×#@¹ÚJs„aFFÌRÆý{a»¶s¼ÑbiKSU—Òõܽu²Mý‘´k·Â…ÔCÑoxÿÃÀÓLGËíI;'c|ʘáóÄ îk7çßžÓ•5ß0xèɃ¤¢¹cwÓ…îÉ<ŠÎÿƒÑ|ŸŒ +0rÊy½Ÿîý±÷/Xlä¤endstream -endobj -1132 0 obj<</Type/Page/Parent 1099 0 R/Contents 1133 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F2 5 0 R/F3 6 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1133 0 obj<</Filter/FlateDecode/Length 1290 >>stream -xVïOãFýÎ_1=µjˆ'!?øЊ+G…t@¯I…ª¦6öÆY°wsÞ5!ÿ}ßìÚ®=µ™¬wæÍÌ{3óù(¦.~cõ¨?¤¤8êF]Ž'Ñ€ãž{ø+%-ýÁi/ŽÆoôOQ?y}ãýì¨s9¡xD³%¼‡§xg–|w»4KZq4Šhê䚆g4+·”+ë”ÎÈ$Ù•(¥%ñ(T.¹$£ikª’¬,ey<»‡uÄëíÞ(ÂzëÛp×'“¨ -ç8°Å"É•ÔŽÚ)¼Ô¯_j±á•±N‹B†£A}ÔöÚ½!R#¿› -ÈL•§”IG‘<ð¸É,ÿ sDWKŽR£¿w¥&k -éV´²¤tbÊR&.ß"LW#Ó¥vÜGÞáþÆ8‰{‚/ã}¾jRJ„&‘[CI••)9ƒë’6üb“GTw/—îKú(ôµÐ"ÃcHŽ¥yËVÉŠ„=ð}·¼ËæÇ
¢&!uDÉÊë½—”ËG™@R•ÊmC˜u!¶´Tð×TÎ}®¤u¨3…µS¦ˆbi€V9Ú¨<ÉØ8!.ðÖ§ËÓ¦ ´«ö~9[@¡á*×MI©t —4#äDâëÄ;G™l¼IâF!ß•Û»=À%Ò´¡°Y;Ö¶ûŽ+ÂvSÀ -ÃZF4ãúµA°¦|ÀnEÚèvHOງ(žÅÔî!¡ÔZC£ ¡Äh
1oŒÝVZ=Õõ
†þnÂÝh¨ÓAÒvºéF«’¿Ðl»V‰ÈAp,öšª½4Ž¶Î÷X§,8~fÝ‚ê”á*mìË4ØcDýÝÎ(—àˆ·ÃhAŸlñ……f•ú½ç•x”`( *ý"À&Ý܃"hyÜRåÌ´@N‹¸1ªÐ0î+Äèíúc…–aÿdyz)¬5N^ ü‚»C
_B òIktÙà˜2>µàèZUÄÄõðr“!<_.K„Ë™rÛµ<{…¨i_Ñ;ï®Ãvƒ†öu/~¦þ¤¦þøõ—¥) Ó‹Ûé qã§ғ§6ˆõºA=øòfæÏz't;íôNHº$Š¢=¹4„á›õ˜áZ¦Ò^h©²h"2ûrà?ÍçwW7·wÓùü‡W3£Æq4©‡”ÆPAõ)=£9~‚þ9ÓáùµºÂÝÝ|bXëRyXÿ+ |íâ70É÷dß°°} -endobj -1134 0 obj<</Type/Page/Parent 1099 0 R/Contents 1135 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1135 0 obj<</Filter/FlateDecode/Length 1512 >>stream -x…W]oÛ8|ϯXä¥.`«–“Øi{Hœô` u}µz¹y¡$Úf#‘®HÙñ¿ï,)åCi¯(š8¹;š™2?Žbâ_L“Œ)+†ÑÆ£“è”NÏ'ø<ÂÿJÒÊ?8ŸáÇ_<8=F£_=ˆ'ñë—ÉÑ»§Ç”¬Ð}|>¡$'t)Éz{Sù^å²OÖP)©Ä‡R-IVÒFXÚ(GSW´LZÈ’„Îý³“U†Õ¤\DßLM™©‹œDZ56»¤ÛÛÛ·É÷£!
âàNòžUÙLhJEvOÊÚZZ2+¿ÃŠ2ƒ\¥uQ³w4KØ{»‘š±ÐJ=øÅ-¤ÅÍõÅòš¬4 -†sL -Å -SîL‡\o$_·4–ÕJ%R©(søÊ!Ra¬=öZK…º—Xá‹=šÿù¬øUx¬[)£‹C§m%K¡4»Yä;L›XK&¦}nëÛ°×}›Ôf55L(‡çíêv
u¥•ÕŽ“úd ÆVX‹±È}Æ<;.¼î¨Ûš¶«H.Gà´·îk>ŒYh¤3¬‹ -õCÜ<v -ák¤'ŒÛ4- -… µ8Âäú§TæÑ¿Û&Xç S‚ŸÞŸÝ½í"[ÊpL·st×Ã"`Õµ( äe(%³•K'TñÊÿsãäJžu[)ÄðZÖ,;‡GË#ÏBsøÀ×ÌlHÊØÉtñn¶ ËD·cÛÊÞ)hÏvŠè#zî“©p„’ÇnŽL—µê–…;MŠ-÷¾ß¯QÝéëû؃u²DX†Ac?×¥H1c"8<מèßß N#D6xbjV•)éë|öMÐÔ«I‹)·~Ê´§o8à'æ;èH.%PšR¸§ -[ápÖ¸<mÁS7‹/^‹g"Σ-¬×y{æÑo<‘ëJ”áê‡GšÚµ¹¸xbmV©£cìó€#ú""
µx]UgþBÆÔ,aÏu:ÿŸÎžñ´ü¶ü—¬;€ˆ¦¹g(7þ~‘m,>š‘¢à¿9ÖÚîäÝymqøÃòHôg8_ù¿ é×Ųž¥ñµw7‘šÚ=^ê-¨{®ý+I|-o€ -vøŠ6&;o.€ñFœŸà–ÿž¯’Ë‹O—|3øŽ£®ž_¹Ú ]>˜ŒðÇ@ÞûÃeõtrMÆç¸ÞòÚ˜K\'Gÿý»¹ðendstream -endobj -1136 0 obj<</Type/Page/Parent 1099 0 R/Contents 1137 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1137 0 obj<</Filter/FlateDecode/Length 1480 >>stream -xmVÛnÛ8}ÏWü² kmDZ݇>8M -›&ÝØÝ¢@°Z¢j6©’T]ÿýž!)ÇU‚¢ˆm‰s9—áü8ÓÿÆ4ŸÐÅŒòúd”h¶x“Miº˜ãóÿ¤2<˜\\âë+Ƴ‹—'®Ö'¾Cã)K$™ÍÙ‚Ö!ÅhDëütœGÙeF·&RúÛÙú;Li<Ž†“9^?½×’„•‚v[•oÉ™ZzUKG¹hþxkÚM%I9ªb Œ#h8™¡(DXo%Z@ò;C~ßà”)»·S\-eAÞÐFR#milï›= Z}¼"'íOi3B(*•užÓ
¬Ì-º@ƒ”v|‘M8m¬WT•Ù9„É+%µç\&~°B“\ÈfïQ‘ÒøÍ4R#A%c*‡ºà\‰…Ô{ªM!Ý -:¯öæ‘À2úP’èyÄJè9Ê1ü A7 Ž5Єª4>ñ‹Ñï£!#rN±-z`sC) -ÜÊÊß³ð:ßY/BˆqÐd˜8ç[ø—!ß)¿åÞ{ý #kïŒ}J°ûÀ¾ÃÈ9j¼aÞZéâ´Mž1X -*•3pQmà?Q!4/-¡*'P¯p½äÉïqv²\tß‘<Py-ž ÂxŸ„&á—8´ -éŠÏ+m%8À5ßùaŒ¢NÞd˜Uæx7¬dð¤‚Vù²çƒ7 H®Wqyhk…½jÇKÄa!9›¦›ðaw79UC§BKÓºÎÕ -7HØ)hÙ@v«parô2^ßÜ}ýïîþîæœÂLJ›åuúøåáÃú†o·ð`y{{|Y-…W.r´¹Q•òi
ê¥a*`éý»«`Òðå—#¿{¼q/…õ0¬¡³Œ>I¦ê3–=-°aÆ/R\pY\\º;̳^ã©îZþô.N f1^.a‡dV!:/|{l‚ €™î"À‰Í -endobj -1138 0 obj<</Type/Page/Parent 1099 0 R/Contents 1139 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1139 0 obj<</Filter/FlateDecode/Length 1359 >>stream -x•VMsÛ6½ûWìøÒd&¡>kÙ™ÉA±åD3¶äšLÓLÓD‚j`Њþ}ßdê°é¡c{Æûñöí[üu2¡1~&´˜ÒìŒòúdœŒi~q‘œÓü|ÿ§ø³’Êp0™Ïþ}ð.;]_ÐtLY _g‹sÊ -‚Ÿ1¾É_\îE㥅#ºRâA§ôMkɉz'ÈIû$íËìÏàf²ˆn^ÏæÉŽ^L“IBkí)ÚÜ+££åœ&“ÎrºHÎØ2Û+G¥ª$åF{¡´#A•ržLI^:ï8,åBS#milMÞГ¨T!¼Œ)¥ÏRBXO¢r—«*^>ì…'¿—ðû(«#ç2¦×“YÌ5“!,kv•¬ I©’”§R(xúHF÷V0w^6±‚M#œ“0ª*Ž‚Ó˜7þ×ì¾ØØUG:û()”Jˤûnz–̘ϨÚíM[TZÞÜ„ -‚çW¤tødl&Áê ‘íÅb[%Æ(V–m… ùÞÎj -ÖÄ~¯ <hQ4ÊôœšèHU!©wë÷éêþ×Õ}¨]ÐÝe²¼¼Y¯6íŒßíA‘ÌkÚ†²Uš½¿ß~¼ã®²w‘9¸n¶Õš?(]˜FÌØ -zWIÙkÀIá=@`®AYi-YKçÄøÂ<àY -À{]Ÿÿó>›_DQù/Áùbž,ÎÎ@˜Ì8±UvòËÉßžgdÛendstream -endobj -1140 0 obj<</Type/Page/Parent 1099 0 R/Contents 1141 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1141 0 obj<</Filter/FlateDecode/Length 1638 >>stream -x½WÁNãH½ó%_–‘ˆCB”0#Íf…Ä2ì4—¶Ý&=ØÝ™n›$¿¯ªm†Ùã!‚Ý®îz¯Þ«ò¯ƒ ã3¡Å”Næ”×Çé1ÍótJ³Ó¾Oñë5•rc¶˜¦óáóåÁøëŒ&Z–ˆ5?]в Ä9>¦e~xãý‰~¸ÖS¨³4w¶¤ÒTšjµ£LSårÕè‚ŒýD–?ç‘X‡cÝäñRþ¾ùwW¶Á9R5ªÎÔ¸2Y|ò#Mfñ`£“IŠ¯Åá4=I§)-uhhú:þ1¦|üÃï¥f¥)wulAÉÚØ:¿úóîòû?—ß*½«eÅí½,8»¸¾º¼YîÝnÙRæ¶)]•´s-ÎþÑЃnxgì7ÁaxGEOª2Àkgƒæà–Ÿð´¼¸_ÝRpe³Q ò®ÁÙ¼×ySí€HhTUé"í‚Nç1UT#[oLU‘Õ -HHölÜ¥ƒs'ƾÉðê^‘“€óä¢÷ºD(ÀÿÚz…¦:+z£à~ÅP guR|öôgÿ%òœp7El|o Ö…áî'-mñ™âj÷~|ž©P@Nôk)gRbÞ~X¨Ýa¢Ó½¬åüp²Ì¸0 -ïÐX·ñ¯¯î–—7Ü$Ð@:±˜ÿ§‘Jþ³ð“ -endobj -1142 0 obj<</Type/Page/Parent 1099 0 R/Contents 1143 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1143 0 obj<</Filter/FlateDecode/Length 1473 >>stream -x…WÛNI}ç+jý‚³‚Á7l²o@È -iÃzÁZi%$Ô3Ó¶;ôt;Ý=8þû=Õ=¾d DQ$c{êrêœSåoG}êá_Ÿ&Ž©¨ŽzYÎÏ'ÙˆF¼à¿“4ŒzãlüÖƒ‹A6hp5;:û<¢~Ÿfs$_LhVôz4+º…5FAYã3zìÞÙ ÿ °”ÔÉ•)I™ Ý\Ò“5zÓ¡•p¢’x“J9W…’¦ØÐz)Q -´VZ“±„ÖvMÁ)Xûaöõ¨G§ý! -•]mí*Å3‰²tÒû G§ê»,É[k?dÍCƒ1ðÀC—H€„ˆ^UÖP!j/ÉÎ9<^„µ%éœuž”§¥xQf@¨yɯ„vR”rµ1ü7¬¬Ô~<!_KžD•‹V©]d|•¿{|îld(·‘?u µz–ôI-TúØÓT„åÚºg }½”è|ck—"d€kŽÎu¥\Î-ð
nÃHJŽµ ZA¥@â„'PCâÅ*ÔCƒ -ÄgÀöT¤Û)]6|9£«]²ý{©ª/¨ê½ÔMâXxLçÎxp+Ö¤7Ìf01qK¥¦µ]d¦Êã¨"9Ï>¤>¸É;öMÙ0e4“ÀaÄeÊðtÀ2ìÞ×)"S™áë ,4ñ\¯èôŠ®nÿ|¸¹ÿ÷æžžž.¿\]>=u2úÏÖä—¶Ö%- -h3~kgkìsÓíH4dt;oU
7‰ÃðƒêP'K¢€¹ éY#OùIò…S+†l†¾ƒ -˜B‚ôóftyÈ{º]^ÿu{s7£ãß_Gk¼÷
òM¯ý!#»€ÓðO(}ã²ó°fí7PO¯12žÇŽ_-°wjŒ<Jß(Ëø§ZÀì8‡Ázj¶!ðÚY³hsÕm›-Œ©±}¬~‘ô¢}º{àP†x±pÌõuÐIc"·x4@éïOkÜLküß·ìài•4xwN3¦gP€b
:,tã!x÷±ròEÙ°Må5,{ÿeH˜á†ž¶8ï~Qk<°5ßÖÀ7Êè’L]å0øÒ¹²þlv= KëÃNl[o|
ÃXYƒÙ -àt‹eÚÈjôc.ð¢Öº•I¸©ô¸ÇÍÒÌa±/#è)Yð™½ÄÅÃ0¯‚Â<#“¾ÕÒáZˆyÙ¡ -WŠXHßÊõê%ìUèÔÚœ‹ž±%Ü‚SòªRZ8ÎÀ€6øþ8ôý¸‘jâÿN¼x¦Kâ>.ª -úÝÊ¢³¿;dW|` -endobj -1144 0 obj<</Type/Page/Parent 1099 0 R/Contents 1145 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1145 0 obj<</Filter/FlateDecode/Length 1615 >>stream -xuWÛnÛ8}ÏW,Öj9v\Û-ºz]ضÙÆ»‹y¡%Êb#‘*)Ùñße§IÀ±È¹œ9sfôóbJ—øÒrFWJÊ‹Ëø’«—ñœæ«%>Ïðg%eþÁÕlùøÁ»õÅäÓKšÎiÁÖb±ŠW´N –./iŒfñU¼Œi-]MËgë8>§é´=>ž-qxôÑTç’S–B§í©áÔˆ\¹I -%uM“É»ë?o?~û÷ã·ÉúóÍ©¹QLßMC.7M‘²=MI•5eUË”2cIP%œÛ›ú³|ÿ’ÆÓ«xÆa„›“>šî(™Ìÿ/’Ä4â -ûk©ÏP3B
"F$A?X+“º8“uSjœ†å†ˆ£³88›…Ê€r½¿H{²üê^Â^"P Ç4öð£ûÇF$; XDjöÞÆÑÝ™:ƒâyþöÖÉ\-Ë»g´ijJUÊ@•/²kªÊØÚ7 ò-ñÇ=v^¹ñ]?†0tÝ8‰á›ah–¢Gf’‹àGgjÛXáû¸)Pó>p*”B…zcý>OA¥z@#'ß7=tÈs†¡à„¤àyÛ–Qª;YD][‚‚rµÍC]:WR›f›“?Ü…Õ=»:FÖUÀ“°Š?"ßÐÅPsæFŸcLïs™ÜsÕ½´°ÈT–Ÿûüè¡sʹw õ¹HØC«/ÃBZ)êVo?¿Ã-@ô÷2ÔùÄá‹ÖáxöâX:߃(–Ÿq™mfdYA:å
bæØêäÓq¤ÊwiÕœ5ûˆd`Ȫ [Ç;¹,*z,¾n-v¢6bNòW**íjÛ$L'w2P¤×7Qp÷xÐë<h€(ý\À˜È¬”è +1085 0 obj<</Type/Page/Parent 1068 0 R/Contents 1086 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F6 9 0 R/F7 10 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 288 0 R>>endobj +1086 0 obj<</Filter/FlateDecode/Length 2196 >>stream +xm˜ÛrÛ8†ïý]s³ž*›æQ”|³ëØ›Œ«<‰w¬”÷bn( ²™ð %©8~ûý»A-E•ªX??4Ð'€þwQˆå1%3Z×gaâ‰ûï¯OgQ”3ʳ ¤šâ(棪è‰ÇS6ñ¬¦|¤£p(á5EY$”‰šX:Kí”!¬`{YS‘bJÖ4K`î픬 ÅŠ) _¾xCAÓ0X(špÜiÆNÕ”¥ÌD°«JÂÙS²¦…¸ãì”dwæH›ŸTkP¤p¦Zƒfó SÔ:›ä(Øä¬ïìȬwŽ)Éå<©ƒZƒÆIkª4(ª ©u(NáäïÐȬŽ)‰bÎ8Ž)ÉΆ쬃Zƒ¦3¤BQ¥ÙÙü`bël¡u&gExgGf½sLI”zÁþ8¦$Œ2ÎŽƒZƒb}4§Jƒ.æÜ_ž*ÍÛRšÈQ %ÁÞ|Ò¦V¸P&&¾{¦$òžcEÏ”äPx›x¨5h!³Š*
šN¬5h¾@Í”Ò4Ž_Om óÔoÏD„td62ǔĒaÆî:¨5(–L4U4ÍQ5e«4(Ö»~f¥A¼[<ÍcÔ+É#Ù¾I°FIÊ™aG2Ôš]â®WTiÐœOE•æF‡Ý²Ö%3¼"¼K#ãS"¥ÄA±è,æH=U»ä€*
—,Âq¶ZÛ†@8ž¢:“fº8ðJkPÛÎÖ6Sšù á›idÖÎ1%±køáí”D 8 +'ÍI’º9[9
!·°§Jƒ¦ ·°§Jƒæ §ÐQ›$¼‰ýÑ"Â'id6+Ž)9%É1›¤Ñ.J2Î ƒZ#
8<Ð
ž*
+g‘O•]d¼=Uš“$=ê¨
«{ó'"| #³‘9¦ä¨c6ÐÑnÌA9Pi]O•Å»[ÆS¥9Д“ä©Ò(_U<ÕtØj
ºãÎͬ5®k¸ ýŽj
Š†.ôTiP¹¤)ªtMix˜
[œÛrÓYpÿŠâx‰kÙœó䘒HSqk;¨5hÌ—+E•æHšœ”1nv|Pò%)A®X±GZ³)çÁSkŠ×ß;ðÎÁ–J‡óBAkˆ~“+v”b>ÒB»¦Ò0EeRM••ó^Ù*
+'ôÌvÙÌ^úùÕ“S,JBUš—囯¢JƒJUÚ:…hýÌpjÒ óðpf¥Ñ¦h—¹²ÕÚn€™¢6 „ï˜X^d±(ÈBl),nXˆV”D«4ÇÃßh<åï>1¾>É}’Ïv+ØP¾M,O$r6Úñ]+Š²ùõ+Ê>ðÔJ܉¹#¯/‚-…E¸=óy6CYx†ÃR¶¿où$ “p©Æ+@"u³Á$¥ua'yNk'×!0(‚™’“cÖ.±_í@Þnbâ§cÖN¾>Në‰ðv;ǬªÎ±ÛõDx»‰‰cb‡ƒÕ¥E>;«‰°‘#b3·ß0d)ùìl&Â6Žˆ
Ž))§Q>;›‰°#bƒ{¿”šmä³³™Û8"6¸¨»4Ègg3’(Lq…qHŒp0º$Ègg4käЇåÙÕGlå–[üü0Ëç´Üȯx²>¿YõCW¬‡ß—ß0-Ùq—˜ ÆÈó‡¢èënSÆŽIÇ1çtMË×=Ýì_ðþÄ1|ίӌnï–¼bÒ¥l_̳|-{ZµíwÂß‚ÖmU™õP¶
µ[úãËóòo6fCCKOE½*hÓ®÷µi†Âûa:^
½›¢ëº§¡{çÁ¦é÷**ªj\W61Ö-€Öû®Ã<´ÚÔ·µÊÚô2™8SÝ&ÿÖ®xxÔÚ™®‡skȺ(áDÙˆ×PÝ"!YcB‚Ký€øŽ–žü—IV†¶í¾Ù¼|†ÝõÕÕÛÛ[Ðs¤AÛ½\aUñè·;öo´+^L@•)zC½Á{©üoüfºîý_nÊàT &§lRþ¦D”ÈRÿÆ$úü•>™ÆtEEûUU®é¡DÌðáïóOÿA=wï\IèÈ)˜Š–*›uµç¿•Ã«kÝ·ûnm¼'H©›“àr×6—U‰âү让Ê*£Û~+ù×í¯^vU0üœ,¦~¼}5(ÞIÎØ嫹ê~~q׫Êp\·m3 âRâƒ}2yðGûÆÍxßôš +ÔiiÐ)O7~¸áùñ›Ÿs÷i0; +¯é/S ß¹©%ú¸…d`tMöeµ)›ü¡lŠ®<=6æM‰Á…²ÞµÝP M{,wT™8¹¦ÛÎ`gË´}½B›mù²ïlwlËÊLM4Å)†)VáàÞQ¸Ñ†x°ö0™ç4`ä®èjû|:b.UõdÎìšž†¢¦(á6ÒØàÃÉf…2Ùvm3Ã&à Øà×%Vh«j0]ƒø~˜k$f\°ÄÑÁÇÒ¦0uÛˆñ/õš!hœ8ö‹óñÇì~ee;¥±9éM‡³á¤¹N6| +FZYŽN²Sñtà÷Íе›½¼³d"Už›¾ß×;~M'ƒ·‰<ÓSÉÞ‰Ž¼•‡Ó[sÚmò0952=õ0;õpvêa~êáüÔÃÅ©‡Qxò©Ätõq>¤’kùUG©¾i¤ø1Ÿ§¸ +endobj +1087 0 obj<</Type/Page/Parent 1068 0 R/Contents 1088 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F2 5 0 R/F6 9 0 R/F8 11 0 R>>/XObject<<>>>>/Annots 340 0 R>>endobj +1088 0 obj<</Filter/FlateDecode/Length 3005 >>stream +xZËrÜȼó+úàƒ|Яy”´ò*BäÒ;”å‡àHb53 Œ(þýfVcºX‡íØ-“‰ª®Ê®®.@ú÷Eêü—ºeæò…Û.’Y‚ß„?~ýëE¾˜%n±âŸ7ÏgËìÝæBàÁá‘B8—æÉÈ+¸Å2›à³XÏæ O·XÌÖ „Ï4z¡¡b°óläV1Øe1ËıâƒË’ñ²^‚ùz¶@¸þoa€«z®`îàRfi€œ@†›2 @*›QaƒÍS +mƒÅ6@¥È +öÉ ÕÀ2¹3›L'°Ø,”çx„Ë®b>žÌ(;Èå’–†" çÜÓtQ°r¾ÎMÁtà!Hš„óU%ô€œIxæÒd¥#©kf)Ü+lQ@~a3™;'¬`°ël–*+˜Î¡V´UvµkÎKxµ"g€É +Ä¢82…ŠÁÎWÔ0˜*»b‘FÖ/:/lãü*⢗æ<Œó@*梋Y.¬w[p7A&snŽ!úU›xëM3–ÐÁANph)†¦Q ½aÊò‚á’»fÀ#„!ŠúÒWY’šðH+ ¡@&’Pƒ@*[°ˆ…va©D[Á`W<¨b+ìÚê(Ú +FAhXÅ`ýÎDV0Øå|³âƒË3;UÁV1X#+ìz=ŠJ1:{În"¶¼D +ÔŸ]%¼<°-ˆûšc{"'2¡÷åB*æ,°yÑT17`>ZT1d²vmƒMWh +»ÈCnLG1Xl¥&«"âfÐŒƒµ‹,®«'¼È"kÇ£@÷â‘D@Ä“@Hd!T ƒÅ-¼PV0Ežs¢`°ËÓ‰¬`°Ö;…¡ÐÖ +±U¥£QùdqEXá\`²ë±(JJR1Ø|92UÌtxxÄV0XŒ9ke#`´µU„ó¢R¿×˜ƒÅí‘£`VT1ŠJ1+j•—± òH(]0dCÔQ1XÔ–¬`°uYÁ`½p‘Œ„Š”!V1Óå
Ykæ…]¼è¼(=`ÄO +ŒOüŠ€Â`t†·´šœ@¸ä8íRöéH*¦\YXÁÈ#‰0 ÅÔÀŠ)„¤˜›Ê©,zö$œ0yΩžúˆ6`ñN ÂÅ6Hsš£]ñH¡–S´x:Ch¹Ò®2+"œbpLöa˜ñ"’ŠÁbOeƒE•ãM%8æVçÈ9¬b]
€k +äEÄDìAr‘¤8XE9CÅ`mk£[Å`¡[®¶À|ËòÑfé|’b†žµØ*‹c¥Qyéqã³â}ü˜ªí¼ðoZ— ƒr¦:#·:ãÅ›ßoµ@”%ƒ œ@›À zà°ÂBtÉý ¤bª—0šÈ +»ä¨)¬`Dk/‘UÇH×ULõ8âF[¯º»Ÿµ™ÜÀ B¸5oéÈ D¸¾Lƒ¡b¦ÊQ4š*F@¸ }°UÌd¬Œ"+˜ÉX)DV0XlÕȳ`ö“±gÅþ’И½Lh_<k(/l³Ê$ˆcRä¢Zø9)±Ú NƒEÚ'²‚Áâu\ULùy¿‹`ˆ„;Zmƒµ±;Úšnž5«Bµœ9œÃ5æ>>HN ÂÀ1Ò;E…³“{§¢Óó^'N1¢Ørz¡¡b°öº+¬`°ãWbk]ƒ#¬Ýk‘–I„tËcIoˆùÂlÉ™!‹SÉÃtÉóY/”aøš–°5#DqjŠœ@8Åu¶R1X»³¢©b‚mYXÔ”
/ͨ2P„p‹Q‹R1X\çÈ:²‚ÁâCÉÈV0XôShmûÚT[ÖêƒÅ{ƒ†¬Çoë•OêÙ{ƒeg &;pCrT’¬Oölë“‹¬àld}²ƒm†âIÑ+!ƒRÌd´"+,^P2塤´¬n$¾ +ÄQ, ¾œ@T(§¢È D&èèj¨,.àBLMút5|Ñ`‡ô`'…‡•¯,šüîÃVį‰é€H*æ’Ûý³Ñ-€»&S1d¦‚ÁâàZYÁ`¡ó\YÁ`ñâŽe£gÁØ|@ȵÞÁ·ynËj…ʼn|PƒµéIXÁ`1µÁq´— ä¬`°è©¨‡È +FÈÛ]d}ÈØmkw¸œ²!rÄpSYÁ`q rd3(K(²‚ÁÚ9[ÁŸÜn°UW7ö>²‚Ábʧ‹ÎÁjäýÒO7b°øÞ—)+ìœã¦Ø +‹ù*Ïv@ð™À^èøUß~æšöid`ð?a"b,ƒ‚‘eo¬}›Éígº‹FX>wÈðÙ…gñÆeukçЀ‰!Ì0³ð¯Î%!8Í"!«Ž4p¶2gÍ¡:ñ©’?sµˆàpøn:P¿}<>›™C|øµ‹—íçàp`ض0¼ñ1Ë,BFÏs8Û0Ô·½Ø…ÌŸÍa@6â~:3˜w8ΘΔ@pøB€{ p2Nä"‡o¸ƒ]„£'Gœ!Èww—y*ÜÝîL´Kw·³¿KÜÝöͦ¯÷{÷T~¯®o›Óý¾êþòç»ß.Þâé·öš~·{óéØWmÙó©ëûZwÍKçŽUÿÒ´ß:÷R÷OnSîKšªåÕcuÜÙoß&ÑßMy¨Ü¯U×ìO}Ý]}t¥{>µ•ûr¬\~®§®÷;ú»üˆãwÎ ÄtYõÛ˧¦ë;>#ÎhéüûlÛ,›)OÃÀNÉc×!£íSx j8’ÅÒ°•|eçN]µ39Ò•‚~Sîž*wSõï>ý²qæï}¹}ª&)ñ¡Ï×?ÿ²¹Û¸‡zo´ê9f$7÷¹i¾ž'¿~1£´~n^Ü}‹
æv?œŽ[îQçÊãÎ=ê·«ž÷Í«ëúõb~Ã&¦'sÊBÂeºj{jëþÕ5ÏX†»W?²,̉{hZ×UÕ5Ú¡f†šlŽSM¿t•Šsç°3%jìÔ?UǾޢ’Qu]Õ~¯Z«–×å·óz¥;T‡ûªuÍÍ%j¸ïšCY[’áûIèÿ+ +uÞ}sÏe‹k6Ó ÿGXÙ矟¯ÝóÛm‡‰lNÏÏMÛóæòÇ'›e³Sõ°rÛì|u’“ìFGej÷žiq™>sÁ?ýkb¼©z£?´5:Xg]à§(RÚXŒTáqéöeûX¹ãéÜÚlÁ@;áÕnG7¨Æ³OÔfiŬgåöë4<Nv.;wl[FuÁkíÓÁ–ïÜ]Ó컪ŸJñõ©„Ê]xΆÕñ,Õy)¯‰»-·ßÐû¦µ0Zò?_ +:¨ïcï÷5:*E]ÛH„£‰3ûÐ6‡P ÉìJâò#_¦8‚ñ}+Yå˜Ã2Ìao6W×ï® nóN¢ûÐlO¬d«ÚrüÜÇÇß.“5Ÿ¿ºG³Ã‘ Yà_™¬Vþ͈œ¿ùéîâo¿=Çx}endstream +endobj +1089 0 obj<</Type/Page/Parent 1068 0 R/Contents 1090 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F6 9 0 R/F8 11 0 R>>/XObject<<>>>>/Annots 392 0 R>>endobj +1090 0 obj<</Filter/FlateDecode/Length 2764 >>stream +x•ZkoÛÈýî_1ØE +Ԋć…ã$[/b'µ¤ß +š¢mîJ¢—¢ìøßï9wÈ™#%
Zl`ûøð>æ¾æRÞ?N&nŒÿ&n–¸têÊÍÉx4Æo—ë_ø7Oñuã²ùhуµ»9¸qóù(NàÆMÒt”™RÝt–ŒæPº˜@¥žË£)¸yFƒÈ „ÒÉœJ©ìtr êÕfÓQµ¤ªw¦ð*rir·"©˜ìŒ' jƒÅï•õY`6n:¥^tH b0f`'J“CR1Ø”QŒ¢ŠÁNÓÑLYÁ`–Ï`Ö»s¬ƒÜbkÀâáÆÍòÑÄM'Ðjéjd€08YÐ@zƒcfc0h ì9o!p©tLT6›Ðd`Íd¾Hôòß<0“Bpœá‘T6Cmd½Zä¥7[à[n€jÒÛ9NI/8¡X‚)¾åÌŸéONd–ò<³\y%('e—ÒÞ—-äÖ–¹(—Ì|l”3`¾DH_Ôk$ƒ…±\YÁ`§ùbÅ—ŒSž2˜U60@µL2zšQ;K„˜i9ƒ8Öz*‡¬
s"a 98G-Ð b°*J+ˆú”Œé>R² ;()îp`FN Ü9”ƒéŒ¾¥ŠÁæVu‘u€„EV0S2?p׎’¡¯9%Ì®;J„8JŽÓFN L&=‘TLwS(V0ÝÍánd½C3¦-dœ:$Ðœº,pð}€p6£?ƒ“ÍIÅ`SV—°‚Áâ¬X™kùYÁˆ<fœb¹g¸óxkbh€jâœs”‚Ð’!,b"c¦Åü66Œw2eó,úÈ +æYÒ»ŠÁ¢]pÒ «,šRYŸpl&6lS&΀‚7p†°Ñl¾y¹$Á(î™rÑ 3ph´áQ +¢HäÑ#¬¾ z’†,~‚Á&¡ÀÚ9RT3ŠÙ?w˜?ÂŸÈ ¤ÒŠ3 +š?)êˆÁ™` +äq¸FÒbçœgÀ"È‚›,üJiœäB©•f$ƒµu[XÁ`q’Eo…Š3 +¬…(kîrXØíÁ7(i/7±>‰¤bEW§"ª,.¿LYÁ,ÁM5+‹ËPe3mÜTDV0XØ™*+åëh.¬b°°‹dYd,¼Ù8¬ÿ‘Ÿ¤GcÁwÿ¬±‚ÁârÅL“±‚®Ê‘UÙ;`ƒÅ5‚@Í6•8eýTbÙydfÑ»†SÖÀ +‹ŠG¤L“É +†YÌ „&°ŠÁÚï…ìs€PYï2®
¿?p—ä¥2·}š/}†S s!¬`FÙ\Ž²‚ÁN9¡DV0Ø×qaã@h„\XßAxãFË (tØRHÅ`q¡m#+˜.YŒëb#fÛbñ„ChT }sR1]​¢ŠÁÚYoI`ØŠÈŒ$–ý»NäÐuHT/ÇQ†sAÅtˆK¡°‚Áâü²‚Áâ½4›»xKeõ£'2¾Àú³ˆ …T(ô†á bÁ᳇‰p‚³9ÈYîPCVÓx3Oß…RŒÛ{ä"d“pÁá'rfÎ^ç Ò̈æÎôG.B¨´Á8àl"G.BpöʹÙëöi!G2}Èi›á×AÎR—÷[{6ÃéØ"Äñò…p2š4å"„›xÿâG'È<u +‡Ïúø¡ËÀEÈã±X"!8{#ˆ\„8F¤ÈñfA{‡ýË~6G8´zƶ¯ÀD„plá¥<e"Â$`…™ˆÐ +*m¼Ÿk_,âëU±©Ü
Z¢.ñé)èŽçÓ=^ ©ÝÙ¾{@ÔeÁ.v—èçµ÷Q4ÂíÖøKÛ /Þº³õºñ"G ¿®vûu¿Ê„Ùìj]lw\öƘ’óf{Wßï[ûÍqÔ~õëê}ÝVø~\FËjg³bIvî£oûƒ¨7ug&…áO¹F‰ø‰v Ä<uMð±íû$qÅÎlüMѾ}MëuÕëS[µtW#—˜«>Rñ7Eùû=‚í+Tˆ!^¬ad®÷¡oÅC“*ÕV8-D.-/•[¶û]çÎÊ&:8LÍ}¾®T•¼êã#\Û=æÙ¹éõ£æûªÄ“Ÿ>nO¡öôýúå§ÿQ\¤é˜÷ó[7rvÞl6p
c7˜ô]Û6ß\7/»®Ú`̯벮|D uW÷Ý ÝcßÀ‡Ö=TëGWbF]8ô÷ñu˜w×´a"-¾¾¾|wÕ!¹¾=Ø+¿]w?»«ª{Æpè'%%.?”«óº)6¬ëçƒÓi¾ýxyvqõŸóWËëFÝ×ÎýüŽs¿/6÷_ƒ–hUÓ·ËYÙùö`IcxÆÝÁ̓i¶~é˹W½Æ@ÿ~ùý·zý¯ö¶Øðõj<çÿÓ`½yusvùæŒeð[Þ6åž“#S¾ññÓÙxÁçõÈø—Ãy†] DÆs¾[žüëäObçªæendstream +endobj +1091 0 obj<</Type/Page/Parent 1068 0 R/Contents 1092 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F6 9 0 R/F8 11 0 R>>/XObject<<>>>>/Annots 444 0 R>>endobj +1092 0 obj<</Filter/FlateDecode/Length 2482 >>stream +xYËrÛH¼ë+úæÙƒd¼ ž6ô°¼Šµ,¨ A°%aD +¶&ŽÊ³X‘ƒÍŠ³T³ +ƒçg¹fnMÍl5›Új¶˜¨B\H‚*êœ;ÀP„¤8?›)Rc°IÊLˆšj¶ŒN`f8Ãñ¬Æ`ãôÀVc°™T'Ø*Üš4Šl]°ÈtÆ`gŒ\€ G3fÉ“»`!8°~ÁfR÷À*ÌTÌ(ɳ®
Ó=†VËèG€´Z€hQÑç9)7bzRc²%ÖlÀ”›Ú*L¹É$‘ýôP”&Á9c0›I€`kfÒžS\ÁN +\€¨Y|À)È0¥A½¡Æ`ÑFÚÆLB6Õì±$93ÚŸÒFr„&.ÆÿQlOjLI %Va°hä/° +SRÌî
¬Â¨‹;žÕ˜g¦`Å=ËråóT&@š U`4 +¢01@à„t‚6Ô˜j¹c0Õ˜]!Õ˜j“[Á¢Ëöê)Xc°ïz_1ÒÀ¤{sŒ&NŒ ++@!Û3¸“.Äž‡òÈMsGäÊ +Ê寞Ã]¶‡Îi©Hn²Ç`17cÍ*v–ãìǃ—¬šßVcdX(VcÖ%?`]¨ÉLZPîâ\€dW³ƒØ4Iœ'5+£K± +3œŒ-êmå2Ècþ%s„;Ä]5+Ï„À:S\.ì†÷- +r¦ƒÍK*ö¬„š•¥4ŽEjªˆ&cŠ§ œ¢sµ¡Æ`ç¼Oƒ©ÛÑs\‰ôL€lÉQæ ô5ì<‡éº‡.ŽR‘ÎiKÉ +^Ñ™ +Ò$%
Hòœ¦MàdÚ8§ò ¤8M¥uÑyôâ€wºçbÃ\‘S+OT0Õl>CŸÖm*éĦ¼õS²i€tˤ3Äû˜§Ú©ÔN\Œ÷w/\IRc¸ÍrT2°râR¹§P> ¥‚0”v 5¦[ž#Å*ÆšUól5OGR”Æd9€ë²„d£|6¥h© …S(p +‚có).@¦Ê@jÌ4°©ëä$îû‹Û_@3qnÏ)§h08õ¤Æ`±š3° +S«bv™G0ÞÖÉE98£œ\AîÄ9}žSÐËõä$w²œäÖÉݳN^`†g¹:RÏ:¹‘ûv‚úZ +ƒÍSøŽ5‹<S¬“<0ò¥(@I +âPd”ë9áTnü@jvÆ/•u[âæ—zL„"@Ê ã9RHæ-ÉÝ=;Ÿ +á_ÑÉÛÁ´Õ¦z±ÝŒ\®*¾°5ÄÉâ£QëDØ°µuSáyûf¹ÑÊ(”ÑvÇIüò³j·k‹ˆo®ÍT„g‡FÕÙÇ0[ªo§:º›vÛw?P¸eß½ì$4ˆ ½ò%ýÑØwÓ=ûÅGÑ_ì}®|©èïûn¹¶-Z}èÖ»}?é:{OUÝwÃ`†ÝS@äkM~èU^áÔ0OóÂŽ##•ùtó}óɆ=ŠF-órxzÌÓÝÃ?¿>Üý~ÿÿ\ÝÝžß|çjãu××”!Ùæ)Àlá¸k«aü æ¶zSk±jn¿\ü½Ãô¨–Ýnd.ªU
¦ZïÁwÔín=6l©fƒmŸ«Ú8蒅̾-hΑMÅðsu=.»v[õÍÐm\§©šßm×]ýö¡‚û®:Jå7û´«õÊ|z®Þ¬éœÓOø £ÿÔ¬ìC
ÓS®›Ã °?æ°[zœ…[ÌÐü[†ž®ÒmõÓül›ãƒþ
ÎP#ًתG»Õ”C%ú[÷bÖŒêÈä©YY³Æ´þ¥¢¾z?n›'Ìk&Bm øUó« }k[zôÖv;ÉÖA.Ö¸J/×Í~D|¾.§O²¨Ä¿2•ri/Îo/Î
Îï¸9pÖ;Ž•0YcüÊÍ姳hÎKþ|9Œ}UKö2<kÊ2Ã?´‚ÈÖ—Ç“üõ²´endstream +endobj +1093 0 obj<</Type/Page/Parent 1068 0 R/Contents 1094 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F6 9 0 R/F8 11 0 R>>/XObject<<>>>>/Annots 479 0 R>>endobj +1094 0 obj<</Filter/FlateDecode/Length 1915 >>stream +x}˜]oÛF…ïõ+æ®ÐÈüI]ŽÓ$ÞÔn¤Ô½È
MQ6[‰ôKRvóï{fVä)@Q4ÀñÙ]RÿŸ…à¿P²HâTÊý,˜øËôÏ—³8’æúï^Ù<9Š¬f$÷²æ!1g—Eóvi4_JjBíHÂ.Æ#ž9»ÅržêzER¶ž—{É<♡$E|{‰–ºœ 5#¹—d9ˆ‘ÜK¶8a$÷¡æ79e
GÍD]qˆ4Òª™ÐpHÂ0\ž@gi6H?Ñ<LXú^ŽéOµE¥‚ÔʽԪ;¡v$uÁP´'²Vš˜²Eã2¶%
šgóSÒèI˜œØ²Eª¨îkÐ4ÕêzJZ»}šë½Äa~bË4ÒŠyϬAãå<fJ4ÉN=“Í’SϤA1-ÜÖØ£ÑiÌÖÜEgºéÄÔÜ‘¹fzÈzl.SmödkÍ$Jzl.Qkîhëšé)k4(Òñ'J4‰Q +¢¤AsW¢¤QFlª€(kP9oË£Ÿ±-iPd3%
šåØ®ä™4(:uâ™4š‡'ÕpÍÍu?`ª3e&´¹$µ}zœxÈÔ¹LYƒâ¨F«=%ÍMO–e„zœx[Ö ±NQÒ 8»9!Ö Ë\5EÅeò“uYƒ"_¶e
š$'µb
ºˆpRùuYƒæz
xê”føã8}&üôYˆ +n'ÈZÛgSà)iP\RØQž’ÅîÃŒxJG‰-imP®éL¶¬A³L'ÈSÒÚ ½Öˆ’F¡pYpT¬µÈ‰NÐäÙn¶þ¨7[–*3¡e$‰Û|LŒ$RÅ"Õ ºÞ$6 +†Ç˜ /a.t»L5(6ÜzJ5Ažž’F‚@·øDYƒâ• +ÉDu+ÄK-
Þ?tvœP·$ñ¦7®g¶©cû^±cv&ÔÎ1ÛrØBZ‹Ø„2’ÇãÜ3g·pß“é×@lBíHÂ.Få<sv‰ûžÄMpÇ«°õ¼tuË:C\§š<ÞÓ 3ôêöôŒ$X®Nv$µØzþxÈÅ`SNM=M3½¸bŽµ)pø@&‘43”{bð2J¬‡³>'¨,B.ºWqôeG¡>-”shŸèÚ +'<KÝ'”ã#L…2’*=’<s>ñÝ®éa¸±ž µ³Pp#`@ñb‹°ðWÉvön=»ü"tYoõ‡ˆ4Ïd½±ß!Y—«]û*ÿk릳þkö6·ö.¼Þ\\ïêªd84uó¨Øçïò¥ê»ÁYÁñd¶*ö…ÍFÚá©êäúæÃJJóe󳟋²n†¶øålÛU$.lú q—E#7R¶Í¶~< ÝÛÕe$÷E÷,×mÓTå mGL¤è¥8.%[0‹ÕÖäÄÿÛu,ß.šv—øöæg·nÓŸ%D§á7šÿsæŸjw…Hµ2ŠôýX¤ºïU/¯OUã¼}»PøRu}Ý6ßÞHÝË¡¯6œÁy4ìM‹‚<Vƒ<w(,ª¿éj8Áß_›][läµíþF;-:+×±3®\àûºUoOÞÃê±kÏ?tðk_É®ª~õõÝåÍôCQþ-Û®ÝËçºìÚ¾Ýg]}_íª¡’ùóëN¶õ‰[
ö¹è{¸‘ò©h+µâ¾ ©ÇFßoïýÃxv³;nÑ“ÇÄ6Bi·“Å{vÌõ§åâò§e~¾ðˆñþȪê^ê²’;M3²G¹lŸnï×·rU–Uß»ý%}{è`P¶›J^êB®ÿX©[Ý4C×nå€nŸ¯ŽÇGC+½Ž×¼íl"ÙÅqÉã¯ÕƒúámçBR^¾¸à·Éil¿TÏm7èÖxwxü¡ÍÿßǪ©ºb'u³mÏÖ|_=eW½T;·"Å—U×À®êº¶3LôjÀ6zÒps!Ý¡ÑSÛºÕž-sWåSåVà’|Ô-+ûâùYm3ç–ȹx¨wõð] ºûúçÙÓ«ë[ùÚÔÿœýùýo7öäå‡üxÐê/AK‚ßRœ·««Ïï®ä®kÿÒSé}[ö8[‹©Ý!¾åÔàm,õù«‡~èŠÒ'Á=ç ~MHuí_׳ßgÿÍ}ÿ“endstream +endobj +1095 0 obj<</Type/Page/Parent 1068 0 R/Contents 1096 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 482 0 R>>endobj +1096 0 obj<</Filter/FlateDecode/Length 1048 >>stream +xVMoÛF½ëWLÓq‹ú¶$ßl IshƒÆºä¸"‡âVä.»»´* ?¾ov)[v¨Á‚Èý˜7ïͼñ_ƒ ñ™ÐrJ³+Ê›Á8ãÍÃק÷ƒéz‘Mh1_gSjh¶¾ÊfýSMw²Ÿ³u6§ùj‰ßSü9¦2.LfsúÆÂlš]=»ŒÞi:¦M LWËmŠoò‹_í‚¥ÆUפLAöîn~»½ùyóg<<Y¦ÃÃxS\Üni|MŸX*¦FjÕŽ}:2§É¤?2]ŽlÎwQ¡}pzÛ.è C•âQnMPÚPmƒ'[Rç¹ìjÒ¦´£ödÅu+ wèh;t‡‹2úPʳ@Óp2I\Xó6ÐÞ Ñ*%ëõbÁo(¸#yÛp¨´ÙQ÷|RŒ©\AÜøSZ™ô+ël¶ +Ñ@ûK*µC…¸¬áhëìΩ&Å[ôœ\P6‚˜¥ÞuÏÓ¿€œñ`J¥à8Ö3Úàzò•íê‚T¬£,Rw‰›˜ +§Í>îp}ÐMWGcÌè=‡èB¤“Q…å÷YÛéæ¢âÒÕq:ê3 +Êaxçûã%^Æ(Ñ30¶pªcôWøD&iI2ý KÓ9YqÚÇ…+Q~Ño’'Ç€{1G8Š·ÞÇñ|–Æñ¿þ3_³ÕjžfôRPý²ü1ø*åyendstream +endobj +1097 0 obj<</Type/Page/Parent 1068 0 R/Contents 1098 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1098 0 obj<</Filter/FlateDecode/Length 1477 >>stream +xW]oÛ6}ϯ¸ëK]¬‘¿'ÃÚ.-‚¡IW»Ø‚f(‰’ÙH¤CRIýïw.)Õ®švKÛ‰.ïç9‡7wGcá{L'š.(«FÉrIû[â—ÍǧÉ)Í–'ø|²Læd%°áô——Öv:Ÿ|±À¾3¥É|œL['_=8]|{àåúhøú”Æ'´.áb9¦u‚h
V^nizF¯¬^’ßHruJ™Ñ…*+¼2š +UÉäÙú<Íhìéxr’,àk°ÞH¤&ðãD½ä#‡)|ËÏÁÄ‘kÒ\Y™ycwÝÃ\9oUÚpÌ„.`S–Òyڙŋœ=Ôœ‚§É„ƒgˆ[4Uµ#g‚a&49)icBD³ewŽJCÞ”.,ÇÛZ‘y•É„V0æ²kÜŠó0–DUžÅsÉ‹dÖ–LNq±H¯qœÁ#UÓƒiªœR4ÆÔˆ¬tI•ºåpÊÅ~Žè”Û9NfÓ üÏ“%ÞQµ_Ëʤ¢ú»+ˆ:|«coKkš-ýJo¯ß¼¿úð®5žŒã€:_xÿ¸A&îÞ`S6\•¹…?m¾–a(F£ùé ÇmIÓe2‰%=lT¶i{‚þb>@™Â|Ò ½3ZÒƒò|&‘e¦ÑÈ$BÇI{/ís´›û(a„IâEYªL‰‘jQK2¶Ë¸È“Pñ.”½`ìÁ8¡›Á¥ ¨x0䤆û¶ú
ž®D +R±H©ˆ¸yùþêÏÕÅå›Äö½¸Œ¢\z¡*wó¬HŸ/AùïÃ×ó–S`èPÚyô'>ëø6@[€Im|÷œEÈN ä +ܲNVEáo9×€Ô̾m›ÒEŠÐѬ—´ºÊ¶n+3U(Šœï%ÉŽ9¡~’7&a.ÑT¨Ó2˜«¹e»¾s[‘6\÷üg‡•ÉD5DB©V*ö‚Ü<ë—ùîjƒ*•†ç:ÊH
êu2k¬òé= ç‚0p’-‰ÈmXô ÂIp¡`<Be¸“5µÔ}L|¸¼øëŸÕù«ï/Ö׌™VT÷ò|<E… º<;£u+€¶Õ—Øù@G@cPÄ=ï„ùÂ?…ðÖ[c½ +ÿ¹¡ÔøÍOtuÓîÍ„ïÍ–æõ#ô +1UîìF`.h@Á!ڹĕŠëoñã|ŸsqÎp‡nûê{ù¶ +¬1Q\vKK-àZä÷Ð^uÀûàø퉱Øk#»oö-Ðí
Í|À‚‡±HͤŽ iýÆànàë8ÒqD ×N+ÝÖ +endobj +1099 0 obj<</Type/Page/Parent 1068 0 R/Contents 1100 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1100 0 obj<</Filter/FlateDecode/Length 1403 >>stream +xWmS7þίXè‡:S|öù|#“¤e¦!)¸Íd&3ùN¶î¤‹¤üïû¬t‡1y)0‡Á«Õî³Ï>»þz”Rß)M4œPVõ“ÙŒ¶»Â}§ÓdL£Ù¯‡ãdHVÒ¶}œ~x4¶ƒi +ƒh;€}czÈm::KÒÆt4ÁË`ûj~ÀsïíˆÒ”æK„;™Miž‡›û4Ï:sCÂÓÆÔ–^Ì¿õÞ"§`ÜéIŸõœ´·*“.¾×:ê$ôqcÊQ.—JËœTÆzJ‡g=ŸU ],I¿Vzµkæ×R“ÈaOÎáq#ÙwŸºé0 ¸Î¸—ñ¾ô!ðî`’Œø]-ýB×uN·w=Ž
žZ[§JU[lhi,¬§½:¯8WrkS9Å$¡Ijo7!–ï_¬]ëéÙ{/å½'™«oàŠÜ}ždF/{é €€ü 9r¦”HF‹vðéÓ×5MFÃÒ'3üH´÷µšóVŠ’P#ÔçN HkŒ§^íl¯0™(zN”Ñ[(Ýså"§ðà(¹Fà÷·. +n(7úWO7h'ºcYä:.¬y&€>D’å'܇û½·í%;r/ìßù‚s J@O("î°µ&¯JyJ‹ÚÓR¨Â€ax ÷µŒ:™Ôðþ‰—γ&óe'‰Íbcr†ÊžýŽi¶…ÉMÐ ýª<¿º¼¸ü¯è—6öâ‚‹,“B·§1U:ÁI…¸²Ì” DTï +4ÖVë¹BÌ(W1‘”€ïœrQyíª.AYwÊìßg¹ÌªÊŸSçæìÝmhiM«Ù–º%e¯Äû0^¡@pü#GO©’v-*G_¸ÍxÌúãïa +Iw*1õ-o²u åøí>Öå 6\¹fû"eàbð-Û÷ô¸´àI +š£9c,!,£ÊfIØi×h'p(°¹…öñO§VZ<ZX *k ®Ý‚·ùêD÷$™§ÂX²G\°3s‡µ“ïúŸ« Ü +endobj +1101 0 obj<</Type/Page/Parent 1068 0 R/Contents 1102 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F2 5 0 R/F3 6 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1102 0 obj<</Filter/FlateDecode/Length 1277 >>stream +xVmOãFþί˜žZ5HÄy%/|hÅ•£Bºƒ^“ +UM?l콇½ëó® ù÷}f×NIàÚª-0YïÌ33Ï33ŸOÔÇ÷€¦CM(.NúQŸ&³y4¦ñlŠç!~*Ip>D³×FçãhøÚÁ`4yãíò¤w=§Á”–xŸLÎñÎ2!øî÷iwN–4¹ eµ£\Y§tJ.“d3QIKâQ¨\¬sIFÓÎÔYY=Êêtù †Î î§Ñ†;_‡“As2Fçð‹[¬ã\Ií¨ûžÂK£æ¥ÎŒuZ2›£®7ÐN%ùÕÔ@fê<¡T:Z‹ø„ÇMfów˜#ºÙp”ýã(5YSH—qÐÊ’Ò±©*»|‡0]]F¦OÝÁ)‡û[ã$î ¾Œ÷ùªI(šDn
%ÕV&ä®KÚò‹mQ؃\¸¯è½Ð„)Cr,:¶Ž3öÈ÷ýæ>]¶ˆÚ„4Å™1Ö{¯(—2€¸®”Û…09êBìh£4à1®…(Ötû\KëPg*…µ[S%ˆbc€V9Úª<ÉØ#8!®ˆ´9í]Ÿ·¥}µËÙ +
W)hn*J¤½l„ !'ÇÞ9’È|dãm· +ù®ÝØÝ.‘$-…MéXÛýå®Û‰Mÿ kÑ’kècÔÁšêÿ¹Œ´ÑÝžÀu»:
Qü©£îhéå3
ò‰Ö »÷vØcÕSSÚ`ãßI&ÜÝë…z=äk/™ž` *þkí,w¥ŠEn3°`qØì¹¹pÔ*°ƒÌ°Þ@n¾Çeñ3K,—`—Oië`_&ÁÀšÏöF9û/@¼FÒd‹Ït(4Ô‡ì=gâQ‚L`7Ô§ô³ +ªç$‡ç— +w÷S‰a••ò°þW@yé¯`*Éß°{ìÆï±c6äò•|lRær] 'ÏܵÌDC´®SL“ÒTî«Cê |-mîyð`b¡ñêÔÒ•Ã÷è»ß‡+¯To£9ûÍ
ƒ*HÐj*îëJ?Лmfh[…ùi”Æ·©JØì
7M7dë4ŸóšI0¤y÷’HDµêÀtCÑvÞû“Õ)9„,4ôÏëÃVÝÌïGT¨4sÈ„à9‹)Ç8®n.¼½[Ü,"÷„é…øèúòã~#Á®4ìź;Çë@+~±ÀŒä¡âÇ¡ñ«×³N£åÖ¦•©KDóÐö¿Ÿß]^}x÷|Ìb{hÆ~&ÐY$¯?uKk75…}ÿ&¿à˜Úªõ‹•rÒ÷àÞõ¬™ƒ VÖÙˆ&Óf7Z\~x{I?Uæº#j×–=Á’³Úm/t§ý9ïRÿañOÇÑt2{å Ïæß-O>žü³gkšendstream +endobj +1103 0 obj<</Type/Page/Parent 1068 0 R/Contents 1104 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1104 0 obj<</Filter/FlateDecode/Length 1497 >>stream +x}WÑrÚ8}ÏWÜÉKé¸@H;³„¤;̤”-îf;“Ù Æ–XK†ð÷{®d'ÄIv2!€%Ý£sÎ=Rþ=P?élDiqÒú4žEçt~9Æû!~KI+ÿàbto<8¿ìG÷ƃ×3®â“O_Ïi0 x…ê£Ë1Å¡r¿OqÚÙ›2Ïö*“]²† +qH$ÞÒhI2·’6ÂÒF9:˜ª¤mi’\$tæ˜,SŒ&å"úe*JM•g$r¬Ua²ÛHº»»ûÿ>éSopÜqÖ±Êá‘!› +M‰HHY[IKfågXQ$¢—©µ´.ªçG` sï6R3Z©G?¸´¸½™,oÈJ@ ÞUÛL8¬‹ZŒ$3iUHí„SFÓ}Ç”V•©ìLÞdÜF8Ü‚¬å££,-&îUž£<ê€)¬’¥Gùéëg +p‘3©ÉéVîdþRkø.x)ÆÀå·+Ö9æ..„†jJä2u6¢iU–h°´ÕvkJgé¢K)ØUÓï?nºþuqûsÙ¥ÛÉüÛd>è¶ø _}*ÌãA»e}. ÓSÞ†¤=wX!UQÏ +ñÛ”Ê8…8¡‚ Li=3M&ÏdI=Cø¼ +ܱÃÈD4ïÊT!´L¥µ"ôÇ!óÉL¼¹*TÈ"R˜rgZäzùucYD"~2ƒŸ¢†Úc®µ”«‰~±'Ó÷ˆ…Ǻ‘2 1:?´Ê–²J³‹E¶C—‰µdbšpY_†=î³Ö$6px¡39$ïVwk¨+,wœÀÐ' +f+“N¨ü•ÿçÆÉ/?7ê¶Tˆß+Y±ì
Üõa_3³!!CRÇÓŧق ,Ý´m#{K¤ =Û)¢¯@蹯M¦Â‘™Kn»9²\Vª½,ÜÁhLyðõÞFmt«®¯cÖÉaý\"A‰àð¤Z{¢ß<ûÌS²*MA?ç³Ø`‚¦^EZL¹äs–=§ws y¨p¾ï4˜Fì Ê#±”ÀBв—Àõ8E¸ÍÊP‡±Æåhƒ¸^º]üð¼8qþla¹Ö®Y'Ÿq'®KQ„«ijNÐú‚â µi©¶ŽN1Ï>臈2¬ÅãÊ*õ.nœz{Uùÿœsp×ø‹¥ å¯åßdÝDÔÅ=C™ñ÷‰t`ñQŒôÿõqÖT ëÎkŠÃVG’á|åû¦s¦?˦a¸W”Ækîh"1•{:ø«-¨;Öþ•$~-o€ +¶øŠÖ溬/zƒþM¸<£Ñø’¯ŒËÉ·« ß~ãH§ëãë-¯Ök†÷ÆýÏ<þËèùø<.qmŘÁ€§ÞÄ'ü§%
Îendstream +endobj +1105 0 obj<</Type/Page/Parent 1068 0 R/Contents 1106 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1106 0 obj<</Filter/FlateDecode/Length 1472 >>stream +xmVÛnÛ8}ÏWü² k}«í<ô!iR Ø\º±»E`´DÕl$R%©ºþû=CRŽ«EY"çr朙ù~2¦þi1¡éœòúd”h¾¼Èf4[.ð<Á+©&Ó7øù›ãùôõ«õÉŸï/h<£u 'óù2[Òº ¸hŸÞšüYé¯gëo88£ñ8N8vú % +í¶*ß’3µôª–ŽrÑ:üñÖ´›J’rTEC[Ñp2G0°°ÞJ„äw†ü¾Á-Sv§“]-eAÞÐFR#milß›= ZÝ]‘“ö‡´Á•Ê:ÏîVæÆ¡Ar;žfvãUevfòJIíÙ‡‰V诒Ùì="RïL#5T2ºrp öåáxPH½§ÚÒ
ðBø“kd®J%‹WîaJcl€-÷yü%~$YíUî¨Õ…´ôI«Ÿ|™ï©Pe ‘AiM
.§ž.|Vº@²ý#SF3̽¨V¢Þ€€%H5¡øºXÄÏÐ ¢!U-¼Âû2×¾z:}:ƒÄâöÎË…¯*>¬ê¦’5‡ÔX¤g{Aõ<o¤ßI@ò’HŒ%ÖA¯·È5š´ñLƒ²ª=!Mäê©h™F@CTp%Le +‘DRp¡J‘ûž÷X.Jud€ÃÀ˜|âÓ!‘£mØçäßé„ŒÅßùìœ +‰JаJÄzX…`z~nI¸€„\Û4Æzhý à£qF+ øÍ84Æ9ÅòB +¶ò¸’Åb¶ò{+]?e±1(!‚‡Í ‚bÌaT¿+D.Ý9Ì +ŸàØW +•.ˆ…Û'm¬SG@ÑÉ ®ÇÄÌ$ñAƒœ:&TÇ… +<¯öæÁ2úP’èyT•s((ÛHð'Ý @P¬@T¥ñÄ£ÞGCFäœb[äÀâ’‚‚tÏw2ô5Ñ%L˜µ¡¿×1ÍѺBJ€{'ö¯@„ârPŽÛ¹i«‚òDƒ‚B“é¤Vfþž‰ÔüÎ*ð4hDŒ&CÏÀ=ßB¿ùNù-çÞËI{gìs€Շê;´Ìà£ÆAýÖJ› mòŒP J¥¢r*ª
ô'*˜æö¥%Xåâ®ç<é=öNÖ‚‹ê;¢"¯Å3XçIHz‰M‹€l;ø‘&õ2QTß'ø TÐ\™À£Îè +-U–¢|¢B'»=̱äw·E9åϦR¹ +%sÏ1â0b:ç´iFI{ÓöòuÒÓ +d:dëÏšà⢇ÃûoJߧÔÓâ˜Àõ(”Ü5b¤ýÊ=¶Ž}º/oÑw©C˜hÀ…~‹œ˜àÌÑo4…Ñø®¯r}ã‡0Ù‘åÓ©k±@h¥ÀsOg ·ÐÐöá!J²%‚•¾µ-÷haèáAâºJ ر+´‡ +:GÏãõÍý—ÿîîoÎ)<>Þ\^§ÇÏÖ7<݇ËÛÛãa¸Œ\nåHs£*åÓÔsÃ¥€4‚¥÷ﮂHÃkG>{¼‡1—Âzx¹DŸ°äiÍ2ž|µˆb(@]qaéf—gžÆ[Ý8þø.v®^*awäj‚lÜVxjl€€ž+ÜY€›0åJvLévÉ•Œ{‘«7VÂ’g%5û#·iT¨Ê¥—iƒÏ±¸/§ôf:÷éêòîê’>Zóšk“·¼<æpÊÃîÂp1ºàö6¶?þ6[̲Å|‰õïÇ~u³>ùûä#4dendstream +endobj +1107 0 obj<</Type/Page/Parent 1068 0 R/Contents 1108 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1108 0 obj<</Filter/FlateDecode/Length 1381 >>stream +x…VÛnÛ8}ÏWü²-ÐÈ×ÄN>¸ÓHìl¤n·Øî-Q67©%©¸þû=CIi*X$q,q®gÎÌðß³1ð3¦ù„¦—”–g£hD³««hA³Åß'ø³’r,ôãÃîñ€ãÅ8ºhEg—Ѹ“ÁlÔ}´²ãÙ(ºê›}Ÿœ
o®h2¢$G$—ó%YÐÅ›ôÕµ{mœÒ{:™Ú’åN“öIÚ×É?Aw<otϧ³híWkíÉêÔ+£¡ÇÐd]²PrPŽrUHJöBiG‚ +å<™œ¼tÞ±GJ…¦JÚÜØ’¼¡'Q¨LxÙD¿ˆ&¢µ'Q8å¢h”áÉ$ì>ÊâıŒè|<mÂLEídð‰Êš]!KBP*'å) +V„>‘ÑÄ—•ƒ¯ S ç$„Š‚½à´‰ß5›€-6+vʼnŽÆ>Å^¹Ò2jßM.£óY»ƒ©‹Œ2CËÛÛA°ü†”OÆfÅ8˜£F,tOðm•Ì£TX™×œ¦c8ª0€³mŒFãù÷JE%vªP^!/ÔXål´õ*…-Tg¡6áz9©3*%€#YB0æÄì +Ô¹ô|–*µÆ™“VCUó"}ŒhY€>Zxõ„^zÓÀ +Ç¥81öó/ó«‚ûî ~{õÉÀ£Œ³ž×8Ì”o¯û¼Jšæli€,*U!lȘ1OØŠ\RÐS{×7ñ3^\©GmŽ¡ŠZ vÐ]ÅèŠ^è &}`Ž+wFTθZýw¦um5{9
|Y
"ú +<ÇD–ÿð²Uä¹D»ŸpḔM„'Cï·lxx3¢+ž¢ãh6Ðùä"Zà?FÆ_ðówç;‚ß¡ÀeÉ…~ª–•±ÂžÂ¼uÔ—¬ˆñŽ†°Ò?²Rd€˜ïè${½qÞ2ñPÿ´ŠWª1-ãøóÝŠÀùx½Ýð"Ãàß>Ðí2AloÂ/ïÞ/)þ¼NVÅ[ÈØÞÝ-7×qI;¬ãOÛ/º^_Óf›ÐêÏuœÐzC«åÚç¡óÒiu³ô¾°E…÷@ƒ©‡É@KkAÐR:'ö Ó‚[ìã'ÿO"8ŠXKž·JCÀYn½DÅz!×:ÇHÖÀcãí¨Ê•Å`K2}|¶Dë{ +L´Ò™¢QÂhj,"òÐwÒS]E$÷oéN€3˜tÍ`ëùJŸƒ•§@ÚfÃVF¡-8ñà¥Yßm"¨0¯ +¬ùÛ·ß;KlT¬f¸Cˆ'm˜s×›¸½HS ²ŸEÕàEº=ÒñÀ«Qa${Yt´o¢G:uðу×,…ïÌGmÐ[ ÌíxUQc^~-°€¿aä
xTWˆÎî€ýýr$|ñx>ÅjàKÑù”©ËôfGãæø§Á‡Xœ[¦¸f͆x•šêãU»Šº(BvoxpEîWÞ‰¿7´c ¸ÙC,0•+Š›GCÍvjñí*WûÚ6c7\¸ +endobj +1109 0 obj<</Type/Page/Parent 1068 0 R/Contents 1110 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1110 0 obj<</Filter/FlateDecode/Length 1629 >>stream +x½WËnÛH¼û+¼¬X”õ°äÈÁNœ…¯ã…ø2$‡ÒÄ$‡™!-éï·º‡ôƒJö¸6,Kä°U]ÝŸG:Åï„–Sš-(-NãSZ,ñ”æçK¼ŸâÏiÊåÆ|9‡7ÎÏé4î_Ü`r¶ˆ—ÝÑÙY<{1rö>>ëmÌñV¬_®Øby~ñ—9M&´Êââ|I«LîŸÒ*=¾µþ@ßmëÈ—IœÚ*§ÜšJµ§DSaSÕèŒLõÞ~¿ &±u<ÖM.õæé«ûåÉÖ»1[*Æ^•‰& O¾§É<6šMb¼ÍŽWÚ74}kø”FSŽûø[[Q³Ñ”Ú²TUFQmª5]^ÿyõퟫoåΖrâøts}u»zu»ÌŽ»‹é:§½m)³Õ
uÞáo2wð¨èI&¼¾¶•×l¼â'>ݯïÈÛ¼Ù*Ào<U¶AlÎé´)ö€Â7ª(twF§‹#£Cª×[STi ÜX®!EQf=ÕȦn"Úš*³[²!y¤†ƒPpöCÛ]>ÈVJí½ZkòjÏ@Ep9ÈܶU‘í¦4…r¯òú|{ÿ’N0Ñc~Ò‡ÒypzÉÚë¦kÀÔÖ{“ žºˆ…äÓllÛ{ÒU㌆ixbj½vOÚ yiap÷„½&å}[ꎬ÷zâ¢à,:]* +Me’õ‚'C)Õið¹™?7^2¬§Aœ€»É¨;$Xg†ç4g„Ïû_ÛWà™2äD¸¥LJ°ÀÚ{ZÜËYΑ%Æú‘÷h[ÁþÍõýêê–§&GG#óg©è??òè
Xé"ÒÊ_É^`
=·ž¯£™ö|HÖH3ÄSybf„ó¯&ß +]Êœ‘l ôÆà†L׶æv¡e1]Þv„‰Øx2ÜÌÑfŽ{1>¼“ñä÷è;’FâÅøÀ{4P+‘Á|‚ºl‹€‘6VæÝ-„3ö!zÔ
Ñ),š9lK…'½C¼’§yëPTµe†[˜\a–n7&ÝH–²Ën¹©d¾‹˜`•J^˜”³Í "0¢l6Áƒƒ[ªEa´¦~$õØ,»)ÿíñùž·>l|³)V»³øÿ±lQ÷–
n—ô‘.nnú(°“…s»Ý.~õ7ÞïóX‚e +endobj +1111 0 obj<</Type/Page/Parent 1068 0 R/Contents 1112 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1112 0 obj<</Filter/FlateDecode/Length 1506 >>stream +x…WkO9ýί¸›/Ð y‘À~JWH[6£•VBBž'qñØ©í!Í¿ßsíÉ£SZ„Âd|çžs|ùz4 >~4ÒhBEuÔïõé|<î
i|1Åç!~¤yübt9êßúb8¹Ä{×ÙÑÙ§1
”Í‘dr1¥¬$$è÷)+Næ¢PZ…Í)YGë¥D_å…VҪĆŒ”%K¢(¤÷¤m!4yé^U‚pȈJ¢8ou”5‡§ùyí +ù!ûrÔ§î`„–²ò¤°ÆÈ‚_÷=z:¹·AþAa)©“+S’2A:T&=Y£7Z ‡,xH¥œ«Å›¦Zh´&c íš‚sáÛÊ®]å¢x!Q–(Ч +È`" +ÄgÀöT¤»]5|9£ë]²ý³ÇTÕgTõ«ÔMâXxLçÎxp+Ö¤¡:(²‹ÜR©im=SåqT‘œgŸ.i +Ö¨Œf¶e«¶ÄÚC51Zù £4Aôº\må9mWþ·U’¬œi!DT@@Ê5³*UµÂ7°ÐÈVÄFDßÚù\Ät; +endobj +1113 0 obj<</Type/Page/Parent 1068 0 R/Contents 1114 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1114 0 obj<</Filter/FlateDecode/Length 1612 >>stream +x…W]oÛF|÷¯X(*‘dÙŽäi€8IMâÆj‹ +[Ç™ò(HžÛ>R”û ¶£ÈûHñ:vº~6à/e¬¥ v‡ñq1CÝ×…BŒøö6 +Äéë˜ØòWy_¢ðöT{X;^Ú{µð7éQ¦&¯vž"SnTn*u
þ=£±¿–ú\ƒ0#Ô bdAôƒs:®óy]7¨Æi8nˆIlËTÚ
>•åz+•ôdøÉ̓†½X¡ži,ðCz#ŒH¦6°¨ÄnÅÆÓý™z‹â {ëäw¾ÖÅý)šš“0PàceÀ„웪²®–D¾>cÆÃÎ+VÒõcèK׳ ñ1|2ÍQÔâÈLòü”©Y7NI_ +4V`;¦$€Ter¡TÈA©xèA›ÛAõÝcLÙ|Vd4Ey4)ÔË0ë¨Um_œ^D+S žlÞtRÂÌZmÊ5¸ÅY¡ä ›Æ7-#XOZí +\À΄tw<b»azÄ^]ª<þ¦xç”Õ›I Åvµ‰4À*Ôº©Á+‰Fmžà‡Ýv3g¯Z÷#]c¨±žÃÌZûûÓàºZïro_0£¹k˜î²%‰F¦*æe j)òÇv¸@G©–Ó?*Éñ<ç1XrÃJ’µƒ.ÏÒV5ö +>lw£„‰]IcËtÜf&ÎD}Ãênyu—üÿ
L+TœÉý
ØicuäQ“” +endobj +1115 0 obj<</Type/Page/Parent 1068 0 R/Contents 1116 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 487 0 R>>endobj +1116 0 obj<</Filter/FlateDecode/Length 1597 >>stream +xWÛnÛF}×WLõˆiI–u `´Nb~°ëÚJƒ¢.‚¹”6&¹wiEß3³”,1î%AJÜÛ9sfü3 >þh2¤“1Åy§õi<šESM'xâ_¥)•£Ù_xq2D£—^‡'/š‚רßü¸ûØ™
£!
N§0’Ó`2Åð)£ûÎ +ë‘z¬Í“)–xúVkç]—lEÎä&S8婬ìB-²
åZŽüJyüд²Î7V^Ï¿vút48Aó¤Û«Øã’¦'£ÈÇ%9]=™X»ˆÞ¯tüHÞâ+M&=°UÕEÁ±ðu¥ÊRWî
©"áƒÎ’J|"]øjC¦à»-ß•‹T–Ù5¥¤Èu¨(ÎîÑCÓ«…öoHû8zxÍ&Ž/g¨y¨äÑ ƒDæ¨ÍÂëçB
¹Ð½»ZüsEsDN6pôö©vš¾¿¥üywõñþâî÷‹»‡‡ùõí¡É^D +c¶j¹•âº|öôà^D¹zÔp{rª+è ÓX-¼Ü4KÊL¡Ù-í¬q$MQãv8Ø\ùW–@ŠÒ:g˜k;j2Ùج*^yBåÉÖx`æ’Š +•ã´e¿ò“’*Ps¾GJ. +j¬(7|O@ñ-`þZC«šÙáXü‚MȤZ*S/L»4Λ,ûh¥”ÓÙ¶PAŒ5R/I²å@‡@£•zBo£H{
Ñõ~Ç#ü'!òñå³0–•N5tEsO¾š‚žÑF»C>õ8Y]ˆŽH€<¶•Bê+
ÙD¨¨Ê×å±uph!A¿„ꆙ=‡B¢(\Œõ ,ÂL‘}R5êÍ3‹çfÀ³¹™`Þ3«¬Å•MÂxb~YÈ +7òóèÞ«óÃëªbdÈ°E¬‰Y +1ìÀ\H›Úk•–ߎ4D˜ÛHÝ +ÒEÜ["0ZLñ¤2“ìR— +q[³_/dˆm [ïG'£0‘ïEMÐò‚ äDt?ÖHš-ËrÅÍ%BBÔÃpÖk'b.9B9¥2ªá…‘C`®0icæF4&8wNššØàhèÏò‰ˆZuoXxÝ‚Ýx…yÈÂ-ý‹üŒlµ”•@F)/¹¥Õ‚ƒifÚŠµ±ÔWÖšŠý›[Ù€ÙçLõmµ„}O+ïË·ÇÇ»(ÂS“Àvÿ9çÕg_¤Ã*•ØX¨Ï–ïEŸJÌ0þ) +endobj +1117 0 obj<</Type/Page/Parent 1068 0 R/Contents 1118 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj +1118 0 obj<</Filter/FlateDecode/Length 1355 >>stream +xVÛrÛ6}÷Wì£<QâEûMMãif7mÔÉ‹_ Q“ +‘^dü¸Es0ç6…9œÎ¨Ñ2H8‘¯lÉWQ*-ïyšë¢”À¶¦h87RQT
Äý]«×ÙÏJ7¯´}ÿyöñ3Ò9ªÚhN‚a¦`
rd“0 þŽ¯C2—°H®±2óÊàˆkÑØftù“y¡]
¡™„^¦3ʱ¾[’É:O;/à ëÌ*[0H0¤_9ŠÓÊ´©•;‘©˜¨³sS£÷êÀ¤yTÚC/+eYHkÁhgV£Ï2L®{ßáÀÙ¢÷ {%Û†“ÔÙTFKœUeݢσx´ºˆî„öÑ ÍæŒÿÇ-ÅÁë,Au)f¦P©”宇í¤Þ]
8Q8YkD}„Ù
<:àÇiºÚE= +9mñ§ñ2X†KZDè,pØ¢}üVÉÓhAS´"_ËÞl¿ý‡ÑŠŒ)š=|¯Þ»ï•lØ+(H©¹ð.q¹²L“×GÔm9ÍÐ+}ÖLºt–ël{hÚ½3]ëŽÌ§h¹ò•ó†à¥<†/ÎcÀ‘ýG$ŽæÿÀÑ֢æù?Æ +)D3ڣ묃ðŽ¦qØ6§KŽÎ„aÝÙ)p"wFøÝ©” +e}E;Úd¸±Pˆ+]£‘Ù€äÁ× +3zÇGâ¤8ÂÁQøÔý„hõ8AØ}/L* +fˆ†OÿÔSÏÍ#íå. +Â%²êpvê°3¯ 2YT¶ðísB¥(a¼rîÄiæʇ‹0·0$Úpe¬äFоÞûlòWÄMþDVµ9b~6¦eÜ߇ÉEÖÀÎÂq_¶”ÒÆa‚ÂçÎôÉv“©–m' .zÒ/Íc;|©é³tˆ‚±Q"(žy(!?«üdèé‡5¹¯25x'¼ÊÊFã'}HG%ÎÎ¥]ã§Ïhrâ&cgÛ×yZ’vmÒ”ûo×múÈßšó§Íûþ{Àè#+!b4úA'‚ev +É ô©.¿`†Ç9ºSÅIaGKb/hÄÈÛ›¦¦§Iòt‹A”ª’Ón¸§žÑS $€
»ôÊ ÂÓ!V²V&{ºõ–&ï1öZv!ôžSybâzÕía–€uÒ"‚ëXq¥G‹Ëeê å¸-\|‘¸•£¨SÜ<t[{”Ìï×ò~.îÃè>NîË‹p?À§A|žõ¾©¤²Aéå„ÇÇXŸµ&Už"±ãe6(ʼnv¨CãáÈ¥ÁgÖ%Tž¡VAq¾ÛÛ\UÀp/Rb¢éÑŽ–ºñ©ïPÈÙ&Í!³U'ò~t.CÔð@ÆP4S6%~ +endobj +1119 0 obj<</Type/Page/Parent 1068 0 R/Contents 1120 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F4 7 0 R/F8 11 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj +1120 0 obj<</Filter/FlateDecode/Length 1616 >>stream +xWÛnÛ8}ÏWÚ‡MZ¾Ä±îSÚl›n¶q±/y¡%Êf#‘.I%ñßïR”%ÚK.9·sÎÌøçÉ”&ø;¥åŒÎ”×'“lBóÙy6§ùj‰Ÿgøo%•áÅV/_¬V4ÉÒ»Å/0¹<Ë.ÒÑyvÞ¿lÒ~IgÏVdzGÉb°Ýq<1²ù$[F«×ÝÀðøóœ¦SZ—Èo±ZÒºŽ'´ÎO¯/?‘( ++Sz›ÑÒ¹¤ÞSé¨nœ§¤me6¢ªÔhõ³‘ïI肶RKžZY¥•êIT‹÷‡wë'Mϲüžî…õ*o*aIi/m)rØñ;Ilu-µ'Sâ&}¹IQ-ڡüÖÔ$HKÿhì=^i±•áÚ^Z·—¹W2¸½6 +é¼Ò1ŽŽ³´—B‚Æ5j\D`b‰s(O +ÿ€K4HW`¼*C%úÌc°w/ìVú£X2¶IÎCzPÀ¸l©õQh 76 +×bàtc(rUðÀjéwñ1A©£ïW7twú9w%¼ØZQS2|÷Ž±†9g+Ñ`ŠÑ±»qÅ_Á·2¨M'_'·A»
wŸ0Û˜þáúµÈèk«öžqECW +Ë<Ü„„@Ð)?ïhFW‡?Ù‚¢uÛÐ:¡s_ãâ'á—å‡çÿ"ƒXi/ò{ û’fx®S‚î™Éè’Á|/&'º|ÙWÊ:>–vÈÞ5be§¿%… ¢4.GÞwžÆ+Ý<Q«C4tHÂ9‰Ç7᛺©c/ks¤Í`‡nÁ7ŸCßaÙÓx7,·Hí@;…Àêû{ÍÀq³SúWžSûc¸8cn;YíCÏäJ·±©÷äÀ&¿ p*§J>ÈŠUÈÄÕÅ#C>©0!ÀaÿÂÌ£¶÷FI½bb#Ñ°9ס*±©â¼žÒ
ŸÇôèl{hi±ÃfÜ#ÌÇy>šñ<?=æçeUÅ¡3¼R+ w÷`Ç¥Ãü §SË3<É™]ÑS)Ñô*£·mƒÍÛÎ;Â2Äû"¹›-–-S”áe·$gw§}¹bEðÈq·3M…ñ +öö©"˜@G8ì™oÏÎÛ&Ǿ&VÐ÷Ú+„z6Cγ¾£˜Ôþ‰ŽÃ:ò~£tÇI,ñýcuSy…YY˜ +:Jf—Á<Ì¢ºØUÑZÒXB9*%-“ÝTR`O¶²ä‹»šäsj‹ Gp¿•Å Ë{š‘£å×H;‡–›ïz<Iw<9ö¢g8”'ÿ Ƨ¿Ôµ +‰^™¼áÝ($ÊwGÓ>†®Îh´œ€yj³a¾œgË>…òéßûk}òïÉÿØï®>endstream +endobj +1121 0 obj<</Type/Page/Parent 1068 0 R/Contents 1122 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1122 0 obj<</Filter/FlateDecode/Length 1702 >>stream +xWmoGþî_1"JTûàÀR¥•ì4NÆ/‰òÅRµÜ-°ñ±{ÙÝ3æß÷™½àj”´‰dnvæ™gfžÙûvSÿch8¢duÔ&Úþ°|èÓYGgt:ãïx2ÂßVÒÆ}o~TÆÃxÅ•ñ +¿Ä•ÀÆhVþrÐÙ~ì22ÍUŸZ9ÊR‘ÓZé™Òén)R³þAôkŠ|k»Ÿj›—¥qÞíoa¥Ú@s˜öFZ¬$ŠéLV|Ÿ›ýøetDÄ€œŸi G*¥tVåÑÐu–~mìc“SÜø2j³ QLÛœ =œ9À@n7‰Éê#MŒö6Ov8þ¾'í“Jdí~Oïò”â˜Çᤜ‡“Á8Ì:øvš +ëä1I‘,ÉÌ ©9I+™,`®JóP¨žÏIäH(·JxL¶HT¦<7¼Ði=_ƒá&‡wkeâ³Mé0ðè$FÏÕ¢°2jŽGÑ)?¹òä–¦ÈRšIÒÆË´\h +H~¹×JÂ.@7£r_‰Ç`¿BgÑCW•šÙ»<«ú¹KlÑ*¥†p3K½LÍð÷ßPJ9ÃVÛIè>¼Fhe$Tdž‹ s‹Ö͇>×ÜM8íEÆxCº’JGØma¤º¦å›RŒKâ
œ1pž˜£è´æÂBú°8Ð>[~ÐÜòeõ;¥Þu€N3–à¬@ú¤Wgñ`µñ°4¡ëyx!n¹QÚ“òuO´QçTÕ%9#ôf·3VÐ 3ÛÀÇOÛN©¿ç†=æžÌF1Y6꧈ÏuWº•Ibˈ³_/:}fÐ#üÌ…9ª½Ô´î4lýh&9nÃÞåŠÇ,|XðÃÓR^nÚÛÆQáªn¿;+û|òma\Þ^´&æÂÆ2ÇbfŠR6Ã(™ÁÂr+ƒæ^ÄßÁ ++)ÊnDe (¨è¢œh®–|Nd–9T…n½W…Mpkú)2֯ص—i§7°a8DjV,@Œ«œäV§i¢N¾Ni‡J+1ÉúÊ‹B`¬8>{hÅÊT6 ‡ª De°LÂ{/-¹Ø—IŽ!Ÿ¯;ŠqE^bÀàr<¹X=¿,±Æ#¿lÅlŒ¹} JØèÛŸC‡‚#Q†cñðüaû>‰¬`ö1aîÐq®^Àˆø$3|‹èª¼vò•µBï&Qùbn.^ÐtÞ¬ƒš +&Á™•ðÊÜÖöå"ãÛD½¶ü&/A¶Ã.OŠrÂ\—ûªÒ·íe:…ÁÜd™šBZž‘tÖàc\á0nCü°ÆeCþ.ܹ[o'ƒ³h‚·„ûüg¾Öš—8-bôÛwÿú
áúüÝW7ïoί߿í÷£_éžKhÃ/FÃe-´fä¸ ì˜×¤´^*^t<dǤ–V%t])1ãÃz¬á2¯ÿƒ×A€ûQèke…º.ÝÿEýåöÓŸ>Ý~¾{Ïóïå¸^ãÚN.,îÒVÛ·ëüBB?Äú6Lš@ÉNK¢»0úՌǢҜüQÝÛ8ÙIäÁ[Z‘½õ¸S2³@YKöš+Ñ’îøLÙçGÃ=¼ÏMðÑ»œT÷ŒxtÎb¼Ë£É,µ´{~}qNwÖ|Åe'áòs:‰GxŸédÜÇËpÚ8Ù¾gýàæ;ŸFc¼>ã½9íúìûýô诣 +endobj +1123 0 obj<</Type/Page/Parent 1068 0 R/Contents 1124 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1124 0 obj<</Filter/FlateDecode/Length 1989 >>stream +x•X]sÛ6|÷¯¸ñ“Ó‰hI¶%§“vÆNÜÖÓø£–2éC^ “€’õﻀ”BÏd¦MÆqe····wô÷£ ñgBó)Í(ŽÆÉå%í¿˜5þgL³ËóäŒÎ/çø~r–ÌÉHÊqvŒ§û/ñìt6K.âÙ)ÎwGi6MÞ
?¿^þ1¦w´Ìi’œŸMjž\Ì.i™ù«Ç´LOhðß—‡§¿ÿ|zøüø~"§ßè¶vÒÔÒѽ¨$=I«Ë4öÍòn?§É„¯…ûGÓ¹³ÌNnÙB·eF+Iµv2#WG¢,é^ºëÛ‡U"-T--ÒX+‹08"•!½©F4KÂR>&±Ò™Ð²P–øoMaÃ#üY2EV'©®ÁÇä4-?<žÞ>â u*œÒµ¥m!ÁÎdŠ?Àv”ìñ+Y¥j@1ÂiC[°™0|*9$=•.=-´u–´ÄG>Þ/(N¬„•‰´c:ˆ-¬Õ©LÈV¹‚$H àYf¤µI¼q:KÎ9£Î[ƒÀ†jG:§´Få*õI
y~ëQ†ú@Q¾>'{Ðá]áN(W%@Õ\IÜÈT›ÌR¦¹nÔ½Q™$ʇ»2rnäv
3”kST¾Úwú¢êLo-0+Yƒ³L6Ñ4ÈÔTj䀇q›¿ +ÃÓ]ˆQ|¹k$G¯pÐV0˜=|+¡êAž¥^)c’&!ˆ:G:!V´ãn_C†#âC>ŽDÈÖÑjÇšf¢T½Æ¹Rë綡¯'%Hâw¯ŒY +e}Cx”dÝV*…†}4µï&Ï|!6²ï+ß|hþP¿¼Ÿ¤¿ƒAG~ƒ˜F~o%z]†ÂpöP˜(5d†CFº‘u
ÒaÃ'%z‰ñí¹‘6¡/…‚æ%(DŽ)€dƒçŒl ™š±š‚™9;<Ì«ÞYâ„Ïùx«ÍóÚè¶9FÏÒq(õ1"xH¡¸Ì#o-_/^íë‰äXhPddÕºöÇ't>H +¢hå¡6a³Œ”]
+6’¹¶³vÜòìt‚Bè0ۆʶЬ
gtyXŸ¿ŸVÁ‡v¤ß)^3µîÑP|Þ@j£m +¹ú£Ÿ7Oÿ€ã=??Vã ”ìö-÷à÷VÎ"’'øäÏ%àŽÇíš: +‡£æÀ$XñRA„ÆÀuã(ì«Ô5lo\y×»zéëmd…ÑßYÓ ;x+Ö-J +\Aõèo§S0
øpÌ
܈ïÞ‚é.>sÉñ
,î®áˆÁ‚q˜ÿò@`‘ã¡ÐÍã ò}\@ú`_Oð·]«R¨¿i=´ŽÿYøÝ€Õ=
CÖ©hl‹Ý¢õéÓ ú¤×°aÇ|Rõ3}Bè>øˆsë=¦!ª-¯VGÈž†qóù~D}óâ`“2dû™…à׸\¤r˜‡(f÷3-& ,^ý/nîÖ>&…a<ŠôKàÍKZˆz[öøѾX«Ý ð=îëÞ˜Dp +‹[\èù¶Ã®Šòƒâ<<®W/¶î8ŒÍ…¨VÃU‰W‚(Yñëçàùjˆ;Žvrß'3ü&âòŒfgÉtvÁN±¸º»¾¢G£}?ê/5‚,“:êÍÇømÃÏlè|~žÌñˆ1›Nøé›åÑ?Gÿ\¦Ÿendstream +endobj +1125 0 obj<</Type/Page/Parent 1068 0 R/Contents 1126 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1126 0 obj<</Filter/FlateDecode/Length 1742 >>stream +xXaOãHýί(…/Œ™$0!ŒV'w‘ ÑìV²têØí¤§ÛÛmr¿þ^uÛ$p×3·7Œ±ÛÕU¯Þ«ªÎG}êá§O—:Rº9êuG#Ú_ì +z4àr1ºÄõËpØ‘•”]/°¼o,ÿ|wEýZä°;áÌ?ïÑ"=Y¬%Ý?üíÛ|1§\òÓâ÷£ÏwÔï‡õgƒK¬Ç2åüsÂïÚÕ¢(vT˜TT2#¥éaNß•ÎÌÖÑlApÊXôà ›ˆÉÛ<¹ùš$ߧ³Ù"Iæ¿Í“‡óA’Ü>Mÿ1yš'ÉdqóÞ‡:ã[=:ëŸwìNjt%”vTÁýé#³ÌJçx¥¿µéZiIZl${°Uº†§¥PÖu‰ƒþàTƒÁÇ*¥ÍÝ 4Y]O¿Í½ÙU†ýQ–J¯ +U„ÃŽ"Ðz³ˆŠ2#S•«P[ör½áÞ%¥•£µÙþÐòÒbT\³Bôøô¢R`¼”kñ⧆ЩӋ²FsÝáÙÁ´(GÝæÈYúá·P³P7’€Ó)©Š®–Ø× ôÐ@—,#µÏŒã¥¼ï2¾›´Hø^lÅεŽ)QThW«5ïè© +¶D탛(÷[MÛµìßó’¿(‰.ôç™2÷‰Û±¾:ÇÿYOa @áØžînÞF.4ãëE\ÒÄsÏ–ù\О½=SöU˧܋‚±˜xrŠü´xÐ-º¥QØ·,A¿ÎnΖ‚uÆHnt_G¢ §LnQ¨á¥¦S„ \’yÄÅSž,<=¥bN˜(áÓøþûø7̧‡„*ÁD"a£Jyäb|æ4W܉:Ëâ€ZPlùÕÀ¼6ƒòZã›ÄGô;x¦fÊB“êåÓÐ!f™¯Bì˜C-Gñ(ëe¡Òð|W¾†±Ô·sòû +š²•$…СC¦’„g´D¹wI¢±µÑzdã#Iƒ´•+ eáî\á$€Æzô–Ž&ÿÌÜ ÎŽg7áI=c‚Wåñ»! +endobj +1127 0 obj<</Type/Page/Parent 1068 0 R/Contents 1128 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1128 0 obj<</Filter/FlateDecode/Length 1663 >>stream +x•WïoÛ6ýž¿â|˜$²%;qR`’ØÝ$n«+ +h‰ŽÙJ¤*JNòßï%ù×â-]ÃfÈãÝ»wïŽ?Ž|êáŸOÀúgG=ïò’6Å~ôhÐ?÷®hp9Ä÷à"ð|*$-°¹‡ãëvs0ôúífh·R?¸zûþ•ï
ÿ}â-OpykÛïã3~¾áJ÷c®(\ï
ú]Àùó‹K +çq¸CÍ'E½I›R”Êh*
Ù\ÆjñJ‚–ò…V"²)ð[}–J—J?Q¼…ˆKYx¿†ßŽztæ=ܲ1~hÂ%[LSó̆ä‹ÈòT’JÓÊ–…(¥%‘¦dT.¥•ØPJmáýpÈä¡uò{w>ð®ðÿÐ],•6mütòð8¦“ѧûZ–ϦøÎÑ ~ÐSaªüK£ÛwÇ5lóXä¹™$‡«?8^_´õåÄ,RÂf²²XÉâ=7}¶‘›¼JE±e®ŽagÁšªˆåOØö6©‰Ej‹Õ–-‡ÏÖo†F&2q„@vHé8y(€Cëtr3þ}2ýûú.?N¯Ãñá“éíÝçшFQëaåÕ<U1V²¥±¥}ßq—ûŸ8;žŽþßÃWOPM@HÌÍŠ9ìH~ê–Zš7)¢ØèR(
Þ×Õ'ÒƒV×eèI•–˜oÙ†Ç$tBÇ-Xë[x'®(f‹òB¦F ¿§Î»ì@Û±AÊ6"¡ÀkàÅBÓ\ReerÐuhKŠê.è¤Í© Xj”|š¾R +š,C– RÄKJù^姇4ô]ÊœÏ2¼ºÊæ@Z·– +ƒßÄmeYå,f¢ýCÓÁ×ÔÍBÄÎò² +ý£’(8v¦žYpžý€VÆ +Ó‰.e@íy© +ݺĂ(Z9ßçIªœŽÕ-§Ò—ÂbÀšžÔ +Ÿ0›Jf»Ñr'¹vs‹¹¨å'4ki +endobj +1129 0 obj<</Type/Page/Parent 1068 0 R/Contents 1130 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1130 0 obj<</Filter/FlateDecode/Length 1774 >>stream +xW]oÛ6}ϯ¸èS +8òGÛ°‡diÑ +YziêÆHE}Lü!ìeˆ»cp.\á„å¡Cw†ËZ‰ÁO."kµ+$(Ýìª0ÉQ8x¯NX©¾‚FÎd¦$äiÁ!IZY¬X»|t]<@ãYD
Éû—™˜"ʶÐ}îUµ +µ< +endobj +1131 0 obj<</Type/Page/Parent 1068 0 R/Contents 1132 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 494 0 R>>endobj +1132 0 obj<</Filter/FlateDecode/Length 1936 >>stream +x•XßoÛ6~Ï_qè“ÄŠå8þ1`É’¬š¤[\tòBK´ÍF"]‘ŠãýõûŽeGi±-œH&ï>Þ}÷Ý1ߎRà_J“!)+É +h_Â6ηF¦Òïr²Â‚ÅÎ;Åbà¶ÆÍÖÐVìì/ìåÖ~/4Ý^ØØšSΨ?ß}øíþê:>¶Ñ +¹Jh¾†uüÒf«™/¼énîmøcÞd
û“5 +\"3"Ï9wÈ\UƒŽai:B$œ´
ЀšñòžN²Ìj¶áÉr6òÁï>üÈì¯D†à†ò´›B9²–>¢çcZàÕÕõ=É<˜uŠeO÷®+•½£©÷AÏ¢¨%#dÛºp¨JaŽ‘ûj +P©ºaÆkeòèd~â·„#€î}iXÊ"x²°ékµå£¡
‰l
o™Ù a‘Šñ‹Ð#¯<ô[•UÆš¥c*#n¢¼O:³ÀcC8ŽX3Å‘b¯ì?zlû@t%(c)ú¹Ä–UŠ]Wr¥ D;ø®Ð|qAá"8㣢rÏÌÖ[‹¢Ûm6œyBf¸ÎBOò^E{¤†t˜ÆJB€TÉ„M_+´D!“ +ÁdiðÕë¢èœšË‘ ]°\Û ÷¸%>œBW¥•“ÅÎ[´2&'•KÁb¢øt§ˆZçèt¶ÎÖ˜0ü Ó%Ç©•ËymsL@e1N€Ý¾Ûø @T¦ÆPÆéSÖÖ^/âø6{i\ì[ärÑÈo—Ö<ÜE–ÀÈ…*ª@“R9¯üp‚Ž™Ç•&¸>“¡f¦×iñg<½ÐŒç>L²gCt÷ódŠŸÐ}vë';*äsÔzôkÓˆ‡aSÏ‘AµZK˜ 1ûÞõÓ&âÚp&à\¶b†ÛÀ=HiÓÝ}¸[M¨ær„£Â˜§zÓ.Œ³È,xbäâ)L&ºêow2F"ËVÌ_t)3O<îüµÏËÏ3·Fcô…Üh|àúœ†Ýg;qcŽžÞ›±§OСn›‚ýÔÛÓK¢Â¸‡H•†¤KŒ&]¿ÞÉžPh¾þá„õ¥ÃîR<µbRª–OŽN‹;ÎG‡U©Ñrd‚Õ¯;Àð‘¸Ï‹ö³/d¥QmNhRÛø?øûÝøÅbù™ø•µu\¼VúáŒëµ/ª¬KÒu¹`ÔË}™Jý¬¢íZeë¶qLN‹Ex9Ü£ ²œýŽ«
+$«|#–1„æð÷Lð +Ÿ«@,?2Æ ðü5ì±÷xì£ÁA ZBÅ€ìKðB°0
•†I® Îv®oÚzv4è/|¸Ob¨«LÙ斳£no–%™GU¶æüXáÁ)H_ü}Õ«Ïž åS‡fù²vþþÈt
ïâ Ú쬙Ü1½4âæÈsÿ@ñ¢Q äØAèm.vý{ÌÚ7S_fÊ…Ò/nrÇdN›´§cÜë§g4O“ÁøœUóáâöò‚>Uæ+æº2Y]BÚ{v?néOÝWwìÿq³÷uö£»üh2J&cü ƒíÏ9 ×ó£?Žþhs—fendstream +endobj +1133 0 obj<</Type/Page/Parent 1068 0 R/Contents 1134 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 499 0 R>>endobj +1134 0 obj<</Filter/FlateDecode/Length 1478 >>stream +xÅW]oG}çW\ùÉšÏWòƒ'¥Ú¤5VT©’5ì0βCffÁüûž;3fƒª*RÕ$&à¹çž{îå[«KüíÒ¨Gý”²U«“t(MûxŒGxíáÇHšãÁxL‡³À‡
ÓA2ŠGûä_ŸíÀlR¿Ä³ƒn'¹üwfûîþè Mº'ÍþñKkÐï&Ê£^’†=†L†ÉŸôq*å÷ñÁ‰è†Ã}"ûœo¦‹Oêvi:LéxDÓÜ'Ö¡iv>]JšIëH¯Ò%9M"Ç{R–ßËRÌ +I¶Z¯µq4׿ÊÌnídNkaíV›ÜÒv)°ÜHCb5|»²2OöñDùÓô¥Õ¡v·ŸôÀ¹[))Óå\-*#¼ïµ¶VÍT¡œ’Öûªýêù)·?³Í‹O—Ô„äÚJX²’îé‹*s½µô0%aI”$*·”¥SYph¥AÈÁÊ¢v!2Hb%ÝRç¤Ê.6 +×OŽui añ/æº(ôV• b®HcqÅ?³«YÂYÒ\2Ü¡KŽeï÷¨Ý&cüÿD„ßà{EJ[#¿=meVåvtE‡|éƹºZñŽŸ=Hws7y|.ô³ž?¾ýpvŒF»räƒõ°Ä‚’ÛjÚŠ‡Aåë|Ç €@ŸRjG‚™`Ø*p
²S÷-mD¡òx:¡I)ù‚‡ºÎ8rÆÈu±°`á*2Æè
\ç\^`‡Š4ê¼’ÖŠ…/Ñ>¼÷µÑ>Lïì¥BpxÒÄé\&Ñ{/Eã…Ä l*Ûƒ#&Nò‡c&só01DæðF„ÆÙÊHa™>¡U¶ª(PøÆ•FÆÍš šéEå{ë€hýËýaÎC Œ\i‡þõDG<ªðmmä‹ô¡y¬½©†çïK…èÐ@øW€ß%ðßÈ}ö±üu__ÔP¤½| Z@V!${rÃy¡³¯¤+Td_`P&訲Z͘Yh'¤Âu?nháœ\£¯Y#mU@ÎJOCbÓ°l›Õ}‚bxò¼©iÃx®ÁJ#¿U +ŠÆÔÁ«†x">뀗09=•ê•D–éªEg UÃŒƒéø¨‘oXagÆÁ!)X]ˆ)LzÁL™í(d*ß*[V(ÙœTÂ{ñUF¢ ¨Y
ß±èãžœ¹^iðíØø'MôzˆÑááûN
ÿ71<$rB1¶¾.Œ®Ö,ƒ^›=`—¼ž¸UÓµî§+zwÔI¹äú×àœ½;Ã0\T+..ê|Ö0yH› ¾cý(Å)ðB e˜K!@–g0vÐ`¶`npJ”‚ɱ€¾‰#ƒ a®¡²[J±éaÚl‹;”Õäð“ß38NDe½å cQcJ)±àñ‹†qv|<ˆDã
©ýt‹Zï#„ª‡ÙjýäÄv×®ÕxrÊö÷àT–UŸ£xx\¬)9ăV"èàãŽm@ù6?Ðŧ,.TíQ2îR½ÔüÕKGtÌÿ|õƒ|uï‰×,Dô›*«W²;Í"ùŠ1îê
aÍŸöO‘œÚ†0ŸŸ®ï?Rû…n'÷×wþcðx–»üüD<íÞ8é^pü¯uéätVljÁäxü—Y x]Š%Š?“<rm„2vq®ÕÞí‡È£úvPÔ†Ã××àT²X…³%¯V:ÇÜ‚’b;ô+Œ]JŒòÀúP|-‰{÷~ñ½.»%
gêÅó+®3»f^O\4VÀ}?ÝÝúV«aàAƒuŒ1
œ‚[}†¹‚Uƒ—÷Øœ¸:ÖÜ@j‚µx£ä–²¥ÀªïEÆwÿ¯“/Ó ÔÊ“ñÛaóì¦ø¾5îS:è%Ã>Sðñúþæš>íŽ[yéó‹ûl×7Ú£–âØÜ#|{KñµŽo÷R6úqÚú½õ7=iCendstream +endobj +1135 0 obj<</Type/Page/Parent 1068 0 R/Contents 1136 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj +1136 0 obj<</Filter/FlateDecode/Length 1317 >>stream +xVkoÛ6ýž_q‘îCT’%9–Ü-Òç>4I·¸(†vhŠŽÙJ¤+Jqýïwøíxq‹.d%&ïóœsï—“”FøM©È(ŸoNFqYÒîÑÞâÏ&qNã²À{šgñµ‚8<Âõíc8<*ã4Îp!}Èn6)âi8Š×b8ûÙìlºá;fÓ³4³ùn}#ÚtœÅåa´Ïf'É«)¥cš-PŸI‰—Êe:¢ü\«…¼íaõ†5sFÌSÄún)T'9ë¤VdD{'ÚŸgŸ`jLiêMEYSgKi¨Ñ• ½8¼X‰†©ÊP·dnæ8§ì;½SòkòFªþ+™éDCsÝ-‰¹/Èt›Zã\÷ªCXÖûˆ¢43ëu-ê:kšùŠ³®!·ZèÖÙïvL³àið1XäH±ÔšÉ +û¥—-ÞQêµqàT(ÞnVÎ8‡ºh-ìÀYå<ß\>#^K„rPŒ8Ë&hè¶n¢[j¸Wwº¾¨}UIWrÔÒÖh¡ëZ¯¥º…Ç–5¢-ª©ÝwÈ;æh-d-žúîŒhj›ÌäEÙY\âÎ=¢U-˜Hs!PoÂ÷üí‹çôûõûÙ5ñ%Cz-ÕÌ>¥¢¡ +šé dÙ‡\T6+[ WFKe+°^×B†ÇX;àþ‘KÚ@‘¡d˜Ì™YRTQb3IN-duJQCÃû]àáÎTÐÊïœ#z©¬¼µÊ + +endobj +1137 0 obj<</Type/Page/Parent 1068 0 R/Contents 1138 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj +1138 0 obj<</Filter/FlateDecode/Length 269 >>stream +x1OÃ0…÷üŠË׎ƒíŽ)…TK,,®ã@ªÄŽSàßsnʈ„,ßpwᄃ÷Q0 øÈ +¸ +endobj +1139 0 obj<</Type/Page/Parent 1068 0 R/Contents 1140 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1140 0 obj<</Filter/FlateDecode/Length 1448 >>stream +x•WÛn7}÷WàU€du·ä +;¨\e
‹°¿ñ¢ö÷n:Ë&,~'ʵ a +vSKÍh<n¤&‹ìŠ¥>©Êµtd7ô§QOä>ÈÒÓý@nßÓ]eèÎjᔿ󖄧ƒÔš?=áõñî7ÚˆRécôõ»2ÕÓ[2ö@UPZ}—,Ùä1žÖ¡Ýêj»k-éó\è‹-*-Ù9b¾Ã9l„#K{gU! ¸œA€¸`Æ:õ="ãpÒÛÊåçžsd&/ݣʥÏèÖ)T +-RãtΖ2cÕúY´Áý Óµà÷úH²P‡Ž2…B#UBGû
KØ¥-F +"QæU§ç=Çy€6Vk{ˆ®€µ!ù$Êý¿$Rûøq‚¦îi†"£Õ˜%{;YºÛ=·«§µ”‘*“۲İä¬<s±sÄx +hä80ÊT DþÕFì‘3TµIŒç8rê„Àt
¿©4¤8©fPœ1isb¬ÑgïyfóPAwœäÀh-y p@Ø +æ0ƒºÙçÔèä½åÃþP¬3ßÈ$ŠbÁ†7#ºæE0ÎfÓ öË<[âëàògóÝ8¥Œ°!ã9 —‘´‰±mYâÜá”ÿŠ9ÿ’†ë¹‰³ïÜÔy53®HGœClC±I„Sl"úuccD/•/ãÆHž(Í×g¾«Úÿ·nM?tSóâ¸K¡ôKÍ ¹©y°;´,æg°!ô<·• »›WAvÜUÊ÷Ïôú“µ…yý¥W_©ú5/A†®nXsuzðåi—ÖŽûÜæ«3Uîøëô°´ ø3ÔÛMŒŽ¨e?Ñ(<¿Ñ…öàã +wú6É+Ò<¶ÏÙ¯.D·D1£Ò†¢•ê±âD¡ªä:âR®¹ñNJ|Ʊ0?küz¬vRòÜŒ)µ‰‡mFõe¢=VpCwqõ%t™d5ÅXšÙÔ˜Þ,›kj÷ù2›Ž¦¼ÿ>ýŸ_m|xå—Úl1ËWøáÉF'×ýçÕÅÿ +endobj +1141 0 obj<</Type/Page/Parent 1068 0 R/Contents 1142 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 502 0 R>>endobj +1142 0 obj<</Filter/FlateDecode/Length 1629 >>stream +xÕXÛnÛF}÷WPq‹º_ Òê"Õ· +?I1ÎŽh:_Ó³O&ãq°Â“Up{únFõ—Úþí2XÔF&0ÚXïžüõÇ«Ù"ÓtL(£ñ|„{Ý/)=\½Z_
ßÌh<¦uŒ€«%#wψÖáõ:¿:Mõ^å[’"+RþÄP‰'©Þªœ +£·Fd¸¼HE({TYI:v?~·þ€;,wÇu!²ß‹}´ ¬öOšÛ¯)ÓQóûD… Á‚3ŇF4Oáþ:º¶[ÊŒ +aí^›ˆ"QŠÀmï¯{
eݹ¨wÑ
;jéýEG·FWEïäûïh¯ÊÄ…ì9½¤§ÀföíLNç‘mD¦ê¼*÷¹¾W¡ÑVÇ%Ý¿ž‘ÌCs(JsÄ~tnO„M¤
h(ÛÚÅ϶ԯ¡¤Hó$K•5ÃT‡"ZvjXµ¥Ö±ìŸäùÙ¸Úx#ϾL@|9µqݾDÏ_L‘,d1huîJâÒØË„b4g©,Ž1¬º2ô[®‡?©¼z$7N–ì{òù*ÖXFZÑ;!±›C]Ì4ö¼A¢MáCŠœš€Þ–Šœ6’B*õl!C82ÔÈ'gÞô
ŒÁAÇ5¢í1]p¬M&s2Už³%—œÖŸm:µÀ-VÛÊÔ÷µÖlhTQông@ +†,f>ŸuæOºþ¯kÞ÷Íç솬”®f‘«¶<ÀÂ1â3>ZT.”høcoõÍGÊÈ?4ÌäÂ&ÿ"EÊ–Fm*NOÐø|Ë´8fÓ
&ó`…ïà o¾}ww?#>Æiï»ÏLðó «…âIóÇš/¤Ù©Ðe´k¢gRT ”Î?#?U#j>ê„*¡\G2‡¾‘0ÔU^6¿Âè˜AûÏŒi»6s¹'í”Bâ}=–î;êÁÍÙN)´pBŸ)ƒ +Sÿc(òÑD…Œ<®m;+éžµÌ.´vó¤]h§1‹æ¾Ô
Ë=ÅÛ[?RZÈ5ˆqŸ]£`΂¼Á²™ˆÀgšCæqâµÓWîpŽç¤Œ +ÉÕ¶IL-|˜ 0ªTè8% ‡ +"  ¹-žF$R° +©Š™¢J7Nv÷{:ï%%y=5 öŽcѪyy +endobj +1143 0 obj<</Type/Page/Parent 1068 0 R/Contents 1144 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 507 0 R>>endobj +1144 0 obj<</Filter/FlateDecode/Length 872 >>stream +xUM“â6½ó+ú¦*̇
›ÊÉdrɤ6ª½Ì¥‘e¬,9’<,ÿ>O¶™&‡5ÔÈî~ïõkóÏ(¥>)åsZd$êÑ,™Q¶Ü$kZ®sü?ÇŸ“TÆ +endobj +1145 0 obj<</Type/Page/Parent 1068 0 R/Contents 1146 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F2 5 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 514 0 R>>endobj +1146 0 obj<</Filter/FlateDecode/Length 1435 >>stream +xWßoÛ6~÷_q@æ¶bÉvìè€d×<ÃÅ0ï’h›Dz"e×ÿý¾#%ÙÑæ +S7”V@E"µE0=÷|1ýÃCR‹”ËðÃÃ8Uùnõä‘õF”½U»šáptRnï³ÁÊoVISpÃñ˜Oƥͷ½Z’9pj#úYg’ÒZn„˜ºÚ¾*ÊÈfBS*pŽJñP4ée亊ܙ£Ô˜5K=—”_õˆëº”¦T¨pÍîÛghË4â°Ãë«®jë‹k?¢ßMMèµÓ±§vÏùÜDœ¿ +U2ᧅ<Ê—]öÞú‹ÏM©s9¢ûN;]Á×öá™[Æãë1°^¾Pú³mãå²ö-~.SS¨ŒÂ©o׃QÚq55=ãsbCWÈ/¢<ù뙶׊šLtp~ªµg©ñ÷>¾7MÆ›Ç$îÇÚ$% +¤hQèLiÀ·UÛÖt›œ{©Y ×Âf>2‘W‚¢V‰G`ĺÏÄY¬d0Œ~ +N„†óºnVºã©‚É9M0šæÑ¿Ád¯h͸4Í⛶.0SYäУö^Só§§ÊXÒhGzKO÷î_õÄúƒ zîfMÂۛʷö%;ÚzK7`[S¹Hrs¾`éÒ„;7«–Æ
Óe”‡ô”wSñL'€$AÂD#oÛ×cýIÇþ1ú—¡ÞŒvþU8›Ó)v¢9V +T¨R…
Ì„¥1`ýG¬"¼ö’8òÎ>BP!cÃ÷±‘”©ÂÌõáÒÍ…Xù¼ó¥¡®å¥y¦Øã§snÿ°–_Ö•Ùb-nñOkš&äëÁ/ƒ¿\àûïendstream +endobj +1147 0 obj<</Type/Page/Parent 1068 0 R/Contents 1148 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj +1148 0 obj<</Filter/FlateDecode/Length 680 >>stream +xu”ÍnÛ0„ï~Š½Õ"Å’\K9&M}kÑ".zñ…&׋TI*‚Þ¾CIN[#µa€àÏîì·³þµÈh…oFeNņd³X¥+ÚäEº¦uUbã瘎ãÁÇ,Oó˃ûÝâf»¦,£Ý±6UI;Eˆ³ZÑN.·ÚˆÓi Ϻ–BÍä‡æ`OZÒI›OÁRkµ q
‡Þºòµpìi°õ„kF‘ÂzÍA¤W»çÅŠ’|µ;µüáÙy²†Ž>=“<i6Á“†ŒíéàlïyÌ‚Ks|³Ž!¡Ò½²#hiö{uô)ÝIÉÞkó4©žsg€ w¬Duãáö˾ֲ&Ѷ,ΓҎe°N£¢¹ÎIÜþŠ‚xÁn7ÊŸî×| œmÜ& “à3´‘ÉÍö–2 ‰íHŠl¢óÕöñÑŸf¡ãI»µü©™7^†YEFóOé# j¿jÛyllgâ¾±&¡IiOPŒ«qÏái¤òª%_f/€9B +ΪNÆ †û9pl~P¤aôë~®XÎLÊ´ÊèÜ–}¾)éߢÇó7Ï|꜃C"ïšðÈ Ó§eÐ#hX¡ñc}C»LF4è–¯mwRkGH'Û³“Âó»j0jù_)g[pò,;§Ã@mçZëÙ_OµÎæH@,CEÞã¸~8ûyVV‹Wx»7À\ë6ÎÎEZv†£A5N§ÕZŠ½~20š}'¨±JGR—#¬§:›|xùпHTsײ¢J«Û‚²2O«HëñîËý}söSCVv
Ú$bObI¶ÁŸSUPR®nãý7w¯ËuZn*8»E/Þ-¾/~Ùˆendstream +endobj +1149 0 obj<</Type/Page/Parent 1068 0 R/Contents 1150 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 517 0 R>>endobj +1150 0 obj<</Filter/FlateDecode/Length 1685 >>stream +xW]sÚ8}çWÜÉ!é¾¥™¤›™NÚmh»y¶ÚÊ’+Ùaù÷{®dc’N3€ìûyιW¿Sšàß”–3º\PV&ã ~iÿ|ý8˜-–ã÷4?/¨ ÙÕr¼l¾izt¿t9§Óîwœ.%~nh¾¸‚Ý9¬Nh†ÿNÒ&\N¦|||ða5¸¸{O³ 6ˆ{±¼¢UÂÅ/ÙðÛÃý_ôEºBy¯¬¡ªò$LN?”ÉíÎÓÊ®³Lzÿnõ÷`Bç³9ÞÞXS9«é“òU8aÓeôq~9Ïø©ïJî”yö²0Ïü%x,[žjÏ?W[ _ÉÉdÜx™ÕNU{Ê•Ðö¹ñ4§é´ñ4[¢ðô w¤L0ò(ŠµàÂÀ„“Z +/Iùp$ÖJ³µuÝü2¤AÚ•E,’ŸTŽŒ¨Ô‹¤6/« +q¦2L/cŠ10ZÛøõ$²-l®6ûà´6¹tzÿZêã”î"¦û`+v/*üAÈ)\|Ì„“›Z“±8³”Ù¢t=Ñ‚´›à2”xk}E±0àjc8kF!@_)÷)»–{xÕ:Ù(-éÐ'XВˈèDcWä…2@€*š ƒHª~R÷¦y:¶„±%Ö¥åŽçr#j]ые¤&üR8QÈJ:â +Ok)
¬Éœ6¨Q|„MIÙn„ö²oµ=~aX¹ºÿÔˆ¼¥BUÖ(kø¡R>Àvàl
ôÆ,CeúD 8ÿÃîZø„º·°ƒTm¿Žf>6¸C®è,óuˆ˜F¤hº–çøšý¤ª¶¡ìN=o+*,Ã}]W§ +¸±J] dÜ/@2dÀòJ¬A•«W‘Ê–À‡ûKuqwHï±´ã6Çts¨ âÆA”½{É|qøÛåG'…;(jÏøÉ£×u®XËúϱ0ôÍ~ÞéüV•½‡OË}ÒÊ7Ü$À…¼2Á”À%°ôJç€ ãF<Kº†€ÿª¥æ¨Ê€MüŠú°n¥Î™\Œ¯ˆvPˆ£ì@S”¥ŽT”E¸Âçø6¿Å£«`#F¯HxØmU¶åÇ0
Ï™¡GP½Nò>/DSæè”Æ!#"{Qa¾=GÅ€Œ½Þ˜¦›‰ò0ç›Úd,A¢/æ뉸A:"wð^¥ +‰)½X£÷<öxºDlØ{l÷o-/¯czw¹m„#ô‘‚Qí"Ì5U"Ù +~Ýmû¬lëÇ}ëH/ßp™KŸ9UÆ-b¡'•Ø»ø3gØÔ/ê>p¹ÁüÊ›=‘v”âãí
J±Q,*ÝJáýκœrQÆ.ùôîH¬Oˆr£íéZÑP˜‡ÄÝMˆLNJšºÅêÍ%è¿w ˜ÅÆìŠeK‹Ïðõu'
èÃZ¬ú-ú”TRyè~R…NùÎn˜½5²Ða?;Ð$–Œi%~Júü:»‡‰šÊDma*"Ǹè…^îñ ŠíCBNxÏ:/õ†ž†aóhB…ý±“Cp‘+_j Kc€€×m-°ê\5+H +endobj +1151 0 obj<</Type/Page/Parent 1068 0 R/Contents 1152 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1152 0 obj<</Filter/FlateDecode/Length 1798 >>stream +x•XÁrÛ6½û+vt±2#Ë’íHN/;±;î$Ž«I¾@$h¡& +Siv 쇫чË1-V€ƒy*Ë\²?¥°žÏ…#lòøzVC:¤{™äjÿ·zÈ`:™TVù
aÙ +»¡5Þ¼„Ï›ž[¿" ņ.ò\9ÄÏ©½ZHQŒZÎdÖB(]ïÉ|INy9Ž^¼£)²Ìé>:=¬ +t]åeÊ:¿/(V¯i,¹k¶u·Ó–n–8ÙÜÔ‚J9 +0bKñãGkªò4yÀÄ’=47‰Fgt¥Ñ)“r`¥H#°NK~/p<þ hÝ¢,¡#ËM-ËJ‡çWVJ’¹, +TaöG¼úEœ!¶§ïƦ!…™*hš´P¯ÆÜËSÇíŒÒ–¡» ûuzÁ<Л¸ug“’}è™'ÐLž”0´!:p•ÞAÑFuOo²9¬IÞOa¼Aœ»öä'TÇ×-{„¦5P²Ó;…µA#/U{†`’Û +eie¦^vdb}ßâ™À¬@I"Ûó³nå +«ºh,
…&+`Œ³€AŸÈH›¶²—Ç…xêkÇçfŽÞCuIx(¦<IÃõJC5…:´qèøð&8e%·M” ó/†¥L/|@»ÏÍ p»ØsûóžoE¦}=ž¯awh0,'¦²Ç žp›ñ¸˜'¤/‚þ–ÖŒ¨qŸßzÞ´X8¦O†ÕEzÌþá~Á4MÁ5‘Ž• +²éºÐ^A +¿ßÁ>lÇí»mcÍ^ôWž‘ãÅl{³!¯6À¯
^7ê¨ +€£Ïþ‡öÊËVkão +Ž–YöÆY¦i÷àêdžÀ?„¿M%ïúx3As;ßž‡Î¨a×!œz=Ž|{Iÿò—õ–þ£’ßäÍõìQ‚6Η»V&ù"žd8>ǃ0(¡ÀyøüÃÊh;áàâ»DÙÅvÝ™êèû}µáLàJˆa£fm;)u½!Š|ËÚÚthí½QeXPˆèO@ú•”î!4î#˜qÒàÃ;Â
ŒÛOÐÃVþ-@p'ÄÞÜ"צÂxUÛë༖§3üãü”fóp™¼¿øtyAwÖü‰fJLRñ\$< +Œ=j¶Í'ïþ×Õõl~6žÏÎqíÅ0xú–]-~;øÇIzendstream +endobj +1153 0 obj<</Type/Page/Parent 1068 0 R/Contents 1154 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1154 0 obj<</Filter/FlateDecode/Length 1504 >>stream +x}WMsÛ6½ûWìè¤Ìز¾"9½9u=ͤ±ÛFöà‚"b` +í½¶ÆSj=lh»‡ÓªvF› OÂð··¿þÁ—韇OÿõnQaõnóíbJW³Åd÷ã* 2ª¡T犤S‚}ÁpȘҞ|&^cë<K©ô‹š°ëû4C$ÒÕb‰°aõ‹MtºgLÁ(°&—*ëö=<¾½JÉÕ|=Y¹/LrÞ +Ç…KºBØA…ðÏÌ…OeÉaؔ¨*§6…g‚}Iä¶ÏÊ€|@J[›*Tuž¯Ú:J’R8Q(`¤63óC®¸%sòuYZWÅicV©Šý·oÐ_¡7Æ)ð0§~³#ƒ˜ö„*Êp¯{%kôÇbQ£óœR¡ó(¤<aZ§’Žn¥TÞÓ2Z%£hwb×ò½ý4Jµó€’®X2¶BÇrë"»@<t”Í·ôi1Ã@×ÑèÊ\Ã6JÇŒñ(DWiH
Òÿ4ÖU{g‡^Df¢P•sè»:¬ 0|§ +F\:+URƒ…Rt‰1˜@‰N8(R¯Hs¥âÔ<½›Ð†å¡PªÂÞÛfY“ï#L…0º¬s('‡P8§ÀŽïzçl]^7ÖA`N\ö! +¡ +€^4†žúHìDÑÀ6*q:”pŒ€ï?l†1
BJs±ƒ`zJ”—5•D˜ÄÉ>$ÏmãxP»ä-öB>‡ïÏL+k¤ +÷2&;T(‹¶Œ"òÚÑAÚ¢´Æô¹õíTî$Ñ·4ä¨GntI£fÚnô:¢®ð:Åÿ{3zœ’Åù0þÚ×v_Ëy‰pîT…f!à]àñ•äas¡Î]5À ½3ÖáM Ù ºEE9Œº8¼ÙT¹b=ìÓw}X8`€·PÖpDÙ?ikyè°)ß6Ô6Ö—D¥¢Î1t:J‡Ñ†A€Íƃi,ÓÒ|D4]ï™(€2ñCQC…k#3Å49Óp+¬2žžý€½z…˜sV˜ƒu4÷AçŽý±Œ]ZÙm$ÃÖ´{\”¶e¿Çâ`;cæço’TIµøHå–&!#bOÜez—åø;N»ÞnyºÉ“$ð“ü±.RÒŽÅ ¢aM +?Ìn´z¿œÜpò¾Þ~ùxK:û
ºGwVÖ%lçŒöêpáj=ýpægÈÿýŒY®—“õê?‚àg±bs¿m.þºø–º…“endstream +endobj +1155 0 obj<</Type/Page/Parent 1068 0 R/Contents 1156 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R>>/XObject<<>>>>/Annots 530 0 R>>endobj +1156 0 obj<</Filter/FlateDecode/Length 1440 >>stream +xµXÛnÛ8}ÏWúH_%w}H±í¢Xt»»õc_h‰ŽÙH¢*Òq¼_¿gHÝ̤vZ` ÅÛÌ™9g†ùv1¡1~&”LiSZ\Œ£1¾t¿þùýb>DcŠ“i´¤‚æÉý(§Ï¼žâÅ›(ÆÜ4ŽæÍ€§¦Ëy4¡ÅrŒ¯Í¦³(iF<;cvÏ.¦ÑŒÓÄ<[.º‘Û;äùœ÷ºµ<;³ÁÉѬ·j>_z«& lô#wò`«âîÌƘ}Í2“dMá-Њ›ûvuqó~N“ 6À;^&´ÊÌcZ¥£Oe*IÐÎÈšÒ\¥÷æõê+v,š#zõéWþ[{ʈ¬&QUùìVR%ëB£tiè³(Ö‚ +Q7u§dy´@•¼×ÝwsWë]u³×užñcºžÌàÂ*Õ7û›G²µªrIFÚ+eÆ'–´WyNéV¦÷î†t+Ê;™Ý±Ñ5®Ø(ìwB•Æº¥ke
FªtcïÔ´uÔÈtW+{L)„¹Ý¯D- +ieÑmy w°Ý +K{YKçMr_>”Úº{áùåäÒ_¯u§/ÊåÆ’Èu)[ûØÀ˜ÔQ3å2½3F–V‰<?\Ñ¿²ÖÞ¬Ó¾"RO½ão˜€_!Â^a€(c§7»Ò'j9çRlÄÁ*½Ç1Vy¬|xÙu%Ãa·Úðïî`ÓžÑ "ðaÓ!-+ä²².C Æ€Ý@(ølƒ0ÒƒÈwÈŸ±Þò.)Rçÿ³0õáÃaUT†+ÕE%¬Z«y…̵ۆ Óˆ•i¿åt±[6°ãPãmDÚlƒe`M³]*³ˆVàCѲö ¦…ÎÔæÀ‹:ü†TÜeH—
S®<,Ζ6»¥qRíOùhG=rmÚ÷®ú9&bD©å#ÁìPÆ:¥è¢pžŠ©®ki*ÍJÒ°£I…ï³Ò™â×;! +¡8bÝ9ëÖh çù' ŠÈ 2`”¾*ïz +8}_Óý…ÑÀXΓÖvjÂ럪c%k»„kW`K_YÏ)Y³±%ánx(È}C@Y:ã}åœ{$Q¾E‡ªTÐ. +S*J +ÆrÃî:f+?4pk'¥œ4ƒû] åFÉõ訅‰ŒÊtÐ;8Uº~ŽmÚUܦ²5p»Ýµ¦¹t³ã—ƒæV*g ë+åsFÀ=|Vµ{G@ÊðÒf²’n–2-MyiY§øI…wøbUºËEÝôÌè:\á +íŸï¡äû7š›:†¨£÷}¼ˆ£yó/¼æ
×5?¦XGphóe´øòÚ¯êßhîýÓÂè11•LÕF¥LÖYúÅojÛ]ˆy›2½2ñkàW×Yåí‚s¼0XÕÂt°óÌ‘Ïm~Ô¶öÞ +Æãæ3Ó7ÚŒï +endobj +1157 0 obj<</Type/Page/Parent 1068 0 R/Contents 1158 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1158 0 obj<</Filter/FlateDecode/Length 810 >>stream +x¥•_oÚ0ÅßùW}¢Rð§„>¶ëªi릦Úúâ8†¸Mlf;E|û; i÷PM‰`ûÞs÷\ç÷`J>SŠg4_/Ñ8¢Ë8/i±Šñ{†¯´ óËh<ë/Ü$ƒÉzFÓ)%ÄZ®bJ2Bœ(¢„¹Ì *™}9OžfËñ[†m¸ v]g¢·žI#¸ÓæðïÃ-ÍùÉzq”rÌ´(¡²"#©¬,#½!—Ú1ÃJᄱ”IË+ë÷äØ=öZ&ë+š¢_Öh¾¨Uß)lgÜIh/]âXÇTÆLF¬Lmd!ˆ9gdZ…Úw;©¶uÈ®¼˜¢>T²%«KÑŠ»½èI¥³ô4´Ï‰Y:V”¡ŠÃÙÓ9Êr:yüv÷‹v”ÒZ(´>VgLI.mƒx:G‘¹{@|8S”B6q6…äOn/„ªIcRPb…£WÉêꯌt0d…ÞX¼w¦—ÛGHaãû¼B:~¹W‚öÌŸ6¨µ¹ÞSµ#<ʶLÊGi + #ƹ°–à¶Kï•0$šWÔ†8% +ž=±Þ,Ç&ŸÊ?–¦ðM]ý˜r¹JÁöE£¶¡!<‡Ö <0çq;_ÖK
Ê^z‰²Ú7ËgìÓùécÑøÆz.!àø´uå<gj+êl]£À@¬( +t—ɇùv°6ž<誇3QÜ€a³”ˀŸ˜â¢xÓOÃP§Ÿ2ÆçäÈûíÊV¸zG1Ôº“á_xô«0Ff™PÁï“õªqÔt‰·ÓjNóÅ*\¡×_o®é»ÑÏxeÐæU)0Vþ–öÕÚí£8ºòûÿï_Ä‹q¼\áµ€Pó•Ïð9üüñNendstream +endobj +1159 0 obj<</Type/Page/Parent 1068 0 R/Contents 1160 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 538 0 R>>endobj +1160 0 obj<</Filter/FlateDecode/Length 1729 >>stream +x•WÉrÛ8½ë+úƒ]eQ¢$kÉÍY<“Ûq"¥rå +8í.øЛE§w +}Z¬÷x2¥EêÂÅää¶RºVzCó¦,MU“Ò4ÅJÀú º;]|wÇãI{¼»8ù ëʤMR+£Û—FÇþ¥Áâ¥7r£´fë;UgTgÒYå¨s)¬<ó®lëÛº7´¨ÕVÒW¥S³³t³ 2ÄXÈ$ZÙÂ’*Ê\R×2e÷}êÆ(œn• ëy÷óí[Zž¨HFÎêüöãÇ«ùœ´(dJ¥*åò4¢ÛJn•i,mee‘‰%³ö1ß“'®„¾zÊ‘ÏDä¹üÍÁ8q ¤+ÒT1D"§u£Z"Wõ=™Jaxußf-wbô^QŠ$oRi_³ap,‡ZME +íîaÿR†( +‹û%šiùÆ@a6ªr +Éé±+€Ô +…Óˆ»¶5< +á†ÌK‘ƒÓÊ‹Esoê!€VüŠf¡¥"íº}P´£×†Öî ‹L‰cyä°~+
ñx1 +[Û“¥Ä”´3'(aì—]¿p— < +endobj +1161 0 obj<</Type/Page/Parent 1068 0 R/Contents 1162 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 550 0 R>>endobj +1162 0 obj<</Filter/FlateDecode/Length 1866 >>stream +xW[oÛ6~ϯ8( +ÄbÅ’mÙ^P`½,CÚ]â¡š>Ðm+‘D—¤âØßwHQVܘ‹:¦HžËw¾sÑ·³˜FøÓ,¡qJYu6ŠFxÒ}ýùëY’D ¥óI”REÓq4i%ÝðiJgãhL“ù¿ü×’ÖؘÏ!&|é
ˤñdÍÚ£ñ<¦þp¼ˆ4Æ÷”5$Ý‚5ô–ͧöâ85ãQ +ýÅé&úß쯱»áTo··®(‰ÇѼ·;gQÉŒíÂÕxŠM¿r‚{kìŽGQÜßíywôzw{kìNÓNKž$Ï«Š&ð}Þ®ÜnoÝ”±ôgy×…‰Îù*Ëõwó¸ÀS¾çò^oYÑl@{½%Œ%pô¸ÉFBé(„¾çÛå)‹þËkŽi¹æ;É(‰¦Ñ4Ó2wtÑ2™ÙBÕ¤Öd·…¡\eM%k½ZÞ]^/(ž°„a+b8@ã"ï´¶¨7ôe§‹Ú¾üêo#Ü™ñ¹®s©É*2Ín§´…*IÍ®T"gÐíDàL®‹üY¥4tP
U±Xk|gª^›lî™À¢•Ì;+œáPz93—PÅ':ý%¸ŠË9dæ¸\Ôt#ª•87øi¥®EiÈ(g§»Œã°ë@EÅö‹ÚÒíÀ»MØbwŒÔE&„žöÆ@úê@Ÿ‹:W{CŸ–ÞUw\j\Ux ŠZpÖJŸâ»5£uû*¸—¤
Ðý™jÊœ*•ëCgŒÔðÆT«ˆaóxA™ÈswbSª•(i'4°Ç†DE‡Uº3kU–jÏâxœxæa¼ x™j´‘ +gÊù ×ôskv{4‰Q™àa?OOçàâecôe©2Q^N‡ËVòSÖnTKê×Oº³Ò ¼d¤ž=ªå¤j¸ùœ+ĴΘŽ€¥ËÜ®äL¨Nʳ¶¦=â&eþPWç^ƒ%TÆžGDï¶2»÷lÇÉŒ•!HUa +£ËÐJÜwô0ÃÅÈÙ&2dÊB&jäÃîàRÆ]vÅ´}ðUöIÓØAiA3æÕª::´‚[ß +Xˆ +¥H~‡OJ.ÿ‡:G0‚À›VÌRdÒÝʧ×U&i»Ìà(ìñåsÚUBvkŠç2l×h!ˆ†|%Ë=ºÀž—ŠÇÒpu>6“f—£ïÛrï:8åBêÑôõ,ÃÛÁôöUˆÔNl0:¡|T +,jü¬`÷C£o7¡ +Ì@hù)´äÆÉâ¼ûÓ€ý˜+Gd”ˬs ´ƒÒ-Àéjã¬yÄôaŒêbY +å¦AýFq@©´ê |Ìl1q}jŒm)åèEžs`}#Ûæ½?™…ú¦±[Åýå“ò8úÕ%Fé”KcÃLvR}§¨pkfw³×½kܹÅ~ +è¶E†€»~Š¥ïØìô°×p¹
ƒE·ƒÐnFšJ€7¾´·×w;ACv´Ûr”\JPˆ*‚ÞR0¿:uï˜ß©Új´I¨ìS³T†Û=L£Jô¨{OŒÀm¬,j3M1¢ßºÞz¢ºí•¾÷IÖ…Vµ£ß~+ ONw<9íyV!"—bütEݵVÕà€ÒúÀ+^0ëp¢KI×¥eÖ ‚Z:zÎ%Tß³ˆ0¥œ#âh+Xqè¬Â4º.¯ÕHK®€ü´V/î5½EÃø1ö·Â¬‰ã>ôvDÙµˆê^–eDQÂ1‚´Ð45Rƒ9#ÆŒt9ÐÍB`̱£µue%‘×ZÑŽ6„*þ7›mDÃá€ÎÞóäC(W\cÄsS %Lì0í±*"ý™˜gɪ)m±C,³²@R°ê^mÑà2_1uÁT7A·ciV9 +Uf•ÆâH s´xùÕ%Y +endobj +1163 0 obj<</Type/Page/Parent 1068 0 R/Contents 1164 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 553 0 R>>endobj +1164 0 obj<</Filter/FlateDecode/Length 1895 >>stream +x¥XÛnãF}÷WT„ÆX´î—ÍÃB¾eز"i’]¬ƒE‹lI!Ù +›´FA>>§º›4¥d˜dŒ±-’]—S§NýËE›ZøjÓ°CÝ…ÉE+èí[¶Å‡
úí`L½Ñ¿÷A›2I<ÛÂéêÛ⻋îpt©?J¨×é}ÿ)¦åEý3îú0äžå»o†ìoÞs¯Ë¶œç¼[Ç7«‹ë‡iµ¡vÐëvh€Ðúƒ"P‹Vá%ù¿5œÎzò#ÿü–?ª4ÒCãþõxÔx¿úù¢EÍ62‡úÑngò8ÿ0©N׎ÎV4‰÷;ñ¿É¿ç_´ð4/+uç°°èµZ/žžÏoߟžëƒÌæ·öüõCŸÚmÆ¤Ó +†ƒ15;£`4èsB“Õê~¶š>Ͼ¡Åý÷§‹û;šß/ž¦Ë%..9ý뇞?Þd$A˦¤³Hf”k +‹,“iID Jå¢L½º»G]ÐR$kA;mò+Ò©$½¡ü€ƒ:T®tj()LŽâˆò¬ÿd× ^³3zéj'I„¡.Òœ +#ñ”=Ê0ç_sÜ~óá‰Wœ¡BEì®E/—*®dZ祱—÷.É°LrŒ˜ýpùÒé{³Ùî¿Óš#Jd²4ŒÂv:Þÿå>SiŽ»"JTzêý’beòàkæZ·¹äÆç
0/2#¯¬oàÏÎ[[“«8¦½6F÷øPæênT,íŽÝëHe° 3…«k™J‘ï8@抇é¿6¥üÐBúÔó@àƒ‘Ù‰§ñŒ´å|—Iª¥ññÉ(b—y³Ó :6RB1Ðâ(ÔsJb–í¸â!ÎrF_&)_Dep½*<.RälŒ•}ø4‘+2*كαÞ"Š:¿Îrcs(VaTº-™õr©³¯©êËû +ýM¦˜)E:ÐZ×OÆ +
Ðó^¦Ô˜I4Oöé,–™TÛÝÕÝi5ÐÔx:’–æ±@6ñu‰ƒTã‘Óƃ,cVXºT¯Îœ¦âUmñLÙ„¹ã¯ ‚ 1$" ÿ 8f§t·‘>©}/bËhÆÍà™r1;‘‡;fÊXö„#ÊY ‡JQb2²šøNS +Ðìb,0c–2ÏÙë)c‘¸ÿŒæâ‹eìçMýpº3,»þKÑ«ôÔw¦2é¡÷—ekªARàP¦èeÔT[Î*×gé$ ›ª)® +jŽN™o1M 3¾h…_EÆÅ=ƒa¶ºî`BúÆ0Mò\&{[@ø{UAuêì3½—YÎ*Å´à‡ +w¨3sRSXÖáÌ»4¢Äð³#™e°›@)ÅÖ¯ë‡iæŽà;iå:Ç¡ +Ešba.DÊìcq”Q@+ØóD({Ôìe¨6 +–LA°|R¥&‡’ʈ+$Ë쵎evp-}û©¿;måó 0\ž7iÓòa¤úð¯Óš×rºUø ª¤§`Dhp(K-«séxà fHå òÝÿ«ÒÁ.b‹ƒ8"®³”\iPI¢eY
|–°ï ¨¯™p@2zð +`Åj]ä9D¤€ÛdJ›Î`¶à^?ü••a)cÞXª às0{½/öV
Y +«¢úäÀï©LTØò”7 +Q&þñoíÓ/‘AAÞpšºk7ŠˆÛIØv3GƒÖ3¤lDu¯ÖhL°Ï£Aãê +lM[ëÍ-Õ‚c¹vºûÕ¢±ÑÜ„b}$Ñ‘Ú}>âÜáùŽù˜Ü>b‡×£³wËS×kýù¡Ólcm7‰P' ZÄnOÐÊ +µGË»›)Ž„=Ùl¸vËáZh7d|Æò}çËšª3ç~pW3Ê +#/e,3vôBšÜ’iè(_NÄ'n&N;=måx²S’cfóVœÊ@Î +endobj +1165 0 obj<</Type/Page/Parent 1068 0 R/Contents 1166 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 564 0 R>>endobj +1166 0 obj<</Filter/FlateDecode/Length 1777 >>stream +xµXïOÛHýÎ_1Šît©DŒí' qRôÊ©Ž¤íII?,ö&qk{}k‡Àýõ÷f×›˜H=©GUè²?æÍ›™7“þu?
CêGç¾çS4Œ¼£!þ⯖´à
Ý~»ûí ˆ/¢Èp8§0èã§]e49h¯±{<ò‚önkSßzýÖ®ïF°å¾é%¦~xÇVâ½—€¹Ã~è¸Ã·~„£Œå„Í‚ñ¶–9áȨµ×ZæØmû +_l¯±ÖÚWÛkÐ +5g +‡ìu˦„À‘õÖP%rIí!¿e©Bª™PwI—qœ¥pX+Y7~Å*ÏE‘<çµK1ßóë
²6ðšKȧ¢–æ^Ù&W„«iQÕ"ËpÙÞðhŠtY¨,S&,ÈG‘—™‰ÁJmð:~«u†Ô“$bà*AÆJ&§›O'œ-È”~H½ðØá'ðñ~wë•j©¨÷‘´RõÏ•Œ5°÷bêHd“ESuø +Ætñ*iq6»ß]_¿ÐÍälö±H¿ÐDjDÿl¶MÏï‰ÙÓÿÒ¼²ÈàY+УÈm;¦RG6®Š…¢À¸ÖÂAüÕœ¸F8Oiöî–Þ#UõïðbàCÙ(EùÝNœàGX‘Êÿ¯…Á$=Âß¾àÁ +eS?4–.X&‹L,«Ó™ÿ8í¾ïè~v¦à Íæøº½ùíf>_•=ƒëÅɬb–5dòtfÏïß;¼¾¡‹»«O—w4þ4¾z?>IooîhúîjB·wW×ÓË»Ã_çBFqŸÎܮˋïbu>ß+‰_mY™ÊÙ©…óæóÎ뙉ÍYaŽñÉ:ŽeU-ÖYöÄ +F[4k[Ùô:¨½®Ók„¤á +É8IXš®å†šRªè!F÷Zµ
gªÚM´iBçO”È…XgõaÓVÔb!5ZQ–¹FÕ +ª]ñÁ”ÛlZžÞb°:]å÷^¬ŠÅs#]>¹k¹xÕó¼+j"µGã¬RPT4£®…&OzÐ&#®ö¬ksm’ÄyŒžÿ7w¤¬fsÏÚ¤p +y†éç»kpAHphÐO&i`ÚÀç¦ÍÝ4Æì/´ÊÁºQ4Æî»d1z€é)\¨ÚÖð¡E¾Ý ÿšÐLQºRb†ì¥mʃGþM‹Çè+ac´,…æü±¤Û'ÏÝפ‰ó¨FtJ‰Š23½©€–:«ÆQ3Úšp²B!ö B¿ 5LD#‡¬RkÄÃzgld„.d‘ʤà +ƒénYIÈ–l®•Á€)ûen®= +ÑVx¶]õ~þLWÒ0 ó¯änŽ<Ûk"3 ׯ“?–h™«îxÈÌŒ&©ýܶ×D¬ÏøHl$3ˆðŸ +#|ÖÞ(²ŸÎÆÎÇèê+Dž.T¼6yžá»=w¥7ô1ªï§¹Ápà
#ü/_„üÒåôàƒ +endobj +1167 0 obj<</Type/Page/Parent 1068 0 R/Contents 1168 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 567 0 R>>endobj +1168 0 obj<</Filter/FlateDecode/Length 1261 >>stream +xWmOÛHþž_1Â5Õ%~K⤠…WtÀåÀÒ©ºØq±wÝ]›$Òýø›YÛiä´À•)‰½;Ï<óâÇ_[.8øïÂ؃aÚr,ïl>®o¹ÞÄòÁŸø–)¸Ã‰5¬®¸im_§à9®åmn_ãêhˆ%Ù:Öd‚¾êõ@ŽÁ1'cü=rkŠÃ}“X½Ùó-·Úì¡Ùz´ì³!¸.÷?C™ Ân°@<™$r‹ˆ50|ÅÒ,áð>ø‚¶^eÛeQ™ŠE΄2M™ˆÊ5zt¨â,·à<Ü!Gt–eJ¢Ë9p‘«˜ã}YZb€¯¾;ÀdQ×æyh7!ˬD†,iz¹í†&8³±`IßkY€à<º}1D|^(ñ@òÞHÁßáæ8\P¤´™G½"l(ëåBbyÈ5ñ…¥TVÍú€’éZÃ}odMð©ïýbßÅÂÖ‹ +Ïs±Wè>ܘ¼L,4W˜ô¾Üd“Ò²Æ%\ßœˆa_ šh}
··A,å=(4ÆÄÊÔG¼,HüÄVwͽèÃFÙ5®KM+”$¸ˆE±Ú… ‰!}ßÁ°‘Bÿêë£PóXŠŠ;¹¢ +Dü)ÑsŒuÀêÑŠÒ.¿Ø¿«
VµeS“KöÈAù’SÎ~ͤl¬k}ľÂEmâ7½Xs@z÷º:¿>¿ +>ÌæÓôðV%OfÁéôsDÏÄoûŸöÓý¨¿ÿqÿrÿæsób>M²Æ½ëÓ›`vLÛØJ&GIFý®s¦òvµw9üÁy†ýÊlÝÀ 3èÔœ¿ý²:D®±uføôoÕ€zycÜØÌÃ…„vþëßÑÑ{x‹¯àPGSû‰)[gR&6fÓîxϺy
hºš:‡i‚zñ,X¦×€&ÙÔ.´²M/Úš¥wÌ07O†ÝY™‡ß’óȺ1rYà1Ø~
bçiVÊx¬[xG¿ºªcÑ—:óÿ´f™>F±‚âì¸NecÖ/ï¬I¾´sÏtqÇ¥ð_‘¥£ÊÚ{“õàMÖÃ7YÞdíÿœu§:Ù~Îz®d^žé1Íñ›)ß(OÙü;½ŸÄw¶Nï¬PŠû†Å^ó>UzƒNÂRlà)ûÄ’‡ð]‘Ã9°DÍÈH”8‡”3¡ŽØšMðò +endobj +1169 0 obj<</Type/Page/Parent 1068 0 R/Contents 1170 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 574 0 R>>endobj +1170 0 obj<</Filter/FlateDecode/Length 1583 >>stream +x¥WËrÛ8¼ë+¦rRj#ÚzX½lååĵǛ0å=ø‘„„´¢|ýö +Ê´¤#ÛT•©ÞIÊŒÎdåȬèÙM´“5ÝS(½~Fþ£E±#©°ºN(Ý(KøÞn¤&A…Y«LÏÓ¯½sÁ4ïWíAX'¬Uk-sr†Ê¦pª*$qt~…V¦.9xaDNKQ!4™šVBdî´=}ĵÃéW+Ú™EøÞ(TÂßðè襤\®ÇE +#š}ähäo$Þâ©›Ò_¡M,^;3e)t~|Òv£²
eBÒjlÀ"¤Gx( +vgE“£[pÛ‡ŒÇ‚0|,å +Pmò&ljo¶’Â55`ïã-ꎇ:CoYÁPR\ùlj"zYÄZ³ê€zQ´©" +WÔ)í3äµxa|Ö°ÎAÔد<¯ÂQ@¬?k M(gê Ûר5/í2 ÅÅÙbx‚©äµ‚–©Ù7±–6\"k%5˜%s6q0ñn4µ‚‹bô/÷æò_ ÜLËZÈyQ©{ÁÐè‰DZà-ÈXiëà”ZY¡X$Aù*K'd\Ú•GÈ +X–lÚÁ¯[+é©ð$l‡LkÀjOÞ"úRRø„ç×`4O†L¸ +JÀc®®/©}Ä`²3þ!i)Ùˆ–»`C©ô´=¤]«lx N¬äë¡òÜà1'–lÃá¤ã)ÅŽÛÖ÷FÂÜrºWh<7€äé}šÞP)³ÐÊ–6¡·"ÛU(2=„}Ã_piÃ3 +Mã@ÁSÙaÑú(R3/|B^$h?MÜŽ²Ì¾qeУIJù0¤K©×Þî%ýáH)H$ú;ßy£S~Ç +“»>ðXE»çqÆa/,¥ÐÞìÙvÑôb5™÷cÑ%ö#L}Ù†wò`ËÀ~Óø¾–&—iÁ…éŒs14‰ŽpÐN™Á{;ô(ò¾±vgoQGtÞJs8Åÿ|ó1Mgþ_Ï/?¼z‰)×|ÅlEoºã$GÄåƒÙù"öÇ=4|2›$³é<L<“ ï}›öþîý¬á®œendstream +endobj +1171 0 obj<</Type/Page/Parent 1068 0 R/Contents 1172 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 577 0 R>>endobj +1172 0 obj<</Filter/FlateDecode/Length 1861 >>stream +x•X]oÛ6}ϯ¸ë“ÄŠ¿?ú2¤kƒµ[·xè´DÛl$Q#©8Á°ÿ¾sIÊvØÚÂŽ*‘¼çžsϽʟCàïæ#Ï(+/ÉbAdzÅÅ€¦³A2§ÉbŽŸ‡ÃA²$#iƒ‡X~øˆGóÃÃ#,8÷è¯.Æã9ö™Ï“)•4ñßþ£ »‹7«‹ë&8ŠVÄ7[Ìi•û“´Êz«¤µ°*#UY'ŠB8¥+ªÎ¤µ¤ð¯¢nY'kK¢Ê©–¦ Lç’oï¨k™“0º©òËÕ77ÇõÈ–ë¬P²ráFG÷é>kêìì³Ixp@K†0L&ãõGÓdïUÞÛh#E¶£´g›ºÖÆù`²r2s
gL´U²¢Üàˤ—¼å€úÈÿ‚÷ø«sMüg˜bzM¤#‡l®ÑµQÂIjêB‹œrep–6OtnÞ)åµF–ˬ4ˆâܳ#œyÈÙkú-ìÏKCä´Q…´çVŽŸG{km#™.ºÉó/FUNšw|/½¤Ïwý_¿¼íìów¼
“gerfËç;¾L»‘Ó$rˆè©³3§ MÀÎX=Ž‡:j³ß2;÷ãüŸ+IzWèu!KK²Ê 3,ËûUeP˜ª¶þÑÛÒooŽ.jG{[‰¹¯EÆÂõéYK·—²j£'^QÂ(ÝX:ê)è?ÊÊ&ô„%pE_U•ë½¥ŸV¨˜¬hrÎ~ËŸœÓ«›vû$ †¯j5t{‹å¿ÓÃt˜,^ùRkw]N)C^Qδc¹H}nP‚Qa{z¹á«xäh–L˜×•§À'”+x§÷LÝ}…ïýN8Šhö¸/àHS”;„’Š4&t¨Ö5`ç +¨Ã²âP)µp;XðGH¶ÛŠ¶V¡MÍdÅn½QÎ|͇b6;”ÞíÆ+-×^KjÅk®’ûS¾|2ÚÊ‹]áŠ×ì8ÔJÊÜg.
_‚A4-’ÐZØÄÉI›{šeã +¤dÑtúód1¤¶TÓÑlîG‹£øû] {ÒËNÜ#+ù.ÁËrê0aкqˆÚ' ]2±|Œ¸a”ðÌ ¸ºòPÀ3šßhñǸ[7íÅ0l’ËMÀ| +y¸Iè+·uA˜)œ¹FǦBg<>:DÔ‰†»ÜâŒn¿z÷ÆwÒP¾}úÞLºì=:‚†Ó´³Ãip7»l +åàtàË/Xwm†‡KT ×_`æÑQ)¾ëï¬Æ¦£0ÿ«Æf~Œ¥4´Íæ@Çó¡€'^¸¸‰´Óh4i/†æóÁ99é%+GfÚØT>Ëàe®×4ZO&sÌ€¸a˜ng$$^ൄ§JÞõHJ›)RÛ +
†
+xµŒŸg¾N íÕ«
3X
Œ>/̶±ükÒÆËà¨1mÝÊ:uº°ÿ®ÐËþ²ô²0Ž„‰Éê¢á9ÞüD®¡Áµµ¥æpóå+WBK/oè@mW’ÇÒƒóúу{5\ÏfFÕgªÃVÀw¬ˆÃëM¸q¬þÿóJHw £<ôæzPL;¯cq®~}}Íí ‰³‰…&3ž6¶2©¤»æ Nùgñìø±þ,ù-·'ä·èúÓd¹XRvx‡¹Év®©¶ß°‹hïÃÉ¿ÑlŽ—ž%¿‘÷în>¿¹áø^%éÎqˆ=‹1õç¼ç½ÿÞê'óI2ŸáWþnÊ»½_]ürñÐAÄendstream +endobj +1173 0 obj<</Type/Page/Parent 1068 0 R/Contents 1174 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F8 11 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj +1174 0 obj<</Filter/FlateDecode/Length 559 >>stream +xSM›0½ó+æHxù†=nÔÓV‚ÔƒMⱩí„Ýß1U6½ôP¡ˆhð›yóÞóï Ÿª²ú1ˆIEžòºÂÿ)þ‡!Ø7Á×’šÒ”¤qe]¢¬¡a€¸8†¦›žÖRêY¨#ìš„á„Ú±#½VÃZ¾va¢†ŽÜqcâ4<bã†3p:ŒO†÷Ôa*³Ò—
õkVkEà“¥oC”d$E^áÙrp'>‚P øŒ/ë¨”Ô œ±ÒH7v(@”–$÷°É…t€qÁ× $‡6üÚîVH¿A¢ŠÔ^BD´iYmë^.ߙܵlÃÃì&5ªƒ+!Él{?*b’=&¸:ÒÍͼ…'zá(1WàfÔ•»õˆ1¯çŽÅ„àã}´A„ó²Ùó4iã@ï‡bò +íÍÔ°Eø“z:ÑNHáÞÿGSB&,íP};i-ífÙ•|Øî–@øÑgëç…°im7ÿ, 2?…bz¶ðyH}V{)¸rö»G·f+¿öÚü®4Œ›ž–p-IfÜöFt˜QÔ?Ãz„Ú°@ò#U(ì‘/[øèoë2èÞîH0>гtd_o LJ¼¥uIQ’º,|OÏû'ønôïÞŠþ<â¢K<<6ºB¢*~ôçŸÅѬáñ&=~ðkÞáWÍ«œTxß—Àç¥/}n‚Áf;Úendstream +endobj +1175 0 obj<</Type/Page/Parent 1068 0 R/Contents 1176 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1176 0 obj<</Filter/FlateDecode/Length 1439 >>stream +x¥WÛnÛF}÷WM‹ºX•Þ€¦Ñ<uyHú°$—ÒÚK.½»”¿ï™]êÆÄI€Ú‚$’;3gÎÌžY=]Li‚ÿ)¥3ºYP^]L’å’Žov‹ Í'ÓdJóeŠï‹4IÉJ*±vB77éáÉlžÜŸÌæ“dÑÛÜ.’—‡'ˆ˜Lú·½ÿ4™õKgp¼¿Z]Œï^ÒlB«é’VE0ÅüÅï2k×kU¯éÞªÚÇ/&Ó²r߯‚é4¦£›9ܯŠojoMÑæ^™:.šÓtÚ/š¥€‹E«r„— ·1ÖS!]nUÃ6dJÚ˜yƒ»OÍ>tcchÚ)¿¡·¢ÊDBÁS4Ϥ;³äèMo"°sóƒ×Òš +8ÞþùŠrdí92®Ù=9i·Ò^Smp{#ÉàÍÒNt$¬ië"¡;cÃ+±ÐIXH¾Ä–EÕhéƇ°…²2÷ÆvI¿t¶HæLÍ_×äu¦Eœˆ&} +‹t,´tÿ3~QÖ1R®{¨¥,ØP΋º`ÖýFøÀ˜na@!ç*rß +;*ÀEÝk ¼“º¼&åé¡E(,D¹•* +4†¨)“~'eÍ +®ñQS#œ;]ê'?zik¡é2°7š› +H‹Ë„Þ‹žú›¸¥SmÃìõ°JLönc +I+Om…ïÇcõKhÌJLevR¶(ƒx®‘¹*³Á¾¬E%Ý5“(oEiëÂ@Š0 z¹±<8éþ×Õ´º•n¨Íïx(ðôëZÁDnñ%“ý+ÂÛ)ç‘eƒ§1VØqšŽ"Ì_”ÛÃĆ„íQ«pÄ99d0ð£A8%¢˜¼¿H#V™BDLÙ\KQƒHä±ß8q2 +~Y‰ÜwÉå Uthľ2V6ZäÎœ¢Á!¡„—}ïá€fZ>JÌ}‰3!‚0^9ž}u9uÇIrÏsŸñ÷8Ã!'T:’•C<Î7Ì9¯‚–~Ù× 6Ûz¤Íuõðœƒ3Æãa;±g..º´A£r˜ñÝòx¸¿]â'G8ÞåwÃ<'é?øÈ1OÙÑëÕÅßÿýE Fendstream +endobj +1177 0 obj<</Type/Page/Parent 1068 0 R/Contents 1178 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1178 0 obj<</Filter/FlateDecode/Length 1323 >>stream +x•VÛnÛF}÷WL‘¤v€ŠEêbvá EÜZEQÄyX‘+i#’Ëì.-»—ï™]R¶n-ÛâeîsæÌ~=ˆi„OL³1%SÊʃQ4ŸÓÝ?³Æ͈&É$šP:Ÿáz~%d$ ;¢$žEÇí›xšâº{ÃѨýך§ tƒ™1”[ÑÇ<Æéq4ïì&Ѭ“Ñ4Æ]°¨îByÄß$‰â¾»7‹ƒáûcŠg´X!õé<¦EîCÑ";z+—Ízª5ÕFUN|ëe!Kûzñš)ÅP`ÍÁxM¡{ô±’´·ä4å¬4ƒ‰ JÊò[ë„q´¼E.u!2–pi%eº,E•ÓN¹
Ù, +²™QµƒÚF8ÈgÚä,ÌAÀuœDcv-̺)e9VÇ{˜BÐü@¯ü½Ï‚Vª“Ue]H’7Â{ĶUÐ7ÕÚR©ÖÄ)OBÊ#:æŒã(MÆÈzÍñ
çÔþ]§4te=´âZ†¯jzå‹Ç%‹CÉXóÅwÃ¥ªî»Ô +‘E>ªG¼3ÓTmCG¸¬œŠ(цJiXË.¥øA¼¡³A¼«ˆï*÷F(¢ž‚p˜ X»Õ!{k,‰iŸDQà÷âeL/Ç4>;ûþÛ„îÐ9èš5óMC³Y±³ +9F³Ï=e$sBWWgm+|ÿ¿I¾nœãFòćID¡„E¹ñl’¤tuÄ´½]íÕkÜ +ôDè Ï“ ç˜/¢+l-ª¥æõ´aÂíÖnÐBjÏòmÒC鲡·”‰:Ä
B¥A½¬Òv`E×Â(
¾¹G_¡z÷ƒ$Å ƒ%焽¨4–rM|0?>lü½ÝßKÈêývµ©ì!'°6¢d>Ì62Û¶ÄxW—p¼¨D)=1óVk,¥â¿®ÔŸ`%à“B¿ðï‘l»Èð +endobj +1179 0 obj<</Type/Page/Parent 1068 0 R/Contents 1180 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1180 0 obj<</Filter/FlateDecode/Length 1581 >>stream +xWmoÚHþž_1ßH%pyHýªÍµU[媻J‘N‹½À¦¶×ÙµCúãï™YÛ8$§žªB0»óòÌ3Ï÷'#â߈æcšÌ(ÎN†ÑbA‡·Á‡!ÍGÑMsü=šDsršÖ8;Äíö¥>;žÛ³cœ¯¾dv4žE“gfß._°üúêœFsZ®îl1¢e"ž‡´ŒOotYš|CUA…3y«‚Tž„äµ{ÐοZÞ¼¾šÒwÙÈ`<f0súÃV”©=åZ'TZœ/Ù’·™nÍyZ[G{[9ºQÙJ‘ßûRg|¼ò:¢%O¾t6ߤ{¤Û,Óy·ªä›ì^Þ˜½â¾Š*6©)öpf_Yíå+É…|amª]'²ûJW8ÞfÈéšfª46jOÀvÊžBÀNßWÆáš6pëHµ¹2ƒëS’O¢S¼_wMÓr‹<[;_ÑVyŽú(ÍÕE +ém½´JÊm¶cŽUøB\:àóõ·V3çÙD/-bèºÓ*yÖüÐzc[‚3^XÍÌkÔ¾C¾†°/„)ROAÞû¤Ë8Âë£AÒl~« +4T×.3ÞC"¡:K|ñ,ò#%x«ãŸÈe°î±èý.òï›È –9Íom•&˜—NÑÍÇ?>|¿&o6¹Jöæ³àÌ$HRÀQN´mÝ!@Ÿ4nÝ(‡@H9™†éöÉ®8‚²ŠVT¢M/Nz^¨>G&SbíÀ(©EÁµÕ<ˆˆóäÅ@¢frñήú„|ÌÚ4Óíá1íвMpS¼~½V(Ú9U tP9‹™"6;u4Ù Ë\ŸVA£AV6Þ¦Hkg1q¬Ö»c½âìƒØ(¶¨.÷ÞÓ¦àˆ¿½¿üüùžM½CÕ…sf³Å4²íbnœÊ3bŠÞÞ¼Ãh<J4°PâjZ®/ýcJai*¬SÎ`žøÒb"49°E4$¢›?á•ø<T“óÙW«Ì”““=†]š9ÏLó€ +¤ç»×¿]>¸³×5=0èù¢ñ•Ù/„)£)"ÀúÝgÁ¸?˜íq¼ÆLͺ +vpS›sé8JUt‚ñË]£Öò€Y<ßwÛ}½d¤nq¬ )‹…DÏt¯7Mþã;”[`§˜ýöÀ'NeÇ›Pµ^©A&yc +endobj +1181 0 obj<</Type/Page/Parent 1068 0 R/Contents 1182 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1182 0 obj<</Filter/FlateDecode/Length 1490 >>stream +x…WÛnÛF}÷Wv +A›ûú ymÀ86»ÕäÊ—=|p`²ˆæ|à½5ÛFŒˆÜ%bc·YŠ•å› +áî]QTX$µ†qÆ“?˜ÐTÜšX§•„È~˜¶ð³‚å…BÒYæ,öºu + ³þŠP)W[í™7uÀ7´VÖ¢$õ{Ô`*ûÐ|DÝ8Tm“¾Ÿß7²By·:Ž¬kh@ñNǤ@°Ø ä«œ\¢îò +q4o/ʶ1[(éšËd]ãÏGÔÄ"È"AnØ tXÁ{¼ñ;º¿`ÞÚ{Úi•°³¢õýËÆ{DG÷|Ê·qiêöR{Š4?èñ&ÕŠ¢ˆ«Yöý¦êæ'951¸\ +endobj +1183 0 obj<</Type/Page/Parent 1068 0 R/Contents 1184 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1184 0 obj<</Filter/FlateDecode/Length 266 >>stream +xeÍnƒ0„ï<ÅÜšJÁÁ@1µ•z¨Ô6~~BìLU޾뒞*k%KóÍÎî~? #ÉPA$"dq!R¤¹âÌ5Úà ƒÝs© [¶d¹„nÀxA×›*/h¨š»®7ݽ>3B2äé0V"c~óÒÂee¿hÅáúë„Æš;‡]®[åR;Ã5pÕÈћߜƒn6ÓÓ29àƲf]àHäÓ9S&"ö™ú&¹o·Ú{ÎëGª±ŽšßF•/'¼žÈ½÷¸=ìñ6Ú3ãx´õ<q¥ëñÆðUTxþÿR• +•å|–¤w=éà=ø)l,endstream +endobj +1185 0 obj<</Type/Page/Parent 1068 0 R/Contents 1186 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 584 0 R>>endobj +1186 0 obj<</Filter/FlateDecode/Length 1816 >>stream +xuWÛnÛF}÷Wô°iëf)òÀIkŽÛX@¢¢X‘K‰ Éev—Väã{f–¤h:E€Ø4wçr朙á÷³ ]ãß„–SšÝP\œ]G«þ³;<\ÓbyÍh¾Zâ÷é<ZÕ”âì5nwÿ}úýlÍqvÝPAó9~„‡œÏf‹ZL¢ ¿\Mñ3<ñÛ þŽ·°½ÄÛé|š'~{ò!¿5AÍgœn‚Âm‰éÝúìêÃkš^Ó:Ef7Ë ‰Ç:®mæ”ë'»óõW9>Y†ã—³y4Å…ñ]éIêØg¦‡æ4™4‡¦Kd†CªØ*ruUëù=@1ynY¹#Sñ]üÕÈ‹]n¶*'Wl£Ø”)UʪB{mƒõkzÍÆßlJ—S¤Ÿpñ%Üû'œš†S×t9A‰ø½kòyfeLoè‹Û+«ÖNÛÍ8Ñ©ªs¿9ÿ™˜BeåO•¸Æd›Öeëz)!Àô_¹VNÕTÛ6‹.üB•HaÇ [ªÿ–•ø½Pœ5©2i¯$&®]zº}¸{÷ñßû÷÷ïÞŠö¾È9hÎe0gSim£¥Š¿í¬©a'Ñ^e¹#˜
ÑSaMmæûç¬LÌÁ¡î äŸÚnµ5®=ß•‹C¯›C \6ç”á¦v±Í¶:AZR¿··—<|^?HäQúô„V©R[ó¤/hÔ9|ƒ0퓶#*´b2앧@«ÖŠó +Ðá0ñëŽ×MdR¥\AvT´€#ŽWj›k GºŒí±ò¨z›Ò +±ÔÂÛô4Ù3=f9oU¹ƒŒ!6Æ2ED¬ÃCæ÷½Œ®wIU•5* ƒ²Áx)åÃ|±Gx`ó}¨¼K¤5b`¼ä9·ÇAþ'\/ä,?7®˜Ø¦Ì‰^(ð¢žÐ)…Ì\ÂÃ^ã²Ë ã@ÐÌA'Ãv÷ +Û¦‡†ŽkRûgÓÌ:ðpSÜJ¶¿:}ʸÁ´ÓH1Wãá4ø;ätƒ¹‚Ž*7+•mcob“S©w†‘„‘¦[1˜˜iHMâ.1V¸V¢€„¼5ÊÊ Å±®<·«¿‚lð +fqjlðª5ÆÚÞfÜ;ØÿG‘ËAœ6A™…qS³= +ò„ŒièÇ[‚‚«©4"nšm·‚@äAÏ„ò;‡aw +Uº8ÄÒ®+Lt»f¹fÔ4öÞÊìäK‹{)\`ÕüF,SYº {MÓb‹1xÄ2Ð_ÜdGÉsš³é!ýüÔ#z4)<œ´E^ø í¶3ÂED\Ø1»Uëp +endobj +1187 0 obj<</Type/Page/Parent 1068 0 R/Contents 1188 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R>>/XObject<<>>>>>>endobj +1188 0 obj<</Filter/FlateDecode/Length 1040 >>stream +x…VMoÛ8½ûWtjDñ×ÚΡ‡Ý +/JöZw.Þ»Ö¯#œeZø¾K{$V(¬”O]v³æÒs¬)Ð`w!¯‹%À¨==?=ôv™è-ü@±©ÿq-—k+ÈÎŽ¸ºËfÍ1ß qT^&há© 7ÔÍaÞÑKuUu„{7¸c÷sQæö„ª±7ãœyƒgBÛt^×6óç†g“”KbWQ·ßc^Ó0±D{8ËÕèD¢½è3Æä©Ì¤É“; +endobj +1189 0 obj<</Type/Page/Parent 1068 0 R/Contents 1190 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F2 5 0 R/F3 6 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 591 0 R>>endobj +1190 0 obj<</Filter/FlateDecode/Length 1413 >>stream +x•VaoÛ6ýî_qÀ0@bŲ;)ÚIÓ
t«½}™÷’hK$z$Çÿ~ïHI¶åØ DÝÝ»wïîøÏ ¢~"ši2£¤ŒÂÞt¾þ2ˆ¦³pNÓhŽ©¤q4oš§‚ƒñü:œP4…SœN®F8õO|z3#šÂkœEÓœ¹>:zÄÙlÒ~ÈgwËÁåÏ74Ñr
x³ù5-S‡ +o’ÀȤֹÝÓGJU)òŠð»e,h¾¾[~sÖÑÜ['S _¦Á¯*¯òjC¢¢§%Ý{Ë]n³Îvìm§EíxÎØöÖ˜º”´W5eâE’èl^ÉHý"59O‚ž¤½{ø² Jà{µ&ï;—Áâó×?£Ó0¥$´¤o'›ÜQ2=u3¢a4ñYÝyì¹» ]–'€àüíþÓ„Oø¸çÌa³;E±HžëmKx¢*«€iã½7i³õ8&Áô)@œ»ûOß%á4ËÀÙ«J@ae<ƒèPœ‡Š”NQ«…d3Ù +¦Œ·Â˜]JÃoà4ÔüÓ?üÃ[¡O¼nÓR4V«ôÎ øZñ
½ï.:Š¹ƒîŽTrÈÒÅã\øG\+‘ Û–kð‰ªŠ=•"ÉòJúc–ÈÇI"ƒŒâ¨‚GA·” ++baäêå¦É/¤%œ{ôãÿ“bÀ>8@¡6è`×1È¢‡ ¥Ç%…ÞRUWöHä좒Œ_è=muþ’rƒ‰4m3æä\4ßW!=¬ñø5µK]½àÜð»º1’)“=±‘o«¤ÓÁ{â#Ó¶ƒîåÏm‰´…ô +E“Ò‚V©Ú…´hâvnWÁ5ȇRiŽ”RA©´"/L¿7P"Eù +ÁñøKå‹,Ô¶”à0Q©£‰fE3qx’©Úò¤cЖh) G@«]£¯Úb(×C=òX‰±„e†²²L€Ã…t”fj+Á84C/@/âB’Qp8ZJ£X‹*É0F\Åy†Î«k^Ú(|h3êMv·Ú©)&ð·ÕʪDüuå›Á‹²’;ZVVïz©µ]tæÖwù}Ô솼b-b!?¤Æ<Þi®e‚°ç·~j£°]A/òNÕEÊŒa¤i¨kH•Ò%FÛžÞåemôe¡°J.7—Ü$¨(ûþ®u¾:r×£…RφŠü™‘›&lÛúGªþÀ{öËãíÃ=Ý>~þɇëvaÓaðÁs¶ðûô Y€÷71CêýUž} ××ë[Û¢²Æ÷O#éób¢^hAÅÕá¢Ü¢„"V/ò@ +u5ñ»úí:ðp7€s`G´‘?æ(P“SOëXB¥Zn‘ øÍcy©.yðatÜf´3㚥}fp‡ÒҚЦñ)¡ÁwûË+Ýën+X6jÇÓ-Þ/F÷@+üߤ®•q&ª=)è]S^ÀеíЖûÓ‰<,x21š£ýÓÝõ¸±Üˆ4{ceyáÌ)ß
¶ŒX’~®€/A&˜¤˜–XÎزŽÊ~ŽOjwÑŒ* ‡4´•Ü§^“í…÷AɃO¦¹õxz¢Fó†¸WÁ•Ÿ‡þ +|y
Éî*7>‹^â0ƒ²v&·<ô‘òcl€,;¬G’ÕuVkMýA»t1î7§úצP±(þƲKlŽ)Œë«§¼É‰ëÅÅm~Õ,û#é5À}¼ë׸ָKÛÙ—ŒÂ“Ý\â§ói8Ÿ]ûëÕÕ”=}^~ü=’×€endstream +endobj +1191 0 obj<</Type/Page/Parent 1068 0 R/Contents 1192 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 600 0 R>>endobj +1192 0 obj<</Filter/FlateDecode/Length 1674 >>stream +xW]oÛ6}ϯ¸ËK½!Qý)ÛŠ!ëP`N»ÅE1,{ %Úf#‰*IÅñ¿ß¹¤äÈrÖ§¡Sšäý8÷ÜÛogêãÏ€¦CÅ”ägý¨oþv6GCŠgqÔ§œãþa•ÑýY{ÝÉ(×gýîdM)îÇÑŒïÎgѼ^ùÝÖ:§a<>Þĸ;‰§ð‡»ñ<šÔ+·µÆÝÁäp–wÛkìÙo°Ä»ÈŽF£>dz)>‡øg$ýÆ`8A°a„(Fc„9@0
ïëeÉ{óã½Ã{Óy4z¹w½<{û~Lƒ-×(A<›Ò2õÈ÷i™ôîä³£d+Š$·•ôãò+Îëó=Úió¸1º*é]ØjLõ(S…$Uøko2½Ù?deâ”Æ—¹Šôçpirð9ŒQºeÚk¦Û‹cã}:œ”%üåø +‘KÒkÿÿTçþw’pýªU¡ŠMÄ–Z÷ÿÒå•u$2«i+žBž¥0°ä¤éf,‹ÄìKG¥°1¦ö8²2tœ]øœöÀööòä BÃ}xXkC{]ª¬4HC“¨KáT"œ¬ãpév9Ï»%}º½é&ó^"Ëö$Ò”z°›ëT÷?’è&Ò$€€Í¢øŸëwbž«ˆùÇõíÍ þ9<†¯U˜åVÚP9η4*fO¢Hi%’G®.o¢gt–1t÷"_ Ú©,#áœÌQ'àÅ'D☋ðï#쫵m98nÙ‘"ÙÖC„>°¶~AàÊI¹ØÓN>pݘº‰ÀÔLpÍ…ÓÛ’{ƒt…»È½ÅnLcOäºØ¼A—W8\§ž$óB}h>,›¯Òšlh&¨C)“>çÖe×>P´Ómh¥6Ö +¬¢[·:½ ÝV¡<;è‚bb¤U"SÆ:p"Åè,Ó»†/u&ò$œ·eÉ%Ÿ²9¾®“%0ÕÒF´ä”‚s’ +—
J”ë,Ç(Y´ß—w÷” +'V°5Åç¬Hý +›îøl!Vl nÖu~ +®aˆõ”¨d¾B kQ„׎ͺNº”=ƒá6Wψ¥Æ¢+¯Í{¶1#¨Ržh¤5 F7¯¤ÛI^ÉD™¤ÊQ¶"e˜t€â[¥pQй÷rîsšÃG‚š2äP<¼8¯<ÒÀ·Iu«¡3‰`/dwÊ%[ĉlÏC ÁXDW¯?!$¯4H!eÊ=µnÐîÐ…çLá]>×Zwh«`8¢k›µ¨2‡~|Éx…äÜ:u[•¥6'(Ýõ‡÷‹»åçt«[h”2¯’=5d·\ ½áÌü¹6A˜°š`ëŒî+lYêÚä¾s<yK@Àim.½B²N–6›z¾‹ƒL
É©YcS„g™–>8d˜}&dc£¦ð©Š®Ãl +Š†ËçD–~LCÉ=
Ùáù}дb#Í9Îy£w-(Yf‚wµïÂ[¸Âð‡ëŒNœÆ«úA¢ë@â—ž{N‹Å
†—…JŒ¶zí(8d˜qª°:“˜gʬ‚NyPß¾E‘¾l÷a&D +è1žäIÆZFïêÿ%ˆZ3·¶Ôé¦2Nùݬ±?\IƒŒðP¼qÀBJÿÒyP0FzõÂì…6e¯+}.Ôóˬ Ñœ°é ågža0jÔ–ü„jzxtÄÜ×½X‡È7»Ã'F®‡D˜§Ú«°Öø‘Å4Fš<;Q…”C5¨ÈbàïCbD7O†ÅN;W¨š2)<(k•I»G;äun'R†uOVå*¨d‚uÆãsU]WßÓ*ó\Àá†Ã;]e©á~{Ùl9”€Î¬Ùø•¯?Q<
/ÜÕâúŠ>ýÔÅáFéðè‚ï]6Ç/§ý9?mÁÑ÷^Ä1~£Æ3<£8>™°•_—gœýs’«ïendstream +endobj +1193 0 obj<</Type/Page/Parent 1068 0 R/Contents 1194 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R>>/XObject<<>>>>/Annots 607 0 R>>endobj +1194 0 obj<</Filter/FlateDecode/Length 1294 >>stream +x}VMoã6½ûWÌÑù3²] ‡d½)4ÙtãEzè…–(‹‰ÔŠ”ô×÷
)ÛŠŠ-›„"9ófæÍþLi‚SZÎhSR&Ñ_Î?¾þ>X®£)Å‹8ZPIÓٿê çAwÝÅ2ºîìÎã8šÐ|¶ŽbÜ]Ìæ°V|^h>
vg|1,x«³Ä½y´ììu–%¦Ñº³×YÍt¿£Þß$Æ·Åj ß3ü¯%eƒÛí`|·ÀyÚfÈF¼ZÒ6õI˜Ð6ŠÆåR;•§ŒÆ•´Žœ!A/J§æhéqKVÖY“Ò„ãdE)é(ÞIØαõ5™ú|i½j/ý²ý>˜ÐÕtÍàyx4M‘FíÇ'Ÿ +)¬„÷Nà›Àû +²ïÖÉÒƒmœáDòj¯éÛãý_Ô¨ agÏ8ÓƒÓ‰q°A¬íÚ4•h›+K‰I%á·8Uˆ]…¦Tdaª¤]-t’KKF3äA”†÷F=§»ÆÑQíøÄA¦B-CÎv¬1ºŸ¨-lŠô ´{É·Rúª` HxÒÔʽ3N—·zfÔ?»S!q +AÎk]åÁF¢ª +…)ÃS#•A<^HôÎÑ7ÞÚ1vš2g^yúô<Äþè^¢¬,²ÁƇÙéeŒvoUn'’× s|€Yvd†Š¶B}IïÔY¦#*Å+ÓE|¬2ÔWEƒ~xp p8J}PµÑ<dÑÉ¡ÜÜT>+<±{‘žGêø.>?‰®N¯Ç/ÛÏ¿ò®R>0…YÉ¡žáo”?5Iãÿ-œ©|ªšx•_êý"wn/þQZÒJ7o/¦.Ò%ýP+ú 7Æ÷òøxÿ<%}}|‡ŽïV-ìiŒWÞjNóõo><¡žonoè©6ß!Õ´iÁùÁÈ!].\-'kÞO\Nìé 4›àu¼ñ“Õ×k±\DËx…G#Ì_Çlåóvðçà_“!Ÿ©endstream +endobj +1195 0 obj<</Type/Page/Parent 1068 0 R/Contents 1196 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj +1196 0 obj<</Filter/FlateDecode/Length 1596 >>stream +x¥WMoÛF½ûWzrP[±YrzK‚0Ð8n =ä²"—âÖä.Ã%Ũ¿¾ïí’M§(ÚÂ6l“»óñæÍ›Ñ׳¹\ák.ë…¼ZIRž]Í®äz~=[Êòf¿ø©µdáÅâj1[M_¼Ýœ½|ÿZW²É`kµ¾‘M*°s…'Éù'k2£SùÅíœõ²ÕM§µ•ÏƦ®ór·eSùtwûû‹ÍgWr¹XâþyëÝñÔù†>æëèãòÕr¶à©7[ßÔ*iâ¥ÌçýÅâÀmô®VqV\ÜLR;ï²fH“×®Ý墤íƒ.´äŠq#è˜T×HGɹ+ã¦ø¡}þ*†epG7ºv;mµk=.–UÛ0#m÷¦v¶Ô¶ñ’¹† +‡ç)õL>k©jíñ2f´ê3:—nŒÄèù®Ó¶³¸Â›\˃*·j‘oM£y BPµ*½ '%Þ)6.\}š7În]"¬è\Z¯y‹ÅSVx·¸'„»'‰* +!÷E»Û)•7-BµIâõ.m$“¸S%2ÑõÞ$øÝ™&É$̸nT³‰ÓÔ• +à#ÎÚ‡ãU¥0†QWið@3ï<ƒÔû|J•äÆ¢›Üx©ŽKª}R›-’fH£€¦CýÁ7º¼ý*à›5æᬵ ‘U…ib¿wbŽð +y´®C±sÕüC+äj¯%5Y²ƒY¥KuùZëž¡Ì” ÝIvè£ + €ße¬/+€Ã#“NrëÐ`𲎄ê!ïB)2ôwhÁR¥šÀ1,“´Eƒ +O3¶»5h:'±<D“tG0žö\}RY«ë€-ÁZAò fG• Ʊ9"£à-U‡“€Iée
LF©Ä‚·!Uà’$®e›ÃÖÖ5à/x¸÷1tXÃ!Ü/^ ý,Ï;ô¤’Ì ¥x§ª *웓ÚÒÐ’¸ð=¥‰: Y²Ú•ögš¸»Nïu
z¢ñÓ”¥¡°A9;vQHÐkf›ÚÐKô,©“:%¹ÃP¡¥P£þZ¥¼÷SœÇÛZm
¥6˜†Õ.7DY)´ÂM×&ÐlkþŒ,ëëIÞÏþG
#Î~ÄàA½HÈÛ +ÌÈ¡Ñ0o&Åë/ß'ý ¸\Ïn8ÓÁä/‹ÕZâÛAÂË£r%uxóÿÝð}_GIrewäáü?ö/7³ùëF·©¦0rüG_ª‚u¤r@[OÆx¸t®-Ò^œ(¡”jë`á8L=ä¾É]ñHîÓ¶*†¡NŽ5´9vø±òäxo)ÊEh!tRÒ('>¼ÉHäG.UZb®pÑn¡°ˆpÊ
,‰-H?An4bÇ¢9êèqzõÏåà8÷Ay¿#ãhò¢œŒ¶„‰<‚ +@0úïvÃ߯ÏC`7<¹ïÇãSÂŽ¦Øp0:é‡8³ñªW\J»Ú…åD¶¡Â®°Gõݺo¨MÈ?k‹by©Ë-ðC^Šj\+fòÑbi¸à;ÅÒu*8v\ò€¦oX€{ª +Ô˜Òa¨bP²¿£Íät,çÖÈò1ž˜¥!åx+[®H$W§8Ýð?0¾»}ø‘óäÄ!©‰»ô{é,æ×x?ji¤‘6TN_XæÉH d{ ¯¸_ræ1–±b†€ê|w1&ÊL +ç±4`÷ÆôšD ÚGÝãt½&¾¶3< ¾å¬ +³U}øòÿwŒEŒÆ°ö;ž9Ñb”+Ž²M1¬5j±¾ÂlµMß•7§OLËë?¸ý‹Ïk¨î“,×ËÙzuçÏõš~ÞœýzöäÁÂœendstream +endobj +1197 0 obj<</Type/Page/Parent 1068 0 R/Contents 1198 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1198 0 obj<</Filter/FlateDecode/Length 1655 >>stream +x…WMsÓH½çWtq2U‰cçÃ1GC–Z Yb +¹´¤±4Dš3’µæ×ïëÉv”TmdÍt÷ë÷^·ŸÌi†_sº¹ Ë¥ÕÉl:£ëË9~^-oðóœ¢Møàr9›^¼õÁÅâzzõÖËåë×'矯h>§õÁËZg„À³ÓÉw¯œ'k¨)}¿ÿò“*Nm¥j½¢ûµüåˆMF¹³mM†+剽ÜQgÛ2o¾3Üèz/oM߯Ìèl~‰ôÖÙd-'äú´°¡.q“·¸‰›x|¤2Jv;³ë‰$ëHm•¡ÒæxÖȹQê’¥kÍ(,Ç”~žýÐ&³yå½Få¨#é^,€rL +?Po²ÙN“2/#®ë²OÑÇ¦\s¢KÝìÀòr‹ðÂXÄñŠìY˜´pÖè?žš½ï¬Ë„MM§Àô˜%4¢£ôùè‘Šo,z0^õ'r`RÚ§I/õWÍ~zúsþùÍA{ñŠ38ST +ʬp|•,Ê)g›˜©D]{À-07¢{\æ+%, whÝ©Ø–ŽwB¨ˆ|§Ð¯Ö±‡å&jotÁBSHÕ±pÓ¡ó›˜S$ ¯B³`%â ŸDz2”¡Ü¥vÈ*´Ò‡,ÝéÔYo7MÏ•Hc(´YÀ‹0У|G°¼â +Ž¬Då2‚ìE¢û´#åQ$éA*`”ÊU”Êß,ƒ~HVv$˜éb+]?9z‚iÂùt.ƒ1ea®Li©ìy$2c:7è´1¥”îcÖ° †ºîgýx„¹”½LaB« +E– •2!Á£áŒúAÙëÑÛôâïfX2 œúÝ‚&¡ìh)„1í?[Ê•Q"‚0żûÇÇÐS¸ç¨±H1ýLŒQŽy‰ÿ— 1çx*‡ÂXÙÀt;zˆ–T…cCýÀ}S>u:Á+ 5æ"ëÆÀ<´rìzž}^Ðòƒ$–‰)}BFouVúú
ì)ábjÒN±ó§¤6À LÄ×Ñ`åDhØr¶ìÂrñÈU´+©RU"ÛŠÊTj35¼4½H‹QdíÿäÙw÷øíáÓ~úõftà`@Rú\YTÐËkÓ©2tÖÖÒbhæ0@¬W^Œ½ß%E\iÙf±¬ØpÚt*ÃvñblF{#¨-q¸_Šÿæî3…"@]6¨l…”¬,>˜×¼ +endobj +1199 0 obj<</Type/Page/Parent 1068 0 R/Contents 1200 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1200 0 obj<</Filter/FlateDecode/Length 1819 >>stream +x•X]oÛ6}ϯ¸ÈS$Nœ¤IÚ·4]>$ËfÛÛ@K”†U’Šçýú{IÚ²œ¢Š ŽLÞÏsÏ=Ê÷£)]àß”n/éꆊæèbrA—7W“kº¾»åÏøqšª£ó£óÏïizMó +Wnîð¡$¿¸ yqò¤M3í^ëÿ¯ëP¬~™Ã•kšN㕳Ë[\9™¯4½qú”¬£§Ùì”jOŠ*BÇa¥?éœöºÅÇ–ÕnèëÓ—¿ÈvÚ©P·Kòtã'ô%2Æ®={¿ ³éÕ䒽Ƹ^Y×àŽmÉ÷ÅŠ”§•õ¡Eøþ¦kƒûµòA´%õ^»½KÁÒB£"ÞšW]RålCe]UÚ!º±OÛ»B#¨ÏHMÿ£šÎèSäæL+c[ÓX[÷‚gT£6ÙzJjϽøƒíjDh+ªŒ»jƒï|°"Ï€‚[(CòTjB÷ÔêÀžqh@U;:”´„”S¾oD4JYâ8Cº¨""h©°ï
ÌÒÓ—•*¨ÊLèÇa•ñLѧ§'úŠð¡Ü¦‘ÇAG'é«ËÀ7#m6#Õu¦.b};g—N5
ƒ¦nƒv•`#dh]·‹šãµ;¼¯MÅ0AÕ¥Ÿ\õˆ¦GBkÎ8V= ZK‚3©ÉÒÙ¾6þL>ñG¡ +@ÕœJ‹n©3=ûÚPp=h¡ÌÏÑÄ°²ýrÅ!mh™MƒÁ3{LMzW«ÉÚ¶ÁÙ8ZSPó_9ÿjò;9ס8o½bœ`ªx ³ã €ÀI5"¶Q/LF@Ó÷^c,ƒ•¨´øÖXûÒwRëÊ-ᇌ§ÿd£Ü—õªO‚3‹• T¸˜ææÓ`Ãæ¥Puy*†õIpÇBÊã}#(Z +s§á S2°j)Ó‰šyóXWj‡RIð1öäXª3jEí?ľ¾l½ÄFñò‡HÂyì£ +R…¶Ë&ñ/Ï4vÛ†´ò #ì}ÞryÀò +ÓËË úklpÀA€Üj]2³â Kfcä]ÆIàH{ØÉ·˜ƒñ±¥..ZV–tœLÇ°ã¹ ÆP£Rqݪ ÁìØÖoLb`È+˜e‹0Ê–Ï#¥H£†Šöìjeóé—KµÀ`Ý÷l6díð(ã&{b7D<³¢kv
ÛÜxK/]£Zžžï“ÖMÚ”Û¯>8lcm«}ïˆT>`]ýoT6A«Ö»ó±¬·ì$³Du´õ¾æÜ +ïÐ\ÜÁ‹Ã•-,¾NSò0–‰¼:D*ò•K=ÈŸ‘Xj¼¦abYŠB’
Ö¼È >‘Öð~ŒÐ«Å‹ +endobj +1201 0 obj<</Type/Page/Parent 1068 0 R/Contents 1202 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 610 0 R>>endobj +1202 0 obj<</Filter/FlateDecode/Length 1778 >>stream +xuW]SÛ8}çWÜ7è1ùjžviYZv·¥é°ÙQl%Ø’+É ù÷{®dcètÚ¡Xº_çÜs¯~hˆ?#ši2£´<&CšMfÉŒ¦‹9~㯕´¦ïÏ“é[&ãQ²xãŒ'ÃæŸÛOG£ñûäœÆ³s˜/i<Y$£æÝ£ÅðµëË£³«)F´\#ÚÙbNË,XÒ2=16“6¡e®)í¥]‹TR)¥#‘eJoH–;µÏ¥ö*^MNÚÂɵ±t¯ôJ錶ÒîI +·?%QäsáqUfŽ¼¡•|·|8Ò`4IÆá$3Z¼†c°Müýì +
¡žT¢üo-'ÎÄm'Tš¬.ÂýÔTJfì¢gà¬P«3'ÓÚ*¿?똽~»øB©ÑÞš‚Öª@ÚH‰wBµ²[¡}›5JXë*>zFºæU‰¶JP› +* r v¶À c^¬®þ8¹½¾üñ.ò©WDØr…Úä¾ØS¦Ökiqaûþõú_Úå*Í)(-Y¡7’Ìš¤m(Jîb½—ûŠÝ0(e¼Þw®ðw¸òw ]{N´êØуYq\`í )‡8UvˆŠ†À)'âêöÜ66Ù<¬Õ¦¶H +m¥¯†;˜ôíòcègÄÕrPÓr§|ŽS½pz´…ãº<›å,`8 +gÿ2»S"ÍC#úìP{Ù‘ÜBG=<H{Ï©ê¤Äü5PaLNè+ +І +÷Òáˆ,´èt7—DèùMM •Ã9±,!Üý=¸ ìF{㬘¤Á=À“æ!¾@ƒ¾Û˜P/ëL¹T`çA4Ð@ÌM´qøðÙe¨BÊ
}1Š]a,c°ò^5˜L£T\#CˆOdûøØøM¼Ö®1a0ceÃhþÂèaÒaÖüirMK‹6‘=`9á~wZT`)ÀNPÔ ÌÐ +kWêóÍýò¦l$凗µì5÷x4“.µj…˱À éÇ®°ã9.gbkYñp¬éèC”o|í,ˆØxÌô +æxÛC—q@–ü
…ÿp…šÿ4v;âEDJ¡«_¹3…°\€J¦ yú]Ýß±¹3~h.Ðc¼ÖB¥ÿä_‚wÒÆÑ.´W5ú™çÄV9TýyR´û2ÁTB'[™ ¡a÷í0ï™Výmïš7Tè(ãù2Ž@"¦PØáû°2+ÂÍÂ.aUîÂÜC0•{º•Ùg¬ïs<2¢ø÷³mª¥°+,ãèág:¾Í~:´Üá½¢Õ±Ë Ï‘6h,¦¨¨†r÷IîŒÿ +2ÌŽÜÔ@ûlt=…öc—„„¡g4øŒ"å+ì‰Xó$0à‹‘Qí¥6½gRz„Åp%±«íðÀpB è8Öh²fªô8ŒŽ'&bÀ¢¹fÂÇ·B`º€jåPjˆn¬jó´— ß(K0–tZi––(\‹ +endobj +1203 0 obj<</Type/Page/Parent 1068 0 R/Contents 1204 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 613 0 R>>endobj +1204 0 obj<</Filter/FlateDecode/Length 2021 >>stream +x¥X]oÛH|÷¯èÃ=¬H”(Ù’Œ{88Ùø6{òâ—!9gMr´3¤µú÷[ÝCÒ4“Üa±b[æ|tWUW7ýûELü‹i³¤ÕšÒòb-èj³ˆÖt¹Ýàç%þ;M{~€¥ý—Ïÿ¹Ø\G1].VÑ’JŠñýºýTЗ‹ág<½¼Š6çƒÏxº^GÛáÓÁg<½^D«ÁSŽpµˆñõÛqÔ*ºüöÁv‹Ð»/îÀyÐrÅáK’ë
¢“,ßîƉbõüö’â˜v{Æh½ÝÐ.$´K'»ÜxREaOžê\Ó—›»·7¤²ÒTÆ×NÕÖQmqzq&[ÉÕ`aU›TÕ¿*uš+,.}·àÓnþÕTËov¿],h3Ä»lòðó;Úóq¸ft†ÝSfKeø´2ÑÎGÔBÇgª,¶:hG•Ö‡”«gM^‚Ô|Õlp—JSÛTuRH'=kñâùíºe°ëknÉç¶)2J4rV™©ˆe6mJdýï°¹C”ï\®Áò(¹ÿº»'Þ ½9T•Sög_ëò5¬ÈñÞζ!îLy,4_À7†h¢½)$¹A”!RUF'ãsÆâq²WÆ"¼)ÎoÈTµ>02¤ÿ +œîk‚=z79”þã¤ûÕ2Â?R°Ô=ۆa_y|3EÅŸPZ4p=6¦J¹FðáT ê=£LéÒVR3{(Pîìµ{ Øæ, \Ò dp`¦ F,â¬a'L,¥…EAÔm¨¥qŽ½Ö +‰ÙQ‰)LÝùôÛ†âs $ ¶ ?eÜNº(øûÑr‰–ŠS2ú’IµxÑ +qX²Zµ?C÷´ŒAÇ‹œ0“糯ßÿo¿øIŠÆ×BÃ_8Áuãn”bʸúTþÂ1Ѽ£RÓlÆã ¾HåýÔþÎÞN¶áŒm«Ùx…?\áµm»ŒÖ«ãœàÁÙßðb‚q+¼s‹yï,ÆŸ:ÛÍ6ГMÆ/r—›Ëh³Æ_Køá:æ=ïw¿^ü «~Yendstream +endobj +1205 0 obj<</Type/Page/Parent 1068 0 R/Contents 1206 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 628 0 R>>endobj +1206 0 obj<</Filter/FlateDecode/Length 1508 >>stream +xW]oÛ6}ϯ¸@QÔEcÉ’¿‹m@º.CÚn‹÷´%Q6IôD)®ýøK‰²ìØk;±MóòÜïs©¿¯á/ yHãÅùÕÈÑl6Æûd1Ç{ˆÿRRŠÅ‚o勧s/hEÇSoìdG€õÜ[+NglÖIYùß~¾ +Çà˹·¤œÂeàMÚUFw̯18˜,œá‚†3o + ya»b fs4±Zàê‚»èöcàäd·ì÷ngxs‹8õfdÝÖtdñ‚q +—/&Ðe¼õfÅ!?‰–»Z¥ÈÍl1§Ub£9¢U<Xm”¡Ê²kŠö”ÈTÔYuMª0•È€xóþÍ
VôrõéÊ¿En-ÎÀ¯Még:™oD‰fÛ©xt'%UI¹Àá%ÑqË¢•Ò©”öºæs#cs•v¢¨¨Ò'êÎån#Q723Ò£w•µ˜Df4EµÊ«j§ŠHIBò³ŒëJD™$Q$”©¨¥’Æk¬\vÁÚ¬AïºHÕº††F$p~ÆìTo¼ÇÇœ}l5‚.ðE3aÿVîÌ¡BÊDÂvMe]°Í¹©Sc¼%Bæaµ)u½Þ3Ò2\$)Ö[Õ`W•´-õV–Ô7'“a®ÉèF‰ËpÏèRëêÙ©iñ–<¯É½ot]ÆÒwføðßÿjÃâ!IüÓ±=üwM"S]#Yª‚±4F”{v%M!¥:Ë4 ×döy¤3#’ÅÃëo3;+hh¬9¬|ú³^´ü¦H¸UlõÅÂHÒ)Ý!•Fg(8óÿl³¥¢§†PÓt綼à8ã` +˜£ßQtgógÁ‡†N¶kÂËjç÷T}8 ¼Å(ü’úÜ“Š±–9˜§–¨¿œ¡zwMÂÇ€ù¦k™ ÒŽƒ6ðewUÜëx×È.H°¢ÞQmdiûÜX ¦í½Ge“OZêüi[÷úÏ1VcÇAMÓ߽߻‰©‚æLë´‡mð»H+˜Ë.£ºª\òDÀ8‡ ¨©·À'ª…Ú×V€ú’×vŘ<%,¿²±ì†w_ÞlD¢w}ù‚6b=>Œª¡³ln-¼DžZ} +n™‘³ ¨+ƒâ0§²=g CS gè6K˜åÕú4±ˆÁÛ¬¦Ÿ+çV;²*•K®¬¼d*™ãÊ¡Ø@©Q]1!þ©ÀNI÷G\…‰.^0ѵìoOÜ¿lg"vù\.ŠšÍîòåFx7MÎ6¶o0}ç +
éZ—rÛOß!Ê=¶7¦[sZtÇÝyñ(Tf‡-¢ê*Úö†Œ7ÚP$â„â"ðÿk±É£3-س÷N>ÊRd´¥È%â‹:Ç +Ô|\ãÞó”.é²$°†mèñM®•¶×UÄYœÎVGdmøþXg:ÙŸddÌ…®Ïs‡wjûñçy?œÛxpÎa…À Y¡™»„ ¶@^QQÕ†^¼zqÝðÙÛïoÞ}xå¶0œØ¨
ƒÔöÆ3 ïéKû¢–Ùž±"ªU‚&e¶Fxq„öKŠâhb6ž}§ +Y‘ˆùÖxÿ’cÒO(y›qqm𑨮 |^û°¶¨üçoýç¿óAÿÏmö '/¼Ù4 ÙŸK~f4O1¿”úšÞöŸfl¦ƒžpcÎGh\ö¥áyK ÖbmècmGÇd>ñæ3<û²ÈÌÞ\~Z]ýzõ/•óa{endstream +endobj +1207 0 obj<</Type/Page/Parent 1068 0 R/Contents 1208 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 631 0 R>>endobj +1208 0 obj<</Filter/FlateDecode/Length 1174 >>stream +xV]oã6|÷¯Ø^ââ,Y’mÉ P¹|Rà.×F‡C)‰¶™H¢JRv
ôÇw—”GqRZ$“\îÎÌÎòÏQþ„D0‹!¯F¿\Âӵƈ—sóe‚ŸÃ™Ÿ€â°Â½ž~üóûÇQ´ôç¸9öc¨ æö(ýWÂÝp{:Y`<:Âý}dX`°ÅË…cé…‹à1Fœ¤…tÁã¨_øÉezÀ)¤+ fV‘ø‹x iaK ÍdžWMɽáeùSz?ÃÏ0ÍD=͘ÞÐÓëSCŠãu¼èÔL‹ñ¯RÔ`6îÎ?}8ÍÕ–+0Ò~÷åò +Y1Q»8ó.N€‘b„Ï_Õ†öc€•,K¹õrYU¬.(JÅøËð÷ý¥OL`·á´»(ê._Þ~:¿ùüüö1mc֬ⴄé "JG®`/[ßD]Èî²Êfù¼¨D-´QÌHuäÖŸmLN†i`O§Ä–C£ÄV”|Í58é8ð|ujY8@OIi~t«‹¾d˜¶ZMK™³rªY•1KfÍ
¨&§ó¾ÂU\“"=’
¢¸nd‘GqÏ•Þȶ, ãgðŽ4Á‘><å +bw”•wßÉ ñ4€ËÅâµÃ¬W.CŒß¦´Íõ†R/ +(¯dm‰6\æ‡ë1ÍnymZV–û ©v¢,aÇjc+±Ú;é*M×ám:W¢±;Xk°'Œ@‚Ê=ò¾•ÆÉŠC}»N“¬‚Ãj@½vG×L k)ux#µY鈢Š$.Ý·øxé®Â]ʬ{%”6>¤Òå‹ðow@Ù9×@^í\T:IóÌAøŸ„Ûƒò*7'°rÇöX3S¬–¢°4–‚`í,D·è
VŽgHq‹¿jëMÇ÷¿³Ë
ãð7¬oz<‹W³L7xå Y°¥Š6çÄLƒä¸„qßÄj˜¬Ë²#¥7ÏY-à‚3ûû,‹ƒöý,wX¬3Z*Hä0jOÑ´¬8Š7‘6©2RaF†R«¨Ñ9þZ±íV¼ömÄ:[á9úgÆò`‰y5Èê[gØ/rõáëæ1œs|7¶XªêqÞt ö# w¸GñÚÚçE‰“mäâêöý÷DÐC|iôëY«ŠnªV>¶ˆñÁ‰{ã1+¢Áþ•™õ±©¾¡>D{ÿŠ,=Óë“Núi}›m…l5×
Î#œ@ä•TûÞ©O°®Û?ø÷8L{ÓÐœíøØ;ybé@~ Eæ¬Æ¬šp&ák}‡H4ø×J¢Qjp¥de¡èþ…ƒQºWÏ,BÃÇGN1>:w×®Êî©äÙSÏX¼´/7*õκuÂÿeËøë²BèBL¯—Ý8ã…/Bˆ“Ä?òœáQòžç.eÞVèŶi);/Ä÷b°œ—(Ýbœ¢Ôe´ zᶵ:š's?ÁÇ (žÑÉ«tôÛè(#Eendstream +endobj +1209 0 obj<</Type/Page/Parent 1068 0 R/Contents 1210 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1210 0 obj<</Filter/FlateDecode/Length 1206 >>stream +x½WmoÛ6þž_qÈŒÆÅbÉ’ßCÇ]±æe±aXö–èˆD:$×X÷ßwGJ‰ãØ]°·0,ñx¼{îyŽç»½ÚøÁ †N’b¯‡ðø¡oð¡
ýnDÐð{¯Œ@s˜£mw?|T¶ÝA÷Á6FûÊt›Û(¡i/ŽƒÄÑpÍ/à»6tG=\é
‚ž÷r<Ýrf8iæsˆ‚n'†>ÙëašºÐÚ0Mš'§ßŽUÁ„„%Vyεy=ý´×†V„Ù¢µ3:áÚÂe9˅ɶ[\%/¥…Û<œJËõBÃwÛ¼Óª\À¥ÊE²‚Í™U.–²:1œt!Š(£–O©\jä4CàK™X¡$ÜpË¥=€„Ij 3¥á)X¸¥s˜5 æ0S6ƒ\%,&S¸Ÿ½6î醢2Lõ +lÆkt:ALèÌ3µòU¸û
ö>T2î]2ÕJÙoüj¯ZmR<*,˜1ËÔ/ÖY®mýE•`2Uæ©K€¹Ð1f1lukðù–ÃJ•žß¹MÂmÞ›Þ‡Á˜¹ì õtðé/â‚9
’/É3ñ¢Ê¼©9„÷™©‚C*4O°d‚{àR>gen1pžç&¨¶×hPÅÃm6sèa©°L©’XH,»GêjtŸf·†Ð×Àu¾üÎÑZY†¾,ñ™r!…
R0–i‹44‰ë¨NF^It^×ïú dùÙû|R/*4¦æWËŒ™ ™nT¸ )ã2Vrž¢§;ðx6G½P\›žL1{æi·i&·˜ùð8Øzt)%⎴VÀäî‚´MÅxPoUgËÌí!qËEIA*sO—
´HLŽ…fe,/Ð{ÆWî<R—Eš!c}¨µ@<C=ø!&çWkL›Xz³Æ»<ý½P¿æ‰3öÜŒùL0Tå¥lXšÖìr%ò^¡˜‰º<؉!\o„cø]ÉeÂ8[mÇ?,§ä‘[Šx¸i³¥‚‡”õ¦Ý.j͵*\Ø~Ã#ޥѡkv!êoÆB$¦7©A_»ÖôªRw¾r5…WøƒÇž[AäU³Þ”LJž¸vµâ^0Ä{ õâ|]7¯_Ãï_Ý=Pýýðþ|üvÿêìx‡O2- ý+Ò/u”mlã÷"áæ
ìÚZI0Üñ1…ž;¾¸œ¾¿8¿ÚqüÇÓéOGÞ6¾Û±NáíXò©ÿ墳 ç¾(µøäö³ï}»ðÿJ·.‹-Œòëü´~…†ß-~‡cb‹Õ/âgo:Õ›ßàÕ+ì6e’AxÏœ +endobj +1211 0 obj<</Type/Page/Parent 1068 0 R/Contents 1212 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1212 0 obj<</Filter/FlateDecode/Length 987 >>stream +xVkoÛ6ýî_qj3D’%¿[C'@Ñ¥Ýfcûw¨,Ñ6ItD*^°õ¿÷’’?¢6fÃ2HÞǹs©ûš‹6}]<túâZÛñôH—´h£×íØ#tG=»·×µ]¤n“úöQ +w´Xw8 E~…èsv=}žKv½¹0²—Óg,;×mŒ0]Àµ»}2ßë1
€6¦AŇ+q:ýRkÃr)’Ù½÷a|^ÿpsY¯Ðº°4ë“U¦O–ņÖZ’¥<`ò
ªôïxS ‰ça…߯¦\üâ7®øa +ÄÿÄ&÷óý@:ÕÜ¢™‹ÝS£Y~¹áítŠOxýikçÁOHwŽÌæòQ:2ž'e¨W%$e*K©ˆ9˜_õÚ¹åíeåýeyÓgÔ;ù)—¹T®«»bñúº³>&¹ÀE†„±J !_<BrM¢™Ñl9LO¸²CGúñÜ·u[±tßARù©ÊÖAÊ×ÊÆ;…Lf~=B$ô0ç–nôŽíi8”¡~šþÃ<S+‘E´›\eQ ¥ «{å?04à YŽ" +ƒ'ûÐwü8™4¥ñ£<‡úñ €3ü‚GˆDùd3µÒÜŠø#1.ß”žv8ny={H\§°
}®ý„n4r´;¹Û;-Ä=×6UâÜâ¬8ŧ‹T©¤œ »ÿ
£BùSTÓ,Q¬Š
ìo®l.øŽr<ÌZ³Sü³ïFŸ™”%~LÉ×S„I9k19;=°[*®yxþ¹ŒÈYK¢þ5:[ÙeÊÖ°6hº/T‰¬ŸHç/à'Ç9)V°õâs…Ó[Ô›²ŽWçÄNn›8õîŽá!±¬YÍ +endobj +1213 0 obj<</Type/Page/Parent 1068 0 R/Contents 1214 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1214 0 obj<</Filter/FlateDecode/Length 1489 >>stream +x¥WÛnÛF}÷WÒ¹°HIÖÍ ‚"ij4@ƒ¤±Š¢€bE®¤H.³KZÚþ{Ïì.%ŠÜ‡:€#“s=s梯WCàßf#ºR’_
¢ùœŽ¿Ìh:¼‹&4žÏðy6ÇG#iÙ´¿²ƒè.ÈŽ ߈Òd<‰n/½¸L¢Ùù‹KŒFã£q+çÑ(ÞÂÞÁït|ˆçøâíâBøñý€îh±¢a4¾ÑùN¦sZ¤.Ë-’mU–•F'´SÅRiz½ør5 þ°A–E^½ +ÏFÃhÊϾ¼>—’ÉFӋ߬XË—Ë*‰U¡ª(È—"²Ò<IC‘„©èoü¯KúçŹ¡ƒ»&iEÂbñýO¨ï3êf.3DôY:³ªX{Á1äÔ‘ÈÈ…ü~E{]Fï¾ÚH/8 ‚=²ùÒåß7ʽ›®LqA†DôŽ¶ÚX¶ìQ*d®K¢¢j£,•ZÕ‹Ìnt¥´”$–™¤JS¢‹B&ÔvárYnÁ$ì@¥ +¡™šLZUŠ¢ØêÚ$2.¬…dsJ£¥Ê€åÚìi¹¦OÚ•üÐ\-ÛMvFëê;oîØzñÆW4ÿD‰¬>uífƒÇietÎÉw+rˆþT³´çÝ„Ø{ÎkÏ“ŽížèRy¦q +ýÃfà¾Pc¤ †ç,7$Z¤M\[óœß0—([5ºXí¤$®o˜.Ï:µ§^Ã:i9ùEõ·øÞHùöá]ß–2Q+•ðô;§h9<;ç:6µóT3°!Õ<ptÕ:”lD±–)&¡æ™\5cÇ£ÓTØ—
ÀUßM¢9V>"⑈Ž‚|Ñh)æŸ4TXŒÉMÒËמB}¶À>˜á&I¢kÌåÿoô¸Ïw:ƒy:ŠÀ>Pû=³eñM#²ÌíÉkGl³x)Ý•À‹€Ü>d.Úä"kòË5Әτ
ÂØ
Vc`>ö°Naöçnx[i-¶Ìã5šBf…¬Ð»PCð¾\Ue$*c&ÅÂF…ßïnÒ†p¬;4à +endobj +1215 0 obj<</Type/Page/Parent 1068 0 R/Contents 1216 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1216 0 obj<</Filter/FlateDecode/Length 1343 >>stream +xµXÛnÛF}÷Wâ>È€E‘º«€:m
øÁh륀cE®¤I®²»´Ã~}Ï,©‹)ß*;2 XÖî\Îœ™9Ì÷£ˆBüD4êRoHqvã1mßÌBzÁ€ã(ÑhŒ_¤9ΆÔ{ADýñ¿GQL6_ÁpÖoµ™^—ïV‡»¸P[yÊc—¿¯O†“µÙÏSvڰܹèÃ5MçÈd8Ñ4ñžCšÆÂJcš.¥•‹œf’¤°*-ÉJG…Uù‚ÜRÒÉôÛQç‚s`C-›Í‚XçóêÏkû-Z¤z&R’¹3eõÝ`}…œÌV©p’–:“‰2»©Ý}ÄØBLM¯éâÎJdAÒ™»Uã>ÍUºÉ!^Š|!ršDšêzPùLå á‰8–Ö’ÊIP&ò\²*S©0|ž³µ"›‰:ž¨t96ÐUy@PÂÒND©Öw”ª; _ÊþZåÒ„‘‚~¯ÁÿÂ(Ü’ª—‘ße¿:©šu¬Œ£\É Ü¦Ê:¤Õ¤ +õ)uá•â¨53È{ÊFž¶€;”Ã-5+Y/ÿ˜æ±@J,õ8pÍ:ßa '$!¢O¥ +endobj +1217 0 obj<</Type/Page/Parent 1068 0 R/Contents 1218 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj +1218 0 obj<</Filter/FlateDecode/Length 1189 >>stream +xµWkoÛ6ýî_qC +Ô²e;²²oîº +ƒÙtBÐ΢˜V©‡Ó*9MM!3Q³&Ǿ/V(žÑÈj5*Äz¤yb•0»ÑO—ËŨfåÄ×@KÐ3jw·J›»šiýnõy0¦a_`âô¤÷Yé¸ôK*—Úè;ÇÍì!J“sÕ!j»ÙˆDðÊàîhoEµU + ç`~¨'´HiA±dËx ¶=2}Õšè@µvã#7½šOãô¬¯}8ﮆ{°gîdÁu÷çƒ MýǹÔÃìë°ÏÓãèЇ;ŠA¬Ã>ç£Cî(:=²'´äZY½¾”:ZºÝø¨Ô–¦'tƒN¸•*}=¯“Ž˜k¢~k¯ÈßXãOàzŽ>…{¹SÓ©öýAñ¬*‘´u-•¡Tô;Wk®¤¦¿ÏüI)f\ oOm•ÈÒ5M2’¬æûÕ·ï^2¢s²vx¬@ÔŸáÿŸZŸ½æ˜k»Ÿ×å¸È]?i{ó°Ð¦Ê@îsoÛÕ^ ×ßiÇöˆX]Vƒ×¾|ßv`ˆ]Ì(ÝÜ6l·ádî8LU—Ä +-‰¥)Æ4ÖÛL…¨8±ÁX„ÙˆFžæ
ª&㆔HInˆU•Ü‰*£TÚuÁ©V²¬veØ)?
&n”ë<ÓAûb3÷âZn14jÃP½;i-Y¹fô³ãE‰¬*žgÁäJÚ,oÖ°º.ºš69ó;ÝâȬ;%0:ò˜c÷·9º8§pî$Á„‰qØ[ÿ$Ja|oð³çƒlXÅ"ÇðŸf꣜iÈUÙÝÅ9_<ìuüÆœ«\oQ¼àLƒÈ=Wþ„ñ$·œrYs×y$^ q·qc
H÷ôjô/î{LùÃN¯ŽØ[+v$+<Ø=sap]ÐùÿITö+Á¤‚‹ÐPï´áå{Äßä^L×3µçãçàýÊ™f¼Ç áÊ0áìÕ§'Ìt{Ú&9¾jñÖ Üë÷¿ÛóóúÊCx!¢£‰Ø#§z6÷\ZÖŽ¥n»¼ÛtÍ Þ’«{‘àïV˜gUJ7…Í2¯Â3ÿ£Þ%S‹ñ³g¦u- UEñ»æˆ‹«”Î[87ùëå²Á_\Qöddô×õ忈v•JÕ¤øè"é*pÄ!MÏ›lºDsr$rÍ¿žMšKÏ +ΕHppÐN!<•[XÑŸ—}´¼1‘z¾•tW5[d·¬¼Da. FÊkPŒ¯‡žë˜0Èðd›ˆg+g9‹SQa‹¢W7QלW´ÞíÛ]:«;¨E©p·&[øUA=¤¶kãã÷"„m7x$BܪNã >ŸRÍ‚qä‹s¹¸ú° %?£ÐG™XwpûjuàÃ0ÂÕ6žÒp>Æ5=íól>渫⒚žF±ÛòÛjðÇà_´Ð¼endstream +endobj +1219 0 obj<</Type/Page/Parent 1068 0 R/Contents 1220 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj +1220 0 obj<</Filter/FlateDecode/Length 575 >>stream +xeSÁr›0¼û+ö˜Î|tÒf¦gÜ–N{èE‘Vz®$âúïûö¤ãŽí±@Oo÷í®~/rdüÉQ-q[B‹,ÍP«´FQW¼^òÏi´ÓÆ]Q§ËËûfqóX ÏÑ´±IYWh¸Q–¡‘WƒØïí<¨…3 +ðýéóOðò´Ó"ìÄô’lÆò ~g<ŒmÉ
"²àGIÎû ÈAiµJ?4/‹$C’ß2ÁF]=ŒÎiúãÔø`ì³± +Ûõ©‘aiKA¼jaVBJmÀž¼7Ï\s ÷êÃ-øxO“fÐî4y9z';âYóW[xÀ3àS ƒÇSƒÑkç'Ò7ò$]R¥uŽó +endobj +1221 0 obj<</Type/Page/Parent 1068 0 R/Contents 1222 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 640 0 R>>endobj +1222 0 obj<</Filter/FlateDecode/Length 1684 >>stream +x¥WÛnÛ8}÷Wú² P+¶|ß·\Úm°mš6îv,hŠ¶ØJ¢–”âúï÷)Ù²ÛÛAlK"93gÎœýÛÒ +\H“ã¬J¬2E[]¥| öi%œ–M$ÃQpt3åÈ)û¤%~ÀœËWï"Q$””TáOä;"Éu¡|¡R8·56!UH»++m +>ÀÑ2U'V[œK-݉åàîpJB”ŠB`°Gè¬õäñlòx~ŒÞ +Sà”göÝß\“÷øÇÆ'ƒxmºšuwˆ—ôòòݳˆ®RÝÚƒ50ÁÕ¥²N%@wµ8˜BùÐûûpfÑ<„óÖǘWJ«å +±*0Ž+# €·’‘¥XéLWšÓlHÈ*”ÎG]$fh–4F±³’Ú€µDgýñ<¢LÜ= Ñà9m‘gÄT"5‰7ØêB*¸»ÖRÄ[‚øöc×~ßU»Là˜øª¦Ìl8èµ5ùÉ.Ï«ö x +ž\jê,ñò¡`µ¯^ôË~<E+‚Ÿã+F]ñ£¾x)¥è£¤¸
ã˜Çx:k$}ÿp_Ìe&$;(öÜ[|ihÆ®ÕH4eêIÝJÖ©ûy[VUV«§`.ƒ~s¥³PªÎ¢êúB
ÏXˆÀÁ¶_.î–G¡ÿ‚7Æ{òxf@;Ù<ž‡hÁß~þäÖÛ =¡öÉíP™9•&ƒX(߈þoÆúñ<.Ü8¦V©¹ÖÊc’±XqaéBf5KpC_ÖÐFO¿b]×sh9OTÙÚU?äï1Ã.ßÀ^‰°Cãñ#A×ä98<5CƒëHEàe&‚oý{.Ü-9CŠ»ÂÔ qr¢mØÇuѪþwK£-ÁË„Å !è“^™>pA¼*Þz¡®ÿ>—PE.@nÐ-,¾¸¿¥ÅäOeWÊšP5¼}£YÍŒÝ};èï‰Á)µîCŸoš¡®õh¯ +Üv±@Ì€*‡/ž~¢e÷?ÌŽÎ÷òЛöš–:ɧmÐa/7ÙÊH“y„Û¶zp¥)©† MõòÎm¨RõD¯×8“ד»åø„-Ç›™Z)R°RªØ7tÓØFõpPÎä€Eç{±o©rÛm]ÊJt?òŠÌwø…™Ë#d-¦Ä' =Û#Òm¨†ýØÌ ì#éc>õIF^ßq¹×ôk€ï9•™b0%ŒÙHb`©m>LÐ ]3Q°È²€Ê‘8èÇ“# ˜¡OB?O¢*¡3LòµL™Ï¾y´rúüTŸ“ªdE„· 4¼VÀ¼U´ôj‡ù–ÓáŠ+•Ô˜¹üv€…Mæiµó'AéDÅSÅ¡‰@–…W‚0Ï`$ª3ölu–'dñ“
FׄLÁyD[ã›9ÛòóÎ+Õ$š&Ü}ìý®#l~<G³é<dy6à[/–½w½ÿ +endobj +1223 0 obj<</Type/Page/Parent 1068 0 R/Contents 1224 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 687 0 R>>endobj +1224 0 obj<</Filter/FlateDecode/Length 1463 >>stream +x•W[sÚV~÷¯Ø—NOHÂ’h&Óq.NüPÛyéÄy8HP¢[¤ƒ ýõýv„¸éÔ™€V{¿/ßÏ\šàŸK¡G~@q~6q&D3gJÓ(ij‡ÿµ¦%#@ºÿøôáÌŸùÎ%Þ$9M'3'l¡ŒÎ†0°—¾ã±ØpêD¬áNð.'¿X, ftõŠm¢™ëÌZƒ§aMb²çué³9Á›¨XŽÅyãºN@—ìqSxÇú&±@‹XrN.|æ@1Ô#CO„‚Œô¸ÀCkÌT€çÍD¨U(ÀçÏX….ÊB=2˜ö +}zœïŠ!Á`ó¢H„Fl²@{/|ž +½÷–Ò†LI›"Ñ`QE":+U«\¼¢BǺiT½cIM¾pbØçÐ
mÓ,c#&4r¹d¡º(
)ct^Zë‘þQel7;2ºÖh4Ík½#…ç¼Ä‡Y+ð'úûFí(.Ÿ@—°bæï”S®Š#Å•Zi‡®Ë<Å“.R]Äúå‰Võ¤i¡uAYZ|ƒàmjÖB¤b³QY¯!ÑM\§•IËÂiU¡~¦ìãG6ASé*¯2M6‡’ŠóÎNûºËÐ9-aI"ÀOˆþo댓ˆð=y¨|C×çUV.Tö¥5A†^þ^ÑÕ¤15ºFðeXpÔ×ô¨#.´Y¤%òˆ„2öœ^·{$ZÏïï>ÜØÁåé U\/«ºÜTϳÞ^}º½¹:`Yõò¹·u‹ìËM–p +áa «êr™fºùýÔvËͺ3ú¿Ü>>vL€6Œ{Ö«ûX4ýÚкÌ5%ˆZý˜J(KKÔVnjXØ †l.xxm +΂2ÿjgR§Oûöû(m?d}a†¾0lÛû§ž4•ŽÓ%¦•.t™`ÅÙ fÓŸeâåqXÌaHÔ:âÀ¼¸xw÷pq!áåIÎã÷3&‰Hþ‚^F™±©‡ý9ÔÛ9"ïœ8OøÅQ&^
–‹ˆcÛÂÁ lºA°z;N-–ÃxÓÔciàqÃ+tœ¥‹qç³dbA&TÙ®3ûtblÑ׋£‘28¢…QIžÊb_ã²ä~âoï%9o‚ƒ2?²êsWɲ +6g¹¤ªL#7Ά5vÚßX¯vá« +endobj +1225 0 obj<</Type/Page/Parent 1068 0 R/Contents 1226 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F3 6 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 692 0 R>>endobj +1226 0 obj<</Filter/FlateDecode/Length 1719 >>stream +xWÛnÛF}÷WÜ‘‹ºÙ’Ü7ÛiÚq’&*úPÅŠ\YLÈ]ewiYýúžÙ‹.ŒœI“KÎåÌ™3Ã/'êãÏ€&C)¯OúYw¶?>ürr1fC÷ÇÙ”jº¸œfýxUÑG~ž.¯FÙgÃIv/øhﲦËËìjïÌ¿6ÁäÅtCü3’ÞÞàjòõÁÍì¤÷ê‚š-8ÖñtB³Â‡Ú§YÞ™-%Yi¥¡º±Žl³Ziã¨Ðµ(UúA+KB$èlö Æ·7ÖùKIçÏÿÉK‡ìRnæñé.bcÔfEç~8žD[éØŒ€hÇ4—äf©Ö!Ú¹ÑkNR›¿,´¡?KUà6åU)•#§‘@.\x?¦)Ç֧×·½¯¤°h.`/²ÇGaJÝXz+ÝZ›ÏtÃ>Kõ€Pò¦†áJB^5…,h]º%^,-¥u¦œ7þ‘µÒ‰²²Ù1Œ†ãì☺Ãi6¸¢îå…P×–>Šz.Àƒ!b’–”v¤œ‚ \׫J"ù’ÿß…«ô`t³¢Z¬VœÍéI©¶è½…|Ý[‘ÿ¡Ê§tzßñ¹"]#EUmèKSÂ÷[2ì)ŸVS ˜Áä²+‘Ëû³sÚè†o5Uq|(u˵(jØ¡ÛzžåZ-h%Œ¨‘d¨©€uª‚4sÄå8ÃÓ—Î×lž’u›J’ÈsÝ(—ÊpEôÆ$íŽ.B
n“;‘/K%if¸I®ã‹¾/~Ó¥b·žs6r'Æ>ìCÁ(w"=ü ×Ǿ¨Ep༃ZKœn¹¥p|¿±^Ñ€©Êy¼¹èùÉÜ}ÇœƒÑKÁøã-s†[Ø2Û•B—dôzÇ Ø4z}sè
ÿŸ•^Ã"xz¦5\ƒLvšÒ\žÁüJX‹.*ÀO¼“<ÌWä!ž÷"R@œPE绿6P;ð«n'ÌÍ{NÒâ½Î¾ÕÊ]UÒd4ãÆôˆzC¥ÛÐü`“ éÊÈGÖÀÔ(U›ò_@œÝú±à+ÂÍëwIñÅÂ躅ç§H +N$ÙsåÀ\A1¥õT‰‡\—^ v,´Íöû‘xØÇŒ õõåo¹L jÏ "´µtõ´5Ph‹Œ~•*—ç¨HÒÎí3Œ•(¬%0*©–õWzÑò,RŠs™dB%ϨF+m-çúLÉ᩹%Tv‰Â+ݪûö +lj½þÁö‚µq%‰;"`GŒ¥¾õ›4Ó÷îè2h™:IùKÁ/ã‹Òð§“+Ö¡Y¬³çDÕSóðùþW]ÝB.I
ü…À¶ŸÏ÷Xñ9¤ÈûZÃëz0p™¾[è±\³íà‚ÐÐÒ¢ð’f^øE#L§°r)Þ-™iP<^m[!ÇTr} Sä F|Ö0^AÖbÁk¹_l½)UóDs|{˜ïÜÅN¥7Z»Ú™õkzv^*ü"
gÒ} Ö†nA½B>öTëæÓQ‚ä4µÖªÏ¼Óø®÷j‡Y×Rí.Deã§]z{ïÑÌ?l¢Ûá:•‘ù—ã™É¦nÕõû.¦1«ÁŸÈÓ/á»òãõÝÍ5½7ú“ÌöŽo8®›^èNúWLýÐ3¨Øñ†ñÃïøö¿·Œ^L.²Éx>}'Cvôóìä÷“ÿ +endobj +1227 0 obj<</Type/Page/Parent 1068 0 R/Contents 1228 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F3 6 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 697 0 R>>endobj +1228 0 obj<</Filter/FlateDecode/Length 1655 >>stream +xWioÛFýî_1uRX,ê .;mØ®ÛuÒÆ*Š¢.Š¹’6!w.iYýõ}³Ü¥ÛAQuDîìoÞü|Ô£.þëѸOñˆ’ü¨M&´ýS,ðÐ¥QÜ‹†4˜Œñ»Gc*$Í!ÛÅíæχø
!pF9FÑÈ?dt{(ìÇýQ4ñŠû¸ìôƃ ~öûÃh +½õëP-§´1U¤»¯2Nþ#ù@V˜¦UŠ ؼ{½Uì€îf+»aÁÎö½ax‚Sš)®K¤Ð勳“ÏdaGwÂq³Ø2¤dªF3Q,°\¯æ@~*n“‹R!7ÁVÉòÀf
™èSÕ£×µ¶µ(ÐÿbáÎõõÐ çà«çmܼ=~¯Ûˆ°}mŽé’û!›‚ù¿dL¹ÿÒ›ºãºlî.7¨ +^7¹µžV~0x„G~ôã;±ÙÂèèw»ÝÚ¡ÄKµ1'ùã‘ÜõGcîÄŸöâI49‹ñ8‰FC,ïiëöÍÍ:la>âûƒ®LRñ:ì(Κ14ññ9‰©=î:ùÿÑÆãA4áó–ícVûýôè×£ _—oendstream +endobj +1229 0 obj<</Type/Page/Parent 1068 0 R/Contents 1230 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj +1230 0 obj<</Filter/FlateDecode/Length 1763 >>stream +xWÛnÛF}÷WL +‹ºX–ähaËq!ÝXQ@/+r)mLr™]ÒŠþ¾gvI™bì4É
/;3gÎ93ür4 >~h2¤³1…éQ?èÓèlŒi4àç!þIñÑÕâ¨w3¢Á€1?;žNhžï÷iv62£b#©´ÒLdXX*4}ÖÊ_%³‚/ Št*TvJ*‹ôÖRntšãùX‰0Ô%žYD¹°v«Môvñù¨OÝÁY0DÜN±)~S=©D®etÌè’îEº$¢TeÊFêIî,;*Á)2ª«»Ó7¶‚‹çˆ–´¯Ì¿‹²Ÿ¤Y¾¥´´$¡Zi×ÿþæ ѹäðÚV% ÅB%¤b®ªL˜C¯µFÕ®‘|Ð0׸8ÌŠ
nÖÏÙ.“ˆ3°²Æ[Å1² +=ífhúZZJeVz~¾€š×e"•§´*¨•2?ÜÈðÑ5k¥¿ÒñÌaéÌ ÝT§ËJ=•à¯Èƒcšs. h(,Nü¶M"îàËâMxÊ¡¾÷Oj—P%÷ª!5Õ¾N…½ÖÛŸ„ØO‚}µ80+3e
¥Œ¼PV.Çâ¨é5d›®ín§KïR¶Ìód÷l.Ù +UÛË–Þ¶Œ–oÀ{7aÅìî$˜ðó4˜²Ú—Ãñ¤2’`bÄp‚i0¸€“ŸWVþ¤0ƒ;£W‰LYå½7Fg¿Ï¢ÁÐé'˜L8w2eLJ•…IÁÑéäÍ þ‡jn0«ìjQ5|è’Nšºw—b—C+P|ÜëñGü¯e/ÖQlª¬DžË,’Q@7FÊ«ûk>™õ]³e‡kÖh¦!Ü&»³øIluvéÕZsõq´—š2N®ØF‰U•:C«+mâòÚˆt/¬T<Âñ|eå:%€Œ Wxæï#F41¦z²è^ïSjײÏPÃ9øDî—‡Ñóz¢Ð“Ê·þZÝ ‹RFˆÙHFDŽÎßù°€nMÚntRåíA¯Om +Cendstream +endobj +1231 0 obj<</Type/Page/Parent 1068 0 R/Contents 1232 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 700 0 R>>endobj +1232 0 obj<</Filter/FlateDecode/Length 1833 >>stream +xWmOÛHþž_1ªZ5•ˆ;!/ýr¢´¨z +„Tí
Ùb{S¯MÈ¿¿gv×ؤPU!ÎÎÎË33ÏŒõBá_H³ˆÆSJòÞ(˜Ï©ýUÞáû`DÑx,h2:ÄïhR)iá®?ý‚0(œM!0™Ïøþ¿$zõ¹7sZ°ÚœÂqŒÝCF×½Î#Φ‹ggí#Î`dѹ×>æE‡pÃ`Gœ!(oÜžµ8›‡Á¬s¯}ÄÙb„³ö1§qxLÛ³OËÞðtBaHËc;Ïh™Z´F´Lú±¬¶Rô K£taª`v@Ë‹Ï$Š”ªµ¤/'GÇ—¢HÖ”èTÒm¿Ð +C7<
Š +Ý´ãiÊ4˜Ÿ?ß±–â],'Ûè+qÛ™ +ý¥‹ð(Ó¥ +ûÀèÛq\æ–TS]ȃ=ÿ¶< ˜$›ÉQ4´õĬ×gæ{ÊÄ¥mé¡?°0Õu£Kðè€;g¥îšñáhF[ßç¾mîT¥Îh• ®&wŒõÕnlzòd“éÐ0ïë±|Éæ’olR†§#Zðæ“q„?æø‹%ÿãBIÿªU‰jõ?\Yæª +ŒÝåZ˜^ÙxDN™Ÿë[ÖPX×xy‹Er¿%.ÔU¥bËð,`ý·›æ#§ÝSEsÿ¶‘bÅÛŠÈœWÝ)¸Ñnùb¯iݦñoñôíî +Þcî3L×h_T‘›Ý~S{Ea]¨ÇßÂIw¹2å<uÝäÒ9à>o»€•säý5™Ùß/ä¤W®Ø8½/rn4™óéáï.ðþÉDó \ð,âNêÚí0ßt¦^@˜Ó¿•š
˜çEÅ”8ÃÛêå¼Æòo}ÁÐ-0rËÁTÀ[¯[gUŽ)‡7‚Š^²q¥íšø}þdÉÈ>›î”»g4´#ƒŠA~ø3¦$¥'SLé +úoÖ–l±8Úôt̲±íZ@Š¨:kBb;
J²?„°gJ<•Yb³Óë\%¥6zUÙü1¨þeà‹ìV^Ås_d
M73¯oOWyk'7ï:ÆmNwtbw.»ÌOŸOh¼ô=›ÏsO4!ºy¾Ót5Õt}tþéˆcþÉ/nÇ:©9µ6í¶¦C¼:æcÌFà˜´ÿRÎÄøÂd6 fS¼Ö³ðì¿:Yöþéýø‚ë(endstream +endobj +1233 0 obj<</Type/Page/Parent 1068 0 R/Contents 1234 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 705 0 R>>endobj +1234 0 obj<</Filter/FlateDecode/Length 1838 >>stream +x¥XÛrÛ8}÷Wô›<[6uµ$çe*{×µ±“‰”Éì_ ’0&.ZÖßÏi€¤(&µ;S—/"ÀîÆéÓ§ùÏŘFøÓbBÓ9%ùÅ(áIûãËß/&ãi4¡Éd(§Ù|‰ßáSF«‹ñÍ2ZÒx9‹f¼:¶Ÿx†h¼˜Esš-ü¾KIÛ‹wë‹áýŒÆcZoÙó|¹ uêh\®
%¥N’)I¦ÊÑOëßñ +ÌùW.µKŒÞª]T˜,,5Ö.éh*Ê+먲’Ü^ÒÓšV²|‘%}6™JŽt‹¦¼ +/Þ46 ¶ØW$_eßæa¯’=)ËϯGtíAY§—J'Y•Ê”Êí;Ž6•&æumoøfÊgë„SF÷œD´ÞKÀ£,‰óHÉh<zZ,Á0ì½~4¶RNl2 Ø<€Jïúq|0¹P:8PÒŸè”‹Ëˆî« •W$2·7Õnï1ü¦tjàÿö¦Z"4m<^g°àˆÐô‘ëÞ¹‡!W|ƒÊ2> +€K‹"2¡Ë‰hÒXʲ®<Ò³<"&ñÝñÀ³Òц—%§““íd^d ’èæ Aƒ+¿¼UlK“û'’øÊJÓ^…ÊŽ$µ‡“àsÖ9(ç$¢qZâ´ë–¥B]QbòÜèH¤y/ï°úÝ›¥µûÁÞˆ|òÁþ©•ÔŽœ¡¤à»ƒaÛøþÆ6(IïÅ—¼‰cï)Ž•ÞöÃj8OOKv°QZ ¡Ì˜gO4,äTi iL†œãIyPVF½hž*ZdÖ ZÁ!ãGªJ™ ÌéÁ^¥©ÔƒæÅɺ‚2[ÃwÃ@$ªÎ,+ˆÎõÂ6Ïk‘Ãež©DÒg‘<Ó”âKFš¹PÆ?ùÐO6{‘Bí"º{u¥H´Âʶu’
¼p¢E.iøÚCDdä;¨ëíôö“›Ùb.°ãõ¯ú(kÄh.¼N°‹®AòW”!a¬„µ&QÀ늩y_z2=@~7’d€›…¥ƒÌ²š˜=}^ +cbUS¡!:3‚“öJ´vÈêõi»Eæn¾8v(j*Žd¶Ý¶4¢üzÂzí83‰\¦ŠjöýoYz›æJ³ª„õB‘Ä‹PY«¢MÀA(URk¶Î»Þ7êÞ©¸÷ÐCÐ +:™šVd>g'®¡öƒöRéOµ+MU4 ì‘™§`4Ø૯t +`Og'd2¢\Œ(>o^Òû(ˆà¶Ñ£N”qìŒÉl—Ò>+ÇZ:(…Òq\‹ÖyÄèM ç®Ck +ñ%™¤Í±Ç‚ÔTHÿ5–“gÔO_…¼Ax¾× >Ø9ßz° +-v²øŒ
X ;9âÓ,Ò)’´]ÂN +Žb1ÖÕÅÃ'×%aÒòµÂ¼Á
+”|ìo3sCöh¡¾¶¡L£hkœ!ãù¦nt¾•`xn¥äÍ +´˜³…»õÅ/ +endobj +1235 0 obj<</Type/Page/Parent 1068 0 R/Contents 1236 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 710 0 R>>endobj +1236 0 obj<</Filter/FlateDecode/Length 1943 >>stream +xÝX]oÛF}÷¯¸/…œB¢>(Kv_ +'Ž»ÆÆI7RÐˈJ“3,ghÅØÝÿ¾çÎM§(Ú>uD°HÎý8÷Üs/õëÙ”&ø7¥åŒâ%ÅÙ$šàÊñããg³å2šÓ|~‰Ï‚âËøø-§ÕY|1‹.h_D3Ü/æÑ¢ùÆw_¯ÏÆ·sšNi±ƒÅå’Ö©·?¡urþAK2¹½¤´ŽR%vÚX§rÆä–2SQ*·õn§ôŽÊÊlsYXR–V¢Ø +RÎÊ<‹èSS"4ÕVzk£”Lé”ѯ֟Ï&4šÆˆož³½q{²Å6%¡SÒü‡3dK™¨ì‰{áhà}R.e> \8ìU²çǪZG´’ÁK¥ØIKF{‹Cv7êøóÖÙ
üE‰Ñ™Ï¨0•$¥L!8H>~Ê2n#Z–N >ÁJ褬2M{¹mÎÇTf¢ÎÝæG;Ðæ|ŠŠöpÖL•ÚÍ«¨12[ ¬ +òZmèqf‰bj6,eö§t-û¸2¨
䌛0´‚“¢cÀ!™jêéÝwvÔö±Ã½RT¢ ÿË
ßß&M[Ž¦ÓhÇ~´üfv1¡p¿mÐæöQ6V’{fÞÑxüo-ÝVKZ Hhƒ•Õ£¬þûÇœŒfóèj±<‰óµ¦Õýk’Z@åS‚EëÅ")Óº(™åâQ¨œ"¸w®ün<>‘¨ŒLµGôÖ³Iä\,¯h[§vªVŠäÔ°ZeºžEò'¾x6~R:žÑÃȽò‚‰Ü{¹)‚ó +Üq™{E‘/ú¥¼…]W‰$0Ÿ~^à +Ý΂è""€^
ž>Cá«í}²{Ã#íV¾¹ #ö~ò‰‰Æ§ eã77mG¢"+|„qÔ±S¡ÌBxì^•¬ë )ŸöúÜŒr‘QÀÛc« ýDÈÙÏ”bb‘³ŠŽ=ÑNï2oA”Œ† ª"«L$<PyA(”MjS[°>•˜o~Š
*Ù~™0ËM/?£¡>|XóµààÁ÷Ö9ªÊš‹½¥‚„ƒ0ç&9O–fîòmÚ$Ðãcéý#=¶ÞÂrD¯!zá…p¶Tó_Š°·*in`s±Ip +]ÌûfiÚÜï?ü|Ç~‡M>æ¿G«7 ý?5x·&¹ËGñ,Z.—Obü¶ãß°´ò^6;/£Ë«˜â%ÿJ„gV×÷¯¯ñ:k>³ÄÞ˜¤.0ü[²'Öt±Œ&—1–“+~þï§_üªsÇ/Ò~ɘ/çÑrq^W–K¶ðv}ö¯³ÿg’ß?endstream +endobj +1237 0 obj<</Type/Page/Parent 1068 0 R/Contents 1238 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 727 0 R>>endobj +1238 0 obj<</Filter/FlateDecode/Length 2177 >>stream +xXÛrÛF}×WtR’S"x/òË–.‘£ªÈvLf]®å>€!10Ã` +g‹Ÿ¢Ÿ¨r¯æõ¨ÓÂàyzòw9+Ê>ºòÞWª2xV6%¯+Zë²0Þã•'åiëjJµ.”¨õºtëÒ¨ +¸’·•äM¥#ú„“çdµNI¥…±ÆW%´<h*Í*«<5úálìᕵÅ~ö*j4 Âpg„À·²+úhlê6žÎED»……œ
#3lS+m«'„÷N^]¸µ8Y,ÄbÁ¸r.÷;´_E4Ït©É +Žv¤6«×kW¾ ´ÿ}NXù³–?Çàä°ÙÞ ÂÖ0YÚ¿H`üàj`ÍùÛ7(§=×…QX]§²+¦ý.Ýr¡{<+µH~B”/Û^êì1ff‡'½*vu4vX#Ô'%LZ9×CÀÚÐd¢õhïÁ,ÃYéY,JÒ:×Êã],ä!:žšãª6)o´`šýï"ߨ‡{…–tùRxpym+®pÊâA{H2ëà±ç5Ü¢1bNàÐìqܪV¥â³l:ZRZ'œŸkUV&íc®Ðªª9i«çï+S`»°˜/ñ_ã+>ŽYZ!¾þ˜µíç$ÛÃ2wáJý…>ЖÌWzÖð<ÔeƒQÛZ7Ü)á&O–\^R4)6ö¬˜}S(&¼ò2ôJÛÀŒhñê +endobj +1239 0 obj<</Type/Page/Parent 1068 0 R/Contents 1240 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 732 0 R>>endobj +1240 0 obj<</Filter/FlateDecode/Length 2134 >>stream +xX]sÛÈ|ׯ˜‡TENQI‰_wWII¶ì¨*’‘w¾½,±€…w¤ùïÓ³» !Ä©ŠÏ¾‰ý˜ééîèÛÙ„ÆøoB‹)]Í)ÎÆÉßœþ÷üél>N–4[Ž“kªh2›>•´>›^]'W4›/’)žNgód?ñSœC³É;®—ü<Å?#)?»Ýœ]~¼¦É„69ß=_.h“ù{Ç´IÏ_Ο´µj[_ÞÑ}NGÝR!ö’¥ºjJé$ÕÒUº&gD*éåœr£+r…$ÝÈZÕ;Ò¹ÿبF’ÓþgiŒ6ôòîÝæëÙŘ.&Wˆ{“óù©¨ÉÊ:óÿ–¼¿y¢\•¸ÒÒA–eÂ{.?¦1è‹É$_]QwÂËt6¦°¤Ë+®¸˜Î.y*¥°¥Põ+n32oËòH[™k€"œ)íc¦Ó¶’µã°•¬„*z¯k«2i¨ÖñBNÖÈRîEíøê^B0Î’ªcÞ[;<*iØÉ„6ØnEµÄçó¥²ØµV¸—Šv”Ûj‹+e#5€!¸!zˆãH¢,Q™ù5þ6 jÈVÛ$ÕuŽ`8`eb¦”)#S§Íñ?G¶ƒ‡ì¼z¬æº¸Z%s†öŸú€¸èžvÒ!ÖPø7YÅKºÚ +ZÜQ;• +_žLàk¶tìÖjàÀ’ñ˜³‰sÄ#Ï´E¤¥FåH¤ž‰Þcc` Ý”Vþëòä¶ òš;Ä°3ð}܇ƒZ+
ìÞûÞ‘lë—‡öÒ‹ ì˜N8¯Ã¡Ôؽ—fpûËùã&>ñö¡‘;ìüh¨'šüXdƒõ +®'ÔÌbiCQ†hß[Û¢8Ëc¹ˆ—ò"ìì4SéL–^hCÚZ¶ÄÉUîŒ*‰ÅàÊ3÷ÙúcÁŒîà`jTã˜0 +Û5« +‹NÍã7Ö0?òê²®mT†§FâºÜú}´¾„}gkÁauðÝAÊ!/‚û€*ÁTŠŒ1L²Ãü °½§²GC‚È2Ää”O[*+Ë=€=ðè«RÕ@·¡tcÜÕ0ó³’0Ø]`Œz€¥oBª]³@³å
F%-5®ån»×¸=:´¡âB[D¨è9ÀC?°~Àa7¯Ä«M´?ˈ«Ü÷4LÌA){%<¡¤µ_ÃÖŽè¦?µÝ +òûW™ÚNŒ²ïÉŠÂÈR— 1/Ã͘)b‹D}2i_FÓÅ:ðÅð,W·ÃDoÃûL)à±Ç{ø5@íZ`Ü°·ÞB¹öŽuvÔ +â•ZóHˆöá«rr?NE˜™beÃb¿ðs¼Öþõ¡¦Ø_NJåA1ÆwÿÔp7FÆ·HÛnSSÕPà–ð/ß?£ØÁÇ .¼UúW9@Ê{nï?¯É¿h„ î·Iúwn“ýÇ¥8JŒ"œlŽ¼jÀÝáü$ñb%!Àœï4Gö¯ðÄì¢‡Æ 4 âàñì”ÜyˆzÁŸõÝówϾäx¦Î)'‰ñÍé•lókÜêgÙzö~é[v ðˆK'®Q†0/x¿E¦VÂoþd A·Ÿ1Ìûþéý_‚Ñðèï!x·Cú8çt÷¢0
A_~\Æ·§É5~A±¼¢9~1ŸÏx®_ß<ÜÞГÑ_;}ˆïåžÀ\ä‹ –ò–‹Åxõÿ¾\/®“Å|‰ß»à‚ŊϹۜýûì?¿µ…endstream +endobj +1241 0 obj<</Type/Page/Parent 1068 0 R/Contents 1242 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj +1242 0 obj<</Filter/FlateDecode/Length 1897 >>stream +x•XioãÈýî_Qñ"ˆ°i]Ö |îXÛ“‘f'ô¥E6Í“l-›þ}^U³)™v2»3°!ñ¨ó½WÕþý¨O=üïÓd@Ã1ÅÅQ/êÑŰߣé¿ø©4¥rc6‰†ÝëW‹£ó»õû´HÙÆx:¡EB°ÓëÑ">YdšâÜ貦:Ó%%V;Rô¨ë//®VŸ®~µÏ¶„—ß7ÚÕ§´ÍLœák]ý
ã5*U¡É¦òyƒWþæ(ç·>,¾õè¬?Œðzââʬ눯ž!¢py_•³Á8ñ“Ý°b[–:®áÍŠÄçÃr™BþªLÈiUÅJm…gÒÀU“’© _R»ÁW¾«’V¨ä´ ž‰ùgõwojÐj'~}©"ºLkí½œ\§Ä¸6Ò´²Å;±¾É~ôãì.“¦+ÜŸu}_¦6´$Ôw¾é +ñðßñß4$³è‘”«éáÛÜñd¯ûRJ!וMM®]DsSÆZVÚméð¥mÆ{a ”J[JR+SR±‰³ŽÓ¢{Œ w‚®%Ž/¦œý»Aª£‡Ïó’t&ÑÃÁ +<–
@°¾Èîqòy~ûé5N$²e¾{mµÙ1¤m¨0*A\g¥‰U+Î1ýÝÖÕü—ËO·_Ò0¾vPœJ`{kàæéáòþ±k»Ýõtûé·7iylãBÍ‘äW:}S•ñÚù˜?\Éð£ÛTÞÖA€È‚Ñ,D—q½a¬u0è[Š‚ê8<`‘ù–´(QÌW]÷´(8lAò¨o³r§D
¬E)Êx®,€ ³%Ùµf,Ÿ=«n®#ú’A[…BD¡[ˆÞ˜úf…Û¯§:>•ƒ{y¢dÛBú§žfâÍH|à²j¢àÄ——0D×pôµ¦tƒ+,ÑËa0²º®ŸÅΘhÅ:Ñ0©]f7y‚&ºX19¡¶R8µÔ±ÒÏð)w4yìüÔ_ñ,¸ºšËvÌP7"‡Ó
äÈxÇ”53(“_5Er3½ùQ©p3®ú¼Ÿ7Æeí4Á+â6ÃEl=\ù]B åéŠ%ÙÑÖø%o/üšÛñÑßÀLã$ õÑni¥bQ~¥U `I:¸·„b#}¨¢¨ªH +W¹¤ã–Eÿ–Ë`o´½“YfiT4øð\»h5ës$@ÎZ½ý¦r“p™y[a#|ààßœ|œ¬%ÝñË,¤”'‹ +e³,OøÛñ:hÒñò½”<îe)V+ì>©^éøõ}à¬#šÍþÎ_µ)0þ¤¥>ŠPø‚Ü=ˆ;uXOh™Dž]§Ò пx·špŒý´ÂQ©ÆiÔÅŸO‰å‹ÕòDN–*ç…m'óîN©2ÏYýÏå~© ¸«@‹‡CÌì÷ XÍÔh‰´08Å¡/Ñ©)à€G®ß'¸ãîö:ÁÊÉâ…kæ´ßExÝoDDå[µ;À¨ +Õh2HÕj®YMöi³›a7¹~µ¾ÞK纙†p²ªàZ|fœlÎwœÉùݸ»÷L£‘ß{Ÿ·ñ…¿&œ´–څ۬׶H/¸†vãøÆŸM.ÓÆ]›õt: ñ¸MƲgÍ/®.9º¯`!ÝØxÛ’LMétŒ?L‡t6éÍxµú¹¿ÝÉG“Mý6;í±ÅÛÅÑ¿Žþ’aœ
endstream +endobj +1243 0 obj<</Type/Page/Parent 1068 0 R/Contents 1244 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1244 0 obj<</Filter/FlateDecode/Length 1524 >>stream +xWïoÛ6ýž¿âV h +ت8²]`šnÝtY׺؆º(h‰²¹H¢+RUóßï)ú‡ÜuÁ°Mlét|w÷îÝéÓÙ˜FøÓ4¦Ë„Òòlèj:ŠšÌ¦øã-)ÇÙŒö¿ê5¾Œh2ŸFWéø2šÛÜFáWg{9gƒ¹“i4{ Ûq’ìlÿm2ߘ +‹sLÔÙÅI4a;ïó3àVд’ö¦Ê5’ñ©‘ž4;ƒQýYÖüm-{Y?6;ìTèTX¥«ˆ~Ö„ñ€ì!˜® +”É\4…Ϫebê‹ +Ÿøüó[ï¹ó: J”Ôæ{F”+á{n¹džó½*.tv·ç칩?«´ßl8'!à¶h¬.QT8aåûç=wŽál»§#ºÉé^7®/§X`"qè~N73/dnàÌ?–±{-Åt¶®1Éleª@æ,”ú «,’bUHǵ8ŽâÑ•ƒæûʽ/îÒ‚âD4ëyBCj¡‰¬,BÃñ1&x(Ñb¸À$vÜ—Š +ݦ\ßÁ„ª:Šy}ë¡ße†ÉÀWÒ¶RVè¹5×çÿ؈“@·¿.8èÚKÿJ²Hº>ÖxbòD<}BS
w1ÏCÌ! +2X1ð ð¡3ZU”5Vaã€4 qœlUþpÎ +Ñ#…‚>"‹½³÷:é&„+²“ÝÃ~ùæH>Z&Bó™Îa8J¹ƒWÓ·ÑÉúɃ¼wæì8‡H]’ü…^ ,ƒâI}¹ŸåÿK3ð^Œ”¯Ž~îž%÷ƒÛ¯,ñ(š&sL Y4K®ØÁ8¼¯¦™ÞA[.i`%u´t[-+æPuœ‹ÔQ¬@Å®Š³n±O&x¥Š)IðwŽwŠì;äõsz]ë¿0«è6¼Ûïv¬á¯E£Ù%
§#¬<ÙÅQµé¦ÂfÛ¸=Ê<£·]™š-½éÞ:ÞAÙ»{õàL¦Ž×:v6ó¥g¿ý
0xSendstream +endobj +1245 0 obj<</Type/Page/Parent 1068 0 R/Contents 1246 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1246 0 obj<</Filter/FlateDecode/Length 1915 >>stream +xXýoÛ8ý=ÅÀ¿8l7IóY`qHÓ.¶Ø&Í]ÝÛ[¬‹‚–h›DjIª‰ýãïÍP”½jwq8E?$rfÞ¼yó”ߎ鿎éâ„^œSQ¼š<ÿñŠŽi¾Â“óËš—t4;::¢yqø‹±¥{tõº÷ne*Mtl›gó/8wÚŸ›žœÏNqò𗶤¨
ÚÓÊø©rë@Æ’³´»mBq£ñîãWg¯¯çd^«¨Ë ©@ÊãW•Ú}ˆÊGºÕ¶M8öM_ÌN8âèµÑ5£ ãÚ«:ŒHÙ’Fw:nœ+G3šotÐT¯‹è¼Ñ¸/ ã©p6j=šª¢¥¦Zûµ.ñϸ‘4+W¨jõ+Ò2Î +¸/£Àâåbñ˜ðZ,š„VX,¸>«jÍ +nˆ#ÿ?A˜Y’ œžœÑôìdvÉâöÑò”íh3ÙµžõÚl+§J´Xƒ›þ§Zú¡Ø(Œò7¡³ƒòö +§;ÖT=îcíDä,o22ֶ›&ö":L
“éóX•|žúL¡n|ÿ2Sg¤MßM'Kø‘ð<s4hi"©5+L"ô¦Ð¨æO##û’m’Ψð€U‘«È]„Z',†g…u°cÙ·ÔaÂA—îI¶(Üo,?j:˜ ÉÌÝOе*9§/mÎûàØ'P}ÛhÖ]îzPõ’uq‡l¦+Ipqˆ)mÆ‹>?z@ú2<úÉ„˜”a©•Ç…ð '{5rò=T‹+m4/õ=|1]<.=—†”1ˆ¬eJÓûƒÐñ¤*ìÖ¦ÁbꉋgY©@ŽÁiñºè@6í=º-8Iú¸¥† Hûªª-}U•)“;aD3¯z)OeÞ:µ,"I|<ÇËýµÖok`³ZjœÔc)p+È×òNyŒsA;åûG·hŒ=?þË +÷ò.’ÊBÝá‡Úùw†§LŽj"`‡·UɾH-a× §ú‰—H¬7O`%`—
×–B£³2¨´cä(5¯Qq3°T` +endobj +1247 0 obj<</Type/Page/Parent 1068 0 R/Contents 1248 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1248 0 obj<</Filter/FlateDecode/Length 2001 >>stream +xXaoÛ6ýž_A–¶â؉gŸÒeÝ4AÖx†º(h‰¶XK¢JRvýï÷î(Ù²Òk‘6u$ÞÝ{ïÞûýìRñûRLGb<q~6Œ†b<›áÏ«›)þáË*±:{??»øp%./Å|EÏNn¦bž<?Šy|¾7•Øé,+]$BBÞîûbe¬P2NEå”í³ÏÖ¬t¦ž¥O#ñd¼>U"6…Ç+Žžð©vb£öbqžéÊö±TïæßÎC1¸G#Ä>o‹¢™[,Êp*¾£@…ÌÕâ]ŸN.D¢2UG¡C[ñ9;ŠnÕ÷J[•p–BœÑ$º¢8Ÿÿø¡='iÕZ;”%T¢½±_øÉ‹“–Vn¯wŸžžþ¤“Ž°‹Ê +¬‹²†œ„'œ—Ö‹\UÔ&á”êv¹§ærCI±”ñ¦*)CÊ‹IRR°ÈJ%*Y¼ë²8'Q±B¹Bb]VÀ™´*7Û†ŽÌÄ2ƒö¬’ÉÀ_ª“Br{°‘säÅ» •û»yÍŽ¶djEÙì‰zSü¨WÙë‹^¡|jLBßÁë¡ìDôpÞÚÊÜõ Ú,QÖq…tätb ÊŸf£ ]§¤EóQRDê_ˆž_?ŠR:·36ÄhOªm¤ÖRÎIH¤n'íña +Ès£ŠÙµˆ3N?}ûúíÛqªbÖfÇ”h-a!àÉ)%zˆeÒ'=Rflõb•K³e# [>@8DÄé²Æ?y¼{ +h´që‹Ÿ²1ŽC5Mí“PÐ`t-ãY4!ˆ `°¯2ùJ¹>àŽ!3üÛÉ|)AM¢–ÕÊÀ—ÚâÉ`}~§ ¿1ár!¡œê<[h
¢`QVƌ餣FWA¤»¸Lªœ»bËM©*˜³a¥P—)kéxE”ÖrDB~¬"Ž•ã4aúOsd·äô[óøÈô¯52'Õô¹cÈ„ùƒû§;œÃ¸¶íQnàN'c¨`Äü ³Ã(¡ïKH¹Š£¨[
g€¡šC€P:Ih—Jvùp‰†KXU JAþ¯³{`dle)òüœðŇÙq$ŒnB+¾Ö€Ð¯ÆnÐß^£Ü«hHS¢…ó+a(¹kk(“ã5øüç'2ô
È(ô uø‰
%s˜AÍC§^2%N,ŸKø©Ù WªX¯4Àó©5Õ:e39é¹RBs³–¢Ñ64šF7cÖŸ³Mœ‰Ë¡¬Ö³)æ \t ´áãå~ƨ_à÷à ˆi±HM®ŽC>p–h£»i&ù@ +ä¶êT´T± +ŽŒÑT`$/ȃXþÌ¡¿—2ù©F%ZøZÿ^f/&-b!)ˆ£¥ +mKPG#HtìœÏýó¶Ø_>Ö™>T‰ +ƒPeDÇÑ~Ó©²¦V¬¬ÉßfV•Á[^ œ£©©j +žøŒ¸—[8•\¢ŸÈ Ǧžë•ë¶qßÄêꑸð®KM•%¤ jTÛKo{œq Ot”…}‚Þ®Ûñð.âñúb¾UE`æÐ…Ú5¡‰¥Þ±‚Æ6šU†…ô0 х輦 +ÑëÇAÙ)“ÐÍœiº/ +>ÊzÙYe¶T6׎Þ#h÷ÌúªÊ²Nø:_ Ãã’fé(lG?;MÎÛ–]qëÔ݆܄R¨W2:¡û€(w¦J¿©D +í´¡ª\¦ãžjݘm 9ÑâDs½ôÉá *”«r¨fYx:á‰E¯h‡&Wþ.¢†Ä +£¥.-îŠÅþ +lf‘xð‡zwe™ézÜK/Ãj¨W±¸WÙNͽûp/ öé¸Î¾ð]àwz…{„uödo§²a^ß7€oèÃÖ(kÚ»Y¶p‹ä
V–%ö]^FÈwÂ…ÜYÞ-,¨
L”•-áá1®,½‡«bï+š8ü‹¥‡Æ"¹ ù.¿ãîjM&že¡2¶)÷È:ì÷
xˆ†6¶zKª—WÐòWÇ[n‘[؃‹È’ +‘`½"ƒÀnEÙÄéã>s˜àuå?Í’÷$Þšø@fÕ ~ju@)¬ríÅÕÿ¢íÙW¾ˆ™¼]ÂÅ£gÉ7[(šÑ½øpS¯J—ü‡ÃÍXL¦ãh2¹¦…ùåîñý]Ø¿Q]÷&F¯cZ“çP~ƒæ•Át8£çAÄJ¯+\é¡À]½â™ánÅK½h +endobj +1249 0 obj<</Type/Page/Parent 1068 0 R/Contents 1250 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1250 0 obj<</Filter/FlateDecode/Length 1706 >>stream +x}WkoÛ8üž_±0pw-+¶ãWôCÚ´@€ÆÉ%.ŠÃùг–HU¤âøßß,))Šúh µ(îîÌììúûÑø;¤ÙˆN§gGƒh@“Á0šÑx>Ãï#ü’6þÁx4ˆ&?{0L£Óîƒ÷Ë£“Oci¹¡Ñ(
†4O¢ÉtNË„i0 eüæßt§4ˆòñlF}R¤S±$·ŽKújŠuÂ)£ÉÉ4µ”U•#e)1{‘(ýH‚òÂlTŠ”“‘x»üv4 þð4!蛚=¥Jï"Úo¥ÛÊQpþ‰Ø•"Mø@R,¬<&S´NIÀ€cÖ xlôF=–EÈIY[â´°tŽö[K½ÓÈï8T“‰´Ýš‚Þ=„ô)‘Ï×hYP&œãŒ
e§°BZ“>É俨z0šFc®8 ;jоŠl-(QÒ:TSàõÜèDê˜ËF¼ÒâÔÆ”:Aa:ÁñhùÊ‹L&Ç<Yöøi¼€4‰‰‘IÅFw?áúR§ÒZêY—…rzçÃö|Àr)ùxæÂÚ½)‹Ói{´zc%ËŒ3íîþ¹]^Ý,"÷ìVo™Äv„»ŠQ_FáÓNIïHå‘H€c#2›è`Êb±ln€ +óB39A4ds«ÍÁ”F.ÂmQ.ܦj‡š€5×–š8˜ + +MÕüŸ‘6ë'eJœ±4€Ëg…-…m«S;ÜùlÒ7ç·ÆºæÒj8©Xñêë¶ÒQ™‡'vé¡ûfçËöº°ùiÂëOk¸ðôtXEQ¡§µRb'¹¦0/”f´4Ý_-fÍÐÄuÐ +ëů˜~©†Õ.¥½ëbD´†é1[ýZ¬ƒHÓIÇËÌ©Lž°%b É0RTð0¿é¡"¿p7sŒhé7µ¼òÑPuk‹!¿Or¬öªÁÐlTÖ8b¸7ìê±ÉUhz>ÃÓ.m/E͸zA/È© +endobj +1251 0 obj<</Type/Page/Parent 1068 0 R/Contents 1252 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F6 9 0 R/F8 11 0 R>>/XObject<<>>>>>>endobj +1252 0 obj<</Filter/FlateDecode/Length 1770 >>stream +xW]oÛF|÷¯X¢ +UÑ…®œÑE!ÍO>dm%Y‡<œ&åð+“†ÿו$[ËDe*¡RâÙ”‹áZeåT"œÒ‡¤ìrá(5U*
#SÑúú¥>~Dßåa©6Jûx÷ªJõÎÒMLki‘Äq´ ƒcuá±}x¸±£ ‰.kQ)‰þ +w£ÎܬGg'Zð!£T¡åjÛ8U=øHEˆCÄ(Np’Ê”ty{}~u¹oŽ)€dEY(Eg£°¹Þu$b|kaÐUsh,ÞLŒäOhÛ'(l.˜ÿ‘Ù$—%Ç8ž…‡|)hÖçמ’xl¹ŠN˜«Ã»¡yœå–“³áè–¤â$¨.˜Ž™*¤ïZU9VÜõÍäþöî_ïn?}¤6_ð>3
5Ž Ïo^qõ8\ìð$ +(ÂÊŒO~–¶ƒÈd[¸Z‰ö¶kº™û^ùÀbjr‰¡¿Ì
‡À)蔵Ï]$•6}=@F9% +õO`“ª ·2üÏÂcT™P*ÁY› W#¿6pïO|ÿRÈF‚,=ÉLSydÁ/¼0Š>„¬•ÑU‰£Eú2D4Ÿð#%Lœ¢³Zàž¹„ŒÖ³)ù–9Šš¶•(ñ¥B‹TlÑÏBm
¬³C‰s®’g5µ®"º‚Eâ¦|ë0Æ‹Õ±
Kî´Ëƒõa€OáW)Zªd0_*Ø2‡Þ¥AÄ@ÌÕzœùÿÀ‘1•âanì=9i\ŸY<@¾ 2’<˜5êåäð.Áö”}¿¬9Q̾¶Æ½n‚bAðëÀÀß.Þn6÷W77ñfó#þ´3Làú†^¬=ï´v/6›ðãx¹Ù°lÔC×£½Yr!J5ߧá)¸ZÀ?:Õ[f;JD!?œë8S™äú ÓgòBOÔ£ôóŴКN‹žôn`-v „¾2P®P0o3LQ~mß"vÿ· M&šÍŽx»'7îw+’•IÓo?ƒV€«¢[(†(N©ÌC„ÍÃK,l>Ø8g§‘OƒÎ9s¸QzÌ‘õû‹OwWñß]a®Çƒƒ¼?ž1†°Ï2@ãÃ=qÐ¥JÃÅïÕ fF4}ŽîÏ– +mã“÷vW´†{
³Žg¦›ÛxÄ3΢Àó“ˆÇlÖ Œ~6öAB¯à²xðY>ïþi3{X)» +ÇÈÆhê!WÀ’<•‚à1ôûjÏlvÿ +;<
C½Åëü÷
x~§aü©ZœîŸ“99=‰NñOçtrö†/½þ:úþá7Úendstream +endobj +1253 0 obj<</Type/Page/Parent 1068 0 R/Contents 1254 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R>>/XObject<<>>>>>>endobj +1254 0 obj<</Filter/FlateDecode/Length 702 >>stream +xmT]Oã0|ï¯Ø· Ò¤”6ðÖò!ñp…£9¡“xq’Mkˆã`;ôúïoì´GÕ;5•{wggvìAB1~ MGt1¡B
â(¦Ëd¥4N§xáo˜ªÁ<ïÇ”$”UH™¤SÊJBxSVœˆÂIÝ Î²¡µ°ÈúèØ:.IZjÙ(éüÇFºµlÈ™j‰5KºÂ—p!óBü”5¯Ø¾žF§ÙÛ ¦óÑ$î$CÖR¨\c¡ +ÑPÙ©6@½È¦ÔK‹Œ–³ï$§Éª¼ÖnJª´QÂ]“eÞ&ÑÈÞ-nž=e‹Èýv>¹}¸§‹ç«ŠhJ¶]>´¾Ãa» èÙêÎPÃÂ@Ž]ûJƒZ¨tèuÙш([CºJ=+¼Cܪ«)ï^£åL,¬¬·~¯$Ð’ªYq(05ÜÖ²a8Øìų[ÌEÙcu÷"y–/Ú¼¯ŒîZ{Fûõ«Ë3ò$÷ßÓ‡YÊÛ°·dóÉÆúö¨ÆÉB¶Â1T#qDõV+eËEgüÔú®úák¡gt]ƒU¾=Ä„ÁD0M°@ÎÜ Þ.”@f%WárÏp?ÎY4fÀÈßRÙãod]÷Nz\ÜÑ“‘J`s×Ü; C¯'O·7°$=8ïè’4"¯¹o˜E±>¬xÄ5´ ×–ƒm˜æ¢xïÚÿâÌή¡õÑ@ÖÛú‰§ŽŽLP +'ra™¬>èöˆ¢lVGMÿ¼ô¥‹¾á%TíËZµ ¢Âáö§ÚðJZg¶aÃûtws$Ü*é%iÜiô7ŸAvý†áAŽ¢óÞ
ŽòíœïΧñ•?‘˜Hnoé‡]¸{ì5-Ù9Ððý=k¡üëO¡z…+Åú‚ãé8šNR\a(–NüÒ]6ø1øl©yendstream +endobj +1255 0 obj<</Type/Page/Parent 1068 0 R/Contents 1256 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 735 0 R>>endobj +1256 0 obj<</Filter/FlateDecode/Length 1515 >>stream +x•W]oÓJ}ϯ‰—"%n¾Ú¤Hµ”^x +Q°½;gÎœ™>vÔÇŸM†4:§´èô“>Þì~üø«3M“1M¦IŸ +ŽÏ’ixÊiÆçéì|ši<àÿCü5’–ø0ÂPüaVl×ÉE8::KFñì3§áìàb”LŽÍö ¡D;wWóÎéÍ
û4_"£óÉ”æ™KoÒ“ÏzCµ¦Ë´&aIЕHšŠ®u!TIuYçÒžÄÛù¿>õ†c˜8¹mŒÌ·4ÅBìfá*e¿ƒ‰÷Û_3ÒÈÇFYUKú!E¦Ê•?<¦Á N’s>|%— muC)BQe#Œ»ÃÕke)]‹ª–¦KU.…•TˆIÁ᳨Ý]‡T°U‹E.i£ê5\ªUcà—Ù`äƒôIÝ^dP2iS£2ó.¥O¹‡¯½Ïßïæß“—ru1˜+£›2{5Ã;ŽYˆcÈ?Зð©éZ•!!>ÌI j¢´”&×+]—ÇFÚÚÒÒè‚6Ú<ØZÔJ—ö°v1Ã;UfzcéÛ<8Nèn-Kù{‚ëÍòUöCÇïö–»€hî_0¨¥Lßâ¤A—èò˜S¢Ì + ¥äT¬þ;Ó%
¬cˆ™fîj4´”!V²hBvˆ QÏWSôÝþ¬¥Yk}ŽÂÉ[O—PÖv’`ø¿6bKÊ«DЦø–“m©‚ëµñAFSíõtDSVÍ8W¢+Ä“P9ËLB×^"…V¾µB‡–V‡pœVik™6ÊFx‡'KÚ£×%°™@ƒ–?ô¹TO>Öhɉ]¾Mö™*Ñ«P4Ä +9íµÞ•.†àÚ¤å°)¶œ]`nŽ† /ám»s¼5ЛÁÂk>€‘.Ø,‚Òò÷œÛHcƒãÐ'ÂVÌB„ågêÏå–ÊtØ.ʇ-r‹íÑ^Ñ•]Z„Uã«J¶zY·¼_{QR¼}0üŠâÖgÄ}¨"¡ùB€¡µÖ–©È„(Ï(vvz3ÝoÝÓ‹d2:ã–þ_¿Ðÿ&0žŒ“É9~íaãÓ {þ4ïüÝù†Iendstream +endobj +1257 0 obj<</Type/Page/Parent 1068 0 R/Contents 1258 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj +1258 0 obj<</Filter/FlateDecode/Length 1673 >>stream +xWMoÛ8½çW°‡¶@¬ØŽc;½ùhКva/Šr¡%:V#‘®HÇuý¾GJŽ¢$ÝÅ¢j[ä|¼yófôã` }üÈd(ÇcI˃~Ò—“i?Êh:Áç!þ*-Ëð`tz’Œ^zp|2z~ã|~ptu*ƒ‘Ì—p2žâC&pÐïË<}ûÉn%³Ú‰’o¶ºw^ùÜYæ&“Ü;<+Un$µÆW¶(tõáÝü;,Žd0ˆ{à ,¾=“›¹l[&p˯tc`vöùü?(/[e`XIaSUÈÆéJ¼•…µÁãóTyÉJ9þ"y4Dï}é
Ž‘)¼>Æ%K[Ið’ȵ9ùUîd±Ã—ÜÜÁãöç×_fbT©åÇFW»p‹Öï*»YÇÁȃ”v:î”s›`…<´JWb—!ËŸsƒ'¹—;ô*½—eeËð˜¾r>eÞÏ °Seð¿ÛÂÞYÓñ\iØpÞ%2·b¬»ÖFœN7Uîw²²Ì/¬_í:Ð83tºÐ)½};ÿrùå½°ôˆÏ./$]Y§Íí»Žß‚mUI"0Q%r¶ô,%KL›í`9‹žXî7NÒJg,µ*âa™X“ŽoF¾ä°”ݾ#h÷YD‡¢Ü=L¨õº²ªHh«MüÞñ +×ã/_*Çò¤v½ëÀ\Sæ`§pì/•‚Ïu +‡‘cåÆoTQìž´l 1Ï5x4"ñXµ¨w<Š%¹ +Ãèøsr·B“çd®@s8~Dóš*Š¶ +òÆšx=Ù0.©Fþ¨[ÃEé¸ãWpŠÄó +Bed¸GWÓZÁc¼ðNñ¢Z¿â…5W¾Vö;jŒ¥0Å–R–›7{Í…Þ¤J +ÿ¿7ÚÑd”LÆSl¥01ÒòÇùÁŸÿ +endobj +1259 0 obj<</Type/Page/Parent 1068 0 R/Contents 1260 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1260 0 obj<</Filter/FlateDecode/Length 822 >>stream +x•TMoÛF½ëWЃ bDJ¦èCØù@}hêÖz(rX‘Cqr—Þ]YÕ¿ï›%ÅØJ.…Y¤fÞ¼÷æãq–Ò)3ZæTv³ERôýÃíð° <Ï’5Š5¾/¯’%9¦±dOcìUQ$é›!þJ«å™ÈôÃíföæÓ‚®iSSš¬–å¨r•´©"ö‚6ååÁºo;g÷=½%¯ºzµù:[Ð<S^V¶SÚP§|`‡cÐÚ5GöñæÓŠÒTjχâólI +endobj +1261 0 obj<</Type/Page/Parent 1068 0 R/Contents 1262 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 748 0 R>>endobj +1262 0 obj<</Filter/FlateDecode/Length 1992 >>stream +xW]oÛF}÷¯¸ðKe@¢D}Xò}pã¦k m¼±ÚôA/#r(Íšä°3¤ýû=÷)ÑJR`‹ A¨ù¸_çžs篫˜&øÓrJ³[JŠ«I4Á/§>ýru·Œ´˜.¢)4gÑ]û•ÓóU¼ˆù;žF¬ÎâÅé‹Wç“è–æ«þ-h5Á
áƒ×zŸÅ3˜ì-.fQLóøNÆwx¾Äæ2Ž–4ŸÜFsñhÍÚ/^å‹f«Öæ«%þÏž9MÙUoV4›ÅH¼Ša"|É¥½o„9eÓçÕþ7Vg«·«½o¬ÞNàîùìOë«ñû;šNh!×·ËSI1~Iϵu¦Üѳ*¶êO¿{íÆ¿ªdoJM÷Ib›²¾Yÿ÷jB£é'¦Ì¬+TmlI¦$UÒ‡‡û'z0N'¸ëÈ›Ù`¼G³9"ÆÁ§ÆUÖë°>§8nקKDƒõõÞxJmÒº¬)Õ>qf«=ííjK×'cigŒàù~¼Ï‘ +ŽÃÁ“³m +v:ƒ%¤›óÙ<·öÅã¤øF´éhÊÐGÅ>Vº”(F´¯ëê_ãñápˆ,~ÍSUEÖíÆ|dü>i«=ZF+nyœÝLo—V;,Èâ¨+yÊU©ë“—Gzi83•ìˆ°Ë'ªÒQb‹ñ)kÿåÑtÅwçÀ~³µ%þøÃ'm!OÍ67]±ct5Bªí“b»
Àˆ|>úZtŸ¦4PBqho’}[dv½Ô);‰Îêbv:T!U°o3ÒÊ18›¢ÐnˆžL¥Ü‹m ÖK*íºEô¶q ÊLêH•³¯âäVÓ^çUÖ䤜tc¿¤k”]¨`ôôðnÄÅýûãçõG*”)küö·GzÜ•*1–ÞÙ¦Òª¯þY™Ùàok*ÌYbNá¶ç†Èœ-èñáçû†RÀ[Ú!#Ü}þ”j§¥Ûšw¾pûYVœÙQ/µ!(Aëƒå`à{Y; xGff×¾LW¡l;ŠëÀ3oy쑯M›„£yp®[Gv}ú¢Nº<yÁ»ÖeâŽUMBDÖ¥ž~¤£ö×aÇÕávè§Pé +=¤¿ŽQ ÎÆï^ƒŽQ²W%*Q›‚fbéØ7ËÕü +~›ÆQD€ Á°ðü¨rP¦Wé«Pw +jÛŠÓ%ÍxŒú;±YL1“ÉìÁ BJR&Êmò†‘P¼K·<›` +Ãe¡Ï“Æ ŽÕô—Ê´ŠÄÌ6dăeXï?éR…&xL¹o3ó•ŽoŸZj¸Ääß$ªS’•÷ÜQó&—ô Y˜ÐRLh‰<ÈئÂøÌ2¯Z•B[ÝH†ásàÒ6Ðoä1¥fÕ1å˜ØR)jY—ïŸÛ F!ýp'ÁT!Ìnc¶ô>†¯Â– '!Ûö€.±WEºEyéL6ƒÊéWˆåò^èÙ*aÏqå8çáNÐA¦2ò–X£Nƒû»?ž©vZ3-Óc+”x‚M£ÙˆQáx˜mªÊº:Ðâ^‚§[•¼hàt3ÐÑ.jÇÔi×u£ËLjg\l¿l<à$üt¹¿N·_oÇóÂÿA'ˆØž¢¤“]Y:Ô|ƒoäPžùÕÆ”aÊ$ox +E¶¿mþ;¶<4X†›è¸÷61 7¦:°œ= í—)cÝ2ôfÒ +endobj +1263 0 obj<</Type/Page/Parent 1068 0 R/Contents 1264 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 757 0 R>>endobj +1264 0 obj<</Filter/FlateDecode/Length 1974 >>stream +x•X]sâ¸}ϯ臩 +© +ÌgöiÙ0™Í½I&7ÚÝ*^„-@ÛòZrþý=-Ù`ØÌTmÛR÷é¯Óü}Ñ£.^=‡ÔQ”^tƒ.î>^¾\„½0èÓp4BJ©ß7ÕUBs^OÃÁ +wÓÎJҰǘOuþ¶¸èÜ
¨×£Å¾MÆ´ˆ‹º´ˆZ±ŽÊTfVX¥³àjñí¢Kípe‹¸µØJ8Cð›ÖrG¹V™5d5[HcH¬tii·–ìVoïÜ…•²V»½SvÛNb‘‘ú‡5’ÅZÊ´¥¼Ðï*–A=̦ÏdÊ<×…ÐôúpÐr-‹BƬ_eN¡Ý*A
ŽbU%e,a)HŽƒQSJ¥Èé5m%ßU¶¡ÒÈ‚Dé2³¾ÖEê\BëB§$2úCe±Þ +»È°idÕ»¤™*ddu±'ì~—…ó_ç.ªÐÎP`_†£qåžÚîa»6îUžˆˆAu¤:¹0fÿ+ÑípônŽ&³cŒt“²2¥ö¬T˜›æ‰2[8uµ‡X©‹ÀÓ|£czž>Rªã2‘& ‡/Ï3
RÅù17ò,J‰Z^5µ½²BeÐà<ù<=Ð\¯íŽÓjÙÚZ›ÿÒéìv» q +ÈÁfSB=”¢€‘apt’ 'l=|nZ‰vuãWwh°'#útû㽟䤥Âíy‘‰£ ³U9Ëç0¾ÜÝRØïŽA—F}ŸzNùaæÌQ•(e)Äd2Å +&¯oÍ„]§y‚,ó²ÑÇ·äwª–¦Ã¹Ôñ6z§ ZÎBä|ÍAËÖ“¶ðž§s0kSñ!‰Aj¸`‹ˆW#¬ßsY(×F’š¼eÜ¿wqƒ||E„\àˆüYdÒÊ]¤Wß@Qò# Ù€n3âväø¼s×¥®Ø^0è‡ ºa0Á_bsß²…çý ñà=H¼èiúø™.›*/iþúŒæ4_¼¼Þ.^_¦5BôlNü3û<¿¥K¶ +íåGë_ç•*¦OTàsyõáºé_Äë¢Ë’ô™é^#s?Qfù.~ÆÎ¥åez£³<NŸ>ép’[µ^ûeô¦¢7}¸‚´[‘ÝnE¶ÂåciìáÁÞ%bc~*?VjÿÄÔó‰Lºú]»o[ü™Ü q7*T;@>PShNbõà±ôÛÐg°‹[ó 0ã‡`‚ •¢2¾ºÌïg¸ëMö>>rt»Î±Ë”Šª›EA®®éí;?óy©y¢ýz?{rwÑ;îjè›\>Rð°×¶U“øߔі9‘‘0S€«Ð 2”G^®|f¶#æ7[`@±øꪪÐï3âS.§Ù¼&À3µ¦\¥ÊOfÇ¢mp ` OŽèŒþ*Yõ(ø¤aÛŠHû¡Ä»V¥˜¨X†Á0ÄÏ;‘÷Û*Î]"™ X%>d
\Èm5†ÿ¤”Z„}Åþ=æÌ@hvx˜BO‰Ã!‚é€tPíÖ¾>Ýÿé +«qnRÑMÿèNú4Œ‚ÉhÈÝ}>}ümJÏ…æɃfÍS%Ãl×[Úã.f¬ÿáa0ãŽú¼ì¦Ç»?/.þwñ ý,Yendstream +endobj +1265 0 obj<</Type/Page/Parent 1068 0 R/Contents 1266 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1266 0 obj<</Filter/FlateDecode/Length 1124 >>stream +xVßo£F~Ï_1RB¤ìØÎcr×T‘Úܵqß,U¬í½KØåÿ÷ýŒI¬öŽHŽñÎÎÏ׋€&øhÒtNqv1ñ—K:~”[¼Lh:[úSš-øÜÎü€JIã5Xø·íÑ|æßuGÐìO܇ÓL–hô„¸\kyX]Œï(XÐjgæË€VI}wB«Øû¤óÚV¥Ê·ô"²HÐ^Ùýöùþëõê[suÖ\M'þ—½/…ÌY€bwYX¥óF|—x“‰·Ò¤ò8I¦* +]ZÚè’ìïlï>Žu•[ÒÑ7[È’È©³¨¿êò@F–ßeyCUËÅu°Ñ ‚©²±Z£oâÌ$SIV“IE‘\™So©Óì7Žs®[Çç>BN¼Rk{ٜ޺Sâ¢ñ»µ2–6kd$MD1nLßç©|–oö¦K'áÔúI§Z¼& $hx…ãó¹ƒ>ÎdÂV¨ÜÝkÖ–*ª¬4|¿—ÍýNÅ;J$‚K¨*tN—Ô˯il\U*¹:*"epm£r™pAþÆÚàÄåoà2ŠŸ|P׫D™"‡g‘Éóv>H'=ÛB–FçgL2N|z@l¤7lÜHÊ*€,’m¥’Af" \?^¿mw¶ÀŸMC…·þÿ¹ËK +c ²ö¸MÚ¥þ¢ÞÚ9‚“¹úø×RÈ0´—iº¾þ/Ò“‹lÒªu`DúëF&ï@9”onÀÕ!€mòÕ õˆÔB¥ˆþÞJ‹ø‹}.²µ÷mY!zT”ÒÜtZ[Æp—p +…^æ6BÇ•¥S̱§.§4ŸOü»c,ñ^¯¥®W¸Ï:®¸'v[ᨽ2ZLjùw)9]:g‹™¿˜cQfÝw!{÷Ëêâ‹Ð_9endstream +endobj +1267 0 obj<</Type/Page/Parent 1068 0 R/Contents 1268 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 772 0 R>>endobj +1268 0 obj<</Filter/FlateDecode/Length 1541 >>stream +x¥WßoÚH~Ï_1 +º‘‚Á@œ”ª^Úžš\®ðvÜÃb/àÄx}»v)ÿý}3þA´§*‰¬wgæ›™ofÖÿ^øÔÿO£>
+·=¯‡'ÍÇ—ƒÀëQ0æÏ-ݽIµHhvq´ÜR0ñG{¥Ü¨ï9Y䪽ñÐ(höJ¹Û Öödq«öÆ·^Ÿ‚fïh¹¥É˜q6{¥Îaà
²8è¬öÆ š½Rn0€¡‹,rÕÞhâù4{¥\qlädq«öF·l¯Ùó}Žïíd Îû#ZËKö¼ñ¹©?ìšEý^àh8á÷ +Î#xàÞlö™L–Ç&¥“í%EŸãß9Û-Z´¯Ìjuu^äÊæ”'t+“^a·òcqý#ð.òFþ<裂áËqá&U±¥Š£sìIcU¢`²oçñ—dÂ0“^þ +‰{ƒy9 jfÕ1@X´]´‹8ºû¥@*Ûfù–„ úlIùiˆ±‚¡‹k¡}÷~B>n+tèr&p3*gBuÖÉàúÀÕñ0C1muZÍÎúÚÁm{T¶í©“¾±Ò~`H–‚¨ã-¤¢„û• :ÂyC{SÛÈôÚšˆ+Ÿèo±c¾×a¨n8Ò^°c•GnL"lŠ´JÊÉøÊÊsŒê"×®î"õ<PœtýØ2c¹Í¿Òö +ö3wá$~Ñ'îõ8Gó(²P!ì ¾ªæŸ£‰Aí(Ì—Õ +—„eµ&³!©'nE.S¡þí8v¨ºCLÐ2Üù²DÅ鳑vÈ]°@2DË´³ÈSÓ5¿/“Þyôbpb”/Bñº +äF:›>¼›Ò“5\óôބשċe;µHgÔÃ%0jÿ}GCoà݇O¬å÷ùÅ_ÿ +(?·endstream +endobj +1269 0 obj<</Type/Page/Parent 1068 0 R/Contents 1270 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 775 0 R>>endobj +1270 0 obj<</Filter/FlateDecode/Length 1748 >>stream +x½XÛrÛF}×Wt)/ô ó&^\¥EŽ7©’e¯É”ZîÃc3ôÌ€4ÿ>§g +çÆfd,iz'<N+/i/Š + L!%Ti©S{Üy™ÑÃË»·€PŒ®a¤5ŒÞ4™1·€t5œL)¢h@†‹§P¾ S…96º'²¨œ´!—{%ÿö¿©ko8KósQ\'i×di+>ÅN),yùÅ“ü\)ä Ã%Ð&E¢Ö’1g\~PàH'gc¡ƒò[SyʤUûš«6Jƒµ®ê¢7.¡W(Xi@:¥scKáQÂvI/T¢åôðúù㲿äÀ +r0/i-דð”…(zÏ¢Ž†€ðÍNjF÷ÑxC—”'åàÂY „aF„œ4¿^X¿|XD‰bRgà’b¡cO ]!RÊ‹„~ !^´ –!›©pÈúÑT¹àÑ›â:‘©¬ØDž¢1‰ + Ydké%OÅŠo9c#0õ3±&Ø4<Xš¦b¯‚]äTÀ{˜=·>…rÁ1:6÷
G¹5%m¸‡p +²¬h×C)'ѤÞ^¶ò˜ªÃ-N´ •ç¯žîͲs±B4LŒ+D3sžVþœÅ΋C{RÄ_ÆOˆ[±ü?ðïÙƒp~![[&ðsÓÀ)7H¬W%¿©›˜Òhÿƒù´G‹+±ISç«•Öá?JãÅ@9SŠ¼ö‚„<ÞýÿV?ˆÚ¿*Ħ%„³ËÔsOãÞm±Ê‡©a»Ïïßèòé'‰¥áŸÿ:“›ìó +Oyãã""W¥[fð¯´êp‡]=ëÒûUKñ'ÌŸ|Xu4šs³Ê/;G1_äžÿr…<ÌÏìôxñ_²¹0£—¨u,ϹÇb¾G"„¥œð b¡2òJy?uÚ^Áb<]ÁÙcžW—ŸTúé{û„Ìî…¾ß +½ù~¹…ÓוóßÙëÖ”ò%ž,¾ŽÓñ0ÊùÁ2¬|† +é¹qc¨¶ +rÀ‹Ë9øõñ´÷èõõ}OÒ`þÉ#è…¢¸ee—vKÄÏDgõþÊO.týá&mxˆþÀóŒ½Ö€ê‰EP ½«Ÿ]¾E÷oLŒY½»F³d6Ñd2M†“Þ%w¯¼£·Öð<¥—&Êfj±ñÞ +endobj +1271 0 obj<</Type/Page/Parent 1068 0 R/Contents 1272 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 778 0 R>>endobj +1272 0 obj<</Filter/FlateDecode/Length 1692 >>stream +xµX[oÚH~ϯ8ŠT-•‚kƒ)H©ÙtªvµìÃ`àÄxX_Bòï÷;36‡v›î.(àxfÎå;ß¹˜¿N²ñvÈw©Õ¡`ub[6îl?>½ç;äùžÕ¥9¶gùå1Ýé5·k[.y]û\ü¥’æXèv!¦úH,“Ú=«]îtڞ嘽“ºVlwé‘ãÐdÎvuº>MBm–M“ ‘/%Æj¡ +ÓèQžÒZ¤b%s™R”/g«™¨d>m´§oi%lYÀ2•ÒJÁÄ(ÁåJä‘J¬·“û“w—€A볩é´àÑ$ldAó"_š-•I>MXÇv™Ö©ZË4¦l-ƒhÉL[±ÆQRs}]d2ý%#c¶9zFÖðf„Ïñ×ñ©”µì©·.šG±´Œº<’ðe&))âØÜ×J¢`ÆðçQR®´ÂD楲¥H!ã“œŸr±„ÏØqZSü ”h6}«ëÛ±<têv|:„[¯7[=«Ã€#;|ò´Á°¥+%°åQÆ`<Š¸VB£E™ðŒ‚ˆ˜Ä,Sq‘ËÞçKŽö}þu¨Ux=õjÚ^ñ'¡ã¯ÔJ;³Kž’©K,Œ¢T¹JŸ„¬|€Âí NÎ*†Z“®æ„A¶‚ÛPózNZ-'(!"™ÌI$á^†“½Ë™{f¶oufKUÄ!S]Ç56÷’ƒÁßãÿªÈr³´ß¨ôa»*ÿ8ßiŠ|x”)¾9-¦Ó—G™Ss”]+ytœìòë9q¤² Êo&PÛEFq„¾Àý,×µÍ?`C +>›¸—=ZBGšW·_&·º/†2QœA2qÃÕ•h´(`€Ñhô0idÔU’§*Ž‘Qo•†9ÖÔ†œ«55Gž¡èî9–¡*±k×tî«ìÞ T‘ä dE¦‡j²š“‰Jš¡œ‹"ÎM±Ïúì#¦…-´ñÇ¢cºQEå]ƒM„eè¼ëg?cƶŒ¾ÆŠ#<¯þGø-º|1ÁÈ'±ZÇ-7Ë +t”Éàîj2~KKP)ÉftÞÒ,Ü1™;E¾¹q¹]Nr|Òíé\Wó7¦Ó7…ÙVåXƒ6"ã[{ŒW¢,CfDyVBÕ¸X—c¦¯/œtBw?J0g†t:“ÁÃó©1³ž™¸LæiIne¸™ÄØ²GuƒåÓ @„sÛª°›Nµn‹Ð`u¶˜¾¿-ɧ(ƒ‹å$¬¨Æi…çZÌ™*Î×RqÂà\g_¨tqÊ~l')\è¾@Wj#Ñ>ÏLJr
ª2…Y(ä, aHjŠÙ`ÓqÊ©ø‡aÚ›I)U$×±0Ýš +µ‰ÐŸuµÜ b†¾F³ VÍ°íP3À›ð2Cä +™å.Fä}ê Qr¯4Àž +^<òÑOQYóÂ>uýî¨k;^ÇîG·×ñýç/N«Ýºúµ£ëMxƒánÀ²O®ƒ‡Ñn«ã½ØwÐäû丶S¯vV´ÛnÏví–s1{Ð>µ.¼Vû¢íx¶7׎Š"ËïdÉ6Þ~Ïq½Ú&ä“h3íÚ’Ay¨Q~^.S%PÀ·Oàš„‡(xPó¹ÿMDä—±Xd}úãóWª^Ö„±¥ÿ(“œíÙv§v`ERED»º2›o|Íÿ%QÃPÓÛ™ò 'h;Cné¤:˜ +endobj +1273 0 obj<</Type/Page/Parent 1068 0 R/Contents 1274 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 781 0 R>>endobj +1274 0 obj<</Filter/FlateDecode/Length 700 >>stream +x…T[oÓ0~ï¯8CZS;vn•&Ñë@bÖ €7qÓtIG£ þ;ÇYËDVF"Y¶ÎwÎwîßþ˜I9 NÂÓ¡3|à^àxÀà +/¥E +³Ž¡,Ê[Ñ4J§cð<7".atº˜/¢År2™³)gÞÔ£œðÅ¢§Zë¼z©U[¿º„ö j½“‰™H1†Z5ù÷I’¨¶2/áQ®ÅiœH³,D†Ö>øÇïkÏ\ÛHýÖÏDïkókZ_¹rÞÝÿÀ´õrÿP‚ç¢ë¶\K=†ˆ~ž,ß‹éUY^¶²(Æ0ZçÕh-šmÁ–q³y¬£KyÀCæó Êòôè}æÅ}žÜÿßDý¾YIƒµ"ø¶vGÛLБnU)ç¹Ær*½Ç`ì{d0#35:;dœ‰j¶Uv¢GQzÕ6æ(þgè•yªe„óPî6Ÿ¸‘αU)óØrÖem´Œ€vì†s7d^7823U–²2z´ä@©ÅáL¹ãÛ™º-¤h$”"/@$\™Ði^e`¶yon>Æ7`ì¤Öû×]Ï:8¢ÄVœª¤íˆàA4€ýo SadŠ:Ç”3ǵ”Zn +L+Ú•°²½®ã:;_œ/Ô{t7<¸K}\o!ær‡ûÜÚXM®¦¸ÕÊÎÌìÂ䪲ºÃ£Ê0 ¸þÎvœàZÂ}”žE¾Å/âÁûÁo\€›endstream +endobj +1275 0 obj<</Type/Page/Parent 1068 0 R/Contents 1276 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1276 0 obj<</Filter/FlateDecode/Length 1584 >>stream +x…WMoÛF½ûW|±
È´üQËÉÍnÀ‡È)¬¢‡º(–äR܆ÜewIËú÷}3KÒ•¦+ÖrgæÍ{o†ÿ]Ò.iqE×·”ÕGódN7w·É-þ]àóþzM…|q9_$wÓ/VGŸ?ÐÕœVîº]ÜÑ*'Ü3Ço²ÓǺñîUç”z· Æ®ÉX +ªNÕÙêoyòrŸ<¿¾I®ðìéÓ«ö¯FoÈãSñð
]^ö‡¯È‡Ÿ¿<ÕíÆùo|93¹¤¨ÖY©¬ 5¥[Ú”&+)«Œ¶m LYRY¦Ÿ«Lh9T²ÒX<ŠÕpçŒ$Ï9_^Çì‚;ÏTU¡¢c)IËÇ Jâe™³26¼_Ù–ª% ½Vù–Z‡€…öT˜J“²ù…óHÝؖ׎ÌäL[jϕܘ鎹r +Òo)w¸Àº¥dU—ë÷D"ÈÄž´”uÚjK*EÈ*w’ +`ö‚D}³Y=IÅlÂp$ÒÓÖi΂cêª*8bz'z{]ÃÕ³L*æ…:Mp¼ˆª}9
úýw/§?½œ½œM))í vã`ƒŠjZ¶È_ ;×Þu$ÈUj*Ónå{ñLî߀UîjîcåÖÈx’.W2o˜*e¼Ô«2ë<¡g$þééËýã2ißZ¹½v0§]€{~Pè²¾¼þ¡¾°höf #Tƒi‰J3´B·lÊX—“ʪCø¸],$Ü +ýÀ Mê‡êá?Þ!_`OÖ8O,8†(vÇÆg”vhµt›ç«Õ¼D(/#=4:3…áí@æáÐùÀpM'ÚÎ¥ -W÷ϲ”DÊ싱ۘ7d‡^qe€Jô.Ö¨í«ñβéO@F;1’X"÷,LîÇr—[ÌeÊŒNÂÞPËT-Êè ú:X–8§óH’÷Äþ7&ÓˆK’ù?Ѷ#»ü9méÊÑò¦û¥}®Æê8q}gǻЩ*vUüg83T~<rö¸‡³aœÖpòŸí œò䇯(j†+¦ÙÇq!s‰Õ*ËæÜ9Ê:êq“4mÐFD2ÏKYK¡K±%£GLÝ 1lK4G!Ûšt€ärûIg´j:ß8ìFÅ:¬EšY‡óÌH¦
lY{„ñƒ“ úMÕÍ0ŒŽûme¸ç8ÚëûxÅ‹Qµ öÝ]âk\ wö(Žxñù;KÄcA¼P¢L/v¼Mµ¥Ò5:n\ækúÅ¡/)uÕˆ¶^eßpÁ&®áý +‹á?P”ë´[Oª®`•hgAWEt-€ò8é_]x†îy¢¢q½ýsýª>ì
òÎ"m€Õ€ðØrZLð8–tœé5ƒ8¤¼pôï/q&¹Š›óÅç»÷׫ëy|ÛùñëÛÍâ&YÜÞáµëö‡ûËêè×£BÉÆNendstream +endobj +1277 0 obj<</Type/Page/Parent 1068 0 R/Contents 1278 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1278 0 obj<</Filter/FlateDecode/Length 1757 >>stream +xWÛnÛF}÷WŒ•I%Y’óRøÄq][m^+r)mLrîR‚|ÏIY¢ã¶(ªØ/»;3gÎœ}? +h€M‡4šP˜
ú:ŒûϦ¸â·ÐË‹áø‡/f3ô›?Å +7ØÇ«#‚Á¤?«¹œó90¹ûƒå§ŸÆ4áÉd6¥y$ï4;wÖkòkåÉÄd<EV»ìgO[[<Qlz¶etÆWäÖ¶L"rÞ$ -5©e‚í–üsÎÇhrºØè‚2•â¥£>7Ü<ÉNæߎÔFý!|èÄ&Ñ©ÊÔ +ëÅÀöuæq«²ˆö_×f#ãòD=‹¡Ä8O6&µQ&7ÜZÚõk+ÃIÌV-<ɵÍáhlpî²°[g²ÅØèD¨J'Î?#zŽ}6U0«Ä.UBÇ«RØ +C[fþ1zŽYÑF%&jž7†›ðtªÓ¥Ät›Ûû«Ÿ(´Y¦Col†gxÁq8y]ùOƱ‚žØí +~]:É@ZÂñ°±/«ZØÖ¾6>5`\$Îâ<J¬`WÃØh¥½gP–Æ{äzYœ Ngo-![Ï”«ÉE–I!¥x!¸¥YºŒZþ˜ù×>ê#ü¸Oó5¢ô… Ÿ8\`™Á!΂ËU¨9)~«á£fs‹
ðíÎ<-:zõ‘zÑG;¯UĶ{
'Ý–yÙüj…Ïé] +®½»Ú€ëÓÞÈëÄVÅANf·`KA©ÅMbžtx,â. +¤7B,ÔGѲ®©(TL¸ +ç ÖHÕŠšÕ™^0¢Ì,,2XõêBc~¤Ê=ªûöžjo8Û‚‹ŽËuhb£ÛYÜ¿–$.Ó˜suÜ$‘¸t) ^œ0§ŸÎ)€Ú°ìôFãª/›êSaa#W.ᎫֿÊTo8…B¢|¿6&h`ÄyyTéRQÐ?ïÓEG%ùZ°ZÚ^œÔÖП%³¨Ì#å5èc!/"ܸ2Ïm!@µòVè<1¡âÁ HgžKõÀqZB"Uð'´ˆdW´uU©Š +Ÿ7S(Œ¦ìQëP,¨‘|† +›Šw?#Ò¸Ö2-|M5ÐÄrxQ/“ÞÀ‰8E[žXä÷fh MêNËó‚hîþ~…
,tÕ-ìEà"ºF•¯}ÕKò7¸+XJ1Ëžâtˆ:ïT½‚±q¨Ë®ÃgúŠ)#Ÿuw×wó6‘µJ§*V»Šû»Ñb‹ ×a~WfýOè‘r^AüÏW¨O©.ë6¢å–*i¡ÂíÕ¬J”+‹“þžŸ‰&á +Ž" +$ª[Wÿ}as]x(Y— iÀDQAóyVËnëȦÈ'Lš²ªU3øUã“ö3Q‰'HŒÿ–ö'X´nW{íãu¢R<TòÚ‹Tê.O]^™LˆŒ +1<
¦vÃ÷7ñ¾å© +$VOÀþ‹alì[a:Èv‰ðY+Œ?ÈÆ&)‘})€ZܹàLM¦j†«ø¨÷%ÔyÄp<Ÿ¢ã+ø +³á䫦€v•^C,K«£UNtÎ E2GCê
Ïú3üÔÐ?ë/—Õ˜Àú‰o7o6Þ^Táê²9×Wõ5.¯÷ß4€ýè0ziVÒþåþõÞ +zy÷¬Þû¼{Þ;µX¯¾\½ïÕxõá`í»7²ô]w^`ò MßZß|ê7C¼xyþ
Nÿ›G +endobj +1279 0 obj<</Type/Page/Parent 1068 0 R/Contents 1280 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R>>/XObject<<>>>>>>endobj +1280 0 obj<</Filter/FlateDecode/Length 1780 >>stream +x}X]Oã8}çWÜ7@j3¤-m‘V+QV£] +Œæiä&.õƬíÐe5?~ϵ4
eŠÒؾŸçÞ{ÒR:Á_J“
Ç”N’锶ó„/'4¥IJ£é÷§ã䌌¤%öâèÙ°Y™L“Ó°2{àEˆn.ôéê„ÎèaIi2hi§ã)=ä~Û =dGÔúü$²Õ¢”Ž§¸O‡Û§?~œP?…á1ý?ñÔ‡ë…wRa>íkü…6‹í›-ï,¾Ÿá:óלėË@šy?ò¦xÇýO/é¥õêöÿãÑ·/óûÇcÞúéjDiÊ©è‡\ôŸÄîB—VY§Ê'ÒKÆh[z<J{4èÑðñ˜2]–2s2§Å¹&£+'
oºÃ®»öôɤ•”k*µ£a--Œy&¬³ ݇ܦµéÃdÀ©[ K§´ÙJ•Ò’.I¹^òñò¨Yn†…„ÎÖ +ægº(„“Þ";¨@ÒlãocáŽ% +¢Ìë`‘FMxz"#Ÿ`ö`£24—nöåæžJÄËÂh·êjvI|2'#Ný¹µÁd,´f°U/=’€§€Qïê:)„ +ÜùJ‚™\òWQ:ñĈíh…Y%×56r4ö)jûÉû +dt¹Uå³/èÐÈ‘ù¡GÝ!Ú²Z*±( +c:‹“ ³þʲ¶¤cWJ‹¿û¡¹â)/N‚ïú+KË
áü˜¹ÎAÂ=ÈÄÔM"ôöÐú¬Äƒê!UMÙㄯ|‘
¶*Ê·ºéÆ£]dÎõ†ä¿b
ªZÓ» ²šñaQàÁŒêñ¸·õQ¯ÀjD=f ¨óË;Ô x–&ûVf+£Kõðö×*OO¹úâ@À1<}¬ÿSIóëy‡ë=q¢ÀÛ#Ñ /·½"ÏÑqku¦»Üëð>Í[l¾ÝÜýùÇÝÍ×ÛßÓÙo±Í2
¤
QÓÄðê€þEG×.ûAI3faóH¯p‡¦nã0²’À»Ùº)ÁšÄ\+ŒÖÚ©H#½é¨‡T'‹Â³!ßAî,{3‰øuœ àÁ[,âoe™søEä÷çe©+ØåßN^Dö¦}½¼EÃ3ŽÒá}†|6¡¯Û¼nÍiÑeB9ú%kBrî=¡ÿ\VëÈAQĬ¯Ø•½¼ÎC³ô¦ˆÂ«A õxîCÙqØ„|¼YxÞh:Qm†3o¹ötw_4 Ãf+™W`ì ק«i|{MÇøAb:¤ñd¤Cß Î¯gçtkôŒx•á%l˜ßØÈ~}¢?9ÁOù‘ï¹>L¡æc¡óÞÑd”Lðû~˜ÈÎÎøÑ燃¿þVAVÁendstream +endobj +1281 0 obj<</Type/Page/Parent 1068 0 R/Contents 1282 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R>>/XObject<<>>>>>>endobj +1282 0 obj<</Filter/FlateDecode/Length 1035 >>stream +xíWËŽâ8Ýów #H嚪ÕtiF4›’IIØÝq +ªÎGÉBõ銑šs^µËz·ÃZ˜öw²l)5ÚüqÀ´ß¼9k6 +ú!Îœ:g×Ûeõße¨÷žŠoç÷nÙ¿{œUÆ žxñ$ xzïÝÇî:6ÿ´˜Óï…þ"“’V:9áööÈ8 +b\dg¦>îsiÁ·5–‘ÚàÜåÍ<vÏ€âZŠqïsÛú÷GïoJ»èFendstream +endobj +1283 0 obj<</Type/Page/Parent 1068 0 R/Contents 1284 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1284 0 obj<</Filter/FlateDecode/Length 1626 >>stream +xW]oÛF|÷¯Xø%NaÒ’,Ér°ãðC·ZMQœÈ£x ÉSyG»ê¯ïìò(ÑtŠ ™&û1»3»úóhL#üŒébBçsJÊ£Q¼XÐá£ÞàÍç“ø‚¦‹\ŸÏâsª5e8;ÂÛûpvº˜Ä³pv‚órôfutv7¢KZe4Ž§çšÃØl¾ U*&F´JNè[ÿ–“?®?|÷éí)áòæpùîpy+—oWŸFMÆñ.Nuý¤kGÏÆç¤HŽÊ¼®Éçº$…(+[Eªñ¹WÞ<áŽ*µ‹ÙÔÙÝ”ÆcŽ>jÃ&’ÛÞUI^ÛÊü·låhý³Ö[¦Ô–ÊTT*Ǿֵ}vøª” +›¨bð€, +JlåMÕhò–l’4õ)RŸÇNÉçÆ‘ËmS¤ðˆ¤àA¥;üR^“3¾‘p$|FbOùµûŒ4@@µm8¦ŸÆdñ9¡L™ÂIЙ- +ûlªMŽ„ð=»Gì
-²¢-·l T¤U’Ãyªù `*•$Ú9³. +ÍÏ•ÅçC0ô¦²o¸( +š£Ð›P‘V¸z˜~h.°ã—ØŸ|ñ“ã–ñ_´æ†gidF±Û>?ºÁ3]#g™”ª<…0Y ¾j
åú…•áÄù• s*0Á²ò|\¾‡nÑ¥˜n--?®:Üè$zˆ–ÊQ±F‚n‹¼†glF¶ºðŠ×Œ@ŸÁÒ•Z(fÈ»`OU“hŠðD·¶\
BImÒð”I-H¦S°@K/-¦¸h_O_Äp+2PydWëmaøˆ@f¯E +‚Nºz2`‡Óµ£&©³™‡ã¬A¿ÂB—Cèà."oàv[[o‹£ +xÝ-º‡Î„<æˆmÍ{*³‚ÒÉ`Ñ•;@ +è„©W$ a¢`½kô+<ö¶;Eá¡…M@vGÑõ=]tÝIyý"R¨ò`òžò@+º
PÀ8îfÛýÃÞ_è–ã‡Ú” +:ÝcÓ1ìi,Òai=~‡
¼¶ÅÀ惪t]Aí8Ûèê¡ëèèjõî!ºza05ª°Ç1v¾œñ¨èþZ®dð‰|µkÁLÞؘXÔK#ÄØCí+k +endobj +1285 0 obj<</Type/Page/Parent 1068 0 R/Contents 1286 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1286 0 obj<</Filter/FlateDecode/Length 1404 >>stream +xÍWÛnÛF}÷WòR'iÝ%m»¶£ð¥1ƒ<4}X‘K‰ ¹«ì’Võ÷=³KR"-¥íS#4dîÎåÌ™3£¯'êãg@³!¦å'ý O“Ñ +<`>ãK÷žCzxéꆞoBJ•³oóEi•P’f°ì>‹|!j¯"*Rµ$a»ñTN£`È)"$™%Ý%´Õ%n´ÐÅÊÝzã©¡,×km +@¹•¶ÜéÒë"ÕŠ„Š¿a¡U‹ú;ÀU‘Êq'âMše”ˆ4£B“-„)º@†®l¥+6šÖÚÚt˜l$•0©¶” þÈÔ!T®)28B¶\(ÎÞètÁð5¶ XðÇ,:x§`m‚Í6_å‚ÅEù˜ªNèbÒ#_4Æ«þëCHe¸v`'¢tÁ’tY£¬ŸkÀÀ<ûf®u>+q=þ»Lšì9ö*ò*Š*þŽ_ë½XW„óÛ ý¸ÏFcßEÏ;Ô®*p™Çõñý¯¿¼üðÄFÛ
8¦ÌÎFMŽÕè(Â
€ðƒË ÊBv|ö¦BKȵƒ’ +z2i.̶B–~sŒÎ2iz$²b¥ËåÊ%£¨ßu›³PËÍ:[ë{—¥ýôÖ¡ã˜_yÞø2‚z.Ça$€x‘cïÂå!=C$ÔÉBÌ£sÊt$²ÎEëJƒFu™¹ÎêRÖq{%^tMxb§Qº®5+±ãöY]®›ÓÓQˆ:ÑV[ÀVì+áé¤[§%¡ÉuÃot™ÅÌ¡®æDcj|ö¨T‚Õñ€mkÏ>G|†^*¯PÒf:~…5fT¶‚»e*Ïô{.¾H{X”vbÆ&vav%ðŽ5x×`$ÕKj´Ê¥âé"Û 5îóbÇH´XÖy9‡¹ZeÛN‚¸Ä59œÕè4€º9 *6MÕvæ;à ^Ç'7%ç’€S~YOŸŠ7¿/3½Ùè^CZ5'ÛÃó{¶º¿?4ó¸Äy·7»Ã£˜Zü™Å(22‘Æ€O[†™ƒ?Ô<n>ñ® 7jG+Äob Yè¼_H´‘ÛŽbëÕá_¡Ò§óA0
±¨L‚9~C—©úw" +©º+´q‰f4r¡1îP9”u‚“=íÓâ;ë¦-!»‚–ZÇ”ÆR°¨–l’
»¥úu÷èd]ãñß2_5]ùÿ#þµvèWåvêâ*¢ATº;
„ro<öø»ê³õÙH9†pÅe¼0¤ù›Õf•¢¶¯ŸÛ¼p¬UÁzàT;ã¼úæ5˜âëâ|DÓÙ,˜X=ž/ï¯.±éÏpìCQÉÛv{ÛY}ãlÖ‡Páü?Z5Çøb9±£âÊ ?dBÝ„'¿üWÙ²wendstream +endobj +1287 0 obj<</Type/Page/Parent 1068 0 R/Contents 1288 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1288 0 obj<</Filter/FlateDecode/Length 1413 >>stream +x½WMSãF½ó+:œ *hmË_›JR…ùÈr +¡¬Ži-*QH|%‘çj£éA‘ £HĆ„&AÝU0’U@Ö׺’©¬*™´þbQk©O—ÏG:†Á œ”E”°ËTU±„Gï„d.c“©’ð§¨L½&Q”óTšrù*ónŽZš&ÃUö´"YªZa‰0”™^`½RužÐ&+áwû&®¼ýhŒ9Ñ›”¶ª¦•xEš%Ý-±¯x••’3ä¬t•Ò¸hl¹ÉôŠwIûú½Rñ‹Òºá2É´ˆrÙËÓ=TO±*²òé@á)Úª`Ø‚Jß©5—RöÊ/þ|ÊU$ò¿`íkœòó^`]DA¬Ê”Ò,—ô¿ýp= ŒŸa0Gt6šs|¢:äUDq¢_¨TW¥k¸WŽoØõaô-Ÿ
,`3pé~¤!`žn.ápb?‘ðƒ/`µ`Ür™ +ty{~sç–ïèr6šÓ¨*’„W¹ð_e¥-;èkV&L€äÒ¤=è¢ÖU1|RĘÞ[oYÕTÌ3d¿¤-É[Jd*êÜü'ˆŸ«¬Õ¶‰|¡JS 18Æt•à6e qn)Ò?}oå²a%{°tâÕˆBÌ"<i@>ÏÁ$)^(Kû[«äSÆ5ÿÞV{Ñî¤YÜÜ?MõñÄ̯ÃÅϧeVôõæ"!eALŸ//úÔ½FÖŽš‚Û=8*(ð 7 -QO‹n
‰PLjù
9³C‘îf/’TU…)jxóÞׯ÷ÿ‰n% -|b®<®ÍN úðå–>ñ†uÀ×. -X*Êܸìæ‰öDøAeOD/¬€¿Þ -7»òí‡ä>WIîE8lð†7xŸÿi¥Hr¿HGvÇXyôÈù” -endobj -1146 0 obj<</Type/Page/Parent 1099 0 R/Contents 1147 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 509 0 R>>endobj -1147 0 obj<</Filter/FlateDecode/Length 1729 >>stream -xWÛRÛH}÷Wôú%NU–íØ*j—$â–gS[ËVj,ì ’FÑH8þû=Ý#ù"ØF–fº{úœ>ÝúÞiˆßf#O)ÊzÃ`HÓÉipB““®Gø+5%ò`òö4˜¼ô`< -_ÞžL‚Ñ;à5Â1Ü}ꎰ*O`$£pÆÿý·”î{áË(¾
¦x:šNƒYóŸJÀ/„õ~Þ;¾œÀÍqz2£y,^‡4W mlMK]Qß:2‰Ñ1E6+êJ—då¶ÂÉ#mžL¾ÄÕ÷Z»ÊõÉ–äLfR…U¥]¨Eº¡L«ÜQµR>4¬«+¯çßzC: -Ç8ã<D6¯TTa“¦'£¨Š -rº|2‘v}Xéè‘*‹[šLr`«¬óœcáëR….ÝRyÌ%ÇøF:¯Ê
™œ÷v|sT.Pij×”à4ÈCIQj°|¼z‘ëê
é* -^³‰ãËS -'>“Gã$ÀAFÁ88
hŽ´Ð©_µË÷шó=¸«%Nl†@ýª·
*‚ª¦ïè?ï¯>Ý_Üý~q÷ð0¿¾=49è -˜ÜUÈ-ŒÙ²ãVrì²E -T -endobj -1148 0 obj<</Type/Page/Parent 1099 0 R/Contents 1149 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj -1149 0 obj<</Filter/FlateDecode/Length 1286 >>stream -xVÁnã6½ç+æè -|ßd²ÎÓÎð†uf†$Ò@¥§1ŠÓʬm”;’©™¨“s3£÷êÀ¤yTÚC/+eUJkÁhW½FŸd˜¾?î¶ÃA©CŠ¾NHØw²m8IOEi´ÄYͳlú<Z¬Ó ‹èN¯m6'ü?lÑb¯³ý:¤˜›J@¥JV»¶“z÷>hÀ‰ªõ3ŠÝ@‘±À£~¸HÓ5¦,{ìQÈYÀŸ.–Ñ2^ÒUß@…]…×oí<M®h -£éÕâ+î·¿)døE™3O³»ï5}×轜A†½‚Œ”0Œ-®P–¹ò"‰&ôÔìvè]dÜ]3é²Ya¬³áЬ[3]EëŽÑÇd¹òu÷†à?ryß¡ÏGö‘8šÿG[ßÍŠŒ'†#ía=ë(¾¦é"ûcCiÅÝ¢É9s'rqIp¡HÙ4Ñ -NeT*ëÍNµÉs0f¡›€†ÇÙˆäÁ·ó|ÝÛ}b î_ÿÇŠâî¹4™(™1~EþW莙|ªt@¹FFKdÙáìÔag^#@å² ¬ -+Ã{Bû(aS, ŒS
Ãu K®•l -aU_nÉÔ„P¦èƺ1Ϙeà‰y{ý0ÅÈTµpìÑ–rCÚ8ŒW”»3}ŽÝ”jdpË¢gù|è<„ÉLµÈž¤CŒNA×ðüC'ù™XG«ÀJ?ÉÉ5˜~µi@·8b˜ªZ%Núž•89—vŸD£)ŠkBÁãyrßË»6YÆ^Ü9Où‚Qßonûg\5NjÃô]i‘ÐN!8@)õa¸ró•Æ9ºcÍIaGÄ^Јñ·7mC“ôñC)S§Ý²¿žÐS$€
»#ôÊ¡Âã!Ö²Q&¼ô5L¾´¸Ä¢¸§æœÊ[éCL\ÆBÐf X'-"à®8׋q´¸YQ®ÊQ›ÃYÀg%aå(ê·š
÷Á›µ¼™‹›8¹Y¤7W˳p?¢Žƒø<'›}#2IU‹Ž+¦ ’±>kM¦<E|ëI£Ï\T GÚ¡S0Š£ò¨œ”.mý&ôÊÃ/hŽÒ›¾-T
÷"%¦›íÔOý€þ-ɶ¢±Vüý¨óûõÉÍÒ²y¯}»*¦«4Z-×Ý•kÍ\~Ü^üzñ
T”|3endstream -endobj -1150 0 obj<</Type/Page/Parent 1099 0 R/Contents 1151 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj -1151 0 obj<</Filter/FlateDecode/Length 1609 >>stream -xW]sÓ8}ﯸfˆ§™$eŸ -]f˜YØ.„Ù—¾(¶œˆÚRä¦ù÷{®d;Žf— -»Q^Ø#K¹r™•^Í”&-|meB·žüNReœ§p*£R>É’DY’–þ`ì#e¦ªj2Á÷yñ(íK‘IªÒÛ7ëWS§×Hl>ß~ ‘çV:~™Ð7¥q²÷·«šýIÚ–fWG‚ýŸµ|KBç´•ZÚðÔÊJ(¸,Գ̩@"BîöÂz•Õ¥°ÈËK[ ®·!) -5€Õ#†¥¤GÍÀ±Ø)ý+Ïü1\œ1KÆN–û ™\éFëjO¬aò‹³É -
à -¸wl«Ï¸;̪pºBÃó©ÒAÑRX½md7kôx¼LV¼V!’‡ÙbÙ$ÑF^v{Hëìaä .ðÈũGŽÀ¸©K
´eíñ{ˆy„ ›í “Þ±ÇpÍXBoÿ¬E© -%óOº1ø -Ðÿí'‘®ºÖQsøo¨^G.¾Hi¤¸^GœV¦|A®®ùË/¢ÿíöóû[Þ§B€w&«y
-S–oŽÛãå,èg3†½Àgçø].VQgÓ~ôÇúêï«œJ¸endstream -endobj -1152 0 obj<</Type/Page/Parent 1099 0 R/Contents 1153 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1153 0 obj<</Filter/FlateDecode/Length 1598 >>stream -xWïS7ýÎ_±ã|(LÁ?)LÚHCÊ4œÉf:òl+ÜI‡¤Ãø¿ï[éd›kÜ6…a°ï¤Ý·»oßJ{êãw@§CPVîõ»}
úÝ!ŸâóVÒlïb²×»ìÓkšÌ°ãärÂê~Ÿ&Ù>5?¯èZ”’î¤}Rþ/•Ï”=SóÚ -¯Œ¦™*d÷`òu¯OGðtC›ýÍóá {²ý¼Î-ó7É
,–•ð»ŒÐyá¥Õp÷$Ijo•t43–‚csµ_à…Ê"$aå›Æ^úŽžCŽ´rT䢢¥ÒS¥ó6ÜBäfùÑÏ©«ÍÚ—¡¶ó²0λŜÛ+×nšW;ÓÃÖHst¦¨C¹þ17/ýGïðƒäüHR9åÓ&Žuºv¡ÓÒ/}XÅ)^Ûm"jgA¢˜v½ƒ‚÷°gG*k¼ÉL‘¶¬}ìXo«l+ÇÿnßEú'ó/ñô.i0ˆmt4,¿™!;µuò¤@¿˜!"'©”ÙB -´ÏnZ¶)G»dÞÀçŽé0ŠNi%,óôÙäÄ`ÊÇêw¢Ìu€N3–`¬@ú¬—¢îrcµñ°"õܼдÊ(íIùĉ6*ãœjXRqb„^m3£„N0˜é -6~Ø0%=gÂ2'ÛQL–ôþ¹îJ·¼r’X}Ãâè—=šp„ß¹ÐGÉJJëaÓ«©d¿¡
{—¯ipÚèÝè8Ê˨;êÆ£Âö¤qT»†’HòÆlƒrØ›éAV^¦ç‰ái<7lö&íárÚÌYYàFLM•4twPÞ„+ç8<h¦'>‡øÿ ÍRÓ“°ÊÔîojz¿ÏDA8”ƒ„@pïbòA>n¹:ðµéR'9cëü}WpØ<š*ð÷»ñE«dasS‚mŠRŠHP"ƒ"Ïc“sås&«0Ö!4ìpc½©u†Ý˜,TQ°¤mô¯å8©-º`è°‹Ü”¬IŒ+6w„ÕYóªú±×á´ÓJ4÷Š¾òì%ûg-ŸA¬"'ÙUJ *ƒ!a2…yÌÅKådòYð¤Î¹ô|\Ž›ÓhîëàÄ/Z>׋™>`+f;;Á€Ä÷ÀWäÈAg ë˜EÜ’ÈO¢¨9ûh:hy`œK3Ÿdç8’–Í™8&¯åz;ˆÆC˜3¹ÀcDºž)œ4†ôX ûœÛ´>Î6>`¤IæWUÙr8[<)Ö@(ç:Ž°^߶çëf¦(j¯°Œ ‹5>Æ6óµ ¸¸âÀ…Ó÷ÖýâhØE:ñÖê M¹†¹¸é—ˆ´g|þî·«ë÷×çã÷oûý_èçp/Ðß5×.h5cƱ`kyJGëvòMÃ#6üAjiUFãF–fe‚ËÑß|‡Õa€ûQè1Ú‘áu*ÚÿEýåæÓï>Ý|¾};˜2æ_c£Žq†õ‹‡´
Æö û_J‚`§R5£wp‚kâÙˆo„QïÎÇçtkÍWL_8ÉÂi"Ðœ¥
G§C\óýï[rÎÖŽO»§'g¸‘ÂÒ°ÏÞOöþØû>"]endstream -endobj -1154 0 obj<</Type/Page/Parent 1099 0 R/Contents 1155 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1155 0 obj<</Filter/FlateDecode/Length 2025 >>stream -x•X]sÛ¶}÷¯Øñ“Ó‰dÉrm÷NÛ;qZÍõW-eÒ‡¼@$$"& -… -’¹šÞϨRYají·8âˆ6Žì¦¦øzRžDŒÇ¤v‡4/Œ'þWÓét8L†'ì5cÐ𘂥ù‡‡ãéú€Ê¨`líiS Z„3¹áøàE¬û@S‘Ê+S£¤NëhcPÑ\#m<Õì’9Ö!;.¬¨²ëùOG>ÞÍ(WA-”×p‰´S:ð¼·™QÈÆ„‚4@ Ä©òÜiï‡Éâɘ‹ŒîáxÙ:8vÔXS¦VV*g–&“¤ú8¿—(ÙÓ<–åhtü «×-M‰ j.&Üé̺ÜSn¹nÔ8»6¹î%ʇ»2rn^Fhi]£’jßÎè‹©sð
1]³\7Þ@eÔ¨/^†51€ÜÀ̵Éø™êW·R/Â&sé²&ý¬ªñ㽈!pª)wäèM´QÌ.…|¹ïzyƦ㘴H½D:ÑWh‡Ý®†Ž’D„»(´
¬à4eêΕÖ>µ
}=ZEªç¿Ãxá¬Ê30ûë;«¤ë¶Ò`)8,ÞXzºnäµ~¥Oñ®P?ý -‚pQéùtú{«ÑCè2¼U#°Hõ˜*âCN‡Âw
Òņ'%z‰ãÛa£ý¾œ×€´ç9¥ -澺9žÒT@½e©ìˆì[ô¢~£ýòTó Àˆ˜ýyùxM·÷¯·¿¾“*È4JÚNþYq_å›Ðé׻ᚆʦ°Ì
žÆ{‰mó—)á
tè…l#"œ©í6ŠƒO©6ÖG¨«ý<»~”ø{ïðy]½R²Ú·Üƒß[ã8‹žâ\lyV(}<nWÔAØ5{"¹‡ŠPl9Ý(ÜV©kØ8Þ¸ò(®¨z)õvºÂè朗—¼W+Ð%E\‘õèï`3 ð¡(˜°ˆŸf"Át›Þ¹Âäxf·WPÄ(Á8Ìÿx 0ÉñRìf±çù.- [g_ðˆ[®”Çv7›6Ð}øÛLvfT÷^]gªñ-v‹¯››ˆêÆ® ýŽ¹1õS·Ö!èóçF4 -§!ª-ƒT«d‡‡qýy -G¯£¾~I÷²ýÌDím©2ÝÏC•Þ²ú¹“’þ–»mAá0Tö„Ýïú9+T½‚•]üè@)Öâ¥çøö@ù" -£m&“cƒ÷ ŠQMÙÇb’ñ*6À”¿,09kšì(ùž,ÊØUûñ§_hŒ‘/1ƒÉ8n‹“ád8ŽÔå|ÇÛÙìÒ¯7õsÞ0/Q¢½Ößf¯‘¶ÅȪ™ž¸×XL–E»\‚"[¾"@M™ðüé\F5জ>ôê’¶\Ì°N,4Hë°ˆw"Áór)_:y)@1”¡jkž®nRM™{¼ñGƒñÏ„ª
¼cLûË#BE -šô‹3¯¢<iì"`çãwJŒ¬‡–ÎV’ïª%È$9:À稥•Ål«BäïÞðfaV˜ùùÈ“ ê6ÿ)/‘˜A £0‰ dÎ;F$cXŒÓBóÊV@·°vó^ £¦ÈÁBñGôscP¿>(Ú²l}P·™‹qé$J\•â ÓI8Ò¤Ìr©yU=Pß.¾aõî=§ÁTz`9b]ªÏõð?(¡ïgœ"b©7H¦=:Žã6ËpKxÂ2•¶ˆµ§çœï8q}Á•Bn—IŸ–û7"ÔÉ -5ÀU| &cé¡
…r*±çbl@„I²û3G {õ(y)°0åø–ăý-íõlm¿«ý@4ëEÀý6ƦŸ©jÑߘx3X«’/ñ1öÞ¯¸Ã¤*éÊ8>ÃoS.&tvþsü½Åìòöê’œ•"~´n 5\#T†tн08?±®ü£žŸÏÏ. _8}2f#×óƒ¿þF{Üëendstream -endobj -1156 0 obj<</Type/Page/Parent 1099 0 R/Contents 1157 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1157 0 obj<</Filter/FlateDecode/Length 1698 >>stream -xXmoã6þž_1p¾dÄk;A^E'qî$Þ\¬Þ¢€€‚–h›Dª¤Ç÷ëïRŠÜq·m[ì69/Ï<ÏÌ(i€‡t1¢ÓsÊʃëäàóÝ
Ï(YâÍù%þ'§A0P’öOû£>%kI÷ÿü:Oæ´T…ü”üŽkg4†k'£\;JÖÊù÷„¿×ˆ¢ØRa2QËœ”¦‡9}S:7G³„Îú2–Fì -/ƒMçmÝ|IÓoÓÙ,IÓù¯ódòp:JÓÛ§é¿'Oó4$7ïc8"¡s~4 “!bæp2£k¡´£áOiœçV:Ç'ý£Rdk¥%iQJŽ u¶F¤•PÖ…¤?ÕbðÑ5CB•´KcK¤&ëëé×¹7û!¢Úp¢£U¥ô - (©Q¿==:ïsŽ¦5ÕÛJe-ŒæÙQ¡žå—.¨«ü³pžÚéÆT[«VëšÒ£,ýDë«KzP™5Î,k¼¶Uçl8è_²³·Ë]ÈŸƒ¨*þäDY!ã}F Ü@n±õÀî<¡ÜŽn -Ρ´ÈD=˜i)¹yü<}DЮÙ3ÓŽ4W—±›±ç!f_žwdh‘wd–{‘`Šaff¦¬šZZ&†‹Ú~˱ú“}¢ (EHÖnÉMS -„h 3W!t–|-ÁSï°GÙÇ3ØÚçVRKëuày†2åR›Zzº(–`&B-ל/åkø•ÑñB.$`K?E‹
ì]¿c”DÆFÕë=¹Ýgô ´XÝ£þkËp*ʵqu<,¦mhVf¹”6´±Pc®›|¥vœ˜oÜ÷>J6¸ûáãÓä'n¿>|ù)7%ºèÏ?8:ÝÜÿr;¡Ÿ8l–Ã.\Oþ1ý6¾O&O³qò£H&³Û?{6M¯Z£Ýh£O*«tíiÞÑŒ\SUÆÖé§XF±çtçÆÖ„Þ¶2ÇÜBìêÎ?½qÚQaîEA™ -4Ö-…*Ü_É>hm~^œOïpŸa=4†U@J8g2….ÂiGh½YDE›‘™ZªÐ;ör¿áÙ%eµ£µÙ|×òÂbIܳBöøéEeÀx!×âÅïaR!§eæ¾Ã[ƒéPŽ†Í™³ôÂo©æ¡o0$§cR5\-á× ÌÐ@ä9‰¨}fe?~ÊøiÒ!áGx±[× -¤DQc\ÖìÑSl‰Ú7Ñî7š6kØ¿ã%[QSè¯3eî·e}õÿ·Ÿ´"ÂB€)¹=Ýݼ-[Æ×I\ÒÄ{φù\0ž½Sv]Ë—Ü‹‚±Øx–ùiñŠ[ô÷Z£°Y‚~™Ýœ,댑:ܘ8¾DAΘܢPÿÁ¥vR„Õ -/£‘ßÑ<ñŠ7•%õfMQÌ¡9´½9ûrÞ‰±9’dt²°Ñ¶¼6F Á;P±R„wõtMÆò^Âå¶ÅêYn¹Z†¿¨á4mݧ©ÛºZ–iš5XìtÍ«®5…“5^µm+M¡K¡C¥Ò”w´R¢Ý»4ÕpíB¶ÙøJÒ"må -HY„;WøÀà@?z+G[æÒ ®ŽW7ša‚¢†5Á«òðÝ€µz»AIÐÔYM(xQ+þ,鈵‹}pq»æª @+kš -JªÍJr¬}c¾;ævõ—²¢Éã2Ø
yOHo–]x§#Þ)ÍKï1ýÿUÆa£Ðœ€,2›B§bªmðÙà@®7"Ðþ‡+ëæÆ -ŸîùÑ|üp=¦Gk~‡¬éÖd
cí
ñ½“îøÉÅ¿cÈ¿÷;†³‹³þÅù%~1s£_Ÿ$ÿ:ø/¿ä¿endstream -endobj -1158 0 obj<</Type/Page/Parent 1099 0 R/Contents 1159 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1159 0 obj<</Filter/FlateDecode/Length 1605 >>stream -x•WÛnÛ8}ÏW’‡MD¾ÖN -ìC.î®ÄÍÆî,h‰ŽÙH¤*Jvò÷{†”|C´›&H`SäpæÌ™3£ŸGjã·CÃ.õ¥Gí Mý^;èRÿbˆÏ]üå’îA¯×}ûAç²O\ÏŽZŸÛtI³î\àCL°ßnÓ,:¥êç„°ý¢5iSˆBM…!›ÉH-^IÐR¾ÐJ$%\09¾k£Ï³\éBé'Š–"Q!óàÃìÇQ›Î;íà·l7ÓlɓĬÙ|i–HRIRÚ"…´$’„Ì‚Š¥´ -©-¼³ŸšL6S§Ý
>ö@t9tAçK¥M?<<ŽèäöËý'-‹µÉŸÙ!:ÁzÊM™ýféöæÆq
Û<Y¦E*ÉáÚéo.Úùpâ -Š¤FÉ'É+¥ -“}æõàâµðîÉŸ¥B£g+¾ëÒW^ZwJ—/‡·dµ6¢»eг¡ÐídJw®F|æÞfC$21W‰*^÷Ãbl8UøVeÆŠ&êUß á§š…ˆœ1¤g̸bäó -#Š.s -€Á¼æ%¼eÂ{±#ˆÆ”¦nã%3ç^ËU¬s/©[OÏj77R_É´iƒq}Hqg|K(·Åñ1ðNügu\ù=áiˆc
¶h 3áÌø -®ÇõÏ7ƒa]xW4n$¤j®¯Ê¸v|×Ó‹*ªÎ -endobj -1160 0 obj<</Type/Page/Parent 1099 0 R/Contents 1161 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1161 0 obj<</Filter/FlateDecode/Length 1780 >>stream -xXËnÛ8Ýç+.ºrG~ÄuÒf‘L4Àô1pÝdCI´ÅF"U‘Šã¿ŸsIJV&AÒÀ|Ü×9ç^ö×Ù‚æø^Ðå’.Ö”UgódNëÕ"YÑêê/ñÓHÚú…üÉè󛇳ÙÝœ>ÒÃ7¯ðGN¸e>§‡lBñk¯´%ÛÖµiýI_Íû‡Ÿgs:_Ì“+í“ͳl°íåå%üð™ÙÝŠ‹`ì|¹æ³ûBÂ𸌋“Á1¾âõÑ )K®tÿDž7ÒZ2[ÿÉû¯²Þ$úH‹Ëhïb…¼ÀâE²Jè³ÙSÚ˜½UzGÛVgN)tN–œ¡\Ö¥9u"-%/ð…z9×`]êÜ/öµþº¨RñÚg>w™ø€¯‘J'œÌI¤æYNéˆ~(êDV(--Š¶SÖ!ˆS5ôUº›ûoÒ¢ÂâãD%2ùÃGOøÚš†$®ˆž..’%Ì Q™$w¨%)M¦–àxß“Ñì
ÊÚÖ ]—ÖLIŒä\Ë‘9ª¤+LNéö…Ê -x€R°SÑápíȼOpº.\Àö\"® -QÆ{p%â„çÚ8Ò Y©¤v³PQ*àY*¥¦zÆoAƒrlF\Láç«ûÿþòùÛæaC¥1OmÍîHÍ%̧ìÚÒ- +¢•Z®+K©¶ƒ½O$1d(Ès•ÕÚõÎ`-â´GßÀY–5#‹ÕªWŒ¥UmpÜC¢B±Ld ÕùxeBc¨Z)Œg/
mq’©·IÛQÛMa/–¸ðèl¹tÃ8ùZóÈ`£Æ‰ÕÏ,D¤j\Ë-O%™ky€`Q½fƒ;¾ùÖ[38:jÙé>/øíT€lýÅs5lb7BýÆ ‚VoØ„ýaÏ*ÓÆ*i;Ó2cóaïrRL$fÓÖ_½ÅÈ.PwùO,צyÊ€ëUÚYêOðæžÃ)þ¿š‡4‚IÈýßõÏ•z†¨…¼ˆëBb®³ðå¥gÍŠ³Ù +endobj +1289 0 obj<</Type/Page/Parent 1068 0 R/Contents 1290 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1290 0 obj<</Filter/FlateDecode/Length 1586 >>stream +x•WÑnã6|÷W,üÒ`ûlÇv’}HÐ õµˆ‹ À½ÐeñN"]’Šë¿ï,I%6ãCQ\.‰‰;»3;»ú{0£)þÍèfN×+*ÚÁt2¥Å|9YÐâö¿ÏñßJª›ÁÇOšÍhSá‘Õí
mJÂíÓ)mŠ«{G|‘ÍLEs:˜®)©ß$)O[)<=WÏ;º¤g¥ï–#Úvž´ñ´ÞÜ?Mè>ü¤Ò´Bi*ŒöÖ4´Ô9™Žþ°ù:˜Òxv=™#úÕõ|’®ÌW@Œ+›Z"ä?ªíZêñr4_.³;+:šŽB{r¢Ý +ò†*c „$Yxe4áËya}·‘¯%>IÏ¿Ðpoe%•œ£óÒiטhÈìÓÈÁµÛ ò¨pt†|x”n8¡§ø š&^‹„'ר]íI”/@'v’ÌÊ`ÖÒÞx©½Bœ–¶Öœ´' ÄdqI_Ñe³‡&ô§“x%Ú+Z‰Dè |MN‘p¤b¡40Tç}¹:Ô2 +¥Kdì¥U¦T8¡‹U£tÇŸ³ðf¨ô{’A•±%2Çñ[YÀb|ÚyÅrÁ]”Ñ–I&!Ÿ??LÈѨ¹å`Ô%TècIŠÆ™P„·ü³\â‘C†›ªÔm’”Òd¤dDßTçXXî!ÑCmˆ,mé×û5Ê‘…|ÆE(!Âæ£Jq±F̯‚FÌA³:EY A®i„G¢‘ëw…ÙçÔ`wŽÚu4Ë.ö(„ŽV€Ö
ïe»G3žqv±è!Ѿ}àÞD6`ºRãá‘£nf@s‚PÄÅÃa\¸#6ç9Èðè̬¢'B»x.ÁKí‘–ÔBÐ^º é1â©Ðj§ +]Gäêàð\˜¢ƒÂHÏÎÎâ&Ÿ¢Šðß>~º£¦“ñõ"øoâ›Ò»”ýîÈÓ)4žßLV½ïŸÝ»ËíŽzb©'ÈÇóÁ5ŠíÚo»Æ«=¤õé]z2ÜÈO¦@®yfÒ$†`b ê/t1߆_dFhöè,#ڹתÌ1~"¤t®Ÿ*z8R)+àܘ']û9«F¯ù~L®1Dbrl8‰ÈõçM°§~^T=R`¸Ûo;kСDuJ
¹büð7\9ðõ†~Ã=‡ókÙ½¯‹“¯föÕçÌ¢üŒ,Ý!´6.$¬5̪V”y +>}*¾¼ß)\3V9Ž¦GàØí$üëlxðÝ'+Y‚$ª‚p̨Lxk†1”T»×ýÇa@ñyéy›F©Ê§óGîpOÔ:>€‹ï.Ry¾obÄØæ$PÙdó_®”.š®|µ0Æ|£³I¹jçøAÏë§ô8çi%¦ˆ]Kÿðøù)Ë–•Šv‡?¤Sy‡2Úˆ‡‚«8‚s¼;3èu +dð¤Â6¥w.¶c°‹9,Öëqß~!ÇKÛEzŠóÑ"ÁàõY?÷K_\ÐRëÈx´1†=4Ë5í\§ëV bŒ¾…³ ñS¸ò +3_¤ÂP-ö{ q$²±4”lœ=¶ñÃâTÙQ;‚÷wxF×qt…t0ˆ°K&ƒŸìõÁS¸«G¯¾vV’žUÖxb6ºÐD?ÂŽú.»yÌn<_bÜÜŹñX +endobj +1291 0 obj<</Type/Page/Parent 1068 0 R/Contents 1292 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1292 0 obj<</Filter/FlateDecode/Length 666 >>stream +xTÏoÚ0½óW<õR*4 è±ÕV©‡v›@꥓8à’ØÌvšõ¿ß³)-e;L‚òÙï{?>û× CÊO†YŽq²¤IŠbr•Ì1™Ïø?ç×JÔ±0-²dò¯Âd^$ùiáf9¸¼ Ë°¬z1ŸaYÒËrØo¤†@Ù(©=›”R½HÇ7•i…Ò£^U+kz'Ñ(ç¿@èŠåÎIá½lwÞÁˆ²”.lÜç¡4üFø·-Ê_,Ÿ££lLŠËjØ«¦Ai´¥çJ‰Ç»‡ˆùBX¢YéLó"céAú›»ïhÑJ˜zº$ÑëðŒíbïp¡ÝQ7+פ.¬ Èö`¯ü&¶qþˆÆ—ø6êŒlWbÕ’!ÏÀŒò"‹¨çs¡¶<Axuy{…Œf×åSŒŠ”q²ú`| +endobj +1293 0 obj<</Type/Page/Parent 1068 0 R/Contents 1294 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1294 0 obj<</Filter/FlateDecode/Length 1512 >>stream +x}V]oÛF|÷¯Ø—"`1’¬ÈN>4A]híà¿É¥tõñŽ¹;ŠÕ¿ïìeÉLQŽeñ>fgfgùýbAsü[ÐÍ’®×TµóbN«å¼XÓêöŸ—øñLMz°XÜ«éƒÏ›‹wŸh9§Mƒ³Ö7·´© çÌñMuù¨ÚRQǾq¾U¶bÒ!ôÞoþNû7yßìzU,±óò‹k;åupv\³¢Åb\³¼0¬Ùì˜òÁýž=õm¾|£è(*ó’~cQe4ÛXÐf×Ò
\O +õDÐv+«QC:1ؘ´2ì\ojA:§Ùâ:ãó¬Œ9P•`bo”S:ï¶^µâNEAƒLAµ,¢«œL„ªZãµWÚ¨Ò¤Ey?X¢Fã›è•
ûÉí¯çK±RI;Âenô‰ƒR®éñÏÏ(NØ)Æ3–k¨ö¾feöÈ€¤¶J[ü®å¸nŒ~aRt¿‘㟚§íxšTf=ƒO;µXGµ©Ceg'èY'øoTFÎAÒƒ<4¸•ZuÈB”>Â5мպ3ö•\z¾}µ#èžcɽ~~N¦ÚeÑ’·Ò pþ^]OYú-ûtÀÉV€4¶Î¿ñu [Hé\ˆ&°WëŒ:æº ¯ 8¹êh7úÞë¢'L•ðU£B„¤ÜÒýÝã)±w»ÃW:”=P+U×ܱ¹¤=`c;-葱C\ì:, W;)N6âÀÐ7—éÞíÑW‚ 9AÛû
ê°É*TÁk!¯žT0¶<œ(r—0ÙiKɦÒ'Lƒó½ù•Bv*˜QêíVÙ¨*¨SDÊpöàþÌgŒU&³aãäöòõ ý!%Ô^£ô }YIrÏã +™«PÐïXƒ¢²Ž`gÜŸo5«ØGô T.§ +‰uÄ)Rf’›øý
ÚD‘¼<ϽԕqÕË)ñ¥äéìZÂ]û€öš)ôÃÝ›PLóöœnB.ú'……ä@ŽÁ@[N1×"‚5xh¼kÑVc†Â¸@ÃMU8"僎*b5(BpWOèFxÙ@6Á[(ýèºÎùØ[¢®ää´$˜ÏôgD"oã‘À¸[a,@Û„æÇ‘É ÙbRUUÔÚ#´ ûR(©—Å0.‚úTK¢*èIDÉ>ÊX㡃‡åØ•dšÅžïöCe\˜ +NÐFú²[±[Œ<ñØùô++ŽÙ÷Ê •`ðlME®]¿(>‹[„!:a@³z^Aa¡Oƒñ)Ñ*!{o³éKä&7ª7ñê?˜ÐHÂãò¦‘>ØèžQy˜¥O„Ñ‚CqTàb`\cÐITýœÍùñlb3'Û"Ð/t§Læð‰ÇuOB +·jkuìk&°PhÎx¡÷
ò–qfXϵWäÀ¬–MÓÿ›ç} +<p3môŽAL RÑ»Faè<¿Ãiü±Òü‚úhÃM¢&Áp€ŠW—I¡¥ª^˜LiÄD]j£ãAÞäõ.E·ŽïR0礤NT‚š1,•Yé11ûº"šSåÎÔ8×Öz:ågŒÎ¢ö5JùèxÇ,éá<qÔÔ™)¼AeôŸêÔXƤƒž/å˜2îhS4ÊØ¢hÀç˳á-³R³C«•‡ qc£ÒLl›„mYTΊ5,uâ5yS¬ãÈ„ç÷Ð>ºcDuÄ(>µòÛNÚîþßξ=uöê:“™):¸Óþj}[¬?.1Æ0Àóµ”ùÛæ⯋T1endstream +endobj +1295 0 obj<</Type/Page/Parent 1068 0 R/Contents 1296 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1296 0 obj<</Filter/FlateDecode/Length 1584 >>stream +xWÁnÛF½û+ºÄ$Y’eI9ôà$N´®ÓZ‡P,É¥¸¹Ëî.¨_ß7CJ–h(#—»óæÍ›7«¿/¦4Á¿)-gt½ ´º˜Œ'´˜]ç4_-ñ<ßהËÂ|u3^½¶0›½²ð~}qõ醦SZç²X-iL&´N/Ký¤Ë¹ºté6ÐO}£ß®¿cÓü¸i4[ +¶1¡Ñôz<ãÐß.wKíùˆ•±Ýù4¾ûz×…=O÷&õ.¸<ÒCž›T·G|{ËÁ
@–¥ÛJKƒ<8ƒ^X¯U6RÿG©JpµAŠ. +PÎxÜRöŽ¦à‰y]O[ÊÀ×›\mõã7xtG”éÚk$¯³—Œs™.U•(ĵÀ@îÉ1CJö´ñÊF¦Lu§Ó®Ð%õxÓæ„<Q×Üyr®ƒ¼‘0Èó®,QÇ&ð H¦—z¨’1>Ëx§ácúœÓÞ5¨Z¤³%ˆh¯Ã€O´ò!ê²ì€‰HP‚Jí{‘ÕõÊÜw¤ã,!š2•dƒÂ˜¶-õ ü Ñ;« ÕgI,ÑF(¨È±•™îI +š«¦Œ¦Æ–ƒ Aî3þCÚ&&¸'0rµ(( ?ÂgÙmP\¡<uÞ7¢Ûg©C¢ÔçÔa!ø¾*ý{n"Ëñ‚E½¤, +E¶©ˆÍÎ60 ÀŒ(‚Ês¶0O‰ÄNEë_(QåaÁy¥ÙöÕ,$ØO´(¯nû® èsÆ ‰G)DâbÁõb²ØÖ”ÍjØ,ðÛÑC—ÿ…wÂËžHŽ}Åex
Ñàœ‹â§âçÐñ +01¹È5§ÊýÌç@Ç|çiIá{©\ÍDì{ Ý
UÜÜTôYñ|’8G‰«)hÑ2ez ÎÏgØ€‡- w0¨çR$dê_âg‹ÎæsWJìŸ.®WóÖÏ@ü@;ãëØþ‘°ŒãîÙ×CЊgË3·‚E%Ã~æ^Š€<¡IqÞ&ôµÊ’ËÊ“‚‰JBrí‰;.S؇ÈÎÇÚ©ý˜n»¸´¸¹ÁO];cÁ`虃ËÙ©Â<•{Ðóµ›/¾TéÊ!fc-4‚ò¦ÜwWŸVÝïé?V×´X¾k/·÷ïoé‹wßy +|tisäŠ36Œ–“w|áøÿWðùb5^ÜÌpǶédÉÇÝ/~¿øè{\endstream +endobj +1297 0 obj<</Type/Page/Parent 1068 0 R/Contents 1298 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1298 0 obj<</Filter/FlateDecode/Length 1460 >>stream +xmWaOã8ýίõË•Õ6Û(å$>Àí"´p{j¥ÓúÅMœÆ‹Ûiéýú{c'´„ + ‰gÞ¼yoƼœMhŒ¯ ]OébFiy6NÆ4›ß$—t9¿ÆïSüXIyxp5ž'³S.æãÓ&³q2=ub~…À½÷˳/74¹¦eT³ÙU2§eFÀ4Ó2>ŠWz-•?_þ›—4™Ä7GÓk¤_fÃ;OÎ뛚|!)ÕJVžD•‘“v+-Urc¼^’ A)^UÙ”ä¨ÂÈ©ÿägÚ*-H+|äBþ˜LŽÓÂê= iñxÏ(Æ4š\ BäNMY"“KèÓP**äôáx—'„ñ…ð´åZÐN!ÐQãTµ Y(”ni@¦öÊT¤ª^BW®“ÔTyBO…À¾PŽðÍÕ¿Kô€ŒV¾4Ò1¬÷(DšÊÚ¦uã©2ï`÷³2m.IŸ"ÅŸb-1JBË÷+S©¶20Ì +íÓl +Û™Ê dT'·Ê4®Ç"*wº['ô=§=|$+Áé%[
£Y½Ïoi/Ý`uÎÄTá<70W +ŽÎÜB¦ƒfèÄF|˜œ,åBÎ ·-–·DªM±p†!D)aØ Õ'â„`F¥Qì"íLõ›'Ì +h‡å…áœ<m{¥ƒ,¸e×súÀç™‰ŒæÊÂÏ… +ªÛP»ÏÑGv6Ã.O·(D”‹DN(¡G9ÃFfçÞçÊ$0eTH±U@
‰¿Ó@¯ò±!sj,‚ÇfY -˜1F`^–H>SÁGÇäŽÜF`Y#;ä? -ˆ=†zDn*É{íI`ÉUqg¯å¬6ðzŒT ŒjA¬Ì!wÀgþòÌhט’ñxE„ÃIË#›^Ø‚£¸@2vù2H-[õñŸÌäãdÀzö‰÷z)„nmSuL†¼ÛV'ù’BïøÌ5lR{Ùƒ€mü0Ê\(:V4^–2©ãü -ø]Õ%˜s$aYŽ¢í»›+ªEŠeˆ }ò&‹óÅB‹ -Åæ6ö ³Âhe}ëä<Š³'µžxz»®·Å;øòA{ã1‹c«4álÓV•2rßg©ëÜ,êA‘üþSj4J#8Ý÷ß®éòX›ù«e¾â -Q7}ØѹÝÌ@bÒFå;úw—o–Ì !#ãVrçraÂðm®ñ’†„ãtl÷]ß<6HBØCŸ -S¥˜ßò7@c™™<¹7PIø…i!X ôÜéýæÌÿ¦>ýÄ4ÈÕÈ°ÇË1stÎj€Ð9ð¬ ÁsèÞKljvê_>~ÌG¹úñ7`-ˆ#³Þ!9Ó?œ€¯¨b†uÌ -h -Cf(TÈåI0rGR¶â,Ÿó“-ú¸3ë²ú…ÆÌ>/H¼†ýór2Ãp>+ ½–Ý?¾;'xß K8£½tÎîN>?$Ãá±ïøJ?z'vbÕé~÷>Ôç·„•²ò6ÔIîŽo¤ÙÝUtw±ÆÛüê‚Ök<VóÉæúËÍ5}oϹtk²¶B6½,p4çÝöóËåœ÷ÿß-¿q÷†]]®’Ëõþw -endobj -1162 0 obj<</Type/Page/Parent 1099 0 R/Contents 1163 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F6 9 0 R/F8 11 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 516 0 R>>endobj -1163 0 obj<</Filter/FlateDecode/Length 1983 >>stream -xXQsã6~÷¯ÀôÉ;+¶ãØÎÍôas»¹vf³Û»¸³íL^h‰¶ÙH¤*Jq|¿þ>€¢ä(¹ig³ND‘ -Ìøã?ÿͦódJ×óU²¤‚f‹erÓ>åô0:ÆÛ›5v…½ü‚h¾¼–“klºW׋d
¡+Þ1—‡øj±J´X¯øþWšv£ÛÍèònA³mv°z¹^Ñ&c§´IÇ÷ôÝØÌ=¥¹Ñ¶öT¨5^“¶iu*kQ©¼?º*ó¤<ªšÜŽ¥•çÚê½¾¬´/Å!ÕÔH1©ª³T¸Lç6Œ¦4™]%sè?ŽUò”¨„¾n¾Ü?Ï?«HåÎêþ+͵ª¨Ö/5ùº2vïi‡eoŠ2×)´U–½V—ÐÏ8tpMžÑVãþ*7ÿÕÙ@}P5M} ˜J÷·TV®v©Ëe!^–ßÕ³÷¬a6[]ÃO¤qKÆR™+|Šµ0²sÙm›š¬«º·jù -D\²Xbw•*Ë8vˆ\Õ -Cpn0ÎtLî ¬Á·3Öêjà&Î=&„v9^ðŒÃn®‘Ìz?›”“>Ñì‚Îv -ˆ2È™ÒÈóõþ~¥°+«\Y2Ò"ËH -^ì5µÎO"AÑÞ¹ŒL¦_ˆ".(îãÐi蔣.ú&=ĶhŽ
B2—ãÚÅ‘ -SK -#"f<¯ÑÝýl@6^ô(CE–;„‚ëw5Nê©c˜Â¼0§²w:»ßKU‹:‘!L‰Ãˆ¯ÄÅ_uIŸˆJKå Õ†¶Eö_€ú]ÿÅú;þ+_sF{-ýsp¡^LÑd›bËVïúÜÕ@3Š\EǃI!lË6ܳIXŒ3Ù˜órtú.ÓÓ&SÿÀFlcÚË{`h…%Ð@f°¤ëŒm
Ì“IîqüøA¼ÁNFt€ŠésñB°™úQÎ ŽöÐ4L€ÖÃò(PfFÏ“È®rE[ŽvD÷W -_bøäæ‰!yQ½b\ƒýámNvžÇŒÚ7`ꊱ.®|†)µA¼¶èTÈ•Òó2†3üÍÒñw(M]ááäx§òPä8s«Ö8
7f2(à
2{è•C¥¥ Ú™}S…‰¼tÞ›Á°bàSÖûøéµ2^Þ[Ï–øva}EËå,øÃÇûÛôKåþ@ÛFŸ\Ú`7ÑÅÖLâÉj.“ÞU²HCÛ -_:0åî+£@˜£Ü -;Ôó2w'| Ç -+˜Æä±;R_PÁÊ«E²Z®ÃH9¿æ¥Ï›Ñ¿Gÿ.À»endstream -endobj -1164 0 obj<</Type/Page/Parent 1099 0 R/Contents 1165 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 521 0 R>>endobj -1165 0 obj<</Filter/FlateDecode/Length 1492 >>stream -xÅW]oÚH}ϯ¸Ê[²R’¦ÝÔ„îBT´R4Ø8µ=tfáßï¹3cÀNV•VÛ4à™ûqî¹ç^~œÅÔÃOLã>
F”g½¨GÃËËhHÃɯûøÕ’–ü -€L†ìuÈ-ç¹J¾“ªP‘%|áF"µh¡²*Ì,ôRáº7;XX+‹eôQ‡¬–¦Ê-÷<jbÓ°lÚÕ}„D¸þ=©iËxªÀJ-T“ßå(.#¼„Né±Ì^H$‰ªJ_t¦;fÆÁtxÔÊ7¬°³àà¬n´Ü¢£îŠ™²Ø“'+ÈTžJY’g8æ³9®SZô+`?¢{ñ]¾ ¨XbÓtñÀÑT -&
Dø&Žxî~©‚ºî2P±Á¢‡y»îPG—cn}0ÊÐ9Ë^¿ü¬¡RJÌ'<~V0ÎŽ›·Å¬ˆæÜÙa˜wBÍ=}Œ‘Ø3ºµ -Oß²ýœÊ°Ús37ÔÑ -¶^.ƒùaQpI©« ãøéáúþuŸévz}÷àÞzÍ°ö¤7âéö'Q|uÄñ¿Ö;¦§gU-X±Ìd+&oÅc¿L<ÁëR¬Qü…äQs”vh"±ó¬Þän?Õ·½’¶þ¼®z· ’!S%k^3Œ´–¹éÄèV³–ážõ¾&Xyëí±æÈ…´É…/©?So˜‚&è}»¯›“åqcßw·®ÕjxÀ`
cL=gƒÂ‡ÖDŸaž`Å° -endobj -1166 0 obj<</Type/Page/Parent 1099 0 R/Contents 1167 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj -1167 0 obj<</Filter/FlateDecode/Length 1200 >>stream -xVÛnÛF|÷WØ}p”HE—´)àÄNúKnÍ (â¢X‘+“ ¹«p—’õ÷½P–d«—Ø°-˜Üs™33g¿ô©‡ï>bJ†”Õ'½°GƒIŽi0ásŒŸ†ÓÂ>H£çÄÉ ŒŸ;1š<=ð&=‰Þ
¨ß§täÃñˆÒœ¸×£4;O‹RQÍu!s*ÅJV+®ˆåy©K)H.H¨GV•\—âž–¬ax›7Š´´ÏT=3)´(+þêÇôÒõhâ²ñ ßùÙ-+ÎG{Þt‡oY=gtsù–~}Jg”l‰àT1ó»dâõ(è÷И£MÁ -â™-q!ª%@˹fe¥N|¾¯äœUü›üY³Yjô¥ÔZ6¹¢×ô?Ò½xÖ6¥Þà¥VñæHÌ\Ö¥Wò^ŠŽ÷1A³[ªøŠWì$¡®tÙðLÖ59Ϥ’ÊŸ}£þ¸
VŸ§Wé‡ÙûÙôXïK¦t)YóuÁ•"2SŒÔFi^ÉÙp–“•Aaã Ú%XÛì -endobj -1168 0 obj<</Type/Page/Parent 1099 0 R/Contents 1169 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1169 0 obj<</Filter/FlateDecode/Length 1451 >>stream -x•W]oÛ6}ϯ¸@6ÌZù#n’ØCÚµO+Ð!Þ[€Œ–h‹‹DºüˆãþúKJ–¬¨[¦ICñ~œÃs量Íi†sºZÐÅ%åõÙ‡ÕÙôó;ZÌhµÁ›Ë«kZ4Ëf3¬ä“¥Øyii™ÑG£7j¬Ò[úzó…6ÆR¡œ·j¼,?_þ>›Ñ›Å>&¹ÔÞŠª:P-´Øb‡¾Ä¢Ê…WFóf=¿J¡ß\,³.³yF·¢^ºàXië’æófëâ*»ä7¤C½F~fCjõDî༬ÝMäö=ÝM·¦V¹»W¯I8Ú˪âßH„žð|¸ý6¢VÈ’cý®txzMÚì)xU©ï’w6°æ)¿¯UØnź’tsˆ¾˜"T’ƒ#ç»WpœÃ‡?7´³æQ’@È€ä7ƪ˜‡•Î›#甚Šœ´*—.£¯VáàŸ)~[„œÙeFœS!såx Û‚C -YàP5â=`2NÌÑN8·7¶`.„kã»I:ˆ(Æd*}>VÑfú¹=¦ Ø›Pdå· l¤2ñ³A‚½4\Ô³¦¶Và})ü‘7'sHÏyuL܆¼Ø¼4`¦ ¬ô£© -÷>|Û¤ÊlU£Ö#¶×ÃM£<Û…ìö£®P5¼ÀgÖ \\f±”¸Ü9`¬e^ -\(BBZæ>ê‡Ô’ÕÁÚXû%]H[PÄ&O‹szªI¥7V Ô¡`%d‡„”#„-µ-¼C‰¥5a[’Ñ’6 -%’xª¥ÎØ4½k9íQp7éU-ô½>,”çΣt¡PHATÑ£uU}™(ýà C…y^ ©*³¡Àµ&ù$êÝ¿ -…l†äóBü‰¦k¥§(ð)ÐMÛIô[}9po~<,¾gÕ¶pÓZ¥jåÛM±¯÷Ž—t¾»g}FK^°ÀàÝé&WjÌKÿ4b.[Œ±~6ì¹Âe76ò˜ä¢®lDÖo:PìÅs=.x)¤îÞ³…r.pY´ÌðZS¨ÍÒˆ—´`®±b‹~Kb³˜Kª·{9ö’Ö¢Ó|2Š¹<”¦Æ|¶1ÚX.©—w®Ä5üxª)—€ë{rÄ‹ÔÝ{Ž[¢DQm|ÑíñbE¡B:òR¯¹ÒŽF¼Æ¹°>#^ö¥”Ü(#¤Î¢Õa‡è>ݱuÄ.ã6N¹–ݽ°ºõÚ®Å\šfÔ¸©ožrÝÍ¥½cð'¸ã4ç‹uSùøNáWüA€nÀÿåy¶6{†ÕkŽ]Ð ¥†AûRáêÑU2¿î>Ò..ÓGÚÿû†¤—|7.¯–ÙÕå5>X1ã×úÓêì³ -endobj -1170 0 obj<</Type/Page/Parent 1099 0 R/Contents 1171 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 524 0 R>>endobj -1171 0 obj<</Filter/FlateDecode/Length 1651 >>stream -xÕXmoÛ6þž_qÀ0Ôb9vœ8)°)²–¡[¼o6Z¢,¶’¨’”ï×ï9R²d9)¼¶ ëx¼—çîžÓç³)]à{J‹]^S\œ]DøwzÍi~³Àß3üI)?€(ÿšò¯_<›_GSºšC éÕEtþÉéñìÍòlòvE´L¡ÿúfAËÄŸ¾ e<²;ëdA•°v«MB‰pb%¬¤£ï–q”mࣣ‰tñÄË%áI«ttNωÚL$z{’èÚèºH~øŽ¶Êeä2I…Nê\^rAãée4ƒ3£J¿ÛbŶEVôÐ6SqFµ•ÖëzÅJtn†§±.PexP±ÑV§Žîç$ËØì*'“}Œø‚Þí™°™´-3e;½øÛ:mpL•$áˆ4GQª™ä:ùIJQ“ʨprÒø²=Šó‹ð¹ J^<LÚ°-‡:BVýÉ(yùbJd%ËD•kÒeÆA$TQå²¥SKqáN׆~+ÕÓä'UÖOàÆÁ’CK¾œÅ -ÉÜHcqáÀšY4CQÀ†15½s‹’V’b]T*l%c•îØ3ä(窅<ÇŒÁqÏ´ ±‡>éŠ}µ@™,ÉÔeÉš¼Y¯lm¨À-UëÚ4÷uÚllTå"z³ C‹Ï&ò‡ZûàÚbvNVJŸ³DÇu—`aïñ36Zd.–(ø}m
Õ'ÊÈß‘N;LP8H‰²Î¨UÍá‰Z›oCÏæèj¨Üo¾}÷0FcÐEtã?÷ -},û**EfÒû2òs
’ö£ž£h"TêDæb7TǺ.]{íø+” 1\ÿ™’}ÃnÔœnIŒg×n®ÆTç¹Þ2zQcÞ/D_ §â:†Ž;‘©¨s”›FËð€»o‹v´ïj›¬Ž{÷¿„ßî¾71žäj5±2®r;_&TÖˆä§Aæ ‰±xN'êöZZÕm=\¨íy÷ u¢žÆÅ"¹ -InÊ1 -|)âO_@ýÏÚÉ×¾zÄ0#ñ'F -ÚÚœ8d¨”ú=ÕëÍ…f³x†&vçê×ÂxRÉ×&†ZŽE%V*Çä -Å©9ž@mˆ\&\¨{_þ×¹lj¾%y~Ä¥DÆ0ÖˆœRP™—yðKÖH—鄸QZvÌw‡†¶Ð†(½Ì¸eìÜ(y²Ãµ÷…Rf‘ - -endobj -1172 0 obj<</Type/Page/Parent 1099 0 R/Contents 1173 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 529 0 R>>endobj -1173 0 obj<</Filter/FlateDecode/Length 775 >>stream -xTMÛ6½ûWÌ^ R¬•¼)zðf›ž¶Hk¹ì…–FŠtIj]ÿû>JvVë
ŠÀ° j¾Þ¼yà ðK¨L)+¨î«xEEYÄ)åëï)þ–©
¸†Gÿ±HŠ,ΩHs¸ô”À½8ŸmósOéê.ÎfÖùÖbßÍE—t›çñ™³UŠ:Ó)džŸa½ž¹uv†™_YggXËòUæà›¯Ó·ÍßW‹÷ŸrJªZðU¬Kªš‘UõrËöYÖLOËÍÃö醤&g¨–„{ÍP{i4™–Ž²a–iöGc¿‘|ÇÚËZŒ>ÞŠ¶•u|S}EÉ;JP)”Œ²P«f™ÇYLŸ7ôÑèVî;Å…’ý.®ñq -}A¥a2:Æ(¥#,‡±Ü,Œj¡7!újÖvOK2;>ÑAôèÇy+ÇŽÜkç1,8Ç„RÔ¥ÌQê}(ÙZÓ:%£#%5SÇê -e¼5êçöØ1ú²„V´ñg`®3ƒj&Ò0¬_Ày]›A{pßcç‚ z¡Åž{ŒŸiœ>³›Èk¸ƒò´ãN<Kc¯Š¢i´:¸©Ï@czóü/J¼–”Ñê4–E„Ükš„Æ—3 ľÅӟƃÎNø«ÊñBÅÉÓ¹‘ì -endobj -1174 0 obj<</Type/Page/Parent 1099 0 R/Contents 1175 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F2 5 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 536 0 R>>endobj -1175 0 obj<</Filter/FlateDecode/Length 1435 >>stream -xW]ÚF}çW\)%x1ß)•v“Òä!ªÚ¥ŠªÒ‡±=À$ö±!üûž;cp’ª+••@öܹßçÜ»÷bá/¦Å˜&sJ‹Þ(á
ÅüõÛÏü†f³8šSAÓI4rzê]=Çq4»:/&QLÓÅW -šŒæí_½~Æét-jÙpºŒ–4ÝGc¾;]BGxò§WÏ8]Æ7§ëÞÝêžÆ#ZoÛ|±¤uæC›´ÿf/¥´4‹èq¥Ò;ôA¥Ö8³-ér¥UIUÊŒV*—/ןz#Ž§PÒ:»RTZ)ÉhzE"X€íÅ‹`o8™ÂiÏ¢8¢÷ꪴTF» 9E¢jÉñI…äz/¿²KµMßXz»u›—t°æ¨2éào!…vd¶ääAXá£(¡%7;•ŠœŽJžøx‹ ¯3Ê”•ii¬’Þ„O‚Ÿå^”T9i´IÚZƒ¡K¤eU‡ýÙy¹Iaq°b8IV:SÙ&
¾£ey2ö3â.Iä¹99ÚÂÿ½Úí¥SÙØG¡r‘¨\•ç¹Âh°äà¤ØI’_ˆöˆJd”ˆ\è”Ë%Ë4¢ÔÆJR -ï‰ÄT(áÖ
àÚÊJãÞö´Ý¡-Úð/¥ÏLZR—^×í=ÜëGuã9zΗN9j.²Ï¹PÈÐÞœ`?y`‡Úžô»V_¨é^iI›>çCqˆ&Í<€¸¡Ä"}u¯¢î$Ï·ÞWÎ’Z$¹¤§ÃD8ôðÛÕ“/¿0 ÔèÚUœ·’NªÜû²±ò»Õ¸îÌþpÈ'ÃÂeÛNÓöɸ"úE§’’Jåå -"Éy,ö]‘Dœšðº¹w)¢?LE -{ý"œÆ5•M°HÍ0ß4ûV„Eà û_µa¦é@qoÝ{®ÖÂd´˜ÍþOWsMCG7´òà‘Çtýà“^¯m
=ÏéýúA -v.¶oÄ€ÍI±Åð~MâhøÖž}„`?Î
ßÇ2S$ -£Øg—v -=endstream -endobj -1176 0 obj<</Type/Page/Parent 1099 0 R/Contents 1177 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj -1177 0 obj<</Filter/FlateDecode/Length 683 >>stream -xu”AoÛ0…ïù¼-j7¶³Ø=¶ërÛ°¡vÉE‘˜Zm,y’\Ãÿ~O¶ÓmA— €a‰äãÇÇüZd´Â7£2§bC²Y¬Òmò"]Óº*ñœã瘎ãÁÇ,Oó˃ûÝâf»¦,£Ý¹6UI;EȳZÑN.·ÚˆÓi Ϻ–BÍä‡æ`OZÒI›OÁRkµ ñ!½u/äkáØÓ`;ê… ×$Œ"„ô(šƒH¯vÏ‹%ùjwjùóód
=}"z“<i6Á“†Œíéàlïy¬‚KsˆUÇ”Pé^Ù‘´ÇÇÇ2û½:ú”î¤dïµyšTϵ³@P;v"Ⱥñð@ûe_kY“h[HçIiÇ2X§ÑÑÜç$nEA¼àm7ÊŸî×| œmÜ& “à3´‘ÉÍö–2 ‰ãHŠl¢ó1Íð¥¯6°±f†Á'yÚò§6 -€Þ°f…8X„*ÒGÔ:~Õ¶óÐÙØÎÄ÷Æš &‘¤=5B1®Æw¡Î«–|¡´½ -endobj -1178 0 obj<</Type/Page/Parent 1099 0 R/Contents 1179 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 539 0 R>>endobj -1179 0 obj<</Filter/FlateDecode/Length 1723 >>stream -x•WMoÛ8½ûWrrDñ×ÚéÞÒ é(Ònã¶{È…–h‹[ŠTI)^ÿû}CJ–¬$,Š±EÍç{o†¿FSšàß”V3š/)-F“d‚_øcÊ_?ŽfËUòžï§É’ -š]’UóMÓã¨ÿ½ ùt‘L{Oûßñt¹<Zâwá†Ë+Ø]Àê„føï$mÃù|X.ïÞÓlBë-â^®®h…pñK:¾ÉEYIGË„¾=ÜÿE_¤+”÷Êú *OÂdôC™Ìî==¬ßÿMèb¶€ñušJïéÆšÊYMŸ”¯<`wÓUtw1_$3>¼L¦ }Wr¯Ì.Msavü%¸-n=Õž®rÙs8I‚K/ÓÚ©ê@™ÚîwšNw³JwrOÊ#¢Ø.L8©¥ð’”ÄFi¶¶µ®—$¥ZIƒÜ+‹X$ŸTŽŒ¨Ô³¤c^Vâ! $ÓyÌ3Fû¿þŒ„C¶…ÍÔöœÖ&“N^K=i뻌é>ØŠÝ‹ -¹
¦ÂÉmÉX<³”Ú¢tÑvAÚmpJœ[_Q,¸ÚÁšó ¯”Öû6»‘xÕ:Ù*-©ë,hÉeDt¢±+²BÀÀ‰ -M…A$Õ0©{ÓœŽ-a€‰Ei¹ã™ÜŠZWô,t-© ¿N’Q<¥›ÛÑåݬAÀ˜¢I5ùº,«NÏŽ†ó-bÆ”O)
<ÊŒ¶¨#¿vy>·°j+²ÚËø´3úŸ¾0®\=<uNÞR!Œ*k
$^H®«¦¬Ax¶Âc%Bõ†Œ -\X&³„þ°û#ÎBƒŽø„•¶->ZN£f7T¹C€ -2ƒJlÀ)%nP‘Ê– -y˜‹mmRÖ!1TýÀõ–¸A:"wð^¥ -‰q½X£<yEl³÷Øîߎ¼¼Žé]Þu‚ÙGè#73Ý!E˜kªDC4…Û -S9Æ•/ô:p§UlêrÂ!œu^ê-=ÃúÑ(„Š»e·ø™ò¥Ð±v° -ÇËÛ<ɵ)Øó»I cljk*¶8¾>„] çV<¥Å†w>ž1ÜØ›niqÖ†2õ!Ɖ't+/.M5C°
ÌÃdçË&Ø
‹2ÞqøÂo §¸Ø6ŽSm&K¤rS[Låam»=KÂ6oÔ³Ð1®$¦_3r®º«Áœ/ã¸qÞü¯‹4½uy^¬Éjy…›:lÎçœÛízôçè_+Óéendstream -endobj -1180 0 obj<</Type/Page/Parent 1099 0 R/Contents 1181 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1181 0 obj<</Filter/FlateDecode/Length 1807 >>stream -x•XßSÛ8~ç¯ØÉîLÒ@ïå(ÜpÓR®äÚ{àE±e¢b[>I&¤ý}+ÙñÐÞÝ”2’W»ß~ûí*ïMéÿ¦tzL'sŠó½£ÉÍOæ“9ÍÎNñ|ŒÿFRêfG'øøÊÂôí»ÉÙpáb±wx=£é”)™ŸÒ"!ptD‹8Z¬$+K¢ ÛÅ+½.(Öy.Š„ÜJ8Z«,£µ6Oxr+ºùR`wB"ËôšUVš°vžäªPÖá´¡Ò¨g•ÉGùfñm'“cœÅº(dì$ìk¼"ÂÉŒ`éÆ„%£µãõx%ŠG O$Á3iìJ•¤SJaÙ’.h©á” LÇ"C×÷aicÌI›ÁÙFæÚIÊuU°~?\
>$pXNh±ŒÈ³P™Xf’ý)…q|.a“‡×óÒˆîeœ©eøktÄ`ZWF¹
aÙ³¡5>9 Ÿ7·~Gò
g™²ˆ)œS{µ"wœIÎ=¹PE½'u%Yåä$xñŽ¦È2§ûàdXú|2›Ð%תxôJ”A"4<+¥É•µJ¶LŸ‚‡0ªà\eZVÎÁM`´…ãíŽÑ]kkÔ7ÕoNè2Sñ»3°iiiðÉRU"—‰™~Df_°Z;8Ñõy6u<÷¬Äúóöæ¯@—J¦K/bNsM)Ž#Q¶ÌÄ” -¤Ú«i”ŠÌÖrÐ>¢ª)ä9Ç¢4t ¼¼BN8t(D›®Ç]A7ºFE[žw¹ïeº{Ì®+h÷¥.œÑÙhÊ>t-d{Ũ4…4ÎgÆiõÇ7Ò¡¤“Õt³“B¾á‡·È&CÐ9cQÖÓV^ªŒu‚¡Î‚‚M[›NèšMÞµÓO眜+ëÀ[bl™~øhtU‚-àY²¸ûF'ÑôŒ‘¶ÔEÂÜ)’јF¬Ù’ää?‰'XDç@\¹(KÈÉrSK´*|·s+#%ÉLæ@•)p~ù!4OÆlßìi_ìÕþË>-•³-oÛ(ö‡ÉàAæ|ü!èÎZ×ÍÆ4=fzé)y¨º¯³áfþhŒæ± DÎ!¡£ùÆÙ;¸Þ‘
¹ñ¾u|õÞc°õ¢#N=S= -¡²üÓw;êÔY[§ -sˆ?âÕ7Â<±=½¡"ò/2UÐ;¡l¾4^y§žÛ¥-CÛ ‡åzÎ<(6akkS’èbß1O <5a€Ct྅°Å’êÖÞd3ªI>Lá¼Q˜ÁvT(W‡×{)ôf5Pöê38…%¢@^*¯úA’Ýêeidª^Z2±ÌïFqL`d ó8–ÖîøYwt€QkçäÞ‹ -£.O+.\t?z†—°ˆUèž‹~ú…gÌaáÇCW™¨ íÛšgO¡ô¨Ê~€Ð¯tƒ‘Ï$è,ÌõOñ -‹»h,
¹†4+ïa#F»È´Hšî²“Ç…xjǧf¦ÞAuI8(†=IÑz¥À¡ˆ\ŠÂwóÂÓñáwÊHîž(Aæ_5H[?˜Aø€v%ž›yàv±ãö§ß ŠLûzT_Ãî-Ð`pŽue,:F5<áfãp5ÐOH9>ú.Sã>xÓaá„>jVépðw
¦i®ñœŒt¬”oè˜Mó}„ð -RøóFv<¡÷Ûáûî_»Y³Ý–'æpWÛ^vȆÛ`Dàk
ž×m;ˆPé…µ@¾Ùò2cÖYÅ0<@„ƒf2ø½a²išÿðZ™¥cÐ(à§)趫7ó47÷íyhìZ„S¯‡p'÷Ÿ¿’ßi(hë6YscûID£›ó}¯ÓI¾ˆ˜çŽÏòXÌ‹¯sEÿÃè2ÞÎ;¸/Q}¡k÷¨:ºÆþPt8¸%bæh i¡í&¥.;D‘mÉ[›ö£»7ˆ
‹êm -H¿’Ò¤UÛ Fd -endobj -1182 0 obj<</Type/Page/Parent 1099 0 R/Contents 1183 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1183 0 obj<</Filter/FlateDecode/Length 1511 >>stream -x•WÁrã6½ç+0>yg'¶;í-Û4Óí&mãN{È…–(‹‰Ô’Rÿ}(ÚR¨äÐÙ‰Gk‘Àðð -±Ò§8*~) -³£y=òÂÞ’B%ÏÁN‡ò*ToJ_ßâžÒ¶©k£gô›iå‹´§ì -¶Q:fŒC!B¥¡7HÿÓTÕÝ™‰B•Ö¢ïtXAaøV–Œ¸²&‘i&"$Ä`¥*å H¾"͵ŒSóôiFÖˆR -H“{o˜Ñdt±0•B«ª) 3œBá¬G8¾ó5MuÞ•é¹ì| -Ó:îÕ.}Ë°Hžý÷ïL+£éïåMv¨ P–]Eä5Ð!1ee4"ŒésãºÑ$Ñu4ä¨'vrJ“vâÛnò:¡ªñ:Ãÿƒzœ‘Áy¿µo ì®Irä%Â5¹•š…€tÃW O|˜óuÕ -|bÈLÛhK½A&Ú²¶¦ÀAôÄ`÷d1=LП»D6½ÁVtÔ$ÞBÀþ&CNûý’ÃFylÌÁ©ì¼w6X<¿»Ëä|…Ÿh×Kü`»š]sòo¾}¾¡?¬ùñ£[“4%TůèŒöìpál½À³ÿÿƒær}9[¯®ñ›——Wló×ÍÉŸ'ÿ뤈Cendstream -endobj -1184 0 obj<</Type/Page/Parent 1099 0 R/Contents 1185 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R>>/XObject<<>>>>/Annots 552 0 R>>endobj -1185 0 obj<</Filter/FlateDecode/Length 1494 >>stream -x½XMoÜ6½ûWrñpäý”6zpФŠ4m³Ç\¸åe"‰ŠÈõzûë;3¤$.½vœ¢((æ÷Ìã{3Ãýv1ƒ)þ›A6‡E -y}1M¦ØCŸ}þúõb9Ç¿ ÍæÉjXfüßµ*øDó!]½NR›§ÉÒ7hh¾^&3X§Ø[Ãb¾H2ߢѰ£«ôtt5O°šg¼ñb½Z¼6h£IË%å¹4¶ÉàìdÔYµ\®U³mt-Þ9h£UéÏ
Fƒ6Ž¾NOF ŠY6Kæè-¢•úmûfsqýn ³lJÄ;]g°)æ)lòÉÇ&— `ody¥ò¯æåæ®Xùxññ·®¯ßeVƒhÛêv'¡•]ŒQº1ðIÔ[µh
ݪ;ٜLP
åó®o;½o¯º« -:` -¯ftaSLºëÃõ=ØNµ•#툦 8¨ª‚|'ó¯|B¾Í,NÎ(u‡G” -׊[¡cyêVYC›j¸Ígžr®»…ëwóÞu#ó}§ì12®æëéZ&-¯!jE'jie—ÀMs>Üî„…ƒì$:àÌæ¶l¢s9»t&*Ã.@“*YZ•ndï9™\Gâ‡Xë[cdc•¨ªãü-;íÌ -ð8ã=Þ¦ów¤Ñ„ûðƒ~I¼&),^0ˆ:á«ËÞ]鈥<©—Là ¹K¶…[¢Uú€ÛX9ä°r ×J‚Ãî´¡ïp -bÓïáŽx_HËûù®,³øjlx´·Ák„;Qí‘MŽÕlßSÄÉ‘8¦ÇøyŒ(t`Ûé;UÄWšëºVmU…lDØÚ<¡wإ쎜´è€Rä~Zêët±Ïe‘ÀuHpõê€{UiÒ€q(Ùà,ºñŠ»rб-½È±i†Á0¢ãïòÞzGXÐÝ^£+þ+Eã>îz]zè .ó¡’ƒ¨4ˆñû’Îu×IÓjŠZ^ežR«›só9èÅp¨÷\0Äûˆ£¡Þož¡cYÖDÊtQÍíi@„A˜;ŠÕA]aÔ¸ÔÍeìáÿ£N‡M¯ÑgP`„á*ñŠ…gj4L—?*Ñ}$Ö¿’¨ d(¦ØÜræfz>”ít_Òc"Y°mÔ™TA™;šÿ#ìDê`p£jCqràXäb:ðm>¸d(8£rÕ]Ù׃֧Àw\ª“¹ÕÝч.*0à aõô5ö`Ø¥º\H“wjK‰n«ïd“ä}.[‹¹Ž¤€´.jTZ„Œv< !•0R”X£žZæ2f´ÀA?œY:nçeq>`<nÏ3n6¾‘3|Ìãʹ"dÄu{Äë)žB.A†âÏùäPw8*Bâéó|5ßFn`ý“p>i}d׃B$ð%>¾Ooç/ÃÇƮȖ1C/’ù…½ßSŽ…)ÁP6l¼« -ÆÒ‚+R+=|ðÔ!”i‚ó9ÍRÁÅ52VïA1‘1{õj¸v$›ö-•Äd
:Œ«ùXã-÷ô’ÑT’UÂÆlzÎt»UÇïHMüfꙬ$B¡¥i.-Å)zâáõbU¾¯Dçës¬L¸Òàd|Eû;(éüRSqH
2£ú‘&ñm%?Ö¹¦Å7¨e9Sot±ü<Y}~yºîa©5qo¶j‡›ie®J•“˜(ÃO´ÍÈzø=Æè…i~æš3bžcœˆº¤‰Ñ¬Êc àïlynI°ù(ÁÀÞ› ©\¶Ž½®¨§;÷^¯=ij4K¦ëþòÁ§Ý§›onàNA˜àïk|êqö"ç^õ^es|÷“4Y%ð+|ºc~,£˜F7Fðãm™á/éAÀÅ‹”ö|»¹øóâ-l¡endstream -endobj -1186 0 obj<</Type/Page/Parent 1099 0 R/Contents 1187 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1187 0 obj<</Filter/FlateDecode/Length 827 >>stream -x•OÓ0Åïý£žºÒ6ýKÓ=î²TB´EpØ‹ë¸ÙÄ.¶³U¿=ÏvÒ -dµo–ÏاóÍÇjÑøÆz.!àø´±rž3u1[×(0+ - -endobj -1188 0 obj<</Type/Page/Parent 1099 0 R/Contents 1189 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 560 0 R>>endobj -1189 0 obj<</Filter/FlateDecode/Length 1795 >>stream -x•WÉrÛ8½ë+úƒ\e‘¢$kÉÍqâ™ÌØŽ)•Ã8ˆ„DdH‚!HÉÎ×ÏkÐf'5)/%‘D/¯_¿n~ïDÔÇOD“
Çç~ÐÇþñ¿Ot&Q0¡‹þ,SNƒþ4ºoÍ;ÑhŒë£é0ðÝñ,ˆÜ7¾;4¸˜S¾‡gfîÛîÞh†'FÓ ?‡¿JÒª3ŠÆø8ÁRN£ñ -è}QW:iâZé¢}rDQäžL1ž|#ת(ØÅVÕ)Õ©´¦9‹L -#Ï?Ó`ì…¨ÕFÒU$zkènA¥4—q* -erC*/3™Ë¢– »ïS/b€át£ÝÎ{Ÿî¯è¡«X«óûnæs*D.*U)ιQº1´‘•A&†ôÊŤ‹ì‰\`8q#Š[QìB9ñ‹,3»8#dtE’(†Hd´j -‹–ÈTýCz£^>µYË-ùWÔ#ΚDš×lÜëy˾`+]@*2-FÙ…â&¬h¥2 LõËÙE8›†w‹pÐqãL?CM©Jd.ŠÄ¦^Ç®”½I0eú#™‡ÁxBGxímoî`ÿ\ú( -°U™}œìÂ`6‚,©ÀL¬H>¦j©ÑåÓ‰_/ã³G?DPFÈ`¤1Sv“=Ñ`<SÇ¥d|„¨“(žh+0 -ènSÞ×ÇuÄ+,ÕF¡7ãJŠ–ý»’ìùÎÊÈ2æNYó6ˆ$8|Úßn¥ÄN£ƒýEd ¿DcÝÝ™ÚÐ*—[
DW$=»•ŠvòRU s„1[(sçTG9ÇÃÉÇãTËïŽÏVW0XBûÎòø¡±[¹Ý~Áí„ð\Dô¢ÌüfÑV¡-îÀ÷ĉc³ß|§CÐ’V¾ì¸(a¸-2†(d÷M)cµj·go›˜•Ì«²]€Ž•¥{
Ì»€¬Â"t ±â‰÷[ù3¹ËbÖ.÷ÂÍR„•È€[9¾8,CÝ»g$ -endobj -1190 0 obj<</Type/Page/Parent 1099 0 R/Contents 1191 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 572 0 R>>endobj -1191 0 obj<</Filter/FlateDecode/Length 1873 >>stream -xXYoÛF~÷¯¬ -26Ñ–JC®ÚíŒ-¡QSµËŒJX -,Vr‚ÜVaQ¨\'b?”ƒcbíTñ‰ÖQ ãr™ .§Ýª|¥.>–Ú*säŒØ)—qv(ÍÙ~U”t?ðn¶Ø§íSk¹Ó^9H_ècZ$fïèÃwUŽk‹«_˜§4„œµ±§xànÁhÝ?oÜ‹fàÐý¹©²„r“¤ëCkŒ¶ðÆå«€aóxA™J9±ÉÌJe´SØÀcGªÀŽ¡˜ÃªåÌÚd™Ùs„8'žyï^l*ëô -ÚÞù2{Ö4vP— sˆ -S…µàÚ·´lXˆÚdH…g¥—ÿC„ áÍ+f©]gáüq!…Çcˆ´¡¨nCƒNêñѦßtrLw)ì5Os¸eÑWž(ý¤3>‚ðª[…=¯_kÇ%»ë0Õ.Aeh€©{€´ÐM¢-\ -èVK‘;6S+i‹Má¼LïŸSŽØîÔÆËmýoœHÊ
‘(F9ì‡2ükèÚÔPOdwZÄZ«¿T©ÕÜ‚YÜy»®ßN¤éL~cYîDït‘ -endobj -1192 0 obj<</Type/Page/Parent 1099 0 R/Contents 1193 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 575 0 R>>endobj -1193 0 obj<</Filter/FlateDecode/Length 1936 >>stream -x¥XïâFýÎ_Q‡"-+
LîCÄÌ@‚4Ã`“;Ýœ"c7ÐÛMÜö°DùãïUwIVJnW;¶»~¼zõª¼¿Ô:ÔÆß
|êö)Ljm¯+ü£Ã?ßÖºƒ;¯K·ß»¥„zþ->í·˜–µêwÜíßzÊ]¢^Oö†üîã_&hS»_ÕZ“6ÝÑjÿý!~‰ŒÛ6¹?¿5œÎzíò+þ“ê?Ê4RMw·»aýãêçZ›š¶7„êÑ®?zš7:®hïwÁO£Í¿háy:_žTâ×n·¿xz>8¾:=W‘ÍÌùÖä–:ÆÂ÷=¿Ý¡¦?ðz]ŸVãÙjú2û-Æßš.Æ4/ž§Ë%..9ýÖ¤çŽ7‰¾×îßòÑiJ*‹DF¹¢°È2‘æñ‘‚(¢€Rq (“ïöîQ´’u@;¥óR© µ¡ü€ƒ*d.Uª))tŽâˆò¬_³k¦é÷½»[ía¨Š4§B<eN§"Ìù×·Ï>œ±àg¨»kÓkCzÂÕL©¼4öúÑ&–I¼!ó._ýþ€.!07›®gÐû19¢D$k@à löpÕÙ–ZßEÔØg2Íñ|%2½|Úœ3O—EjP,uîý•¤šþÐëÜ¡~Ù .E¦Å‰5b”y‰¿)•ÎeÓ^i-´æ[üJ062æ秋u$3XP™ÄÕµHEïLà“ƒò?&ɯþëÑB8xò]€*Á[#½2œÆÒ”üC&T6h}¤Hl‚"¶™7+LZ¦¿¤¡ fâŽYâ,gÄñeâ—ñETÆ -\e¦NaÁP¹åäru•5`I<º?õÆ
u©sjm8—ºê4HíÚËfÔ/5ˆf/4_Lg«ñ‚Óð1úa4}Ý?iò² ÕwS3.xF¸žvÏ_bÓðè TÈ-¡ð‡» Ýš^D0, 4ûôôD:I¶æB«ƒ -ÂV6™v1 6®èˆ_ƒŒk|ÃlÕò1L]hFy.’½) ü½KL«*ƒö™Ú‹,g±bö'À;îP&g§°¬Ã•wS?H´‰ágG"Ë`7`[;éZ“iæŽy¨äŽCÕiŠÁ…I½ƒ£ˆ<ZÁž#BÙªz/B¹‘€´d -‚å“2Õ9UD<ƒ¡\z¯T,²«€+é›Ø/ý=*£¢‡ - -]UpM–X Ðuʃu¹L•QTHl©eR®q¤uujk¼Ùà´ç®]®‰•¨‚X+nÂ`µ$Q‘Ü]>à\áõªù=<a•×£«·;‚UÛkõùw¡ÓlceŠP% ZÄnNjÐÊ -µGËk³¢IŽ„½XL¸fÙáZ(;d\Úð}ç6γª3çn~Ÿf”FÞÍXf̆4Ù•!RÐQ¾œoÜL,œfzš Ëñd¦$ÇÌæ8•\ -túøïƒa—úw=oÐåÅm9z¾æêg–àG¬4‡†Ùå¯ÁöDsà›WÅ¿º+öðÔÚ÷Ì^›!¯jß×þ,Žf†endstream -endobj -1194 0 obj<</Type/Page/Parent 1099 0 R/Contents 1195 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 588 0 R>>endobj -1195 0 obj<</Filter/FlateDecode/Length 1805 >>stream -xµXmOÛHþί¡;]*c'Á Hœ½æÔGÒrRÒ‹½!nm¯Ïë¸_Ïìz'*•Z*¢nfwç™·gfùg/ ÿêw¨R”íùžOáàØëQoÐÇÿ;ø-%ÍY€üðÇÍ{Ax!…A›3ê]¯S¯Rï5×
¼ )m¬3êú}¯Û2ˆnpŒÏÝ!ùVcØb»`…eFƒ7hÈËŒ‚ãÞl®!…ÙÍ£Í5ìða}ãls
i§¿©;¼c -úœÉ¨‡³ýzÅ€›kHzÞQCÊ>°@µvÁƒ€ÝutŒ/÷(„³0²Í’ÑCãZÖXBmdAg -u¯¨ý‘J¥ª_µŒJ nG´/‘k‡Þ7¦°o²´u®2‘ä§ÓËáÍåhø™®Æ§Óyòø™Æ²DnœN×Iäùm‘"·ºŸë;:Ì0À1m¤Áã tb§âÚ¦7ÛdåsE1ŠÃ^ã þ©w\"Ø'4}wMï‘È埰¢çƒ(‘š®ÇNƒð#4tè?WCoœâ÷ÃßÏXð]¡t|ñ#c¹‡y*îõÉÔÀí¾ïܽµ'ç Mgø¹¾úãj6[mƒëÙͱÔQ™U¢ò“©Ý¿{îàòŠÎoFŸ.nhøi8z?<{Ao¯nhòn4¦ë›ÑåäâæàÙÛ¹¨Qè'S'uyñ*¯Îf;%ñ»-+S9æpöÑl¶ÿrfBø3¢2^F‘Ôz¾LÓ'f3Z£™Ûʦ—Ayl`³Gµ» ÉØ4¦žGÃ8fJº”+ªIÓC"ß5*oïq$‰êµ
êì íg.–iuP·5Ÿ£ŸÐ57Ò0ºæIZLrãå÷èÿ–±uvçE*Ÿo+iñNnpû›çyṳ̂±,=Õ -LŠÆbX5w¡ä)
Rµ{]lZÇÎbºMþån• --šÍjo7ɇ$•÷p謕xÒ3”Oh×Ö{˜£¬SMI’¹ndz³7ubDõî6f€\óŸu¾¹Î´GóafbÓ(sbíã'¯:µ+ëÕSz’v¶X·ìçzîñâIƤÒè0QÅ5´Í´ÔÆdoÂ2ÂlQ"E8ÜOëx >&›8º»áaàb
RQg³Œ™;¾éVÃüd|õì‘-5y€½®—‘.fζ¢T÷¥Èh¡ÔW2{u“ -L&Ê'“|Ì!u!Ý.0Ñn&>ŽÐ¼T|`縟±„;Ï&ů`‚E)䪲\p`‘o†Ap‹™Ô6ùÒ²ÅíJ’=d¹Ìæ@ò7
ç86Ù¼ýPÊB”œcÖéöJççÖKǹV!:†LE©ŠØ½)';ÆP3>›p2‚iv ‚AY숚h˜mdY"vxì
ѹÌï3SaF\–ÌÈ5dël.•Á€Iþyß8\; -endobj -1196 0 obj<</Type/Page/Parent 1099 0 R/Contents 1197 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1197 0 obj<</Filter/FlateDecode/Length 1119 >>stream -xVaOÛHýž_1œ6Õ;vB‚ -¨è€æÀÒ©ºx7—-ö®»»&DºßÙµ8§-\¹ b{=óæíÌdç}m…ÐÇ¿ÆFd¾ÃÈ`8ã}„ÿŠÁ¢u·‚S|B¼@—Ñd14ï÷!Nº3I+.LBr?• IßÅ_ÐeX¹tᦛ,‰ø›YFÂÊ^ײ -%4H¹` ðöX -öy²®1£°ÊèÃn8@¶1íš%C+™2È•L˜Ö.†Tw~ɤû%÷ÝhèÇÎoÁ-^VHQèÜ:\'ŠçŽ$š)ƒ|[!0n)`¨5à½,—þµgK©ïOPM±~/ìmPÉX -»!HéS¦]`~ÏÀ¾Ývz —+²í\“³olzàœ‹âab€$néû†= -㫼ßë®áRTÜm¨’ü=O02Ç -`ÝìREi›Ã¨+.ö6X•É¦[.äŽ.pç+fsæðk&ø€tÅè¼àKíöﺰ怹]èêüêì2~?›OнO*y<‹O¦Ÿ)1~ï|êdºÛùйè\n`žÏ§iÞX»:¹ŽgWñ´är”æ¶Óµ!Ê´+ÛÍÎáÆrì·DæëN’ƒWs~¼ó=K®aº3JŸÖÀþ6Î
c–,%´Ûð_?‡‡Ï@zÑ?^xpƒŸ—ƒ? -p é4¸'*й”i€Ù¼è§a^š=LûYŠ_zùS°:M/MóiPh¸^4Én‰cî~·ççJ<&ç;ucYàØ~
˜,/cB©ïy¾ UÇ¢¯xçóÿ´f™ÝQ®`«8[¡3IaŒ£ãyËšäs–;®‹½ÐnÿYj0ª¼£Wy^å=|•÷Þ«¼G¿æíU'Û¯yïÀ¥4å™Îí¼Àá¾™ïò”Í¿Õû)¿
tvë'R,;ÍgøT)
{–2OÙ{’8„og@25#'N¸Œ¡‚x2
šàåj…J}œ× -€= Fßr N÷QYU -d€2ŠvÇ~äïùpmO§~敾˜ã|vÃêQ?aôÈJ®î_\P¹Òp‘_î$;Y˜BݤµL¸S¤œò+n–ÀÕ0ö!^2œŸBªŒ¤éŒ¬vZã Ïìä>ŸÇáA¯Î_¥®Þ¼ÀE8=;?Áª=߯™g…F”j‰µÌ´°hX“„¡†B@»ö„ÅÙ¤`¹]ŽÖv<“"5="Ý̽*6浶uX=§M(´ËÌ=ÍZ¹=pá¤Àz
Ëj¢T¢2°VÌí¼J EÅcdcÓŽ`Á
)ÀJbôþZpÅ2TvwuA’”ãJÙ+Áé¤Ò½áeôd -ã䔽[›ïŽ#ÔÕ/i‘áxèGÔäh>Œ,ÊIÜú³õ
öegendstream -endobj -1198 0 obj<</Type/Page/Parent 1099 0 R/Contents 1199 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 595 0 R>>endobj -1199 0 obj<</Filter/FlateDecode/Length 1625 >>stream -x¥W]sÓ8}ϯ¸ÃS˜%Nã¤Iº/;|:,¥fº}Ql%Ø’±ä–ðë÷\ÉJ´ð°%Ø’îÕ9çž{ûm0¡ü›Ð"¥éœòjp’œà Løãã›Átq–Ìh>›ã³¢Ùt™,»o%}âõ4ŸN“”ßÍñ+|Ù¿J§Ø6[.°,ÅÿFÒz¦§8ãôt‰âžbIø·¦¬8ÚÆ¡¦g‹‡çù“4™?¶#̾x‘
Æç3šL([ãþó傲Â_û„²|xiœ$·Ž>‰j%¨0Ò’6Žl[צqx')7:—µ#³¦'WÒN6teL©ôæ ù¯Z”厤Âê&¡l«,áçn+5 *ÍFå¢|š}œÐhÂfÅ°îÂ:aÚhY3Tµ¥Su)‰£ó+°6MÅÁK# -Z‰Rè¡É4´ª$s‹ Ýé)s‡Ó/Ö´3-HøÖ*0áoxtôJR!׊ã" -–U4 -NAµÈ¿Š´áyWž£E²äùÞ¤óEç -ËKÅ•<#(få„BÁ—nå2`AËŠ[BèÑ–î]»ð,lGm7€Õ>z‹èq=Há0^f£t™LÎh4ã¦ÔÙfÒ„^Fäbõ¿ -¬]°yñ¦-ÕÀ°´÷øÿrVóJî°`†lnjÉûw®Xªt3Ü{H”~â¾;‚`ÍQy?,讟öÊØ+£2hG=ñÞ<MèB“Ý¢Ý=c‘èP®œ± ÍU×2ôŠ{RœhÐKîÓLq¬¬î€µ*¥}b¡8ÎÅå9uX -\§ì¥HZJ¶¥Õ.˜ÒCEýÚ,Ž;EÐÆOì"ëûrXÉ·„ -øob—gIø”p çgôq×ñúmxi¸è½¸:l!>¶öÀÐ<Ž*<’6-<¨HÍòð ùZAOjåv”oeþ•™Aã«R¿Ê¬)ú{é-ë0î¾ÀßÕ
ò‰¦ÏWß_ì1dœn1)r^!JðzM34 -ÙŒÞ~¸Î>$u‡Pôa¨–‡U¯bìÚxÇã»tãéôKX£I3kw†õ5óý ácªb³$a—t%Œ[y£j÷ªÌÞýY›§L“5FO(ß÷ѵÀxÒ¡ëÿ:v‚>8ar3+ƒÉró4Î?쌕Ú[?;Ã.Z`dó—p“)±Ia~Ì·¼“çdö«F¥ï›de -Y’LLoÔ‹¡H4†ƒËêNÜë¯G‘÷ݶ?Àx§:ê®Ë®B'sü™¹œâϹSî~Ÿž¿ñó²ù‚‹^õGMŽ4ŠËG‹ÔO8¿ég‹Y²˜/Ã,4›ò¯³Á?ƒÿ -endobj -1200 0 obj<</Type/Page/Parent 1099 0 R/Contents 1201 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 598 0 R>>endobj -1201 0 obj<</Filter/FlateDecode/Length 1858 >>stream -x•W]oã¶}ϯ˜î“ÄŠ¿â})²Ý
Ú½ÝÛøbû %ÚâFU’Š\ô¿ß3$e;ŠÜf³q‰äœ9gÎŒþ¼ÓÿÆ´˜ÐtNYu1JF4Ž’9Í–ü>Á#iË7ð(ÿóß>]L§‹dEËQ2£Šf‹Er.Jº¿x·¾¸þiFã1·8`¾\Ð:÷ËG´ÎëBÒFX•‘ªe)œÒ55FgÒZRø®i«[CÖÉÆ’¨sj¤))Ó¹äÛ{#šFæ$ŒnëürýÇÝÄãd«MV*Y»p£‹cÀûôŸ5MvöÙ$<8¢U€0œÌ -‘ï”u¨\Í ~Mr‰ûüó/_ÒôÞ/HÓ÷1ÐÝ{];£Ë{éð§ð{šz@iú±~TF×,O«§ñ°)ç -§?JQ†ÜœäE”{ñl©µH‡ŽTE²ØuÁŽl à ñ×|ãXluQå`¡” Ÿ“êz•dÖ`C -Ž¹ü`Ëì k®n®WËž„C?õrdA€Áõu±®hŒæÍ]|8-p‘ÌüÍ}Q;@ÑÖè*’„±!yb”“d’<½å"8þ'ß$}$=Е¨Ù“X€„¬õŽöô5°Vø¯~”9š -Ç®#EÙÉš“öŠª.À^²|¬€|B92Ipð¶‰{qluYB'–µ‡ši„+`ÆŸ!"tì+ÚZ…†A6“5»¹õ–u8ó-Š¹êPÙw[¯¹\{UA"¨¯¾ZîO™óÉèj0ö‡+^Sp¨µ”¹—Ðm7‚|:$= 00,”†&müi–-,’Eû.’嘺¢M'ó…Ÿ-ŽVâï÷ìŠ,;ñ€¬ä¸k\ -Â8éàÑ
z0•:ãùAÐ!¢^4Üøàgôýõ‡w¾§n…òÔw)`Ò
`ïÑ4<§›"Nƒƒ¸yÎe+ÖêŒ'>?®OìôHgzé=-@:ξ¨ø#n{±ŸV|/¥eª„µ
æñìa/”•é -jWU*Ï_~Á¦o8<]¢¹þ3OŽ*ñýXg5v3 3ðßjlX*Ñ“@C×vt¼xä…Ÿ›h@…FËI14ŸÎ9ÈI/Y9ê0ÔÆ>¥jðY/óp½¦Ñ„2™c„À
Ãt…‘x‰7+y×#)]¦Híj´6¬àÚþ1~žù:%46Z¯6L[`50ú²0»ó·I›®‚£Æ´õ+ëÔéÂþÿw}€^®ð×¥—…Á$ÌNV—-¿Ãñæ'r
®ë±…0‡Û¯ß¸:zyûC/êú“<–œ×!ܵáz63ª9S¾°¾cEÞoÂcõÿ“·Aºéå¡KÇЃbºÉÝÓÛ{U6;Pá\óöúš»òi©f<ŽìdRKwíóvxÅö;`Ý©PØn<þMà¬J:œ¨¤KÃð&Y-W4œ£wOýëÇmV¸¶Þý²²Œ}`<›%Ëå„æ*<xûåÝ-ÏÌßñÒItÖr[ö¸yípŒ=GË)
¼ÜçžþÁ`0[Ì’Å|‰ù‚_g¼åÇõÅ¿/þV=endstream -endobj -1202 0 obj<</Type/Page/Parent 1099 0 R/Contents 1203 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F8 11 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj -1203 0 obj<</Filter/FlateDecode/Length 560 >>stream -xSM›0½ó+æHxù†7êÇi«VAê…‹Á&ñÖØÔvÂî¿ïÈ*›½ôP¡ˆhð›yóÞóŸ Ÿª²ú1ˆIEžòºÂÿ)þ‡!Ø7ÁÃ×’šÒ”¤qe]¢¬¡a€¸8†¦›žÖRêY¨#ìšg„á„Ú±#½VÃZ¾va¢†ŽÜqcâ4<bã†3p:ŒO†÷Ôa*³Ò—
õkVkEà³¥oC”d$E^áÙrp'>‚P øŒ/ë¨”Ô œ±ÒH7v(@”–$÷°É…t€qÁ× $‡6üÖîVH¿A¢ŠÔ^BD´iYmë^.ߘܵlÃÃì&5ªƒ+!Él{?*b’}Jpu¤›-šyOôÂQb®Àͨ+*wëc^Ï;Š ÁÇû4hƒçe³çiÒÆÞÅä:Úÿž©a‹ð7&õt¢Â½"ÿ÷¦„LXÚ¡úvÒZÚͲ+ù°Ý-ð£ÏÖÎ!aÓÚnþY@e~ Åôlá{óú¬öRpåìlj™»G·f+¿öÚü®4Œ›ž–p-IfÜöFt˜QÔ?Ãz„Ú°@ò#U(ì‘/[øèoë2è^ïH0>гtd_o LJ¼¥uþ]—…Oâáñiÿ?Œ~æ½Ã[ÑŸG\t‰‡ÇFWHT¥Kr+’xG³&È;iôøÎ8¬y›_<>¯rRá¥_°yáK_šàgðsc<»endstream -endobj -1204 0 obj<</Type/Page/Parent 1099 0 R/Contents 1205 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1205 0 obj<</Filter/FlateDecode/Length 1387 >>stream -x¥W]o7|÷¯X0š -Ôìò7.å§ -kú(ê\d#¥í¹ôG;9û˜.&¯ºãíû¨•³5p|üó-ZI83ÞsxòÒm¤;'cñx-É⇣èH8Ûš2£+ëâ'Nb¡—Ø!ùý ·¼u£¥íÓ–ÊÉ"X×eýÒËY6ejþº='o©³-ò$4qÓcX¡c¡£ëwÌVÎ3R–‹#)KÞ¨@„)™õ°a -;*Á…é4PÁK]“ -tÓ"BE²Ve‰ê†r¶RÀÈv´rr~4ÈüQ÷ñ}›ûÎYg½`Iª
`1ý•ÒøÁ‚ñ;„Æ/CðþpAÔOÞ£ÐtÙ$-l
¤åiFŸÀEJOýÃH\)ÁTÛ0{@=T‰ÉÞ®-àD²c1–K_kPÞzVÀÆ‚Æg†|gø¼J2ÕÔ9©å†Þ-ûòb»VÅ:æǵhuIÚÚÛt@B<>ÿ.&1éXÉ//Q–òGÞ0ºÓ›Ý¥›¦Ê¢øõy¥m.ô¿»°c¸Ê.}H*øéjÒ‰Ä~$×7Gß+9¡›»=—)ìd ¸‹îZÙ{¡NÂ7ôQ -ë¸ÒõoË?h#t+ýÐn?±ÏsCë&À'HÜâE.û›TÆÖ´UZ#Ï-ûzIcpò4OÌ_rÐ}†7íP«8µÌ
üÁ\€ Ž6ú"š)\-ѤS¶T ³ÐR -§ØãðQ#z2@ð_ñ„¯%ªä'úPíßP%”ŽL'²jµZØ6€jYø§‹&;ú–§=(gü{—D€¿aÒÀ9ÝÊ”pke¸QJ:eáL[çÒ¢(¼Z1GÁÒÆÉ!9oÈ»T=©ëkc‰¸g¿jèçèÒ§µ(œõ§‰\n=e‡Bì•q²Ñ¢@Ú8FŠs!R‰ ûÚC_G±-y\bÌC’Æ3ÏMÍC—Ãp|H®y®3~z^œ[¢Ò‰¬0²0ç¼ -úíXƒÜ¼'Ò#]*®³›§1žæÜhäÞQ,ª´A¡ršÑÕâa^ŸÍÒ¼þýLçÓl>[àÓG|¿<ùûä?%Ìendstream -endobj -1206 0 obj<</Type/Page/Parent 1099 0 R/Contents 1207 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1207 0 obj<</Filter/FlateDecode/Length 1241 >>stream -xVmOãFþί˜êŽ†“'NLBʼn;é*UÐ&UUÖö$^b{Íîš@_þ{gví"„øeÞç™göþ „!ý†0ÁxIq0†0ŠNè4›ò5}4Âʽ˜DÁ¤ûüóò`ðõÂ),Wdj2a™™a™Í‚Q -m!~¢(«\$,a34‰* -Q¦°•6“ažƒI´¬,©eÂ’|¢tʹÇÁˆ]½®,IŽÕé=™¢ ùZ¹{—¬dŽœƒ‘E•#à£pßN†bÛHÒö7åÚ@!×ʼn§>å!œ´GAÄn¡ùñÆÛèç0°E50âý‹Ã -]Ù¸X¡/k~øaËò»`›Ô0˜µÖ?À¡SSO]è‰p×ÚEXÔoèj£™B¿‚3E¸¨ÞPpÎt]6ô½à‚r*î!j4hŒXc›Rø"^ßS/ÞVÄõ“»¢"¢"$QÂFÉÚ“ª5˜'c±x#¦]y¥¡OWCø8‚ÑÙÙ¯z‰K‡Êe†%ûðhá0àa¢…z` -ÚÏ°cîJ³¥:œBçÅ…*„,ç×ç‹åùïË[¸\̯ÿ(åã-,P? ž_/Df`zÛQ¦dNáææ¬i‚kø«ä«ÚZn!·=*”0T®~8=Gpsʼnææݘ5Á— ¯y¸Ï«k\çe8ŒNÜØ›áw_¯Žð.þD” æÀÊ‘/n¤üûœÓ D898%K)ÌŽÂ;lþÒšhÌbºÏÆ[îࣴ¬øöTAχף HeBãÜ°4Cž“ØR<ÒÓ -endobj -1208 0 obj<</Type/Page/Parent 1099 0 R/Contents 1209 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1209 0 obj<</Filter/FlateDecode/Length 1547 >>stream -x•WïoÚHýž¿b¾‘JàBFê‡Tm®Ú*×PÝUŠtZì6µ½Î®‚Ô?þÞÌÚÆ8ÑU§(!˜ÝùñæÍ›áþdLgøÓ|Bç3Š³“³èŒ&óWÑ”¦‹9ÿ_§i}òvyòòê5ç´\ãÊl1¦eB8~vFËøtM#ºÑeiò
UÎäe¬ -RyÞ×îA;ÿbyKSà -ÇÛ9]“#ÀL•ÆæQíi2šðvú¾2×´[GªÍ\oœ’|àuø¸kš–[äÙ‚Üùˆ¶ÊsÔ½4CTü3zÝ`?
±å*Ó¿Tj”‡—IE¶àLÞ<¨´Òxîw‹'¥»Bè*ͬ/ñ’†¸˜¡:~x€
ØÕ€² -§WšP¡Âz msTÌ®a¡Øª¼Ê´31cR¡|ÎÇ4ü3èåo•Sq‰ 3¥v +Þr0vGÛ}±Õ¹§ÛÓÁhpû‚ -Ð#ƒ=S›MÜÞ’*{þ9<ð›qKMŽcèýXò£6ræ%gUZš"Õá`Ÿ4ðUø•~Ó*ÃQÏv[–
ž… £†Ö…£;.e
’ ÇAŽÐà†ät¿ÇÛ¶é -8vtIIêqt}òìõ/{ºf‰i¯L+”H -Úà^ƒ~dðü9ƒ~{|Ñ£@;‹ÄÙ*µM“78Q¿?²é{š!üÎÜs¶^[£É«Är¨DZûP‘nßïÀqZ‡RøR¹R'Ã5+Tõ'úMµAEÁÍ#ftlHŸæœJG Å -åƒ -ðùú[«ólb1„Üi•<i~ˆ;«/È-Á/¬fæ5òÞ!_CØgÂm§ çCÒeáï£AÒl~« -4T×.3ÞC¡:K|ð$ò†’G¼ÕñOä2ZXô~y‡÷Mä?PË‚æ·¶JH§èæã¾_“7›\¥Œ{óÙŠðÄåG’$)à('Ú¶î …O·n”ÃØRž×#cªŸìŠÃ(‡ˆ‹ kE%õì|—‘ -px2*Ö´rÐ[T½ -ÔË„¢Sꩳ,b³S”
²Ö
i„ŒeãmŠ´v3ÇjÑë‹é·áìFÅEz¹;ƒ#þöþòóç<}6õæTWϙͶVÔÀʶ•¹{*ψ)z{óó±—h ¢ÄÕôÝPD ƨªTX§œÁPñ¥ÅXhr`‹èJDJÂ_âó>Œsi_2SBSZLö˜xiÚsž[éèÏw¯ÿcåàÆ]×J<lî˜;²^|eÎKÈ:¤ÆðIë³êAíY&îÖŒº×˜Ä¢4ÂÀÜÕ¾°aVsðݽÜD°\àäìke°`¨ÄS}·Ýד?@!…Šc] -endobj -1210 0 obj<</Type/Page/Parent 1099 0 R/Contents 1211 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1211 0 obj<</Filter/FlateDecode/Length 1422 >>stream -xVÛnÛF}÷WN -w/IN)3•Nƒ«rk’kúâVþõòËÙˆ.Æ#ºÌÄZîÙæ韗´66ã/ñëSŸó9eë›Ñh\4[ç»ÞMi<Ž\Lfìê/W“ߺ:ϨPš|
ÜÂVj\]Å‘¯ËÒUÁãÊxZ»ªÀ>õÞôº •Æ*…,i«<ëƒÊs‘êÒ¼L&ìû<€PÒy´µ3yN©³º -8A
9‘àHu^UYV_ª€KøèÇ™Ä,¯h<o³¼œ¢ÄðµHf ýÀ¼¶a@ Ýhru(ëØÌAçƒM5;@"‹Ì%lc7¹J•å› -1ï\U5¸$µ‚q•ÿ0¡¶5©Î‰ŸÌbtKX.P$d^Îâ]·Ê&°Öß*•j£=s&|M+e-êÏQˆU®ìCû'Jáj›ûùu-!+Ôx£CàÈú†”nuú@ -ä:b”¼SU’+ƒA” -eëµJ^Ú;î:¦h‚½&9ôHˤT´m1¬EGÚÖò´3a) :*’6àÈL¿I:hõÍú9LD¿P¹mçTE4H_š(«DpÌÀ¼3iå>J‘º
ÝÁµþ¦Š2ת-ýOc¯~>òŒ;¦D~]G:žbîÇ8üSû@ïU¡Ÿî_}2›m ·¹Iî_„šBlÆkÈÊKVO7Ù#ó/{ú²/Qu·ó")Pètëœ‰× ñÛPå·B貄¡¸¬áà?»„„7Bw`Ò q¿Ò8ÊÜ€07Dejâü„8l¸†°øŒç@è6úû–ý1ÐpÎœàG®3¢ƒÃs¦ªÅSÉÓ¡š¤¸ÎƒAØL¡š#穪‘&XW†…På"¼êýhÍú¤v=—¼ˆ\>Ðí:`Õ¿×x‘´©AÎVT+®l;Ÿ1íbÛ8ÄYÇÛyç—[¥{°Åø‰kž
Q [iıÁøáWdÖ±€É%Ó[šêY+x–7(4¬X‡–‰ÛÅ‘ã~UXÙQ ²:2I[–':¿é4ŽÛ‡w’[)+²:çNë{ýQQ u„'é•–r'ëñÞaóèt™xügÒV0äèýnL*l<kZ”C‰Åð…(#8 †ìE,Ï~ÌŠí8;Bƒ§ˆ8ñ[
ÒÇ6E'Ý:®n´ R¨Ý^õòè¬Üô{=þénTËJõÌ1ö@X>rýÄé¥T?bבíàÀŒ6ô¶©„¡)¡óÝÂ"+…ÁþèÍ?Ü;È…ÈqØ#§ýOBlõx·h÷×ñkþâ’f“«¸A}¾y÷æµs_Xƒo]ZPUš_t\Ì'XØÿÇ>8O“ùl]oO¯ØÈ/˳ßÏþêÉendstream -endobj -1212 0 obj<</Type/Page/Parent 1099 0 R/Contents 1213 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1213 0 obj<</Filter/FlateDecode/Length 269 >>stream -xuËNÃ0E÷ùŠ»£H§!v– -endobj -1214 0 obj<</Type/Page/Parent 1099 0 R/Contents 1215 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 605 0 R>>endobj -1215 0 obj<</Filter/FlateDecode/Length 1828 >>stream -x…WMoÛF½ûWt‰Ø´%K¶\ ‡¤NZ£pÜÆrˆŠbE.%Æ$—Ý]Zß7³$EÓn‹ ‚)îÎÇ›7oFMèÿ&t5¥‹KŠ‹£óèßðÇ„?>ÿÂßÐ|ÁŸÍ.¢ióÓÃÑÅ|Á/ç³ðr1&Í¿Ìa‚æÓ«èW§³y´hžø-œ],ðn¶¸ÂßSü·šÒ£÷Ë£³×4=§eŠØ.¯´L$$|ÞªÊkK×=踶™ßS®Ÿtßäæä*Ü<½˜!Úe2¾Ž&Ý–Þš¤Ž}fÊprF“IsRbÄÉU¬¹ºªŒõŽü™<7»¬Ü©ø.¾5òb“›µÊÉë(6eJ•²ªÐ-X?§ëÖø,šq_Ã?ù½ ,³ÝÐÙÇiwcr¨pÃ5 >³8¦·ôÕm•Õ?j§íjœèTÕ¹_ÿHL¡²ò‡JÜÀ‰x'ý¤/ÙÇï¹VNú 6©u9ªD^FÁRíø¯¬Äß…b(H•I{%1q]èÒ¿žÜ˜nîïÞÝ~úëîÃÝûŸ£/òç'ÛÏétÂ$Cdì3-Š`iâÇ55&Ú«,wÿ!_*L¢©Å*¢%ªö%+³s`Hü›¶kmkÏ·GåbˆãàuÕ¡œäê˜2ÜÔ.¶ÙZ'ÈŸ«ÿ<ø¶†czwópúëý—åý¤8Žä6N/1îS!”Z›'}B£.¼·HÊ>i;¢B+&ÞVy -µºa¨¡8Ï€{ó6óË’‹XGÌItDë:”笊}ò|";§išžIÕȱôYêlõßµvìà æF*Ò7ÂdäÙ9gÆÀ•$3E
Qîš…FìzglÒ$KoG!ÑÊd’Vè6«Ñkƒ°nË¿ XIÇ÷¨µÖ]MËÐÆá0ñëŽBŸ–Md'R¥\±ú” -¡þ^µ1¢ù,ä@ªÀžá9w -خƵãpûîµùÈ[ÍR-¸¢š#è·¸A×;ÎÒ½\ëæHRç“Ù!üq˜›Ùf‹¶®ó -endobj -1216 0 obj<</Type/Page/Parent 1099 0 R/Contents 1217 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R>>/XObject<<>>>>>>endobj -1217 0 obj<</Filter/FlateDecode/Length 1048 >>stream -x…VMoã6½ûWtʉâ¯ÚΡ‡MÛ -ÚærF‡`œÅïØ6 é7mÉ -“´¯ÃvÊõ™HfƒÂµí‘T®CæÍ‚jåÑ$¾;|E*ªWX &¨Lä“F}'#·LȵQ×M—YåŽ\yv×hèòN‚„]K{$ýSe-ö/1‘Ž
…wµ@tJ¤„‹’½Ö]‡‹÷®õëg™¾Ò ƒ -+åS—Ý㬹ôk -4˜ÄDÈë¢C ° -²s£#®î2‡YsÌ7h•— ZxjÂ-us˜wôE]UáÞM'îÁØý\”¹=¡jìí8g>Á Å™Ð6×µÍü¹áÙ$%Â’ØUÔí÷Á˜×4L,ÑÄÎrõ:‘h¯úŒ1¹G*s#irÅäÀ¯¡2é{h̳:%±ToŽ§^ÝLà®Ö'€O0/)¶ -ÃÅ
Š¸Th[¯oÅ\çwÁkL¬ˆò ºQwB!2ŒËˆl‹ jˆg,^ˆù@G¢„;zÕ”¸3ù®2õ8¹ÿ `¨Pz¥µæ'lñ.(_‘Ø÷?ÐØ…´ªËK6®L¾6_…2ž/I ƒl¬:êw1LòeE»Ÿ@OR<±Úì܃¦W4à$eÈÎ6Çß?íú7ŠÅo»óîÞ}ùúüø•þôî® úÝe-C*ö¼Üm—xÉo~+UÑz¸˜û©Ý™;ðöõvn7;¼¸`ë/K~ôÇ~ö×ì?ˆ öendstream -endobj -1218 0 obj<</Type/Page/Parent 1099 0 R/Contents 1219 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F2 5 0 R/F3 6 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 612 0 R>>endobj -1219 0 obj<</Filter/FlateDecode/Length 1449 >>stream -x•WïoÛ6ýî¿â€a€ -IJe;vR´’¦2 éV{û2ï%Ñ–IôH*Žÿû½#%ÿ`E'É»wïÞÝ1ÿö"â'¢ÙˆÆSJÊÞ0â
Eüõõ×^4™†3šD³pD%¢QxÝ<4ïfWᘢá0œ`u|9ĪâÕëYÑt^a-š\cÍ=ðÒÑ#Ö¦ãv#¯Ý.zƒûk
i±¼é슩C…7Ið)+5ü„ddRëÜîè#¥ªyEøÌE…¯ïßœ¥hæ-õÇD±HBúMåU^ITô´ ;~›Ûloaä-L(Š£Y8e7ÆÔ¥¤ª)/’ÄþÌ+@éàs–=I{ûðeN•À~µ"o;“Áüó׿¢S7¥$´¤o'›Q2=53¤~4ö±Ý}y옻 m–'€àüýîÓÿ„KØÜ1æ°Ù¢X$Ïõ¦¥=Q•Õ -À´ñÖ›°ùô8&Át)€ŸÛ»Oß%á4ÊÀïìd% °ñ2šB†HÎCEJ§HUŽB²™l€^Ð*×Æ’±jC ²I[*d©*Ðâu]¹‰*K<¿?Å€`Z7Z)û“_štŽ/ÃÙ%4¦Œ7˜mJýoàÔ×ü‹éïÿéO¡r¼nÒR4V«ôÏîð›Zñõ½í½w$sÝ©ä¥óDZð+ö¸R #¶M×2àU;*E’å•ôË,‘- +úíIú{Ya,þüƒÂ/¥ˆxc4†\¨¼2; +endobj +1299 0 obj<</Type/Page/Parent 1068 0 R/Contents 1300 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1300 0 obj<</Filter/FlateDecode/Length 1209 >>stream +x½VÁnã6½ç+¾48®í¸vrÈ!A[`Ù¶‰ @.´D[\S¤BRVÕ¯ïRN%Ù=,P hÈyóæÍ>ÌhŠŸæt¾¤¬<™N¦´œ-'sZ\¬ðÿ¿NÒ6~X,.&Ë÷>œÏ§ï˜M§o¯ºYŸüüû%ÍV´Þ"ûòbFëœy:¥uvú rIZé?¿"rA3päÙ|…4ëüt]H5]ÜÞÈVAYCÊ“±
I#6Zæ´i)—[Që0¦MHm©µ5åÊówRO·ÖÑF† y™ÕN…öñ…Bš[Š–Q ÷ì• ·¯·[ª¤ÃáR˜LR»”SÞêƒ2;Ú*
¥ôb°ýXm½g¤Zz/
`v° +q@U;šœ2‘áÔÕ u+ýhLM¡²âX*€kœ$º^ˆ=;_LùNŠœœh¾Í§ë¢˜MéÄ‘Ð\zµc˜Á‚(&’]*/ó1iÛœi¤ÉÚX2@ªçóº«î +ÛHœ™ YN÷¢ÜßKÿÄMõñ2X¡Á + & +"L/%$¸žª’Ʀ3áÈ@wÖí'ô9P™®â"ÆÐ
ZM ]Ð(0 YHç{ÅNè"‚ô‹ÎP0zÅÜ°õ±L0|òû:mŽa?$ÔtËÿ£ÔWˆ¿)ÕÁ/ö¶éÐi —`ŸäáÂøaXF½T>©0 +ΰQiŠ_ÇìTÉDXèG›Ãìø‚§1ƒBwQ¡¢÷¬/¹ìÇ
¼ãᯜÌUÆU~h7i¤Y¹Mê~9Ä‚ŒCh·<&t{ƒi(a³9¼tJ) a”:Ÿ`S€O`ŠTÊ‚”‹ 8߬…É´0–|ŽIÁˆ7BEݲÉpœÁÑ>æH8§2—°hþ•EJë†ÉŸj•í¡ÿ†ãžïŒ9|ª1(Ýo†{.°×w;«¿Ó&ô7–§O>}¯íL$Í~Ö+âí1”Ñ‹‰‹ôE0½xä´<Å5|žã…Ö1
[€!À=ð%ãÀáÍw¯µ@¾°µ†:„*«µp¸»º¢D3o¯Ø#Ž¶ûˆM‹='<xâGT›®úeýœäõh‡¶ÛA³£5{(^G€ÑåD,a3I±A清b9¢`ìÜƤ—£e“(mm°ª*™©âͺ™Èöê_€ìf„mTèF´>! +/†47ïìñ[ P-¦½ª`¬)ì×Qª©[¨)?ûpêàAa™¾º‡Y²g£¼ýž]… êkãÁƒ¦Á6ØÚXcvPQÏÿǬ‹[¤‹mW7ïø\ñÓ ÜÆô`aó†GtLc[ð•×ˆè]Ø1rÑ=gK¼L/Îi¹êžd÷×·7×ô§³_yýj³ºÄòŒ/Fyv<p¶š^ò{èõs±Ä«ö—9Þ—ø4›^ò‘ßÖ'üS‘”endstream +endobj +1301 0 obj<</Type/Page/Parent 1068 0 R/Contents 1302 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1302 0 obj<</Filter/FlateDecode/Length 1540 >>stream +x…VïoÚHýž¿bÄ—¦Rq1PBNê‡4!'¤p(ê]N§Å^c7¶×·»Æpý½YÛùᦑYïÎ̾yófþ=òi€?ŸN†4šP
¼Mü7¤ñôÏC|µ¤È½O‡?x1à½_ÖG/Çäû´Žàd2=¡uHp0Ð:8^+’¹Ø¤’ªtßXì$YÊŠoV"Ûª“%õ/îV³‹³%©Â&*'|øÅåÕÙï+J“\’ŠxåýúÛÑ€úþñ®Ãã…x”zÍúpâyýZYxŒ…¥LfJ(E‘ä[JL§*Ù ÆR!süÖRðbzø@"yo®l½uspñôÜ-ª^'XЂ#÷h—Æ];؇¡ïc@L’dÉÀ&À&‰Ü01·g/pÎQ?-ÐçŽß\õÜÝ?^ž’<pBú£qÂ*U§‰Ìás/³Öžx†êØ"x0ba€A¡´=#å +i7Õ>LòŸìQ–lcK"5Šb™¿`À•‚§À±$u{H0ni¦[¯ÄÁPXºÒuÆTJ;ЇM2éÑã(ï +í¨áv×l…ôî.Ï)ЇÂöZµHjµx¥oVD]d˾~\‘•9©© +¢BÌ2 +@q¤Þâr\ +K +\uqÑ·ÏLgPNîEV@éî! +j‡¡´"I
žS!4rR‚ÚÀw'ɱȦ.3UjTË%ßé>ºß6È:Ö¼Ð[r?¿¾¸¹_Íÿœ9šce5û}1»^»%ÉÙF…ÞBÚ²d`©ýÉΘÉÐÚF³ÊX“ãçŒEª„Œ¾R¤‰2µ·Á®FÅå‚ÿk±BH£4AAx}³m¬¾®Ö³…7¿ž»@°”ݽ‘×Ñ +Oݤ.Á5:WA¬à> HrDµ<iÄP«ZH芘WyÀԃߵ`D*Ôü&Py¢¿«ÜüÖ ÚrhŽF! ®‡è2eáÉ=¦5žpUUyYhe °¡!⃠+,4;ìòlîŒ + FñŸ#*m’&6‘Ýú®âDløþ³Š=Wy”lK´‹ÆÁé'V©ùdØ&Æbäjš£ké\M¯ø]ëŠ ƒh‚´n1.@ÓT†Ž-Öw«ålvá ¨#DÕ`2S‘› )—hkp¦ðÝ €·Tgöéªu~£D¤¥ÄÉC—3Ðqܶ÷Ú§»ßvãzܳ×#†ó퉻ßfr!öŸn1…îÜðÚÇØŒ19<ö=bwøù4ÍÞB[ßÚŠÒà/§ÍÐí1¾OG½›9xu¶ørFK¾ñxt¡‚’'+7òɾ?Áý“Á);ïN†ãÉÔ›|6‘ù>4[ýqô?Ö5ì…endstream +endobj +1303 0 obj<</Type/Page/Parent 1068 0 R/Contents 1304 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1304 0 obj<</Filter/FlateDecode/Length 1508 >>stream +x…V]sÛ6|÷¯¸>9™Z4)êË~óg£i”¨‘:I§îH‚"’` +ñÑtHñ„Òò$BŠÇÁˆF³)ž‡ø3’rÿE_àcï‹ëõÉùýˆ¢ˆÖ9o2™Mi6 +CZ§oë?¯§o•Mõ£4„‘òíúëÉ +£tc±ku1¦´P(ËúºÝ~&†‹k²Ò°Røp½BR#êú@¯T—µp +ûmt‘ÑüöŽ2ÃÜ?¼ù]¢´‚EÄáÃÛ€ÖÀù˜á +6RXí…B¹6…”+×A¯Úûù—Åß"W›ÆH¤nä%-ÏoÀt!ÿ¶(ŠotI©0Ù%†á`4 +w×ç–Æa8ÛçeÄù{^„÷ª/°8jŒð<îžo¿ŒÓ#„—OÃA<k£ãÏcÿÜ+cî«óZ²@CZÈ<vl‘ÛkÊUÁÕÑ(ƒ'ŸœÕQ_rX‹)Àh +æÒT§ûg`¦²*“FU›^M¬õ- Ù=Z‰2¤ÀASUˆE*,ÊS>©†¼ÓªäOÄÇ\6u{]ù<‡”Ýl¶A^úÏ2ï–rŠ¾6\=‹
lxŠÐuVÃ@:uö5pE•ÜiCÚ‚–qsµ,Ê·¶ÀKì¶`ÂY>›m“üD}]n‹öè^Úh]öðÁ{—ˆª};f4 Ã_}Æx·‘®Ÿè{wŒ§pd¬ƒ¹_/„G»œ}_P¢Wh$¶9bÑÔà(³Ü8s²M]kÌ–EÂ¥ö ÿH0ê¼Ëzvk£Nu#@î*‡Ó°½Š¼=;ÚäûÆѦ)©–&×¥`KÛûðDÒ·6Ém6^[¾ìóûŠ0urL“A<j½vq O*Ïï# +!Ãi0a;^1ѵÔ5ìc/`±pN+%ûAAUS&ÒX.îz4áBíeÏ òP +|úÀŒgNðôa}æsÝ_І[åqY ¡öâÐJÝûFÛ=:s]ëQÐOÐÃ7‡7<½Kùð–kˤûú¨&ð *ÍØPÁ¢DC\q€¯ÌO±Èx*²Éç™opž™8Ptn3ën»ÑWäYLc\˜ý¥uuµ¸¾¢¥Ñ_ý}µ3
\PtÅ™£Ûƒixá/¹¯<j4™“ñ°½GQÄKîÖ'œü\˜Rendstream +endobj +1305 0 obj<</Type/Page/Parent 1068 0 R/Contents 1306 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 792 0 R>>endobj +1306 0 obj<</Filter/FlateDecode/Length 1638 >>stream +x¥WÛn7}÷WôbVÖź䥰]»_)q +¸+JbÌ%7K®½ôÛ{†\I¶( +C‚vÉáÌœ9s†þvÔ¡3üuhØ¥Þ€²üè,9£AoŒïþhˆï.>¥¤/`ëîëÃoGq2¦óÑ QNçã¤W?hš†cúƒŒsê
±xé|”ëÇœF]Xï×Ø{¿ßI0ëàäNý´;²×áýo#ëž÷`ÐëñQ9õ‡Ýä¼~Úš!¸ò¹œµoÆÔ=£Ù†#šÍC‚x“LEž +fNÖ¯dIW“›)eZIãÝéì+lûÔéDÛVw”ta}2[)GÙJ™5^(ƒÁªå +™©…ÊH™…-sá•5I<jLa}T¯Ÿôù¨[‘)ã[mþò£×!ÒÆÖ¿¤Kh¶ªJ—nÈØ5Ä‹$C¾ +ΩMSY¾pTBk9§_/>]S‹œ”|쵺ƒèw¶’òÒyRžÄ’ðô¨Ìܮϛ»ßw³€Ž8!!ä›H*UZù
)ç*ŽëÂð#¯rIvAëRye–ÍÚk§á¬…#á Q:@Cä,épb2ü<#oã;ªŠ¹ð.H¼¥Eª‘.hQJIˆÔh+æx²yp¾Åf-Ó¿NᜧŽå.qdCù +%°t”JihYJáõ†¤Y “Éy3¤Kt‡À'–…úe2]Íåüé4”÷¸Ä0 +H¡ˆã:kPŸÃDæ6«v&¡©àÛ‡Ù4¹þ|ÝäëFöÌŹÿãÕCzPkÄû‹‡i#xÜmmpK°L`vw=D¼ÿtýaGDÄvüPZo3«Ý1<’ã8y wxá&µt|U•%”Õ(xS6±Ø
egÓÃûÄ>²+Lë¥$Så©,cØ˜Ï ŠŒN¸#ÔWè6ŠÄh«ˆÁßaÍÀ;fuœ(<eùtÂ*^ Øa‚–¤-t´JA²(>,·¶ˆ³U $h€y=[ñ¢”Î…Ä>Üaí¢7ÀÄ¢ÉLß+çM–êxÇÄÉô8¹›†){~+ Á „|Ì$ằÄ}¸¹Â¥¯Ì•±Ú.7û›ËV®x¾™|GÈî›AOíþÖ…ëû_WöbÉ1§PÒ%È8~H·$ŠæÁò“Vïs©C7.of31u1&@‘‚'¡8í›Ñþ2>¿F!»Ÿßàù¿ŽÁy7êu§¸{=;úóèZßbendstream +endobj +1307 0 obj<</Type/Page/Parent 1068 0 R/Contents 1308 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 801 0 R>>endobj +1308 0 obj<</Filter/FlateDecode/Length 1640 >>stream +xWÛnÛF}×WüR–"u±À(ìDnÄŠk©1Šº(VäJbBrY.iE/ýöžÙ]Z²£}h0¼ìÎœ9sffõW'¤>þ†tÑ`LqÞé‹>Þ<_îâ74ŽÆ¸æ
ÏDäŸ2šw¢ñDŒŸ¿Çcqvðµ/&Øj/Õš
Óhp.BNÎp?ã¶R´ê„ý·£~àç<#ÿÄ~ö€ì·4<ï‹so)‚5gh8ÄaÄNrŒÎÄÀ?yC48¾ßÆÈÂÁ^²g{W‹Np}Ná+P5žà&±õiŸþ¬·Ë‚n(ÖÅ*]7 +’T4µÙ¨,ë’JÒÚ‘fŠïóô&ìËJëú(Ú$]íH¯ì›²%R)«:µXسLû=KeÞºtô霳Šá ¢^4ü +éèOÔ¿0ªnJ¡¾©Ö?ªá•¥…ª·_²0;óŸV?%I»v/‘žG5@8TKví ™–R–LËäeft—]üP{š9!qÖ$*¡Ù4ê£$Uú)-U,9à©X6ëõNв=·´îÓ½Íæ‡&Xx´—ZœàÙʬl–6QÀ,èêkP$© ,`%áxßao€0™ÇKDï¸Ê¹ä[`32´Ý¨Â©ýñ”?"…=¾að¹5‘ãáµB{`#L]¢±v6]Ðç›éWm[z'×,9–Ê]•¢Æ\¡Ð½2º©bEW•ÞUt©Ðd‹šðÈ`È°Ò!#Ò:ZÊ…~ÐåÎKYÇT:ü·š3Ü;ìµe‡!?nû6EEÁn›á#×(I™¬Á¢§‹ëâFÍÕ$!‹É2§›¡c㽬ô2S¹é’i€ì–•âXÓbM™Æeª +™ûäùÖË/(IF2“J®×ÜFËêz€&ÊL‚Ï9W<÷~}Èçë"áüÝÐZ¡¼9KˆÏk:ÑÛ"Ó2!V}î‘Næ5e\§•©»W +t5³aà1:pÿ~w3[¼¿ÿü`J[.°Ÿ%=¬N$X˜åŽ•å;²‡Ã§hA3
˼ÿˆ)Ž\L/ÿ´|ÊS“©}fB$dA[åÚ” +¨@Z«Z]¥ë´ÙsK°Ž»VÇ<¯bF úŽ¡’#-\V#–ÙU«¼U3¶Bo|gгEKûŠÙ³\[~|R¬R à¦kÑWdò%D±²PA<H^—Ð*ZS¹,é‚á×Ñ~N†íXó’sÚAzzÒºò#‚Ã'Sª8]¥®à^Z<m¥{d§Kìžcc]·Ãd§}ëÅÊ$ñvò§Ñ®B½¬t–¡[ø13ÚGÓ’‰þr¸åÂòprðêDœ$ê)E°Í“ïÐ*±oéç;ú(Q™P£tÃ|zÿaº/¿x´÷öÔ±‘O +ªËê”ëßy‡eY‚:K(öVV‘ºÈvžl7;¬|¢Øë™=¨k©vâ‘5ÔVbìk·/b»Ü«#¢mȸnPŸ»—ë½ò—;AX,®öÉßðØç ÂU"Ÿdš¹rþäŽFA«ÇÅâ‘vypZ“ÜkX€0c™âoÒ¼4nõIÂè(ô¶å1ÍøŠVÜƶ›½öÐðQä8P±¥œí[%N“|¨í
†®ZÒd²+Ûsך¼=Žž{ƒ>Ný¿¿â4Àãµ¼xwÜÜ¡Éø«ëÛÏçÑ—*„7wˆåÍíUÏQJp¸{"dÂc¥-`WÉ +„â2´A§Ï4¦¦0Æ31ñ¥Žñ£d2À!?Æ#q~y{u‰Ù®y:Ñ{79ŽÒö°Êqá¼î¶ôÎú8&ÿßï7Üìøò¯¬Q„DÁAØñtÑù¥ó¾Z,Hendstream +endobj +1309 0 obj<</Type/Page/Parent 1068 0 R/Contents 1310 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 804 0 R>>endobj +1310 0 obj<</Filter/FlateDecode/Length 1639 >>stream +x•W[oÚH~ϯ8êK©Ìý’Jû +éz»÷–žëÈèKn€ô˜Û{_Ü2¼³©ÌÕµ¬¨1÷x?)m`¦îKnÅ“›²Æê´¨Vì(ñ”1ÃLÇLlN±ƒ˜=F%÷¸Ji×ü¬‚;•S<¥«Q.à:¯ +øF³c¤ªPa#¶äé ¸\Ûß—Æõj"-V´ÌqµÙ®u¶Õ0ÊÄ}¦d…aIÙ>þ72ìP¿×+vìÅõÃÍ5aòüâ6k?w=wC«R >h^ýÏE±Ûzý^»„e«Ëú&Ë‹?/þ¦bendstream +endobj +1311 0 obj<</Type/Page/Parent 1068 0 R/Contents 1312 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 807 0 R>>endobj +1312 0 obj<</Filter/FlateDecode/Length 1210 >>stream +x…V]Sã6}ϯ¸³/
3ÁÄ&_ì,-3»Ûd¦M[ÁZlɵl(ýõ=W’xËB†€eݯsÏ=Ò߃˜ÆøÄ4OètFi9Gc¬¾~ÿu0IâhFÓ©¤É|-ÂSAkì_,°¿ûªïؘ&É4Ši²˜ãÿÙ<šS-iß÷ö&“Itö&Øï¶^l'WgÏi³G‚³EL›Ìå5¦M:üCéÌ<ZJÆÈv-ë•Jºé=%G›ï0P6=NæH“
7¹„k_+d- +Z›'¡SiéQ59½öz›Dt£%™==æ*ÍÉèâ‰DUIQà —šZ«ô Z‹r'80ÂŧQÂá,²’55†rclÅCU›½*«ý`”JêÆ’ÒðؽÍL)”Žh“+KÂÚ¶dë\4>&ñj/p)Ëb!í&—äŒh×6î)ì +Y¢à¢ BÝKÔdÒ´IíI5ìP›& +>“Y4áb®5™:ó儵Ø6‚vßpõ³Â¶CÜ“©Ð€Æ‡èvu¹=ý/Œeðrñ }_§¡¯CÒ
‰´ ÛV•©:GÚ~K×ú!‰,“§Ä@0ðdsî¿ognÐSRmDÉÉt5EtÍèPÔrÔÆÚYw½òd¼MB'=Ä©)«-$±3h¿“®p´s=ç(„§ípéWR+™mz‘…Î(¥h$•mѨ +žRS)Tƒ®£‰FS¦ì=n¾,¯¿FÌ>Ìt<¢×Ɉd“FQ´=Š0GHhØr¥Fï·Ãé¡K¡©w€ÓÔT€™ÉF¨‘ÀeªF0vYXÃå²OÐŽÞÁ~ó*Q‹R6àÜ£°®L0Aw…Ù‰¢Éón@]ËB +îmU+¤ Ý€Rñ'XvÔÞ07LQ˜Gî -†“DÅQœÌo)VÄÂÈå;ÊM_H÷èG?bÀ6ØA¡Ö¨cW1ˆ¢ƒ ¥Ç…ÚRUWöHäl¢’Œ_èmtþ’r‰4m#æàœ7_W!=¬ðø˜Ú…¿ª‹Žs.ømÝÉ”I‚žXË·U²×Á{×pdÚæ -J¥yaº•„Db„ÈWÈ“›e*_d¡6¥ã‰J©Ü¦ÐYšþÄ}OÕ–û" -8œK—€Lm$òÇPëЋ¸dŒŽ–…„.)Ö¢J24W/Eq¡³êJÖ -m¦U½ÎNà¶@÷ÚK€ üm´²*QÅï®|éx WrKË -è!
íZ%ש×d{½àéQrã“in=ø¬‘î÷2G9‡¸]–Áå[
ýPƒO56¹¿ÜÀ•´CN…¸@kÛ·[®ºÑá¾Ín€BŒOLzGä[À÷õØÚ£§[Û1tŒºàÊ„)û{]¨XÿðåÞæèæ¸4ûÔ5LpÞY$M¡\6WŒ£8¸n‚cƒû«ÃN\¦ÜUñÇþ™˜Ì&álzå/x—c¶úyÑû£÷C‡÷aendstream -endobj -1220 0 obj<</Type/Page/Parent 1099 0 R/Contents 1221 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 621 0 R>>endobj -1221 0 obj<</Filter/FlateDecode/Length 1714 >>stream -xµW]oÛ6}ϯ¸ËKÝ!Qlù3Š!ËP`I»ÅE1,{ %Úf#‰*IÅÑ¿ß¹¤äØrÖîehêD&y?Î=÷ðêëÑ€úø7 iLà %ùQ?êãþðÇ¿MGQL“Ù$êSNƒQû”ÑýÑî3VÇÃhÔìõ«ã8šÒ¤?‰f|ö|7O~uç9§x2Ú_Lpv<™ÂÎNΣqóäÏî<ãì`¼ÝË«»ÏXÙo°Ä«ÈŽ†Ã!>G³)>cü7’–~alg!îÅp„0¦áÁûzyäµóýµí#Ö¦çÑðåÜåüèìfDƒÍ—(Ád6¥yê‘ïÓ<éÝÉgGÉZ+In-éíüK·6fEg7qc¡GmWFW%½Ûßì«é7·îz”©B’*¼é¿V™^ˆìo²2qJãK
<Dú›9»oc<'(ï<íí¸¢ë·a_k¼OÛ}²„Ρ¹$½ô§:ð¿‘$€ý -U¬"øËù?uEye‰ÌjZ‹§€E),9i¾Š,S—ŽJa-¢Ní÷¡±Ò1!)´/P¯–þèKÉz,"Š¥6TëÊPe¥AªšD…|§ád“Ó€)ì°ÊXÜÍéãõU7áUˆ,«OH¤)=ô`7שZÖoI|?Ù6IÒ<!®ÿ™
H‹]^_
šßqÀò‚Ì×Ò0&¥Q¹05‰"¥…HAå†&‰.œÑYÆðÞ‹|!h£²Œ„s2Gu)ï‰{)Ê·«à+íÚrp¼cGŠdÝp@Aä¦ä'>¢ä”‹š6¢ð! gŒiŒÏˆÛ8$-¹ÇHW8‹ÜwÃ-˜i¬‰\«W è²æ"C/©'ÉÜQKšËæ‹´!$Ž zQÊÍ“³°k(Úò:´ä.Ö -¬¢ë×:=¡ÍZ¡<è‹bb¤U"SÆ:p‚MÐCY¦7-_šLä3H8oËr”KYes|%\'K4iª¥hÎ)ç$Z”(ÖY¨ -<ä«`MXönEQS)u™É äÂ>¢fF®„I9_½ä®ó©¼A•!&¢úª’w v`}è¾Å©ÕÚ–1ß@b×0Ä*âÔ3_ XÂkÇfS-]JƒÎAˆp›«gD‚‡vcy–×övœƒˆ„©@R´Ó@£§Òm¤wn¢LRå(^‘€8L=@ñµR8(èØ{9öÆ9Íø‘ ©9t÷ -ö«p‘Ñi›êZCmÁ^Èn”KÖˆÙ‡@ƒ±ˆ.^3~@K^h“BÊ”;kÙ¢Ý!+:ϙ»|noÛ\ÁpD—,9KQe]ù’ðÜ/ˆºu,í¶*KmRºË÷î=wóßnŸžÙ;=Ã@£”x•ÔÔRÞr%Pô–3çÏ ÂL×rzíÇ•î}íU¢©MîûÇ“§µüX¸Ë¥WAÖÉÒ†`SÏw±«˜|ñ˜š
6MAx2ÚbéƒÓAŒy<`B¶6 -jÉ6á&̶ h(°|Ndé‡>”ÜÓ߇M+VÒÓÒèœG–zׂbà ‘e&Xvu‡ÞÂFIŒk×`tâ4îÖO]_鼬pÙcº½½Â˜s«£^: -fì*¬Î$&Ÿ2« VÔ³›×uiÑçuæL$‚Nãéù<Ôz]£wM§ÿnwi4êª2®ùm*°=ª6òŠû x〈”þÖóÐ`4õ†9z…Ê4nZúT¨ç—¡ˆA¯97 ÔÁÌÏ#<Ï`ìh,ù‰2Tv{ »¯:² ‘Ov‡UŒ_ˆ0ÝOµ×8`Åñã‹i´yv¢ -)‡N8j’%ÁŸ‡Ðˆnž‹—Ý\¡m>H`ÈÔð ,U&m¦È›Ü
lMVå*¨dšuÆãvUSW–`÷þ›+^xz‡Åßßؾõx¢àä‚鮲Կ2 `¼QÖxÀrÖ¼ðbÚŸ
ñÞ6æëíþâöò‚>ýtÇeqG¡qmè‚϶ÛO§1^ïÒÞ½KGxûžNf¸†qh<b[¿Ì~?úe9Íæendstream -endobj -1222 0 obj<</Type/Page/Parent 1099 0 R/Contents 1223 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R>>/XObject<<>>>>/Annots 628 0 R>>endobj -1223 0 obj<</Filter/FlateDecode/Length 1331 >>stream -x}VMoã6½ûWÌÑù3¶S ‡d½)t³éÆ‹ôÐ-Q67©%);é¯ïR¶e)‚Ø–HÎÇ›7oø³7¦þÆ´˜ÐtNiÙ%#¼á1|û½·¸IÆ4ŸÍ“•4žŒðŸ -z±:[$×Õé|žŒh:¹Iæ8;›La)>ñYx¡é8ÚðÁøÀKGœ›&‹ÖZ뱤å8¹iµÍx¿g£ÁßhŽw³å¾'ø·’òÞݺ7¼Ÿa?s 1_.hF´Nû¢ö;©½J…WFãÈÏZ:OÞ ¥3spô¸&'í^ZRš°œ(%Ä; ×ÚvsMÆžÝ,›C¿¬ôFt5ž&xîL]dIór -î¤#£9 \KÃkƒŽÓMíé Š‚6¼c/3NÁÊÙÉŽ3Fwa]æÈöB{±•|*A_Ê“ÖVùwŽÓïš:|à¨?:S8ŠVt¢n¦oOŸ(Ý á6å›H=ò¾ SˆAèÝWà€”op-¥ÐŽžE¹A=']ǯ6p⸪>âKåm
f¸À ·S•û0–å»ÿ»¯™èÝÔ”"B‘e1†Žï&"X
ýc¥3µMeaàÕNìQ ®Ëeã5`‚¨¹5%ØÚ=ü´ú¨«;>Ešš„Še"lë²à!¬¸¿ ’ß±…áýu£ ý3~kµìY4úºØ÷õLÈQÆŽŠª°ƒ áW)+žT9
jb* jœÛù¬íìõ¶qKܶ°U¼b›LÊÆ_!œ?5JYî>²åïˆw"ù¢RkœÉ}²SqCERÃ8P[#3´›É[{v€ -O!ȹErÐUl$ªªP˜2<52™t DÂOÒ}†}ô]«·fŒ§Ì‰W>Ï1â°u+QVÙhãbvã -endobj -1224 0 obj<</Type/Page/Parent 1099 0 R/Contents 1225 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj -1225 0 obj<</Filter/FlateDecode/Length 1616 >>stream -x¥WMoÛF½ûWzrÐX±dYrzK‚0Ð8n =ä²"—âÖä.Ã%Ũ¿¾ïí’M-ÚÂ6l“»óñæÍ›Ñ׳¹\âk.ë…\$)Ï.g—r=¿ž-ey³ÆßüÔZ²ðbq¹˜¦/ÞnÎ^½-‹KÙd°µZßÈ&عēäü]®ªF×2ŸÏä“5™Ñ©üâvÎzÙê¦ÓÚÊgcS×y¹Û¼Øüqv)‹%Lœ+›Ê§»ÛߥõÆîxj‹ƒ<Bóuôwqµœ-xàâÍÖ7µJšxl ·ý±Å¡ãØmô®VqV\ÐÓ“Ôλ¬…#M^»v—‹’¶½`è’+FÐäaR]#)%?ä®8Œ›â‡>“ùUÎàŽn§vÇŲjæ¥íÞÔΖÚ6^2WÃPáð¼1¥žÉg-U=^ÆŒV}FçÒñ=‰ë´í,®0Á&×ò ÊšDä[Óh¨TJ/ÈI‰wÂBŠWŸæ³ÛB—+:Gi4o…2™²Â;¸Àx<!üÛý;ITQø—r_´»‚QyÓ"TÛ˜$^ÿàÒ¶Ð8Áâ0‰;U"]ïM‚ßi’œAÂŒëF5›8M]© -@0úïvÃߎ°+lFàw>¹ïGåSÚŽfÙp0ºê:s±«×] -¼Ú…EE¶¡Î®àG
Þºo”¨P@!k‹b|©Ë-PDv -;«Äc&-“†»¾S,`§²ÓhgÀ(€ú¶Ä§Ú@FM -ò{ì8hGü°Òo"®Œ6F6“·:QîHÙ‡•-îÑÏ’ò\ô;½.äËùÞ¨ûÝÃCØbØaŸ$Œ‹«1ËÊÞIa¶µª_^ààŽáˆ–?bÇ3'ZŒrÅQ6+F¶Fm¡#ÖW˜°¶é{óæôéiy=ãǺ÷i.¼'-Aï›”Ù,×ËÙzu'ÒõŠ~Þœýzö´Ìùendstream -endobj -1226 0 obj<</Type/Page/Parent 1099 0 R/Contents 1227 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1227 0 obj<</Filter/FlateDecode/Length 1671 >>stream -x…WÁrÛ6½û+vrRflY’eY=*q3ÍÁŽ+“| ˆDL@ŠU¾¾o’’iw:Iœ„"°»oß{»úu6§~ÍéfAW+J˳ÙtF×Wsü\®oðs?NÑ.|pµžMo}°X]O—o}°^¿>ða{vùiIó9mw¾ZßÐVÏf´M'ß¼rž¬¡:Wôíþó*Ešk£(á¡¡Æ+ºßò_Ž„‘”9ÛTdD©< ÏÔÚ¦áÍwFÔz¯ÞÅËÂ[Ó÷ÛŸg3º˜_!½œlù_Ÿæ¶5´Ónò7‰:^' -+bJ?.¾k#mK^y¯Q9j§út+ Ó@Ål²×¶ñ„ã:E•5¤Œû<#í)QÚdŒCø_(èMÜjñ¬BÞ;ëÊQž·_î6ŸïŸž†ƒýƒ -S£¤ *áj6…p -E›‡F5ÞYÙ0Ûž&›»§÷äHºduqÇ1÷Z ð#ñ¦0ÂiR†ãIUUt)úØQÐTT"Ñ…®`y±Gxf,âxIv‡,Lš;kôofO%¼o“̦ºU`zÌÑÀ‘û|òKÅ×½¯zŠ0)láÓ¤“ú«f?½ý¹üôÍA{öŠ8SPÀ|>½šÎQ›p™ªé”Ã%žúÊÅ‚}er"…:¼ÌøÔl&P]h#WG¹Ø£Cêík.'‚…Ó3Èìœð UZ7¨1tº£ücq«=(ˆ.6H] - %+\%‹rr%$ó'fÊÑ_×pŽèž–ùJ‘Æèšw*¶¥&VD¾UèW`D¹‰/Xi -É:Áuèü.惩Ø÷¡û™°a…O"=z9òp.S9dÚ -ÔA™«”ð^F:ã1fu~@!SÚ@çà -’B•(µ -endobj -1228 0 obj<</Type/Page/Parent 1099 0 R/Contents 1229 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1229 0 obj<</Filter/FlateDecode/Length 1832 >>stream -x•XMoÛF½ûW|r›¶dÅvrsœÈÁ®[)hoÅŠ\JŒ—\fwiUýõ}3»”(ÊAPAjw>ß¼yÔ÷“ ]áÏ„n§t}Cy}r•]Ñôæ:›Ñìî–?ã¯ÓTž|\œ\~~O“-J\¹¹Ã‡‚püêŠùÙd’ͲiFOªÖ4×îµÊñï¦ -ùú—Å7\Ñd¯^Loqõl±Öo>'ëèi>?§Ê“¢R«Ð!€°VŸ´N{ÝàcCµj¶ôõéË_d[íT¨šùºö} ¤Œ±ÏÞ¯èbrMÙk<€ë¥u5î؆|—¯IyZ[„ïÏaº2¸_)¯DSPçµ;¸,-5*ãyÕ•ÎÖTTe©¢û´Ë5‚úŒÔô?ªn>Gn>À´2¶Ñ1u/x&AÕjÛ[OI¸° ]…mI¥Qc·eeðÖ!@äPpcseH¾‘JetOì‡Æ”•ó¨c@IÛ@H9åûFD£”%¾3¤‹*"‚†rÛøÎÀ,=}™S¡‚Z¢Ì„~WÏ}zšs¢¯è -Pß…‹7HpäÐ.ƒªš…ŠM@>=-úºuž½?Îÿx~ -¯Xѯ@[c€ÙãÃÉÀZCØ]“óºD‹+pfÜq½P\ -R…vË&ñ/Ï4vÛ–´ò #ì}Þrý:€å5¦——Aô1Ö:Øà€ƒ -i6X÷"‡øDZLJ1B·æ/x¸ç«±rwI¢Mnð{ÇÝ5~ÙxÏì?¿üx$ÙoÜÛO6ÇËP’Ž|ï¢?~q;Å i[üøÙí,»½¹Ã/'8ûîŽMüº8ùýä?ÒùÎôendstream -endobj -1230 0 obj<</Type/Page/Parent 1099 0 R/Contents 1231 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 631 0 R>>endobj -1231 0 obj<</Filter/FlateDecode/Length 1810 >>stream -xWMsÛ6½ûWìÍÎŒE[’-ɧ6‰ëÄmóÑX™ô™DB"`Ò²þ}ß.H‰¦ÝiÇÓ&1Ý}»oß.þ>Ó9~Æ4ŸÐtFiytžœÓl:Kft±˜ãïüç5åÃÅåUrñÒ‡édœ,^ø -À$>ÜÕëB?([w¨‘”µ©2UGπ랥èÁ(ê -.kæ¶>.¹L¦æ¢²]@%€Àƒ^ -…Ùäu±£Ì¬×Úã—ïëÇÛ?i››4§\!Åä•Ýhrkv¶Ò¾¥Š¤>ļ·.w%€vmQƒ*u¼>tn[ð·¿,øCB·5mKvèÞ8.°Ì® „ɧÉöQ±Séœ -*!ÎîÀmk“ÍÃÚÚl - -fJ}!Àh§~¬#"€Y{WŠ
)-ÓC“Ôªò.ÕUUaböcébü„GÏŸ]‚·Â“+°±„)f*þ= -šr]€Ü‰u¶¢î×ÿÒ6Ú¦í¡"7B‹²ëf¨ËÚh«vÿ!"— }PôV¥9°prûC£•×5•V; +)°¶ÚC€¢pBaIåžYd¹ç~4zléÀ¬¥#9êó?Ð`Td -a{µëKnuT ¾%T -i®á€š›½ƒ¦ýw£-üDñ е2ZíXÑ2WªgíÒÎåkuõ Žô/£b{]7ÞÂL)ú|ýVúñÄ_u\T…ÃôÜš:Ç©A8úª"p^fG^fwÆB¬yˆDŸ=Šo!?šûDÙ¨‹{‰85=HÌc5Æ$…²p~a0ÔYõcePºSÉð -endobj -1232 0 obj<</Type/Page/Parent 1099 0 R/Contents 1233 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 634 0 R>>endobj -1233 0 obj<</Filter/FlateDecode/Length 2016 >>stream -x¥XMoÛF½ûWLÑC@¢DI‘dôP8iÜc7Q‘‹/+r%nLrÕ]Òªþ}ßÌ’4Í:Š"ˆm™û1óÞ›7CÿyÓÿbZÏi±¢¤¸˜E3z³žE+ZnÖøyŽÿNÓž`)‰ùËç_/Ö—QLËÙ"šSA1¾_6ŸrúrÑÿŒ§Ë7Ѻÿ´÷OW«hÓÚûŒ§—³hÑ{Ê.fâ…qÔ"Z¼Ý^L¯—Ç´Ýsš«Íš¶©$3£m2ÚfÆ“Ês{òTeš¾\ݼ½"•¦4¾rª²Ž*ò3ÙR–¨ËÊ$ª2øU¡“LaqáÛŸ¶Ó¯¦œ|½ýv1£IÌ(mÓÑÝ/ïhÏÇášÁvO©-”áÓŠv>¢öª=>Si)·åA;*µN9¤L=jòú¨¤æ«&½»T’غ¬ºBZ8éQ»ˆO¯W
(½]_3K>³užÒN#g•šò€xQj“º@Ö?‡Í-¢|ç|Ø‘Ÿ@ùÛí×í-ñíÍ¡D¨œ²?ûJÏaEŽöt¶5)ˆÌÇ\ó|cˆØ*Ú›\’ëE² U¦t2>c,îG{e(ÒÊ›ü|ÿšLYé#Cú/ɧÝ;[ðõŽ˜[â03à¬Û8 ÑeȉaDÛLUä•IÇôTÁ\}ÚžÞ]Ýàú£vÕ˜¼•\uFN]
nÚ骻ØÅ9à§V"&fØH¢™öš*å|ÃaÒp8YG›˜V+¦á~¾ZS`éÅǺŸÌ7Q|I“Ëu`*Ž£7Ñ<¢ÏúÏÚ8Ý?ç•iåB5‰Ø’,vŠ[îÍ¡º¬fÈ -•¢–igmE©ñÿˆçæêãûAì·ŸÞÓ§Û¯ƒ+zut£=ÃqW7AÐ/`î)Qðõ€â©à -Šõ2²Ø½cJØ1(þ‰u^¨$3¥z}åé”
aeOª¬x@5ÇHz‚,ª*œ…{å0>žƒÅ}ìSTXòvÚQ-7L {ˆÿƒ‰ÖL}¸p!c`9˜Råä+.jüêL'ÍÆQ’ 6rÐí]-®
ßéà“BBæ=6,k’~šÜ¿n®z20M9N÷Á&=‹Æ,à~ÔþjŽÊ™“‚µîœîäûËýë1*ÿ„€’¼†û±yÕeÂ5‚§§Ü¡îSJ•.l)%Ñ3µ»eÏž»Š!g‰îyçuzä¢:éÔq®Õ-•N-KƒH1–³† ±(É-ʧjŽ(ŒsìШ²£™ -BF73‰çê!ytöѤÀîò
P5‚‹)ߎy}8ˆÀ -®q7ZH)qx]ÁQp,Œœ//åØ0]q}€h\Hdçî¨[þ¹Bø|á¢m¶Á]+b
øš’ÏÍÎ)g€PAF¨Ë—ïÝ5¢kÐ'ã…Ÿuú7%é»ýqÅãŽ_U&šå*®]hUúa‰Âr&³h½œÌçœèÓ5 -×ìX@«Î+¤ÿ1C2÷uÎZV9šë -äIv©~Ô¹=r»‡|“(Øs!‡«:Ÿà dé÷B ëÛ.
,â^ƒ[Àé&F.ÿÛºzž
»®´¹·ÚÕ•r¼¡I‰IßA$gÈ€‰±ô`‚ÝïYÚ’JÆCøF[Û ¬.¥è¾Dª¼èc³£èI‡…¸Þ´I¾Ø5}ªsǦ¹<)_XÃÕ3<«µžç¹8;”·Ò <ö…ØžeO—6ËŠ‡‚‘sÛ¤ïø˜ñÞA>¼Z4ÍR¦eª\*…×°ÍÄTŠR;e&ÉÈ×G:NÛ½;-»w‡ -únÛ½ƒq!&Aª‡o°dB[[MJC@’b,7uâÑ:¦6(Õ¡ëpî꾋⣢OAÖÞM1)î8iWöb›òžB‰ÑöÊŒPRûŒn¯Ü@hW›œ}I\½ëèMn¡dÚºaü~óT€:mº}/‘¹½%¦ë^|Z†ÑN&f,ï -EÐÚÚ`Š‰ïCëÙ‡¤Üa3c*Î
Ï‘4ïâÛÁЇXòá/; ?@žWÿ›UÐ绶ñ ‚é5œC&¶Í3çˆ#z×L¹ažis–zÎ/ïî^¸ö§cVJئån Ààpt ñŒqʲ -LC}) -Ðï“Và4W>z´ý3æf~ -ïì¢<Þ9‰Wø»6LÖsaì{/‚Ëõ2Z¯6ÖÕŒ÷¾ß^ü~ñ7¤&åendstream -endobj -1234 0 obj<</Type/Page/Parent 1099 0 R/Contents 1235 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 651 0 R>>endobj -1235 0 obj<</Filter/FlateDecode/Length 1526 >>stream -x¥WmoÛ6þž_q@QÔEcÉ’¿Û€t]‡~h»-Þ§e(‰²ÙH¢'Jq
ìÇï9J”å·uÙRÔ MÞÝsoÏ‘^4¿€f!§çW#oDÓ韓ùŸ!þ—’R»Þ,În@‡7‚þøåÇ«p<ñÆŽFÞœr -7iWÝ]…¬67›A0Ç¡fµß-¼’ó)»èö -½9áÂvÑmÝÜX}A¸€°]t[ã±Õcز‹n+-þ`âˆ]ðÖ›å•ÿ°Z¦Ýt>£ebýÑ2,×ÊÐVeÙ5E;Jd*ꬺ&U˜Jd¿ýðæ+z¹ü=„Õ3ðkSú™ŽEæ‘G¢ÙvfÝIIÕZR. ÜhIt\粨D¥tA*¥®YnDCxÖ`+ŠŠ*}dÞè\n×i•™‘½¯,b™ÑÕ*K¬©*"U$ É/2®+e’D‘P¦¢R”J¯A¹è‚1çˆ"ìwãƒGßë"U«¶šÃó¸0f«ªxíÅ8q¨h`Í°·-„½Éæ ‹<
¹F`q‰Ó0*¤L$¼ÐTÖ;ÓÈÝ8ãNqr¨o@‰9‚YK]¯Öä@Z…¬.’ëjtC¯*iSê,YQ/ðœJN‹¹&£#.×=Ð¥ÖÕ³chñ†<¯©ß躌¥ï`øðÿцÅCºø«C'zúß7)Mu´© -^ÄÒQîØ•\<4%•ê,ÓP¹"³Ë#©‘,^?
vVÐÐX8Pž~í…‘ß 7ÃXI:¥;¤Òè¥gþ6Ûc*:BMûÛò‚Ã0Œƒ°Ü¢;›?º³];^6³Gp˜ßcóá$ðæ£ðkæ÷êN*Æ"sjN‘™¿œ¡z{MÂÇ€™§k™ Òƒ6ðewUÜëx×È.Hð£ÞRmdiû…Üø©¦í½GeÓPZêü´{ý縫Á±7Óô·GvO‡˜*Xδ~@{ØÖÓ‹´\výÓU墙
CŒ"KNÔþlH/ymW¬'…åX†Éèy(¢®Üy³‰ÞöÏ_8hcÕœ£Åýq¾¼È–˜W}Îm©gÓž¨+ƒÓ0¢²§ó¤R qgø5K˜ÖÕê8þ±ˆAÔl¦_*çM;*•K.¥Dd*™ã⡺À¡Q]1!à©ÀNI÷žD\v‰.^0³µto%î_¶ã»,—‹¢fØ]‚ÜôîÆÇÙNö
æŸï\¡á#ýE«RnúY; -®F@ÊüjŽ«ì°£#…ÊìœET] ÛfñZŠDü@‚BüÆøÿÕ<îÏ`“Ggº¯71îä£,EFQŠ\"Ò(qÌîvž¶„ì´ØRcÈuUêÌæ5’kñ¨t ÆnÜûêÐíl$z“Ò]dœÉãˆ-×Ã!&ÒÄ¥ŠlMR®í7ÂÙN´—ÔýMµ\Ñ ‹òý`~ÿòð=i¡~‘®J§¼q ™e‹0VçþF–ëD¥íýAqV'ÇCØ1^ìßV™ŽDö;ó¢«ác’qÁ>—|ãyÞwç6žA-çºB -ŘÙd\þk<ŠÕ¨Ïkq+*ÿù[ÿù¯¶2ö¾vr’˘Ï#f}¾ŽüwxëÚ_0A -endobj -1236 0 obj<</Type/Page/Parent 1099 0 R/Contents 1237 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1237 0 obj<</Filter/FlateDecode/Length 1086 >>stream -xVÛnã6}ÏWL·v±–,Ë×ä¥ÈæR¸ÀnR¬‹>Rm3‘H•¤ìèÇw†”Gq,ZÄSœË9gÎ诋Dø7‚yãdåEF0[\†˜,æø=ÆÍa妓8Œ»Ÿ’‹áý%ŒF¬0Öl> -䀑¢’¬?…ÓpNBø] vÃáëõçO×`¸Þr
V¹ßoo W%ò—ä CN!ƒx†õ$yÿNZz¬TQ¨kÈTY2™S”’=ó·áŸÚ¤/ °ÛpìÊ'Š›DýÛ‡Ï×Ë/¯³÷AS²’ÓQÁhŒ(`9j{Ukø.d®v¦©¨šNäë¼R«™UúDÖÞ,NÁ†`/·Ä–C¥ÅV|Í
x;åxðBIm9 §•²?ûÓiÛ2k£‡…ÊX14¬LÙ0r(¹]eà rÁ78Ó¢Ò’” =•V6¢¹©”4HŠ§¸åÊlT]äò+ø@šàHÞò
t±;ÉʇdxêÀåãñÚ`ö"â ^xÅ5Ú†ðÕ2m¡®\¥¨<Ä)Ï!g¼TÒQn¹± ìOáSêÝrikVûév¢(`ǤuÚU¹Xí½žL™‚¡t˜ÍdZTî V[œ+ªb -تFíb:m¢ÒýÌ)„XC…a
r›¤4Hk*¤^)cDZxʨ#…GO5~!†šTø”¶û^ ml‰òõ"<Ýì(7ê"ãf ->€¥k–º:lžÔv´^wï¥ß‡A<ñVrs÷ðñƒÒ6‰Ü¾ìÓyZëœEúèä·‘?ñû“
˜“O'Ò³NíúÔ…Ä,iÑâ¿!?'`¤Íön…ª
9ÕW.²ÉÊ}kÒ=,·çóQ{´u Ãi²No¼ÞÇž›œ#½ý‰ž˜1‰œ|pq”š.²f7´ë͵Bg<ÝJ«Ò]B•½KÀÑþcg#5øŽ’÷O®Á]#¶µï/ò—wëm·îµÅïGs‚¤æœ -endobj -1238 0 obj<</Type/Page/Parent 1099 0 R/Contents 1239 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1239 0 obj<</Filter/FlateDecode/Length 1123 >>stream -x½VmoÛ6þî_qÈŒÆÅbÉoµÅ4ÉV¬yY#l–} E:b#‘IÅ5Öý÷Ý‘Râ8VÛu/)RDâñøÜ=Ïsâm«=ü×‡É -”^ÂL@i§— Tr.ñ1—ÖYÐs˜i—A®S–S.Ž^S¼±þéšÀس—‰º¤a4 ƒç:ÏõRªkHuQàî—@=ZC(Ôhí¾ «/ªÕáA¨°`Ö.yX|T\Øú«.ÁfºÌ¹/€y舆9„o,>ßXéÒÀãã;±pi¼-{'äø±3_p]0©ªò—û‚5KJ,)3‘YU^Jn÷àÚÿŸéB -›£yãf&[ÌždA1n†©-aá0¤
nJ¥
»–¢¢è’€¼·ržcöfçQÈBs9"ÚèYÌkÓ®¬fÏÄÊŸGžs(>Ôq€ZÛ&è6cqaµîi)¢7kj|'ø˜…ìû©L¬˜±§¹àHÌ$SQE5UÃ8¯5ç)êN£Å¨5=hRËÂè…0p¬¸-…JE§«
!…G‹t rØBâÞfÌ÷¨ê͸&iÍ.<ì°á¡ß¥5±1ºrÆbf©›¾ÖìÚé«ÊóùÊs -»žø݇I\µ(8h}TQï'eõ5¹w”ÏrÕ¹z:¸ú€@õó㛳£W;—§‡;
"Í4t´w.ÉÅ4aÚ´ p¬ßÉTؗдµ2_¼¥!¤Dm<÷èü"ys~vÙpü»ãä烷¯Úß5¬¼†¥PÚÙÿ^ Úxî•6øµý¦^Sÿÿ#êÖ
±EQ±áW•õ´ÃvèŠ[¼uYýbðäÍ°zó;<{†s¦L3ˆï˜·ÞMlËŽHR|üWW
ATë7DáJƒêaAÒsà -¬kÎ~p#ìB+NFÂû -]…𳔕¿ØË0kgùL·¨®%Ÿñº^ükVG<ÞêÓ—úýFæ9ÎðêñÛ¨Ž¯ÇßñóçñÇ'ÓêÓãÅ|:„ñþ$\®/NàÂè÷xƒ#–2ÅèFL„wë
ÝÉ -endobj -1240 0 obj<</Type/Page/Parent 1099 0 R/Contents 1241 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1241 0 obj<</Filter/FlateDecode/Length 931 >>stream -x•VkoÚHýί8Ô*¶±!@ZE«D$RµÛv[P÷CèªÆ‡ilㇶýï{glSu7ñ˜™û8÷qîø¾å¢Oocƒ‚¤Õ·û8÷톓1ý÷è“3DËy˹îãóˆ4Fú‚¤û}̃ª×ã,ÒdÏ¿´ú°Ü¾=!á̇«ùÇ‹?¼óîo
,X‰†£ß_¿ž·ÿâé’§a»AHëÃJÑmÏV…R<½E(Ö´ÖÚ,à“/Ѥ¿ b]úùy ƒæ@nÐ-ƒ…Åî)k–_ox;ƒjçž?GžÀŠà<ø¹‹àΑÅR>JG&ËŸ…Ün -(gªÈ)þÌž‰ozí\ŸÕ¥µ¼‘®–ëÚ§öÀÙž™ˆýœËRp×-› ’|—B–'xRÆB(D„<z„Z1”šÔhF³ç08<åÊé'KßÖEaù®ƒ¤òsUdAÎ3eãµB!?Ž!Rú2ç–n³íià”¤~šÄ²P+QÄ´ëRu] ¥ «‘½òð”,Ç1…ÁÓ]è[~œBšêøqƒC-¹À‰ >â1C` "U>Y§„%LtgÆüŽ‘—/kOÅ,ohu@Ž>Ù"R§SâÜÊÚÎi%î¹ÄbÒçnðV™`âÓžEªQZSxû·cT(sŠªY¤Š5QýÃ՞͈ïá¨iµè-Žñï®}f’•ú ¥]&å¢ÇäâxÏn˜ñðüs‘“Iâ¾6ÈìmÎ2XktÝ'*H‚DÖ¤ó7ðÂqŽªl½øÜàôí.lãÙ9Úmb›8õ!!±®Y3ÝûŽT"«³Á$Mâû‚ç„&yÕ«ß™³¥ø’‘w·]5ðÖÑ‘!ÍÑAZšW!Wº&d*æ)y'NË‚öˆäyÍ_q‘bÑË|µ’'X‹üî6Ev‚•ê½˜QmBÕ\˜½¹œî%†*÷#¢éQH5™Â’X,u¾œæ熡¤d£J¾Nö.ˆ·O¡/9"þåP¿ÕÈ"{ÀêöÃÔg‰0#‡Ê»uÉX%Æ;õÈ;LÕ«W{é ÙaƒPJk7Üî›c]œCG›ã_Àò¢ì çzRÝJ&ŒÎNËé8»xsy?sñ… -S £!«ÛRC°jkìÑ“Êæ^ÃœIód0×SXâ]aæ×p<´Ç£ ÝÕ$:jWóÖûÖ¥yPendstream -endobj -1242 0 obj<</Type/Page/Parent 1099 0 R/Contents 1243 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1243 0 obj<</Filter/FlateDecode/Length 1552 >>stream -x¥WÛnÛF}÷WÒ°HI¶%9AP$MH´QQ0P¬È•´ÉUvI+BÛH$¦MÇ wçræ̜ᗋ1ðwL³ ]O)+/FɈ¦·3ü¼™óÏ þI+÷âönœÜœ{q};Næý¯éýˆîh±‚é¿äû£-²Él£éÙ¯V¬åsJe¥ªRu’§V”K‘Xi¥¡?ÉÖÂÔôþ×;úûÙåâóň†ã\.r6ôâEï™´"ãGéý]ô?œLùôxœÜ&×Éÿèé,«jíÏÞÐxìƒ
‡ß®è äï#¨7Ò¼
dËeÞ½<¸êŸ©Îœ!Q…{'[{U-U•÷íQ.d©+K¢¦z£,í´ªê+™Ýè¦Èi)I,Iµ¦LW•ÌpRã°—¡ºN&œ¼Ã•®)×¥P•²\êÏ Ï•Ï{/QyA…ÎDA
®%>µ»Nsâë,¡tµRë7óùpªôñÕû.Lˆj2õwÊñ(©¹$] ãÓÜVzt -%ñˆ¢}k®ƒNò„A+Žè{ƤÒ`N®q œ<\†‡±2¿ƒü{U>ár-uÞxªÓS=öªÞ0ã𬋣҆kÎèšér‡ -¡b&*%Ijuc2™VÖÂG¶ñIÇVP®ø®Í–`ú¨=Pø(mÖ²³3Z×ßys§&tˆG_)Ðü#%±ºëºÅà•Ñ%'߯È1úîÍVОCþuqð-¯âbÒ©ñ3½Sži -$9Ó]¼ƒ}Uˆ'*".‡È¶äøó¬þm,Æàá’w,7Ofɘ1¶=°ŠrOÑ'V<Ód5¶‡«£>fµá¤Î¤RÀ÷&’zˆ{Á1ÒÝlZºN‹A¥ûfˆ’ôïóÐú
-õé^;´/Žûñ±ÙŽw®3ì¾›Z$ÁtÖnâMf'Mqðk“[Q #t*
*¹U«¦ÂÚÓ`‘ˆÊ¬à‡Ë6CÍô«& -Þ€ð¹G²3!%66h±m£K;Š4TeWˆÚíª‚Ö²’¦ -Œ¯¬Šå¾Q¡õ– -…E”×Õ ó°tŽ§øHœ_Óôn”¸ï«O¯Þ¿~EþÌ_!otÖ”€×í$á0^Î&ø<~ÑßX\=,‹ÕÚÒ‡Æ-¨7³›d6ãóG§·láÇÅÅÏÿ -endobj -1244 0 obj<</Type/Page/Parent 1099 0 R/Contents 1245 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1245 0 obj<</Filter/FlateDecode/Length 1194 >>stream -xµWÛnã6}÷W6}p€XÇñ¥@€zÛðCÐíÚ/4EÙÜH¤—¤âU¿¾3’,ËrRgsI#†È¹ž9gô½B€¿!Œúp9žv/€Ax}ŒGøÿŒ€¸óyÑño˜À"ÆÃ1þžXð.ËÜÊ#¾gÒˆ¨øæ'ré[Á3#]îoXzŸHëb™ÏjN¤×™¬PV\GBå@¯}ḻ
=´ •0æÚfœ/¾uè…7ÆšžmÇ’K¡ú>ö¼•j)U„ŽŸ7q"xë È1¬GÉŵÍ-æУô_ot-’Ä>ç:+rWg¶7ñ~™YaÔŠúûF£þÍ -–øš©bO f’Z³,°e¹3Jo!ÑúÁB">—ö×» -Ú½þÀ´u*O¸p.¢‰ûÁxu_l"Sò¡§æ>–ƺû
³öõÀü´+]4ñ‰Jí±úêJíMœêØËS£nµ!>{?£ï7C
*lÕ‡#ÊÒ'¨keuÁÁ‡Ã„ÆÊ1œ©b6p¬¬¸€°(©Âq*Ï_íf -âoôëíîG¾‹#¨„fqpcmÐÏ2sÀð3î(×K”&䉺¤)…À4æ¯é„-õ£@¥¹ -"-“¢[¢mŒN7ÎVv°¶^ép²“vD@Éaè]y—ÞÈë{0× 3ÒöìFp‰"ˆ X®2Ãg¥…#× ".¯É›.`…Ed©{ª¦jïX›è¸¤sÄ€[3iè”IEœ†› -Î0%ÀÌ(ÄuÅ´!Ta+1úD0.9r˨DåR¦zŒÍ.ꊸ®Zïjµ í®V«Ó™Ä…w¥O¿ÝuÏîÎë$B/sL&~0ñÃ!ÌogŸÚ·Ûßáw½É\ÜuùÝ9„“É°‡“˜g -n%7ºLÅ"§(^JðÜÅSÌû+Y°ðUÐŽ%¢£CGn¿LoáØ4{tcŠŠŠ™K^ ¯ØJPÓÚ'[ßÂÀ²¤W3lfÍñðn# —›ùe6Ÿ[sE$^Îä
m/v¥·™Ž$Kî)#”ä“öÛ2U.G2ðsy¹™º"ÇÉÙ}àVXüßVÕŸ«qËr»‘+kðƘùЀ-_ÕN£¸.͉b##Vs±—ÇŸ‹3Z‚3˜V«âáìû7ãj³ ‡øö;¾„áäªTÃùôöó¾ýMp‡¢Ä3"ŒZþz»½Q߈£n¥ž°Ö‘è,Öøiᯬ ™Áhà†c|“Æ£Ã!AìÏEçïÎ&Žê8endstream -endobj -1246 0 obj<</Type/Page/Parent 1099 0 R/Contents 1247 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj -1247 0 obj<</Filter/FlateDecode/Length 1233 >>stream -xµWÛNãH}ç+Jbµb¤‰'! ûÆÌ,Ú±›ìå uìN܃íöô…Lþ~Nµí -še-•’^‘(K½UåšRí—¹¤Êè¢r–»¯%|
Ùiš…á$óÂ¥Þ@¬hÚö†æ¢X -ú•qQ¢ËR&Ž=¸Ìh¿Îê=¢ªò¶•]&ÂIÞ¼RkÏR‚1‡ÁCÚ"~|öÏN(ž6LŒÆµ÷8Ž&}V…rABG>ælÖþÇ Ê„i¥/ -LA~–Ý*DáÉ°°™KaçNšp½¨I™®$ËŽÆTHòÁ•w€Þa±`ã瘑Áw‹Fí¼å[Ò%>ÄP¹àd°2ŸUé¿A¨¤Aˆ`Òn“Å{TË¥,˜6àÁvÕî쀩Ï!zŒ¤‰4N(öWi\pÑüYŸdxÔØ[àå÷„¸©¨>‚¹¥H2Hd˜¨ -endobj -1248 0 obj<</Type/Page/Parent 1099 0 R/Contents 1249 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1249 0 obj<</Filter/FlateDecode/Length 397 >>stream -xmQMÓ0¼çWÌq‘Ú§UŽÝ$ -W¯ýšxIìâþ=Ïí"¤Šb[ÉŒçÍÌÏB âG ±i æ¢*+4Õ†×m×òZóë §â¾/Þ~|Ñ¢?1¥éz
†Wzu'DÙ–xpVM)gßôÏŒßB0,ã×u[6̸ëGÂb쓱áwˆ4¯GïÒ0òNHàN×ãA΄Gò£x_LTã -Ç)
ƒ|š»Äx’‘±w:MVVguÖ›²Îšò|öî쌄½QÞwŠør|€’Ó0ÊOn!Í :0áb4!œùÖ -endobj -1250 0 obj<</Type/Page/Parent 1099 0 R/Contents 1251 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 660 0 R>>endobj -1251 0 obj<</Filter/FlateDecode/Length 1739 >>stream -x¥WÛnÛF}×WòR°h‘º÷Í—¸1š8N¬4}0P¬È•¸ Ée—”ý}ÏÌ’º9šAdQ»³3söÌ™á¿úøÒ$¢Á˜â¼Óúø…?BþøøGgÆÃ`J9…£þú§Œî;Ñ Âíj4W÷žs„“`¶g/4ð9œNðá¿Ó´ìDã0Ñ°?Á'ÌÆcÞ"Oìr0žC̆Á -è}¢ÚÒ¥-–fµFÔ÷*_(¤‘ªHÌ¿túÔ‹†8 {çL®Ü†®l®LÁ6µ³Y¦ïb‡áÄ;ì
†°‡<„Ý9íô¿kS™ZÓGS¬¼É°1‰&H&ziÆÆ®)†S¬5À‚Ó:5Å>S*3*M¹úª©âèëTÕb«ðÛgÕj‘iz2uÊJ–ðOU™¸I/øp—&ÓUÚ=š_à®Ê[‘*J=Vºù•ä¦0ƒYªªz².!]ÄnSÖÆ|€ÀÐ<ÕN¬Ÿ,Ð.M\yöá>§Äg©Iv’Øèì„̺mlÝÑÃÉáná½ìnT+-™Ô©>4A—^ïÂo`>ÜÙÝ%»ô·ñæýçù{°Lˆ9í€
Žé @¹]9».¿qÜ$aµ‚l³ ?úœ¯ëÔºß*ºµµþÝïÞ%4g*$6^纨 ßßøÂJÀGxWêÑ$ðW¶À)¯vܾ»º$‰ûã!R¯¥A³ïvÞ2ýúüÃ+ÄmA¡Ö¼aÕºÔ®Ò nm±ñhØB -h!jü¢Ž¨‹ru´{½TúL[s -&ƒwßxK=š~ÞL‡“a0OýgÝëyçCç?,xÞendstream -endobj -1252 0 obj<</Type/Page/Parent 1099 0 R/Contents 1253 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 707 0 R>>endobj -1253 0 obj<</Filter/FlateDecode/Length 1502 >>stream -x•WKsÚH¾ûWôek‰+$a 6•ÚrÞ9¬í¹lÅ9Ò -šŒg^ÜA9]ŸìÃÀž…ž¿Ýƒ'Þt+Føc<+(à¯H -°Ã…3VTï‡ ±PŒÎz…¡ -/‘†DŒF½šŸŒÞÍÈi¾DDˆò”æ©ù˜æÉÀ¼Ð£×U¹ÌV›&+WdÖš®U±Pô¦*TV2Ò4UžëæÙü+ÄM`°7”Ò›§ƒ9x–YÓj® LI£•aqŠ¶UóY¡Wo^SÖ’©hS¦,ªLEgUhƒGTêD·jîXR[,¼öyô‘¶Yž³c¢¢x2(+CÊ]Ô†…6z¨Ô9ÛÍŽì ]kô¸‚æµ¾#…ßE…³VàOõ÷2:¿£¤º] -Å¢çp 4+ˆXgÊÒõöÔj¥Y‘Ì°zô®j ¡¼Õe¦ËD?¿g£ºÕ´Ðº¤<+¿ÁŒmfÖB¤³Qù.”ê6i²ÚdUéu ¸l‘ì(B¬JÒ?TQ皘bôcM7pæÛÇ.ŸZÂ<(’´Ÿ«?ëÌ¥œG´|^åÕBå_:å2¼ð˜ð÷‚^©6K¨Õ
‚‰/Ã"[¡¼PvCÇ^j³È*T -o;^qŸ13EòÌ(”ýaB.ï}Kœ³òÌKŠôPÀO2úboI‹Zq¨+[¬¸½‹a/Ľ‡J¶r¿ôF›¶Éðµ|œŒòl1rž‹°>‘8=RªÊüιæ§'Ùb‚i,ÙV -ìþ–)J‹ãÀ…âg»â…M€D‚›Ž÷èAÛÙùÙõ‘]¢»‘òˆhàÆÁ\a‘JÓ‰9’~/ -euD!7ZIµß\¤ÆÑx|DÕ·çaÜî¬î£ã -·>"Þd8y$ËXN°¢q•TKª«¬4r
â€[ãjø§‹=ÝÔ§_Kr™¢þ»KïpCwê¼}`òË.„ХZä:µG—Üz©6*Ë[”Ï–û'åÊÚçXX³x"¾ï\r‰Ø;7ß^¼þôÏÕüãå…·6…=Fwô.9ÉFï’îàÆÞÔ'w±ÞQÜ5ÓŽÀÇËÞtR„÷Ùû×ç½:§«¦úŠÑˆC<Ùð“ °‰C?‹ë4¤aàŒOŸ~ÆóëhMñN -
Dendstream -endobj -1254 0 obj<</Type/Page/Parent 1099 0 R/Contents 1255 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F3 6 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 712 0 R>>endobj -1255 0 obj<</Filter/FlateDecode/Length 1744 >>stream -xWÛnÛF}÷WÜ•‹ºX–ä¾ÙNÓ¦ˆ“4Qчº(VäÊbBî*»KËê×÷Ì^taä¤(’8æeçrfæÌáç“õñg@“!]Œ)¯OúYwøÇ€¼ÿùd4fC÷ÇÙ”j]N³~¼ªè¿O—WÙφ“ì2^ð£½Ëš./³«½gþØô&GÓ LñÏHZx{ƒ«É—nf'½—#h¶àXÇÓ Í -jŸfyg¶”d¥y”†êÆ:²Íj¥£B×¢TTé, U ³ÙGCŠÞXçO%þWx¼tÈ.…‘áfßî"6FmVtî‡ãI´•Žø‡ÝÁÃí˜æ’ÂŒ!ÕÂ:D;7zÀ AjSà—…6ôG© -ܦ¼*¥rä4È…çcšépl}Ú:|q›Ñ»J -+æ¶p=> -SêÆÒéÖÚ|¢öYª„’75<Wj…òª)dAëÒ-q°´T”Ö™rÞø爬å°N”•ÍŽa4g£g`ê§ÙàŠº—C@][ú ê¹@“´¤´#½àåº^UÉ—üÿ.\½ £›ÕbµâlæHOJµEïÍ,¼àëÞŠüwU>¥§÷Ÿ+Ò5RTÕ†>7%Üy¿%Ã^0òiUq+á¯@gpsÙ•ÈåýÙ9mt÷šª8 -•©C
JŽ,ãqú"4ÿ5[¶§dݦ’$ò\7Ê¥¢]Ñ -±ÿg0¿Öbò -ô4Τ - I(\\…]r€± ÊB†Öbãy$Æsœ¾è2tK#ª¸%µÊèF{µ³-4Êú<ðÞypXÐ|ƒÁUÅÑ2ÿ7‰xúVuÑ9ÝEµ9Ýi×vG“òLÞ8lwÞ}Ü{Å‚j\zíºW@W‚±q;mJ“u¨*ßDã»*4ŠÝâãwŒä%$Eh¥.PW®íž³¯`X‹
ÄÚ6hlœ½Tà¸ö%ª6GMã±7?Ð0š0IÔ•ü]é…Ì £Xò[¯hÀØÂwGEMhÏÄ -¿HÙth -endobj -1256 0 obj<</Type/Page/Parent 1099 0 R/Contents 1257 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F3 6 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 717 0 R>>endobj -1257 0 obj<</Filter/FlateDecode/Length 1648 >>stream -x¥WkoÛFüî_±uRX,J¢dIvÚvR·)ê¤UE]'ò$]BÞ)<Ò²úë;{½ŠÀvÈ{ìîìììòÓQºø×£QJý!eåQ7éâ
ÿêñ¯÷?ð:ë
“1•4&ÃðPÐ[ê§çɈ㶥ø©$ÍŽúƒ1?¦ã¤S}wÌ?ñ±Ýg¬âè(ìu«;Ï%
zƒä|g•½é¥Ý¤whòjrÔ¹P¯G“BŽG4É]$]šdÉBÒ‹ÉìÁy·§Õ‘uÖY -kW¹_‰§[$u]i¥Š‚ -ekªqºÙBiIZ”Kõ‚??&±\JËü”VFŸÔ´÷KîbSñk¾†ß²•.µ{ý$…o-AºÁŠ]Hü:'mhapy®*™Õ¦Z'tm*’¢\|ç®9äf¹\ŸÀlSäÁ¬þÏAî8â£-ÔG‰@•½ˆ8{(Ûé °ÃÎÞ󋇋³î~zacJnc+x÷·VÙGiïšÖE'—÷Žø¢3Uº3…
["îp)²¡Ë©¹—§!”4æëó÷ÇÃ-Ê„¦)`ÒkÊ¥Í*µ¬Ráò5ŽœÄ¬Pˆö”T"“SºV–x~eÊeSË*ñ.G‹;mloâÚÚSk -/ÖT6 |`Soe}õæÝ·of;æ©6¼éƒr~àí¹)…Ò MðÐê€+ñâH¶xêFñ(§ÂóO›¥™™¹Vÿø4“°;”ª+¸~`Td™itíPq¹ñ4xkVðXøªÈLUI»4:WzN¿iõ@ái¦Ô”URÔ\ §–5ÙZ.IYŽÂ/º%ïn<Ž”øÃÇ})3º\l“ß®PBíÚ¬4áeD±©ØƧX•Œ3ìÊäuÝØp›³º/ƒÕœ:×gqÙ”°-§^@îZã»ûˆºƒ[ªd¦,¹ÒŒ]°·YÉM½EíBx¤+cêg|ëÖx‹66©-¨]†*é?ª’GLÝIáŠí>Y_N¶\®€s(ƒ»ÇnOÚ÷o^S ¹–«¸uƒ<ОK-+fÂA^g•)]Û^ñ4¯B‘Æl¤i’v{PŽQ2î;]ý uå®\Ù+0Re)s/ŠµG6f‡«}˜t‡g¬@7B7¢@E;z21¶ê»Ï¨HÄWÊzaòˆ•üÔ¨{Q@^–§î9€"’ßhü]éܬ€õ„~yýjKP:¾•Õ½¬^Š¹¬ŽÑ'"„µBAm®*[8â•ÊØ -e¥ÄÜà±H¡N‘{/P®Qe¡çÒ¿ŽuJkÓTq×#c÷MÁÉŸ¢!Pj…Ûä‚-0À»Ç=¨bt×pÙ
v°ï’á9Ni¦¸®‘B—/ÎN9••Ý Ç5hË’ij-D5GÀr^I¼šyø©4©µBn‚m²ÅM™MèÓø~ìäo%*èüW¼¹s}N=ôÒøxÛO#o{i2HÒ„Žßé6"m_ëczÅÚÉ&áÆM˜@&¬ÕtéÕÙeuwòA%0ƒ'Œjs×bÍaõ÷yT¹{A+±Þ£e¨lV,ZË\¶ -ÓPDÖŠÂI¿ÅAöH¤w%½d¥ÓRÂ&‰VÀÌÂÕŸí€Ô¨·Jg’$BV?ë)¢C¹¡!{OKÇ)Ê)¢©Ñtk•q¥æÒáÚË^[ƒßõâ`›åEþqáõÆ >SóZ2‡°ÝýºJ‹Dž{~ù‰e[ì!-2fÀ¥yÃvˆÝQÐ6ì7DUk…N·Õ&? 8´Ð’Ñ…$¤äåPCé€,×ÜÔTÃù¹eÑÕ$‡³Â•dÊ -endobj -1258 0 obj<</Type/Page/Parent 1099 0 R/Contents 1259 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj -1259 0 obj<</Filter/FlateDecode/Length 1770 >>stream -xWÛnÛF}÷WL -‹ºØ–äha+q!ÝXQ@/+r)mLr™]ÒŠþ¾gvI™bœ4É
/;3gÎ93ü|4¤~i2¢³1EÙÑ ÐùÙ4Óùt‚ŸGøk$%G׋£þÍ9
‡´HøÙñtB‹˜ðü`@‹(xØȜʤÊJC2•Qi©ÔôI+=J•ÌK¾$(Ö™Pù)=¨<Ö[K…ÑYçmHä$¢HWxVä1ÂÚ6ñëŧ£õ†gáqƒr#JRü¦zR©\Ëø ˜ÒÝ‹l%Hęʕ-(Õ“ÜX*”á)2ª«»Ó7Âv‚Ë爖´¯Ì¿‹²Ÿ¤Y¾¦¬²%$¡Zi×ÿþæ Ñ…äðÚV¥)%B¥¤®ª\˜C¯µAÕ®‘|Ò07¸8ÌÊ
n6ÏÙ®Ò˜3°²Á[% ² -rG:qÐ|·M‚¹$ð'G¨Èì -‡!¿Í„A•¥Ê×|L§˜}±uLD•K*
·¨ÆËÃùâ-ß& -T§«Z=µàß:‘‡Ç4ç\@ÐHXœøu›DÜÁ—Ä›ð”C}ïŸÔ.¡ZîuCª}6œ -+úVozl`? 6öQ`ÔáÀ¬Í”=4’2öBYi¸‹£¡×ˆmº±»®¼KÙª(Òݳý¸d'Tc/[6zoØ2^¾vïßD5³{“p:ÄÏÓpÊj_ŽÆ“ÚH.iˆ‰‘À ¦áðN~Q[ùp^„Ì¢–pgô*•k=¦wÆhãLøY:=½Ñó §ÏA©œ©©ò(bø:¼:ÁÿðCæqc#–]ÑIûA÷î2(wÁͽ*Ä;&Ãa å¦ÎJ…Ìc‡tc¤¼¾Ë'³Ê›‘¶¸f–Âm²;[‰?ÄVç'`£87b[G{Á)ã4ëŠm•¸àaáQå©s4¼V(.¯ÈöòÊÄ#ÌÏ׆®óHȪ…£a -?bàJ“`¶§»îõ>¥n-û5üƒOä¾py¸á½hæ -=©bë¯5
-Xš2FÌV2"ƈt.χ…tkšèüÐv£Ó:ozsj`33?U(ÈÕj+ì6|
i¡MU®>W’>ò3K¿ø¬©}9òs¬ÅìÆÕõ{ÃÁEÃε›¿˜ÅÇÿ"F36‚7ŠtžHžƒ¨–k¨
3á™îñÌ“ÛmPÞáœ{rÙÎÖEê´Ñæ´‚Yâô$UºæˆÁÉsˆÄ¸ä -n>X~# 6'®sɶ²k¬OéxÁíü¡Né.ÅÎ/yB²UZrÕØžÝI¦´>—´©½‚{ƒ4î#š -Ô´ïF{Q]0+t„O -endobj -1260 0 obj<</Type/Page/Parent 1099 0 R/Contents 1261 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 720 0 R>>endobj -1261 0 obj<</Filter/FlateDecode/Length 1815 >>stream -xWmO9þž_1ªZ5•`“MÒ¼ôˉpE¡©ÐIH•w×!.»ëtí%äßß3¶—lÒR•ªÇö¼<3óÌøG'¦>þÅ4ÐpLiÑéGXNfшFÓ >ð¿’´ä
å_1ÿºþ§3žDSŠû}ü.(¢aXåtÓi¯±;žíï¶ÖØ…¦Yûnk]Ð`ð>zßÚm¯±;?[ÁzÛkìNãhÒ¾ÛZcw6‹âönk]Ð0~[»Þùˆâ˜Kk<Ð"sôi‘vi7R–ô(+£tiºhrD‹ù?$ÊŒìJÒ§³“SJ*Q¦+Ju&é®[j€S]²Ìdv÷.¢Nê2ßÒFlÉêw‹ï>ÇÃh -ª*Ø&
1 -œP¦…¾Á‡&pJ4„÷¤M{®†,÷ŒèFÃ̵ÔëüÐ-¢J®uexœœe -«0¹™:)Á…0ê=O3”Hû™¤ç -¤èäúJ=œ+ŠPÎd
$ø[60 :WƒlöÒ+—†Â=F[EWšM™äîã ù‚m(×mâØ·ƒ@ƒÂ¢šÖ`<M¹óóü;õ-ÀQ¼ ùbÔ»|&.;cQ_º<2] -p'K‘è€mÜnh3‘\™2ÌQ¾îw½‘ë©)â—iir‰¦’ƒOÀƒõ=×ŒÇ âÖ‰6Êt%ô„S8Á{qDW\Æ™- -:ÑP», wŽ!Êõìn‹,Ž%ítìBØ=@ßµãªp¤šéRØ·áÁ$ÙtŽ²¡gfm¬¾(Ñß3&.íRõဩ®Ý}€ûG\9Kuß´ï@ÓÚºÁ9ÿí®‘áŽtNË\p6ùmÌ«‡“J ›"Êz† øPŽãkt6|ã‚Ò;ïÓŒ'?Nî‘Ÿ@(üsÌ?jU!OÃÇ~-«BÙȸ)n0¤¸Á%ZùF€¨€
&4ž×‘>lDŽ -©dUâH8“ÝpùÄ‘ìиÙýRDUñ€"roN»ñµŸ·XÃKR7Yò“#]7®‚ê˜î34*‰ãÛuÎ^X—êég0Ò_.¥Ì84m39[Ž¸´w‰ÏÂ9ë’ÀdÌ„fpÒKŸ_Ñ_Òì`4> Y<D0×/åiÏøOßG;Dc4!?¶|ѹJyæ`ÿRiV`öóˆe‚B|YcÞw¶ Ï–è…£]*a-øÖO°ª@cÃ#ÀþRǵv“áW”ö³>æŸÀñ¬ -›7B 1T#ƒŒA|ø3#÷¡gUÌâ8Ý…âˆPÐ-f=½1àJá èFôjݬ¿bVtái©ee›¤€‘øΨýgcuO]ºh<eõ
xÉVx¶oÁ¾,÷u²Ä£P¹c>×Þ.UZi£—ÖE›C^Ÿd;G1+n|ü>’š"oš,ÞwÏWy¬'ß[6¹ØÒ™ÊÜ´ß;ßoáxî5p<–ÅÃi4
i<Á2ëÞœ\~<a¾ó«îT§5'Kvú8Æ;»?Òñdà$þYŽ&£h2ž‚® b2bIg‹Î¿ÿÇöç>endstream -endobj -1262 0 obj<</Type/Page/Parent 1099 0 R/Contents 1263 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 725 0 R>>endobj -1263 0 obj<</Filter/FlateDecode/Length 1871 >>stream -x¥XÛrÛ8}÷Wô›4[6e],ÉyÙÊÅÞumìd"e2»¥ˆ„$ŒI@C–õ÷{ºAR“šš©Iʲ%€ÝÓ§O7ôûÅ®ñH³§g×Ñ5>á—!¿|ù×Åh8ŽF4M¢kÊh2ãwx—Òâbx3æ4œO¢ ¯ŽÇÍ;^…!Î&Ñ”&ó?‡Ÿ\ÓæâÝòbp?¡á–ö<Ïh™ˆãkZÆý¥£8תÐärÒ‰)è§åoxæ䑾-bg7fí]–jk}:º’²ÒTzMÅNÓÓ’:Ñ9}v©‰t‹.¿ÞÔ6 ¶ØW¤_u×æagâÏŸ_]Ó•€²LúÆÆi™è„¦ØµË"˜˜6Ö+xÃ7—?ûBÆÙŽ“ˆ–;
xŒ'u)9‹ž–O0L€{`¯/M¡Ö)l ±Ûn\¦Œ
Œ–rÑè¾ÌZ~I*-v®ÜîÃoÆ&þoo:¡ÅÊÒZð:ƒGL¦Dn;ç„l\òA&Mù(t -]A™-á»f Ue–‹Dçza›çµÈá2ÏL¬é³ŠŸiL«>#Í\ÈW?Iè'›H¡vݽ¹Š´ÂÒ7u’
¼ìáĪLÓൃ$ˆéHŽÛ«êíôôS1ñû©ÂŽ×<*QVˆ=ÐT‰N°‹¶AòW”!a¬”÷.6Ào«Š©x³ê‹ -òsYlsµ^£*¥tÄ\Åó¸šb®fÑ|ˆ¿yèƒ,¯FÓY•ÍºdÆ£¯£ßr<ð¨÷:FʪÎ{’±tëCŽø4‹´Šdm×°€’VË *0ÓšºÀyë—´kûeÐÎ|KE…)È÷dè Õ
Kª·M£h^ƒ™Œ)H8ŠÇXWiŸ\c‡IÈê×ó7¬PòAr°¿ÉÌ
ù£‡úúš2µ¢-q†`Œç›ªÑI+ÁðÜHÉ9šÌ&sCôã1¦}ÉÛÍu•·zl®–›Á¶¬6`Ïꆖ‚~1ú …žƒû?ß. ·`[à{V -“É©¯H‰¨úÂdƈ'¹=¿Õä[êӦؿðe¨cD, î©Yï>Þ-Ow¿~]Dw¿Þ[’K,µxÁYªs‰)…oLç”øþ°ˆ'Ú¦±ÿvË—R=qñÅ(>”Tðy¨r•ûk‡^|ùeùéÓÇ?8w+uApìŠÂ-n|ûͣá-~
oq—‡£hÑ7žÿB«ÞétB±A+:í’!žá‰1C‚ŸLÙ#yWæ1j} -Ä4$ѧ)«lN:ÀåÙ¼à.%=cë\‚i 7ô¬J¬[mu®pC~|‡²F«bÇýRII·¼®sܹp%õȶ‹^@”›Ç•µµÎl2ƃÀ*w(”‰^—¡$ᘺ-"Þç($°R±AË*p€šfUzšÒ
ùç¯ D[šž€/ä¶>£_ÜŽi:¹
ãüâíã»·ô9w¿aô§mì…äÃ)¾-˜éj6½ú3t™à{†ÙtnvÃvî–?_üZ(}endstream -endobj -1264 0 obj<</Type/Page/Parent 1099 0 R/Contents 1265 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 730 0 R>>endobj -1265 0 obj<</Filter/FlateDecode/Length 1973 >>stream -xÝX]oÛF}÷¯¸/…œB¢>-Ù}Y8qÜ56Nº•Ú €^F䚘œa9C+Æîþ÷=w†”(º‹EÛ§],~ÜÏsν£_/¦4Á¿)f4_R\\L¢ ®ðÇ”?~üþb¶ZEZ,®ñYÐüz~ü–Óúb~5‹®h1¿Šf¸»X.¢eóï¾Ý\Œï4Ò&eËëmoB›øò“–dRr{I;i%JdÚX§brÆä–RSQ"wu–)QY™].KÊÒZ;AÊY™§ýbjŠ…¦ÚJom”)2úÍæËÅ„FÓ9âÛ$—logÜžl±KHè„4ÿáÙRÆ*}¡Ã^8xŸ”Ëg™{ïù±ªÖeðRÀc)2iÉhoqÈîFÞ:»¿(6:õ¦’¤4‚)ɯŸ²Ûˆ6(K'Ÿ`%t&)LAÓ^nÛK®c"SQçnû†£Nh{9E{uÖL•Ø훨12[¢(ÐFudE{™—iS!ÝÞ ˜i'@T¶cS”*—d}#jË
«lo|Õôü’²8¦Q®¶H¸¤4'S•ç(Fœ×‰¹S½|·PJ°(-*…ºsiEž›½ -놌¦-ʆ@*¤/ܘö!‹<™Ô²ìœ¬x¯ëbSÕÖÉäÎûµÑJŠÔÉjØO¹—&GêðŸ{nJ
-uŸÏ!ý üvv5¡p¿%hsû(›¨Vœ{d>Ðxü-ÝNKZ Hhƒ•Õ³¬þõûœŒf‹èf¹:‰ó¦õã[’Z@å‚EëÅ".“º(åâY¨œð"È{#«Êè’öΕßLJÃ!òï–‘©²ñùÓþ=~:¢÷{"çÖzýóOž"Ë4°ñ€dµJShKêOZ}õØý¬ô|F{Œ.;ô:
Ü2Ss#¤Âz}îÜO×~¨ÐZP@䘽ÇO±6‘µ}¾G®q`>ý,‚zTqe¬I!8Äb¡VCúpC±èÑhåð.Hô$"BC£Á³ -ÿ¦tœìÞñx•«£ÕwwäÏÞO>1-À+dRÿî®e;º½Æ×Au½’wº‚ƒYˆšÝ«’gÀo{íoÖ -÷™Òl¨£¼ÍjÂ;RØN{Ä¢t5ÔðU¾gê -5nN@mÿ<傆CùQp;ôûçu8[xmé°›´TàèºÅ|l–‘†æþtËÏwìwÐäcþß z“ÐÿÁ»=ùÓ,ÍgÑjµ¢ùdŽßüY‚ -endobj -1266 0 obj<</Type/Page/Parent 1099 0 R/Contents 1267 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 747 0 R>>endobj -1267 0 obj<</Filter/FlateDecode/Length 2259 >>stream -xXMsÛF½ëWt)Ñ) ü?”Ë–,ÅŽªV¶×dÖåZîa -gÇ=Üždu0Æ©áh,Z
G²*O¼úz~Ò}sAý>Í—ŒÉx:¡y*ôhžtÞ¹
%n½¥*Ó´4¹ö´,]!ïæ4Óåƒ.ÉXú~öy6ÿéîãû÷óï‹ÙÖWº««ÂÙÅâ‡èªÜ«ù¯'=:ï¡ð<íü‘CÎÊeŸ\yï+U<+›’×uYïñÊ“ò´u5¥ZG—¨õºtëÒ¨ -¸’·•äM¥#úŒ“çdµNI¥…±ÆW%nyÐTšUVyj±{„ TÖûÙª¨¹I†9s$ $¾“
|XÑ'cS·ñtù("Ú-Œ(äl`A˜© ›Zi[í~ròúæȬEg±ãʹÜïÐ~Ñ<Ó¥&`¨ÔؼG¹K€C -««Lp
–PZÂä²ñpcòõ
™%Ãut³€e,°,‚?°?Cœ -S–p›ÕJ⊾ã3Ý7I“Pç}ÐÊpÎAt,£…õ6ášå]>Àæ°aÜèÐ~й[ˆ‹Ã³€Ôü¾
Ñ`aPÉC5„/ñ:§Œ=ò ÎuÑí’¼;##"Ÿ`ÞžQœsª’ -ü™ŽqK+Tofñ}©c<9ì˜ãýßÀ}_‚ìnù"”5&"E¶.b ±ãöR3g¤t *¢·¨I¡ñxF»<ù=Î?£$7É=30)¾ö’}OkVS¸$¡"ÙÝ¡`ÎhGê³z½v¥ß[Ù‘RöõsRþhç!bãÖä
²ù·*K³$m$b¨ówo‘÷¿”Ð*kq^ÙÉ‚§C·ÌvÔ
J-wÃ7RVž·©³§èç˜"÷ZªØÕUÐïœõƒ²@‡Ýk ]šVE£¼Ä̱Ũq¸'ÈD¡ÖÞƒ2Y†³Ò°(9Hë\+w±P¥Ü±o<VµIy£Ý>ë-®òÚz˜Wh Å—ŠæƒËk[iÔÐ3îG -´¸W½;þkLà‹OcÄ
þ”o{Á¬Ë88 -Wê*|›Ž_©ðÃËó
Fm#²á¾fr×Ω+™'žbÕjϳ²Ï¡ÃGwˆW^ -©è¿-^áT[°bèè=Šož2X±ŠóxY¼Š°× -H>£1 -é\i¸Çúu}G-Üô‘¶‰K!½aO‹Nƒd‚¶×ã81q9”>ººt=æ?˜¬ 4Ë[¼ú^žäÁrGNèÛÈšeµ¥ÓÛÓ‚Oærƒ¾ÑŸÂZÄ¿ß{”3G‰ÎÞžÙ -^ó/`ò,Ú.xˆxÆ“.xÚ4|ýá4š^ipÉ×:³«»×Wô¡t¿2ÕÜ4S¼|‘˜èããco:¤óÉ@æ—>úl$טð¡C:gf+i¤¥Yæ/‰“ñ4|i˜LXÎOó“œüäø:Üendstream -endobj -1268 0 obj<</Type/Page/Parent 1099 0 R/Contents 1269 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 752 0 R>>endobj -1269 0 obj<</Filter/FlateDecode/Length 2169 >>stream -x•XÑrÛ¸}÷W܇ÎTéÈ´$Û’¼í´cgÔ3µãµÔfô‘ ˆ˜$ -ÿ.«xHW@Õí¿ÖZ>ÚZTŒi¥÷ÈÄ3Jü£qĈ -62ÈðŠà¹…ux€™õ‚Ú¼îŒn‚”Hþ©CÒ'©³}ï¼™ISYÆ
ˆ×ÐÖ "xœ5S9H%kø÷dW¥5jÛ:±å>ÓâŒÚ©Tøòds¿Àja¬09wŽxì¹€‚¶ˆ´Ô¨‰ÔóÑx,¡ÛÒêññA$a *_Àý¹
B;ƒ¦‚ó°Qk¥A/ñ¦z$Ûú×CïêÅŒvL'ì×ቈPj¬ÞK38}3zZÇ'Þl4rG¯8Z'ê‰&o/Ù`T -±3Ûz´dùv”:([ ÊÔ -Êh‘¥Ìv#¿`ˆ•£]1<3ƒùäÊà5]óà; -’¸µI°ç;Í‘ý#|1»hÅ¡q
ˆ8x<;%·@¢6ø³ºùÏý‹/9®×Ô9å4ñc2>9Ý÷ÖoXãT?ËÖг÷Kß²Ç\*8q2„yÁû-2µ~ó;
ºýd‹aÞÏÿŒ†/ -endobj -1270 0 obj<</Type/Page/Parent 1099 0 R/Contents 1271 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj -1271 0 obj<</Filter/FlateDecode/Length 1905 >>stream -xXkoÛÊýî_1uQÔlÚzXEaÇök;”¦ôeE.ÍI®.—Œ¢ß3³\J¦Ý¦m‚8ó<ç̬;Ðþh:¤Ñ„ââè"º ËÑ -M6•Ï
^ù££œßú°üvtAgƒQ4„×WfSG|õ…Ë£ˆø®œ
'јŸì‡Û²Ôq
oVœ >–ËòWeBN«*ÎPj+<c®š”LMø’Ú_ùR¬JZkd ’Ó^€x.$æŸÕ?tÜÔ:¡õNüúREt•ÖÚ{9=¸N‰q]¤ie‹wb}“ýøçÙ;]&mW¸!¿èú¾LmhI¨ î|×âá;¾;â¿mHfÑ#)WÛ÷¹ãÉ„_÷¥”Bn*›š\»ˆ¦Œµ¬´ÛØÒáK׌÷Â(•¶&”¤V¦¤¢‰³žÓ¢{Œ w‚®%Ž¯¦œÿ£Eª£‡/‹%’t&ÑÃÁ -ÒU¯åBÁIt1¹lûÎC‹ÿQª·ècÁŒ“éV¨Ñ4tŒ'Ö@^6äX¾~È.Oƒˆ$GÊÅšñÂâJ‰^«“à`ôxoœkdLo3
¨2Â0ðÒ¾°· -<–-@°ÆÈròeqûù5N$²e¾{mµÝ5¤m¨0*A\g¥‰U+Î1Ó½ÝÎÕâ¯WŸo{¾¤a|í 8!•ÀúÎÀÍÓÃÕýcßw»ïéöóßߤ屌s|5G’ßèô]UÆkäcñp-CrlUyW"F»]ÅuÃ6Xó`зÕqxÀ> #s-é Q¢˜¯ºîiQp(؆äQßfä^‰ZX‹R •[ñ\Y -…n!:xcê›5n¿BœêùlUtîÕ‰’éŸzš‰?4#ñËʉR€W_^ÆQ\ÃeÐךÒWX¢WÂD`dõ]?[‹Ý1ÑŠ#t6¢bb»Ì6y‚&ºX39¡¶R8µÔ±ÒÏð)w4yìü~°æYp}ÿ´-™¡nD§2È
1a)ëfP&¿rŠ6ä6fzó£Ráv,„'Z]õy?7ÆeÝ4Á+½â¶ÃEl=\ûB åéŠ%ÙÑÖøeo/üšÛñÑßÀLë$ õÑnibQ~¥S `I:¸·„b#}¨¢¨ªH -W¹¤ãŽE–Ë€oµ½—YfiT4øð\»h5ës$@Î:½ý®r“p™yka#|ðàßž€œ¬%ÝóË,¤”'‹ -e»¬NøÛñ&hÒñê½”<îe9Vkì>©^éùõ}à¬#šÏÿÎaµ)0þ¤¥>ŠPø‚ÜZ=ˆ;uXOh™Dž]=§Ò п€wšpŒ=µÂ‘©ÆiÔÅŸO‹åËÕêDN˜=*çÅm'óîN©2ÏYý—Õ~© ¸«@‡‡CÌí XíÔj‰´08Åá/Ñ©)à€G®ß'¸ãîözÁÊ â…kç´ßExíoEDå[µ;À¨ -Õj2HÕi®]Mö›i»›Œ°•úÝDöÓáÞOº¹†€¶ªàš|a¼jÏ{œÑùݤÚóËh6DMgÑØ»x|ZÞþÎ?~¹pÒêήÙll%d<P`P]ÇiŽç(>=.Û”f·é NF4ÁÿÓ‰l[‹«‡ë+Ží¸H76nx_’Ù)ýLðËوΦCYLÿ¿
}<ÃáÌï¶Ó9[¾]ýíè_Š{ endstream -endobj -1272 0 obj<</Type/Page/Parent 1099 0 R/Contents 1273 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1273 0 obj<</Filter/FlateDecode/Length 1483 >>stream -x¥WkoÛFüî_±
`Ä$F¢=ôCœ6ÔMmÁ‘<Š“<…wãßÙ;R”)·)Ú$ò»³3³«ÏgSšàoJËfŠ‹³I0¡§ËI° ùj‰Ï!þW’R÷b¶^Oz1]†¿˜ONŸ_mΞ¼œÓtJ›—/VKÚ$„‹'ÚÄW2Õ¸1Q&®QåŽ2ÝÕë2U»ï*- -~±¯tªriF¤,)Cµ‘ióZ#¥Ûö»*×(§›
Ź’¥5—›OgOgAˆ»/T±Ïed3i÷˜ ].‚9¯ó§µgà+èFÚwFV?I{]¦`}®¥ÁIšÃ¢ê‹¬øÛNºã9Èê±9ÄN¹Ž…UºègÝH,ñÆA„f¯K„–hi¨Ô–2ñ…Ð.„aä^TÂÊÓƒ)U2OF¤ËüÎÅÔFéñe¢’m2ÀWHQ¬vp»Ï»C›°i[©ØÊ„s‹$—C•'Ç'ª’±ÕÕÝPöå8‚òíó_^é.éÍë–#j2gL -Àöò™¿xBk/Íq8÷!ç®${a3úž¶ø×ÁàØÝe2¾ñòíöüÝv[@Ðí~ø@z¬®
j“ÈTÔ¹Ô2'õÞ¥O|íù?°=lD¥($XÍïŒ("áå¶Ý2ÅùÝ!®ªtënÎù€Q}QñPg¸'® ~ÐZÔV(G,rÜyé¼gц×íè:¥;];IÔά@BÄ€ð_&]ØÈ-ÿXÔÆ~p³·Òuš$³—±“®¶GEˆ*ÐFŠ(—Žfa„“)Ãe°š9G{ŸßÆ9…QïÖS;dÃ`WÕðÎc ԅ2vö‹BSNrX•-§¼µ
¢? Ãà#i)KÈmÍzüï/bèæ×
']y×$û£KÙÅÇöNÌ™àƒgM§§ñ!çu—s««°×¬ÿ¿è -ÛZ|µ\œËç‘/óà"«@2+«€Þºªg‚ݹAòÈ<U_‘ŠáF ,=*åÐWqæïituk42ÏG®i)‹f õNˆÆ5x•ÿMmE:³¸º–¬ræ_u´ÏîÔÍ÷µµ¼Ï;ZÇÜŽ†,-ô/×=Nì½ë¨Wµ¥F(ûËŽù€ÄˆÆã?sçäsêLÿàgÐ[Õ›3ä¾åBõ¾uþÊHÐeåYÕO#°Zö"@Vr¤w¢hTžSR[…9® -”©$‘åörØJo0
´½]€/bz®1ÀŽ]ÉE-r0‘9†%2xË¡‰nØáÈ]ÁQ¾°
¶OÅØ:M!ëÔwQ†Ú†:ÈŽÍ.HÜË3Æa2âÙÌ÷X7mX.ÊOu¹ÖE®`@qpwo‘®9¸Ú:Ç=È7ñÌƽ1ñ߹Ɵ0~fr×’;N¹"fét2~r7åÈÜ:Æã8f—0H™½ðÈwà«/ûþ?uÀñ$X1ÿzM/œ.?–‡Õ(O±m¶v
hîеï7<©Æ™Œoa„
—µc&µÔtó,l
³ÚPy¸;,QD c[ÉU;RM§‹ œÏi±XášD\`z¼zN¯+ý Š~ÐqÍSýa¦O±t²šÑxâ·FrѶŒû]‚®K̶µ›ŸÌ3zÛªÞÓ›öwÇ;X ßâ~|0óå<X.Vø5ƒCW~ôãæì·³¿ -endobj -1274 0 obj<</Type/Page/Parent 1099 0 R/Contents 1275 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1275 0 obj<</Filter/FlateDecode/Length 1925 >>stream -xXïoÛFýî¿b /r -Ì_.—»ˆ×rÙD´ürÉõÕªÒ€oW^ÿÞ"ÃbjÔƒ©7§²€òãµ³i•o3úÕ¶ƒà’h6XÆO¾þmSÚ•*?‘m‚d6jŠv_5å -ïü@{í$¿µÀò{#jò¶×µ7ÁàãÁk;’v:t†ãWÊÔ¿¥1A•Tê¸iø/ •·ÀÿPõžìZríÐIýͺ‰DèÖBîb mhS‡Q{®b®sí3z»¦½mÑ7¾YÒõÚº\ƒ^Ž|ôò8KS„ƒ -{FJè±Ën¯ïÀK°¦Ð(ßU´s&àüÑ=G[p˜?’‚0jýX¼¯%ë~œž¶|kj=¡
¾³tƒ-é^Õº¤?ð§÷;ëŠHT¯KWŽøˆÂÓ,"¨Ze˜H~:(‚Arà(_ %_q* pVUL·#(2œÆù¿ÿyB«6PaésmÃg†Úî$fn«¦EO9Q§WÖ)p -ýHS8ˈÀÿüÿ5c\Qòª¿)utkrg½]ê{úƒ#M$ -uãû—™Ò8á mún:I‡ ˆ„§™£é hE+HmXa"! 7¹F5ÙluFù¬ŠTEê"Ô:bPcxÖX–}K&”qee‰ÂýÆò3¡¦€ šÌÜý õA«‚súÒúá¼>ûªïͺË]÷ªZ±2îÍx$‰.O1e¢ÍxÑ¥GH_†G?¢2¬´r8p -»µi°Ø°jÂòÉDD,cpZ¼.:P‡M{nN’þîc¥ác|+Ò¾nËrO_UiŠèNÑÄŽ”Dz
oJ‘$>^àåþXë·5°ÙÀ -òΣÊBÝá‡Úùw†§ˆŽj"`‡·eÁ¾H`× §ú‘—H¬7O`%`—מ|£s³6¨´cä(6¯Qa;°T` -Ãt -ÀˆM×÷¬è:Øã¾^œ™ïTŸk£þ8íbB¦…K|;ŽJUZû€Ü_v}Lö姟ßüúùÝû›ëwŸo¯o~z{÷f¹ìVÆryÓ:\›Â¿ãÝw¹¼—Üwp|ç“ÎéÌìÓ¯ºŸÌ.㳫g4ŸÏ³9'ýáúöÕ5ÛÙ/|µymó¶ÂÙŠï®ñ°ù¥|0½<EÆJðMim6“7é-L‘ks¹ñ¾äŸM!NCÿên:Ùt‰ŠÙ½¸¼È.çW¹«Çz³8ùçɺ³íendstream -endobj -1276 0 obj<</Type/Page/Parent 1099 0 R/Contents 1277 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1277 0 obj<</Filter/FlateDecode/Length 2012 >>stream -xX]oÛF|÷¯8(ê -‚y/"yÌÝQŠþ}g÷H‰¢óÐN…¼Ý™Ýó·‹‘â÷HLÇâz"âüb
Åõ|Ž?ofSü9Æ—Ub}ñ~qqõáFŒFb±¦g'³©X$χb_L%ö:ËÄZ‰…P…·‡¾X+”ŒSQ9eû¬ų5k©géÓH<¯„O•ˆMáñŠ£'|ªØªƒX^fz«²ƒðF¬Ô»Å׋ÁPF×ѱ/ã»århfï–Ë2œŠï(P!sµ|ק“‘¨LÕQèÐV|ÎŽ¢[õÒV%œeDg<‰n(Χ߾kÏIZµÑe •hoìg~òê䆥•ÛëýßOO¿ÓI'Ø.Å -¬‹²†œ„'œ—Ö‹\UÔ&áœêv¹çærKI±’ñ¶*)CÊ‹IRR°ÈJ%*Y¾ë²¸ Q±B¹Bb]×À™´*7»†ŽÌÄ2ƒö¬’ÉÀ_ª“Br°‘säå» •‡ûEÍŽ¶djEžØì‰zSü¨WÙë‹^¡|jLBßžÀë¡ìDôpÞÆÊÜõ Ú,QÖq…tätâ:”>ÌÇA»NI‹æ£.¤ˆÔ?;=¿þ)JéÜÞØd£=©vB´‘ZK9g ‘º´?Ƈ$—7§à -2³¸¬+ Ï*æ·"Î4:ýüíÛ·oÇ©ŠY›oP¢A¶„…€'§”è!”IŸôH™±Õ+ˆU®ÌŽ€lù -@¡xVp.uáñ¼CªÀp ^ñý‰C.e¤
•¨âKaü¸šq¼¢´ÔŠÕ¤ ŽV*40@½ Ñ©ƒp>wÒÛbúó¸Øô¡OT€ò(#:Ž6N•5µbmMþ6ó°´Þò!à|MíUSðÄgĽÜÁ³ä -E¶H86ô\/_w'VïTÄ…w]jª,!‘ Ú^z×ëäŒy¶£,lôvݘÇw!óµ*3Ç^,Ô¾ M,õN4Ò,s¨2¬¦Ç™ˆ.Dç5= -ú4ÿBNät©WJ‚¦ÀŽ‰G| w_–™®gÁƒô2,¤†z+Ìi©íÔÜ{7ÚfŸN‹íß ->âVP/¶p°Øž
#àíT¶&Ìë›ð
}ØeM{7kËʲÄæËk ùN¸ºà -endobj -1278 0 obj<</Type/Page/Parent 1099 0 R/Contents 1279 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1279 0 obj<</Filter/FlateDecode/Length 1736 >>stream -x}WïoÛ6ýž¿â``[ÄŒíøg€~H›°8Yã¡æ! %:æ,‘ªHÅñ¿w¤äjZ׶\›âݽ÷îÝùëÙø;¤Ùˆ.§”äg1 É`(f4žÏð~„W©h¾bò½/†ƒ©¸ì~ñ~uvñiLÃ!¶4‰ÅhDÓùDL¦sZ¥„Hƒ’7fû$£á@VÏ‹õI“±^'ŠüNzZ®è‹-÷ÎK¯!¯²ÌQ^©=iG©=˜ÌÊT›g’T”v«3¤\ÚœäÛÕßgê/ÅA߸Ì(Óf/è°S~§JDÁø'_É,;âE‰têœlÙ:¥ -fÿOptN0¤D!_kBdI¹ôž3¶´QÂJålö¢Ò¿D“Àh*Æ\r„wt‚Wnù'ó¤T?+çQN‰çkRe®+‡S[[™•™/à -¥—¹JÏ;¶jð -Ü9¢ù|xžÙk„Ðh_ÿ¢Lè#cË<¨½T_+]â¦Í±“ Ø/)É”,û^½úo¡¢ÆÀIGb“¦ƒsh›çæ`‰Ò&É
§•\…\¹×€nxß4ïS”º{:ɹ©‚Ñ D?å•óO¬°…àú劫7×+p~²ç–1©ô¶<6AÏ›sw×ËXÈŧEmRýÚ¥ú£…˜_ÃŽÄ\ŒÄTÐm`4¡yƒ|ßoׂc[ Ë-ÃÔ[çmAйB%z{^e•ô;T£ã/3½Gu€«ÌlýØpeî—¦¨1ÄÀIt+ìh)±U–6‘âí|a. C:Ì9UþKkÁó$òŠÍþx÷¾n`o™e‡e…"_|× ‹¹«]U¶ñßQi óàÚ<ÚT
ôLÐãN–ÏC4rŠýA)C_“à‘0ƒHŤ¦q8˜`¶Lq÷¬¡ñÁz~P<DIpõ%i¼/ñìªÄÀÏ
ëþÃîp*Ó ;ê- -µ~ËúßIÌâɬ2 <ƒ¢ Œž5þü´ÄëwÁ]Ô‹Ñi0ò`))ê¹)z;aýw¸êñeÁeú‘¶õš5fd®ÄÃÍcô¶-WÔÊ‚<eüà†^ð¢ðÌrÕ ü;¢Ð]ô±®Œ£a̸eb§ -¼^×ï„je´¦ÇÿàôƒZNWXà²;ðÈÃ9˜7,¯È¶‚{cÔå6Öxa|†Òrt'PôèeééN™Š.èF¹=[›9>´÷÷qéµøx×AùÿÙ=ÕÓ£/^AÍ;«Ñºi)™ìÝÖ±(&ø7¹;ácy3Êõªº›@„ˆw¨na©¬L\ -ë%,žaՌƅ/ -¥½cZ´Fì9»þFn¢HSÛI'ÈÌë\]°%b, É0]t4±°þ¡¢°†Ÿ†+1*¬oEí£±êÖnCaÉäXíU˜¡Ùê¬qÄxoÜà[èØô|†_Ö^•N“ëzQ&Hc%õ¥äk-Ð2Ýã8öô”Zå°f—Ò¸-\蔇²kª°µò"Ìü·6ƒÿ|é7L]Nš‘‚µtsw}»|úp¿\}¾ÿ•WNºj¯ -76—Hñ§h³:3üŒ -«ùÏôÈk8zñ©™^£‘
†ÐÄBâò`ÓÌà}3¹îêaŸœ7so<ó9ÿÈšŠé"¬/×wï¯y’þ²èÆ&ïdaàgûCl<ƒù%õg#üKßÔS˜ómýÀ¹5ΗU–Ú+zTÞó|F¿|¶2ç·ÁÔ%t_<žÅ¿óÂ¥óKþèãêì·³ -endobj -1280 0 obj<</Type/Page/Parent 1099 0 R/Contents 1281 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F6 9 0 R/F8 11 0 R>>/XObject<<>>>>>>endobj -1281 0 obj<</Filter/FlateDecode/Length 1775 >>stream -xW]OÜH|çW´"EÙH¬a² N‚@î¸; Ç¡“öeÖ㠶Ǚ³ñýú«žñc8]Äëéîêªêö÷íãoFGs:XPRîœÅ;{_i6£8£ù<šïÏhqü)ú´8¦8¥ýhŸâdçÊ’¨kY¥êm„%mÔƒªDQ´$—k#SZ·ô»Î+úbijëŒ ‘Ë%-E¹¸*JUJ8LUIѤx)—FR¦ÍÇøÛÎtŸ¦³ƒhŽØ“Z['rmÄwö¾,º,§]šÓùQt|ཾ‰/è$<¶-fB1ââ„’ÞëR¨Š>ëÊ]Ò¼óY k+ÉÈB8äá4)‡_™4ü¿®$ÙZ&*S •Ï¦\×*+§á”®8ä e—G‰¨¨©Ri™Š–Wg”úø½ÊÃRm”öñîU•ê¥ë˜–Ò<!‰ƒhFÇêÂcû$ðpcGA]Ö¢Rý²kaQ‹®øà'ÔEò‡“•E®–«â^üyzMW¢ˆ1GŒÚh§]D4ÈA1Ti“ÈtîJ%F[¹iÎF´àCF©BËÕºqªzð‘‹/£T8ÁIF(SÒùÍÕéåuä~8¦ -(ÂÊŒO¾@KÛAd²-\D^ö¶kº™û^ùÀbjr‰¡¿Ì
‡À)蔵Ï]$•6}=@F9% -õO`“ª ·2üÏÂcT™P*ÁY« W#¿7pï» -¾.d #A–žd¦©<²à^EHBVOÊèªÄQ"}¢ -®Ï, _ŠIÌõrrx—`{ʾ_Öœ(f_[ã^7A± øu`àoŸOV«ûËëëxµú…Þ&p}Cï—žÖ·Z»÷«Uøq0_X6ê¡ëÑÖ,¹%ˆÇšïÓð\-àê5³%¢ŸÎuœ©Lrý"Ó7òBOÔ“ôóŴКN‹žôn`-v „¾2P®P0o3LQ~mÛ"vÿÐ&MŠ…æîŽx»%7îw+’•IÓo?ƒV€«¢[(†(îR?˜‡›‡—XØ|°q¼œF>K:çÌ1àFé1G–Ÿïn/㿻 \;+x{<ca›e.€(Æ!†{â K•†Šß«AÌŒ$húÝß,) -mã“÷vW´Š{
³Žg¦ë›xÄ3΢Àó“ˆÇlÖ Œ~6öAB¯à²xðY>ïþy3{X)» -ÇÈÆhêK®€<$y*Ácè÷Õž&Øìöøö©pïð*’ú}ÅÏlÕ6P
KaÐ2¿k¼ø„b*úq8eŠøÀ£×Wás²Á‡ÔÞ£¾ÝX8úÞ—ãnlÍGÑþñ>cçÑbñ‰×sÚÙ)v\ý
DÅæš4¼‹ô_pÓí+Ó£9¾vÓÉlGóˆ?1¾ö¤Kìòl8ü-u‚]ÖùïðýVc -endobj -1282 0 obj<</Type/Page/Parent 1099 0 R/Contents 1283 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R>>/XObject<<>>>>>>endobj -1283 0 obj<</Filter/FlateDecode/Length 709 >>stream -xmT]Oã0|ï¯Ø·+¤M)Màò!ñp…£9¡“xq’Mkˆã`;ôúïoì´GÕ;5•{wggvìALcübJ&t>£B
Æј.â$Jiš&xŸào˜ªÁ<Œî§Ç”UH™¥ e%!|<¦¬ŠÂIÝ Î²¡µ°ÈúèØ:.IZjÙ(éüÇFºµlÈ™j‰5KºÂ—p!óBü”5¯Ø¾žD'ÙÛ`Lg“Y4Ü0CÖR¨\c¡ -ÑPÙ©6@½È¦ÔK‹Œ–×ßI6N“Uy+¬Ý”Ti£„»"˼ŒÏ£‰¼[Ü<ÿzÊ‘ûí| rûpOÏWÑ”4j»|d}‡£vвա†…»ö•4µPéÐë²£Q¶†t•(zVx‡¸UWSÞ9½F;Ê™XXYoý^I %U[³âP`j¸e!Âp°Ù‹g·˜‹²ÇêîEò,_´y_ݵö”öë—§äIî¿!¦³.”·aoÉæ“õíQ+Œ“…l…c¨FâˆêVË–‹Îø©õ]õÃ×B7Î身|{ˆ ƒˆ`š`œ¹A¼1\8(ÌJ®:Ãåžá~œ×µÒ˜#Ke¿‘uÝ;éqqGOF*Í]s7û&½Ÿno`IzpÞÑ%[iD^sß0‹b}Xñˆkh¯1,Û0ÍEñÞµÿÅ™œ]…Cë£ 2¬·õ?N;+˜ NäÂ2Y}ÐíEÙ¬Žšþ;?xéK%}ÃK¨Ú—/´jA)D…ÃíOµá•´ÎlÃF÷éîæˆg¸UÒsŠ/ãþH£¿ù5d×oä(:ïÝà(ßÎÙ>á,™à¢)‡ñ$J£ID˜Lroí‡X]¸ƒì-Ù9Ðñ}>k¡üëO-¥ÂÕb}ái2’YŠ«EÓ¿t—
~þ -endobj -1284 0 obj<</Type/Page/Parent 1099 0 R/Contents 1285 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 755 0 R>>endobj -1285 0 obj<</Filter/FlateDecode/Length 1526 >>stream -xWMoÛ8½ûW°—°Ûqm§@Qä£ÙöÐ6[Èm´DÛÜH¢BRuýï÷
IÙ²’]A‚XrfÞ¼y3~êhˆŸÍÆt1¥´è
“!žðŸÿùúgot1O&ôz6O†TÐxò:™ÇO9-Øž^Oçɘ&óþã×HZû£Ëi2}éÅ|„K:®—½ó»Ki¹FLÓÙœ–™OÒ³›¨œ44ºHèƒÞ‘Ót•:–]‹ô±®èVB•¯–ÿô†4OpüìF—Îè<ÇAUÂò¾62ßÓB+A‡—Yë(Ç0š…$†kàt”н‘F>ÕÊ*'é«™*7ìíünB£Q<2ž!e¹–k
öº¦A¨²– -*5)¾çd;ªà{F|ÞT@¯Q甕6ÎÁ•è -ñS¨œe&¡Û «ŒB'_§Ð¡e«G¸œVik™6-ei -Ô$¦›ò-íå"§ž‹·D‹ÓÁ¯="'x`”[Êæ¿ o[äi„yAßJéü…?Èn™h"·Ê°g ‘>kì~1ÀGl¸‰+ÊÐD¥n‰;nÛiöG™a²q}L6r§XÀÑ#ð–jÝ,(r¦SÔ·tÿ»`_óSÿ©¹Zó8zaø7í€\¹ -ïB‰^X Þ#‚=²ïlÏ•ù -XÀ<åNÊt\*Ê}x†µ*‹¥‹ÐQvÑŒ}ZÅ
ã“J¶zí:Þoƒ)^:˜Ma3ñ›6ân‹Gì¼`ì舵åý©áÏ?”‰G;;¿›ôËqXÐo~÷Ek^óbò;_"&³I2›Îñ5²1Ÿrï—½¿zÿÖLÓendstream -endobj -1286 0 obj<</Type/Page/Parent 1099 0 R/Contents 1287 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>>>endobj -1287 0 obj<</Filter/FlateDecode/Length 1691 >>stream -xWËnÛH¼û+ØCÀ¢%Y/çø#>ÄÉÂZø2"GcrFጬ(_¿U3¤LÓvv±ŒHâL?ª««›?ÒÇ¿L‡r<‘´<è'}ÏúÉPF³)>ñWiY†£“q2zéÁñxôüÆÙüàèòD#™/ád2ÇLà ß—yúvpœ'ƒD>ÙdV;QòÍV÷Î+Ÿ[#ËÜd’{‡g¥Ê¤ÖøÊ…®>¼›‡å‘Ñro8…å·§r=—mËnù•nÜœ~>;ÅÊËVVRØT²qºoe¡EmpÁø<U^g²RŽ¿‡H
Ñ{_zH¯qÉÒV¼$råcN~•;Yìð%7wðxýÙÕ—1ªÔòc£«]¸Eëw•Ý¬ãƒ`äAJ;wʹM °BZ¥+±Ëe‰Ï¹Á“ÜËFz•Þ˲²exL_9Ÿ2ïgŠØ©2øßmFaï¬éx®4l8ï™[1Ö‹]k#N§›*÷;YÙæÖ¯‚¿vhœ:]è”ÀÞ¾¹øò>”ñÙŹ¤+ë´¹}×ñûB°*IÄ -@5Îë†ÝS[b(£ãüÉÝ -íLÖ·’
èÓá$bJ4¯¨I¡t°xI]G±•œö[‚‚ÿ kê*4¿ÒÊ!~Úq¼‡ÕƒÊµÈ(ÄrÙ‰°¦J½OMI0•Òeœ߃¢_¢EÉÑ]P‹‡<ÕQQ°(‚²mº>:^ÙÊh[ó[¢›ÙtjªŽ°¼$‘\7TÌ-ÉÜÕlA u—¿g4˜å{ø‰fX7W-M :Žs7H5R -Z©ÁþóAíÊ]a.&>[$rC>í‚5-ÐzÞñ·¢¬, X$nEfÄ^£öíŸlí¦È@yƒBy¬öý@eAò›¬ãÇ¢®Užé`¦•WhÐ’4C϶¾ÜtÙÜ‚œ3ÚÁ -endobj -1288 0 obj<</Type/Page/Parent 1099 0 R/Contents 1289 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1289 0 obj<</Filter/FlateDecode/Length 786 >>stream -xTËnÛH¼ë+؃`E“’"ɇ °óÀú¬Èa‘ÈlŠ“3ôÌÐZþýV)Å–}Zâkº«»ª÷“ŒRü2ZÍh¾¤¼™¤IJo.3\ë®3üS‹4™\o&ŸRº¤M ¨å&Mi“Ÿïûµs¶ké-yÕlÕ«ÍÏIJÓ,MÖ0</l£´¡FùÀ6ƾlPÛ5={±¸ø´ ,bNgKL¨˜þÙÕv«êSÏyÐÖ-ãwßl“Üšòð~ýá}B›J{ÿÅ>ÚàYS÷ ¼Ó1#A4ªaº»ú|}õG–Ò›C ÝëPE×ï7_îȳ{`7ÂÙXjÝÖÜ"<Á"˜(úÂáúæï;dŠ¡RAV&P8j2Ýò1A.hÛScQ#8¬aðÉ+mXÒ`j•Cú"îÙsϨ´.DÞX wD?!;j°¥}¥óJ()ꌾïøH"¦ÌG- - õ¹uºQ®§CÁß[œk¨5”ó’²ÅXÎy–à±8ÏæÉ›$Kè/»§ÂÒ
@ÛZç*W&´UÞïC×üîyW¬äÛèó´9ŠÎž×A?@³›@•ÔÊT.DÎ}ņQVÊ!ðNIJ1>Ô ÝUp$!m=Vè#ì{ê Á™G ¥uÅ #ðØ°Oy2Å£Ž”‹CØØ·w§-q°Óf÷‚8Ó±e`#Ñ
£æÕ8¤=[Š_
Mz’¦&`HA¤–Y
üoø͉ï;ý j6ÁÿI:PÓù€¾"d
h6¹ëÛ€Vµ"£Ôn¯Ý3ͤ[·ï½ê…¬g8·Ê|䈡.m"Ò-Fv,ˆL/Øá
ÂÇÃ.èZŒ³ïMž7Ê•9ék1÷~lèà”ñu!‰ßtð\—â40Š9!„Êsn½–uñzDŽ®%(ÊV°]@ÃBw¨‰´C̵où$ut‡õ¸Ý²%¶ðzN³¥ìÕó8tëìO,7ÌRÞ5ÐXÉžÄéÁ|ºšaýþŸZ¬Éj¹Æ*‡ûz-¨7“¯“ÿ -endobj -1290 0 obj<</Type/Page/Parent 1099 0 R/Contents 1291 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 768 0 R>>endobj -1291 0 obj<</Filter/FlateDecode/Length 2061 >>stream -x¥XÛrÛF}×Wté%T ¼ˆÔVíƒÖŠU9±b1ñ>ðeɉ -•ª’ÊæÚÂí‡TfZ!ÃNoa éæ<lm–ÙûâqÒG|#w4áf@Å>–º(Fbëu3»
h_Uå?®¯‡Cd±9KUY·»~½_ -çHO!_ç•)å`„Ã>Q¥Ž›_Ÿ²þÿ¹8š,£ø¶KÕ϶Қ×× -íI¦>~÷I†âc½ÉŒGî^om“4`¶A©íj“ârÚ‘;âéè+Ó]š›Âx@‚C{“ìqè…NÅRét@AªàÝ’VŽ›£Îsí† •ñD0ÀÌÐ@`u°¤Ò¶“— -Îà /‚ -ä-±F2ï~{¢ÊiÍ´ÕnƳ 4|:b&Mîë²´® -´x†—àéF%Ï8]t´‹ši|ÒvÝhÄò1âáÛÏ8 :ß_¥›·ÛñÜràÐ "¶y‰§—(iëd[–5ŸÃXÁ9”'~Ë2e˜"ÉjžŠ‘í¯›ÿ†»ª®,
dKÖ‚a€Æz :î½MÈ©,gHûyÊXÇE÷ƒ½š4 -endobj -1292 0 obj<</Type/Page/Parent 1099 0 R/Contents 1293 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 777 0 R>>endobj -1293 0 obj<</Filter/FlateDecode/Length 1979 >>stream -x•X]sÚF}÷¯¸™1™1ܧR§nm×5xÒÎð²Hl,iUíÊ„ßsw%ÄIÚ8`ÄîÞÏsϽëÎzÔÅOF!õ‡¥gÝ ‹oøÇoOÏÂ^ôér8 -BJ©ßWÕSB3ÞO—ƒÖã>‡x’Vgá°‹cƒË0ð±ñþ‰
ºƒ`¸_ŒûÁ¸±ÊBƒwí]]ASØe-)…£1„û§Ú–¾“t|ê—ùYçf@½ÍWðv8Ñ<vNviµb•©Ì¬°JgÁûùç³.µÃ!DÏãÖ|#áŽàä–r2kÈj2¶ÆXêÒÒv#,Ù$>Þ¹ +ev{«ì¦Ä"7"õ‹µ%-Šµ4”iKy¡_U,‚:º›NÉ”y®[YÓëÃmXSÈ•, -³~•9…v£5\8ˆUY””±ü‰¥ ½{§&”J‘Ò+äÊJ¾ªlM¥‘‰(Òef!}¥‹Ô…„V…NIdôIe±ÞDȘDV½JšªBFV;ÂéWY¸øun¢* -wÓ<Qfƒ .wˆ+ux˜ÍàtL“{Ju\&Òt÷ññŽà¦T\üs#O²”¨e!USkÑK+T
.’“éÍôÊnV‹–;}\vÅšZkóŸ:ívä"NÚ9ÞêÊ”·.Þô«ÞJvá@K(Lœpy¥Öe¿NÌt¦S.¢±†lÌRî8BX!é\2BŽ -Æ æuaaY®Ã9£Ž*“™@°y# -wn¥¾t»:Ñ¿Ó¥Ë02+0/(O¤€6%ÔC)Š¨D “È°ôàk'ëk„¢·íjßÏî)Ð…ÇÙ~û¥lÿ·$}†‹»Jø.ú@ìM…‹Ó“Ly™ÊÙ1ÊÓÍ5…ýî¨ -MØõÈ͵Q_&ž÷xéM¤ÎØÕ -˜"2šÉm@0zí+ÎâxŒK ÚËFcu}¨%¿04ÆnÇÏ‹86¢å¼F¥Õ<¹h=h‹lù–öo*Þ
(K -ŒñnÀèK.åZ]R7 AY…tï.Ð-@¾C¦ -WÞYZ…‹ôò3è?J@ÐKÖh qËt=§sÓ¥«Š'Š'š'-Lý \â5ÀkÔ^¢öñC“ûtÞTvN³çGä2§Ùüéùzþü4¹«mëb~ -zæ&¦·ÜjÑÌós)x‚ñôs¨$4SFFn"×"a¢ -ı™
"=¦‘$[G´ÆÓÖ“œ‹3d¬0°—o:Ãâz>Ì -ô•Å<ü\“ŸwÈz‚)ºJÏZÚ|›‰tyû‚¤
0%¾GÂm® F³¿žèö,„à"«”ºJL€« -49ßgˆ#z¢ó"ngŒkž«ám&›5Ǩ@¼o -endobj -1294 0 obj<</Type/Page/Parent 1099 0 R/Contents 1295 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 780 0 R>>endobj -1295 0 obj<</Filter/FlateDecode/Length 1148 >>stream -xVMoÛ8½ûWC –-ÙñÇ1i7EÝ´Ûxo”DÛìJ¢"Ruüï÷(ɲmÄLòÍÌ›7Ãyø4ÁŸO‹€¦sŠÒÁÄë?óæ4[.ðà¿´ålå/Ÿ¿¾}Lç¼>÷f”ÒÝÌ[¹ç„ž§·”æ+ozZyXÆ+ò´ÞÂð|éÓ:®`'´Ž†0|çÑmÕ®,T¶£g‘†‚ÊîéÏ÷_oÖßÀÌŒ¦¸ºŽÝIߣ/¹Ìx#E5ˆ°JgîØ‘ÕÇ8ךT%e,É”y®K[]ÝãíÞG‘.3K:ü.#‹½$²“…XøUG2²ø!‹[ÚªÂXXÎŒÁF'4ò§^ÀÆ*DÏD{™ -ìL$YM&y|mν¥ÙsŽsJÇ™o ZÛ+·zW¯)Êß•±´ÑXƒ‘$ùØ™¿å¢†|’¯ö¶%„I8·~Á9ÊЂúG8>sÑ;àÑúËØl…ÊÙƒ&am¡ÂÒJÃç;lö*ÚS,\Le®3Ò𸠿ÆÙ¸.U|}"epl«2sB{þFÚ`¥æ¯ç2’¿“×ëX™<Ç'‘ÊËvÞ¡† ž].£³&Y'= 6Ò[6n$¥%DÊ&Sq™PBÃׯç¯UÛªÛ̉íêŠzR:K+Òø®±³›Ú#8ÓèÔò¥DÝÄ9
¢Lì榉`â-YÛMMÒéÓ3_Ѹ]#tÜȤŒa†ë¹[Ë¿mª§–â/º{)ß¿Õí%oC/³H§©Dã²{PžÀ0©-uIÁ¿¢ïÔíŽUòíñC0,«§ÏÏ››:=¢Ø~ZÞÍI¦LGÊexø0æø±Û†«Þý••á¼æ¬Ù½°•¿):w2:eÅÇ*’†PíÕ»+ J5 -¢4r[&É©ÐÍ-"ÿUµ°ÕI¢¸RšÀê¶,_Eš'ò¶b%‡hÐMÐÐEJî6÷ö:ˆa¶l†ÜrmŒ -“#?¨×æâÀJÏ\µü©Ð0"d’ln.×}®#FÊ*ÀZ}HL·¦Úûwo'Ø“¯õ]V9ò’/õ¦Nå4ÚÈÃwÒ"òü‰t3|§NíõT§”Òܶ¨M‰p[¨—Ç
l(òC¡â‹ÀXë -endobj -1296 0 obj<</Type/Page/Parent 1099 0 R/Contents 1297 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 793 0 R>>endobj -1297 0 obj<</Filter/FlateDecode/Length 1522 >>stream -x½WmsâFþίЄiCfÀ` :“Üär/sIÓƒo¥{
Nl¯»»>Ž_Ik›—r7mgzÉ„°Þ•ôHz$ÿlù0À_&Cf7À'ôáÓÇçwQà
˜Òg·coV-RX´Ž–LÇ^p´çä&CoÚÈñâ WíMo½!ÍÞÑ2ƒÙ”ì5{Nçí
ÕXxqÐYíMGÞ‚fÏÉ|XËñâ WíMfžA³çäF#XËñâ WíMnÉ^³çû§AÀÎûŸ´òŠ$1¼0ÄCO'ôÿ´„¸õfy½þÃ|–1e(˜N`q‚°;i$ -0R‘úfùr$Í)dé°’îM¼)¥{uVÃ`§ç9Û'ÖøxÏ'ßQ„
‰(KrˆòSÑÿÅ”)ã8ùúÅIjHð -¥íñçÿÞpêù3è
‰Ç˜“åV ©Iêd-#ÀüØ<µSç¶&[{¡ÊãUçvusz¨Îb2‘C!6¨9À(Ø%i -¹²°–HÓB -‹v¶RKÞ«DêuA€Y‘:Ãশe$¸ÒP"â]b·¨>ÝÏŸ!J´Ò{U™F -´ A‚×ÀŒ¨?@¯ÇÎëvú¥ÑýT…"í£Ùµè§Éº_Ûb·Â -ÛÀU§eÊ!/„FÍHÖ‹ÖÛH‚8É%¥îŸÀ*ëÌaäQ’oèíBî:G¯{Ó¤Wã6çÎnCªñ“è`0kŽquè=€Ï-hHÕÏ‚Ù†¬4Ì##ñ߬k”çøFÐÛq_ê?]Þ;˜"-m±£ø4lè\“+l¿aûßL‘Æb«Î¥uÏFk&$ÂýsD®NÚÛ|iÙ$ù,,áVäiº(ˆ¨yQU‰Ä€ 4®ôÑ»”ü[H€«0¿[áQäXwº«Ê»B*,§nÞ1Ãé‹Ò›«Ë4SÈ0‰÷ìW•Kìµ2– ¹ê ?D™ZC -¡[÷‰¾´aŸÊ‹oVÔîXË3Ý{V7ç9üÂ>ŽvIu=ô†Þˆ&ŠtNñÌÞX™QaQˆ -[©ÎÄëy\KC·:ÌÙaåcV{ð€6W;ƒÁ@Õ¹‚§eïj£ânY²³¸ò5ÂZE¢ÿ0ÞIü -endobj -1298 0 obj<</Type/Page/Parent 1099 0 R/Contents 1299 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 796 0 R>>endobj -1299 0 obj<</Filter/FlateDecode/Length 1748 >>stream -x½X]“Ó6}ß_qgû:‰ÉÇ’d™Ù‡íRÚÎ,%a ÓôA±åD`KA’òï{®dçÃ@‡N; -‰õªä7uï@ßR]p=éG…bfÅ"6iê|µºaimþZOtä)ÚñX²ªûÿV?0Ú?/ĪE„³ËÐrã–m-¦vC°Ú}¬x>GsO?HÌ -þu!÷0œÏ#>哈\•®ÁohÑáƺxÔ¥·‹†æ."˜?y·èhôäfN”Ÿ6**0/r«¶ÀÌd3[<úoÙ(ÌÊè9jËslõ„0´.2,ƒ~Wžgqû9…Ú#zŒó-æùw5ùA¥¾·MÐìN軵Ыï—[}Q9ÿ®M)ŸáæñyœŽÅ(ç‹g˜xÒsㆢîÖ -tÀ‹39oxópØ{ôúú¹@¸püÙõ„Qܲ²ÓsKÄϦãõØÊ7º|÷2.ÙïXÏØjíPhñ°èTB¯ë»
ýwb–Ÿ»Ü‰Ö/áws‹¨í5÷‹Eç fþSú3oÐâö]ë‹nôæD¦õD4M“éõß;ã
~vûâ§[ze
‹5=3iU6’<Œñ%ÆtD½É0ô¾ž¸šà+Œñ4Þ»¯G|ÌÏó‹ß/þ[1X…endstream -endobj -1300 0 obj<</Type/Page/Parent 1099 0 R/Contents 1301 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 799 0 R>>endobj -1301 0 obj<</Filter/FlateDecode/Length 1657 >>stream -xµXmOÛHþί!U—Jĵ÷H|I(Håè•Tíér6ö&18Þœ×nàßß3»v^LÚ½€ÆÞ™}æ™gÆüuâ‘‹o:>5Ú¬N\ÇÅþðøãÓ{¾CÍnŸ+òܦÓ)þŠéÎ<ó{
§‰{¬ðñ“JšŸ\LNÞ]†G“9[nw;4 a—&AMi´Î>Šlùvr¥ÍbiO“¥¤ÝcZ§j-Óì‰ôZÑ<’š2¬Xc+©¹¹ÎµLÑ«…JŠgäoFøŸ‘JÙ‹Ku¯áøˆ£æ\&4béXwY% -DB3IIÇö¾qi)YôMR¦ŒÃDf…³¥Ha㓜˴|xºÇiÅñZ¤b%3¬ŽcJ¯fN ’ù´Öš¾¥"X‹T) Œ\®à]%Ž…*( ªwœ®G~àãDS¿Ý!» „Ý<¯7zN› -lqÎØb+c0¾‰8—%V EÚ -ÍÃXfàÚ™]¾õ©—*C¦ºÉ{¬ïƒ¿ÇÿU®3»´ß¨ôa›»²þ˜¡4ÅÎðM¦øÍe1nOy”9•ƒòÑ -çùõœøi•õñÝjùN—ˆ3ôÇ×™©Fÿ€
-.í"gE¡äi*“,~¢<‰ðhCPÂ¥j¥QøÌ+s'J2¹€ßT®S©áÌXf§(â†E!V°¦4}ºMßþ‹Öi´éÓûTåëëÑÑè~ั°B6SÞ4a-J^¬²wÔý®ãõ¨^J"7’•¸Wi„îa[…æÆQˆŠ&”T™A^h³” ݉ÕLpM!“Ü®èãhÈûQTj% ÛÓZº'øb¥k¦4Õm³16ë0R¿ºý2¹=\ovb}ÍH~(3ÅQ¡d7ÜQ¸7D‹‘ÚÐl@uÙx†*ÉRÇ(½·Ç4dŽgjÃÇ™«â›AgPç=4ä‹1ˆÐU™RšqÊ“ŒÀh[d›aµÝ™¨¤Ê¹ÈãÌvÝçáÝosp /K£m[%çw“Àk¨phÃ4ä]ãû'alõö5Q!$ø?ÂïÐå³QG>ŠÕ:–èÍZçh=“ÁÝÕdüþ–– R’Í$x¿¥Y¸£<·”l)2{äV9¡s–écçFöß|˜NßävYYŒ5ÚÍ·ö -\‰°%eº2ÔÊI¨jÇŽi_¸:…i“”`„ -ét&ƒ‡§S†B;šÙ=3$¶–ü2p;—qÜU…`GÕ€åã ÀŒs+±›No‡Ð‰MµØa—Z’‘Æ‹!ÏPŒÓ< -Ï™3•Ÿ¯¥â$…Á¹©<¾Péâ”ϱ¹pa]©DŸ=³%ÉbUV4 -U(Ô,``H*Ž9`ÛšŠñùÅ0m¥“Òhf‘Éu,ŒÁV¡6¹‘Õ
”33üí´žm²*mÇ…Rpì¤owÀ£Fæ -øöÉ\±ðj>·æ¿‹‚‚ì2ݧ?>¥òëÏŠ1Žô§¶0òá°=×mWvŒ¡HÊŒ˜£î¦Qæ¦yé{ÎÌÄRÒ¶tæ8øžÎPR¦–?w€ïQT¾€¤HÍëÇÏXúî²[ˆ´×Æ¿º
j÷<ß
n.ô1U\wt°b¼e<êåòzÇ7Sá«ëDv:í.4Þz†LãÉÉo'Íâ)endstream -endobj -1302 0 obj<</Type/Page/Parent 1099 0 R/Contents 1303 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 802 0 R>>endobj -1303 0 obj<</Filter/FlateDecode/Length 651 >>stream -x…TKoÓ@¾çW̱âì+~äDž‰ÒÒ6öÆqj{ÍzÿY'¡Âê•-¯æ›÷|óu@à¡0à>$å€x„Ï<Dà?Ã×(Ø:B݇ºÏýõ€qâ (ñ”ÀIä…§[ëÎG¢ohF+Ä[tí‡ø“v† ÄÉU¡3]Åy©&@^Äû!:s•æM]ÈÃ[é„×ÊÈ"…¹4V™°(ïdÓ<j“N`<fa„ÓÙr±Œ–«étÁg‚gc*ˆX.{ªµÉKi×F·õëÅ(#´Ñ›½Jì¼@¨u“›&‰n+û?\#˼Œ“IbW…ÌÐÚ§÷áü|é™kežÒú‘˜CmÎê¦öáýÃw,[_!Çô³äRÚ<}Û–e&Ò¯sR=S^åÕz§Šb£M^6²Ùõœ»6n·Ç>2*r_=Pöý+Š‡<yxÞDý˜¾‘]+‹½"x‚DzçǸJЙît©¹ÁvjsÀdÜ}d1«2=º\;ô8—Õ|'«ìÂŒ¢ô¦mìYüÏÔ+ûÔË0!¡Â'þ|1e‘S!pT)óÕ¼«Úh
Ž”ráè@…‡Ì€¹.KUÙÆå<Z ô„b’qw…’‚RæÈ¢€ä¤€´Î¤Ió*»Ëxuû!¾{£?Én2¸‚½2æð²dO›¬«ñoX·ÌƒØKuÒvaÁ£l -endobj -1304 0 obj<</Type/Page/Parent 1099 0 R/Contents 1305 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1305 0 obj<</Filter/FlateDecode/Length 1018 >>stream -x•U]oÛF|ׯX •Š&©OèƒcÙµ‘4N%Eʼn<’W‘wÌ‘”àßÙ#)EŽR´°ÙäÞîìÌìÞ—A@>~š‡4žQT|ϧÉ<ð¦4YÌñwˆ•”¸ãÙÄ/½>w~âÍzpýpC¡OëEfócBO¢á]&ÊZZ -¦}ª”N©ÅVЙªÎè6ªÕ^.••QmìËÕúïO£p‚,ê)Kck~vý0¡ hkŒÂ -¥«€þP:6‡ -|z»¼óh
¥5‘Œ++ÊUU˘2 Ú>¹ÚÉü…aG™Ð)V¯ -»Z‹å^榬¼ž«™çØú d„Ì/¦!-‘{+ƒÌüÿV¦JÿÌñ7‡àwî-ð
P™
¤YЧfž?›:)z:ÈXÊT -àß1ÄßžÖt¤§ƒZ0ï¹ÚZan†ÊƒæJä9%ÖN#±…4T™Ær'¨ÔT`‚JíD*7W-™TE,rng¯ôÊœ -’jSÓÁØÝe˜Ï¥Ôï–·z6Ï!º3lë`Ζu¬§=k°sàÑS‹ŸMÆ[ù¥ãoE€–r«„f°çž{3&öYw'á`‚žN›˜<7.ÒñP]Výïìv:é3Nò¹ Ó¶8þµ±ð?6¶’ñ£¸0œ§ÆÚpƒ-¤Ð9«Ì49¬/ µ€/¤¨êË9Ô¬!lâæk3dFwJ«zsu¹I°Àã¸\i„¦nÏ|/Ü9ñ[ 6OÏcdŠR!AÚš³µd›¤wÃi†&?Ž•ƒñX4 Ö±°ñ™¿¤Þ+k4{weØ
ï{Scieà§ÙôÀÀ>æáíB¡;~"ÔpˆñÒÎ<ª§Òå(°Äº[†¯¼ŒOÚ…=ºsÊvá}צO ÷ýæ;MCe€WŽxsÓíDô£1E»rT9Š"£•b’)™º^ÏnÑŽF¼jGì_–O«×„Ý&|°\¶Ñ«ÏUˆØ笎M¥£¼‰åuàeYó’fw¸=Œp6¨sàõƒO7ý%Ó±ôC,„Òãíçû¿Þ®ÞL)è‘ú_vó·T\Äù¸»a‹ª¦ØÈJÿèTúy¬b'9ª9UA6zÿjoÂÒNƒ<åé±GïŒÙ±]¹Á:2ÔrÛ -º8Ýc¬tÞjñÿ¾šÁêñ:žÌ'Þ|¶À…D73®r¿ü>ølN•6endstream -endobj -1306 0 obj<</Type/Page/Parent 1099 0 R/Contents 1307 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1307 0 obj<</Filter/FlateDecode/Length 1381 >>stream -xVkoÛ6ýž_q‘/K‹X~į0·q±¢M›Ù.†bÙJb,Ö©’T\cØß¹¤œ¤N:4AŒÈ"ïóœsï×£>õðۧɀÎÆ”UG½¤G£^ŸÃéŸüYI·áE:LÆϽ8'ƒÃï_Žºo†ÔïÓê>ÆÓ r‚ý^VÙ‰i<m‹ ÓúFÊ'/V_ŽzÔŒ“!Žž¬ -©)3UJŽ)í¼(KZŠ*$5®eBŸMCUã<žqÐS)|°MYšÒk:#S{e´#¥ÉUi’}{Á»oztcì†Ñ5!gQVô+}þøi‘¼›/^Í—Éb>{Õ†Ùï%S“H䎜´wÒâÂÎ46ÙH›Jk\¿~rÃɬ±Êïp~v¹|òZêÌîjOµpnk,Ìît1Ú‡’¢RÀÒ[•ùrG®–bƒdO9Ê„&S©Xˆ˜ŽU¬äþ}(˜¦·×È!·Ò9T̆Ê=ä”Ð[¯P×L8¹õ
gß¡[…®ˆÆ›N.½Ì‚K'ûÉmÊ
½ÔÆ¿$-eN‚;’d”ò”DéÓ¬À¶Fÿâù†Ð;*„"nCv…¸“d´ä`u‹ˆFz¢Hoè–¡“ŠlÃÚØJ”÷FûÚ†pþ¦ÌÑʬTR{‡ôI~«cV(ÃJ¤ÞüÚ(‹4öÈbÿõÉ -¡×’œ1hG¤[Iké)•ÞÇȼ‚¥f2oìàôrm#5”¯ûæœú 3¨sÖ¢³?J† -¥oê -?@¹¿÷éÞsžcàûÏ3'ÙÒ&Ï~–4Dÿ>M-&&Áw&^›¥;à†i/èŒ -™Ô߸ÌD€5¨TîòÃ’Jc6@ -Ç–b -¬þ9òNŒ:“vÒüä'ëp2L&ã)Æ1ΟOØÌ|uôÇÑÖó…’endstream -endobj -1308 0 obj<</Type/Page/Parent 1099 0 R/Contents 1309 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1309 0 obj<</Filter/FlateDecode/Length 815 >>stream -x…UaÚFýίåK¹*¸s6ù݉ԗ¦:ªªÒiYñ{×Ù]‡Þ¿ÏÛµ¹‰T`ðÌ›7ïÍ,_')ÍñL©XP–“l'ódNy–'9-W®xY¦*Þ¸]®’ÅÏn,‹q?ÉÈŠ4Y^߸ßL~û¸¤4¥MÊæ«‚6%¡ô|N9õ5S'|M½öª¡ÓScö¤4‰½Àûvj,™Žñ4ɳm•ÍöæfóÐù=ö,Í@ySNßÜŸÈõ]g¬'m<IÓvªá¸o†¼3J¯iO¢Ý j{çiÇPB]©}o‘·ZnÍ7Rø-‘BÖ¼½!¡Ë8Âo§8 ¨aÂMƒzÎã3DV Nh7ÔŸÍÿ#{`»ck5jç"`Í¢d‹k˜1p™¼ßQ -+ŠýfKŽ~ÓÛ$Ohà -9¶ßP̱ï»ËvQwQÀp$ý$ý[éÒ-‚²Q¬=yû2$ÝŽÚN¡¼§Þ1ýJ[<x|Ö`x‰?MèXèjÓ7ePfî£îtTpùµÙðÍô>dŸi¡™K¥÷ä
´9‚`'œ;[&ô{õ”£J¨Æ!5Ù^_3=4 -*x%ìÝÜÖªŒ#¶G?bŒ¢ -Æphë=
;R×Ôj÷á*kiŽ/“©hýáiöpÿ0{\ßÒû¡âÉ$tvfQ1Xú‹Z¸v7(~IóÒ¢èç0˜£«°'èa±¸ˆ&FÿÆ -endobj -1310 0 obj<</Type/Page/Parent 1099 0 R/Contents 1311 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1311 0 obj<</Filter/FlateDecode/Length 1602 >>stream -xWMSãF½ó+º¸ -0h¦?^¿~ÝúûhAs|-hµ¤ËkÊê£y2§«›ëä?Wø¼Ä·×TȃÅ|•ÜLÜmŽ.>½£åœ6l]¯nh“ìÌñŸìôC©šV{Z\'t_7Þ=ëœRïvÁØ-KAÕ©:Ûü%V«håüò*YÂÎ)®-zxÖþÙè¹b¼¯\ÑbÑ_Y®5®<~¾#«Ûó_Ù»4¹¤¨ÖY©¬ 5¥{Ú•&+)«Œ¶m LYRY¦Ÿ«LhÙU²ÒX\E˜j°9#‰vNç‹Ëcp癪*äu,‰i1pœÐ¦4!Ëœm•±áÅd[ª– õZå{jÀ©0•&eó纱-Αə¶Ôž3?p?F¹3-Â%bå:„ßRî`Àº©dU—ë—@"ˆÄž´”uÚjO*Eˆ*w -Õ0Ìî@˦g¬¼øüª¿Y÷S´G$´”tï:?z„š½Š)Âkîb÷(”®«riÊ Û^‘u~
û”Ob…WhÌ(Ê|œ}½¡B¬÷ -hLÆ·°Îˆ#ª;žžM¨1¶©TÀÎY=Ðf€GF‚Ï&¨z½U>¯x*CDv¥Fœ¾u½™õÙr“Œ’#º…ï\ -ý2À EêGëáß_ ]à>žÜã<· Ò±b>£´C©¥Ú<eæUByì¡Ñ™)ï2‡Ê†k:׌&´ÞÜ>ÊjòÆ»PæÕY°Žù†èP+ÎPI¿‹4jûl¼³,ýQN&n‘[n̮ǹË%fŽ2eFG'áÕhËT%Êè ýõfeâ˜Î#I^ûOŸL#NI.òQ¶#‡ü1-éÆÑí1LÖKýœÕqîúÎŽ»Ð©*VUôg83d~<rö¸ogÃ8à¬'à0Ú¼Û8åù]QÔ(;WL£ãBæw«¬<˜sƒçØÖñP_x¸Œû¤iƒ®0šÐ$cò\q°”{)t)veÔˆ©;!ÆÙ’ž‰£eMª -endobj -1312 0 obj<</Type/Page/Parent 1099 0 R/Contents 1313 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1313 0 obj<</Filter/FlateDecode/Length 1740 >>stream -xWÛnÛF}÷WŒ•Ie[²óRøÄq][m^+r)mLrîR‚ -šÅ8kr>¥YD8g4¢YØ»·^“_)O&&ã)²Úe¿zÚØâ™b[ÐÖ–},Ðß‘[Ù2‰Èy“$´Ð¤ ¶[òÛœÑät±Öe*ÅGGs\O·Ý>’ÉŽf_F4N†cøЋM¢S•©%Ö‹ìëÌãQeµ?×f#ãòDmÅPbœ'“Z+“ˆn¥ -통•ñdxÊVž,<ɵÍáhlpg²%ÅØèD¨J'Îo=ǾRë*˜eb*¡Ãe©aL…¡-3ˆ=Ǭh5ïÃMx:ÕéBbºŒÍÝÃõ/Ú,Ó¡76Ã;|à8œ|®ü'ãØ
AOìö
¿*d -áŠxØØ—Ulk_Ÿ0.gq%V°«al´ÔÞ3(ã=r½¨@΋§Œ³·–-åª@r‘%GƒFH)¾Dnci–.¢Ž?&Cþµ†?Òl…(}aÂgXfpˆ³àrjNŠßh¸Á¨Ù\Àbü¸3Oóž^¾§A4ÆÑÎk±íADãùQ¿c^6¿ZásW‚ëà¾6à†t¯7ò:ä±Uqƒ“Ù
ØRPjñ˜g -“î - 6,;ƒ“Óª”定Taa#W.à”«v½ŠÕ`<…Ò¡ˆ?7†h ÅÙyRéBQ0¼ÓyO%ùJ³ZصžÕVP¡s©Ì#å5Hd!2"<¸2Ïm!pu²Wè<1¡úÁ çŸvÏqZ@"UÈ°(´Òˆ”WäuUÁŠ€»rB…+£EhÌN´íúpµLDÚ……Y€+ð=fýá -Šµò%(YæÌ£Èıu</àbÞÛ”ÿŒ÷êý@„*(»Œf×ÇàCÐÀèaÃY¤Hså1€Ð†Â–" -ˆŒBŽ ŸïîŸ`ˆ;kÄÞ Î°ãn°Š[Ó½öWw¿?I³qß•|’Ø
+Z{£×¢<ÜÊ\R%_ÐÏDy`dy«¦\áôµÔÅ–I‡šêzi„¶¾†ÄÈ1k£v' -å‚“){Ô92jd -ÆÆ¡>»w¶ô³ º8ëïîïg]"k•NU¬v÷wF‹‹ ×~~—fÍPè‘r^AüרO©>«7^¢ñ–*é ÂMÖ,K”+ó“þ^œ‰&áŽ" -$ÿª6[WÿCas]x(YŸ iÀDQAóyVÇnçȦÈ('}LZƲª%–é#ÔÇOjg¤+N”8ñ[lϳhÜ ®[mäu¢S<T2ŽŒTê>Ï`^™LJ1<¦vÍÏ9¿ãdVÏÈÁ'ÃÙØwÂuïóáV+CȆ()‘)„Zä¹,àLMªj¢«x‘¨%÷'Ô{Ä™p<¢ÿ+ø -endobj -1314 0 obj<</Type/Page/Parent 1099 0 R/Contents 1315 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R>>/XObject<<>>>>>>endobj -1315 0 obj<</Filter/FlateDecode/Length 1765 >>stream -x}X]Oã8}çWÜ7@j3ý`;ÌjµRà -íRX`4/H#7q©‡4fl‡.«ýñ{®í¤©)¤´Mìûyî½Çü8Ò -G¢,ƒm‰êV©0’]\ªÇÚÀG§i!IU^ºÑæé>?ÃaÖ`Õú¹T¹r -&[ñ$Ž3º ->Ð|øíŒýv•MwtÁ½s½Pv…0IC3£7ŸGJfˆmÌÏuY -'½E*VP‰¤ÙÖßÖÂK€§Dµ²]O¡±APø¢*š`‘FMxz"#aÖ`¡24—nvy}Gâea´[¥š]ŸŒ&Ù §~jmpg'lõsd à)`Ô»ºA -! -dt¹Uí³/èÐÈ‘Å¡GÝ!Ú²Z*±( -wxé6Þ#+ 1ÍÖu -èqÊä*ÌÒÆ©È#ŸIÔCª“eééo™ -·’½™DügxpZAü¬ -¿ˆ„~ZUº†]þ8ò,ò'P+8 èËù
:œq4Ÿ¢±ðŸMèÅÙa›÷@¦¹-RêS A²&$çÎ3øÏU½
”eÌJðŠ]ÙKä<Ä`0Ko‹(œÇsÊÄa?12òñfáE8Â$Qm§1/¹òüv_4 Ãæ+YÔ%`œ2¬m ÀPrFà˜³¨
–ÊÑwôÉEOhÂ8]òÁda؉¤ -endobj -1316 0 obj<</Type/Page/Parent 1099 0 R/Contents 1317 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R>>/XObject<<>>>>>>endobj -1317 0 obj<</Filter/FlateDecode/Length 913 >>stream -xíWKoÛ0¾çWð˜±ëGçd»åÑž¶bÃìR P¥ÖšH›$'è~ýHÉŽR#ÃÚî2`u -Z’A>â‘o(Ùˆ0›ùïø°-ng—ïtÒ¥¦´<™ºŸ¿a/.`ÿ2Ÿ·l|žÏ‘â;¼`j¹BÂ6Eä„zžBë¡”{eCXÕk™…¼Kð×B¢ó‡¡#ųDMÌîíaQBB¥¦bЀ@^vGÄëŠèˆxv<ciS³«sš—ËŠC±ÆPÁôõRŽ¡ -‘cUä\Ø©±56¬Í±‰
‰5 ¬„D§®ùNí±>QU}ìçÿj³ÁXö#vŽdïioN:ÉW6ƾÏi›µ¯l>N)ó¬ü—%é¥}ï+Ï·}û¸éÛÓb'ãŠQÑ|M>N'ðI«o¼´0We½CúÁÆ_IÊô¨UˆF~C®û)¶É1L©¥%Æb¥V{AßÈ“Æe1Ž‹·~~ÒÛIFsW‹ÞçÞ/ø`¿µendstream -endobj -1318 0 obj<</Type/Page/Parent 1099 0 R/Contents 1319 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1319 0 obj<</Filter/FlateDecode/Length 1573 >>stream -xWMoÛF½ëW|‰˜´$[²S4œ&|ˆâÖB‹¢èaE.ÅMH.»»´«þú¾YîJí¢AaX¶Hî|¼™÷føçdFSüÌèjNKÊêÉ4Òâb†ÏËë+|Îñk$“÷ëÉùÝ%Íf´.pdy}EëœðøtJëìôq×d¥Ñú[8¥K鞥lÈ•’r]ÕP-¬“†6F?[üMN•ÎD5ºaéYUeºqªé$9M:Ë:sF›Î}·þ2™R2»HçðêJeÉ–º«rx$Að òþ'É*×ùpÒpl¾L/ùØ}AR!2CFwÓÏ3ÒøœS!Te}Ð…®*ý¬šmŽá{¶ ’hh%jiIˆ¶nÙ¾4$EVÂy.ù ‘eÒZµ©$5@F›¯T±eãB¾ŸQrø•9GØQ¶•F4Âr©j@ã¤=ƒiï!m¤Ú–Ý™RkÀ«¬³>ù…‹ ÍRbø²ÏãÖ9Y·`øFfŽÿEìvý!Q_%Æ˦ÂÃáo4ÚqEŒ¬õçctÍN“£âÀø–¸ç/ãF!u³‡ù€(º"ëà/¼gܯ÷«GBã=I´’r¡¬MµóÕAÆ}Âc¾˜Ê½,7í6 -òyêÚVGïh'}+Ã$éh‡NT¹G¶5òIéÎsr–¾MQÂRpŽhîVô+W.ÑUž0ŸÁ”â rØìHW9žB)¢õ¶½/ÀSf¯M «ƒ¢oAÛm·Òš{Û]»5â†r„¸¸øðüÌ·‚´p¹£Jrÿseqiäù½iô.Š€òãQ¨N¨H/_¨HlêO}ñjº’NŽ±?ý/ÄOOzÞ•’ž’yÅn‡,µ é÷¤AÎÞ‚ªÏ ž,Ð`1ʆiÈ¢}de<w~Ce´ -LЬ?ŸWá„[Å“&¥šVŸ×·ÿ“dè} Zkô£a¥Ý?x
÷"Α½.¼à5#0d°oŒF-3äÆ]°§ªÊ$%¸#ûF[G¡ä:ëxúyí‘Ì%fa…–^iÌr¯€}ñ†{‘Ö#;#ÛJe<öŸÀ@êQÛ~Ž3#¯>i ƒôÂOôJþddó¤À1¥[KŸTf´Õ…ƒã¢C¿ÂBÌ!tpŒ´¹mv:ÓØ4ú - ~ž—Xrì£#À
§2Õr:½ÁÃÀÝS´Õa«BUt®ëë
Eyõ¾’›Þ¥Ço`‘bL ž—jo"~Ãx.6Ì2ÐrØNÇ3`ä.‹[Y@õEË`¤ì™ÀÃ|Ø”‘-^θŸN^ÜKÀ@²ºÇcÞ,šG‰ï%bÛð¶ÊBm`¯t~°ÈÆ …NDa‰h˜(Ø üv‡qþ½í¨(<´°ø
Òëúž.ÒD)7!R¨òhòžñ@«âèÁ9Ž³íþaï/tËɃQµ€NØt{ëtX]O~Änt5²ù Y%7P;Î6¹yˆÜ¬|HnŽæJTzk9ÆÈà·ñÛjí7 -endobj -1320 0 obj<</Type/Page/Parent 1099 0 R/Contents 1321 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1321 0 obj<</Filter/FlateDecode/Length 1416 >>stream -xÍWËnÛFÝë+.¼©È´$Û²\4ì棈“Ʋhº‘C‰ 9£ÌQõ÷=w”ÄH)²jmøÉ™û<çÜË/ƒ1ð9¦ë ]L)«£dDW³‹dF—³kü>Á—‘TîÒÁùËK)-pe:»¦4'(ÍNt#©YŠßJKU©$½~ÿ˜ÒÛ”î^Ðã‹”J…‡’l=O2 -*ÊJ’.Ü?E=d¥ù*
‰¬)Õ‚„u>Ü?<†'OÒOƒ/’ ¼Ÿ–•U‘Ð}AÝâLCsÝ,Ý>{þò*D|º.•%Û®VÚ4ôŒ6Òú1¥ÓÒ«¦ÔŠ„Ê¿cÁGøŒ~U¢–¿³<©zž÷"^—UE…(+j4ÙF˜& '&Óä’sJ—õøjÖšVÚÚrŽ2ÙL*aJm©Ð†3ujW”AbsÅÙ½¶(]B0ƒúÛP.øÑÃwzFÄ… Ø\kó™Ð.QÜ”¥Êá„n®†ä›ÆõŠÿ}H©ÙÝçÞ
œˆÒ
[(ÊEkdŽ¶ö|®PÆØ5ó\×ðè±×óˤ˞c‘‡(Bü=¿Ö{±® ç/ohT3¼Ï..};ÆÓdšÐã¶vw¡ÄŒfüæÝï¯Þ½yÿ–MïòãlrL]?ÑgtæX§ŽÖ¹+#üà2à2—=ŸCWY¡Ž¥åH¡$JÎ`óAhðrkÞ0óÒׂ^Û€ƒ.OüüxŠöíRì~ -R?íye”`Ö -zkÊZ˜M´ùðctUI3$Q5KÝ.–.E]眅:*±±žÑ¸,íÇ'=ÇüÈ£'$Pû’‘ -ã™ôZma…øMŽJ6ºW4r»Ã±¢Ø¸@üPUFt$}$ÂÇ‘âð~1ÂþƒYOîeØUñÀÁP°/hÉ÷c–WHºÂ62½ò-ŒËˆkKØŽ ²]öDóÛ¥iH¥ßŒüÒ–Fö‰ö ÿn†~òÅ1¨ÑÌo'3u^ã6À:ÌÍÀW¬nÿ{5‹¢Ê÷:Ï -êª#àÿéϵ+wè¯Ó× ²ÑßZ …;p]á†l<$Öb1À‹†4¿W¬—%šùíhs»Žíµ,Ž”>]Rœ;Ùíí Ï|LÞšë¸
³Hù.Ü6C'}Ñ8¡L -endobj -1322 0 obj<</Type/Page/Parent 1099 0 R/Contents 1323 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1323 0 obj<</Filter/FlateDecode/Length 1349 >>stream -x½WMSãF½ó+:>AÕZkËøƒT6U6 Y+Å!ä0’FX i„×ÿ>¯gFF°E.lk¦?ß{Ýüs4¤¾‡4õi4¡(?xŸ¼S:MñÚÇO))1üÑôõƒEpôùò”†C -ؚ̦Ä;ƒÑñUB;UÓZ<K-ÊE´NIª j-I×a!+¼•9¹Mõš*E¡43‰wt%K -KµÕø‹{…9Ádœjfò$x<P8ò|p¼y(()UK‘ÊÓâ½i-Ü‘–UÅ'8 De™Úò;µ©RUhJm¤=d*Ùß8ñR _è8ÖyèEªH(I3I?óÓÏ—:³åéû§(!â#÷«\À¾Kðª±7ðf탡ÿàܦ”‰,KÀ¦Ò”Ég™ÑØ@Ïhˆþq#û#çpâM=Z¹úÔZp¸:ˆZÐ×›ëùÕÒÞ}AߟzÞu_ -‘KJá.ÓꦻS˜²ƒk¾
¿÷¤Øá3TBÓ6Í2@ZŠ'J“nj¥|Hó¨0iíwRíx[Êjqu³"êý±í̯ÃÅ/÷'pUéîj¹B×`UÄ»tûõÜsfý‰Eæ%¢¶¤Ô¤àÜä` @[`»b¹—Y«y°eH™C(î×a·Ñ.ƒâækôJGeÊØ£@¡hOÀÏ1¼= D£Œë=w\¿CiúŸH¼“º ¨Ãö7Xüþá'c6Øä¾ßfb£®VKš¤k[=™9…3¸q‚
48Åf.8ÙfmoúÍuï©}FŽF`z´%®±ˆƒóÐW¼0O´å¦²xÃØ"ËzUllR•1Ck÷qNYö°´Ë¡ -ƒµ±•uÁ --óFê{—7ßί–¿Ñj~½˜SpC‹‹¦u.Ñà÷ºž¯‚‹o=Œ¤Ø%V{¶hs˜‡—Ë<dæÛùBNÒP}ÁpÔ´rÂÅâºÆ/“—¥˜È¶b§y º¼ùä«ùé°`&f%ž¸èYÅ2ß«( -)ÃàÀDÞÏÖŽÓ7ÙÙš´ï”þ%Çû½0·òåªÕ¨‡JÁ£“Þ >mñèqhíc Îp".‘6kÆ˺bÝ¾æ ›‡wk^l³V×{‡Þã(Êû -&8ê&4eGÔ*’ZSmæ/º"â‹(tj®Ó‰ˆž ŠN·Ñ;*jÆÃkÏJL£u -{çx…uŠd,‹HÒýq˜ -Y"h0•õZÕYl;» uü6a·‡¯Y‘¿ ->Ô1«Â#o"T5~;F2ÓòšmEQ9whö¹¶-Æ¿±ÖÌè–Õ£Ù-Ï-ÿý0€$•Dñl
ßÍÖyU¡‚fÍ0<úÓô -»Ô֔ˌ²´2ñ0›_òSL'æÔÎM]½Ã¤ÎQwù=’›ªù”ש´=©º?q.ÌY›¼Ðn¿E(Ñã»ä«1ÊM:¢åå•kÌWÍÍßFƒDn=2=4Þ‰fä7Ui â¹øžæuþÂ1 Ý»i5s4Nð?ÇlD“)ÖeìðFkoKõˆq„(ªs‰åƒwoöÙoŽ÷§>þ׈?¼«žNfÞdìcËå[ÅEpôÇÑ¿Âz%endstream -endobj -1324 0 obj<</Type/Page/Parent 1099 0 R/Contents 1325 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1325 0 obj<</Filter/FlateDecode/Length 1593 >>stream -xWMoÛF½ûWt©HŒ$˲] m -²•œÌñn¹NRk60ýaõíbJ“ÙU2G—£ƒv£„žÅñ>/ -o|§^áž\‘ow
©ìÑ©&ûªk²p[Semš~¼[Z×vïtí`AájblCÇè"ÇÑ¡„þp'sG•ªU©‘íófG),I9Ê}¡$´foig]ãèëå~§% ü8ˆÛ}n2„Bw×dkzZEžñLêüõ•Kˆš -›"×®
-»FŽRa áL‰‘”.€Qé:·Yb0¡ÚMnZþ¹—0¥Ò§ *[gÈæ×:µ‹ãó¡
+–³ó%˜ ÏÒhÍ Ž2[*Xž…Èó†Póš•Úd`‘ÀÇ”T…³R„·ü£\¼É‡ª¨U$=“%MfAHFÑÙX˜î’è~gL€®é×û'”#rù‚‡`‚›MK”êlß±{ÃìTYŠAº¶P
õXŸR -RYçò5‚AjÜ9ù¶¡™v>3 -Í8ÀìýD»"tŽ»V\éM^#BoÜÁ$pÔVh4' -Œ;nA‹ -UîO!˜Üâ¯Eø -endobj -1326 0 obj<</Type/Page/Parent 1099 0 R/Contents 1327 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1327 0 obj<</Filter/FlateDecode/Length 482 >>stream -xRËnÛ0¼û+¾Ä9XeYr Ú=¤ha¹øBI+›±Hª$U5ßeÇ… ¸;3;³ßg)_e†UFÏÒ$E!Š$C¾)ù;ãÛº—ƒu.ø÷êྚ½ûô¢DÕ1V±¨Z0Nš¢jŒ%Ò_l ÈÚŽµ³²m¤mëÈ{ò·ÕƒäÜA–Y™³øÜáÙŽ†ÂdÝ#CbžÎQKOíß`Ø-:ë@?¥z‚ê È´Êpgº»E8‰°˜TßçŽ0¯XñäÌ;8[÷¤}‚GeZ;yDÐG–°wv<ZËBŒ
ðDÁÂÃ`Ï„ôÆÿ.Ë´®+ëþ£²®xÙ›É+³‡äs#5¡·ö 'kn?Ý19¹u±|¹Ê“<ªŽ^‹cÔËð&ëdóƒ·R×’™ÎxhÙ”áñ&Ðg°sê
4Á)äº^ -þtújTCÇ‘Æ:Ì/}sØ!(kbd^×IcMKã[íGÞGnÐ ¶Doç»Åš£)µ¤êý«M›×¥¯ófQlNoïîïðÕÙ'j>ØfÔd‚Œ¼QéòÜ°,3^䓹ÿµÈ93ëŒ×8v¥eDûX;Í~œÁendstream -endobj -1328 0 obj<</Type/Page/Parent 1099 0 R/Contents 1329 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1329 0 obj<</Filter/FlateDecode/Length 1531 >>stream -xWÑnÛ6}ÏWÜ—¡)«¶ã&é€=¬ÅRØÒ1—¼\I”Í…"U’²æ¿ß¹¤Ûê0E×"/Ï=çÜCåûÅ‚æø³ Û%]ßPÕ^Ì‹9–óâ†Vw·ø¼Ä_¯¨I‹Ûb5}ðq}ñîþ-ç´nPëæöŽÖ5¡ÎßT—Ÿ¶ÜEå [é‘Û’©S¾q¾e[)Ò!ô*¼]ÿ•j,nsÙõªX¢Ê%6- -úäÚŽ½ÎŽ+W´XŒ+—·€Š•ëËåw8¯*ÐúÓ7ŠŽ"›—ô‹*£•·} ÝÐÞõÄè0ú½¶Yp5¤ãi A“V†ëM-xç4[\g”^±1{ªLìR¥ónã¹
·
>( -Ü*y]匀PÔºA1×5xÇÚpiÒ¢¼\Q£ñMôlC£üäô×úÒ¬tÒÄŽ°‡Ã‰>qPrP5=þñÍ ;ÅXcy=ÁÞ—ÌÃÀ6a -xÃÚâgpŠ[áÆèELk)ÿÔ<mÆjÒ™Mô<my°ŽjR' ‡Ê>& ÎNÐ+@âŸQ©=‚¤¯òlÐàNTjyŸ…(ø@Œc -x«uf ì+¹ô|újKèAÅRõúù-8™j—EKÞJ€4Bý]OYú¬¬òé8“ -RuA_@qrÕÁnô½×DO˜*᫆ƒÌ$·ôpÿxEl"ön¶øJ‚²{j¥ëZuÊÖ\Ҍ6ô¨°ƒ
v–„«…ljqPÐ7·éÁí0W‚ 9AÛ‡5ú°É*TÁk!¯žt0>œ(r—0ÙiKɦ2'Šçfó…ìT0£,Ô›²á*ÂèSDÊpvàþÌ5Æ.“Ù°qrú–}=È|Hµ×h=È\ÖB’œ³CÆ8„Bæ*ôkÐTÖìŒûóÉ£f•òs•ËéB¢Š:¢Š´™ä¦~?C’(’ §é—¦é·,èkg\õrÌH<’œ]KHçŒ\JJ~EC;iûÝýYDʲ±LÎ:¡Ó”¢CR!‡b J¡×"–5Xi¼k1dc¢ÂÆ@’£Ž+”H©ä *G¬aˆ‘Ãê ùˆ2¨'8
í`:]×9{«CÔ•T~Á€B‡,FF$b7yŒ³W”N˜1 -x"¢9¡^,ËU¥€Z"|„6 ²c_Š(ÞxY#¶½Ô¹ '‘(»*cûŽ–²#*I"ŒŽ=Ýì»Ê¸0µÁ)Ak™Ò -,lÄÊâÇÞˆ%B¦Ñ1Û2":¡^…#׌3°(>‹;D#æbÀèzÉAc¡Oƒñ)Ñ*!{oó”HQÕpoâÕ¿0' ‘‹‡åM#S±1jFå~–>.E© b<ˆËמ×ÏÙœïOîïñʶôݳɞ›x\÷$`²ZÄ[ö‚d1Ÿ‡@¶uƒd|÷`7˜¶-{¼ - Np©‹Î¸>Ê÷ -0òüdðÇNó“Ð_@Õ$j¨x‘™4Zrõ‚HÆ=•.œ¨KmtÜËÛ¼ì¥ ×ñMŠéœûƒô‰NÐ3®Î_åæô¸?ûº"šcçÎÔ¨Šck=½ógŒN‚÷5Rùu(/¢÷wxÈ,Ïø‡`Mƒ™ÃËrñ4Y…9äŽÇvfà"z¾”÷<döȺƒ]10ã¨bŸ/O®t¡Z–ÞF®ÜO–fbß$xhË¢rV,b©ÏÉûcpI™ðüZaàG—Œ¨8ÉÇ‘>Ÿh ýáìÿœð»ã„¯®3©ÿ÷ÕÍ]qó~‰+N.·ù´üÛúâÏ‹ -endobj -1330 0 obj<</Type/Page/Parent 1099 0 R/Contents 1331 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1331 0 obj<</Filter/FlateDecode/Length 1595 >>stream -x•WMoÛF½ûWt‰H´¾,+‡ìÄ)‚ÖuZëŠ%¹7"¹ìîÒŠúëûfHÉŠÀˆ@jgÞ¼yófõ÷Å„Æø7¡›)Í””ãhL‹é,šÓ|yƒÏSü9M™¼˜/¯£å¹Óé™w«‹«Ï×4™Ð*C’Åò†V)!ÁxL«ä²Ð/º˜’›l<ýDÁ5úýê;͇FÓ ¬ÒKŸÛ¦HÉ×Z§”Ø*iœÓU •$Ú{ -–2Sh|Èqe¾W–¶*v´u&]ákCòM’“ò¤êº0‰ -ÆVäµ{1Õš|Ž£žAŒi4™ESNý|itÔ½jã#P¦êâStÿí¾K?z
O&qÖÛ,Ðc–™D·!žßsrEa·ž’ ® —Öi•ŽTÎÿQ¢’\#]mP¢Í€B{4…+ŽZÊ>Ð<1Ï£Ù¤¥lrM£YDàí]¦6zÏõ;|²G”êÚi Ó·Ìs».ŸT+䯀׃ä£0CŠw´vª -Lê¢Ó6×Zëð¤
õ¢¿™ud+¹Ê
êGá ÑÙ¢@?ÏPT_ƾ–íñŽÓ"ú’ÑÎ6è^ “WÓNûG¬ä,ˆ ‹¢K³&bA+JµëeVkèÀ(tבXB8¥*(©
0]µ- -ÈðYvk4W(O¬sèöUòh+ùùAòü§Z¸2ͧ–r-XÚ+ÁËÒPT5eÉb´üÉa€2Á°PY¦“ì18©hõñ+ÅÊ£Il(ˆW˜M_Ó2PRÁ‘b -*(TÍ~’¿Ë÷Wât¾Ñ®'oÄt¹Ÿª´
Û2NcÙô -Šµ”ƒ½ë!s³Át{Þ¸X7™Ow{_ðô|Ù]–à^x!(†‡Oßd,ñœK‰Úâ‚búZ(·†Al$àúE
Ë‘ïT -\WA‹–]ÓuŸI`g -[n“ßùÀþßÚª]D·]Ü
Z\_ãgB×ÖT`Ð÷…ÌÉ%v¢°UåŽô|çK0•º´ÈÙT4ê½r¦Ø wWŸ—Ýo’É?‹–3Z|·×ˆ§Û‡»[úêìwÞŸlÒ¸âÊGû£›)~÷¤—ÿÿZ>_,£Åõw{>>þÀaïW¿_ü¸¨€mendstream -endobj -1332 0 obj<</Type/Page/Parent 1099 0 R/Contents 1333 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1333 0 obj<</Filter/FlateDecode/Length 1474 >>stream -xuW]oÛ8|ϯXø圢VmÇ_= ͵ -\r=ÄÀá~¡%ÊbC‰*IÙqýÍ’Rì(.’ -9}8Þå a|!<=ˆr+è 脨qªÚ…Œ,Jh@¦öÊT¤ª^BWn“ÔTyB÷…À¾PŽðÍÕ¿Hô€Œ†þh¤cX/Qˆ4•µKÛÆSe^Àîge.Ú\’ÞDŠßÄZb”„Ö'î;V¦Ríe`˜:nŒ7-Ûc@|Ö¯ÀP/ua*ÓX.B{’öé²E¾zÊd.Í3´˜Ï¡ííÑKG›á'›ëXªòŒ¥6ΩnËr¦ì”ãÀá‘jiscKÚJï!¡ƒò‰4WBxØI‰šJyaÜÓ½Ð`¤¥cüÇt<[qr%4´©h’Щ¤Ú *Ý« -+*
˜ -‡ˆ\R[p×õ-·7J&œ=Ÿ«ÑÍ,ò„qZ$ô§IK¹8M·ÇçàQ°™AN–‡*k€ã:oUêIÇPJá±RdïVA—)Ëf(´/L³+œg*ƒœQ£Ü+Ó¸—¨ßAðnsÐלŽ˜&Y îO/ÙfGfÐûü¥l®™ž*œç6æ -6„Ë]“çè—hùîAh[.ªTRÀ(+È¿ÐÖ{ÿHnî"¡ÚÖbÝy@›ÊË° ‰6j25ÎøÀ†é+8ƒ&*ì¡éBƒL÷eò«V/z(DUšL¶/¶û…_KƒÖž‘ejY±†NÚs$§ÍçãÛäø¶2*2g]Ü)ç€R¤†×É%{Ó+$o48:‰*ÈÚÀ$NÐ{tìä¨:H"xAÞiáì̈uÐÂý؉W.ÊbÐ/D
ŠÛbyc¤ÚCŽ…³1†¥Äðm†8Ý‚‡1êb/é`ªß<Á7 Œ:#̷핲Dà–€Óî8g˜¡‘©˜™Èh®,f»àœGïò˜Â˜%ôÅXØU…õT×Z¥‚—Fð̛ᨠ-Ú;\Ð{ -ú¾v/ý¬`Žßþ ðK)"Þ
«•Wæ -endobj -1334 0 obj<</Type/Page/Parent 1099 0 R/Contents 1335 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1335 0 obj<</Filter/FlateDecode/Length 1226 >>stream -x½VÁnã6½ç+¾48ªe»vöC‚¶À²m‹¹ÐmqM‰ -IYU¿¾oH9ÑÊÙôP ÐóæÍ›7|¾Hi†Ÿ”ÖsZ¬(+/fÉŒVé*™Óòzÿçøµ’váÃry¬Þú°˜ÏÞþÎfçWÝm.~üõ#¥kÚì}uÒ&'džÍh“]¦ëäcB_T.I«Jº›¯ˆ_RŠ0Ž¿š¯‘l“_n -I“¶;¸ ™Ú+S‘rT™–d%¶Zæ´í(—;Ñh?¥mãIí¨3
åÊñwRžž.wÆÒVz/-9™5VùîéùBV!¶£@îtzÛ5»‚ÕÒâp)ªLR»T¾œÑGUíi§4P”Ò%Ä`‡±Ú8ÇHµtNV€ÙÃ*ÄUí¥osÊD†S7£Ôt“)µ…ÊŠS© -„µRë -VídV‡@©¶¬tŠ'¦“:\O]Ëʆ£a©‚üŒ=$ôÉS¯â"¦Ð
ZM ]Ñ(0™çÅ&ô["¼tž‹ÎP0zÅÜx°õ¾ZSØ -Кh«M†¿¸:Váçæ;Ë}‘н¶³_×pÛýÆË)–ÖoÙƒÍ96ò¨°a¿¹‡uY²‘£¼_<†ý ÈlÉã1„ÞÁ%¶XåØmfTØ`)LY6·Z(+&ìs^ü¹âg^¸YÂçµè8Äv -o1¸°'æº$¦+¼]¯xZ.ãsíñöþî–~·æ+﨟M֔بáYÃ(¯N®Ös¼AÃ[éì
º\áõûÓ/PHS>øËæâ‹ -endobj -1336 0 obj<</Type/Page/Parent 1099 0 R/Contents 1337 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1337 0 obj<</Filter/FlateDecode/Length 1551 >>stream -x…VïOã8ýÎ_1ê—e¥mhÚRÊIû…²ªD¡G‹ÐÞq:¹‰ÓdIâœí4íýõ÷ÆIøQ`O´(uì™ñ›7o柟zøóé¤OƒÙAÏëÑÈïy}ŽOðÜÇWKŠÜ‹á¸ÿÁ‹ïÝ;ñmypt9$ߧe'£ñ -C‚ƒ^–ÁáR‘ÌÅ*•´S¥ûÆb#É*øTV$x³ÙJP•Ø˜l,©{q·˜ü=›ÍI6Q9áÃ/.¯Î¾/(MrI*â•ÏËŸ=êúÄ»gâQF0è5ëý‘7äõkeá1–2™)½£LE’¯)10î¨42d'|K…Ìñ[KÁ‹éî‰<ä½¹²õÖÕÎÅÓq[´¨:{À‚¹G˸4îÚ™ØÁ>½1I’Q$› -þ‰ç=Z¤ª¢ó4‘¹5|üeòºýoÄˆÝ -T™†Ä²òèÙ² “dI*ô»Q×gVH…f´ð¼H˜Óq$êdbKÛ,±ô•ú½á¸ó…’ÜXÇ´~E¾ÞG¶½pKò+…‹´›j&ùWv(KÖ±%‘E±L‹_á¸!•‚ÃyàÈ’º=$¾4S†Tbg(,]!;c*¥vƒØ&™ôèÎ1–w€vG-Àò@¤Ô)Ú3©ÜÈt¿†ª$M[F C¸±Re=ú%©Qw·mô…tî.Ï)лÂvZíHjíx¥
ÖÇÈkJƒl™ÃåÇY™#žš¸ -.£ -¥?g,R%´õ•>]ÈH”©½
65Â(5üŸ³Bú… -&Â뻽dñc±œÌ¼éõÔu‚u ìî¼zh¥kˆ5sr• “<K+G¨òO–sHmïÚnûÑlGªÊ‘Ü:HªÐúÞ†Û -£Vhœ; -%yبӈ[tXAËê®Îd¶»Â
¨ø-ÔöyJiØ®X°ÕP…GÇý¤ÎÁ5:WA¬à® HrDµP>–lÄP«J芘WyºÀ(„ßµ`D*Ôü&Py¢é«ÜüÖ ÚrhŠ¶! ®ûè9eáÉ-F8¨pUUyYhe °¡=⃠-,´>ìòlîŒ - FñŸ#*m’&6‘ûõ]Å ˆØðýW{®ò(Y—èƒÓcV©édX'ÆbkZ¥kð\M¯ø]ëŠ Óh‚´®1<@ÓT†{›-ïóÉäÂAPGˆªÁ¸¦"7(R.Ñ7–à<Lá»:o©ÎìÓUëü G‰HK ‰
’'1g`ÏqÛìkŸî|Û•kuÏr\ηK$¦ðn›É™Ø"|ºÅhºqm³4fçðÐ÷ˆÝáçÓˆ{m}o+Jƒ·]Ž›IÜb¦ht:¬‡ãÅÙìÛ͵úÉÃÒ… -Jž³Ü”Ê'»þÃ=tOúµó÷ÇÅáhìŽûM€~ŸÏN–¿ü{:ñ©endstream -endobj -1338 0 obj<</Type/Page/Parent 1099 0 R/Contents 1339 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1339 0 obj<</Filter/FlateDecode/Length 1511 >>stream -x…V]sÛ6|÷¯¸>Ù™Z4)êË~óg£i”¨‘:I§îH‚"’` -CZ§g‹õŸ×ÓwʦúIƒH -ùfýåd€EˆÉÎâ€ø3>¢8ò+,»)Dº{«y'LÝOWŽ~\¹V¥¤µ¦wêIÒ}Ňeß6þŸ5zûa¹¢xøݪɫÞßÍéV¤[I+õ¯¤ð»øi?Ži0œ -I¨ë½¿²¾R]ÖÂ)Pì·ÑEFó»{Êsÿxö»Di‹8ˆÃÇ7ó1/2ÂDl¤°Ú…rm( -)V®ƒ^µóÏ‹{¿E®6‘HÝÈ+ZŸß€é2BþmQßê’Ra²+
ÃÁhîn.,Ãp0¶Ïˈó÷¼ -ïU_bqÔ.áyÜ=ß}
¦G;0®(ž†ƒxÖFÇ1žÇþ¹WÆÜWçµd†´xìØ"·×”«‚«£Q0N>;ÿª£*:¾ä°S€ÑÌ¥©NöÏÀLeU&ª6½šXë[@³z´e"Hƒ¦ª‹TX”§|:S
y§[UÉŸˆ¹lê$öº&òy)1ºÙl‚¼ô_*dÞ-å}i¸zØð¡ë¬†têìkàš*¹?Ò†´-ã8æj+X”om—ØmÁ„³|6Û&ù‰úº,Ü;íѽ´Ñ:»êá5ƒ÷.;UûvÌh†¿úŒñn#]?ÑwZïOáÈ:X'ò°^ -v9ÿ¾ D!®ÐHmsÄ¢©ÁQf¹qæd›ºÖ,˜-'Š„Kíþ‘`$Ôy—õìÖF;êF€ÜU§`
zy{v´'È÷#Œ£MSR-M®KÁ–¶÷ቤ¯
l’+Úl¼¶|Ù—aêä˜&ƒxÔzm4
ðK‹}lÅÉ°~›TˆNƒ »òŠù®¥®á"{§…Z)Ù -ªš2‘ÆrE0Ù£jÇH({µG¸ÀÎ
byÃ~Ð>³‰}fuø.ïÑzü§üÓ†â -\-n{GÞ -endobj -1340 0 obj<</Type/Page/Parent 1099 0 R/Contents 1341 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F8 11 0 R/F9 12 0 R/Fc 13 0 R>>/XObject<<>>>>/Annots 813 0 R>>endobj -1341 0 obj<</Filter/FlateDecode/Length 1703 >>stream -x¥WÛn7}÷WôbVÖź䥰]»šØn¤\ -(¸+JbÌ%7K®½ôÛ{†\I±œ -Âvyž9sÎèËI—Îð×¥QúCÊò“³äŒ†ý >ã>{ø/%-y -§X«·PŽ†ÅɯYß8n/¼ë5 -µÖÿ‡æéôò-ÝKYž>¼Š)ÉjÓk’1÷€æ¡7QÝYbÜÓüê¾3½óN§†µLB -b
ÿ¿m!À
êåônF–}*Ô E ±,ù@¼¹¼~?ýÉsØÏ»“DSø`…¡YªþÆúâíJ²šG™Â7âj"[@nÙ²ê²b…”jawoÀùµÐ°JäHEcêîèY{\.L%tBÓe$6;‹Ðp•Å6:[mpçÌÄÇ´£46zrÖÃ!lྱ%< -½j™+cµ]m
×ÎûÙaŸ¹·6¹ØRÔS{hqźä.ë –s -%]1쀈㇢KÒè«4ÛÐwJ}À©ÕÈ=gï'¦.L)x’Ó¹~w'ÑÅ~æ‡ÿðž÷¢vw»æñõüäÏ“ÐB¶endstream -endobj -1342 0 obj<</Type/Page/Parent 1099 0 R/Contents 1343 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 822 0 R>>endobj -1343 0 obj<</Filter/FlateDecode/Length 1648 >>stream -xWÛnÛF}×WüR—"u³…“ȃØq-5FQÅŠ\ILÈ]–KZÑK¿½gvIë8yi–vwvæÌ™3Ã:!õñÒ$¢Á˜â¼Ó}|Ã÷¿ð74ŽÆxæ
'"j>e4ëDã31~^ŽÇb²·öCÒ¨?Àœ=ŨùÄgÙîð| Îhx6Áß~KEËN8<Ã%Ãp„gNƒÑDšOí±Áäœc{aᮣ…7óNpuNáæK;>É‹±Oó¸â6üЯfC±ÔtM±ÑËtUÙ³ ¢Y4 Ç®6½5Z«¸z|Õ󋡈z€j@¦|5ÿÜéÓi8FH󤉯´4%Íd¾?óbp5¤0ô^œFÞô‡©Ý¥µUT}©Ý¤qi¬YVôáò–n¤–+UŸ(¦·Yªtåì:ß–¥Éݽ‡i+Wô4 -ÿfJÕ› “:—Z¬«<;4ñlžÃrK;×sƒ,¤¹¬R£ ÿ×HTeðd–‘Ô yøRK±ÃGе&Iº®ìZeYT’Vß4Sôøˆ?MïaÂ}YSÝ›¤%²lÊ-™¥ÛãÐ^`#²¬Rçß,“Äg©Vö5[ ®útÞ&y(˜l]:úõ/¬ªêB¨¯ODÜ÷´9ÚIتUµù‚`…ÝÚÖÏïî~J’vïç
5 -€*Ú‚|-ŠL¾¼ËÌš%FÿT5Èrâ¬NTB·Ó¨aHÊô ¤\¨X2ø€è/êÕj+hØØžßÚzÜq;Û7ñ2…»´cnœ€éŽµE½ŒFÅ”_¤ö%ºð”L„OÌNN¡ÏŒ«þ KàŸñ”Iç?‘•¥ÍZi_ì]^DÜT||Å!#xÀ’lÃl öX¾Töl’áOxz;Ó§ëé4äï“+f*3ì®LQñ¾Hé^YS—±¢7¥ÙXUžôH/1„ìY.p«õ¨~¾æú€À- 3éW¸½ØâòBVñºó’Žü¸°-\ -»" zº€:´º. -àµMÏ”é*Õ2{#wqϱŸ{nÌÞ¸V©äÈ…Ö]ζ9À ••ÊÛÀøâtøºéìôí¼…}Éè9¬>MRc5¼`…wÞ—dó4H/]Ý” ’×#¨Qk*—]°{ÁU´ëõϸ¡žßÐÝ“öª¦qød§ËÔ—é¡ÅnKá#;=âë96æwÛ¹vqºoÒ2H||oLh`t»P7K“eИ¦§vÑ´`B•ö\8Nö¾:'‰zJQ/lóäo•X‰×ôë}¨Ð÷¨‡ÑºÀÐ3›Þ¿ŸÎÅáJãm{{;9å“ë²*e𷃆²( -úS 7Töüí]p}U’ñ¯æÏö!'q·Ëù0;ú¢çAšRO#Ö²}OUïißYS@á/;gOøÕ Ï.oÞ\¢Ëî<ôÎÄuŽßM»ìÞ'üÓI„÷àÿó¾‚7Šã7”!¿Ï"$/ -GìÀtÞùó½;bendstream -endobj -1344 0 obj<</Type/Page/Parent 1099 0 R/Contents 1345 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 825 0 R>>endobj -1345 0 obj<</Filter/FlateDecode/Length 1699 >>stream -x•WmoÚLýž_qÕ/M¥`ÂK©´R UÔ„°à–g¥H«Á›ilÏ̸À¿ßsÇ6´VV«UU‚=sßÏ=÷ò÷E®ñ¯G·}Œ(Ê/®ƒkº¹»ÅçpÌŸ}ü7’0Ž‚þ{ƒáøÝ(®¡Ÿ?–_/z¿¥þx)§þõ€
ø§ŒVÞB4ÀYËô—ð¢û0¤^ÂÞŽÆ·Æ^ó5…Ñe¸•$…ÉŽNÝÇY'¢7K[S¦%ЦLmð)üyqM>›ãËgmuâpÓ"ÈL -+c©"22—…•»ÔˆX’Óä¶R™ÆÈ ßù¢ý8L)6ê—46 ö$NZר£ê6²¶Ü K°œè²ˆIµÆÄíÈ*'I8Â÷ o"_!†:cxEÝ4zg¶»WE¬÷¶»+7™Šº.Ú©]wŸìÝ Èƒô¾ nʶLÃrC_à°¦2D¶•¸é¶°Kµ‘–_ÒÎèM&s~ÀÙžo%ê ã€ærïe-§*+‘žõã|õ2ùLŸž®Z&ÃÙÓ|³¿fW´ö—ãÑý˜ ÿm½B᪯áò~2[Ö—!µ -ïëQÄ-½oŽ}i»wÔCe#A¯*ro éMQ^d8Øí³Ús‘8ih'¬ÝkS´Eêõ;Ö:}ÆÚå:Y§käE ¥=ÒO½¡½rÛ“”ÿšQWŸ-•à±ÒIùñt‹‹.!Ëœá²PÚèéêy1iÅÈ—¬HQn«Š”ak”Õ©bâ;¿Å˜ð› +##§Í±‚çb‚“,# k— Ü]:*´kYæP¼Aèb˜Ø+4PÀÂV#ŒT:ÒÀ=)wE"Ë4,¦tÔ%»†Þ©C, - © -x˜§P]TQŸóÙxFZ6û3'—‹ÝÉH%GÚóèQÚÓÌŠ|#ÈÂqôº3G–<¥²ÀaÄÑ ³Î F¯FÄð4"P±u]€w7Ýwã?]âá6ùQÀJKË\׈ÜÝÐËì™V˾‡w¢2¬&-º¥ë;EŒIÇðfå¾7’µWqCJÍ¢°ð; Í_ÂT#ÜÄ`lT«ž-ž«D’€ã=1é"òðk¬o®o$Ü®ýl§Y…бpˆÝÌV$LVÃ|i‰"Tþóí€þ¢®"K¤1x]Cð¼Wå¦Zl˜ -^ÿÿÒ9ƒÑM¿†goÄzgáÅ?/þX}4½endstream -endobj -1346 0 obj<</Type/Page/Parent 1099 0 R/Contents 1347 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F6 9 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 828 0 R>>endobj -1347 0 obj<</Filter/FlateDecode/Length 1202 >>stream -xV]Sã6}ϯ¸³/
3à$&qÂÎðÈÒ2³»°MfúÐôA±¬Å–\ˆÒ_ßs%9€[J§dÄ‘îÇ9çé÷Á„ÆxMhÓiBi9GcJgÑ”¦‹9þñ®%íù,å_þõóƒi<‰šM§Ñ‚JšÎçøë?´vâÓ+z.6ƒÑÕMæ´Ù#w’Ì°o“¹ØcÚ¤ÃÉ"šEô‹Ò™y´‘m-ë•Jºé=ÅG›ï1¥Éć8‰çH³É†›\¢V·•² ͓Щ´ô¨š¼õ6ŽèFK2{zÌUš“Ñʼnª’¢Æ†\jjÒw$h-ÊàÄc:™œF1§³¨JÖÔÊm°ªÚìUtxúº…Û˜ÒBIÝXR»o3S -¥#ÚäÊ’°¶-yw.Ÿ“øi/q)Ër¡ì&—äÓ®mÜg”°+d‰†‹‚ -u/Ñ“IÓ¶&µ'Õp@mš(ÄŒpf®5™:óí„ƽØ6‚vßõom‡4„'S€Æ‡èvu¹=:þGËàåâAz^g×!é†DZm«ÊÔ
£l¿¤£~H"ËdÆ%1<Ùœù÷tæœ0˜’j#J.¦ë)¢kFXx8€¢–Ç=œ±Q»ÝW^Œ&=Ä©)«’ØPÀÍï¤k4pm¡ç…ô´.ýÕÔJfÛ£^f¡3Jk)Ie[4ªB¤ÔT -Ý€uh4eÊÞ#ÐêæËòúkÄêÃ`NŽéõƒø˜d“FQ´=Š0G((w@÷æ¹¾£!Ùr¥Fï·ÃY¨è0ôn9½)4U⸛šJÔ3ÙU DF
¸šªQÒ^Ö0.œºŒ®Þ¢ºÏr%jQÊâ|–Ó•‚•(è®0;Qô°{^
NjYHÁ"¨j…2Á†›dø¿ÂÎn6,"Sæ‘éC‚ …ln¼¼>úÇtÖÐÔ…Ÿ_Ï¿u¥Ç
»ï»¿•€'ÓHþÁ -…]ïlêt!@ÿ9“ñø
™ªeÚ˜ú‰Ê°gþîž7f飨5óú÷AŶ¸shP",ªq*ÙµëNlŒñ=Ÿ§,²¯ÃÇTó©Ù´Vº -ä"7û$Áª¡jHS{/ð -ð&÷ƒ¥õõêEæ&—“xCåçìÊ<gÛ˜¿Ò -~‚/]âõòËÅr»uÞ½´hµPb‹·ÝLí÷8¡€í¡Y¸›¾ºÓÞÇüðú€ý$qtñ¼¼MÒ‡à)™³½´8A,³/ïÀ¦¬Ø¬nå]ÿcƒ‹{ó³Àqžµ -']BCµ)Ø£«äÅõ#¡_o6Ÿè£?ÈYÔ™óî,t§ï‹ûüe‡û
ÛQ˜fðiZ¾8ï”Á¥Ü½‚eå. îŠa£«E(`’àž¶8Å,ñ· 'IºÍwL=v¦¸Q@ýlÅÜîI·ád㾕ý·ûÖ4YDÉ,†ÿóŽÉœ#}Ú¾
þƒCÇendstream -endobj -1348 0 obj<</Type/Page/Parent 1099 0 R/Contents 1349 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F1 4 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 835 0 R>>endobj -1349 0 obj<</Filter/FlateDecode/Length 1498 >>stream -xW]oÛ6}ϯ¸ÈK] –cÙqœ<më–¶@ÐnÛ`@_hŠ²XK¢FRÖüïw.)ÙŽ`EaÇÉË{Ï9÷£ÿ\Lé -ÿ¦t“ÒlA²º¸J®ð†¿¦üõùÝEºL“]Ï–Éœ*š§Ëä¦*é‘÷Ó5Þ-h¾¼Áï«(óùU’ž/,fÉ-Í`n sétŠñi07KoaäÌÜlz‹;ÒôßìÅÇâûmu1¹¿¥ôŠV9âYÜ,i•…0ðFŽÞ¢ñÊlÐûOO«Oô«”Ê9zÕZ3•Š¤ÉÔëÕ÷‹+§sœí´ ·_ù[ŸÞDëãÙ—cæ¦ }¨½5Y+½6uÜ:§é´ßüÅÖx‘v”©*M£2Ò5‰šð³&Uï´5u¥jŸÐïýë¨uŠ o£·¦–µØ@_•u¸J×zÜ;¯ªo¯É›Þñé,ºv)%·º¾ÄYQ:CÛÚt¸ÐÑ¥4U¥ý%NÕª;=‰p¼r´V›Ö…»×VÔ0æHÂÛµ"ƒÿ@çìRQ›z_
[Ç.úB!RçmˆðB—1~_ -Èe}:eq'™þh×9Ü\ç¹D Ç:žM#ÍDdQaŸrZ¿ -endobj -1350 0 obj<</Type/Page/Parent 1099 0 R/Contents 1351 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R>>/XObject<<>>>>>>endobj -1351 0 obj<</Filter/FlateDecode/Length 612 >>stream -xTËnâ@¼ó¥œÈÁ6ÆNK«\VÉ -ks‰
ã6vdÏ™1(¿=¶IH²‡Bò£§º«ºÊ¯£þE˜Ç˜¦ÍhN0›$aŠd1çë˜ÿ†PŒ®²ÑÅÏ¢YákÓÅY®ŸLɱÜ[9–;KfOfÉ÷?¬h6"Ôf»¼à[£µƒÔèžžg/Œ—xÁAœ† #Ž³²²8Tu
iH8‚@^’N›7HQ×”÷Œ¥œ¨T¥¶p%¡æbë†wV·F—䄧qRØÕÜÝ®n|kîMÃØ÷sb»eH?ÿÆ%˧óݲ5†”«¹æ+»Ó*·pºCš²09í©Ö»†‹àQè¡O¹\ÿY d¡yH?ÓPØôÆÏÏÍ7ohí‘G/M<H3ÌgÆ*çÖEÏ\€ @‰†®PW¬€.†¦ß™v…öØ¿Ð-CiÕ:»ù`s†Øò|E÷¦[´\×Fê¦ác†^[/9/Ìé/ÍznÝùa11ëm¨&aû½UÖmÍ -rè³…®k}ðºø†L»øÆ'®ùûëÕ¯«ÕsüÿË‹'Öx,I±(oºÅAø-k4dXšªm ÖÙL–BmyÏ-óó~ü6= -£¶¶+ûÓ_ëe~÷ú²_û1r_¸¶»Ügƒ<ô…ïYâˆN/9Àìí$Dÿr1¸)J8Ћ)¢tæßwBàÁèÎn´l½—…«´òç‚(åo -endobj -1352 0 obj<</Type/Page/Parent 1099 0 R/Contents 1353 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 838 0 R>>endobj -1353 0 obj<</Filter/FlateDecode/Length 1601 >>stream -x}WïoÛ6ýž¿â`˜¤òÏ8ib[×µ°[k`(Ð/´t’ØP¢FRqüßï)9Žš‰e[:ïÞ½{Gÿ{±¤þ–t³¢õ–òæb‘-h³¸É6´¹½Áç^Ž©”0•ËR.?\,—k<\/¯³-5´¼¾ÉÖÃ7CŸ¢£Õv›¦ŽÞî.æï_ÑjA»{ooniWDϸ“Ï~UØáyF¹³.趢·}å_ì¾Æ•Ë›´òåzï»bÓeF´Á٢σ¶m2ÝÐr9˜®n$Lw57JREáØ{*£}_!IÙË“öäU³W?Çkf]%Îôrµ(pñ—a噂ºÃî‚np±p -ÜÀúR¦=Ã3ÓÑöäû}£©³}2úÅx{E]ræ™I—£ZyÊkÕV\ÀE80Çd°?ÐŽÙ:ŽküÁôÀÔ¨#,Ó"JbzLHî4,µoHòVÂEÌÙóy)ÄE…çMŸ×ò.9䪕wçÙ”’mͦ£àT~ãC;îšÑ'OPÊmÀK9"ù‚«ÀÅ°ï˜Oålß‘-©c8èP[º·¦oƒÈFãŠx¯Èßic<©¶ .nðýà -Á¤Ý’æF±=w$08{¹‡Åï±nÑ;–˜èá0ÁŸa ¿b)PµÇT^¤…Q³Im°gˆ³„´R1¥ƒDrÑÞ€›ÓqÙ{±ƒÈ04;²’ °M@y*òU -’'k¬ä£ì¤oÅh£ð©è"æ)Õf7#E—òµ=`Ù3[F%êp£s¥Ä)†”W¢$qÆŒÙj® -íïÈw*ÿfÈïDcS}‹ÇÂÈj lþþz82Íβy“e›z;ÝÇ0ž²f˜0™4éÄ<£ÏçÚYê$ñ P©Ï” ¦)Î<ÒÀ_{´¶meÄCUñ.ô¼cîà}#쇗¤5“Ñ.#$&Åãv~=†þj<nÒáåbd‘Éu6rÏæ½wscseí5zïUöC3Y4¶õwÖŒ
Ÿjr<² -a)ÇFr‰Å4F? -endobj -1354 0 obj<</Type/Page/Parent 1099 0 R/Contents 1355 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1355 0 obj<</Filter/FlateDecode/Length 1657 >>stream -x•WÁn7½û+¦ºTbY’eÙ-ЃƒÚ€&Mµ@ -U¤Ò·[•La¬I{>: -²ˆ^2´HÙ»!¹[TÖú˜^ìö[do”°Ú“ó‰œFˆ«Sâ;צYë€Ê”£ó }Ñ* …Ñ`„åBS -@Ï%RGØ!ÓÙô#N%>°
z«B¹¢nî¿“U¡Ñôèm×j†›)T©¤¤–³Û_hŠ2WOÏòùt²˜ÐK:8eI‡àCÌè‰ÝóËÉ’tWK¡F’4ºû²º¹ÿrýÝÜßÿy?¢VǨB‚D—>“Iø¨À!\æO¤PzçôÓV— …p£”=*~·S(tÎKdš¸ÝÛàU0Š@¹iÁ{iÕª³|+`´Ò«R&&væøŠ1çsã·Ҿ£¸kõ·àûöPH¨@h@ »˜tKÑ׉—>ôç"–â€E©Ð‰:xœh‹Š?9FCú\º©JÑŠ3À¡àº†P¹çP†y É1%ûíó§çà½6ùŽ9¡ÕZR{†y#ÈyÏz¯;Ëhù˜«•ßáÈŸs³R'm-+ë("g» -½F?úv3²à¤i΀Éwh2®}g¹/Ñ÷ÕÐÚï(y>|Õ•ÐÀ!ðG25m}ŒiLè«ä@Úð.”Áj÷N8±ÑÕ[QY’²6 …°OÁ•x0Ôv5+Ô -o²¶Ó1aú‚6ŽE ˜£nÙf¬rMÇÖ†xŽñY*ñ}4#øn¯éý¼èaN›ÄÓê•Ç[SÔ†kr Á)dp1%JLfnzø ŽÇ˜B.¤ŸTÉïuB `!¯óÝz¿6$iC’¾sBÒWPàÍ#*Gþ™€ÜrÆé -ÿêÚ-Â|¸0“Š~N—ˆÉß U©0ºLƒÊ#1ä‡"r‘ÃðžC›"Òf‚õC‡±/ÅFûf+ÁƒÁàðý<ŠÞƒ…1n£goøz÷û¨'ßË3Kϳ -rK]ÌúuŽJQ#ž¯à9^]¬Ò>R˜£°œ -é2aÏ:Ïý~ûQ³ÄÌàÛôû¬X!N¡ñ P>pT%Ä,£u¯ÍÓOƒïE
-endobj -1356 0 obj<</Type/Page/Parent 1099 0 R/Contents 1357 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1357 0 obj<</Filter/FlateDecode/Length 1410 >>stream -x•WÛnÛF}÷WLó"h™¾Æ/EÇmÑÔiA¿¬È•¸6Éew—–õ÷=³—ˆ"Ü4…aÃ"wvfÎ9sÑßG§´ÀÏ)]åtvIEs´Èðq±Èr:¿¾Âÿ9~¤õÑË£“»·”/h¹†ÉåÕ5-KÂñžÓw•èœ4”Ÿfô“Ñ}Gè:Õnè矗—0?§ÓÓ`>ϯábYN?9aÛ*WÑ'ѬÁ§¨»JP>#AÜÒæàÊußNé–”%ñ,T-VµÌhYI*zcd먑®Ò%=Lkõ$ë9Í!,h~z•h7òáoj+6’ì½#ë/öŽÝàmI…¨kY†4.bS²ÍÊÈR¹Ã§Yô—_fçœ(·VÆ:RMƒóÂI -Š·Âr¼%ǽQÏ!ðZY‡Gxn,ÕpňŒÚTΧYIe"*ÉÿV›'ë“i3úÅùËn$0ب‚¬ë×ëºUM"ÙŽV½£R•íÄ‘…3IÏÒ६kZkC «åYéúÎŽ¹ø Y $_ºš¡«©‚kŽ…½_ž|Îq~•ðù!ÿÏZ”’ÄVì2ú\I°EôuÍVl/FIr0=ÃA4Ñ€Jtà¤%Ÿw@%¤˜Ñ½vÐ7$ãÉL3°6Âic'᪄σ;r¼nü]ÁAgÔ³ªå¹6üµb¥jå¸J(Ô…Z²Fùf§€PÅë'„E»ãài-*Œá®5Xë‡ãQ -M¥f7áäÆøF+ÿùaw@ZµÖO¾£Ý$\Þ¦]ã<ŒàõÍËÍÅ"¿I±Ì8Ž`‘Æcrv•]2,ù–‹E¸æ7Ñ¡²€I¸/AÃö«ÃÙw¨ý4†«¥&ÉðÆ…#&‘V
,.IÃæµ}Có~@ïÞ'•®8IÍóš_äorS”ÁU€9ó<áÏ€(_!œ/hr#ˆ¾‹¦Ë?¤¡r;h6Q@3®!¨°û#¬†ÿs¯r˜ûe€(#çDmCMŽtçö©&óg~@ÇF™zyê¦SD–æ¸Aå…bÇNƒ66r™8Ûªv¥Ú’kŒsÛê¾.ã`ë‘(ü 䤨Æ1†¥2²À÷#w0÷·N†ý/¡1NámÐPtµˆ?ÁH9ÄöJûVu…Þî›»¸þ¦2h2ñÃ[ Ÿ·ÏÂ(ÝGÖ±NûíI÷_ °Xˆ¦RZ@T,ÿTûs(ÔëÁ"YC½ßðõãüò:»¼Èc·Ës¾êýòè£ -endobj -1358 0 obj<</Type/Page/Parent 1099 0 R/Contents 1359 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj -1359 0 obj<</Filter/FlateDecode/Length 1421 >>stream -x…VaoÛ6ýž_qÀÄE’ÇÙ>mI»X[q°¢óPÐe³‘H•¤âúßï%'©Ú¬-XÒ‘÷îÝ»G~>J)Áÿ”.2O)¯’8¡ivÏh2»ÀïVR>LÒY<ýÞ‡q2þvÅïË£³×—”%´,‘dz1£eAHàM>ºÚŠÆKKYÓÂX/ÖªR~²ü„eJÓnÙi6‹3,ÝŠz-hgì½#£ ?U!É -½‘dJj*áKckGëÖ“ßJRÛ—"—$ª*¼yŠi¬yàåÊ‘6;±wœ:¡ÓtÜ%ÌMݯ֕Œi¹EdÞ#ÎöBi÷˜óÔ52W¥Ê‘“1`#\ á]P˜ÞеŽ9.%î*½¤ô¢¯t<‰'\)IcºYܽÿ–Œ4 -է΅°F -Ûi -endobj -1360 0 obj<</Type/Page/Parent 1099 0 R/Contents 1361 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R>>/XObject<<>>>>>>endobj -1361 0 obj<</Filter/FlateDecode/Length 584 >>stream -xµT]oÚ0}çW\‰>¤ NH´‡2Š„4ºNð°I•*'1`pbj;›úïwíéò8xHbŸ{Îýð[/‚ÿƌȊÞtÝÎ ÜÃzƒÉ_r !Ö™Þ|º]ï{üÜòàôË„ö5' -endobj -1362 0 obj<</Count 25/First 1363 0 R/Last 1594 0 R>>endobj -1363 0 obj<</Parent 1362 0 R/Title(Table of Contents)/Dest[1102 0 R/XYZ 0 756 0]/Next 1364 0 R>>endobj -1364 0 obj<</Parent 1362 0 R/Count -1/First 1365 0 R/Last 1365 0 R/Title(SAMBA Project Documentation)/Dest[1114 0 R/XYZ 0 786 0]/Prev 1363 0 R/Next 1366 0 R>>endobj -1365 0 obj<</Parent 1364 0 R/Title(SAMBA Team)/Dest[1114 0 R/XYZ 0 762 0]>>endobj -1366 0 obj<</Parent 1362 0 R/Title(Abstract)/Dest[1116 0 R/XYZ 0 786 0]/Prev 1364 0 R/Next 1367 0 R>>endobj -1367 0 obj<</Parent 1362 0 R/Count -10/First 1368 0 R/Last 1379 0 R/Title(Chapter 1. How to Install and Test SAMBA)/Dest[1126 0 R/XYZ 0 786 0]/Prev 1366 0 R/Next 1386 0 R>>endobj -1368 0 obj<</Parent 1367 0 R/Title(1.1. Step 0: Read the man pages)/Dest[1126 0 R/XYZ 0 762 0]/Next 1369 0 R>>endobj -1369 0 obj<</Parent 1367 0 R/Title(1.2. Step 1: Building the Binaries)/Dest[1126 0 R/XYZ 0 621 0]/Prev 1368 0 R/Next 1370 0 R>>endobj -1370 0 obj<</Parent 1367 0 R/Title(1.3. Step 2: The all important step)/Dest[1126 0 R/XYZ 0 216 0]/Prev 1369 0 R/Next 1371 0 R>>endobj -1371 0 obj<</Parent 1367 0 R/Title(1.4. Step 3: Create the smb configuration file.)/Dest[1128 0 R/XYZ 0 786 0]/Prev 1370 0 R/Next 1372 0 R>>endobj -1372 0 obj<</Parent 1367 0 R/Title(1.5. Step 4: Test your config file with testparm)/Dest[1128 0 R/XYZ 0 437 0]/Prev 1371 0 R/Next 1373 0 R>>endobj -1373 0 obj<</Parent 1367 0 R/Count -2/First 1374 0 R/Last 1375 0 R/Title(1.6. Step 5: Starting the smbd and nmbd)/Dest[1128 0 R/XYZ 0 336 0]/Prev 1372 0 R/Next 1376 0 R>>endobj -1374 0 obj<</Parent 1373 0 R/Title(1.6.1. Step 5a: Starting from inetd.conf)/Dest[1128 0 R/XYZ 0 181 0]/Next 1375 0 R>>endobj -1375 0 obj<</Parent 1373 0 R/Title(1.6.2. Step 5b. Alternative: starting it as a daemon)/Dest[1130 0 R/XYZ 0 356 0]/Prev 1374 0 R>>endobj -1376 0 obj<</Parent 1367 0 R/Title(1.7. Step 6: Try listing the shares available on your server)/Dest[1132 0 R/XYZ 0 771 0]/Prev 1373 0 R/Next 1377 0 R>>endobj -1377 0 obj<</Parent 1367 0 R/Title(1.8. Step 7: Try connecting with the unix client)/Dest[1132 0 R/XYZ 0 603 0]/Prev 1376 0 R/Next 1378 0 R>>endobj -1378 0 obj<</Parent 1367 0 R/Title(1.9. Step 8: Try connecting from a DOS, WfWg, Win9x, WinNT, Win2k, OS/2, etc... client)/Dest[1132 0 R/XYZ 0 436 0]/Prev 1377 0 R/Next 1379 0 R>>endobj -1379 0 obj<</Parent 1367 0 R/Count -6/First 1380 0 R/Last 1385 0 R/Title(1.10. What If Things Don't Work?)/Dest[1132 0 R/XYZ 0 221 0]/Prev 1378 0 R>>endobj -1380 0 obj<</Parent 1379 0 R/Title(1.10.1. Diagnosing Problems)/Dest[1134 0 R/XYZ 0 705 0]/Next 1381 0 R>>endobj -1381 0 obj<</Parent 1379 0 R/Title(1.10.2. Scope IDs)/Dest[1134 0 R/XYZ 0 647 0]/Prev 1380 0 R/Next 1382 0 R>>endobj -1382 0 obj<</Parent 1379 0 R/Title(1.10.3. Choosing the Protocol Level)/Dest[1134 0 R/XYZ 0 562 0]/Prev 1381 0 R/Next 1383 0 R>>endobj -1383 0 obj<</Parent 1379 0 R/Title(1.10.4. Printing from UNIX to a Client PC)/Dest[1134 0 R/XYZ 0 253 0]/Prev 1382 0 R/Next 1384 0 R>>endobj -1384 0 obj<</Parent 1379 0 R/Title(1.10.5. Locking)/Dest[1136 0 R/XYZ 0 771 0]/Prev 1383 0 R/Next 1385 0 R>>endobj -1385 0 obj<</Parent 1379 0 R/Title(1.10.6. Mapping Usernames)/Dest[1136 0 R/XYZ 0 317 0]/Prev 1384 0 R>>endobj -1386 0 obj<</Parent 1362 0 R/Count -4/First 1387 0 R/Last 1401 0 R/Title(Chapter 2. Diagnosing your samba server)/Dest[1138 0 R/XYZ 0 786 0]/Prev 1367 0 R/Next 1402 0 R>>endobj -1387 0 obj<</Parent 1386 0 R/Title(2.1. Introduction)/Dest[1138 0 R/XYZ 0 762 0]/Next 1388 0 R>>endobj -1388 0 obj<</Parent 1386 0 R/Title(2.2. Assumptions)/Dest[1138 0 R/XYZ 0 581 0]/Prev 1387 0 R/Next 1389 0 R>>endobj -1389 0 obj<</Parent 1386 0 R/Count -11/First 1390 0 R/Last 1400 0 R/Title(2.3. Tests)/Dest[1138 0 R/XYZ 0 225 0]/Prev 1388 0 R/Next 1401 0 R>>endobj -1390 0 obj<</Parent 1389 0 R/Title(2.3.1. Test 1)/Dest[1138 0 R/XYZ 0 205 0]/Next 1391 0 R>>endobj -1391 0 obj<</Parent 1389 0 R/Title(2.3.2. Test 2)/Dest[1140 0 R/XYZ 0 758 0]/Prev 1390 0 R/Next 1392 0 R>>endobj -1392 0 obj<</Parent 1389 0 R/Title(2.3.3. Test 3)/Dest[1140 0 R/XYZ 0 554 0]/Prev 1391 0 R/Next 1393 0 R>>endobj -1393 0 obj<</Parent 1389 0 R/Title(2.3.4. Test 4)/Dest[1142 0 R/XYZ 0 639 0]/Prev 1392 0 R/Next 1394 0 R>>endobj -1394 0 obj<</Parent 1389 0 R/Title(2.3.5. Test 5)/Dest[1142 0 R/XYZ 0 488 0]/Prev 1393 0 R/Next 1395 0 R>>endobj -1395 0 obj<</Parent 1389 0 R/Title(2.3.6. Test 6)/Dest[1142 0 R/XYZ 0 364 0]/Prev 1394 0 R/Next 1396 0 R>>endobj -1396 0 obj<</Parent 1389 0 R/Title(2.3.7. Test 7)/Dest[1144 0 R/XYZ 0 771 0]/Prev 1395 0 R/Next 1397 0 R>>endobj -1397 0 obj<</Parent 1389 0 R/Title(2.3.8. Test 8)/Dest[1144 0 R/XYZ 0 409 0]/Prev 1396 0 R/Next 1398 0 R>>endobj -1398 0 obj<</Parent 1389 0 R/Title(2.3.9. Test 9)/Dest[1146 0 R/XYZ 0 731 0]/Prev 1397 0 R/Next 1399 0 R>>endobj -1399 0 obj<</Parent 1389 0 R/Title(2.3.10. Test 10)/Dest[1146 0 R/XYZ 0 541 0]/Prev 1398 0 R/Next 1400 0 R>>endobj -1400 0 obj<</Parent 1389 0 R/Title(2.3.11. Test 11)/Dest[1146 0 R/XYZ 0 403 0]/Prev 1399 0 R>>endobj -1401 0 obj<</Parent 1386 0 R/Title(2.4. Still having troubles?)/Dest[1146 0 R/XYZ 0 266 0]/Prev 1389 0 R>>endobj -1402 0 obj<</Parent 1362 0 R/Count -6/First 1403 0 R/Last 1420 0 R/Title(Chapter 3. Integrating MS Windows networks with Samba)/Dest[1148 0 R/XYZ 0 786 0]/Prev 1386 0 R/Next 1421 0 R>>endobj -1403 0 obj<</Parent 1402 0 R/Title(3.1. Agenda)/Dest[1148 0 R/XYZ 0 738 0]/Next 1404 0 R>>endobj -1404 0 obj<</Parent 1402 0 R/Count -4/First 1405 0 R/Last 1408 0 R/Title(3.2. Name Resolution in a pure Unix/Linux world)/Dest[1148 0 R/XYZ 0 491 0]/Prev 1403 0 R/Next 1409 0 R>>endobj -1405 0 obj<</Parent 1404 0 R/Title(3.2.1. /etc/hosts)/Dest[1148 0 R/XYZ 0 363 0]/Next 1406 0 R>>endobj -1406 0 obj<</Parent 1404 0 R/Title(3.2.2. /etc/resolv.conf)/Dest[1150 0 R/XYZ 0 494 0]/Prev 1405 0 R/Next 1407 0 R>>endobj -1407 0 obj<</Parent 1404 0 R/Title(3.2.3. /etc/host.conf)/Dest[1150 0 R/XYZ 0 356 0]/Prev 1406 0 R/Next 1408 0 R>>endobj -1408 0 obj<</Parent 1404 0 R/Title(3.2.4. /etc/nsswitch.conf)/Dest[1150 0 R/XYZ 0 210 0]/Prev 1407 0 R>>endobj -1409 0 obj<</Parent 1402 0 R/Count -5/First 1410 0 R/Last 1414 0 R/Title(3.3. Name resolution as used within MS Windows networking)/Dest[1152 0 R/XYZ 0 392 0]/Prev 1404 0 R/Next 1415 0 R>>endobj -1410 0 obj<</Parent 1409 0 R/Title(3.3.1. The NetBIOS Name Cache)/Dest[1154 0 R/XYZ 0 319 0]/Next 1411 0 R>>endobj -1411 0 obj<</Parent 1409 0 R/Title(3.3.2. The LMHOSTS file)/Dest[1156 0 R/XYZ 0 786 0]/Prev 1410 0 R/Next 1412 0 R>>endobj -1412 0 obj<</Parent 1409 0 R/Title(3.3.3. HOSTS file)/Dest[1158 0 R/XYZ 0 512 0]/Prev 1411 0 R/Next 1413 0 R>>endobj -1413 0 obj<</Parent 1409 0 R/Title(3.3.4. DNS Lookup)/Dest[1158 0 R/XYZ 0 414 0]/Prev 1412 0 R/Next 1414 0 R>>endobj -1414 0 obj<</Parent 1409 0 R/Title(3.3.5. WINS Lookup)/Dest[1158 0 R/XYZ 0 276 0]/Prev 1413 0 R>>endobj -1415 0 obj<</Parent 1402 0 R/Title(3.4. How browsing functions and how to deploy stable and dependable browsing using Samba)/Dest[1160 0 R/XYZ 0 723 0]/Prev 1409 0 R/Next 1416 0 R>>endobj -1416 0 obj<</Parent 1402 0 R/Count -3/First 1417 0 R/Last 1419 0 R/Title(3.5. MS Windows security options and how to configure Samba for seemless integration)/Dest[1160 0 R/XYZ 0 179 0]/Prev 1415 0 R/Next 1420 0 R>>endobj -1417 0 obj<</Parent 1416 0 R/Title(3.5.1. Use MS Windows NT as an authentication server)/Dest[1164 0 R/XYZ 0 786 0]/Next 1418 0 R>>endobj -1418 0 obj<</Parent 1416 0 R/Title(3.5.2. Make Samba a member of an MS Windows NT security domain)/Dest[1164 0 R/XYZ 0 537 0]/Prev 1417 0 R/Next 1419 0 R>>endobj -1419 0 obj<</Parent 1416 0 R/Title(3.5.3. Configure Samba as an authentication server)/Dest[1164 0 R/XYZ 0 185 0]/Prev 1418 0 R>>endobj -1420 0 obj<</Parent 1402 0 R/Title(3.6. Conclusions)/Dest[1166 0 R/XYZ 0 316 0]/Prev 1416 0 R>>endobj -1421 0 obj<</Parent 1362 0 R/Count -3/First 1422 0 R/Last 1424 0 R/Title(Chapter 4. Configuring PAM for distributed but centrally managed authentication)/Dest[1168 0 R/XYZ 0 786 0]/Prev 1402 0 R/Next 1425 0 R>>endobj -1422 0 obj<</Parent 1421 0 R/Title(4.1. Samba and PAM)/Dest[1168 0 R/XYZ 0 738 0]/Next 1423 0 R>>endobj -1423 0 obj<</Parent 1421 0 R/Title(4.2. Distributed Authentication)/Dest[1170 0 R/XYZ 0 201 0]/Prev 1422 0 R/Next 1424 0 R>>endobj -1424 0 obj<</Parent 1421 0 R/Title(4.3. PAM Configuration in smb.conf)/Dest[1172 0 R/XYZ 0 758 0]/Prev 1423 0 R>>endobj -1425 0 obj<</Parent 1362 0 R/Count -1/First 1426 0 R/Last 1426 0 R/Title(Chapter 5. Hosting a Microsoft Distributed File System tree on Samba)/Dest[1174 0 R/XYZ 0 786 0]/Prev 1421 0 R/Next 1428 0 R>>endobj -1426 0 obj<</Parent 1425 0 R/Count -1/First 1427 0 R/Last 1427 0 R/Title(5.1. Instructions)/Dest[1174 0 R/XYZ 0 738 0]>>endobj -1427 0 obj<</Parent 1426 0 R/Title(5.1.1. Notes)/Dest[1176 0 R/XYZ 0 705 0]>>endobj -1428 0 obj<</Parent 1362 0 R/Count -7/First 1429 0 R/Last 1437 0 R/Title(Chapter 6. UNIX Permission Bits and Windows NT Access Control Lists)/Dest[1178 0 R/XYZ 0 786 0]/Prev 1425 0 R/Next 1438 0 R>>endobj -1429 0 obj<</Parent 1428 0 R/Title(6.1. Viewing and changing UNIX permissions using the NT security dialogs)/Dest[1178 0 R/XYZ 0 738 0]/Next 1430 0 R>>endobj -1430 0 obj<</Parent 1428 0 R/Title(6.2. How to view file security on a Samba share)/Dest[1178 0 R/XYZ 0 550 0]/Prev 1429 0 R/Next 1431 0 R>>endobj -1431 0 obj<</Parent 1428 0 R/Title(6.3. Viewing file ownership)/Dest[1178 0 R/XYZ 0 383 0]/Prev 1430 0 R/Next 1432 0 R>>endobj -1432 0 obj<</Parent 1428 0 R/Count -2/First 1433 0 R/Last 1434 0 R/Title(6.4. Viewing file or directory permissions)/Dest[1180 0 R/XYZ 0 718 0]/Prev 1431 0 R/Next 1435 0 R>>endobj -1433 0 obj<</Parent 1432 0 R/Title(6.4.1. File Permissions)/Dest[1180 0 R/XYZ 0 485 0]/Next 1434 0 R>>endobj -1434 0 obj<</Parent 1432 0 R/Title(6.4.2. Directory Permissions)/Dest[1180 0 R/XYZ 0 241 0]/Prev 1433 0 R>>endobj -1435 0 obj<</Parent 1428 0 R/Title(6.5. Modifying file or directory permissions)/Dest[1182 0 R/XYZ 0 745 0]/Prev 1432 0 R/Next 1436 0 R>>endobj -1436 0 obj<</Parent 1428 0 R/Title(6.6. Interaction with the standard Samba create mask parameters)/Dest[1182 0 R/XYZ 0 313 0]/Prev 1435 0 R/Next 1437 0 R>>endobj -1437 0 obj<</Parent 1428 0 R/Title(6.7. Interaction with the standard Samba file attribute mapping)/Dest[1186 0 R/XYZ 0 652 0]/Prev 1436 0 R>>endobj -1438 0 obj<</Parent 1362 0 R/Count -4/First 1439 0 R/Last 1451 0 R/Title(Chapter 7. Printing Support in Samba 2.2.x)/Dest[1188 0 R/XYZ 0 786 0]/Prev 1428 0 R/Next 1452 0 R>>endobj -1439 0 obj<</Parent 1438 0 R/Title(7.1. Introduction)/Dest[1188 0 R/XYZ 0 762 0]/Next 1440 0 R>>endobj -1440 0 obj<</Parent 1438 0 R/Count -5/First 1441 0 R/Last 1445 0 R/Title(7.2. Configuration)/Dest[1188 0 R/XYZ 0 331 0]/Prev 1439 0 R/Next 1446 0 R>>endobj -1441 0 obj<</Parent 1440 0 R/Title(7.2.1. Creating [print$])/Dest[1190 0 R/XYZ 0 755 0]/Next 1442 0 R>>endobj -1442 0 obj<</Parent 1440 0 R/Title(7.2.2. Setting Drivers for Existing Printers)/Dest[1192 0 R/XYZ 0 524 0]/Prev 1441 0 R/Next 1443 0 R>>endobj -1443 0 obj<</Parent 1440 0 R/Title(7.2.3. Support a large number of printers)/Dest[1194 0 R/XYZ 0 771 0]/Prev 1442 0 R/Next 1444 0 R>>endobj -1444 0 obj<</Parent 1440 0 R/Title(7.2.4. Adding New Printers via the Windows NT APW)/Dest[1194 0 R/XYZ 0 401 0]/Prev 1443 0 R/Next 1445 0 R>>endobj -1445 0 obj<</Parent 1440 0 R/Title(7.2.5. Samba and Printer Ports)/Dest[1196 0 R/XYZ 0 224 0]/Prev 1444 0 R>>endobj -1446 0 obj<</Parent 1438 0 R/Count -4/First 1447 0 R/Last 1450 0 R/Title(7.3. The Imprints Toolset)/Dest[1198 0 R/XYZ 0 705 0]/Prev 1440 0 R/Next 1451 0 R>>endobj -1447 0 obj<</Parent 1446 0 R/Title(7.3.1. What is Imprints?)/Dest[1198 0 R/XYZ 0 603 0]/Next 1448 0 R>>endobj -1448 0 obj<</Parent 1446 0 R/Title(7.3.2. Creating Printer Driver Packages)/Dest[1198 0 R/XYZ 0 479 0]/Prev 1447 0 R/Next 1449 0 R>>endobj -1449 0 obj<</Parent 1446 0 R/Title(7.3.3. The Imprints server)/Dest[1198 0 R/XYZ 0 394 0]/Prev 1448 0 R/Next 1450 0 R>>endobj -1450 0 obj<</Parent 1446 0 R/Title(7.3.4. The Installation Client)/Dest[1198 0 R/XYZ 0 296 0]/Prev 1449 0 R>>endobj -1451 0 obj<</Parent 1438 0 R/Title(7.4. Migration to from Samba 2.0.x to 2.2.x)/Dest[1200 0 R/XYZ 0 412 0]/Prev 1446 0 R>>endobj -1452 0 obj<</Parent 1362 0 R/Count -9/First 1453 0 R/Last 1461 0 R/Title(Chapter 8. Debugging Printing Problems)/Dest[1204 0 R/XYZ 0 786 0]/Prev 1438 0 R/Next 1462 0 R>>endobj -1453 0 obj<</Parent 1452 0 R/Title(8.1. Introduction)/Dest[1204 0 R/XYZ 0 762 0]/Next 1454 0 R>>endobj -1454 0 obj<</Parent 1452 0 R/Title(8.2. Debugging printer problems)/Dest[1206 0 R/XYZ 0 786 0]/Prev 1453 0 R/Next 1455 0 R>>endobj -1455 0 obj<</Parent 1452 0 R/Title(8.3. What printers do I have?)/Dest[1206 0 R/XYZ 0 331 0]/Prev 1454 0 R/Next 1456 0 R>>endobj -1456 0 obj<</Parent 1452 0 R/Title(8.4. Setting up printcap and print servers)/Dest[1208 0 R/XYZ 0 786 0]/Prev 1455 0 R/Next 1457 0 R>>endobj -1457 0 obj<</Parent 1452 0 R/Title(8.5. Job sent, no output)/Dest[1208 0 R/XYZ 0 357 0]/Prev 1456 0 R/Next 1458 0 R>>endobj -1458 0 obj<</Parent 1452 0 R/Title(8.6. Job sent, strange output)/Dest[1210 0 R/XYZ 0 699 0]/Prev 1457 0 R/Next 1459 0 R>>endobj -1459 0 obj<</Parent 1452 0 R/Title(8.7. Raw PostScript printed)/Dest[1210 0 R/XYZ 0 351 0]/Prev 1458 0 R/Next 1460 0 R>>endobj -1460 0 obj<</Parent 1452 0 R/Title(8.8. Advanced Printing)/Dest[1210 0 R/XYZ 0 263 0]/Prev 1459 0 R/Next 1461 0 R>>endobj -1461 0 obj<</Parent 1452 0 R/Title(8.9. Real debugging)/Dest[1212 0 R/XYZ 0 786 0]/Prev 1460 0 R>>endobj -1462 0 obj<</Parent 1362 0 R/Count -2/First 1463 0 R/Last 1464 0 R/Title(Chapter 9. Security levels)/Dest[1214 0 R/XYZ 0 786 0]/Prev 1452 0 R/Next 1465 0 R>>endobj -1463 0 obj<</Parent 1462 0 R/Title(9.1. Introduction)/Dest[1214 0 R/XYZ 0 762 0]/Next 1464 0 R>>endobj -1464 0 obj<</Parent 1462 0 R/Title(9.2. More complete description of security levels)/Dest[1214 0 R/XYZ 0 520 0]/Prev 1463 0 R>>endobj -1465 0 obj<</Parent 1362 0 R/Count -3/First 1466 0 R/Last 1468 0 R/Title(Chapter 10. security = domain in Samba 2.x)/Dest[1218 0 R/XYZ 0 786 0]/Prev 1462 0 R/Next 1469 0 R>>endobj -1466 0 obj<</Parent 1465 0 R/Title(10.1. Joining an NT Domain with Samba 2.2)/Dest[1218 0 R/XYZ 0 762 0]/Next 1467 0 R>>endobj -1467 0 obj<</Parent 1465 0 R/Title(10.2. Samba and Windows 2000 Domains)/Dest[1220 0 R/XYZ 0 415 0]/Prev 1466 0 R/Next 1468 0 R>>endobj -1468 0 obj<</Parent 1465 0 R/Title(10.3. Why is this better than security = server?)/Dest[1220 0 R/XYZ 0 207 0]/Prev 1467 0 R>>endobj -1469 0 obj<</Parent 1362 0 R/Count -7/First 1470 0 R/Last 1485 0 R/Title(Chapter 11. Unified Logons between Windows NT and UNIX using Winbind)/Dest[1224 0 R/XYZ 0 786 0]/Prev 1465 0 R/Next 1486 0 R>>endobj -1470 0 obj<</Parent 1469 0 R/Title(11.1. Abstract)/Dest[1224 0 R/XYZ 0 738 0]/Next 1471 0 R>>endobj -1471 0 obj<</Parent 1469 0 R/Title(11.2. Introduction)/Dest[1224 0 R/XYZ 0 597 0]/Prev 1470 0 R/Next 1472 0 R>>endobj -1472 0 obj<</Parent 1469 0 R/Count -1/First 1473 0 R/Last 1473 0 R/Title(11.3. What Winbind Provides)/Dest[1224 0 R/XYZ 0 284 0]/Prev 1471 0 R/Next 1474 0 R>>endobj -1473 0 obj<</Parent 1472 0 R/Title(11.3.1. Target Uses)/Dest[1226 0 R/XYZ 0 613 0]>>endobj -1474 0 obj<</Parent 1469 0 R/Count -5/First 1475 0 R/Last 1479 0 R/Title(11.4. How Winbind Works)/Dest[1226 0 R/XYZ 0 462 0]/Prev 1472 0 R/Next 1480 0 R>>endobj -1475 0 obj<</Parent 1474 0 R/Title(11.4.1. Microsoft Remote Procedure Calls)/Dest[1226 0 R/XYZ 0 347 0]/Next 1476 0 R>>endobj -1476 0 obj<</Parent 1474 0 R/Title(11.4.2. Name Service Switch)/Dest[1228 0 R/XYZ 0 786 0]/Prev 1475 0 R/Next 1477 0 R>>endobj -1477 0 obj<</Parent 1474 0 R/Title(11.4.3. Pluggable Authentication Modules)/Dest[1228 0 R/XYZ 0 345 0]/Prev 1476 0 R/Next 1478 0 R>>endobj -1478 0 obj<</Parent 1474 0 R/Title(11.4.4. User and Group ID Allocation)/Dest[1230 0 R/XYZ 0 718 0]/Prev 1477 0 R/Next 1479 0 R>>endobj -1479 0 obj<</Parent 1474 0 R/Title(11.4.5. Result Caching)/Dest[1230 0 R/XYZ 0 541 0]/Prev 1478 0 R>>endobj -1480 0 obj<</Parent 1469 0 R/Count -3/First 1481 0 R/Last 1483 0 R/Title(11.5. Installation and Configuration)/Dest[1230 0 R/XYZ 0 403 0]/Prev 1474 0 R/Next 1484 0 R>>endobj -1481 0 obj<</Parent 1480 0 R/Title(11.5.1. Introduction)/Dest[1230 0 R/XYZ 0 262 0]/Next 1482 0 R>>endobj -1482 0 obj<</Parent 1480 0 R/Title(11.5.2. Requirements)/Dest[1232 0 R/XYZ 0 652 0]/Prev 1481 0 R/Next 1483 0 R>>endobj -1483 0 obj<</Parent 1480 0 R/Title(11.5.3. Testing Things Out)/Dest[1232 0 R/XYZ 0 383 0]/Prev 1482 0 R>>endobj -1484 0 obj<</Parent 1469 0 R/Title(11.6. Limitations)/Dest[1246 0 R/XYZ 0 349 0]/Prev 1480 0 R/Next 1485 0 R>>endobj -1485 0 obj<</Parent 1469 0 R/Title(11.7. Conclusion)/Dest[1248 0 R/XYZ 0 786 0]/Prev 1484 0 R>>endobj -1486 0 obj<</Parent 1362 0 R/Count -9/First 1487 0 R/Last 1500 0 R/Title(Chapter 12. How to Configure Samba 2.2 as a Primary Domain Controller)/Dest[1250 0 R/XYZ 0 786 0]/Prev 1469 0 R/Next 1501 0 R>>endobj -1487 0 obj<</Parent 1486 0 R/Title(12.1. Prerequisite Reading)/Dest[1250 0 R/XYZ 0 738 0]/Next 1488 0 R>>endobj -1488 0 obj<</Parent 1486 0 R/Title(12.2. Background)/Dest[1250 0 R/XYZ 0 637 0]/Prev 1487 0 R/Next 1489 0 R>>endobj -1489 0 obj<</Parent 1486 0 R/Title(12.3. Configuring the Samba Domain Controller)/Dest[1252 0 R/XYZ 0 771 0]/Prev 1488 0 R/Next 1490 0 R>>endobj -1490 0 obj<</Parent 1486 0 R/Count -3/First 1491 0 R/Last 1493 0 R/Title(12.4. Creating Machine Trust Accounts and Joining Clients to the Domain)/Dest[1254 0 R/XYZ 0 665 0]/Prev 1489 0 R/Next 1494 0 R>>endobj -1491 0 obj<</Parent 1490 0 R/Title(12.4.1. Manual Creation of Machine Trust Accounts)/Dest[1254 0 R/XYZ 0 279 0]/Next 1492 0 R>>endobj -1492 0 obj<</Parent 1490 0 R/Title(12.4.2. "On-the-Fly" Creation of Machine Trust Accounts)/Dest[1256 0 R/XYZ 0 411 0]/Prev 1491 0 R/Next 1493 0 R>>endobj -1493 0 obj<</Parent 1490 0 R/Title(12.4.3. Joining the Client to the Domain)/Dest[1256 0 R/XYZ 0 202 0]/Prev 1492 0 R>>endobj -1494 0 obj<</Parent 1486 0 R/Title(12.5. Common Problems and Errors)/Dest[1258 0 R/XYZ 0 520 0]/Prev 1490 0 R/Next 1495 0 R>>endobj -1495 0 obj<</Parent 1486 0 R/Title(12.6. System Policies and Profiles)/Dest[1260 0 R/XYZ 0 261 0]/Prev 1494 0 R/Next 1496 0 R>>endobj -1496 0 obj<</Parent 1486 0 R/Title(12.7. What other help can I get?)/Dest[1262 0 R/XYZ 0 256 0]/Prev 1495 0 R/Next 1497 0 R>>endobj -1497 0 obj<</Parent 1486 0 R/Count -2/First 1498 0 R/Last 1499 0 R/Title(12.8. Domain Control for Windows 9x/ME)/Dest[1268 0 R/XYZ 0 599 0]/Prev 1496 0 R/Next 1500 0 R>>endobj -1498 0 obj<</Parent 1497 0 R/Title(12.8.1. Configuration Instructions: Network Logons)/Dest[1270 0 R/XYZ 0 613 0]/Next 1499 0 R>>endobj -1499 0 obj<</Parent 1497 0 R/Title(12.8.2. Configuration Instructions: Setting up Roaming User Profiles)/Dest[1270 0 R/XYZ 0 179 0]/Prev 1498 0 R>>endobj -1500 0 obj<</Parent 1486 0 R/Title(12.9. DOMAIN_CONTROL.txt : Windows NT Domain Control & Samba)/Dest[1278 0 R/XYZ 0 188 0]/Prev 1497 0 R>>endobj -1501 0 obj<</Parent 1362 0 R/Count -5/First 1502 0 R/Last 1508 0 R/Title(Chapter 13. How to Act as a Backup Domain Controller in a Purely Samba Controlled Domain)/Dest[1284 0 R/XYZ 0 786 0]/Prev 1486 0 R/Next 1510 0 R>>endobj -1502 0 obj<</Parent 1501 0 R/Title(13.1. Prerequisite Reading)/Dest[1284 0 R/XYZ 0 738 0]/Next 1503 0 R>>endobj -1503 0 obj<</Parent 1501 0 R/Title(13.2. Background)/Dest[1284 0 R/XYZ 0 650 0]/Prev 1502 0 R/Next 1504 0 R>>endobj -1504 0 obj<</Parent 1501 0 R/Count -2/First 1505 0 R/Last 1506 0 R/Title(13.3. What qualifies a Domain Controller on the network?)/Dest[1284 0 R/XYZ 0 278 0]/Prev 1503 0 R/Next 1507 0 R>>endobj -1505 0 obj<</Parent 1504 0 R/Title(13.3.1. How does a Workstation find its domain controller?)/Dest[1286 0 R/XYZ 0 786 0]/Next 1506 0 R>>endobj -1506 0 obj<</Parent 1504 0 R/Title(13.3.2. When is the PDC needed?)/Dest[1286 0 R/XYZ 0 662 0]/Prev 1505 0 R>>endobj -1507 0 obj<</Parent 1501 0 R/Title(13.4. Can Samba be a Backup Domain Controller?)/Dest[1286 0 R/XYZ 0 577 0]/Prev 1504 0 R/Next 1508 0 R>>endobj -1508 0 obj<</Parent 1501 0 R/Count -1/First 1509 0 R/Last 1509 0 R/Title(13.5. How do I set up a Samba BDC?)/Dest[1286 0 R/XYZ 0 436 0]/Prev 1507 0 R>>endobj -1509 0 obj<</Parent 1508 0 R/Title(13.5.1. How do I replicate the smbpasswd file?)/Dest[1288 0 R/XYZ 0 673 0]>>endobj -1510 0 obj<</Parent 1362 0 R/Count -10/First 1511 0 R/Last 1522 0 R/Title(Chapter 14. Storing Samba's User/Machine Account information in an LDAP Directory)/Dest[1290 0 R/XYZ 0 786 0]/Prev 1501 0 R/Next 1523 0 R>>endobj -1511 0 obj<</Parent 1510 0 R/Title(14.1. Purpose)/Dest[1290 0 R/XYZ 0 738 0]/Next 1512 0 R>>endobj -1512 0 obj<</Parent 1510 0 R/Title(14.2. Introduction)/Dest[1290 0 R/XYZ 0 465 0]/Prev 1511 0 R/Next 1513 0 R>>endobj -1513 0 obj<</Parent 1510 0 R/Title(14.3. Supported LDAP Servers)/Dest[1292 0 R/XYZ 0 626 0]/Prev 1512 0 R/Next 1514 0 R>>endobj -1514 0 obj<</Parent 1510 0 R/Title(14.4. Schema and Relationship to the RFC 2307 posixAccount)/Dest[1292 0 R/XYZ 0 524 0]/Prev 1513 0 R/Next 1515 0 R>>endobj -1515 0 obj<</Parent 1510 0 R/Count -2/First 1516 0 R/Last 1517 0 R/Title(14.5. Configuring Samba with LDAP)/Dest[1294 0 R/XYZ 0 786 0]/Prev 1514 0 R/Next 1518 0 R>>endobj -1516 0 obj<</Parent 1515 0 R/Title(14.5.1. OpenLDAP configuration)/Dest[1294 0 R/XYZ 0 766 0]/Next 1517 0 R>>endobj -1517 0 obj<</Parent 1515 0 R/Title(14.5.2. Configuring Samba)/Dest[1294 0 R/XYZ 0 196 0]/Prev 1516 0 R>>endobj -1518 0 obj<</Parent 1510 0 R/Title(14.6. Accounts and Groups management)/Dest[1296 0 R/XYZ 0 296 0]/Prev 1515 0 R/Next 1519 0 R>>endobj -1519 0 obj<</Parent 1510 0 R/Title(14.7. Security and sambaAccount)/Dest[1298 0 R/XYZ 0 771 0]/Prev 1518 0 R/Next 1520 0 R>>endobj -1520 0 obj<</Parent 1510 0 R/Title(14.8. LDAP specials attributes for sambaAccounts)/Dest[1298 0 R/XYZ 0 389 0]/Prev 1519 0 R/Next 1521 0 R>>endobj -1521 0 obj<</Parent 1510 0 R/Title(14.9. Example LDIF Entries for a sambaAccount)/Dest[1300 0 R/XYZ 0 375 0]/Prev 1520 0 R/Next 1522 0 R>>endobj -1522 0 obj<</Parent 1510 0 R/Title(14.10. Comments)/Dest[1302 0 R/XYZ 0 544 0]/Prev 1521 0 R>>endobj -1523 0 obj<</Parent 1362 0 R/Count -8/First 1524 0 R/Last 1532 0 R/Title(Chapter 15. Using samba 3.0 with ActiveDirectory support)/Dest[1304 0 R/XYZ 0 786 0]/Prev 1510 0 R/Next 1533 0 R>>endobj -1524 0 obj<</Parent 1523 0 R/Title(15.1. Installing the required packages for Debian)/Dest[1304 0 R/XYZ 0 553 0]/Next 1525 0 R>>endobj -1525 0 obj<</Parent 1523 0 R/Title(15.2. Installing the required packages for RedHat)/Dest[1304 0 R/XYZ 0 446 0]/Prev 1524 0 R/Next 1526 0 R>>endobj -1526 0 obj<</Parent 1523 0 R/Title(15.3. Compile Samba)/Dest[1304 0 R/XYZ 0 270 0]/Prev 1525 0 R/Next 1527 0 R>>endobj -1527 0 obj<</Parent 1523 0 R/Title(15.4. Setup your /etc/krb5.conf)/Dest[1306 0 R/XYZ 0 583 0]/Prev 1526 0 R/Next 1528 0 R>>endobj -1528 0 obj<</Parent 1523 0 R/Count -1/First 1529 0 R/Last 1529 0 R/Title(15.5. Create the computer account)/Dest[1306 0 R/XYZ 0 266 0]/Prev 1527 0 R/Next 1530 0 R>>endobj -1529 0 obj<</Parent 1528 0 R/Title(15.5.1. Possible errors)/Dest[1306 0 R/XYZ 0 178 0]>>endobj -1530 0 obj<</Parent 1523 0 R/Title(15.6. Test your server setup)/Dest[1308 0 R/XYZ 0 718 0]/Prev 1528 0 R/Next 1531 0 R>>endobj -1531 0 obj<</Parent 1523 0 R/Title(15.7. Testing with smbclient)/Dest[1308 0 R/XYZ 0 630 0]/Prev 1530 0 R/Next 1532 0 R>>endobj -1532 0 obj<</Parent 1523 0 R/Title(15.8. Notes)/Dest[1308 0 R/XYZ 0 555 0]/Prev 1531 0 R>>endobj -1533 0 obj<</Parent 1362 0 R/Count -11/First 1534 0 R/Last 1545 0 R/Title(Chapter 16. Improved browsing in samba)/Dest[1310 0 R/XYZ 0 786 0]/Prev 1523 0 R/Next 1546 0 R>>endobj -1534 0 obj<</Parent 1533 0 R/Title(16.1. Overview of browsing)/Dest[1310 0 R/XYZ 0 762 0]/Next 1535 0 R>>endobj -1535 0 obj<</Parent 1533 0 R/Title(16.2. Browsing support in samba)/Dest[1310 0 R/XYZ 0 568 0]/Prev 1534 0 R/Next 1536 0 R>>endobj -1536 0 obj<</Parent 1533 0 R/Title(16.3. Problem resolution)/Dest[1310 0 R/XYZ 0 189 0]/Prev 1535 0 R/Next 1537 0 R>>endobj -1537 0 obj<</Parent 1533 0 R/Count -1/First 1538 0 R/Last 1538 0 R/Title(16.4. Browsing across subnets)/Dest[1312 0 R/XYZ 0 586 0]/Prev 1536 0 R/Next 1539 0 R>>endobj -1538 0 obj<</Parent 1537 0 R/Title(16.4.1. How does cross subnet browsing work ?)/Dest[1312 0 R/XYZ 0 326 0]>>endobj -1539 0 obj<</Parent 1533 0 R/Title(16.5. Setting up a WINS server)/Dest[1318 0 R/XYZ 0 613 0]/Prev 1537 0 R/Next 1540 0 R>>endobj -1540 0 obj<</Parent 1533 0 R/Title(16.6. Setting up Browsing in a WORKGROUP)/Dest[1320 0 R/XYZ 0 665 0]/Prev 1539 0 R/Next 1541 0 R>>endobj -1541 0 obj<</Parent 1533 0 R/Title(16.7. Setting up Browsing in a DOMAIN)/Dest[1322 0 R/XYZ 0 675 0]/Prev 1540 0 R/Next 1542 0 R>>endobj -1542 0 obj<</Parent 1533 0 R/Title(16.8. Forcing samba to be the master)/Dest[1322 0 R/XYZ 0 319 0]/Prev 1541 0 R/Next 1543 0 R>>endobj -1543 0 obj<</Parent 1533 0 R/Title(16.9. Making samba the domain master)/Dest[1324 0 R/XYZ 0 573 0]/Prev 1542 0 R/Next 1544 0 R>>endobj -1544 0 obj<</Parent 1533 0 R/Title(16.10. Note about broadcast addresses)/Dest[1326 0 R/XYZ 0 786 0]/Prev 1543 0 R/Next 1545 0 R>>endobj -1545 0 obj<</Parent 1533 0 R/Title(16.11. Multiple interfaces)/Dest[1326 0 R/XYZ 0 698 0]/Prev 1544 0 R>>endobj -1546 0 obj<</Parent 1362 0 R/Count -17/First 1547 0 R/Last 1566 0 R/Title(Chapter 17. Samba performance issues)/Dest[1328 0 R/XYZ 0 786 0]/Prev 1533 0 R/Next 1567 0 R>>endobj -1547 0 obj<</Parent 1546 0 R/Title(17.1. Comparisons)/Dest[1328 0 R/XYZ 0 762 0]/Next 1548 0 R>>endobj -1548 0 obj<</Parent 1546 0 R/Count -3/First 1549 0 R/Last 1551 0 R/Title(17.2. Oplocks)/Dest[1328 0 R/XYZ 0 502 0]/Prev 1547 0 R/Next 1552 0 R>>endobj -1549 0 obj<</Parent 1548 0 R/Title(17.2.1. Overview)/Dest[1328 0 R/XYZ 0 482 0]/Next 1550 0 R>>endobj -1550 0 obj<</Parent 1548 0 R/Title(17.2.2. Level2 Oplocks)/Dest[1328 0 R/XYZ 0 199 0]/Prev 1549 0 R/Next 1551 0 R>>endobj -1551 0 obj<</Parent 1548 0 R/Title(17.2.3. Old 'fake oplocks' option - deprecated)/Dest[1330 0 R/XYZ 0 705 0]/Prev 1550 0 R>>endobj -1552 0 obj<</Parent 1546 0 R/Title(17.3. Socket options)/Dest[1330 0 R/XYZ 0 567 0]/Prev 1548 0 R/Next 1553 0 R>>endobj -1553 0 obj<</Parent 1546 0 R/Title(17.4. Read size)/Dest[1330 0 R/XYZ 0 307 0]/Prev 1552 0 R/Next 1554 0 R>>endobj -1554 0 obj<</Parent 1546 0 R/Title(17.5. Max xmit)/Dest[1332 0 R/XYZ 0 771 0]/Prev 1553 0 R/Next 1555 0 R>>endobj -1555 0 obj<</Parent 1546 0 R/Title(17.6. Locking)/Dest[1332 0 R/XYZ 0 590 0]/Prev 1554 0 R/Next 1556 0 R>>endobj -1556 0 obj<</Parent 1546 0 R/Title(17.7. Share modes)/Dest[1332 0 R/XYZ 0 462 0]/Prev 1555 0 R/Next 1557 0 R>>endobj -1557 0 obj<</Parent 1546 0 R/Title(17.8. Log level)/Dest[1332 0 R/XYZ 0 242 0]/Prev 1556 0 R/Next 1558 0 R>>endobj -1558 0 obj<</Parent 1546 0 R/Title(17.9. Wide lines)/Dest[1334 0 R/XYZ 0 786 0]/Prev 1557 0 R/Next 1559 0 R>>endobj -1559 0 obj<</Parent 1546 0 R/Title(17.10. Read raw)/Dest[1334 0 R/XYZ 0 698 0]/Prev 1558 0 R/Next 1560 0 R>>endobj -1560 0 obj<</Parent 1546 0 R/Title(17.11. Write raw)/Dest[1334 0 R/XYZ 0 530 0]/Prev 1559 0 R/Next 1561 0 R>>endobj -1561 0 obj<</Parent 1546 0 R/Title(17.12. Read prediction)/Dest[1334 0 R/XYZ 0 402 0]/Prev 1560 0 R/Next 1562 0 R>>endobj -1562 0 obj<</Parent 1546 0 R/Title(17.13. Memory mapping)/Dest[1334 0 R/XYZ 0 182 0]/Prev 1561 0 R/Next 1563 0 R>>endobj -1563 0 obj<</Parent 1546 0 R/Title(17.14. Slow Clients)/Dest[1336 0 R/XYZ 0 692 0]/Prev 1562 0 R/Next 1564 0 R>>endobj -1564 0 obj<</Parent 1546 0 R/Title(17.15. Slow Logins)/Dest[1336 0 R/XYZ 0 564 0]/Prev 1563 0 R/Next 1565 0 R>>endobj -1565 0 obj<</Parent 1546 0 R/Title(17.16. Client tuning)/Dest[1336 0 R/XYZ 0 489 0]/Prev 1564 0 R/Next 1566 0 R>>endobj -1566 0 obj<</Parent 1546 0 R/Title(17.17. My Results)/Dest[1338 0 R/XYZ 0 441 0]/Prev 1565 0 R>>endobj -1567 0 obj<</Parent 1362 0 R/Count -5/First 1568 0 R/Last 1580 0 R/Title(Chapter 18. Samba and other CIFS clients)/Dest[1340 0 R/XYZ 0 786 0]/Prev 1546 0 R/Next 1581 0 R>>endobj -1568 0 obj<</Parent 1567 0 R/Title(18.1. Macintosh clients?)/Dest[1340 0 R/XYZ 0 721 0]/Next 1569 0 R>>endobj -1569 0 obj<</Parent 1567 0 R/Count -4/First 1570 0 R/Last 1573 0 R/Title(18.2. OS2 Client)/Dest[1340 0 R/XYZ 0 513 0]/Prev 1568 0 R/Next 1574 0 R>>endobj -1570 0 obj<</Parent 1569 0 R/Title(18.2.1. How can I configure OS/2 Warp Connect or OS/2 Warp 4 as a client for Samba?)/Dest[1340 0 R/XYZ 0 493 0]/Next 1571 0 R>>endobj -1571 0 obj<</Parent 1569 0 R/Title(18.2.2. How can I configure OS/2 Warp 3 \(not Connect\), OS/2 1.2, 1.3 or 2.x for Samba?)/Dest[1342 0 R/XYZ 0 786 0]/Prev 1570 0 R/Next 1572 0 R>>endobj -1572 0 obj<</Parent 1569 0 R/Title(18.2.3. Are there any other issues when OS/2 \(any version\) is used as a client?)/Dest[1342 0 R/XYZ 0 575 0]/Prev 1571 0 R/Next 1573 0 R>>endobj -1573 0 obj<</Parent 1569 0 R/Title(18.2.4. How do I get printer driver download working for OS/2 clients?)/Dest[1342 0 R/XYZ 0 461 0]/Prev 1572 0 R>>endobj -1574 0 obj<</Parent 1567 0 R/Count -4/First 1575 0 R/Last 1578 0 R/Title(18.3. Windows for Workgroups)/Dest[1342 0 R/XYZ 0 204 0]/Prev 1569 0 R/Next 1579 0 R>>endobj -1575 0 obj<</Parent 1574 0 R/Title(18.3.1. Use latest TCP/IP stack from Microsoft)/Dest[1342 0 R/XYZ 0 184 0]/Next 1576 0 R>>endobj -1576 0 obj<</Parent 1574 0 R/Title(18.3.2. Delete .pwl files after password change)/Dest[1344 0 R/XYZ 0 679 0]/Prev 1575 0 R/Next 1577 0 R>>endobj -1577 0 obj<</Parent 1574 0 R/Title(18.3.3. Configure WfW password handling)/Dest[1344 0 R/XYZ 0 528 0]/Prev 1576 0 R/Next 1578 0 R>>endobj -1578 0 obj<</Parent 1574 0 R/Title(18.3.4. Case handling of passwords)/Dest[1344 0 R/XYZ 0 430 0]/Prev 1577 0 R>>endobj -1579 0 obj<</Parent 1567 0 R/Title(18.4. Windows '95/'98)/Dest[1344 0 R/XYZ 0 345 0]/Prev 1574 0 R/Next 1580 0 R>>endobj -1580 0 obj<</Parent 1567 0 R/Title(18.5. Windows 2000 Service Pack 2)/Dest[1346 0 R/XYZ 0 771 0]/Prev 1579 0 R>>endobj -1581 0 obj<</Parent 1362 0 R/Count -2/First 1582 0 R/Last 1583 0 R/Title(Chapter 19. HOWTO Access Samba source code via CVS)/Dest[1348 0 R/XYZ 0 786 0]/Prev 1567 0 R/Next 1586 0 R>>endobj -1582 0 obj<</Parent 1581 0 R/Title(19.1. Introduction)/Dest[1348 0 R/XYZ 0 738 0]/Next 1583 0 R>>endobj -1583 0 obj<</Parent 1581 0 R/Count -2/First 1584 0 R/Last 1585 0 R/Title(19.2. CVS Access to samba.org)/Dest[1348 0 R/XYZ 0 610 0]/Prev 1582 0 R>>endobj -1584 0 obj<</Parent 1583 0 R/Title(19.2.1. Access via CVSweb)/Dest[1348 0 R/XYZ 0 522 0]/Next 1585 0 R>>endobj -1585 0 obj<</Parent 1583 0 R/Title(19.2.2. Access via cvs)/Dest[1348 0 R/XYZ 0 411 0]/Prev 1584 0 R>>endobj -1586 0 obj<</Parent 1362 0 R/Count -6/First 1587 0 R/Last 1592 0 R/Title(Chapter 20. Reporting Bugs)/Dest[1352 0 R/XYZ 0 786 0]/Prev 1581 0 R/Next 1593 0 R>>endobj -1587 0 obj<</Parent 1586 0 R/Title(20.1. Introduction)/Dest[1352 0 R/XYZ 0 762 0]/Next 1588 0 R>>endobj -1588 0 obj<</Parent 1586 0 R/Title(20.2. General info)/Dest[1352 0 R/XYZ 0 489 0]/Prev 1587 0 R/Next 1589 0 R>>endobj -1589 0 obj<</Parent 1586 0 R/Title(20.3. Debug levels)/Dest[1352 0 R/XYZ 0 348 0]/Prev 1588 0 R/Next 1590 0 R>>endobj -1590 0 obj<</Parent 1586 0 R/Title(20.4. Internal errors)/Dest[1354 0 R/XYZ 0 692 0]/Prev 1589 0 R/Next 1591 0 R>>endobj -1591 0 obj<</Parent 1586 0 R/Title(20.5. Attaching to a running process)/Dest[1354 0 R/XYZ 0 339 0]/Prev 1590 0 R/Next 1592 0 R>>endobj -1592 0 obj<</Parent 1586 0 R/Title(20.6. Patches)/Dest[1354 0 R/XYZ 0 238 0]/Prev 1591 0 R>>endobj -1593 0 obj<</Parent 1362 0 R/Title(Chapter 21. Group mapping HOWTO)/Dest[1356 0 R/XYZ 0 786 0]/Prev 1586 0 R/Next 1594 0 R>>endobj -1594 0 obj<</Parent 1362 0 R/Count -3/First 1595 0 R/Last 1597 0 R/Title(Chapter 22. Portability)/Dest[1358 0 R/XYZ 0 786 0]/Prev 1593 0 R>>endobj -1595 0 obj<</Parent 1594 0 R/Title(22.1. HPUX)/Dest[1358 0 R/XYZ 0 707 0]/Next 1596 0 R>>endobj -1596 0 obj<</Parent 1594 0 R/Title(22.2. SCO Unix)/Dest[1358 0 R/XYZ 0 500 0]/Prev 1595 0 R/Next 1597 0 R>>endobj -1597 0 obj<</Parent 1594 0 R/Title(22.3. DNIX)/Dest[1358 0 R/XYZ 0 385 0]/Prev 1596 0 R>>endobj -1598 0 obj<</Type/Catalog/Pages 1099 0 R/PageLayout/SinglePage/Outlines 1362 0 R/OpenAction[1114 0 R/XYZ null null 0]/PageMode/UseOutlines/PageLabels<</Nums[0<</P(title)>>1<</S/r>>7<</S/D/St 1/P()>>8<</S/D/St 2/P()>>13<</S/D/St 7/P()>>19<</S/D/St 13/P()>>24<</S/D/St 18/P()>>34<</S/D/St 28/P()>>37<</S/D/St 31/P()>>39<</S/D/St 33/P()>>44<</S/D/St 38/P()>>52<</S/D/St 46/P()>>57<</S/D/St 51/P()>>59<</S/D/St 53/P()>>62<</S/D/St 56/P()>>75<</S/D/St 69/P()>>92<</S/D/St 86/P()>>95<</S/D/St 89/P()>>102<</S/D/St 96/P()>>105<</S/D/St 99/P()>>114<</S/D/St 108/P()>>120<</S/D/St 114/P()>>124<</S/D/St 118/P()>>126<</S/D/St 120/P()>>128<</S/D/St 122/P()>>129<</S/D/St 123/P()>>]>>>>endobj +.(DëèàYóÑ'8¦3Ö•8šœ&Жi´À_L…Ÿ?Cÿê„6¾|ßí«çœNä?Lß“`õŽQ×tÞžÓx6¿c©Z¦©Ÿ¨6ówmÞ,–¶7j3¯Ž?Náq‡ÔÜ!æu„a9ÒìZ}Ç–¿äžÖϳèíè)¡VªyólZ« +åGòÐ17á6AAi0Uû‰÷„ðRö‹¥õõj„ã sóÉA¼lò:k/Æˉ3¦¬Ó‚jॼ^~¹Xn·Náᣥê_˜xqÍÔ~s Š…¶°´«;íÕʨwÑoÏkÐ$}Ê‘9‘øЋsÂbNûl¿ +¸‹„um=¹Z„bܱƋSšLÁõÙ”õÆ‘’nkó +endobj +1313 0 obj<</Type/Page/Parent 1068 0 R/Contents 1314 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F1 4 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 814 0 R>>endobj +1314 0 obj<</Filter/FlateDecode/Length 1443 >>stream +xV]oÛ6}ϯ¸ÈKS –#ù#O뺥-´[ã6К¢,Ö’¨‘”5ÿûKJŽëÛ†À±d’÷ãœsïåŸg)]â/¥«ŒfK’õÙer‰_ÿ>½=Ë®³dF‹e–Ì©¦yv\
o=ð~Z,²dIóë+<gøXEEX˜/çIvº°œ%7p–%×0—¥)vÄ·ÑÜl1ƒ‘s³ô>²EŠÿÅÇâûyu6½»¡ì’VòY^]Ó*iàyñîããê#½–R9G¢^r¦³R‘4¹¢ôæËÃËÕ·`%½ŠV&3Ž~•_¼o¼5y'½6MÜ4§46eWˆ›¢Yí(W;U™Vå¤
á±!Õì´5MŸÐ/Ãë¨sŠ]Ó׋7¦‘µØ@_”up¥›
=ìWõ×—ä
{¾¤I:‹AËRÉnÎqVTÎж1=::—¦®µ?Ç©FõÇ™&1ùŽvÂjÓ¹à{mEcŽ$¢]+'Ä\NœŠÆ4ûz<Ø9Ñ— +™:o#@€ºŠùûˆÈR´^Ùd0îæŒØŠ×r#;F…ð,¨6¹.4»Ž)~´_˜®ÉIx*½oo§SÇ„&ÆnâÓTî\RúºŠTÝÐ1ŸÁ1>ˆÁ:ûŸ¡v…k!Kݨ§Ýd»†Cn»u¥eµ`Óë*2jUkœöÆî©0vX!Ÿcõ!EAX>b¸r+6ʽ¼²êr;ûŠ¬Û7âÊé›ö€vÝmB˜¨<ï
†üz±wŒa¤td‹ówÊÂ'™ñhwBsiœlqQ¥ÀŒ‹j2K#otCÕôjýpÌ漣ŠÎÈ›ÏïQ…Tˆ¾´WôøøHkkzÇé°$ª +¯¼¡;²$Mã!Îî$xÝäz§óNTT@†ŽË5zDj6+c¶,¦¸e§¹ò®s¼1Vöm”§æGUuyÈškR¸mdŸ ë‚*˜eÖÊ÷ +]A4ûÀÕ vØ?
u´>ÖÌgôŽôó§{ºý± +¦ê×— }0 +geöìq?ákÑqcõÔHÍLØ}@}‚+nsùEš;Åëá2ô©‹s¨_^žÞ-Ž.iÕƒ-Orºmãø»ÅûO‡ùËmÓ”-z½¥2½¯À1Åǽt¡»Çö<µÂ¹ÞXp·oUqz—1\ÀtŒj4xqH +·g¾®^dOy-ÕòÎJwïã`XÇÄf1‚éÝõö$[Ðd17Üÿ~‹ž/¯“å"èJ—ìñ×ÕÙïgìðHendstream +endobj +1315 0 obj<</Type/Page/Parent 1068 0 R/Contents 1316 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F2 5 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R>>/XObject<<>>>>>>endobj +1316 0 obj<</Filter/FlateDecode/Length 591 >>stream +xu”Mo›@†ïüŠW=90`;>ÕiåR%UPs‰—Á&‚]gw±•ßÙ·ùP…@†¯÷™¿FR¾2,rÌ +È.J“糌Ÿóå‚Ÿ9߆PG—e4½™#ËPÖÞ¶X.PV`û4E)'å®±86miH8‚@Õ’N›7HѶTÁŠn# µr¢QÚÂí-[7žYÝIlRž&MBI°¹½^_•/QŠ8›%9'ž8±ÝrHy°Ø¡äîé,A(BöÆr-§ÕüË,œ‘f¬§¢µzß±œ!J|è˜cçE2÷±ü~ƒ’…æ"
|,CaCÐ_?'ß¼¡·'>Èô& Mb3|8!›@¨ŠS׃r +endobj +1317 0 obj<</Type/Page/Parent 1068 0 R/Contents 1318 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>/Annots 817 0 R>>endobj +1318 0 obj<</Filter/FlateDecode/Length 1601 >>stream +xuW]oÛ6}ϯ¸0,ù+vÜŶ¢kW`[k`(ÐZº’ØP¢FRqüïw.)9®’!±,[äý8÷Üsé/4Çß‚î–´ÚPÞ\̳9ÝÎï²[ºÝÞá~‰—c*å–ž.Ÿ?^,+<\-ÖÙ†Z¬ï²ÕðÉЗhh¹ÙdË熶[/®«ôz‹ÝÉåjÛèóÝnê«g^ÓrN»o+bXø&¿úÌuA·½ë+ÿj÷ýBV/îÒê›Õ-ÂÙWŸÚàlÑçAÛ6-º¥ÅbX´¼C>X´«™¸QÚ* +ÇÞSiíû +±‰OÚ“WÍ^ý¯™u•›ÓÍrü`â/ÃÊ3uÌÝàba@øûKm˜öËLGÛ“ï÷¤Îüdô›ñöšºdÌ3“. ‹jå)¯U[qáÀ“&æé8îñׄ¥¦F±2m$¦§„䛆Ţö
©@ÞJ¸ˆ9{9/…¸¨°b¼éóZÞ%‡\µòî<›R²ÙtœÊï±øÐŽ^3ú"à Š@¹
xI"G$_p¡s¸üŽùTÎöÙ’:¶€ƒµ¥kú60;±«qE¼×äïµ1žT[—@7øŒþa +êÈmn›.ëœ
6·Æg¾ÙSË?À‘H CŒŽûa@€ò$ìÈm2ú4dÚûŽóˆmˆ´ 8Ún¤ð1ƘßP¤-uÕ;%yZˆ[)6€çAJmÉ‚R3; @JÌ’âŽ!ÇÀ#Ô\áõíJppp ú|{Eë9ôÍÊ +@ËÎHhŸÚG!ú¯QÌ)ö_Ѳ4¶‡ÑÒû–Œµ÷°gûªŽÛð#ªÊå5؉v=ÔZú ‘nÁ„ äËsèxzÅ>š¤žÒ>ðž:U1Ø‘¡{3›*ÝÍdãT£d}ä–2¤Û2;ûð‚4¾K‚•Ä*Êí¹`¡½.04*§WŽÄÎY‡füSðÐI( +uŠñI¤…<ˆ¸ïÁ$¢Z4´Rz!nàG•YÒô)ôŠ'VpI¢Ü½„,Ò:I?£pž’G‚½ôˆÁˆË‹zÏU&ðBòbQVÊSí1• + a Ä<™÷‰•`S*Œô'š +åŒBc`“ôÅõçDÄ¢Ö ±ã|Œuƒ”½Éè=ÃZq×(_*šˆyJ݆ L«H·Åœ|mØö‚ëѨ'¾èœF1ëi#Ép%z'UÁ˜æ‰jE¤«M£§Ðþž|§òg£z'J™*[<FvK`³ëáàsu–ÍÛôh,ÛÕ©OÓ÷8/ƳÒæD&
7YžÑ×s,uê¨ÔgHJÓgÇ–iÆï=ÚÔ¶2¨¡xbÞ3w0‚ŽÞÃJÒ
Æ’q]FHLŠ‡,x~3†þZNy‹ìvµÄ1mmñŽƒÚ)zK‹ù©ãÃxN{K³Þ»™±¹2ƒŽ½Çç*û©™lÛúöŒÐ
ŸTöfŒ
Gð›ð—rŒUäšHMc2C^Œêäa@.íyªé!ÎÂËáé¥è•´E«p^ +ë>#aê–IP‰T¨¶Hn¸Ê{HÎ!?â`…!ô-ŠJ¡Ëê…žóÞé€@>pƒ¡‹.Œ A»ˆC.9Rpây +endobj +1319 0 obj<</Type/Page/Parent 1068 0 R/Contents 1320 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1320 0 obj<</Filter/FlateDecode/Length 1648 >>stream +x•WKo7¾ûWLu©Ä²ä‡ìèÁAlÀ@㺎Z €/Ü]TI®eýû~3ܵÙ>A€„Krf¾ÇõïÁŒ¦ø3£‹:SÙL'SšÏ¦“:»¼À¿Oð7hªåÃÉùÅäò½³óùû'æïø²88¾9£ÙŒ5‚Ï//hQO§´(Ç‹¥¦ÃÅOìAb²gÛbRzWçåá蘴Ka›Ï‡½d}CV?iK¿ïï7‘âÖy·m}icÒ’¢½{M¥‹®ùàž´T‰–*R¡µ£.ꊌ#o+8䔎f§ÀcQŸtˆÆ»H¾¦ïª-)‡Í|Ò¸È&eŽ×>P¡ÊÕF…*RéÛµJ¦0Ö¤- +h‘²wCr7¨¬õ1½Úí×:ÈÞ(a[µ%ç9<W§Äw.M³Ô•)G§ºÓ* …A0Âr¡) Æç©=쇋élú §X½V¡‡\Ñ?×?ȪÐhzò¶k5ÃͪTRRËñÍgšA¢¬Õ£Ó³ùK:8eI‡àCÌØÂľ“‹Éœ©¹¥ÄF#=ÝÞ-®î®þ 뇇?FÔê"C<À?H\a˜LÂG݈Բr`„¢;§Ÿ×ºL()Rv¯ìÍ¡Ð9't›˜èuð…*?àÛ´P¼@µê,ß + +ÔÁãD[TüÉ1¢Í—*À£*Å%Î +0ò–^w–ÑÙ±J+¿Áÿ?çf¥NZ[öÔ^DXÍv¸=ÝŒ,ÔèCL3`ònŒKßYæ%ú¾Zú
%Ïg‚¯ºêßþD¦¦µÑ ÝKÔªïBìsïD]½•Í(!kQˆúú +¶ißA›ªÈrã‚ò®×fîw©ªbÊAðë`Të*-‘ϧÙG‚(ã+¹Gõ8êVÌÍ òîW°oBi¬§-ªâyÄâÓnžT,:†”ÇRƒ¾Èåñ\ÐrÜ‘@<â\¨™žÐE©ÒÔ2|dª/Ë.€Ld–ŹVt3ˆµ…öÓ´rlå œuËmÆ*×tÜÚÏ1þKe"¾qß¡Ïkú8/zCÓ&ñœzÓÝ)‚jÃ59„à28»˜%f+7=JÇcÌÖƇ!ÒϪäQ÷6!°wÆ«Én½_‰’Фôxý„Ê‘ SÎ8í ’„Ñ:9ÓcÍ-'½k{¬ôƒ/AywB]%ÐÕ4\£æs_¢¿Õx?°þæIž:qŠèÑŒ;gžud2ô’);Ìü{§Kdëži…‘¨m¼è +¢Ot®®]#ü®ƒ +s+—9Py¤ øñPì-FÞp ("m–V?nõRhO³<ßǽè=8ðã6zé +÷·_G½,ø^žæXz™R0Zêbv®ørTŠñd…ÂñÒböi” +Àì…å„ +—5k +Fó{qxæû‡Ì=ߣ?Öà +çÛ€ïN—2a`ýx‹àº6Ï¿½.j”Ž·6ú$‡éG#ƒ”3zñ³¢®é¨ËËCósÇ»²÷ѯk¦]ŽÇnÍÓý"}"pÂÆ M~<Û7¡o<0afV!OdHN5x ¨ÃUžü¶ïûßôª=D¼ç0 ™y¹ÀFâþ]AQý¡9æy||sÙÿ”™áÇÓôò”æ§Óüèü~õíËÝÿc–¾úÏÕþ!ÇцGÓÏòø|ûH=›_Næç'xÊâq:›}æs׋ƒ¿þAÐ…eendstream +endobj +1321 0 obj<</Type/Page/Parent 1068 0 R/Contents 1322 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1322 0 obj<</Filter/FlateDecode/Length 1453 >>stream +x•WßoÛ6~Ï_që‹ÀVl9Nœ¼ÛúcźtC=òBK´ÅD5’Šãÿ~ß‘b,Y·¡¨[K<ÞÝwßwwþëlN3ü™ÓuJ‹+ʪ³Y²ZÑñÃìð<™Ñb~Ìér¶Lnh¾H®ÉHÚâðæ/8Œ/ts,èruÿ¦øëOþ¸>»xCéŒÖ[8¼º^Ñ:÷¦x’?Ý6T‰¦QõŽ~þüuýù|ý +osÊDYÊ<¤±ìÒ“6Þ@æʦ8N:éUrɉrp[e¬#UU8/œ˜Â"DÐÚžûèðNÐoošp<®ŽCÆëJ(Ì+|úh‘Þ†' F„?¢€’L×ÝXŸ1û«5`×µÇ_a@•†öÂr¼9ǽSO!ðRY‡Gxn,•puµ+œ%N³Êt¨Dÿ{m\L›ÐGç/·º’À`§2²®ÝnCêVU
+Ép´iå*¯GŽ,œIz’/eYÒVBÙšR>“•®mì°Ÿ$„äsS2t2Upͱp w닯é/ί>?äâÙŠ\’Ø‹CB_ Öˆ¾,™ÀÁŠíÅ I¦r¸$èL +Ãxô—Xá´±£p*áó¨…¸F +ž7þ®à 1êI•r‡¬
بR9V ]ø§9s”ov +hU¼~T@XÔ>“ÖBaw©™ÀZߟ0m]3:¡þ3*‘*0k˜ÒÈS(诒Õ0i&ÀðÜiê®h‡™T]H£ÜèÆH"bòm!¶Ñƒ–ÇBarÁF¢Œ€ÄéE5Èö´</Õ ·Ð|™ëji¡'êäWÛ!g=ÝDdY‡ ãô ¥£ Ð&”·†A÷¥Gµ2PïÍÛÐ+^%Q‡ó #t_Œ<>þ¹±N=I'ôÎË2@mu•|=Œç@ÙÓ2Æfò-FО…Yêݮǻ~PŸØ˜ÿÔ- Œ5îw{]ç
ãž +ñºDìÝBÕ0¢– Ô×sä2ü{Ì*áF–'@ :`|Á1¶§1°À>0®Õs:ÔÖÚÖ› o±“‹÷±«/¤Ë.^ +÷M]·G¹ô8ëÃ;¡Ÿ¾OÂ(ÝvUÇríwA.ºÿ€5Cl0£â:¢:iü+ÛŸ‚`W½µv¶Jæ¯Ë'¿^~„\^’«eÚõ¼tÆW¼[Ÿý~ö7£"2cendstream +endobj +1323 0 obj<</Type/Page/Parent 1068 0 R/Contents 1324 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F8 11 0 R/F9 12 0 R>>/XObject<<>>>>>>endobj +1324 0 obj<</Filter/FlateDecode/Length 1433 >>stream +x…VaoÛ6ýž_qÀÄdÅ’ÇÙ>mI³hq° óPÐes‘H•¤âúßï%'©šv âXâñîÝÝ»G~>Jh„ß„ÎSO)«ŽFñˆ¦éY<£ÉìßSüYIEX˜$³xúÚÂx4~mÇlF£øða7x€CöØú¾˜Æ“ÖùïKö(O°>½¾ tD˧ç3Zæao²ÁÂX/ÖªT~²ü÷èôzBIÒšÓYœÂxp+ªµ ±ŽŒ&|U¹$+ôF’)¨.…/ŒO~+Ii/m!2I¢,Ûg›ÚšGÞ®iãa°{Ç¡G4LÆmÀÌTµðj]ʘ–[Xf[QÃ%eF{¡´{Š9tµÌT¡2ÄdØÅ×HØÓ:§Æñ7Ç©Äm¦”œw™Ž'( 2}»¸»ÿ¶çèUX<v¤ªº”•Œ 黦>¼²{ÚXÓÔ0sI!E=tñ…Íi5 +hAxÃ|.D;„¨Q¯3(™m0LJ®"ô
úi¨vÊoÌ¯Ê ‰1;™·zÔO ¨ ç&kxjaŸôíð5W T«Ñè$9ùDüµæ «…s»|5˜€[Õôḽ¼¡;¾´/5´®’!_M¦Ìé)³XAB»˜¯Äž´Zæ·Ûªš…Z{Z^.Nç òÙ°y,Z}†%Kt¯‚™O2ð$¦¿P>ÖÅÐ&Þ=…zn0Û7µ§\xAïŠgÕxVÏYr×Ù]ð@£àw7WãÙ]žó¼²ŠS¦Ûw·1Í‘’#ñnp‰ +kªPh¤¯c—™#Q®½±ápzqBÀIÔ*"5&G$Ý:<•ÞÆÔ±«óïK=/†Q²ãÌù@Ù(¡ã?oÚç áŒF‰•Fg˜û\
4ñ›&A:º¶¼&¿hОv,¥,<“IÂm¸.¡Žk+pØ°_g*
IŸü×XÛ.w<Yï)—…hJ4Y*»®Df
}¸ùôf~u˜‘Îuý¥[i‰·Ø„;AqÀØ°ÏN(Ø +ˆÀµ´GV¯ÃaŽeÅdch…aÙà+Î[*HŠ®µÐ5Iô‚ òJ…Aìå ×–ž{Z‡C»*$ŒicÙ[‡DÞñ©Njàún^ƒŽUq¸=ßÈ¿ì.øÚ’Ä“q +©Æÿ!ÖÔýÄ›úLô©ósÀ$›^o<RÝûÃöÊ<ÊÏxøirå£ÞæFˆ +endobj +1325 0 obj<</Type/Page/Parent 1068 0 R/Contents 1326 0 R/MediaBox[0 0 595 792]/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 7 0 R/F5 8 0 R/F8 11 0 R>>/XObject<<>>>>>>endobj +1326 0 obj<</Filter/FlateDecode/Length 651 >>stream +xÅUMOÛ@½çWŒFŠ¯¿S© !JE„„6ö&1¬½awÝŠÏì:NŠS‹c)¶wfÞ¼7Îë„B€_ +YQ +E= HžÃáGñ!€4¡dqžá}œ +ŠÃ +}ñ)›ï-4 +Ir0EAFò]Hv°„IŒŽÜÁr±°ˆÈgÿƒÙÏ®˜Ãb”ÄQ)RHÒ¥s`Qx°û<×[wWp¥¤:]<Oð)jAož|œôa…PÂÞ—Áˆƒ2ÚZήc ÔRñ;.~˜9Nˆ¾m
˜M¥¡jðŠµ©‡.«ë‚<Í
o«’À<Çk Ó’£\„îi’µK$ú´ÃíÇTÖò7E¬iœÍF•¢“+Å”ÁŒÕcÌJ: ѳí‘âGOoOglÌÑ(æº6 -‹B[Tz2âðÛÎV†+(g¦jÖ®ól‰…vý×ð&[{Ö +endobj +1327 0 obj<</Count 24/First 1328 0 R/Last 1549 0 R>>endobj +1328 0 obj<</Parent 1327 0 R/Title(Table of Contents)/Dest[1071 0 R/XYZ 0 756 0]/Next 1329 0 R>>endobj +1329 0 obj<</Parent 1327 0 R/Count -1/First 1330 0 R/Last 1330 0 R/Title(SAMBA Project Documentation)/Dest[1083 0 R/XYZ 0 786 0]/Prev 1328 0 R/Next 1331 0 R>>endobj +1330 0 obj<</Parent 1329 0 R/Title(SAMBA Team)/Dest[1083 0 R/XYZ 0 762 0]>>endobj +1331 0 obj<</Parent 1327 0 R/Title(Abstract)/Dest[1085 0 R/XYZ 0 786 0]/Prev 1329 0 R/Next 1332 0 R>>endobj +1332 0 obj<</Parent 1327 0 R/Count -10/First 1333 0 R/Last 1344 0 R/Title(How to Install and Test SAMBA)/Dest[1095 0 R/XYZ 0 786 0]/Prev 1331 0 R/Next 1351 0 R>>endobj +1333 0 obj<</Parent 1332 0 R/Title(Step 0: Read the man pages)/Dest[1095 0 R/XYZ 0 762 0]/Next 1334 0 R>>endobj +1334 0 obj<</Parent 1332 0 R/Title(Step 1: Building the Binaries)/Dest[1095 0 R/XYZ 0 621 0]/Prev 1333 0 R/Next 1335 0 R>>endobj +1335 0 obj<</Parent 1332 0 R/Title(Step 2: The all important step)/Dest[1095 0 R/XYZ 0 216 0]/Prev 1334 0 R/Next 1336 0 R>>endobj +1336 0 obj<</Parent 1332 0 R/Title(Step 3: Create the smb configuration file.)/Dest[1097 0 R/XYZ 0 786 0]/Prev 1335 0 R/Next 1337 0 R>>endobj +1337 0 obj<</Parent 1332 0 R/Title(Step 4: Test your config file with testparm)/Dest[1097 0 R/XYZ 0 435 0]/Prev 1336 0 R/Next 1338 0 R>>endobj +1338 0 obj<</Parent 1332 0 R/Count -2/First 1339 0 R/Last 1340 0 R/Title(Step 5: Starting the smbd and nmbd)/Dest[1097 0 R/XYZ 0 333 0]/Prev 1337 0 R/Next 1341 0 R>>endobj +1339 0 obj<</Parent 1338 0 R/Title(Step 5a: Starting from inetd.conf)/Dest[1097 0 R/XYZ 0 179 0]/Next 1340 0 R>>endobj +1340 0 obj<</Parent 1338 0 R/Title(Step 5b. Alternative: starting it as a daemon)/Dest[1099 0 R/XYZ 0 353 0]/Prev 1339 0 R>>endobj +1341 0 obj<</Parent 1332 0 R/Title(Step 6: Try listing the shares available on your server)/Dest[1101 0 R/XYZ 0 771 0]/Prev 1338 0 R/Next 1342 0 R>>endobj +1342 0 obj<</Parent 1332 0 R/Title(Step 7: Try connecting with the unix client)/Dest[1101 0 R/XYZ 0 603 0]/Prev 1341 0 R/Next 1343 0 R>>endobj +1343 0 obj<</Parent 1332 0 R/Title(Step 8: Try connecting from a DOS, WfWg, Win9x, WinNT, Win2k, OS/2, etc... client)/Dest[1101 0 R/XYZ 0 436 0]/Prev 1342 0 R/Next 1344 0 R>>endobj +1344 0 obj<</Parent 1332 0 R/Count -6/First 1345 0 R/Last 1350 0 R/Title(What If Things Don't Work?)/Dest[1101 0 R/XYZ 0 221 0]/Prev 1343 0 R>>endobj +1345 0 obj<</Parent 1344 0 R/Title(Diagnosing Problems)/Dest[1103 0 R/XYZ 0 705 0]/Next 1346 0 R>>endobj +1346 0 obj<</Parent 1344 0 R/Title(Scope IDs)/Dest[1103 0 R/XYZ 0 647 0]/Prev 1345 0 R/Next 1347 0 R>>endobj +1347 0 obj<</Parent 1344 0 R/Title(Choosing the Protocol Level)/Dest[1103 0 R/XYZ 0 562 0]/Prev 1346 0 R/Next 1348 0 R>>endobj +1348 0 obj<</Parent 1344 0 R/Title(Printing from UNIX to a Client PC)/Dest[1103 0 R/XYZ 0 253 0]/Prev 1347 0 R/Next 1349 0 R>>endobj +1349 0 obj<</Parent 1344 0 R/Title(Locking)/Dest[1105 0 R/XYZ 0 771 0]/Prev 1348 0 R/Next 1350 0 R>>endobj +1350 0 obj<</Parent 1344 0 R/Title(Mapping Usernames)/Dest[1105 0 R/XYZ 0 317 0]/Prev 1349 0 R>>endobj +1351 0 obj<</Parent 1327 0 R/Count -4/First 1352 0 R/Last 1366 0 R/Title(Diagnosing your samba server)/Dest[1107 0 R/XYZ 0 786 0]/Prev 1332 0 R/Next 1367 0 R>>endobj +1352 0 obj<</Parent 1351 0 R/Title(Introduction)/Dest[1107 0 R/XYZ 0 762 0]/Next 1353 0 R>>endobj +1353 0 obj<</Parent 1351 0 R/Title(Assumptions)/Dest[1107 0 R/XYZ 0 581 0]/Prev 1352 0 R/Next 1354 0 R>>endobj +1354 0 obj<</Parent 1351 0 R/Count -11/First 1355 0 R/Last 1365 0 R/Title(Tests)/Dest[1107 0 R/XYZ 0 223 0]/Prev 1353 0 R/Next 1366 0 R>>endobj +1355 0 obj<</Parent 1354 0 R/Title(Test 1)/Dest[1107 0 R/XYZ 0 202 0]/Next 1356 0 R>>endobj +1356 0 obj<</Parent 1354 0 R/Title(Test 2)/Dest[1109 0 R/XYZ 0 758 0]/Prev 1355 0 R/Next 1357 0 R>>endobj +1357 0 obj<</Parent 1354 0 R/Title(Test 3)/Dest[1109 0 R/XYZ 0 554 0]/Prev 1356 0 R/Next 1358 0 R>>endobj +1358 0 obj<</Parent 1354 0 R/Title(Test 4)/Dest[1111 0 R/XYZ 0 626 0]/Prev 1357 0 R/Next 1359 0 R>>endobj +1359 0 obj<</Parent 1354 0 R/Title(Test 5)/Dest[1111 0 R/XYZ 0 475 0]/Prev 1358 0 R/Next 1360 0 R>>endobj +1360 0 obj<</Parent 1354 0 R/Title(Test 6)/Dest[1111 0 R/XYZ 0 351 0]/Prev 1359 0 R/Next 1361 0 R>>endobj +1361 0 obj<</Parent 1354 0 R/Title(Test 7)/Dest[1113 0 R/XYZ 0 758 0]/Prev 1360 0 R/Next 1362 0 R>>endobj +1362 0 obj<</Parent 1354 0 R/Title(Test 8)/Dest[1113 0 R/XYZ 0 396 0]/Prev 1361 0 R/Next 1363 0 R>>endobj +1363 0 obj<</Parent 1354 0 R/Title(Test 9)/Dest[1115 0 R/XYZ 0 731 0]/Prev 1362 0 R/Next 1364 0 R>>endobj +1364 0 obj<</Parent 1354 0 R/Title(Test 10)/Dest[1115 0 R/XYZ 0 581 0]/Prev 1363 0 R/Next 1365 0 R>>endobj +1365 0 obj<</Parent 1354 0 R/Title(Test 11)/Dest[1115 0 R/XYZ 0 443 0]/Prev 1364 0 R>>endobj +1366 0 obj<</Parent 1351 0 R/Title(Still having troubles?)/Dest[1115 0 R/XYZ 0 305 0]/Prev 1354 0 R>>endobj +1367 0 obj<</Parent 1327 0 R/Count -6/First 1368 0 R/Last 1385 0 R/Title(Integrating MS Windows networks with Samba)/Dest[1117 0 R/XYZ 0 786 0]/Prev 1351 0 R/Next 1386 0 R>>endobj +1368 0 obj<</Parent 1367 0 R/Title(Agenda)/Dest[1117 0 R/XYZ 0 762 0]/Next 1369 0 R>>endobj +1369 0 obj<</Parent 1367 0 R/Count -4/First 1370 0 R/Last 1373 0 R/Title(Name Resolution in a pure Unix/Linux world)/Dest[1117 0 R/XYZ 0 515 0]/Prev 1368 0 R/Next 1374 0 R>>endobj +1370 0 obj<</Parent 1369 0 R/Title(/etc/hosts)/Dest[1117 0 R/XYZ 0 387 0]/Next 1371 0 R>>endobj +1371 0 obj<</Parent 1369 0 R/Title(/etc/resolv.conf)/Dest[1119 0 R/XYZ 0 507 0]/Prev 1370 0 R/Next 1372 0 R>>endobj +1372 0 obj<</Parent 1369 0 R/Title(/etc/host.conf)/Dest[1119 0 R/XYZ 0 369 0]/Prev 1371 0 R/Next 1373 0 R>>endobj +1373 0 obj<</Parent 1369 0 R/Title(/etc/nsswitch.conf)/Dest[1119 0 R/XYZ 0 221 0]/Prev 1372 0 R>>endobj +1374 0 obj<</Parent 1367 0 R/Count -5/First 1375 0 R/Last 1379 0 R/Title(Name resolution as used within MS Windows networking)/Dest[1121 0 R/XYZ 0 400 0]/Prev 1369 0 R/Next 1380 0 R>>endobj +1375 0 obj<</Parent 1374 0 R/Title(The NetBIOS Name Cache)/Dest[1123 0 R/XYZ 0 348 0]/Next 1376 0 R>>endobj +1376 0 obj<</Parent 1374 0 R/Title(The LMHOSTS file)/Dest[1125 0 R/XYZ 0 786 0]/Prev 1375 0 R/Next 1377 0 R>>endobj +1377 0 obj<</Parent 1374 0 R/Title(HOSTS file)/Dest[1127 0 R/XYZ 0 509 0]/Prev 1376 0 R/Next 1378 0 R>>endobj +1378 0 obj<</Parent 1374 0 R/Title(DNS Lookup)/Dest[1127 0 R/XYZ 0 411 0]/Prev 1377 0 R/Next 1379 0 R>>endobj +1379 0 obj<</Parent 1374 0 R/Title(WINS Lookup)/Dest[1127 0 R/XYZ 0 273 0]/Prev 1378 0 R>>endobj +1380 0 obj<</Parent 1367 0 R/Title(How browsing functions and how to deploy stable and dependable browsing using Samba)/Dest[1129 0 R/XYZ 0 720 0]/Prev 1374 0 R/Next 1381 0 R>>endobj +1381 0 obj<</Parent 1367 0 R/Count -3/First 1382 0 R/Last 1384 0 R/Title(MS Windows security options and how to configure Samba for seemless integration)/Dest[1131 0 R/XYZ 0 786 0]/Prev 1380 0 R/Next 1385 0 R>>endobj +1382 0 obj<</Parent 1381 0 R/Title(Use MS Windows NT as an authentication server)/Dest[1133 0 R/XYZ 0 745 0]/Next 1383 0 R>>endobj +1383 0 obj<</Parent 1381 0 R/Title(Make Samba a member of an MS Windows NT security domain)/Dest[1133 0 R/XYZ 0 493 0]/Prev 1382 0 R/Next 1384 0 R>>endobj +1384 0 obj<</Parent 1381 0 R/Title(Configure Samba as an authentication server)/Dest[1135 0 R/XYZ 0 786 0]/Prev 1383 0 R>>endobj +1385 0 obj<</Parent 1367 0 R/Title(Conclusions)/Dest[1135 0 R/XYZ 0 225 0]/Prev 1381 0 R>>endobj +1386 0 obj<</Parent 1327 0 R/Count -3/First 1387 0 R/Last 1389 0 R/Title(Configuring PAM for distributed but centrally managed authentication)/Dest[1139 0 R/XYZ 0 786 0]/Prev 1367 0 R/Next 1390 0 R>>endobj +1387 0 obj<</Parent 1386 0 R/Title(Samba and PAM)/Dest[1139 0 R/XYZ 0 738 0]/Next 1388 0 R>>endobj +1388 0 obj<</Parent 1386 0 R/Title(Distributed Authentication)/Dest[1141 0 R/XYZ 0 179 0]/Prev 1387 0 R/Next 1389 0 R>>endobj +1389 0 obj<</Parent 1386 0 R/Title(PAM Configuration in smb.conf)/Dest[1143 0 R/XYZ 0 731 0]/Prev 1388 0 R>>endobj +1390 0 obj<</Parent 1327 0 R/Count -1/First 1391 0 R/Last 1391 0 R/Title(Hosting a Microsoft Distributed File System tree on Samba)/Dest[1145 0 R/XYZ 0 786 0]/Prev 1386 0 R/Next 1393 0 R>>endobj +1391 0 obj<</Parent 1390 0 R/Count -1/First 1392 0 R/Last 1392 0 R/Title(Instructions)/Dest[1145 0 R/XYZ 0 738 0]>>endobj +1392 0 obj<</Parent 1391 0 R/Title(Notes)/Dest[1147 0 R/XYZ 0 705 0]>>endobj +1393 0 obj<</Parent 1327 0 R/Count -7/First 1394 0 R/Last 1402 0 R/Title(UNIX Permission Bits and Windows NT Access Control Lists)/Dest[1149 0 R/XYZ 0 786 0]/Prev 1390 0 R/Next 1403 0 R>>endobj +1394 0 obj<</Parent 1393 0 R/Title(Viewing and changing UNIX permissions using the NT security dialogs)/Dest[1149 0 R/XYZ 0 738 0]/Next 1395 0 R>>endobj +1395 0 obj<</Parent 1393 0 R/Title(How to view file security on a Samba share)/Dest[1149 0 R/XYZ 0 550 0]/Prev 1394 0 R/Next 1396 0 R>>endobj +1396 0 obj<</Parent 1393 0 R/Title(Viewing file ownership)/Dest[1149 0 R/XYZ 0 383 0]/Prev 1395 0 R/Next 1397 0 R>>endobj +1397 0 obj<</Parent 1393 0 R/Count -2/First 1398 0 R/Last 1399 0 R/Title(Viewing file or directory permissions)/Dest[1151 0 R/XYZ 0 718 0]/Prev 1396 0 R/Next 1400 0 R>>endobj +1398 0 obj<</Parent 1397 0 R/Title(File Permissions)/Dest[1151 0 R/XYZ 0 485 0]/Next 1399 0 R>>endobj +1399 0 obj<</Parent 1397 0 R/Title(Directory Permissions)/Dest[1151 0 R/XYZ 0 241 0]/Prev 1398 0 R>>endobj +1400 0 obj<</Parent 1393 0 R/Title(Modifying file or directory permissions)/Dest[1153 0 R/XYZ 0 745 0]/Prev 1397 0 R/Next 1401 0 R>>endobj +1401 0 obj<</Parent 1393 0 R/Title(Interaction with the standard Samba create mask parameters)/Dest[1153 0 R/XYZ 0 313 0]/Prev 1400 0 R/Next 1402 0 R>>endobj +1402 0 obj<</Parent 1393 0 R/Title(Interaction with the standard Samba file attribute mapping)/Dest[1157 0 R/XYZ 0 652 0]/Prev 1401 0 R>>endobj +1403 0 obj<</Parent 1327 0 R/Count -4/First 1404 0 R/Last 1416 0 R/Title(Printing Support in Samba 2.2.x)/Dest[1159 0 R/XYZ 0 786 0]/Prev 1393 0 R/Next 1417 0 R>>endobj +1404 0 obj<</Parent 1403 0 R/Title(Introduction)/Dest[1159 0 R/XYZ 0 762 0]/Next 1405 0 R>>endobj +1405 0 obj<</Parent 1403 0 R/Count -5/First 1406 0 R/Last 1410 0 R/Title(Configuration)/Dest[1159 0 R/XYZ 0 331 0]/Prev 1404 0 R/Next 1411 0 R>>endobj +1406 0 obj<</Parent 1405 0 R/Title(Creating [print$])/Dest[1161 0 R/XYZ 0 755 0]/Next 1407 0 R>>endobj +1407 0 obj<</Parent 1405 0 R/Title(Setting Drivers for Existing Printers)/Dest[1163 0 R/XYZ 0 521 0]/Prev 1406 0 R/Next 1408 0 R>>endobj +1408 0 obj<</Parent 1405 0 R/Title(Support a large number of printers)/Dest[1165 0 R/XYZ 0 758 0]/Prev 1407 0 R/Next 1409 0 R>>endobj +1409 0 obj<</Parent 1405 0 R/Title(Adding New Printers via the Windows NT APW)/Dest[1165 0 R/XYZ 0 385 0]/Prev 1408 0 R/Next 1410 0 R>>endobj +1410 0 obj<</Parent 1405 0 R/Title(Samba and Printer Ports)/Dest[1167 0 R/XYZ 0 208 0]/Prev 1409 0 R>>endobj +1411 0 obj<</Parent 1403 0 R/Count -4/First 1412 0 R/Last 1415 0 R/Title(The Imprints Toolset)/Dest[1169 0 R/XYZ 0 705 0]/Prev 1405 0 R/Next 1416 0 R>>endobj +1412 0 obj<</Parent 1411 0 R/Title(What is Imprints?)/Dest[1169 0 R/XYZ 0 603 0]/Next 1413 0 R>>endobj +1413 0 obj<</Parent 1411 0 R/Title(Creating Printer Driver Packages)/Dest[1169 0 R/XYZ 0 479 0]/Prev 1412 0 R/Next 1414 0 R>>endobj +1414 0 obj<</Parent 1411 0 R/Title(The Imprints server)/Dest[1169 0 R/XYZ 0 394 0]/Prev 1413 0 R/Next 1415 0 R>>endobj +1415 0 obj<</Parent 1411 0 R/Title(The Installation Client)/Dest[1169 0 R/XYZ 0 296 0]/Prev 1414 0 R>>endobj +1416 0 obj<</Parent 1403 0 R/Title(Migration to from Samba 2.0.x to 2.2.x)/Dest[1171 0 R/XYZ 0 409 0]/Prev 1411 0 R>>endobj +1417 0 obj<</Parent 1327 0 R/Count -9/First 1418 0 R/Last 1426 0 R/Title(Debugging Printing Problems)/Dest[1175 0 R/XYZ 0 786 0]/Prev 1403 0 R/Next 1427 0 R>>endobj +1418 0 obj<</Parent 1417 0 R/Title(Introduction)/Dest[1175 0 R/XYZ 0 762 0]/Next 1419 0 R>>endobj +1419 0 obj<</Parent 1417 0 R/Title(Debugging printer problems)/Dest[1177 0 R/XYZ 0 786 0]/Prev 1418 0 R/Next 1420 0 R>>endobj +1420 0 obj<</Parent 1417 0 R/Title(What printers do I have?)/Dest[1177 0 R/XYZ 0 325 0]/Prev 1419 0 R/Next 1421 0 R>>endobj +1421 0 obj<</Parent 1417 0 R/Title(Setting up printcap and print servers)/Dest[1179 0 R/XYZ 0 786 0]/Prev 1420 0 R/Next 1422 0 R>>endobj +1422 0 obj<</Parent 1417 0 R/Title(Job sent, no output)/Dest[1179 0 R/XYZ 0 354 0]/Prev 1421 0 R/Next 1423 0 R>>endobj +1423 0 obj<</Parent 1417 0 R/Title(Job sent, strange output)/Dest[1181 0 R/XYZ 0 670 0]/Prev 1422 0 R/Next 1424 0 R>>endobj +1424 0 obj<</Parent 1417 0 R/Title(Raw PostScript printed)/Dest[1181 0 R/XYZ 0 317 0]/Prev 1423 0 R/Next 1425 0 R>>endobj +1425 0 obj<</Parent 1417 0 R/Title(Advanced Printing)/Dest[1181 0 R/XYZ 0 228 0]/Prev 1424 0 R/Next 1426 0 R>>endobj +1426 0 obj<</Parent 1417 0 R/Title(Real debugging)/Dest[1183 0 R/XYZ 0 786 0]/Prev 1425 0 R>>endobj +1427 0 obj<</Parent 1327 0 R/Count -2/First 1428 0 R/Last 1429 0 R/Title(Security levels)/Dest[1185 0 R/XYZ 0 786 0]/Prev 1417 0 R/Next 1430 0 R>>endobj +1428 0 obj<</Parent 1427 0 R/Title(Introduction)/Dest[1185 0 R/XYZ 0 762 0]/Next 1429 0 R>>endobj +1429 0 obj<</Parent 1427 0 R/Title(More complete description of security levels)/Dest[1185 0 R/XYZ 0 517 0]/Prev 1428 0 R>>endobj +1430 0 obj<</Parent 1327 0 R/Count -3/First 1431 0 R/Last 1433 0 R/Title(security = domain in Samba 2.x)/Dest[1189 0 R/XYZ 0 786 0]/Prev 1427 0 R/Next 1434 0 R>>endobj +1431 0 obj<</Parent 1430 0 R/Title(Joining an NT Domain with Samba 2.2)/Dest[1189 0 R/XYZ 0 762 0]/Next 1432 0 R>>endobj +1432 0 obj<</Parent 1430 0 R/Title(Samba and Windows 2000 Domains)/Dest[1191 0 R/XYZ 0 415 0]/Prev 1431 0 R/Next 1433 0 R>>endobj +1433 0 obj<</Parent 1430 0 R/Title(Why is this better than security = server?)/Dest[1191 0 R/XYZ 0 207 0]/Prev 1432 0 R>>endobj +1434 0 obj<</Parent 1327 0 R/Count -7/First 1435 0 R/Last 1450 0 R/Title(Unified Logons between Windows NT and UNIX using Winbind)/Dest[1195 0 R/XYZ 0 786 0]/Prev 1430 0 R/Next 1451 0 R>>endobj +1435 0 obj<</Parent 1434 0 R/Title(Abstract)/Dest[1195 0 R/XYZ 0 738 0]/Next 1436 0 R>>endobj +1436 0 obj<</Parent 1434 0 R/Title(Introduction)/Dest[1195 0 R/XYZ 0 597 0]/Prev 1435 0 R/Next 1437 0 R>>endobj +1437 0 obj<</Parent 1434 0 R/Count -1/First 1438 0 R/Last 1438 0 R/Title(What Winbind Provides)/Dest[1195 0 R/XYZ 0 284 0]/Prev 1436 0 R/Next 1439 0 R>>endobj +1438 0 obj<</Parent 1437 0 R/Title(Target Uses)/Dest[1197 0 R/XYZ 0 613 0]>>endobj +1439 0 obj<</Parent 1434 0 R/Count -5/First 1440 0 R/Last 1444 0 R/Title(How Winbind Works)/Dest[1197 0 R/XYZ 0 462 0]/Prev 1437 0 R/Next 1445 0 R>>endobj +1440 0 obj<</Parent 1439 0 R/Title(Microsoft Remote Procedure Calls)/Dest[1197 0 R/XYZ 0 347 0]/Next 1441 0 R>>endobj +1441 0 obj<</Parent 1439 0 R/Title(Name Service Switch)/Dest[1199 0 R/XYZ 0 786 0]/Prev 1440 0 R/Next 1442 0 R>>endobj +1442 0 obj<</Parent 1439 0 R/Title(Pluggable Authentication Modules)/Dest[1199 0 R/XYZ 0 345 0]/Prev 1441 0 R/Next 1443 0 R>>endobj +1443 0 obj<</Parent 1439 0 R/Title(User and Group ID Allocation)/Dest[1201 0 R/XYZ 0 718 0]/Prev 1442 0 R/Next 1444 0 R>>endobj +1444 0 obj<</Parent 1439 0 R/Title(Result Caching)/Dest[1201 0 R/XYZ 0 541 0]/Prev 1443 0 R>>endobj +1445 0 obj<</Parent 1434 0 R/Count -3/First 1446 0 R/Last 1448 0 R/Title(Installation and Configuration)/Dest[1201 0 R/XYZ 0 403 0]/Prev 1439 0 R/Next 1449 0 R>>endobj +1446 0 obj<</Parent 1445 0 R/Title(Introduction)/Dest[1201 0 R/XYZ 0 262 0]/Next 1447 0 R>>endobj +1447 0 obj<</Parent 1445 0 R/Title(Requirements)/Dest[1203 0 R/XYZ 0 652 0]/Prev 1446 0 R/Next 1448 0 R>>endobj +1448 0 obj<</Parent 1445 0 R/Title(Testing Things Out)/Dest[1203 0 R/XYZ 0 383 0]/Prev 1447 0 R>>endobj +1449 0 obj<</Parent 1434 0 R/Title(Limitations)/Dest[1217 0 R/XYZ 0 270 0]/Prev 1445 0 R/Next 1450 0 R>>endobj +1450 0 obj<</Parent 1434 0 R/Title(Conclusion)/Dest[1219 0 R/XYZ 0 731 0]/Prev 1449 0 R>>endobj +1451 0 obj<</Parent 1327 0 R/Count -9/First 1452 0 R/Last 1465 0 R/Title(How to Configure Samba 2.2 as a Primary Domain Controller)/Dest[1221 0 R/XYZ 0 786 0]/Prev 1434 0 R/Next 1466 0 R>>endobj +1452 0 obj<</Parent 1451 0 R/Title(Prerequisite Reading)/Dest[1221 0 R/XYZ 0 738 0]/Next 1453 0 R>>endobj +1453 0 obj<</Parent 1451 0 R/Title(Background)/Dest[1221 0 R/XYZ 0 637 0]/Prev 1452 0 R/Next 1454 0 R>>endobj +1454 0 obj<</Parent 1451 0 R/Title(Configuring the Samba Domain Controller)/Dest[1223 0 R/XYZ 0 771 0]/Prev 1453 0 R/Next 1455 0 R>>endobj +1455 0 obj<</Parent 1451 0 R/Count -3/First 1456 0 R/Last 1458 0 R/Title(Creating Machine Trust Accounts and Joining Clients to the Domain)/Dest[1225 0 R/XYZ 0 665 0]/Prev 1454 0 R/Next 1459 0 R>>endobj +1456 0 obj<</Parent 1455 0 R/Title(Manual Creation of Machine Trust Accounts)/Dest[1225 0 R/XYZ 0 279 0]/Next 1457 0 R>>endobj +1457 0 obj<</Parent 1455 0 R/Title("On-the-Fly" Creation of Machine Trust Accounts)/Dest[1227 0 R/XYZ 0 409 0]/Prev 1456 0 R/Next 1458 0 R>>endobj +1458 0 obj<</Parent 1455 0 R/Title(Joining the Client to the Domain)/Dest[1227 0 R/XYZ 0 196 0]/Prev 1457 0 R>>endobj +1459 0 obj<</Parent 1451 0 R/Title(Common Problems and Errors)/Dest[1229 0 R/XYZ 0 520 0]/Prev 1455 0 R/Next 1460 0 R>>endobj +1460 0 obj<</Parent 1451 0 R/Title(System Policies and Profiles)/Dest[1231 0 R/XYZ 0 258 0]/Prev 1459 0 R/Next 1461 0 R>>endobj +1461 0 obj<</Parent 1451 0 R/Title(What other help can I get?)/Dest[1233 0 R/XYZ 0 256 0]/Prev 1460 0 R/Next 1462 0 R>>endobj +1462 0 obj<</Parent 1451 0 R/Count -2/First 1463 0 R/Last 1464 0 R/Title(Domain Control for Windows 9x/ME)/Dest[1239 0 R/XYZ 0 599 0]/Prev 1461 0 R/Next 1465 0 R>>endobj +1463 0 obj<</Parent 1462 0 R/Title(Configuration Instructions: Network Logons)/Dest[1241 0 R/XYZ 0 613 0]/Next 1464 0 R>>endobj +1464 0 obj<</Parent 1462 0 R/Title(Configuration Instructions: Setting up Roaming User Profiles)/Dest[1241 0 R/XYZ 0 179 0]/Prev 1463 0 R>>endobj +1465 0 obj<</Parent 1451 0 R/Title(DOMAIN_CONTROL.txt : Windows NT Domain Control & Samba)/Dest[1249 0 R/XYZ 0 188 0]/Prev 1462 0 R>>endobj +1466 0 obj<</Parent 1327 0 R/Count -5/First 1467 0 R/Last 1473 0 R/Title(How to Act as a Backup Domain Controller in a Purely Samba Controlled Domain)/Dest[1255 0 R/XYZ 0 786 0]/Prev 1451 0 R/Next 1475 0 R>>endobj +1467 0 obj<</Parent 1466 0 R/Title(Prerequisite Reading)/Dest[1255 0 R/XYZ 0 738 0]/Next 1468 0 R>>endobj +1468 0 obj<</Parent 1466 0 R/Title(Background)/Dest[1255 0 R/XYZ 0 650 0]/Prev 1467 0 R/Next 1469 0 R>>endobj +1469 0 obj<</Parent 1466 0 R/Count -2/First 1470 0 R/Last 1471 0 R/Title(What qualifies a Domain Controller on the network?)/Dest[1255 0 R/XYZ 0 275 0]/Prev 1468 0 R/Next 1472 0 R>>endobj +1470 0 obj<</Parent 1469 0 R/Title(How does a Workstation find its domain controller?)/Dest[1257 0 R/XYZ 0 786 0]/Next 1471 0 R>>endobj +1471 0 obj<</Parent 1469 0 R/Title(When is the PDC needed?)/Dest[1257 0 R/XYZ 0 662 0]/Prev 1470 0 R>>endobj +1472 0 obj<</Parent 1466 0 R/Title(Can Samba be a Backup Domain Controller?)/Dest[1257 0 R/XYZ 0 577 0]/Prev 1469 0 R/Next 1473 0 R>>endobj +1473 0 obj<</Parent 1466 0 R/Count -1/First 1474 0 R/Last 1474 0 R/Title(How do I set up a Samba BDC?)/Dest[1257 0 R/XYZ 0 436 0]/Prev 1472 0 R>>endobj +1474 0 obj<</Parent 1473 0 R/Title(How do I replicate the smbpasswd file?)/Dest[1259 0 R/XYZ 0 670 0]>>endobj +1475 0 obj<</Parent 1327 0 R/Count -10/First 1476 0 R/Last 1487 0 R/Title(Storing Samba's User/Machine Account information in an LDAP Directory)/Dest[1261 0 R/XYZ 0 786 0]/Prev 1466 0 R/Next 1488 0 R>>endobj +1476 0 obj<</Parent 1475 0 R/Title(Purpose)/Dest[1261 0 R/XYZ 0 738 0]/Next 1477 0 R>>endobj +1477 0 obj<</Parent 1475 0 R/Title(Introduction)/Dest[1261 0 R/XYZ 0 465 0]/Prev 1476 0 R/Next 1478 0 R>>endobj +1478 0 obj<</Parent 1475 0 R/Title(Supported LDAP Servers)/Dest[1263 0 R/XYZ 0 626 0]/Prev 1477 0 R/Next 1479 0 R>>endobj +1479 0 obj<</Parent 1475 0 R/Title(Schema and Relationship to the RFC 2307 posixAccount)/Dest[1263 0 R/XYZ 0 524 0]/Prev 1478 0 R/Next 1480 0 R>>endobj +1480 0 obj<</Parent 1475 0 R/Count -2/First 1481 0 R/Last 1482 0 R/Title(Configuring Samba with LDAP)/Dest[1265 0 R/XYZ 0 786 0]/Prev 1479 0 R/Next 1483 0 R>>endobj +1481 0 obj<</Parent 1480 0 R/Title(OpenLDAP configuration)/Dest[1265 0 R/XYZ 0 766 0]/Next 1482 0 R>>endobj +1482 0 obj<</Parent 1480 0 R/Title(Configuring Samba)/Dest[1265 0 R/XYZ 0 191 0]/Prev 1481 0 R>>endobj +1483 0 obj<</Parent 1475 0 R/Title(Accounts and Groups management)/Dest[1267 0 R/XYZ 0 280 0]/Prev 1480 0 R/Next 1484 0 R>>endobj +1484 0 obj<</Parent 1475 0 R/Title(Security and sambaAccount)/Dest[1269 0 R/XYZ 0 758 0]/Prev 1483 0 R/Next 1485 0 R>>endobj +1485 0 obj<</Parent 1475 0 R/Title(LDAP specials attributes for sambaAccounts)/Dest[1269 0 R/XYZ 0 373 0]/Prev 1484 0 R/Next 1486 0 R>>endobj +1486 0 obj<</Parent 1475 0 R/Title(Example LDIF Entries for a sambaAccount)/Dest[1271 0 R/XYZ 0 362 0]/Prev 1485 0 R/Next 1487 0 R>>endobj +1487 0 obj<</Parent 1475 0 R/Title(Comments)/Dest[1273 0 R/XYZ 0 531 0]/Prev 1486 0 R>>endobj +1488 0 obj<</Parent 1327 0 R/Count -11/First 1489 0 R/Last 1500 0 R/Title(Improved browsing in samba)/Dest[1275 0 R/XYZ 0 786 0]/Prev 1475 0 R/Next 1501 0 R>>endobj +1489 0 obj<</Parent 1488 0 R/Title(Overview of browsing)/Dest[1275 0 R/XYZ 0 762 0]/Next 1490 0 R>>endobj +1490 0 obj<</Parent 1488 0 R/Title(Browsing support in samba)/Dest[1275 0 R/XYZ 0 568 0]/Prev 1489 0 R/Next 1491 0 R>>endobj +1491 0 obj<</Parent 1488 0 R/Title(Problem resolution)/Dest[1275 0 R/XYZ 0 189 0]/Prev 1490 0 R/Next 1492 0 R>>endobj +1492 0 obj<</Parent 1488 0 R/Count -1/First 1493 0 R/Last 1493 0 R/Title(Browsing across subnets)/Dest[1277 0 R/XYZ 0 586 0]/Prev 1491 0 R/Next 1494 0 R>>endobj +1493 0 obj<</Parent 1492 0 R/Title(How does cross subnet browsing work ?)/Dest[1277 0 R/XYZ 0 326 0]>>endobj +1494 0 obj<</Parent 1488 0 R/Title(Setting up a WINS server)/Dest[1283 0 R/XYZ 0 564 0]/Prev 1492 0 R/Next 1495 0 R>>endobj +1495 0 obj<</Parent 1488 0 R/Title(Setting up Browsing in a WORKGROUP)/Dest[1285 0 R/XYZ 0 613 0]/Prev 1494 0 R/Next 1496 0 R>>endobj +1496 0 obj<</Parent 1488 0 R/Title(Setting up Browsing in a DOMAIN)/Dest[1287 0 R/XYZ 0 619 0]/Prev 1495 0 R/Next 1497 0 R>>endobj +1497 0 obj<</Parent 1488 0 R/Title(Forcing samba to be the master)/Dest[1287 0 R/XYZ 0 261 0]/Prev 1496 0 R/Next 1498 0 R>>endobj +1498 0 obj<</Parent 1488 0 R/Title(Making samba the domain master)/Dest[1289 0 R/XYZ 0 507 0]/Prev 1497 0 R/Next 1499 0 R>>endobj +1499 0 obj<</Parent 1488 0 R/Title(Note about broadcast addresses)/Dest[1291 0 R/XYZ 0 731 0]/Prev 1498 0 R/Next 1500 0 R>>endobj +1500 0 obj<</Parent 1488 0 R/Title(Multiple interfaces)/Dest[1291 0 R/XYZ 0 643 0]/Prev 1499 0 R>>endobj +1501 0 obj<</Parent 1327 0 R/Count -17/First 1502 0 R/Last 1521 0 R/Title(Samba performance issues)/Dest[1293 0 R/XYZ 0 786 0]/Prev 1488 0 R/Next 1522 0 R>>endobj +1502 0 obj<</Parent 1501 0 R/Title(Comparisons)/Dest[1293 0 R/XYZ 0 762 0]/Next 1503 0 R>>endobj +1503 0 obj<</Parent 1501 0 R/Count -3/First 1504 0 R/Last 1506 0 R/Title(Oplocks)/Dest[1293 0 R/XYZ 0 502 0]/Prev 1502 0 R/Next 1507 0 R>>endobj +1504 0 obj<</Parent 1503 0 R/Title(Overview)/Dest[1293 0 R/XYZ 0 482 0]/Next 1505 0 R>>endobj +1505 0 obj<</Parent 1503 0 R/Title(Level2 Oplocks)/Dest[1293 0 R/XYZ 0 199 0]/Prev 1504 0 R/Next 1506 0 R>>endobj +1506 0 obj<</Parent 1503 0 R/Title(Old 'fake oplocks' option - deprecated)/Dest[1295 0 R/XYZ 0 705 0]/Prev 1505 0 R>>endobj +1507 0 obj<</Parent 1501 0 R/Title(Socket options)/Dest[1295 0 R/XYZ 0 567 0]/Prev 1503 0 R/Next 1508 0 R>>endobj +1508 0 obj<</Parent 1501 0 R/Title(Read size)/Dest[1295 0 R/XYZ 0 307 0]/Prev 1507 0 R/Next 1509 0 R>>endobj +1509 0 obj<</Parent 1501 0 R/Title(Max xmit)/Dest[1297 0 R/XYZ 0 771 0]/Prev 1508 0 R/Next 1510 0 R>>endobj +1510 0 obj<</Parent 1501 0 R/Title(Locking)/Dest[1297 0 R/XYZ 0 590 0]/Prev 1509 0 R/Next 1511 0 R>>endobj +1511 0 obj<</Parent 1501 0 R/Title(Share modes)/Dest[1297 0 R/XYZ 0 462 0]/Prev 1510 0 R/Next 1512 0 R>>endobj +1512 0 obj<</Parent 1501 0 R/Title(Log level)/Dest[1297 0 R/XYZ 0 242 0]/Prev 1511 0 R/Next 1513 0 R>>endobj +1513 0 obj<</Parent 1501 0 R/Title(Wide lines)/Dest[1299 0 R/XYZ 0 786 0]/Prev 1512 0 R/Next 1514 0 R>>endobj +1514 0 obj<</Parent 1501 0 R/Title(Read raw)/Dest[1299 0 R/XYZ 0 698 0]/Prev 1513 0 R/Next 1515 0 R>>endobj +1515 0 obj<</Parent 1501 0 R/Title(Write raw)/Dest[1299 0 R/XYZ 0 530 0]/Prev 1514 0 R/Next 1516 0 R>>endobj +1516 0 obj<</Parent 1501 0 R/Title(Read prediction)/Dest[1299 0 R/XYZ 0 402 0]/Prev 1515 0 R/Next 1517 0 R>>endobj +1517 0 obj<</Parent 1501 0 R/Title(Memory mapping)/Dest[1299 0 R/XYZ 0 182 0]/Prev 1516 0 R/Next 1518 0 R>>endobj +1518 0 obj<</Parent 1501 0 R/Title(Slow Clients)/Dest[1301 0 R/XYZ 0 692 0]/Prev 1517 0 R/Next 1519 0 R>>endobj +1519 0 obj<</Parent 1501 0 R/Title(Slow Logins)/Dest[1301 0 R/XYZ 0 564 0]/Prev 1518 0 R/Next 1520 0 R>>endobj +1520 0 obj<</Parent 1501 0 R/Title(Client tuning)/Dest[1301 0 R/XYZ 0 489 0]/Prev 1519 0 R/Next 1521 0 R>>endobj +1521 0 obj<</Parent 1501 0 R/Title(My Results)/Dest[1303 0 R/XYZ 0 441 0]/Prev 1520 0 R>>endobj +1522 0 obj<</Parent 1327 0 R/Count -5/First 1523 0 R/Last 1535 0 R/Title(Samba and other CIFS clients)/Dest[1305 0 R/XYZ 0 786 0]/Prev 1501 0 R/Next 1536 0 R>>endobj +1523 0 obj<</Parent 1522 0 R/Title(Macintosh clients?)/Dest[1305 0 R/XYZ 0 721 0]/Next 1524 0 R>>endobj +1524 0 obj<</Parent 1522 0 R/Count -4/First 1525 0 R/Last 1528 0 R/Title(OS2 Client)/Dest[1305 0 R/XYZ 0 513 0]/Prev 1523 0 R/Next 1529 0 R>>endobj +1525 0 obj<</Parent 1524 0 R/Title(How can I configure OS/2 Warp Connect or OS/2 Warp 4 as a client for Samba?)/Dest[1305 0 R/XYZ 0 493 0]/Next 1526 0 R>>endobj +1526 0 obj<</Parent 1524 0 R/Title(How can I configure OS/2 Warp 3 \(not Connect\), OS/2 1.2, 1.3 or 2.x for Samba?)/Dest[1307 0 R/XYZ 0 786 0]/Prev 1525 0 R/Next 1527 0 R>>endobj +1527 0 obj<</Parent 1524 0 R/Title(Are there any other issues when OS/2 \(any version\) is used as a client?)/Dest[1307 0 R/XYZ 0 573 0]/Prev 1526 0 R/Next 1528 0 R>>endobj +1528 0 obj<</Parent 1524 0 R/Title(How do I get printer driver download working for OS/2 clients?)/Dest[1307 0 R/XYZ 0 475 0]/Prev 1527 0 R>>endobj +1529 0 obj<</Parent 1522 0 R/Count -4/First 1530 0 R/Last 1533 0 R/Title(Windows for Workgroups)/Dest[1307 0 R/XYZ 0 218 0]/Prev 1524 0 R/Next 1534 0 R>>endobj +1530 0 obj<</Parent 1529 0 R/Title(Use latest TCP/IP stack from Microsoft)/Dest[1307 0 R/XYZ 0 198 0]/Next 1531 0 R>>endobj +1531 0 obj<</Parent 1529 0 R/Title(Delete .pwl files after password change)/Dest[1309 0 R/XYZ 0 705 0]/Prev 1530 0 R/Next 1532 0 R>>endobj +1532 0 obj<</Parent 1529 0 R/Title(Configure WfW password handling)/Dest[1309 0 R/XYZ 0 554 0]/Prev 1531 0 R/Next 1533 0 R>>endobj +1533 0 obj<</Parent 1529 0 R/Title(Case handling of passwords)/Dest[1309 0 R/XYZ 0 456 0]/Prev 1532 0 R>>endobj +1534 0 obj<</Parent 1522 0 R/Title(Windows '95/'98)/Dest[1309 0 R/XYZ 0 371 0]/Prev 1529 0 R/Next 1535 0 R>>endobj +1535 0 obj<</Parent 1522 0 R/Title(Windows 2000 Service Pack 2)/Dest[1311 0 R/XYZ 0 786 0]/Prev 1534 0 R>>endobj +1536 0 obj<</Parent 1327 0 R/Count -2/First 1537 0 R/Last 1538 0 R/Title(HOWTO Access Samba source code via CVS)/Dest[1313 0 R/XYZ 0 786 0]/Prev 1522 0 R/Next 1541 0 R>>endobj +1537 0 obj<</Parent 1536 0 R/Title(Introduction)/Dest[1313 0 R/XYZ 0 762 0]/Next 1538 0 R>>endobj +1538 0 obj<</Parent 1536 0 R/Count -2/First 1539 0 R/Last 1540 0 R/Title(CVS Access to samba.org)/Dest[1313 0 R/XYZ 0 634 0]/Prev 1537 0 R>>endobj +1539 0 obj<</Parent 1538 0 R/Title(Access via CVSweb)/Dest[1313 0 R/XYZ 0 546 0]/Next 1540 0 R>>endobj +1540 0 obj<</Parent 1538 0 R/Title(Access via cvs)/Dest[1313 0 R/XYZ 0 435 0]/Prev 1539 0 R>>endobj +1541 0 obj<</Parent 1327 0 R/Count -6/First 1542 0 R/Last 1547 0 R/Title(Reporting Bugs)/Dest[1317 0 R/XYZ 0 786 0]/Prev 1536 0 R/Next 1548 0 R>>endobj +1542 0 obj<</Parent 1541 0 R/Title(Introduction)/Dest[1317 0 R/XYZ 0 762 0]/Next 1543 0 R>>endobj +1543 0 obj<</Parent 1541 0 R/Title(General info)/Dest[1317 0 R/XYZ 0 489 0]/Prev 1542 0 R/Next 1544 0 R>>endobj +1544 0 obj<</Parent 1541 0 R/Title(Debug levels)/Dest[1317 0 R/XYZ 0 348 0]/Prev 1543 0 R/Next 1545 0 R>>endobj +1545 0 obj<</Parent 1541 0 R/Title(Internal errors)/Dest[1319 0 R/XYZ 0 692 0]/Prev 1544 0 R/Next 1546 0 R>>endobj +1546 0 obj<</Parent 1541 0 R/Title(Attaching to a running process)/Dest[1319 0 R/XYZ 0 339 0]/Prev 1545 0 R/Next 1547 0 R>>endobj +1547 0 obj<</Parent 1541 0 R/Title(Patches)/Dest[1319 0 R/XYZ 0 238 0]/Prev 1546 0 R>>endobj +1548 0 obj<</Parent 1327 0 R/Title(Group mapping HOWTO)/Dest[1321 0 R/XYZ 0 786 0]/Prev 1541 0 R/Next 1549 0 R>>endobj +1549 0 obj<</Parent 1327 0 R/Count -3/First 1550 0 R/Last 1552 0 R/Title(Portability)/Dest[1323 0 R/XYZ 0 786 0]/Prev 1548 0 R>>endobj +1550 0 obj<</Parent 1549 0 R/Title(HPUX)/Dest[1323 0 R/XYZ 0 707 0]/Next 1551 0 R>>endobj +1551 0 obj<</Parent 1549 0 R/Title(SCO Unix)/Dest[1323 0 R/XYZ 0 500 0]/Prev 1550 0 R/Next 1552 0 R>>endobj +1552 0 obj<</Parent 1549 0 R/Title(DNIX)/Dest[1323 0 R/XYZ 0 385 0]/Prev 1551 0 R>>endobj +1553 0 obj<</Type/Catalog/Pages 1068 0 R/PageLayout/SinglePage/Outlines 1327 0 R/OpenAction[1083 0 R/XYZ null null 0]/PageMode/UseOutlines/PageLabels<</Nums[0<</P(title)>>1<</S/r>>7<</S/D/St 1/P()>>8<</S/D/St 2/P()>>13<</S/D/St 7/P()>>19<</S/D/St 13/P()>>24<</S/D/St 18/P()>>35<</S/D/St 29/P()>>38<</S/D/St 32/P()>>40<</S/D/St 34/P()>>45<</S/D/St 39/P()>>53<</S/D/St 47/P()>>58<</S/D/St 52/P()>>60<</S/D/St 54/P()>>63<</S/D/St 57/P()>>76<</S/D/St 70/P()>>93<</S/D/St 87/P()>>96<</S/D/St 90/P()>>103<</S/D/St 97/P()>>112<</S/D/St 106/P()>>118<</S/D/St 112/P()>>122<</S/D/St 116/P()>>124<</S/D/St 118/P()>>126<</S/D/St 120/P()>>127<</S/D/St 121/P()>>]>>>>endobj xref -0 1599 +0 1554 0000000000 65535 f 0000000015 00000 n -0000000248 00000 n -0000001814 00000 n -0000001888 00000 n -0000001967 00000 n -0000002049 00000 n -0000002135 00000 n -0000002213 00000 n -0000002290 00000 n -0000002369 00000 n -0000002453 00000 n -0000002530 00000 n -0000002612 00000 n -0000002671 00000 n -0000002773 00000 n -0000002876 00000 n -0000002978 00000 n -0000003080 00000 n -0000003183 00000 n -0000003286 00000 n -0000003389 00000 n -0000003492 00000 n -0000003595 00000 n -0000003698 00000 n -0000003801 00000 n -0000003904 00000 n -0000004007 00000 n -0000004110 00000 n -0000004213 00000 n -0000004316 00000 n -0000004419 00000 n -0000004522 00000 n -0000004625 00000 n -0000004728 00000 n -0000004831 00000 n -0000004934 00000 n -0000005036 00000 n -0000005139 00000 n -0000005242 00000 n -0000005345 00000 n -0000005448 00000 n -0000005551 00000 n -0000005654 00000 n -0000005757 00000 n -0000005860 00000 n -0000005963 00000 n -0000006066 00000 n -0000006169 00000 n -0000006272 00000 n -0000006375 00000 n -0000006478 00000 n -0000006581 00000 n -0000006683 00000 n -0000006786 00000 n -0000006889 00000 n -0000006991 00000 n -0000007092 00000 n -0000007193 00000 n -0000007517 00000 n -0000007619 00000 n -0000007722 00000 n -0000007825 00000 n -0000007928 00000 n -0000008031 00000 n -0000008134 00000 n -0000008237 00000 n -0000008340 00000 n -0000008443 00000 n -0000008546 00000 n -0000008649 00000 n -0000008752 00000 n -0000008855 00000 n -0000008958 00000 n -0000009060 00000 n -0000009163 00000 n -0000009266 00000 n -0000009369 00000 n -0000009471 00000 n -0000009574 00000 n -0000009677 00000 n -0000009779 00000 n -0000009882 00000 n -0000009985 00000 n -0000010088 00000 n -0000010191 00000 n -0000010294 00000 n -0000010397 00000 n -0000010500 00000 n -0000010603 00000 n -0000010706 00000 n -0000010808 00000 n -0000010911 00000 n -0000011014 00000 n -0000011117 00000 n -0000011220 00000 n -0000011323 00000 n -0000011426 00000 n -0000011529 00000 n -0000011632 00000 n -0000011735 00000 n -0000011838 00000 n -0000011940 00000 n -0000012042 00000 n -0000012370 00000 n -0000012473 00000 n -0000012577 00000 n -0000012680 00000 n -0000012784 00000 n -0000012888 00000 n -0000012992 00000 n -0000013096 00000 n -0000013200 00000 n -0000013304 00000 n -0000013408 00000 n -0000013512 00000 n -0000013616 00000 n -0000013719 00000 n -0000013823 00000 n -0000013927 00000 n -0000014030 00000 n -0000014134 00000 n -0000014238 00000 n -0000014342 00000 n -0000014445 00000 n -0000014549 00000 n -0000014653 00000 n -0000014757 00000 n -0000014861 00000 n -0000014965 00000 n -0000015069 00000 n -0000015173 00000 n -0000015277 00000 n -0000015381 00000 n -0000015485 00000 n -0000015589 00000 n -0000015693 00000 n -0000015797 00000 n -0000015901 00000 n -0000016005 00000 n -0000016109 00000 n -0000016212 00000 n -0000016316 00000 n -0000016420 00000 n -0000016524 00000 n -0000016627 00000 n -0000016729 00000 n -0000016831 00000 n -0000017192 00000 n -0000017295 00000 n -0000017399 00000 n -0000017503 00000 n -0000017607 00000 n -0000017711 00000 n -0000017815 00000 n -0000017919 00000 n -0000018023 00000 n -0000018127 00000 n -0000018230 00000 n -0000018334 00000 n -0000018438 00000 n -0000018542 00000 n -0000018646 00000 n -0000018750 00000 n -0000018854 00000 n -0000018958 00000 n -0000019062 00000 n -0000019165 00000 n -0000019269 00000 n -0000019373 00000 n -0000019477 00000 n -0000019581 00000 n -0000019685 00000 n -0000019789 00000 n -0000019893 00000 n -0000019997 00000 n -0000020101 00000 n -0000020205 00000 n -0000020309 00000 n -0000020413 00000 n -0000020516 00000 n -0000020620 00000 n -0000020724 00000 n -0000020828 00000 n -0000020932 00000 n -0000021036 00000 n -0000021140 00000 n -0000021244 00000 n -0000021348 00000 n -0000021452 00000 n -0000021554 00000 n -0000021656 00000 n -0000021758 00000 n -0000022127 00000 n -0000022230 00000 n -0000022334 00000 n -0000022438 00000 n -0000022542 00000 n -0000022646 00000 n -0000022750 00000 n -0000022854 00000 n -0000022958 00000 n -0000023062 00000 n -0000023166 00000 n -0000023270 00000 n -0000023373 00000 n -0000023477 00000 n -0000023581 00000 n -0000023685 00000 n -0000023789 00000 n -0000023893 00000 n -0000023997 00000 n -0000024101 00000 n -0000024205 00000 n -0000024309 00000 n -0000024413 00000 n -0000024517 00000 n -0000024621 00000 n -0000024725 00000 n -0000024829 00000 n -0000024933 00000 n -0000025037 00000 n -0000025141 00000 n -0000025245 00000 n -0000025349 00000 n -0000025453 00000 n -0000025556 00000 n -0000025660 00000 n -0000025764 00000 n -0000025868 00000 n -0000025972 00000 n -0000026076 00000 n -0000026180 00000 n -0000026284 00000 n -0000026388 00000 n -0000026492 00000 n -0000026596 00000 n -0000026699 00000 n -0000026801 00000 n -0000026903 00000 n -0000027288 00000 n -0000027391 00000 n -0000027495 00000 n -0000027598 00000 n -0000027702 00000 n -0000027806 00000 n -0000027910 00000 n -0000028014 00000 n -0000028117 00000 n -0000028221 00000 n -0000028325 00000 n -0000028429 00000 n -0000028533 00000 n -0000028637 00000 n -0000028741 00000 n -0000028844 00000 n -0000028947 00000 n -0000029051 00000 n -0000029155 00000 n -0000029259 00000 n -0000029428 00000 n -0000029481 00000 n -0000029568 00000 n -0000029622 00000 n -0000029708 00000 n -0000029775 00000 n -0000029861 00000 n -0000029964 00000 n -0000030068 00000 n -0000030172 00000 n -0000030276 00000 n -0000030380 00000 n -0000030484 00000 n -0000030588 00000 n -0000030692 00000 n -0000030796 00000 n -0000030900 00000 n -0000031004 00000 n -0000031108 00000 n -0000031212 00000 n -0000031316 00000 n -0000031420 00000 n -0000031524 00000 n -0000031628 00000 n -0000031732 00000 n -0000031836 00000 n -0000031939 00000 n -0000032043 00000 n -0000032147 00000 n -0000032251 00000 n -0000032355 00000 n -0000032459 00000 n -0000032563 00000 n -0000032667 00000 n -0000032771 00000 n -0000032875 00000 n -0000032979 00000 n -0000033083 00000 n -0000033186 00000 n -0000033288 00000 n -0000033390 00000 n -0000033703 00000 n -0000033807 00000 n -0000033910 00000 n -0000034014 00000 n -0000034118 00000 n -0000034222 00000 n -0000034326 00000 n -0000034430 00000 n -0000034534 00000 n -0000034638 00000 n -0000034742 00000 n -0000034846 00000 n -0000034950 00000 n -0000035054 00000 n -0000035158 00000 n -0000035262 00000 n -0000035366 00000 n -0000035470 00000 n -0000035574 00000 n -0000035678 00000 n -0000035782 00000 n -0000035885 00000 n -0000035989 00000 n -0000036093 00000 n -0000036197 00000 n -0000036300 00000 n -0000036404 00000 n -0000036508 00000 n -0000036611 00000 n -0000036715 00000 n -0000036819 00000 n -0000036923 00000 n -0000037027 00000 n -0000037131 00000 n -0000037235 00000 n -0000037339 00000 n -0000037443 00000 n -0000037547 00000 n -0000037650 00000 n -0000037754 00000 n -0000037858 00000 n -0000037962 00000 n -0000038066 00000 n -0000038170 00000 n -0000038274 00000 n -0000038378 00000 n -0000038482 00000 n -0000038586 00000 n -0000038690 00000 n -0000038793 00000 n -0000038895 00000 n -0000038997 00000 n -0000039422 00000 n -0000039525 00000 n -0000039629 00000 n -0000039733 00000 n -0000039837 00000 n -0000039941 00000 n -0000040045 00000 n -0000040149 00000 n -0000040253 00000 n -0000040357 00000 n -0000040461 00000 n -0000040564 00000 n -0000040668 00000 n -0000040772 00000 n -0000040875 00000 n -0000040979 00000 n -0000041083 00000 n -0000041187 00000 n -0000041290 00000 n -0000041394 00000 n -0000041498 00000 n -0000041602 00000 n -0000041706 00000 n -0000041810 00000 n -0000041914 00000 n -0000042018 00000 n -0000042122 00000 n -0000042226 00000 n -0000042330 00000 n -0000042434 00000 n -0000042538 00000 n -0000042642 00000 n -0000042746 00000 n -0000042850 00000 n -0000042954 00000 n -0000043057 00000 n -0000043161 00000 n -0000043265 00000 n -0000043369 00000 n -0000043473 00000 n -0000043577 00000 n -0000043681 00000 n -0000043785 00000 n -0000043889 00000 n -0000043993 00000 n -0000044097 00000 n -0000044201 00000 n -0000044305 00000 n -0000044409 00000 n -0000044512 00000 n -0000044613 00000 n -0000044715 00000 n -0000045140 00000 n -0000045244 00000 n -0000045348 00000 n -0000045452 00000 n -0000045556 00000 n -0000045660 00000 n -0000045764 00000 n -0000045868 00000 n -0000045971 00000 n -0000046075 00000 n -0000046179 00000 n -0000046283 00000 n -0000046387 00000 n -0000046491 00000 n -0000046595 00000 n -0000046699 00000 n -0000046803 00000 n -0000046907 00000 n -0000047011 00000 n -0000047115 00000 n -0000047219 00000 n -0000047322 00000 n -0000047426 00000 n -0000047530 00000 n -0000047634 00000 n -0000047738 00000 n -0000047842 00000 n -0000047946 00000 n -0000048050 00000 n -0000048154 00000 n -0000048258 00000 n -0000048361 00000 n -0000048465 00000 n -0000048569 00000 n -0000048673 00000 n -0000048777 00000 n -0000048881 00000 n -0000048985 00000 n -0000049089 00000 n -0000049193 00000 n -0000049297 00000 n -0000049401 00000 n -0000049505 00000 n -0000049609 00000 n -0000049712 00000 n -0000049816 00000 n -0000049920 00000 n -0000050024 00000 n -0000050128 00000 n -0000050231 00000 n -0000050333 00000 n -0000050435 00000 n -0000050860 00000 n -0000050964 00000 n -0000051068 00000 n -0000051172 00000 n -0000051276 00000 n -0000051380 00000 n -0000051484 00000 n -0000051588 00000 n -0000051692 00000 n -0000051796 00000 n -0000051900 00000 n -0000052004 00000 n -0000052108 00000 n -0000052212 00000 n -0000052315 00000 n -0000052419 00000 n -0000052523 00000 n -0000052627 00000 n -0000052731 00000 n -0000052835 00000 n -0000052939 00000 n -0000053043 00000 n -0000053147 00000 n -0000053251 00000 n -0000053355 00000 n -0000053459 00000 n -0000053563 00000 n -0000053667 00000 n -0000053770 00000 n -0000053874 00000 n -0000053978 00000 n -0000054082 00000 n -0000054186 00000 n -0000054289 00000 n -0000054393 00000 n -0000054497 00000 n -0000054601 00000 n -0000054705 00000 n -0000054809 00000 n -0000054913 00000 n -0000055016 00000 n -0000055119 00000 n -0000055223 00000 n -0000055327 00000 n -0000055431 00000 n -0000055800 00000 n -0000055853 00000 n -0000055940 00000 n -0000055965 00000 n -0000056019 00000 n -0000056106 00000 n -0000056160 00000 n -0000056247 00000 n -0000056280 00000 n -0000056328 00000 n -0000056415 00000 n -0000056462 00000 n -0000056548 00000 n -0000056595 00000 n -0000056681 00000 n -0000056722 00000 n -0000056767 00000 n -0000056854 00000 n -0000056899 00000 n -0000056985 00000 n -0000057018 00000 n -0000057073 00000 n -0000057159 00000 n -0000057184 00000 n -0000057237 00000 n -0000057324 00000 n -0000057374 00000 n -0000057461 00000 n -0000057494 00000 n -0000057613 00000 n -0000057699 00000 n -0000057742 00000 n -0000057829 00000 n -0000057872 00000 n -0000057959 00000 n -0000058000 00000 n -0000058046 00000 n -0000058133 00000 n -0000058158 00000 n -0000058204 00000 n -0000058291 00000 n -0000058337 00000 n -0000058422 00000 n -0000058466 00000 n -0000058553 00000 n -0000058604 00000 n -0000058691 00000 n -0000058740 00000 n -0000058827 00000 n -0000058875 00000 n -0000058961 00000 n -0000059026 00000 n -0000059089 00000 n -0000059176 00000 n -0000059234 00000 n -0000059321 00000 n -0000059415 00000 n -0000059501 00000 n -0000059603 00000 n -0000059652 00000 n -0000059755 00000 n -0000059798 00000 n -0000059884 00000 n -0000059932 00000 n -0000060019 00000 n -0000060060 00000 n -0000060147 00000 n -0000060191 00000 n -0000060278 00000 n -0000060322 00000 n -0000060408 00000 n -0000060473 00000 n -0000060519 00000 n -0000060606 00000 n -0000060631 00000 n -0000060680 00000 n -0000060767 00000 n -0000060821 00000 n -0000060908 00000 n -0000060959 00000 n -0000061046 00000 n -0000061097 00000 n -0000061183 00000 n -0000061237 00000 n -0000061323 00000 n -0000061373 00000 n -0000061458 00000 n -0000061523 00000 n -0000061573 00000 n -0000061660 00000 n -0000061710 00000 n -0000061796 00000 n -0000061860 00000 n -0000061947 00000 n -0000061988 00000 n -0000062052 00000 n -0000062139 00000 n +0000000250 00000 n +0000001816 00000 n +0000001890 00000 n +0000001969 00000 n +0000002051 00000 n +0000002137 00000 n +0000002215 00000 n +0000002292 00000 n +0000002371 00000 n +0000002455 00000 n +0000002532 00000 n +0000002614 00000 n +0000002673 00000 n +0000002775 00000 n +0000002878 00000 n +0000002980 00000 n +0000003082 00000 n +0000003185 00000 n +0000003288 00000 n +0000003391 00000 n +0000003494 00000 n +0000003597 00000 n +0000003700 00000 n +0000003803 00000 n +0000003906 00000 n +0000004009 00000 n +0000004112 00000 n +0000004215 00000 n +0000004318 00000 n +0000004421 00000 n +0000004524 00000 n +0000004627 00000 n +0000004730 00000 n +0000004833 00000 n +0000004936 00000 n +0000005038 00000 n +0000005141 00000 n +0000005244 00000 n +0000005347 00000 n +0000005450 00000 n +0000005553 00000 n +0000005656 00000 n +0000005759 00000 n +0000005862 00000 n +0000005965 00000 n +0000006068 00000 n +0000006171 00000 n +0000006274 00000 n +0000006377 00000 n +0000006480 00000 n +0000006583 00000 n +0000006685 00000 n +0000006788 00000 n +0000006891 00000 n +0000006993 00000 n +0000007094 00000 n +0000007195 00000 n +0000007519 00000 n +0000007621 00000 n +0000007724 00000 n +0000007827 00000 n +0000007930 00000 n +0000008033 00000 n +0000008136 00000 n +0000008239 00000 n +0000008342 00000 n +0000008445 00000 n +0000008548 00000 n +0000008651 00000 n +0000008754 00000 n +0000008857 00000 n +0000008960 00000 n +0000009062 00000 n +0000009165 00000 n +0000009268 00000 n +0000009371 00000 n +0000009473 00000 n +0000009576 00000 n +0000009679 00000 n +0000009781 00000 n +0000009884 00000 n +0000009987 00000 n +0000010090 00000 n +0000010193 00000 n +0000010296 00000 n +0000010399 00000 n +0000010502 00000 n +0000010605 00000 n +0000010708 00000 n +0000010810 00000 n +0000010913 00000 n +0000011016 00000 n +0000011119 00000 n +0000011222 00000 n +0000011325 00000 n +0000011428 00000 n +0000011531 00000 n +0000011634 00000 n +0000011737 00000 n +0000011840 00000 n +0000011942 00000 n +0000012044 00000 n +0000012372 00000 n +0000012475 00000 n +0000012579 00000 n +0000012682 00000 n +0000012786 00000 n +0000012890 00000 n +0000012994 00000 n +0000013098 00000 n +0000013202 00000 n +0000013306 00000 n +0000013410 00000 n +0000013514 00000 n +0000013618 00000 n +0000013721 00000 n +0000013825 00000 n +0000013929 00000 n +0000014032 00000 n +0000014136 00000 n +0000014240 00000 n +0000014344 00000 n +0000014447 00000 n +0000014551 00000 n +0000014655 00000 n +0000014759 00000 n +0000014863 00000 n +0000014967 00000 n +0000015071 00000 n +0000015175 00000 n +0000015279 00000 n +0000015383 00000 n +0000015487 00000 n +0000015591 00000 n +0000015695 00000 n +0000015799 00000 n +0000015903 00000 n +0000016007 00000 n +0000016111 00000 n +0000016214 00000 n +0000016318 00000 n +0000016422 00000 n +0000016526 00000 n +0000016629 00000 n +0000016731 00000 n +0000016833 00000 n +0000017194 00000 n +0000017297 00000 n +0000017401 00000 n +0000017505 00000 n +0000017609 00000 n +0000017713 00000 n +0000017817 00000 n +0000017921 00000 n +0000018025 00000 n +0000018129 00000 n +0000018232 00000 n +0000018336 00000 n +0000018440 00000 n +0000018544 00000 n +0000018648 00000 n +0000018752 00000 n +0000018856 00000 n +0000018960 00000 n +0000019064 00000 n +0000019167 00000 n +0000019271 00000 n +0000019375 00000 n +0000019479 00000 n +0000019583 00000 n +0000019687 00000 n +0000019791 00000 n +0000019895 00000 n +0000019999 00000 n +0000020103 00000 n +0000020207 00000 n +0000020311 00000 n +0000020415 00000 n +0000020518 00000 n +0000020622 00000 n +0000020726 00000 n +0000020830 00000 n +0000020934 00000 n +0000021038 00000 n +0000021142 00000 n +0000021246 00000 n +0000021350 00000 n +0000021454 00000 n +0000021558 00000 n +0000021661 00000 n +0000021763 00000 n +0000022132 00000 n +0000022235 00000 n +0000022339 00000 n +0000022443 00000 n +0000022547 00000 n +0000022651 00000 n +0000022755 00000 n +0000022859 00000 n +0000022963 00000 n +0000023067 00000 n +0000023171 00000 n +0000023275 00000 n +0000023379 00000 n +0000023483 00000 n +0000023587 00000 n +0000023691 00000 n +0000023795 00000 n +0000023899 00000 n +0000024003 00000 n +0000024107 00000 n +0000024211 00000 n +0000024315 00000 n +0000024418 00000 n +0000024522 00000 n +0000024626 00000 n +0000024730 00000 n +0000024834 00000 n +0000024938 00000 n +0000025042 00000 n +0000025146 00000 n +0000025250 00000 n +0000025354 00000 n +0000025458 00000 n +0000025562 00000 n +0000025666 00000 n +0000025770 00000 n +0000025873 00000 n +0000025977 00000 n +0000026081 00000 n +0000026185 00000 n +0000026289 00000 n +0000026392 00000 n +0000026496 00000 n +0000026599 00000 n +0000026701 00000 n +0000026803 00000 n +0000027180 00000 n +0000027283 00000 n +0000027387 00000 n +0000027491 00000 n +0000027594 00000 n +0000027697 00000 n +0000027801 00000 n +0000027905 00000 n +0000028009 00000 n +0000028090 00000 n +0000028143 00000 n +0000028230 00000 n +0000028284 00000 n +0000028370 00000 n +0000028437 00000 n +0000028523 00000 n +0000028626 00000 n +0000028730 00000 n +0000028834 00000 n +0000028938 00000 n +0000029042 00000 n +0000029146 00000 n +0000029250 00000 n +0000029354 00000 n +0000029458 00000 n +0000029562 00000 n +0000029666 00000 n +0000029770 00000 n +0000029874 00000 n +0000029978 00000 n +0000030082 00000 n +0000030186 00000 n +0000030290 00000 n +0000030394 00000 n +0000030498 00000 n +0000030601 00000 n +0000030705 00000 n +0000030809 00000 n +0000030913 00000 n +0000031017 00000 n +0000031121 00000 n +0000031225 00000 n +0000031329 00000 n +0000031433 00000 n +0000031537 00000 n +0000031641 00000 n +0000031745 00000 n +0000031848 00000 n +0000031950 00000 n +0000032052 00000 n +0000032365 00000 n +0000032469 00000 n +0000032572 00000 n +0000032676 00000 n +0000032780 00000 n +0000032884 00000 n +0000032988 00000 n +0000033092 00000 n +0000033196 00000 n +0000033300 00000 n +0000033404 00000 n +0000033508 00000 n +0000033612 00000 n +0000033716 00000 n +0000033820 00000 n +0000033924 00000 n +0000034028 00000 n +0000034132 00000 n +0000034236 00000 n +0000034340 00000 n +0000034444 00000 n +0000034547 00000 n +0000034651 00000 n +0000034755 00000 n +0000034859 00000 n +0000034962 00000 n +0000035066 00000 n +0000035170 00000 n +0000035273 00000 n +0000035377 00000 n +0000035481 00000 n +0000035585 00000 n +0000035689 00000 n +0000035793 00000 n +0000035897 00000 n +0000036001 00000 n +0000036105 00000 n +0000036209 00000 n +0000036312 00000 n +0000036416 00000 n +0000036520 00000 n +0000036624 00000 n +0000036728 00000 n +0000036832 00000 n +0000036936 00000 n +0000037040 00000 n +0000037144 00000 n +0000037248 00000 n +0000037352 00000 n +0000037455 00000 n +0000037557 00000 n +0000037659 00000 n +0000038084 00000 n +0000038187 00000 n +0000038291 00000 n +0000038395 00000 n +0000038499 00000 n +0000038603 00000 n +0000038707 00000 n +0000038811 00000 n +0000038915 00000 n +0000039019 00000 n +0000039123 00000 n +0000039226 00000 n +0000039330 00000 n +0000039434 00000 n +0000039537 00000 n +0000039641 00000 n +0000039745 00000 n +0000039849 00000 n +0000039952 00000 n +0000040056 00000 n +0000040160 00000 n +0000040264 00000 n +0000040368 00000 n +0000040472 00000 n +0000040576 00000 n +0000040680 00000 n +0000040784 00000 n +0000040888 00000 n +0000040992 00000 n +0000041096 00000 n +0000041200 00000 n +0000041304 00000 n +0000041408 00000 n +0000041512 00000 n +0000041616 00000 n +0000041719 00000 n +0000041823 00000 n +0000041927 00000 n +0000042031 00000 n +0000042135 00000 n +0000042239 00000 n +0000042343 00000 n +0000042447 00000 n +0000042551 00000 n +0000042655 00000 n +0000042759 00000 n +0000042863 00000 n +0000042967 00000 n +0000043071 00000 n +0000043174 00000 n +0000043275 00000 n +0000043377 00000 n +0000043802 00000 n +0000043906 00000 n +0000044010 00000 n +0000044114 00000 n +0000044218 00000 n +0000044322 00000 n +0000044426 00000 n +0000044530 00000 n +0000044633 00000 n +0000044737 00000 n +0000044841 00000 n +0000044945 00000 n +0000045049 00000 n +0000045153 00000 n +0000045257 00000 n +0000045361 00000 n +0000045465 00000 n +0000045569 00000 n +0000045673 00000 n +0000045777 00000 n +0000045881 00000 n +0000045984 00000 n +0000046088 00000 n +0000046192 00000 n +0000046296 00000 n +0000046400 00000 n +0000046504 00000 n +0000046608 00000 n +0000046712 00000 n +0000046816 00000 n +0000046920 00000 n +0000047024 00000 n +0000047128 00000 n +0000047232 00000 n +0000047335 00000 n +0000047439 00000 n +0000047543 00000 n +0000047647 00000 n +0000047751 00000 n +0000047855 00000 n +0000047959 00000 n +0000048063 00000 n +0000048167 00000 n +0000048271 00000 n +0000048375 00000 n +0000048479 00000 n +0000048583 00000 n +0000048687 00000 n +0000048791 00000 n +0000048894 00000 n +0000048996 00000 n +0000049098 00000 n +0000049523 00000 n +0000049627 00000 n +0000049731 00000 n +0000049835 00000 n +0000049938 00000 n +0000050042 00000 n +0000050146 00000 n +0000050250 00000 n +0000050354 00000 n +0000050458 00000 n +0000050562 00000 n +0000050666 00000 n +0000050770 00000 n +0000050874 00000 n +0000050978 00000 n +0000051082 00000 n +0000051186 00000 n +0000051290 00000 n +0000051393 00000 n +0000051497 00000 n +0000051601 00000 n +0000051705 00000 n +0000051809 00000 n +0000051912 00000 n +0000052016 00000 n +0000052120 00000 n +0000052224 00000 n +0000052328 00000 n +0000052432 00000 n +0000052536 00000 n +0000052639 00000 n +0000052742 00000 n +0000052846 00000 n +0000052950 00000 n +0000053054 00000 n +0000053343 00000 n +0000053396 00000 n +0000053483 00000 n +0000053508 00000 n +0000053562 00000 n +0000053649 00000 n +0000053703 00000 n +0000053790 00000 n +0000053823 00000 n +0000053871 00000 n +0000053958 00000 n +0000054005 00000 n +0000054091 00000 n +0000054138 00000 n +0000054224 00000 n +0000054265 00000 n +0000054310 00000 n +0000054397 00000 n +0000054442 00000 n +0000054528 00000 n +0000054561 00000 n +0000054616 00000 n +0000054701 00000 n +0000054726 00000 n +0000054779 00000 n +0000054866 00000 n +0000054916 00000 n +0000055003 00000 n +0000055036 00000 n +0000055155 00000 n +0000055241 00000 n +0000055284 00000 n +0000055371 00000 n +0000055414 00000 n +0000055501 00000 n +0000055542 00000 n +0000055588 00000 n +0000055675 00000 n +0000055700 00000 n +0000055746 00000 n +0000055833 00000 n +0000055879 00000 n +0000055964 00000 n +0000056008 00000 n +0000056095 00000 n +0000056146 00000 n +0000056233 00000 n +0000056282 00000 n +0000056369 00000 n +0000056417 00000 n +0000056503 00000 n +0000056568 00000 n +0000056631 00000 n +0000056718 00000 n +0000056776 00000 n +0000056863 00000 n +0000056957 00000 n +0000057043 00000 n +0000057145 00000 n +0000057194 00000 n +0000057297 00000 n +0000057340 00000 n +0000057426 00000 n +0000057474 00000 n +0000057561 00000 n +0000057602 00000 n +0000057689 00000 n +0000057733 00000 n +0000057820 00000 n +0000057864 00000 n +0000057950 00000 n +0000058015 00000 n +0000058061 00000 n +0000058148 00000 n +0000058173 00000 n +0000058222 00000 n +0000058309 00000 n +0000058363 00000 n +0000058450 00000 n +0000058501 00000 n +0000058588 00000 n +0000058639 00000 n +0000058725 00000 n +0000058779 00000 n +0000058864 00000 n +0000058921 00000 n +0000058971 00000 n +0000059058 00000 n +0000059083 00000 n +0000059133 00000 n +0000059220 00000 n +0000059270 00000 n +0000059356 00000 n +0000059420 00000 n +0000059507 00000 n +0000059548 00000 n +0000059612 00000 n +0000059699 00000 n +0000059724 00000 n +0000059766 00000 n +0000059852 00000 n +0000059903 00000 n +0000059990 00000 n +0000060037 00000 n +0000060124 00000 n +0000060165 00000 n +0000060214 00000 n +0000060301 00000 n +0000060349 00000 n +0000060436 00000 n +0000060478 00000 n +0000060564 00000 n +0000060605 00000 n +0000060648 00000 n +0000060735 00000 n +0000060785 00000 n +0000060872 00000 n +0000060920 00000 n +0000061007 00000 n +0000061061 00000 n +0000061146 00000 n +0000061195 00000 n +0000061240 00000 n +0000061327 00000 n +0000061384 00000 n +0000061471 00000 n +0000061567 00000 n +0000061653 00000 n +0000061694 00000 n +0000061756 00000 n +0000061843 00000 n +0000061868 00000 n +0000061917 00000 n +0000062004 00000 n +0000062029 00000 n +0000062077 00000 n 0000062164 00000 n -0000062206 00000 n -0000062292 00000 n -0000062343 00000 n -0000062430 00000 n -0000062477 00000 n -0000062564 00000 n -0000062605 00000 n -0000062654 00000 n -0000062741 00000 n -0000062789 00000 n -0000062876 00000 n -0000062918 00000 n -0000063004 00000 n -0000063045 00000 n +0000062214 00000 n +0000062301 00000 n +0000062345 00000 n +0000062432 00000 n +0000062476 00000 n +0000062563 00000 n +0000062613 00000 n +0000062699 00000 n +0000062749 00000 n +0000062834 00000 n +0000062883 00000 n +0000062968 00000 n +0000063041 00000 n 0000063088 00000 n 0000063175 00000 n -0000063225 00000 n -0000063312 00000 n -0000063360 00000 n -0000063447 00000 n -0000063501 00000 n -0000063586 00000 n -0000063635 00000 n -0000063680 00000 n -0000063767 00000 n -0000063824 00000 n -0000063911 00000 n -0000064007 00000 n -0000064093 00000 n -0000064134 00000 n -0000064196 00000 n -0000064283 00000 n -0000064308 00000 n -0000064357 00000 n -0000064444 00000 n -0000064469 00000 n -0000064517 00000 n -0000064604 00000 n -0000064654 00000 n -0000064740 00000 n -0000064784 00000 n -0000064870 00000 n -0000064914 00000 n -0000065000 00000 n -0000065050 00000 n -0000065136 00000 n -0000065186 00000 n -0000065271 00000 n -0000065320 00000 n -0000065404 00000 n -0000065451 00000 n -0000065535 00000 n -0000065616 00000 n -0000065664 00000 n -0000065751 00000 n -0000065799 00000 n -0000065886 00000 n -0000065936 00000 n -0000066023 00000 n -0000066071 00000 n -0000066158 00000 n -0000066207 00000 n -0000066255 00000 n -0000066342 00000 n -0000066390 00000 n -0000066475 00000 n -0000066520 00000 n -0000066606 00000 n -0000066649 00000 n -0000066735 00000 n -0000066776 00000 n -0000066862 00000 n -0000066911 00000 n -0000066997 00000 n -0000067043 00000 n -0000067129 00000 n -0000067174 00000 n -0000067260 00000 n -0000067312 00000 n -0000067398 00000 n -0000067448 00000 n -0000067534 00000 n -0000067580 00000 n -0000067666 00000 n -0000067709 00000 n -0000067795 00000 n -0000067839 00000 n -0000067925 00000 n -0000067968 00000 n -0000068054 00000 n -0000068099 00000 n -0000068185 00000 n -0000068223 00000 n -0000068309 00000 n -0000068351 00000 n -0000068437 00000 n -0000068480 00000 n -0000068566 00000 n -0000068604 00000 n -0000068690 00000 n -0000068732 00000 n -0000068818 00000 n -0000068862 00000 n -0000068948 00000 n -0000068995 00000 n -0000069081 00000 n -0000069129 00000 n -0000069214 00000 n -0000069415 00000 n -0000069465 00000 n -0000069552 00000 n -0000069602 00000 n -0000069688 00000 n -0000069721 00000 n -0000069770 00000 n -0000069856 00000 n -0000069903 00000 n -0000069990 00000 n -0000070023 00000 n -0000070138 00000 n -0000070225 00000 n -0000070250 00000 n -0000070332 00000 n -0000070419 00000 n -0000070504 00000 n -0000070591 00000 n -0000070624 00000 n -0000070679 00000 n -0000070766 00000 n -0000070822 00000 n -0000070909 00000 n -0000070942 00000 n -0000070990 00000 n -0000071077 00000 n -0000071151 00000 n -0000071238 00000 n -0000071306 00000 n -0000071393 00000 n -0000071447 00000 n -0000071534 00000 n -0000071602 00000 n -0000071689 00000 n -0000071763 00000 n -0000071850 00000 n -0000071898 00000 n -0000071985 00000 n -0000072042 00000 n -0000072129 00000 n -0000072210 00000 n -0000072265 00000 n -0000072352 00000 n -0000072433 00000 n -0000072520 00000 n -0000072553 00000 n -0000072606 00000 n -0000072693 00000 n -0000072718 00000 n -0000072774 00000 n -0000072861 00000 n -0000072930 00000 n -0000073017 00000 n -0000073068 00000 n -0000073155 00000 n -0000073242 00000 n -0000073329 00000 n -0000073385 00000 n -0000073472 00000 n -0000073522 00000 n -0000073609 00000 n -0000073674 00000 n -0000073726 00000 n -0000073813 00000 n -0000073869 00000 n -0000073956 00000 n -0000074004 00000 n -0000074091 00000 n -0000074139 00000 n -0000074226 00000 n -0000074275 00000 n -0000074316 00000 n -0000074401 00000 n -0000074426 00000 n -0000074470 00000 n -0000074557 00000 n -0000074602 00000 n -0000074689 00000 n -0000074733 00000 n -0000074820 00000 n -0000074864 00000 n -0000074951 00000 n -0000074993 00000 n -0000075080 00000 n -0000075128 00000 n -0000075215 00000 n -0000075280 00000 n -0000075328 00000 n -0000075414 00000 n -0000075439 00000 n -0000075492 00000 n -0000075578 00000 n -0000075603 00000 n -0000075657 00000 n -0000075744 00000 n -0000075769 00000 n -0000075824 00000 n -0000075910 00000 n -0000075978 00000 n -0000076064 00000 n -0000076139 00000 n -0000076226 00000 n -0000076296 00000 n -0000076382 00000 n -0000076461 00000 n -0000076548 00000 n -0000076605 00000 n -0000076687 00000 n -0000076773 00000 n -0000076848 00000 n -0000076935 00000 n -0000077008 00000 n -0000077095 00000 n -0000077173 00000 n -0000077260 00000 n -0000077309 00000 n -0000077357 00000 n -0000077444 00000 n -0000077469 00000 n -0000077517 00000 n -0000077604 00000 n -0000077629 00000 n -0000077692 00000 n -0000077779 00000 n -0000077842 00000 n -0000077929 00000 n -0000077983 00000 n -0000078070 00000 n -0000078111 00000 n -0000078158 00000 n -0000078245 00000 n -0000078270 00000 n -0000078304 00000 n -0000078338 00000 n -0000082635 00000 n -0000082679 00000 n -0000082723 00000 n -0000082767 00000 n -0000082811 00000 n -0000082855 00000 n -0000082899 00000 n -0000082943 00000 n -0000082987 00000 n -0000083031 00000 n -0000083075 00000 n -0000083119 00000 n -0000083163 00000 n -0000083207 00000 n -0000083251 00000 n -0000083295 00000 n -0000083339 00000 n -0000083383 00000 n -0000083427 00000 n -0000083471 00000 n -0000083515 00000 n -0000083559 00000 n -0000083603 00000 n -0000083647 00000 n -0000083691 00000 n -0000083735 00000 n -0000083779 00000 n -0000083823 00000 n -0000083867 00000 n -0000083911 00000 n -0000083955 00000 n -0000083999 00000 n -0000084043 00000 n -0000084087 00000 n -0000084131 00000 n -0000084175 00000 n -0000084219 00000 n -0000084263 00000 n -0000084307 00000 n -0000084351 00000 n -0000084395 00000 n -0000084439 00000 n -0000084483 00000 n -0000084527 00000 n -0000084571 00000 n -0000084615 00000 n -0000084659 00000 n -0000084703 00000 n -0000084747 00000 n -0000084791 00000 n -0000084835 00000 n -0000084879 00000 n -0000084923 00000 n -0000084967 00000 n -0000085011 00000 n -0000085055 00000 n -0000085099 00000 n -0000085143 00000 n -0000085187 00000 n -0000085231 00000 n -0000085275 00000 n -0000085319 00000 n -0000085363 00000 n -0000085407 00000 n -0000085451 00000 n -0000085495 00000 n -0000085539 00000 n -0000085583 00000 n -0000085627 00000 n -0000085671 00000 n -0000085715 00000 n -0000085759 00000 n -0000085803 00000 n -0000085847 00000 n -0000085891 00000 n -0000085935 00000 n -0000085979 00000 n -0000086023 00000 n -0000086067 00000 n -0000086111 00000 n -0000086155 00000 n -0000086199 00000 n -0000086243 00000 n -0000086287 00000 n -0000086331 00000 n -0000086375 00000 n -0000086419 00000 n -0000086463 00000 n -0000086507 00000 n -0000086551 00000 n -0000086595 00000 n -0000086639 00000 n -0000086683 00000 n -0000086727 00000 n -0000086771 00000 n -0000086815 00000 n -0000086859 00000 n -0000086903 00000 n -0000086947 00000 n -0000086991 00000 n -0000087035 00000 n -0000087079 00000 n -0000087123 00000 n -0000087167 00000 n -0000087211 00000 n -0000087255 00000 n -0000087299 00000 n -0000087343 00000 n -0000087387 00000 n -0000087431 00000 n -0000087475 00000 n -0000087519 00000 n -0000087563 00000 n -0000087607 00000 n -0000087651 00000 n -0000087695 00000 n -0000087739 00000 n -0000087783 00000 n -0000087827 00000 n -0000087871 00000 n -0000087915 00000 n -0000087959 00000 n -0000088003 00000 n -0000088047 00000 n -0000088091 00000 n -0000088135 00000 n -0000088179 00000 n -0000088223 00000 n -0000088267 00000 n -0000088311 00000 n -0000088355 00000 n -0000088399 00000 n -0000088443 00000 n -0000088487 00000 n -0000088531 00000 n -0000088575 00000 n -0000088619 00000 n -0000088663 00000 n -0000088707 00000 n +0000063200 00000 n +0000063248 00000 n +0000063335 00000 n +0000063383 00000 n +0000063470 00000 n +0000063520 00000 n +0000063607 00000 n +0000063655 00000 n +0000063742 00000 n +0000063791 00000 n +0000063839 00000 n +0000063926 00000 n +0000063974 00000 n +0000064059 00000 n +0000064104 00000 n +0000064190 00000 n +0000064233 00000 n +0000064319 00000 n +0000064360 00000 n +0000064446 00000 n +0000064495 00000 n +0000064581 00000 n +0000064627 00000 n +0000064713 00000 n +0000064758 00000 n +0000064844 00000 n +0000064896 00000 n +0000064982 00000 n +0000065032 00000 n +0000065118 00000 n +0000065164 00000 n +0000065250 00000 n +0000065293 00000 n +0000065379 00000 n +0000065423 00000 n +0000065509 00000 n +0000065552 00000 n +0000065638 00000 n +0000065683 00000 n +0000065769 00000 n +0000065807 00000 n +0000065893 00000 n +0000065935 00000 n +0000066021 00000 n +0000066064 00000 n +0000066150 00000 n +0000066188 00000 n +0000066274 00000 n +0000066316 00000 n +0000066402 00000 n +0000066446 00000 n +0000066532 00000 n +0000066579 00000 n +0000066665 00000 n +0000066713 00000 n +0000066798 00000 n +0000066999 00000 n +0000067049 00000 n +0000067136 00000 n +0000067186 00000 n +0000067272 00000 n +0000067305 00000 n +0000067354 00000 n +0000067440 00000 n +0000067487 00000 n +0000067574 00000 n +0000067607 00000 n +0000067722 00000 n +0000067809 00000 n +0000067834 00000 n +0000067916 00000 n +0000068003 00000 n +0000068088 00000 n +0000068175 00000 n +0000068208 00000 n +0000068263 00000 n +0000068350 00000 n +0000068406 00000 n +0000068493 00000 n +0000068526 00000 n +0000068574 00000 n +0000068661 00000 n +0000068735 00000 n +0000068822 00000 n +0000068890 00000 n +0000068977 00000 n +0000069031 00000 n +0000069118 00000 n +0000069186 00000 n +0000069273 00000 n +0000069347 00000 n +0000069434 00000 n +0000069482 00000 n +0000069569 00000 n +0000069626 00000 n +0000069713 00000 n +0000069794 00000 n +0000069849 00000 n +0000069936 00000 n +0000070017 00000 n +0000070104 00000 n +0000070137 00000 n +0000070190 00000 n +0000070277 00000 n +0000070302 00000 n +0000070358 00000 n +0000070445 00000 n +0000070514 00000 n +0000070601 00000 n +0000070652 00000 n +0000070739 00000 n +0000070826 00000 n +0000070913 00000 n +0000070969 00000 n +0000071056 00000 n +0000071106 00000 n +0000071193 00000 n +0000071258 00000 n +0000071310 00000 n +0000071397 00000 n +0000071453 00000 n +0000071540 00000 n +0000071588 00000 n +0000071675 00000 n +0000071723 00000 n +0000071810 00000 n +0000071859 00000 n +0000071900 00000 n +0000071987 00000 n +0000072031 00000 n +0000072118 00000 n +0000072163 00000 n +0000072250 00000 n +0000072294 00000 n +0000072381 00000 n +0000072425 00000 n +0000072512 00000 n +0000072554 00000 n +0000072641 00000 n +0000072689 00000 n +0000072776 00000 n +0000072849 00000 n +0000072897 00000 n +0000072983 00000 n +0000073008 00000 n +0000073061 00000 n +0000073147 00000 n +0000073172 00000 n +0000073226 00000 n +0000073313 00000 n +0000073338 00000 n +0000073393 00000 n +0000073479 00000 n +0000073547 00000 n +0000073633 00000 n +0000073708 00000 n +0000073795 00000 n +0000073865 00000 n +0000073951 00000 n +0000074030 00000 n +0000074117 00000 n +0000074174 00000 n +0000074256 00000 n +0000074342 00000 n +0000074417 00000 n +0000074504 00000 n +0000074577 00000 n +0000074664 00000 n +0000074742 00000 n +0000074829 00000 n +0000074878 00000 n +0000074926 00000 n +0000075013 00000 n +0000075038 00000 n +0000075086 00000 n +0000075173 00000 n +0000075198 00000 n +0000075261 00000 n +0000075348 00000 n +0000075411 00000 n +0000075498 00000 n +0000075552 00000 n +0000075639 00000 n +0000075680 00000 n +0000075727 00000 n +0000075814 00000 n +0000075839 00000 n +0000075873 00000 n +0000075907 00000 n +0000080020 00000 n +0000080064 00000 n +0000080108 00000 n +0000080152 00000 n +0000080196 00000 n +0000080240 00000 n +0000080284 00000 n +0000080328 00000 n +0000080372 00000 n +0000080416 00000 n +0000080460 00000 n +0000080504 00000 n +0000080548 00000 n +0000080592 00000 n +0000080636 00000 n +0000080680 00000 n +0000080724 00000 n +0000080768 00000 n +0000080812 00000 n +0000080856 00000 n +0000080900 00000 n +0000080944 00000 n +0000080988 00000 n +0000081032 00000 n +0000081076 00000 n +0000081120 00000 n +0000081164 00000 n +0000081208 00000 n +0000081252 00000 n +0000081296 00000 n +0000081340 00000 n +0000081384 00000 n +0000081428 00000 n +0000081472 00000 n +0000081516 00000 n +0000081560 00000 n +0000081604 00000 n +0000081648 00000 n +0000081692 00000 n +0000081736 00000 n +0000081780 00000 n +0000081824 00000 n +0000081868 00000 n +0000081912 00000 n +0000081956 00000 n +0000082000 00000 n +0000082044 00000 n +0000082088 00000 n +0000082132 00000 n +0000082176 00000 n +0000082220 00000 n +0000082264 00000 n +0000082308 00000 n +0000082352 00000 n +0000082396 00000 n +0000082440 00000 n +0000082484 00000 n +0000082528 00000 n +0000082572 00000 n +0000082616 00000 n +0000082660 00000 n +0000082704 00000 n +0000082748 00000 n +0000082792 00000 n +0000082836 00000 n +0000082880 00000 n +0000082924 00000 n +0000082968 00000 n +0000083012 00000 n +0000083056 00000 n +0000083100 00000 n +0000083144 00000 n +0000083188 00000 n +0000083232 00000 n +0000083276 00000 n +0000083320 00000 n +0000083364 00000 n +0000083408 00000 n +0000083452 00000 n +0000083496 00000 n +0000083540 00000 n +0000083584 00000 n +0000083628 00000 n +0000083672 00000 n +0000083716 00000 n +0000083760 00000 n +0000083804 00000 n +0000083848 00000 n +0000083892 00000 n +0000083936 00000 n +0000083980 00000 n +0000084024 00000 n +0000084068 00000 n +0000084112 00000 n +0000084156 00000 n +0000084200 00000 n +0000084244 00000 n +0000084288 00000 n +0000084332 00000 n +0000084376 00000 n +0000084420 00000 n +0000084464 00000 n +0000084508 00000 n +0000084552 00000 n +0000084596 00000 n +0000084640 00000 n +0000084684 00000 n +0000084728 00000 n +0000084772 00000 n +0000084816 00000 n +0000084860 00000 n +0000084904 00000 n +0000084948 00000 n +0000084992 00000 n +0000085036 00000 n +0000085080 00000 n +0000085124 00000 n +0000085168 00000 n +0000085212 00000 n +0000085256 00000 n +0000085300 00000 n +0000085344 00000 n +0000085388 00000 n +0000085432 00000 n +0000085476 00000 n +0000085520 00000 n +0000085564 00000 n +0000085608 00000 n +0000085652 00000 n +0000085696 00000 n +0000085740 00000 n +0000085784 00000 n +0000085828 00000 n +0000085872 00000 n +0000085916 00000 n +0000085960 00000 n +0000086004 00000 n +0000086048 00000 n +0000086092 00000 n +0000086136 00000 n +0000086180 00000 n +0000086224 00000 n +0000086268 00000 n +0000086312 00000 n +0000086356 00000 n +0000086400 00000 n +0000086444 00000 n +0000086488 00000 n +0000086532 00000 n +0000086576 00000 n +0000086620 00000 n +0000086664 00000 n +0000086708 00000 n +0000086752 00000 n +0000086796 00000 n +0000086840 00000 n +0000086884 00000 n +0000086928 00000 n +0000086972 00000 n +0000087016 00000 n +0000087060 00000 n +0000087104 00000 n +0000087148 00000 n +0000087192 00000 n +0000087236 00000 n +0000087280 00000 n +0000087324 00000 n +0000087368 00000 n +0000087412 00000 n +0000087456 00000 n +0000087500 00000 n +0000087544 00000 n +0000087588 00000 n +0000087632 00000 n +0000087676 00000 n +0000087720 00000 n +0000087764 00000 n +0000087808 00000 n +0000087852 00000 n +0000087896 00000 n +0000087941 00000 n +0000087986 00000 n +0000088031 00000 n +0000088076 00000 n +0000088121 00000 n +0000088166 00000 n +0000088211 00000 n +0000088256 00000 n +0000088301 00000 n +0000088346 00000 n +0000088391 00000 n +0000088436 00000 n +0000088481 00000 n +0000088526 00000 n +0000088571 00000 n +0000088616 00000 n +0000088661 00000 n +0000088706 00000 n 0000088751 00000 n -0000088795 00000 n -0000088839 00000 n -0000088883 00000 n -0000088927 00000 n -0000088971 00000 n -0000089015 00000 n -0000089059 00000 n -0000089103 00000 n -0000089147 00000 n -0000089191 00000 n -0000089235 00000 n -0000089279 00000 n -0000089323 00000 n -0000089367 00000 n -0000089411 00000 n -0000089455 00000 n -0000089499 00000 n -0000089543 00000 n -0000089587 00000 n -0000089632 00000 n -0000089677 00000 n -0000089722 00000 n -0000089767 00000 n -0000089812 00000 n -0000089857 00000 n -0000089902 00000 n -0000089947 00000 n -0000089992 00000 n -0000090037 00000 n -0000090082 00000 n -0000090127 00000 n -0000090172 00000 n -0000090217 00000 n -0000090262 00000 n -0000090307 00000 n -0000090352 00000 n -0000090397 00000 n -0000090442 00000 n -0000090487 00000 n -0000090532 00000 n -0000090577 00000 n -0000090622 00000 n -0000090667 00000 n -0000090712 00000 n -0000090757 00000 n -0000090802 00000 n -0000090847 00000 n -0000090892 00000 n -0000090937 00000 n -0000090982 00000 n -0000091027 00000 n -0000091072 00000 n -0000091117 00000 n -0000091162 00000 n -0000091207 00000 n -0000091252 00000 n -0000091297 00000 n -0000091342 00000 n -0000091387 00000 n -0000091432 00000 n -0000091477 00000 n -0000091522 00000 n -0000091567 00000 n -0000091612 00000 n -0000091657 00000 n -0000091702 00000 n -0000091747 00000 n -0000091792 00000 n -0000091837 00000 n -0000091882 00000 n -0000091927 00000 n -0000091972 00000 n -0000092017 00000 n -0000092062 00000 n -0000092107 00000 n -0000092152 00000 n -0000092197 00000 n -0000092242 00000 n -0000092287 00000 n -0000092332 00000 n -0000092377 00000 n -0000092422 00000 n -0000092467 00000 n -0000092512 00000 n -0000092557 00000 n -0000092602 00000 n -0000092647 00000 n -0000092692 00000 n -0000092737 00000 n -0000092782 00000 n -0000092827 00000 n -0000092872 00000 n -0000092917 00000 n -0000092962 00000 n -0000093007 00000 n -0000093052 00000 n -0000093097 00000 n -0000093142 00000 n -0000093187 00000 n -0000093232 00000 n -0000093277 00000 n -0000093322 00000 n -0000093367 00000 n -0000093412 00000 n -0000093457 00000 n -0000093502 00000 n -0000093547 00000 n -0000093592 00000 n -0000093637 00000 n -0000093682 00000 n -0000093727 00000 n -0000093772 00000 n -0000093817 00000 n -0000093862 00000 n -0000093907 00000 n -0000093952 00000 n -0000093997 00000 n -0000094042 00000 n -0000095270 00000 n -0000095431 00000 n -0000095600 00000 n -0000095793 00000 n -0000099543 00000 n -0000099737 00000 n -0000104352 00000 n -0000104546 00000 n -0000108569 00000 n -0000108763 00000 n -0000113380 00000 n -0000113574 00000 n -0000117795 00000 n -0000117989 00000 n -0000119664 00000 n -0000119825 00000 n -0000120059 00000 n -0000120263 00000 n -0000122791 00000 n -0000122975 00000 n -0000126362 00000 n -0000126537 00000 n -0000129670 00000 n -0000129845 00000 n -0000132915 00000 n -0000133090 00000 n -0000135611 00000 n -0000135823 00000 n -0000136979 00000 n -0000137167 00000 n -0000138688 00000 n -0000138885 00000 n -0000140321 00000 n -0000140536 00000 n -0000141901 00000 n -0000142080 00000 n -0000143667 00000 n -0000143837 00000 n -0000145392 00000 n -0000145571 00000 n -0000147005 00000 n -0000147184 00000 n -0000148897 00000 n -0000149076 00000 n -0000150624 00000 n -0000150803 00000 n -0000152493 00000 n -0000152696 00000 n -0000154500 00000 n -0000154698 00000 n -0000156059 00000 n -0000156257 00000 n -0000157941 00000 n -0000158129 00000 n -0000159802 00000 n -0000159981 00000 n -0000162081 00000 n -0000162260 00000 n -0000164033 00000 n -0000164212 00000 n -0000165892 00000 n -0000166080 00000 n -0000167935 00000 n -0000168147 00000 n -0000170205 00000 n -0000170418 00000 n -0000171985 00000 n -0000172174 00000 n -0000173449 00000 n -0000173637 00000 n -0000175163 00000 n -0000175366 00000 n -0000177092 00000 n -0000177295 00000 n -0000178145 00000 n -0000178357 00000 n -0000179867 00000 n -0000180047 00000 n -0000180805 00000 n -0000181026 00000 n -0000182824 00000 n -0000183030 00000 n -0000184912 00000 n -0000185109 00000 n -0000186695 00000 n -0000186906 00000 n -0000188475 00000 n -0000188663 00000 n -0000189565 00000 n -0000189796 00000 n -0000191666 00000 n -0000191878 00000 n -0000193826 00000 n -0000194057 00000 n -0000196068 00000 n -0000196290 00000 n -0000198170 00000 n -0000198349 00000 n -0000199543 00000 n -0000199765 00000 n -0000201465 00000 n -0000201678 00000 n -0000203611 00000 n -0000203799 00000 n -0000204434 00000 n -0000204613 00000 n -0000206075 00000 n -0000206254 00000 n -0000207570 00000 n -0000207749 00000 n -0000209371 00000 n -0000209550 00000 n -0000211047 00000 n -0000211217 00000 n -0000211561 00000 n -0000211764 00000 n -0000213667 00000 n -0000213827 00000 n -0000214950 00000 n -0000215180 00000 n -0000216704 00000 n -0000216916 00000 n -0000218705 00000 n -0000218898 00000 n -0000220304 00000 n -0000220493 00000 n -0000222184 00000 n -0000222363 00000 n -0000224109 00000 n -0000224297 00000 n -0000226204 00000 n -0000226417 00000 n -0000228302 00000 n -0000228542 00000 n -0000230633 00000 n -0000230845 00000 n -0000232446 00000 n -0000232652 00000 n -0000233813 00000 n -0000234001 00000 n -0000235199 00000 n -0000235378 00000 n -0000236384 00000 n -0000236572 00000 n -0000238199 00000 n -0000238387 00000 n -0000239656 00000 n -0000239845 00000 n -0000241153 00000 n -0000241323 00000 n -0000241795 00000 n -0000242008 00000 n -0000243822 00000 n -0000244035 00000 n -0000245612 00000 n -0000245834 00000 n -0000247653 00000 n -0000247893 00000 n -0000249616 00000 n -0000249823 00000 n -0000251668 00000 n -0000251899 00000 n -0000253789 00000 n -0000254011 00000 n -0000255957 00000 n -0000256169 00000 n -0000258217 00000 n -0000258420 00000 n -0000260754 00000 n -0000260976 00000 n -0000263220 00000 n -0000263427 00000 n -0000265407 00000 n -0000265586 00000 n -0000267144 00000 n -0000267314 00000 n -0000269314 00000 n -0000269502 00000 n -0000271589 00000 n -0000271777 00000 n -0000273588 00000 n -0000273766 00000 n -0000275616 00000 n -0000275776 00000 n -0000276560 00000 n -0000276754 00000 n -0000278355 00000 n -0000278535 00000 n -0000280301 00000 n -0000280480 00000 n -0000281341 00000 n -0000281563 00000 n -0000283699 00000 n -0000283912 00000 n -0000285966 00000 n -0000286188 00000 n -0000287411 00000 n -0000287624 00000 n -0000289221 00000 n -0000289443 00000 n -0000291266 00000 n -0000291488 00000 n -0000293220 00000 n -0000293414 00000 n -0000294140 00000 n -0000294319 00000 n -0000295412 00000 n -0000295609 00000 n -0000297065 00000 n -0000297253 00000 n -0000298143 00000 n -0000298313 00000 n -0000299990 00000 n -0000300169 00000 n -0000301984 00000 n -0000302153 00000 n -0000303993 00000 n -0000304162 00000 n -0000305150 00000 n -0000305329 00000 n -0000306977 00000 n -0000307165 00000 n -0000308656 00000 n -0000308844 00000 n -0000310268 00000 n -0000310438 00000 n -0000312106 00000 n -0000312276 00000 n -0000312833 00000 n -0000313012 00000 n -0000314618 00000 n -0000314797 00000 n -0000316467 00000 n -0000316637 00000 n -0000318186 00000 n -0000318356 00000 n -0000319657 00000 n -0000319827 00000 n -0000321453 00000 n -0000321623 00000 n -0000323209 00000 n -0000323404 00000 n -0000325182 00000 n -0000325394 00000 n -0000327117 00000 n -0000327311 00000 n -0000329085 00000 n -0000329297 00000 n -0000330574 00000 n -0000330777 00000 n -0000332350 00000 n -0000332528 00000 n -0000333215 00000 n -0000333418 00000 n -0000335094 00000 n -0000335282 00000 n -0000337014 00000 n -0000337202 00000 n -0000338687 00000 n -0000338866 00000 n -0000340362 00000 n -0000340540 00000 n -0000341199 00000 n -0000341258 00000 n -0000341361 00000 n -0000341526 00000 n -0000341608 00000 n -0000341716 00000 n -0000341895 00000 n -0000342012 00000 n -0000342146 00000 n -0000342281 00000 n -0000342428 00000 n -0000342576 00000 n -0000342753 00000 n -0000342879 00000 n -0000343017 00000 n -0000343177 00000 n -0000343325 00000 n -0000343511 00000 n -0000343667 00000 n -0000343780 00000 n -0000343897 00000 n -0000344032 00000 n -0000344173 00000 n -0000344288 00000 n -0000344399 00000 n -0000344576 00000 n -0000344679 00000 n -0000344795 00000 n -0000344944 00000 n -0000345043 00000 n -0000345156 00000 n -0000345269 00000 n -0000345382 00000 n -0000345495 00000 n -0000345608 00000 n -0000345721 00000 n -0000345834 00000 n -0000345947 00000 n -0000346062 00000 n -0000346163 00000 n -0000346276 00000 n -0000346467 00000 n -0000346564 00000 n -0000346749 00000 n -0000346852 00000 n -0000346975 00000 n -0000347096 00000 n -0000347207 00000 n -0000347402 00000 n -0000347517 00000 n -0000347640 00000 n -0000347757 00000 n -0000347874 00000 n -0000347978 00000 n -0000348166 00000 n -0000348388 00000 n -0000348526 00000 n -0000348688 00000 n -0000348824 00000 n -0000348926 00000 n -0000349143 00000 n -0000349247 00000 n -0000349378 00000 n -0000349498 00000 n -0000349704 00000 n -0000349831 00000 n -0000349915 00000 n -0000350120 00000 n -0000350278 00000 n -0000350425 00000 n -0000350552 00000 n -0000350732 00000 n -0000350841 00000 n -0000350955 00000 n -0000351099 00000 n -0000351262 00000 n -0000351411 00000 n -0000351591 00000 n -0000351694 00000 n -0000351850 00000 n -0000351960 00000 n -0000352104 00000 n -0000352245 00000 n -0000352394 00000 n -0000352510 00000 n -0000352673 00000 n -0000352783 00000 n -0000352922 00000 n -0000353048 00000 n -0000353164 00000 n -0000353293 00000 n -0000353469 00000 n -0000353572 00000 n -0000353703 00000 n -0000353832 00000 n -0000353974 00000 n -0000354098 00000 n +0000088796 00000 n +0000088841 00000 n +0000088886 00000 n +0000088931 00000 n +0000088976 00000 n +0000089021 00000 n +0000089066 00000 n +0000089111 00000 n +0000089156 00000 n +0000089201 00000 n +0000089246 00000 n +0000089291 00000 n +0000089336 00000 n +0000089381 00000 n +0000089426 00000 n +0000089471 00000 n +0000089516 00000 n +0000089561 00000 n +0000089606 00000 n +0000089651 00000 n +0000089696 00000 n +0000089741 00000 n +0000089786 00000 n +0000089831 00000 n +0000089876 00000 n +0000089921 00000 n +0000089966 00000 n +0000090011 00000 n +0000090056 00000 n +0000090101 00000 n +0000090146 00000 n +0000090191 00000 n +0000090236 00000 n +0000090281 00000 n +0000090326 00000 n +0000090371 00000 n +0000090416 00000 n +0000090461 00000 n +0000090506 00000 n +0000090551 00000 n +0000090596 00000 n +0000090641 00000 n +0000090686 00000 n +0000090731 00000 n +0000090776 00000 n +0000090821 00000 n +0000090866 00000 n +0000090911 00000 n +0000090956 00000 n +0000092166 00000 n +0000092327 00000 n +0000092496 00000 n +0000092689 00000 n +0000095924 00000 n +0000096118 00000 n +0000100265 00000 n +0000100459 00000 n +0000104021 00000 n +0000104215 00000 n +0000108467 00000 n +0000108661 00000 n +0000112096 00000 n +0000112290 00000 n +0000112962 00000 n +0000113123 00000 n +0000113357 00000 n +0000113561 00000 n +0000115832 00000 n +0000116016 00000 n +0000119096 00000 n +0000119271 00000 n +0000122110 00000 n +0000122285 00000 n +0000124842 00000 n +0000125017 00000 n +0000127007 00000 n +0000127219 00000 n +0000128342 00000 n +0000128530 00000 n +0000130082 00000 n +0000130279 00000 n +0000131757 00000 n +0000131972 00000 n +0000133324 00000 n +0000133503 00000 n +0000135075 00000 n +0000135245 00000 n +0000136792 00000 n +0000136971 00000 n +0000138427 00000 n +0000138606 00000 n +0000140310 00000 n +0000140489 00000 n +0000142070 00000 n +0000142249 00000 n +0000143936 00000 n +0000144130 00000 n +0000145802 00000 n +0000146000 00000 n +0000147430 00000 n +0000147618 00000 n +0000149309 00000 n +0000149497 00000 n +0000151274 00000 n +0000151453 00000 n +0000153517 00000 n +0000153696 00000 n +0000155513 00000 n +0000155692 00000 n +0000157430 00000 n +0000157618 00000 n +0000159467 00000 n +0000159689 00000 n +0000161700 00000 n +0000161913 00000 n +0000163466 00000 n +0000163655 00000 n +0000165047 00000 n +0000165217 00000 n +0000165561 00000 n +0000165749 00000 n +0000167272 00000 n +0000167475 00000 n +0000169179 00000 n +0000169382 00000 n +0000170329 00000 n +0000170541 00000 n +0000172051 00000 n +0000172231 00000 n +0000172986 00000 n +0000173207 00000 n +0000174967 00000 n +0000175173 00000 n +0000177046 00000 n +0000177243 00000 n +0000178822 00000 n +0000179033 00000 n +0000180548 00000 n +0000180736 00000 n +0000181621 00000 n +0000181852 00000 n +0000183656 00000 n +0000183868 00000 n +0000185809 00000 n +0000186040 00000 n +0000188010 00000 n +0000188232 00000 n +0000190084 00000 n +0000190287 00000 n +0000191623 00000 n +0000191845 00000 n +0000193503 00000 n +0000193716 00000 n +0000195652 00000 n +0000195840 00000 n +0000196474 00000 n +0000196653 00000 n +0000198167 00000 n +0000198346 00000 n +0000199744 00000 n +0000199923 00000 n +0000201579 00000 n +0000201758 00000 n +0000203323 00000 n +0000203493 00000 n +0000203834 00000 n +0000204037 00000 n +0000205928 00000 n +0000206088 00000 n +0000207203 00000 n +0000207433 00000 n +0000208921 00000 n +0000209133 00000 n +0000210882 00000 n +0000211075 00000 n +0000212444 00000 n +0000212633 00000 n +0000214304 00000 n +0000214483 00000 n +0000216213 00000 n +0000216401 00000 n +0000218295 00000 n +0000218508 00000 n +0000220361 00000 n +0000220601 00000 n +0000222697 00000 n +0000222909 00000 n +0000224492 00000 n +0000224713 00000 n +0000225962 00000 n +0000226150 00000 n +0000227431 00000 n +0000227610 00000 n +0000228672 00000 n +0000228860 00000 n +0000230424 00000 n +0000230612 00000 n +0000232030 00000 n +0000232219 00000 n +0000233483 00000 n +0000233663 00000 n +0000234313 00000 n +0000234526 00000 n +0000236285 00000 n +0000236498 00000 n +0000238036 00000 n +0000238258 00000 n +0000240052 00000 n +0000240292 00000 n +0000242022 00000 n +0000242229 00000 n +0000244067 00000 n +0000244298 00000 n +0000246206 00000 n +0000246428 00000 n +0000248341 00000 n +0000248553 00000 n +0000250571 00000 n +0000250774 00000 n +0000253026 00000 n +0000253248 00000 n +0000255457 00000 n +0000255664 00000 n +0000257636 00000 n +0000257815 00000 n +0000259414 00000 n +0000259584 00000 n +0000261574 00000 n +0000261762 00000 n +0000263838 00000 n +0000264026 00000 n +0000265807 00000 n +0000265985 00000 n +0000267830 00000 n +0000267990 00000 n +0000268767 00000 n +0000268961 00000 n +0000270551 00000 n +0000270731 00000 n +0000272479 00000 n +0000272658 00000 n +0000273555 00000 n +0000273777 00000 n +0000275844 00000 n +0000276057 00000 n +0000278106 00000 n +0000278303 00000 n +0000279502 00000 n +0000279715 00000 n +0000281331 00000 n +0000281553 00000 n +0000283376 00000 n +0000283598 00000 n +0000285365 00000 n +0000285559 00000 n +0000286334 00000 n +0000286504 00000 n +0000288163 00000 n +0000288342 00000 n +0000290174 00000 n +0000290343 00000 n +0000292198 00000 n +0000292367 00000 n +0000293477 00000 n +0000293665 00000 n +0000295366 00000 n +0000295554 00000 n +0000297033 00000 n +0000297221 00000 n +0000298709 00000 n +0000298879 00000 n +0000300540 00000 n +0000300710 00000 n +0000301451 00000 n +0000301630 00000 n +0000303217 00000 n +0000303396 00000 n +0000305055 00000 n +0000305225 00000 n +0000306760 00000 n +0000306930 00000 n +0000308214 00000 n +0000308384 00000 n +0000309999 00000 n +0000310169 00000 n +0000311752 00000 n +0000311947 00000 n +0000313660 00000 n +0000313872 00000 n +0000315587 00000 n +0000315781 00000 n +0000317495 00000 n +0000317707 00000 n +0000318992 00000 n +0000319195 00000 n +0000320713 00000 n +0000320891 00000 n +0000321557 00000 n +0000321760 00000 n +0000323436 00000 n +0000323624 00000 n +0000325347 00000 n +0000325535 00000 n +0000327063 00000 n +0000327242 00000 n +0000328750 00000 n +0000328928 00000 n +0000329654 00000 n +0000329713 00000 n +0000329816 00000 n +0000329981 00000 n +0000330063 00000 n +0000330171 00000 n +0000330339 00000 n +0000330451 00000 n +0000330580 00000 n +0000330710 00000 n +0000330852 00000 n +0000330995 00000 n +0000331167 00000 n +0000331286 00000 n +0000331417 00000 n +0000331572 00000 n +0000331715 00000 n +0000331896 00000 n +0000332046 00000 n +0000332151 00000 n +0000332260 00000 n +0000332387 00000 n +0000332520 00000 n +0000332627 00000 n +0000332730 00000 n +0000332896 00000 n +0000332994 00000 n +0000333105 00000 n +0000333249 00000 n +0000333341 00000 n +0000333447 00000 n +0000333553 00000 n +0000333659 00000 n +0000333765 00000 n +0000333871 00000 n +0000333977 00000 n +0000334083 00000 n +0000334189 00000 n +0000334296 00000 n +0000334389 00000 n +0000334497 00000 n +0000334677 00000 n +0000334769 00000 n +0000334949 00000 n +0000335045 00000 n +0000335161 00000 n +0000335275 00000 n +0000335379 00000 n +0000335569 00000 n +0000335677 00000 n +0000335793 00000 n +0000335903 00000 n +0000336013 00000 n +0000336110 00000 n +0000336293 00000 n +0000336510 00000 n +0000336641 00000 n +0000336796 00000 n +0000336925 00000 n +0000337022 00000 n +0000337228 00000 n +0000337327 00000 n +0000337453 00000 n +0000337568 00000 n +0000337763 00000 n +0000337885 00000 n +0000337962 00000 n +0000338156 00000 n +0000338309 00000 n +0000338451 00000 n +0000338573 00000 n +0000338748 00000 n +0000338850 00000 n +0000338957 00000 n +0000339096 00000 n +0000339254 00000 n +0000339398 00000 n +0000339567 00000 n +0000339665 00000 n +0000339816 00000 n +0000339919 00000 n +0000340056 00000 n +0000340190 00000 n +0000340332 00000 n +0000340441 00000 n +0000340599 00000 n +0000340702 00000 n +0000340834 00000 n +0000340953 00000 n +0000341062 00000 n +0000341186 00000 n +0000341351 00000 n +0000341449 00000 n +0000341575 00000 n +0000341699 00000 n +0000341836 00000 n +0000341955 00000 n +0000342079 00000 n +0000342201 00000 n +0000342318 00000 n +0000342418 00000 n +0000342571 00000 n +0000342669 00000 n +0000342799 00000 n +0000342967 00000 n +0000343088 00000 n +0000343218 00000 n +0000343346 00000 n +0000343540 00000 n +0000343634 00000 n +0000343746 00000 n +0000343905 00000 n +0000343988 00000 n +0000344143 00000 n +0000344261 00000 n +0000344380 00000 n +0000344512 00000 n +0000344640 00000 n +0000344740 00000 n +0000344908 00000 n +0000345006 00000 n +0000345118 00000 n +0000345222 00000 n +0000345333 00000 n +0000345429 00000 n +0000345624 00000 n +0000345730 00000 n +0000345840 00000 n +0000345979 00000 n +0000346182 00000 n +0000346309 00000 n +0000346456 00000 n +0000346574 00000 n +0000346700 00000 n +0000346828 00000 n +0000346954 00000 n +0000347124 00000 n +0000347252 00000 n +0000347398 00000 n +0000347538 00000 n +0000347752 00000 n +0000347858 00000 n +0000347968 00000 n +0000348156 00000 n +0000348292 00000 n +0000348401 00000 n +0000348541 00000 n +0000348693 00000 n +0000348803 00000 n +0000349011 00000 n +0000349104 00000 n +0000349216 00000 n +0000349338 00000 n +0000349490 00000 n +0000349655 00000 n +0000349763 00000 n +0000349866 00000 n +0000349996 00000 n +0000350121 00000 n +0000350263 00000 n +0000350402 00000 n +0000350496 00000 n +0000350661 00000 n +0000350767 00000 n +0000350892 00000 n +0000351010 00000 n +0000351171 00000 n +0000351280 00000 n +0000351404 00000 n +0000351538 00000 n +0000351669 00000 n +0000351799 00000 n +0000351929 00000 n +0000352059 00000 n +0000352164 00000 n +0000352327 00000 n +0000352424 00000 n +0000352569 00000 n +0000352663 00000 n +0000352777 00000 n +0000352901 00000 n +0000353015 00000 n +0000353124 00000 n +0000353232 00000 n +0000353339 00000 n +0000353450 00000 n +0000353559 00000 n +0000353669 00000 n +0000353777 00000 n +0000353886 00000 n +0000354001 00000 n +0000354115 00000 n 0000354227 00000 n -0000354354 00000 n -0000354476 00000 n -0000354581 00000 n -0000354745 00000 n -0000354848 00000 n -0000354983 00000 n -0000355163 00000 n -0000355290 00000 n -0000355426 00000 n -0000355560 00000 n -0000355766 00000 n -0000355866 00000 n -0000355984 00000 n -0000356149 00000 n -0000356240 00000 n -0000356401 00000 n -0000356527 00000 n -0000356654 00000 n -0000356794 00000 n -0000356930 00000 n -0000357038 00000 n -0000357212 00000 n -0000357318 00000 n -0000357438 00000 n -0000357550 00000 n -0000357667 00000 n -0000357769 00000 n -0000357976 00000 n -0000358088 00000 n -0000358204 00000 n -0000358349 00000 n -0000358558 00000 n -0000358693 00000 n -0000358848 00000 n -0000358974 00000 n -0000359106 00000 n -0000359240 00000 n -0000359372 00000 n -0000359548 00000 n -0000359684 00000 n -0000359838 00000 n -0000359984 00000 n -0000360210 00000 n -0000360322 00000 n -0000360438 00000 n -0000360632 00000 n -0000360776 00000 n -0000360893 00000 n -0000361039 00000 n -0000361197 00000 n -0000361315 00000 n -0000361535 00000 n -0000361634 00000 n -0000361752 00000 n -0000361880 00000 n -0000362038 00000 n -0000362209 00000 n -0000362325 00000 n -0000362436 00000 n -0000362572 00000 n -0000362703 00000 n -0000362851 00000 n -0000362996 00000 n -0000363097 00000 n -0000363291 00000 n -0000363426 00000 n -0000363575 00000 n -0000363694 00000 n -0000363825 00000 n -0000363996 00000 n -0000364091 00000 n -0000364219 00000 n -0000364347 00000 n -0000364444 00000 n -0000364621 00000 n -0000364733 00000 n -0000364864 00000 n -0000364988 00000 n -0000365155 00000 n -0000365272 00000 n -0000365402 00000 n -0000365542 00000 n -0000365679 00000 n -0000365815 00000 n -0000365951 00000 n -0000366088 00000 n -0000366200 00000 n -0000366375 00000 n -0000366478 00000 n -0000366629 00000 n -0000366731 00000 n -0000366853 00000 n -0000366985 00000 n -0000367105 00000 n -0000367220 00000 n -0000367334 00000 n -0000367447 00000 n -0000367564 00000 n -0000367679 00000 n -0000367795 00000 n -0000367910 00000 n -0000368026 00000 n -0000368148 00000 n -0000368269 00000 n -0000368388 00000 n -0000368506 00000 n -0000368626 00000 n -0000368729 00000 n -0000368907 00000 n -0000369017 00000 n -0000369171 00000 n -0000369340 00000 n -0000369528 00000 n -0000369709 00000 n -0000369865 00000 n -0000370031 00000 n -0000370163 00000 n -0000370310 00000 n -0000370449 00000 n -0000370569 00000 n -0000370690 00000 n -0000370809 00000 n -0000370997 00000 n -0000371101 00000 n -0000371254 00000 n -0000371365 00000 n -0000371473 00000 n -0000371637 00000 n -0000371741 00000 n -0000371859 00000 n -0000371977 00000 n -0000372098 00000 n -0000372234 00000 n -0000372333 00000 n -0000372464 00000 n -0000372611 00000 n -0000372707 00000 n -0000372821 00000 n -0000372917 00000 n +0000354338 00000 n +0000354451 00000 n +0000354547 00000 n +0000354713 00000 n +0000354817 00000 n +0000354965 00000 n +0000355126 00000 n +0000355306 00000 n +0000355479 00000 n +0000355627 00000 n +0000355787 00000 n +0000355911 00000 n +0000356050 00000 n +0000356181 00000 n +0000356293 00000 n +0000356408 00000 n +0000356521 00000 n +0000356697 00000 n +0000356795 00000 n +0000356942 00000 n +0000357045 00000 n +0000357145 00000 n +0000357297 00000 n +0000357395 00000 n +0000357507 00000 n +0000357619 00000 n +0000357734 00000 n +0000357864 00000 n +0000357957 00000 n +0000358076 00000 n +0000358211 00000 n +0000358301 00000 n +0000358409 00000 n +0000358499 00000 n trailer -<</Size 1599/Root 1598 0 R/Info 1 0 R/ID[<5fb0ca5260e34d5c7c72807d3a63192d><5fb0ca5260e34d5c7c72807d3a63192d>]>> +<</Size 1554/Root 1553 0 R/Info 1 0 R/ID[<083f7815e9dd0cc7d4726f57cee6742e><083f7815e9dd0cc7d4726f57cee6742e>]>> startxref -373598 +359159 %%EOF diff --git a/docs/docbook/Makefile.in b/docs/docbook/Makefile.in index 1ac71e452b..c79c9008ff 100644 --- a/docs/docbook/Makefile.in +++ b/docs/docbook/Makefile.in @@ -38,15 +38,9 @@ HTMLDOC = @HTMLDOC@ SRCDIR = @srcdir@ MANDIR=../manpages HTMLDIR=../htmldocs -MANPROJDOC = manpages/ -PROJDOC = projdoc/ -DEVDOC = devdoc/ +MANSGMLDIR = manpages/ +SGMLDIR = projdoc/ PERL = @PERL@ -PSDIR = .. -PDFDIR = .. -TXTDIR = ../textdocs -FAQPROJDOC = faq/ -FAQDIR = ../faq MANPAGES=$(patsubst %,$(MANDIR)/%,$(MANPAGES_NAMES)) MANPAGES_HTML=$(patsubst %,$(HTMLDIR)/%.html,$(MANPAGES_NAMES)) @@ -61,70 +55,55 @@ all: @echo "html - Build HTML version of HOWTO Collection" @echo "htmlman - Build html version of manpages" @echo "txt - Build plain text version of HOWTO Collection" - @echo "htmlfaq - Build html version of the FAQ" - @echo "everything - Build all of the above" - -everything: manpages ps pdf html-single html htmlman txt htmlfaq - -# Global rules manpages: $(MANPAGES) -pdf: $(PDFDIR)/Samba-HOWTO-Collection.pdf ../Samba-Developers-Guide.pdf -ps: $(PSDIR)/Samba-HOWTO-Collection.ps ../Samba-Developers-Guide.ps -txt: $(TXTDIR)/Samba-HOWTO-Collection.txt $(TXTDIR)/Samba-Developers-Guide.txt +pdf: ../Samba-HOWTO-Collection.pdf ../Samba-Developers-Guide.pdf +ps: ../Samba-HOWTO-Collection.ps ../Samba-Developers-Guide.ps +txt: ../textdocs/Samba-HOWTO-Collection.txt ../textdocs/Samba-Developers-Guide.txt htmlman: $(MANPAGES_HTML) -htmlfaq: - $(DOCBOOK2HTML) -d samba.dsl -o $(FAQDIR) $(FAQPROJDOC)/sambafaq.sgml -html-single: $(HTMLDIR)/Samba-HOWTO-Collection.html $(HTMLDIR)/Samba-Developers-Guide.html +html-single: ../$(HTMLDIR)/Samba-HOWTO-Collection.html ../$(HTMLDIR)/Samba-Developers-Guide.html html: - $(DOCBOOK2HTML) -d samba.dsl -o $(HTMLDIR) $(PROJDOC)/samba-doc.sgml - -# Text files + $(DOCBOOK2HTML) -d samba.dsl -o $(HTMLDIR) projdoc/samba-doc.sgml -$(TXTDIR)/Samba-HOWTO-Collection.txt: $(PROJDOC)/samba-doc.sgml - $(DOCBOOK2TXT) -o . $< - mv ./samba-doc.txt $@ +../Samba-HOWTO-Collection.txt: $(SGMLDIR)/samba-doc.sgml + $(DOCBOOK2TXT) -o .. $< + mv ../samba-doc.txt $@ -$(TXTDIR)/Samba-Developers-Guide.txt: $(PROJDOC)/samba-doc.sgml - $(DOCBOOK2TXT) -o . $< - mv ./samba-doc.txt $@ +../Samba-Developers-Guide.txt: $(SGMLDIR)/samba-doc.sgml + $(DOCBOOK2TXT) -o .. $< + mv ../samba-doc.txt $@ -# PostScript +../Samba-HOWTO-Collection.ps: $(SGMLDIR)/samba-doc.sgml + $(DOCBOOK2PS) -o .. $< + mv ../samba-doc.ps $@ -$(PSDIR)/Samba-HOWTO-Collection.ps: $(PROJDOC)/samba-doc.sgml - $(DOCBOOK2PS) -o . $< - mv ./samba-doc.ps $@ +../Samba-Developers-Guide.ps: $(SGMLDIR)/samba-doc.sgml + $(DOCBOOK2PS) -o .. $< + mv ../samba-doc.ps $@ -$(PSDIR)/Samba-Developers-Guide.ps: $(PROJDOC)/samba-doc.sgml - $(DOCBOOK2PS) -o . $< - mv ./samba-doc.ps $@ - -# Adobe PDF files - -$(PDFDIR)/Samba-HOWTO-Collection.pdf: $(HTMLDIR)/Samba-HOWTO-Collection.html +../Samba-HOWTO-Collection.pdf: ../$(HTMLDIR)/Samba-HOWTO-Collection.html $(HTMLDOC) --book --color --links -f $@ $< -$(PDFDIR)/Samba-Developers-Guide.pdf: $(HTMLDIR)/Samba-Developers-Guide.html +../Samba-Developers-Guide.pdf: ../$(HTMLDIR)/Samba-Developers-Guide.html $(HTMLDOC) --book --color --links -f $@ $< -# Single large HTML files - -$(HTMLDIR)/Samba-HOWTO-Collection.html: $(PROJDOC)/samba-doc.sgml - $(DOCBOOK2HTML) -u -o . $< - mv ./samba-doc.html $@ +../$(HTMLDIR)/Samba-HOWTO-Collection.html: $(SGMLDIR)/samba-doc.sgml + $(DOCBOOK2HTML) -u -o .. $< + mv ../samba-doc.html $@ -$(HTMLDIR)/Samba-Developers-Guide.html: $(DEVDOC)/dev-doc.sgml - $(DOCBOOK2HTML) -u -o . $< - mv ./dev-doc.html $@ +../$(HTMLDIR)/Samba-Developers-Guide.html: devdoc/dev-doc.sgml + $(DOCBOOK2HTML) -u -o .. $< + mv ../dev-doc.html $@ -$(HTMLDIR)/%.html: $(MANPROJDOC)/%.sgml - $(DOCBOOK2HTML) -u -o $(HTMLDIR) $< +$(HTMLDIR)/%.html: $(MANSGMLDIR)/%.sgml + $(DOCBOOK2HTML) -o $(HTMLDIR) $< + mv $(HTMLDIR)/index.html $@ -$(MANDIR)/%: $(MANPROJDOC)/%.sgml - $(DOCBOOK2MAN) -o $(MANDIR) $< || rm $@ +$(MANDIR)/%: $(MANSGMLDIR)/%.sgml + $(DOCBOOK2MAN) -o $(MANDIR) $< $(PERL) scripts/strip-links.pl < $@ > $@.temp mv $@.temp $@ clean: - rm -f $(MANPAGES) $(MANPAGES_HTML) $(HTMLDIR)/*.html $(TXTDIR)/*.txt $(PSDIR)/*.ps $(PDFDIR)/*.pdf + rm -f $(MANPAGES) $(MANPAGES_HTML) ../$(HTMLDIR)/*.html ../Samba-HOWTO-Collection.p* ../Samba-Developers-Guide.p* diff --git a/docs/docbook/devdoc/dev-doc.sgml b/docs/docbook/devdoc/dev-doc.sgml index adc25e83bd..5191ddcb93 100644 --- a/docs/docbook/devdoc/dev-doc.sgml +++ b/docs/docbook/devdoc/dev-doc.sgml @@ -10,10 +10,9 @@ <!ENTITY cifsntdomain SYSTEM "cifsntdomain.sgml"> <!ENTITY printing SYSTEM "printing.sgml"> <!ENTITY wins SYSTEM "wins.sgml"> -<!ENTITY sam SYSTEM "sam.sgml"> ]> -<book id="Samba-Developers-Guide"> +<book id="Samba-Developer-Documentation"> <title>SAMBA Developers Guide</title> @@ -63,6 +62,5 @@ url="http://www.fsf.org/licenses/gpl.txt">http://www.fsf.org/licenses/gpl.txt</u &cifsntdomain; &printing; &wins; -&sam; </book> diff --git a/docs/docbook/faq/README.NOW b/docs/docbook/faq/README.NOW new file mode 100644 index 0000000000..77f1659a89 --- /dev/null +++ b/docs/docbook/faq/README.NOW @@ -0,0 +1,2 @@ +The files previously in this directory have been incorporated +into the Samba-HOWTO-Collection diff --git a/docs/docbook/faq/errors.sgml b/docs/docbook/faq/errors.sgml deleted file mode 100644 index 0a40011fbb..0000000000 --- a/docs/docbook/faq/errors.sgml +++ /dev/null @@ -1,162 +0,0 @@ -<chapter id="errors"> - -<title>Common errors</title> - -<sect1> -<title>Not listening for calling name</title> - -<para> -<programlisting> -Session request failed (131,129) with myname=HOBBES destname=CALVIN -Not listening for calling name -</programlisting> -</para> - -<para> -If you get this when talking to a Samba box then it means that your -global "hosts allow" or "hosts deny" settings are causing the Samba -server to refuse the connection. -</para> - -<para> -Look carefully at your "hosts allow" and "hosts deny" lines in the -global section of smb.conf. -</para> - -<para> -It can also be a problem with reverse DNS lookups not functioning -correctly, leading to the remote host identity not being able to -be confirmed, but that is less likely. -</para> -</sect1> - -<sect1> -<title>System Error 1240</title> - -<para> -System error 1240 means that the client is refusing to talk -to a non-encrypting server. Microsoft changed WinNT in service -pack 3 to refuse to connect to servers that do not support -SMB password encryption. -</para> - -<para>There are two main solutions: -<simplelist> -<member>enable SMB password encryption in Samba. See the encryption part of -the samba HOWTO Collection</member> - -<member>disable this new behaviour in NT. See the section about -Windows NT in the chapter "Portability" of the samba HOWTO collection -</member> -</simplelist> - -</sect1> - -<sect1> -<title>smbclient ignores -N !</title> - -<para> -<quote>When getting the list of shares available on a host using the command -<command>smbclient -N -L</command> -the program always prompts for the password if the server is a Samba server. -It also ignores the "-N" argument when querying some (but not all) of our -NT servers. -</quote> - -<para> -No, it does not ignore -N, it is just that your server rejected the -null password in the connection, so smbclient prompts for a password -to try again. -</para> - -<para> -To get the behaviour that you probably want use <command>smbclient -L host -U%</command> -</para> - -<para> -This will set both the username and password to null, which is -an anonymous login for SMB. Using -N would only set the password -to null, and this is not accepted as an anonymous login for most -SMB servers. -</para> - -</sect1> - -<sect1> -<title>The data on the CD-Drive I've shared seems to be corrupted!</title> - -<para> -Some OSes (notably Linux) default to auto detection of file type on -cdroms and do cr/lf translation. This is a very bad idea when use with -Samba. It causes all sorts of stuff ups. -</para> - -<para> -To overcome this problem use conv=binary when mounting the cdrom -before exporting it with Samba. -</para> - -</sect1> - -<sect1> -<title>Why can users access home directories of other users?</title> - -<para> -<quote> -We are unable to keep individual users from mapping to any other user's -home directory once they have supplied a valid password! They only need -to enter their own password. I have not found *any* method that I can -use to configure samba to enforce that only a user may map their own -home directory. -</quote> -</para> - -<para><quote> -User xyzzy can map his home directory. Once mapped user xyzzy can also map -*anyone* elses home directory! -</quote></para> - -<para> -This is not a security flaw, it is by design. Samba allows -users to have *exactly* the same access to the UNIX filesystem -as they would if they were logged onto the UNIX box, except -that it only allows such views onto the file system as are -allowed by the defined shares. -</para> - -<para> -This means that if your UNIX home directories are set up -such that one user can happily cd into another users -directory and do an ls, the UNIX security solution is to -change the UNIX file permissions on the users home directories -such that the cd and ls would be denied. -</para> - -<para> -Samba tries very hard not to second guess the UNIX administrators -security policies, and trusts the UNIX admin to set -the policies and permissions he or she desires. -</para> - -<para> -Samba does allow the setup you require when you have set the -"only user = yes" option on the share, is that you have not set the -valid users list for the share. -</para> - -<para> -Note that only user works in conjunction with the users= list, -so to get the behavior you require, add the line : -<programlisting> -users = %S -</programlisting> -this is equivalent to: -<programlisting> -valid users = %S -</programlisting> -to the definition of the [homes] share, as recommended in -the smb.conf man page. -</para> - -</sect1> -</chapter> diff --git a/docs/docbook/faq/sambafaq.sgml b/docs/docbook/faq/sambafaq.sgml deleted file mode 100644 index 0e5e146b5a..0000000000 --- a/docs/docbook/faq/sambafaq.sgml +++ /dev/null @@ -1,35 +0,0 @@ -<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [ -<!ENTITY general SYSTEM "general.sgml"> -<!ENTITY install SYSTEM "install.sgml"> -<!ENTITY errors SYSTEM "errors.sgml"> -<!ENTITY clientapp SYSTEM "clientapp.sgml"> -<!ENTITY features SYSTEM "features.sgml"> -]> - -<book id="Samba-FAQ"> -<title>Samba FAQ</title> - -<bookinfo> - <author><surname>Samba Team</surname></author> - <pubdate>October 2002</pubdate> -</bookinfo> - -<dedication> -<para> -This is the Frequently Asked Questions (FAQ) document for -Samba, the free and very popular SMB server product. An SMB server -allows file and printer connections from clients such as Windows, -OS/2, Linux and others. Current to version 3.0. Please send any -corrections to the samba documentation mailinglist at -<ulink url="mailto:samba-doc@samba.org">samba-doc@samba.org</ulink>. -This FAQ was based on the old Samba FAQ by Dan Shearer and Paul Blackman, -and the old samba text documents which were mostly written by John Terpstra. -</para> -</dedication> - -&general; -&install; -&clientapp; -&errors; -&features; -</book> diff --git a/docs/docbook/manpages/net.8.sgml b/docs/docbook/manpages/net.8.sgml index aab9032f14..5b822ccfe6 100644 --- a/docs/docbook/manpages/net.8.sgml +++ b/docs/docbook/manpages/net.8.sgml @@ -17,25 +17,6 @@ <cmdsynopsis> <command>net</command> <arg choice="req"><ads|rap|rpc></arg> - <arg choice="opt">-h</arg> - <arg choice="opt">-w workgroup</arg> - <arg choice="opt">-W myworkgroup</arg> - <arg choice="opt">-U user</arg> - <arg choice="opt">-I ip-address</arg> - <arg choice="opt">-p port</arg> - <arg choice="opt">-n myname</arg> - <arg choice="opt">-s conffile</arg> - <arg choice="opt">-S server</arg> - <arg choice="opt">-C comment</arg> - <arg choice="opt">-M maxusers</arg> - <arg choice="opt">-F flags</arg> - <arg choice="opt">-j jobid</arg> - <arg choice="opt">-l</arg> - <arg choice="opt">-r</arg> - <arg choice="opt">-f</arg> - <arg choice="opt">-t timeout</arg> - <arg choice="opt">-P</arg> - <arg choice="opt">-D debuglevel</arg> </cmdsynopsis> </refsynopsisdiv> @@ -45,283 +26,23 @@ <para>This tool is part of the <ulink url="samba.7.html"> Samba</ulink> suite.</para> - <para>The samba net utility is meant to work just like the net utility - available for windows and DOS.</para> - </refsect1> + <refsect1> <title>OPTIONS</title> - <variablelist> - <varlistentry> - <term>-h</term> - <listitem><para> - Display summary of all available options. - - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-w target-workgroup</term> - <listitem><para> - Sets target workgroup or domain. You have to specify either this option or the IP address or the name of a server. - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-W workgroup</term> - <listitem><para> - Sets client workgroup or domain - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-U user</term> - <listitem><para> - User name to use - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-I ip-address</term> - <listitem><para> - IP address of target server to use. You have to specify either this option or a target workgroup or a target server. - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-p port</term> - <listitem><para> - Port on the target server to connect to. - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-n myname</term> - <listitem><para> - Sets name of the client. - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-s conffile</term> - <listitem><para> - Specify alternative configuration file that should be loaded. - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-S server</term> - <listitem><para> - Name of target server. You should specify either this option or a target workgroup or a target IP address. - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-C comment</term> - <listitem><para> - FIXME - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-M maxusers</term> - <listitem><para> - FIXME - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-F flags</term> - <listitem><para> - FIXME - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-j jobid</term> - <listitem><para> - FIXME - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-l</term> - <listitem><para> - FIXME - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-r</term> - <listitem><para> - FIXME - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-f</term> - <listitem><para> - FIXME - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-t timeout</term> - <listitem><para> - FIXME - </para></listitem> - </varlistentry> - - <varlistentry> - <term>-P</term> - <listitem><para> - Make queries to the external server using the machine account of the local server. - </para></listitem> - </varlistentry> + <para></para> - <varlistentry> - <term>-D debuglevel</term> - <listitem><para>set the debuglevel. Debug level 0 is the lowest - and 100 being the highest. This should be set to 100 if you are - planning on submitting a bug report to the Samba team (see - <filename>BUGS.txt</filename>). - </para></listitem> - </varlistentry> - </variablelist> </refsect1> <refsect1> - <title>TIME</title> - - <para>The <command>NET TIME</command> command allows you to view the time on a remote server - or synchronise the time on the local server with the time on the remote server.</para> - - <variablelist> - <varlistentry> - <term></term> - <listitem><para> - Without any options, the <command>NET TIME</command> command - displays the time on the remote server. - </para></listitem> - </varlistentry> - - <varlistentry> - <term>SYSTEM</term> - <listitem><para> - Displays the time on the remote server in a format ready for /bin/date - </para></listitem> - </varlistentry> - - <varlistentry> - <term>SET</term> - <listitem><para> - Tries to set the date and time of the local server to that on - the remote server using /bin/date. - </para></listitem> - </varlistentry> - - <varlistentry> - <term>ZONE</term> - <listitem><para> - Displays the timezone in hours from GMT on the remote computer. - </para></listitem> - </varlistentry> - </variablelist> -</refsect1> - -<refsect1> - <title>RPC</title> - - <para>The <command>NET RPC</command> command allows you to do various - NT4 operations.</para> - - <variablelist> - <varlistentry> - <term>JOIN -U username[%password] [options]</term> - <listitem><para> - Join a domain with specified username and password. Password - will be prompted if none is specified.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>JOIN [options except -U]</term> - <listitem><para> - to join a domain created in server manager - </para></listitem> - </varlistentry> - - <varlistentry> - <term>USER [misc. options] [targets]</term> - <listitem><para> - List users - </para></listitem> - </varlistentry> - - <varlistentry> - <term>USER DELETE <name> [misc options]</term> - <listitem><para> - delete specified user - </para></listitem> - </varlistentry> - - <varlistentry> - <term>USER INFO <name> [misc options]</term> - <listitem><para> - list the domain groups of the specified user - </para></listitem> - </varlistentry> - - <varlistentry> - <term>USER ADD <name> [password] [-F user flags] [misc. options</term> - <listitem><para> - Add specified user - </para></listitem> - </varlistentry> - - <varlistentry> - <term>GROUP [misc options] [targets]</term> - <listitem><para> - List user groups - </para></listitem> - </varlistentry> - - <varlistentry> - <term>GROUP DELETE <name> [misc. options] [targets]</term> - <listitem><para> - Delete specified group - </para></listitem> - </varlistentry> - - <varlistentry> - <term>GROUP ADD <name> [-C comment]</term> - <listitem><para> - Create specified group - </para></listitem> - </varlistentry> + <title>COMMANDS</title> - <varlistentry> - <term>SHARE [misc. options] [targets]</term> - <listitem><para> - enumerates all exported resources (network shares) on target server - </para></listitem> - </varlistentry> - <varlistentry> - <term>SHARE ADD <name=serverpath> [misc. options] [targets]</term> - <listitem><para> - Adds a share from a server (makes the export active) - </para></listitem> - </varlistentry> + <para></para> - <varlistentry> - <term>SHARE DELETE <sharenam</term> - <listitem><para></para></listitem> - </varlistentry> - </variablelist> </refsect1> <refsect1> diff --git a/docs/docbook/manpages/smb.conf.5.sgml b/docs/docbook/manpages/smb.conf.5.sgml index 5ce8691076..c0893f1005 100644 --- a/docs/docbook/manpages/smb.conf.5.sgml +++ b/docs/docbook/manpages/smb.conf.5.sgml @@ -109,7 +109,7 @@ <computeroutput> [foo] path = /home/bar - read only = no + writeable = true </computeroutput> </screen> @@ -124,9 +124,9 @@ <computeroutput> [aprinter] path = /usr/spool/public - read only = yes - printable = yes - guest ok = yes + writeable = false + printable = true + guest ok = true </computeroutput> </screen> </refsect1> @@ -195,7 +195,7 @@ <screen> <computeroutput> [homes] - read only = no + writeable = yes </computeroutput> </screen> @@ -630,6 +630,8 @@ <listitem><para><link linkend="DISABLESPOOLSS"><parameter>disable spoolss</parameter></link></para></listitem> <listitem><para><link linkend="DISPLAYCHARSET"><parameter>display charset</parameter></link></para></listitem> <listitem><para><link linkend="DNSPROXY"><parameter>dns proxy</parameter></link></para></listitem> + <listitem><para><link linkend="DOMAINADMINGROUP"><parameter>domain admin group</parameter></link></para></listitem> + <listitem><para><link linkend="DOMAINGUESTGROUP"><parameter>domain guest group</parameter></link></para></listitem> <listitem><para><link linkend="DOMAINLOGONS"><parameter>domain logons</parameter></link></para></listitem> <listitem><para><link linkend="DOMAINMASTER"><parameter>domain master</parameter></link></para></listitem> <listitem><para><link linkend="DOSCHARSET"><parameter>dos charset</parameter></link></para></listitem> @@ -640,7 +642,6 @@ <listitem><para><link linkend="HIDELOCALUSERS"><parameter>hide local users</parameter></link></para></listitem> <listitem><para><link linkend="HIDEUNREADABLE"><parameter>hide unreadable</parameter></link></para></listitem> <listitem><para><link linkend="HIDEUNWRITEABLEFILES"><parameter>hide unwriteable files</parameter></link></para></listitem> - <listitem><para><link linkend="HIDESPECIALFILES"><parameter>hide special files</parameter></link></para></listitem> <listitem><para><link linkend="HOMEDIRMAP"><parameter>homedir map</parameter></link></para></listitem> <listitem><para><link linkend="HOSTMSDFS"><parameter>host msdfs</parameter></link></para></listitem> <listitem><para><link linkend="HOSTNAMELOOKUPS"><parameter>hostname lookups</parameter></link></para></listitem> @@ -762,7 +763,6 @@ <listitem><para><link linkend="UPDATEENCRYPTED"><parameter>update encrypted</parameter></link></para></listitem> <listitem><para><link linkend="USEMMAP"><parameter>use mmap</parameter></link></para></listitem> <listitem><para><link linkend="USERHOSTS"><parameter>use rhosts</parameter></link></para></listitem> - <listitem><para><link linkend="USESENDFILE"><parameter>use sendfile</parameter></link></para></listitem> <listitem><para><link linkend="USERNAMELEVEL"><parameter>username level</parameter></link></para></listitem> <listitem><para><link linkend="USERNAMEMAP"><parameter>username map</parameter></link></para></listitem> <listitem><para><link linkend="UTMP"><parameter>utmp</parameter></link></para></listitem> @@ -897,6 +897,7 @@ <listitem><para><link linkend="SETDIRECTORY"><parameter>set directory</parameter></link></para></listitem> <listitem><para><link linkend="SHAREMODES"><parameter>share modes</parameter></link></para></listitem> <listitem><para><link linkend="SHORTPRESERVECASE"><parameter>short preserve case</parameter></link></para></listitem> + <listitem><para><link linkend="STATUS"><parameter>status</parameter></link></para></listitem> <listitem><para><link linkend="STRICTALLOCATE"><parameter>strict allocate</parameter></link></para></listitem> <listitem><para><link linkend="STRICTLOCKING"><parameter>strict locking</parameter></link></para></listitem> <listitem><para><link linkend="STRICTSYNC"><parameter>strict sync</parameter></link></para></listitem> @@ -1397,7 +1398,7 @@ queue the lock request, and periodically attempt to obtain the lock until the timeout period expires.</para> - <para>If this parameter is set to <constant>no</constant>, then + <para>If this parameter is set to <constant>false</constant>, then Samba 2.2 will behave as previous versions of Samba would and will fail the lock request immediately if the lock range cannot be obtained.</para> @@ -1446,7 +1447,7 @@ <listitem><para>This controls whether <ulink url="smbd.8.html"> <command>smbd(8)</command></ulink> will serve a browse list to a client doing a <command>NetServerEnum</command> call. Normally - set to <constant>yes</constant>. You should never need to change + set to <constant>true</constant>. You should never need to change this.</para> <para>Default: <command>browse list = yes</command></para></listitem> @@ -2030,11 +2031,11 @@ <listitem><para>This option is used when Samba is attempting to delete a directory that contains one or more vetoed directories (see the <link linkend="VETOFILES"><parameter>veto files</parameter></link> - option). If this option is set to <constant>no</constant> (the default) then if a vetoed + option). If this option is set to <constant>false</constant> (the default) then if a vetoed directory contains any non-vetoed files or directories then the directory delete will fail. This is usually what you want.</para> - <para>If this option is set to <constant>yes</constant>, then Samba + <para>If this option is set to <constant>true</constant>, then Samba will attempt to recursively delete any files and directories within the vetoed directory. This can be useful for integration with file serving systems such as NetAtalk which create meta-files within @@ -2290,9 +2291,56 @@ </varlistentry> + + <varlistentry> + <term><anchor id="DOMAINADMINGROUP">domain admin group (G)</term> + <listitem><para>This parameter is intended as a temporary solution + to enable users to be a member of the "Domain Admins" group when + a Samba host is acting as a PDC. A complete solution will be provided + by a system for mapping Windows NT/2000 groups onto UNIX groups. + Please note that this parameter has a somewhat confusing name. It + accepts a list of usernames and of group names in standard + <filename>smb.conf</filename> notation. + </para> + + <para>See also <link linkend="DOMAINGUESTGROUP"><parameter>domain + guest group</parameter></link>, <link linkend="DOMAINLOGONS"><parameter>domain + logons</parameter></link> + </para> + + <para>Default: <emphasis>no domain administrators</emphasis></para> + <para>Example: <command>domain admin group = root @wheel</command></para> + </listitem> + </varlistentry> + + + + + <varlistentry> + <term><anchor id="DOMAINGUESTGROUP">domain guest group (G)</term> + <listitem><para>This parameter is intended as a temporary solution + to enable users to be a member of the "Domain Guests" group when + a Samba host is acting as a PDC. A complete solution will be provided + by a system for mapping Windows NT/2000 groups onto UNIX groups. + Please note that this parameter has a somewhat confusing name. It + accepts a list of usernames and of group names in standard + <filename>smb.conf</filename> notation. + </para> + + <para>See also <link linkend="DOMAINADMINGROUP"><parameter>domain + admin group</parameter></link>, <link linkend="DOMAINLOGONS"><parameter>domain + logons</parameter></link> + </para> + + <para>Default: <emphasis>no domain guests</emphasis></para> + <para>Example: <command>domain guest group = nobody @guest</command></para> + </listitem> + </varlistentry> + + <varlistentry> <term><anchor id="DOMAINLOGONS">domain logons (G)</term> - <listitem><para>If set to <constant>yes</constant>, the Samba server will serve + <listitem><para>If set to <constant>true</constant>, the Samba server will serve Windows 95/98 Domain logons for the <link linkend="WORKGROUP"> <parameter>workgroup</parameter></link> it is in. Samba 2.2 also has limited capability to act as a domain controller for Windows @@ -2430,7 +2478,7 @@ default, Samba runs with POSIX semantics and refuses to change the timestamp on a file if the user <command>smbd</command> is acting on behalf of is not the file owner. Setting this option to <constant> - yes</constant> allows DOS semantics and <ulink url="smbd.8.html">smbd</ulink> will change the file + true</constant> allows DOS semantics and <ulink url="smbd.8.html">smbd</ulink> will change the file timestamp as DOS requires.</para> <para>Default: <command>dos filetimes = no</command></para></listitem> @@ -2822,7 +2870,7 @@ caching algorithm will be used to reduce the time taken for getwd() calls. This can have a significant impact on performance, especially when the <link linkend="WIDELINKS"><parameter>wide links</parameter> - </link>parameter is set to <constant>no</constant>.</para> + </link>parameter is set to <constant>false</constant>.</para> <para>Default: <command>getwd cache = yes</command></para> </listitem> @@ -2979,20 +3027,9 @@ </varlistentry> <varlistentry> - <term><anchor id="HIDESPECIALFILES">hide special files (G)</term> - <listitem><para>This parameter prevents clients from seeing - special files such as sockets, devices and fifo's in directory - listings. - </para> - - <para>Default: <command>hide special files = no</command></para> - </listitem> - </varlistentry> - - <varlistentry> <term><anchor id="HOMEDIRMAP">homedir map (G)</term> <listitem><para>If<link linkend="NISHOMEDIR"><parameter>nis homedir - </parameter></link> is <constant>yes</constant>, and <ulink + </parameter></link> is <constant>true</constant>, and <ulink url="smbd.8.html"><command>smbd(8)</command></ulink> is also acting as a Win95/98 <parameter>logon server</parameter> then this parameter specifies the NIS (or YP) map from which the server for the user's @@ -3566,7 +3603,7 @@ oplocks</parameter></link> are supported then level2 oplocks are not granted (even if this parameter is set to <constant>yes</constant>). Note also, the <link linkend="OPLOCKS"><parameter>oplocks</parameter> - </link> parameter must be set to <constant>yes</constant> on this share in order for + </link> parameter must be set to <constant>true</constant> on this share in order for this parameter to have any effect.</para> <para>See also the <link linkend="OPLOCKS"><parameter>oplocks</parameter> @@ -3587,10 +3624,10 @@ <command>nmbd(8)</command></ulink> will produce Lanman announce broadcasts that are needed by OS/2 clients in order for them to see the Samba server in their browse list. This parameter can have three - values, <constant>yes</constant>, <constant>no</constant>, or + values, <constant>true</constant>, <constant>false</constant>, or <constant>auto</constant>. The default is <constant>auto</constant>. - If set to <constant>no</constant> Samba will never produce these - broadcasts. If set to <constant>yes</constant> Samba will produce + If set to <constant>false</constant> Samba will never produce these + broadcasts. If set to <constant>true</constant> Samba will produce Lanman announce broadcasts at a frequency set by the parameter <parameter>lm interval</parameter>. If set to <constant>auto</constant> Samba will not send Lanman announce broadcasts by default but will @@ -3645,15 +3682,15 @@ <term><anchor id="LOCALMASTER">local master (G)</term> <listitem><para>This option allows <ulink url="nmbd.8.html"><command> nmbd(8)</command></ulink> to try and become a local master browser - on a subnet. If set to <constant>no</constant> then <command> + on a subnet. If set to <constant>false</constant> then <command> nmbd</command> will not attempt to become a local master browser on a subnet and will also lose in all browsing elections. By - default this value is set to <constant>yes</constant>. Setting this value to <constant>yes</constant> doesn't + default this value is set to <constant>true</constant>. Setting this value to <constant>true</constant> doesn't mean that Samba will <emphasis>become</emphasis> the local master browser on a subnet, just that <command>nmbd</command> will <emphasis> participate</emphasis> in elections for local master browser.</para> - <para>Setting this value to <constant>no</constant> will cause <command>nmbd</command> + <para>Setting this value to <constant>false</constant> will cause <command>nmbd</command> <emphasis>never</emphasis> to become a local master browser.</para> <para>Default: <command>local master = yes</command></para> @@ -5417,7 +5454,7 @@ if the expect string is a full stop then no string is expected.</para> <para>If the <link linkend="PAMPASSWORDCHANGE"><parameter>pam - password change</parameter></link> parameter is set to <constant>yes</constant>, the chat pairs + password change</parameter></link> parameter is set to true, the chat pairs may be matched in any order, and success is determined by the PAM result, not any particular output. The \n macro is ignored for PAM conversions. </para> @@ -5479,7 +5516,7 @@ it.</para> <para><emphasis>Note</emphasis> that if the <parameter>unix - password sync</parameter> parameter is set to <constant>yes + password sync</parameter> parameter is set to <constant>true </constant> then this program is called <emphasis>AS ROOT</emphasis> before the SMB password in the <ulink url="smbpasswd.5.html">smbpasswd(5) </ulink> file is changed. If this UNIX password change fails, then @@ -5490,7 +5527,7 @@ is set this parameter <emphasis>MUST USE ABSOLUTE PATHS</emphasis> for <emphasis>ALL</emphasis> programs called, and must be examined for security implications. Note that by default <parameter>unix - password sync</parameter> is set to <constant>no</constant>.</para> + password sync</parameter> is set to <constant>false</constant>.</para> <para>See also <link linkend="UNIXPASSWORDSYNC"><parameter>unix password sync</parameter></link>.</para> @@ -5779,7 +5816,7 @@ url="nmbd.8.html">nmbd(8)</ulink> is a preferred master browser for its workgroup.</para> - <para>If this is set to <constant>yes</constant>, on startup, <command>nmbd</command> + <para>If this is set to <constant>true</constant>, on startup, <command>nmbd</command> will force an election, and it will have a slight advantage in winning the election. It is recommended that this parameter is used in conjunction with <command><link linkend="DOMAINMASTER"><parameter> @@ -5812,7 +5849,7 @@ <varlistentry> - <term><anchor id="PRELOAD">preload (G)</term> + <term><anchor id="PRELOAD">preload</term> <listitem><para>This is a list of services that you want to be automatically added to the browse lists. This is most useful for homes and printers services that would otherwise not be @@ -5953,7 +5990,7 @@ <para>Note that a printable service will ALWAYS allow writing to the service path (user privileges permitting) via the spooling - of print data. The <link linkend="READONLY"><parameter>read only + of print data. The <link linkend="WRITEABLE"><parameter>writeable </parameter></link> parameter controls only non-printing access to the resource.</para> @@ -6319,7 +6356,7 @@ <listitem><para>This is a list of users that are given read-only access to a service. If the connecting user is in this list then they will not be given write access, no matter what the <link - linkend="READONLY"><parameter>read only</parameter></link> + linkend="WRITEABLE"><parameter>writeable</parameter></link> option is set to. The list can include group names using the syntax described in the <link linkend="INVALIDUSERS"><parameter> invalid users</parameter></link> parameter.</para> @@ -6338,18 +6375,8 @@ <varlistentry> <term><anchor id="READONLY">read only (S)</term> - <listitem><para>An inverted synonym is <link linkend="WRITEABLE"> - <parameter>writeable</parameter></link>.</para> - - <para>If this parameter is <constant>yes</constant>, then users - of a service may not create or modify files in the service's - directory.</para> - - <para>Note that a printable service (<command>printable = yes</command>) - will <emphasis>ALWAYS</emphasis> allow writing to the directory - (user privileges permitting), but only via spooling operations.</para> - - <para>Default: <command>read only = yes</command></para> + <listitem><para>Note that this is an inverted synonym for <link + linkend="WRITEABLE"><parameter>writeable</parameter></link>.</para> </listitem> </varlistentry> @@ -6494,10 +6521,10 @@ <varlistentry> <term><anchor id="RESTRICTANONYMOUS">restrict anonymous (G)</term> - <listitem><para>This is a boolean parameter. If it is <constant>yes</constant>, then + <listitem><para>This is a boolean parameter. If it is <constant>true</constant>, then anonymous access to the server will be restricted, namely in the case where the server is expecting the client to send a username, - but it doesn't. Setting it to <constant>yes</constant> will force these anonymous + but it doesn't. Setting it to <constant>true</constant> will force these anonymous connections to be denied, and the client will be required to always supply a username and password when connecting. Use of this parameter is only recommended for homogeneous NT client environments.</para> @@ -6507,7 +6534,7 @@ likes to use anonymous connections when refreshing the share list, and this is a way to work around that.</para> - <para>When restrict anonymous is <constant>yes</constant>, all anonymous connections + <para>When restrict anonymous is <constant>true</constant>, all anonymous connections are denied no matter what they are for. This can effect the ability of a machine to access the Samba Primary Domain Controller to revalidate its machine account after someone else has logged on the client @@ -6811,7 +6838,7 @@ url="smbpasswd.8.html">smbpasswd(8)</ulink> has been used to add this machine into a Windows NT Domain. It expects the <link linkend="ENCRYPTPASSWORDS"><parameter>encrypted passwords</parameter> - </link> parameter to be set to <constant>yes</constant>. In this + </link> parameter to be set to <constant>true</constant>. In this mode Samba will try to validate the username/password by passing it to a Windows NT Primary or Backup Domain Controller, in exactly the same way that a Windows NT Server would do.</para> @@ -7231,6 +7258,22 @@ <varlistentry> + <term><anchor id="STATUS">status (G)</term> + <listitem><para>This enables or disables logging of connections + to a status file that <ulink url="smbstatus.1.html">smbstatus(1)</ulink> + can read.</para> + + <para>With this disabled <command>smbstatus</command> won't be able + to tell you what connections are active. You should never need to + change this parameter.</para> + + <para>Default: <command>status = yes</command></para> + </listitem> + </varlistentry> + + + + <varlistentry> <term><anchor id="STRICTALLOCATE">strict allocate (S)</term> <listitem><para>This is a boolean that controls the handling of disk space allocation in the server. When this is set to <constant>yes</constant> @@ -7314,10 +7357,10 @@ <term><anchor id="SYNCALWAYS">sync always (S)</term> <listitem><para>This is a boolean parameter that controls whether writes will always be written to stable storage before - the write call returns. If this is <constant>no</constant> then the server will be + the write call returns. If this is <constant>false</constant> then the server will be guided by the client's request in each write call (clients can set a bit indicating that a particular write should be synchronous). - If this is <constant>yes</constant> then every write will be followed by a <command>fsync() + If this is <constant>true</constant> then every write will be followed by a <command>fsync() </command> call to ensure the data is written to disk. Note that the <parameter>strict sync</parameter> parameter must be set to <constant>yes</constant> in order for this parameter to have @@ -7489,7 +7532,7 @@ <listitem><para>This boolean parameter controls whether Samba attempts to synchronize the UNIX password with the SMB password when the encrypted SMB password in the smbpasswd file is changed. - If this is set to <constant>yes</constant> the program specified in the <parameter>passwd + If this is set to <constant>true</constant> the program specified in the <parameter>passwd program</parameter>parameter is called <emphasis>AS ROOT</emphasis> - to allow the new UNIX password to be set without access to the old UNIX password (as the SMB password change code has no @@ -7579,7 +7622,7 @@ <listitem><para>This global parameter determines if the tdb internals of Samba can depend on mmap working correctly on the running system. Samba requires a coherent mmap/read-write system memory cache. Currently only HPUX does not have such a - coherent cache, and so this parameter is set to <constant>no</constant> by + coherent cache, and so this parameter is set to <constant>false</constant> by default on HPUX. On all other systems this parameter should be left alone. This parameter is provided to help the Samba developers track down problems with the tdb internal code. @@ -7594,7 +7637,7 @@ <varlistentry> <term><anchor id="USERHOSTS">use rhosts (G)</term> - <listitem><para>If this global parameter is <constant>yes</constant>, it specifies + <listitem><para>If this global parameter is <constant>true</constant>, it specifies that the UNIX user's <filename>.rhosts</filename> file in their home directory will be read to find the names of hosts and users who will be allowed access without specifying a password.</para> @@ -7743,28 +7786,28 @@ <para>If any line begins with a '#' or a ';' then it is ignored</para> - <para>If any line begins with an '!' then the processing - will stop after that line if a mapping was done by the line. - Otherwise mapping continues with every line being processed. - Using '!' is most useful when you have a wildcard mapping line + <para>If any line begins with an '!' then the processing + will stop after that line if a mapping was done by the line. + Otherwise mapping continues with every line being processed. + Using '!' is most useful when you have a wildcard mapping line later in the file.</para> - - <para>For example to map from the name <constant>admin</constant> + + <para>For example to map from the name <constant>admin</constant> or <constant>administrator</constant> to the UNIX name <constant> root</constant> you would use:</para> <para><command>root = admin administrator</command></para> - <para>Or to map anyone in the UNIX group <constant>system</constant> + <para>Or to map anyone in the UNIX group <constant>system</constant> to the UNIX name <constant>sys</constant> you would use:</para> <para><command>sys = @system</command></para> - <para>You can have as many mappings as you like in a username + <para>You can have as many mappings as you like in a username map file.</para> - - - <para>If your system supports the NIS NETGROUP option then + + + <para>If your system supports the NIS NETGROUP option then the netgroup database is checked before the <filename>/etc/group </filename> database for matching groups.</para> @@ -7773,12 +7816,12 @@ <para><command>tridge = "Andrew Tridgell"</command></para> - <para>would map the windows username "Andrew Tridgell" to the + <para>would map the windows username "Andrew Tridgell" to the unix username "tridge".</para> - <para>The following example would map mary and fred to the - unix user sys, and map the rest to guest. Note the use of the - '!' to tell Samba to stop processing if it gets a match on + <para>The following example would map mary and fred to the + unix user sys, and map the rest to guest. Note the use of the + '!' to tell Samba to stop processing if it gets a match on that line.</para> <para><programlisting> @@ -7786,20 +7829,20 @@ guest = * </programlisting></para> - <para>Note that the remapping is applied to all occurrences + <para>Note that the remapping is applied to all occurrences of usernames. Thus if you connect to \\server\fred and <constant> - fred</constant> is remapped to <constant>mary</constant> then you - will actually be connecting to \\server\mary and will need to - supply a password suitable for <constant>mary</constant> not - <constant>fred</constant>. The only exception to this is the + fred</constant> is remapped to <constant>mary</constant> then you + will actually be connecting to \\server\mary and will need to + supply a password suitable for <constant>mary</constant> not + <constant>fred</constant>. The only exception to this is the username passed to the <link linkend="PASSWORDSERVER"><parameter> - password server</parameter></link> (if you have one). The password - server will receive whatever username the client supplies without + password server</parameter></link> (if you have one). The password + server will receive whatever username the client supplies without modification.</para> - <para>Also note that no reverse mapping is done. The main effect - this has is with printing. Users who have been mapped may have - trouble deleting print jobs as PrintManager under WfWg will think + <para>Also note that no reverse mapping is done. The main effect + this has is with printing. Users who have been mapped may have + trouble deleting print jobs as PrintManager under WfWg will think they don't own the print job.</para> <para>Default: <emphasis>no username map</emphasis></para> @@ -7808,29 +7851,13 @@ </listitem> </varlistentry> - - <varlistentry> - <term><anchor id="USESENDFILE">use sendfile (S)</term> - <listitem><para>If this parameter is <constant>yes</constant>, and Samba - was built with the --with-sendfile-support option, and the underlying operating - system supports sendfile system call, then some SMB read calls (mainly ReadAndX - and ReadRaw) will use the more efficient sendfile system call for files that - are exclusively oplocked. This may make more efficient use of the system CPU's - and cause Samba to be faster. This is off by default as it's effects are unknown - as yet. - </para> - - <para>Default: <command>use sendfile = no</command></para> - </listitem> - </varlistentry> - <varlistentry> <term><anchor id="UTMP">utmp (G)</term> - <listitem><para>This boolean parameter is only available if + <listitem><para>This boolean parameter is only available if Samba has been configured and compiled with the option <command> - --with-utmp</command>. If set to <constant>yes</constant> then Samba will attempt + --with-utmp</command>. If set to <constant>true</constant> then Samba will attempt to add utmp or utmpx records (depending on the UNIX system) whenever a connection is made to a Samba server. Sites may use this to record the user connecting to a Samba share.</para> @@ -8082,7 +8109,7 @@ veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/ <command>getpwent()</command> and <command>endpwent()</command> group of system calls. If the <parameter>winbind enum users</parameter> parameter is - <constant>no</constant>, calls to the <command>getpwent</command> system call + false, calls to the <command>getpwent</command> system call will not return any data. </para> <para><emphasis>Warning:</emphasis> Turning off user @@ -8104,7 +8131,7 @@ veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/ <command>getgrent()</command> and <command>endgrent()</command> group of system calls. If the <parameter>winbind enum groups</parameter> parameter is - <constant>no</constant>, calls to the <command>getgrent()</command> system + false, calls to the <command>getgrent()</command> system call will not return any data. </para> <para><emphasis>Warning:</emphasis> Turning off group @@ -8172,7 +8199,7 @@ veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/ <varlistentry> <term>winbind use default domain</term> - <term><anchor id="WINBINDUSEDEFAULTDOMAIN">winbind use default domain (G)</term> + <term><anchor id="WINBINDUSEDEFAULTDOMAIN">winbind use default domain</term> <listitem><para>This parameter specifies whether the <ulink url="winbindd.8.html"> winbindd(8)</ulink> daemon should operate on users without domain component in their username. @@ -8180,9 +8207,9 @@ veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/ own domain. While this does not benifit Windows users, it makes SSH, FTP and e-mail function in a way much closer to the way they would in a native unix system.</para> - <para>Default: <command>winbind use default domain = <no> + <para>Default: <command>winbind use default domain = <falseg> </command></para> - <para>Example: <command>winbind use default domain = yes</command></para> + <para>Example: <command>winbind use default domain = true</command></para> </listitem> </varlistentry> @@ -8277,9 +8304,9 @@ veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/ <term><anchor id="WINSSUPPORT">wins support (G)</term> <listitem><para>This boolean controls if the <ulink url="nmbd.8.html"> nmbd(8)</ulink> process in Samba will act as a WINS server. You should - not set this to <constant>yes</constant> unless you have a multi-subnetted network and + not set this to <constant>true</constant> unless you have a multi-subnetted network and you wish a particular <command>nmbd</command> to be your WINS server. - Note that you should <emphasis>NEVER</emphasis> set this to <constant>yes</constant> + Note that you should <emphasis>NEVER</emphasis> set this to <constant>true</constant> on more than one machine in your network.</para> <para>Default: <command>wins support = no</command></para> @@ -8350,7 +8377,7 @@ veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/ <listitem><para>This is a list of users that are given read-write access to a service. If the connecting user is in this list then they will be given write access, no matter what the <link - linkend="READONLY"><parameter>read only</parameter></link> + linkend="WRITEABLE"><parameter>writeable</parameter></link> option is set to. The list can include group names using the @group syntax.</para> @@ -8388,8 +8415,8 @@ veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/ <varlistentry> <term><anchor id="WRITEOK">write ok (S)</term> - <listitem><para>Inverted synonym for <link linkend="READONLY"><parameter> - read only</parameter></link>.</para> + <listitem><para>Synonym for <link linkend="WRITEABLE"><parameter> + writeable</parameter></link>.</para> </listitem> </varlistentry> @@ -8409,8 +8436,18 @@ veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/ <varlistentry> <term><anchor id="WRITEABLE">writeable (S)</term> - <listitem><para>Inverted synonym for <link linkend="READONLY"><parameter> - read only</parameter></link>.</para> + <listitem><para>An inverted synonym is <link linkend="READONLY"> + <parameter>read only</parameter></link>.</para> + + <para>If this parameter is <constant>no</constant>, then users + of a service may not create or modify files in the service's + directory.</para> + + <para>Note that a printable service (<command>printable = yes</command>) + will <emphasis>ALWAYS</emphasis> allow writing to the directory + (user privileges permitting), but only via spooling operations.</para> + + <para>Default: <command>writeable = no</command></para> </listitem> </varlistentry> diff --git a/docs/docbook/projdoc/Diagnosis.sgml b/docs/docbook/projdoc/Diagnosis.sgml index 3cc0bab5d5..20b2ccee08 100644 --- a/docs/docbook/projdoc/Diagnosis.sgml +++ b/docs/docbook/projdoc/Diagnosis.sgml @@ -443,13 +443,7 @@ It's also possible that the server can't work out what user name to connect you as. To see if this is the problem add the line "user = USERNAME" to the [tmp] section of smb.conf where "USERNAME" is the username corresponding to the password you typed. If you find this -fixes things you may need the username mapping option. -</para> - -<para> -It might also be the case that your client only sends encrypted passwords -and you have <command>encrypt passwords = no</command> in <filename>smb.conf</filename>. -Turn it back on to fix. +fixes things you may need the username mapping option. </para> </sect2> diff --git a/docs/docbook/projdoc/Portability.sgml b/docs/docbook/projdoc/Portability.sgml index 88527cbe62..f2fe66b9dd 100644 --- a/docs/docbook/projdoc/Portability.sgml +++ b/docs/docbook/projdoc/Portability.sgml @@ -145,27 +145,4 @@ You should then remove the line: <para>from the DNIX section of <filename>includes.h</filename></para> </sect1> - -<sect1> -<title>RedHat Linux Rembrandt-II</title> - -<para> -By default RedHat Rembrandt-II during installation adds an -entry to /etc/hosts as follows: -<programlisting> - 127.0.0.1 loopback "hostname"."domainname" -</programlisting> -</para> - -<para> -This causes Samba to loop back onto the loopback interface. -The result is that Samba fails to communicate correctly with -the world and therefor may fail to correctly negotiate who -is the master browse list holder and who is the master browser. -</para> - -<para> -Corrective Action: Delete the entry after the word loopback - in the line starting 127.0.0.1 -</para> </chapter> diff --git a/docs/docbook/projdoc/samba-doc.sgml b/docs/docbook/projdoc/samba-doc.sgml index 6fb77750e7..75c5c379d3 100644 --- a/docs/docbook/projdoc/samba-doc.sgml +++ b/docs/docbook/projdoc/samba-doc.sgml @@ -21,7 +21,6 @@ <!ENTITY GROUP-MAPPING-HOWTO SYSTEM "GROUP-MAPPING-HOWTO.sgml"> <!ENTITY Portability SYSTEM "Portability.sgml"> <!ENTITY Other-Clients SYSTEM "Other-Clients.sgml"> -<!ENTITY ADS-HOWTO SYSTEM "ADS-HOWTO.sgml"> ]> <book id="Samba-Project-Documentation"> @@ -79,7 +78,6 @@ Cheers, jerry &Samba-PDC-HOWTO; &Samba-BDC-HOWTO; &Samba-LDAP; -&ADS-HOWTO; &BROWSING; &SPEED; &Other-Clients; diff --git a/docs/docbook/samba.dsl b/docs/docbook/samba.dsl index 7c530ce424..80197dfa77 100644 --- a/docs/docbook/samba.dsl +++ b/docs/docbook/samba.dsl @@ -34,7 +34,6 @@ (normalize "reference") (normalize "refentry") (normalize "part") -; We would like to split up in chapters, not in sect1's... ; (normalize "sect1") (normalize "section") (normalize "book") ;; just in case nothing else matches... @@ -45,6 +44,7 @@ (define %section-autolabel% #t) (define (toc-depth nd) 3) +(define %root-filename% "Samba-HOWTO") ;; name for the root html file (define %html-ext% ".html") ;; default extension for html output files (define %html-prefix% "") ;; prefix for all filenames generated (except root) (define %use-id-as-filename% #t) diff --git a/docs/faq/README b/docs/faq/README new file mode 100644 index 0000000000..f4f0e8ab69 --- /dev/null +++ b/docs/faq/README @@ -0,0 +1,8 @@ +This directory contains the old Samba FAQ. +It is now horribly outdated and unmaintained. +It is being left here in case there is some +useful information within. + + +--jerry@samba.org + diff --git a/docs/faq/Samba-Server-FAQ-1.html b/docs/faq/Samba-Server-FAQ-1.html new file mode 100644 index 0000000000..0bf7f04610 --- /dev/null +++ b/docs/faq/Samba-Server-FAQ-1.html @@ -0,0 +1,77 @@ +<HTML> +<HEAD> +<TITLE> Samba Server FAQ: What is Samba?</TITLE> +</HEAD> +<BODY> +Previous +<A HREF="Samba-Server-FAQ-2.html">Next</A> +<A HREF="Samba-Server-FAQ.html#toc1">Table of Contents</A> +<HR> +<H2><A NAME="s1">1. What is Samba?</A></H2> + +<P> +<A NAME="WhatIsSamba"></A> +</P> +<P>See the +<A HREF="Samba-meta-FAQ.html#introduction">meta FAQ introduction</A> if you don't have any idea what Samba does.</P> +<P>Samba has many features that are not supported in other CIFS and SMB +implementations, all of which are commercial. It approaches some +problems from a different angle.</P> +<P>Some of its features include: +<UL> +<LI>extremely dynamic runtime configuration</LI> +<LI>host as well as username/password security</LI> +<LI>scriptable SMB client</LI> +<LI>automatic home directory exporting</LI> +<LI>automatic printer exporting</LI> +<LI>intelligent dead connection timeouts</LI> +<LI>guest connections</LI> +</UL> +</P> +<P>Look at the +<A HREF="samba-man-index.html">manual pages</A> included with the package for a full list of +features. The components of the suite are (in summary):</P> +<P> +<DL> + +<DT><B>smbd</B><DD><P>the SMB server. This handles actual connections from clients, +doing all the interfacing with the +<A HREF="Samba-meta-FAQ.html#DomainModeSecurity">authentication database</A> for file, permission and username work.</P> + +<DT><B>nmbd</B><DD><P>the NetBIOS name server, which helps clients locate servers, +maintaining the +<A HREF="Samba-meta-FAQ.html#BrowseAndDomainDefs">authentication database</A> doing the browsing work and managing +domains as this capability is being built into Samba.</P> + +<DT><B>smbclient</B><DD><P>the scriptable commandline SMB client program. +Useful for automated work, printer filters and testing purposes. It is +more CIFS-compliant than most commercial implementations. Note that this +is not a filesystem. The Samba team does not supply a network filesystem +driver, although the smbfs filesystem for Linux is derived from +smbclient code.</P> + +<DT><B>smbrun</B><DD><P>a little 'glue' program to help the server run +external programs.</P> + +<DT><B>testprns</B><DD><P>a program to test server access to printers</P> + +<DT><B>testparms</B><DD><P>a program to test the Samba configuration file +for correctness</P> + +<DT><B>smb.conf</B><DD><P>the Samba configuration file</P> + +<DT><B>examples</B><DD><P>many examples have been put together for the different +operating systems that Samba supports.</P> + +<DT><B>Documentation!</B><DD><P>DON'T neglect to read it - you will save a great +deal of time!</P> + +</DL> +</P> + +<HR> +Previous +<A HREF="Samba-Server-FAQ-2.html">Next</A> +<A HREF="Samba-Server-FAQ.html#toc1">Table of Contents</A> +</BODY> +</HTML> diff --git a/docs/faq/Samba-Server-FAQ-2.html b/docs/faq/Samba-Server-FAQ-2.html new file mode 100644 index 0000000000..37a3983399 --- /dev/null +++ b/docs/faq/Samba-Server-FAQ-2.html @@ -0,0 +1,500 @@ +<HTML> +<HEAD> +<TITLE> Samba Server FAQ: How do I get the CIFS, SMB and NetBIOS protocols?</TITLE> +</HEAD> +<BODY> +<A HREF="Samba-Server-FAQ-1.html">Previous</A> +Next +<A HREF="Samba-Server-FAQ.html#toc2">Table of Contents</A> +<HR> +<H2><A NAME="s2">2. How do I get the CIFS, SMB and NetBIOS protocols?</A></H2> + +<P> +<A NAME="ServerProtocols"></A> +</P> +<P>See the +<A HREF="Samba-meta-FAQ.html#CifsSmb">meta FAQ on CIFS and SMB</A> if you don't have any idea what these protocols are.</P> +<P>CIFS and SMB are implemented by the main Samba fileserving daemon, smbd. +<F>.....</F></P> +<P>nmbd speaks a limited amount of CIFS (...) but is mostly concerned with +NetBIOS. NetBIOS is <F>....</F></P> +<P>RFC1001, RFC1002 <F>...</F></P> +<P>So, provided you have got Samba correctly installed and running you have +all three of these protocols. Some operating systems already come with +stacks for all or some of these, such as SCO Unix, OS/2 and <F>...</F> In this +case you must <F>...</F></P> + +<H2><A NAME="ss2.1">2.1 What server operating systems are supported?</A></H2> + +<P> +<A NAME="PortInfo"></A> +</P> +<P>At the last count, Samba runs on about 40 operating systems! This +section looks at general questions about running Samba on the different +platforms. Issues specific to particular operating systems are dealt +with in elsewhere in this document.</P> +<P>Many of the ports have been done by people outside the Samba team keen +to get the advantages of Samba. The Samba team is currently trying to +bring as many of these ports as possible into the main source tree and +integrate the documentation. Samba is an integration tool, and so it has +been made as easy as possible to port. The platforms most widely used +and thus best tested are Linux and SunOS.</P> +<P>This migration has not been completed yet. This means that some +documentation is on web sites <F>...</F></P> +<P>There are two main families of Samba ports, Unix and other. The Unix +ports cover anything that remotely resembles Unix and includes some +extremely old products as well as best-sellers, tiny PCs to massive +multiprocessor machines supporting hundreds of thousands of users. Samba +has been run on more than 30 Unix and Unix-like operating systems.</P> + +<H3>Running Samba on a Unix or Unix-like system</H3> + +<P> +<A NAME="OnUnix"></A> +</P> +<P> +<A HREF="../UNIX-SMB.txt">../UNIX-SMB.txt</A> describes some of the issues that confront a +SMB implementation on unix, and how Samba copes with them. They may help +people who are looking at unix<->PC interoperability.</P> +<P>There is great variation between Unix implementations, especially those +not adhering to the Common Unix Specification agreed to in 1996. Things +that can be quite tricky are <F>.....</F></P> +<P>There are also some considerable advantages conferred on Samba running +under Unix compared to, say, Windows NT or LAN Server. Unix has <F>...</F></P> +<P>At time of writing, the Makefile claimed support for: +<UL> +<LI> A/UX 3.0</LI> +<LI> AIX</LI> +<LI> Altos Series 386/1000</LI> +<LI> Amiga</LI> +<LI> Apollo Domain/OS sr10.3</LI> +<LI> BSDI </LI> +<LI> B.O.S. (Bull Operating System)</LI> +<LI> Cray, Unicos 8.0</LI> +<LI> Convex</LI> +<LI> DGUX. </LI> +<LI> DNIX.</LI> +<LI> FreeBSD</LI> +<LI> HP-UX</LI> +<LI> Intergraph. </LI> +<LI> Linux with/without shadow passwords and quota</LI> +<LI> LYNX 2.3.0</LI> +<LI> MachTen (a unix like system for Macintoshes)</LI> +<LI> Motorola 88xxx/9xx range of machines</LI> +<LI> NetBSD</LI> +<LI> NEXTSTEP Release 2.X, 3.0 and greater (including OPENSTEP for Mach).</LI> +<LI> OS/2 using EMX 0.9b</LI> +<LI> OSF1</LI> +<LI> QNX 4.22</LI> +<LI> RiscIX. </LI> +<LI> RISCOs 5.0B</LI> +<LI> SEQUENT. </LI> +<LI> SCO (including: 3.2v2, European dist., OpenServer 5)</LI> +<LI> SGI.</LI> +<LI> SMP_DC.OSx v1.1-94c079 on Pyramid S series</LI> +<LI> SONY NEWS, NEWS-OS (4.2.x and 6.1.x)</LI> +<LI> SUNOS 4</LI> +<LI> SUNOS 5.2, 5.3, and 5.4 (Solaris 2.2, 2.3, and '2.4 and later')</LI> +<LI> Sunsoft ISC SVR3V4</LI> +<LI> SVR4</LI> +<LI> System V with some berkely extensions (Motorola 88k R32V3.2).</LI> +<LI> ULTRIX.</LI> +<LI> UNIXWARE</LI> +<LI> UXP/DS</LI> +</UL> +</P> + + +<H3>Running Samba on systems unlike Unix</H3> + +<P> +<A NAME="OnUnlikeUnix"></A> +</P> +<P>More recently Samba has been ported to a number of operating systems +which can provide a BSD Unix-like implementation of TCP/IP sockets. +These include OS/2, Netware, VMS, StratOS, Amiga and MVS. BeOS, +Windows NT and several others are being worked on but not yet available +for use.</P> +<P>Home pages for these ports are:</P> +<P><F>... </F></P> + + +<H2><A NAME="ss2.2">2.2 Exporting server resources with Samba</A></H2> + +<P> +<A NAME="Exporting"></A> +</P> +<P>Files, printers, CD ROMs and other local devices. Network devices, +including networked filesystems and remote printer queues. Other devices +such as <F>....</F></P> +<P>1.4) Configuring SHARES +1.4.1) Homes service +1.4.2) Public services +1.4.3) Application serving +1.4.4) Team sharing a Samba resource</P> +<P>1.5) Printer configuration +1.5.1) Berkeley LPR/LPD systems +1.5.2) ATT SysV lp systems +1.5.3) Using a private printcap file +1.5.4) Use of the smbprint utility +1.5.5) Printing from Windows to Unix +1.5.6) Printing from Unix to Windows</P> + + +<H2><A NAME="ss2.3">2.3 Name Resolution and Browsing</A></H2> + +<P> +<A NAME="NameBrowsing"></A> +</P> +<P>See also +<A HREF="../BROWSING.txt">../BROWSING.txt</A></P> +<P>1.6) Name resolution issues +1.6.1) LMHOSTS file and when to use it +1.6.2) configuring WINS (support, server, proxy) +1.6.3) configuring DNS proxy</P> +<P>1.7) Problem Diagnosis +1.8) What NOT to do!!!!</P> +<P>3.2) Browse list managment +3.3) Name resolution mangement</P> + + + +<H2><A NAME="ss2.4">2.4 Handling SMB Encryption</A></H2> + +<P> +<A NAME="SMBEncryptionSteps"></A> +</P> +<P>SMB encryption is ...</P> +<P>...in +<A HREF="../ENCRYPTION.txt">../ENCRYPTION.txt</A> there is...</P> +<P>Samba compiled with libdes - enabling encrypted passwords</P> + + +<H3>Laws in different countries affecting Samba</H3> + +<P> +<A NAME="CryptoLaws"></A> +</P> + +<H3>Relationship between encryption and Domain Authentication</H3> + + + + +<H2><A NAME="ss2.5">2.5 Files and record locking</A> 3.1.1) Old DOS clients 3.1.2) Opportunistic locking and the consequences 3.1.3) Files caching under Windows for Workgroups, Win95 and NT Some of the foregoing links into Client-FAQ</H2> + + +<H2><A NAME="ss2.6">2.6 Managing Samba Log files</A></H2> + +<P> +<A NAME="LogFiles"></A> +</P> + + +<H2><A NAME="ss2.7">2.7 I can't see the Samba server in any browse lists!</A></H2> + +<P> +<A NAME="no_browse"></A> + +See +<A HREF="ftp://samba.org/pub/samba/BROWSING.txt">BROWSING.txt</A> +for more information on browsing. Browsing.txt can also be found +in the docs directory of the Samba source.</P> +<P>If your GUI client does not permit you to select non-browsable +servers, you may need to do so on the command line. For example, under +Lan Manager you might connect to the above service as disk drive M: +thusly: +<BLOCKQUOTE><CODE> +<PRE> + net use M: \\mary\fred +</PRE> +</CODE></BLOCKQUOTE> + +The details of how to do this and the specific syntax varies from +client to client - check your client's documentation.</P> + + +<H2><A NAME="ss2.8">2.8 Some files that I KNOW are on the server doesn't show up when I view the files from my client! </A></H2> + +<P> +<A NAME="missing_files"></A> + +See the next question.</P> + + +<H2><A NAME="ss2.9">2.9 Some files on the server show up with really wierd filenames when I view the files from my client! </A></H2> + +<P> +<A NAME="strange_filenames"></A> + +If you check what files are not showing up, you will note that they +are files which contain upper case letters or which are otherwise not +DOS-compatible (ie, they are not legal DOS filenames for some reason).</P> +<P>The Samba server can be configured either to ignore such files +completely, or to present them to the client in "mangled" form. If you +are not seeing the files at all, the Samba server has most likely been +configured to ignore them. Consult the man page smb.conf(5) for +details of how to change this - the parameter you need to set is +"mangled names = yes".</P> + + +<H2><A NAME="ss2.10">2.10 My client reports "cannot locate specified computer" or similar</A></H2> + +<P> +<A NAME="cant_see_server"></A> + +This indicates one of three things: You supplied an incorrect server +name, the underlying TCP/IP layer is not working correctly, or the +name you specified cannot be resolved.</P> +<P>After carefully checking that the name you typed is the name you +should have typed, try doing things like pinging a host or telnetting +to somewhere on your network to see if TCP/IP is functioning OK. If it +is, the problem is most likely name resolution.</P> +<P>If your client has a facility to do so, hardcode a mapping between the +hosts IP and the name you want to use. For example, with Man Manager +or Windows for Workgroups you would put a suitable entry in the file +LMHOSTS. If this works, the problem is in the communication between +your client and the netbios name server. If it does not work, then +there is something fundamental wrong with your naming and the solution +is beyond the scope of this document.</P> +<P>If you do not have any server on your subnet supplying netbios name +resolution, hardcoded mappings are your only option. If you DO have a +netbios name server running (such as the Samba suite's nmbd program), +the problem probably lies in the way it is set up. Refer to Section +Two of this FAQ for more ideas.</P> +<P>By the way, remember to REMOVE the hardcoded mapping before further +tests :-) </P> + + +<H2><A NAME="ss2.11">2.11 My client reports "cannot locate specified share name" or similar</A></H2> + +<P> +<A NAME="cant_see_share"></A> + +This message indicates that your client CAN locate the specified +server, which is a good start, but that it cannot find a service of +the name you gave.</P> +<P>The first step is to check the exact name of the service you are +trying to connect to (consult your system administrator). Assuming it +exists and you specified it correctly (read your client's doco on how +to specify a service name correctly), read on:</P> +<P> +<UL> +<LI> Many clients cannot accept or use service names longer than eight characters.</LI> +<LI> Many clients cannot accept or use service names containing spaces.</LI> +<LI> Some servers (not Samba though) are case sensitive with service names.</LI> +<LI> Some clients force service names into upper case.</LI> +</UL> +</P> + + +<H2><A NAME="ss2.12">2.12 My client reports "cannot find domain controller", "cannot log on to the network" or similar </A></H2> + +<P> +<A NAME="cant_see_net"></A> + +Nothing is wrong - Samba does not implement the primary domain name +controller stuff for several reasons, including the fact that the +whole concept of a primary domain controller and "logging in to a +network" doesn't fit well with clients possibly running on multiuser +machines (such as users of smbclient under Unix). Having said that, +several developers are working hard on building it in to the next +major version of Samba. If you can contribute, send a message to +<A HREF="mailto:samba@samba.org">samba@samba.org</A> !</P> +<P>Seeing this message should not affect your ability to mount redirected +disks and printers, which is really what all this is about.</P> +<P>For many clients (including Windows for Workgroups and Lan Manager), +setting the domain to STANDALONE at least gets rid of the message.</P> + + +<H2><A NAME="ss2.13">2.13 Printing doesn't work :-(</A></H2> + +<P> +<A NAME="no_printing"></A> + </P> +<P>Make sure that the specified print command for the service you are +connecting to is correct and that it has a fully-qualified path (eg., +use "/usr/bin/lpr" rather than just "lpr", if you happen to be using +Unix).</P> +<P>Make sure that the spool directory specified for the service is +writable by the user connected to the service. </P> +<P>Make sure that the user specified in the service is permitted to use +the printer.</P> +<P>Check the debug log produced by smbd. Search for the printer name and +see if the log turns up any clues. Note that error messages to do with +a service ipc$ are meaningless - they relate to the way the client +attempts to retrieve status information when using the LANMAN1 +protocol.</P> +<P>If using WfWg then you need to set the default protocol to TCP/IP, not +Netbeui. This is a WfWg bug.</P> +<P>If using the Lanman1 protocol (the default) then try switching to +coreplus. Also not that print status error messages don't mean +printing won't work. The print status is received by a different +mechanism.</P> + + +<H2><A NAME="ss2.14">2.14 My programs install on the server OK, but refuse to work properly</A></H2> + +<P> +<A NAME="programs_wont_run"></A> + +There are numerous possible reasons for this, but one MAJOR +possibility is that your software uses locking. Make sure you are +using Samba 1.6.11 or later. It may also be possible to work around +the problem by setting "locking=no" in the Samba configuration file +for the service the software is installed on. This should be regarded +as a strictly temporary solution.</P> +<P>In earlier Samba versions there were some difficulties with the very +latest Microsoft products, particularly Excel 5 and Word for Windows +6. These should have all been solved. If not then please let Andrew +Tridgell know via email at +<A HREF="mailto:sambas@samba.org">samba@samba.org</A>.</P> + + +<H2><A NAME="ss2.15">2.15 My "server string" doesn't seem to be recognised</A></H2> + +<P> +<A NAME="bad_server_string"></A> + +OR My client reports the default setting, eg. "Samba 1.9.15p4", instead +of what I have changed it to in the smb.conf file.</P> +<P>You need to use the -C option in nmbd. The "server string" affects +what smbd puts out and -C affects what nmbd puts out.</P> +<P>Current versions of Samba (1.9.16 +) have combined these options into +the "server string" field of smb.conf, -C for nmbd is now obsolete.</P> + + +<H2><A NAME="ss2.16">2.16 My client reports "This server is not configured to list shared resources" </A></H2> + +<P> +<A NAME="cant_list_shares"></A> + +Your guest account is probably invalid for some reason. Samba uses the +guest account for browsing in smbd. Check that your guest account is +valid.</P> +<P>See also 'guest account' in smb.conf man page.</P> + + +<H2><A NAME="ss2.17">2.17 Issues specific to Unix and Unix-like systems</A></H2> + +<P> +<A NAME="UnixIssues"></A> +</P> + +<H3>Printing doesn't work with my Unix Samba server</H3> + +<P> +<A NAME="no_printing"></A> + </P> +<P>The user "nobody" often has problems with printing, even if it worked +with an earlier version of Samba. Try creating another guest user other +than "nobody".</P> + +<H3>Log message "you appear to have a trapdoor uid system" </H3> + +<P> +<A NAME="trapdoor_uid"></A> + +This can have several causes. It might be because you are using a uid +or gid of 65535 or -1. This is a VERY bad idea, and is a big security +hole. Check carefully in your /etc/passwd file and make sure that no +user has uid 65535 or -1. Especially check the "nobody" user, as many +broken systems are shipped with nobody setup with a uid of 65535.</P> +<P>It might also mean that your OS has a trapdoor uid/gid system :-)</P> +<P>This means that once a process changes effective uid from root to +another user it can't go back to root. Unfortunately Samba relies on +being able to change effective uid from root to non-root and back +again to implement its security policy. If your OS has a trapdoor uid +system this won't work, and several things in Samba may break. Less +things will break if you use user or server level security instead of +the default share level security, but you may still strike +problems.</P> +<P>The problems don't give rise to any security holes, so don't panic, +but it does mean some of Samba's capabilities will be unavailable. +In particular you will not be able to connect to the Samba server as +two different uids at once. This may happen if you try to print as a +"guest" while accessing a share as a normal user. It may also affect +your ability to list the available shares as this is normally done as +the guest user.</P> +<P>Complain to your OS vendor and ask them to fix their system.</P> +<P>Note: the reason why 65535 is a VERY bad choice of uid and gid is that +it casts to -1 as a uid, and the setreuid() system call ignores (with +no error) uid changes to -1. This means any daemon attempting to run +as uid 65535 will actually run as root. This is not good!</P> + + +<H2><A NAME="ss2.18">2.18 Issues specific to IBM OS/2 systems</A></H2> + +<P> +<A NAME="OS2Issues"></A> +</P> +<P> +<A HREF="http://carol.wins.uva.nl/~leeuw/samba/samba2.html">Samba for OS/2</A></P> + + +<H2><A NAME="ss2.19">2.19 Issues specific to IBM MVS systems</A></H2> + +<P> +<A NAME="MVSIssues"></A> +</P> +<P> +<A HREF="ftp://ftp.mks.com/pub/samba/">Samba for OS/390 MVS</A></P> + + +<H2><A NAME="ss2.20">2.20 Issues specific to Digital VMS systems</A></H2> + +<P> +<A NAME="VMSIssues"></A> +</P> + + +<H2><A NAME="ss2.21">2.21 Issues specific to Amiga systems</A></H2> + +<P> +<A NAME="AmigaIssues"></A> +</P> +<P> +<A HREF="http://www.gbar.dtu.dk/~c948374/Amiga/Samba/">Samba for Amiga</A></P> +<P>There is a mailing list for Samba on the Amiga.</P> +<P>Subscribing.</P> +<P>Send an email to rask-samba-request@kampsax.dtu.dk with the word subscribe +in the message. The list server will use the address in the Reply-To: or +From: header field, in that order.</P> +<P>Unsubscribing.</P> +<P>Send an email to rask-samba-request@kampsax.dtu.dk with the word +unsubscribe in the message. The list server will use the address in the +Reply-To: or From: header field, in that order. If you are unsure which +address you are subscribed with, look at the headers. You should see a +"From " (no colon) or Return-Path: header looking something like</P> +<P>rask-samba-owner-myname=my.domain@kampsax.dtu.dk</P> +<P>where myname=my.domain gives you the address myname@my.domain. This also +means that I will always be able to find out which address is causing +bounces, for example. +List archive.</P> +<P>Messages sent to the list are archived in HTML. See the mailing list home +page at +<A HREF="http://www.gbar.dtu.dk/~c948374/Amiga/Samba/mailinglist/">http://www.gbar.dtu.dk/~c948374/Amiga/Samba/mailinglist/</A></P> + + +<H2><A NAME="ss2.22">2.22 Issues specific to Novell IntraNetware systems</A></H2> + +<P> +<A NAME="NetwareIssues"></A> +</P> + + +<H2><A NAME="ss2.23">2.23 Issues specific to Stratus VOS systems</A></H2> + +<P> +<A NAME="NetwareIssues"></A> +</P> +<P> +<A HREF="ftp://ftp.stratus.com/pub/vos/tools/">Samba for Stratus VOS</A></P> + + +<HR> +<A HREF="Samba-Server-FAQ-1.html">Previous</A> +Next +<A HREF="Samba-Server-FAQ.html#toc2">Table of Contents</A> +</BODY> +</HTML> diff --git a/docs/faq/Samba-Server-FAQ.html b/docs/faq/Samba-Server-FAQ.html new file mode 100644 index 0000000000..2abfe50db6 --- /dev/null +++ b/docs/faq/Samba-Server-FAQ.html @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<HTML> +<HEAD> +<TITLE> Samba Server FAQ</TITLE> +</HEAD> +<BODY> +Previous +<A HREF="Samba-Server-FAQ-1.html">Next</A> +Table of Contents +<HR> +<H1> Samba Server FAQ</H1> + +<H2>Dan Shearer & Paul Blackman, <CODE>ictinus@samba.org</CODE></H2>v 0.3, 7 Oct '97 +<P><HR><EM> This is the <EM>Server</EM> Frequently Asked Questions (FAQ) +document for Samba, the free and very popular SMB and CIFS server +product. A general +<A HREF="Samba-meta-FAQ.html">meta FAQ</A> +exists and also a companion +<A HREF="Samba-Client-FAQ.html">Client FAQ</A>, together with more detailed HOWTO documents on +topics to do with Samba software. This is current to Samba version +1.9.17. Please send any corrections to the author. </EM><HR></P> +<P> +<H2><A NAME="toc1">1.</A> <A HREF="Samba-Server-FAQ-1.html">What is Samba?</A></H2> + +<P> +<H2><A NAME="toc2">2.</A> <A HREF="Samba-Server-FAQ-2.html">How do I get the CIFS, SMB and NetBIOS protocols?</A></H2> +<UL> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.1">2.1 What server operating systems are supported?</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.2">2.2 Exporting server resources with Samba</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.3">2.3 Name Resolution and Browsing</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.4">2.4 Handling SMB Encryption</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.5">2.5 Files and record locking</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.6">2.6 Managing Samba Log files</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.7">2.7 I can't see the Samba server in any browse lists!</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.8">2.8 Some files that I KNOW are on the server doesn't show up when I view the files from my client! </A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.9">2.9 Some files on the server show up with really wierd filenames when I view the files from my client! </A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.10">2.10 My client reports "cannot locate specified computer" or similar</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.11">2.11 My client reports "cannot locate specified share name" or similar</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.12">2.12 My client reports "cannot find domain controller", "cannot log on to the network" or similar </A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.13">2.13 Printing doesn't work :-(</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.14">2.14 My programs install on the server OK, but refuse to work properly</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.15">2.15 My "server string" doesn't seem to be recognised</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.16">2.16 My client reports "This server is not configured to list shared resources" </A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.17">2.17 Issues specific to Unix and Unix-like systems</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.18">2.18 Issues specific to IBM OS/2 systems</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.19">2.19 Issues specific to IBM MVS systems</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.20">2.20 Issues specific to Digital VMS systems</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.21">2.21 Issues specific to Amiga systems</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.22">2.22 Issues specific to Novell IntraNetware systems</A> +<LI><A HREF="Samba-Server-FAQ-2.html#ss2.23">2.23 Issues specific to Stratus VOS systems</A> +</UL> + + +<HR> +Previous +<A HREF="Samba-Server-FAQ-1.html">Next</A> +Table of Contents +</BODY> +</HTML> diff --git a/docs/faq/Samba-Server-FAQ.sgml b/docs/faq/Samba-Server-FAQ.sgml new file mode 100644 index 0000000000..8f57e73aa3 --- /dev/null +++ b/docs/faq/Samba-Server-FAQ.sgml @@ -0,0 +1,407 @@ +<!doctype linuxdoc system> <!-- -*- SGML -*- --> +<!-- + v 0.1 23 Aug 1997 Dan Shearer + Original Samba-Client-FAQ.sgml from Paul's sambafaq.sgml + v 0.2 25 Aug 1997 Dan + v 0.3 7 Oct 1997 Paul, changed email address from ictinus@lake... to ictinus@samba.anu +--> + + +<article> + +<title> Samba Server FAQ + +<author>Dan Shearer & Paul Blackman, <tt>ictinus@samba.org</tt> + +<date>v 0.3, 7 Oct '97 + +<abstract> This is the <em>Server</em> Frequently Asked Questions (FAQ) +document for Samba, the free and very popular SMB and CIFS server +product. A general <url url="Samba-meta-FAQ.html" name="meta FAQ"> +exists and also a companion <url url="Samba-Client-FAQ.html" +name="Client FAQ">, together with more detailed HOWTO documents on +topics to do with Samba software. This is current to Samba version +1.9.17. Please send any corrections to the author. + +</abstract> + +<toc> + +<sect>What is Samba?<p><label id="WhatIsSamba"> + +See the <url url="Samba-meta-FAQ.html#introduction" name="meta FAQ +introduction"> if you don't have any idea what Samba does. + +Samba has many features that are not supported in other CIFS and SMB +implementations, all of which are commercial. It approaches some +problems from a different angle. + +Some of its features include: +<itemize> +<item>extremely dynamic runtime configuration +<item>host as well as username/password security +<item>scriptable SMB client +<item>automatic home directory exporting +<item>automatic printer exporting +<item>intelligent dead connection timeouts +<item>guest connections +</itemize> + +Look at the <url url="samba-man-index.html" name="manual pages"> included with the package for a full list of +features. The components of the suite are (in summary): + +<descrip> + +<tag/smbd/ the SMB server. This handles actual connections from clients, +doing all the interfacing with the <url +url="Samba-meta-FAQ.html#DomainModeSecurity" name="authentication +database"> for file, permission and username work. + +<tag/nmbd/ the NetBIOS name server, which helps clients locate servers, +maintaining the <url url="Samba-meta-FAQ.html#BrowseAndDomainDefs" +name="authentication database"> doing the browsing work and managing +domains as this capability is being built into Samba. + +<tag/smbclient/ the scriptable commandline SMB client program. +Useful for automated work, printer filters and testing purposes. It is +more CIFS-compliant than most commercial implementations. Note that this +is not a filesystem. The Samba team does not supply a network filesystem +driver, although the smbfs filesystem for Linux is derived from +smbclient code. + +<tag/smbrun/ a little 'glue' program to help the server run +external programs. + +<tag/testprns/ a program to test server access to printers + +<tag/testparms/ a program to test the Samba configuration file +for correctness + +<tag/smb.conf/ the Samba configuration file + +<tag/examples/ many examples have been put together for the different +operating systems that Samba supports. + +<tag/Documentation!/ DON'T neglect to read it - you will save a great +deal of time! + +</descrip> + +<sect>How do I get the CIFS, SMB and NetBIOS protocols?<p><label id="ServerProtocols"> + +See the <url url="Samba-meta-FAQ.html#CifsSmb" name="meta FAQ +on CIFS and SMB"> if you don't have any idea what these protocols are. + +CIFS and SMB are implemented by the main Samba fileserving daemon, smbd. +[.....] + +nmbd speaks a limited amount of CIFS (...) but is mostly concerned with +NetBIOS. NetBIOS is [....] + +RFC1001, RFC1002 [...] + +So, provided you have got Samba correctly installed and running you have +all three of these protocols. Some operating systems already come with +stacks for all or some of these, such as SCO Unix, OS/2 and [...] In this +case you must [...] + +<sect1>What server operating systems are supported?<p><label id="PortInfo"> + +At the last count, Samba runs on about 40 operating systems! This +section looks at general questions about running Samba on the different +platforms. Issues specific to particular operating systems are dealt +with in elsewhere in this document. + +Many of the ports have been done by people outside the Samba team keen +to get the advantages of Samba. The Samba team is currently trying to +bring as many of these ports as possible into the main source tree and +integrate the documentation. Samba is an integration tool, and so it has +been made as easy as possible to port. The platforms most widely used +and thus best tested are Linux and SunOS. + +This migration has not been completed yet. This means that some +documentation is on web sites [...] + +There are two main families of Samba ports, Unix and other. The Unix +ports cover anything that remotely resembles Unix and includes some +extremely old products as well as best-sellers, tiny PCs to massive +multiprocessor machines supporting hundreds of thousands of users. Samba +has been run on more than 30 Unix and Unix-like operating systems. + +<sect2>Running Samba on a Unix or Unix-like system<p><label id="OnUnix"> + +<url url="../UNIX-SMB.txt"> describes some of the issues that confront a +SMB implementation on unix, and how Samba copes with them. They may help +people who are looking at unix<->PC interoperability. + +There is great variation between Unix implementations, especially those +not adhering to the Common Unix Specification agreed to in 1996. Things +that can be quite tricky are [.....] + +There are also some considerable advantages conferred on Samba running +under Unix compared to, say, Windows NT or LAN Server. Unix has [...] + +At time of writing, the Makefile claimed support for: +<itemize> +<item> A/UX 3.0 +<item> AIX +<item> Altos Series 386/1000 +<item> Amiga +<item> Apollo Domain/OS sr10.3 +<item> BSDI +<item> B.O.S. (Bull Operating System) +<item> Cray, Unicos 8.0 +<item> Convex +<item> DGUX. +<item> DNIX. +<item> FreeBSD +<item> HP-UX +<item> Intergraph. +<item> Linux with/without shadow passwords and quota +<item> LYNX 2.3.0 +<item> MachTen (a unix like system for Macintoshes) +<item> Motorola 88xxx/9xx range of machines +<item> NetBSD +<item> NEXTSTEP Release 2.X, 3.0 and greater (including OPENSTEP for Mach). +<item> OS/2 using EMX 0.9b +<item> OSF1 +<item> QNX 4.22 +<item> RiscIX. +<item> RISCOs 5.0B +<item> SEQUENT. +<item> SCO (including: 3.2v2, European dist., OpenServer 5) +<item> SGI. +<item> SMP_DC.OSx v1.1-94c079 on Pyramid S series +<item> SONY NEWS, NEWS-OS (4.2.x and 6.1.x) +<item> SUNOS 4 +<item> SUNOS 5.2, 5.3, and 5.4 (Solaris 2.2, 2.3, and '2.4 and later') +<item> Sunsoft ISC SVR3V4 +<item> SVR4 +<item> System V with some berkely extensions (Motorola 88k R32V3.2). +<item> ULTRIX. +<item> UNIXWARE +<item> UXP/DS +</itemize> + + +<sect2>Running Samba on systems unlike Unix<p><label id="OnUnlikeUnix"> + +More recently Samba has been ported to a number of operating systems +which can provide a BSD Unix-like implementation of TCP/IP sockets. +These include OS/2, Netware, VMS, StratOS, Amiga and MVS. BeOS, +Windows NT and several others are being worked on but not yet available +for use. + +Home pages for these ports are: + +[... ] + +<sect1>Exporting server resources with Samba<p><label id="Exporting"> + +Files, printers, CD ROMs and other local devices. Network devices, +including networked filesystems and remote printer queues. Other devices +such as [....] + + 1.4) Configuring SHARES + 1.4.1) Homes service + 1.4.2) Public services + 1.4.3) Application serving + 1.4.4) Team sharing a Samba resource + + 1.5) Printer configuration + 1.5.1) Berkeley LPR/LPD systems + 1.5.2) ATT SysV lp systems + 1.5.3) Using a private printcap file + 1.5.4) Use of the smbprint utility + 1.5.5) Printing from Windows to Unix + 1.5.6) Printing from Unix to Windows + +<sect1>Name Resolution and Browsing<p><label id="NameBrowsing"> + +See also <url url="../BROWSING.txt"> + + 1.6) Name resolution issues + 1.6.1) LMHOSTS file and when to use it + 1.6.2) configuring WINS (support, server, proxy) + 1.6.3) configuring DNS proxy + + 1.7) Problem Diagnosis + 1.8) What NOT to do!!!! + + 3.2) Browse list managment + 3.3) Name resolution mangement + + +<sect1>Handling SMB Encryption<p><label id="SMBEncryptionSteps"> + +SMB encryption is ... + +...in <url url="../ENCRYPTION.txt"> there is... + +Samba compiled with libdes - enabling encrypted passwords + + +<sect2>Laws in different countries affecting Samba<p><label id="CryptoLaws"> + +<sect2>Relationship between encryption and Domain Authentication<p> + +<sect1> Files and record locking + + 3.1.1) Old DOS clients + 3.1.2) Opportunistic locking and the consequences + 3.1.3) Files caching under Windows for Workgroups, Win95 and NT + + Some of the foregoing links into Client-FAQ + +<sect1>Managing Samba Log files<p><label id="LogFiles"> + +<sect1>I can't see the Samba server in any browse lists!<p><label id="no_browse"> + See <url url="ftp://samba.org/pub/samba/BROWSING.txt" name="BROWSING.txt"> + for more information on browsing. Browsing.txt can also be found + in the docs directory of the Samba source. + +If your GUI client does not permit you to select non-browsable +servers, you may need to do so on the command line. For example, under +Lan Manager you might connect to the above service as disk drive M: +thusly: +<tscreen><verb> + net use M: \\mary\fred +</verb></tscreen> +The details of how to do this and the specific syntax varies from +client to client - check your client's documentation. + +<sect1>Some files that I KNOW are on the server doesn't show up when I view the files from my client! <p> <label id="missing_files"> +See the next question. + +<sect1>Some files on the server show up with really wierd filenames when I view the files from my client! <p> <label id="strange_filenames"> +If you check what files are not showing up, you will note that they +are files which contain upper case letters or which are otherwise not +DOS-compatible (ie, they are not legal DOS filenames for some reason). + +The Samba server can be configured either to ignore such files +completely, or to present them to the client in "mangled" form. If you +are not seeing the files at all, the Samba server has most likely been +configured to ignore them. Consult the man page smb.conf(5) for +details of how to change this - the parameter you need to set is +"mangled names = yes". + +<sect1>My client reports "cannot locate specified computer" or similar<p><label id="cant_see_server"> +This indicates one of three things: You supplied an incorrect server +name, the underlying TCP/IP layer is not working correctly, or the +name you specified cannot be resolved. + +After carefully checking that the name you typed is the name you +should have typed, try doing things like pinging a host or telnetting +to somewhere on your network to see if TCP/IP is functioning OK. If it +is, the problem is most likely name resolution. + +If your client has a facility to do so, hardcode a mapping between the +hosts IP and the name you want to use. For example, with Lan Manager +or Windows for Workgroups you would put a suitable entry in the file +LMHOSTS. If this works, the problem is in the communication between +your client and the netbios name server. If it does not work, then +there is something fundamental wrong with your naming and the solution +is beyond the scope of this document. + +If you do not have any server on your subnet supplying netbios name +resolution, hardcoded mappings are your only option. If you DO have a +netbios name server running (such as the Samba suite's nmbd program), +the problem probably lies in the way it is set up. Refer to Section +Two of this FAQ for more ideas. + +By the way, remember to REMOVE the hardcoded mapping before further +tests :-) + +<sect1>My client reports "cannot locate specified share name" or similar<p> <label id="cant_see_share"> +This message indicates that your client CAN locate the specified +server, which is a good start, but that it cannot find a service of +the name you gave. + +The first step is to check the exact name of the service you are +trying to connect to (consult your system administrator). Assuming it +exists and you specified it correctly (read your client's docs on how +to specify a service name correctly), read on: + +<itemize> +<item> Many clients cannot accept or use service names longer than eight characters. +<item> Many clients cannot accept or use service names containing spaces. +<item> Some servers (not Samba though) are case sensitive with service names. +<item> Some clients force service names into upper case. +</itemize> + +<sect1>Printing doesn't work :-(<p> <label id="no_printing"> + +Make sure that the specified print command for the service you are +connecting to is correct and that it has a fully-qualified path (eg., +use "/usr/bin/lpr" rather than just "lpr", if you happen to be using +Unix). + +Make sure that the spool directory specified for the service is +writable by the user connected to the service. + +Make sure that the user specified in the service is permitted to use +the printer. + +Check the debug log produced by smbd. Search for the printer name and +see if the log turns up any clues. Note that error messages to do with +a service ipc$ are meaningless - they relate to the way the client +attempts to retrieve status information when using the LANMAN1 +protocol. + +If using WfWg then you need to set the default protocol to TCP/IP, not +Netbeui. This is a WfWg bug. + +If using the Lanman1 protocol (the default) then try switching to +coreplus. Also not that print status error messages don't mean +printing won't work. The print status is received by a different +mechanism. + +<sect1>My client reports "This server is not configured to list shared resources" <p> <label id="cant_list_shares"> +Your guest account is probably invalid for some reason. Samba uses the +guest account for browsing in smbd. Check that your guest account is +valid. + +See also 'guest account' in smb.conf man page. + +<sect1>Issues specific to Unix and Unix-like systems<p><label id="UnixIssues"> + +<sect2>Printing doesn't work with my Unix Samba server<p> <label id="no_printing"> + +The user "nobody" often has problems with printing, even if it worked +with an earlier version of Samba. Try creating another guest user other +than "nobody". + +<sect2>Log message "you appear to have a trapdoor uid system" <p><label id="trapdoor_uid"> +This can have several causes. It might be because you are using a uid +or gid of 65535 or -1. This is a VERY bad idea, and is a big security +hole. Check carefully in your /etc/passwd file and make sure that no +user has uid 65535 or -1. Especially check the "nobody" user, as many +broken systems are shipped with nobody setup with a uid of 65535. + +It might also mean that your OS has a trapdoor uid/gid system :-) + +This means that once a process changes effective uid from root to +another user it can't go back to root. Unfortunately Samba relies on +being able to change effective uid from root to non-root and back +again to implement its security policy. If your OS has a trapdoor uid +system this won't work, and several things in Samba may break. Less +things will break if you use user or server level security instead of +the default share level security, but you may still strike +problems. + +The problems don't give rise to any security holes, so don't panic, +but it does mean some of Samba's capabilities will be unavailable. +In particular you will not be able to connect to the Samba server as +two different uids at once. This may happen if you try to print as a +"guest" while accessing a share as a normal user. It may also affect +your ability to list the available shares as this is normally done as +the guest user. + +Complain to your OS vendor and ask them to fix their system. + +Note: the reason why 65535 is a VERY bad choice of uid and gid is that +it casts to -1 as a uid, and the setreuid() system call ignores (with +no error) uid changes to -1. This means any daemon attempting to run +as uid 65535 will actually run as root. This is not good! + +</article> diff --git a/docs/faq/Samba-meta-FAQ-1.html b/docs/faq/Samba-meta-FAQ-1.html new file mode 100644 index 0000000000..7258a32f1e --- /dev/null +++ b/docs/faq/Samba-meta-FAQ-1.html @@ -0,0 +1,160 @@ +<HTML> +<HEAD> +<TITLE> Samba meta FAQ: Quick Reference Guides to Samba Documentation</TITLE> +</HEAD> +<BODY> +Previous +<A HREF="Samba-meta-FAQ-2.html">Next</A> +<A HREF="Samba-meta-FAQ.html#toc1">Table of Contents</A> +<HR> +<H2><A NAME="s1">1. Quick Reference Guides to Samba Documentation</A></H2> + +<P> +<A NAME="quickref"></A> +</P> +<P>We are endeavouring to provide links here to every major class of +information about Samba or things related to Samba. We cannot list every +document, but we are aiming for all documents to be at most two +referrals from those listed here. This needs constant maintaining, so +please send the author your feedback.</P> + +<H2><A NAME="ss1.1">1.1 Samba for the Impatient</A></H2> + +<P> +<A NAME="impatient"></A> +</P> +<P>You know you should read the documentation but can't wait to start? What +you need to do then is follow the instructions in the following +documents in the order given. This should be enough to get a fairly +simple site going quickly. If you have any problems, refer back to this +meta-FAQ and follow the links to find more reading material.</P> +<P> +<DL> +<P> +<A NAME="ImpGet"></A> +</P> +<DT><B>Getting Samba:</B><DD><P>The fastest way to get Samba +going is and install it is to have an operating system for which the +Samba team has put together an installation package. To see if your OS +is included have a look at the directory +/pub/samba/Binary_Packages/"OS_Vendor" on your nearest +<A HREF="../MIRRORS">mirror site</A>. If it is included follow the +installation instructions in the README file there and then do some +<A HREF="#ImpTest">basic testing</A>. If you are not so fortunate, follow the normal +<A HREF="Samba-meta-FAQ-2.html#WhereFrom">download instructions</A> and then continue with +<A HREF="#ImpInst">building and installing Samba</A>.</P> +<P> +<A NAME="ImpInst"></A> +</P> +<DT><B>Building and Installing Samba:</B><DD><P>At the moment +there are two kinds of Samba server installs besides the prepackaged +binaries mentioned in the previous step. You need to decide if you have a +<A HREF="../UNIX_INSTALL.txt">Unix or close relative</A> or +<A HREF="Samba-Server-FAQ.html#PortInfo">other supported operating system</A>.</P> +<P> +<A NAME="ImpTest"></A> +</P> +<DT><B>Basic Testing:</B><DD><P>Try to connect using the +supplied smbclient command-line program. You need to know the IP +hostname of your server. A service name must be defined in smb.conf, as +given in the examples (under many operating systems if there is a +<F>homes</F> service you can just use a valid username.) Then type +<CODE>smbclient \\hostname\servicename</CODE> +Under most Unixes you will need to put the parameters within quotation +marks. If this works, try connecting from one of the SMB clients you +were planning to use with Samba.</P> +<P> +<A NAME="ImpDebug"></A> +</P> +<DT><B>Debug sequence:</B><DD><P>If you think you have completed the +previous step and things aren't working properly work through +<A HREF="../DIAGNOSIS.txt">the diagnosis recipe.</A></P> +<P> +<A NAME="ImpExp"></A> +</P> +<DT><B>Exporting files to SMB clients:</B><DD><P>You should read the manual pages +for smb.conf, but here is a +<A HREF="Samba-Server-FAQ.html#Exporting">quick answer guide.</A></P> +<P> +<A NAME="ImpControl"></A> +</P> +<DT><B>Controlling user access:</B><DD><P>the quickest and dirtiest way of sharing +resources is to use +<A HREF="Samba-meta-FAQ-4.html#ShareModeSecurity">share level security.</A> If you want to spend more time and have a proper username +and password database you must read the paragraph on +<A HREF="Samba-meta-FAQ-4.html#DomainModeSecurity">domain mode security.</A> If you want +encryption (eg you are using Windows NT clients) follow the +<A HREF="Samba-Server-FAQ.html#SMBEncryptionSteps">SMB encryption instructions.</A></P> +<P> +<A NAME="ImpBrowse"></A> +</P> +<DT><B>Browsing:</B><DD><P>if you are happy to type in "\\samba-server\sharename" +at the client end then do not read any further. Otherwise you need to +understand the +browsing terminology</A> +and read +<A HREF="Samba-Server-FAQ.html#NameBrowsing">Samba-Server-FAQ.html#NameBrowsing</A>. </P> +<P> +<A NAME="ImpPrint"></A> +</P> +<DT><B>Printing:</B><DD><P>See the +<A HREF="Samba-Server-FAQ.html#Printing">printing quick answer guide.</A></P> + +</DL> +</P> +<P>If you have got everything working to this point, you can expect Samba +to be stable and secure: these are its greatest strengths. However Samba +has a great deal to offer and to go further you must do some more +reading. Speed and security optimisations, printer accounting, network +logons, roving profiles, browsing across multiple subnets and so on are +all covered either in this document or in those it refers to.</P> + + +<H2><A NAME="ss1.2">1.2 All Samba Documentation</A></H2> + +<P> +<A NAME="AllDocs"></A> +</P> +<P> +<UL> +<LI> Meta-FAQ. This is the mother of all documents, and is the one you +are reading now. The latest version is always at +<A HREF="http://samba.org/[.....]">http://samba.org/[.....]</A> but there is probably a much +nearer +<A HREF="../MIRRORS">mirror site</A> which you should use +instead. +</LI> +<LI> +<A HREF="Samba-Server-FAQ.html">Samba-Server-FAQ.html</A> is the best starting point for +information about server-side issues. Includes configuration tips and +pointers for Samba on particular operating systems (with 40 to choose +from...) +</LI> +<LI> +<A HREF="Samba-Client-FAQ.html">Samba-Client-FAQ.html</A> is the best starting point for +information about client-side issues, includes a list of all clients +that are known to work with Samba. +</LI> +<LI> +<A HREF="samba-man-index.html">manual pages</A> contains +descriptions of and links to all the Samba manual pages, in Unix man and +postscript format. +</LI> +<LI> +<A HREF="samba-txt-index.html">samba-txt-index.html</A> has descriptions of and links to +a large number of text files have been contributed to samba covering +many topics. These are gradually being absorbed into the FAQs and HOWTOs +but in the meantime you might find helpful answers here. +</LI> +<LI> +</LI> +</UL> +</P> + + +<HR> +Previous +<A HREF="Samba-meta-FAQ-2.html">Next</A> +<A HREF="Samba-meta-FAQ.html#toc1">Table of Contents</A> +</BODY> +</HTML> diff --git a/docs/faq/Samba-meta-FAQ-2.html b/docs/faq/Samba-meta-FAQ-2.html new file mode 100644 index 0000000000..1e36332d42 --- /dev/null +++ b/docs/faq/Samba-meta-FAQ-2.html @@ -0,0 +1,384 @@ +<HTML> +<HEAD> +<TITLE> Samba meta FAQ: General Information</TITLE> +</HEAD> +<BODY> +<A HREF="Samba-meta-FAQ-1.html">Previous</A> +<A HREF="Samba-meta-FAQ-3.html">Next</A> +<A HREF="Samba-meta-FAQ.html#toc2">Table of Contents</A> +<HR> +<H2><A NAME="s2">2. General Information</A></H2> + +<P> +<A NAME="general_info"></A> +</P> +<P>All about Samba - what it is, how to get it, related sources of +information, how to understand the numbering scheme, pizza +details.</P> + +<H2><A NAME="ss2.1">2.1 What is Samba?</A></H2> + +<P> +<A NAME="introduction"></A> +</P> +<P>Samba is a suite of programs which work together to allow clients to +access to a server's filespace and printers via the SMB (Server Message +Block) and CIFS (Common Internet Filesystem) protocols. Initially +written for Unix, Samba now also runs on Netware, OS/2, VMS, StratOS and +Amigas. Ports to BeOS and other operating systems are underway. Samba +gives the capability for these operating systems to behave much like a +LAN Server, Windows NT Server or Pathworks machine, only with added +functionality and flexibility designed to make life easier for +administrators. </P> +<P>This means that using Samba you can share a server's disks and printers +to many sorts of network clients, including Lan Manager, Windows for +Workgroups, Windows NT, Linux, OS/2, and AIX. There is also a generic +client program supplied as part of the Samba suite which gives a user on +the server an ftp-like interface to access filespace and printers on any +other SMB/CIFS servers.</P> +<P>SMB has been implemented over many protocols, including XNS, NBT, IPX, +NetBEUI and TCP/IP. Samba only uses TCP/IP. This is not likely to change +although there have been some requests for NetBEUI support.</P> +<P>Many users report that compared to other SMB implementations Samba is +more stable, faster, and compatible with more clients. Administrators of +some large installations say that Samba is the only SMB server available +which will scale to many tens of thousands of users without crashing. +The easy way to test these claims is to download it and try it for +yourself!</P> +<P>The suite is supplied with full source code under the +<A HREF="../COPYING">GNU Public License</A>. The GPL means that you can +use Samba for whatever purpose you wish (including changing the source +or selling it for money) but under all circumstances the source code +must be made freely available. A copy of the GPL must always be included +in any copy of the package.</P> +<P>The primary creator of the Samba suite is Andrew Tridgell. Later +versions incorporate much effort by many net.helpers. The man pages +and this FAQ were originally written by Karl Auer.</P> + + +<H2><A NAME="ss2.2">2.2 What is the current version of Samba?</A></H2> + +<P> +<A NAME="current_version"></A> +</P> +<P>At time of writing, the current version was 1.9.17. If you want to be +sure check the bottom of the change-log file. +<A HREF="ftp://samba.org/pub/samba/alpha/change-log">ftp://samba.org/pub/samba/alpha/change-log</A></P> +<P>For more information see +<A HREF="#version_nums">What do the version numbers mean?</A></P> + + +<H2><A NAME="ss2.3">2.3 Where can I get it? </A></H2> + +<P> +<A NAME="WhereFrom"></A> +</P> +<P>The Samba suite is available via anonymous ftp from samba.org and +many +<A HREF="../MIRRORS">mirror</A> sites. You will get much +faster performance if you use a mirror site. The latest and greatest +versions of the suite are in the directory:</P> +<P>/pub/samba/</P> +<P>Development (read "alpha") versions, which are NOT necessarily stable +and which do NOT necessarily have accurate documentation, are available +in the directory:</P> +<P>/pub/samba/alpha</P> +<P>Note that binaries are NOT included in any of the above. Samba is +distributed ONLY in source form, though binaries may be available from +other sites. Most Linux distributions, for example, do contain Samba +binaries for that platform. The VMS, OS/2, Netware and Amiga and other +ports typically have binaries made available.</P> +<P>A special case is vendor-provided binary packages. Samba binaries and +default configuration files are put into packages for a specific +operating system. RedHat Linux and Sun Solaris (Sparc and x86) is +already included, and others such as OS/2 may follow. All packages are +in the directory:</P> +<P>/pub/samba/Binary_Packages/"OS_Vendor"</P> + + +<H2><A NAME="ss2.4">2.4 What do the version numbers mean?</A></H2> + +<P> +<A NAME="version_nums"></A> +</P> +<P>It is not recommended that you run a version of Samba with the word +"alpha" in its name unless you know what you are doing and are willing +to do some debugging. Many, many people just get the latest +recommended stable release version and are happy. If you are brave, by +all means take the plunge and help with the testing and development - +but don't install it on your departmental server. Samba is typically +very stable and safe, and this is mostly due to the policy of many +public releases.</P> +<P>How the scheme works:</P> +<P> +<OL> +<LI>When major changes are made the version number is increased. For +example, the transition from 1.9.16 to 1.9.17. However, this version +number will not appear immediately and people should continue to use +1.9.15 for production systems (see next point.) +</LI> +<LI>Just after major changes are made the software is considered +unstable, and a series of alpha releases are distributed, for example +1.9.16alpha1. These are for testing by those who know what they are +doing. The "alpha" in the filename will hopefully scare off those who +are just looking for the latest version to install. +</LI> +<LI>When Andrew thinks that the alphas have stabilised to the point +where he would recommend new users install it, he renames it to the +same version number without the alpha, for example 1.9.17. +</LI> +<LI>Inevitably bugs are found in the "stable" releases and minor patch +levels are released which give us the pXX series, for example 1.9.17p2. +</LI> +</OL> +</P> +<P>So the progression goes:</P> +<P> +<PRE> + 1.9.16p10 (production) + 1.9.16p11 (production) + 1.9.17alpha1 (test sites only) + : + 1.9.17alpha20 (test sites only) + 1.9.17 (production) + 1.9.17p1 (production) +</PRE> +</P> +<P>The above system means that whenever someone looks at the samba ftp +site they will be able to grab the highest numbered release without an +alpha in the name and be sure of getting the current recommended +version.</P> + + +<H2><A NAME="ss2.5">2.5 Where can I go for further information?</A></H2> + +<P> +<A NAME="more"></A> +</P> +<P>There are a number of places to look for more information on Samba, +including:</P> +<P> +<UL> +<LI>Two mailing lists devoted to discussion of Samba-related matters. +See below for subscription information. +</LI> +<LI>The newsgroup comp.protocols.smb, which has a great deal of +discussion about Samba. +</LI> +<LI>The WWW site 'SAMBA Web Pages' at +<A HREF="http://samba.org/samba/">http://samba.org/samba/</A> includes: + +<UL> +<LI>Links to man pages and documentation, including this FAQ</LI> +<LI>A comprehensive survey of Samba users</LI> +<LI>A searchable hypertext archive of the Samba mailing list</LI> +<LI>Links to Samba source code, binaries, and mirrors of both</LI> +<LI>This FAQ and the rest in its family</LI> +</UL> + +</LI> +</UL> +</P> + + +<H2><A NAME="ss2.6">2.6 How do I subscribe to the Samba Mailing Lists?</A></H2> + +<P> +<A NAME="mailinglist"></A> +</P> +<P>Send email to +<A HREF="mailto:listproc@samba.org">listproc@samba.org</A>. Make sure the subject line is blank, +and include the following two lines in the body of the message:</P> +<P> +<BLOCKQUOTE><CODE> +<PRE> +subscribe samba Firstname Lastname +subscribe samba-announce Firstname Lastname +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>Obviously you should substitute YOUR first name for "Firstname" and +YOUR last name for "Lastname"! Try not to send any signature, it +sometimes confuses the list processor.</P> +<P>The samba list is a digest list - every eight hours or so it sends a +single message containing all the messages that have been received by +the list since the last time and sends a copy of this message to all +subscribers. There are thousands of people on this list.</P> +<P>If you stop being interested in Samba, please send another email to +<A HREF="mailto:listproc@samba.org">listproc@samba.org</A>. Make sure the subject line is blank, and +include the following two lines in the body of the message:</P> +<P> +<BLOCKQUOTE><CODE> +<PRE> +unsubscribe samba +unsubscribe samba-announce +</PRE> +</CODE></BLOCKQUOTE> +</P> +<P>The <B>From:</B> line in your message <EM>MUST</EM> be the same +address you used when you subscribed.</P> + + +<H2><A NAME="ss2.7">2.7 Something's gone wrong - what should I do?</A></H2> + +<P> +<A NAME="wrong"></A> +</P> +<P><B><F>#</F> *** IMPORTANT! *** <F>#</F></B></P> + +<P>DO NOT post messages on mailing lists or in newsgroups until you have +carried out the first three steps given here!</P> +<P> +<OL> +<LI> See if there are any likely looking entries in this FAQ! +If you have just installed Samba, have you run through the checklist in +<A HREF="ftp://samba.org/pub/samba/DIAGNOSIS.txt">DIAGNOSIS.txt</A>? It can save you a lot of time and effort. +DIAGNOSIS.txt can also be found in the docs directory of the Samba +distribution. +</LI> +<LI> Read the man pages for smbd, nmbd and smb.conf, looking for +topics that relate to what you are trying to do. +</LI> +<LI> If there is no obvious solution to hand, try to get a look at +the log files for smbd and/or nmbd for the period during which you +were having problems. You may need to reconfigure the servers to +provide more extensive debugging information - usually level 2 or +level 3 provide ample debugging info. Inspect these logs closely, +looking particularly for the string "Error:". +</LI> +<LI> If you need urgent help and are willing to pay for it see +<A HREF="#PaidSupport">Paid Support</A>. +</LI> +</OL> +</P> +<P>If you still haven't got anywhere, ask the mailing list or newsgroup. In +general nobody minds answering questions provided you have followed the +preceding steps. It might be a good idea to scan the archives of the +mailing list, which are available through the Samba web site described +in the previous section. When you post be sure to include a good +description of your environment and your problem.</P> +<P>If you successfully solve a problem, please mail the FAQ maintainer a +succinct description of the symptom, the problem and the solution, so +that an explanation can be incorporated into the next version.</P> + + +<H2><A NAME="ss2.8">2.8 How do I submit patches or bug reports?</A></H2> + + +<P>If you make changes to the source code, <EM>please</EM> submit these patches +so that everyone else gets the benefit of your work. This is one of +the most important aspects to the maintainence of Samba. Send all +patches to +<A HREF="mailto:samba@samba.org">samba@samba.org</A>. Do not send patches to Andrew Tridgell or any +other individual, they may be lost if you do.</P> +<P>Patch format +------------</P> +<P>If you are sending a patch to fix a problem then please don't just use +standard diff format. As an example, samba@samba.org received this patch from +someone:</P> +<P>382a +#endif +.. +381a +#if !defined(NEWS61)</P> +<P>How are we supposed to work out what this does and where it goes? These +sort of patches only work if we both have identical files in the first +place. The Samba sources are constantly changing at the hands of multiple +developers, so it doesn't work.</P> +<P>Please use either context diffs or (even better) unified diffs. You +get these using "diff -c4" or "diff -u". If you don't have a diff that +can generate these then please send manualy commented patches to I +know what is being changed and where. Most patches are applied by hand so +the info must be clear.</P> +<P>This is a basic guideline that will assist us with assessing your problem +more efficiently :</P> +<P>Machine Arch: +Machine OS: +OS Version: +Kernel:</P> +<P>Compiler: +Libc Version:</P> +<P>Samba Version:</P> +<P>Network Layout (description):</P> +<P>What else is on machine (services, etc):</P> +<P>Some extras :</P> +<P> +<UL> +<LI> what you did and what happened +</LI> +<LI> relevant parts of a debugging output file with debuglevel higher. +If you can't find the relevant parts, please ask before mailing +huge files. +</LI> +<LI> anything else you think is useful to trace down the bug +</LI> +</UL> +</P> + + +<H2><A NAME="ss2.9">2.9 What if I have an URGENT message for the developers?</A></H2> + + +<P>If you have spotted something very serious and believe that it is +important to contact the developers quickly send a message to +samba-urgent@samba.org. This will be processed more quickly than +mail to samba@samba.org. Please think carefully before using this address. An +example of its use might be to report a security hole.</P> +<P>Examples of things <EM>not</EM> to send to samba-urgent include problems +getting Samba to work at all and bugs that cannot potentially cause damage.</P> + + +<H2><A NAME="ss2.10">2.10 What if I need paid-for support?</A></H2> + +<P> +<A NAME="PaidSupport"></A> +</P> +<P>Samba has a large network of consultants who provide Samba support on a +commercial basis. The list is included in the package in +<A HREF="../Support.txt">../Support.txt</A>, and the latest version will always be on the main +samba ftp site. Any company in the world can request that the samba team +include their details in Support.txt so we can give no guarantee of +their services.</P> + + +<H2><A NAME="ss2.11">2.11 Pizza supply details</A></H2> + +<P> +<A NAME="pizza"></A> + +Those who have registered in the Samba survey as "Pizza Factory" will +already know this, but the rest may need some help. Andrew doesn't ask +for payment, but he does appreciate it when people give him +pizza. This calls for a little organisation when the pizza donor is +twenty thousand kilometres away, but it has been done.</P> +<P> +<OL> +<LI> Ring up your local branch of an international pizza chain +and see if they honour their vouchers internationally. Pizza Hut do, +which is how the entire Canberra Linux Users Group got to eat pizza +one night, courtesy of someone in the US. +</LI> +<LI>Ring up a local pizza shop in Canberra and quote a credit +card number for a certain amount, and tell them that Andrew will be +collecting it (don't forget to tell him.) One kind soul from Germany +did this. +</LI> +<LI>Purchase a pizza voucher from your local pizza shop that has +no international affiliations and send it to Andrew. It is completely +useless but he can hang it on the wall next to the one he already has +from Germany :-) +</LI> +<LI>Air freight him a pizza with your favourite regional +flavours. It will probably get stuck in customs or torn apart by +hungry sniffer dogs but it will have been a noble gesture. +</LI> +</OL> +</P> + + +<HR> +<A HREF="Samba-meta-FAQ-1.html">Previous</A> +<A HREF="Samba-meta-FAQ-3.html">Next</A> +<A HREF="Samba-meta-FAQ.html#toc2">Table of Contents</A> +</BODY> +</HTML> diff --git a/docs/faq/Samba-meta-FAQ-3.html b/docs/faq/Samba-meta-FAQ-3.html new file mode 100644 index 0000000000..8ebb38a334 --- /dev/null +++ b/docs/faq/Samba-meta-FAQ-3.html @@ -0,0 +1,101 @@ +<HTML> +<HEAD> +<TITLE> Samba meta FAQ: About the CIFS and SMB Protocols</TITLE> +</HEAD> +<BODY> +<A HREF="Samba-meta-FAQ-2.html">Previous</A> +<A HREF="Samba-meta-FAQ-4.html">Next</A> +<A HREF="Samba-meta-FAQ.html#toc3">Table of Contents</A> +<HR> +<H2><A NAME="s3">3. About the CIFS and SMB Protocols</A></H2> + +<P> +<A NAME="CifsSmb"></A> +</P> + +<H2><A NAME="ss3.1">3.1 What is the Server Message Block (SMB) Protocol?</A></H2> + +<P>SMB is a filesharing protocol that has had several maintainers and +contributors over the years including Xerox, 3Com and most recently +Microsoft. Names for this protocol include LAN Manager and Microsoft +Networking. Parts of the specification has been made public at several +versions including in an X/Open document, as listed at +<A HREF="ftp://ftp.microsoft.com/developr/drg/CIFS/">ftp://ftp.microsoft.com/developr/drg/CIFS/</A>. No specification +releases were made between 1992 and 1996, and during that period +Microsoft became the SMB implementor with the largest market share. +Microsoft developed the specification further for its products but for +various reasons connected with developer's workload rather than market +strategy did not make the changes public. This culminated with the +"Windows NT 0.12" version released with NT 3.5 in 1995 which had significant +improvements and bugs. Because Microsoft client systems are so popular, +it is fair to say that what Microsoft with Windows affects all suppliers +of SMB server products.</P> +<P>From 1994 Andrew Tridgell began doing some serious work on his +Smbserver (now Samba) product and with some helpers started to +implement more and more of these protocols. Samba began to take +a significant share of the SMB server market.</P> + + +<H2><A NAME="ss3.2">3.2 What is the Common Internet Filesystem (CIFS)?</A></H2> + +<P>The initial pressure for Microsoft to document their current SMB +implementation came from the Samba team, who kept coming across things +on the wire that Microsoft either didn't know about or hadn't documented +anywhere (even in the sourcecode to Windows NT.) Then Sun Microsystems +came out with their WebNFS initiative, designed to replace FTP for file +transfers on the Internet. There are many drawbacks to WebNFS (including +its scope - it aims to replace HTTP as well!) but the concept was +attractive. FTP is not very clever, and why should it be harder to get +files from across the world than across the room? </P> +<P>Some hasty revisions were made and an Internet Draft for the Common +Internet Filesystem (CIFS) was released. Note that CIFS is not an +Internet standard and is a very long way from becoming one, BUT the +protocol specification is in the public domain and ongoing discussions +concerning the spec take place on a public mailing list according to the +rules of the Internet Engineering Task Force. For more information and +pointers see +<A HREF="http://samba.org/cifs/">http://samba.org/cifs/</A></P> +<P>The following is taken from +<A HREF="http://www.microsoft.com/intdev/cifs/">http://www.microsoft.com/intdev/cifs/</A></P> +<P> +<PRE> + CIFS defines a standard remote file system access protocol for use + over the Internet, enabling groups of users to work together and + share documents across the Internet or within their corporate + intranets. CIFS is an open, cross-platform technology based on the + native file-sharing protocols built into Microsoft® Windows® and + other popular PC operating systems, and supported on dozens of + other platforms, including UNIX®. With CIFS, millions of computer + users can open and share remote files on the Internet without having + to install new software or change the way they work." +</PRE> +</P> +<P>If you consider CIFS as a backwardsly-compatible refinement of SMB that +will work reasonably efficiently over the Internet you won't be too far +wrong.</P> +<P>The net effect is that Microsoft is now documenting large parts of their +Windows NT fileserver protocols. The security concepts embodied in +Windows NT are part of the specification, which is why Samba +documentation often talks in terms of Windows NT. However there is no +reason why a site shouldn't conduct all its file and printer sharing +with CIFS and yet have no Microsoft products at all.</P> + + +<H2><A NAME="ss3.3">3.3 What is Browsing? </A></H2> + +<P>The term "Browsing" causes a lot of confusion. It is the part of the +SMB/CIFS protocol which allows for resource discovery. For example, in +the Windows NT Explorer it is possible to see a "Network Neighbourhood" +of computers in the same SMB workgroup. Clicking on the name of one of +these machines brings up a list of file and printer resources for +connecting to. In this way you can cruise the network, seeing what +things are available. How this scales to the Internet is a subject for +debate. Look at the CIFS list archives to see what the experts think.</P> + + +<HR> +<A HREF="Samba-meta-FAQ-2.html">Previous</A> +<A HREF="Samba-meta-FAQ-4.html">Next</A> +<A HREF="Samba-meta-FAQ.html#toc3">Table of Contents</A> +</BODY> +</HTML> diff --git a/docs/faq/Samba-meta-FAQ-4.html b/docs/faq/Samba-meta-FAQ-4.html new file mode 100644 index 0000000000..73a9eea847 --- /dev/null +++ b/docs/faq/Samba-meta-FAQ-4.html @@ -0,0 +1,215 @@ +<HTML> +<HEAD> +<TITLE> Samba meta FAQ: Designing A SMB and CIFS Network</TITLE> +</HEAD> +<BODY> +<A HREF="Samba-meta-FAQ-3.html">Previous</A> +<A HREF="Samba-meta-FAQ-5.html">Next</A> +<A HREF="Samba-meta-FAQ.html#toc4">Table of Contents</A> +<HR> +<H2><A NAME="s4">4. Designing A SMB and CIFS Network</A></H2> + + +<P>The big issues for installing any network of LAN or WAN file and print +servers are </P> +<P> +<UL> +<LI>How and where usernames, passwords and other security information +is stored +</LI> +<LI>What method can be used for locating the resources that users have +permission to use +</LI> +<LI>What protocols the clients can converse with +</LI> +</UL> + </P> +<P>If you buy Netware, Windows NT or just about any other LAN fileserver +product you are expected to lock yourself into the product's preferred +answers to these questions. This tendancy is restrictive and often very +expensive for a site where there is only one kind of client or server, +and for sites with a mixture of operating systems it often makes it +impossible to share resources between some sets of users.</P> +<P>The Samba philosophy is to make things as easy as possible for +administators, which means allowing as many combinations of clients, +servers, operating systems and protocols as possible.</P> + +<H2><A NAME="ss4.1">4.1 Workgroups, Domains, Authentication and Browsing</A></H2> + + +<P>From the point of view of networking implementation, Domains and +Workgroups are <EM>exactly</EM> the same, except for the client logon +sequence. Some kind of distributed authentication database is associated +with a domain (there are quite a few choices) and this adds so much +flexibility that many people think of a domain as a completely different +entity to a workgroup. From Samba's point of view a client connecting to +a service presents an authentication token, and it if it is valid they +have access. Samba does not care what mechanism was used to generate +that token in the first place.</P> +<P>The SMB client logging on to a domain has an expectation that every other +server in the domain should accept the same authentication information. +However the network browsing functionality of domains and workgroups is +identical and is explained in +<A HREF="../BROWSING.txt">../BROWSING.txt</A>.</P> +<P>There are some implementation differences: Windows 95 can be a member of +both a workgroup and a domain, but Windows NT cannot. Windows 95 also +has the concept of an "alternative workgroup". Samba can only be a +member of a single workgroup or domain, although this is due to change +with a future version when nmbd will be split into two daemons, one for +WINS and the other for browsing ( +<A HREF="../NetBIOS.txt">../NetBIOS.txt</A> explains +what WINS is.)</P> + +<H3>Defining the Terms</H3> + +<P> +<A NAME="BrowseAndDomainDefs"></A> +</P> +<P> +<DL> + +<DT><B>Workgroup</B><DD><P>means a collection of machines that maintain a common +browsing database containing information about their shared resources. +They do not necessarily have any security information in common (if they +do, it gets called a Domain.) The browsing database is dynamic, modified +as servers come and go on the network and as resources are added or +deleted. The term "browsing" refers to a user accessing the database via +whatever interface the client provides, eg the OS/2 Workplace Shell or +Windows 95 Explorer. SMB servers agree between themselves as to which +ones will maintain the browsing database. Workgroups can be anywhere on +a connected TCP/IP network, including on different subnets or even on +the Interet. This is a very tricky part of SMB to implement.</P> + +<DT><B>Master Browsers</B><DD><P>are machines which holds the master browsing +database for a workgroup or domain. There are two kinds of Master Browser:</P> +<P> +<UL> +<LI> Domain Master Browser, which holds the master browsing +information for an entire domain, which may well cross multiple TCP/IP +subnets. +</LI> +<LI> Local Master Browser, which holds the master browsing database +for a particular subnet and communicates with the Domain Master Browser +to get information on other subnets. +</LI> +</UL> +</P> +<P>Subnets are differentiated because browsing is based on broadcasts, and +broadcasts do not pass through routers. Subnets are not routed: while it +is possible to have more than one subnet on a single network segment +this is regarded as very bad practice.</P> +<P>Master Browsers (both Domain and Local) are elected dynamically +according to an algorithm which is supposed to take into account the +machine's ability to sustain the browsing load. Samba can be configured +to always act as a master browser, ie it always wins elections under all +circumstances, even against systems such as a Windows NT Primary Domain +Controller which themselves expect to win. </P> +<P>There are also Backup Browsers which are promoted to Master Browsers in +the event of a Master Browser disappearing from the network.</P> +<P>Alternative terms include confusing variations such as "Browse Master", +and "Master Browser" which we are trying to eliminate from the Samba +documentation. </P> + +<DT><B>Domain Controller</B><DD><P>is a term which comes from the Microsoft and IBM +etc implementation of the LAN Manager protocols. It is tied to +authentication. There are other ways of doing domain authentication, but +the Windows NT method has a large market share. The general issues are +discussed in +<A HREF="../DOMAIN.txt">../DOMAIN.txt</A> and a Windows NT-specific +discussion is in +<A HREF="../DOMAIN_CONTROL.txt">../DOMAIN_CONTROL.txt</A>.</P> + +</DL> +</P> + +<H3>Sharelevel (Workgroup) Security Services</H3> + +<P> +<A NAME="ShareModeSecurity"></A> +</P> +<P>With the Samba setting "security = SHARE", all shared resources +information about what password is associated with them but only hints +as to what usernames might be valid (the hint can be 'all users', in +which case any username will work. This is usually a bad idea, but +reflects both the initial implementations of SMB in the mid-80s and +its reincarnation with Windows for Workgroups in 1992. The idea behind +workgroup security was that small independant groups of people could +share information on an ad-hoc basis without there being an +authentication infrastructure present or requiring them to do more than +fill in a dialogue box.</P> + +<H3>Authentication Domain Mode Services</H3> + +<P> +<A NAME="DomainModeSecurity"></A> +</P> +<P>With the Samba settings "security = USER" or "security = SERVER" +accesses to all resources are checked for username/password pair matches +in a more rigorous manner. To the client, this has the effect of +emulating a Microsoft Domain. The client is not concerned whether or not +Samba looks up a Windows NT SAM or does it in some other way.</P> + + +<H2><A NAME="ss4.2">4.2 Authentication Schemes</A></H2> + + +<P>In the simple case authentication information is stored on a single +server and the user types a password on connecting for the first time. +However client operating systems often require a password before they +can be used at all, and in addition users usually want access to more +than one server. Asking users to remember many different passwords in +different contexts just does not work. Some kind of distributed +authentication database is needed. It must cope with password changes +and provide for assigning groups of users the same level of access +permissions. This is why Samba installations often choose to implement a +Domain model straight away.</P> +<P>Authentication decisions are some of the biggest in designing a network. +Are you going to use a scheme native to the client operating system, +native to the server operating system, or newly installed on both? A +list of options relevant to Samba (ie that make sense in the context of +the SMB protocol) follows. Any experiences with other setups would be +appreciated. <F>refer to server FAQ for "passwd chat" passwd program +password server etc etc...</F></P> + +<H3>NIS</H3> + + +<P>For Windows 95, Windows for Workgroups and most other clients Samba can +be a domain controller and share the password database via NIS +transparently. Windows NT is different. +<A HREF="http://www.dcs.qmw.ac.uk/~williams">Free NIS NT client</A></P> + +<H3>Kerberos</H3> + + +<P>Kerberos for US users only: +<A HREF="http://www.cygnus.com/product/unifying-security.html">Kerberos overview</A> +<A HREF="http://www.cygnus.com/product/kerbnet-download.html">Download Kerberos</A></P> + +<H3>FTP</H3> + + +<P>Other NT w/s logon hack via NT</P> + +<H3>Default Server Method</H3> + + + +<H3>Client-side Database Only</H3> + + + + +<H2><A NAME="ss4.3">4.3 Post-Authentication: Netlogon, Logon Scripts, Profiles</A></H2> + + +<P>See +<A HREF="../DOMAIN.txt">../DOMAIN.txt</A></P> + + +<HR> +<A HREF="Samba-meta-FAQ-3.html">Previous</A> +<A HREF="Samba-meta-FAQ-5.html">Next</A> +<A HREF="Samba-meta-FAQ.html#toc4">Table of Contents</A> +</BODY> +</HTML> diff --git a/docs/faq/Samba-meta-FAQ-5.html b/docs/faq/Samba-meta-FAQ-5.html new file mode 100644 index 0000000000..ad528b0a97 --- /dev/null +++ b/docs/faq/Samba-meta-FAQ-5.html @@ -0,0 +1,30 @@ +<HTML> +<HEAD> +<TITLE> Samba meta FAQ: Cross-Protocol File Sharing</TITLE> +</HEAD> +<BODY> +<A HREF="Samba-meta-FAQ-4.html">Previous</A> +<A HREF="Samba-meta-FAQ-6.html">Next</A> +<A HREF="Samba-meta-FAQ.html#toc5">Table of Contents</A> +<HR> +<H2><A NAME="s5">5. Cross-Protocol File Sharing</A></H2> + + +<P>Samba is an important tool for...</P> +<P>It is possible to...</P> +<P>File protocol gateways...</P> +<P>"Setting up a Linux File Server" http://vetrec.mit.edu/people/narf/linux.html</P> +<P>Two free implementations of Appletalk for Unix are Netatalk, +<A HREF="http://www.umich.edu/~rsug/netatalk/">http://www.umich.edu/~rsug/netatalk/</A>, and CAP, +<A HREF="http://www.cs.mu.oz.au/appletalk/atalk.html">http://www.cs.mu.oz.au/appletalk/atalk.html</A>. What Samba offers MS +Windows users, these packages offer to Macs. For more info on these +packages, Samba, and Linux (and other UNIX-based systems) see +<A HREF="http://www.eats.com/linux_mac_win.html">http://www.eats.com/linux_mac_win.html</A> 3.5) Sniffing your nework</P> + + +<HR> +<A HREF="Samba-meta-FAQ-4.html">Previous</A> +<A HREF="Samba-meta-FAQ-6.html">Next</A> +<A HREF="Samba-meta-FAQ.html#toc5">Table of Contents</A> +</BODY> +</HTML> diff --git a/docs/faq/Samba-meta-FAQ-6.html b/docs/faq/Samba-meta-FAQ-6.html new file mode 100644 index 0000000000..f8cd7817d6 --- /dev/null +++ b/docs/faq/Samba-meta-FAQ-6.html @@ -0,0 +1,30 @@ +<HTML> +<HEAD> +<TITLE> Samba meta FAQ: Miscellaneous</TITLE> +</HEAD> +<BODY> +<A HREF="Samba-meta-FAQ-5.html">Previous</A> +Next +<A HREF="Samba-meta-FAQ.html#toc6">Table of Contents</A> +<HR> +<H2><A NAME="s6">6. Miscellaneous</A></H2> + +<P> +<A NAME="miscellaneous"></A> +</P> +<H2><A NAME="ss6.1">6.1 Is Samba Year 2000 compliant?</A></H2> + +<P> +<A NAME="Year2000Compliant"></A> + +The CIFS protocol that Samba implements +negotiates times in various formats, all of which +are able to cope with dates beyond 2000.</P> + + +<HR> +<A HREF="Samba-meta-FAQ-5.html">Previous</A> +Next +<A HREF="Samba-meta-FAQ.html#toc6">Table of Contents</A> +</BODY> +</HTML> diff --git a/docs/faq/Samba-meta-FAQ.html b/docs/faq/Samba-meta-FAQ.html new file mode 100644 index 0000000000..38f094bf33 --- /dev/null +++ b/docs/faq/Samba-meta-FAQ.html @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<HTML> +<HEAD> +<TITLE> Samba meta FAQ</TITLE> +</HEAD> +<BODY> +Previous +<A HREF="Samba-meta-FAQ-1.html">Next</A> +Table of Contents +<HR> +<H1> Samba meta FAQ</H1> + +<H2>Dan Shearer & Paul Blackman, <CODE>ictinus@samba.org</CODE></H2>v 0.3, 7 Oct '97 +<P><HR><EM> This is the meta-Frequently Asked Questions (FAQ) document +for Samba, the free and very popular SMB and CIFS server product. It +contains overview information for the Samba suite of programs, a +quick-start guide, and pointers to all other Samba documentation. Other +FAQs exist for specific client and server issues, and HOWTO documents +for more extended topics to do with Samba software. Current to version +Samba 1.9.17. Please send any corrections to the author. </EM><HR></P> +<P> +<H2><A NAME="toc1">1.</A> <A HREF="Samba-meta-FAQ-1.html">Quick Reference Guides to Samba Documentation</A></H2> +<UL> +<LI><A HREF="Samba-meta-FAQ-1.html#ss1.1">1.1 Samba for the Impatient</A> +<LI><A HREF="Samba-meta-FAQ-1.html#ss1.2">1.2 All Samba Documentation</A> +</UL> + +<P> +<H2><A NAME="toc2">2.</A> <A HREF="Samba-meta-FAQ-2.html">General Information</A></H2> +<UL> +<LI><A HREF="Samba-meta-FAQ-2.html#ss2.1">2.1 What is Samba?</A> +<LI><A HREF="Samba-meta-FAQ-2.html#ss2.2">2.2 What is the current version of Samba?</A> +<LI><A HREF="Samba-meta-FAQ-2.html#ss2.3">2.3 Where can I get it? </A> +<LI><A HREF="Samba-meta-FAQ-2.html#ss2.4">2.4 What do the version numbers mean?</A> +<LI><A HREF="Samba-meta-FAQ-2.html#ss2.5">2.5 Where can I go for further information?</A> +<LI><A HREF="Samba-meta-FAQ-2.html#ss2.6">2.6 How do I subscribe to the Samba Mailing Lists?</A> +<LI><A HREF="Samba-meta-FAQ-2.html#ss2.7">2.7 Something's gone wrong - what should I do?</A> +<LI><A HREF="Samba-meta-FAQ-2.html#ss2.8">2.8 How do I submit patches or bug reports?</A> +<LI><A HREF="Samba-meta-FAQ-2.html#ss2.9">2.9 What if I have an URGENT message for the developers?</A> +<LI><A HREF="Samba-meta-FAQ-2.html#ss2.10">2.10 What if I need paid-for support?</A> +<LI><A HREF="Samba-meta-FAQ-2.html#ss2.11">2.11 Pizza supply details</A> +</UL> + +<P> +<H2><A NAME="toc3">3.</A> <A HREF="Samba-meta-FAQ-3.html">About the CIFS and SMB Protocols</A></H2> +<UL> +<LI><A HREF="Samba-meta-FAQ-3.html#ss3.1">3.1 What is the Server Message Block (SMB) Protocol?</A> +<LI><A HREF="Samba-meta-FAQ-3.html#ss3.2">3.2 What is the Common Internet Filesystem (CIFS)?</A> +<LI><A HREF="Samba-meta-FAQ-3.html#ss3.3">3.3 What is Browsing? </A> +</UL> + +<P> +<H2><A NAME="toc4">4.</A> <A HREF="Samba-meta-FAQ-4.html">Designing A SMB and CIFS Network</A></H2> +<UL> +<LI><A HREF="Samba-meta-FAQ-4.html#ss4.1">4.1 Workgroups, Domains, Authentication and Browsing</A> +<LI><A HREF="Samba-meta-FAQ-4.html#ss4.2">4.2 Authentication Schemes</A> +<LI><A HREF="Samba-meta-FAQ-4.html#ss4.3">4.3 Post-Authentication: Netlogon, Logon Scripts, Profiles</A> +</UL> + +<P> +<H2><A NAME="toc5">5.</A> <A HREF="Samba-meta-FAQ-5.html">Cross-Protocol File Sharing</A></H2> + +<P> +<H2><A NAME="toc6">6.</A> <A HREF="Samba-meta-FAQ-6.html">Miscellaneous</A></H2> +<UL> +<LI><A HREF="Samba-meta-FAQ-6.html#ss6.1">6.1 Is Samba Year 2000 compliant?</A> +</UL> + + +<HR> +Previous +<A HREF="Samba-meta-FAQ-1.html">Next</A> +Table of Contents +</BODY> +</HTML> diff --git a/docs/faq/Samba-meta-FAQ.sgml b/docs/faq/Samba-meta-FAQ.sgml new file mode 100644 index 0000000000..ecaa1b267c --- /dev/null +++ b/docs/faq/Samba-meta-FAQ.sgml @@ -0,0 +1,644 @@ +<!doctype linuxdoc system> <!-- -*- SGML -*- --> +<!-- + v 0.1 23 Aug 1997 Dan Shearer + Original Samba-meta-FAQ.sgml from Paul's sambafaq.sgml + v 0.2 25 Aug 1997 Dan + v 0.3 7 Oct 1997 Paul + Changed samba.canberra refs to samba.anu.../samba/ +--> + +<article> + +<title> Samba meta FAQ + +<author>Dan Shearer & Paul Blackman, <tt>ictinus@samba.org</tt> + +<date>v 0.3, 7 Oct '97 + +<abstract> This is the meta-Frequently Asked Questions (FAQ) document +for Samba, the free and very popular SMB and CIFS server product. It +contains overview information for the Samba suite of programs, a +quick-start guide, and pointers to all other Samba documentation. Other +FAQs exist for specific client and server issues, and HOWTO documents +for more extended topics to do with Samba software. Current to version +Samba 1.9.17. Please send any corrections to the author. +</abstract> + +<toc> + +<sect> Quick Reference Guides to Samba Documentation<p><label id=quickref> + +We are endeavouring to provide links here to every major class of +information about Samba or things related to Samba. We cannot list every +document, but we are aiming for all documents to be at most two +referrals from those listed here. This needs constant maintaining, so +please send the author your feedback. + +<sect1> Samba for the Impatient<p><label id="impatient"> + +You know you should read the documentation but can't wait to start? What +you need to do then is follow the instructions in the following +documents in the order given. This should be enough to get a fairly +simple site going quickly. If you have any problems, refer back to this +meta-FAQ and follow the links to find more reading material. + +<descrip> + +<label id="ImpGet"><tag/Getting Samba:/ The fastest way to get Samba +going is and install it is to have an operating system for which the +Samba team has put together an installation package. To see if your OS +is included have a look at the directory +/pub/samba/Binary_Packages/"OS_Vendor" on your nearest <url +url="../MIRRORS" name="mirror site">. If it is included follow the +installation instructions in the README file there and then do some <ref id="ImpTest" +name="basic testing">. If you are not so fortunate, follow the normal <ref +id="WhereFrom" name="download instructions"> and then continue with <ref +id="ImpInst" name="building and installing Samba">. + +<label id="ImpInst"><tag/Building and Installing Samba:/ At the moment +there are two kinds of Samba server installs besides the prepackaged +binaries mentioned in the previous step. You need to decide if you have a <url url="../UNIX_INSTALL.txt" +name="Unix or close relative"> or <url +url="Samba-Server-FAQ.html#PortInfo" name="other supported operating system">. + +<label id="ImpTest"><tag/Basic Testing:/ Try to connect using the +supplied smbclient command-line program. You need to know the IP +hostname of your server. A service name must be defined in smb.conf, as +given in the examples (under many operating systems if there is a +[homes] service you can just use a valid username.) Then type +<tt> + smbclient \\hostname\servicename +</tt> +Under most Unixes you will need to put the parameters within quotation +marks. If this works, try connecting from one of the SMB clients you +were planning to use with Samba. + +<label id="ImpDebug"><tag/Debug sequence:/ If you think you have completed the +previous step and things aren't working properly work through +<url url="../DIAGNOSIS.txt" name="the diagnosis recipe."> + +<label id="ImpExp"><tag/Exporting files to SMB clients:/ You should read the manual pages +for smb.conf, but here is a <url url="Samba-Server-FAQ.html#Exporting" +name="quick answer guide."> + +<label id="ImpControl"><tag/Controlling user access:/ the quickest and dirtiest way of sharing +resources is to use <ref id="ShareModeSecurity" name="share level +security."> If you want to spend more time and have a proper username +and password database you must read the paragraph on <ref +id="DomainModeSecurity" name="domain mode security."> If you want +encryption (eg you are using Windows NT clients) follow the <url +url="Samba-Server-FAQ.html#SMBEncryptionSteps" name="SMB encryption +instructions."> + +<label id="ImpBrowse"><tag/Browsing:/ if you are happy to type in "\\samba-server\sharename" +at the client end then do not read any further. Otherwise you need to +understand the <ref id="BrowsingDefinitions" name="browsing terminology"> +and read <url url="Samba-Server-FAQ.html#NameBrowsing">. + +<label id="ImpPrint"><tag/Printing:/ See the <url url="Samba-Server-FAQ.html#Printing" +name="printing quick answer guide."> + +</descrip> + +If you have got everything working to this point, you can expect Samba +to be stable and secure: these are its greatest strengths. However Samba +has a great deal to offer and to go further you must do some more +reading. Speed and security optimisations, printer accounting, network +logons, roving profiles, browsing across multiple subnets and so on are +all covered either in this document or in those it refers to. + +<sect1> All Samba Documentation<p><label id=AllDocs> + +<itemize> + +<item> Meta-FAQ. This is the mother of all documents, and is the one you +are reading now. The latest version is always at <url +url="http://samba.org/[.....]"> but there is probably a much +nearer <url url="../MIRRORS" name="mirror site"> which you should use +instead. + +<item> <url url="Samba-Server-FAQ.html"> is the best starting point for +information about server-side issues. Includes configuration tips and +pointers for Samba on particular operating systems (with 40 to choose +from...) + +<item> <url url="Samba-Client-FAQ.html"> is the best starting point for +information about client-side issues, includes a list of all clients +that are known to work with Samba. + +</itemize> + +<sect> General Information<p><label id="general_info"> + +All about Samba - what it is, how to get it, related sources of +information, how to understand the numbering scheme, pizza +details. + +<sect1> What is Samba?<p><label id="introduction"> + +Samba is a suite of programs which work together to allow clients to +access to a server's filespace and printers via the SMB (Server Message +Block) and CIFS (Common Internet Filesystem) protocols. Initially +written for Unix, Samba now also runs on Netware, OS/2, VMS, StratOS and +Amigas. Ports to BeOS and other operating systems are underway. Samba +gives the capability for these operating systems to behave much like a +LAN Server, Windows NT Server or Pathworks machine, only with added +functionality and flexibility designed to make life easier for +administrators. + +This means that using Samba you can share a server's disks and printers +to many sorts of network clients, including Lan Manager, Windows for +Workgroups, Windows NT, Linux, OS/2, and AIX. There is also a generic +client program supplied as part of the Samba suite which gives a user on +the server an ftp-like interface to access filespace and printers on any +other SMB/CIFS servers. + +SMB has been implemented over many protocols, including XNS, NBT, IPX, +NetBEUI and TCP/IP. Samba only uses TCP/IP. This is not likely to change +although there have been some requests for NetBEUI support. + +Many users report that compared to other SMB implementations Samba is +more stable, faster, and compatible with more clients. Administrators of +some large installations say that Samba is the only SMB server available +which will scale to many tens of thousands of users without crashing. +The easy way to test these claims is to download it and try it for +yourself! + +The suite is supplied with full source code under the <url +url="../COPYING" name="GNU Public License">. The GPL means that you can +use Samba for whatever purpose you wish (including changing the source +or selling it for money) but under all circumstances the source code +must be made freely available. A copy of the GPL must always be included +in any copy of the package. + +The primary creator of the Samba suite is Andrew Tridgell. Later +versions incorporate much effort by many helpers. The man pages +and this FAQ were originally written by Karl Auer. + +<sect1> Where can I go for further information?<p><label id="more"> + +There are a number of places to look for more information on Samba, +including: + +<itemize> + +<item>The mailing lists devoted to discussion of Samba-related matters. +See below for subscription information. + +<item>The newsgroup comp.protocols.smb, which has a great deal of +discussion about Samba. + +<item>The WWW site 'SAMBA Web Pages' at <url +url="http://samba.org/samba/"> includes: + + <itemize> + <item>Links to man pages and documentation, including this FAQ + <item>A comprehensive survey of Samba users + <item>A searchable hypertext archive of the Samba mailing list + <item>Links to Samba source code, binaries, and mirrors of both + <item>This FAQ and the rest in its family + </itemize> + +</itemize> + +<sect1>How do I subscribe to the Samba Mailing Lists?<p><label id="mailinglist"> + +Surf to <url url="http://lists.samba.org/"> for an overview of all the mailing lists. + +<sect1> Something's gone wrong - what should I do?<p><label id="wrong"> + +<bf>[#] *** IMPORTANT! *** [#]</bf> +<p> + +DO NOT post messages on mailing lists or in newsgroups until you have +carried out the first three steps given here! + +<enum> <item> See if there are any likely looking entries in this FAQ! +If you have just installed Samba, have you run through the checklist in +<url url="ftp://samba.org/pub/samba/DIAGNOSIS.txt" +name="DIAGNOSIS.txt">? It can save you a lot of time and effort. +DIAGNOSIS.txt can also be found in the docs directory of the Samba +distribution. + +<item> Read the man pages for smbd, nmbd and smb.conf, looking for +topics that relate to what you are trying to do. + +<item> If there is no obvious solution to hand, try to get a look at +the log files for smbd and/or nmbd for the period during which you +were having problems. You may need to reconfigure the servers to +provide more extensive debugging information - usually level 2 or +level 3 provide ample debugging info. Inspect these logs closely, +looking particularly for the string "Error:". + +<item> If you need urgent help and are willing to pay for it see +<ref id="PaidSupport" name="Paid Support">. + +</enum> + +If you still haven't got anywhere, ask the mailing list or newsgroup. In +general nobody minds answering questions provided you have followed the +preceding steps. It might be a good idea to scan the archives of the +mailing list, which are available through the Samba web site described +in the previous section. When you post be sure to include a good +description of your environment and your problem. + +If you successfully solve a problem, please mail the FAQ maintainer a +succinct description of the symptom, the problem and the solution, so +that an explanation can be incorporated into the next version. + +<sect1> How do I submit patches or bug reports?<p> + +If you make changes to the source code, <em>please</em> submit these patches +so that everyone else gets the benefit of your work. This is one of +the most important aspects to the maintainence of Samba. Send all +patches to <htmlurl url="mailto:samba@samba.org" name="samba@samba.org">. Do not send patches to Andrew Tridgell or any +other individual, they may be lost if you do. + +Patch format +------------ + +If you are sending a patch to fix a problem then please don't just use +standard diff format. As an example, samba@samba.org received this patch from +someone: + +382a +#endif +.. +381a +#if !defined(NEWS61) + +How are we supposed to work out what this does and where it goes? These +sort of patches only work if we both have identical files in the first +place. The Samba sources are constantly changing at the hands of multiple +developers, so it doesn't work. + +Please use either context diffs or (even better) unified diffs. You +get these using "diff -c4" or "diff -u". If you don't have a diff that +can generate these then please send manualy commented patches to I +know what is being changed and where. Most patches are applied by hand so +the info must be clear. + +This is a basic guideline that will assist us with assessing your problem +more efficiently : + +Machine Arch: +Machine OS: +OS Version: +Kernel: + +Compiler: +Libc Version: + +Samba Version: + +Network Layout (description): + +What else is on machine (services, etc): + +Some extras : + +<itemize> + +<item> what you did and what happened + +<item> relevant parts of a debugging output file with debuglevel higher. + If you can't find the relevant parts, please ask before mailing + huge files. + +<item> anything else you think is useful to trace down the bug + +</itemize> + +<sect1> What if I have an URGENT message for the developers?<p> + +If you have spotted something very serious and believe that it is +important to contact the developers quickly send a message to +samba-urgent@samba.org. This will be processed more quickly than +mail to samba@samba.org. Please think carefully before using this address. An +example of its use might be to report a security hole. + +Examples of things <em>not</em> to send to samba-urgent include problems +getting Samba to work at all and bugs that cannot potentially cause damage. + +<sect1> What if I need paid-for support?<p><label id=PaidSupport> + +Samba has a large network of consultants who provide Samba support on a +commercial basis. The list is included in the package in <url +url="../Support.txt">, and the latest version will always be on the main +samba ftp site. Any company in the world can request that the samba team +include their details in Support.txt so we can give no guarantee of +their services. + +<sect1> Pizza supply details<p><label id="pizza"> +Those who have registered in the Samba survey as "Pizza Factory" will +already know this, but the rest may need some help. Andrew doesn't ask +for payment, but he does appreciate it when people give him +pizza. This calls for a little organisation when the pizza donor is +twenty thousand kilometres away, but it has been done. + +<enum> +<item> Ring up your local branch of an international pizza chain +and see if they honour their vouchers internationally. Pizza Hut do, +which is how the entire Canberra Linux Users Group got to eat pizza +one night, courtesy of someone in the US. + +<item>Ring up a local pizza shop in Canberra and quote a credit +card number for a certain amount, and tell them that Andrew will be +collecting it (don't forget to tell him.) One kind soul from Germany +did this. + +<item>Purchase a pizza voucher from your local pizza shop that has +no international affiliations and send it to Andrew. It is completely +useless but he can hang it on the wall next to the one he already has +from Germany :-) + +<item>Air freight him a pizza with your favourite regional +flavours. It will probably get stuck in customs or torn apart by +hungry sniffer dogs but it will have been a noble gesture. + +</enum> + +<sect>About the CIFS and SMB Protocols<p><label id="CifsSmb"> + +<sect1> What is the Server Message Block (SMB) Protocol?<p> +SMB is a filesharing protocol that has had several maintainers and +contributors over the years including Xerox, 3Com and most recently +Microsoft. Names for this protocol include LAN Manager and Microsoft +Networking. Parts of the specification has been made public at several +versions including in an X/Open document, as listed at +<url url="ftp://ftp.microsoft.com/developr/drg/CIFS/">. No specification +releases were made between 1992 and 1996, and during that period +Microsoft became the SMB implementor with the largest market share. +Microsoft developed the specification further for its products but for +various reasons connected with developer's workload rather than market +strategy did not make the changes public. This culminated with the +"Windows NT 0.12" version released with NT 3.5 in 1995 which had significant +improvements and bugs. Because Microsoft client systems are so popular, +it is fair to say that what Microsoft with Windows affects all suppliers +of SMB server products. + +From 1994 Andrew Tridgell began doing some serious work on his +Smbserver (now Samba) product and with some helpers started to +implement more and more of these protocols. Samba began to take +a significant share of the SMB server market. + +<sect1> What is the Common Internet Filesystem (CIFS)?<p> +The initial pressure for Microsoft to document their current SMB +implementation came from the Samba team, who kept coming across things +on the wire that Microsoft either didn't know about or hadn't documented +anywhere (even in the sourcecode to Windows NT.) Then Sun Microsystems +came out with their WebNFS initiative, designed to replace FTP for file +transfers on the Internet. There are many drawbacks to WebNFS (including +its scope - it aims to replace HTTP as well!) but the concept was +attractive. FTP is not very clever, and why should it be harder to get +files from across the world than across the room? + +Some hasty revisions were made and an Internet Draft for the Common +Internet Filesystem (CIFS) was released. Note that CIFS is not an +Internet standard and is a very long way from becoming one, BUT the +protocol specification is in the public domain and ongoing discussions +concerning the spec take place on a public mailing list according to the +rules of the Internet Engineering Task Force. For more information and +pointers see <url url="http://samba.org/cifs/"> + +The following is taken from <url url="http://www.microsoft.com/intdev/cifs/"> + +<verb> + CIFS defines a standard remote file system access protocol for use + over the Internet, enabling groups of users to work together and + share documents across the Internet or within their corporate + intranets. CIFS is an open, cross-platform technology based on the + native file-sharing protocols built into Microsoft® Windows® and + other popular PC operating systems, and supported on dozens of + other platforms, including UNIX®. With CIFS, millions of computer + users can open and share remote files on the Internet without having + to install new software or change the way they work." +</verb> + +If you consider CIFS as a backwardsly-compatible refinement of SMB that +will work reasonably efficiently over the Internet you won't be too far +wrong. + +The net effect is that Microsoft is now documenting large parts of their +Windows NT fileserver protocols. The security concepts embodied in +Windows NT are part of the specification, which is why Samba +documentation often talks in terms of Windows NT. However there is no +reason why a site shouldn't conduct all its file and printer sharing +with CIFS and yet have no Microsoft products at all. + +<sect1> What is Browsing? <p> +The term "Browsing" causes a lot of confusion. It is the part of the +SMB/CIFS protocol which allows for resource discovery. For example, in +the Windows NT Explorer it is possible to see a "Network Neighbourhood" +of computers in the same SMB workgroup. Clicking on the name of one of +these machines brings up a list of file and printer resources for +connecting to. In this way you can cruise the network, seeing what +things are available. How this scales to the Internet is a subject for +debate. Look at the CIFS list archives to see what the experts think. + +<sect>Designing A SMB and CIFS Network<p> + +The big issues for installing any network of LAN or WAN file and print +servers are + +<itemize> + +<item>How and where usernames, passwords and other security information +is stored + +<item>What method can be used for locating the resources that users have +permission to use + +<item>What protocols the clients can converse with + +</itemize> + +If you buy Netware, Windows NT or just about any other LAN fileserver +product you are expected to lock yourself into the product's preferred +answers to these questions. This tendancy is restrictive and often very +expensive for a site where there is only one kind of client or server, +and for sites with a mixture of operating systems it often makes it +impossible to share resources between some sets of users. + +The Samba philosophy is to make things as easy as possible for +administators, which means allowing as many combinations of clients, +servers, operating systems and protocols as possible. + +<sect1>Workgroups, Domains, Authentication and Browsing<p> + +From the point of view of networking implementation, Domains and +Workgroups are <em>exactly</em> the same, except for the client logon +sequence. Some kind of distributed authentication database is associated +with a domain (there are quite a few choices) and this adds so much +flexibility that many people think of a domain as a completely different +entity to a workgroup. From Samba's point of view a client connecting to +a service presents an authentication token, and it if it is valid they +have access. Samba does not care what mechanism was used to generate +that token in the first place. + +The SMB client logging on to a domain has an expectation that every other +server in the domain should accept the same authentication information. +However the network browsing functionality of domains and workgroups is +identical and is explained in <url url="../BROWSING.txt">. + +There are some implementation differences: Windows 95 can be a member of +both a workgroup and a domain, but Windows NT cannot. Windows 95 also +has the concept of an "alternative workgroup". Samba can only be a +member of a single workgroup or domain, although this is due to change +with a future version when nmbd will be split into two daemons, one for +WINS and the other for browsing (<url url="../NetBIOS.txt"> explains +what WINS is.) + +<sect2> Defining the Terms<p><label id="BrowseAndDomainDefs"> + +<descrip> + +<tag/Workgroup/ means a collection of machines that maintain a common +browsing database containing information about their shared resources. +They do not necessarily have any security information in common (if they +do, it gets called a Domain.) The browsing database is dynamic, modified +as servers come and go on the network and as resources are added or +deleted. The term "browsing" refers to a user accessing the database via +whatever interface the client provides, eg the OS/2 Workplace Shell or +Windows 95 Explorer. SMB servers agree between themselves as to which +ones will maintain the browsing database. Workgroups can be anywhere on +a connected TCP/IP network, including on different subnets or even on +the Interet. This is a very tricky part of SMB to implement. + +<tag/Master Browsers/ are machines which holds the master browsing +database for a workgroup or domain. There are two kinds of Master Browser: + +<itemize> + +<item> Domain Master Browser, which holds the master browsing +information for an entire domain, which may well cross multiple TCP/IP +subnets. + +<item> Local Master Browser, which holds the master browsing database +for a particular subnet and communicates with the Domain Master Browser +to get information on other subnets. + +</itemize> + +Subnets are differentiated because browsing is based on broadcasts, and +broadcasts do not pass through routers. Subnets are not routed: while it +is possible to have more than one subnet on a single network segment +this is regarded as very bad practice. + +Master Browsers (both Domain and Local) are elected dynamically +according to an algorithm which is supposed to take into account the +machine's ability to sustain the browsing load. Samba can be configured +to always act as a master browser, ie it always wins elections under all +circumstances, even against systems such as a Windows NT Primary Domain +Controller which themselves expect to win. + +There are also Backup Browsers which are promoted to Master Browsers in +the event of a Master Browser disappearing from the network. + +Alternative terms include confusing variations such as "Browse Master", +and "Master Browser" which we are trying to eliminate from the Samba +documentation. + +<tag/Domain Controller/ is a term which comes from the Microsoft and IBM +etc implementation of the LAN Manager protocols. It is tied to +authentication. There are other ways of doing domain authentication, but +the Windows NT method has a large market share. The general issues are +discussed in <url url="../DOMAIN.txt"> and a Windows NT-specific +discussion is in <url url="../DOMAIN_CONTROL.txt">. + +</descrip> + +<sect2>Sharelevel (Workgroup) Security Services<p><label id="ShareModeSecurity"> + +With the Samba setting "security = SHARE", all shared resources +information about what password is associated with them but only hints +as to what usernames might be valid (the hint can be 'all users', in +which case any username will work. This is usually a bad idea, but +reflects both the initial implementations of SMB in the mid-80s and +its reincarnation with Windows for Workgroups in 1992. The idea behind +workgroup security was that small independant groups of people could +share information on an ad-hoc basis without there being an +authentication infrastructure present or requiring them to do more than +fill in a dialogue box. + +<sect2>Authentication Domain Mode Services<p><label id="DomainModeSecurity"> + +With the Samba settings "security = USER" or "security = SERVER" +accesses to all resources are checked for username/password pair matches +in a more rigorous manner. To the client, this has the effect of +emulating a Microsoft Domain. The client is not concerned whether or not +Samba looks up a Windows NT SAM or does it in some other way. + +<sect1>Authentication Schemes<p> + +In the simple case authentication information is stored on a single +server and the user types a password on connecting for the first time. +However client operating systems often require a password before they +can be used at all, and in addition users usually want access to more +than one server. Asking users to remember many different passwords in +different contexts just does not work. Some kind of distributed +authentication database is needed. It must cope with password changes +and provide for assigning groups of users the same level of access +permissions. This is why Samba installations often choose to implement a +Domain model straight away. + +Authentication decisions are some of the biggest in designing a network. +Are you going to use a scheme native to the client operating system, +native to the server operating system, or newly installed on both? A +list of options relevant to Samba (ie that make sense in the context of +the SMB protocol) follows. Any experiences with other setups would be +appreciated. [refer to server FAQ for "passwd chat" passwd program +password server etc etc...] + +<sect2>NIS<p> + +For Windows 95, Windows for Workgroups and most other clients Samba can +be a domain controller and share the password database via NIS +transparently. Windows NT is different. +<url url="http://www.dcs.qmw.ac.uk/~williams" name="Free NIS NT client"> + +<sect2>Kerberos<p> + +Kerberos for US users only: +<url url="http://www.cygnus.com/product/unifying-security.html" +name="Kerberos overview"> +<url url="http://www.cygnus.com/product/kerbnet-download.html" +name="Download Kerberos"> + +<sect2>FTP<p> + +Other NT w/s logon hack via NT + +<sect2>Default Server Method<p> + +<sect2>Client-side Database Only<p> + +<sect1>Post-Authentication: Netlogon, Logon Scripts, Profiles<p> + +See <url url="../DOMAIN.txt"> + +<sect>Cross-Protocol File Sharing<p> + +Samba is an important tool for... + +It is possible to... + +File protocol gateways... + +"Setting up a Linux File Server" http://vetrec.mit.edu/people/narf/linux.html + +Two free implementations of Appletalk for Unix are Netatalk, <url +url="http://www.umich.edu/~rsug/netatalk/">, and CAP, <url +url="http://www.cs.mu.oz.au/appletalk/atalk.html">. What Samba offers MS +Windows users, these packages offer to Macs. For more info on these +packages, Samba, and Linux (and other UNIX-based systems) see <url +url="http://www.eats.com/linux_mac_win.html"> 3.5) Sniffing your nework + + +<sect>Miscellaneous<p><label id="miscellaneous"> +<sect1>Is Samba Year 2000 compliant?<p><label id="Year2000Compliant"> +The CIFS protocol that Samba implements +negotiates times in various formats, all of which +are able to cope with dates beyond 2000. + +</article> diff --git a/docs/faq/Samba-meta-FAQ.txt b/docs/faq/Samba-meta-FAQ.txt new file mode 100644 index 0000000000..01fc8d6ccf --- /dev/null +++ b/docs/faq/Samba-meta-FAQ.txt @@ -0,0 +1,924 @@ + Samba meta FAQ + Dan Shearer & Paul Blackman, ictinus@samba.org + v 0.3, 7 Oct '97 + + This is the meta-Frequently Asked Questions (FAQ) document for Samba, + the free and very popular SMB and CIFS server product. It contains + overview information for the Samba suite of programs, a quick-start + guide, and pointers to all other Samba documentation. Other FAQs exist + for specific client and server issues, and HOWTO documents for more + extended topics to do with Samba software. Current to version Samba + 1.9.17. Please send any corrections to the author. + ______________________________________________________________________ + + Table of Contents: + + 1. Quick Reference Guides to Samba Documentation + + 1.1. Samba for the Impatient + + 1.2. All Samba Documentation + + 2. General Information + + 2.1. What is Samba? + + 2.2. What is the current version of Samba? + + 2.3. Where can I get it? + + 2.4. What do the version numbers mean? + + 2.5. Where can I go for further information? + + 2.6. How do I subscribe to the Samba Mailing Lists? + + 2.7. Something's gone wrong - what should I do? + + 2.8. How do I submit patches or bug reports? + + 2.9. What if I have an URGENT message for the developers? + + 2.10. What if I need paid-for support? + + 2.11. Pizza supply details + + 3. About the CIFS and SMB Protocols + + 3.1. What is the Server Message Block (SMB) Protocol? + + 3.2. What is the Common Internet Filesystem (CIFS)? + + 3.3. What is Browsing? + + 4. Designing A SMB and CIFS Network + + 4.1. Workgroups, Domains, Authentication and Browsing + + 4.1.1. Defining the Terms + + 4.1.2. Sharelevel (Workgroup) Security Services + + 4.1.3. Authentication Domain Mode Services + + 4.2. Authentication Schemes + + + 4.2.1. NIS + + 4.2.2. Kerberos + + 4.2.3. FTP + + 4.2.4. Default Server Method + + 4.2.5. Client-side Database Only + + 4.3. Post-Authentication: Netlogon, Logon Scripts, Profiles + + 5. Cross-Protocol File Sharing + + 6. Miscellaneous + + 6.1. Is Samba Year 2000 compliant? + ______________________________________________________________________ + + 11.. QQuuiicckk RReeffeerreennccee GGuuiiddeess ttoo SSaammbbaa DDooccuummeennttaattiioonn + + + We are endeavouring to provide links here to every major class of + information about Samba or things related to Samba. We cannot list + every document, but we are aiming for all documents to be at most two + referrals from those listed here. This needs constant maintaining, so + please send the author your feedback. + + + 11..11.. SSaammbbaa ffoorr tthhee IImmppaattiieenntt + + + You know you should read the documentation but can't wait to start? + What you need to do then is follow the instructions in the following + documents in the order given. This should be enough to get a fairly + simple site going quickly. If you have any problems, refer back to + this meta-FAQ and follow the links to find more reading material. + + + + GGeettttiinngg SSaammbbaa:: + The fastest way to get Samba going is and install it is to have + an operating system for which the Samba team has put together an + installation package. To see if your OS is included have a look + at the directory /pub/samba/Binary_Packages/"OS_Vendor" on your + nearest mirror site <../MIRRORS>. If it is included follow the + installation instructions in the README file there and then do + some ``basic testing''. If you are not so fortunate, follow the + normal ``download instructions'' and then continue with + ``building and installing Samba''. + + + BBuuiillddiinngg aanndd IInnssttaalllliinngg SSaammbbaa:: + At the moment there are two kinds of Samba server installs + besides the prepackaged binaries mentioned in the previous step. + You need to decide if you have a Unix or close relative + <../UNIX_INSTALL.txt> or other supported operating system + <Samba-Server-FAQ.html#PortInfo>. + + + BBaassiicc TTeessttiinngg:: + Try to connect using the supplied smbclient command-line + program. You need to know the IP hostname of your server. A + service name must be defined in smb.conf, as given in the + examples (under many operating systems if there is a homes + service you can just use a valid username.) Then type smbclient + \hostnamevicename Under most Unixes you will need to put the + parameters within quotation marks. If this works, try connecting + from one of the SMB clients you were planning to use with Samba. + + + DDeebbuugg sseeqquueennccee:: + If you think you have completed the previous step and things + aren't working properly work through the diagnosis recipe. + <../DIAGNOSIS.txt> + + + EExxppoorrttiinngg ffiilleess ttoo SSMMBB cclliieennttss:: + You should read the manual pages for smb.conf, but here is a + quick answer guide. <Samba-Server-FAQ.html#Exporting> + + + CCoonnttrroolllliinngg uusseerr aacccceessss:: + the quickest and dirtiest way of sharing resources is to use + ``share level security.'' If you want to spend more time and + have a proper username and password database you must read the + paragraph on ``domain mode security.'' If you want encryption + (eg you are using Windows NT clients) follow the SMB encryption + instructions. <Samba-Server-FAQ.html#SMBEncryptionSteps> + + + BBrroowwssiinngg:: + if you are happy to type in "\samba-serverrename" at the client + end then do not read any further. Otherwise you need to + understand the ``browsing terminology'' and read <Samba-Server- + FAQ.html#NameBrowsing>. + + + PPrriinnttiinngg:: + See the printing quick answer guide. <Samba-Server- + FAQ.html#Printing> + + + If you have got everything working to this point, you can expect Samba + to be stable and secure: these are its greatest strengths. However + Samba has a great deal to offer and to go further you must do some + more reading. Speed and security optimisations, printer accounting, + network logons, roving profiles, browsing across multiple subnets and + so on are all covered either in this document or in those it refers + to. + + + 11..22.. AAllll SSaammbbaa DDooccuummeennttaattiioonn + + + + +o Meta-FAQ. This is the mother of all documents, and is the one you + are reading now. The latest version is always at + <http://samba.org/[.....]> but there is probably a much + nearer mirror site <../MIRRORS> which you should use instead. + + +o <Samba-Server-FAQ.html> is the best starting point for information + about server-side issues. Includes configuration tips and pointers + for Samba on particular operating systems (with 40 to choose + from...) + + +o <Samba-Client-FAQ.html> is the best starting point for information + about client-side issues, includes a list of all clients that are + known to work with Samba. + + +o manual pages <samba-man-index.html> contains descriptions of and + links to all the Samba manual pages, in Unix man and postscript + format. + + +o <samba-txt-index.html> has descriptions of and links to a large + number of text files have been contributed to samba covering many + topics. These are gradually being absorbed into the FAQs and HOWTOs + but in the meantime you might find helpful answers here. + + +o + + + 22.. GGeenneerraall IInnffoorrmmaattiioonn + + + All about Samba - what it is, how to get it, related sources of + information, how to understand the numbering scheme, pizza details. + + + 22..11.. WWhhaatt iiss SSaammbbaa?? + + + Samba is a suite of programs which work together to allow clients to + access to a server's filespace and printers via the SMB (Server + Message Block) and CIFS (Common Internet Filesystem) protocols. + Initially written for Unix, Samba now also runs on Netware, OS/2, VMS, + StratOS and Amigas. Ports to BeOS and other operating systems are + underway. Samba gives the capability for these operating systems to + behave much like a LAN Server, Windows NT Server or Pathworks machine, + only with added functionality and flexibility designed to make life + easier for administrators. + + This means that using Samba you can share a server's disks and + printers to many sorts of network clients, including Lan Manager, + Windows for Workgroups, Windows NT, Linux, OS/2, and AIX. There is + also a generic client program supplied as part of the Samba suite + which gives a user on the server an ftp-like interface to access + filespace and printers on any other SMB/CIFS servers. + + SMB has been implemented over many protocols, including XNS, NBT, IPX, + NetBEUI and TCP/IP. Samba only uses TCP/IP. This is not likely to + change although there have been some requests for NetBEUI support. + + Many users report that compared to other SMB implementations Samba is + more stable, faster, and compatible with more clients. Administrators + of some large installations say that Samba is the only SMB server + available which will scale to many tens of thousands of users without + crashing. The easy way to test these claims is to download it and try + it for yourself! + + The suite is supplied with full source code under the GNU Public + License <../COPYING>. The GPL means that you can use Samba for + whatever purpose you wish (including changing the source or selling it + for money) but under all circumstances the source code must be made + freely available. A copy of the GPL must always be included in any + copy of the package. + + The primary creator of the Samba suite is Andrew Tridgell. Later + versions incorporate much effort by many net.helpers. The man pages + and this FAQ were originally written by Karl Auer. + + + 22..22.. WWhhaatt iiss tthhee ccuurrrreenntt vveerrssiioonn ooff SSaammbbaa?? + + + At time of writing, the current version was 1.9.17. If you want to be + sure check the bottom of the change-log file. + <ftp://samba.org/pub/samba/alpha/change-log> + For more information see ``What do the version numbers mean?'' + + + 22..33.. WWhheerree ccaann II ggeett iitt?? + + + The Samba suite is available via anonymous ftp from samba.org + and many mirror <../MIRRORS> sites. You will get much faster + performance if you use a mirror site. The latest and greatest versions + of the suite are in the directory: + + /pub/samba/ + + Development (read "alpha") versions, which are NOT necessarily stable + and which do NOT necessarily have accurate documentation, are + available in the directory: + + /pub/samba/alpha + + Note that binaries are NOT included in any of the above. Samba is + distributed ONLY in source form, though binaries may be available from + other sites. Most Linux distributions, for example, do contain Samba + binaries for that platform. The VMS, OS/2, Netware and Amiga and other + ports typically have binaries made available. + + A special case is vendor-provided binary packages. Samba binaries and + default configuration files are put into packages for a specific + operating system. RedHat Linux and Sun Solaris (Sparc and x86) is + already included, and others such as OS/2 may follow. All packages are + in the directory: + + /pub/samba/Binary_Packages/"OS_Vendor" + + + 22..44.. WWhhaatt ddoo tthhee vveerrssiioonn nnuummbbeerrss mmeeaann?? + + + It is not recommended that you run a version of Samba with the word + "alpha" in its name unless you know what you are doing and are willing + to do some debugging. Many, many people just get the latest + recommended stable release version and are happy. If you are brave, by + all means take the plunge and help with the testing and development - + but don't install it on your departmental server. Samba is typically + very stable and safe, and this is mostly due to the policy of many + public releases. + + How the scheme works: + + + 1. When major changes are made the version number is increased. For + example, the transition from 1.9.16 to 1.9.17. However, this + version number will not appear immediately and people should + continue to use 1.9.15 for production systems (see next point.) + + 2. Just after major changes are made the software is considered + unstable, and a series of alpha releases are distributed, for + example 1.9.16alpha1. These are for testing by those who know what + they are doing. The "alpha" in the filename will hopefully scare + off those who are just looking for the latest version to install. + + 3. When Andrew thinks that the alphas have stabilised to the point + where he would recommend new users install it, he renames it to the + same version number without the alpha, for example 1.9.17. + + 4. Inevitably bugs are found in the "stable" releases and minor patch + levels are released which give us the pXX series, for example + 1.9.17p2. + + So the progression goes: + + + 1.9.16p10 (production) + 1.9.16p11 (production) + 1.9.17alpha1 (test sites only) + : + 1.9.17alpha20 (test sites only) + 1.9.17 (production) + 1.9.17p1 (production) + + + + The above system means that whenever someone looks at the samba ftp + site they will be able to grab the highest numbered release without an + alpha in the name and be sure of getting the current recommended + version. + + + 22..55.. WWhheerree ccaann II ggoo ffoorr ffuurrtthheerr iinnffoorrmmaattiioonn?? + + + There are a number of places to look for more information on Samba, + including: + + + +o Two mailing lists devoted to discussion of Samba-related matters. + See below for subscription information. + + +o The newsgroup comp.protocols.smb, which has a great deal of + discussion about Samba. + + +o The WWW site 'SAMBA Web Pages' at <http://samba.org/samba/> + includes: + + + +o Links to man pages and documentation, including this FAQ + + +o A comprehensive survey of Samba users + + +o A searchable hypertext archive of the Samba mailing list + + +o Links to Samba source code, binaries, and mirrors of both + + +o This FAQ and the rest in its family + + + + 22..66.. HHooww ddoo II ssuubbssccrriibbee ttoo tthhee SSaammbbaa MMaaiilliinngg LLiissttss?? + + + Send email to listproc@samba.org. Make sure the subject line is + blank, and include the following two lines in the body of the message: + + + + subscribe samba Firstname Lastname + subscribe samba-announce Firstname Lastname + + + + + Obviously you should substitute YOUR first name for "Firstname" and + YOUR last name for "Lastname"! Try not to send any signature, it + sometimes confuses the list processor. + + The samba list is a digest list - every eight hours or so it sends a + single message containing all the messages that have been received by + the list since the last time and sends a copy of this message to all + subscribers. There are thousands of people on this list. + + If you stop being interested in Samba, please send another email to + listproc@samba.org. Make sure the subject line is blank, and + include the following two lines in the body of the message: + + + + unsubscribe samba + unsubscribe samba-announce + + + + + The FFrroomm:: line in your message _M_U_S_T be the same address you used when + you subscribed. + + + 22..77.. SSoommeetthhiinngg''ss ggoonnee wwrroonngg -- wwhhaatt sshhoouulldd II ddoo?? + + + ## ****** IIMMPPOORRTTAANNTT!! ****** ## + + + DO NOT post messages on mailing lists or in newsgroups until you have + carried out the first three steps given here! + + + 1. See if there are any likely looking entries in this FAQ! If you + have just installed Samba, have you run through the checklist in + DIAGNOSIS.txt <ftp://samba.org/pub/samba/DIAGNOSIS.txt>? It + can save you a lot of time and effort. DIAGNOSIS.txt can also be + found in the docs directory of the Samba distribution. + + 2. Read the man pages for smbd, nmbd and smb.conf, looking for topics + that relate to what you are trying to do. + + 3. If there is no obvious solution to hand, try to get a look at the + log files for smbd and/or nmbd for the period during which you were + having problems. You may need to reconfigure the servers to provide + more extensive debugging information - usually level 2 or level 3 + provide ample debugging info. Inspect these logs closely, looking + particularly for the string "Error:". + + 4. If you need urgent help and are willing to pay for it see ``Paid + Support''. + + If you still haven't got anywhere, ask the mailing list or newsgroup. + In general nobody minds answering questions provided you have followed + the preceding steps. It might be a good idea to scan the archives of + the mailing list, which are available through the Samba web site + described in the previous section. When you post be sure to include a + good description of your environment and your problem. + + If you successfully solve a problem, please mail the FAQ maintainer a + succinct description of the symptom, the problem and the solution, so + that an explanation can be incorporated into the next version. + + + + + 22..88.. HHooww ddoo II ssuubbmmiitt ppaattcchheess oorr bbuugg rreeppoorrttss?? + + + If you make changes to the source code, _p_l_e_a_s_e submit these patches so + that everyone else gets the benefit of your work. This is one of the + most important aspects to the maintainence of Samba. Send all patches + to samba@samba.org. Do not send patches to Andrew Tridgell + or any other individual, they may be lost if you do. + + Patch format ------------ + + If you are sending a patch to fix a problem then please don't just use + standard diff format. As an example, samba@samba.org received this patch + from someone: + + 382a #endif 381a #if !defined(NEWS61) + + How are we supposed to work out what this does and where it goes? + These sort of patches only work if we both have identical files in the + first place. The Samba sources are constantly changing at the hands of + multiple developers, so it doesn't work. + + Please use either context diffs or (even better) unified diffs. You + get these using "diff -c4" or "diff -u". If you don't have a diff that + can generate these then please send manualy commented patches to I + know what is being changed and where. Most patches are applied by hand + so the info must be clear. + + This is a basic guideline that will assist us with assessing your + problem more efficiently : + + Machine Arch: Machine OS: OS Version: Kernel: + + Compiler: Libc Version: + + Samba Version: + + Network Layout (description): + + What else is on machine (services, etc): + + Some extras : + + + +o what you did and what happened + + +o relevant parts of a debugging output file with debuglevel higher. + If you can't find the relevant parts, please ask before mailing + huge files. + + +o anything else you think is useful to trace down the bug + + + 22..99.. WWhhaatt iiff II hhaavvee aann UURRGGEENNTT mmeessssaaggee ffoorr tthhee ddeevveellooppeerrss?? + + + If you have spotted something very serious and believe that it is + important to contact the developers quickly send a message to samba- + urgent@samba.org. This will be processed more quickly than mail + to samba@samba.org. Please think carefully before using this address. An + example of its use might be to report a security hole. + + Examples of things _n_o_t to send to samba-urgent include problems + getting Samba to work at all and bugs that cannot potentially cause + damage. + + 22..1100.. WWhhaatt iiff II nneeeedd ppaaiidd--ffoorr ssuuppppoorrtt?? + + + Samba has a large network of consultants who provide Samba support on + a commercial basis. The list is included in the package in + <../Support.txt>, and the latest version will always be on the main + samba ftp site. Any company in the world can request that the samba + team include their details in Support.txt so we can give no guarantee + of their services. + + + 22..1111.. PPiizzzzaa ssuuppppllyy ddeettaaiillss + + + Those who have registered in the Samba survey as "Pizza Factory" will + already know this, but the rest may need some help. Andrew doesn't ask + for payment, but he does appreciate it when people give him pizza. + This calls for a little organisation when the pizza donor is twenty + thousand kilometres away, but it has been done. + + + 1. Ring up your local branch of an international pizza chain and see + if they honour their vouchers internationally. Pizza Hut do, which + is how the entire Canberra Linux Users Group got to eat pizza one + night, courtesy of someone in the US. + + 2. Ring up a local pizza shop in Canberra and quote a credit card + number for a certain amount, and tell them that Andrew will be + collecting it (don't forget to tell him.) One kind soul from + Germany did this. + + 3. Purchase a pizza voucher from your local pizza shop that has no + international affiliations and send it to Andrew. It is completely + useless but he can hang it on the wall next to the one he already + has from Germany :-) + + 4. Air freight him a pizza with your favourite regional flavours. It + will probably get stuck in customs or torn apart by hungry sniffer + dogs but it will have been a noble gesture. + + + 33.. AAbboouutt tthhee CCIIFFSS aanndd SSMMBB PPrroottooccoollss + + + + 33..11.. WWhhaatt iiss tthhee SSeerrvveerr MMeessssaaggee BBlloocckk ((SSMMBB)) PPrroottooccooll?? + + SMB is a filesharing protocol that has had several maintainers and + contributors over the years including Xerox, 3Com and most recently + Microsoft. Names for this protocol include LAN Manager and Microsoft + Networking. Parts of the specification has been made public at several + versions including in an X/Open document, as listed at + <ftp://ftp.microsoft.com/developr/drg/CIFS/>. No specification + releases were made between 1992 and 1996, and during that period + Microsoft became the SMB implementor with the largest market share. + Microsoft developed the specification further for its products but for + various reasons connected with developer's workload rather than market + strategy did not make the changes public. This culminated with the + "Windows NT 0.12" version released with NT 3.5 in 1995 which had + significant improvements and bugs. Because Microsoft client systems + are so popular, it is fair to say that what Microsoft with Windows + affects all suppliers of SMB server products. + + From 1994 Andrew Tridgell began doing some serious work on his + Smbserver (now Samba) product and with some helpers started to + implement more and more of these protocols. Samba began to take a + significant share of the SMB server market. + + + 33..22.. WWhhaatt iiss tthhee CCoommmmoonn IInntteerrnneett FFiilleessyysstteemm ((CCIIFFSS))?? + + The initial pressure for Microsoft to document their current SMB + implementation came from the Samba team, who kept coming across things + on the wire that Microsoft either didn't know about or hadn't + documented anywhere (even in the sourcecode to Windows NT.) Then Sun + Microsystems came out with their WebNFS initiative, designed to + replace FTP for file transfers on the Internet. There are many + drawbacks to WebNFS (including its scope - it aims to replace HTTP as + well!) but the concept was attractive. FTP is not very clever, and why + should it be harder to get files from across the world than across the + room? + + Some hasty revisions were made and an Internet Draft for the Common + Internet Filesystem (CIFS) was released. Note that CIFS is not an + Internet standard and is a very long way from becoming one, BUT the + protocol specification is in the public domain and ongoing discussions + concerning the spec take place on a public mailing list according to + the rules of the Internet Engineering Task Force. For more information + and pointers see <http://samba.org/cifs/> + + The following is taken from <http://www.microsoft.com/intdev/cifs/> + + + CIFS defines a standard remote file system access protocol for use + over the Internet, enabling groups of users to work together and + share documents across the Internet or within their corporate + intranets. CIFS is an open, cross-platform technology based on the + native file-sharing protocols built into Microsoft Windows and + other popular PC operating systems, and supported on dozens of + other platforms, including UNIX. With CIFS, millions of computer + users can open and share remote files on the Internet without having + to install new software or change the way they work." + + + + If you consider CIFS as a backwardsly-compatible refinement of SMB + that will work reasonably efficiently over the Internet you won't be + too far wrong. + + The net effect is that Microsoft is now documenting large parts of + their Windows NT fileserver protocols. The security concepts embodied + in Windows NT are part of the specification, which is why Samba + documentation often talks in terms of Windows NT. However there is no + reason why a site shouldn't conduct all its file and printer sharing + with CIFS and yet have no Microsoft products at all. + + + 33..33.. WWhhaatt iiss BBrroowwssiinngg?? + + The term "Browsing" causes a lot of confusion. It is the part of the + SMB/CIFS protocol which allows for resource discovery. For example, in + the Windows NT Explorer it is possible to see a "Network + Neighbourhood" of computers in the same SMB workgroup. Clicking on the + name of one of these machines brings up a list of file and printer + resources for connecting to. In this way you can cruise the network, + seeing what things are available. How this scales to the Internet is a + subject for debate. Look at the CIFS list archives to see what the + experts think. + + + + + 44.. DDeessiiggnniinngg AA SSMMBB aanndd CCIIFFSS NNeettwwoorrkk + + + The big issues for installing any network of LAN or WAN file and print + servers are + + + +o How and where usernames, passwords and other security information + is stored + + +o What method can be used for locating the resources that users have + permission to use + + +o What protocols the clients can converse with + + + If you buy Netware, Windows NT or just about any other LAN fileserver + product you are expected to lock yourself into the product's preferred + answers to these questions. This tendancy is restrictive and often + very expensive for a site where there is only one kind of client or + server, and for sites with a mixture of operating systems it often + makes it impossible to share resources between some sets of users. + + The Samba philosophy is to make things as easy as possible for + administators, which means allowing as many combinations of clients, + servers, operating systems and protocols as possible. + + + 44..11.. WWoorrkkggrroouuppss,, DDoommaaiinnss,, AAuutthheennttiiccaattiioonn aanndd BBrroowwssiinngg + + + From the point of view of networking implementation, Domains and + Workgroups are _e_x_a_c_t_l_y the same, except for the client logon sequence. + Some kind of distributed authentication database is associated with a + domain (there are quite a few choices) and this adds so much + flexibility that many people think of a domain as a completely + different entity to a workgroup. From Samba's point of view a client + connecting to a service presents an authentication token, and it if it + is valid they have access. Samba does not care what mechanism was used + to generate that token in the first place. + + The SMB client logging on to a domain has an expectation that every + other server in the domain should accept the same authentication + information. However the network browsing functionality of domains + and workgroups is identical and is explained in <../BROWSING.txt>. + + There are some implementation differences: Windows 95 can be a member + of both a workgroup and a domain, but Windows NT cannot. Windows 95 + also has the concept of an "alternative workgroup". Samba can only be + a member of a single workgroup or domain, although this is due to + change with a future version when nmbd will be split into two daemons, + one for WINS and the other for browsing ( <../NetBIOS.txt> explains + what WINS is.) + + + 44..11..11.. DDeeffiinniinngg tthhee TTeerrmmss + + + + + WWoorrkkggrroouupp + means a collection of machines that maintain a common browsing + database containing information about their shared resources. + They do not necessarily have any security information in common + (if they do, it gets called a Domain.) The browsing database is + dynamic, modified as servers come and go on the network and as + resources are added or deleted. The term "browsing" refers to a + user accessing the database via whatever interface the client + provides, eg the OS/2 Workplace Shell or Windows 95 Explorer. + SMB servers agree between themselves as to which ones will + maintain the browsing database. Workgroups can be anywhere on a + connected TCP/IP network, including on different subnets or even + on the Interet. This is a very tricky part of SMB to implement. + + + MMaasstteerr BBrroowwsseerrss + are machines which holds the master browsing database for a + workgroup or domain. There are two kinds of Master Browser: + + + +o Domain Master Browser, which holds the master browsing + information for an entire domain, which may well cross multiple + TCP/IP subnets. + + +o Local Master Browser, which holds the master browsing database + for a particular subnet and communicates with the Domain Master + Browser to get information on other subnets. + + Subnets are differentiated because browsing is based on + broadcasts, and broadcasts do not pass through routers. Subnets + are not routed: while it is possible to have more than one + subnet on a single network segment this is regarded as very bad + practice. + + Master Browsers (both Domain and Local) are elected dynamically + according to an algorithm which is supposed to take into account + the machine's ability to sustain the browsing load. Samba can be + configured to always act as a master browser, ie it always wins + elections under all circumstances, even against systems such as + a Windows NT Primary Domain Controller which themselves expect + to win. + + There are also Backup Browsers which are promoted to Master + Browsers in the event of a Master Browser disappearing from the + network. + + Alternative terms include confusing variations such as "Browse + Master", and "Master Browser" which we are trying to eliminate + from the Samba documentation. + + + DDoommaaiinn CCoonnttrroolllleerr + is a term which comes from the Microsoft and IBM etc + implementation of the LAN Manager protocols. It is tied to + authentication. There are other ways of doing domain + authentication, but the Windows NT method has a large market + share. The general issues are discussed in <../DOMAIN.txt> and + a Windows NT-specific discussion is in <../DOMAIN_CONTROL.txt>. + + + + 44..11..22.. SShhaarreelleevveell ((WWoorrkkggrroouupp)) SSeeccuurriittyy SSeerrvviicceess + + + With the Samba setting "security = SHARE", all shared resources + information about what password is associated with them but only hints + as to what usernames might be valid (the hint can be 'all users', in + which case any username will work. This is usually a bad idea, but + reflects both the initial implementations of SMB in the mid-80s and + its reincarnation with Windows for Workgroups in 1992. The idea behind + workgroup security was that small independant groups of people could + share information on an ad-hoc basis without there being an + authentication infrastructure present or requiring them to do more + than fill in a dialogue box. + + + 44..11..33.. AAuutthheennttiiccaattiioonn DDoommaaiinn MMooddee SSeerrvviicceess + + + With the Samba settings "security = USER" or "security = SERVER" + accesses to all resources are checked for username/password pair + matches in a more rigorous manner. To the client, this has the effect + of emulating a Microsoft Domain. The client is not concerned whether + or not Samba looks up a Windows NT SAM or does it in some other way. + + + 44..22.. AAuutthheennttiiccaattiioonn SScchheemmeess + + + In the simple case authentication information is stored on a single + server and the user types a password on connecting for the first time. + However client operating systems often require a password before they + can be used at all, and in addition users usually want access to more + than one server. Asking users to remember many different passwords in + different contexts just does not work. Some kind of distributed + authentication database is needed. It must cope with password changes + and provide for assigning groups of users the same level of access + permissions. This is why Samba installations often choose to implement + a Domain model straight away. + + Authentication decisions are some of the biggest in designing a + network. Are you going to use a scheme native to the client operating + system, native to the server operating system, or newly installed on + both? A list of options relevant to Samba (ie that make sense in the + context of the SMB protocol) follows. Any experiences with other + setups would be appreciated. refer to server FAQ for "passwd chat" + passwd program password server etc etc... + + + 44..22..11.. NNIISS + + + For Windows 95, Windows for Workgroups and most other clients Samba + can be a domain controller and share the password database via NIS + transparently. Windows NT is different. Free NIS NT client + <http://www.dcs.qmw.ac.uk/~williams> + + + 44..22..22.. KKeerrbbeerrooss + + + Kerberos for US users only: Kerberos overview + <http://www.cygnus.com/product/unifying-security.html> Download + Kerberos <http://www.cygnus.com/product/kerbnet-download.html> + + + 44..22..33.. FFTTPP + + + Other NT w/s logon hack via NT + + + 44..22..44.. DDeeffaauulltt SSeerrvveerr MMeetthhoodd + + + + + + 44..22..55.. CClliieenntt--ssiiddee DDaattaabbaassee OOnnllyy + + + + 44..33.. PPoosstt--AAuutthheennttiiccaattiioonn:: NNeettllooggoonn,, LLooggoonn SSccrriippttss,, PPrrooffiilleess + + + See <../DOMAIN.txt> + + + 55.. CCrroossss--PPrroottooccooll FFiillee SShhaarriinngg + + + Samba is an important tool for... + + It is possible to... + + File protocol gateways... + + "Setting up a Linux File Server" + http://vetrec.mit.edu/people/narf/linux.html + + Two free implementations of Appletalk for Unix are Netatalk, + <http://www.umich.edu/~rsug/netatalk/>, and CAP, + <http://www.cs.mu.oz.au/appletalk/atalk.html>. What Samba offers MS + Windows users, these packages offer to Macs. For more info on these + packages, Samba, and Linux (and other UNIX-based systems) see + <http://www.eats.com/linux_mac_win.html> 3.5) Sniffing your nework + + + + 66.. MMiisscceellllaanneeoouuss + + + 66..11.. IIss SSaammbbaa YYeeaarr 22000000 ccoommpplliiaanntt?? + + + The CIFS protocol that Samba implements negotiates times in various + formats, all of which are able to cope with dates beyond 2000. + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/faq/sambafaq-1.html b/docs/faq/sambafaq-1.html new file mode 100644 index 0000000000..dde0784099 --- /dev/null +++ b/docs/faq/sambafaq-1.html @@ -0,0 +1,392 @@ +<HTML> +<HEAD> +<TITLE> Samba FAQ: General Information</TITLE> +</HEAD> +<BODY> +Previous +<A HREF="sambafaq-2.html">Next</A> +<A HREF="sambafaq.html#toc1">Table of Contents</A> +<HR> +<H2><A NAME="s1">1. General Information</A></H2> + +<P> +<A NAME="general_info"></A> +</P> +<P>All about Samba - what it is, how to get it, related sources of +information, how to understand the version numbering scheme, pizza +details</P> + +<H2><A NAME="ss1.1">1.1 What is Samba? </A></H2> + +<P> +<A NAME="introduction"></A> + +Samba is a suite of programs which work together to allow clients to +access to a server's filespace and printers via the SMB (Server +Message Block) protocol. Initially written for Unix, Samba now also +runs on Netware, OS/2 and VMS.</P> +<P>In practice, this means that you can redirect disks and printers to +Unix disks and printers from Lan Manager clients, Windows for +Workgroups 3.11 clients, Windows NT clients, Linux clients and OS/2 +clients. There is also a generic Unix client program supplied as part +of the suite which allows Unix users to use an ftp-like interface to +access filespace and printers on any other SMB servers. This gives the +capability for these operating systems to behave much like a LAN +Server or Windows NT Server machine, only with added functionality and +flexibility designed to make life easier for administrators.</P> +<P>The components of the suite are (in summary):</P> +<P> +<UL> +<LI><B>smbd</B>, the SMB server. This handles actual connections from clients, doing all the file, permission and username work</LI> +<LI><B>nmbd</B>, the Netbios name server, which helps clients locate servers, doing the browsing work and managing domains as this capability is being built into Samba</LI> +<LI><B>smbclient</B>, the Unix-hosted client program</LI> +<LI><B>smbrun</B>, a little 'glue' program to help the server run external programs</LI> +<LI><B>testprns</B>, a program to test server access to printers</LI> +<LI><B>testparms</B>, a program to test the Samba configuration file for correctness</LI> +<LI><B>smb.conf</B>, the Samba configuration file</LI> +<LI><B>smbprint</B>, a sample script to allow a Unix host to use smbclient to print to an SMB server</LI> +<LI><B>Documentation!</B> DON'T neglect to read it - you will save a great deal of time!</LI> +</UL> +</P> +<P>The suite is supplied with full source (of course!) and is GPLed.</P> +<P>The primary creator of the Samba suite is Andrew Tridgell. Later +versions incorporate much effort by many net.helpers. The man pages +and this FAQ were originally written by Karl Auer.</P> + + +<H2><A NAME="ss1.2">1.2 What is the current version of Samba? </A></H2> + +<P> +<A NAME="current_version"></A> + +At time of writing, the current version was 1.9.17. If you want to be +sure check the bottom of the change-log file. +<A HREF="ftp://samba.org/pub/samba/alpha/change-log">ftp://samba.org/pub/samba/alpha/change-log</A></P> +<P>For more information see +<A HREF="#version_nums">What do the version numbers mean?</A></P> + + +<H2><A NAME="ss1.3">1.3 Where can I get it? </A></H2> + +<P> +<A NAME="where"></A> + +The Samba suite is available via anonymous ftp from +samba.org. The latest and greatest versions of the suite are in +the directory:</P> +<P>/pub/samba/</P> +<P>Development (read "alpha") versions, which are NOT necessarily stable +and which do NOT necessarily have accurate documentation, are +available in the directory:</P> +<P>/pub/samba/alpha</P> +<P>Note that binaries are NOT included in any of the above. Samba is +distributed ONLY in source form, though binaries may be available from +other sites. Recent versions of some Linux distributions, for example, +do contain Samba binaries for that platform.</P> + + +<H2><A NAME="ss1.4">1.4 What do the version numbers mean? </A></H2> + +<P> +<A NAME="version_nums"></A> + +It is not recommended that you run a version of Samba with the word +"alpha" in its name unless you know what you are doing and are willing +to do some debugging. Many, many people just get the latest +recommended stable release version and are happy. If you are brave, by +all means take the plunge and help with the testing and development - +but don't install it on your departmental server. Samba is typically +very stable and safe, and this is mostly due to the policy of many +public releases.</P> +<P>How the scheme works: +<OL> +<LI>When major changes are made the version number is increased. For +example, the transition from 1.9.15 to 1.9.16. However, this version +number will not appear immediately and people should continue to use +1.9.15 for production systems (see next point.) +</LI> +<LI>Just after major changes are made the software is considered +unstable, and a series of alpha releases are distributed, for example +1.9.16alpha1. These are for testing by those who know what they are +doing. The "alpha" in the filename will hopefully scare off those who +are just looking for the latest version to install. +</LI> +<LI>When Andrew thinks that the alphas have stabilised to the point +where he would recommend new users install it, he renames it to the +same version number without the alpha, for example 1.9.16. +</LI> +<LI>Inevitably bugs are found in the "stable" releases and minor patch +levels are released which give us the pXX series, for example 1.9.16p2.</LI> +</OL> + +So the progression goes: +<PRE> + 1.9.15p7 (production) + 1.9.15p8 (production) + 1.9.16alpha1 (test sites only) + : + 1.9.16alpha20 (test sites only) + 1.9.16 (production) + 1.9.16p1 (production) +</PRE> + +The above system means that whenever someone looks at the samba ftp +site they will be able to grab the highest numbered release without an +alpha in the name and be sure of getting the current recommended +version.</P> + + +<H2><A NAME="ss1.5">1.5 What platforms are supported? </A></H2> + +<P> +<A NAME="platforms"></A> + +Many different platforms have run Samba successfully. The platforms +most widely used and thus best tested are Linux and SunOS.</P> +<P>At time of writing, the Makefile claimed support for: +<UL> +<LI> A/UX 3.0</LI> +<LI> AIX</LI> +<LI> Altos Series 386/1000</LI> +<LI> Amiga</LI> +<LI> Apollo Domain/OS sr10.3</LI> +<LI> BSDI </LI> +<LI> B.O.S. (Bull Operating System)</LI> +<LI> Cray, Unicos 8.0</LI> +<LI> Convex</LI> +<LI> DGUX. </LI> +<LI> DNIX.</LI> +<LI> FreeBSD</LI> +<LI> HP-UX</LI> +<LI> Intergraph. </LI> +<LI> Linux with/without shadow passwords and quota</LI> +<LI> LYNX 2.3.0</LI> +<LI> MachTen (a unix like system for Macintoshes)</LI> +<LI> Motorola 88xxx/9xx range of machines</LI> +<LI> NetBSD</LI> +<LI> NEXTSTEP Release 2.X, 3.0 and greater (including OPENSTEP for Mach).</LI> +<LI> OS/2 using EMX 0.9b</LI> +<LI> OSF1</LI> +<LI> QNX 4.22</LI> +<LI> RiscIX. </LI> +<LI> RISCOs 5.0B</LI> +<LI> SEQUENT. </LI> +<LI> SCO (including: 3.2v2, European dist., OpenServer 5)</LI> +<LI> SGI.</LI> +<LI> SMP_DC.OSx v1.1-94c079 on Pyramid S series</LI> +<LI> SONY NEWS, NEWS-OS (4.2.x and 6.1.x)</LI> +<LI> SUNOS 4</LI> +<LI> SUNOS 5.2, 5.3, and 5.4 (Solaris 2.2, 2.3, and '2.4 and later')</LI> +<LI> Sunsoft ISC SVR3V4</LI> +<LI> SVR4</LI> +<LI> System V with some berkely extensions (Motorola 88k R32V3.2).</LI> +<LI> ULTRIX.</LI> +<LI> UNIXWARE</LI> +<LI> UXP/DS</LI> +</UL> +</P> + + +<H2><A NAME="ss1.6">1.6 How can I find out more about Samba? </A></H2> + +<P> +<A NAME="more"></A> + +There are a number of places to look for more information on Samba, including: +<UL> +<LI>Two mailing lists devoted to discussion of Samba-related matters. </LI> +<LI>The newsgroup, comp.protocols.smb, which has a great deal of discussion on Samba. </LI> +<LI>The WWW site 'SAMBA Web Pages' at +<A HREF="http://samba.edu.au/samba/">http://samba.edu.au/samba/</A> includes: +<UL> +<LI>Links to man pages and documentation, including this FAQ</LI> +<LI>A comprehensive survey of Samba users.</LI> +<LI>A searchable hypertext archive of the Samba mailing list.</LI> +<LI>Links to Samba source code, binaries, and mirrors of both.</LI> +</UL> +</LI> +<LI>The long list of topic documentation. These files can be found in the 'docs' directory of the Samba source, or at +<A HREF="ftp://samba.org/pub/samba/docs/">ftp://samba.org/pub/samba/docs/</A> +<UL> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/Application_Serving.txt">Application_Serving.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/BROWSING.txt">BROWSING.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/BUGS.txt">BUGS.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/DIAGNOSIS.txt">DIAGNOSIS.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/DNIX.txt">DNIX.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/DOMAIN.txt">DOMAIN.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/DOMAIN_CONTROL.txt">CONTROL.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/ENCRYPTION.txt">ENCRYPTION.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/Faxing.txt">Faxing.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/GOTCHAS.txt">GOTCHAS.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/HINTS.txt">HINTS.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/INSTALL.sambatar">INSTALL.sambatar</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/INSTALL.txt">INSTALL.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/MIRRORS">MIRRORS</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/NetBIOS.txt">NetBIOS.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/OS2.txt">OS2.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/PROJECTS">PROJECTS</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/Passwords.txt">Passwords.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/Printing.txt">Printing.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/README.DCEDFS">README.DCEDFS</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/README.OS2">README.OS2</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/README.jis">README.jis</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/README.sambatar">README.sambatar</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/SCO.txt">SCO.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/SMBTAR.notes">SMBTAR.notes</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/Speed.txt">Speed.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/Support.txt">Support.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/THANKS">THANKS</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/Tracing.txt">Tracing.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/UNIX-SMB.txt">SMB.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/Warp.txt">Warp.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/WinNT.txt">WinNT.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/history">history</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/security_level.txt">level.txt</A></LI> +<LI> +<A HREF="ftp://samba.org/pub/samba/docs/wfw_slip.htm">slip.htm</A></LI> +</UL> +</LI> +</UL> +</P> + + +<H2><A NAME="ss1.7">1.7 How do I subscribe to the Samba Mailing Lists?</A></H2> + +<P> +<A NAME="mailinglist"></A> + +Send email to +<A HREF="mailto:listproc@samba.org">listproc@samba.org</A>. Make sure the subject line is +blank, and include the following two lines in the body of the message: +<BLOCKQUOTE><CODE> +<PRE> +subscribe samba Firstname Lastname +subscribe samba-announce Firstname Lastname +</PRE> +</CODE></BLOCKQUOTE> + +Obviously you should substitute YOUR first name for "Firstname" and +YOUR last name for "Lastname"! Try not to send any signature stuff, it +sometimes confuses the list processor.</P> +<P>The samba list is a digest list - every eight hours or so it +regurgitates a single message containing all the messages that have +been received by the list since the last time and sends a copy of this +message to all subscribers.</P> +<P>If you stop being interested in Samba, please send another email to +<A HREF="mailto:listproc@samba.org">listproc@samba.org</A>. Make sure the subject line is blank, and +include the following two lines in the body of the message: +<BLOCKQUOTE><CODE> +<PRE> +unsubscribe samba +unsubscribe samba-announce +</PRE> +</CODE></BLOCKQUOTE> + +The <B>From:</B> line in your message <EM>MUST</EM> be the same address you used when +you subscribed.</P> + + +<H2><A NAME="ss1.8">1.8 Something's gone wrong - what should I do? </A></H2> + +<P> +<A NAME="wrong"></A> + +<B><F>#</F> *** IMPORTANT! *** <F>#</F></B></P> +<P>DO NOT post messages on mailing lists or in newsgroups until you have +carried out the first three steps given here!</P> +<P>Firstly, see if there are any likely looking entries in this FAQ! If +you have just installed Samba, have you run through the checklist in +<A HREF="ftp://samba.org/pub/samba/DIAGNOSIS.txt">DIAGNOSIS.txt</A>? It can save you a lot of time and effort. +DIAGNOSIS.txt can also be found in the docs directory of the Samba distribution.</P> +<P>Secondly, read the man pages for smbd, nmbd and smb.conf, looking for +topics that relate to what you are trying to do.</P> +<P>Thirdly, if there is no obvious solution to hand, try to get a look at +the log files for smbd and/or nmbd for the period during which you +were having problems. You may need to reconfigure the servers to +provide more extensive debugging information - usually level 2 or +level 3 provide ample debugging info. Inspect these logs closely, +looking particularly for the string "Error:".</P> +<P>Fourthly, if you still haven't got anywhere, ask the mailing list or +newsgroup. In general nobody minds answering questions provided you +have followed the preceding steps. It might be a good idea to scan the +archives of the mailing list, which are available through the Samba +web site described in the previous +section.</P> +<P>If you successfully solve a problem, please mail the FAQ maintainer a +succinct description of the symptom, the problem and the solution, so +I can incorporate it in the next version.</P> +<P>If you make changes to the source code, _please_ submit these patches +so that everyone else gets the benefit of your work. This is one of +the most important aspects to the maintainence of Samba. Send all +patches to +<A HREF="mailto:samba@samba.org">samba@samba.org</A>. Do not send patches to Andrew Tridgell or any +other individual, they may be lost if you do.</P> + + +<H2><A NAME="ss1.9">1.9 Pizza supply details </A></H2> + +<P> +<A NAME="pizza"></A> + +Those who have registered in the Samba survey as "Pizza Factory" will +already know this, but the rest may need some help. Andrew doesn't ask +for payment, but he does appreciate it when people give him +pizza. This calls for a little organisation when the pizza donor is +twenty thousand kilometres away, but it has been done.</P> +<P>Method 1: Ring up your local branch of an international pizza chain +and see if they honour their vouchers internationally. Pizza Hut do, +which is how the entire Canberra Linux Users Group got to eat pizza +one night, courtesy of someone in the US</P> +<P>Method 2: Ring up a local pizza shop in Canberra and quote a credit +card number for a certain amount, and tell them that Andrew will be +collecting it (don't forget to tell him.) One kind soul from Germany +did this.</P> +<P>Method 3: Purchase a pizza voucher from your local pizza shop that has +no international affiliations and send it to Andrew. It is completely +useless but he can hang it on the wall next to the one he already has +from Germany :-)</P> +<P>Method 4: Air freight him a pizza with your favourite regional +flavours. It will probably get stuck in customs or torn apart by +hungry sniffer dogs but it will have been a noble gesture.</P> + + +<HR> +Previous +<A HREF="sambafaq-2.html">Next</A> +<A HREF="sambafaq.html#toc1">Table of Contents</A> +</BODY> +</HTML> diff --git a/docs/faq/sambafaq-2.html b/docs/faq/sambafaq-2.html new file mode 100644 index 0000000000..8978bc331c --- /dev/null +++ b/docs/faq/sambafaq-2.html @@ -0,0 +1,236 @@ +<HTML> +<HEAD> +<TITLE> Samba FAQ: Compiling and installing Samba on a Unix host</TITLE> +</HEAD> +<BODY> +<A HREF="sambafaq-1.html">Previous</A> +<A HREF="sambafaq-3.html">Next</A> +<A HREF="sambafaq.html#toc2">Table of Contents</A> +<HR> +<H2><A NAME="s2">2. Compiling and installing Samba on a Unix host</A></H2> + +<P> +<A NAME="unix_install"></A> +</P> + +<H2><A NAME="ss2.1">2.1 I can't see the Samba server in any browse lists!</A></H2> + +<P> +<A NAME="no_browse"></A> + +See BROWSING.txt for more information on browsing. BROWSING.txt can +be found in the docs directory of the Samba source.</P> <P>If your GUI +client does not permit you to select non-browsable servers, you may +need to do so on the command line. For example, under Lan Manager you +might connect to the above service as disk drive M: thusly: +<BLOCKQUOTE><CODE> +<PRE> + net use M: \\mary\fred +</PRE> +</CODE></BLOCKQUOTE> + +The details of how to do this and the specific syntax varies from +client to client - check your client's documentation.</P> + + +<H2><A NAME="ss2.2">2.2 Some files that I KNOW are on the server doesn't show up when I view the files from my client! </A></H2> + +<P> +<A NAME="missing_files"></A> + +See the next question.</P> + +<H2><A NAME="ss2.3">2.3 Some files on the server show up with really wierd filenames when I view the files from my client! </A></H2> + +<P> +<A NAME="strange_filenames"></A> + +If you check what files are not showing up, you will note that they +are files which contain upper case letters or which are otherwise not +DOS-compatible (ie, they are not legal DOS filenames for some reason).</P> +<P>The Samba server can be configured either to ignore such files +completely, or to present them to the client in "mangled" form. If you +are not seeing the files at all, the Samba server has most likely been +configured to ignore them. Consult the man page smb.conf(5) for +details of how to change this - the parameter you need to set is +"mangled names = yes".</P> + + +<H2><A NAME="ss2.4">2.4 My client reports "cannot locate specified computer" or similar</A></H2> + +<P> +<A NAME="cant_see_server"></A> + +This indicates one of three things: You supplied an incorrect server +name, the underlying TCP/IP layer is not working correctly, or the +name you specified cannot be resolved.</P> +<P>After carefully checking that the name you typed is the name you +should have typed, try doing things like pinging a host or telnetting +to somewhere on your network to see if TCP/IP is functioning OK. If it +is, the problem is most likely name resolution.</P> +<P>If your client has a facility to do so, hardcode a mapping between the +hosts IP and the name you want to use. For example, with Man Manager +or Windows for Workgroups you would put a suitable entry in the file +LMHOSTS. If this works, the problem is in the communication between +your client and the netbios name server. If it does not work, then +there is something fundamental wrong with your naming and the solution +is beyond the scope of this document.</P> +<P>If you do not have any server on your subnet supplying netbios name +resolution, hardcoded mappings are your only option. If you DO have a +netbios name server running (such as the Samba suite's nmbd program), +the problem probably lies in the way it is set up. Refer to Section +Two of this FAQ for more ideas.</P> +<P>By the way, remember to REMOVE the hardcoded mapping before further +tests :-) </P> + + +<H2><A NAME="ss2.5">2.5 My client reports "cannot locate specified share name" or similar</A></H2> + +<P> +<A NAME="cant_see_share"></A> + +This message indicates that your client CAN locate the specified +server, which is a good start, but that it cannot find a service of +the name you gave.</P> +<P>The first step is to check the exact name of the service you are +trying to connect to (consult your system administrator). Assuming it +exists and you specified it correctly (read your client's doco on how +to specify a service name correctly), read on:</P> +<P> +<UL> +<LI> Many clients cannot accept or use service names longer than eight characters.</LI> +<LI> Many clients cannot accept or use service names containing spaces.</LI> +<LI> Some servers (not Samba though) are case sensitive with service names.</LI> +<LI> Some clients force service names into upper case.</LI> +</UL> +</P> + + +<H2><A NAME="ss2.6">2.6 My client reports "cannot find domain controller", "cannot log on to the network" or similar </A></H2> + +<P> +<A NAME="cant_see_net"></A> + +Nothing is wrong - Samba does not implement the primary domain name +controller stuff for several reasons, including the fact that the +whole concept of a primary domain controller and "logging in to a +network" doesn't fit well with clients possibly running on multiuser +machines (such as users of smbclient under Unix). Having said that, +several developers are working hard on building it in to the next +major version of Samba. If you can contribute, send a message to +<A HREF="mailto:samba@samba.org">samba@samba.org</A> !</P> +<P>Seeing this message should not affect your ability to mount redirected +disks and printers, which is really what all this is about.</P> +<P>For many clients (including Windows for Workgroups and Lan Manager), +setting the domain to STANDALONE at least gets rid of the message.</P> + + +<H2><A NAME="ss2.7">2.7 Printing doesn't work :-(</A></H2> + +<P> +<A NAME="no_printing"></A> + +Make sure that the specified print command for the service you are +connecting to is correct and that it has a fully-qualified path (eg., +use "/usr/bin/lpr" rather than just "lpr").</P> +<P>Make sure that the spool directory specified for the service is +writable by the user connected to the service. In particular the user +"nobody" often has problems with printing, even if it worked with an +earlier version of Samba. Try creating another guest user other than +"nobody".</P> +<P>Make sure that the user specified in the service is permitted to use +the printer.</P> +<P>Check the debug log produced by smbd. Search for the printer name and +see if the log turns up any clues. Note that error messages to do with +a service ipc$ are meaningless - they relate to the way the client +attempts to retrieve status information when using the LANMAN1 +protocol.</P> +<P>If using WfWg then you need to set the default protocol to TCP/IP, not +Netbeui. This is a WfWg bug.</P> +<P>If using the Lanman1 protocol (the default) then try switching to +coreplus. Also not that print status error messages don't mean +printing won't work. The print status is received by a different +mechanism.</P> + + +<H2><A NAME="ss2.8">2.8 My programs install on the server OK, but refuse to work properly</A></H2> + +<P> +<A NAME="programs_wont_run"></A> + +There are numerous possible reasons for this, but one MAJOR +possibility is that your software uses locking. Make sure you are +using Samba 1.6.11 or later. It may also be possible to work around +the problem by setting "locking=no" in the Samba configuration file +for the service the software is installed on. This should be regarded +as a strictly temporary solution.</P> +<P>In earlier Samba versions there were some difficulties with the very +latest Microsoft products, particularly Excel 5 and Word for Windows +6. These should have all been solved. If not then please let Andrew +Tridgell know via email at +<A HREF="mailto:samba@samba.org">samba@samba.org</A>.</P> + + +<H2><A NAME="ss2.9">2.9 My "server string" doesn't seem to be recognised</A></H2> + +<P> +<A NAME="bad_server_string"></A> + +OR My client reports the default setting, eg. "Samba 1.9.15p4", instead +of what I have changed it to in the smb.conf file.</P> +<P>You need to use the -C option in nmbd. The "server string" affects +what smbd puts out and -C affects what nmbd puts out.</P> +<P>Current versions of Samba (1.9.16 +) have combined these options into +the "server string" field of smb.conf, -C for nmbd is now obsolete.</P> + + +<H2><A NAME="ss2.10">2.10 My client reports "This server is not configured to list shared resources" </A></H2> + +<P> +<A NAME="cant_list_shares"></A> + +Your guest account is probably invalid for some reason. Samba uses the +guest account for browsing in smbd. Check that your guest account is +valid.</P> +<P>See also 'guest account' in smb.conf man page.</P> + + +<H2><A NAME="ss2.11">2.11 Log message "you appear to have a trapdoor uid system" </A></H2> + +<P> +<A NAME="trapdoor_uid"></A> + +This can have several causes. It might be because you are using a uid +or gid of 65535 or -1. This is a VERY bad idea, and is a big security +hole. Check carefully in your /etc/passwd file and make sure that no +user has uid 65535 or -1. Especially check the "nobody" user, as many +broken systems are shipped with nobody setup with a uid of 65535.</P> +<P>It might also mean that your OS has a trapdoor uid/gid system :-)</P> +<P>This means that once a process changes effective uid from root to +another user it can't go back to root. Unfortunately Samba relies on +being able to change effective uid from root to non-root and back +again to implement its security policy. If your OS has a trapdoor uid +system this won't work, and several things in Samba may break. Less +things will break if you use user or server level security instead of +the default share level security, but you may still strike +problems.</P> +<P>The problems don't give rise to any security holes, so don't panic, +but it does mean some of Samba's capabilities will be unavailable. +In particular you will not be able to connect to the Samba server as +two different uids at once. This may happen if you try to print as a +"guest" while accessing a share as a normal user. It may also affect +your ability to list the available shares as this is normally done as +the guest user.</P> +<P>Complain to your OS vendor and ask them to fix their system.</P> +<P>Note: the reason why 65535 is a VERY bad choice of uid and gid is that +it casts to -1 as a uid, and the setreuid() system call ignores (with +no error) uid changes to -1. This means any daemon attempting to run +as uid 65535 will actually run as root. This is not good!</P> + + +<HR> +<A HREF="sambafaq-1.html">Previous</A> +<A HREF="sambafaq-3.html">Next</A> +<A HREF="sambafaq.html#toc2">Table of Contents</A> +</BODY> +</HTML> diff --git a/docs/faq/sambafaq-3.html b/docs/faq/sambafaq-3.html new file mode 100644 index 0000000000..d7e0c7abd2 --- /dev/null +++ b/docs/faq/sambafaq-3.html @@ -0,0 +1,322 @@ +<HTML> +<HEAD> +<TITLE> Samba FAQ: Common client questions</TITLE> +</HEAD> +<BODY> +<A HREF="sambafaq-2.html">Previous</A> +<A HREF="sambafaq-4.html">Next</A> +<A HREF="sambafaq.html#toc3">Table of Contents</A> +<HR> +<H2><A NAME="s3">3. Common client questions</A></H2> + +<P> +<A NAME="client_questions"></A> +</P> + +<H2><A NAME="ss3.1">3.1 Are there any Macintosh clients for Samba?</A></H2> + +<P> +<A NAME="mac_clients"></A> + +Yes! Thursby now have a CIFS Client / Server called DAVE - see +<A HREF="http://www.thursby.com/">http://www.thursby.com/</A>. +They test it against Windows 95, Windows NT and samba for compatibility issues. +At the time of writing, DAVE was at version 1.0.1. The 1.0.0 to 1.0.1 update is available +as a free download from the Thursby web site (the speed of finder copies has +been greatly enhanced, and there are bug-fixes included).</P> +<P>Alternatives - There are two free implementations of AppleTalk for +several kinds of UNIX machnes, and several more commercial ones. +These products allow you to run file services and print services +natively to Macintosh users, with no additional support required on +the Macintosh. The two free omplementations are Netatalk, +<A HREF="http://www.umich.edu/~rsug/netatalk/">http://www.umich.edu/~rsug/netatalk/</A>, and CAP, +<A HREF="http://www.cs.mu.oz.au/appletalk/atalk.html">http://www.cs.mu.oz.au/appletalk/atalk.html</A>. What Samba offers +MS Windows users, these packages offer to Macs. For more info on +these packages, Samba, and Linux (and other UNIX-based systems) +see +<A HREF="http://www.eats.com/linux_mac_win.html">http://www.eats.com/linux_mac_win.html</A></P> + + +<H2><A NAME="ss3.2">3.2 "Session request failed (131,130)" error</A></H2> + +<P> +<A NAME="sess_req_fail"></A> + +The following answer is provided by John E. Miller:</P> +<P>I'll assume that you're able to ping back and forth between the +machines by IP address and name, and that you're using some security +model where you're confident that you've got user IDs and passwords +right. The logging options (-d3 or greater) can help a lot with that. +DNS and WINS configuration can also impact connectivity as well.</P> +<P>Now, on to 'scope id's. Somewhere in your Win95 TCP/IP network +configuration (I'm too much of an NT bigot to know where it's located +in the Win95 setup, but I'll have to learn someday since I teach for a +Microsoft Solution Provider Authorized Tech Education Center - what an +acronym...) <F>Note: It's under Control Panel | Network | TCP/IP | WINS +Configuration</F> there's a little text entry field called something like +'Scope ID'.</P> +<P>This field essentially creates 'invisible' sub-workgroups on the same +wire. Boxes can only see other boxes whose Scope IDs are set to the +exact same value - it's sometimes used by OEMs to configure their +boxes to browse only other boxes from the same vendor and, in most +environments, this field should be left blank. If you, in fact, have +something in this box that EXACT value (case-sensitive!) needs to be +provided to smbclient and nmbd as the -i (lowercase) parameter. So, if +your Scope ID is configured as the string 'SomeStr' in Win95 then +you'd have to use smbclient -iSomeStr <F>otherparms</F> in connecting to +it.</P> + + +<H2><A NAME="ss3.3">3.3 How do I synchronise my PC's clock with my Samba server? </A></H2> + +<P> +<A NAME="synchronise_clock"></A> + +To syncronize your PC's clock with your Samba server: +<UL> +<LI> Copy timesync.pif to your windows directory</LI> +<LI> timesync.pif can be found at: +<A HREF="http://samba.org/samba/binaries/miscellaneous/timesync.pif">http://samba.org/samba/binaries/miscellaneous/timesync.pif</A></LI> +<LI> Add timesync.pif to your 'Start Up' group/folder</LI> +<LI> Open the properties dialog box for the program/icon</LI> +<LI> Make sure the 'Run Minimized' option is set in program 'Properties'</LI> +<LI> Change the command line section that reads <F>\\sambahost</F> to reflect the name of your server.</LI> +<LI> Close the properties dialog box by choosing 'OK'</LI> +</UL> + +Each time you start your computer (or login for Win95) your PC will +synchronize its clock with your Samba server.</P> +<P>Alternativley, if you clients support Domain Logons, you can setup Domain Logons with Samba +- see: +<A HREF="ftp://samba.org/pub/samba/docs/BROWSING.txt">BROWSING.txt</A> *** for more information.</P> +<P>Then add +<BLOCKQUOTE><CODE> +<PRE> +NET TIME \\%L /SET /YES +</PRE> +</CODE></BLOCKQUOTE> + +as one of the lines in the logon script.</P> + +<H2><A NAME="ss3.4">3.4 Problems with WinDD, NTrigue, WinCenterPro etc</A></H2> + +<P> +<A NAME="multiple_session_clients"></A> +</P> +<P>All of the above programs are applications that sit on an NT box and +allow multiple users to access the NT GUI applications from remote +workstations (often over X).</P> +<P>What has this got to do with Samba? The problem comes when these users +use filemanager to mount shares from a Samba server. The most common +symptom is that the first user to connect get correct file permissions +and has a nice day, but subsequent connections get logged in as the +same user as the first person to login. They find that they cannot +access files in their own home directory, but that they can access +files in the first users home directory (maybe not such a nice day +after all?)</P> +<P>Why does this happen? The above products all share a common heritage +(and code base I believe). They all open just a single TCP based SMB +connection to the Samba server, and requests from all users are piped +over this connection. This is unfortunate, but not fatal.</P> +<P>It means that if you run your Samba server in share level security +(the default) then things will definately break as described +above. The share level SMB security model has no provision for +multiple user IDs on the one SMB connection. See +<A HREF="ftp://samba.org/pub/samba/docs/security_level.txt">security_level.txt</A> in +the docs for more info on share/user/server level security.</P> +<P>If you run in user or server level security then you have a chance, +but only if you have a recent version of Samba (at least 1.9.15p6). In +older versions bugs in Samba meant you still would have had problems.</P> +<P>If you have a trapdoor uid system in your OS then it will never work +properly. Samba needs to be able to switch uids on the connection and +it can't if your OS has a trapdoor uid system. You'll know this +because Samba will note it in your logs.</P> +<P>Also note that you should not use the magic "homes" share name with +products like these, as otherwise all users will end up with the same +home directory. Use <F>\\server\username</F> instead.</P> + + +<H2><A NAME="ss3.5">3.5 Problem with printers under NT</A></H2> + +<P> +<A NAME="nt_printers"></A> + +This info from Stefan Hergeth +hergeth@f7axp1.informatik.fh-muenchen.de may be useful:</P> +<P>A network-printer (with ethernetcard) is connected to the NT-Clients +via our UNIX-Fileserver (SAMBA-Server), like the configuration told by +Matthew Harrell harrell@leech.nrl.navy.mil (see WinNT.txt) +<OL> +<LI>If a user has choosen this printer as the default printer in his +NT-Session and this printer is not connected to the network +(e.g. switched off) than this user has a problem with the SAMBA- +connection of his filesystems. It's very slow. +</LI> +<LI>If the printer is connected to the network everything works fine. +</LI> +<LI>When the smbd ist started with debug level 3, you can see that the +NT spooling system try to connect to the printer many times. If the +printer ist not connected to the network this request fails and the +NT spooler is wasting a lot of time to connect to the printer service. +This seems to be the reason for the slow network connection. +</LI> +<LI>Maybe it's possible to change this behaviour by setting different +printer properties in the Print-Manager-Menu of NT, but i didn't try it yet.</LI> +</OL> +</P> + + +<H2><A NAME="ss3.6">3.6 Why are my file's timestamps off by an hour, or by a few hours?</A></H2> + +<P> +<A NAME="dst_bugs"></A> + +This is from Paul Eggert eggert@twinsun.com.</P> +<P>Most likely it's a problem with your time zone settings.</P> +<P>Internally, Samba maintains time in traditional Unix format, +namely, the number of seconds since 1970-01-01 00:00:00 Universal Time +(or ``GMT''), not counting leap seconds.</P> +<P>On the server side, Samba uses the Unix TZ variable to convert +internal timestamps to and from local time. So on the server side, there are +two things to get right. +<OL> +<LI>The Unix system clock must have the correct Universal time. +Use the shell command "sh -c 'TZ=UTC0 date'" to check this. +</LI> +<LI>The TZ environment variable must be set on the server +before Samba is invoked. The details of this depend on the +server OS, but typically you must edit a file whose name is +/etc/TIMEZONE or /etc/default/init, or run the command `zic -l'. +</LI> +<LI>TZ must have the correct value. +<OL> +<LI>If possible, use geographical time zone settings +(e.g. TZ='America/Los_Angeles' or perhaps +TZ=':US/Pacific'). These are supported by most +popular Unix OSes, are easier to get right, and are +more accurate for historical timestamps. If your +operating system has out-of-date tables, you should be +able to update them from the public domain time zone +tables at +<A HREF="ftp://elsie.nci.nih.gov/pub/">ftp://elsie.nci.nih.gov/pub/</A>. +</LI> +<LI>If your system does not support geographical timezone +settings, you must use a Posix-style TZ strings, e.g. +TZ='PST8PDT,M4.1.0/2,M10.5.0/2' for US Pacific time. +Posix TZ strings can take the following form (with optional +items in brackets): +<PRE> + StdOffset[Dst[Offset],Date/Time,Date/Time] +</PRE> + +where: +<UL> +<LI> `Std' is the standard time designation (e.g. `PST'). +</LI> +<LI> `Offset' is the number of hours behind UTC (e.g. `8'). +Prepend a `-' if you are ahead of UTC, and +append `:30' if you are at a half-hour offset. +Omit all the remaining items if you do not use +daylight-saving time. +</LI> +<LI> `Dst' is the daylight-saving time designation +(e.g. `PDT'). + +The optional second `Offset' is the number of +hours that daylight-saving time is behind UTC. +The default is 1 hour ahead of standard time. +</LI> +<LI> `Date/Time,Date/Time' specify when daylight-saving +time starts and ends. The format for a date is +`Mm.n.d', which specifies the dth day (0 is Sunday) +of the nth week of the mth month, where week 5 means +the last such day in the month. The format for a +time is <F>h</F>h<F>:mm[:ss</F>], using a 24-hour clock.</LI> +</UL> + +Other Posix string formats are allowed but you don't want +to know about them.</LI> +</OL> +</LI> +</OL> + +On the client side, you must make sure that your client's clock and +time zone is also set appropriately. <F>[I don't know how to do this.</F>] +Samba traditionally has had many problems dealing with time zones, due +to the bizarre ways that Microsoft network protocols handle time +zones. A common symptom is for file timestamps to be off by an hour. +To work around the problem, try disconnecting from your Samba server +and then reconnecting to it; or upgrade your Samba server to +1.9.16alpha10 or later.</P> + + +<H2><A NAME="ss3.7">3.7 How do I set the printer driver name correctly? </A></H2> + +<P> +<A NAME="printer_driver_name"></A> + +Question: +On NT, I opened "Printer Manager" and "Connect to Printer". +Enter <F>"\\ptdi270\ps1"</F> in the box of printer. I got the +following error message: +<BLOCKQUOTE><CODE> +<PRE> + You do not have sufficient access to your machine + to connect to the selected printer, since a driver + needs to be installed locally. +</PRE> +</CODE></BLOCKQUOTE> + +Answer:</P> +<P>In the more recent versions of Samba you can now set the "printer +driver" in smb.conf. This tells the client what driver to use. For +example: +<BLOCKQUOTE><CODE> +<PRE> + printer driver = HP LaserJet 4L +</PRE> +</CODE></BLOCKQUOTE> + +with this, NT knows to use the right driver. You have to get this string +exactly right.</P> +<P>To find the exact string to use, you need to get to the dialog box in +your client where you select which printer driver to install. The +correct strings for all the different printers are shown in a listbox +in that dialog box.</P> +<P>You could also try setting the driver to NULL like this: +<BLOCKQUOTE><CODE> +<PRE> + printer driver = NULL +</PRE> +</CODE></BLOCKQUOTE> + +this is effectively what older versions of Samba did, so if that +worked for you then give it a go. If this does work then let us know via +<A HREF="mailto:samba@samba.org">samba@samba.org</A>, +and we'll make it the default. Currently the default is a 0 length +string.</P> + + +<H2><A NAME="ss3.8">3.8 I've applied NT 4.0 SP3, and now I can't access Samba shares, Why?</A></H2> + +<P> +<A NAME="NT_SP3_FIX"></A> + +As of SP3, Microsoft has decided that they will no longer default to +passing clear text passwords over the network. To enable access to +Samba shares from NT 4.0 SP3, you must do <B>ONE</B> of two things: +<OL> +<LI> Set the Samba configuration option 'security = user' and implement all of the stuff detailed in +<A HREF="ftp://samba.org/pub/samba/docs/ENCRYPTION.txt">ENCRYPTION.txt</A>.</LI> +<LI> Follow Microsoft's directions for setting your NT box to allow plain text passwords. see +<A HREF="http://www.microsoft.com/kb/articles/q166/7/30.htm">Knowledge Base Article Q166730</A></LI> +</OL> +</P> + + +<HR> +<A HREF="sambafaq-2.html">Previous</A> +<A HREF="sambafaq-4.html">Next</A> +<A HREF="sambafaq.html#toc3">Table of Contents</A> +</BODY> +</HTML> diff --git a/docs/faq/sambafaq-4.html b/docs/faq/sambafaq-4.html new file mode 100644 index 0000000000..94d5c41990 --- /dev/null +++ b/docs/faq/sambafaq-4.html @@ -0,0 +1,37 @@ +<HTML> +<HEAD> +<TITLE> Samba FAQ: Specific client application problems</TITLE> +</HEAD> +<BODY> +<A HREF="sambafaq-3.html">Previous</A> +<A HREF="sambafaq-5.html">Next</A> +<A HREF="sambafaq.html#toc4">Table of Contents</A> +<HR> +<H2><A NAME="s4">4. Specific client application problems</A></H2> + +<P> +<A NAME="client_problems"></A> +</P> + +<H2><A NAME="ss4.1">4.1 MS Office Setup reports "Cannot change properties of '\MSOFFICE\SETUP.INI'"</A></H2> + +<P> +<A NAME="cant_change_properties"></A> + +When installing MS Office on a Samba drive for which you have admin +user permissions, ie. admin users = username, you will find the +setup program unable to complete the installation.</P> +<P>To get around this problem, do the installation without admin user +permissions The problem is that MS Office Setup checks that a file is +rdonly by trying to open it for writing.</P> +<P>Admin users can always open a file for writing, as they run as root. +You just have to install as a non-admin user and then use "chown -R" +to fix the owner.</P> + + +<HR> +<A HREF="sambafaq-3.html">Previous</A> +<A HREF="sambafaq-5.html">Next</A> +<A HREF="sambafaq.html#toc4">Table of Contents</A> +</BODY> +</HTML> diff --git a/docs/faq/sambafaq-5.html b/docs/faq/sambafaq-5.html new file mode 100644 index 0000000000..0a6e9d08f0 --- /dev/null +++ b/docs/faq/sambafaq-5.html @@ -0,0 +1,30 @@ +<HTML> +<HEAD> +<TITLE> Samba FAQ: Miscellaneous</TITLE> +</HEAD> +<BODY> +<A HREF="sambafaq-4.html">Previous</A> +Next +<A HREF="sambafaq.html#toc5">Table of Contents</A> +<HR> +<H2><A NAME="s5">5. Miscellaneous</A></H2> + +<P> +<A NAME="miscellaneous"></A> +</P> +<H2><A NAME="ss5.1">5.1 Is Samba Year 2000 compliant?</A></H2> + +<P> +<A NAME="Year2000Compliant"></A> + +The CIFS protocol that Samba implements +negotiates times in various formats, all of which +are able to cope with dates beyond 2000.</P> + + +<HR> +<A HREF="sambafaq-4.html">Previous</A> +Next +<A HREF="sambafaq.html#toc5">Table of Contents</A> +</BODY> +</HTML> diff --git a/docs/faq/sambafaq.html b/docs/faq/sambafaq.html new file mode 100644 index 0000000000..2c703885cd --- /dev/null +++ b/docs/faq/sambafaq.html @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<HTML> +<HEAD> +<TITLE> Samba FAQ</TITLE> +</HEAD> +<BODY> +Previous +<A HREF="sambafaq-1.html">Next</A> +Table of Contents +<HR> +<H1> Samba FAQ</H1> + +<H2>Paul Blackman, <CODE>ictinus@samba.org</CODE></H2>v 0.8, June '97 +<P><HR><EM> This is the Frequently Asked Questions (FAQ) document for +Samba, the free and very popular SMB server product. An SMB server +allows file and printer connections from clients such as Windows, +OS/2, Linux and others. Current to version 1.9.17. Please send any +corrections to the author.</EM><HR></P> +<P> +<H2><A NAME="toc1">1.</A> <A HREF="sambafaq-1.html">General Information</A></H2> +<UL> +<LI><A HREF="sambafaq-1.html#ss1.1">1.1 What is Samba? </A> +<LI><A HREF="sambafaq-1.html#ss1.2">1.2 What is the current version of Samba? </A> +<LI><A HREF="sambafaq-1.html#ss1.3">1.3 Where can I get it? </A> +<LI><A HREF="sambafaq-1.html#ss1.4">1.4 What do the version numbers mean? </A> +<LI><A HREF="sambafaq-1.html#ss1.5">1.5 What platforms are supported? </A> +<LI><A HREF="sambafaq-1.html#ss1.6">1.6 How can I find out more about Samba? </A> +<LI><A HREF="sambafaq-1.html#ss1.7">1.7 How do I subscribe to the Samba Mailing Lists?</A> +<LI><A HREF="sambafaq-1.html#ss1.8">1.8 Something's gone wrong - what should I do? </A> +<LI><A HREF="sambafaq-1.html#ss1.9">1.9 Pizza supply details </A> +</UL> + +<P> +<H2><A NAME="toc2">2.</A> <A HREF="sambafaq-2.html">Compiling and installing Samba on a Unix host</A></H2> +<UL> +<LI><A HREF="sambafaq-2.html#ss2.1">2.1 I can't see the Samba server in any browse lists!</A> +<LI><A HREF="sambafaq-2.html#ss2.2">2.2 Some files that I KNOW are on the server doesn't show up when I view the files from my client! </A> +<LI><A HREF="sambafaq-2.html#ss2.3">2.3 Some files on the server show up with really wierd filenames when I view the files from my client! </A> +<LI><A HREF="sambafaq-2.html#ss2.4">2.4 My client reports "cannot locate specified computer" or similar</A> +<LI><A HREF="sambafaq-2.html#ss2.5">2.5 My client reports "cannot locate specified share name" or similar</A> +<LI><A HREF="sambafaq-2.html#ss2.6">2.6 My client reports "cannot find domain controller", "cannot log on to the network" or similar </A> +<LI><A HREF="sambafaq-2.html#ss2.7">2.7 Printing doesn't work :-(</A> +<LI><A HREF="sambafaq-2.html#ss2.8">2.8 My programs install on the server OK, but refuse to work properly</A> +<LI><A HREF="sambafaq-2.html#ss2.9">2.9 My "server string" doesn't seem to be recognised</A> +<LI><A HREF="sambafaq-2.html#ss2.10">2.10 My client reports "This server is not configured to list shared resources" </A> +<LI><A HREF="sambafaq-2.html#ss2.11">2.11 Log message "you appear to have a trapdoor uid system" </A> +</UL> + +<P> +<H2><A NAME="toc3">3.</A> <A HREF="sambafaq-3.html">Common client questions</A></H2> +<UL> +<LI><A HREF="sambafaq-3.html#ss3.1">3.1 Are there any Macintosh clients for Samba?</A> +<LI><A HREF="sambafaq-3.html#ss3.2">3.2 "Session request failed (131,130)" error</A> +<LI><A HREF="sambafaq-3.html#ss3.3">3.3 How do I synchronise my PC's clock with my Samba server? </A> +<LI><A HREF="sambafaq-3.html#ss3.4">3.4 Problems with WinDD, NTrigue, WinCenterPro etc</A> +<LI><A HREF="sambafaq-3.html#ss3.5">3.5 Problem with printers under NT</A> +<LI><A HREF="sambafaq-3.html#ss3.6">3.6 Why are my file's timestamps off by an hour, or by a few hours?</A> +<LI><A HREF="sambafaq-3.html#ss3.7">3.7 How do I set the printer driver name correctly? </A> +<LI><A HREF="sambafaq-3.html#ss3.8">3.8 I've applied NT 4.0 SP3, and now I can't access Samba shares, Why?</A> +</UL> + +<P> +<H2><A NAME="toc4">4.</A> <A HREF="sambafaq-4.html">Specific client application problems</A></H2> +<UL> +<LI><A HREF="sambafaq-4.html#ss4.1">4.1 MS Office Setup reports "Cannot change properties of '\MSOFFICE\SETUP.INI'"</A> +</UL> + +<P> +<H2><A NAME="toc5">5.</A> <A HREF="sambafaq-5.html">Miscellaneous</A></H2> +<UL> +<LI><A HREF="sambafaq-5.html#ss5.1">5.1 Is Samba Year 2000 compliant?</A> +</UL> + + +<HR> +Previous +<A HREF="sambafaq-1.html">Next</A> +Table of Contents +</BODY> +</HTML> diff --git a/docs/faq/sambafaq.sgml b/docs/faq/sambafaq.sgml new file mode 100644 index 0000000000..a80981a1e9 --- /dev/null +++ b/docs/faq/sambafaq.sgml @@ -0,0 +1,793 @@ +<!doctype linuxdoc system> <!-- -*- SGML -*- --> +<!-- + v 0.5 18 Oct 1996 Dan Shearer Dan.Shearer@unisa.edu.au + First linuxdoc-sgml version, outline only + v 0.6 25 Oct 1996 Dan + Filled in from current text faq + v 0.7 1 June 1997 Paul + Replicated changes in txt faq to sgml faq + 9 June 1997 Paul + Lots of changes, added doco list, updated compatible systems list + added NT SP3 entry, added Year 2000 entry, Getting ready for 1.9.17 + v 0.8 7th Oct 97 Paul + changed samba.canberra entries to samba.anu.../samba/ +--> + +<article> + +<title> Samba FAQ + +<author>Paul Blackman, <tt>ictinus@samba.org</tt> +<author>Jelmer Vernooij, <tt>jelmer@samba.org</tt> + +<date>v 1.0, August 2002 + +<abstract> This is the Frequently Asked Questions (FAQ) document for +Samba, the free and very popular SMB server product. An SMB server +allows file and printer connections from clients such as Windows, +OS/2, Linux and others. Current to version 3.0. Please send any +corrections to the author. +</abstract> + +<toc> + +<sect> General Information<p> <label id="general_info"> + +All about Samba - what it is, how to get it, related sources of +information, how to understand the version numbering scheme, pizza +details + +<sect1> What is Samba? <p> <label id="introduction"> +Samba is a suite of programs which work together to allow clients to +access to a server's filespace and printers via the SMB (Server +Message Block) protocol. Initially written for Unix, Samba now also +runs on Netware, OS/2 and VMS. + +In practice, this means that you can redirect disks and printers to +Unix disks and printers from Lan Manager clients, Windows for +Workgroups 3.11 clients, Windows NT clients, Linux clients and OS/2 +clients. There is also a generic Unix client program supplied as part +of the suite which allows Unix users to use an ftp-like interface to +access filespace and printers on any other SMB servers. This gives the +capability for these operating systems to behave much like a LAN +Server or Windows NT Server machine, only with added functionality and +flexibility designed to make life easier for administrators. + +The components of the suite are (in summary): + +<itemize> +<item><bf>smbd</bf>, the SMB server. This handles actual connections from clients, doing all the file, permission and username work +<item><bf>nmbd</bf>, the Netbios name server, which helps clients locate servers, doing the browsing work and managing domains as this capability is being built into Samba +<item><bf>smbclient</bf>, the Unix-hosted client program +<item><bf>smbrun</bf>, a little 'glue' program to help the server run external programs +<item><bf>testprns</bf>, a program to test server access to printers +<item><bf>testparms</bf>, a program to test the Samba configuration file for correctness +<item><bf>smb.conf</bf>, the Samba configuration file +<item><bf>smbprint</bf>, a sample script to allow a Unix host to use smbclient to print to an SMB server +<item><bf>Documentation!</bf> DON'T neglect to read it - you will save a great deal of time! +</itemize> + +The suite is supplied with full source (of course!) and is GPLed. + +The primary creator of the Samba suite is Andrew Tridgell. Later +versions incorporate much effort by many net.helpers. The man pages +and this FAQ were originally written by Karl Auer. + +<sect1> What is the current version of Samba? <p><label id="current_version"> +At time of writing, the current version was 1.9.17. If you want to be +sure check the bottom of the change-log file. <url url="ftp://samba.org/pub/samba/alpha/change-log"> + +For more information see <ref id="version_nums" name="What do the +version numbers mean?"> + +<sect1> Where can I get it? <p> <label id="where"> +The Samba suite is available via anonymous ftp from +samba.org. The latest and greatest versions of the suite are in +the directory: + +/pub/samba/ + +Development (read "alpha") versions, which are NOT necessarily stable +and which do NOT necessarily have accurate documentation, are +available in the directory: + +/pub/samba/alpha + +Note that binaries are NOT included in any of the above. Samba is +distributed ONLY in source form, though binaries may be available from +other sites. Recent versions of some Linux distributions, for example, +do contain Samba binaries for that platform. + +<sect1> What do the version numbers mean? <p> <label id="version_nums"> +It is not recommended that you run a version of Samba with the word +"alpha" in its name unless you know what you are doing and are willing +to do some debugging. Many, many people just get the latest +recommended stable release version and are happy. If you are brave, by +all means take the plunge and help with the testing and development - +but don't install it on your departmental server. Samba is typically +very stable and safe, and this is mostly due to the policy of many +public releases. + +How the scheme works: +<enum> +<item>When major changes are made the version number is increased. For +example, the transition from 1.9.15 to 1.9.16. However, this version +number will not appear immediately and people should continue to use +1.9.15 for production systems (see next point.) + +<item>Just after major changes are made the software is considered +unstable, and a series of alpha releases are distributed, for example +1.9.16alpha1. These are for testing by those who know what they are +doing. The "alpha" in the filename will hopefully scare off those who +are just looking for the latest version to install. + +<item>When Andrew thinks that the alphas have stabilised to the point +where he would recommend new users install it, he renames it to the +same version number without the alpha, for example 1.9.16. + +<item>Inevitably bugs are found in the "stable" releases and minor patch +levels are released which give us the pXX series, for example 1.9.16p2. +</enum> +So the progression goes: +<verb> + 1.9.15p7 (production) + 1.9.15p8 (production) + 1.9.16alpha1 (test sites only) + : + 1.9.16alpha20 (test sites only) + 1.9.16 (production) + 1.9.16p1 (production) +</verb> +The above system means that whenever someone looks at the samba ftp +site they will be able to grab the highest numbered release without an +alpha in the name and be sure of getting the current recommended +version. + +<sect1> What platforms are supported? <p> <label id="platforms"> +Many different platforms have run Samba successfully. The platforms +most widely used and thus best tested are Linux and SunOS. + +At time of writing, the Makefile claimed support for: +<itemize> +<item> A/UX 3.0 +<item> AIX +<item> Altos Series 386/1000 +<item> Amiga +<item> Apollo Domain/OS sr10.3 +<item> BSDI +<item> B.O.S. (Bull Operating System) +<item> Cray, Unicos 8.0 +<item> Convex +<item> DGUX. +<item> DNIX. +<item> FreeBSD +<item> HP-UX +<item> Intergraph. +<item> Linux with/without shadow passwords and quota +<item> LYNX 2.3.0 +<item> MachTen (a unix like system for Macintoshes) +<item> Motorola 88xxx/9xx range of machines +<item> NetBSD +<item> NEXTSTEP Release 2.X, 3.0 and greater (including OPENSTEP for Mach). +<item> OS/2 using EMX 0.9b +<item> OSF1 +<item> QNX 4.22 +<item> RiscIX. +<item> RISCOs 5.0B +<item> SEQUENT. +<item> SCO (including: 3.2v2, European dist., OpenServer 5) +<item> SGI. +<item> SMP_DC.OSx v1.1-94c079 on Pyramid S series +<item> SONY NEWS, NEWS-OS (4.2.x and 6.1.x) +<item> SUNOS 4 +<item> SUNOS 5.2, 5.3, and 5.4 (Solaris 2.2, 2.3, and '2.4 and later') +<item> Sunsoft ISC SVR3V4 +<item> SVR4 +<item> System V with some berkely extensions (Motorola 88k R32V3.2). +<item> ULTRIX. +<item> UNIXWARE +<item> UXP/DS +</itemize> + +<sect1> How can I find out more about Samba? <p> <label id="more"> +There are a number of places to look for more information on Samba, including: +<itemize> +<item>Two mailing lists devoted to discussion of Samba-related matters. +<item>The newsgroup, comp.protocols.smb, which has a great deal of discussion on Samba. +<item>The WWW site 'SAMBA Web Pages' at <url url="http://samba.edu.au/samba/"> includes: + <itemize> + <item>Links to man pages and documentation, including this FAQ + <item>A comprehensive survey of Samba users. + <item>A searchable hypertext archive of the Samba mailing list. + <item>Links to Samba source code, binaries, and mirrors of both. + </itemize> +<item>The long list of topic documentation. These files can be found in the 'docs' directory of the Samba source, or at <url url="ftp://samba.org/pub/samba/docs/"> + <itemize> + <item><url url="ftp://samba.org/pub/samba/docs/Application_Serving.txt" name="Application_Serving.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/BROWSING.txt" name="BROWSING.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/BUGS.txt" name="BUGS.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/DIAGNOSIS.txt" name="DIAGNOSIS.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/DNIX.txt" name="DNIX.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/DOMAIN.txt" name="DOMAIN.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/DOMAIN_CONTROL.txt" name="CONTROL.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/ENCRYPTION.txt" name="ENCRYPTION.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/Faxing.txt" name="Faxing.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/GOTCHAS.txt" name="GOTCHAS.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/HINTS.txt" name="HINTS.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/INSTALL.sambatar" name="INSTALL.sambatar"> + <item><url url="ftp://samba.org/pub/samba/docs/INSTALL.txt" name="INSTALL.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/MIRRORS" name="MIRRORS"> + <item><url url="ftp://samba.org/pub/samba/docs/NetBIOS.txt" name="NetBIOS.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/OS2.txt" name="OS2.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/PROJECTS" name="PROJECTS"> + <item><url url="ftp://samba.org/pub/samba/docs/Passwords.txt" name="Passwords.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/Printing.txt" name="Printing.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/README.DCEDFS" name="README.DCEDFS"> + <item><url url="ftp://samba.org/pub/samba/docs/README.OS2" name="README.OS2"> + <item><url url="ftp://samba.org/pub/samba/docs/README.jis" name="README.jis"> + <item><url url="ftp://samba.org/pub/samba/docs/README.sambatar" name="README.sambatar"> + <item><url url="ftp://samba.org/pub/samba/docs/SCO.txt" name="SCO.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/SMBTAR.notes" name="SMBTAR.notes"> + <item><url url="ftp://samba.org/pub/samba/docs/Speed.txt" name="Speed.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/Support.txt" name="Support.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/THANKS" name="THANKS"> + <item><url url="ftp://samba.org/pub/samba/docs/Tracing.txt" name="Tracing.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/UNIX-SMB.txt" name="SMB.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/Warp.txt" name="Warp.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/WinNT.txt" name="WinNT.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/history" name="history"> + <item><url url="ftp://samba.org/pub/samba/docs/security_level.txt" name="level.txt"> + <item><url url="ftp://samba.org/pub/samba/docs/wfw_slip.htm" name="slip.htm"> + </itemize> +</itemize> + +<sect1>How do I subscribe to the Samba Mailing Lists?<p><label id="mailinglist"> +Send email to <htmlurl url="mailto:listproc@samba.org" name="listproc@samba.org">. Make sure the subject line is +blank, and include the following two lines in the body of the message: +<tscreen><verb> +subscribe samba Firstname Lastname +subscribe samba-announce Firstname Lastname +</verb></tscreen> +Obviously you should substitute YOUR first name for "Firstname" and +YOUR last name for "Lastname"! Try not to send any signature stuff, it +sometimes confuses the list processor. + +The samba list is a digest list - every eight hours or so it +regurgitates a single message containing all the messages that have +been received by the list since the last time and sends a copy of this +message to all subscribers. + +If you stop being interested in Samba, please send another email to +<htmlurl url="mailto:listproc@samba.org" name="listproc@samba.org">. Make sure the subject line is blank, and +include the following two lines in the body of the message: +<tscreen><verb> +unsubscribe samba +unsubscribe samba-announce +</verb></tscreen> +The <bf>From:</bf> line in your message <em>MUST</em> be the same address you used when +you subscribed. + +<sect1> Something's gone wrong - what should I do? <p> <label id="wrong"> +<bf>[#] *** IMPORTANT! *** [#]</bf> +<p>DO NOT post messages on mailing lists or in newsgroups until you have +carried out the first three steps given here! + +Firstly, see if there are any likely looking entries in this FAQ! If +you have just installed Samba, have you run through the checklist in +<url url="ftp://samba.org/pub/samba/DIAGNOSIS.txt" name="DIAGNOSIS.txt">? It can save you a lot of time and effort. +DIAGNOSIS.txt can also be found in the docs directory of the Samba distribution. + +Secondly, read the man pages for smbd, nmbd and smb.conf, looking for +topics that relate to what you are trying to do. + +Thirdly, if there is no obvious solution to hand, try to get a look at +the log files for smbd and/or nmbd for the period during which you +were having problems. You may need to reconfigure the servers to +provide more extensive debugging information - usually level 2 or +level 3 provide ample debugging info. Inspect these logs closely, +looking particularly for the string "Error:". + +Fourthly, if you still haven't got anywhere, ask the mailing list or +newsgroup. In general nobody minds answering questions provided you +have followed the preceding steps. It might be a good idea to scan the +archives of the mailing list, which are available through the Samba +web site described in the previous +section. + +If you successfully solve a problem, please mail the FAQ maintainer a +succinct description of the symptom, the problem and the solution, so +I can incorporate it in the next version. + +If you make changes to the source code, _please_ submit these patches +so that everyone else gets the benefit of your work. This is one of +the most important aspects to the maintainence of Samba. Send all +patches to <htmlurl url="mailto:samba-patches@samba.org" name="samba-patches@samba.org">. Do not send patches to Andrew Tridgell or any +other individual, they may be lost if you do. + +<sect1> Pizza supply details <p> <label id="pizza"> +Those who have registered in the Samba survey as "Pizza Factory" will +already know this, but the rest may need some help. Andrew doesn't ask +for payment, but he does appreciate it when people give him +pizza. This calls for a little organisation when the pizza donor is +twenty thousand kilometres away, but it has been done. + +Method 1: Ring up your local branch of an international pizza chain +and see if they honour their vouchers internationally. Pizza Hut do, +which is how the entire Canberra Linux Users Group got to eat pizza +one night, courtesy of someone in the US + +Method 2: Ring up a local pizza shop in Canberra and quote a credit +card number for a certain amount, and tell them that Andrew will be +collecting it (don't forget to tell him.) One kind soul from Germany +did this. + +Method 3: Purchase a pizza voucher from your local pizza shop that has +no international affiliations and send it to Andrew. It is completely +useless but he can hang it on the wall next to the one he already has +from Germany :-) + +Method 4: Air freight him a pizza with your favourite regional +flavours. It will probably get stuck in customs or torn apart by +hungry sniffer dogs but it will have been a noble gesture. + +<sect>Compiling and installing Samba on a Unix host<p><label id="unix_install"> + +<sect1>I can't see the Samba server in any browse lists!<p><label id="no_browse"> + See <url url="ftp://samba.org/pub/samba/BROWSING.txt" name="BROWSING.txt"> + for more information on browsing. Browsing.txt can also be found + in the docs directory of the Samba source. + +If your GUI client does not permit you to select non-browsable +servers, you may need to do so on the command line. For example, under +Lan Manager you might connect to the above service as disk drive M: +thusly: +<tscreen><verb> + net use M: \\mary\fred +</verb></tscreen> +The details of how to do this and the specific syntax varies from +client to client - check your client's documentation. + +<sect1>Some files that I KNOW are on the server doesn't show up when I view the files from my client! <p> <label id="missing_files"> +See the next question. +<sect1>Some files on the server show up with really wierd filenames when I view the files from my client! <p> <label id="strange_filenames"> +If you check what files are not showing up, you will note that they +are files which contain upper case letters or which are otherwise not +DOS-compatible (ie, they are not legal DOS filenames for some reason). + +The Samba server can be configured either to ignore such files +completely, or to present them to the client in "mangled" form. If you +are not seeing the files at all, the Samba server has most likely been +configured to ignore them. Consult the man page smb.conf(5) for +details of how to change this - the parameter you need to set is +"mangled names = yes". + +<sect1>My client reports "cannot locate specified computer" or similar<p><label id="cant_see_server"> +This indicates one of three things: You supplied an incorrect server +name, the underlying TCP/IP layer is not working correctly, or the +name you specified cannot be resolved. + +After carefully checking that the name you typed is the name you +should have typed, try doing things like pinging a host or telnetting +to somewhere on your network to see if TCP/IP is functioning OK. If it +is, the problem is most likely name resolution. + +If your client has a facility to do so, hardcode a mapping between the +hosts IP and the name you want to use. For example, with Lan Manager +or Windows for Workgroups you would put a suitable entry in the file +LMHOSTS. If this works, the problem is in the communication between +your client and the netbios name server. If it does not work, then +there is something fundamental wrong with your naming and the solution +is beyond the scope of this document. + +If you do not have any server on your subnet supplying netbios name +resolution, hardcoded mappings are your only option. If you DO have a +netbios name server running (such as the Samba suite's nmbd program), +the problem probably lies in the way it is set up. Refer to Section +Two of this FAQ for more ideas. + +By the way, remember to REMOVE the hardcoded mapping before further +tests :-) + +<sect1>My client reports "cannot locate specified share name" or similar<p> <label id="cant_see_share"> +This message indicates that your client CAN locate the specified +server, which is a good start, but that it cannot find a service of +the name you gave. + +The first step is to check the exact name of the service you are +trying to connect to (consult your system administrator). Assuming it +exists and you specified it correctly (read your client's docs on how +to specify a service name correctly), read on: + +<itemize> +<item> Many clients cannot accept or use service names longer than eight characters. +<item> Many clients cannot accept or use service names containing spaces. +<item> Some servers (not Samba though) are case sensitive with service names. +<item> Some clients force service names into upper case. +</itemize> + +<sect1>My client reports "cannot find domain controller", "cannot log on to the network" or similar <p> <label id="cant_see_net"> +Nothing is wrong - Samba does not implement the primary domain name +controller stuff for several reasons, including the fact that the +whole concept of a primary domain controller and "logging in to a +network" doesn't fit well with clients possibly running on multiuser +machines (such as users of smbclient under Unix). Having said that, +several developers are working hard on building it in to the next +major version of Samba. If you can contribute, send a message to +<htmlurl url="mailto:samba@samba.org" name="samba@samba.org"> ! + +Seeing this message should not affect your ability to mount redirected +disks and printers, which is really what all this is about. + +For many clients (including Windows for Workgroups and Lan Manager), +setting the domain to STANDALONE at least gets rid of the message. + +<sect1>Printing doesn't work :-(<p> <label id="no_printing"> +Make sure that the specified print command for the service you are +connecting to is correct and that it has a fully-qualified path (eg., +use "/usr/bin/lpr" rather than just "lpr"). + +Make sure that the spool directory specified for the service is +writable by the user connected to the service. In particular the user +"nobody" often has problems with printing, even if it worked with an +earlier version of Samba. Try creating another guest user other than +"nobody". + +Make sure that the user specified in the service is permitted to use +the printer. + +Check the debug log produced by smbd. Search for the printer name and +see if the log turns up any clues. Note that error messages to do with +a service ipc$ are meaningless - they relate to the way the client +attempts to retrieve status information when using the LANMAN1 +protocol. + +If using WfWg then you need to set the default protocol to TCP/IP, not +Netbeui. This is a WfWg bug. + +If using the Lanman1 protocol (the default) then try switching to +coreplus. Also not that print status error messages don't mean +printing won't work. The print status is received by a different +mechanism. + +<sect1>My programs install on the server OK, but refuse to work properly<p><label id="programs_wont_run"> +There are numerous possible reasons for this, but one MAJOR +possibility is that your software uses locking. Make sure you are +using Samba 1.6.11 or later. It may also be possible to work around +the problem by setting "locking=no" in the Samba configuration file +for the service the software is installed on. This should be regarded +as a strictly temporary solution. + +In earlier Samba versions there were some difficulties with the very +latest Microsoft products, particularly Excel 5 and Word for Windows +6. These should have all been solved. If not then please let Andrew +Tridgell know via email at <htmlurl url="mailto:samba@samba.org" name="samba@samba.org">. + +<sect1>My "server string" doesn't seem to be recognised<p><label id="bad_server_string"> +OR My client reports the default setting, eg. "Samba 1.9.15p4", instead +of what I have changed it to in the smb.conf file. + +You need to use the -C option in nmbd. The "server string" affects +what smbd puts out and -C affects what nmbd puts out. + +Current versions of Samba (1.9.16 +) have combined these options into +the "server string" field of smb.conf, -C for nmbd is now obsolete. + +<sect1>My client reports "This server is not configured to list shared resources" <p> <label id="cant_list_shares"> +Your guest account is probably invalid for some reason. Samba uses the +guest account for browsing in smbd. Check that your guest account is +valid. + +See also 'guest account' in smb.conf man page. + +<sect1>Log message "you appear to have a trapdoor uid system" <p><label id="trapdoor_uid"> +This can have several causes. It might be because you are using a uid +or gid of 65535 or -1. This is a VERY bad idea, and is a big security +hole. Check carefully in your /etc/passwd file and make sure that no +user has uid 65535 or -1. Especially check the "nobody" user, as many +broken systems are shipped with nobody setup with a uid of 65535. + +It might also mean that your OS has a trapdoor uid/gid system :-) + +This means that once a process changes effective uid from root to +another user it can't go back to root. Unfortunately Samba relies on +being able to change effective uid from root to non-root and back +again to implement its security policy. If your OS has a trapdoor uid +system this won't work, and several things in Samba may break. Less +things will break if you use user or server level security instead of +the default share level security, but you may still strike +problems. + +The problems don't give rise to any security holes, so don't panic, +but it does mean some of Samba's capabilities will be unavailable. +In particular you will not be able to connect to the Samba server as +two different uids at once. This may happen if you try to print as a +"guest" while accessing a share as a normal user. It may also affect +your ability to list the available shares as this is normally done as +the guest user. + +Complain to your OS vendor and ask them to fix their system. + +Note: the reason why 65535 is a VERY bad choice of uid and gid is that +it casts to -1 as a uid, and the setreuid() system call ignores (with +no error) uid changes to -1. This means any daemon attempting to run +as uid 65535 will actually run as root. This is not good! + +<sect>Common client questions<p> <label id="client_questions"> + +<sect1>Are there any Macintosh clients for Samba?<p> <label id="mac_clients"> +Yes! Thursby now have a CIFS Client / Server called DAVE - see <url url="http://www.thursby.com/">. +They test it against Windows 95, Windows NT and samba for compatibility issues. +At the time of writing, DAVE was at version 1.0.1. The 1.0.0 to 1.0.1 update is available +as a free download from the Thursby web site (the speed of finder copies has +been greatly enhanced, and there are bug-fixes included). + +Alternatives - There are two free implementations of AppleTalk for +several kinds of UNIX machnes, and several more commercial ones. +These products allow you to run file services and print services +natively to Macintosh users, with no additional support required on +the Macintosh. The two free omplementations are Netatalk, +<url url="http://www.umich.edu/~rsug/netatalk/">, and CAP, +<url url="http://www.cs.mu.oz.au/appletalk/atalk.html">. What Samba offers +MS Windows users, these packages offer to Macs. For more info on +these packages, Samba, and Linux (and other UNIX-based systems) +see <url url="http://www.eats.com/linux_mac_win.html"> + +<sect1>"Session request failed (131,130)" error<p> <label id="sess_req_fail"> +The following answer is provided by John E. Miller: + +I'll assume that you're able to ping back and forth between the +machines by IP address and name, and that you're using some security +model where you're confident that you've got user IDs and passwords +right. The logging options (-d3 or greater) can help a lot with that. +DNS and WINS configuration can also impact connectivity as well. + +Now, on to 'scope id's. Somewhere in your Win95 TCP/IP network +configuration (I'm too much of an NT bigot to know where it's located +in the Win95 setup, but I'll have to learn someday since I teach for a +Microsoft Solution Provider Authorized Tech Education Center - what an +acronym...) [Note: It's under Control Panel | Network | TCP/IP | WINS +Configuration] there's a little text entry field called something like +'Scope ID'. + +This field essentially creates 'invisible' sub-workgroups on the same +wire. Boxes can only see other boxes whose Scope IDs are set to the +exact same value - it's sometimes used by OEMs to configure their +boxes to browse only other boxes from the same vendor and, in most +environments, this field should be left blank. If you, in fact, have +something in this box that EXACT value (case-sensitive!) needs to be +provided to smbclient and nmbd as the -i (lowercase) parameter. So, if +your Scope ID is configured as the string 'SomeStr' in Win95 then +you'd have to use smbclient -iSomeStr [otherparms] in connecting to +it. + +<sect1>How do I synchronise my PC's clock with my Samba server? <p><label id="synchronise_clock"> +To syncronize your PC's clock with your Samba server: +<itemize> +<item> Copy timesync.pif to your windows directory + <item> timesync.pif can be found at: + <url +url="http://samba.org/samba/binaries/miscellaneous/timesync.pif"> +<item> Add timesync.pif to your 'Start Up' group/folder +<item> Open the properties dialog box for the program/icon +<item> Make sure the 'Run Minimized' option is set in program 'Properties' +<iteM> Change the command line section that reads [\\sambahost] to reflect the name of your server. +<item> Close the properties dialog box by choosing 'OK' +</itemize> +Each time you start your computer (or login for Win95) your PC will +synchronize its clock with your Samba server. + +Alternativley, if you clients support Domain Logons, you can setup Domain Logons with Samba + - see: <url url="ftp://samba.org/pub/samba/docs/BROWSING.txt" name="BROWSING.txt"> *** for more information. +<p>Then add +<tscreen><verb> +NET TIME \\%L /SET /YES +</verb></tscreen> +as one of the lines in the logon script. +<sect1>Problems with WinDD, NTrigue, WinCenterPro etc<p> +<label id="multiple_session_clients"> + +All of the above programs are applications that sit on an NT box and +allow multiple users to access the NT GUI applications from remote +workstations (often over X). + +What has this got to do with Samba? The problem comes when these users +use filemanager to mount shares from a Samba server. The most common +symptom is that the first user to connect get correct file permissions +and has a nice day, but subsequent connections get logged in as the +same user as the first person to login. They find that they cannot +access files in their own home directory, but that they can access +files in the first users home directory (maybe not such a nice day +after all?) + +Why does this happen? The above products all share a common heritage +(and code base I believe). They all open just a single TCP based SMB +connection to the Samba server, and requests from all users are piped +over this connection. This is unfortunate, but not fatal. + +It means that if you run your Samba server in share level security +(the default) then things will definately break as described +above. The share level SMB security model has no provision for +multiple user IDs on the one SMB connection. See <url url="ftp://samba.org/pub/samba/docs/security_level.txt" name="security_level.txt"> in +the docs for more info on share/user/server level security. + +If you run in user or server level security then you have a chance, +but only if you have a recent version of Samba (at least 1.9.15p6). In +older versions bugs in Samba meant you still would have had problems. + +If you have a trapdoor uid system in your OS then it will never work +properly. Samba needs to be able to switch uids on the connection and +it can't if your OS has a trapdoor uid system. You'll know this +because Samba will note it in your logs. + +Also note that you should not use the magic "homes" share name with +products like these, as otherwise all users will end up with the same +home directory. Use [\\server\username] instead. + +<sect1>Problem with printers under NT<p> <label id="nt_printers"> +This info from Stefan Hergeth +hergeth@f7axp1.informatik.fh-muenchen.de may be useful: + + A network-printer (with ethernetcard) is connected to the NT-Clients +via our UNIX-Fileserver (SAMBA-Server), like the configuration told by + Matthew Harrell harrell@leech.nrl.navy.mil (see WinNT.txt) +<enum> +<item>If a user has choosen this printer as the default printer in his + NT-Session and this printer is not connected to the network + (e.g. switched off) than this user has a problem with the SAMBA- + connection of his filesystems. It's very slow. + +<item>If the printer is connected to the network everything works fine. + +<item>When the smbd ist started with debug level 3, you can see that the + NT spooling system try to connect to the printer many times. If the + printer ist not connected to the network this request fails and the + NT spooler is wasting a lot of time to connect to the printer service. + This seems to be the reason for the slow network connection. + +<item>Maybe it's possible to change this behaviour by setting different + printer properties in the Print-Manager-Menu of NT, but i didn't try it yet. +</enum> + +<sect1>Why are my file's timestamps off by an hour, or by a few hours?<p><label id="dst_bugs"> +This is from Paul Eggert eggert@twinsun.com. + +Most likely it's a problem with your time zone settings. + +Internally, Samba maintains time in traditional Unix format, +namely, the number of seconds since 1970-01-01 00:00:00 Universal Time +(or ``GMT''), not counting leap seconds. + +On the server side, Samba uses the Unix TZ variable to convert +internal timestamps to and from local time. So on the server side, there are +two things to get right. +<enum> +<item>The Unix system clock must have the correct Universal time. + Use the shell command "sh -c 'TZ=UTC0 date'" to check this. + +<item>The TZ environment variable must be set on the server + before Samba is invoked. The details of this depend on the + server OS, but typically you must edit a file whose name is + /etc/TIMEZONE or /etc/default/init, or run the command `zic -l'. + +<item>TZ must have the correct value. +<enum> + <item>If possible, use geographical time zone settings + (e.g. TZ='America/Los_Angeles' or perhaps + TZ=':US/Pacific'). These are supported by most + popular Unix OSes, are easier to get right, and are + more accurate for historical timestamps. If your + operating system has out-of-date tables, you should be + able to update them from the public domain time zone + tables at <url url="ftp://elsie.nci.nih.gov/pub/">. + + <item>If your system does not support geographical timezone + settings, you must use a Posix-style TZ strings, e.g. + TZ='PST8PDT,M4.1.0/2,M10.5.0/2' for US Pacific time. + Posix TZ strings can take the following form (with optional + items in brackets): +<verb> + StdOffset[Dst[Offset],Date/Time,Date/Time] +</verb> + where: +<itemize> +<item> `Std' is the standard time designation (e.g. `PST'). + +<item> `Offset' is the number of hours behind UTC (e.g. `8'). + Prepend a `-' if you are ahead of UTC, and + append `:30' if you are at a half-hour offset. + Omit all the remaining items if you do not use + daylight-saving time. + +<item> `Dst' is the daylight-saving time designation + (e.g. `PDT'). + + The optional second `Offset' is the number of + hours that daylight-saving time is behind UTC. + The default is 1 hour ahead of standard time. + +<item> `Date/Time,Date/Time' specify when daylight-saving + time starts and ends. The format for a date is + `Mm.n.d', which specifies the dth day (0 is Sunday) + of the nth week of the mth month, where week 5 means + the last such day in the month. The format for a + time is [h]h[:mm[:ss]], using a 24-hour clock. +</itemize> + Other Posix string formats are allowed but you don't want + to know about them. +</enum> +</enum> +On the client side, you must make sure that your client's clock and +time zone is also set appropriately. [[I don't know how to do this.]] +Samba traditionally has had many problems dealing with time zones, due +to the bizarre ways that Microsoft network protocols handle time +zones. A common symptom is for file timestamps to be off by an hour. +To work around the problem, try disconnecting from your Samba server +and then reconnecting to it; or upgrade your Samba server to +1.9.16alpha10 or later. + +<sect1> How do I set the printer driver name correctly? <p><label id="printer_driver_name"> +Question: + On NT, I opened "Printer Manager" and "Connect to Printer". + Enter ["\\ptdi270\ps1"] in the box of printer. I got the + following error message: +<tscreen><verb> + You do not have sufficient access to your machine + to connect to the selected printer, since a driver + needs to be installed locally. +</verb></tscreen> +Answer: + +In the more recent versions of Samba you can now set the "printer +driver" in smb.conf. This tells the client what driver to use. For +example: +<tscreen><verb> + printer driver = HP LaserJet 4L +</verb></tscreen> +with this, NT knows to use the right driver. You have to get this string +exactly right. + +To find the exact string to use, you need to get to the dialog box in +your client where you select which printer driver to install. The +correct strings for all the different printers are shown in a listbox +in that dialog box. + +You could also try setting the driver to NULL like this: +<tscreen><verb> + printer driver = NULL +</verb></tscreen> +this is effectively what older versions of Samba did, so if that +worked for you then give it a go. If this does work then let us know via <htmlurl url="mailto:samba@samba.org" name="samba@samba.org">, +and we'll make it the default. Currently the default is a 0 length +string. + +<sect1>I've applied NT 4.0 SP3, and now I can't access Samba shares, Why?<p><label id="NT_SP3_FIX"> +As of SP3, Microsoft has decided that they will no longer default to +passing clear text passwords over the network. To enable access to +Samba shares from NT 4.0 SP3, you must do <bf>ONE</bf> of two things: +<enum> +<item> Set the Samba configuration option 'security = user' and implement all of the stuff detailed in <url url="ftp://samba.org/pub/samba/docs/ENCRYPTION.txt" name="ENCRYPTION.txt">. +<item> Follow Microsoft's directions for setting your NT box to allow plain text passwords. see <url url="http://www.microsoft.com/kb/articles/q166/7/30.htm" name="Knowledge Base Article Q166730"> +</enum> + +<sect>Specific client application problems<p> <label id="client_problems"> + +<sect1>MS Office Setup reports "Cannot change properties of '\MSOFFICE\SETUP.INI'"<p> <label id="cant_change_properties"> +When installing MS Office on a Samba drive for which you have admin +user permissions, ie. admin users = username, you will find the +setup program unable to complete the installation. + +To get around this problem, do the installation without admin user +permissions The problem is that MS Office Setup checks that a file is +rdonly by trying to open it for writing. + +Admin users can always open a file for writing, as they run as root. +You just have to install as a non-admin user and then use "chown -R" +to fix the owner. + +<sect>Miscellaneous<p> <label id="miscellaneous"> +<sect1>Is Samba Year 2000 compliant?<p><label id="Year2000Compliant"> +The CIFS protocol that Samba implements +negotiates times in various formats, all of which +are able to cope with dates beyond 2000. + +</article> diff --git a/docs/faq/sambafaq.txt b/docs/faq/sambafaq.txt new file mode 100644 index 0000000000..e629e8ad87 --- /dev/null +++ b/docs/faq/sambafaq.txt @@ -0,0 +1,1122 @@ + Samba FAQ + Paul Blackman, ictinus@samba.org + v 0.8, June '97 + + This is the Frequently Asked Questions (FAQ) document for Samba, the + free and very popular SMB server product. An SMB server allows file + and printer connections from clients such as Windows, OS/2, Linux and + others. Current to version 1.9.17. Please send any corrections to the + author. + ______________________________________________________________________ + + Table of Contents: + + 1. General Information + + 1.1. What is Samba? + + 1.2. What is the current version of Samba? + + 1.3. Where can I get it? + + 1.4. What do the version numbers mean? + + 1.5. What platforms are supported? + + 1.6. How can I find out more about Samba? + + 1.7. How do I subscribe to the Samba Mailing Lists? + + 1.8. Something's gone wrong - what should I do? + + 1.9. Pizza supply details + + 2. Compiling and installing Samba on a Unix host + + 2.1. I can't see the Samba server in any browse lists! + + 2.2. Some files that I KNOW are on the server doesn't show up when + I view the files from my client! + + 2.3. Some files on the server show up with really wierd filenames + when I view the files from my client! + + 2.4. My client reports "cannot locate specified computer" or + similar + + 2.5. My client reports "cannot locate specified share name" or + similar + + 2.6. My client reports "cannot find domain controller", "cannot log + on to the network" or similar + + 2.7. Printing doesn't work :-( + + 2.8. My programs install on the server OK, but refuse to work + properly + + 2.9. My "server string" doesn't seem to be recognised + + 2.10. My client reports "This server is not configured to list + shared resources" + + 2.11. Log message "you appear to have a trapdoor uid system" + + 3. Common client questions + + 3.1. Are there any Macintosh clients for Samba? + + 3.2. "Session request failed (131,130)" error + + 3.3. How do I synchronise my PC's clock with my Samba server? + + 3.4. Problems with WinDD, NTrigue, WinCenterPro etc + + 3.5. Problem with printers under NT + + 3.6. Why are my file's timestamps off by an hour, or by a few + hours? + + 3.7. How do I set the printer driver name correctly? + + 3.8. I've applied NT 4.0 SP3, and now I can't access Samba shares, + Why? + + 4. Specific client application problems + + 4.1. MS Office Setup reports "Cannot change properties of + 'MSOFFICEUP.INI'" + + 5. Miscellaneous + + 5.1. Is Samba Year 2000 compliant? + ______________________________________________________________________ + + 11.. GGeenneerraall IInnffoorrmmaattiioonn + + + + All about Samba - what it is, how to get it, related sources of + information, how to understand the version numbering scheme, pizza + details + + + 11..11.. WWhhaatt iiss SSaammbbaa?? + + + Samba is a suite of programs which work together to allow clients to + access to a server's filespace and printers via the SMB (Server + Message Block) protocol. Initially written for Unix, Samba now also + runs on Netware, OS/2 and VMS. + + In practice, this means that you can redirect disks and printers to + Unix disks and printers from Lan Manager clients, Windows for + Workgroups 3.11 clients, Windows NT clients, Linux clients and OS/2 + clients. There is also a generic Unix client program supplied as part + of the suite which allows Unix users to use an ftp-like interface to + access filespace and printers on any other SMB servers. This gives the + capability for these operating systems to behave much like a LAN + Server or Windows NT Server machine, only with added functionality and + flexibility designed to make life easier for administrators. + + The components of the suite are (in summary): + + + +o ssmmbbdd, the SMB server. This handles actual connections from clients, + doing all the file, permission and username work + + +o nnmmbbdd, the Netbios name server, which helps clients locate servers, + doing the browsing work and managing domains as this capability is + being built into Samba + + + +o ssmmbbcclliieenntt, the Unix-hosted client program + + +o ssmmbbrruunn, a little 'glue' program to help the server run external + programs + + +o tteessttpprrnnss, a program to test server access to printers + + +o tteessttppaarrmmss, a program to test the Samba configuration file for + correctness + + +o ssmmbb..ccoonnff, the Samba configuration file + + +o ssmmbbpprriinntt, a sample script to allow a Unix host to use smbclient to + print to an SMB server + + +o DDooccuummeennttaattiioonn!! DON'T neglect to read it - you will save a great + deal of time! + + The suite is supplied with full source (of course!) and is GPLed. + + The primary creator of the Samba suite is Andrew Tridgell. Later + versions incorporate much effort by many net.helpers. The man pages + and this FAQ were originally written by Karl Auer. + + + 11..22.. WWhhaatt iiss tthhee ccuurrrreenntt vveerrssiioonn ooff SSaammbbaa?? + + + At time of writing, the current version was 1.9.17. If you want to be + sure check the bottom of the change-log file. + <ftp://samba.org/pub/samba/alpha/change-log> + + For more information see ``What do the version numbers mean?'' + + + 11..33.. WWhheerree ccaann II ggeett iitt?? + + + The Samba suite is available via anonymous ftp from samba.org. + The latest and greatest versions of the suite are in the directory: + + /pub/samba/ + + Development (read "alpha") versions, which are NOT necessarily stable + and which do NOT necessarily have accurate documentation, are + available in the directory: + + /pub/samba/alpha + + Note that binaries are NOT included in any of the above. Samba is + distributed ONLY in source form, though binaries may be available from + other sites. Recent versions of some Linux distributions, for example, + do contain Samba binaries for that platform. + + + 11..44.. WWhhaatt ddoo tthhee vveerrssiioonn nnuummbbeerrss mmeeaann?? + + + It is not recommended that you run a version of Samba with the word + "alpha" in its name unless you know what you are doing and are willing + to do some debugging. Many, many people just get the latest + recommended stable release version and are happy. If you are brave, by + all means take the plunge and help with the testing and development - + but don't install it on your departmental server. Samba is typically + very stable and safe, and this is mostly due to the policy of many + public releases. + How the scheme works: + + 1. When major changes are made the version number is increased. For + example, the transition from 1.9.15 to 1.9.16. However, this + version number will not appear immediately and people should + continue to use 1.9.15 for production systems (see next point.) + + 2. Just after major changes are made the software is considered + unstable, and a series of alpha releases are distributed, for + example 1.9.16alpha1. These are for testing by those who know what + they are doing. The "alpha" in the filename will hopefully scare + off those who are just looking for the latest version to install. + + 3. When Andrew thinks that the alphas have stabilised to the point + where he would recommend new users install it, he renames it to the + same version number without the alpha, for example 1.9.16. + + 4. Inevitably bugs are found in the "stable" releases and minor patch + levels are released which give us the pXX series, for example + 1.9.16p2. + + So the progression goes: + + 1.9.15p7 (production) + 1.9.15p8 (production) + 1.9.16alpha1 (test sites only) + : + 1.9.16alpha20 (test sites only) + 1.9.16 (production) + 1.9.16p1 (production) + + + The above system means that whenever someone looks at the samba ftp + site they will be able to grab the highest numbered release without an + alpha in the name and be sure of getting the current recommended ver- + sion. + + + 11..55.. WWhhaatt ppllaattffoorrmmss aarree ssuuppppoorrtteedd?? + + + Many different platforms have run Samba successfully. The platforms + most widely used and thus best tested are Linux and SunOS. + + At time of writing, the Makefile claimed support for: + + +o A/UX 3.0 + + +o AIX + + +o Altos Series 386/1000 + + +o Amiga + + +o Apollo Domain/OS sr10.3 + + +o BSDI + + +o B.O.S. (Bull Operating System) + + +o Cray, Unicos 8.0 + + +o Convex + + +o DGUX. + + +o DNIX. + + +o FreeBSD + + +o HP-UX + + +o Intergraph. + + +o Linux with/without shadow passwords and quota + + +o LYNX 2.3.0 + + +o MachTen (a unix like system for Macintoshes) + + +o Motorola 88xxx/9xx range of machines + + +o NetBSD + + +o NEXTSTEP Release 2.X, 3.0 and greater (including OPENSTEP for + Mach). + + +o OS/2 using EMX 0.9b + + +o OSF1 + + +o QNX 4.22 + + +o RiscIX. + + +o RISCOs 5.0B + + +o SEQUENT. + + +o SCO (including: 3.2v2, European dist., OpenServer 5) + + +o SGI. + + +o SMP_DC.OSx v1.1-94c079 on Pyramid S series + + +o SONY NEWS, NEWS-OS (4.2.x and 6.1.x) + + +o SUNOS 4 + + +o SUNOS 5.2, 5.3, and 5.4 (Solaris 2.2, 2.3, and '2.4 and later') + + +o Sunsoft ISC SVR3V4 + + +o SVR4 + + +o System V with some berkely extensions (Motorola 88k R32V3.2). + + +o ULTRIX. + + +o UNIXWARE + + +o UXP/DS + + + 11..66.. HHooww ccaann II ffiinndd oouutt mmoorree aabboouutt SSaammbbaa?? + + + There are a number of places to look for more information on Samba, + including: + + +o Two mailing lists devoted to discussion of Samba-related matters. + + +o The newsgroup, comp.protocols.smb, which has a great deal of + discussion on Samba. + + +o The WWW site 'SAMBA Web Pages' at <http://samba.edu.au/samba/> + includes: + + +o Links to man pages and documentation, including this FAQ + + +o A comprehensive survey of Samba users. + + +o A searchable hypertext archive of the Samba mailing list. + + +o Links to Samba source code, binaries, and mirrors of both. + + +o The long list of topic documentation. These files can be found in + the 'docs' directory of the Samba source, or at + <ftp://samba.org/pub/samba/docs/> + + +o Application_Serving.txt + <ftp://samba.org/pub/samba/docs/Application_Serving.txt> + + +o BROWSING.txt <ftp://samba.org/pub/samba/docs/BROWSING.txt> + + +o BUGS.txt <ftp://samba.org/pub/samba/docs/BUGS.txt> + + +o DIAGNOSIS.txt <ftp://samba.org/pub/samba/docs/DIAGNOSIS.txt> + + +o DNIX.txt <ftp://samba.org/pub/samba/docs/DNIX.txt> + + +o DOMAIN.txt <ftp://samba.org/pub/samba/docs/DOMAIN.txt> + + +o CONTROL.txt + <ftp://samba.org/pub/samba/docs/DOMAIN_CONTROL.txt> + + +o ENCRYPTION.txt + <ftp://samba.org/pub/samba/docs/ENCRYPTION.txt> + + +o Faxing.txt <ftp://samba.org/pub/samba/docs/Faxing.txt> + + +o GOTCHAS.txt <ftp://samba.org/pub/samba/docs/GOTCHAS.txt> + + +o HINTS.txt <ftp://samba.org/pub/samba/docs/HINTS.txt> + + +o INSTALL.sambatar + <ftp://samba.org/pub/samba/docs/INSTALL.sambatar> + + +o INSTALL.txt <ftp://samba.org/pub/samba/docs/INSTALL.txt> + + +o MIRRORS <ftp://samba.org/pub/samba/docs/MIRRORS> + + +o NetBIOS.txt <ftp://samba.org/pub/samba/docs/NetBIOS.txt> + + +o OS2.txt <ftp://samba.org/pub/samba/docs/OS2.txt> + + +o PROJECTS <ftp://samba.org/pub/samba/docs/PROJECTS> + + +o Passwords.txt <ftp://samba.org/pub/samba/docs/Passwords.txt> + + +o Printing.txt <ftp://samba.org/pub/samba/docs/Printing.txt> + + +o README.DCEDFS <ftp://samba.org/pub/samba/docs/README.DCEDFS> + + +o README.OS2 <ftp://samba.org/pub/samba/docs/README.OS2> + + +o README.jis <ftp://samba.org/pub/samba/docs/README.jis> + + +o README.sambatar + <ftp://samba.org/pub/samba/docs/README.sambatar> + + +o SCO.txt <ftp://samba.org/pub/samba/docs/SCO.txt> + + +o SMBTAR.notes <ftp://samba.org/pub/samba/docs/SMBTAR.notes> + + +o Speed.txt <ftp://samba.org/pub/samba/docs/Speed.txt> + + +o Support.txt <ftp://samba.org/pub/samba/docs/Support.txt> + + +o THANKS <ftp://samba.org/pub/samba/docs/THANKS> + + +o Tracing.txt <ftp://samba.org/pub/samba/docs/Tracing.txt> + + +o SMB.txt <ftp://samba.org/pub/samba/docs/UNIX-SMB.txt> + + +o Warp.txt <ftp://samba.org/pub/samba/docs/Warp.txt> + + +o WinNT.txt <ftp://samba.org/pub/samba/docs/WinNT.txt> + + +o history <ftp://samba.org/pub/samba/docs/history> + + +o level.txt + <ftp://samba.org/pub/samba/docs/security_level.txt> + + +o slip.htm <ftp://samba.org/pub/samba/docs/wfw_slip.htm> + + + 11..77.. HHooww ddoo II ssuubbssccrriibbee ttoo tthhee SSaammbbaa MMaaiilliinngg LLiissttss?? + + + Send email to listproc@samba.org. Make sure the subject line is + blank, and include the following two lines in the body of the message: + + + subscribe samba Firstname Lastname + subscribe samba-announce Firstname Lastname + + + + + Obviously you should substitute YOUR first name for "Firstname" and + YOUR last name for "Lastname"! Try not to send any signature stuff, it + sometimes confuses the list processor. + + The samba list is a digest list - every eight hours or so it + regurgitates a single message containing all the messages that have + been received by the list since the last time and sends a copy of this + message to all subscribers. + + If you stop being interested in Samba, please send another email to + listproc@samba.org. Make sure the subject line is blank, and + include the following two lines in the body of the message: + + + unsubscribe samba + unsubscribe samba-announce + + + + + The FFrroomm:: line in your message _M_U_S_T be the same address you used when + you subscribed. + + + 11..88.. SSoommeetthhiinngg''ss ggoonnee wwrroonngg -- wwhhaatt sshhoouulldd II ddoo?? + + + ## ****** IIMMPPOORRTTAANNTT!! ****** ## + + DO NOT post messages on mailing lists or in newsgroups until you have + carried out the first three steps given here! + + Firstly, see if there are any likely looking entries in this FAQ! If + you have just installed Samba, have you run through the checklist in + DIAGNOSIS.txt <ftp://samba.org/pub/samba/DIAGNOSIS.txt>? It can + save you a lot of time and effort. DIAGNOSIS.txt can also be found in + the docs directory of the Samba distribution. + + Secondly, read the man pages for smbd, nmbd and smb.conf, looking for + topics that relate to what you are trying to do. + + Thirdly, if there is no obvious solution to hand, try to get a look at + the log files for smbd and/or nmbd for the period during which you + were having problems. You may need to reconfigure the servers to + provide more extensive debugging information - usually level 2 or + level 3 provide ample debugging info. Inspect these logs closely, + looking particularly for the string "Error:". + + Fourthly, if you still haven't got anywhere, ask the mailing list or + newsgroup. In general nobody minds answering questions provided you + have followed the preceding steps. It might be a good idea to scan the + archives of the mailing list, which are available through the Samba + web site described in the previous section. + + If you successfully solve a problem, please mail the FAQ maintainer a + succinct description of the symptom, the problem and the solution, so + I can incorporate it in the next version. + + If you make changes to the source code, _please_ submit these patches + so that everyone else gets the benefit of your work. This is one of + the most important aspects to the maintainence of Samba. Send all + patches to samba@samba.org. Do not send patches to Andrew + Tridgell or any other individual, they may be lost if you do. + + + 11..99.. PPiizzzzaa ssuuppppllyy ddeettaaiillss + + + Those who have registered in the Samba survey as "Pizza Factory" will + already know this, but the rest may need some help. Andrew doesn't ask + for payment, but he does appreciate it when people give him pizza. + This calls for a little organisation when the pizza donor is twenty + thousand kilometres away, but it has been done. + + Method 1: Ring up your local branch of an international pizza chain + and see if they honour their vouchers internationally. Pizza Hut do, + which is how the entire Canberra Linux Users Group got to eat pizza + one night, courtesy of someone in the US + + Method 2: Ring up a local pizza shop in Canberra and quote a credit + card number for a certain amount, and tell them that Andrew will be + collecting it (don't forget to tell him.) One kind soul from Germany + did this. + + Method 3: Purchase a pizza voucher from your local pizza shop that has + no international affiliations and send it to Andrew. It is completely + useless but he can hang it on the wall next to the one he already has + from Germany :-) + + + Method 4: Air freight him a pizza with your favourite regional + flavours. It will probably get stuck in customs or torn apart by + hungry sniffer dogs but it will have been a noble gesture. + + + 22.. CCoommppiilliinngg aanndd iinnssttaalllliinngg SSaammbbaa oonn aa UUnniixx hhoosstt + + + + 22..11.. II ccaann''tt sseeee tthhee SSaammbbaa sseerrvveerr iinn aannyy bbrroowwssee lliissttss!! + + + See BROWSING.txt <ftp://samba.org/pub/samba/BROWSING.txt> for + more information on browsing. Browsing.txt can also be found in the + docs directory of the Samba source. + + If your GUI client does not permit you to select non-browsable + servers, you may need to do so on the command line. For example, under + Lan Manager you might connect to the above service as disk drive M: + thusly: + + + net use M: \\mary\fred + + + + + The details of how to do this and the specific syntax varies from + client to client - check your client's documentation. + + + 22..22.. SSoommee ffiilleess tthhaatt II KKNNOOWW aarree oonn tthhee sseerrvveerr ddooeessnn''tt sshhooww uupp wwhheenn II + vviieeww tthhee ffiilleess ffrroomm mmyy cclliieenntt!! + + + See the next question. + + 22..33.. SSoommee ffiilleess oonn tthhee sseerrvveerr sshhooww uupp wwiitthh rreeaallllyy wwiieerrdd ffiilleennaammeess + wwhheenn II vviieeww tthhee ffiilleess ffrroomm mmyy cclliieenntt!! + + + If you check what files are not showing up, you will note that they + are files which contain upper case letters or which are otherwise not + DOS-compatible (ie, they are not legal DOS filenames for some reason). + + The Samba server can be configured either to ignore such files + completely, or to present them to the client in "mangled" form. If you + are not seeing the files at all, the Samba server has most likely been + configured to ignore them. Consult the man page smb.conf(5) for + details of how to change this - the parameter you need to set is + "mangled names = yes". + + + 22..44.. MMyy cclliieenntt rreeppoorrttss ""ccaannnnoott llooccaattee ssppeecciiffiieedd ccoommppuutteerr"" oorr ssiimmiillaarr + + + This indicates one of three things: You supplied an incorrect server + name, the underlying TCP/IP layer is not working correctly, or the + name you specified cannot be resolved. + + After carefully checking that the name you typed is the name you + should have typed, try doing things like pinging a host or telnetting + to somewhere on your network to see if TCP/IP is functioning OK. If it + is, the problem is most likely name resolution. + + + If your client has a facility to do so, hardcode a mapping between the + hosts IP and the name you want to use. For example, with Man Manager + or Windows for Workgroups you would put a suitable entry in the file + LMHOSTS. If this works, the problem is in the communication between + your client and the netbios name server. If it does not work, then + there is something fundamental wrong with your naming and the solution + is beyond the scope of this document. + + If you do not have any server on your subnet supplying netbios name + resolution, hardcoded mappings are your only option. If you DO have a + netbios name server running (such as the Samba suite's nmbd program), + the problem probably lies in the way it is set up. Refer to Section + Two of this FAQ for more ideas. + + By the way, remember to REMOVE the hardcoded mapping before further + tests :-) + + + 22..55.. MMyy cclliieenntt rreeppoorrttss ""ccaannnnoott llooccaattee ssppeecciiffiieedd sshhaarree nnaammee"" oorr ssiimmii-- + llaarr + + + This message indicates that your client CAN locate the specified + server, which is a good start, but that it cannot find a service of + the name you gave. + + The first step is to check the exact name of the service you are + trying to connect to (consult your system administrator). Assuming it + exists and you specified it correctly (read your client's doco on how + to specify a service name correctly), read on: + + + +o Many clients cannot accept or use service names longer than eight + characters. + + +o Many clients cannot accept or use service names containing spaces. + + +o Some servers (not Samba though) are case sensitive with service + names. + + +o Some clients force service names into upper case. + + + 22..66.. MMyy cclliieenntt rreeppoorrttss ""ccaannnnoott ffiinndd ddoommaaiinn ccoonnttrroolllleerr"",, ""ccaannnnoott lloogg + oonn ttoo tthhee nneettwwoorrkk"" oorr ssiimmiillaarr + + + Nothing is wrong - Samba does not implement the primary domain name + controller stuff for several reasons, including the fact that the + whole concept of a primary domain controller and "logging in to a + network" doesn't fit well with clients possibly running on multiuser + machines (such as users of smbclient under Unix). Having said that, + several developers are working hard on building it in to the next + major version of Samba. If you can contribute, send a message to + samba@samba.org ! + + Seeing this message should not affect your ability to mount redirected + disks and printers, which is really what all this is about. + + For many clients (including Windows for Workgroups and Lan Manager), + setting the domain to STANDALONE at least gets rid of the message. + + + + + + 22..77.. PPrriinnttiinngg ddooeessnn''tt wwoorrkk ::--(( + + + Make sure that the specified print command for the service you are + connecting to is correct and that it has a fully-qualified path (eg., + use "/usr/bin/lpr" rather than just "lpr"). + + Make sure that the spool directory specified for the service is + writable by the user connected to the service. In particular the user + "nobody" often has problems with printing, even if it worked with an + earlier version of Samba. Try creating another guest user other than + "nobody". + + Make sure that the user specified in the service is permitted to use + the printer. + + Check the debug log produced by smbd. Search for the printer name and + see if the log turns up any clues. Note that error messages to do with + a service ipc$ are meaningless - they relate to the way the client + attempts to retrieve status information when using the LANMAN1 + protocol. + + If using WfWg then you need to set the default protocol to TCP/IP, not + Netbeui. This is a WfWg bug. + + If using the Lanman1 protocol (the default) then try switching to + coreplus. Also not that print status error messages don't mean + printing won't work. The print status is received by a different + mechanism. + + + 22..88.. MMyy pprrooggrraammss iinnssttaallll oonn tthhee sseerrvveerr OOKK,, bbuutt rreeffuussee ttoo wwoorrkk pprroopp-- + eerrllyy + + + There are numerous possible reasons for this, but one MAJOR + possibility is that your software uses locking. Make sure you are + using Samba 1.6.11 or later. It may also be possible to work around + the problem by setting "locking=no" in the Samba configuration file + for the service the software is installed on. This should be regarded + as a strictly temporary solution. + + In earlier Samba versions there were some difficulties with the very + latest Microsoft products, particularly Excel 5 and Word for Windows + 6. These should have all been solved. If not then please let Andrew + Tridgell know via email at samba@samba.org. + + + 22..99.. MMyy ""sseerrvveerr ssttrriinngg"" ddooeessnn''tt sseeeemm ttoo bbee rreeccooggnniisseedd + + + OR My client reports the default setting, eg. "Samba 1.9.15p4", + instead of what I have changed it to in the smb.conf file. + + You need to use the -C option in nmbd. The "server string" affects + what smbd puts out and -C affects what nmbd puts out. + + Current versions of Samba (1.9.16 +) have combined these options into + the "server string" field of smb.conf, -C for nmbd is now obsolete. + + + 22..1100.. MMyy cclliieenntt rreeppoorrttss ""TThhiiss sseerrvveerr iiss nnoott ccoonnffiigguurreedd ttoo lliisstt sshhaarreedd + rreessoouurrcceess"" + + + Your guest account is probably invalid for some reason. Samba uses the + guest account for browsing in smbd. Check that your guest account is + valid. + + See also 'guest account' in smb.conf man page. + + + 22..1111.. LLoogg mmeessssaaggee ""yyoouu aappppeeaarr ttoo hhaavvee aa ttrraappddoooorr uuiidd ssyysstteemm"" + + + This can have several causes. It might be because you are using a uid + or gid of 65535 or -1. This is a VERY bad idea, and is a big security + hole. Check carefully in your /etc/passwd file and make sure that no + user has uid 65535 or -1. Especially check the "nobody" user, as many + broken systems are shipped with nobody setup with a uid of 65535. + + It might also mean that your OS has a trapdoor uid/gid system :-) + + This means that once a process changes effective uid from root to + another user it can't go back to root. Unfortunately Samba relies on + being able to change effective uid from root to non-root and back + again to implement its security policy. If your OS has a trapdoor uid + system this won't work, and several things in Samba may break. Less + things will break if you use user or server level security instead of + the default share level security, but you may still strike problems. + + The problems don't give rise to any security holes, so don't panic, + but it does mean some of Samba's capabilities will be unavailable. In + particular you will not be able to connect to the Samba server as two + different uids at once. This may happen if you try to print as a + "guest" while accessing a share as a normal user. It may also affect + your ability to list the available shares as this is normally done as + the guest user. + + Complain to your OS vendor and ask them to fix their system. + + Note: the reason why 65535 is a VERY bad choice of uid and gid is that + it casts to -1 as a uid, and the setreuid() system call ignores (with + no error) uid changes to -1. This means any daemon attempting to run + as uid 65535 will actually run as root. This is not good! + + + 33.. CCoommmmoonn cclliieenntt qquueessttiioonnss + + + + + 33..11.. AArree tthheerree aannyy MMaacciinnttoosshh cclliieennttss ffoorr SSaammbbaa?? + + + Yes! Thursby now have a CIFS Client / Server called DAVE - see + <http://www.thursby.com/>. They test it against Windows 95, Windows + NT and samba for compatibility issues. At the time of writing, DAVE + was at version 1.0.1. The 1.0.0 to 1.0.1 update is available as a free + download from the Thursby web site (the speed of finder copies has + been greatly enhanced, and there are bug-fixes included). + + Alternatives - There are two free implementations of AppleTalk for + several kinds of UNIX machnes, and several more commercial ones. + These products allow you to run file services and print services + natively to Macintosh users, with no additional support required on + the Macintosh. The two free omplementations are Netatalk, + <http://www.umich.edu/~rsug/netatalk/>, and CAP, + <http://www.cs.mu.oz.au/appletalk/atalk.html>. What Samba offers MS + Windows users, these packages offer to Macs. For more info on these + packages, Samba, and Linux (and other UNIX-based systems) see + <http://www.eats.com/linux_mac_win.html> + 33..22.. SSeessssiioonn rreeqquueesstt ffaaiilleedd ((113311,,113300))"" eerrrroorr + + + The following answer is provided by John E. Miller: + + I'll assume that you're able to ping back and forth between the + machines by IP address and name, and that you're using some security + model where you're confident that you've got user IDs and passwords + right. The logging options (-d3 or greater) can help a lot with that. + DNS and WINS configuration can also impact connectivity as well. + + Now, on to 'scope id's. Somewhere in your Win95 TCP/IP network + configuration (I'm too much of an NT bigot to know where it's located + in the Win95 setup, but I'll have to learn someday since I teach for a + Microsoft Solution Provider Authorized Tech Education Center - what an + acronym...) Note: It's under Control Panel | Network | TCP/IP | WINS + Configuration there's a little text entry field called something like + + This field essentially creates 'invisible' sub-workgroups on the same + wire. Boxes can only see other boxes whose Scope IDs are set to the + exact same value - it's sometimes used by OEMs to configure their + boxes to browse only other boxes from the same vendor and, in most + environments, this field should be left blank. If you, in fact, have + something in this box that EXACT value (case-sensitive!) needs to be + provided to smbclient and nmbd as the -i (lowercase) parameter. So, if + your Scope ID is configured as the string 'SomeStr' in Win95 then + you'd have to use smbclient -iSomeStr otherparms in connecting to it. + + + 33..33.. HHooww ddoo II ssyynncchhrroonniissee mmyy PPCC''ss cclloocckk wwiitthh mmyy SSaammbbaa sseerrvveerr?? + + + To syncronize your PC's clock with your Samba server: + + +o Copy timesync.pif to your windows directory + + +o timesync.pif can be found at: + <http://samba.org/samba/binaries/miscellaneous/timesync.pif> + + +o Add timesync.pif to your 'Start Up' group/folder + + +o Open the properties dialog box for the program/icon + + +o Make sure the 'Run Minimized' option is set in program 'Properties' + + +o Change the command line section that reads \sambahost to reflect + the name of your server. + + +o Close the properties dialog box by choosing 'OK' + + Each time you start your computer (or login for Win95) your PC will + synchronize its clock with your Samba server. + + Alternativley, if you clients support Domain Logons, you can setup + Domain Logons with Samba - see: BROWSING.txt + <ftp://samba.org/pub/samba/docs/BROWSING.txt> *** for more + information. + + Then add + + + NET TIME \\%L /SET /YES + + + + + as one of the lines in the logon script. + + 33..44.. PPrroobblleemmss wwiitthh WWiinnDDDD,, NNTTrriigguuee,, WWiinnCCeenntteerrPPrroo eettcc + + + All of the above programs are applications that sit on an NT box and + allow multiple users to access the NT GUI applications from remote + workstations (often over X). + + What has this got to do with Samba? The problem comes when these users + use filemanager to mount shares from a Samba server. The most common + symptom is that the first user to connect get correct file permissions + and has a nice day, but subsequent connections get logged in as the + same user as the first person to login. They find that they cannot + access files in their own home directory, but that they can access + files in the first users home directory (maybe not such a nice day + after all?) + + Why does this happen? The above products all share a common heritage + (and code base I believe). They all open just a single TCP based SMB + connection to the Samba server, and requests from all users are piped + over this connection. This is unfortunate, but not fatal. + + It means that if you run your Samba server in share level security + (the default) then things will definately break as described above. + The share level SMB security model has no provision for multiple user + IDs on the one SMB connection. See security_level.txt + <ftp://samba.org/pub/samba/docs/security_level.txt> in the docs + for more info on share/user/server level security. + + If you run in user or server level security then you have a chance, + but only if you have a recent version of Samba (at least 1.9.15p6). In + older versions bugs in Samba meant you still would have had problems. + + If you have a trapdoor uid system in your OS then it will never work + properly. Samba needs to be able to switch uids on the connection and + it can't if your OS has a trapdoor uid system. You'll know this + because Samba will note it in your logs. + + Also note that you should not use the magic "homes" share name with + products like these, as otherwise all users will end up with the same + home directory. Use \serversername instead. + + + 33..55.. PPrroobblleemm wwiitthh pprriinntteerrss uunnddeerr NNTT + + + This info from Stefan Hergeth hergeth@f7axp1.informatik.fh-muenchen.de + may be useful: + + A network-printer (with ethernetcard) is connected to the NT-Clients + via our UNIX-Fileserver (SAMBA-Server), like the configuration told by + Matthew Harrell harrell@leech.nrl.navy.mil (see WinNT.txt) + + 1. If a user has choosen this printer as the default printer in his + NT-Session and this printer is not connected to the network (e.g. + switched off) than this user has a problem with the SAMBA- + connection of his filesystems. It's very slow. + + 2. If the printer is connected to the network everything works fine. + + 3. When the smbd ist started with debug level 3, you can see that the + NT spooling system try to connect to the printer many times. If the + printer ist not connected to the network this request fails and the + NT spooler is wasting a lot of time to connect to the printer + service. This seems to be the reason for the slow network + connection. + + 4. Maybe it's possible to change this behaviour by setting different + printer properties in the Print-Manager-Menu of NT, but i didn't + try it yet. + + + 33..66.. WWhhyy aarree mmyy ffiillee''ss ttiimmeessttaammppss ooffff bbyy aann hhoouurr,, oorr bbyy aa ffeeww hhoouurrss?? + + + This is from Paul Eggert eggert@twinsun.com. + + Most likely it's a problem with your time zone settings. + + Internally, Samba maintains time in traditional Unix format, namely, + the number of seconds since 1970-01-01 00:00:00 Universal Time (or + ``GMT''), not counting leap seconds. + + On the server side, Samba uses the Unix TZ variable to convert + internal timestamps to and from local time. So on the server side, + there are two things to get right. + + 1. The Unix system clock must have the correct Universal time. Use + the shell command "sh -c 'TZ=UTC0 date'" to check this. + + 2. The TZ environment variable must be set on the server before Samba + is invoked. The details of this depend on the server OS, but + typically you must edit a file whose name is /etc/TIMEZONE or + /etc/default/init, or run the command `zic -l'. + + 3. TZ must have the correct value. + + a. If possible, use geographical time zone settings (e.g. + TZ='America/Los_Angeles' or perhaps TZ=':US/Pacific'). These + are supported by most popular Unix OSes, are easier to get + right, and are more accurate for historical timestamps. If your + operating system has out-of-date tables, you should be able to + update them from the public domain time zone tables at + <ftp://elsie.nci.nih.gov/pub/>. + + b. If your system does not support geographical timezone settings, + you must use a Posix-style TZ strings, e.g. + TZ='PST8PDT,M4.1.0/2,M10.5.0/2' for US Pacific time. Posix TZ + strings can take the following form (with optional items in + brackets): + + StdOffset[Dst[Offset],Date/Time,Date/Time] + + + where: + + +o `Std' is the standard time designation (e.g. `PST'). + + +o `Offset' is the number of hours behind UTC (e.g. `8'). Prepend + a `-' if you are ahead of UTC, and append `:30' if you are at a + half-hour offset. Omit all the remaining items if you do not + use daylight-saving time. + + +o `Dst' is the daylight-saving time designation (e.g. `PDT'). + + The optional second `Offset' is the number of hours that + daylight-saving time is behind UTC. The default is 1 hour ahead + of standard time. + + +o `Date/Time,Date/Time' specify when daylight-saving time starts + and ends. The format for a date is `Mm.n.d', which specifies + the dth day (0 is Sunday) of the nth week of the mth month, + where week 5 means the last such day in the month. The format + for a time is hh:mm[:ss], using a 24-hour clock. + + Other Posix string formats are allowed but you don't want to + know about them. + + On the client side, you must make sure that your client's clock and + time zone is also set appropriately. [I don't know how to do + this.] Samba traditionally has had many problems dealing with time + zones, due to the bizarre ways that Microsoft network protocols + handle time zones. A common symptom is for file timestamps to be + off by an hour. To work around the problem, try disconnecting from + your Samba server and then reconnecting to it; or upgrade your + Samba server to 1.9.16alpha10 or later. + + + 33..77.. HHooww ddoo II sseett tthhee pprriinntteerr ddrriivveerr nnaammee ccoorrrreeccttllyy?? + + + Question: On NT, I opened "Printer Manager" and "Connect to Printer". + Enter "\ptdi270s1" + in the box of printer. I got the following error message: + + + You do not have sufficient access to your machine + to connect to the selected printer, since a driver + needs to be installed locally. + + + + + Answer: + + In the more recent versions of Samba you can now set the "printer + driver" in smb.conf. This tells the client what driver to use. For + example: + + + printer driver = HP LaserJet 4L + + + + + with this, NT knows to use the right driver. You have to get this + string exactly right. + + To find the exact string to use, you need to get to the dialog box in + your client where you select which printer driver to install. The + correct strings for all the different printers are shown in a listbox + in that dialog box. + + You could also try setting the driver to NULL like this: + + + printer driver = NULL + + + + + this is effectively what older versions of Samba did, so if that + worked for you then give it a go. If this does work then let us know + via samba@samba.org, and we'll make it the default. Cur- + rently the default is a 0 length string. + + + 33..88.. II''vvee aapppplliieedd NNTT 44..00 SSPP33,, aanndd nnooww II ccaann''tt aacccceessss SSaammbbaa sshhaarreess,, + WWhhyy?? + + + As of SP3, Microsoft has decided that they will no longer default to + passing clear text passwords over the network. To enable access to + Samba shares from NT 4.0 SP3, you must do OONNEE of two things: + + 1. Set the Samba configuration option 'security = user' and implement + all of the stuff detailed in ENCRYPTION.txt + <ftp://samba.org/pub/samba/docs/ENCRYPTION.txt>. + + 2. Follow Microsoft's directions for setting your NT box to allow + plain text passwords. see Knowledge Base Article Q166730 + <http://www.microsoft.com/kb/articles/q166/7/30.htm> + + + 44.. SSppeecciiffiicc cclliieenntt aapppplliiccaattiioonn pprroobblleemmss + + + + + 44..11.. MMSS OOffffiiccee SSeettuupp rreeppoorrttss ""CCaannnnoott cchhaannggee pprrooppeerrttiieess ooff ''MMSSOOFF-- + FFIICCEEUUPP..IINNII''"" + + + When installing MS Office on a Samba drive for which you have admin + user permissions, ie. admin users = username, you will find the setup + program unable to complete the installation. + + To get around this problem, do the installation without admin user + permissions The problem is that MS Office Setup checks that a file is + rdonly by trying to open it for writing. + + Admin users can always open a file for writing, as they run as root. + You just have to install as a non-admin user and then use "chown -R" + to fix the owner. + + + 55.. MMiisscceellllaanneeoouuss + + + + 55..11.. IIss SSaammbbaa YYeeaarr 22000000 ccoommpplliiaanntt?? + + + The CIFS protocol that Samba implements negotiates times in various + formats, all of which are able to cope with dates beyond 2000. + + + + + + + + + + + + + + + + + + diff --git a/docs/htmldocs/improved-browsing.html b/docs/htmldocs/Browsing.html index 831abe6d25..5f5f71ba69 100644 --- a/docs/htmldocs/improved-browsing.html +++ b/docs/htmldocs/Browsing.html @@ -1,85 +1,36 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Improved browsing in samba</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="Using samba 3.0 with ActiveDirectory support" -HREF="ads.html"><LINK -REL="NEXT" -TITLE="Samba performance issues" -HREF="speed.html"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY -CLASS="CHAPTER" +CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="ads.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="speed.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV +CLASS="ARTICLE" ><DIV -CLASS="CHAPTER" +CLASS="TITLEPAGE" ><H1 +CLASS="TITLE" ><A NAME="IMPROVED-BROWSING" -></A ->Chapter 16. Improved browsing in samba</H1 +>Improved browsing in samba</A +></H1 +><HR></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN2659" -></A ->16.1. Overview of browsing</H1 +NAME="AEN3" +>Overview of browsing</A +></H1 ><P >SMB networking provides a mechanism by which clients can access a list of machines in a network, a so-called "browse list". This list @@ -98,12 +49,12 @@ that can NOT be provided by any other means of name resolution.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2663" -></A ->16.2. Browsing support in samba</H1 +NAME="AEN7" +>Browsing support in samba</A +></H1 ><P >Samba now fully supports browsing. The browsing is supported by nmbd and is also controlled by options in the smb.conf file (see smb.conf(5)).</P @@ -143,12 +94,12 @@ example. See "remote announce" in the smb.conf man page. </P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2672" -></A ->16.3. Problem resolution</H1 +NAME="AEN16" +>Problem resolution</A +></H1 ><P >If something doesn't work then hopefully the log.nmb file will help you track down the problem. Try a debug level of 2 or 3 for finding @@ -177,12 +128,12 @@ in smb.conf)</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2679" -></A ->16.4. Browsing across subnets</H1 +NAME="AEN23" +>Browsing across subnets</A +></H1 ><P >With the release of Samba 1.9.17(alpha1 and above) Samba has been updated to enable it to support the replication of browse lists @@ -208,12 +159,12 @@ of a WINS server given to them by a DHCP server, or by manual configuration settings) for Samba this is in the smb.conf file.</P ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN2684" -></A ->16.4.1. How does cross subnet browsing work ?</H2 +NAME="AEN28" +>How does cross subnet browsing work ?</A +></H2 ><P >Cross subnet browsing is a complicated dance, containing multiple moving parts. It has taken Microsoft several years to get the code @@ -420,12 +371,12 @@ TYPE="1" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2719" -></A ->16.5. Setting up a WINS server</H1 +NAME="AEN63" +>Setting up a WINS server</A +></H1 ><P >Either a Samba machine or a Windows NT Server machine may be set up as a WINS server. To set a Samba machine to be a WINS server you must @@ -503,12 +454,12 @@ browsing on networks that contain NT Domains.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2738" -></A ->16.6. Setting up Browsing in a WORKGROUP</H1 +NAME="AEN82" +>Setting up Browsing in a WORKGROUP</A +></H1 ><P >To set up cross subnet browsing on a network containing machines in up to be in a WORKGROUP, not an NT Domain you need to set up one @@ -587,12 +538,12 @@ CLASS="PROGRAMLISTING" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2756" -></A ->16.7. Setting up Browsing in a DOMAIN</H1 +NAME="AEN100" +>Setting up Browsing in a DOMAIN</A +></H1 ><P >If you are adding Samba servers to a Windows NT Domain then you must not set up a Samba server as a domain master browser. @@ -638,12 +589,12 @@ CLASS="COMMAND" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2766" -></A ->16.8. Forcing samba to be the master</H1 +NAME="AEN110" +>Forcing samba to be the master</A +></H1 ><P >Who becomes the "master browser" is determined by an election process using broadcasts. Each election packet contains a number of parameters @@ -686,12 +637,12 @@ the current domain master browser fail.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2775" -></A ->16.9. Making samba the domain master</H1 +NAME="AEN119" +>Making samba the domain master</A +></H1 ><P >The domain master is responsible for collating the browse lists of multiple subnets so that browsing can occur between subnets. You can @@ -759,12 +710,12 @@ TYPE="1" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2793" -></A ->16.10. Note about broadcast addresses</H1 +NAME="AEN137" +>Note about broadcast addresses</A +></H1 ><P >If your network uses a "0" based broadcast address (for example if it ends in a 0) then you will strike problems. Windows for Workgroups @@ -773,76 +724,18 @@ that browsing and name lookups won't work.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2796" -></A ->16.11. Multiple interfaces</H1 +NAME="AEN140" +>Multiple interfaces</A +></H1 ><P >Samba now supports machines with multiple network interfaces. If you have multiple interfaces then you will need to use the "interfaces" option in smb.conf to configure them. See smb.conf(5) for details.</P ></DIV ></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="ads.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="speed.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Using samba 3.0 with ActiveDirectory support</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Samba performance issues</TD -></TR -></TABLE -></DIV ></BODY ></HTML >
\ No newline at end of file diff --git a/docs/htmldocs/bugreport.html b/docs/htmldocs/Bugs.html index 53f34c9f0a..0f7fb7bd60 100644 --- a/docs/htmldocs/bugreport.html +++ b/docs/htmldocs/Bugs.html @@ -1,85 +1,36 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Reporting Bugs</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="HOWTO Access Samba source code via CVS" -HREF="cvs-access.html"><LINK -REL="NEXT" -TITLE="Group mapping HOWTO" -HREF="groupmapping.html"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY -CLASS="CHAPTER" +CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="cvs-access.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="groupmapping.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV +CLASS="ARTICLE" ><DIV -CLASS="CHAPTER" +CLASS="TITLEPAGE" ><H1 +CLASS="TITLE" ><A NAME="BUGREPORT" -></A ->Chapter 20. Reporting Bugs</H1 +>Reporting Bugs</A +></H1 +><HR></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN3111" -></A ->20.1. Introduction</H1 +NAME="AEN3" +>Introduction</A +></H1 ><P >The email address for bug reports is samba@samba.org</P ><P @@ -106,12 +57,12 @@ at http://samba.org/samba/ </P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN3118" -></A ->20.2. General info</H1 +NAME="AEN10" +>General info</A +></H1 ><P >Before submitting a bug report check your config for silly errors. Look in your log files for obvious messages that tell you that @@ -131,12 +82,12 @@ time, and exactly what the results were.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN3124" -></A ->20.3. Debug levels</H1 +NAME="AEN16" +>Debug levels</A +></H1 ><P >If the bug has anything to do with Samba behaving incorrectly as a server (like refusing to open a file) then the log files will probably @@ -201,12 +152,12 @@ large volume of log data.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN3141" -></A ->20.4. Internal errors</H1 +NAME="AEN33" +>Internal errors</A +></H1 ><P >If you get a "INTERNAL ERROR" message in your log files it means that Samba got an unexpected signal while running. It is probably a @@ -245,12 +196,12 @@ useful. </P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN3151" -></A ->20.5. Attaching to a running process</H1 +NAME="AEN43" +>Attaching to a running process</A +></H1 ><P >Unfortunately some unixes (in particular some recent linux kernels) refuse to dump a core file if the task has changed uid (which smbd @@ -262,12 +213,12 @@ where it occurred.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN3154" -></A ->20.6. Patches</H1 +NAME="AEN46" +>Patches</A +></H1 ><P >The best sort of bug report is one that includes a fix! If you send us patches please use <B @@ -282,64 +233,6 @@ your do the diff against a clean version of the source and let me know exactly what version you used. </P ></DIV ></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="cvs-access.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="groupmapping.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->HOWTO Access Samba source code via CVS</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Group mapping HOWTO</TD -></TR -></TABLE -></DIV ></BODY ></HTML >
\ No newline at end of file diff --git a/docs/htmldocs/cvs-access.html b/docs/htmldocs/CVS-Access.html index 6cfe99f94b..1329433f1a 100644 --- a/docs/htmldocs/cvs-access.html +++ b/docs/htmldocs/CVS-Access.html @@ -1,85 +1,36 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >HOWTO Access Samba source code via CVS</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="Samba and other CIFS clients" -HREF="other-clients.html"><LINK -REL="NEXT" -TITLE="Reporting Bugs" -HREF="bugreport.html"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY -CLASS="CHAPTER" +CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="other-clients.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="bugreport.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV +CLASS="ARTICLE" ><DIV -CLASS="CHAPTER" +CLASS="TITLEPAGE" ><H1 +CLASS="TITLE" ><A NAME="CVS-ACCESS" -></A ->Chapter 19. HOWTO Access Samba source code via CVS</H1 +>HOWTO Access Samba source code via CVS</A +></H1 +><HR></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN3063" -></A ->19.1. Introduction</H1 +NAME="AEN3" +>Introduction</A +></H1 ><P >Samba is developed in an open environment. Developers use CVS (Concurrent Versioning System) to "checkin" (also known as @@ -96,12 +47,12 @@ TARGET="_top" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN3068" -></A ->19.2. CVS Access to samba.org</H1 +NAME="AEN8" +>CVS Access to samba.org</A +></H1 ><P >The machine samba.org runs a publicly accessible CVS repository for access to the source code of several packages, @@ -109,12 +60,12 @@ including samba, rsync and jitterbug. There are two main ways of accessing the CVS server on this host.</P ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN3071" -></A ->19.2.1. Access via CVSweb</H2 +NAME="AEN11" +>Access via CVSweb</A +></H2 ><P >You can access the source code via your favourite WWW browser. This allows you to access the contents of @@ -130,12 +81,12 @@ TARGET="_top" ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN3076" -></A ->19.2.2. Access via cvs</H2 +NAME="AEN16" +>Access via cvs</A +></H2 ><P >You can also access the source code via a normal cvs client. This gives you much more control over you can @@ -237,64 +188,6 @@ CLASS="COMMAND" ></DIV ></DIV ></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="other-clients.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="bugreport.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Samba and other CIFS clients</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Reporting Bugs</TD -></TR -></TABLE -></DIV ></BODY ></HTML >
\ No newline at end of file diff --git a/docs/htmldocs/domain-security.html b/docs/htmldocs/DOMAIN_MEMBER.html index 9e311a03eb..b7ef4c9a61 100644 --- a/docs/htmldocs/domain-security.html +++ b/docs/htmldocs/DOMAIN_MEMBER.html @@ -1,85 +1,36 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >security = domain in Samba 2.x</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="Security levels" -HREF="securitylevels.html"><LINK -REL="NEXT" -TITLE="Unified Logons between Windows NT and UNIX using Winbind" -HREF="winbind.html"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY -CLASS="CHAPTER" +CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="securitylevels.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="winbind.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV +CLASS="ARTICLE" ><DIV -CLASS="CHAPTER" +CLASS="TITLEPAGE" ><H1 +CLASS="TITLE" ><A NAME="DOMAIN-SECURITY" -></A ->Chapter 10. security = domain in Samba 2.x</H1 +>security = domain in Samba 2.x</A +></H1 +><HR></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN1275" -></A ->10.1. Joining an NT Domain with Samba 2.2</H1 +NAME="AEN3" +>Joining an NT Domain with Samba 2.2</A +></H1 ><P >Assume you have a Samba 2.x server with a NetBIOS name of <TT @@ -305,12 +256,12 @@ CLASS="COMMAND" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN1339" -></A ->10.2. Samba and Windows 2000 Domains</H1 +NAME="AEN67" +>Samba and Windows 2000 Domains</A +></H1 ><P >Many people have asked regarding the state of Samba's ability to participate in a Windows 2000 Domain. Samba 2.2 is able to act as a member server of a Windows @@ -330,12 +281,12 @@ Computers" MMC (Microsoft Management Console) plugin.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN1344" -></A ->10.3. Why is this better than security = server?</H1 +NAME="AEN72" +>Why is this better than security = server?</A +></H1 ><P >Currently, domain security in Samba doesn't free you from having to create local Unix users to represent the users attaching @@ -399,12 +350,9 @@ CLASS="COMMAND" user is authenticated, making a Samba server truly plug and play in an NT domain environment. Watch for this code soon.</P ><P -><SPAN -CLASS="emphasis" ><I CLASS="EMPHASIS" >NOTE:</I -></SPAN > Much of the text of this document was first published in the Web magazine <A HREF="http://www.linuxworld.com" @@ -419,64 +367,6 @@ TARGET="_top" >.</P ></DIV ></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="securitylevels.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="winbind.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Security levels</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Unified Logons between Windows NT and UNIX using Winbind</TD -></TR -></TABLE -></DIV ></BODY ></HTML >
\ No newline at end of file diff --git a/docs/htmldocs/diagnosis.html b/docs/htmldocs/Diagnosis.html index 9cab114e49..1944c37be9 100644 --- a/docs/htmldocs/diagnosis.html +++ b/docs/htmldocs/Diagnosis.html @@ -1,85 +1,36 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Diagnosing your samba server</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="How to Install and Test SAMBA" -HREF="install.html"><LINK -REL="NEXT" -TITLE="Integrating MS Windows networks with Samba" -HREF="integrate-ms-networks.html"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY -CLASS="CHAPTER" +CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="install.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="integrate-ms-networks.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV +CLASS="ARTICLE" ><DIV -CLASS="CHAPTER" +CLASS="TITLEPAGE" ><H1 +CLASS="TITLE" ><A NAME="DIAGNOSIS" -></A ->Chapter 2. Diagnosing your samba server</H1 +>Diagnosing your samba server</A +></H1 +><HR></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN223" -></A ->2.1. Introduction</H1 +NAME="AEN3" +>Introduction</A +></H1 ><P >This file contains a list of tests you can perform to validate your Samba server. It also tells you what the likely cause of the problem @@ -96,12 +47,12 @@ ignore your email.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN228" -></A ->2.2. Assumptions</H1 +NAME="AEN8" +>Assumptions</A +></H1 ><P >In all of the tests I assume you have a Samba server called BIGSERVER and a PC called ACLIENT both in workgroup TESTGROUP. I also assume the @@ -137,20 +88,20 @@ best way to check this is with "testparm smb.conf"</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN238" -></A ->2.3. Tests</H1 +NAME="AEN18" +>Tests</A +></H1 ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN240" -></A ->2.3.1. Test 1</H2 +NAME="AEN20" +>Test 1</A +></H2 ><P >In the directory in which you store your smb.conf file, run the command "testparm smb.conf". If it reports any errors then your smb.conf @@ -167,12 +118,12 @@ CLASS="FILENAME" ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN246" -></A ->2.3.2. Test 2</H2 +NAME="AEN26" +>Test 2</A +></H2 ><P >Run the command "ping BIGSERVER" from the PC and "ping ACLIENT" from the unix box. If you don't get a valid response then your TCP/IP @@ -193,12 +144,12 @@ this is done via the ipfwadm program.)</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN252" -></A ->2.3.3. Test 3</H2 +NAME="AEN32" +>Test 3</A +></H2 ><P >Run the command "smbclient -L BIGSERVER" on the unix box. You should get a list of available shares back. </P @@ -264,12 +215,12 @@ correct and that Samba has correctly noted these in the log.nmb file.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN267" -></A ->2.3.4. Test 4</H2 +NAME="AEN47" +>Test 4</A +></H2 ><P >Run the command "nmblookup -B BIGSERVER __SAMBA__". You should get the IP address of your Samba server back.</P @@ -285,12 +236,12 @@ inetd.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN272" -></A ->2.3.5. Test 5</H2 +NAME="AEN52" +>Test 5</A +></H2 ><P >run the command <B CLASS="COMMAND" @@ -306,12 +257,12 @@ client in the above test.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN278" -></A ->2.3.6. Test 6</H2 +NAME="AEN58" +>Test 6</A +></H2 ><P >Run the command <B CLASS="COMMAND" @@ -340,12 +291,12 @@ not correct. (Refer to TEST 3 notes above).</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN286" -></A ->2.3.7. Test 7</H2 +NAME="AEN66" +>Test 7</A +></H2 ><P >Run the command <B CLASS="COMMAND" @@ -429,12 +380,12 @@ CLASS="COMMAND" ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN312" -></A ->2.3.8. Test 8</H2 +NAME="AEN92" +>Test 8</A +></H2 ><P >On the PC type the command <B CLASS="COMMAND" @@ -489,12 +440,12 @@ the hosts.allow file for your client (or subnet, etc.)</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN329" -></A ->2.3.9. Test 9</H2 +NAME="AEN109" +>Test 9</A +></H2 ><P >Run the command <B CLASS="COMMAND" @@ -509,26 +460,16 @@ and other config lines in smb.conf are correct.</P connect you as. To see if this is the problem add the line "user = USERNAME" to the [tmp] section of smb.conf where "USERNAME" is the username corresponding to the password you typed. If you find this -fixes things you may need the username mapping option. </P -><P ->It might also be the case that your client only sends encrypted passwords -and you have <B -CLASS="COMMAND" ->encrypt passwords = no</B -> in <TT -CLASS="FILENAME" ->smb.conf</TT ->. -Turn it back on to fix.</P +fixes things you may need the username mapping option.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN337" -></A ->2.3.10. Test 10</H2 +NAME="AEN114" +>Test 10</A +></H2 ><P >Run the command <B CLASS="COMMAND" @@ -549,12 +490,12 @@ an election is held at startup.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN343" -></A ->2.3.11. Test 11</H2 +NAME="AEN120" +>Test 11</A +></H2 ><P >From file manager try to browse the server. Your samba server should appear in the browse list of your local workgroup (or the one you @@ -577,12 +518,12 @@ for encrypted passwords (refer to the Makefile).</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN348" -></A ->2.4. Still having troubles?</H1 +NAME="AEN125" +>Still having troubles?</A +></H1 ><P >Try the mailing list or newsgroup, or use the ethereal utility to sniff the problem. The official samba mailing list can be reached at @@ -602,64 +543,6 @@ TARGET="_top" >Also look at the other docs in the Samba package!</P ></DIV ></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="install.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="integrate-ms-networks.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->How to Install and Test SAMBA</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Integrating MS Windows networks with Samba</TD -></TR -></TABLE -></DIV ></BODY ></HTML >
\ No newline at end of file diff --git a/docs/htmldocs/integrate-ms-networks.html b/docs/htmldocs/Integrating-with-Windows.html index a78d59196d..fd2bd7fdaf 100644 --- a/docs/htmldocs/integrate-ms-networks.html +++ b/docs/htmldocs/Integrating-with-Windows.html @@ -1,86 +1,36 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Integrating MS Windows networks with Samba</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="Diagnosing your samba server" -HREF="diagnosis.html"><LINK -REL="NEXT" -TITLE="Configuring PAM for distributed but centrally -managed authentication" -HREF="pam.html"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY -CLASS="CHAPTER" +CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="diagnosis.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="pam.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV +CLASS="ARTICLE" ><DIV -CLASS="CHAPTER" +CLASS="TITLEPAGE" ><H1 +CLASS="TITLE" ><A NAME="INTEGRATE-MS-NETWORKS" -></A ->Chapter 3. Integrating MS Windows networks with Samba</H1 +>Integrating MS Windows networks with Samba</A +></H1 +><HR></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN365" -></A ->3.1. Agenda</H1 +NAME="AEN3" +>Agenda</A +></H1 ><P >To identify the key functional mechanisms of MS Windows networking to enable the deployment of Samba as a means of extending and/or @@ -142,12 +92,12 @@ TYPE="a" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN387" -></A ->3.2. Name Resolution in a pure Unix/Linux world</H1 +NAME="AEN25" +>Name Resolution in a pure Unix/Linux world</A +></H1 ><P >The key configuration files covered in this section are:</P ><P @@ -184,14 +134,14 @@ CLASS="FILENAME" ></UL ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN403" -></A ->3.2.1. <TT +NAME="AEN41" +><TT CLASS="FILENAME" >/etc/hosts</TT +></A ></H2 ><P >Contains a static list of IP Addresses and names. @@ -265,14 +215,14 @@ becomes available.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN419" -></A ->3.2.2. <TT +NAME="AEN57" +><TT CLASS="FILENAME" >/etc/resolv.conf</TT +></A ></H2 ><P >This file tells the name resolution libraries:</P @@ -303,14 +253,14 @@ CLASS="FILENAME" ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN430" -></A ->3.2.3. <TT +NAME="AEN68" +><TT CLASS="FILENAME" >/etc/host.conf</TT +></A ></H2 ><P ><TT @@ -332,14 +282,14 @@ man page for host.conf for further details.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN438" -></A ->3.2.4. <TT +NAME="AEN76" +><TT CLASS="FILENAME" >/etc/nsswitch.conf</TT +></A ></H2 ><P >This file controls the actual name resolution targets. The @@ -401,12 +351,12 @@ which both the samba machine and the MS Windows machine belong.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN450" -></A ->3.3. Name resolution as used within MS Windows networking</H1 +NAME="AEN88" +>Name resolution as used within MS Windows networking</A +></H1 ><P >MS Windows networking is predicated about the name each machine is given. This name is known variously (and inconsistently) as @@ -486,12 +436,12 @@ Since we are primarily concerned with TCP/IP this demonstration is limited to this area.</P ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN462" -></A ->3.3.1. The NetBIOS Name Cache</H2 +NAME="AEN100" +>The NetBIOS Name Cache</A +></H2 ><P >All MS Windows machines employ an in memory buffer in which is stored the NetBIOS names and IP addresses for all external @@ -513,12 +463,12 @@ is called "nmblookup".</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN467" -></A ->3.3.2. The LMHOSTS file</H2 +NAME="AEN105" +>The LMHOSTS file</A +></H2 ><P >This file is usually located in MS Windows NT 4.0 or 2000 in <TT @@ -616,12 +566,12 @@ CLASS="PROGRAMLISTING" ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN475" -></A ->3.3.3. HOSTS file</H2 +NAME="AEN113" +>HOSTS file</A +></H2 ><P >This file is usually located in MS Windows NT 4.0 or 2000 in <TT @@ -638,12 +588,12 @@ CLASS="FILENAME" ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN480" -></A ->3.3.4. DNS Lookup</H2 +NAME="AEN118" +>DNS Lookup</A +></H2 ><P >This capability is configured in the TCP/IP setup area in the network configuration facility. If enabled an elaborate name resolution sequence @@ -658,12 +608,12 @@ lookup is used.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN483" -></A ->3.3.5. WINS Lookup</H2 +NAME="AEN121" +>WINS Lookup</A +></H2 ><P >A WINS (Windows Internet Name Server) service is the equivaent of the rfc1001/1002 specified NBNS (NetBIOS Name Server). A WINS server stores @@ -701,13 +651,13 @@ of the WINS server.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN495" -></A ->3.4. How browsing functions and how to deploy stable and -dependable browsing using Samba</H1 +NAME="AEN133" +>How browsing functions and how to deploy stable and +dependable browsing using Samba</A +></H1 ><P >As stated above, MS Windows machines register their NetBIOS names (i.e.: the machine name for each service type in operation) on start @@ -768,13 +718,13 @@ and so on.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN505" -></A ->3.5. MS Windows security options and how to configure -Samba for seemless integration</H1 +NAME="AEN143" +>MS Windows security options and how to configure +Samba for seemless integration</A +></H1 ><P >MS Windows clients may use encrypted passwords as part of a challenege/response authentication model (a.k.a. NTLMv1) or @@ -881,12 +831,9 @@ CLASS="PARAMETER" >password level</I ></TT > must be set to the maximum -number of upper case letter which <SPAN -CLASS="emphasis" -><I +number of upper case letter which <I CLASS="EMPHASIS" >could</I -></SPAN > appear is a password. Note that is the server OS uses the traditional DES version of crypt(), then a <TT @@ -905,12 +852,12 @@ where ever Samba is used. There are three configuration possibilities for support of encrypted passwords:</P ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN533" -></A ->3.5.1. Use MS Windows NT as an authentication server</H2 +NAME="AEN171" +>Use MS Windows NT as an authentication server</A +></H2 ><P >This method involves the additions of the following parameters in the smb.conf file:</P @@ -941,12 +888,12 @@ to prevent logons by other than MS Windows clients.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN541" -></A ->3.5.2. Make Samba a member of an MS Windows NT security domain</H2 +NAME="AEN179" +>Make Samba a member of an MS Windows NT security domain</A +></H2 ><P >This method involves additon of the following paramters in the smb.conf file:</P ><P @@ -1004,12 +951,12 @@ this HOWTO collection.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN558" -></A ->3.5.3. Configure Samba as an authentication server</H2 +NAME="AEN196" +>Configure Samba as an authentication server</A +></H2 ><P >This mode of authentication demands that there be on the Unix/Linux system both a Unix style account as well as an @@ -1041,12 +988,12 @@ to be created for each user, as well as for each MS Windows NT/2000 machine. The following structure is required.</P ><DIV CLASS="SECT3" -><H3 +><HR><H3 CLASS="SECT3" ><A -NAME="AEN565" -></A ->3.5.3.1. Users</H3 +NAME="AEN203" +>Users</A +></H3 ><P >A user account that may provide a home directory should be created. The following Linux system commands are typical of @@ -1064,12 +1011,12 @@ CLASS="PROGRAMLISTING" ></DIV ><DIV CLASS="SECT3" -><H3 +><HR><H3 CLASS="SECT3" ><A -NAME="AEN570" -></A ->3.5.3.2. MS Windows NT Machine Accounts</H3 +NAME="AEN208" +>MS Windows NT Machine Accounts</A +></H3 ><P >These are required only when Samba is used as a domain controller. Refer to the Samba-PDC-HOWTO for more details.</P @@ -1085,12 +1032,12 @@ CLASS="PROGRAMLISTING" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN575" -></A ->3.6. Conclusions</H1 +NAME="AEN213" +>Conclusions</A +></H1 ><P >Samba provides a flexible means to operate as...</P ><P @@ -1120,65 +1067,6 @@ NAME="AEN575" ></UL ></DIV ></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="diagnosis.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="pam.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Diagnosing your samba server</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Configuring PAM for distributed but centrally -managed authentication</TD -></TR -></TABLE -></DIV ></BODY ></HTML >
\ No newline at end of file diff --git a/docs/htmldocs/OS2-Client-HOWTO.html b/docs/htmldocs/OS2-Client-HOWTO.html new file mode 100644 index 0000000000..90f62306e8 --- /dev/null +++ b/docs/htmldocs/OS2-Client-HOWTO.html @@ -0,0 +1,210 @@ +<HTML +><HEAD +><TITLE +>OS2 Client HOWTO</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD +><BODY +CLASS="ARTICLE" +BGCOLOR="#FFFFFF" +TEXT="#000000" +LINK="#0000FF" +VLINK="#840084" +ALINK="#0000FF" +><DIV +CLASS="ARTICLE" +><DIV +CLASS="TITLEPAGE" +><H1 +CLASS="TITLE" +><A +NAME="OS2" +>OS2 Client HOWTO</A +></H1 +><HR></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="AEN3" +>FAQs</A +></H1 +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="AEN5" +>How can I configure OS/2 Warp Connect or + OS/2 Warp 4 as a client for Samba?</A +></H2 +><P +>A more complete answer to this question can be + found on <A +HREF="http://carol.wins.uva.nl/~leeuw/samba/warp.html" +TARGET="_top" +> http://carol.wins.uva.nl/~leeuw/samba/warp.html</A +>.</P +><P +>Basically, you need three components:</P +><P +></P +><UL +><LI +><P +>The File and Print Client ('IBM Peer') + </P +></LI +><LI +><P +>TCP/IP ('Internet support') + </P +></LI +><LI +><P +>The "NetBIOS over TCP/IP" driver ('TCPBEUI') + </P +></LI +></UL +><P +>Installing the first two together with the base operating + system on a blank system is explained in the Warp manual. If Warp + has already been installed, but you now want to install the + networking support, use the "Selective Install for Networking" + object in the "System Setup" folder.</P +><P +>Adding the "NetBIOS over TCP/IP" driver is not described + in the manual and just barely in the online documentation. Start + MPTS.EXE, click on OK, click on "Configure LAPS" and click + on "IBM OS/2 NETBIOS OVER TCP/IP" in 'Protocols'. This line + is then moved to 'Current Configuration'. Select that line, + click on "Change number" and increase it from 0 to 1. Save this + configuration.</P +><P +>If the Samba server(s) is not on your local subnet, you + can optionally add IP names and addresses of these servers + to the "Names List", or specify a WINS server ('NetBIOS + Nameserver' in IBM and RFC terminology). For Warp Connect you + may need to download an update for 'IBM Peer' to bring it on + the same level as Warp 4. See the webpage mentioned above.</P +></DIV +><DIV +CLASS="SECT2" +><HR><H2 +CLASS="SECT2" +><A +NAME="AEN20" +>How can I configure OS/2 Warp 3 (not Connect), + OS/2 1.2, 1.3 or 2.x for Samba?</A +></H2 +><P +>You can use the free Microsoft LAN Manager 2.2c Client + for OS/2 from + <A +HREF="ftp://ftp.microsoft.com/BusSys/Clients/LANMAN.OS2/" +TARGET="_top" +> ftp://ftp.microsoft.com/BusSys/Clients/LANMAN.OS2/</A +>. + See <A +HREF="http://carol.wins.uva.nl/~leeuw/lanman.html" +TARGET="_top" +> http://carol.wins.uva.nl/~leeuw/lanman.html</A +> for + more information on how to install and use this client. In + a nutshell, edit the file \OS2VER in the root directory of + the OS/2 boot partition and add the lines:</P +><P +><PRE +CLASS="PROGRAMLISTING" +> 20=setup.exe + 20=netwksta.sys + 20=netvdd.sys + </PRE +></P +><P +>before you install the client. Also, don't use the + included NE2000 driver because it is buggy. Try the NE2000 + or NS2000 driver from + <A +HREF="ftp://ftp.cdrom.com/pub/os2/network/ndis/" +TARGET="_top" +> ftp://ftp.cdrom.com/pub/os2/network/ndis/</A +> instead. + </P +></DIV +><DIV +CLASS="SECT2" +><HR><H2 +CLASS="SECT2" +><A +NAME="AEN29" +>Are there any other issues when OS/2 (any version) + is used as a client?</A +></H2 +><P +>When you do a NET VIEW or use the "File and Print + Client Resource Browser", no Samba servers show up. This can + be fixed by a patch from <A +HREF="http://carol.wins.uva.nl/~leeuw/samba/fix.html" +TARGET="_top" +> http://carol.wins.uva.nl/~leeuw/samba/fix.html</A +>. + The patch will be included in a later version of Samba. It also + fixes a couple of other problems, such as preserving long + filenames when objects are dragged from the Workplace Shell + to the Samba server. </P +></DIV +><DIV +CLASS="SECT2" +><HR><H2 +CLASS="SECT2" +><A +NAME="AEN33" +>How do I get printer driver download working + for OS/2 clients?</A +></H2 +><P +>First, create a share called [PRINTDRV] that is + world-readable. Copy your OS/2 driver files there. Note + that the .EA_ files must still be separate, so you will need + to use the original install files, and not copy an installed + driver from an OS/2 system.</P +><P +>Install the NT driver first for that printer. Then, + add to your smb.conf a parameter, "os2 driver map = + <TT +CLASS="REPLACEABLE" +><I +>filename</I +></TT +>". Then, in the file + specified by <TT +CLASS="REPLACEABLE" +><I +>filename</I +></TT +>, map the + name of the NT driver name to the OS/2 driver name as + follows:</P +><P +><nt driver name> = <os2 driver + name>.<device name>, e.g.: + HP LaserJet 5L = LASERJET.HP LaserJet 5L</P +><P +>You can have multiple drivers mapped in this file.</P +><P +>If you only specify the OS/2 driver name, and not the + device name, the first attempt to download the driver will + actually download the files, but the OS/2 client will tell + you the driver is not available. On the second attempt, it + will work. This is fixed simply by adding the device name + to the mapping, after which it will work on the first attempt. + </P +></DIV +></DIV +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/docs/htmldocs/pam.html b/docs/htmldocs/PAM-Authentication-And-Samba.html index 8504804e11..6dc815b87b 100644 --- a/docs/htmldocs/pam.html +++ b/docs/htmldocs/PAM-Authentication-And-Samba.html @@ -1,4 +1,3 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE @@ -6,82 +5,34 @@ managed authentication</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="Integrating MS Windows networks with Samba" -HREF="integrate-ms-networks.html"><LINK -REL="NEXT" -TITLE="Hosting a Microsoft Distributed File System tree on Samba" -HREF="msdfs.html"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY -CLASS="CHAPTER" +CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="integrate-ms-networks.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="msdfs.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV +CLASS="ARTICLE" ><DIV -CLASS="CHAPTER" +CLASS="TITLEPAGE" ><H1 +CLASS="TITLE" ><A NAME="PAM" -></A ->Chapter 4. Configuring PAM for distributed but centrally -managed authentication</H1 +>Configuring PAM for distributed but centrally +managed authentication</A +></H1 +><HR></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN596" -></A ->4.1. Samba and PAM</H1 +NAME="AEN3" +>Samba and PAM</A +></H1 ><P >A number of Unix systems (eg: Sun Solaris), as well as the xxxxBSD family and Linux, now utilize the Pluggable Authentication @@ -271,7 +222,7 @@ password required /lib/security/pam_smbpass.so nodelay smbconf=/etc/samba. ></P ><P >Note: PAM allows stacking of authentication mechanisms. It is -also possible to pass information obtained within one PAM module through +also possible to pass information obtained within on PAM module through to the next module in the PAM stack. Please refer to the documentation for your particular system implementation for details regarding the specific capabilities of PAM in this environment. Some Linux implmentations also @@ -290,12 +241,12 @@ PAM documentation for further helpful information.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN640" -></A ->4.2. Distributed Authentication</H1 +NAME="AEN47" +>Distributed Authentication</A +></H1 ><P >The astute administrator will realize from this that the combination of <TT @@ -323,12 +274,12 @@ reduction of wide area network authentication traffic.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN647" -></A ->4.3. PAM Configuration in smb.conf</H1 +NAME="AEN54" +>PAM Configuration in smb.conf</A +></H1 ><P >There is an option in smb.conf called <A HREF="smb.conf.5.html#OBEYPAMRESTRICTIONS" @@ -362,64 +313,6 @@ CLASS="COMMAND" ></P ></DIV ></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="integrate-ms-networks.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="msdfs.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Integrating MS Windows networks with Samba</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Hosting a Microsoft Distributed File System tree on Samba</TD -></TR -></TABLE -></DIV ></BODY ></HTML >
\ No newline at end of file diff --git a/docs/htmldocs/printingdebug.html b/docs/htmldocs/Printing.html index acc81fdc00..6c8b196240 100644 --- a/docs/htmldocs/printingdebug.html +++ b/docs/htmldocs/Printing.html @@ -1,85 +1,36 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Debugging Printing Problems</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="Printing Support in Samba 2.2.x" -HREF="printing.html"><LINK -REL="NEXT" -TITLE="Security levels" -HREF="securitylevels.html"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY -CLASS="CHAPTER" +CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="printing.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="securitylevels.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV +CLASS="ARTICLE" ><DIV -CLASS="CHAPTER" +CLASS="TITLEPAGE" ><H1 +CLASS="TITLE" ><A -NAME="PRINTINGDEBUG" -></A ->Chapter 8. Debugging Printing Problems</H1 +NAME="PRINTING_DEBUG" +>Debugging Printing Problems</A +></H1 +><HR></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN1128" -></A ->8.1. Introduction</H1 +NAME="AEN3" +>Introduction</A +></H1 ><P >This is a short description of how to debug printing problems with Samba. This describes how to debug problems with printing from a SMB @@ -149,12 +100,12 @@ the lpq output.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN1144" -></A ->8.2. Debugging printer problems</H1 +NAME="AEN19" +>Debugging printer problems</A +></H1 ><P >One way to debug printing problems is to start by replacing these command with shell scripts that record the arguments and the contents @@ -206,12 +157,12 @@ various print queues.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN1153" -></A ->8.3. What printers do I have?</H1 +NAME="AEN28" +>What printers do I have?</A +></H1 ><P >You can use the 'testprns' program to check to see if the printer name you are using is recognized by Samba. For example, you can @@ -235,12 +186,12 @@ CLASS="PROGRAMLISTING" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN1161" -></A ->8.4. Setting up printcap and print servers</H1 +NAME="AEN36" +>Setting up printcap and print servers</A +></H1 ><P >You may need to set up some printcaps for your Samba system to use. It is strongly recommended that you use the facilities provided by @@ -319,12 +270,12 @@ it reread the printcap information.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN1189" -></A ->8.5. Job sent, no output</H1 +NAME="AEN64" +>Job sent, no output</A +></H1 ><P >This is the most frustrating part of printing. You may have sent the job, verified that the job was forwarded, set up a wrapper around @@ -364,12 +315,12 @@ convert the file to a format appropriate for your printer.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN1200" -></A ->8.6. Job sent, strange output</H1 +NAME="AEN75" +>Job sent, strange output</A +></H1 ><P >Once you have the job printing, you can then start worrying about making it print nicely.</P @@ -410,12 +361,12 @@ PostScript. The multiple ^D may cause an additional page of output.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN1212" -></A ->8.7. Raw PostScript printed</H1 +NAME="AEN87" +>Raw PostScript printed</A +></H1 ><P >This is a problem that is usually caused by either the print spooling system putting information at the start of the print job that makes @@ -425,12 +376,12 @@ Format Detection' on your printer.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN1215" -></A ->8.8. Advanced Printing</H1 +NAME="AEN90" +>Advanced Printing</A +></H1 ><P >Note that you can do some pretty magic things by using your imagination with the "print command" option and some shell scripts. @@ -441,75 +392,17 @@ printer.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN1218" -></A ->8.9. Real debugging</H1 +NAME="AEN93" +>Real debugging</A +></H1 ><P >If the above debug tips don't help, then maybe you need to bring in the bug guns, system tracing. See Tracing.txt in this directory.</P ></DIV ></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="printing.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="securitylevels.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Printing Support in Samba 2.2.x</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Security levels</TD -></TR -></TABLE -></DIV ></BODY ></HTML >
\ No newline at end of file diff --git a/docs/htmldocs/samba-bdc.html b/docs/htmldocs/Samba-BDC-HOWTO.html index c4c62305d4..fd83c4e09a 100644 --- a/docs/htmldocs/samba-bdc.html +++ b/docs/htmldocs/Samba-BDC-HOWTO.html @@ -1,85 +1,36 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >How to Act as a Backup Domain Controller in a Purely Samba Controlled Domain</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="How to Configure Samba 2.2 as a Primary Domain Controller" -HREF="samba-pdc.html"><LINK -REL="NEXT" -TITLE="Storing Samba's User/Machine Account information in an LDAP Directory" -HREF="samba-ldap-howto.html"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY -CLASS="CHAPTER" +CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="samba-pdc.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="samba-ldap-howto.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV +CLASS="ARTICLE" ><DIV -CLASS="CHAPTER" +CLASS="TITLEPAGE" ><H1 +CLASS="TITLE" ><A NAME="SAMBA-BDC" -></A ->Chapter 13. How to Act as a Backup Domain Controller in a Purely Samba Controlled Domain</H1 +>How to Act as a Backup Domain Controller in a Purely Samba Controlled Domain</A +></H1 +><HR></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN2290" -></A ->13.1. Prerequisite Reading</H1 +NAME="AEN3" +>Prerequisite Reading</A +></H1 ><P >Before you continue reading in this chapter, please make sure that you are comfortable with configuring a Samba PDC @@ -91,12 +42,12 @@ TARGET="_top" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2294" -></A ->13.2. Background</H1 +NAME="AEN7" +>Background</A +></H1 ><P >What is a Domain Controller? It is a machine that is able to answer logon requests from workstations in a Windows NT Domain. Whenever a @@ -136,12 +87,12 @@ others. This will not be covered in this document.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2302" -></A ->13.3. What qualifies a Domain Controller on the network?</H1 +NAME="AEN15" +>What qualifies a Domain Controller on the network?</A +></H1 ><P >Every machine that is a Domain Controller for the domain SAMBA has to register the NetBIOS group name SAMBA#1c with the WINS server and/or @@ -153,12 +104,12 @@ Microsoft Domain implementation requires the domain master browser to be on the same machine as the PDC.</P ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN2305" -></A ->13.3.1. How does a Workstation find its domain controller?</H2 +NAME="AEN18" +>How does a Workstation find its domain controller?</A +></H2 ><P >A NT workstation in the domain SAMBA that wants a local user to be authenticated has to find the domain controller for SAMBA. It does @@ -172,12 +123,12 @@ the domain controller, asking for approval.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN2308" -></A ->13.3.2. When is the PDC needed?</H2 +NAME="AEN21" +>When is the PDC needed?</A +></H2 ><P >Whenever a user wants to change his password, this has to be done on the PDC. To find the PDC, the workstation does a NetBIOS name query @@ -188,12 +139,12 @@ the password change is done.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2311" -></A ->13.4. Can Samba be a Backup Domain Controller?</H1 +NAME="AEN24" +>Can Samba be a Backup Domain Controller?</A +></H1 ><P >With version 2.2, no. The native NT SAM replication protocols have not yet been fully implemented. The Samba Team is working on @@ -207,12 +158,12 @@ service logon requests whenever the PDC is down.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2315" -></A ->13.5. How do I set up a Samba BDC?</H1 +NAME="AEN28" +>How do I set up a Samba BDC?</A +></H1 ><P >Several things have to be done:</P ><P @@ -220,16 +171,10 @@ NAME="AEN2315" ><UL ><LI ><P ->The domain SID has to be the same on the PDC and the BDC. This used to -be stored in the file private/MACHINE.SID. This file is not created -anymore since Samba 2.2.5 or even earlier. Nowadays the domain SID is -stored in the file private/secrets.tdb. Simply copying the secrets.tdb -from the PDC to the BDC does not work, as the BDC would -generate a new SID for itself and override the domain SID with this -new BDC SID.</P -><P ->To retrieve the domain SID from the PDC or an existing BDC and store it in the -secrets.tdb, execute 'net rpc getsid' on the BDC.</P +>The file private/MACHINE.SID identifies the domain. When a samba +server is first started, it is created on the fly and must never be +changed again. This file has to be the same on the PDC and the BDC, +so the MACHINE.SID has to be copied from the PDC to the BDC.</P ></LI ><LI ><P @@ -274,12 +219,12 @@ no' forces the BDC not to register SAMBA#1b which as a unique NetBIOS name is reserved for the Primary Domain Controller.</P ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN2332" -></A ->13.5.1. How do I replicate the smbpasswd file?</H2 +NAME="AEN44" +>How do I replicate the smbpasswd file?</A +></H2 ><P >Replication of the smbpasswd file is sensitive. It has to be done whenever changes to the SAM are made. Every user's password change is @@ -295,64 +240,6 @@ password.</P ></DIV ></DIV ></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="samba-pdc.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="samba-ldap-howto.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->How to Configure Samba 2.2 as a Primary Domain Controller</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Storing Samba's User/Machine Account information in an LDAP Directory</TD -></TR -></TABLE -></DIV ></BODY ></HTML >
\ No newline at end of file diff --git a/docs/htmldocs/Samba-HOWTO-Collection.html b/docs/htmldocs/Samba-HOWTO-Collection.html index e5240ba658..71e27a2e80 100644 --- a/docs/htmldocs/Samba-HOWTO-Collection.html +++ b/docs/htmldocs/Samba-HOWTO-Collection.html @@ -1,11 +1,12 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML ><HEAD ><TITLE >SAMBA Project Documentation</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ +"></HEAD ><BODY CLASS="BOOK" BGCOLOR="#FFFFFF" @@ -16,35 +17,24 @@ ALINK="#0000FF" ><DIV CLASS="BOOK" ><A -NAME="SAMBA-PROJECT-DOCUMENTATION" -></A -><DIV +NAME="SAMBA-PROJECT-DOCUMENTATION"><DIV CLASS="TITLEPAGE" ><H1 CLASS="TITLE" ><A -NAME="SAMBA-PROJECT-DOCUMENTATION" -></A ->SAMBA Project Documentation</H1 +NAME="SAMBA-PROJECT-DOCUMENTATION">SAMBA Project Documentation</H1 ><H3 CLASS="AUTHOR" ><A -NAME="AEN4" -></A ->SAMBA Team</H3 +NAME="AEN4">SAMBA Team</H3 ><HR></DIV ><HR><H1 ><A -NAME="AEN8" -></A ->Abstract</H1 +NAME="AEN8">Abstract</H1 ><P -><SPAN -CLASS="emphasis" ><I CLASS="EMPHASIS" >Last Update</I -></SPAN > : Thu Aug 15 12:48:45 CDT 2002</P ><P >This book is a collection of HOWTOs added to Samba documentation over the years. @@ -78,34 +68,34 @@ CLASS="TOC" >Table of Contents</B ></DT ><DT ->1. <A +><A HREF="#INSTALL" >How to Install and Test SAMBA</A ></DT ><DD ><DL ><DT ->1.1. <A +><A HREF="#AEN20" >Step 0: Read the man pages</A ></DT ><DT ->1.2. <A +><A HREF="#AEN28" >Step 1: Building the Binaries</A ></DT ><DT ->1.3. <A +><A HREF="#AEN56" >Step 2: The all important step</A ></DT ><DT ->1.4. <A +><A HREF="#AEN60" >Step 3: Create the smb configuration file.</A ></DT ><DT ->1.5. <A +><A HREF="#AEN74" >Step 4: Test your config file with <B @@ -114,75 +104,75 @@ CLASS="COMMAND" ></A ></DT ><DT ->1.6. <A +><A HREF="#AEN80" >Step 5: Starting the smbd and nmbd</A ></DT ><DD ><DL ><DT ->1.6.1. <A +><A HREF="#AEN90" >Step 5a: Starting from inetd.conf</A ></DT ><DT ->1.6.2. <A +><A HREF="#AEN119" >Step 5b. Alternative: starting it as a daemon</A ></DT ></DL ></DD ><DT ->1.7. <A +><A HREF="#AEN135" >Step 6: Try listing the shares available on your server</A ></DT ><DT ->1.8. <A +><A HREF="#AEN144" >Step 7: Try connecting with the unix client</A ></DT ><DT ->1.9. <A +><A HREF="#AEN160" >Step 8: Try connecting from a DOS, WfWg, Win9x, WinNT, Win2k, OS/2, etc... client</A ></DT ><DT ->1.10. <A +><A HREF="#AEN174" >What If Things Don't Work?</A ></DT ><DD ><DL ><DT ->1.10.1. <A +><A HREF="#AEN179" >Diagnosing Problems</A ></DT ><DT ->1.10.2. <A +><A HREF="#AEN183" >Scope IDs</A ></DT ><DT ->1.10.3. <A +><A HREF="#AEN186" >Choosing the Protocol Level</A ></DT ><DT ->1.10.4. <A +><A HREF="#AEN195" >Printing from UNIX to a Client PC</A ></DT ><DT ->1.10.5. <A +><A HREF="#AEN200" >Locking</A ></DT ><DT ->1.10.6. <A +><A HREF="#AEN209" >Mapping Usernames</A ></DT @@ -191,139 +181,139 @@ HREF="#AEN209" ></DL ></DD ><DT ->2. <A +><A HREF="#DIAGNOSIS" >Diagnosing your samba server</A ></DT ><DD ><DL ><DT ->2.1. <A +><A HREF="#AEN223" >Introduction</A ></DT ><DT ->2.2. <A +><A HREF="#AEN228" >Assumptions</A ></DT ><DT ->2.3. <A +><A HREF="#AEN238" >Tests</A ></DT ><DD ><DL ><DT ->2.3.1. <A +><A HREF="#AEN240" >Test 1</A ></DT ><DT ->2.3.2. <A +><A HREF="#AEN246" >Test 2</A ></DT ><DT ->2.3.3. <A +><A HREF="#AEN252" >Test 3</A ></DT ><DT ->2.3.4. <A +><A HREF="#AEN267" >Test 4</A ></DT ><DT ->2.3.5. <A +><A HREF="#AEN272" >Test 5</A ></DT ><DT ->2.3.6. <A +><A HREF="#AEN278" >Test 6</A ></DT ><DT ->2.3.7. <A +><A HREF="#AEN286" >Test 7</A ></DT ><DT ->2.3.8. <A +><A HREF="#AEN312" >Test 8</A ></DT ><DT ->2.3.9. <A +><A HREF="#AEN329" >Test 9</A ></DT ><DT ->2.3.10. <A -HREF="#AEN337" +><A +HREF="#AEN334" >Test 10</A ></DT ><DT ->2.3.11. <A -HREF="#AEN343" +><A +HREF="#AEN340" >Test 11</A ></DT ></DL ></DD ><DT ->2.4. <A -HREF="#AEN348" +><A +HREF="#AEN345" >Still having troubles?</A ></DT ></DL ></DD ><DT ->3. <A +><A HREF="#INTEGRATE-MS-NETWORKS" >Integrating MS Windows networks with Samba</A ></DT ><DD ><DL ><DT ->3.1. <A -HREF="#AEN365" +><A +HREF="#AEN362" >Agenda</A ></DT ><DT ->3.2. <A -HREF="#AEN387" +><A +HREF="#AEN384" >Name Resolution in a pure Unix/Linux world</A ></DT ><DD ><DL ><DT ->3.2.1. <A -HREF="#AEN403" +><A +HREF="#AEN400" ><TT CLASS="FILENAME" >/etc/hosts</TT ></A ></DT ><DT ->3.2.2. <A -HREF="#AEN419" +><A +HREF="#AEN416" ><TT CLASS="FILENAME" >/etc/resolv.conf</TT ></A ></DT ><DT ->3.2.3. <A -HREF="#AEN430" +><A +HREF="#AEN427" ><TT CLASS="FILENAME" >/etc/host.conf</TT ></A ></DT ><DT ->3.2.4. <A -HREF="#AEN438" +><A +HREF="#AEN435" ><TT CLASS="FILENAME" >/etc/nsswitch.conf</TT @@ -332,79 +322,79 @@ CLASS="FILENAME" ></DL ></DD ><DT ->3.3. <A -HREF="#AEN450" +><A +HREF="#AEN447" >Name resolution as used within MS Windows networking</A ></DT ><DD ><DL ><DT ->3.3.1. <A -HREF="#AEN462" +><A +HREF="#AEN459" >The NetBIOS Name Cache</A ></DT ><DT ->3.3.2. <A -HREF="#AEN467" +><A +HREF="#AEN464" >The LMHOSTS file</A ></DT ><DT ->3.3.3. <A -HREF="#AEN475" +><A +HREF="#AEN472" >HOSTS file</A ></DT ><DT ->3.3.4. <A -HREF="#AEN480" +><A +HREF="#AEN477" >DNS Lookup</A ></DT ><DT ->3.3.5. <A -HREF="#AEN483" +><A +HREF="#AEN480" >WINS Lookup</A ></DT ></DL ></DD ><DT ->3.4. <A -HREF="#AEN495" +><A +HREF="#AEN492" >How browsing functions and how to deploy stable and dependable browsing using Samba</A ></DT ><DT ->3.5. <A -HREF="#AEN505" +><A +HREF="#AEN502" >MS Windows security options and how to configure Samba for seemless integration</A ></DT ><DD ><DL ><DT ->3.5.1. <A -HREF="#AEN533" +><A +HREF="#AEN530" >Use MS Windows NT as an authentication server</A ></DT ><DT ->3.5.2. <A -HREF="#AEN541" +><A +HREF="#AEN538" >Make Samba a member of an MS Windows NT security domain</A ></DT ><DT ->3.5.3. <A -HREF="#AEN558" +><A +HREF="#AEN555" >Configure Samba as an authentication server</A ></DT ></DL ></DD ><DT ->3.6. <A -HREF="#AEN575" +><A +HREF="#AEN572" >Conclusions</A ></DT ></DL ></DD ><DT ->4. <A +><A HREF="#PAM" >Configuring PAM for distributed but centrally managed authentication</A @@ -412,39 +402,39 @@ managed authentication</A ><DD ><DL ><DT ->4.1. <A -HREF="#AEN596" +><A +HREF="#AEN593" >Samba and PAM</A ></DT ><DT ->4.2. <A -HREF="#AEN640" +><A +HREF="#AEN637" >Distributed Authentication</A ></DT ><DT ->4.3. <A -HREF="#AEN647" +><A +HREF="#AEN644" >PAM Configuration in smb.conf</A ></DT ></DL ></DD ><DT ->5. <A +><A HREF="#MSDFS" >Hosting a Microsoft Distributed File System tree on Samba</A ></DT ><DD ><DL ><DT ->5.1. <A -HREF="#AEN667" +><A +HREF="#AEN664" >Instructions</A ></DT ><DD ><DL ><DT ->5.1.1. <A -HREF="#AEN702" +><A +HREF="#AEN699" >Notes</A ></DT ></DL @@ -452,144 +442,144 @@ HREF="#AEN702" ></DL ></DD ><DT ->6. <A +><A HREF="#UNIX-PERMISSIONS" >UNIX Permission Bits and Windows NT Access Control Lists</A ></DT ><DD ><DL ><DT ->6.1. <A -HREF="#AEN722" +><A +HREF="#AEN719" >Viewing and changing UNIX permissions using the NT security dialogs</A ></DT ><DT ->6.2. <A -HREF="#AEN731" +><A +HREF="#AEN728" >How to view file security on a Samba share</A ></DT ><DT ->6.3. <A -HREF="#AEN742" +><A +HREF="#AEN739" >Viewing file ownership</A ></DT ><DT ->6.4. <A -HREF="#AEN762" +><A +HREF="#AEN759" >Viewing file or directory permissions</A ></DT ><DD ><DL ><DT ->6.4.1. <A -HREF="#AEN777" +><A +HREF="#AEN774" >File Permissions</A ></DT ><DT ->6.4.2. <A -HREF="#AEN791" +><A +HREF="#AEN788" >Directory Permissions</A ></DT ></DL ></DD ><DT ->6.5. <A -HREF="#AEN798" +><A +HREF="#AEN795" >Modifying file or directory permissions</A ></DT ><DT ->6.6. <A -HREF="#AEN820" +><A +HREF="#AEN817" >Interaction with the standard Samba create mask parameters</A ></DT ><DT ->6.7. <A -HREF="#AEN884" +><A +HREF="#AEN881" >Interaction with the standard Samba file attribute mapping</A ></DT ></DL ></DD ><DT ->7. <A +><A HREF="#PRINTING" >Printing Support in Samba 2.2.x</A ></DT ><DD ><DL ><DT ->7.1. <A -HREF="#AEN905" +><A +HREF="#AEN902" >Introduction</A ></DT ><DT ->7.2. <A -HREF="#AEN927" +><A +HREF="#AEN924" >Configuration</A ></DT ><DD ><DL ><DT ->7.2.1. <A -HREF="#AEN938" +><A +HREF="#AEN935" >Creating [print$]</A ></DT ><DT ->7.2.2. <A -HREF="#AEN973" +><A +HREF="#AEN970" >Setting Drivers for Existing Printers</A ></DT ><DT ->7.2.3. <A -HREF="#AEN990" +><A +HREF="#AEN987" >Support a large number of printers</A ></DT ><DT ->7.2.4. <A -HREF="#AEN1001" +><A +HREF="#AEN998" >Adding New Printers via the Windows NT APW</A ></DT ><DT ->7.2.5. <A -HREF="#AEN1031" +><A +HREF="#AEN1028" >Samba and Printer Ports</A ></DT ></DL ></DD ><DT ->7.3. <A -HREF="#AEN1039" +><A +HREF="#AEN1036" >The Imprints Toolset</A ></DT ><DD ><DL ><DT ->7.3.1. <A -HREF="#AEN1043" +><A +HREF="#AEN1040" >What is Imprints?</A ></DT ><DT ->7.3.2. <A -HREF="#AEN1053" +><A +HREF="#AEN1050" >Creating Printer Driver Packages</A ></DT ><DT ->7.3.3. <A -HREF="#AEN1056" +><A +HREF="#AEN1053" >The Imprints server</A ></DT ><DT ->7.3.4. <A -HREF="#AEN1060" +><A +HREF="#AEN1057" >The Installation Client</A ></DT ></DL ></DD ><DT ->7.4. <A -HREF="#AEN1082" +><A +HREF="#AEN1079" ><A NAME="MIGRATION" ></A @@ -598,342 +588,342 @@ NAME="MIGRATION" ></DL ></DD ><DT ->8. <A +><A HREF="#PRINTINGDEBUG" >Debugging Printing Problems</A ></DT ><DD ><DL ><DT ->8.1. <A -HREF="#AEN1128" +><A +HREF="#AEN1125" >Introduction</A ></DT ><DT ->8.2. <A -HREF="#AEN1144" +><A +HREF="#AEN1141" >Debugging printer problems</A ></DT ><DT ->8.3. <A -HREF="#AEN1153" +><A +HREF="#AEN1150" >What printers do I have?</A ></DT ><DT ->8.4. <A -HREF="#AEN1161" +><A +HREF="#AEN1158" >Setting up printcap and print servers</A ></DT ><DT ->8.5. <A -HREF="#AEN1189" +><A +HREF="#AEN1186" >Job sent, no output</A ></DT ><DT ->8.6. <A -HREF="#AEN1200" +><A +HREF="#AEN1197" >Job sent, strange output</A ></DT ><DT ->8.7. <A -HREF="#AEN1212" +><A +HREF="#AEN1209" >Raw PostScript printed</A ></DT ><DT ->8.8. <A -HREF="#AEN1215" +><A +HREF="#AEN1212" >Advanced Printing</A ></DT ><DT ->8.9. <A -HREF="#AEN1218" +><A +HREF="#AEN1215" >Real debugging</A ></DT ></DL ></DD ><DT ->9. <A +><A HREF="#SECURITYLEVELS" >Security levels</A ></DT ><DD ><DL ><DT ->9.1. <A -HREF="#AEN1231" +><A +HREF="#AEN1228" >Introduction</A ></DT ><DT ->9.2. <A -HREF="#AEN1242" +><A +HREF="#AEN1239" >More complete description of security levels</A ></DT ></DL ></DD ><DT ->10. <A +><A HREF="#DOMAIN-SECURITY" >security = domain in Samba 2.x</A ></DT ><DD ><DL ><DT ->10.1. <A -HREF="#AEN1275" +><A +HREF="#AEN1272" >Joining an NT Domain with Samba 2.2</A ></DT ><DT ->10.2. <A -HREF="#AEN1339" +><A +HREF="#AEN1336" >Samba and Windows 2000 Domains</A ></DT ><DT ->10.3. <A -HREF="#AEN1344" +><A +HREF="#AEN1341" >Why is this better than security = server?</A ></DT ></DL ></DD ><DT ->11. <A +><A HREF="#WINBIND" >Unified Logons between Windows NT and UNIX using Winbind</A ></DT ><DD ><DL ><DT ->11.1. <A -HREF="#AEN1397" +><A +HREF="#AEN1394" >Abstract</A ></DT ><DT ->11.2. <A -HREF="#AEN1401" +><A +HREF="#AEN1398" >Introduction</A ></DT ><DT ->11.3. <A -HREF="#AEN1414" +><A +HREF="#AEN1411" >What Winbind Provides</A ></DT ><DD ><DL ><DT ->11.3.1. <A -HREF="#AEN1421" +><A +HREF="#AEN1418" >Target Uses</A ></DT ></DL ></DD ><DT ->11.4. <A -HREF="#AEN1425" +><A +HREF="#AEN1422" >How Winbind Works</A ></DT ><DD ><DL ><DT ->11.4.1. <A -HREF="#AEN1430" +><A +HREF="#AEN1427" >Microsoft Remote Procedure Calls</A ></DT ><DT ->11.4.2. <A -HREF="#AEN1434" +><A +HREF="#AEN1431" >Name Service Switch</A ></DT ><DT ->11.4.3. <A -HREF="#AEN1450" +><A +HREF="#AEN1447" >Pluggable Authentication Modules</A ></DT ><DT ->11.4.4. <A -HREF="#AEN1458" +><A +HREF="#AEN1455" >User and Group ID Allocation</A ></DT ><DT ->11.4.5. <A -HREF="#AEN1462" +><A +HREF="#AEN1459" >Result Caching</A ></DT ></DL ></DD ><DT ->11.5. <A -HREF="#AEN1465" +><A +HREF="#AEN1462" >Installation and Configuration</A ></DT ><DD ><DL ><DT ->11.5.1. <A -HREF="#AEN1472" +><A +HREF="#AEN1469" >Introduction</A ></DT ><DT ->11.5.2. <A -HREF="#AEN1485" +><A +HREF="#AEN1482" >Requirements</A ></DT ><DT ->11.5.3. <A -HREF="#AEN1499" +><A +HREF="#AEN1496" >Testing Things Out</A ></DT ></DL ></DD ><DT ->11.6. <A -HREF="#AEN1714" +><A +HREF="#AEN1711" >Limitations</A ></DT ><DT ->11.7. <A -HREF="#AEN1724" +><A +HREF="#AEN1721" >Conclusion</A ></DT ></DL ></DD ><DT ->12. <A +><A HREF="#SAMBA-PDC" >How to Configure Samba 2.2 as a Primary Domain Controller</A ></DT ><DD ><DL ><DT ->12.1. <A -HREF="#AEN1744" +><A +HREF="#AEN1741" >Prerequisite Reading</A ></DT ><DT ->12.2. <A -HREF="#AEN1750" +><A +HREF="#AEN1747" >Background</A ></DT ><DT ->12.3. <A -HREF="#AEN1789" +><A +HREF="#AEN1786" >Configuring the Samba Domain Controller</A ></DT ><DT ->12.4. <A -HREF="#AEN1832" +><A +HREF="#AEN1829" >Creating Machine Trust Accounts and Joining Clients to the Domain</A ></DT ><DD ><DL ><DT ->12.4.1. <A -HREF="#AEN1851" +><A +HREF="#AEN1848" >Manual Creation of Machine Trust Accounts</A ></DT ><DT ->12.4.2. <A -HREF="#AEN1886" +><A +HREF="#AEN1883" >"On-the-Fly" Creation of Machine Trust Accounts</A ></DT ><DT ->12.4.3. <A -HREF="#AEN1895" +><A +HREF="#AEN1892" >Joining the Client to the Domain</A ></DT ></DL ></DD ><DT ->12.5. <A -HREF="#AEN1910" +><A +HREF="#AEN1907" >Common Problems and Errors</A ></DT ><DT ->12.6. <A -HREF="#AEN1958" +><A +HREF="#AEN1955" >System Policies and Profiles</A ></DT ><DT ->12.7. <A -HREF="#AEN2002" +><A +HREF="#AEN1999" >What other help can I get?</A ></DT ><DT ->12.8. <A -HREF="#AEN2116" +><A +HREF="#AEN2113" >Domain Control for Windows 9x/ME</A ></DT ><DD ><DL ><DT ->12.8.1. <A -HREF="#AEN2142" +><A +HREF="#AEN2139" >Configuration Instructions: Network Logons</A ></DT ><DT ->12.8.2. <A -HREF="#AEN2161" +><A +HREF="#AEN2158" >Configuration Instructions: Setting up Roaming User Profiles</A ></DT ></DL ></DD ><DT ->12.9. <A -HREF="#AEN2254" +><A +HREF="#AEN2251" >DOMAIN_CONTROL.txt : Windows NT Domain Control & Samba</A ></DT ></DL ></DD ><DT ->13. <A +><A HREF="#SAMBA-BDC" >How to Act as a Backup Domain Controller in a Purely Samba Controlled Domain</A ></DT ><DD ><DL ><DT ->13.1. <A -HREF="#AEN2290" +><A +HREF="#AEN2287" >Prerequisite Reading</A ></DT ><DT ->13.2. <A -HREF="#AEN2294" +><A +HREF="#AEN2291" >Background</A ></DT ><DT ->13.3. <A -HREF="#AEN2302" +><A +HREF="#AEN2299" >What qualifies a Domain Controller on the network?</A ></DT ><DD ><DL ><DT ->13.3.1. <A -HREF="#AEN2305" +><A +HREF="#AEN2302" >How does a Workstation find its domain controller?</A ></DT ><DT ->13.3.2. <A -HREF="#AEN2308" +><A +HREF="#AEN2305" >When is the PDC needed?</A ></DT ></DL ></DD ><DT ->13.4. <A -HREF="#AEN2311" +><A +HREF="#AEN2308" >Can Samba be a Backup Domain Controller?</A ></DT ><DT ->13.5. <A -HREF="#AEN2315" +><A +HREF="#AEN2312" >How do I set up a Samba BDC?</A ></DT ><DD ><DL ><DT ->13.5.1. <A -HREF="#AEN2332" +><A +HREF="#AEN2329" >How do I replicate the smbpasswd file?</A ></DT ></DL @@ -941,435 +931,377 @@ HREF="#AEN2332" ></DL ></DD ><DT ->14. <A +><A HREF="#SAMBA-LDAP-HOWTO" >Storing Samba's User/Machine Account information in an LDAP Directory</A ></DT ><DD ><DL ><DT ->14.1. <A -HREF="#AEN2353" +><A +HREF="#AEN2350" >Purpose</A ></DT ><DT ->14.2. <A -HREF="#AEN2373" +><A +HREF="#AEN2370" >Introduction</A ></DT ><DT ->14.3. <A -HREF="#AEN2402" +><A +HREF="#AEN2399" >Supported LDAP Servers</A ></DT ><DT ->14.4. <A -HREF="#AEN2407" +><A +HREF="#AEN2404" >Schema and Relationship to the RFC 2307 posixAccount</A ></DT ><DT ->14.5. <A -HREF="#AEN2419" +><A +HREF="#AEN2416" >Configuring Samba with LDAP</A ></DT ><DD ><DL ><DT ->14.5.1. <A -HREF="#AEN2421" +><A +HREF="#AEN2418" >OpenLDAP configuration</A ></DT ><DT ->14.5.2. <A -HREF="#AEN2438" +><A +HREF="#AEN2435" >Configuring Samba</A ></DT ></DL ></DD ><DT ->14.6. <A -HREF="#AEN2466" +><A +HREF="#AEN2463" >Accounts and Groups management</A ></DT ><DT ->14.7. <A -HREF="#AEN2471" +><A +HREF="#AEN2468" >Security and sambaAccount</A ></DT ><DT ->14.8. <A -HREF="#AEN2491" +><A +HREF="#AEN2488" >LDAP specials attributes for sambaAccounts</A ></DT ><DT ->14.9. <A -HREF="#AEN2561" +><A +HREF="#AEN2558" >Example LDIF Entries for a sambaAccount</A ></DT ><DT ->14.10. <A -HREF="#AEN2569" +><A +HREF="#AEN2566" >Comments</A ></DT ></DL ></DD ><DT ->15. <A -HREF="#ADS" ->Using samba 3.0 with ActiveDirectory support</A -></DT -><DD -><DL -><DT ->15.1. <A -HREF="#AEN2587" ->Installing the required packages for Debian</A -></DT -><DT ->15.2. <A -HREF="#AEN2593" ->Installing the required packages for RedHat</A -></DT -><DT ->15.3. <A -HREF="#AEN2602" ->Compile Samba</A -></DT -><DT ->15.4. <A -HREF="#AEN2614" ->Setup your /etc/krb5.conf</A -></DT -><DT ->15.5. <A -HREF="#AEN2624" ->Create the computer account</A -></DT -><DD -><DL -><DT ->15.5.1. <A -HREF="#AEN2628" ->Possible errors</A -></DT -></DL -></DD -><DT ->15.6. <A -HREF="#AEN2640" ->Test your server setup</A -></DT -><DT ->15.7. <A -HREF="#AEN2645" ->Testing with smbclient</A -></DT -><DT ->15.8. <A -HREF="#AEN2648" ->Notes</A -></DT -></DL -></DD -><DT ->16. <A +><A HREF="#IMPROVED-BROWSING" >Improved browsing in samba</A ></DT ><DD ><DL ><DT ->16.1. <A -HREF="#AEN2659" +><A +HREF="#AEN2577" >Overview of browsing</A ></DT ><DT ->16.2. <A -HREF="#AEN2663" +><A +HREF="#AEN2581" >Browsing support in samba</A ></DT ><DT ->16.3. <A -HREF="#AEN2672" +><A +HREF="#AEN2590" >Problem resolution</A ></DT ><DT ->16.4. <A -HREF="#AEN2679" +><A +HREF="#AEN2597" >Browsing across subnets</A ></DT ><DD ><DL ><DT ->16.4.1. <A -HREF="#AEN2684" +><A +HREF="#AEN2602" >How does cross subnet browsing work ?</A ></DT ></DL ></DD ><DT ->16.5. <A -HREF="#AEN2719" +><A +HREF="#AEN2637" >Setting up a WINS server</A ></DT ><DT ->16.6. <A -HREF="#AEN2738" +><A +HREF="#AEN2656" >Setting up Browsing in a WORKGROUP</A ></DT ><DT ->16.7. <A -HREF="#AEN2756" +><A +HREF="#AEN2674" >Setting up Browsing in a DOMAIN</A ></DT ><DT ->16.8. <A -HREF="#AEN2766" +><A +HREF="#AEN2684" >Forcing samba to be the master</A ></DT ><DT ->16.9. <A -HREF="#AEN2775" +><A +HREF="#AEN2693" >Making samba the domain master</A ></DT ><DT ->16.10. <A -HREF="#AEN2793" +><A +HREF="#AEN2711" >Note about broadcast addresses</A ></DT ><DT ->16.11. <A -HREF="#AEN2796" +><A +HREF="#AEN2714" >Multiple interfaces</A ></DT ></DL ></DD ><DT ->17. <A +><A HREF="#SPEED" >Samba performance issues</A ></DT ><DD ><DL ><DT ->17.1. <A -HREF="#AEN2814" +><A +HREF="#AEN2732" >Comparisons</A ></DT ><DT ->17.2. <A -HREF="#AEN2820" +><A +HREF="#AEN2738" >Oplocks</A ></DT ><DD ><DL ><DT ->17.2.1. <A -HREF="#AEN2822" +><A +HREF="#AEN2740" >Overview</A ></DT ><DT ->17.2.2. <A -HREF="#AEN2830" +><A +HREF="#AEN2748" >Level2 Oplocks</A ></DT ><DT ->17.2.3. <A -HREF="#AEN2836" +><A +HREF="#AEN2754" >Old 'fake oplocks' option - deprecated</A ></DT ></DL ></DD ><DT ->17.3. <A -HREF="#AEN2840" +><A +HREF="#AEN2758" >Socket options</A ></DT ><DT ->17.4. <A -HREF="#AEN2847" +><A +HREF="#AEN2765" >Read size</A ></DT ><DT ->17.5. <A -HREF="#AEN2852" +><A +HREF="#AEN2770" >Max xmit</A ></DT ><DT ->17.6. <A -HREF="#AEN2857" +><A +HREF="#AEN2775" >Locking</A ></DT ><DT ->17.7. <A -HREF="#AEN2861" +><A +HREF="#AEN2779" >Share modes</A ></DT ><DT ->17.8. <A -HREF="#AEN2866" +><A +HREF="#AEN2784" >Log level</A ></DT ><DT ->17.9. <A -HREF="#AEN2869" +><A +HREF="#AEN2787" >Wide lines</A ></DT ><DT ->17.10. <A -HREF="#AEN2872" +><A +HREF="#AEN2790" >Read raw</A ></DT ><DT ->17.11. <A -HREF="#AEN2877" +><A +HREF="#AEN2795" >Write raw</A ></DT ><DT ->17.12. <A -HREF="#AEN2881" +><A +HREF="#AEN2799" >Read prediction</A ></DT ><DT ->17.13. <A -HREF="#AEN2888" +><A +HREF="#AEN2806" >Memory mapping</A ></DT ><DT ->17.14. <A -HREF="#AEN2893" +><A +HREF="#AEN2811" >Slow Clients</A ></DT ><DT ->17.15. <A -HREF="#AEN2897" +><A +HREF="#AEN2815" >Slow Logins</A ></DT ><DT ->17.16. <A -HREF="#AEN2900" +><A +HREF="#AEN2818" >Client tuning</A ></DT ><DT ->17.17. <A -HREF="#AEN2932" +><A +HREF="#AEN2850" >My Results</A ></DT ></DL ></DD ><DT ->18. <A +><A HREF="#OTHER-CLIENTS" >Samba and other CIFS clients</A ></DT ><DD ><DL ><DT ->18.1. <A -HREF="#AEN2953" +><A +HREF="#AEN2871" >Macintosh clients?</A ></DT ><DT ->18.2. <A -HREF="#AEN2962" +><A +HREF="#AEN2880" >OS2 Client</A ></DT ><DD ><DL ><DT ->18.2.1. <A -HREF="#AEN2964" +><A +HREF="#AEN2882" >How can I configure OS/2 Warp Connect or OS/2 Warp 4 as a client for Samba?</A ></DT ><DT ->18.2.2. <A -HREF="#AEN2979" +><A +HREF="#AEN2897" >How can I configure OS/2 Warp 3 (not Connect), OS/2 1.2, 1.3 or 2.x for Samba?</A ></DT ><DT ->18.2.3. <A -HREF="#AEN2988" +><A +HREF="#AEN2906" >Are there any other issues when OS/2 (any version) is used as a client?</A ></DT ><DT ->18.2.4. <A -HREF="#AEN2992" +><A +HREF="#AEN2910" >How do I get printer driver download working for OS/2 clients?</A ></DT ></DL ></DD ><DT ->18.3. <A -HREF="#AEN3002" +><A +HREF="#AEN2920" >Windows for Workgroups</A ></DT ><DD ><DL ><DT ->18.3.1. <A -HREF="#AEN3004" +><A +HREF="#AEN2922" >Use latest TCP/IP stack from Microsoft</A ></DT ><DT ->18.3.2. <A -HREF="#AEN3009" +><A +HREF="#AEN2927" >Delete .pwl files after password change</A ></DT ><DT ->18.3.3. <A -HREF="#AEN3014" +><A +HREF="#AEN2932" >Configure WfW password handling</A ></DT ><DT ->18.3.4. <A -HREF="#AEN3018" +><A +HREF="#AEN2936" >Case handling of passwords</A ></DT ></DL ></DD ><DT ->18.4. <A -HREF="#AEN3023" +><A +HREF="#AEN2941" >Windows '95/'98</A ></DT ><DT ->18.5. <A -HREF="#AEN3039" +><A +HREF="#AEN2957" >Windows 2000 Service Pack 2</A ></DT ></DL ></DD ><DT ->19. <A +><A HREF="#CVS-ACCESS" >HOWTO Access Samba source code via CVS</A ></DT ><DD ><DL ><DT ->19.1. <A -HREF="#AEN3063" +><A +HREF="#AEN2981" >Introduction</A ></DT ><DT ->19.2. <A -HREF="#AEN3068" +><A +HREF="#AEN2986" >CVS Access to samba.org</A ></DT ><DD ><DL ><DT ->19.2.1. <A -HREF="#AEN3071" +><A +HREF="#AEN2989" >Access via CVSweb</A ></DT ><DT ->19.2.2. <A -HREF="#AEN3076" +><A +HREF="#AEN2994" >Access via cvs</A ></DT ></DL @@ -1377,69 +1309,69 @@ HREF="#AEN3076" ></DL ></DD ><DT ->20. <A +><A HREF="#BUGREPORT" >Reporting Bugs</A ></DT ><DD ><DL ><DT ->20.1. <A -HREF="#AEN3111" +><A +HREF="#AEN3029" >Introduction</A ></DT ><DT ->20.2. <A -HREF="#AEN3118" +><A +HREF="#AEN3036" >General info</A ></DT ><DT ->20.3. <A -HREF="#AEN3124" +><A +HREF="#AEN3042" >Debug levels</A ></DT ><DT ->20.4. <A -HREF="#AEN3141" +><A +HREF="#AEN3059" >Internal errors</A ></DT ><DT ->20.5. <A -HREF="#AEN3151" +><A +HREF="#AEN3069" >Attaching to a running process</A ></DT ><DT ->20.6. <A -HREF="#AEN3154" +><A +HREF="#AEN3072" >Patches</A ></DT ></DL ></DD ><DT ->21. <A +><A HREF="#GROUPMAPPING" >Group mapping HOWTO</A ></DT ><DT ->22. <A +><A HREF="#PORTABILITY" >Portability</A ></DT ><DD ><DL ><DT ->22.1. <A -HREF="#AEN3201" +><A +HREF="#AEN3119" >HPUX</A ></DT ><DT ->22.2. <A -HREF="#AEN3206" +><A +HREF="#AEN3124" >SCO Unix</A ></DT ><DT ->22.3. <A -HREF="#AEN3210" +><A +HREF="#AEN3128" >DNIX</A ></DT ></DL @@ -1450,17 +1382,13 @@ HREF="#AEN3210" CLASS="CHAPTER" ><HR><H1 ><A -NAME="INSTALL" -></A ->Chapter 1. How to Install and Test SAMBA</H1 +NAME="INSTALL">How to Install and Test SAMBA</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN20" -></A ->1.1. Step 0: Read the man pages</H2 +NAME="AEN20">Step 0: Read the man pages</H2 ><P >The man pages distributed with SAMBA contain lots of useful info that will help to get you started. @@ -1490,9 +1418,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN28" -></A ->1.2. Step 1: Building the Binaries</H2 +NAME="AEN28">Step 1: Building the Binaries</H2 ><P >To do this, first run the program <B CLASS="COMMAND" @@ -1589,9 +1515,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN56" -></A ->1.3. Step 2: The all important step</H2 +NAME="AEN56">Step 2: The all important step</H2 ><P >At this stage you must fetch yourself a coffee or other drink you find stimulating. Getting the rest @@ -1606,9 +1530,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN60" -></A ->1.4. Step 3: Create the smb configuration file.</H2 +NAME="AEN60">Step 3: Create the smb configuration file.</H2 ><P >There are sample configuration files in the examples subdirectory in the distribution. I suggest you read them @@ -1618,6 +1540,12 @@ NAME="AEN60" >The simplest useful configuration file would be something like this:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > [global] @@ -1627,6 +1555,9 @@ CLASS="PROGRAMLISTING" guest ok = no read only = no </PRE +></TD +></TR +></TABLE ></P ><P >which would allow connections by anyone with an @@ -1662,9 +1593,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN74" -></A ->1.5. Step 4: Test your config file with +NAME="AEN74">Step 4: Test your config file with <B CLASS="COMMAND" >testparm</B @@ -1686,9 +1615,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN80" -></A ->1.6. Step 5: Starting the smbd and nmbd</H2 +NAME="AEN80">Step 5: Starting the smbd and nmbd</H2 ><P >You must choose to start smbd and nmbd either as daemons or from <B @@ -1726,9 +1653,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN90" -></A ->1.6.1. Step 5a: Starting from inetd.conf</H3 +NAME="AEN90">Step 5a: Starting from inetd.conf</H3 ><P >NOTE; The following will be different if you use NIS or NIS+ to distributed services maps.</P @@ -1762,11 +1687,20 @@ CLASS="FILENAME" > and add two lines something like this:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd netbios-ns dgram udp wait root /usr/local/samba/bin/nmbd nmbd </PRE +></TD +></TR +></TABLE ></P ><P >The exact syntax of <TT @@ -1830,9 +1764,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN119" -></A ->1.6.2. Step 5b. Alternative: starting it as a daemon</H3 +NAME="AEN119">Step 5b. Alternative: starting it as a daemon</H3 ><P >To start the server as a daemon you should create a script something like this one, perhaps calling @@ -1841,12 +1773,21 @@ CLASS="FILENAME" >startsmb</TT >.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > #!/bin/sh /usr/local/samba/bin/smbd -D /usr/local/samba/bin/nmbd -D </PRE +></TD +></TR +></TABLE ></P ><P >then make it executable with <B @@ -1887,9 +1828,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN135" -></A ->1.7. Step 6: Try listing the shares available on your +NAME="AEN135">Step 6: Try listing the shares available on your server</H2 ><P ><TT @@ -1928,9 +1867,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN144" -></A ->1.8. Step 7: Try connecting with the unix client</H2 +NAME="AEN144">Step 7: Try connecting with the unix client</H2 ><P ><TT CLASS="PROMPT" @@ -1991,9 +1928,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN160" -></A ->1.9. Step 8: Try connecting from a DOS, WfWg, Win9x, WinNT, +NAME="AEN160">Step 8: Try connecting from a DOS, WfWg, Win9x, WinNT, Win2k, OS/2, etc... client</H2 ><P >Try mounting disks. eg:</P @@ -2040,9 +1975,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN174" -></A ->1.10. What If Things Don't Work?</H2 +NAME="AEN174">What If Things Don't Work?</H2 ><P >If nothing works and you start to think "who wrote this pile of trash" then I suggest you do step 2 again (and @@ -2063,9 +1996,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN179" -></A ->1.10.1. Diagnosing Problems</H3 +NAME="AEN179">Diagnosing Problems</H3 ><P >If you have installation problems then go to <TT @@ -2079,9 +2010,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN183" -></A ->1.10.2. Scope IDs</H3 +NAME="AEN183">Scope IDs</H3 ><P >By default Samba uses a blank scope ID. This means all your windows boxes must also have a blank scope ID. @@ -2095,9 +2024,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN186" -></A ->1.10.3. Choosing the Protocol Level</H3 +NAME="AEN186">Choosing the Protocol Level</H3 ><P >The SMB protocol has many dialects. Currently Samba supports 5, called CORE, COREPLUS, LANMAN1, @@ -2136,9 +2063,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN195" -></A ->1.10.4. Printing from UNIX to a Client PC</H3 +NAME="AEN195">Printing from UNIX to a Client PC</H3 ><P >To use a printer that is available via a smb-based server from a unix host with LPR you will need to compile the @@ -2157,9 +2082,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN200" -></A ->1.10.5. Locking</H3 +NAME="AEN200">Locking</H3 ><P >One area which sometimes causes trouble is locking.</P ><P @@ -2217,9 +2140,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN209" -></A ->1.10.6. Mapping Usernames</H3 +NAME="AEN209">Mapping Usernames</H3 ><P >If you have different usernames on the PCs and the unix server then take a look at the "username map" option. @@ -2231,17 +2152,13 @@ NAME="AEN209" CLASS="CHAPTER" ><HR><H1 ><A -NAME="DIAGNOSIS" -></A ->Chapter 2. Diagnosing your samba server</H1 +NAME="DIAGNOSIS">Diagnosing your samba server</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN223" -></A ->2.1. Introduction</H2 +NAME="AEN223">Introduction</H2 ><P >This file contains a list of tests you can perform to validate your Samba server. It also tells you what the likely cause of the problem @@ -2261,9 +2178,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN228" -></A ->2.2. Assumptions</H2 +NAME="AEN228">Assumptions</H2 ><P >In all of the tests I assume you have a Samba server called BIGSERVER and a PC called ACLIENT both in workgroup TESTGROUP. I also assume the @@ -2277,12 +2192,21 @@ microsoft tcp/ip stack. Alternatively, your PC may be running Windows smb.conf. I will assume this share is called "tmp". You can add a "tmp" share like by adding the following to smb.conf:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > [tmp] comment = temporary files path = /tmp read only = yes </PRE +></TD +></TR +></TABLE ></P ><P >THESE TESTS ASSUME VERSION 2.0.6 OR LATER OF THE SAMBA SUITE. SOME @@ -2302,17 +2226,13 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN238" -></A ->2.3. Tests</H2 +NAME="AEN238">Tests</H2 ><DIV CLASS="SECT2" ><H3 CLASS="SECT2" ><A -NAME="AEN240" -></A ->2.3.1. Test 1</H3 +NAME="AEN240">Test 1</H3 ><P >In the directory in which you store your smb.conf file, run the command "testparm smb.conf". If it reports any errors then your smb.conf @@ -2332,9 +2252,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN246" -></A ->2.3.2. Test 2</H3 +NAME="AEN246">Test 2</H3 ><P >Run the command "ping BIGSERVER" from the PC and "ping ACLIENT" from the unix box. If you don't get a valid response then your TCP/IP @@ -2358,9 +2276,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN252" -></A ->2.3.3. Test 3</H3 +NAME="AEN252">Test 3</H3 ><P >Run the command "smbclient -L BIGSERVER" on the unix box. You should get a list of available shares back. </P @@ -2390,21 +2306,39 @@ files exist.</P a session request. The most common of these involve one or more of the following smb.conf file entries:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > hosts deny = ALL hosts allow = xxx.xxx.xxx.xxx/yy bind interfaces only = Yes</PRE +></TD +></TR +></TABLE ></P ><P >In the above, no allowance has been made for any session requests that will automatically translate to the loopback adaptor address 127.0.0.1. To solve this problem change these lines to:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > hosts deny = ALL hosts allow = xxx.xxx.xxx.xxx/yy 127.</PRE +></TD +></TR +></TABLE ></P ><P >Do NOT use the "bind interfaces only" parameter where you may wish to @@ -2429,9 +2363,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN267" -></A ->2.3.4. Test 4</H3 +NAME="AEN267">Test 4</H3 ><P >Run the command "nmblookup -B BIGSERVER __SAMBA__". You should get the IP address of your Samba server back.</P @@ -2450,9 +2382,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN272" -></A ->2.3.5. Test 5</H3 +NAME="AEN272">Test 5</H3 ><P >run the command <B CLASS="COMMAND" @@ -2471,9 +2401,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN278" -></A ->2.3.6. Test 6</H3 +NAME="AEN278">Test 6</H3 ><P >Run the command <B CLASS="COMMAND" @@ -2505,9 +2433,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN286" -></A ->2.3.7. Test 7</H3 +NAME="AEN286">Test 7</H3 ><P >Run the command <B CLASS="COMMAND" @@ -2515,7 +2441,7 @@ CLASS="COMMAND" >. You should then be prompted for a password. You should use the password of the account you are logged into the unix box with. If you want to test with -another account then add the -U >accountname< option to the end of +another account then add the -U >accountname< option to the end of the command line. eg: <B CLASS="COMMAND" @@ -2581,7 +2507,7 @@ CLASS="COMMAND" > etc. Type <B CLASS="COMMAND" ->help >command<</B +>help >command<</B > for instructions. You should especially check that the amount of free disk space shown is correct when you type <B @@ -2594,9 +2520,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN312" -></A ->2.3.8. Test 8</H3 +NAME="AEN312">Test 8</H3 ><P >On the PC type the command <B CLASS="COMMAND" @@ -2654,9 +2578,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN329" -></A ->2.3.9. Test 9</H3 +NAME="AEN329">Test 9</H3 ><P >Run the command <B CLASS="COMMAND" @@ -2671,26 +2593,14 @@ and other config lines in smb.conf are correct.</P connect you as. To see if this is the problem add the line "user = USERNAME" to the [tmp] section of smb.conf where "USERNAME" is the username corresponding to the password you typed. If you find this -fixes things you may need the username mapping option. </P -><P ->It might also be the case that your client only sends encrypted passwords -and you have <B -CLASS="COMMAND" ->encrypt passwords = no</B -> in <TT -CLASS="FILENAME" ->smb.conf</TT ->. -Turn it back on to fix.</P +fixes things you may need the username mapping option.</P ></DIV ><DIV CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN337" -></A ->2.3.10. Test 10</H3 +NAME="AEN334">Test 10</H3 ><P >Run the command <B CLASS="COMMAND" @@ -2714,9 +2624,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN343" -></A ->2.3.11. Test 11</H3 +NAME="AEN340">Test 11</H3 ><P >From file manager try to browse the server. Your samba server should appear in the browse list of your local workgroup (or the one you @@ -2742,9 +2650,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN348" -></A ->2.4. Still having troubles?</H2 +NAME="AEN345">Still having troubles?</H2 ><P >Try the mailing list or newsgroup, or use the ethereal utility to sniff the problem. The official samba mailing list can be reached at @@ -2768,17 +2674,13 @@ TARGET="_top" CLASS="CHAPTER" ><HR><H1 ><A -NAME="INTEGRATE-MS-NETWORKS" -></A ->Chapter 3. Integrating MS Windows networks with Samba</H1 +NAME="INTEGRATE-MS-NETWORKS">Integrating MS Windows networks with Samba</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN365" -></A ->3.1. Agenda</H2 +NAME="AEN362">Agenda</H2 ><P >To identify the key functional mechanisms of MS Windows networking to enable the deployment of Samba as a means of extending and/or @@ -2843,9 +2745,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN387" -></A ->3.2. Name Resolution in a pure Unix/Linux world</H2 +NAME="AEN384">Name Resolution in a pure Unix/Linux world</H2 ><P >The key configuration files covered in this section are:</P ><P @@ -2885,9 +2785,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN403" -></A ->3.2.1. <TT +NAME="AEN400"><TT CLASS="FILENAME" >/etc/hosts</TT ></H3 @@ -2895,10 +2793,19 @@ CLASS="FILENAME" >Contains a static list of IP Addresses and names. eg:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > 127.0.0.1 localhost localhost.localdomain 192.168.1.1 bigbox.caldera.com bigbox alias4box</PRE +></TD +></TR +></TABLE ></P ><P >The purpose of <TT @@ -2966,9 +2873,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN419" -></A ->3.2.2. <TT +NAME="AEN416"><TT CLASS="FILENAME" >/etc/resolv.conf</TT ></H3 @@ -3004,9 +2909,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN430" -></A ->3.2.3. <TT +NAME="AEN427"><TT CLASS="FILENAME" >/etc/host.conf</TT ></H3 @@ -3019,10 +2922,19 @@ which the setting in /etc/resolv.conf may be affected. It is a critical configuration file. This file controls the order by which name resolution may procede. The typical structure is:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > order hosts,bind multi on</PRE +></TD +></TR +></TABLE ></P ><P >then both addresses should be returned. Please refer to the @@ -3033,9 +2945,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN438" -></A ->3.2.4. <TT +NAME="AEN435"><TT CLASS="FILENAME" >/etc/nsswitch.conf</TT ></H3 @@ -3043,6 +2953,12 @@ CLASS="FILENAME" >This file controls the actual name resolution targets. The file typically has resolver object specifications as follows:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > # /etc/nsswitch.conf @@ -3065,6 +2981,9 @@ CLASS="PROGRAMLISTING" protocols: nis files rpc: nis files services: nis files</PRE +></TD +></TR +></TABLE ></P ><P >Of course, each of these mechanisms requires that the appropriate @@ -3102,9 +3021,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN450" -></A ->3.3. Name resolution as used within MS Windows networking</H2 +NAME="AEN447">Name resolution as used within MS Windows networking</H2 ><P >MS Windows networking is predicated about the name each machine is given. This name is known variously (and inconsistently) as @@ -3121,6 +3038,12 @@ the client/server.</P ><P >The following are typical NetBIOS name/service type registrations:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > Unique NetBIOS Names: @@ -3134,6 +3057,9 @@ CLASS="PROGRAMLISTING" WORKGROUP<1c> = Domain Controllers / Netlogon Servers WORKGROUP<1d> = Local Master Browsers WORKGROUP<1e> = Internet Name Resolvers</PRE +></TD +></TR +></TABLE ></P ><P >It should be noted that all NetBIOS machines register their own @@ -3187,9 +3113,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN462" -></A ->3.3.1. The NetBIOS Name Cache</H3 +NAME="AEN459">The NetBIOS Name Cache</H3 ><P >All MS Windows machines employ an in memory buffer in which is stored the NetBIOS names and IP addresses for all external @@ -3214,9 +3138,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN467" -></A ->3.3.2. The LMHOSTS file</H3 +NAME="AEN464">The LMHOSTS file</H3 ><P >This file is usually located in MS Windows NT 4.0 or 2000 in <TT @@ -3232,6 +3154,12 @@ to IP address mapping oriented.</P ><P >It typically looks like:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > # Copyright (c) 1998 Microsoft Corp. @@ -3251,8 +3179,8 @@ CLASS="PROGRAMLISTING" # files and offers the following extensions: # # #PRE - # #DOM:<domain> - # #INCLUDE <filename> + # #DOM:<domain> + # #INCLUDE <filename> # #BEGIN_ALTERNATE # #END_ALTERNATE # \0xnn (non-printing character support) @@ -3261,16 +3189,16 @@ CLASS="PROGRAMLISTING" # the entry to be preloaded into the name cache. By default, entries are # not preloaded, but are parsed only after dynamic name resolution fails. # - # Following an entry with the "#DOM:<domain>" tag will associate the - # entry with the domain specified by <domain>. This affects how the + # Following an entry with the "#DOM:<domain>" tag will associate the + # entry with the domain specified by <domain>. This affects how the # browser and logon services behave in TCP/IP environments. To preload # the host name associated with #DOM entry, it is necessary to also add a - # #PRE to the line. The <domain> is always preloaded although it will not + # #PRE to the line. The <domain> is always preloaded although it will not # be shown when the name cache is viewed. # - # Specifying "#INCLUDE <filename>" will force the RFC NetBIOS (NBT) - # software to seek the specified <filename> and parse it as if it were - # local. <filename> is generally a UNC-based name, allowing a + # Specifying "#INCLUDE <filename>" will force the RFC NetBIOS (NBT) + # software to seek the specified <filename> and parse it as if it were + # local. <filename> is generally a UNC-based name, allowing a # centralized lmhosts file to be maintained on a server. # It is ALWAYS necessary to provide a mapping for the IP address of the # server prior to the #INCLUDE. This mapping must use the #PRE directive. @@ -3310,6 +3238,9 @@ CLASS="PROGRAMLISTING" # so keeping the number of comments to a minimum will improve performance. # Therefore it is not advisable to simply add lmhosts file entries onto the # end of this file.</PRE +></TD +></TR +></TABLE ></P ></DIV ><DIV @@ -3317,9 +3248,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN475" -></A ->3.3.3. HOSTS file</H3 +NAME="AEN472">HOSTS file</H3 ><P >This file is usually located in MS Windows NT 4.0 or 2000 in <TT @@ -3339,9 +3268,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN480" -></A ->3.3.4. DNS Lookup</H3 +NAME="AEN477">DNS Lookup</H3 ><P >This capability is configured in the TCP/IP setup area in the network configuration facility. If enabled an elaborate name resolution sequence @@ -3359,9 +3286,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN483" -></A ->3.3.5. WINS Lookup</H3 +NAME="AEN480">WINS Lookup</H3 ><P >A WINS (Windows Internet Name Server) service is the equivaent of the rfc1001/1002 specified NBNS (NetBIOS Name Server). A WINS server stores @@ -3374,18 +3299,36 @@ CLASS="FILENAME" >smb.conf</TT > file:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > wins support = Yes</PRE +></TD +></TR +></TABLE ></P ><P >To configure Samba to use a WINS server the following parameters are needed in the smb.conf file:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > wins support = No wins server = xxx.xxx.xxx.xxx</PRE +></TD +></TR +></TABLE ></P ><P >where <TT @@ -3402,9 +3345,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN495" -></A ->3.4. How browsing functions and how to deploy stable and +NAME="AEN492">How browsing functions and how to deploy stable and dependable browsing using Samba</H2 ><P >As stated above, MS Windows machines register their NetBIOS names @@ -3469,9 +3410,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN505" -></A ->3.5. MS Windows security options and how to configure +NAME="AEN502">MS Windows security options and how to configure Samba for seemless integration</H2 ><P >MS Windows clients may use encrypted passwords as part of a @@ -3535,6 +3474,12 @@ issue of Windows 9x client upper casing usernames and password before transmitting them to the SMB server when using clear text authentication.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > <A @@ -3557,6 +3502,9 @@ CLASS="REPLACEABLE" >integer</I ></TT ></PRE +></TD +></TR +></TABLE ></P ><P >By default Samba will lower case the username before attempting @@ -3579,12 +3527,9 @@ CLASS="PARAMETER" >password level</I ></TT > must be set to the maximum -number of upper case letter which <SPAN -CLASS="emphasis" -><I +number of upper case letter which <I CLASS="EMPHASIS" >could</I -></SPAN > appear is a password. Note that is the server OS uses the traditional DES version of crypt(), then a <TT @@ -3606,18 +3551,25 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN533" -></A ->3.5.1. Use MS Windows NT as an authentication server</H3 +NAME="AEN530">Use MS Windows NT as an authentication server</H3 ><P >This method involves the additions of the following parameters in the smb.conf file:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > encrypt passwords = Yes security = server password server = "NetBIOS_name_of_PDC"</PRE +></TD +></TR +></TABLE ></P ><P >There are two ways of identifying whether or not a username and @@ -3642,18 +3594,25 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN541" -></A ->3.5.2. Make Samba a member of an MS Windows NT security domain</H3 +NAME="AEN538">Make Samba a member of an MS Windows NT security domain</H3 ><P >This method involves additon of the following paramters in the smb.conf file:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > encrypt passwords = Yes security = domain workgroup = "name of NT domain" password server = *</PRE +></TD +></TR +></TABLE ></P ><P >The use of the "*" argument to "password server" will cause samba @@ -3705,9 +3664,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN558" -></A ->3.5.3. Configure Samba as an authentication server</H3 +NAME="AEN555">Configure Samba as an authentication server</H3 ><P >This mode of authentication demands that there be on the Unix/Linux system both a Unix style account as well as an @@ -3718,6 +3675,12 @@ used for SMB client authentication.</P >This method involves addition of the following parameters to the smb.conf file:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >## please refer to the Samba PDC HOWTO chapter later in @@ -3732,6 +3695,9 @@ CLASS="PROGRAMLISTING" [NETLOGON] path = /somewhare/in/file/system read only = yes</PRE +></TD +></TR +></TABLE ></P ><P >in order for this method to work a Unix system account needs @@ -3742,22 +3708,29 @@ CLASS="SECT3" ><HR><H4 CLASS="SECT3" ><A -NAME="AEN565" -></A ->3.5.3.1. Users</H4 +NAME="AEN562">Users</H4 ><P >A user account that may provide a home directory should be created. The following Linux system commands are typical of the procedure for creating an account.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > # useradd -s /bin/bash -d /home/"userid" -m "userid" # passwd "userid" - Enter Password: <pw> + Enter Password: <pw> # smbpasswd -a "userid" - Enter Password: <pw></PRE + Enter Password: <pw></PRE +></TD +></TR +></TABLE ></P ></DIV ><DIV @@ -3765,18 +3738,25 @@ CLASS="SECT3" ><HR><H4 CLASS="SECT3" ><A -NAME="AEN570" -></A ->3.5.3.2. MS Windows NT Machine Accounts</H4 +NAME="AEN567">MS Windows NT Machine Accounts</H4 ><P >These are required only when Samba is used as a domain controller. Refer to the Samba-PDC-HOWTO for more details.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > # useradd -s /bin/false -d /dev/null "machine_name"\$ # passwd -l "machine_name"\$ # smbpasswd -a -m "machine_name"</PRE +></TD +></TR +></TABLE ></P ></DIV ></DIV @@ -3786,9 +3766,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN575" -></A ->3.6. Conclusions</H2 +NAME="AEN572">Conclusions</H2 ><P >Samba provides a flexible means to operate as...</P ><P @@ -3822,18 +3800,14 @@ NAME="AEN575" CLASS="CHAPTER" ><HR><H1 ><A -NAME="PAM" -></A ->Chapter 4. Configuring PAM for distributed but centrally +NAME="PAM">Configuring PAM for distributed but centrally managed authentication</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN596" -></A ->4.1. Samba and PAM</H2 +NAME="AEN593">Samba and PAM</H2 ><P >A number of Unix systems (eg: Sun Solaris), as well as the xxxxBSD family and Linux, now utilize the Pluggable Authentication @@ -3881,6 +3855,12 @@ CLASS="FILENAME" >pam_pwdb.so</TT >.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >#%PAM-1.0 @@ -3897,11 +3877,20 @@ session required pam_pwdb.so # session optional pam_lastlog.so # password required pam_cracklib.so retry=3 password required pam_pwdb.so shadow md5</PRE +></TD +></TR +></TABLE ></P ><P >PAM allows use of replacable modules. Those available on a sample system include:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >$ /bin/ls /lib/security @@ -3917,6 +3906,9 @@ pam_env.so pam_ldap.so pam_motd.so pam_radius.so pam_smbpass.so pam_unix_acct.so pam_wheel.so pam_unix_auth.so pam_unix_passwd.so pam_userdb.so pam_warn.so pam_unix_session.so</PRE +></TD +></TR +></TABLE ></P ><P >The following example for the login program replaces the use of @@ -3977,6 +3969,12 @@ CLASS="FILENAME" > directory of the Samba source distribution.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >#%PAM-1.0 @@ -3986,6 +3984,9 @@ auth required pam_smbpass.so nodelay account required pam_smbpass.so nodelay session required pam_smbpass.so nodelay password required pam_smbpass.so nodelay</PRE +></TD +></TR +></TABLE ></P ><P >The following is the PAM configuration file for a particular @@ -3994,6 +3995,12 @@ CLASS="FILENAME" >pam_pwdb.so</TT >.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >#%PAM-1.0 @@ -4003,6 +4010,9 @@ auth required /lib/security/pam_pwdb.so nullok nodelay shadow audit account required /lib/security/pam_pwdb.so audit nodelay session required /lib/security/pam_pwdb.so nodelay password required /lib/security/pam_pwdb.so shadow md5</PRE +></TD +></TR +></TABLE ></P ><P >In the following example the decision has been made to use the @@ -4011,6 +4021,12 @@ decision could also be made for the passwd program and would thus allow the smbpasswd passwords to be changed using the passwd program.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >#%PAM-1.0 @@ -4020,6 +4036,9 @@ auth required /lib/security/pam_smbpass.so nodelay account required /lib/security/pam_pwdb.so audit nodelay session required /lib/security/pam_pwdb.so nodelay password required /lib/security/pam_smbpass.so nodelay smbconf=/etc/samba.d/smb.conf</PRE +></TD +></TR +></TABLE ></P ><P >Note: PAM allows stacking of authentication mechanisms. It is @@ -4045,9 +4064,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN640" -></A ->4.2. Distributed Authentication</H2 +NAME="AEN637">Distributed Authentication</H2 ><P >The astute administrator will realize from this that the combination of <TT @@ -4078,9 +4095,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN647" -></A ->4.3. PAM Configuration in smb.conf</H2 +NAME="AEN644">PAM Configuration in smb.conf</H2 ><P >There is an option in smb.conf called <A HREF="smb.conf.5.html#OBEYPAMRESTRICTIONS" @@ -4118,17 +4133,13 @@ CLASS="COMMAND" CLASS="CHAPTER" ><HR><H1 ><A -NAME="MSDFS" -></A ->Chapter 5. Hosting a Microsoft Distributed File System tree on Samba</H1 +NAME="MSDFS">Hosting a Microsoft Distributed File System tree on Samba</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN667" -></A ->5.1. Instructions</H2 +NAME="AEN664">Instructions</H2 ><P >The Distributed File System (or Dfs) provides a means of separating the logical view of files and directories that users @@ -4179,7 +4190,7 @@ CLASS="PARAMETER" to other servers. For example, a symbolic link <TT CLASS="FILENAME" ->junction->msdfs:storage1\share1</TT +>junction->msdfs:storage1\share1</TT > in the share directory acts as the Dfs junction. When Dfs-aware clients attempt to access the junction link, they are redirected @@ -4191,6 +4202,12 @@ CLASS="FILENAME" >Here's an example of setting up a Dfs tree on a Samba server.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" ># The smb.conf file: @@ -4202,6 +4219,9 @@ CLASS="PROGRAMLISTING" path = /export/dfsroot msdfs root = yes </PRE +></TD +></TR +></TABLE ></P ><P >In the /export/dfsroot directory we set up our dfs links to @@ -4274,9 +4294,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN702" -></A ->5.1.1. Notes</H3 +NAME="AEN699">Notes</H3 ><P ></P ><UL @@ -4307,17 +4325,13 @@ NAME="AEN702" CLASS="CHAPTER" ><HR><H1 ><A -NAME="UNIX-PERMISSIONS" -></A ->Chapter 6. UNIX Permission Bits and Windows NT Access Control Lists</H1 +NAME="UNIX-PERMISSIONS">UNIX Permission Bits and Windows NT Access Control Lists</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN722" -></A ->6.1. Viewing and changing UNIX permissions using the NT +NAME="AEN719">Viewing and changing UNIX permissions using the NT security dialogs</H2 ><P >New in the Samba 2.0.4 release is the ability for Windows @@ -4354,55 +4368,35 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN731" -></A ->6.2. How to view file security on a Samba share</H2 +NAME="AEN728">How to view file security on a Samba share</H2 ><P >From an NT 4.0 client, single-click with the right mouse button on any file or directory in a Samba mounted drive letter or UNC path. When the menu pops-up, click - on the <SPAN -CLASS="emphasis" -><I + on the <I CLASS="EMPHASIS" >Properties</I -></SPAN > entry at the bottom of the menu. This brings up the normal file properties dialog box, but with Samba 2.0.4 this will have a new tab along the top - marked <SPAN -CLASS="emphasis" -><I + marked <I CLASS="EMPHASIS" >Security</I -></SPAN >. Click on this tab and you - will see three buttons, <SPAN -CLASS="emphasis" -><I + will see three buttons, <I CLASS="EMPHASIS" >Permissions</I -></SPAN >, - <SPAN -CLASS="emphasis" -><I + <I CLASS="EMPHASIS" >Auditing</I -></SPAN ->, and <SPAN -CLASS="emphasis" -><I +>, and <I CLASS="EMPHASIS" >Ownership</I -></SPAN >. - The <SPAN -CLASS="emphasis" -><I + The <I CLASS="EMPHASIS" >Auditing</I -></SPAN > button will cause either an error message <SPAN CLASS="ERRORNAME" @@ -4424,9 +4418,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN742" -></A ->6.3. Viewing file ownership</H2 +NAME="AEN739">Viewing file ownership</H2 ><P >Clicking on the <B CLASS="COMMAND" @@ -4488,12 +4480,9 @@ CLASS="COMMAND" it will display a dialog box complaining that the user you are currently logged onto the NT client cannot be found). The reason for this is that changing the ownership of a file is a privileged - operation in UNIX, available only to the <SPAN -CLASS="emphasis" -><I + operation in UNIX, available only to the <I CLASS="EMPHASIS" >root</I -></SPAN > user. As clicking on this button causes NT to attempt to change the ownership of a file to the current user logged into the NT @@ -4503,13 +4492,10 @@ CLASS="EMPHASIS" and allow a user with Administrator privilege connected to a Samba 2.0.4 server as root to change the ownership of files on both a local NTFS filesystem or remote mounted NTFS - or Samba drive. This is available as part of the <SPAN -CLASS="emphasis" -><I + or Samba drive. This is available as part of the <I CLASS="EMPHASIS" >Seclib </I -></SPAN > NT security library written by Jeremy Allison of the Samba Team, available from the main Samba ftp site.</P ></DIV @@ -4518,9 +4504,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN762" -></A ->6.4. Viewing file or directory permissions</H2 +NAME="AEN759">Viewing file or directory permissions</H2 ><P >The third button is the <B CLASS="COMMAND" @@ -4580,9 +4564,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN777" -></A ->6.4.1. File Permissions</H3 +NAME="AEN774">File Permissions</H3 ><P >The standard UNIX user/group/world triple and the corresponding "read", "write", "execute" permissions @@ -4642,9 +4624,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN791" -></A ->6.4.2. Directory Permissions</H3 +NAME="AEN788">Directory Permissions</H3 ><P >Directories on an NT NTFS file system have two different sets of permissions. The first set of permissions @@ -4674,9 +4654,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN798" -></A ->6.5. Modifying file or directory permissions</H2 +NAME="AEN795">Modifying file or directory permissions</H2 ><P >Modifying file and directory permissions is as simple as changing the displayed permissions in the dialog box, and @@ -4772,9 +4750,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN820" -></A ->6.6. Interaction with the standard Samba create mask +NAME="AEN817">Interaction with the standard Samba create mask parameters</H2 ><P >Note that with Samba 2.0.5 there are four new parameters @@ -4834,12 +4810,9 @@ CLASS="PARAMETER" >security mask</I ></TT > - mask may be treated as a set of bits the user is <SPAN -CLASS="emphasis" -><I + mask may be treated as a set of bits the user is <I CLASS="EMPHASIS" >not</I -></SPAN > allowed to change, and one bits are those the user is allowed to change. </P @@ -5049,9 +5022,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN884" -></A ->6.7. Interaction with the standard Samba file attribute +NAME="AEN881">Interaction with the standard Samba file attribute mapping</H2 ><P >Samba maps some of the DOS attribute bits (such as "read @@ -5096,17 +5067,13 @@ CLASS="COMMAND" CLASS="CHAPTER" ><HR><H1 ><A -NAME="PRINTING" -></A ->Chapter 7. Printing Support in Samba 2.2.x</H1 +NAME="PRINTING">Printing Support in Samba 2.2.x</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN905" -></A ->7.1. Introduction</H2 +NAME="AEN902">Introduction</H2 ><P >Beginning with the 2.2.0 release, Samba supports the native Windows NT printing mechanisms implemented via @@ -5172,13 +5139,10 @@ As a side note, Samba does not use these drivers in any way to process spooled files. They are utilized entirely by the clients.</P ><P >The following MS KB article, may be of some help if you are dealing with -Windows 2000 clients: <SPAN -CLASS="emphasis" -><I +Windows 2000 clients: <I CLASS="EMPHASIS" >How to Add Printers with No User Interaction in Windows 2000</I -></SPAN ></P ><P ><A @@ -5192,9 +5156,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN927" -></A ->7.2. Configuration</H2 +NAME="AEN924">Configuration</H2 ><DIV CLASS="WARNING" ><P @@ -5209,7 +5171,7 @@ WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG -SRC="/docbook-dsssl/warning.gif" +SRC="./stylesheet-images/warning.gif" HSPACE="5" ALT="Warning"></TD ><TH @@ -5272,9 +5234,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN938" -></A ->7.2.1. Creating [print$]</H3 +NAME="AEN935">Creating [print$]</H3 ><P >In order to support the uploading of printer driver files, you must first configure a file share named [print$]. @@ -5289,6 +5249,12 @@ following file share (of course, some of the parameter values, such as 'path' are arbitrary and should be replaced with appropriate values for your site):</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >[global] @@ -5308,6 +5274,9 @@ CLASS="PROGRAMLISTING" ; is setup to a non-root account, then it should also exist ; as a 'printer admin' write list = @ntadmin,root</PRE +></TD +></TR +></TABLE ></P ><P >The <A @@ -5353,7 +5322,7 @@ WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG -SRC="/docbook-dsssl/note.gif" +SRC="./stylesheet-images/note.gif" HSPACE="5" ALT="Note"></TD ><TH @@ -5401,6 +5370,12 @@ Samba follows this model as well.</P >Next create the directory tree below the [print$] share for each architecture you wish to support.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >[print$]----- @@ -5409,6 +5384,9 @@ CLASS="PROGRAMLISTING" |-W32ALPHA ; "Windows NT Alpha_AXP" |-W32MIPS ; "Windows NT R4000" |-W32PPC ; "Windows NT PowerPC"</PRE +></TD +></TR +></TABLE ></P ><DIV CLASS="WARNING" @@ -5424,7 +5402,7 @@ WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG -SRC="/docbook-dsssl/warning.gif" +SRC="./stylesheet-images/warning.gif" HSPACE="5" ALT="Warning"></TD ><TH @@ -5495,19 +5473,14 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN973" -></A ->7.2.2. Setting Drivers for Existing Printers</H3 +NAME="AEN970">Setting Drivers for Existing Printers</H3 ><P >The initial listing of printers in the Samba host's Printers folder will have no real printer driver assigned to them. By default, in Samba 2.2.0 this driver name was set to -<SPAN -CLASS="emphasis" -><I +<I CLASS="EMPHASIS" >NO PRINTER DRIVER AVAILABLE FOR THIS PRINTER</I -></SPAN >. Later versions changed this to a NULL string to allow the use tof the local Add Printer Wizard on NT/2000 clients. @@ -5515,15 +5488,12 @@ Attempting to view the printer properties for a printer which has this default driver assigned will result in the error message:</P ><P -><SPAN -CLASS="emphasis" ><I CLASS="EMPHASIS" >Device settings cannot be displayed. The driver for the specified printer is not installed, only spooler properties will be displayed. Do you want to install the driver now?</I -></SPAN ></P ><P >Click "No" in the error dialog and you will be presented with @@ -5575,9 +5545,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN990" -></A ->7.2.3. Support a large number of printers</H3 +NAME="AEN987">Support a large number of printers</H3 ><P >One issue that has arisen during the development phase of Samba 2.2 is the need to support driver downloads for @@ -5595,6 +5563,12 @@ setdriver command</B associated with an installed driver. The following is example of how this could be accomplished:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > @@ -5630,10 +5604,13 @@ CLASS="PROMPT" >rpcclient pogo -U root%secret \ <TT CLASS="PROMPT" ->> </TT +>> </TT > -c "setdriver hp-print \"HP LaserJet 4000 Series PS\"" Domain=[NARNIA] OS=[Unix] Server=[Samba 2.2.0-alpha3] Successfully set hp-print to driver HP LaserJet 4000 Series PS.</PRE +></TD +></TR +></TABLE ></P ></DIV ><DIV @@ -5641,9 +5618,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1001" -></A ->7.2.4. Adding New Printers via the Windows NT APW</H3 +NAME="AEN998">Adding New Printers via the Windows NT APW</H3 ><P >By default, Samba offers all printer shares defined in <TT CLASS="FILENAME" @@ -5755,6 +5730,12 @@ CLASS="PARAMETER" CLASS="FILENAME" >/etc/printcap.local</TT > (change that to what you need) and returns a line of 'Done' which is needed for the whole process to work.</P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >#!/bin/sh @@ -5804,15 +5785,16 @@ touch /usr/local/samba/lib/smb.conf # echo "Done" exit 0</PRE +></TD +></TR +></TABLE ></DIV ><DIV CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1031" -></A ->7.2.5. Samba and Printer Ports</H3 +NAME="AEN1028">Samba and Printer Ports</H3 ><P >Windows NT/2000 print servers associate a port with each printer. These normally take the form of LPT1:, COM1:, FILE:, etc... Samba must also support the @@ -5847,9 +5829,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1039" -></A ->7.3. The Imprints Toolset</H2 +NAME="AEN1036">The Imprints Toolset</H2 ><P >The Imprints tool set provides a UNIX equivalent of the Windows NT Add Printer Wizard. For complete information, please @@ -5865,9 +5845,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1043" -></A ->7.3.1. What is Imprints?</H3 +NAME="AEN1040">What is Imprints?</H3 ><P >Imprints is a collection of tools for supporting the goals of</P @@ -5897,9 +5875,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1053" -></A ->7.3.2. Creating Printer Driver Packages</H3 +NAME="AEN1050">Creating Printer Driver Packages</H3 ><P >The process of creating printer driver packages is beyond the scope of this document (refer to Imprints.txt also included @@ -5913,9 +5889,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1056" -></A ->7.3.3. The Imprints server</H3 +NAME="AEN1053">The Imprints server</H3 ><P >The Imprints server is really a database server that may be queried via standard HTTP mechanisms. Each printer @@ -5923,12 +5897,9 @@ NAME="AEN1056" downloading of the package. Each package is digitally signed via GnuPG which can be used to verify that package downloaded is actually the one referred in the Imprints database. It is - <SPAN -CLASS="emphasis" -><I + <I CLASS="EMPHASIS" >not</I -></SPAN > recommended that this security check be disabled.</P ></DIV @@ -5937,9 +5908,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1060" -></A ->7.3.4. The Installation Client</H3 +NAME="AEN1057">The Installation Client</H3 ><P >More information regarding the Imprints installation client is available in the <TT @@ -5979,6 +5948,12 @@ CLASS="COMMAND" >rpcclient</B >.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > @@ -5992,6 +5967,9 @@ foreach (supported architecture for a given driver) 4. rpcclient: Issue an AddPrinterEx() MS-RPC to actually create the printer</PRE +></TD +></TR +></TABLE ></P ><P >One of the problems encountered when implementing @@ -6031,9 +6009,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1082" -></A ->7.4. <A +NAME="AEN1079"><A NAME="MIGRATION" ></A >Migration to from Samba 2.0.x to 2.2.x</H2 @@ -6115,7 +6091,7 @@ WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG -SRC="/docbook-dsssl/warning.gif" +SRC="./stylesheet-images/warning.gif" HSPACE="5" ALT="Warning"></TD ><TH @@ -6199,17 +6175,13 @@ disabled by default.</P CLASS="CHAPTER" ><HR><H1 ><A -NAME="PRINTINGDEBUG" -></A ->Chapter 8. Debugging Printing Problems</H1 +NAME="PRINTINGDEBUG">Debugging Printing Problems</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN1128" -></A ->8.1. Introduction</H2 +NAME="AEN1125">Introduction</H2 ><P >This is a short description of how to debug printing problems with Samba. This describes how to debug problems with printing from a SMB @@ -6227,6 +6199,12 @@ you use is up to you.</P relevant options (which you should look up in the smb.conf man page) are:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > [global] @@ -6235,18 +6213,36 @@ CLASS="PROGRAMLISTING" lprm command - remove a job [printers] path = /var/spool/lpd/samba</PRE +></TD +></TR +></TABLE ></P ><P >The following are nice to know about:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > queuepause command - stop a printer or print queue queueresume command - start a printer or print queue</PRE +></TD +></TR +></TABLE ></P ><P >Example:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > print command = /usr/bin/lpr -r -P%p %s @@ -6254,6 +6250,9 @@ CLASS="PROGRAMLISTING" lprm command = /usr/bin/lprm -P%p %j queuepause command = /usr/sbin/lpc -P%p stop queuepause command = /usr/sbin/lpc -P%p start</PRE +></TD +></TR +></TABLE ></P ><P >Samba should set reasonable defaults for these depending on your @@ -6271,7 +6270,7 @@ and it should be periodically cleaned out. Samba used the lpq command to determine the "job number" assigned to your print job by the spooler.</P ><P ->The %>letter< are "macros" that get dynamically replaced with appropriate +>The %>letter< are "macros" that get dynamically replaced with appropriate values when they are used. The %s gets replaced with the name of the spool file that Samba creates and the %p gets replaced with the name of the printer. The %j gets replaced with the "job number" which comes from @@ -6282,15 +6281,19 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1144" -></A ->8.2. Debugging printer problems</H2 +NAME="AEN1141">Debugging printer problems</H2 ><P >One way to debug printing problems is to start by replacing these command with shell scripts that record the arguments and the contents of the print file. A simple example of this kind of things might be:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > print command = /tmp/saveprint %p %s @@ -6301,12 +6304,21 @@ CLASS="PROGRAMLISTING" # we run the command and save the error messages # replace the command with the one appropriate for your system /usr/bin/lpr -r -P$1 $2 2>>&/tmp/tmp.print</PRE +></TD +></TR +></TABLE ></P ><P >Then you print a file and try removing it. You may find that the print queue needs to be stopped in order to see the queue status and remove the job:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > h4: {42} % echo hi >/tmp/hi @@ -6324,6 +6336,9 @@ smb: \> cancel 1049 Job 1049 cancelled smb: \> queue smb: \> exit</PRE +></TD +></TR +></TABLE ></P ><P >The 'code 0' indicates that the job was removed. The comment @@ -6339,28 +6354,44 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1153" -></A ->8.3. What printers do I have?</H2 +NAME="AEN1150">What printers do I have?</H2 ><P >You can use the 'testprns' program to check to see if the printer name you are using is recognized by Samba. For example, you can use:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > testprns printer /etc/printcap</PRE +></TD +></TR +></TABLE ></P ><P >Samba can get its printcap information from a file or from a program. You can try the following to see the format of the extracted information:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > testprns -a printer /etc/printcap testprns -a printer '|/bin/cat printcap'</PRE +></TD +></TR +></TABLE ></P ></DIV ><DIV @@ -6368,9 +6399,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1161" -></A ->8.4. Setting up printcap and print servers</H2 +NAME="AEN1158">Setting up printcap and print servers</H2 ><P >You may need to set up some printcaps for your Samba system to use. It is strongly recommended that you use the facilities provided by @@ -6379,9 +6408,18 @@ the print spooler to set up queues and printcap information.</P >Samba requires either a printcap or program to deliver printcap information. This printcap information has the format:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > name|alias1|alias2...:option=value:...</PRE +></TD +></TR +></TABLE ></P ><P >For almost all printing systems, the printer 'name' must be composed @@ -6452,9 +6490,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1189" -></A ->8.5. Job sent, no output</H2 +NAME="AEN1186">Job sent, no output</H2 ><P >This is the most frustrating part of printing. You may have sent the job, verified that the job was forwarded, set up a wrapper around @@ -6465,9 +6501,18 @@ right print queue. If you are using a BSD or LPRng print spooler, you can temporarily stop the printing of jobs. Jobs can still be submitted, but they will not be printed. Use:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > lpc -Pprinter stop</PRE +></TD +></TR +></TABLE ></P ><P >Now submit a print job and then use 'lpq -Pprinter' to see if the @@ -6481,11 +6526,20 @@ are not in what you would expect to call a printable format. You can use the UNIX 'file' utitily to determine what the job format actually is:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > cd /var/spool/lpd/printer # spool directory of print jobs ls # find job files file dfA001myhost</PRE +></TD +></TR +></TABLE ></P ><P >You should make sure that your printer supports this format OR that @@ -6497,9 +6551,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1200" -></A ->8.6. Job sent, strange output</H2 +NAME="AEN1197">Job sent, strange output</H2 ><P >Once you have the job printing, you can then start worrying about making it print nicely.</P @@ -6512,9 +6564,18 @@ printcap option or printer option is configured for no banners. If you have a printcap, this is the :sh (suppress header or banner page) option. You should have the following in your printer.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > printer: ... :sh</PRE +></TD +></TR +></TABLE ></P ><P >If you have this option and are still getting banner pages, there @@ -6528,9 +6589,18 @@ with your job format, or if you are generating PostScript jobs, incorrect setting on your printer driver on the MicroSoft client. For example, under Win95 there is a option:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > Printers|Printer Name|(Right Click)Properties|Postscript|Advanced|</PRE +></TD +></TR +></TABLE ></P ><P >that allows you to choose if a Ctrl-D is appended to all jobs. @@ -6543,9 +6613,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1212" -></A ->8.7. Raw PostScript printed</H2 +NAME="AEN1209">Raw PostScript printed</H2 ><P >This is a problem that is usually caused by either the print spooling system putting information at the start of the print job that makes @@ -6558,9 +6626,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1215" -></A ->8.8. Advanced Printing</H2 +NAME="AEN1212">Advanced Printing</H2 ><P >Note that you can do some pretty magic things by using your imagination with the "print command" option and some shell scripts. @@ -6574,9 +6640,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1218" -></A ->8.9. Real debugging</H2 +NAME="AEN1215">Real debugging</H2 ><P >If the above debug tips don't help, then maybe you need to bring in the bug guns, system tracing. See Tracing.txt in this directory.</P @@ -6586,20 +6650,22 @@ the bug guns, system tracing. See Tracing.txt in this directory.</P CLASS="CHAPTER" ><HR><H1 ><A -NAME="SECURITYLEVELS" -></A ->Chapter 9. Security levels</H1 +NAME="SECURITYLEVELS">Security levels</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN1231" -></A ->9.1. Introduction</H2 +NAME="AEN1228">Introduction</H2 ><P >Samba supports the following options to the global smb.conf parameter</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >[global] @@ -6613,6 +6679,9 @@ CLASS="PARAMETER" ></TT ></A > = [share|user(default)|domain|ads]</PRE +></TD +></TR +></TABLE ></P ><P >Please refer to the smb.conf man page for usage information and to the document @@ -6640,9 +6709,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1242" -></A ->9.2. More complete description of security levels</H2 +NAME="AEN1239">More complete description of security levels</H2 ><P >A SMB server tells the client at startup what "security level" it is running. There are two options "share level" and "user level". Which @@ -6734,17 +6801,13 @@ schemes by which the two could be kept in sync.</P CLASS="CHAPTER" ><HR><H1 ><A -NAME="DOMAIN-SECURITY" -></A ->Chapter 10. security = domain in Samba 2.x</H1 +NAME="DOMAIN-SECURITY">security = domain in Samba 2.x</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN1275" -></A ->10.1. Joining an NT Domain with Samba 2.2</H2 +NAME="AEN1272">Joining an NT Domain with Samba 2.2</H2 ><P >Assume you have a Samba 2.x server with a NetBIOS name of <TT @@ -6833,13 +6896,13 @@ CLASS="FILENAME" ><TT CLASS="REPLACEABLE" ><I -><NT DOMAIN NAME></I +><NT DOMAIN NAME></I ></TT >.<TT CLASS="REPLACEABLE" ><I -><Samba - Server Name></I +><Samba + Server Name></I ></TT >.mac</TT ></P @@ -6973,9 +7036,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1339" -></A ->10.2. Samba and Windows 2000 Domains</H2 +NAME="AEN1336">Samba and Windows 2000 Domains</H2 ><P >Many people have asked regarding the state of Samba's ability to participate in a Windows 2000 Domain. Samba 2.2 is able to act as a member server of a Windows @@ -6998,9 +7059,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1344" -></A ->10.3. Why is this better than security = server?</H2 +NAME="AEN1341">Why is this better than security = server?</H2 ><P >Currently, domain security in Samba doesn't free you from having to create local Unix users to represent the users attaching @@ -7064,12 +7123,9 @@ CLASS="COMMAND" user is authenticated, making a Samba server truly plug and play in an NT domain environment. Watch for this code soon.</P ><P -><SPAN -CLASS="emphasis" ><I CLASS="EMPHASIS" >NOTE:</I -></SPAN > Much of the text of this document was first published in the Web magazine <A HREF="http://www.linuxworld.com" @@ -7088,27 +7144,20 @@ TARGET="_top" CLASS="CHAPTER" ><HR><H1 ><A -NAME="WINBIND" -></A ->Chapter 11. Unified Logons between Windows NT and UNIX using Winbind</H1 +NAME="WINBIND">Unified Logons between Windows NT and UNIX using Winbind</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN1397" -></A ->11.1. Abstract</H2 +NAME="AEN1394">Abstract</H2 ><P >Integration of UNIX and Microsoft Windows NT through a unified logon has been considered a "holy grail" in heterogeneous computing environments for a long time. We present - <SPAN -CLASS="emphasis" -><I + <I CLASS="EMPHASIS" >winbind</I -></SPAN >, a component of the Samba suite of programs as a solution to the unified logon problem. Winbind uses a UNIX implementation @@ -7123,9 +7172,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1401" -></A ->11.2. Introduction</H2 +NAME="AEN1398">Introduction</H2 ><P >It is well known that UNIX and Microsoft Windows NT have different models for representing user and group information and @@ -7177,9 +7224,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1414" -></A ->11.3. What Winbind Provides</H2 +NAME="AEN1411">What Winbind Provides</H2 ><P >Winbind unifies UNIX and Windows NT account management by allowing a UNIX box to become a full member of a NT domain. Once @@ -7219,9 +7264,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1421" -></A ->11.3.1. Target Uses</H3 +NAME="AEN1418">Target Uses</H3 ><P >Winbind is targeted at organizations that have an existing NT based domain infrastructure into which they wish @@ -7243,9 +7286,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1425" -></A ->11.4. How Winbind Works</H2 +NAME="AEN1422">How Winbind Works</H2 ><P >The winbind system is designed around a client/server architecture. A long running <B @@ -7263,9 +7304,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1430" -></A ->11.4.1. Microsoft Remote Procedure Calls</H3 +NAME="AEN1427">Microsoft Remote Procedure Calls</H3 ><P >Over the last two years, efforts have been underway by various Samba Team members to decode various aspects of @@ -7289,9 +7328,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1434" -></A ->11.4.2. Name Service Switch</H3 +NAME="AEN1431">Name Service Switch</H3 ><P >The Name Service Switch, or NSS, is a feature that is present in many UNIX operating systems. It allows system @@ -7369,9 +7406,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1450" -></A ->11.4.3. Pluggable Authentication Modules</H3 +NAME="AEN1447">Pluggable Authentication Modules</H3 ><P >Pluggable Authentication Modules, also known as PAM, is a system for abstracting authentication and authorization @@ -7418,9 +7453,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1458" -></A ->11.4.4. User and Group ID Allocation</H3 +NAME="AEN1455">User and Group ID Allocation</H3 ><P >When a user or group is created under Windows NT is it allocated a numerical relative identifier (RID). This is @@ -7444,9 +7477,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1462" -></A ->11.4.5. Result Caching</H3 +NAME="AEN1459">Result Caching</H3 ><P >An active system can generate a lot of user and group name lookups. To reduce the network cost of these lookups winbind @@ -7467,9 +7498,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1465" -></A ->11.5. Installation and Configuration</H2 +NAME="AEN1462">Installation and Configuration</H2 ><P >Many thanks to John Trostel <A HREF="mailto:jtrostel@snapserver.com" @@ -7494,9 +7523,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1472" -></A ->11.5.1. Introduction</H3 +NAME="AEN1469">Introduction</H3 ><P >This HOWTO describes the procedures used to get winbind up and running on my RedHat 7.1 system. Winbind is capable of providing access @@ -7512,12 +7539,9 @@ somewhat to fit the way your distribution works.</P ><UL ><LI ><P -> <SPAN -CLASS="emphasis" -><I +> <I CLASS="EMPHASIS" >Why should I to this?</I -></SPAN > </P ><P @@ -7529,12 +7553,9 @@ CLASS="EMPHASIS" ></LI ><LI ><P -> <SPAN -CLASS="emphasis" -><I +> <I CLASS="EMPHASIS" >Who should be reading this document?</I -></SPAN > </P ><P @@ -7553,35 +7574,24 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1485" -></A ->11.5.2. Requirements</H3 +NAME="AEN1482">Requirements</H3 ><P >If you have a samba configuration file that you are currently -using... <SPAN -CLASS="emphasis" -><I +using... <I CLASS="EMPHASIS" >BACK IT UP!</I -></SPAN > If your system already uses PAM, -<SPAN -CLASS="emphasis" -><I +<I CLASS="EMPHASIS" >back up the <TT CLASS="FILENAME" >/etc/pam.d</TT > directory contents!</I -></SPAN > If you haven't already made a boot disk, -<SPAN -CLASS="emphasis" -><I +<I CLASS="EMPHASIS" >MAKE ONE NOW!</I -></SPAN ></P ><P >Messing with the pam configuration files can make it nearly impossible @@ -7623,9 +7633,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1499" -></A ->11.5.3. Testing Things Out</H3 +NAME="AEN1496">Testing Things Out</H3 ><P >Before starting, it is probably best to kill off all the SAMBA related daemons running on your server. Kill off all <B @@ -7668,14 +7676,18 @@ CLASS="SECT3" ><HR><H4 CLASS="SECT3" ><A -NAME="AEN1510" -></A ->11.5.3.1. Configure and compile SAMBA</H4 +NAME="AEN1507">Configure and compile SAMBA</H4 ><P >The configuration and compilation of SAMBA is pretty straightforward. The first three steps may not be necessary depending upon whether or not you have previously built the Samba binaries.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" ><TT @@ -7720,6 +7732,9 @@ CLASS="PROMPT" CLASS="COMMAND" >make install</B ></PRE +></TD +></TR +></TABLE ></P ><P >This will, by default, install SAMBA in <TT @@ -7734,9 +7749,7 @@ CLASS="SECT3" ><HR><H4 CLASS="SECT3" ><A -NAME="AEN1529" -></A ->11.5.3.2. Configure <TT +NAME="AEN1526">Configure <TT CLASS="FILENAME" >nsswitch.conf</TT > and the @@ -7804,11 +7817,20 @@ CLASS="FILENAME" > file look like this after editing:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > passwd: files winbind shadow: files group: files winbind</PRE +></TD +></TR +></TABLE ></P ><P > @@ -7839,9 +7861,7 @@ CLASS="SECT3" ><HR><H4 CLASS="SECT3" ><A -NAME="AEN1562" -></A ->11.5.3.3. Configure smb.conf</H4 +NAME="AEN1559">Configure smb.conf</H4 ><P >Several parameters are needed in the smb.conf file to control the behavior of <B @@ -7863,6 +7883,12 @@ CLASS="FILENAME" > file was modified to include the following entries in the [global] section:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >[global] @@ -7907,6 +7933,9 @@ HREF="winbindd.8.html#TEMPLATESHELL" TARGET="_top" >template shell</A > = /bin/bash</PRE +></TD +></TR +></TABLE ></P ></DIV ><DIV @@ -7914,9 +7943,7 @@ CLASS="SECT3" ><HR><H4 CLASS="SECT3" ><A -NAME="AEN1578" -></A ->11.5.3.4. Join the SAMBA server to the PDC domain</H4 +NAME="AEN1575">Join the SAMBA server to the PDC domain</H4 ><P >Enter the following command to make the SAMBA server join the PDC domain, where <TT @@ -7960,9 +7987,7 @@ CLASS="SECT3" ><HR><H4 CLASS="SECT3" ><A -NAME="AEN1589" -></A ->11.5.3.5. Start up the winbindd daemon and test it!</H4 +NAME="AEN1586">Start up the winbindd daemon and test it!</H4 ><P >Eventually, you will want to modify your smb startup script to automatically invoke the winbindd daemon when the other parts of @@ -8008,6 +8033,12 @@ CLASS="COMMAND" This should echo back a list of users on your Windows users on your PDC. For example, I get the following response:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >CEO+Administrator @@ -8016,6 +8047,9 @@ CEO+Guest CEO+jt-ad CEO+krbtgt CEO+TsInternetUser</PRE +></TD +></TR +></TABLE ></P ><P >Obviously, I have named my domain 'CEO' and my <TT @@ -8029,6 +8063,12 @@ separator</I >You can do the same sort of thing to get group information from the PDC:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" ><TT @@ -8047,6 +8087,9 @@ CEO+Cert Publishers CEO+Schema Admins CEO+Enterprise Admins CEO+Group Policy Creator Owners</PRE +></TD +></TR +></TABLE ></P ><P >The function 'getent' can now be used to get unified @@ -8083,17 +8126,13 @@ CLASS="SECT3" ><HR><H4 CLASS="SECT3" ><A -NAME="AEN1625" -></A ->11.5.3.6. Fix the init.d startup scripts</H4 +NAME="AEN1622">Fix the init.d startup scripts</H4 ><DIV CLASS="SECT4" ><H5 CLASS="SECT4" ><A -NAME="AEN1627" -></A ->11.5.3.6.1. Linux</H5 +NAME="AEN1624">Linux</H5 ><P >The <B CLASS="COMMAND" @@ -8132,6 +8171,12 @@ CLASS="FILENAME" > directory directly. The 'start' function in the script looks like this:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >start() { @@ -8154,11 +8199,20 @@ CLASS="PROGRAMLISTING" RETVAL=1 return $RETVAL }</PRE +></TD +></TR +></TABLE ></P ><P >The 'stop' function has a corresponding entry to shut down the services and look s like this:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >stop() { @@ -8180,6 +8234,9 @@ CLASS="PROGRAMLISTING" echo "" return $RETVAL }</PRE +></TD +></TR +></TABLE ></P ></DIV ><DIV @@ -8187,9 +8244,7 @@ CLASS="SECT4" ><HR><H5 CLASS="SECT4" ><A -NAME="AEN1644" -></A ->11.5.3.6.2. Solaris</H5 +NAME="AEN1641">Solaris</H5 ><P >On solaris, you need to modify the <TT @@ -8203,6 +8258,12 @@ CLASS="FILENAME" >, the file could contains something like this:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >## @@ -8251,6 +8312,9 @@ echo Starting Winbind Daemon echo "Usage: /etc/init.d/samba.server { start | stop }" ;; esac</PRE +></TD +></TR +></TABLE ></P ></DIV ><DIV @@ -8258,9 +8322,7 @@ CLASS="SECT4" ><HR><H5 CLASS="SECT4" ><A -NAME="AEN1651" -></A ->11.5.3.6.3. Restarting</H5 +NAME="AEN1648">Restarting</H5 ><P >If you restart the <B CLASS="COMMAND" @@ -8282,9 +8344,7 @@ CLASS="SECT3" ><HR><H4 CLASS="SECT3" ><A -NAME="AEN1657" -></A ->11.5.3.7. Configure Winbind and PAM</H4 +NAME="AEN1654">Configure Winbind and PAM</H4 ><P >If you have made it this far, you know that winbindd and samba are working together. If you want to use winbind to provide authentication for other @@ -8340,9 +8400,7 @@ CLASS="SECT4" ><HR><H5 CLASS="SECT4" ><A -NAME="AEN1674" -></A ->11.5.3.7.1. Linux/FreeBSD-specific PAM configuration</H5 +NAME="AEN1671">Linux/FreeBSD-specific PAM configuration</H5 ><P >The <TT CLASS="FILENAME" @@ -8350,10 +8408,19 @@ CLASS="FILENAME" > file does not need to be changed. I just left this fileas it was:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >auth required /lib/security/pam_stack.so service=system-auth account required /lib/security/pam_stack.so service=system-auth</PRE +></TD +></TR +></TABLE ></P ><P >The other services that I modified to allow the use of winbind @@ -8377,16 +8444,34 @@ CLASS="FILENAME" >/etc/xinetd.d/wu-ftp</TT > from </P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >enable = no</PRE +></TD +></TR +></TABLE ></P ><P >to</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >enable = yes</PRE +></TD +></TR +></TABLE ></P ><P > @@ -8414,6 +8499,12 @@ CLASS="FILENAME" > file was changed to look like this:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed @@ -8423,6 +8514,9 @@ auth required /lib/security/pam_shells.so account sufficient /lib/security/pam_winbind.so account required /lib/security/pam_stack.so service=system-auth session required /lib/security/pam_stack.so service=system-auth</PRE +></TD +></TR +></TABLE ></P ><P >The <TT @@ -8431,6 +8525,12 @@ CLASS="FILENAME" > file can be changed nearly the same way. It now looks like this:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >auth required /lib/security/pam_securetty.so @@ -8443,6 +8543,9 @@ account required /lib/security/pam_stack.so service=system-auth password required /lib/security/pam_stack.so service=system-auth session required /lib/security/pam_stack.so service=system-auth session optional /lib/security/pam_console.so</PRE +></TD +></TR +></TABLE ></P ><P >In this case, I added the <B @@ -8469,9 +8572,7 @@ CLASS="SECT4" ><HR><H5 CLASS="SECT4" ><A -NAME="AEN1707" -></A ->11.5.3.7.2. Solaris-specific configuration</H5 +NAME="AEN1704">Solaris-specific configuration</H5 ><P >The /etc/pam.conf needs to be changed. I changed this file so that my Domain users can logon both locally as well as telnet.The following are the changes @@ -8479,6 +8580,12 @@ that I made.You can customize the pam.conf file as per your requirements,but be sure of those changes because in the worst case it will leave your system nearly impossible to boot.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" ># @@ -8540,6 +8647,9 @@ dtsession auth required /usr/lib/security/$ISA/pam_unix.so.1 #other account optional /usr/lib/security/$ISA/pam_krb5.so.1 #other session optional /usr/lib/security/$ISA/pam_krb5.so.1 #other password optional /usr/lib/security/$ISA/pam_krb5.so.1 try_first_pass</PRE +></TD +></TR +></TABLE ></P ><P >I also added a try_first_pass line after the winbind.so line to get rid of @@ -8556,9 +8666,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1714" -></A ->11.6. Limitations</H2 +NAME="AEN1711">Limitations</H2 ><P >Winbind has a number of limitations in its current released version that we hope to overcome in future @@ -8597,9 +8705,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1724" -></A ->11.7. Conclusion</H2 +NAME="AEN1721">Conclusion</H2 ><P >The winbind system, through the use of the Name Service Switch, Pluggable Authentication Modules, and appropriate @@ -8613,17 +8719,13 @@ NAME="AEN1724" CLASS="CHAPTER" ><HR><H1 ><A -NAME="SAMBA-PDC" -></A ->Chapter 12. How to Configure Samba 2.2 as a Primary Domain Controller</H1 +NAME="SAMBA-PDC">How to Configure Samba 2.2 as a Primary Domain Controller</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN1744" -></A ->12.1. Prerequisite Reading</H2 +NAME="AEN1741">Prerequisite Reading</H2 ><P >Before you continue reading in this chapter, please make sure that you are comfortable with configuring basic files services @@ -8649,9 +8751,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1750" -></A ->12.2. Background</H2 +NAME="AEN1747">Background</H2 ><DIV CLASS="NOTE" ><P @@ -8666,19 +8766,16 @@ WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG -SRC="/docbook-dsssl/note.gif" +SRC="./stylesheet-images/note.gif" HSPACE="5" ALT="Note"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P -><SPAN -CLASS="emphasis" ><I CLASS="EMPHASIS" >Author's Note:</I -></SPAN > This document is a combination of David Bannon's "Samba 2.2 PDC HOWTO" and "Samba NT Domain FAQ". Both documents are superseded by this one.</P @@ -8801,9 +8898,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1789" -></A ->12.3. Configuring the Samba Domain Controller</H2 +NAME="AEN1786">Configuring the Samba Domain Controller</H2 ><P >The first step in creating a working Samba PDC is to understand the parameters necessary in smb.conf. I will not @@ -8821,6 +8916,12 @@ CLASS="FILENAME" >smb.conf</TT > for acting as a PDC:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >[global] @@ -8962,6 +9063,9 @@ HREF="smb.conf.5.html#DIRECTORYMASK" TARGET="_top" >directory mask</A > = 0700</PRE +></TD +></TR +></TABLE ></P ><P >There are a couple of points to emphasize in the above configuration.</P @@ -9013,9 +9117,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1832" -></A ->12.4. Creating Machine Trust Accounts and Joining Clients to the +NAME="AEN1829">Creating Machine Trust Accounts and Joining Clients to the Domain</H2 ><P >A machine trust account is a Samba account that is used to @@ -9087,9 +9189,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1851" -></A ->12.4.1. Manual Creation of Machine Trust Accounts</H3 +NAME="AEN1848">Manual Creation of Machine Trust Accounts</H3 ><P >The first step in manually creating a machine trust account is to manually create the corresponding Unix account in @@ -9147,6 +9247,12 @@ CLASS="FILENAME" >/etc/passwd</TT > entry like this:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >doppy$:x:505:501:<TT @@ -9155,6 +9261,9 @@ CLASS="REPLACEABLE" >machine_nickname</I ></TT >:/dev/null:/bin/false</PRE +></TD +></TR +></TABLE ></P ><P >Above, <TT @@ -9221,7 +9330,7 @@ WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG -SRC="/docbook-dsssl/warning.gif" +SRC="./stylesheet-images/warning.gif" HSPACE="5" ALT="Warning"></TD ><TH @@ -9257,9 +9366,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1886" -></A ->12.4.2. "On-the-Fly" Creation of Machine Trust Accounts</H3 +NAME="AEN1883">"On-the-Fly" Creation of Machine Trust Accounts</H3 ><P >The second (and recommended) way of creating machine trust accounts is simply to allow the Samba server to create them as needed when the client @@ -9282,11 +9389,20 @@ be created manually.</P ><P >Below is an example for a RedHat 6.2 Linux system.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >[global] # <...remainder of parameters...> add user script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -M %u </PRE +></TD +></TR +></TABLE ></P ></DIV ><DIV @@ -9294,9 +9410,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN1895" -></A ->12.4.3. Joining the Client to the Domain</H3 +NAME="AEN1892">Joining the Client to the Domain</H3 ><P >The procedure for joining a client to the domain varies with the version of Windows.</P @@ -9305,12 +9419,9 @@ version of Windows.</P ><UL ><LI ><P -><SPAN -CLASS="emphasis" ><I CLASS="EMPHASIS" >Windows 2000</I -></SPAN ></P ><P > When the user elects to join the client to a domain, Windows prompts for @@ -9333,12 +9444,9 @@ CLASS="FILENAME" ></LI ><LI ><P -><SPAN -CLASS="emphasis" ><I CLASS="EMPHASIS" >Windows NT</I -></SPAN ></P ><P > If the machine trust account was created manually, on the @@ -9362,9 +9470,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1910" -></A ->12.5. Common Problems and Errors</H2 +NAME="AEN1907">Common Problems and Errors</H2 ><P ></P ><P @@ -9372,12 +9478,9 @@ NAME="AEN1910" ><UL ><LI ><P -> <SPAN -CLASS="emphasis" -><I +> <I CLASS="EMPHASIS" >I cannot include a '$' in a machine name.</I -></SPAN > </P ><P @@ -9401,14 +9504,11 @@ CLASS="COMMAND" ></LI ><LI ><P -> <SPAN -CLASS="emphasis" -><I +> <I CLASS="EMPHASIS" >I get told "You already have a connection to the Domain...." or "Cannot join domain, the credentials supplied conflict with an existing set.." when creating a machine trust account.</I -></SPAN > </P ><P @@ -9435,12 +9535,9 @@ CLASS="COMMAND" ></LI ><LI ><P -> <SPAN -CLASS="emphasis" -><I +> <I CLASS="EMPHASIS" >The system can not log you on (C000019B)....</I -></SPAN > </P ><P @@ -9467,13 +9564,10 @@ CLASS="COMMAND" ></LI ><LI ><P -> <SPAN -CLASS="emphasis" -><I +> <I CLASS="EMPHASIS" >The machine trust account for this computer either does not exist or is not accessible.</I -></SPAN > </P ><P @@ -9507,13 +9601,10 @@ CLASS="PARAMETER" ></LI ><LI ><P -> <SPAN -CLASS="emphasis" -><I +> <I CLASS="EMPHASIS" >When I attempt to login to a Samba Domain from a NT4/W2K workstation, I get a message about my account being disabled.</I -></SPAN > </P ><P @@ -9543,10 +9634,19 @@ CLASS="FILENAME" > file as follows: </P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > account required pam_permit.so </PRE +></TD +></TR +></TABLE ></P ><P > If you want to remain backward compatibility to samba 2.0.x use @@ -9572,9 +9672,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN1958" -></A ->12.6. System Policies and Profiles</H2 +NAME="AEN1955">System Policies and Profiles</H2 ><P >Much of the information necessary to implement System Policies and Roving User Profiles in a Samba domain is the same as that for @@ -9592,12 +9690,9 @@ Profiles and Policies in Windows NT 4.0</A ><UL ><LI ><P -> <SPAN -CLASS="emphasis" -><I +> <I CLASS="EMPHASIS" >What about Windows NT Policy Editor?</I -></SPAN > </P ><P @@ -9609,20 +9704,14 @@ CLASS="FILENAME" CLASS="COMMAND" >poledit.exe</B > which - is included with NT Server but <SPAN -CLASS="emphasis" -><I + is included with NT Server but <I CLASS="EMPHASIS" >not NT Workstation</I -></SPAN >. There is a Policy Editor on a NTws - but it is not suitable for creating <SPAN -CLASS="emphasis" -><I + but it is not suitable for creating <I CLASS="EMPHASIS" >Domain Policies</I -></SPAN >. Further, although the Windows 95 Policy Editor can be installed on an NT Workstation/Server, it will not @@ -9663,12 +9752,9 @@ CLASS="COMMAND" ></LI ><LI ><P -> <SPAN -CLASS="emphasis" -><I +> <I CLASS="EMPHASIS" >Can Win95 do Policies?</I -></SPAN > </P ><P @@ -9693,12 +9779,9 @@ CLASS="FILENAME" ></LI ><LI ><P -> <SPAN -CLASS="emphasis" -><I +> <I CLASS="EMPHASIS" >How do I get 'User Manager' and 'Server Manager'</I -></SPAN > </P ><P @@ -9749,9 +9832,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2002" -></A ->12.7. What other help can I get?</H2 +NAME="AEN1999">What other help can I get?</H2 ><P >There are many sources of information available in the form of mailing lists, RFC's and documentation. The docs that come @@ -9762,13 +9843,10 @@ general SMB topics such as browsing.</P ><UL ><LI ><P -> <SPAN -CLASS="emphasis" -><I +> <I CLASS="EMPHASIS" >What are some diagnostics tools I can use to debug the domain logon process and where can I find them?</I -></SPAN > </P ><P @@ -9838,13 +9916,10 @@ TARGET="_top" ></LI ><LI ><P -> <SPAN -CLASS="emphasis" -><I +> <I CLASS="EMPHASIS" >How do I install 'Network Monitor' on an NT Workstation or a Windows 9x box?</I -></SPAN > </P ><P @@ -9959,12 +10034,9 @@ TARGET="_top" ></LI ><LI ><P -> The <SPAN -CLASS="emphasis" -><I +> The <I CLASS="EMPHASIS" >Development</I -></SPAN > document on the Samba mirrors might mention your problem. If so, it might mean that the developers are working on it.</P @@ -10021,12 +10093,9 @@ TARGET="_top" ><UL ><LI ><P -> <SPAN -CLASS="emphasis" -><I +> <I CLASS="EMPHASIS" >How do I get help from the mailing lists?</I -></SPAN > </P ><P @@ -10101,12 +10170,9 @@ TARGET="_top" ></LI ><LI ><P ->You might include <SPAN -CLASS="emphasis" -><I +>You might include <I CLASS="EMPHASIS" >partial</I -></SPAN > log files written at a debug level set to as much as 20. Please don't send the entire log but enough to give the context of the @@ -10128,12 +10194,9 @@ CLASS="EMPHASIS" ></LI ><LI ><P -> <SPAN -CLASS="emphasis" -><I +> <I CLASS="EMPHASIS" >How do I get off the mailing lists?</I -></SPAN > </P ><P @@ -10169,9 +10232,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2116" -></A ->12.8. Domain Control for Windows 9x/ME</H2 +NAME="AEN2113">Domain Control for Windows 9x/ME</H2 ><DIV CLASS="NOTE" ><P @@ -10186,7 +10247,7 @@ WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG -SRC="/docbook-dsssl/note.gif" +SRC="./stylesheet-images/note.gif" HSPACE="5" ALT="Note"></TD ><TD @@ -10195,13 +10256,10 @@ VALIGN="TOP" ><P >The following section contains much of the original DOMAIN.txt file previously included with Samba. Much of -the material is based on what went into the book <SPAN -CLASS="emphasis" -><I +the material is based on what went into the book <I CLASS="EMPHASIS" >Special Edition, Using Samba</I -></SPAN >, by Richard Sharpe.</P ></TD ></TR @@ -10303,9 +10361,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN2142" -></A ->12.8.1. Configuration Instructions: Network Logons</H3 +NAME="AEN2139">Configuration Instructions: Network Logons</H3 ><P >The main difference between a PDC and a Windows 9x logon server configuration is that</P @@ -10338,7 +10394,7 @@ WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG -SRC="/docbook-dsssl/warning.gif" +SRC="./stylesheet-images/warning.gif" HSPACE="5" ALT="Warning"></TD ><TH @@ -10409,9 +10465,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN2161" -></A ->12.8.2. Configuration Instructions: Setting up Roaming User Profiles</H3 +NAME="AEN2158">Configuration Instructions: Setting up Roaming User Profiles</H3 ><DIV CLASS="WARNING" ><P @@ -10426,19 +10480,16 @@ WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG -SRC="/docbook-dsssl/warning.gif" +SRC="./stylesheet-images/warning.gif" HSPACE="5" ALT="Warning"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P -><SPAN -CLASS="emphasis" ><I CLASS="EMPHASIS" >NOTE!</I -></SPAN > Roaming profiles support is different for Win9X and WinNT.</P ></TD @@ -10462,16 +10513,23 @@ CLASS="SECT3" ><HR><H4 CLASS="SECT3" ><A -NAME="AEN2169" -></A ->12.8.2.1. Windows NT Configuration</H4 +NAME="AEN2166">Windows NT Configuration</H4 ><P >To support WinNT clients, in the [global] section of smb.conf set the following (for example):</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >logon path = \\profileserver\profileshare\profilepath\%U\moreprofilepath</PRE +></TD +></TR +></TABLE ></P ><P >The default for this option is \\%N\%U\profile, namely @@ -10493,7 +10551,7 @@ WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG -SRC="/docbook-dsssl/note.gif" +SRC="./stylesheet-images/note.gif" HSPACE="5" ALT="Note"></TD ><TD @@ -10513,9 +10571,7 @@ CLASS="SECT3" ><HR><H4 CLASS="SECT3" ><A -NAME="AEN2177" -></A ->12.8.2.2. Windows 9X Configuration</H4 +NAME="AEN2174">Windows 9X Configuration</H4 ><P >To support Win9X clients, you must use the "logon home" parameter. Samba has now been fixed so that "net use/home" now works as well, and it, too, relies @@ -10526,9 +10582,18 @@ profiles in the user's home directory. But wait! There is a trick you can use. If you set the following in the [global] section of your smb.conf file:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >logon home = \\%L\%U\.profiles</PRE +></TD +></TR +></TABLE ></P ><P >then your Win9X clients will dutifully put their clients in a subdirectory @@ -10544,17 +10609,24 @@ CLASS="SECT3" ><HR><H4 CLASS="SECT3" ><A -NAME="AEN2185" -></A ->12.8.2.3. Win9X and WinNT Configuration</H4 +NAME="AEN2182">Win9X and WinNT Configuration</H4 ><P >You can support profiles for both Win9X and WinNT clients by setting both the "logon home" and "logon path" parameters. For example:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >logon home = \\%L\%U\.profiles logon path = \\%L\profiles\%U</PRE +></TD +></TR +></TABLE ></P ><DIV CLASS="NOTE" @@ -10570,7 +10642,7 @@ WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG -SRC="/docbook-dsssl/note.gif" +SRC="./stylesheet-images/note.gif" HSPACE="5" ALT="Note"></TD ><TD @@ -10589,9 +10661,7 @@ CLASS="SECT3" ><HR><H4 CLASS="SECT3" ><A -NAME="AEN2192" -></A ->12.8.2.4. Windows 9X Profile Setup</H4 +NAME="AEN2189">Windows 9X Profile Setup</H4 ><P >When a user first logs in on Windows 9X, the file user.DAT is created, as are folders "Start Menu", "Desktop", "Programs" and "Nethood". @@ -10696,12 +10766,9 @@ TYPE="1" ></LI ><LI ><P -> <SPAN -CLASS="emphasis" -><I +> <I CLASS="EMPHASIS" >WARNING</I -></SPAN > - before deleting the contents of the directory listed in the ProfilePath (this is likely to be c:\windows\profiles\username), @@ -10749,9 +10816,7 @@ CLASS="SECT3" ><HR><H4 CLASS="SECT3" ><A -NAME="AEN2228" -></A ->12.8.2.5. Windows NT Workstation 4.0</H4 +NAME="AEN2225">Windows NT Workstation 4.0</H4 ><P >When a user first logs in to a Windows NT Workstation, the profile NTuser.DAT is created. The profile location can be now specified @@ -10770,7 +10835,7 @@ WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG -SRC="/docbook-dsssl/note.gif" +SRC="./stylesheet-images/note.gif" HSPACE="5" ALT="Note"></TD ><TD @@ -10828,7 +10893,7 @@ WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG -SRC="/docbook-dsssl/note.gif" +SRC="./stylesheet-images/note.gif" HSPACE="5" ALT="Note"></TD ><TD @@ -10863,9 +10928,7 @@ CLASS="SECT3" ><HR><H4 CLASS="SECT3" ><A -NAME="AEN2241" -></A ->12.8.2.6. Windows NT Server</H4 +NAME="AEN2238">Windows NT Server</H4 ><P >There is nothing to stop you specifying any path that you like for the location of users' profiles. Therefore, you could specify that the @@ -10877,9 +10940,7 @@ CLASS="SECT3" ><HR><H4 CLASS="SECT3" ><A -NAME="AEN2244" -></A ->12.8.2.7. Sharing Profiles between W95 and NT Workstation 4.0</H4 +NAME="AEN2241">Sharing Profiles between W95 and NT Workstation 4.0</H4 ><DIV CLASS="WARNING" ><P @@ -10894,7 +10955,7 @@ WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG -SRC="/docbook-dsssl/warning.gif" +SRC="./stylesheet-images/warning.gif" HSPACE="5" ALT="Warning"></TD ><TH @@ -10946,7 +11007,7 @@ WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG -SRC="/docbook-dsssl/note.gif" +SRC="./stylesheet-images/note.gif" HSPACE="5" ALT="Note"></TD ><TD @@ -10970,9 +11031,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2254" -></A ->12.9. DOMAIN_CONTROL.txt : Windows NT Domain Control & Samba</H2 +NAME="AEN2251">DOMAIN_CONTROL.txt : Windows NT Domain Control & Samba</H2 ><DIV CLASS="WARNING" ><P @@ -10987,7 +11046,7 @@ WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG -SRC="/docbook-dsssl/warning.gif" +SRC="./stylesheet-images/warning.gif" HSPACE="5" ALT="Warning"></TD ><TH @@ -11012,12 +11071,9 @@ VALIGN="TOP" ></TABLE ></DIV ><P -><SPAN -CLASS="emphasis" ><I CLASS="EMPHASIS" >NOTE :</I -></SPAN > The term "Domain Controller" and those related to it refer to one specific method of authentication that can underly an SMB domain. Domain Controllers @@ -11107,17 +11163,13 @@ within its registry.</P CLASS="CHAPTER" ><HR><H1 ><A -NAME="SAMBA-BDC" -></A ->Chapter 13. How to Act as a Backup Domain Controller in a Purely Samba Controlled Domain</H1 +NAME="SAMBA-BDC">How to Act as a Backup Domain Controller in a Purely Samba Controlled Domain</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN2290" -></A ->13.1. Prerequisite Reading</H2 +NAME="AEN2287">Prerequisite Reading</H2 ><P >Before you continue reading in this chapter, please make sure that you are comfortable with configuring a Samba PDC @@ -11132,9 +11184,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2294" -></A ->13.2. Background</H2 +NAME="AEN2291">Background</H2 ><P >What is a Domain Controller? It is a machine that is able to answer logon requests from workstations in a Windows NT Domain. Whenever a @@ -11161,11 +11211,20 @@ current Windows Clients, including Windows 2000 and XP. This text assumes the domain to be named SAMBA. To be able to act as a PDC, some parameters in the [global]-section of the smb.conf have to be set:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >workgroup = SAMBA domain master = yes domain logons = yes</PRE +></TD +></TR +></TABLE ></P ><P >Several other things like a [homes] and a [netlogon] share also may be @@ -11177,9 +11236,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2302" -></A ->13.3. What qualifies a Domain Controller on the network?</H2 +NAME="AEN2299">What qualifies a Domain Controller on the network?</H2 ><P >Every machine that is a Domain Controller for the domain SAMBA has to register the NetBIOS group name SAMBA#1c with the WINS server and/or @@ -11194,9 +11251,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN2305" -></A ->13.3.1. How does a Workstation find its domain controller?</H3 +NAME="AEN2302">How does a Workstation find its domain controller?</H3 ><P >A NT workstation in the domain SAMBA that wants a local user to be authenticated has to find the domain controller for SAMBA. It does @@ -11213,9 +11268,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN2308" -></A ->13.3.2. When is the PDC needed?</H3 +NAME="AEN2305">When is the PDC needed?</H3 ><P >Whenever a user wants to change his password, this has to be done on the PDC. To find the PDC, the workstation does a NetBIOS name query @@ -11229,9 +11282,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2311" -></A ->13.4. Can Samba be a Backup Domain Controller?</H2 +NAME="AEN2308">Can Samba be a Backup Domain Controller?</H2 ><P >With version 2.2, no. The native NT SAM replication protocols have not yet been fully implemented. The Samba Team is working on @@ -11248,9 +11299,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2315" -></A ->13.5. How do I set up a Samba BDC?</H2 +NAME="AEN2312">How do I set up a Samba BDC?</H2 ><P >Several things have to be done:</P ><P @@ -11297,11 +11346,20 @@ synchronization.</P >Finally, the BDC has to be found by the workstations. This can be done by setting</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >workgroup = samba domain master = no domain logons = yes</PRE +></TD +></TR +></TABLE ></P ><P >in the [global]-section of the smb.conf of the BDC. This makes the BDC @@ -11315,9 +11373,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN2332" -></A ->13.5.1. How do I replicate the smbpasswd file?</H3 +NAME="AEN2329">How do I replicate the smbpasswd file?</H3 ><P >Replication of the smbpasswd file is sensitive. It has to be done whenever changes to the SAM are made. Every user's password change is @@ -11337,17 +11393,13 @@ password.</P CLASS="CHAPTER" ><HR><H1 ><A -NAME="SAMBA-LDAP-HOWTO" -></A ->Chapter 14. Storing Samba's User/Machine Account information in an LDAP Directory</H1 +NAME="SAMBA-LDAP-HOWTO">Storing Samba's User/Machine Account information in an LDAP Directory</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN2353" -></A ->14.1. Purpose</H2 +NAME="AEN2350">Purpose</H2 ><P >This document describes how to use an LDAP directory for storing Samba user account information traditionally stored in the smbpasswd(5) file. It is @@ -11413,9 +11465,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2373" -></A ->14.2. Introduction</H2 +NAME="AEN2370">Introduction</H2 ><P >Traditionally, when configuring <A HREF="smb.conf.5.html#ENCRYPTPASSWORDS" @@ -11530,9 +11580,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2402" -></A ->14.3. Supported LDAP Servers</H2 +NAME="AEN2399">Supported LDAP Servers</H2 ><P >The LDAP samdb code in 2.2.3 has been developed and tested using the OpenLDAP 2.0 server and client libraries. The same code should be able to work with @@ -11555,9 +11603,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2407" -></A ->14.4. Schema and Relationship to the RFC 2307 posixAccount</H2 +NAME="AEN2404">Schema and Relationship to the RFC 2307 posixAccount</H2 ><P >Samba 2.2.3 includes the necessary schema file for OpenLDAP 2.0 in <TT @@ -11567,6 +11613,12 @@ CLASS="FILENAME" file has been modified since the experimental support initially included in 2.2.2). The sambaAccount objectclass is given here:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >objectclass ( 1.3.1.5.1.4.1.7165.2.2.2 NAME 'sambaAccount' SUP top STRUCTURAL @@ -11576,6 +11628,9 @@ CLASS="PROGRAMLISTING" logoffTime $ kickoffTime $ pwdCanChange $ pwdMustChange $ acctFlags $ displayName $ smbHome $ homeDrive $ scriptPath $ profilePath $ description $ userWorkstations $ primaryGroupID $ domain ))</PRE +></TD +></TR +></TABLE ></P ><P >The samba.schema file has been formatted for OpenLDAP 2.0. The OID's are @@ -11614,17 +11669,13 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2419" -></A ->14.5. Configuring Samba with LDAP</H2 +NAME="AEN2416">Configuring Samba with LDAP</H2 ><DIV CLASS="SECT2" ><H3 CLASS="SECT2" ><A -NAME="AEN2421" -></A ->14.5.1. OpenLDAP configuration</H3 +NAME="AEN2418">OpenLDAP configuration</H3 ><P >To include support for the sambaAccount object in an OpenLDAP directory server, first copy the samba.schema file to slapd's configuration directory.</P @@ -11658,6 +11709,12 @@ CLASS="FILENAME" >samba.schema</TT > file.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >## /etc/openldap/slapd.conf @@ -11674,12 +11731,21 @@ include /etc/openldap/schema/samba.schema ## include /etc/openldap/schema/nis.schema ....</PRE +></TD +></TR +></TABLE ></P ><P >It is recommended that you maintain some indices on some of the most usefull attributes, like in the following example, to speed up searches made on sambaAccount objectclasses (and possibly posixAccount and posixGroup as well).</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" ># Indices to maintain @@ -11697,6 +11763,9 @@ index rid eq ##index gidNumber eq ##index cn eq ##index memberUid eq</PRE +></TD +></TR +></TABLE ></P ></DIV ><DIV @@ -11704,9 +11773,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN2438" -></A ->14.5.2. Configuring Samba</H3 +NAME="AEN2435">Configuring Samba</H3 ><P >The following parameters are available in smb.conf only with <TT CLASS="PARAMETER" @@ -11776,6 +11843,12 @@ TARGET="_top" page and so will not be repeated here. However, a sample smb.conf file for use with an LDAP directory could appear as</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >## /usr/local/samba/lib/smb.conf @@ -11815,7 +11888,10 @@ CLASS="REPLACEABLE" ldap suffix = "ou=people,dc=samba,dc=org" # generally the default ldap search filter is ok - # ldap filter = "(&(uid=%u)(objectclass=sambaAccount))"</PRE + # ldap filter = "(&(uid=%u)(objectclass=sambaAccount))"</PRE +></TD +></TR +></TABLE ></P ></DIV ></DIV @@ -11824,9 +11900,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2466" -></A ->14.6. Accounts and Groups management</H2 +NAME="AEN2463">Accounts and Groups management</H2 ><P >As users accounts are managed thru the sambaAccount objectclass, you should modify you existing administration tools to deal with sambaAccount attributes.</P @@ -11849,9 +11923,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2471" -></A ->14.7. Security and sambaAccount</H2 +NAME="AEN2468">Security and sambaAccount</H2 ><P >There are two important points to remember when discussing the security of sambaAccount entries in the directory.</P @@ -11860,23 +11932,17 @@ of sambaAccount entries in the directory.</P ><UL ><LI ><P -><SPAN -CLASS="emphasis" ><I CLASS="EMPHASIS" >Never</I -></SPAN > retrieve the lmPassword or ntPassword attribute values over an unencrypted LDAP session.</P ></LI ><LI ><P -><SPAN -CLASS="emphasis" ><I CLASS="EMPHASIS" >Never</I -></SPAN > allow non-admin users to view the lmPassword or ntPassword attribute values.</P ></LI @@ -11915,12 +11981,21 @@ CLASS="FILENAME" >slapd.conf</TT >:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >## allow the "ldap admin dn" access, but deny everyone else access to attrs=lmPassword,ntPassword by dn="cn=Samba Admin,ou=people,dc=plainjoe,dc=org" write by * none</PRE +></TD +></TR +></TABLE ></P ></DIV ><DIV @@ -11928,9 +12003,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2491" -></A ->14.8. LDAP specials attributes for sambaAccounts</H2 +NAME="AEN2488">LDAP specials attributes for sambaAccounts</H2 ><P >The sambaAccount objectclass is composed of the following attributes:</P ><P @@ -12139,12 +12212,16 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2561" -></A ->14.9. Example LDIF Entries for a sambaAccount</H2 +NAME="AEN2558">Example LDIF Entries for a sambaAccount</H2 ><P >The following is a working LDIF with the inclusion of the posixAccount objectclass:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >dn: uid=guest2, ou=people,dc=plainjoe,dc=org @@ -12161,11 +12238,20 @@ acctFlags: [UX ] logoffTime: 2147483647 rid: 19006 pwdCanChange: 0</PRE +></TD +></TR +></TABLE ></P ><P >The following is an LDIF entry for using both the sambaAccount and posixAccount objectclasses:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >dn: uid=gcarter, ou=people,dc=plainjoe,dc=org @@ -12190,6 +12276,9 @@ homeDirectory: /home/tashtego/gcarter pwdCanChange: 0 pwdMustChange: 2147483647 ntPassword: 878D8014606CDA29677A44EFA1353FC7</PRE +></TD +></TR +></TABLE ></P ></DIV ><DIV @@ -12197,9 +12286,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2569" -></A ->14.10. Comments</H2 +NAME="AEN2566">Comments</H2 ><P >Please mail all comments regarding this HOWTO to <A HREF="mailto:jerry@samba.org" @@ -12213,305 +12300,13 @@ last updated to reflect the Samba 2.2.3 release. </P CLASS="CHAPTER" ><HR><H1 ><A -NAME="ADS" -></A ->Chapter 15. Using samba 3.0 with ActiveDirectory support</H1 -><P ->This is a VERY ROUGH guide to setting up the current (November 2001) -pre-alpha version of Samba 3.0 with kerberos authentication against a -Windows2000 KDC. The procedures listed here are likely to change as -the code develops.</P -><P ->Pieces you need before you begin: -<P -></P -><TABLE -BORDER="0" -><TBODY -><TR -><TD ->a Windows 2000 server.</TD -></TR -><TR -><TD ->samba 3.0 or higher.</TD -></TR -><TR -><TD ->the MIT kerberos development libraries (either install from the above sources or use a package). The heimdal libraries will not work.</TD -></TR -><TR -><TD ->the OpenLDAP development libraries.</TD -></TR -></TBODY -></TABLE -><P -></P -></P -><DIV -CLASS="SECT1" -><HR><H2 -CLASS="SECT1" -><A -NAME="AEN2587" -></A ->15.1. Installing the required packages for Debian</H2 -><P ->On Debian you need to install the following packages: -<P -></P -><TABLE -BORDER="0" -><TBODY -><TR -><TD ->libkrb5-dev</TD -></TR -><TR -><TD ->krb5-user</TD -></TR -></TBODY -></TABLE -><P -></P -></P -></DIV -><DIV -CLASS="SECT1" -><HR><H2 -CLASS="SECT1" -><A -NAME="AEN2593" -></A ->15.2. Installing the required packages for RedHat</H2 -><P ->On RedHat this means you should have at least: -<P -></P -><TABLE -BORDER="0" -><TBODY -><TR -><TD ->krb5-workstation (for kinit)</TD -></TR -><TR -><TD ->krb5-libs (for linking with)</TD -></TR -><TR -><TD ->krb5-devel (because you are compiling from source)</TD -></TR -></TBODY -></TABLE -><P -></P -></P -><P ->in addition to the standard development environment.</P -><P ->Note that these are not standard on a RedHat install, and you may need -to get them off CD2.</P -></DIV -><DIV -CLASS="SECT1" -><HR><H2 -CLASS="SECT1" -><A -NAME="AEN2602" -></A ->15.3. Compile Samba</H2 -><P ->If your kerberos libraries are in a non-standard location then - remember to add the configure option --with-krb5=DIR.</P -><P ->After you run configure make sure that include/config.h contains - lines like this:</P -><P -><PRE -CLASS="PROGRAMLISTING" ->#define HAVE_KRB5 1 -#define HAVE_LDAP 1</PRE -></P -><P ->If it doesn't then configure did not find your krb5 libraries or - your ldap libraries. Look in config.log to figure out why and fix - it.</P -><P ->Then compile and install Samba as usual. You must use at least the - following 3 options in smb.conf:</P -><P -><PRE -CLASS="PROGRAMLISTING" -> realm = YOUR.KERBEROS.REALM - ads server = your.kerberos.server - security = ADS - encrypt passwords = yes</PRE -></P -><P ->Strictly speaking, you can omit the realm name and you can use an IP - address for the ads server. In that case Samba will auto-detect these.</P -><P ->You do *not* need a smbpasswd file, although it won't do any harm - and if you have one then Samba will be able to fall back to normal - password security for older clients. I expect that the above - required options will change soon when we get better active - directory integration.</P -></DIV -><DIV -CLASS="SECT1" -><HR><H2 -CLASS="SECT1" -><A -NAME="AEN2614" -></A ->15.4. Setup your /etc/krb5.conf</H2 -><P ->The minimal configuration for krb5.conf is:</P -><P -><PRE -CLASS="PROGRAMLISTING" -> [realms] - YOUR.KERBEROS.REALM = { - kdc = your.kerberos.server - }</PRE -></P -><P ->Test your config by doing a "kinit USERNAME@REALM" and making sure that - your password is accepted by the Win2000 KDC. </P -><P ->NOTE: The realm must be uppercase. </P -><P ->You also must ensure that you can do a reverse DNS lookup on the IP -address of your KDC. Also, the name that this reverse lookup maps to -must either be the netbios name of the KDC (ie. the hostname with no -domain attached) or it can alternatively be the netbios name -followed by the realm. </P -><P ->The easiest way to ensure you get this right is to add a /etc/hosts -entry mapping the IP address of your KDC to its netbios name. If you -don't get this right then you will get a "local error" when you try -to join the realm.</P -><P ->If all you want is kerberos support in smbclient then you can skip -straight to step 5 now. Step 3 is only needed if you want kerberos -support in smbd.</P -></DIV -><DIV -CLASS="SECT1" -><HR><H2 -CLASS="SECT1" -><A -NAME="AEN2624" -></A ->15.5. Create the computer account</H2 -><P ->Do a "kinit" as a user that has authority to change arbitrary -passwords on the KDC ("Administrator" is a good choice). Then as a -user that has write permission on the Samba private directory -(usually root) run: -<B -CLASS="COMMAND" ->net ads join</B -></P -><DIV -CLASS="SECT2" -><HR><H3 -CLASS="SECT2" -><A -NAME="AEN2628" -></A ->15.5.1. Possible errors</H3 -><P -><P -></P -><DIV -CLASS="VARIABLELIST" -><DL -><DT ->"bash: kinit: command not found"</DT -><DD -><P ->kinit is in the krb5-workstation RPM on RedHat systems, and is in /usr/kerberos/bin, so it won't be in the path until you log in again (or open a new terminal)</P -></DD -><DT ->"ADS support not compiled in"</DT -><DD -><P ->Samba must be reconfigured (remove config.cache) and recompiled (make clean all install) after the kerberos libs and headers are installed.</P -></DD -></DL -></DIV -></P -></DIV -></DIV -><DIV -CLASS="SECT1" -><HR><H2 -CLASS="SECT1" -><A -NAME="AEN2640" -></A ->15.6. Test your server setup</H2 -><P ->On a Windows 2000 client try <B -CLASS="COMMAND" ->net use * \\server\share</B ->. You should -be logged in with kerberos without needing to know a password. If -this fails then run <B -CLASS="COMMAND" ->klist tickets</B ->. Did you get a ticket for the -server? Does it have an encoding type of DES-CBC-MD5 ? </P -></DIV -><DIV -CLASS="SECT1" -><HR><H2 -CLASS="SECT1" -><A -NAME="AEN2645" -></A ->15.7. Testing with smbclient</H2 -><P ->On your Samba server try to login to a Win2000 server or your Samba -server using smbclient and kerberos. Use smbclient as usual, but -specify the -k option to choose kerberos authentication.</P -></DIV -><DIV -CLASS="SECT1" -><HR><H2 -CLASS="SECT1" -><A -NAME="AEN2648" -></A ->15.8. Notes</H2 -><P ->You must change administrator password at least once after DC install, - to create the right encoding types</P -><P ->w2k doesn't seem to create the _kerberos._udp and _ldap._tcp in - their defaults DNS setup. Maybe fixed in service packs?</P -></DIV -></DIV -><DIV -CLASS="CHAPTER" -><HR><H1 -><A -NAME="IMPROVED-BROWSING" -></A ->Chapter 16. Improved browsing in samba</H1 +NAME="IMPROVED-BROWSING">Improved browsing in samba</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN2659" -></A ->16.1. Overview of browsing</H2 +NAME="AEN2577">Overview of browsing</H2 ><P >SMB networking provides a mechanism by which clients can access a list of machines in a network, a so-called "browse list". This list @@ -12533,9 +12328,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2663" -></A ->16.2. Browsing support in samba</H2 +NAME="AEN2581">Browsing support in samba</H2 ><P >Samba now fully supports browsing. The browsing is supported by nmbd and is also controlled by options in the smb.conf file (see smb.conf(5)).</P @@ -12578,9 +12371,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2672" -></A ->16.3. Problem resolution</H2 +NAME="AEN2590">Problem resolution</H2 ><P >If something doesn't work then hopefully the log.nmb file will help you track down the problem. Try a debug level of 2 or 3 for finding @@ -12612,9 +12403,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2679" -></A ->16.4. Browsing across subnets</H2 +NAME="AEN2597">Browsing across subnets</H2 ><P >With the release of Samba 1.9.17(alpha1 and above) Samba has been updated to enable it to support the replication of browse lists @@ -12643,9 +12432,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN2684" -></A ->16.4.1. How does cross subnet browsing work ?</H3 +NAME="AEN2602">How does cross subnet browsing work ?</H3 ><P >Cross subnet browsing is a complicated dance, containing multiple moving parts. It has taken Microsoft several years to get the code @@ -12655,6 +12442,12 @@ browsing when configured correctly.</P ><P >Consider a network set up as follows :</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > (DMB) @@ -12671,6 +12464,9 @@ CLASS="PROGRAMLISTING" | | | | | | | | N2_A N2_B N2_C N2_D N3_A N3_B N3_C N3_D (WINS)</PRE +></TD +></TR +></TABLE ></P ><P >Consisting of 3 subnets (1, 2, 3) connected by two routers @@ -12714,6 +12510,12 @@ called 'non-authoritative'.</P the machines you would see in your network neighborhood if you looked in it on a particular network right now).</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >Subnet Browse Master List @@ -12723,6 +12525,9 @@ Subnet1 N1_C N1_A, N1_B, N1_C, N1_D, N1_E Subnet2 N2_B N2_A, N2_B, N2_C, N2_D Subnet3 N3_D N3_A, N3_B, N3_C, N3_D</PRE +></TD +></TR +></TABLE ></P ><P >Note that at this point all the subnets are separate, no @@ -12732,7 +12537,7 @@ machine is seen across any of the subnets.</P master browser it looks for a Domain master browser to synchronize its browse list with. It does this by querying the WINS server (N2_D) for the IP address associated with the NetBIOS name -WORKGROUP>1B<. This name was registerd by the Domain master +WORKGROUP>1B<. This name was registerd by the Domain master browser (N1_C) with the WINS server as soon as it was booted.</P ><P >Once N2_B knows the address of the Domain master browser it @@ -12745,6 +12550,12 @@ the MasterAnnouncement packet it schedules a synchronization request to the sender of that packet. After both synchronizations are done the browse lists look like :</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >Subnet Browse Master List @@ -12758,6 +12569,9 @@ Subnet2 N2_B N2_A, N2_B, N2_C, N2_D Subnet3 N3_D N3_A, N3_B, N3_C, N3_D Servers with a (*) after them are non-authoritative names.</PRE +></TD +></TR +></TABLE ></P ><P >At this point users looking in their network neighborhood on @@ -12771,6 +12585,12 @@ it gets both the server entries on subnet 1, and those on subnet 2. After N3_D has synchronized with N1_C and vica-versa the browse lists look like.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >Subnet Browse Master List @@ -12787,6 +12607,9 @@ Subnet3 N3_D N3_A, N3_B, N3_C, N3_D N2_A(*), N2_B(*), N2_C(*), N2_D(*) Servers with a (*) after them are non-authoritative names.</PRE +></TD +></TR +></TABLE ></P ><P >At this point users looking in their network neighborhood on @@ -12798,6 +12621,12 @@ with the domain master browser (N1_C) and will recieve the missing server entries. Finally - and as a steady state (if no machines are removed or shut off) the browse lists will look like :</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >Subnet Browse Master List @@ -12815,6 +12644,9 @@ Subnet3 N3_D N3_A, N3_B, N3_C, N3_D N2_A(*), N2_B(*), N2_C(*), N2_D(*) Servers with a (*) after them are non-authoritative names.</PRE +></TD +></TR +></TABLE ></P ><P >Synchronizations between the domain master browser and local @@ -12855,9 +12687,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2719" -></A ->16.5. Setting up a WINS server</H2 +NAME="AEN2637">Setting up a WINS server</H2 ><P >Either a Samba machine or a Windows NT Server machine may be set up as a WINS server. To set a Samba machine to be a WINS server you must @@ -12909,10 +12739,10 @@ all smb.conf files :</P ><P ><B CLASS="COMMAND" -> wins server = >name or IP address<</B +> wins server = >name or IP address<</B ></P ><P ->where >name or IP address< is either the DNS name of the WINS server +>where >name or IP address< is either the DNS name of the WINS server machine or its IP address.</P ><P >Note that this line MUST NOT BE SET in the smb.conf file of the Samba @@ -12923,7 +12753,7 @@ CLASS="COMMAND" >" option and the "<B CLASS="COMMAND" ->wins server = >name<</B +>wins server = >name<</B >" option then nmbd will fail to start.</P ><P @@ -12938,9 +12768,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2738" -></A ->16.6. Setting up Browsing in a WORKGROUP</H2 +NAME="AEN2656">Setting up Browsing in a WORKGROUP</H2 ><P >To set up cross subnet browsing on a network containing machines in up to be in a WORKGROUP, not an NT Domain you need to set up one @@ -12968,12 +12796,21 @@ CLASS="COMMAND" browser for its own subnet. In order to achieve this set the following options in the [global] section of the smb.conf file :</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > domain master = yes local master = yes preferred master = yes os level = 65</PRE +></TD +></TR +></TABLE ></P ><P >The domain master browser may be the same machine as the WINS @@ -12987,12 +12824,21 @@ often, so it's not such a good idea to use these). To make a Samba server a local master browser set the following options in the [global] section of the smb.conf file :</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > domain master = no local master = yes preferred master = yes os level = 65</PRE +></TD +></TR +></TABLE ></P ><P >Do not do this for more than one Samba server on each subnet, @@ -13009,12 +12855,21 @@ be the local master browser then you can disable Samba from becoming a local master browser by setting the following options in the [global] section of the smb.conf file :</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > domain master = no local master = no preferred master = no os level = 0</PRE +></TD +></TR +></TABLE ></P ></DIV ><DIV @@ -13022,16 +12877,14 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2756" -></A ->16.7. Setting up Browsing in a DOMAIN</H2 +NAME="AEN2674">Setting up Browsing in a DOMAIN</H2 ><P >If you are adding Samba servers to a Windows NT Domain then you must not set up a Samba server as a domain master browser. By default, a Windows NT Primary Domain Controller for a Domain name is also the Domain master browser for that name, and many things will break if a Samba server registers the Domain master -browser NetBIOS name (DOMAIN>1B<) with WINS instead of the PDC.</P +browser NetBIOS name (DOMAIN>1B<) with WINS instead of the PDC.</P ><P >For subnets other than the one containing the Windows NT PDC you may set up Samba servers as local master browsers as @@ -13039,12 +12892,21 @@ described. To make a Samba server a local master browser set the following options in the [global] section of the smb.conf file :</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > domain master = no local master = yes preferred master = yes os level = 65</PRE +></TD +></TR +></TABLE ></P ><P >If you wish to have a Samba server fight the election with machines @@ -13073,9 +12935,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2766" -></A ->16.8. Forcing samba to be the master</H2 +NAME="AEN2684">Forcing samba to be the master</H2 ><P >Who becomes the "master browser" is determined by an election process using broadcasts. Each election packet contains a number of parameters @@ -13121,9 +12981,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2775" -></A ->16.9. Making samba the domain master</H2 +NAME="AEN2693">Making samba the domain master</H2 ><P >The domain master is responsible for collating the browse lists of multiple subnets so that browsing can occur between subnets. You can @@ -13194,9 +13052,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2793" -></A ->16.10. Note about broadcast addresses</H2 +NAME="AEN2711">Note about broadcast addresses</H2 ><P >If your network uses a "0" based broadcast address (for example if it ends in a 0) then you will strike problems. Windows for Workgroups @@ -13208,9 +13064,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2796" -></A ->16.11. Multiple interfaces</H2 +NAME="AEN2714">Multiple interfaces</H2 ><P >Samba now supports machines with multiple network interfaces. If you have multiple interfaces then you will need to use the "interfaces" @@ -13221,17 +13075,13 @@ option in smb.conf to configure them. See smb.conf(5) for details.</P CLASS="CHAPTER" ><HR><H1 ><A -NAME="SPEED" -></A ->Chapter 17. Samba performance issues</H1 +NAME="SPEED">Samba performance issues</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN2814" -></A ->17.1. Comparisons</H2 +NAME="AEN2732">Comparisons</H2 ><P >The Samba server uses TCP to talk to the client. Thus if you are trying to see if it performs well you should really compare it to @@ -13260,17 +13110,13 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2820" -></A ->17.2. Oplocks</H2 +NAME="AEN2738">Oplocks</H2 ><DIV CLASS="SECT2" ><H3 CLASS="SECT2" ><A -NAME="AEN2822" -></A ->17.2.1. Overview</H3 +NAME="AEN2740">Overview</H3 ><P >Oplocks are the way that SMB clients get permission from a server to locally cache file operations. If a server grants an oplock @@ -13304,9 +13150,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN2830" -></A ->17.2.2. Level2 Oplocks</H3 +NAME="AEN2748">Level2 Oplocks</H3 ><P >With Samba 2.0.5 a new capability - level2 (read only) oplocks is supported (although the option is off by default - see the smb.conf @@ -13328,9 +13172,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN2836" -></A ->17.2.3. Old 'fake oplocks' option - deprecated</H3 +NAME="AEN2754">Old 'fake oplocks' option - deprecated</H3 ><P >Samba can also fake oplocks, by granting a oplock whenever a client asks for one. This is controlled using the smb.conf option "fake @@ -13349,9 +13191,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2840" -></A ->17.3. Socket options</H2 +NAME="AEN2758">Socket options</H2 ><P >There are a number of socket options that can greatly affect the performance of a TCP based server like Samba.</P @@ -13377,9 +13217,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2847" -></A ->17.4. Read size</H2 +NAME="AEN2765">Read size</H2 ><P >The option "read size" affects the overlap of disk reads/writes with network reads/writes. If the amount of data being transferred in @@ -13403,9 +13241,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2852" -></A ->17.5. Max xmit</H2 +NAME="AEN2770">Max xmit</H2 ><P >At startup the client and server negotiate a "maximum transmit" size, which limits the size of nearly all SMB commands. You can set the @@ -13426,9 +13262,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2857" -></A ->17.6. Locking</H2 +NAME="AEN2775">Locking</H2 ><P >By default Samba does not implement strict locking on each read/write call (although it did in previous versions). If you enable strict @@ -13443,9 +13277,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2861" -></A ->17.7. Share modes</H2 +NAME="AEN2779">Share modes</H2 ><P >Some people find that opening files is very slow. This is often because of the "share modes" code needed to fully implement the dos @@ -13473,9 +13305,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2866" -></A ->17.8. Log level</H2 +NAME="AEN2784">Log level</H2 ><P >If you set the log level (also known as "debug level") higher than 2 then you may suffer a large drop in performance. This is because the @@ -13487,9 +13317,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2869" -></A ->17.9. Wide lines</H2 +NAME="AEN2787">Wide lines</H2 ><P >The "wide links" option is now enabled by default, but if you disable it (for better security) then you may suffer a performance hit in @@ -13501,9 +13329,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2872" -></A ->17.10. Read raw</H2 +NAME="AEN2790">Read raw</H2 ><P >The "read raw" operation is designed to be an optimised, low-latency file read operation. A server may choose to not support it, @@ -13523,9 +13349,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2877" -></A ->17.11. Write raw</H2 +NAME="AEN2795">Write raw</H2 ><P >The "write raw" operation is designed to be an optimised, low-latency file write operation. A server may choose to not support it, @@ -13540,9 +13364,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2881" -></A ->17.12. Read prediction</H2 +NAME="AEN2799">Read prediction</H2 ><P >Samba can do read prediction on some of the SMB commands. Read prediction means that Samba reads some extra data on the last file it @@ -13566,9 +13388,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2888" -></A ->17.13. Memory mapping</H2 +NAME="AEN2806">Memory mapping</H2 ><P >Samba supports reading files via memory mapping them. One some machines this can give a large boost to performance, on others it @@ -13587,9 +13407,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2893" -></A ->17.14. Slow Clients</H2 +NAME="AEN2811">Slow Clients</H2 ><P >One person has reported that setting the protocol to COREPLUS rather than LANMAN2 gave a dramatic speed improvement (from 10k/s to 150k/s).</P @@ -13604,9 +13422,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2897" -></A ->17.15. Slow Logins</H2 +NAME="AEN2815">Slow Logins</H2 ><P >Slow logins are almost always due to the password checking time. Using the lowest practical "password level" will improve things a lot. You @@ -13617,9 +13433,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2900" -></A ->17.16. Client tuning</H2 +NAME="AEN2818">Client tuning</H2 ><P >Often a speed problem can be traced to the client. The client (for example Windows for Workgroups) can often be tuned for better TCP @@ -13721,9 +13535,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2932" -></A ->17.17. My Results</H2 +NAME="AEN2850">My Results</H2 ><P >Some people want to see real numbers in a document like this, so here they are. I have a 486sx33 client running WfWg 3.11 with the 3.11b @@ -13750,9 +13562,7 @@ here someday ...</P CLASS="CHAPTER" ><HR><H1 ><A -NAME="OTHER-CLIENTS" -></A ->Chapter 18. Samba and other CIFS clients</H1 +NAME="OTHER-CLIENTS">Samba and other CIFS clients</H1 ><P >This chapter contains client-specific information.</P ><DIV @@ -13760,9 +13570,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2953" -></A ->18.1. Macintosh clients?</H2 +NAME="AEN2871">Macintosh clients?</H2 ><P >Yes. <A HREF="http://www.thursby.com/" @@ -13806,17 +13614,13 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN2962" -></A ->18.2. OS2 Client</H2 +NAME="AEN2880">OS2 Client</H2 ><DIV CLASS="SECT2" ><H3 CLASS="SECT2" ><A -NAME="AEN2964" -></A ->18.2.1. How can I configure OS/2 Warp Connect or +NAME="AEN2882">How can I configure OS/2 Warp Connect or OS/2 Warp 4 as a client for Samba?</H3 ><P >A more complete answer to this question can be @@ -13873,9 +13677,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN2979" -></A ->18.2.2. How can I configure OS/2 Warp 3 (not Connect), +NAME="AEN2897">How can I configure OS/2 Warp 3 (not Connect), OS/2 1.2, 1.3 or 2.x for Samba?</H3 ><P >You can use the free Microsoft LAN Manager 2.2c Client @@ -13894,12 +13696,21 @@ TARGET="_top" a nutshell, edit the file \OS2VER in the root directory of the OS/2 boot partition and add the lines:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > 20=setup.exe 20=netwksta.sys 20=netvdd.sys </PRE +></TD +></TR +></TABLE ></P ><P >before you install the client. Also, don't use the @@ -13917,9 +13728,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN2988" -></A ->18.2.3. Are there any other issues when OS/2 (any version) +NAME="AEN2906">Are there any other issues when OS/2 (any version) is used as a client?</H3 ><P >When you do a NET VIEW or use the "File and Print @@ -13939,9 +13748,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN2992" -></A ->18.2.4. How do I get printer driver download working +NAME="AEN2910">How do I get printer driver download working for OS/2 clients?</H3 ><P >First, create a share called [PRINTDRV] that is @@ -13990,17 +13797,13 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN3002" -></A ->18.3. Windows for Workgroups</H2 +NAME="AEN2920">Windows for Workgroups</H2 ><DIV CLASS="SECT2" ><H3 CLASS="SECT2" ><A -NAME="AEN3004" -></A ->18.3.1. Use latest TCP/IP stack from Microsoft</H3 +NAME="AEN2922">Use latest TCP/IP stack from Microsoft</H3 ><P >Use the latest TCP/IP stack from microsoft if you use Windows for workgroups.</P @@ -14020,9 +13823,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN3009" -></A ->18.3.2. Delete .pwl files after password change</H3 +NAME="AEN2927">Delete .pwl files after password change</H3 ><P >WfWg does a lousy job with passwords. I find that if I change my password on either the unix box or the PC the safest thing to do is to @@ -14040,9 +13841,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN3014" -></A ->18.3.3. Configure WfW password handling</H3 +NAME="AEN2932">Configure WfW password handling</H3 ><P >There is a program call admincfg.exe on the last disk (disk 8) of the WFW 3.11 disk set. To install it @@ -14059,9 +13858,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN3018" -></A ->18.3.4. Case handling of passwords</H3 +NAME="AEN2936">Case handling of passwords</H3 ><P >Windows for Workgroups uppercases the password before sending it to the server. Unix passwords can be case-sensitive though. Check the <A HREF="smb.conf.5.html" @@ -14078,9 +13875,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN3023" -></A ->18.4. Windows '95/'98</H2 +NAME="AEN2941">Windows '95/'98</H2 ><P >When using Windows 95 OEM SR2 the following updates are recommended where Samba is being used. Please NOTE that the above change will affect you once these @@ -14126,9 +13921,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN3039" -></A ->18.5. Windows 2000 Service Pack 2</H2 +NAME="AEN2957">Windows 2000 Service Pack 2</H2 ><P > There are several annoyances with Windows 2000 SP2. One of which @@ -14164,6 +13957,12 @@ releases prior to Samba 2.2.2.</P > The following is a minimal profile share:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > [profile] @@ -14172,6 +13971,9 @@ CLASS="PROGRAMLISTING" directory mask = 0700 nt acl support = no read only = no</PRE +></TD +></TR +></TABLE ></P ><P >The reason for this bug is that the Win2k SP2 client copies @@ -14194,13 +13996,10 @@ CLASS="COMMAND" >DOMAIN\user "Full Control"</B ></P ><P -><SPAN -CLASS="emphasis" ><I CLASS="EMPHASIS" >NOTE : This bug does not occur when using winbind to create accounts on the Samba host for Domain users.</I -></SPAN ></P ></DIV ></DIV @@ -14208,17 +14007,13 @@ create accounts on the Samba host for Domain users.</I CLASS="CHAPTER" ><HR><H1 ><A -NAME="CVS-ACCESS" -></A ->Chapter 19. HOWTO Access Samba source code via CVS</H1 +NAME="CVS-ACCESS">HOWTO Access Samba source code via CVS</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN3063" -></A ->19.1. Introduction</H2 +NAME="AEN2981">Introduction</H2 ><P >Samba is developed in an open environment. Developers use CVS (Concurrent Versioning System) to "checkin" (also known as @@ -14238,9 +14033,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN3068" -></A ->19.2. CVS Access to samba.org</H2 +NAME="AEN2986">CVS Access to samba.org</H2 ><P >The machine samba.org runs a publicly accessible CVS repository for access to the source code of several packages, @@ -14251,9 +14044,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN3071" -></A ->19.2.1. Access via CVSweb</H3 +NAME="AEN2989">Access via CVSweb</H3 ><P >You can access the source code via your favourite WWW browser. This allows you to access the contents of @@ -14272,9 +14063,7 @@ CLASS="SECT2" ><HR><H3 CLASS="SECT2" ><A -NAME="AEN3076" -></A ->19.2.2. Access via cvs</H3 +NAME="AEN2994">Access via cvs</H3 ><P >You can also access the source code via a normal cvs client. This gives you much more control over you can @@ -14380,17 +14169,13 @@ CLASS="COMMAND" CLASS="CHAPTER" ><HR><H1 ><A -NAME="BUGREPORT" -></A ->Chapter 20. Reporting Bugs</H1 +NAME="BUGREPORT">Reporting Bugs</H1 ><DIV CLASS="SECT1" ><H2 CLASS="SECT1" ><A -NAME="AEN3111" -></A ->20.1. Introduction</H2 +NAME="AEN3029">Introduction</H2 ><P >The email address for bug reports is samba@samba.org</P ><P @@ -14420,9 +14205,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN3118" -></A ->20.2. General info</H2 +NAME="AEN3036">General info</H2 ><P >Before submitting a bug report check your config for silly errors. Look in your log files for obvious messages that tell you that @@ -14445,9 +14228,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN3124" -></A ->20.3. Debug levels</H2 +NAME="AEN3042">Debug levels</H2 ><P >If the bug has anything to do with Samba behaving incorrectly as a server (like refusing to open a file) then the log files will probably @@ -14466,11 +14247,20 @@ CLASS="FILENAME" level higher for just one machine and keep separate logs for each machine. To do this use:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >log level = 10 log file = /usr/local/samba/lib/log.%m include = /usr/local/samba/lib/smb.conf.%m</PRE +></TD +></TR +></TABLE ></P ><P >then create a file @@ -14515,9 +14305,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN3141" -></A ->20.4. Internal errors</H2 +NAME="AEN3059">Internal errors</H2 ><P >If you get a "INTERNAL ERROR" message in your log files it means that Samba got an unexpected signal while running. It is probably a @@ -14559,9 +14347,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN3151" -></A ->20.5. Attaching to a running process</H2 +NAME="AEN3069">Attaching to a running process</H2 ><P >Unfortunately some unixes (in particular some recent linux kernels) refuse to dump a core file if the task has changed uid (which smbd @@ -14576,9 +14362,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN3154" -></A ->20.6. Patches</H2 +NAME="AEN3072">Patches</H2 ><P >The best sort of bug report is one that includes a fix! If you send us patches please use <B @@ -14597,9 +14381,7 @@ exactly what version you used. </P CLASS="CHAPTER" ><HR><H1 ><A -NAME="GROUPMAPPING" -></A ->Chapter 21. Group mapping HOWTO</H1 +NAME="GROUPMAPPING">Group mapping HOWTO</H1 ><P > Starting with Samba 3.0 alpha 2, a new group mapping function is available. The @@ -14655,9 +14437,18 @@ CLASS="FILENAME" >/etc/group</TT > will look like:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >domadm:x:502:joe,john,mary</PRE +></TD +></TR +></TABLE ></P ></LI ><LI @@ -14698,9 +14489,7 @@ CLASS="COMMAND" CLASS="CHAPTER" ><HR><H1 ><A -NAME="PORTABILITY" -></A ->Chapter 22. Portability</H1 +NAME="PORTABILITY">Portability</H1 ><P >Samba works on a wide range of platforms but the interface all the platforms provide is not always compatible. This chapter contains @@ -14710,9 +14499,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN3201" -></A ->22.1. HPUX</H2 +NAME="AEN3119">HPUX</H2 ><P >HP's implementation of supplementary groups is, er, non-standard (for hysterical reasons). There are two group files, /etc/group and @@ -14736,9 +14523,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN3206" -></A ->22.2. SCO Unix</H2 +NAME="AEN3124">SCO Unix</H2 ><P > If you run an old version of SCO Unix then you may need to get important @@ -14753,9 +14538,7 @@ CLASS="SECT1" ><HR><H2 CLASS="SECT1" ><A -NAME="AEN3210" -></A ->22.3. DNIX</H2 +NAME="AEN3128">DNIX</H2 ><P >DNIX has a problem with seteuid() and setegid(). These routines are needed for Samba to work correctly, but they were left out of the DNIX @@ -14776,6 +14559,12 @@ CLASS="FILENAME" >setegid.s</TT >:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > .globl _setegid @@ -14790,6 +14579,9 @@ _setegid: 1$: clrl d0 rts</PRE +></TD +></TR +></TABLE ></P ><P >put this in the file <TT @@ -14797,6 +14589,12 @@ CLASS="FILENAME" >seteuid.s</TT >:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > .globl _seteuid @@ -14811,6 +14609,9 @@ _seteuid: 1$: clrl d0 rts</PRE +></TD +></TR +></TABLE ></P ><P >after creating the above files you then assemble them using</P @@ -14837,17 +14638,35 @@ CLASS="FILENAME" >then you need to add these to the LIBSM line in the DNIX section of the Samba Makefile. Your LIBSM line will then look something like this:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >LIBSM = setegid.o seteuid.o -ln</PRE +></TD +></TR +></TABLE ></P ><P > You should then remove the line:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >#define NO_EID</PRE +></TD +></TR +></TABLE ></P ><P >from the DNIX section of <TT diff --git a/docs/htmldocs/samba-ldap-howto.html b/docs/htmldocs/Samba-LDAP-HOWTO.html index 895fcda3c4..21ebbfe7b0 100644 --- a/docs/htmldocs/samba-ldap-howto.html +++ b/docs/htmldocs/Samba-LDAP-HOWTO.html @@ -1,85 +1,36 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Storing Samba's User/Machine Account information in an LDAP Directory</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="How to Act as a Backup Domain Controller in a Purely Samba Controlled Domain" -HREF="samba-bdc.html"><LINK -REL="NEXT" -TITLE="Using samba 3.0 with ActiveDirectory support" -HREF="ads.html"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY -CLASS="CHAPTER" +CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="samba-bdc.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="ads.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV +CLASS="ARTICLE" ><DIV -CLASS="CHAPTER" +CLASS="TITLEPAGE" ><H1 +CLASS="TITLE" ><A NAME="SAMBA-LDAP-HOWTO" -></A ->Chapter 14. Storing Samba's User/Machine Account information in an LDAP Directory</H1 +>Storing Samba's User/Machine Account information in an LDAP Directory</A +></H1 +><HR></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN2353" -></A ->14.1. Purpose</H1 +NAME="AEN3" +>Purpose</A +></H1 ><P >This document describes how to use an LDAP directory for storing Samba user account information traditionally stored in the smbpasswd(5) file. It is @@ -142,12 +93,12 @@ TARGET="_top" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2373" -></A ->14.2. Introduction</H1 +NAME="AEN23" +>Introduction</A +></H1 ><P >Traditionally, when configuring <A HREF="smb.conf.5.html#ENCRYPTPASSWORDS" @@ -259,12 +210,12 @@ the details of configuring these packages are beyond the scope of this document. ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2402" -></A ->14.3. Supported LDAP Servers</H1 +NAME="AEN52" +>Supported LDAP Servers</A +></H1 ><P >The LDAP samdb code in 2.2.3 has been developed and tested using the OpenLDAP 2.0 server and client libraries. The same code should be able to work with @@ -284,12 +235,12 @@ TARGET="_top" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2407" -></A ->14.4. Schema and Relationship to the RFC 2307 posixAccount</H1 +NAME="AEN57" +>Schema and Relationship to the RFC 2307 posixAccount</A +></H1 ><P >Samba 2.2.3 includes the necessary schema file for OpenLDAP 2.0 in <TT @@ -343,20 +294,20 @@ information in NIS while the network is transitioning to a full LDAP infrastruct ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2419" -></A ->14.5. Configuring Samba with LDAP</H1 +NAME="AEN69" +>Configuring Samba with LDAP</A +></H1 ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN2421" -></A ->14.5.1. OpenLDAP configuration</H2 +NAME="AEN71" +>OpenLDAP configuration</A +></H2 ><P >To include support for the sambaAccount object in an OpenLDAP directory server, first copy the samba.schema file to slapd's configuration directory.</P @@ -433,12 +384,12 @@ index rid eq ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN2438" -></A ->14.5.2. Configuring Samba</H2 +NAME="AEN88" +>Configuring Samba</A +></H2 ><P >The following parameters are available in smb.conf only with <TT CLASS="PARAMETER" @@ -553,12 +504,12 @@ CLASS="REPLACEABLE" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2466" -></A ->14.6. Accounts and Groups management</H1 +NAME="AEN116" +>Accounts and Groups management</A +></H1 ><P >As users accounts are managed thru the sambaAccount objectclass, you should modify you existing administration tools to deal with sambaAccount attributes.</P @@ -578,12 +529,12 @@ groups).</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2471" -></A ->14.7. Security and sambaAccount</H1 +NAME="AEN121" +>Security and sambaAccount</A +></H1 ><P >There are two important points to remember when discussing the security of sambaAccount entries in the directory.</P @@ -592,23 +543,17 @@ of sambaAccount entries in the directory.</P ><UL ><LI ><P -><SPAN -CLASS="emphasis" ><I CLASS="EMPHASIS" >Never</I -></SPAN > retrieve the lmPassword or ntPassword attribute values over an unencrypted LDAP session.</P ></LI ><LI ><P -><SPAN -CLASS="emphasis" ><I CLASS="EMPHASIS" >Never</I -></SPAN > allow non-admin users to view the lmPassword or ntPassword attribute values.</P ></LI @@ -657,12 +602,12 @@ access to attrs=lmPassword,ntPassword ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2491" -></A ->14.8. LDAP specials attributes for sambaAccounts</H1 +NAME="AEN141" +>LDAP specials attributes for sambaAccounts</A +></H1 ><P >The sambaAccount objectclass is composed of the following attributes:</P ><P @@ -868,12 +813,12 @@ something other than the default (e.g. \\MOBY\becky).</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2561" -></A ->14.9. Example LDIF Entries for a sambaAccount</H1 +NAME="AEN211" +>Example LDIF Entries for a sambaAccount</A +></H1 ><P >The following is a working LDIF with the inclusion of the posixAccount objectclass:</P ><P @@ -926,12 +871,12 @@ ntPassword: 878D8014606CDA29677A44EFA1353FC7</PRE ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2569" -></A ->14.10. Comments</H1 +NAME="AEN219" +>Comments</A +></H1 ><P >Please mail all comments regarding this HOWTO to <A HREF="mailto:jerry@samba.org" @@ -941,64 +886,6 @@ TARGET="_top" last updated to reflect the Samba 2.2.3 release. </P ></DIV ></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="samba-bdc.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="ads.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->How to Act as a Backup Domain Controller in a Purely Samba Controlled Domain</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Using samba 3.0 with ActiveDirectory support</TD -></TR -></TABLE -></DIV ></BODY ></HTML >
\ No newline at end of file diff --git a/docs/htmldocs/speed.html b/docs/htmldocs/Speed.html index c3d7017914..47a8c885b6 100644 --- a/docs/htmldocs/speed.html +++ b/docs/htmldocs/Speed.html @@ -1,85 +1,36 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Samba performance issues</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="Improved browsing in samba" -HREF="improved-browsing.html"><LINK -REL="NEXT" -TITLE="Samba and other CIFS clients" -HREF="other-clients.html"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY -CLASS="CHAPTER" +CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="improved-browsing.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="other-clients.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV +CLASS="ARTICLE" ><DIV -CLASS="CHAPTER" +CLASS="TITLEPAGE" ><H1 +CLASS="TITLE" ><A NAME="SPEED" -></A ->Chapter 17. Samba performance issues</H1 +>Samba performance issues</A +></H1 +><HR></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN2814" -></A ->17.1. Comparisons</H1 +NAME="AEN3" +>Comparisons</A +></H1 ><P >The Samba server uses TCP to talk to the client. Thus if you are trying to see if it performs well you should really compare it to @@ -105,20 +56,20 @@ systems.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2820" -></A ->17.2. Oplocks</H1 +NAME="AEN9" +>Oplocks</A +></H1 ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN2822" -></A ->17.2.1. Overview</H2 +NAME="AEN11" +>Overview</A +></H2 ><P >Oplocks are the way that SMB clients get permission from a server to locally cache file operations. If a server grants an oplock @@ -149,12 +100,12 @@ code did follows.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN2830" -></A ->17.2.2. Level2 Oplocks</H2 +NAME="AEN19" +>Level2 Oplocks</A +></H2 ><P >With Samba 2.0.5 a new capability - level2 (read only) oplocks is supported (although the option is off by default - see the smb.conf @@ -173,12 +124,12 @@ read-ahread cache copies of these files.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN2836" -></A ->17.2.3. Old 'fake oplocks' option - deprecated</H2 +NAME="AEN25" +>Old 'fake oplocks' option - deprecated</A +></H2 ><P >Samba can also fake oplocks, by granting a oplock whenever a client asks for one. This is controlled using the smb.conf option "fake @@ -194,12 +145,12 @@ at the same time you can get data corruption.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2840" -></A ->17.3. Socket options</H1 +NAME="AEN29" +>Socket options</A +></H1 ><P >There are a number of socket options that can greatly affect the performance of a TCP based server like Samba.</P @@ -222,12 +173,12 @@ Microsoft TCP/IP stack is slow in sending tcp ACKs.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2847" -></A ->17.4. Read size</H1 +NAME="AEN36" +>Read size</A +></H1 ><P >The option "read size" affects the overlap of disk reads/writes with network reads/writes. If the amount of data being transferred in @@ -248,12 +199,12 @@ pointless and will cause you to allocate memory unnecessarily.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2852" -></A ->17.5. Max xmit</H1 +NAME="AEN41" +>Max xmit</A +></H1 ><P >At startup the client and server negotiate a "maximum transmit" size, which limits the size of nearly all SMB commands. You can set the @@ -271,12 +222,12 @@ of less than 2048 is likely to cause severe problems.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2857" -></A ->17.6. Locking</H1 +NAME="AEN46" +>Locking</A +></H1 ><P >By default Samba does not implement strict locking on each read/write call (although it did in previous versions). If you enable strict @@ -288,12 +239,12 @@ filesystems, but could be quite high even on local disks.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2861" -></A ->17.7. Share modes</H1 +NAME="AEN50" +>Share modes</A +></H1 ><P >Some people find that opening files is very slow. This is often because of the "share modes" code needed to fully implement the dos @@ -318,12 +269,12 @@ things much faster. See the Makefile for how to enable this.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2866" -></A ->17.8. Log level</H1 +NAME="AEN55" +>Log level</A +></H1 ><P >If you set the log level (also known as "debug level") higher than 2 then you may suffer a large drop in performance. This is because the @@ -332,12 +283,12 @@ expensive. </P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2869" -></A ->17.9. Wide lines</H1 +NAME="AEN58" +>Wide lines</A +></H1 ><P >The "wide links" option is now enabled by default, but if you disable it (for better security) then you may suffer a performance hit in @@ -346,12 +297,12 @@ resolving filenames. The performance loss is lessened if you have ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2872" -></A ->17.10. Read raw</H1 +NAME="AEN61" +>Read raw</A +></H1 ><P >The "read raw" operation is designed to be an optimised, low-latency file read operation. A server may choose to not support it, @@ -368,12 +319,12 @@ testing can really tell.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2877" -></A ->17.11. Write raw</H1 +NAME="AEN66" +>Write raw</A +></H1 ><P >The "write raw" operation is designed to be an optimised, low-latency file write operation. A server may choose to not support it, @@ -385,12 +336,12 @@ case you may wish to change this option.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2881" -></A ->17.12. Read prediction</H1 +NAME="AEN70" +>Read prediction</A +></H1 ><P >Samba can do read prediction on some of the SMB commands. Read prediction means that Samba reads some extra data on the last file it @@ -411,12 +362,12 @@ as "Write" under NT) which do lots of very small reads on a file.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2888" -></A ->17.13. Memory mapping</H1 +NAME="AEN77" +>Memory mapping</A +></H1 ><P >Samba supports reading files via memory mapping them. One some machines this can give a large boost to performance, on others it @@ -432,12 +383,12 @@ no".</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2893" -></A ->17.14. Slow Clients</H1 +NAME="AEN82" +>Slow Clients</A +></H1 ><P >One person has reported that setting the protocol to COREPLUS rather than LANMAN2 gave a dramatic speed improvement (from 10k/s to 150k/s).</P @@ -449,12 +400,12 @@ protocol. Lowering the "read size" might also help.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2897" -></A ->17.15. Slow Logins</H1 +NAME="AEN86" +>Slow Logins</A +></H1 ><P >Slow logins are almost always due to the password checking time. Using the lowest practical "password level" will improve things a lot. You @@ -462,12 +413,12 @@ could also enable the "UFC crypt" option in the Makefile.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2900" -></A ->17.16. Client tuning</H1 +NAME="AEN89" +>Client tuning</A +></H1 ><P >Often a speed problem can be traced to the client. The client (for example Windows for Workgroups) can often be tuned for better TCP @@ -566,12 +517,12 @@ staggering.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN2932" -></A ->17.17. My Results</H1 +NAME="AEN121" +>My Results</A +></H1 ><P >Some people want to see real numbers in a document like this, so here they are. I have a 486sx33 client running WfWg 3.11 with the 3.11b @@ -594,64 +545,6 @@ smbclient running on another linux box. Maybe I'll add those results here someday ...</P ></DIV ></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="improved-browsing.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="other-clients.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Improved browsing in samba</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Samba and other CIFS clients</TD -></TR -></TABLE -></DIV ></BODY ></HTML >
\ No newline at end of file diff --git a/docs/htmldocs/install.html b/docs/htmldocs/UNIX_INSTALL.html index 4b5bf486b9..9946e7e64e 100644 --- a/docs/htmldocs/install.html +++ b/docs/htmldocs/UNIX_INSTALL.html @@ -1,85 +1,36 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >How to Install and Test SAMBA</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="NEXT" -TITLE="Diagnosing your samba server" -HREF="diagnosis.html"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY -CLASS="CHAPTER" +CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="diagnosis.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV +CLASS="ARTICLE" ><DIV -CLASS="CHAPTER" +CLASS="TITLEPAGE" ><H1 +CLASS="TITLE" ><A NAME="INSTALL" -></A ->Chapter 1. How to Install and Test SAMBA</H1 +>How to Install and Test SAMBA</A +></H1 +><HR></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN20" -></A ->1.1. Step 0: Read the man pages</H1 +NAME="AEN3" +>Step 0: Read the man pages</A +></H1 ><P >The man pages distributed with SAMBA contain lots of useful info that will help to get you started. @@ -106,12 +57,12 @@ TARGET="_top" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN28" -></A ->1.2. Step 1: Building the Binaries</H1 +NAME="AEN11" +>Step 1: Building the Binaries</A +></H1 ><P >To do this, first run the program <B CLASS="COMMAND" @@ -205,12 +156,12 @@ CLASS="USERINPUT" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN56" -></A ->1.3. Step 2: The all important step</H1 +NAME="AEN39" +>Step 2: The all important step</A +></H1 ><P >At this stage you must fetch yourself a coffee or other drink you find stimulating. Getting the rest @@ -222,12 +173,12 @@ NAME="AEN56" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN60" -></A ->1.4. Step 3: Create the smb configuration file.</H1 +NAME="AEN43" +>Step 3: Create the smb configuration file.</A +></H1 ><P >There are sample configuration files in the examples subdirectory in the distribution. I suggest you read them @@ -278,15 +229,15 @@ CLASS="FILENAME" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN74" -></A ->1.5. Step 4: Test your config file with +NAME="AEN57" +>Step 4: Test your config file with <B CLASS="COMMAND" >testparm</B +></A ></H1 ><P >It's important that you test the validity of your @@ -302,12 +253,12 @@ CLASS="FILENAME" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN80" -></A ->1.6. Step 5: Starting the smbd and nmbd</H1 +NAME="AEN63" +>Step 5: Starting the smbd and nmbd</A +></H1 ><P >You must choose to start smbd and nmbd either as daemons or from <B @@ -342,12 +293,12 @@ CLASS="COMMAND" request.</P ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN90" -></A ->1.6.1. Step 5a: Starting from inetd.conf</H2 +NAME="AEN73" +>Step 5a: Starting from inetd.conf</A +></H2 ><P >NOTE; The following will be different if you use NIS or NIS+ to distributed services maps.</P @@ -446,12 +397,12 @@ CLASS="COMMAND" ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN119" -></A ->1.6.2. Step 5b. Alternative: starting it as a daemon</H2 +NAME="AEN102" +>Step 5b. Alternative: starting it as a daemon</A +></H2 ><P >To start the server as a daemon you should create a script something like this one, perhaps calling @@ -503,13 +454,13 @@ CLASS="FILENAME" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN135" -></A ->1.7. Step 6: Try listing the shares available on your - server</H1 +NAME="AEN118" +>Step 6: Try listing the shares available on your + server</A +></H1 ><P ><TT CLASS="PROMPT" @@ -544,12 +495,12 @@ CLASS="COMMAND" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN144" -></A ->1.8. Step 7: Try connecting with the unix client</H1 +NAME="AEN127" +>Step 7: Try connecting with the unix client</A +></H1 ><P ><TT CLASS="PROMPT" @@ -607,13 +558,13 @@ CLASS="USERINPUT" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN160" -></A ->1.9. Step 8: Try connecting from a DOS, WfWg, Win9x, WinNT, - Win2k, OS/2, etc... client</H1 +NAME="AEN143" +>Step 8: Try connecting from a DOS, WfWg, Win9x, WinNT, + Win2k, OS/2, etc... client</A +></H1 ><P >Try mounting disks. eg:</P ><P @@ -656,12 +607,12 @@ CLASS="USERINPUT" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN174" -></A ->1.10. What If Things Don't Work?</H1 +NAME="AEN157" +>What If Things Don't Work?</A +></H1 ><P >If nothing works and you start to think "who wrote this pile of trash" then I suggest you do step 2 again (and @@ -679,12 +630,12 @@ NAME="AEN174" easier. </P ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN179" -></A ->1.10.1. Diagnosing Problems</H2 +NAME="AEN162" +>Diagnosing Problems</A +></H2 ><P >If you have installation problems then go to <TT @@ -695,12 +646,12 @@ CLASS="FILENAME" ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN183" -></A ->1.10.2. Scope IDs</H2 +NAME="AEN166" +>Scope IDs</A +></H2 ><P >By default Samba uses a blank scope ID. This means all your windows boxes must also have a blank scope ID. @@ -711,12 +662,12 @@ NAME="AEN183" ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN186" -></A ->1.10.3. Choosing the Protocol Level</H2 +NAME="AEN169" +>Choosing the Protocol Level</A +></H2 ><P >The SMB protocol has many dialects. Currently Samba supports 5, called CORE, COREPLUS, LANMAN1, @@ -752,33 +703,30 @@ CLASS="FILENAME" ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN195" -></A ->1.10.4. Printing from UNIX to a Client PC</H2 +NAME="AEN178" +>Printing from UNIX to a Client PC</A +></H2 ><P >To use a printer that is available via a smb-based - server from a unix host with LPR you will need to compile the + server from a unix host you will need to compile the smbclient program. You then need to install the script "smbprint". Read the instruction in smbprint for more details. </P ><P >There is also a SYSV style script that does much the same thing called smbprint.sysv. It contains instructions.</P -><P ->See the CUPS manual for information about setting up - printing from a unix host with CUPS to a smb-based server. </P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN200" -></A ->1.10.5. Locking</H2 +NAME="AEN182" +>Locking</A +></H2 ><P >One area which sometimes causes trouble is locking.</P ><P @@ -833,12 +781,12 @@ NAME="AEN200" ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN209" -></A ->1.10.6. Mapping Usernames</H2 +NAME="AEN191" +>Mapping Usernames</A +></H2 ><P >If you have different usernames on the PCs and the unix server then take a look at the "username map" option. @@ -846,64 +794,6 @@ NAME="AEN209" ></DIV ></DIV ></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="diagnosis.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->SAMBA Project Documentation</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Diagnosing your samba server</TD -></TR -></TABLE -></DIV ></BODY ></HTML >
\ No newline at end of file diff --git a/docs/htmldocs/findsmb.1.html b/docs/htmldocs/findsmb.1.html index 08fffb47b6..2f246d666d 100644 --- a/docs/htmldocs/findsmb.1.html +++ b/docs/htmldocs/findsmb.1.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >findsmb</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="FINDSMB" -></A ->findsmb</H1 +>findsmb</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -109,7 +108,7 @@ CLASS="COMMAND" <TT CLASS="CONSTANT" >-B</TT -> option.</P +> option</P ></DD ></DL ></DIV @@ -157,7 +156,7 @@ CLASS="COMMAND" get proper responses from Windows 95 and Windows 98 machines, the command must be run as root. </P ><P ->For example, running <B +>For example running <B CLASS="COMMAND" >findsmb</B > on a machine @@ -166,6 +165,12 @@ CLASS="COMMAND" >nmbd</B > running would yield output similar to the following</P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="SCREEN" ><TT @@ -184,6 +189,9 @@ CLASS="COMPUTEROUTPUT" 192.168.35.97 HERBNT1 *[HERB-NT] [Windows NT 4.0] [NT LAN Manager 4.0] </TT ></PRE +></TD +></TR +></TABLE ></DIV ><DIV CLASS="REFSECT1" diff --git a/docs/htmldocs/groupmapping.html b/docs/htmldocs/groupmapping.html deleted file mode 100644 index be308505bd..0000000000 --- a/docs/htmldocs/groupmapping.html +++ /dev/null @@ -1,229 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<HTML -><HEAD -><TITLE ->Group mapping HOWTO</TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="Reporting Bugs" -HREF="bugreport.html"><LINK -REL="NEXT" -TITLE="Portability" -HREF="portability.html"></HEAD -><BODY -CLASS="CHAPTER" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" -><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="bugreport.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="portability.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><DIV -CLASS="CHAPTER" -><H1 -><A -NAME="GROUPMAPPING" -></A ->Chapter 21. Group mapping HOWTO</H1 -><P -> -Starting with Samba 3.0 alpha 2, a new group mapping function is available. The -current method (likely to change) to manage the groups is a new command called -<B -CLASS="COMMAND" ->smbgroupedit</B ->.</P -><P ->The first immediate reason to use the group mapping on a PDC, is that -the <B -CLASS="COMMAND" ->domain admin group</B -> of <TT -CLASS="FILENAME" ->smb.conf</TT -> is -now gone. This parameter was used to give the listed users local admin rights -on their workstations. It was some magic stuff that simply worked but didn't -scale very well for complex setups.</P -><P ->Let me explain how it works on NT/W2K, to have this magic fade away. -When installing NT/W2K on a computer, the installer program creates some users -and groups. Notably the 'Administrators' group, and gives to that group some -privileges like the ability to change the date and time or to kill any process -(or close too) running on the local machine. The 'Administrator' user is a -member of the 'Administrators' group, and thus 'inherit' the 'Administrators' -group privileges. If a 'joe' user is created and become a member of the -'Administrator' group, 'joe' has exactly the same rights as 'Administrator'.</P -><P ->When a NT/W2K machine is joined to a domain, during that phase, the "Domain -Administrators' group of the PDC is added to the 'Administrators' group of the -workstation. Every members of the 'Domain Administrators' group 'inherit' the -rights of the 'Administrators' group when logging on the workstation.</P -><P ->You are now wondering how to make some of your samba PDC users members of the -'Domain Administrators' ? That's really easy.</P -><P -></P -><OL -TYPE="1" -><LI -><P ->create a unix group (usually in <TT -CLASS="FILENAME" ->/etc/group</TT ->), let's call it domadm</P -></LI -><LI -><P ->add to this group the users that must be Administrators. For example if you want joe,john and mary, your entry in <TT -CLASS="FILENAME" ->/etc/group</TT -> will look like:</P -><P -><PRE -CLASS="PROGRAMLISTING" ->domadm:x:502:joe,john,mary</PRE -></P -></LI -><LI -><P ->Map this domadm group to the <B -CLASS="COMMAND" ->domain admins</B -> group by running the command:</P -><P -><B -CLASS="COMMAND" ->smbgroupedit -c "Domain Admins" -u domadm</B -></P -></LI -></OL -><P ->You're set, joe, john and mary are domain administrators !</P -><P ->Like the Domain Admins group, you can map any arbitrary Unix group to any NT -group. You can also make any Unix group a domain group. For example, on a domain -member machine (an NT/W2K or a samba server running winbind), you would like to -give access to a certain directory to some users who are member of a group on -your samba PDC. Flag that group as a domain group by running:</P -><P -><B -CLASS="COMMAND" ->smbgroupedit -a unixgroup -td</B -></P -><P ->You can list the various groups in the mapping database like this</P -><P -><B -CLASS="COMMAND" ->smbgroupedit -v</B -></P -></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="bugreport.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="portability.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Reporting Bugs</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Portability</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file diff --git a/docs/htmldocs/lmhosts.5.html b/docs/htmldocs/lmhosts.5.html index 4d7f11e64b..13b162ce44 100644 --- a/docs/htmldocs/lmhosts.5.html +++ b/docs/htmldocs/lmhosts.5.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >lmhosts</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="LMHOSTS" -></A ->lmhosts</H1 +>lmhosts</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -60,13 +59,9 @@ TARGET="_top" ><TT CLASS="FILENAME" >lmhosts</TT -> is the <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" +> is the <EM >Samba - </I -></SPAN + </EM > NetBIOS name to IP address mapping file. It is very similar to the <TT CLASS="FILENAME" @@ -109,6 +104,12 @@ NAME="AEN20" ><P >An example follows :</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" ># @@ -118,6 +119,9 @@ CLASS="PROGRAMLISTING" 192.9.200.20 NTSERVER#20 192.9.200.21 SAMBASERVER </PRE +></TD +></TR +></TABLE ></P ><P >Contains three IP to NetBIOS name mappings. The first diff --git a/docs/htmldocs/make_smbcodepage.1.html b/docs/htmldocs/make_smbcodepage.1.html index 4c2ad993ae..8e792e3122 100644 --- a/docs/htmldocs/make_smbcodepage.1.html +++ b/docs/htmldocs/make_smbcodepage.1.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >make_smbcodepage</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="MAKE-SMBCODEPAGE" -></A ->make_smbcodepage</H1 +>make_smbcodepage</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -111,7 +110,7 @@ CLASS="PARAMETER" ><I >c</I ></TT -> case, this will be a text +> case this will be a text codepage definition file such as the ones found in the Samba <TT CLASS="FILENAME" @@ -122,7 +121,7 @@ CLASS="PARAMETER" ><I >d</I ></TT -> case, this will be the +> case this will be the binary format codepage definition file normally found in the <TT CLASS="FILENAME" @@ -203,7 +202,7 @@ NAME="AEN58" ><P ><B CLASS="COMMAND" ->codepage_def.<codepage></B +>codepage_def.<codepage></B ></P ><P >These are the input (text) codepage files provided in the @@ -260,7 +259,7 @@ CLASS="COMMAND" ><P ><B CLASS="COMMAND" ->codepage.<codepage></B +>codepage.<codepage></B > - These are the output (binary) codepage files produced and placed in the Samba destination <TT diff --git a/docs/htmldocs/make_unicodemap.1.html b/docs/htmldocs/make_unicodemap.1.html index de964c269d..b8b768ce40 100644 --- a/docs/htmldocs/make_unicodemap.1.html +++ b/docs/htmldocs/make_unicodemap.1.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >make_unicodemap</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="MAKE-UNICODEMAP" -></A ->make_unicodemap</H1 +>make_unicodemap</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -133,7 +132,7 @@ NAME="AEN40" ><P ><TT CLASS="FILENAME" ->CP<codepage>.TXT</TT +>CP<codepage>.TXT</TT ></P ><P > These are the input (text) unicode map files provided @@ -177,7 +176,7 @@ CLASS="PARAMETER" ><P > <TT CLASS="FILENAME" ->unicode_map.<codepage></TT +>unicode_map.<codepage></TT > - These are the output (binary) unicode map files produced and placed in the Samba destination <TT diff --git a/docs/htmldocs/msdfs.html b/docs/htmldocs/msdfs_setup.html index 7db1a94d72..36b9911bae 100644 --- a/docs/htmldocs/msdfs.html +++ b/docs/htmldocs/msdfs_setup.html @@ -1,86 +1,36 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Hosting a Microsoft Distributed File System tree on Samba</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="Configuring PAM for distributed but centrally -managed authentication" -HREF="pam.html"><LINK -REL="NEXT" -TITLE="UNIX Permission Bits and Windows NT Access Control Lists" -HREF="unix-permissions.html"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY -CLASS="CHAPTER" +CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="pam.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="unix-permissions.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV +CLASS="ARTICLE" ><DIV -CLASS="CHAPTER" +CLASS="TITLEPAGE" ><H1 +CLASS="TITLE" ><A NAME="MSDFS" -></A ->Chapter 5. Hosting a Microsoft Distributed File System tree on Samba</H1 +>Hosting a Microsoft Distributed File System tree on Samba</A +></H1 +><HR></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN667" -></A ->5.1. Instructions</H1 +NAME="AEN3" +>Instructions</A +></H1 ><P >The Distributed File System (or Dfs) provides a means of separating the logical view of files and directories that users @@ -223,12 +173,12 @@ CLASS="USERINPUT" takes users directly to the appropriate shares on the network.</P ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN702" -></A ->5.1.1. Notes</H2 +NAME="AEN38" +>Notes</A +></H2 ><P ></P ><UL @@ -255,65 +205,6 @@ NAME="AEN702" ></DIV ></DIV ></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="pam.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="unix-permissions.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Configuring PAM for distributed but centrally -managed authentication</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->UNIX Permission Bits and Windows NT Access Control Lists</TD -></TR -></TABLE -></DIV ></BODY ></HTML >
\ No newline at end of file diff --git a/docs/htmldocs/net.8.html b/docs/htmldocs/net.8.html index b7ed1357c3..77cb2b2b38 100644 --- a/docs/htmldocs/net.8.html +++ b/docs/htmldocs/net.8.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >net</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="NET" -></A ->net</H1 +>net</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -38,12 +37,12 @@ NAME="AEN8" ><B CLASS="COMMAND" >net</B -> {<ads|rap|rpc>} [-h] [-w workgroup] [-W myworkgroup] [-U user] [-I ip-address] [-p port] [-n myname] [-s conffile] [-S server] [-C comment] [-M maxusers] [-F flags] [-j jobid] [-l] [-r] [-f] [-t timeout] [-P] [-D debuglevel]</P +> {<ads|rap|rpc>}</P ></DIV ><DIV CLASS="REFSECT1" ><A -NAME="AEN31" +NAME="AEN12" ></A ><H2 >DESCRIPTION</H2 @@ -53,327 +52,31 @@ HREF="samba.7.html" TARGET="_top" > Samba</A > suite.</P -><P ->The samba net utility is meant to work just like the net utility - available for windows and DOS.</P ></DIV ><DIV CLASS="REFSECT1" ><A -NAME="AEN36" +NAME="AEN16" ></A ><H2 >OPTIONS</H2 ><P ></P -><DIV -CLASS="VARIABLELIST" -><DL -><DT ->-h</DT -><DD -><P -> Display summary of all available options. - - </P -></DD -><DT ->-w target-workgroup</DT -><DD -><P -> Sets target workgroup or domain. You have to specify either this option or the IP address or the name of a server. - </P -></DD -><DT ->-W workgroup</DT -><DD -><P -> Sets client workgroup or domain - </P -></DD -><DT ->-U user</DT -><DD -><P -> User name to use - </P -></DD -><DT ->-I ip-address</DT -><DD -><P -> IP address of target server to use. You have to specify either this option or a target workgroup or a target server. - </P -></DD -><DT ->-p port</DT -><DD -><P -> Port on the target server to connect to. - </P -></DD -><DT ->-n myname</DT -><DD -><P -> Sets name of the client. - </P -></DD -><DT ->-s conffile</DT -><DD -><P -> Specify alternative configuration file that should be loaded. - </P -></DD -><DT ->-S server</DT -><DD -><P -> Name of target server. You should specify either this option or a target workgroup or a target IP address. - </P -></DD -><DT ->-C comment</DT -><DD -><P -> FIXME - </P -></DD -><DT ->-M maxusers</DT -><DD -><P -> FIXME - </P -></DD -><DT ->-F flags</DT -><DD -><P -> FIXME - </P -></DD -><DT ->-j jobid</DT -><DD -><P -> FIXME - </P -></DD -><DT ->-l</DT -><DD -><P -> FIXME - </P -></DD -><DT ->-r</DT -><DD -><P -> FIXME - </P -></DD -><DT ->-f</DT -><DD -><P -> FIXME - </P -></DD -><DT ->-t timeout</DT -><DD -><P -> FIXME - </P -></DD -><DT ->-P</DT -><DD -><P -> Make queries to the external server using the machine account of the local server. - </P -></DD -><DT ->-D debuglevel</DT -><DD -><P ->set the debuglevel. Debug level 0 is the lowest - and 100 being the highest. This should be set to 100 if you are - planning on submitting a bug report to the Samba team (see - <TT -CLASS="FILENAME" ->BUGS.txt</TT ->). - </P -></DD -></DL -></DIV ></DIV ><DIV CLASS="REFSECT1" ><A -NAME="AEN116" +NAME="AEN19" ></A ><H2 ->TIME</H2 -><P ->The <B -CLASS="COMMAND" ->NET TIME</B -> command allows you to view the time on a remote server - or synchronise the time on the local server with the time on the remote server.</P +>COMMANDS</H2 ><P ></P -><DIV -CLASS="VARIABLELIST" -><DL -><DT -></DT -><DD -><P -> Without any options, the <B -CLASS="COMMAND" ->NET TIME</B -> command - displays the time on the remote server. - </P -></DD -><DT ->SYSTEM</DT -><DD -><P -> Displays the time on the remote server in a format ready for /bin/date - </P -></DD -><DT ->SET</DT -><DD -><P -> Tries to set the date and time of the local server to that on - the remote server using /bin/date. - </P -></DD -><DT ->ZONE</DT -><DD -><P -> Displays the timezone in hours from GMT on the remote computer. - </P -></DD -></DL -></DIV -></DIV -><DIV -CLASS="REFSECT1" -><A -NAME="AEN138" -></A -><H2 ->RPC</H2 -><P ->The <B -CLASS="COMMAND" ->NET RPC</B -> command allows you to do various - NT4 operations.</P -><P -></P -><DIV -CLASS="VARIABLELIST" -><DL -><DT ->JOIN -U username[%password] [options]</DT -><DD -><P -> Join a domain with specified username and password. Password - will be prompted if none is specified.</P -></DD -><DT ->JOIN [options except -U]</DT -><DD -><P -> to join a domain created in server manager - </P -></DD -><DT ->USER [misc. options] [targets]</DT -><DD -><P -> List users - </P -></DD -><DT ->USER DELETE <name> [misc options]</DT -><DD -><P -> delete specified user - </P -></DD -><DT ->USER INFO <name> [misc options]</DT -><DD -><P -> list the domain groups of the specified user - </P -></DD -><DT ->USER ADD <name> [password] [-F user flags] [misc. options</DT -><DD -><P -> Add specified user - </P -></DD -><DT ->GROUP [misc options] [targets]</DT -><DD -><P -> List user groups - </P -></DD -><DT ->GROUP DELETE <name> [misc. options] [targets]</DT -><DD -><P -> Delete specified group - </P -></DD -><DT ->GROUP ADD <name> [-C comment]</DT -><DD -><P -> Create specified group - </P -></DD -><DT ->SHARE [misc. options] [targets]</DT -><DD -><P -> enumerates all exported resources (network shares) on target server - </P -></DD -><DT ->SHARE ADD <name=serverpath> [misc. options] [targets]</DT -><DD -><P -> Adds a share from a server (makes the export active) - </P -></DD -><DT ->SHARE DELETE <sharenam</DT -><DD -><P -></P -></DD -></DL -></DIV ></DIV ><DIV CLASS="REFSECT1" ><A -NAME="AEN191" +NAME="AEN22" ></A ><H2 >VERSION</H2 @@ -384,7 +87,7 @@ NAME="AEN191" ><DIV CLASS="REFSECT1" ><A -NAME="AEN194" +NAME="AEN25" ></A ><H2 >AUTHOR</H2 diff --git a/docs/htmldocs/nmbd.8.html b/docs/htmldocs/nmbd.8.html index 05bf860124..76fd5de6ba 100644 --- a/docs/htmldocs/nmbd.8.html +++ b/docs/htmldocs/nmbd.8.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >nmbd</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="NMBD" -></A ->nmbd</H1 +>nmbd</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -38,7 +37,7 @@ NAME="AEN8" ><B CLASS="COMMAND" >nmbd</B -> [-D] [-a] [-i] [-o] [-P] [-h] [-V] [-d <debug level>] [-H <lmhosts file>] [-l <log directory>] [-n <primary netbios name>] [-p <port number>] [-s <configuration file>]</P +> [-D] [-a] [-i] [-o] [-P] [-h] [-V] [-d <debug level>] [-H <lmhosts file>] [-l <log directory>] [-n <primary netbios name>] [-p <port number>] [-s <configuration file>]</P ></DIV ><DIV CLASS="REFSECT1" @@ -72,12 +71,8 @@ CLASS="COMMAND" specified it will respond with the IP number of the host it is running on. Its "own NetBIOS name" is by default the primary DNS name of the host it is running on, - but this can be overridden with the <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->-n</I -></SPAN + but this can be overridden with the <EM +>-n</EM > option (see OPTIONS below). Thus <B CLASS="COMMAND" @@ -111,7 +106,7 @@ CLASS="COMMAND" >nmbd</B > can act as a WINS proxy, relaying broadcast queries from clients that do - not understand how to talk the WINS protocol to a WINS + not understand how to talk the WINS protocol to a WIN server.</P ></DIV ><DIV @@ -163,7 +158,7 @@ CLASS="COMMAND" >If this parameter is specified it causes the server to run "interactively", not as a daemon, even if the server is executed on the command line of a shell. Setting this - parameter negates the implicit daemon mode when run from the + parameter negates the implicit deamon mode when run from the command line. </P ></DD @@ -190,7 +185,7 @@ CLASS="COMMAND" >.</P ></DD ><DT ->-H <filename></DT +>-H <filename></DT ><DD ><P >NetBIOS lmhosts file. The lmhosts @@ -209,24 +204,16 @@ CLASS="FILENAME" ></A > to resolve any NetBIOS name queries needed by the server. Note - that the contents of this file are <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->NOT</I -></SPAN + that the contents of this file are <EM +>NOT</EM > used by <B CLASS="COMMAND" >nmbd</B > to answer any name queries. Adding a line to this file affects name NetBIOS resolution - from this host <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->ONLY</I -></SPAN + from this host <EM +>ONLY</EM >.</P ><P >The default path to this file is compiled into @@ -242,16 +229,15 @@ CLASS="FILENAME" <TT CLASS="FILENAME" >/etc/lmhosts</TT ->. See the - <A +>. See the <A HREF="lmhosts.5.html" TARGET="_top" -><TT +> <TT CLASS="FILENAME" >lmhosts(5)</TT ></A -> - man page for details on the contents of this file.</P +> man page for details on the + contents of this file.</P ></DD ><DT >-V</DT @@ -264,7 +250,7 @@ CLASS="COMMAND" >.</P ></DD ><DT ->-d <debug level></DT +>-d <debug level></DT ><DD ><P >debuglevel is an integer @@ -295,21 +281,21 @@ HREF="smb.conf.5.html" TARGET="_top" ><TT CLASS="FILENAME" -> smb.conf(5)</TT +> smb.conf</TT ></A > file.</P ></DD ><DT ->-l <log directory></DT +>-l <log directory></DT ><DD ><P >The -l parameter specifies a directory into which the "log.nmbd" log file will be created - for operational data from the running <B + for operational data from the running + <B CLASS="COMMAND" >nmbd</B -> - server. The default log directory is compiled into Samba +> server. The default log directory is compiled into Samba as part of the build process. Common defaults are <TT CLASS="FILENAME" > /usr/local/samba/var/log.nmb</TT @@ -320,12 +306,8 @@ CLASS="FILENAME" <TT CLASS="FILENAME" >/var/log/log.nmb</TT ->. <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->Beware:</I -></SPAN +>. <EM +>Beware:</EM > If the directory specified does not exist, <B CLASS="COMMAND" @@ -335,7 +317,7 @@ CLASS="COMMAND" </P ></DD ><DT ->-n <primary NetBIOS name></DT +>-n <primary NetBIOS name></DT ><DD ><P >This option allows you to override @@ -360,7 +342,7 @@ CLASS="FILENAME" >.</P ></DD ><DT ->-p <UDP port number></DT +>-p <UDP port number></DT ><DD ><P >UDP port number is a positive integer value. @@ -373,7 +355,7 @@ CLASS="COMMAND" won't need help!</P ></DD ><DT ->-s <configuration file></DT +>-s <configuration file></DT ><DD ><P >The default configuration file name @@ -523,12 +505,8 @@ CLASS="FILENAME" >If <B CLASS="COMMAND" >nmbd</B -> is acting as a <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" -> browse master</I -></SPAN +> is acting as a <EM +> browse master</EM > (see the <A HREF="smb.conf.5.html#LOCALMASTER" TARGET="_top" @@ -568,12 +546,8 @@ NAME="AEN178" CLASS="COMMAND" >nmbd</B > process it is recommended - that SIGKILL (-9) <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->NOT</I -></SPAN + that SIGKILL (-9) <EM +>NOT</EM > be used, except as a last resort, as this may leave the name database in an inconsistent state. The correct way to terminate <B diff --git a/docs/htmldocs/nmblookup.1.html b/docs/htmldocs/nmblookup.1.html index 0209c4bd2b..c87d7d35db 100644 --- a/docs/htmldocs/nmblookup.1.html +++ b/docs/htmldocs/nmblookup.1.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >nmblookup</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="NMBLOOKUP" -></A ->nmblookup</H1 +>nmblookup</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -38,7 +37,7 @@ NAME="AEN8" ><B CLASS="COMMAND" >nmblookup</B -> [-M] [-R] [-S] [-r] [-A] [-h] [-B <broadcast address>] [-U <unicast address>] [-d <debug level>] [-s <smb config file>] [-i <NetBIOS scope>] [-T] {name}</P +> [-M] [-R] [-S] [-r] [-A] [-h] [-B <broadcast address>] [-U <unicast address>] [-d <debug level>] [-s <smb config file>] [-i <NetBIOS scope>] [-T] {name}</P ></DIV ><DIV CLASS="REFSECT1" @@ -157,7 +156,7 @@ CLASS="REPLACEABLE" >Print a help (usage) message.</P ></DD ><DT ->-B <broadcast address></DT +>-B <broadcast address></DT ><DD ><P >Send the query to the given broadcast address. Without @@ -180,7 +179,7 @@ CLASS="FILENAME" </P ></DD ><DT ->-U <unicast address></DT +>-U <unicast address></DT ><DD ><P >Do a unicast query to the specified address or @@ -199,7 +198,7 @@ CLASS="PARAMETER" query a WINS server.</P ></DD ><DT ->-d <debuglevel></DT +>-d <debuglevel></DT ><DD ><P >debuglevel is an integer from 0 to 10.</P @@ -235,7 +234,7 @@ CLASS="FILENAME" > file.</P ></DD ><DT ->-s <smb.conf></DT +>-s <smb.conf></DT ><DD ><P >This parameter specifies the pathname to @@ -247,7 +246,7 @@ TARGET="_top" the Samba setup on the machine.</P ></DD ><DT ->-i <scope></DT +>-i <scope></DT ><DD ><P >This specifies a NetBIOS scope that @@ -257,12 +256,8 @@ CLASS="COMMAND" > will use to communicate with when generating NetBIOS names. For details on the use of NetBIOS scopes, see rfc1001.txt and rfc1002.txt. NetBIOS scopes are - <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->very</I -></SPAN + <EM +>very</EM > rarely used, only set this parameter if you are the system administrator in charge of all the NetBIOS systems you communicate with.</P @@ -275,12 +270,8 @@ CLASS="EMPHASIS" lookup to be looked up via a reverse DNS lookup into a DNS name, and printed out before each</P ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->IP address .... NetBIOS name</I -></SPAN +><EM +>IP address .... NetBIOS name</EM ></P ><P > pair that is the normal output.</P @@ -292,7 +283,7 @@ CLASS="EMPHASIS" >This is the NetBIOS name being queried. Depending upon the previous options this may be a NetBIOS name or IP address. If a NetBIOS name then the different name types may be specified - by appending '#<type>' to the name. This name may also be + by appending '#<type>' to the name. This name may also be '*', which will return all registered names within a broadcast area.</P ></DD diff --git a/docs/htmldocs/other-clients.html b/docs/htmldocs/other-clients.html deleted file mode 100644 index b2a0ff23b2..0000000000 --- a/docs/htmldocs/other-clients.html +++ /dev/null @@ -1,586 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<HTML -><HEAD -><TITLE ->Samba and other CIFS clients</TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="Samba performance issues" -HREF="speed.html"><LINK -REL="NEXT" -TITLE="HOWTO Access Samba source code via CVS" -HREF="cvs-access.html"></HEAD -><BODY -CLASS="CHAPTER" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" -><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="speed.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="cvs-access.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><DIV -CLASS="CHAPTER" -><H1 -><A -NAME="OTHER-CLIENTS" -></A ->Chapter 18. Samba and other CIFS clients</H1 -><P ->This chapter contains client-specific information.</P -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN2953" -></A ->18.1. Macintosh clients?</H1 -><P ->Yes. <A -HREF="http://www.thursby.com/" -TARGET="_top" ->Thursby</A -> now have a CIFS Client / Server called DAVE - see</P -><P ->They test it against Windows 95, Windows NT and samba for -compatibility issues. At the time of writing, DAVE was at version -1.0.1. The 1.0.0 to 1.0.1 update is available as a free download from -the Thursby web site (the speed of finder copies has been greatly -enhanced, and there are bug-fixes included).</P -><P -> -Alternatives - There are two free implementations of AppleTalk for -several kinds of UNIX machnes, and several more commercial ones. -These products allow you to run file services and print services -natively to Macintosh users, with no additional support required on -the Macintosh. The two free omplementations are -<A -HREF="http://www.umich.edu/~rsug/netatalk/" -TARGET="_top" ->Netatalk</A ->, and -<A -HREF="http://www.cs.mu.oz.au/appletalk/atalk.html" -TARGET="_top" ->CAP</A ->. -What Samba offers MS -Windows users, these packages offer to Macs. For more info on these -packages, Samba, and Linux (and other UNIX-based systems) see -<A -HREF="http://www.eats.com/linux_mac_win.html" -TARGET="_top" ->http://www.eats.com/linux_mac_win.html</A -></P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN2962" -></A ->18.2. OS2 Client</H1 -><DIV -CLASS="SECT2" -><H2 -CLASS="SECT2" -><A -NAME="AEN2964" -></A ->18.2.1. How can I configure OS/2 Warp Connect or - OS/2 Warp 4 as a client for Samba?</H2 -><P ->A more complete answer to this question can be - found on <A -HREF="http://carol.wins.uva.nl/~leeuw/samba/warp.html" -TARGET="_top" -> http://carol.wins.uva.nl/~leeuw/samba/warp.html</A ->.</P -><P ->Basically, you need three components:</P -><P -></P -><UL -><LI -><P ->The File and Print Client ('IBM Peer') - </P -></LI -><LI -><P ->TCP/IP ('Internet support') - </P -></LI -><LI -><P ->The "NetBIOS over TCP/IP" driver ('TCPBEUI') - </P -></LI -></UL -><P ->Installing the first two together with the base operating - system on a blank system is explained in the Warp manual. If Warp - has already been installed, but you now want to install the - networking support, use the "Selective Install for Networking" - object in the "System Setup" folder.</P -><P ->Adding the "NetBIOS over TCP/IP" driver is not described - in the manual and just barely in the online documentation. Start - MPTS.EXE, click on OK, click on "Configure LAPS" and click - on "IBM OS/2 NETBIOS OVER TCP/IP" in 'Protocols'. This line - is then moved to 'Current Configuration'. Select that line, - click on "Change number" and increase it from 0 to 1. Save this - configuration.</P -><P ->If the Samba server(s) is not on your local subnet, you - can optionally add IP names and addresses of these servers - to the "Names List", or specify a WINS server ('NetBIOS - Nameserver' in IBM and RFC terminology). For Warp Connect you - may need to download an update for 'IBM Peer' to bring it on - the same level as Warp 4. See the webpage mentioned above.</P -></DIV -><DIV -CLASS="SECT2" -><H2 -CLASS="SECT2" -><A -NAME="AEN2979" -></A ->18.2.2. How can I configure OS/2 Warp 3 (not Connect), - OS/2 1.2, 1.3 or 2.x for Samba?</H2 -><P ->You can use the free Microsoft LAN Manager 2.2c Client - for OS/2 from - <A -HREF="ftp://ftp.microsoft.com/BusSys/Clients/LANMAN.OS2/" -TARGET="_top" -> ftp://ftp.microsoft.com/BusSys/Clients/LANMAN.OS2/</A ->. - See <A -HREF="http://carol.wins.uva.nl/~leeuw/lanman.html" -TARGET="_top" -> http://carol.wins.uva.nl/~leeuw/lanman.html</A -> for - more information on how to install and use this client. In - a nutshell, edit the file \OS2VER in the root directory of - the OS/2 boot partition and add the lines:</P -><P -><PRE -CLASS="PROGRAMLISTING" -> 20=setup.exe - 20=netwksta.sys - 20=netvdd.sys - </PRE -></P -><P ->before you install the client. Also, don't use the - included NE2000 driver because it is buggy. Try the NE2000 - or NS2000 driver from - <A -HREF="ftp://ftp.cdrom.com/pub/os2/network/ndis/" -TARGET="_top" -> ftp://ftp.cdrom.com/pub/os2/network/ndis/</A -> instead. - </P -></DIV -><DIV -CLASS="SECT2" -><H2 -CLASS="SECT2" -><A -NAME="AEN2988" -></A ->18.2.3. Are there any other issues when OS/2 (any version) - is used as a client?</H2 -><P ->When you do a NET VIEW or use the "File and Print - Client Resource Browser", no Samba servers show up. This can - be fixed by a patch from <A -HREF="http://carol.wins.uva.nl/~leeuw/samba/fix.html" -TARGET="_top" -> http://carol.wins.uva.nl/~leeuw/samba/fix.html</A ->. - The patch will be included in a later version of Samba. It also - fixes a couple of other problems, such as preserving long - filenames when objects are dragged from the Workplace Shell - to the Samba server. </P -></DIV -><DIV -CLASS="SECT2" -><H2 -CLASS="SECT2" -><A -NAME="AEN2992" -></A ->18.2.4. How do I get printer driver download working - for OS/2 clients?</H2 -><P ->First, create a share called [PRINTDRV] that is - world-readable. Copy your OS/2 driver files there. Note - that the .EA_ files must still be separate, so you will need - to use the original install files, and not copy an installed - driver from an OS/2 system.</P -><P ->Install the NT driver first for that printer. Then, - add to your smb.conf a parameter, os2 driver map = - <TT -CLASS="REPLACEABLE" -><I ->filename</I -></TT ->". Then, in the file - specified by <TT -CLASS="REPLACEABLE" -><I ->filename</I -></TT ->, map the - name of the NT driver name to the OS/2 driver name as - follows:</P -><P -><B -CLASS="COMMAND" ->nt driver name = os2 "driver - name"."device name"</B ->, e.g.: - HP LaserJet 5L = LASERJET.HP LaserJet 5L</P -><P ->You can have multiple drivers mapped in this file.</P -><P ->If you only specify the OS/2 driver name, and not the - device name, the first attempt to download the driver will - actually download the files, but the OS/2 client will tell - you the driver is not available. On the second attempt, it - will work. This is fixed simply by adding the device name - to the mapping, after which it will work on the first attempt. - </P -></DIV -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN3002" -></A ->18.3. Windows for Workgroups</H1 -><DIV -CLASS="SECT2" -><H2 -CLASS="SECT2" -><A -NAME="AEN3004" -></A ->18.3.1. Use latest TCP/IP stack from Microsoft</H2 -><P ->Use the latest TCP/IP stack from microsoft if you use Windows -for workgroups.</P -><P ->The early TCP/IP stacks had lots of bugs.</P -><P -> -Microsoft has released an incremental upgrade to their TCP/IP 32-Bit -VxD drivers. The latest release can be found on their ftp site at -ftp.microsoft.com, located in /peropsys/windows/public/tcpip/wfwt32.exe. -There is an update.txt file there that describes the problems that were -fixed. New files include WINSOCK.DLL, TELNET.EXE, WSOCK.386, VNBT.386, -WSTCP.386, TRACERT.EXE, NETSTAT.EXE, and NBTSTAT.EXE.</P -></DIV -><DIV -CLASS="SECT2" -><H2 -CLASS="SECT2" -><A -NAME="AEN3009" -></A ->18.3.2. Delete .pwl files after password change</H2 -><P ->WfWg does a lousy job with passwords. I find that if I change my -password on either the unix box or the PC the safest thing to do is to -delete the .pwl files in the windows directory. The PC will complain about not finding the files, but will soon get over it, allowing you to enter the new password.</P -><P -> -If you don't do this you may find that WfWg remembers and uses the old -password, even if you told it a new one.</P -><P -> -Often WfWg will totally ignore a password you give it in a dialog box.</P -></DIV -><DIV -CLASS="SECT2" -><H2 -CLASS="SECT2" -><A -NAME="AEN3014" -></A ->18.3.3. Configure WfW password handling</H2 -><P ->There is a program call admincfg.exe -on the last disk (disk 8) of the WFW 3.11 disk set. To install it -type EXPAND A:\ADMINCFG.EX_ C:\WINDOWS\ADMINCFG.EXE Then add an icon -for it via the "Progam Manager" "New" Menu. This program allows you -to control how WFW handles passwords. ie disable Password Caching etc -for use with <B -CLASS="COMMAND" ->security = user</B -></P -></DIV -><DIV -CLASS="SECT2" -><H2 -CLASS="SECT2" -><A -NAME="AEN3018" -></A ->18.3.4. Case handling of passwords</H2 -><P ->Windows for Workgroups uppercases the password before sending it to the server. Unix passwords can be case-sensitive though. Check the <A -HREF="smb.conf.5.html" -TARGET="_top" ->smb.conf(5)</A -> information on <B -CLASS="COMMAND" ->password level</B -> to specify what characters samba should try to uppercase when checking.</P -></DIV -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN3023" -></A ->18.4. Windows '95/'98</H1 -><P ->When using Windows 95 OEM SR2 the following updates are recommended where Samba -is being used. Please NOTE that the above change will affect you once these -updates have been installed.</P -><P -> -There are more updates than the ones mentioned here. You are referred to the -Microsoft Web site for all currently available updates to your specific version -of Windows 95.</P -><P -></P -><OL -TYPE="1" -><LI -><P ->Kernel Update: KRNLUPD.EXE</P -></LI -><LI -><P ->Ping Fix: PINGUPD.EXE</P -></LI -><LI -><P ->RPC Update: RPCRTUPD.EXE</P -></LI -><LI -><P ->TCP/IP Update: VIPUPD.EXE</P -></LI -><LI -><P ->Redirector Update: VRDRUPD.EXE</P -></LI -></OL -><P ->Also, if using MS OutLook it is desirable to install the OLEUPD.EXE fix. This -fix may stop your machine from hanging for an extended period when exiting -OutLook and you may also notice a significant speedup when accessing network -neighborhood services.</P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN3039" -></A ->18.5. Windows 2000 Service Pack 2</H1 -><P -> -There are several annoyances with Windows 2000 SP2. One of which -only appears when using a Samba server to host user profiles -to Windows 2000 SP2 clients in a Windows domain. This assumes -that Samba is a member of the domain, but the problem will -likely occur if it is not.</P -><P -> -In order to server profiles successfully to Windows 2000 SP2 -clients (when not operating as a PDC), Samba must have -<B -CLASS="COMMAND" ->nt acl support = no</B -> -added to the file share which houses the roaming profiles. -If this is not done, then the Windows 2000 SP2 client will -complain about not being able to access the profile (Access -Denied) and create multiple copies of it on disk (DOMAIN.user.001, -DOMAIN.user.002, etc...). See the -<A -HREF="smb.conf.5.html" -TARGET="_top" ->smb.conf(5)</A -> man page -for more details on this option. Also note that the -<B -CLASS="COMMAND" ->nt acl support</B -> parameter was formally a global parameter in -releases prior to Samba 2.2.2.</P -><P -> -The following is a minimal profile share:</P -><P -><PRE -CLASS="PROGRAMLISTING" -> [profile] - path = /export/profile - create mask = 0600 - directory mask = 0700 - nt acl support = no - read only = no</PRE -></P -><P ->The reason for this bug is that the Win2k SP2 client copies -the security descriptor for the profile which contains -the Samba server's SID, and not the domain SID. The client -compares the SID for SAMBA\user and realizes it is -different that the one assigned to DOMAIN\user. Hence the reason -for the "access denied" message.</P -><P ->By disabling the <B -CLASS="COMMAND" ->nt acl support</B -> parameter, Samba will send -the Win2k client a response to the QuerySecurityDescriptor -trans2 call which causes the client to set a default ACL -for the profile. This default ACL includes </P -><P -><B -CLASS="COMMAND" ->DOMAIN\user "Full Control"</B -></P -><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->NOTE : This bug does not occur when using winbind to -create accounts on the Samba host for Domain users.</I -></SPAN -></P -></DIV -></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="speed.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="cvs-access.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Samba performance issues</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->HOWTO Access Samba source code via CVS</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file diff --git a/docs/htmldocs/pdbedit.8.html b/docs/htmldocs/pdbedit.8.html index 3ed3dfe8e9..b1a1dea679 100644 --- a/docs/htmldocs/pdbedit.8.html +++ b/docs/htmldocs/pdbedit.8.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >pdbedit</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="PDBEDIT" -></A ->pdbedit</H1 +>pdbedit</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -37,12 +36,12 @@ NAME="AEN8" ><B CLASS="COMMAND" >pdbedit</B -> [-l] [-v] [-w] [-u username] [-f fullname] [-h homedir] [-d drive] [-s script] [-p profile] [-a] [-m] [-x] [-i passdb-backend] [-e passdb-backend] [-b passdb-backend] [-D debuglevel]</P +> [-l] [-v] [-w] [-u username] [-f fullname] [-h homedir] [-d drive] [-s script] [-p profile] [-a] [-m] [-x] [-i passdb-backend] [-e passdb-backend] [-D debuglevel]</P ></DIV ><DIV CLASS="REFSECT1" ><A -NAME="AEN27" +NAME="AEN26" ></A ><H2 >DESCRIPTION</H2 @@ -54,11 +53,11 @@ TARGET="_top" > suite.</P ><P >The pdbedit program is used to manage the users accounts - stored in the sam database and can only be run by root.</P + stored in the sam database and can be run only by root.</P ><P ->The pdbedit tool uses the passdb modular interface and is +>The pdbedit tool use the passdb modular interface and is independent from the kind of users database used (currently there - are smbpasswd, ldap, nis+ and tdb based and more can be added + are smbpasswd, ldap, nis+ and tdb based and more can be addedd without changing the tool).</P ><P >There are five main ways to use pdbedit: adding a user account, @@ -68,7 +67,7 @@ TARGET="_top" ><DIV CLASS="REFSECT1" ><A -NAME="AEN34" +NAME="AEN33" ></A ><H2 >OPTIONS</H2 @@ -81,7 +80,7 @@ CLASS="VARIABLELIST" >-l</DT ><DD ><P ->This option lists all the user accounts +>This option list all the user accounts present in the users database. This option prints a list of user/uid pairs separated by the ':' character.</P @@ -91,19 +90,28 @@ CLASS="COMMAND" >pdbedit -l</B ></P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > sorce:500:Simo Sorce samba:45:Test User </PRE +></TD +></TR +></TABLE ></P ></DD ><DT >-v</DT ><DD ><P ->This option enables the verbose listing format. - It causes pdbedit to list the users in the database, printing +>This option sets the verbose listing format. + It will make pdbedit list the users in the database printing out the account fields in a descriptive format.</P ><P >Example: <B @@ -111,6 +119,12 @@ CLASS="COMMAND" >pdbedit -l -v</B ></P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > --------------- @@ -132,6 +146,9 @@ CLASS="PROGRAMLISTING" Logon Script: Profile Path: \\BERSERKER\profile </PRE +></TD +></TR +></TABLE ></P ></DD ><DT @@ -139,7 +156,7 @@ CLASS="PROGRAMLISTING" ><DD ><P >This option sets the "smbpasswd" listing format. - It will make pdbedit list the users in the database, printing + It will make pdbedit list the users in the database printing out the account fields in a format compatible with the <TT CLASS="FILENAME" @@ -158,32 +175,33 @@ CLASS="COMMAND" >pdbedit -l -w</B ></P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > sorce:500:508818B733CE64BEAAD3B435B51404EE:D2A2418EFC466A8A0F6B1DBB5C3DB80C:[UX ]:LCT-00000000: samba:45:0F2B255F7B67A7A9AAD3B435B51404EE:BC281CE3F53B6A5146629CD4751D3490:[UX ]:LCT-3BFA1E8D: </PRE +></TD +></TR +></TABLE ></P ></DD ><DT >-u username</DT ><DD ><P ->This option specifies the username to be - used for the operation requested (listing, adding, removing). - It is <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->required</I -></SPAN +>This option specifies that the username to be + used for the operation requested (listing, adding, removing) + It is <EM +>required</EM > in add, remove and modify - operations and <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->optional</I -></SPAN + operations and <EM +>optional</EM > in list operations.</P ></DD @@ -261,18 +279,27 @@ CLASS="COMMAND" ><DD ><P >This option is used to add a user into the - database. This command needs a user name specified with - the -u switch. When adding a new user, pdbedit will also - ask for the password to be used.</P + database. This command need the user name be specified with + the -u switch. When adding a new user pdbedit will also + ask for the password to be used</P ><P >Example: <B CLASS="COMMAND" >pdbedit -a -u sorce</B > - <PRE + <TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD +><PRE CLASS="PROGRAMLISTING" >new password: retype new password</PRE +></TD +></TR +></TABLE > </P ></DD @@ -301,7 +328,7 @@ CLASS="COMMAND" ><DD ><P >This option causes pdbedit to delete an account - from the database. It needs a username specified with the + from the database. It need the username be specified with the -u switch.</P ><P >Example: <B @@ -313,52 +340,37 @@ CLASS="COMMAND" >-i passdb-backend</DT ><DD ><P ->Use a different passdb backend to retrieve users - than the one specified in smb.conf. Can be used to import data into - your local user database.</P +>Use a different passdb backend to retrieve users than the one specified in smb.conf.</P ><P ->This option will ease migration from one passdb backend to - another.</P +>This option will ease migration from one passdb backend to another. + </P ><P >Example: <B CLASS="COMMAND" ->pdbedit -i smbpasswd:/etc/smbpasswd.old - </B -></P +>pdbedit -i smbpasswd:/etc/smbpasswd.old -e tdbsam:/etc/samba/passwd.tdb</B +> + </P ></DD ><DT >-e passdb-backend</DT ><DD ><P ->Exports all currently available users to the - specified password database backend.</P +>Export all currently available users to the specified password database backend.</P ><P ->This option will ease migration from one passdb backend to - another and will ease backing up.</P +>This option will ease migration from one passdb backend to another and will ease backupping</P ><P >Example: <B CLASS="COMMAND" >pdbedit -e smbpasswd:/root/samba-users.backup</B ></P ></DD -><DT ->-b passdb-backend</DT -><DD -><P ->Use a different default passdb backend. </P -><P ->Example: <B -CLASS="COMMAND" ->pdbedit -b xml:/root/pdb-backup.xml -l</B -></P -></DD ></DL ></DIV ></DIV ><DIV CLASS="REFSECT1" ><A -NAME="AEN140" +NAME="AEN133" ></A ><H2 >NOTES</H2 @@ -368,7 +380,7 @@ NAME="AEN140" ><DIV CLASS="REFSECT1" ><A -NAME="AEN143" +NAME="AEN136" ></A ><H2 >VERSION</H2 @@ -379,7 +391,7 @@ NAME="AEN143" ><DIV CLASS="REFSECT1" ><A -NAME="AEN146" +NAME="AEN139" ></A ><H2 >SEE ALSO</H2 @@ -399,7 +411,7 @@ TARGET="_top" ><DIV CLASS="REFSECT1" ><A -NAME="AEN151" +NAME="AEN144" ></A ><H2 >AUTHOR</H2 diff --git a/docs/htmldocs/portability.html b/docs/htmldocs/portability.html deleted file mode 100644 index bb5fb3c59c..0000000000 --- a/docs/htmldocs/portability.html +++ /dev/null @@ -1,303 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<HTML -><HEAD -><TITLE ->Portability</TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="Group mapping HOWTO" -HREF="groupmapping.html"></HEAD -><BODY -CLASS="CHAPTER" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" -><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="groupmapping.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -> </TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><DIV -CLASS="CHAPTER" -><H1 -><A -NAME="PORTABILITY" -></A ->Chapter 22. Portability</H1 -><P ->Samba works on a wide range of platforms but the interface all the -platforms provide is not always compatible. This chapter contains -platform-specific information about compiling and using samba.</P -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN3201" -></A ->22.1. HPUX</H1 -><P ->HP's implementation of supplementary groups is, er, non-standard (for -hysterical reasons). There are two group files, /etc/group and -/etc/logingroup; the system maps UIDs to numbers using the former, but -initgroups() reads the latter. Most system admins who know the ropes -symlink /etc/group to /etc/logingroup (hard link doesn't work for reasons -too stupid to go into here). initgroups() will complain if one of the -groups you're in in /etc/logingroup has what it considers to be an invalid -ID, which means outside the range [0..UID_MAX], where UID_MAX is (I think) -60000 currently on HP-UX. This precludes -2 and 65534, the usual 'nobody' -GIDs.</P -><P ->If you encounter this problem, make sure that the programs that are failing -to initgroups() be run as users not in any groups with GIDs outside the -allowed range.</P -><P ->This is documented in the HP manual pages under setgroups(2) and passwd(4).</P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN3206" -></A ->22.2. SCO Unix</H1 -><P -> -If you run an old version of SCO Unix then you may need to get important -TCP/IP patches for Samba to work correctly. Without the patch, you may -encounter corrupt data transfers using samba.</P -><P ->The patch you need is UOD385 Connection Drivers SLS. It is available from -SCO (ftp.sco.com, directory SLS, files uod385a.Z and uod385a.ltr.Z).</P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN3210" -></A ->22.3. DNIX</H1 -><P ->DNIX has a problem with seteuid() and setegid(). These routines are -needed for Samba to work correctly, but they were left out of the DNIX -C library for some reason.</P -><P ->For this reason Samba by default defines the macro NO_EID in the DNIX -section of includes.h. This works around the problem in a limited way, -but it is far from ideal, some things still won't work right.</P -><P -> -To fix the problem properly you need to assemble the following two -functions and then either add them to your C library or link them into -Samba.</P -><P -> -put this in the file <TT -CLASS="FILENAME" ->setegid.s</TT ->:</P -><P -><PRE -CLASS="PROGRAMLISTING" -> .globl _setegid -_setegid: - moveq #47,d0 - movl #100,a0 - moveq #1,d1 - movl 4(sp),a1 - trap #9 - bccs 1$ - jmp cerror -1$: - clrl d0 - rts</PRE -></P -><P ->put this in the file <TT -CLASS="FILENAME" ->seteuid.s</TT ->:</P -><P -><PRE -CLASS="PROGRAMLISTING" -> .globl _seteuid -_seteuid: - moveq #47,d0 - movl #100,a0 - moveq #0,d1 - movl 4(sp),a1 - trap #9 - bccs 1$ - jmp cerror -1$: - clrl d0 - rts</PRE -></P -><P ->after creating the above files you then assemble them using</P -><P -><B -CLASS="COMMAND" ->as seteuid.s</B -></P -><P -><B -CLASS="COMMAND" ->as setegid.s</B -></P -><P ->that should produce the files <TT -CLASS="FILENAME" ->seteuid.o</TT -> and -<TT -CLASS="FILENAME" ->setegid.o</TT -></P -><P ->then you need to add these to the LIBSM line in the DNIX section of -the Samba Makefile. Your LIBSM line will then look something like this:</P -><P -><PRE -CLASS="PROGRAMLISTING" ->LIBSM = setegid.o seteuid.o -ln</PRE -></P -><P -> -You should then remove the line:</P -><P -><PRE -CLASS="PROGRAMLISTING" ->#define NO_EID</PRE -></P -><P ->from the DNIX section of <TT -CLASS="FILENAME" ->includes.h</TT -></P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN3239" -></A ->22.4. RedHat Linux Rembrandt-II</H1 -><P ->By default RedHat Rembrandt-II during installation adds an -entry to /etc/hosts as follows: -<PRE -CLASS="PROGRAMLISTING" -> 127.0.0.1 loopback "hostname"."domainname"</PRE -></P -><P ->This causes Samba to loop back onto the loopback interface. -The result is that Samba fails to communicate correctly with -the world and therefor may fail to correctly negotiate who -is the master browse list holder and who is the master browser.</P -><P ->Corrective Action: Delete the entry after the word loopback - in the line starting 127.0.0.1</P -></DIV -></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="groupmapping.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -> </TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Group mapping HOWTO</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -> </TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file diff --git a/docs/htmldocs/printing.html b/docs/htmldocs/printer_driver2.html index b6f5fb78ce..5a6e6586da 100644 --- a/docs/htmldocs/printing.html +++ b/docs/htmldocs/printer_driver2.html @@ -1,85 +1,36 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Printing Support in Samba 2.2.x</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="UNIX Permission Bits and Windows NT Access Control Lists" -HREF="unix-permissions.html"><LINK -REL="NEXT" -TITLE="Debugging Printing Problems" -HREF="printingdebug.html"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY -CLASS="CHAPTER" +CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="unix-permissions.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="printingdebug.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV +CLASS="ARTICLE" ><DIV -CLASS="CHAPTER" +CLASS="TITLEPAGE" ><H1 +CLASS="TITLE" ><A NAME="PRINTING" -></A ->Chapter 7. Printing Support in Samba 2.2.x</H1 +>Printing Support in Samba 2.2.x</A +></H1 +><HR></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN905" -></A ->7.1. Introduction</H1 +NAME="AEN3" +>Introduction</A +></H1 ><P >Beginning with the 2.2.0 release, Samba supports the native Windows NT printing mechanisms implemented via @@ -145,13 +96,10 @@ As a side note, Samba does not use these drivers in any way to process spooled files. They are utilized entirely by the clients.</P ><P >The following MS KB article, may be of some help if you are dealing with -Windows 2000 clients: <SPAN -CLASS="emphasis" -><I +Windows 2000 clients: <I CLASS="EMPHASIS" >How to Add Printers with No User Interaction in Windows 2000</I -></SPAN ></P ><P ><A @@ -162,42 +110,30 @@ TARGET="_top" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN927" -></A ->7.2. Configuration</H1 +NAME="AEN25" +>Configuration</A +></H1 ><DIV CLASS="WARNING" ><P ></P ><TABLE CLASS="WARNING" +BORDER="1" WIDTH="100%" -BORDER="0" ><TR ><TD -WIDTH="25" ALIGN="CENTER" -VALIGN="TOP" -><IMG -SRC="/docbook-dsssl/warning.gif" -HSPACE="5" -ALT="Warning"></TD -><TH -ALIGN="LEFT" -VALIGN="CENTER" ><B >[print$] vs. [printer$]</B -></TH +></TD ></TR ><TR ><TD -> </TD -><TD ALIGN="LEFT" -VALIGN="TOP" ><P >Previous versions of Samba recommended using a share named [printer$]. This name was taken from the printer$ service created by Windows 9x @@ -232,7 +168,7 @@ file</I > parameter, are being deprecated and should not be used in new installations. For more information on this change, you should refer to the <A -HREF="printing.html#MIGRATION" +HREF="#MIGRATION" >Migration section</A > of this document.</P @@ -242,12 +178,12 @@ of this document.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN938" -></A ->7.2.1. Creating [print$]</H2 +NAME="AEN36" +>Creating [print$]</A +></H2 ><P >In order to support the uploading of printer driver files, you must first configure a file share named [print$]. @@ -314,35 +250,11 @@ site is configured. If users will be guaranteed to have an account on the Samba host, then this is a non-issue.</P ><DIV CLASS="NOTE" -><P -></P -><TABLE +><BLOCKQUOTE CLASS="NOTE" -WIDTH="100%" -BORDER="0" -><TR -><TD -WIDTH="25" -ALIGN="CENTER" -VALIGN="TOP" -><IMG -SRC="/docbook-dsssl/note.gif" -HSPACE="5" -ALT="Note"></TD -><TH -ALIGN="LEFT" -VALIGN="CENTER" -><B ->Author's Note</B -></TH -></TR -><TR -><TD -> </TD -><TD -ALIGN="LEFT" -VALIGN="TOP" ><P +><B +>Author's Note: </B >The non-issue is that if all your Windows NT users are guaranteed to be authenticated by the Samba server (such as a domain member server and the NT user has already been validated by the Domain Controller in @@ -360,9 +272,7 @@ CLASS="COMMAND" > in the [global] section as well. Make sure you understand what this parameter does before using it though. --jerry</P -></TD -></TR -></TABLE +></BLOCKQUOTE ></DIV ><P >In order for a Windows NT print server to support @@ -389,30 +299,18 @@ CLASS="WARNING" ></P ><TABLE CLASS="WARNING" +BORDER="1" WIDTH="100%" -BORDER="0" ><TR ><TD -WIDTH="25" ALIGN="CENTER" -VALIGN="TOP" -><IMG -SRC="/docbook-dsssl/warning.gif" -HSPACE="5" -ALT="Warning"></TD -><TH -ALIGN="LEFT" -VALIGN="CENTER" ><B >ATTENTION! REQUIRED PERMISSIONS</B -></TH +></TD ></TR ><TR ><TD -> </TD -><TD ALIGN="LEFT" -VALIGN="TOP" ><P >In order to currently add a new driver to you Samba host, one of two conditions must hold true:</P @@ -465,22 +363,19 @@ that matches the printer shares defined on your Samba host.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN973" -></A ->7.2.2. Setting Drivers for Existing Printers</H2 +NAME="AEN71" +>Setting Drivers for Existing Printers</A +></H2 ><P >The initial listing of printers in the Samba host's Printers folder will have no real printer driver assigned to them. By default, in Samba 2.2.0 this driver name was set to -<SPAN -CLASS="emphasis" -><I +<I CLASS="EMPHASIS" >NO PRINTER DRIVER AVAILABLE FOR THIS PRINTER</I -></SPAN >. Later versions changed this to a NULL string to allow the use tof the local Add Printer Wizard on NT/2000 clients. @@ -488,19 +383,16 @@ Attempting to view the printer properties for a printer which has this default driver assigned will result in the error message:</P ><P -><SPAN -CLASS="emphasis" ><I CLASS="EMPHASIS" >Device settings cannot be displayed. The driver for the specified printer is not installed, only spooler properties will be displayed. Do you want to install the driver now?</I -></SPAN ></P ><P >Click "No" in the error dialog and you will be presented with -the printer properties window. The way to assign a driver to a +the printer properties window. The way assign a driver to a printer is to either</P ><P ></P @@ -545,17 +437,17 @@ permissions to the "Everyone" well-known group.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN990" -></A ->7.2.3. Support a large number of printers</H2 +NAME="AEN88" +>Support a large number of printers</A +></H2 ><P >One issue that has arisen during the development phase of Samba 2.2 is the need to support driver downloads for 100's of printers. Using the Windows NT APW is somewhat -awkward to say the list. If more than one printer are using the +awkward to say the least. If more than one printer is using the same driver, the <A HREF="rpcclient.1.html" TARGET="_top" @@ -565,7 +457,7 @@ CLASS="COMMAND" setdriver command</B ></A > can be used to set the driver -associated with an installed driver. The following is example +associated with an installed driver. The following is an example of how this could be accomplished:</P ><P ><PRE @@ -611,18 +503,18 @@ Successfully set hp-print to driver HP LaserJet 4000 Series PS.</PRE ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN1001" -></A ->7.2.4. Adding New Printers via the Windows NT APW</H2 +NAME="AEN99" +>Adding New Printers via the Windows NT APW</A +></H2 ><P >By default, Samba offers all printer shares defined in <TT CLASS="FILENAME" >smb.conf</TT > -in the "Printers..." folder. Also existing in this folder is the Windows NT +in the "Printers..." folder. Also in this folder is the Windows NT Add Printer Wizard icon. The APW will be show only if</P ><P ></P @@ -688,7 +580,7 @@ CLASS="PARAMETER" >add printer command</I ></TT -> and reparse to the <TT +> and reparse the <TT CLASS="FILENAME" >smb.conf</TT > @@ -714,83 +606,20 @@ printer command</I ></A > for removing entries from the "Printers..." folder.</P -><P ->The following is an example <A -HREF="smb.conf.5.html#ADDPRINTERCOMMAN" -TARGET="_top" -><TT -CLASS="PARAMETER" -><I ->add printer command</I -></TT -></A -> script. It adds the appropriate entries to <TT -CLASS="FILENAME" ->/etc/printcap.local</TT -> (change that to what you need) and returns a line of 'Done' which is needed for the whole process to work.</P -><PRE -CLASS="PROGRAMLISTING" ->#!/bin/sh - -# Script to insert a new printer entry into printcap.local -# -# $1, printer name, used as the descriptive name -# $2, share name, used as the printer name for Linux -# $3, port name -# $4, driver name -# $5, location, used for the device file of the printer -# $6, win9x location - -# -# Make sure we use the location that RedHat uses for local printer defs -PRINTCAP=/etc/printcap.local -DATE=`date +%Y%m%d-%H%M%S` -LP=lp -RESTART="service lpd restart" - -# Keep a copy -cp $PRINTCAP $PRINTCAP.$DATE -# Add the printer to $PRINTCAP -echo "" >> $PRINTCAP -echo "$2|$1:\\" >> $PRINTCAP -echo " :sd=/var/spool/lpd/$2:\\" >> $PRINTCAP -echo " :mx=0:ml=0:sh:\\" >> $PRINTCAP -echo " :lp=/usr/local/samba/var/print/$5.prn:" >> $PRINTCAP - -touch "/usr/local/samba/var/print/$5.prn" >> /tmp/printadd.$$ 2>&1 -chown $LP "/usr/local/samba/var/print/$5.prn" >> /tmp/printadd.$$ 2>&1 - -mkdir /var/spool/lpd/$2 -chmod 700 /var/spool/lpd/$2 -chown $LP /var/spool/lpd/$2 -#echo $1 >> "/usr/local/samba/var/print/$5.prn" -#echo $2 >> "/usr/local/samba/var/print/$5.prn" -#echo $3 >> "/usr/local/samba/var/print/$5.prn" -#echo $4 >> "/usr/local/samba/var/print/$5.prn" -#echo $5 >> "/usr/local/samba/var/print/$5.prn" -#echo $6 >> "/usr/local/samba/var/print/$5.prn" -$RESTART >> "/usr/local/samba/var/print/$5.prn" -# Not sure if this is needed -touch /usr/local/samba/lib/smb.conf -# -# You need to return a value, but I am not sure what it means. -# -echo "Done" -exit 0</PRE ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN1031" -></A ->7.2.5. Samba and Printer Ports</H2 +NAME="AEN124" +>Samba and Printer Ports</A +></H2 ><P >Windows NT/2000 print servers associate a port with each printer. These normally take the form of LPT1:, COM1:, FILE:, etc... Samba must also support the concept of ports associated with a printer. By default, only one printer port, -named "Samba Printer Port", exists on a system. Samba does not really a port in +named "Samba Printer Port", exists on a system. Samba does not really need a port in order to print, rather it is a requirement of Windows clients. </P ><P >Note that Samba does not support the concept of "Printer Pooling" internally @@ -817,12 +646,12 @@ that generates a listing of ports on a system.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN1039" -></A ->7.3. The Imprints Toolset</H1 +NAME="AEN132" +>The Imprints Toolset</A +></H1 ><P >The Imprints tool set provides a UNIX equivalent of the Windows NT Add Printer Wizard. For complete information, please @@ -835,12 +664,12 @@ TARGET="_top" only provide a brief introduction to the features of Imprints.</P ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN1043" -></A ->7.3.1. What is Imprints?</H2 +NAME="AEN136" +>What is Imprints?</A +></H2 ><P >Imprints is a collection of tools for supporting the goals of</P @@ -867,12 +696,12 @@ NAME="AEN1043" ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN1053" -></A ->7.3.2. Creating Printer Driver Packages</H2 +NAME="AEN146" +>Creating Printer Driver Packages</A +></H2 ><P >The process of creating printer driver packages is beyond the scope of this document (refer to Imprints.txt also included @@ -883,12 +712,12 @@ NAME="AEN1053" ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN1056" -></A ->7.3.3. The Imprints server</H2 +NAME="AEN149" +>The Imprints server</A +></H2 ><P >The Imprints server is really a database server that may be queried via standard HTTP mechanisms. Each printer @@ -896,23 +725,20 @@ NAME="AEN1056" downloading of the package. Each package is digitally signed via GnuPG which can be used to verify that package downloaded is actually the one referred in the Imprints database. It is - <SPAN -CLASS="emphasis" -><I + <I CLASS="EMPHASIS" >not</I -></SPAN > recommended that this security check be disabled.</P ></DIV ><DIV CLASS="SECT2" -><H2 +><HR><H2 CLASS="SECT2" ><A -NAME="AEN1060" -></A ->7.3.4. The Installation Client</H2 +NAME="AEN153" +>The Installation Client</A +></H2 ><P >More information regarding the Imprints installation client is available in the <TT @@ -1001,15 +827,15 @@ CLASS="FILENAME" ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN1082" -></A ->7.4. <A +NAME="AEN175" +><A NAME="MIGRATION" ></A ->Migration to from Samba 2.0.x to 2.2.x</H1 +>Migration to from Samba 2.0.x to 2.2.x</A +></H1 ><P >Given that printer driver management has changed (we hope improved) in 2.2 over prior releases, migration from an existing setup to 2.2 can @@ -1080,30 +906,18 @@ CLASS="WARNING" ></P ><TABLE CLASS="WARNING" +BORDER="1" WIDTH="100%" -BORDER="0" ><TR ><TD -WIDTH="25" ALIGN="CENTER" -VALIGN="TOP" -><IMG -SRC="/docbook-dsssl/warning.gif" -HSPACE="5" -ALT="Warning"></TD -><TH -ALIGN="LEFT" -VALIGN="CENTER" ><B >Achtung!</B -></TH +></TD ></TR ><TR ><TD -> </TD -><TD ALIGN="LEFT" -VALIGN="TOP" ><P >The following <TT CLASS="FILENAME" @@ -1164,68 +978,10 @@ CLASS="PARAMETER" >use client driver</I ></TT >). Both of -these options are described in the smb.coinf(5) man page and are +these options are described in the smb.conf(5) man page and are disabled by default.</P ></DIV ></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="unix-permissions.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="printingdebug.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->UNIX Permission Bits and Windows NT Access Control Lists</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Debugging Printing Problems</TD -></TR -></TABLE -></DIV ></BODY ></HTML ->
\ No newline at end of file +> diff --git a/docs/htmldocs/rpcclient.1.html b/docs/htmldocs/rpcclient.1.html index 3669e19b03..9ffca61437 100644 --- a/docs/htmldocs/rpcclient.1.html +++ b/docs/htmldocs/rpcclient.1.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >rpcclient</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="RPCCLIENT" -></A ->rpcclient</H1 +>rpcclient</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -38,7 +37,7 @@ NAME="AEN8" ><B CLASS="COMMAND" >rpcclient</B -> [-A authfile] [-c <command string>] [-d debuglevel] [-h] [-l logfile] [-N] [-s <smb config file>] [-U username[%password]] [-W workgroup] [-N] [-I destinationIP] {server}</P +> [-A authfile] [-c <command string>] [-d debuglevel] [-h] [-l logfile] [-N] [-s <smb config file>] [-U username[%password]] [-W workgroup] [-N] [-I destinationIP] {server}</P ></DIV ><DIV CLASS="REFSECT1" @@ -105,12 +104,21 @@ CLASS="FILENAME" password used in the connection. The format of the file is </P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" -> username = <value> - password = <value> - domain = <value> +> username = <value> + password = <value> + domain = <value> </PRE +></TD +></TR +></TABLE ></P ><P >Make certain that the permissions on the file restrict @@ -179,8 +187,8 @@ CLASS="PARAMETER" <TT CLASS="CONSTANT" >'.client'</TT -> will be appended. The log file is - never removed by the client. +> will be appended. The log file is never removed + by the client. </P ></DD ><DT @@ -194,20 +202,19 @@ CLASS="COMMAND" for a password. By default, <B CLASS="COMMAND" >rpcclient</B -> will - prompt for a password. See also the <TT +> will prompt + for a password. See also the <TT CLASS="PARAMETER" ><I >-U</I ></TT -> - option.</P +> option.</P ></DD ><DT >-s|--conf=smb.conf</DT ><DD ><P ->Specifies the location of the all-important +>Specifies the location of the all important <TT CLASS="FILENAME" >smb.conf</TT @@ -236,8 +243,8 @@ CLASS="CONSTANT" ><P >A third option is to use a credentials file which contains the plaintext of the username and password. This - option is mainly provided for scripts where the admin does not - wish to pass the credentials on the command line or via environment + option is mainly provided for scripts where the admin doesn't + desire to pass the credentials on the command line or via environment variables. If this method is used, make certain that the permissions on the file restrict access from unwanted users. See the <TT @@ -280,12 +287,8 @@ NAME="AEN101" ><H2 >COMMANDS</H2 ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->LSARPC</I -></SPAN +><EM +>LSARPC</EM ></P ><P ></P @@ -311,7 +314,7 @@ CLASS="COMMAND" ><B CLASS="COMMAND" >lookupnames</B -> - Resolve a list +> - Resolve s list of usernames to SIDs. </P ></LI @@ -326,12 +329,8 @@ CLASS="COMMAND" ><P > </P ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->SAMR</I -></SPAN +><EM +>SAMR</EM ></P ><P ></P @@ -396,12 +395,8 @@ CLASS="COMMAND" ><P > </P ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->SPOOLSS</I -></SPAN +><EM +>SPOOLSS</EM ></P ><P ></P @@ -410,7 +405,7 @@ CLASS="EMPHASIS" ><P ><B CLASS="COMMAND" ->adddriver <arch> <config></B +>adddriver <arch> <config></B > - Execute an AddPrinterDriver() RPC to install the printer driver information on the server. Note that the driver files should @@ -437,6 +432,12 @@ CLASS="PARAMETER" > parameter is defined as follows: </P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > Long Printer Name:\ @@ -448,6 +449,9 @@ CLASS="PROGRAMLISTING" Default Data Type:\ Comma Separated list of Files </PRE +></TD +></TR +></TABLE ></P ><P >Any empty fields should be enter as the string "NULL". </P @@ -463,8 +467,8 @@ CLASS="PROGRAMLISTING" ><P ><B CLASS="COMMAND" ->addprinter <printername> - <sharename> <drivername> <port></B +>addprinter <printername> + <sharename> <drivername> <port></B > - Add a printer on the remote server. This printer will be automatically shared. Be aware that the printer driver @@ -510,9 +514,9 @@ CLASS="COMMAND" ><P ><B CLASS="COMMAND" ->enumjobs <printer></B +>enumjobs <printer></B > - - List the jobs and status of a given printer. + - List the jobs and status of a given printer. This command corresponds to the MS Platform SDK EnumJobs() function (* This command is currently unimplemented).</P ></LI @@ -552,7 +556,7 @@ CLASS="COMMAND" ><P ><B CLASS="COMMAND" ->getdata <printername></B +>getdata <printername></B > - Retrieve the data for a given printer setting. See the <B @@ -566,7 +570,7 @@ CLASS="COMMAND" ><P ><B CLASS="COMMAND" ->getdriver <printername></B +>getdriver <printername></B > - Retrieve the printer driver information (such as driver file, config file, dependent files, etc...) for @@ -578,10 +582,10 @@ CLASS="COMMAND" ><P ><B CLASS="COMMAND" ->getdriverdir <arch></B +>getdriverdir <arch></B > - Execute a GetPrinterDriverDirectory() - RPC to retrieve the SMB share name and subdirectory for + RPC to retreive the SMB share name and subdirectory for storing printer driver files for a given architecture. Possible values for <TT CLASS="PARAMETER" @@ -596,7 +600,7 @@ CLASS="PARAMETER" ><P ><B CLASS="COMMAND" ->getprinter <printername></B +>getprinter <printername></B > - Retrieve the current printer information. This command corresponds to the GetPrinter() MS Platform SDK function. @@ -606,7 +610,7 @@ CLASS="COMMAND" ><P ><B CLASS="COMMAND" ->openprinter <printername></B +>openprinter <printername></B > - Execute an OpenPrinterEx() and ClosePrinter() RPC against a given printer. </P @@ -615,12 +619,11 @@ CLASS="COMMAND" ><P ><B CLASS="COMMAND" ->setdriver <printername> - <drivername></B -> - - Execute a SetPrinter() command to update the printer driver - associated with an installed printer. The printer driver must - already be correctly installed on the print server. </P +>setdriver <printername> <drivername></B +> + - Execute a SetPrinter() command to update the printer driver associated + with an installed printer. The printer driver must already be correctly + installed on the print server. </P ><P >See also the <B CLASS="COMMAND" @@ -634,12 +637,8 @@ CLASS="COMMAND" ></LI ></UL ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->GENERAL OPTIONS</I -></SPAN +><EM +>GENERAL OPTIONS</EM ></P ><P ></P @@ -649,8 +648,8 @@ CLASS="EMPHASIS" ><B CLASS="COMMAND" >debuglevel</B -> - Set the current - debug level used to log information.</P +> - Set the current debug level + used to log information.</P ></LI ><LI ><P @@ -692,12 +691,8 @@ CLASS="COMMAND" ><P >From Luke Leighton's original rpcclient man page:</P ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->"WARNING!</I -></SPAN +><EM +>"WARNING!</EM > The MSRPC over SMB code has been developed from examining Network traces. No documentation is available from the original creators (Microsoft) on how MSRPC over diff --git a/docs/htmldocs/samba.7.html b/docs/htmldocs/samba.7.html index 0851e99bd5..6fb9eac578 100644 --- a/docs/htmldocs/samba.7.html +++ b/docs/htmldocs/samba.7.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >samba</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="SAMBA" -></A ->samba</H1 +>samba</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -50,13 +49,8 @@ NAME="AEN11" >The Samba software suite is a collection of programs that implements the Server Message Block (commonly abbreviated as SMB) protocol for UNIX systems. This protocol is sometimes - also referred to as the Common Internet File System (CIFS). For a - more thorough description, see <A -HREF="http://www.ubiqx.org/cifs/" -TARGET="_top" -> http://www.ubiqx.org/cifs/</A ->. Samba also implements the NetBIOS - protocol in nmbd.</P + also referred to as the Common Internet File System (CIFS), + LanManager or NetBIOS protocol.</P ><P ></P ><DIV @@ -93,7 +87,7 @@ CLASS="COMMAND" CLASS="COMMAND" >nmbd</B > - daemon provides NetBIOS nameservice and browsing + daemon provides NetBIOS nameserving and browsing support. The configuration file for this daemon is described in <TT CLASS="FILENAME" @@ -148,7 +142,7 @@ CLASS="COMMAND" utility supports testing printer names defined in your <TT CLASS="FILENAME" ->printcap</TT +>printcap></TT > file used by Samba.</P ></DD @@ -220,7 +214,7 @@ CLASS="COMMAND" ><DIV CLASS="REFSECT1" ><A -NAME="AEN76" +NAME="AEN75" ></A ><H2 >COMPONENTS</H2 @@ -229,27 +223,17 @@ NAME="AEN76" component is described in a separate manual page. It is strongly recommended that you read the documentation that comes with Samba and the manual pages of those components that you use. If the - manual pages and documents aren't clear enough then please visit - <A -HREF="http://devel.samba.org/" -TARGET="_top" ->http://devel.samba.org</A -> - for information on how to file a bug report or submit a patch.</P -><P ->If you require help, visit the Samba webpage at - <A -HREF="http://samba.org/" + manual pages aren't clear enough then please send a patch or + bug report to <A +HREF="mailto:samba@samba.org" TARGET="_top" ->http://www.samba.org/</A -> and - explore the many option available to you. - </P +> samba@samba.org</A +></P ></DIV ><DIV CLASS="REFSECT1" ><A -NAME="AEN82" +NAME="AEN79" ></A ><H2 >AVAILABILITY</H2 @@ -286,7 +270,7 @@ TARGET="_top" ><DIV CLASS="REFSECT1" ><A -NAME="AEN90" +NAME="AEN87" ></A ><H2 >VERSION</H2 @@ -297,7 +281,7 @@ NAME="AEN90" ><DIV CLASS="REFSECT1" ><A -NAME="AEN93" +NAME="AEN90" ></A ><H2 >CONTRIBUTIONS</H2 @@ -311,14 +295,11 @@ TARGET="_top" >. </P ><P ->If you have patches to submit, visit - <A -HREF="http://devel.samba.org/" -TARGET="_top" ->http://devel.samba.org/</A -> - for information on how to do it properly. We prefer patches in - <B +>If you have patches to submit or bugs to report + then you may mail them directly to samba-patches@samba.org. + Note, however, that due to the enormous popularity of this + package the Samba Team may take some time to respond to mail. We + prefer patches in <B CLASS="COMMAND" >diff -u</B > format.</P @@ -326,7 +307,7 @@ CLASS="COMMAND" ><DIV CLASS="REFSECT1" ><A -NAME="AEN100" +NAME="AEN96" ></A ><H2 >CONTRIBUTORS</H2 @@ -358,7 +339,7 @@ TARGET="_top" ><DIV CLASS="REFSECT1" ><A -NAME="AEN107" +NAME="AEN103" ></A ><H2 >AUTHOR</H2 diff --git a/docs/htmldocs/securitylevels.html b/docs/htmldocs/security_level.html index 20850b99d3..e26e1ea78b 100644 --- a/docs/htmldocs/securitylevels.html +++ b/docs/htmldocs/security_level.html @@ -1,85 +1,36 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Security levels</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="Debugging Printing Problems" -HREF="printingdebug.html"><LINK -REL="NEXT" -TITLE="security = domain in Samba 2.x" -HREF="domain-security.html"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY -CLASS="CHAPTER" +CLASS="ARTICLE" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="printingdebug.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="domain-security.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV +CLASS="ARTICLE" ><DIV -CLASS="CHAPTER" +CLASS="TITLEPAGE" ><H1 +CLASS="TITLE" ><A -NAME="SECURITYLEVELS" -></A ->Chapter 9. Security levels</H1 +NAME="SECURITY_LEVELS" +>Security levels</A +></H1 +><HR></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN1231" -></A ->9.1. Introduction</H1 +NAME="AEN3" +>Introduction</A +></H1 ><P >Samba supports the following options to the global smb.conf parameter</P ><P @@ -120,12 +71,12 @@ Windows NT server, the later natively capable of encrypted password support.</P ></DIV ><DIV CLASS="SECT1" -><H1 +><HR><H1 CLASS="SECT1" ><A -NAME="AEN1242" -></A ->9.2. More complete description of security levels</H1 +NAME="AEN14" +>More complete description of security levels</A +></H1 ><P >A SMB server tells the client at startup what "security level" it is running. There are two options "share level" and "user level". Which @@ -213,64 +164,6 @@ to SMB style encryption, although there are some fairly simple management schemes by which the two could be kept in sync.</P ></DIV ></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="printingdebug.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="domain-security.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Debugging Printing Problems</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->security = domain in Samba 2.x</TD -></TR -></TABLE -></DIV ></BODY ></HTML >
\ No newline at end of file diff --git a/docs/htmldocs/smb.conf.5.html b/docs/htmldocs/smb.conf.5.html index 14820cb623..5d1cc21da7 100644 --- a/docs/htmldocs/smb.conf.5.html +++ b/docs/htmldocs/smb.conf.5.html @@ -5,7 +5,8 @@ >smb.conf</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ +"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -15,9 +16,7 @@ VLINK="#840084" ALINK="#0000FF" ><H1 ><A -NAME="SMB.CONF" -></A ->smb.conf</H1 +NAME="SMB.CONF">smb.conf</H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -184,7 +183,7 @@ CLASS="SCREEN" CLASS="COMPUTEROUTPUT" > [foo] path = /home/bar - read only = no + writeable = true </TT > </PRE @@ -207,9 +206,9 @@ CLASS="SCREEN" CLASS="COMPUTEROUTPUT" > [aprinter] path = /usr/spool/public - read only = yes - printable = yes - guest ok = yes + writeable = false + printable = true + guest ok = true </TT > </PRE @@ -309,7 +308,7 @@ CLASS="SCREEN" > <TT CLASS="COMPUTEROUTPUT" > [homes] - read only = no + writeable = yes </TT > </PRE @@ -901,7 +900,7 @@ NAME="AEN255" ><LI ><P ><A -HREF="#ABORTSHUTDOWNSCRIPT" +HREF="index.html#ABORTSHUTDOWNSCRIPT" ><TT CLASS="PARAMETER" ><I @@ -913,7 +912,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ADDGROUPSCRIPT" +HREF="index.html#ADDGROUPSCRIPT" ><TT CLASS="PARAMETER" ><I @@ -925,7 +924,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ADDPRINTERCOMMAND" +HREF="index.html#ADDPRINTERCOMMAND" ><TT CLASS="PARAMETER" ><I @@ -937,7 +936,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ADDSHARECOMMAND" +HREF="index.html#ADDSHARECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -949,7 +948,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ADDUSERSCRIPT" +HREF="index.html#ADDUSERSCRIPT" ><TT CLASS="PARAMETER" ><I @@ -961,7 +960,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ADDUSERTOGROUPSCRIPT" +HREF="index.html#ADDUSERTOGROUPSCRIPT" ><TT CLASS="PARAMETER" ><I @@ -973,7 +972,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ADDMACHINESCRIPT" +HREF="index.html#ADDMACHINESCRIPT" ><TT CLASS="PARAMETER" ><I @@ -985,7 +984,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DELETEGROUPSCRIPT" +HREF="index.html#DELETEGROUPSCRIPT" ><TT CLASS="PARAMETER" ><I @@ -997,7 +996,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ADSSERVER" +HREF="index.html#ADSSERVER" ><TT CLASS="PARAMETER" ><I @@ -1009,7 +1008,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ALGORITHMICRIDBASE" +HREF="index.html#ALGORITHMICRIDBASE" ><TT CLASS="PARAMETER" ><I @@ -1021,7 +1020,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ALLOWTRUSTEDDOMAINS" +HREF="index.html#ALLOWTRUSTEDDOMAINS" ><TT CLASS="PARAMETER" ><I @@ -1033,7 +1032,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ANNOUNCEAS" +HREF="index.html#ANNOUNCEAS" ><TT CLASS="PARAMETER" ><I @@ -1045,7 +1044,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ANNOUNCEVERSION" +HREF="index.html#ANNOUNCEVERSION" ><TT CLASS="PARAMETER" ><I @@ -1057,7 +1056,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#AUTHMETHODS" +HREF="index.html#AUTHMETHODS" ><TT CLASS="PARAMETER" ><I @@ -1069,7 +1068,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#AUTOSERVICES" +HREF="index.html#AUTOSERVICES" ><TT CLASS="PARAMETER" ><I @@ -1081,7 +1080,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#BINDINTERFACESONLY" +HREF="index.html#BINDINTERFACESONLY" ><TT CLASS="PARAMETER" ><I @@ -1093,7 +1092,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#BROWSELIST" +HREF="index.html#BROWSELIST" ><TT CLASS="PARAMETER" ><I @@ -1105,7 +1104,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#CHANGENOTIFYTIMEOUT" +HREF="index.html#CHANGENOTIFYTIMEOUT" ><TT CLASS="PARAMETER" ><I @@ -1117,7 +1116,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#CHANGESHARECOMMAND" +HREF="index.html#CHANGESHARECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -1129,7 +1128,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#CONFIGFILE" +HREF="index.html#CONFIGFILE" ><TT CLASS="PARAMETER" ><I @@ -1141,7 +1140,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DEADTIME" +HREF="index.html#DEADTIME" ><TT CLASS="PARAMETER" ><I @@ -1153,7 +1152,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DEBUGHIRESTIMESTAMP" +HREF="index.html#DEBUGHIRESTIMESTAMP" ><TT CLASS="PARAMETER" ><I @@ -1165,7 +1164,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DEBUGPID" +HREF="index.html#DEBUGPID" ><TT CLASS="PARAMETER" ><I @@ -1177,7 +1176,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DEBUGTIMESTAMP" +HREF="index.html#DEBUGTIMESTAMP" ><TT CLASS="PARAMETER" ><I @@ -1189,7 +1188,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DEBUGUID" +HREF="index.html#DEBUGUID" ><TT CLASS="PARAMETER" ><I @@ -1201,7 +1200,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DEBUGLEVEL" +HREF="index.html#DEBUGLEVEL" ><TT CLASS="PARAMETER" ><I @@ -1213,7 +1212,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DEFAULT" +HREF="index.html#DEFAULT" ><TT CLASS="PARAMETER" ><I @@ -1225,7 +1224,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DEFAULTSERVICE" +HREF="index.html#DEFAULTSERVICE" ><TT CLASS="PARAMETER" ><I @@ -1237,7 +1236,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DELETEPRINTERCOMMAND" +HREF="index.html#DELETEPRINTERCOMMAND" ><TT CLASS="PARAMETER" ><I @@ -1249,7 +1248,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DELETESHARECOMMAND" +HREF="index.html#DELETESHARECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -1261,7 +1260,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DELETEUSERSCRIPT" +HREF="index.html#DELETEUSERSCRIPT" ><TT CLASS="PARAMETER" ><I @@ -1273,7 +1272,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DELETEUSERFROMGROUPSCRIPT" +HREF="index.html#DELETEUSERFROMGROUPSCRIPT" ><TT CLASS="PARAMETER" ><I @@ -1285,7 +1284,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DFREECOMMAND" +HREF="index.html#DFREECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -1297,7 +1296,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DISABLENETBIOS" +HREF="index.html#DISABLENETBIOS" ><TT CLASS="PARAMETER" ><I @@ -1309,7 +1308,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DISABLESPOOLSS" +HREF="index.html#DISABLESPOOLSS" ><TT CLASS="PARAMETER" ><I @@ -1321,7 +1320,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DISPLAYCHARSET" +HREF="index.html#DISPLAYCHARSET" ><TT CLASS="PARAMETER" ><I @@ -1333,7 +1332,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DNSPROXY" +HREF="index.html#DNSPROXY" ><TT CLASS="PARAMETER" ><I @@ -1345,11 +1344,11 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DOMAINLOGONS" +HREF="index.html#DOMAINADMINGROUP" ><TT CLASS="PARAMETER" ><I ->domain logons</I +>domain admin group</I ></TT ></A ></P @@ -1357,11 +1356,11 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DOMAINMASTER" +HREF="index.html#DOMAINGUESTGROUP" ><TT CLASS="PARAMETER" ><I ->domain master</I +>domain guest group</I ></TT ></A ></P @@ -1369,11 +1368,11 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DOSCHARSET" +HREF="index.html#DOMAINLOGONS" ><TT CLASS="PARAMETER" ><I ->dos charset</I +>domain logons</I ></TT ></A ></P @@ -1381,11 +1380,11 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ENCRYPTPASSWORDS" +HREF="index.html#DOMAINMASTER" ><TT CLASS="PARAMETER" ><I ->encrypt passwords</I +>domain master</I ></TT ></A ></P @@ -1393,11 +1392,11 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ENHANCEDBROWSING" +HREF="index.html#DOSCHARSET" ><TT CLASS="PARAMETER" ><I ->enhanced browsing</I +>dos charset</I ></TT ></A ></P @@ -1405,11 +1404,11 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ENUMPORTSCOMMAND" +HREF="index.html#ENCRYPTPASSWORDS" ><TT CLASS="PARAMETER" ><I ->enumports command</I +>encrypt passwords</I ></TT ></A ></P @@ -1417,11 +1416,11 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#GETWDCACHE" +HREF="index.html#ENHANCEDBROWSING" ><TT CLASS="PARAMETER" ><I ->getwd cache</I +>enhanced browsing</I ></TT ></A ></P @@ -1429,11 +1428,11 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#HIDELOCALUSERS" +HREF="index.html#ENUMPORTSCOMMAND" ><TT CLASS="PARAMETER" ><I ->hide local users</I +>enumports command</I ></TT ></A ></P @@ -1441,11 +1440,11 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#HIDEUNREADABLE" +HREF="index.html#GETWDCACHE" ><TT CLASS="PARAMETER" ><I ->hide unreadable</I +>getwd cache</I ></TT ></A ></P @@ -1453,11 +1452,11 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#HIDEUNWRITEABLEFILES" +HREF="index.html#HIDELOCALUSERS" ><TT CLASS="PARAMETER" ><I ->hide unwriteable files</I +>hide local users</I ></TT ></A ></P @@ -1465,11 +1464,11 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#HIDESPECIALFILES" +HREF="index.html#HIDEUNREADABLE" ><TT CLASS="PARAMETER" ><I ->hide special files</I +>hide unreadable</I ></TT ></A ></P @@ -1477,7 +1476,19 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#HOMEDIRMAP" +HREF="index.html#HIDEUNWRITEABLEFILES" +><TT +CLASS="PARAMETER" +><I +>hide unwriteable files</I +></TT +></A +></P +></LI +><LI +><P +><A +HREF="index.html#HOMEDIRMAP" ><TT CLASS="PARAMETER" ><I @@ -1489,7 +1500,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#HOSTMSDFS" +HREF="index.html#HOSTMSDFS" ><TT CLASS="PARAMETER" ><I @@ -1501,7 +1512,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#HOSTNAMELOOKUPS" +HREF="index.html#HOSTNAMELOOKUPS" ><TT CLASS="PARAMETER" ><I @@ -1513,7 +1524,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#HOSTSEQUIV" +HREF="index.html#HOSTSEQUIV" ><TT CLASS="PARAMETER" ><I @@ -1525,7 +1536,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#INTERFACES" +HREF="index.html#INTERFACES" ><TT CLASS="PARAMETER" ><I @@ -1537,7 +1548,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#KEEPALIVE" +HREF="index.html#KEEPALIVE" ><TT CLASS="PARAMETER" ><I @@ -1549,7 +1560,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#KERNELOPLOCKS" +HREF="index.html#KERNELOPLOCKS" ><TT CLASS="PARAMETER" ><I @@ -1561,7 +1572,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LANMANAUTH" +HREF="index.html#LANMANAUTH" ><TT CLASS="PARAMETER" ><I @@ -1573,7 +1584,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LARGEREADWRITE" +HREF="index.html#LARGEREADWRITE" ><TT CLASS="PARAMETER" ><I @@ -1585,7 +1596,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LDAPADMINDN" +HREF="index.html#LDAPADMINDN" ><TT CLASS="PARAMETER" ><I @@ -1597,7 +1608,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LDAPFILTER" +HREF="index.html#LDAPFILTER" ><TT CLASS="PARAMETER" ><I @@ -1609,7 +1620,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LDAPSSL" +HREF="index.html#LDAPSSL" ><TT CLASS="PARAMETER" ><I @@ -1621,7 +1632,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LDAPSUFFIX" +HREF="index.html#LDAPSUFFIX" ><TT CLASS="PARAMETER" ><I @@ -1633,23 +1644,11 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LDAPUSERSUFFIX" -><TT -CLASS="PARAMETER" -><I ->ldap user suffix</I -></TT -></A -></P -></LI -><LI -><P -><A -HREF="#LDAPMACHINESUFFIX" +HREF="index.html#LDAPUSERSUFFIX" ><TT CLASS="PARAMETER" ><I ->ldap machine suffix</I +>ldap suffix</I ></TT ></A ></P @@ -1657,11 +1656,11 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LDAPPASSWDSYNC" +HREF="index.html#LDAPMACHINESUFFIX" ><TT CLASS="PARAMETER" ><I ->ldap passwd sync</I +>ldap suffix</I ></TT ></A ></P @@ -1669,7 +1668,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LMANNOUNCE" +HREF="index.html#LMANNOUNCE" ><TT CLASS="PARAMETER" ><I @@ -1681,7 +1680,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LMINTERVAL" +HREF="index.html#LMINTERVAL" ><TT CLASS="PARAMETER" ><I @@ -1693,7 +1692,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LOADPRINTERS" +HREF="index.html#LOADPRINTERS" ><TT CLASS="PARAMETER" ><I @@ -1705,7 +1704,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LOCALMASTER" +HREF="index.html#LOCALMASTER" ><TT CLASS="PARAMETER" ><I @@ -1717,7 +1716,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LOCKDIR" +HREF="index.html#LOCKDIR" ><TT CLASS="PARAMETER" ><I @@ -1729,7 +1728,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LOCKDIRECTORY" +HREF="index.html#LOCKDIRECTORY" ><TT CLASS="PARAMETER" ><I @@ -1741,7 +1740,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LOCKSPINCOUNT" +HREF="index.html#LOCKSPINCOUNT" ><TT CLASS="PARAMETER" ><I @@ -1753,7 +1752,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LOCKSPINTIME" +HREF="index.html#LOCKSPINTIME" ><TT CLASS="PARAMETER" ><I @@ -1765,7 +1764,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PIDDIRECTORY" +HREF="index.html#PIDDIRECTORY" ><TT CLASS="PARAMETER" ><I @@ -1777,7 +1776,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LOGFILE" +HREF="index.html#LOGFILE" ><TT CLASS="PARAMETER" ><I @@ -1789,7 +1788,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LOGLEVEL" +HREF="index.html#LOGLEVEL" ><TT CLASS="PARAMETER" ><I @@ -1801,7 +1800,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LOGONDRIVE" +HREF="index.html#LOGONDRIVE" ><TT CLASS="PARAMETER" ><I @@ -1813,7 +1812,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LOGONHOME" +HREF="index.html#LOGONHOME" ><TT CLASS="PARAMETER" ><I @@ -1825,7 +1824,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LOGONPATH" +HREF="index.html#LOGONPATH" ><TT CLASS="PARAMETER" ><I @@ -1837,7 +1836,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LOGONSCRIPT" +HREF="index.html#LOGONSCRIPT" ><TT CLASS="PARAMETER" ><I @@ -1849,7 +1848,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LPQCACHETIME" +HREF="index.html#LPQCACHETIME" ><TT CLASS="PARAMETER" ><I @@ -1861,7 +1860,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MACHINEPASSWORDTIMEOUT" +HREF="index.html#MACHINEPASSWORDTIMEOUT" ><TT CLASS="PARAMETER" ><I @@ -1873,7 +1872,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MANGLEDSTACK" +HREF="index.html#MANGLEDSTACK" ><TT CLASS="PARAMETER" ><I @@ -1885,7 +1884,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAPTOGUEST" +HREF="index.html#MAPTOGUEST" ><TT CLASS="PARAMETER" ><I @@ -1897,7 +1896,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAXDISKSIZE" +HREF="index.html#MAXDISKSIZE" ><TT CLASS="PARAMETER" ><I @@ -1909,7 +1908,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAXLOGSIZE" +HREF="index.html#MAXLOGSIZE" ><TT CLASS="PARAMETER" ><I @@ -1921,7 +1920,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAXMUX" +HREF="index.html#MAXMUX" ><TT CLASS="PARAMETER" ><I @@ -1933,7 +1932,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAXOPENFILES" +HREF="index.html#MAXOPENFILES" ><TT CLASS="PARAMETER" ><I @@ -1945,7 +1944,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAXPROTOCOL" +HREF="index.html#MAXPROTOCOL" ><TT CLASS="PARAMETER" ><I @@ -1957,7 +1956,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAXSMBDPROCESSES" +HREF="index.html#MAXSMBDPROCESSES" ><TT CLASS="PARAMETER" ><I @@ -1969,7 +1968,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAXTTL" +HREF="index.html#MAXTTL" ><TT CLASS="PARAMETER" ><I @@ -1981,7 +1980,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAXWINSTTL" +HREF="index.html#MAXWINSTTL" ><TT CLASS="PARAMETER" ><I @@ -1993,7 +1992,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAXXMIT" +HREF="index.html#MAXXMIT" ><TT CLASS="PARAMETER" ><I @@ -2005,7 +2004,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MESSAGECOMMAND" +HREF="index.html#MESSAGECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -2017,7 +2016,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MINPASSWDLENGTH" +HREF="index.html#MINPASSWDLENGTH" ><TT CLASS="PARAMETER" ><I @@ -2029,7 +2028,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MINPASSWORDLENGTH" +HREF="index.html#MINPASSWORDLENGTH" ><TT CLASS="PARAMETER" ><I @@ -2041,7 +2040,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MINPROTOCOL" +HREF="index.html#MINPROTOCOL" ><TT CLASS="PARAMETER" ><I @@ -2053,7 +2052,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MINWINSTTL" +HREF="index.html#MINWINSTTL" ><TT CLASS="PARAMETER" ><I @@ -2065,7 +2064,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#NAMECACHETIMEOUT" +HREF="index.html#NAMECACHETIMEOUT" ><TT CLASS="PARAMETER" ><I @@ -2077,7 +2076,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#NAMERESOLVEORDER" +HREF="index.html#NAMERESOLVEORDER" ><TT CLASS="PARAMETER" ><I @@ -2089,7 +2088,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#NETBIOSALIASES" +HREF="index.html#NETBIOSALIASES" ><TT CLASS="PARAMETER" ><I @@ -2101,7 +2100,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#NETBIOSNAME" +HREF="index.html#NETBIOSNAME" ><TT CLASS="PARAMETER" ><I @@ -2113,7 +2112,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#NETBIOSSCOPE" +HREF="index.html#NETBIOSSCOPE" ><TT CLASS="PARAMETER" ><I @@ -2125,7 +2124,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#NISHOMEDIR" +HREF="index.html#NISHOMEDIR" ><TT CLASS="PARAMETER" ><I @@ -2137,7 +2136,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#NTLMAUTH" +HREF="index.html#NTLMAUTH" ><TT CLASS="PARAMETER" ><I @@ -2149,7 +2148,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#NONUNIXACCOUNTRANGE" +HREF="index.html#NONUNIXACCOUNTRANGE" ><TT CLASS="PARAMETER" ><I @@ -2161,7 +2160,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#NTPIPESUPPORT" +HREF="index.html#NTPIPESUPPORT" ><TT CLASS="PARAMETER" ><I @@ -2173,7 +2172,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#NTSTATUSSUPPORT" +HREF="index.html#NTSTATUSSUPPORT" ><TT CLASS="PARAMETER" ><I @@ -2185,7 +2184,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#NULLPASSWORDS" +HREF="index.html#NULLPASSWORDS" ><TT CLASS="PARAMETER" ><I @@ -2197,7 +2196,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#OBEYPAMRESTRICTIONS" +HREF="index.html#OBEYPAMRESTRICTIONS" ><TT CLASS="PARAMETER" ><I @@ -2209,7 +2208,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#OPLOCKBREAKWAITTIME" +HREF="index.html#OPLOCKBREAKWAITTIME" ><TT CLASS="PARAMETER" ><I @@ -2221,7 +2220,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#OSLEVEL" +HREF="index.html#OSLEVEL" ><TT CLASS="PARAMETER" ><I @@ -2233,7 +2232,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#OS2DRIVERMAP" +HREF="index.html#OS2DRIVERMAP" ><TT CLASS="PARAMETER" ><I @@ -2245,7 +2244,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PAMPASSWORDCHANGE" +HREF="index.html#PAMPASSWORDCHANGE" ><TT CLASS="PARAMETER" ><I @@ -2257,7 +2256,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PANICACTION" +HREF="index.html#PANICACTION" ><TT CLASS="PARAMETER" ><I @@ -2269,7 +2268,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PARANOIDSERVERSECURITY" +HREF="index.html#PARANOIDSERVERSECURITY" ><TT CLASS="PARAMETER" ><I @@ -2281,7 +2280,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PASSDBBACKEND" +HREF="index.html#PASSDBBACKEND" ><TT CLASS="PARAMETER" ><I @@ -2293,7 +2292,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PASSWDCHAT" +HREF="index.html#PASSWDCHAT" ><TT CLASS="PARAMETER" ><I @@ -2305,7 +2304,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PASSWDCHATDEBUG" +HREF="index.html#PASSWDCHATDEBUG" ><TT CLASS="PARAMETER" ><I @@ -2317,7 +2316,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PASSWDPROGRAM" +HREF="index.html#PASSWDPROGRAM" ><TT CLASS="PARAMETER" ><I @@ -2329,7 +2328,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PASSWORDLEVEL" +HREF="index.html#PASSWORDLEVEL" ><TT CLASS="PARAMETER" ><I @@ -2341,7 +2340,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PASSWORDSERVER" +HREF="index.html#PASSWORDSERVER" ><TT CLASS="PARAMETER" ><I @@ -2353,7 +2352,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PREFEREDMASTER" +HREF="index.html#PREFEREDMASTER" ><TT CLASS="PARAMETER" ><I @@ -2365,7 +2364,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PREFERREDMASTER" +HREF="index.html#PREFERREDMASTER" ><TT CLASS="PARAMETER" ><I @@ -2377,7 +2376,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PRELOAD" +HREF="index.html#PRELOAD" ><TT CLASS="PARAMETER" ><I @@ -2389,7 +2388,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PRINTCAP" +HREF="index.html#PRINTCAP" ><TT CLASS="PARAMETER" ><I @@ -2401,7 +2400,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PRINTCAPNAME" +HREF="index.html#PRINTCAPNAME" ><TT CLASS="PARAMETER" ><I @@ -2413,7 +2412,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PRINTERDRIVERFILE" +HREF="index.html#PRINTERDRIVERFILE" ><TT CLASS="PARAMETER" ><I @@ -2425,7 +2424,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PRIVATEDIR" +HREF="index.html#PRIVATEDIR" ><TT CLASS="PARAMETER" ><I @@ -2437,7 +2436,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PROTOCOL" +HREF="index.html#PROTOCOL" ><TT CLASS="PARAMETER" ><I @@ -2449,7 +2448,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#READBMPX" +HREF="index.html#READBMPX" ><TT CLASS="PARAMETER" ><I @@ -2461,7 +2460,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#READRAW" +HREF="index.html#READRAW" ><TT CLASS="PARAMETER" ><I @@ -2473,7 +2472,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#READSIZE" +HREF="index.html#READSIZE" ><TT CLASS="PARAMETER" ><I @@ -2485,7 +2484,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#REALM" +HREF="index.html#REALM" ><TT CLASS="PARAMETER" ><I @@ -2497,7 +2496,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#REMOTEANNOUNCE" +HREF="index.html#REMOTEANNOUNCE" ><TT CLASS="PARAMETER" ><I @@ -2509,7 +2508,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#REMOTEBROWSESYNC" +HREF="index.html#REMOTEBROWSESYNC" ><TT CLASS="PARAMETER" ><I @@ -2521,7 +2520,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#RESTRICTANONYMOUS" +HREF="index.html#RESTRICTANONYMOUS" ><TT CLASS="PARAMETER" ><I @@ -2533,7 +2532,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ROOT" +HREF="index.html#ROOT" ><TT CLASS="PARAMETER" ><I @@ -2545,7 +2544,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ROOTDIR" +HREF="index.html#ROOTDIR" ><TT CLASS="PARAMETER" ><I @@ -2557,7 +2556,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ROOTDIRECTORY" +HREF="index.html#ROOTDIRECTORY" ><TT CLASS="PARAMETER" ><I @@ -2569,7 +2568,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SECURITY" +HREF="index.html#SECURITY" ><TT CLASS="PARAMETER" ><I @@ -2581,7 +2580,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SERVERSTRING" +HREF="index.html#SERVERSTRING" ><TT CLASS="PARAMETER" ><I @@ -2593,7 +2592,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SHOWADDPRINTERWIZARD" +HREF="index.html#SHOWADDPRINTERWIZARD" ><TT CLASS="PARAMETER" ><I @@ -2605,7 +2604,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SHUTDOWNSCRIPT" +HREF="index.html#SHUTDOWNSCRIPT" ><TT CLASS="PARAMETER" ><I @@ -2617,7 +2616,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SMBPASSWDFILE" +HREF="index.html#SMBPASSWDFILE" ><TT CLASS="PARAMETER" ><I @@ -2629,7 +2628,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SMBPORTS" +HREF="index.html#SMBPORTS" ><TT CLASS="PARAMETER" ><I @@ -2641,7 +2640,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SOCKETADDRESS" +HREF="index.html#SOCKETADDRESS" ><TT CLASS="PARAMETER" ><I @@ -2653,7 +2652,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SOCKETOPTIONS" +HREF="index.html#SOCKETOPTIONS" ><TT CLASS="PARAMETER" ><I @@ -2665,7 +2664,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SOURCEENVIRONMENT" +HREF="index.html#SOURCEENVIRONMENT" ><TT CLASS="PARAMETER" ><I @@ -2677,7 +2676,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SPNEGO" +HREF="index.html#SPNEGO" ><TT CLASS="PARAMETER" ><I @@ -2689,7 +2688,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#STATCACHE" +HREF="index.html#STATCACHE" ><TT CLASS="PARAMETER" ><I @@ -2701,7 +2700,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#STATCACHESIZE" +HREF="index.html#STATCACHESIZE" ><TT CLASS="PARAMETER" ><I @@ -2713,7 +2712,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#STRIPDOT" +HREF="index.html#STRIPDOT" ><TT CLASS="PARAMETER" ><I @@ -2725,7 +2724,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SYSLOG" +HREF="index.html#SYSLOG" ><TT CLASS="PARAMETER" ><I @@ -2737,7 +2736,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SYSLOGONLY" +HREF="index.html#SYSLOGONLY" ><TT CLASS="PARAMETER" ><I @@ -2749,7 +2748,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#TEMPLATEHOMEDIR" +HREF="index.html#TEMPLATEHOMEDIR" ><TT CLASS="PARAMETER" ><I @@ -2761,7 +2760,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#TEMPLATESHELL" +HREF="index.html#TEMPLATESHELL" ><TT CLASS="PARAMETER" ><I @@ -2773,7 +2772,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#TIMEOFFSET" +HREF="index.html#TIMEOFFSET" ><TT CLASS="PARAMETER" ><I @@ -2785,7 +2784,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#TIMESERVER" +HREF="index.html#TIMESERVER" ><TT CLASS="PARAMETER" ><I @@ -2797,7 +2796,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#TIMESTAMPLOGS" +HREF="index.html#TIMESTAMPLOGS" ><TT CLASS="PARAMETER" ><I @@ -2809,7 +2808,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#TOTALPRINTJOBS" +HREF="index.html#TOTALPRINTJOBS" ><TT CLASS="PARAMETER" ><I @@ -2821,7 +2820,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#UNICODE" +HREF="index.html#UNICODE" ><TT CLASS="PARAMETER" ><I @@ -2833,7 +2832,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#UNIXCHARSET" +HREF="index.html#UNIXCHARSET" ><TT CLASS="PARAMETER" ><I @@ -2845,7 +2844,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#UNIXEXTENSIONS" +HREF="index.html#UNIXEXTENSIONS" ><TT CLASS="PARAMETER" ><I @@ -2857,7 +2856,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#UNIXPASSWORDSYNC" +HREF="index.html#UNIXPASSWORDSYNC" ><TT CLASS="PARAMETER" ><I @@ -2869,7 +2868,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#UPDATEENCRYPTED" +HREF="index.html#UPDATEENCRYPTED" ><TT CLASS="PARAMETER" ><I @@ -2881,7 +2880,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#USEMMAP" +HREF="index.html#USEMMAP" ><TT CLASS="PARAMETER" ><I @@ -2893,7 +2892,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#USERHOSTS" +HREF="index.html#USERHOSTS" ><TT CLASS="PARAMETER" ><I @@ -2905,19 +2904,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#USESENDFILE" -><TT -CLASS="PARAMETER" -><I ->use sendfile</I -></TT -></A -></P -></LI -><LI -><P -><A -HREF="#USERNAMELEVEL" +HREF="index.html#USERNAMELEVEL" ><TT CLASS="PARAMETER" ><I @@ -2929,7 +2916,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#USERNAMEMAP" +HREF="index.html#USERNAMEMAP" ><TT CLASS="PARAMETER" ><I @@ -2941,7 +2928,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#UTMP" +HREF="index.html#UTMP" ><TT CLASS="PARAMETER" ><I @@ -2953,7 +2940,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#UTMPDIRECTORY" +HREF="index.html#UTMPDIRECTORY" ><TT CLASS="PARAMETER" ><I @@ -2965,7 +2952,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WTMPDIRECTORY" +HREF="index.html#WTMPDIRECTORY" ><TT CLASS="PARAMETER" ><I @@ -2977,7 +2964,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WINBINDCACHETIME" +HREF="index.html#WINBINDCACHETIME" ><TT CLASS="PARAMETER" ><I @@ -2989,7 +2976,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WINBINDENUMUSERS" +HREF="index.html#WINBINDENUMUSERS" ><TT CLASS="PARAMETER" ><I @@ -3001,7 +2988,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WINBINDENUMGROUPS" +HREF="index.html#WINBINDENUMGROUPS" ><TT CLASS="PARAMETER" ><I @@ -3013,7 +3000,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WINBINDGID" +HREF="index.html#WINBINDGID" ><TT CLASS="PARAMETER" ><I @@ -3025,7 +3012,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WINBINDSEPARATOR" +HREF="index.html#WINBINDSEPARATOR" ><TT CLASS="PARAMETER" ><I @@ -3037,7 +3024,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WINBINDUID" +HREF="index.html#WINBINDUID" ><TT CLASS="PARAMETER" ><I @@ -3049,7 +3036,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WINBINDUSEDEFAULTDOMAIN" +HREF="index.html#WINBINDUSEDEFAULTDOMAIN" ><TT CLASS="PARAMETER" ><I @@ -3061,7 +3048,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WINSHOOK" +HREF="index.html#WINSHOOK" ><TT CLASS="PARAMETER" ><I @@ -3073,7 +3060,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WINSPARTNERS" +HREF="index.html#WINSPARTNERS" ><TT CLASS="PARAMETER" ><I @@ -3085,7 +3072,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WINSPROXY" +HREF="index.html#WINSPROXY" ><TT CLASS="PARAMETER" ><I @@ -3097,7 +3084,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WINSSERVER" +HREF="index.html#WINSSERVER" ><TT CLASS="PARAMETER" ><I @@ -3109,7 +3096,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WINSSUPPORT" +HREF="index.html#WINSSUPPORT" ><TT CLASS="PARAMETER" ><I @@ -3121,7 +3108,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WORKGROUP" +HREF="index.html#WORKGROUP" ><TT CLASS="PARAMETER" ><I @@ -3133,7 +3120,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WRITERAW" +HREF="index.html#WRITERAW" ><TT CLASS="PARAMETER" ><I @@ -3147,7 +3134,7 @@ CLASS="PARAMETER" ><DIV CLASS="REFSECT1" ><A -NAME="AEN1007" +NAME="AEN1003" ></A ><H2 >COMPLETE LIST OF SERVICE PARAMETERS</H2 @@ -3160,7 +3147,7 @@ NAME="AEN1007" ><LI ><P ><A -HREF="#ADMINUSERS" +HREF="index.html#ADMINUSERS" ><TT CLASS="PARAMETER" ><I @@ -3172,7 +3159,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ALLOWHOSTS" +HREF="index.html#ALLOWHOSTS" ><TT CLASS="PARAMETER" ><I @@ -3184,7 +3171,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#AVAILABLE" +HREF="index.html#AVAILABLE" ><TT CLASS="PARAMETER" ><I @@ -3196,7 +3183,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#BLOCKINGLOCKS" +HREF="index.html#BLOCKINGLOCKS" ><TT CLASS="PARAMETER" ><I @@ -3208,7 +3195,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#BLOCKSIZE" +HREF="index.html#BLOCKSIZE" ><TT CLASS="PARAMETER" ><I @@ -3220,7 +3207,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#BROWSABLE" +HREF="index.html#BROWSABLE" ><TT CLASS="PARAMETER" ><I @@ -3232,7 +3219,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#BROWSEABLE" +HREF="index.html#BROWSEABLE" ><TT CLASS="PARAMETER" ><I @@ -3244,7 +3231,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#CASESENSITIVE" +HREF="index.html#CASESENSITIVE" ><TT CLASS="PARAMETER" ><I @@ -3256,7 +3243,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#CASESIGNAMES" +HREF="index.html#CASESIGNAMES" ><TT CLASS="PARAMETER" ><I @@ -3268,7 +3255,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#COMMENT" +HREF="index.html#COMMENT" ><TT CLASS="PARAMETER" ><I @@ -3280,7 +3267,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#COPY" +HREF="index.html#COPY" ><TT CLASS="PARAMETER" ><I @@ -3292,7 +3279,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#CREATEMASK" +HREF="index.html#CREATEMASK" ><TT CLASS="PARAMETER" ><I @@ -3304,7 +3291,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#CREATEMODE" +HREF="index.html#CREATEMODE" ><TT CLASS="PARAMETER" ><I @@ -3316,7 +3303,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#CSCPOLICY" +HREF="index.html#CSCPOLICY" ><TT CLASS="PARAMETER" ><I @@ -3328,7 +3315,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DEFAULTCASE" +HREF="index.html#DEFAULTCASE" ><TT CLASS="PARAMETER" ><I @@ -3340,7 +3327,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DEFAULTDEVMODE" +HREF="index.html#DEFAULTDEVMODE" ><TT CLASS="PARAMETER" ><I @@ -3352,7 +3339,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DELETEREADONLY" +HREF="index.html#DELETEREADONLY" ><TT CLASS="PARAMETER" ><I @@ -3364,7 +3351,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DELETEVETOFILES" +HREF="index.html#DELETEVETOFILES" ><TT CLASS="PARAMETER" ><I @@ -3376,7 +3363,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DENYHOSTS" +HREF="index.html#DENYHOSTS" ><TT CLASS="PARAMETER" ><I @@ -3388,7 +3375,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DIRECTORY" +HREF="index.html#DIRECTORY" ><TT CLASS="PARAMETER" ><I @@ -3400,7 +3387,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DIRECTORYMASK" +HREF="index.html#DIRECTORYMASK" ><TT CLASS="PARAMETER" ><I @@ -3412,7 +3399,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DIRECTORYMODE" +HREF="index.html#DIRECTORYMODE" ><TT CLASS="PARAMETER" ><I @@ -3424,7 +3411,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DIRECTORYSECURITYMASK" +HREF="index.html#DIRECTORYSECURITYMASK" ><TT CLASS="PARAMETER" ><I @@ -3436,7 +3423,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DONTDESCEND" +HREF="index.html#DONTDESCEND" ><TT CLASS="PARAMETER" ><I @@ -3448,7 +3435,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DOSFILEMODE" +HREF="index.html#DOSFILEMODE" ><TT CLASS="PARAMETER" ><I @@ -3460,7 +3447,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DOSFILETIMERESOLUTION" +HREF="index.html#DOSFILETIMERESOLUTION" ><TT CLASS="PARAMETER" ><I @@ -3472,7 +3459,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#DOSFILETIMES" +HREF="index.html#DOSFILETIMES" ><TT CLASS="PARAMETER" ><I @@ -3484,7 +3471,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#EXEC" +HREF="index.html#EXEC" ><TT CLASS="PARAMETER" ><I @@ -3496,7 +3483,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#FAKEDIRECTORYCREATETIMES" +HREF="index.html#FAKEDIRECTORYCREATETIMES" ><TT CLASS="PARAMETER" ><I @@ -3508,7 +3495,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#FAKEOPLOCKS" +HREF="index.html#FAKEOPLOCKS" ><TT CLASS="PARAMETER" ><I @@ -3520,7 +3507,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#FOLLOWSYMLINKS" +HREF="index.html#FOLLOWSYMLINKS" ><TT CLASS="PARAMETER" ><I @@ -3532,7 +3519,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#FORCECREATEMODE" +HREF="index.html#FORCECREATEMODE" ><TT CLASS="PARAMETER" ><I @@ -3544,7 +3531,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#FORCEDIRECTORYMODE" +HREF="index.html#FORCEDIRECTORYMODE" ><TT CLASS="PARAMETER" ><I @@ -3556,7 +3543,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#FORCEDIRECTORYSECURITYMODE" +HREF="index.html#FORCEDIRECTORYSECURITYMODE" ><TT CLASS="PARAMETER" ><I @@ -3568,7 +3555,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#FORCEGROUP" +HREF="index.html#FORCEGROUP" ><TT CLASS="PARAMETER" ><I @@ -3580,7 +3567,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#FORCESECURITYMODE" +HREF="index.html#FORCESECURITYMODE" ><TT CLASS="PARAMETER" ><I @@ -3592,7 +3579,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#FORCEUSER" +HREF="index.html#FORCEUSER" ><TT CLASS="PARAMETER" ><I @@ -3604,7 +3591,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#FSTYPE" +HREF="index.html#FSTYPE" ><TT CLASS="PARAMETER" ><I @@ -3616,7 +3603,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#GROUP" +HREF="index.html#GROUP" ><TT CLASS="PARAMETER" ><I @@ -3628,7 +3615,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#GUESTACCOUNT" +HREF="index.html#GUESTACCOUNT" ><TT CLASS="PARAMETER" ><I @@ -3640,7 +3627,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#GUESTOK" +HREF="index.html#GUESTOK" ><TT CLASS="PARAMETER" ><I @@ -3652,7 +3639,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#GUESTONLY" +HREF="index.html#GUESTONLY" ><TT CLASS="PARAMETER" ><I @@ -3664,7 +3651,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#HIDEDOTFILES" +HREF="index.html#HIDEDOTFILES" ><TT CLASS="PARAMETER" ><I @@ -3676,7 +3663,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#HIDEFILES" +HREF="index.html#HIDEFILES" ><TT CLASS="PARAMETER" ><I @@ -3688,7 +3675,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#HOSTSALLOW" +HREF="index.html#HOSTSALLOW" ><TT CLASS="PARAMETER" ><I @@ -3700,7 +3687,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#HOSTSDENY" +HREF="index.html#HOSTSDENY" ><TT CLASS="PARAMETER" ><I @@ -3712,7 +3699,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#INCLUDE" +HREF="index.html#INCLUDE" ><TT CLASS="PARAMETER" ><I @@ -3724,7 +3711,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#INHERITACLS" +HREF="index.html#INHERITACLS" ><TT CLASS="PARAMETER" ><I @@ -3736,7 +3723,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#INHERITPERMISSIONS" +HREF="index.html#INHERITPERMISSIONS" ><TT CLASS="PARAMETER" ><I @@ -3748,7 +3735,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#INVALIDUSERS" +HREF="index.html#INVALIDUSERS" ><TT CLASS="PARAMETER" ><I @@ -3760,7 +3747,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LEVEL2OPLOCKS" +HREF="index.html#LEVEL2OPLOCKS" ><TT CLASS="PARAMETER" ><I @@ -3772,7 +3759,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LOCKING" +HREF="index.html#LOCKING" ><TT CLASS="PARAMETER" ><I @@ -3784,7 +3771,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LPPAUSECOMMAND" +HREF="index.html#LPPAUSECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -3796,7 +3783,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LPQCOMMAND" +HREF="index.html#LPQCOMMAND" ><TT CLASS="PARAMETER" ><I @@ -3808,7 +3795,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LPRESUMECOMMAND" +HREF="index.html#LPRESUMECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -3820,7 +3807,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#LPRMCOMMAND" +HREF="index.html#LPRMCOMMAND" ><TT CLASS="PARAMETER" ><I @@ -3832,7 +3819,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAGICOUTPUT" +HREF="index.html#MAGICOUTPUT" ><TT CLASS="PARAMETER" ><I @@ -3844,7 +3831,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAGICSCRIPT" +HREF="index.html#MAGICSCRIPT" ><TT CLASS="PARAMETER" ><I @@ -3856,7 +3843,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MANGLECASE" +HREF="index.html#MANGLECASE" ><TT CLASS="PARAMETER" ><I @@ -3868,7 +3855,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MANGLEDMAP" +HREF="index.html#MANGLEDMAP" ><TT CLASS="PARAMETER" ><I @@ -3880,7 +3867,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MANGLEDNAMES" +HREF="index.html#MANGLEDNAMES" ><TT CLASS="PARAMETER" ><I @@ -3892,7 +3879,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MANGLINGCHAR" +HREF="index.html#MANGLINGCHAR" ><TT CLASS="PARAMETER" ><I @@ -3904,7 +3891,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MANGLINGMETHOD" +HREF="index.html#MANGLINGMETHOD" ><TT CLASS="PARAMETER" ><I @@ -3916,7 +3903,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAPARCHIVE" +HREF="index.html#MAPARCHIVE" ><TT CLASS="PARAMETER" ><I @@ -3928,7 +3915,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAPHIDDEN" +HREF="index.html#MAPHIDDEN" ><TT CLASS="PARAMETER" ><I @@ -3940,7 +3927,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAPSYSTEM" +HREF="index.html#MAPSYSTEM" ><TT CLASS="PARAMETER" ><I @@ -3952,7 +3939,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAXCONNECTIONS" +HREF="index.html#MAXCONNECTIONS" ><TT CLASS="PARAMETER" ><I @@ -3964,7 +3951,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MAXPRINTJOBS" +HREF="index.html#MAXPRINTJOBS" ><TT CLASS="PARAMETER" ><I @@ -3976,7 +3963,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MINPRINTSPACE" +HREF="index.html#MINPRINTSPACE" ><TT CLASS="PARAMETER" ><I @@ -3988,7 +3975,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#MSDFSROOT" +HREF="index.html#MSDFSROOT" ><TT CLASS="PARAMETER" ><I @@ -4000,7 +3987,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#NTACLSUPPORT" +HREF="index.html#NTACLSUPPORT" ><TT CLASS="PARAMETER" ><I @@ -4012,7 +3999,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ONLYGUEST" +HREF="index.html#ONLYGUEST" ><TT CLASS="PARAMETER" ><I @@ -4024,7 +4011,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ONLYUSER" +HREF="index.html#ONLYUSER" ><TT CLASS="PARAMETER" ><I @@ -4036,7 +4023,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#OPLOCKCONTENTIONLIMIT" +HREF="index.html#OPLOCKCONTENTIONLIMIT" ><TT CLASS="PARAMETER" ><I @@ -4048,7 +4035,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#OPLOCKS" +HREF="index.html#OPLOCKS" ><TT CLASS="PARAMETER" ><I @@ -4060,7 +4047,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PATH" +HREF="index.html#PATH" ><TT CLASS="PARAMETER" ><I @@ -4072,7 +4059,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#POSIXLOCKING" +HREF="index.html#POSIXLOCKING" ><TT CLASS="PARAMETER" ><I @@ -4084,7 +4071,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#POSTEXEC" +HREF="index.html#POSTEXEC" ><TT CLASS="PARAMETER" ><I @@ -4096,7 +4083,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#POSTSCRIPT" +HREF="index.html#POSTSCRIPT" ><TT CLASS="PARAMETER" ><I @@ -4108,7 +4095,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PREEXEC" +HREF="index.html#PREEXEC" ><TT CLASS="PARAMETER" ><I @@ -4120,7 +4107,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PREEXECCLOSE" +HREF="index.html#PREEXECCLOSE" ><TT CLASS="PARAMETER" ><I @@ -4132,7 +4119,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PRESERVECASE" +HREF="index.html#PRESERVECASE" ><TT CLASS="PARAMETER" ><I @@ -4144,7 +4131,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PRINTCOMMAND" +HREF="index.html#PRINTCOMMAND" ><TT CLASS="PARAMETER" ><I @@ -4156,7 +4143,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PRINTOK" +HREF="index.html#PRINTOK" ><TT CLASS="PARAMETER" ><I @@ -4168,7 +4155,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PRINTABLE" +HREF="index.html#PRINTABLE" ><TT CLASS="PARAMETER" ><I @@ -4180,7 +4167,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PRINTER" +HREF="index.html#PRINTER" ><TT CLASS="PARAMETER" ><I @@ -4192,7 +4179,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PRINTERADMIN" +HREF="index.html#PRINTERADMIN" ><TT CLASS="PARAMETER" ><I @@ -4204,7 +4191,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PRINTERDRIVER" +HREF="index.html#PRINTERDRIVER" ><TT CLASS="PARAMETER" ><I @@ -4216,7 +4203,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PRINTERDRIVERLOCATION" +HREF="index.html#PRINTERDRIVERLOCATION" ><TT CLASS="PARAMETER" ><I @@ -4228,7 +4215,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PRINTERNAME" +HREF="index.html#PRINTERNAME" ><TT CLASS="PARAMETER" ><I @@ -4240,7 +4227,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PRINTING" +HREF="index.html#PRINTING" ><TT CLASS="PARAMETER" ><I @@ -4252,7 +4239,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#PUBLIC" +HREF="index.html#PUBLIC" ><TT CLASS="PARAMETER" ><I @@ -4264,7 +4251,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#QUEUEPAUSECOMMAND" +HREF="index.html#QUEUEPAUSECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -4276,7 +4263,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#QUEUERESUMECOMMAND" +HREF="index.html#QUEUERESUMECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -4288,7 +4275,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#READLIST" +HREF="index.html#READLIST" ><TT CLASS="PARAMETER" ><I @@ -4300,7 +4287,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#READONLY" +HREF="index.html#READONLY" ><TT CLASS="PARAMETER" ><I @@ -4312,7 +4299,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ROOTPOSTEXEC" +HREF="index.html#ROOTPOSTEXEC" ><TT CLASS="PARAMETER" ><I @@ -4324,7 +4311,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ROOTPREEXEC" +HREF="index.html#ROOTPREEXEC" ><TT CLASS="PARAMETER" ><I @@ -4336,7 +4323,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#ROOTPREEXECCLOSE" +HREF="index.html#ROOTPREEXECCLOSE" ><TT CLASS="PARAMETER" ><I @@ -4348,7 +4335,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SECURITYMASK" +HREF="index.html#SECURITYMASK" ><TT CLASS="PARAMETER" ><I @@ -4360,7 +4347,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SETDIRECTORY" +HREF="index.html#SETDIRECTORY" ><TT CLASS="PARAMETER" ><I @@ -4372,7 +4359,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SHAREMODES" +HREF="index.html#SHAREMODES" ><TT CLASS="PARAMETER" ><I @@ -4384,7 +4371,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SHORTPRESERVECASE" +HREF="index.html#SHORTPRESERVECASE" ><TT CLASS="PARAMETER" ><I @@ -4396,7 +4383,19 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#STRICTALLOCATE" +HREF="index.html#STATUS" +><TT +CLASS="PARAMETER" +><I +>status</I +></TT +></A +></P +></LI +><LI +><P +><A +HREF="index.html#STRICTALLOCATE" ><TT CLASS="PARAMETER" ><I @@ -4408,7 +4407,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#STRICTLOCKING" +HREF="index.html#STRICTLOCKING" ><TT CLASS="PARAMETER" ><I @@ -4420,7 +4419,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#STRICTSYNC" +HREF="index.html#STRICTSYNC" ><TT CLASS="PARAMETER" ><I @@ -4432,7 +4431,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#SYNCALWAYS" +HREF="index.html#SYNCALWAYS" ><TT CLASS="PARAMETER" ><I @@ -4444,7 +4443,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#USECLIENTDRIVER" +HREF="index.html#USECLIENTDRIVER" ><TT CLASS="PARAMETER" ><I @@ -4456,7 +4455,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#USER" +HREF="index.html#USER" ><TT CLASS="PARAMETER" ><I @@ -4468,7 +4467,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#USERNAME" +HREF="index.html#USERNAME" ><TT CLASS="PARAMETER" ><I @@ -4480,7 +4479,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#USERS" +HREF="index.html#USERS" ><TT CLASS="PARAMETER" ><I @@ -4492,7 +4491,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#VALIDUSERS" +HREF="index.html#VALIDUSERS" ><TT CLASS="PARAMETER" ><I @@ -4504,7 +4503,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#VETOFILES" +HREF="index.html#VETOFILES" ><TT CLASS="PARAMETER" ><I @@ -4516,7 +4515,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#VETOOPLOCKFILES" +HREF="index.html#VETOOPLOCKFILES" ><TT CLASS="PARAMETER" ><I @@ -4528,7 +4527,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#VFSPATH" +HREF="index.html#VFSPATH" ><TT CLASS="PARAMETER" ><I @@ -4540,7 +4539,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#VFSOBJECT" +HREF="index.html#VFSOBJECT" ><TT CLASS="PARAMETER" ><I @@ -4552,7 +4551,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#VFSOPTIONS" +HREF="index.html#VFSOPTIONS" ><TT CLASS="PARAMETER" ><I @@ -4564,7 +4563,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#VOLUME" +HREF="index.html#VOLUME" ><TT CLASS="PARAMETER" ><I @@ -4576,7 +4575,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WIDELINKS" +HREF="index.html#WIDELINKS" ><TT CLASS="PARAMETER" ><I @@ -4588,7 +4587,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WRITABLE" +HREF="index.html#WRITABLE" ><TT CLASS="PARAMETER" ><I @@ -4600,7 +4599,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WRITECACHESIZE" +HREF="index.html#WRITECACHESIZE" ><TT CLASS="PARAMETER" ><I @@ -4612,7 +4611,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WRITELIST" +HREF="index.html#WRITELIST" ><TT CLASS="PARAMETER" ><I @@ -4624,7 +4623,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WRITEOK" +HREF="index.html#WRITEOK" ><TT CLASS="PARAMETER" ><I @@ -4636,7 +4635,7 @@ CLASS="PARAMETER" ><LI ><P ><A -HREF="#WRITEABLE" +HREF="index.html#WRITEABLE" ><TT CLASS="PARAMETER" ><I @@ -4683,7 +4682,7 @@ CLASS="COMMAND" ></A > that should stop a shutdown procedure issued by the <A -HREF="#SHUTDOWNSCRIPT" +HREF="index.html#SHUTDOWNSCRIPT" ><TT CLASS="PARAMETER" ><I @@ -4839,7 +4838,7 @@ CLASS="COMMAND" > will return an ACCESS_DENIED error to the client.</P ><P >See also <A -HREF="#DELETEPRINTERCOMMAND" +HREF="index.html#DELETEPRINTERCOMMAND" ><TT CLASS="PARAMETER" ><I @@ -4847,7 +4846,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#PRINTING" +HREF="index.html#PRINTING" ><TT CLASS="PARAMETER" ><I @@ -4856,7 +4855,7 @@ CLASS="PARAMETER" ></A >, <A -HREF="#SHOWADDPRINTERWIZARD" +HREF="index.html#SHOWADDPRINTERWIZARD" ><TT CLASS="PARAMETER" ><I @@ -4978,7 +4977,7 @@ CLASS="PARAMETER" ><P > This parameter is only used for add file shares. To add printer shares, see the <A -HREF="#ADDPRINTERCOMMAND" +HREF="index.html#ADDPRINTERCOMMAND" ><TT CLASS="PARAMETER" ><I @@ -4990,7 +4989,7 @@ CLASS="PARAMETER" </P ><P > See also <A -HREF="#CHANGESHARECOMMAND" +HREF="index.html#CHANGESHARECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -4999,7 +4998,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#DELETESHARECOMMAND" +HREF="index.html#DELETESHARECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -5196,7 +5195,7 @@ CLASS="COMMAND" match existing Windows NT accounts.</P ><P >See also <A -HREF="#SECURITY" +HREF="index.html#SECURITY" ><TT CLASS="PARAMETER" ><I @@ -5204,7 +5203,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#PASSWORDSERVER" +HREF="index.html#PASSWORDSERVER" > <TT CLASS="PARAMETER" ><I @@ -5213,7 +5212,7 @@ CLASS="PARAMETER" ></A >, <A -HREF="#DELETEUSERSCRIPT" +HREF="index.html#DELETEUSERSCRIPT" ><TT CLASS="PARAMETER" ><I @@ -5253,20 +5252,12 @@ CLASS="EMPHASIS" HREF="smbd.8.html" TARGET="_top" >smbd(8)</A -> when a new group is - requested. It will expand any - <TT +> when a new group is requested. It will expand any <TT CLASS="PARAMETER" ><I >%g</I ></TT -> to the group name passed. - This script is only useful for installations using the - Windows NT domain administration tools. The script is - free to create a group with an arbitrary name to - circumvent unix group name restrictions. In that case - the script must print the numeric gid of the created - group on stdout. +> to the group name passed. This script is only useful for installations using the Windows NT domain administration tools. </P ></DD ><DT @@ -5350,7 +5341,7 @@ NAME="ALLOWHOSTS" ><DD ><P >Synonym for <A -HREF="#HOSTSALLOW" +HREF="index.html#HOSTSALLOW" > <TT CLASS="PARAMETER" ><I @@ -5399,7 +5390,7 @@ NAME="ALLOWTRUSTEDDOMAINS" ><DD ><P >This option only takes effect when the <A -HREF="#SECURITY" +HREF="index.html#SECURITY" ><TT CLASS="PARAMETER" ><I @@ -5503,7 +5494,7 @@ NAME="AUTOSERVICES" ><DD ><P >This is a synonym for the <A -HREF="#PRELOAD" +HREF="index.html#PRELOAD" > <TT CLASS="PARAMETER" ><I @@ -5525,7 +5516,7 @@ CLASS="COMMAND" >smbd</B > will use when authenticating a user. This option defaults to sensible values based on <A -HREF="#SECURITY" +HREF="index.html#SECURITY" ><TT CLASS="PARAMETER" ><I @@ -5603,7 +5594,7 @@ CLASS="COMMAND" >nmbd</B > to bind to ports 137 and 138 on the interfaces listed in the <A -HREF="#INTERFACES" +HREF="index.html#INTERFACES" >interfaces</A > parameter. <B CLASS="COMMAND" @@ -5657,7 +5648,7 @@ TARGET="_top" >smbd(8)</A > to bind only to the interface list given in the <A -HREF="#INTERFACES" +HREF="index.html#INTERFACES" > interfaces</A > parameter. This restricts the networks that <B @@ -5835,7 +5826,7 @@ TARGET="_top" ><P >If this parameter is set to <TT CLASS="CONSTANT" ->no</TT +>false</TT >, then Samba 2.2 will behave as previous versions of Samba would and will fail the lock request immediately if the lock range @@ -5891,7 +5882,7 @@ NAME="BROWSABLE" ><DD ><P >See the <A -HREF="#BROWSEABLE" +HREF="index.html#BROWSEABLE" ><TT CLASS="PARAMETER" ><I @@ -5921,7 +5912,7 @@ CLASS="COMMAND" > call. Normally set to <TT CLASS="CONSTANT" ->yes</TT +>true</TT >. You should never need to change this.</P ><P @@ -5953,7 +5944,7 @@ NAME="CASESENSITIVE" ><DD ><P >See the discussion in the section <A -HREF="#AEN203" +HREF="index.html#AEN203" >NAME MANGLING</A >.</P ><P @@ -5970,7 +5961,7 @@ NAME="CASESIGNAMES" ><DD ><P >Synonym for <A -HREF="#CASESENSITIVE" +HREF="index.html#CASESENSITIVE" >case sensitive</A >.</P @@ -6114,7 +6105,7 @@ CLASS="PARAMETER" </P ><P > See also <A -HREF="#ADDSHARECOMMAND" +HREF="index.html#ADDSHARECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -6123,7 +6114,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#DELETESHARECOMMAND" +HREF="index.html#DELETESHARECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -6164,7 +6155,7 @@ CLASS="COMMAND" ><P >If you want to set the string that is displayed next to the machine name then see the <A -HREF="#SERVERSTRING" +HREF="index.html#SERVERSTRING" ><TT CLASS="PARAMETER" ><I @@ -6257,7 +6248,7 @@ NAME="CREATEMASK" ><P >A synonym for this parameter is <A -HREF="#CREATEMODE" +HREF="index.html#CREATEMODE" ><TT CLASS="PARAMETER" ><I @@ -6286,7 +6277,7 @@ CLASS="EMPHASIS" ><P >Following this Samba will bit-wise 'OR' the UNIX mode created from this parameter with the value of the <A -HREF="#FORCECREATEMODE" +HREF="index.html#FORCECREATEMODE" ><TT CLASS="PARAMETER" ><I @@ -6298,7 +6289,7 @@ CLASS="PARAMETER" ><P >This parameter does not affect directory modes. See the parameter <A -HREF="#DIRECTORYMODE" +HREF="index.html#DIRECTORYMODE" ><TT CLASS="PARAMETER" ><I @@ -6309,7 +6300,7 @@ CLASS="PARAMETER" > for details.</P ><P >See also the <A -HREF="#FORCECREATEMODE" +HREF="index.html#FORCECREATEMODE" ><TT CLASS="PARAMETER" ><I @@ -6319,7 +6310,7 @@ CLASS="PARAMETER" ></A > parameter for forcing particular mode bits to be set on created files. See also the <A -HREF="#DIRECTORYMODE" +HREF="index.html#DIRECTORYMODE" > <TT CLASS="PARAMETER" ><I @@ -6328,7 +6319,7 @@ CLASS="PARAMETER" ></A > parameter for masking mode bits on created directories. See also the <A -HREF="#INHERITPERMISSIONS" +HREF="index.html#INHERITPERMISSIONS" > <TT CLASS="PARAMETER" ><I @@ -6340,7 +6331,7 @@ CLASS="PARAMETER" >Note that this parameter does not apply to permissions set by Windows NT/2000 ACL editors. If the administrator wishes to enforce a mask on access control lists also, they need to set the <A -HREF="#SECURITYMASK" +HREF="index.html#SECURITYMASK" ><TT CLASS="PARAMETER" ><I @@ -6367,7 +6358,7 @@ NAME="CREATEMODE" ><DD ><P >This is a synonym for <A -HREF="#CREATEMASK" +HREF="index.html#CREATEMASK" ><TT CLASS="PARAMETER" ><I @@ -6462,7 +6453,7 @@ NAME="DEBUGHIRESTIMESTAMP" message header when turned on.</P ><P >Note that the parameter <A -HREF="#DEBUGTIMESTAMP" +HREF="index.html#DEBUGTIMESTAMP" ><TT CLASS="PARAMETER" ><I @@ -6494,7 +6485,7 @@ TARGET="_top" to the timestamp message headers in the logfile when turned on.</P ><P >Note that the parameter <A -HREF="#DEBUGTIMESTAMP" +HREF="index.html#DEBUGTIMESTAMP" ><TT CLASS="PARAMETER" ><I @@ -6518,7 +6509,7 @@ NAME="DEBUGTIMESTAMP" ><P >Samba 2.2 debug log messages are timestamped by default. If you are running at a high <A -HREF="#DEBUGLEVEL" +HREF="index.html#DEBUGLEVEL" > <TT CLASS="PARAMETER" ><I @@ -6547,7 +6538,7 @@ NAME="DEBUGUID" in the log file if turned on.</P ><P >Note that the parameter <A -HREF="#DEBUGTIMESTAMP" +HREF="index.html#DEBUGTIMESTAMP" ><TT CLASS="PARAMETER" ><I @@ -6570,7 +6561,7 @@ NAME="DEBUGLEVEL" ><DD ><P >Synonym for <A -HREF="#LOGLEVEL" +HREF="index.html#LOGLEVEL" ><TT CLASS="PARAMETER" ><I @@ -6587,7 +6578,7 @@ NAME="DEFAULT" ><DD ><P >A synonym for <A -HREF="#DEFAULTSERVICE" +HREF="index.html#DEFAULTSERVICE" ><TT CLASS="PARAMETER" ><I @@ -6604,10 +6595,10 @@ NAME="DEFAULTCASE" ><DD ><P >See the section on <A -HREF="#AEN203" +HREF="index.html#AEN203" > NAME MANGLING</A >. Also note the <A -HREF="#SHORTPRESERVECASE" +HREF="index.html#SHORTPRESERVECASE" > <TT CLASS="PARAMETER" ><I @@ -6629,7 +6620,7 @@ NAME="DEFAULTDEVMODE" ><DD ><P >This parameter is only applicable to <A -HREF="#PRINTOK" +HREF="index.html#PRINTOK" >printable</A > services. When smbd is serving Printer Drivers to Windows NT/2k/XP clients, each printer on the Samba @@ -6695,7 +6686,7 @@ CLASS="EMPHASIS" service results in an error.</P ><P >Typically the default service would be a <A -HREF="#GUESTOK" +HREF="index.html#GUESTOK" > <TT CLASS="PARAMETER" ><I @@ -6703,7 +6694,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#READONLY" +HREF="index.html#READONLY" > <TT CLASS="PARAMETER" ><I @@ -6823,7 +6814,7 @@ CLASS="COMMAND" > will return an ACCESS_DENIED error to the client.</P ><P >See also <A -HREF="#ADDPRINTERCOMMAND" +HREF="index.html#ADDPRINTERCOMMAND" ><TT CLASS="PARAMETER" ><I @@ -6831,7 +6822,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#PRINTING" +HREF="index.html#PRINTING" ><TT CLASS="PARAMETER" ><I @@ -6840,7 +6831,7 @@ CLASS="PARAMETER" ></A >, <A -HREF="#SHOWADDPRINTERWIZARD" +HREF="index.html#SHOWADDPRINTERWIZARD" ><TT CLASS="PARAMETER" ><I @@ -6959,7 +6950,7 @@ CLASS="PARAMETER" ><P > This parameter is only used to remove file shares. To delete printer shares, see the <A -HREF="#DELETEPRINTERCOMMAND" +HREF="index.html#DELETEPRINTERCOMMAND" ><TT CLASS="PARAMETER" ><I @@ -6971,7 +6962,7 @@ CLASS="PARAMETER" </P ><P > See also <A -HREF="#ADDSHARECOMMAND" +HREF="index.html#ADDSHARECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -6980,7 +6971,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#CHANGESHARECOMMAND" +HREF="index.html#CHANGESHARECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -7101,7 +7092,7 @@ NAME="DELETEVETOFILES" >This option is used when Samba is attempting to delete a directory that contains one or more vetoed directories (see the <A -HREF="#VETOFILES" +HREF="index.html#VETOFILES" ><TT CLASS="PARAMETER" ><I @@ -7111,14 +7102,14 @@ CLASS="PARAMETER" > option). If this option is set to <TT CLASS="CONSTANT" ->no</TT +>false</TT > (the default) then if a vetoed directory contains any non-vetoed files or directories then the directory delete will fail. This is usually what you want.</P ><P >If this option is set to <TT CLASS="CONSTANT" ->yes</TT +>true</TT >, then Samba will attempt to recursively delete any files and directories within the vetoed directory. This can be useful for integration with file @@ -7137,7 +7128,7 @@ CLASS="COMMAND" is deleted (so long as the user has permissions to do so).</P ><P >See also the <A -HREF="#VETOFILES" +HREF="index.html#VETOFILES" ><TT CLASS="PARAMETER" ><I @@ -7160,7 +7151,7 @@ NAME="DENYHOSTS" ><DD ><P >Synonym for <A -HREF="#HOSTSDENY" +HREF="index.html#HOSTSDENY" ><TT CLASS="PARAMETER" ><I @@ -7261,7 +7252,7 @@ NAME="DIRECTORY" ><DD ><P >Synonym for <A -HREF="#PATH" +HREF="index.html#PATH" ><TT CLASS="PARAMETER" ><I @@ -7302,7 +7293,7 @@ CLASS="EMPHASIS" ><P >Following this Samba will bit-wise 'OR' the UNIX mode created from this parameter with the value of the <A -HREF="#FORCEDIRECTORYMODE" +HREF="index.html#FORCEDIRECTORYMODE" ><TT CLASS="PARAMETER" ><I @@ -7316,7 +7307,7 @@ CLASS="PARAMETER" >Note that this parameter does not apply to permissions set by Windows NT/2000 ACL editors. If the administrator wishes to enforce a mask on access control lists also, they need to set the <A -HREF="#DIRECTORYSECURITYMASK" +HREF="index.html#DIRECTORYSECURITYMASK" ><TT CLASS="PARAMETER" ><I @@ -7326,7 +7317,7 @@ CLASS="PARAMETER" >.</P ><P >See the <A -HREF="#FORCEDIRECTORYMODE" +HREF="index.html#FORCEDIRECTORYMODE" ><TT CLASS="PARAMETER" ><I @@ -7338,7 +7329,7 @@ CLASS="PARAMETER" bits to always be set on created directories.</P ><P >See also the <A -HREF="#CREATEMODE" +HREF="index.html#CREATEMODE" ><TT CLASS="PARAMETER" ><I @@ -7348,7 +7339,7 @@ CLASS="PARAMETER" ></A > parameter for masking mode bits on created files, and the <A -HREF="#DIRECTORYSECURITYMASK" +HREF="index.html#DIRECTORYSECURITYMASK" ><TT CLASS="PARAMETER" ><I @@ -7359,7 +7350,7 @@ CLASS="PARAMETER" > parameter.</P ><P >Also refer to the <A -HREF="#INHERITPERMISSIONS" +HREF="index.html#INHERITPERMISSIONS" ><TT CLASS="PARAMETER" ><I @@ -7386,7 +7377,7 @@ NAME="DIRECTORYMODE" ><DD ><P >Synonym for <A -HREF="#DIRECTORYMASK" +HREF="index.html#DIRECTORYMASK" ><TT CLASS="PARAMETER" ><I @@ -7433,7 +7424,7 @@ CLASS="CONSTANT" >.</P ><P >See also the <A -HREF="#FORCEDIRECTORYSECURITYMODE" +HREF="index.html#FORCEDIRECTORYSECURITYMODE" ><TT CLASS="PARAMETER" ><I @@ -7441,7 +7432,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#SECURITYMASK" +HREF="index.html#SECURITYMASK" ><TT CLASS="PARAMETER" ><I @@ -7450,7 +7441,7 @@ CLASS="PARAMETER" ></A >, <A -HREF="#FORCESECURITYMODE" +HREF="index.html#FORCESECURITYMODE" ><TT CLASS="PARAMETER" ><I @@ -7521,7 +7512,7 @@ CLASS="EMPHASIS" </P ><P >See also <A -HREF="#USECLIENTDRIVER" +HREF="index.html#USECLIENTDRIVER" >use client driver</A > </P @@ -7585,7 +7576,7 @@ CLASS="COMMAND" action.</P ><P >See also the parameter <A -HREF="#WINSSUPPORT" +HREF="index.html#WINSSUPPORT" ><TT CLASS="PARAMETER" ><I @@ -7601,6 +7592,112 @@ CLASS="COMMAND" ></DD ><DT ><A +NAME="DOMAINADMINGROUP" +></A +>domain admin group (G)</DT +><DD +><P +>This parameter is intended as a temporary solution + to enable users to be a member of the "Domain Admins" group when + a Samba host is acting as a PDC. A complete solution will be provided + by a system for mapping Windows NT/2000 groups onto UNIX groups. + Please note that this parameter has a somewhat confusing name. It + accepts a list of usernames and of group names in standard + <TT +CLASS="FILENAME" +>smb.conf</TT +> notation. + </P +><P +>See also <A +HREF="index.html#DOMAINGUESTGROUP" +><TT +CLASS="PARAMETER" +><I +>domain + guest group</I +></TT +></A +>, <A +HREF="index.html#DOMAINLOGONS" +><TT +CLASS="PARAMETER" +><I +>domain + logons</I +></TT +></A +> + </P +><P +>Default: <SPAN +CLASS="emphasis" +><I +CLASS="EMPHASIS" +>no domain administrators</I +></SPAN +></P +><P +>Example: <B +CLASS="COMMAND" +>domain admin group = root @wheel</B +></P +></DD +><DT +><A +NAME="DOMAINGUESTGROUP" +></A +>domain guest group (G)</DT +><DD +><P +>This parameter is intended as a temporary solution + to enable users to be a member of the "Domain Guests" group when + a Samba host is acting as a PDC. A complete solution will be provided + by a system for mapping Windows NT/2000 groups onto UNIX groups. + Please note that this parameter has a somewhat confusing name. It + accepts a list of usernames and of group names in standard + <TT +CLASS="FILENAME" +>smb.conf</TT +> notation. + </P +><P +>See also <A +HREF="index.html#DOMAINADMINGROUP" +><TT +CLASS="PARAMETER" +><I +>domain + admin group</I +></TT +></A +>, <A +HREF="index.html#DOMAINLOGONS" +><TT +CLASS="PARAMETER" +><I +>domain + logons</I +></TT +></A +> + </P +><P +>Default: <SPAN +CLASS="emphasis" +><I +CLASS="EMPHASIS" +>no domain guests</I +></SPAN +></P +><P +>Example: <B +CLASS="COMMAND" +>domain guest group = nobody @guest</B +></P +></DD +><DT +><A NAME="DOMAINLOGONS" ></A >domain logons (G)</DT @@ -7608,10 +7705,10 @@ NAME="DOMAINLOGONS" ><P >If set to <TT CLASS="CONSTANT" ->yes</TT +>true</TT >, the Samba server will serve Windows 95/98 Domain logons for the <A -HREF="#WORKGROUP" +HREF="index.html#WORKGROUP" > <TT CLASS="PARAMETER" ><I @@ -7653,7 +7750,7 @@ CLASS="COMMAND" > to claim a special domain specific NetBIOS name that identifies it as a domain master browser for its given <A -HREF="#WORKGROUP" +HREF="index.html#WORKGROUP" > <TT CLASS="PARAMETER" ><I @@ -7713,7 +7810,7 @@ CLASS="PARAMETER" strangely and may fail.</P ><P >If <A -HREF="#DOMAINLOGONS" +HREF="index.html#DOMAINLOGONS" ><B CLASS="COMMAND" >domain logons = yes</B @@ -7883,7 +7980,7 @@ CLASS="COMMAND" > is acting on behalf of is not the file owner. Setting this option to <TT CLASS="CONSTANT" -> yes</TT +> true</TT > allows DOS semantics and <A HREF="smbd.8.html" TARGET="_top" @@ -7939,7 +8036,7 @@ CLASS="COMMAND" ></A > program for information on how to set up and maintain this file), or set the <A -HREF="#SECURITY" +HREF="index.html#SECURITY" >security = [server|domain|ads]</A > parameter which causes <B @@ -8042,7 +8139,7 @@ NAME="EXEC" ><DD ><P >This is a synonym for <A -HREF="#PREEXEC" +HREF="index.html#PREEXEC" > <TT CLASS="PARAMETER" ><I @@ -8119,7 +8216,7 @@ CLASS="COMMAND" the file.</P ><P >It is generally much better to use the real <A -HREF="#OPLOCKS" +HREF="index.html#OPLOCKS" ><TT CLASS="PARAMETER" ><I @@ -8211,7 +8308,7 @@ CLASS="PARAMETER" parameter is applied.</P ><P >See also the parameter <A -HREF="#CREATEMASK" +HREF="index.html#CREATEMASK" ><TT CLASS="PARAMETER" ><I @@ -8222,7 +8319,7 @@ CLASS="PARAMETER" > for details on masking mode bits on files.</P ><P >See also the <A -HREF="#INHERITPERMISSIONS" +HREF="index.html#INHERITPERMISSIONS" ><TT CLASS="PARAMETER" ><I @@ -8274,7 +8371,7 @@ CLASS="PARAMETER" applied.</P ><P >See also the parameter <A -HREF="#DIRECTORYMASK" +HREF="index.html#DIRECTORYMASK" ><TT CLASS="PARAMETER" ><I @@ -8285,7 +8382,7 @@ CLASS="PARAMETER" on created directories.</P ><P >See also the <A -HREF="#INHERITPERMISSIONS" +HREF="index.html#INHERITPERMISSIONS" ><TT CLASS="PARAMETER" ><I @@ -8342,7 +8439,7 @@ CLASS="EMPHASIS" it set as 0000.</P ><P >See also the <A -HREF="#DIRECTORYSECURITYMASK" +HREF="index.html#DIRECTORYSECURITYMASK" ><TT CLASS="PARAMETER" ><I @@ -8350,7 +8447,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#SECURITYMASK" +HREF="index.html#SECURITYMASK" > <TT CLASS="PARAMETER" ><I @@ -8359,7 +8456,7 @@ CLASS="PARAMETER" ></A >, <A -HREF="#FORCESECURITYMODE" +HREF="index.html#FORCESECURITYMODE" ><TT CLASS="PARAMETER" ><I @@ -8411,7 +8508,7 @@ CLASS="FILENAME" other users will retain their ordinary primary group.</P ><P >If the <A -HREF="#FORCEUSER" +HREF="index.html#FORCEUSER" ><TT CLASS="PARAMETER" ><I @@ -8434,7 +8531,7 @@ CLASS="PARAMETER" >.</P ><P >See also <A -HREF="#FORCEUSER" +HREF="index.html#FORCEUSER" ><TT CLASS="PARAMETER" ><I @@ -8492,7 +8589,7 @@ CLASS="EMPHASIS" this set to 0000.</P ><P >See also the <A -HREF="#FORCEDIRECTORYSECURITYMODE" +HREF="index.html#FORCEDIRECTORYSECURITYMODE" ><TT CLASS="PARAMETER" ><I @@ -8501,7 +8598,7 @@ CLASS="PARAMETER" ></A >, <A -HREF="#DIRECTORYSECURITYMASK" +HREF="index.html#DIRECTORYSECURITYMASK" ><TT CLASS="PARAMETER" ><I @@ -8510,7 +8607,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#SECURITYMASK" +HREF="index.html#SECURITYMASK" ><TT CLASS="PARAMETER" ><I @@ -8553,7 +8650,7 @@ NAME="FORCEUSER" as the primary group of the connecting user (this was a bug).</P ><P >See also <A -HREF="#FORCEGROUP" +HREF="index.html#FORCEGROUP" ><TT CLASS="PARAMETER" ><I @@ -8629,7 +8726,7 @@ NAME="GETWDCACHE" caching algorithm will be used to reduce the time taken for getwd() calls. This can have a significant impact on performance, especially when the <A -HREF="#WIDELINKS" +HREF="index.html#WIDELINKS" ><TT CLASS="PARAMETER" ><I @@ -8639,7 +8736,7 @@ CLASS="PARAMETER" </A >parameter is set to <TT CLASS="CONSTANT" ->no</TT +>false</TT >.</P ><P >Default: <B @@ -8655,7 +8752,7 @@ NAME="GROUP" ><DD ><P >Synonym for <A -HREF="#FORCEGROUP" +HREF="index.html#FORCEGROUP" ><TT CLASS="PARAMETER" ><I @@ -8674,7 +8771,7 @@ NAME="GUESTACCOUNT" ><P >This is a username which will be used for access to services which are specified as <A -HREF="#GUESTOK" +HREF="index.html#GUESTOK" ><TT CLASS="PARAMETER" ><I @@ -8703,9 +8800,9 @@ CLASS="COMMAND" > lp(1)</B >.</P ><P ->This paramater does not accept % macros, because +>This paramater does not accept % marcos, becouse many parts of the system require this value to be - constant for correct operation.</P + constant for correct operation</P ><P >Default: <SPAN CLASS="emphasis" @@ -8734,7 +8831,7 @@ CLASS="CONSTANT" > for a service, then no password is required to connect to the service. Privileges will be those of the <A -HREF="#GUESTACCOUNT" +HREF="index.html#GUESTACCOUNT" ><TT CLASS="PARAMETER" ><I @@ -8744,7 +8841,7 @@ CLASS="PARAMETER" >.</P ><P >See the section below on <A -HREF="#SECURITY" +HREF="index.html#SECURITY" ><TT CLASS="PARAMETER" ><I @@ -8772,7 +8869,7 @@ CLASS="CONSTANT" > for a service, then only guest connections to the service are permitted. This parameter will have no effect if <A -HREF="#GUESTOK" +HREF="index.html#GUESTOK" > <TT CLASS="PARAMETER" ><I @@ -8782,7 +8879,7 @@ CLASS="PARAMETER" > is not set for the service.</P ><P >See the section below on <A -HREF="#SECURITY" +HREF="index.html#SECURITY" ><TT CLASS="PARAMETER" ><I @@ -8839,7 +8936,7 @@ NAME="HIDEFILES" as they are scanned.</P ><P >See also <A -HREF="#HIDEDOTFILES" +HREF="index.html#HIDEDOTFILES" ><TT CLASS="PARAMETER" ><I @@ -8848,7 +8945,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#VETOFILES" +HREF="index.html#VETOFILES" ><TT CLASS="PARAMETER" ><I @@ -8856,7 +8953,7 @@ CLASS="PARAMETER" ></TT ></A > and <A -HREF="#CASESENSITIVE" +HREF="index.html#CASESENSITIVE" > <TT CLASS="PARAMETER" ><I @@ -8937,30 +9034,13 @@ CLASS="COMMAND" ></DD ><DT ><A -NAME="HIDESPECIALFILES" -></A ->hide special files (G)</DT -><DD -><P ->This parameter prevents clients from seeing - special files such as sockets, devices and fifo's in directory - listings. - </P -><P ->Default: <B -CLASS="COMMAND" ->hide special files = no</B -></P -></DD -><DT -><A NAME="HOMEDIRMAP" ></A >homedir map (G)</DT ><DD ><P >If<A -HREF="#NISHOMEDIR" +HREF="index.html#NISHOMEDIR" ><TT CLASS="PARAMETER" ><I @@ -8970,7 +9050,7 @@ CLASS="PARAMETER" ></A > is <TT CLASS="CONSTANT" ->yes</TT +>true</TT >, and <A HREF="smbd.8.html" TARGET="_top" @@ -9009,7 +9089,7 @@ CLASS="EMPHASIS" the system for this option to work.</P ><P >See also <A -HREF="#NISHOMEDIR" +HREF="index.html#NISHOMEDIR" ><TT CLASS="PARAMETER" ><I @@ -9018,7 +9098,7 @@ CLASS="PARAMETER" > </A >, <A -HREF="#DOMAINLOGONS" +HREF="index.html#DOMAINLOGONS" ><TT CLASS="PARAMETER" ><I @@ -9057,7 +9137,7 @@ CLASS="CONSTANT" to browse Dfs trees hosted on the server.</P ><P >See also the <A -HREF="#MSDFSROOT" +HREF="index.html#MSDFSROOT" ><TT CLASS="PARAMETER" ><I @@ -9145,7 +9225,7 @@ CLASS="FILENAME" ><P >Note that the localhost address 127.0.0.1 will always be allowed access unless specifically denied by a <A -HREF="#HOSTSDENY" +HREF="index.html#HOSTSDENY" ><TT CLASS="PARAMETER" ><I @@ -9284,7 +9364,7 @@ NAME="HOSTSEQUIV" </P ><P >This is not be confused with <A -HREF="#HOSTSALLOW" +HREF="index.html#HOSTSALLOW" > <TT CLASS="PARAMETER" ><I @@ -9419,7 +9499,7 @@ NAME="INHERITPERMISSIONS" ><P >The permissions on new files and directories are normally governed by <A -HREF="#CREATEMASK" +HREF="index.html#CREATEMASK" ><TT CLASS="PARAMETER" ><I @@ -9427,7 +9507,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#DIRECTORYMASK" +HREF="index.html#DIRECTORYMASK" > <TT CLASS="PARAMETER" ><I @@ -9435,7 +9515,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#FORCECREATEMODE" +HREF="index.html#FORCECREATEMODE" ><TT CLASS="PARAMETER" ><I @@ -9444,7 +9524,7 @@ CLASS="PARAMETER" > </A > and <A -HREF="#FORCEDIRECTORYMODE" +HREF="index.html#FORCEDIRECTORYMODE" ><TT CLASS="PARAMETER" ><I @@ -9461,7 +9541,7 @@ CLASS="PARAMETER" >New files inherit their read/write bits from the parent directory. Their execute bits continue to be determined by <A -HREF="#MAPARCHIVE" +HREF="index.html#MAPARCHIVE" ><TT CLASS="PARAMETER" ><I @@ -9470,7 +9550,7 @@ CLASS="PARAMETER" > </A >, <A -HREF="#MAPHIDDEN" +HREF="index.html#MAPHIDDEN" ><TT CLASS="PARAMETER" ><I @@ -9479,7 +9559,7 @@ CLASS="PARAMETER" > </A > and <A -HREF="#MAPSYSTEM" +HREF="index.html#MAPSYSTEM" ><TT CLASS="PARAMETER" ><I @@ -9503,7 +9583,7 @@ CLASS="EMPHASIS" share to be used flexibly by each user.</P ><P >See also <A -HREF="#CREATEMASK" +HREF="index.html#CREATEMASK" ><TT CLASS="PARAMETER" ><I @@ -9512,7 +9592,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#DIRECTORYMASK" +HREF="index.html#DIRECTORYMASK" ><TT CLASS="PARAMETER" ><I @@ -9520,7 +9600,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#FORCECREATEMODE" +HREF="index.html#FORCECREATEMODE" > <TT CLASS="PARAMETER" ><I @@ -9528,7 +9608,7 @@ CLASS="PARAMETER" ></TT ></A > and <A -HREF="#FORCEDIRECTORYMODE" +HREF="index.html#FORCEDIRECTORYMODE" ><TT CLASS="PARAMETER" ><I @@ -9604,7 +9684,7 @@ CLASS="COMMAND" The netmasks of the latter two interfaces would be set to 255.255.255.0.</P ><P >See also <A -HREF="#BINDINTERFACESONLY" +HREF="index.html#BINDINTERFACESONLY" ><TT CLASS="PARAMETER" ><I @@ -9675,7 +9755,7 @@ CLASS="PARAMETER" This is useful in the [homes] section.</P ><P >See also <A -HREF="#VALIDUSERS" +HREF="index.html#VALIDUSERS" ><TT CLASS="PARAMETER" ><I @@ -9719,7 +9799,7 @@ CLASS="PARAMETER" ><P >Keepalives should, in general, not be needed if the socket being used has the SO_KEEPALIVE attribute set on it (see <A -HREF="#SOCKETOPTIONS" +HREF="index.html#SOCKETOPTIONS" ><TT CLASS="PARAMETER" ><I @@ -9747,7 +9827,7 @@ NAME="KERNELOPLOCKS" ><DD ><P >For UNIXes that support kernel based <A -HREF="#OPLOCKS" +HREF="index.html#OPLOCKS" ><TT CLASS="PARAMETER" ><I @@ -9791,7 +9871,7 @@ CLASS="CONSTANT" You should never need to touch this parameter.</P ><P >See also the <A -HREF="#OPLOCKS" +HREF="index.html#OPLOCKS" ><TT CLASS="PARAMETER" ><I @@ -9800,7 +9880,7 @@ CLASS="PARAMETER" > </A > and <A -HREF="#LEVEL2OPLOCKS" +HREF="index.html#LEVEL2OPLOCKS" ><TT CLASS="PARAMETER" ><I @@ -9963,45 +10043,26 @@ CLASS="PARAMETER" >ldap ssl</I ></TT > can be set to one of three values: - </P -><P -></P -><UL -><LI -><P -><TT -CLASS="PARAMETER" -><I ->On</I -></TT -> = Always use SSL when contacting the - <TT + (a) <TT +CLASS="CONSTANT" +>on</TT +> - Always use SSL when contacting the + <TT CLASS="PARAMETER" ><I >ldap server</I ></TT ->.</P -></LI -><LI -><P -><TT -CLASS="PARAMETER" -><I ->Off</I -></TT -> = Never use SSL when querying the directory.</P -></LI -><LI -><P -><TT -CLASS="PARAMETER" -><I ->Start_tls</I -></TT -> = Use the LDAPv3 StartTLS extended operation - (RFC2830) for communicating with the directory server.</P -></LI -></UL +>, (b) <TT +CLASS="CONSTANT" +>off</TT +> - + Never use SSL when querying the directory, or (c) <TT +CLASS="CONSTANT" +>start_tls</TT +> + - Use the LDAPv3 StartTLS extended operation + (RFC2830) for communicating with the directory server. + </P ><P >Default : <B CLASS="COMMAND" @@ -10062,64 +10123,6 @@ CLASS="EMPHASIS" ></DD ><DT ><A -NAME="LDAPPASSWDSYNC" -></A ->ldap passwd sync (G)</DT -><DD -><P ->This option is used to define whether - or not Samba should sync the LDAP password with the NT - and LM hashes for normal accounts (NOT for - workstation, server or domain trusts) on a password - change via SAMBA. - </P -><P -> The <TT -CLASS="PARAMETER" -><I ->ldap passwd sync</I -></TT -> can be set to one of three values: - </P -><P -></P -><UL -><LI -><P -><TT -CLASS="PARAMETER" -><I ->Yes</I -></TT -> = Try to update the LDAP, NT and LM passwords and update the pwdLastSet time.</P -></LI -><LI -><P -><TT -CLASS="PARAMETER" -><I ->No</I -></TT -> = Update NT and LM passwords and update the pwdLastSet time.</P -></LI -><LI -><P -><TT -CLASS="PARAMETER" -><I ->Only</I -></TT -> = Only update the LDAP password and let the LDAP server do the rest.</P -></LI -></UL -><P ->Default : <B -CLASS="COMMAND" ->ldap passwd sync = no</B -></P -></DD -><DT -><A NAME="LEVEL2OPLOCKS" ></A >level2 oplocks (S)</DT @@ -10149,7 +10152,7 @@ NAME="LEVEL2OPLOCKS" >For more discussions on level2 oplocks see the CIFS spec.</P ><P >Currently, if <A -HREF="#KERNELOPLOCKS" +HREF="index.html#KERNELOPLOCKS" ><TT CLASS="PARAMETER" ><I @@ -10163,7 +10166,7 @@ CLASS="CONSTANT" >yes</TT >). Note also, the <A -HREF="#OPLOCKS" +HREF="index.html#OPLOCKS" ><TT CLASS="PARAMETER" ><I @@ -10173,12 +10176,12 @@ CLASS="PARAMETER" </A > parameter must be set to <TT CLASS="CONSTANT" ->yes</TT +>true</TT > on this share in order for this parameter to have any effect.</P ><P >See also the <A -HREF="#OPLOCKS" +HREF="index.html#OPLOCKS" ><TT CLASS="PARAMETER" ><I @@ -10187,7 +10190,7 @@ CLASS="PARAMETER" > </A > and <A -HREF="#OPLOCKS" +HREF="index.html#OPLOCKS" ><TT CLASS="PARAMETER" ><I @@ -10221,10 +10224,10 @@ CLASS="COMMAND" the Samba server in their browse list. This parameter can have three values, <TT CLASS="CONSTANT" ->yes</TT +>true</TT >, <TT CLASS="CONSTANT" ->no</TT +>false</TT >, or <TT CLASS="CONSTANT" @@ -10235,11 +10238,11 @@ CLASS="CONSTANT" >. If set to <TT CLASS="CONSTANT" ->no</TT +>false</TT > Samba will never produce these broadcasts. If set to <TT CLASS="CONSTANT" ->yes</TT +>true</TT > Samba will produce Lanman announce broadcasts at a frequency set by the parameter <TT @@ -10262,7 +10265,7 @@ CLASS="PARAMETER" >.</P ><P >See also <A -HREF="#LMINTERVAL" +HREF="index.html#LMINTERVAL" ><TT CLASS="PARAMETER" ><I @@ -10291,7 +10294,7 @@ NAME="LMINTERVAL" ><P >If Samba is set to produce Lanman announce broadcasts needed by OS/2 clients (see the <A -HREF="#LMANNOUNCE" +HREF="index.html#LMANNOUNCE" > <TT CLASS="PARAMETER" ><I @@ -10310,7 +10313,7 @@ CLASS="PARAMETER" parameter.</P ><P >See also <A -HREF="#LMANNOUNCE" +HREF="index.html#LMANNOUNCE" ><TT CLASS="PARAMETER" ><I @@ -10340,7 +10343,7 @@ NAME="LOADPRINTERS" >A boolean variable that controls whether all printers in the printcap will be loaded for browsing by default. See the <A -HREF="#AEN79" +HREF="index.html#AEN79" >printers</A > section for more details.</P @@ -10367,7 +10370,7 @@ CLASS="COMMAND" > to try and become a local master browser on a subnet. If set to <TT CLASS="CONSTANT" ->no</TT +>false</TT > then <B CLASS="COMMAND" > nmbd</B @@ -10375,10 +10378,10 @@ CLASS="COMMAND" on a subnet and will also lose in all browsing elections. By default this value is set to <TT CLASS="CONSTANT" ->yes</TT +>true</TT >. Setting this value to <TT CLASS="CONSTANT" ->yes</TT +>true</TT > doesn't mean that Samba will <SPAN CLASS="emphasis" @@ -10400,7 +10403,7 @@ CLASS="EMPHASIS" ><P >Setting this value to <TT CLASS="CONSTANT" ->no</TT +>false</TT > will cause <B CLASS="COMMAND" >nmbd</B @@ -10426,7 +10429,7 @@ NAME="LOCKDIR" ><DD ><P >Synonym for <A -HREF="#LOCKDIRECTORY" +HREF="index.html#LOCKDIRECTORY" ><TT CLASS="PARAMETER" ><I @@ -10445,7 +10448,7 @@ NAME="LOCKDIRECTORY" >This option specifies the directory where lock files will be placed. The lock files are used to implement the <A -HREF="#MAXCONNECTIONS" +HREF="index.html#MAXCONNECTIONS" ><TT CLASS="PARAMETER" ><I @@ -10499,7 +10502,7 @@ NAME="LOCKSPINTIME" >The time in microseconds that smbd should pause before attempting to gain a failed lock. See <A -HREF="#LOCKSPINCOUNT" +HREF="index.html#LOCKSPINCOUNT" ><TT CLASS="PARAMETER" ><I @@ -10623,7 +10626,7 @@ NAME="LOGONDRIVE" ><P >This parameter specifies the local path to which the home directory will be connected (see <A -HREF="#LOGONHOME" +HREF="index.html#LOGONHOME" ><TT CLASS="PARAMETER" ><I @@ -10692,7 +10695,7 @@ CLASS="COMMAND" but use the whole string when dealing with profiles.</P ><P >Note that in prior versions of Samba, the <A -HREF="#LOGONPATH" +HREF="index.html#LOGONPATH" > <TT CLASS="PARAMETER" ><I @@ -10739,7 +10742,7 @@ NAME="LOGONPATH" stored. Contrary to previous versions of these manual pages, it has nothing to do with Win 9X roaming profiles. To find out how to handle roaming profiles for Win 9X system, see the <A -HREF="#LOGONHOME" +HREF="index.html#LOGONHOME" > <TT CLASS="PARAMETER" ><I @@ -10823,7 +10826,7 @@ NAME="LOGONSCRIPT" ><P >The script must be a relative path to the [netlogon] service. If the [netlogon] service specifies a <A -HREF="#PATH" +HREF="index.html#PATH" > <TT CLASS="PARAMETER" ><I @@ -10934,7 +10937,7 @@ CLASS="PARAMETER" in the lppause command as the PATH may not be available to the server.</P ><P >See also the <A -HREF="#PRINTING" +HREF="index.html#PRINTING" ><TT CLASS="PARAMETER" ><I @@ -11028,7 +11031,7 @@ CLASS="COMMAND" >A value of 0 will disable caching completely.</P ><P >See also the <A -HREF="#PRINTING" +HREF="index.html#PRINTING" ><TT CLASS="PARAMETER" ><I @@ -11112,7 +11115,7 @@ CLASS="PARAMETER" print queue listing.</P ><P >See also the <A -HREF="#PRINTING" +HREF="index.html#PRINTING" ><TT CLASS="PARAMETER" ><I @@ -11154,7 +11157,7 @@ NAME="LPRESUMECOMMAND" >This command should be a program or script which takes a printer name and job number to resume the print job. See also the <A -HREF="#LPPAUSECOMMAND" +HREF="index.html#LPPAUSECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -11188,7 +11191,7 @@ CLASS="PARAMETER" be available to the server.</P ><P >See also the <A -HREF="#PRINTING" +HREF="index.html#PRINTING" ><TT CLASS="PARAMETER" ><I @@ -11274,7 +11277,7 @@ CLASS="PARAMETER" available to the server.</P ><P >See also the <A -HREF="#PRINTING" +HREF="index.html#PRINTING" ><TT CLASS="PARAMETER" ><I @@ -11319,7 +11322,7 @@ NAME="MACHINEPASSWORDTIMEOUT" ><P >If a Samba server is a member of a Windows NT Domain (see the <A -HREF="#SECURITYEQUALSDOMAIN" +HREF="index.html#SECURITYEQUALSDOMAIN" >security = domain</A >) parameter) then periodically a running <A @@ -11344,7 +11347,7 @@ CLASS="COMMAND" </B ></A >, and the <A -HREF="#SECURITYEQUALSDOMAIN" +HREF="index.html#SECURITYEQUALSDOMAIN" > security = domain</A >) parameter.</P ><P @@ -11363,7 +11366,7 @@ NAME="MAGICOUTPUT" >This parameter specifies the name of a file which will contain output created by a magic script (see the <A -HREF="#MAGICSCRIPT" +HREF="index.html#MAGICSCRIPT" ><TT CLASS="PARAMETER" ><I @@ -11411,7 +11414,7 @@ NAME="MAGICSCRIPT" ><P >If the script generates output, output will be sent to the file specified by the <A -HREF="#MAGICOUTPUT" +HREF="index.html#MAGICOUTPUT" ><TT CLASS="PARAMETER" ><I @@ -11468,7 +11471,7 @@ NAME="MANGLECASE" ><DD ><P >See the section on <A -HREF="#AEN203" +HREF="index.html#AEN203" > NAME MANGLING</A ></P ><P @@ -11544,7 +11547,7 @@ NAME="MANGLEDNAMES" or whether non-DOS names should simply be ignored.</P ><P >See the section on <A -HREF="#AEN203" +HREF="index.html#AEN203" > NAME MANGLING</A > for details on how to control the mangling process.</P ><P @@ -11570,7 +11573,7 @@ HREF="#AEN203" ><P >Note that the character to use may be specified using the <A -HREF="#MANGLINGCHAR" +HREF="index.html#MANGLINGCHAR" ><TT CLASS="PARAMETER" ><I @@ -11696,7 +11699,7 @@ CLASS="EMPHASIS" >magic</I ></SPAN > character in <A -HREF="#AEN203" +HREF="index.html#AEN203" >name mangling</A >. The default is a '~' but this may interfere with some software. Use this option to set @@ -11734,7 +11737,7 @@ CLASS="PARAMETER" > parameter to be set such that owner execute bit is not masked out (i.e. it must include 100). See the parameter <A -HREF="#CREATEMASK" +HREF="index.html#CREATEMASK" > <TT CLASS="PARAMETER" ><I @@ -11766,7 +11769,7 @@ CLASS="PARAMETER" > to be set such that the world execute bit is not masked out (i.e. it must include 001). See the parameter <A -HREF="#CREATEMASK" +HREF="index.html#CREATEMASK" > <TT CLASS="PARAMETER" ><I @@ -11798,7 +11801,7 @@ CLASS="PARAMETER" > to be set such that the group execute bit is not masked out (i.e. it must include 010). See the parameter <A -HREF="#CREATEMASK" +HREF="index.html#CREATEMASK" > <TT CLASS="PARAMETER" ><I @@ -11820,7 +11823,7 @@ NAME="MAPTOGUEST" ><DD ><P >This parameter is only useful in <A -HREF="#SECURITY" +HREF="index.html#SECURITY" > security</A > modes other than <TT CLASS="PARAMETER" @@ -11870,7 +11873,7 @@ CLASS="CONSTANT" logins with an invalid password are rejected, unless the username does not exist, in which case it is treated as a guest login and mapped into the <A -HREF="#GUESTACCOUNT" +HREF="index.html#GUESTACCOUNT" ><TT CLASS="PARAMETER" ><I @@ -11887,7 +11890,7 @@ CLASS="CONSTANT" > - Means user logins with an invalid password are treated as a guest login and mapped into the <A -HREF="#GUESTACCOUNT" +HREF="index.html#GUESTACCOUNT" >guest account</A >. Note that this can cause problems as it means that any user incorrectly typing @@ -11966,7 +11969,7 @@ CLASS="PARAMETER" ><P >Record lock files are used to implement this feature. The lock files will be stored in the directory specified by the <A -HREF="#LOCKDIRECTORY" +HREF="index.html#LOCKDIRECTORY" ><TT CLASS="PARAMETER" ><I @@ -12118,7 +12121,7 @@ CLASS="COMMAND" ></A > will remote "Out of Space" to the client. See all <A -HREF="#TOTALPRINTJOBS" +HREF="index.html#TOTALPRINTJOBS" ><TT CLASS="PARAMETER" ><I @@ -12206,7 +12209,7 @@ CLASS="CONSTANT" the appropriate protocol.</P ><P >See also <A -HREF="#MINPROTOCOL" +HREF="index.html#MINPROTOCOL" ><TT CLASS="PARAMETER" ><I @@ -12302,7 +12305,7 @@ TARGET="_top" >nmbd(8) </A > when acting as a WINS server (<A -HREF="#WINSSUPPORT" +HREF="index.html#WINSSUPPORT" > <TT CLASS="PARAMETER" ><I @@ -12318,7 +12321,7 @@ CLASS="COMMAND" parameter. The default is 6 days (518400 seconds).</P ><P >See also the <A -HREF="#MINWINSTTL" +HREF="index.html#MINWINSTTL" ><TT CLASS="PARAMETER" ><I @@ -12492,7 +12495,7 @@ NAME="MINPASSWDLENGTH" ><DD ><P >Synonym for <A -HREF="#MINPASSWORDLENGTH" +HREF="index.html#MINPASSWORDLENGTH" > <TT CLASS="PARAMETER" ><I @@ -12516,7 +12519,7 @@ CLASS="COMMAND" UNIX password changing.</P ><P >See also <A -HREF="#UNIXPASSWORDSYNC" +HREF="index.html#UNIXPASSWORDSYNC" ><TT CLASS="PARAMETER" ><I @@ -12525,7 +12528,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#PASSWDPROGRAM" +HREF="index.html#PASSWDPROGRAM" > <TT CLASS="PARAMETER" ><I @@ -12533,7 +12536,7 @@ CLASS="PARAMETER" ></TT ></A > and <A -HREF="#PASSWDCHATDEBUG" +HREF="index.html#PASSWDCHATDEBUG" ><TT CLASS="PARAMETER" ><I @@ -12561,7 +12564,7 @@ NAME="MINPRINTSPACE" means a user can always spool a print job.</P ><P >See also the <A -HREF="#PRINTING" +HREF="index.html#PRINTING" ><TT CLASS="PARAMETER" ><I @@ -12591,7 +12594,7 @@ NAME="MINPROTOCOL" >The value of the parameter (a string) is the lowest SMB protocol dialect than Samba will support. Please refer to the <A -HREF="#MAXPROTOCOL" +HREF="index.html#MAXPROTOCOL" ><TT CLASS="PARAMETER" ><I @@ -12609,7 +12612,7 @@ CLASS="FILENAME" ><P >If you are viewing this parameter as a security measure, you should also refer to the <A -HREF="#LANMANAUTH" +HREF="index.html#LANMANAUTH" ><TT CLASS="PARAMETER" ><I @@ -12644,7 +12647,7 @@ TARGET="_top" >nmbd(8)</A > when acting as a WINS server (<A -HREF="#WINSSUPPORT" +HREF="index.html#WINSSUPPORT" ><TT CLASS="PARAMETER" ><I @@ -12695,7 +12698,7 @@ TARGET="_top" >.</P ><P >See also <A -HREF="#HOSTMSDFS" +HREF="index.html#HOSTMSDFS" ><TT CLASS="PARAMETER" ><I @@ -12790,7 +12793,7 @@ CLASS="CONSTANT" >wins</TT > : Query a name with the IP address listed in the <A -HREF="#WINSSERVER" +HREF="index.html#WINSSERVER" ><TT CLASS="PARAMETER" ><I @@ -12807,7 +12810,7 @@ CLASS="CONSTANT" >bcast</TT > : Do a broadcast on each of the known local interfaces listed in the <A -HREF="#INTERFACES" +HREF="index.html#INTERFACES" ><TT CLASS="PARAMETER" ><I @@ -12857,7 +12860,7 @@ TARGET="_top" with these capabilities.</P ><P >See also <A -HREF="#NETBIOSNAME" +HREF="index.html#NETBIOSNAME" ><TT CLASS="PARAMETER" ><I @@ -12895,7 +12898,7 @@ NAME="NETBIOSNAME" advertised under.</P ><P >See also <A -HREF="#NETBIOSALIASES" +HREF="index.html#NETBIOSALIASES" ><TT CLASS="PARAMETER" ><I @@ -12954,7 +12957,7 @@ NAME="NISHOMEDIR" it will be mounted on the Samba client directly from the directory server. When Samba is returning the home share to the client, it will consult the NIS map specified in <A -HREF="#HOMEDIRMAP" +HREF="index.html#HOMEDIRMAP" > <TT CLASS="PARAMETER" ><I @@ -13113,7 +13116,7 @@ NAME="OBEYPAMRESTRICTIONS" default behavior is to use PAM for clear text authentication only and to ignore any account or session management. Note that Samba always ignores PAM for authentication in the case of <A -HREF="#ENCRYPTPASSWORDS" +HREF="index.html#ENCRYPTPASSWORDS" ><TT CLASS="PARAMETER" ><I @@ -13154,7 +13157,7 @@ CLASS="PARAMETER" ></TT > list and is only really useful in <A -HREF="#SECURITYEQUALSSHARE" +HREF="index.html#SECURITYEQUALSSHARE" >shave level</A > security.</P @@ -13175,7 +13178,7 @@ CLASS="PARAMETER" name of the user.</P ><P >See also the <A -HREF="#USER" +HREF="index.html#USER" ><TT CLASS="PARAMETER" ><I @@ -13198,7 +13201,7 @@ NAME="ONLYGUEST" ><DD ><P >A synonym for <A -HREF="#GUESTONLY" +HREF="index.html#GUESTONLY" ><TT CLASS="PARAMETER" ><I @@ -13313,7 +13316,7 @@ CLASS="FILENAME" ><P >Oplocks may be selectively turned off on certain files with a share. See the <A -HREF="#VETOOPLOCKFILES" +HREF="index.html#VETOOPLOCKFILES" ><TT CLASS="PARAMETER" ><I @@ -13332,7 +13335,7 @@ CLASS="PARAMETER" > parameter for details.</P ><P >See also the <A -HREF="#KERNELOPLOCKS" +HREF="index.html#KERNELOPLOCKS" ><TT CLASS="PARAMETER" ><I @@ -13341,7 +13344,7 @@ CLASS="PARAMETER" ></TT ></A > and <A -HREF="#LEVEL2OPLOCKS" +HREF="index.html#LEVEL2OPLOCKS" ><TT CLASS="PARAMETER" ><I @@ -13486,7 +13489,7 @@ NAME="PAMPASSWORDCHANGE" flag for Samba. If enabled, then PAM will be used for password changes when requested by an SMB client instead of the program listed in <A -HREF="#PASSWDPROGRAM" +HREF="index.html#PASSWDPROGRAM" ><TT CLASS="PARAMETER" ><I @@ -13496,7 +13499,7 @@ CLASS="PARAMETER" >. It should be possible to enable this without changing your <A -HREF="#PASSWDCHAT" +HREF="index.html#PASSWDCHAT" ><TT CLASS="PARAMETER" ><I @@ -13600,7 +13603,7 @@ CLASS="COMMAND" Takes a path to the smbpasswd file as an optional argument.</P ><P >See also <A -HREF="#NONUNIXACCOUNTRANGE" +HREF="index.html#NONUNIXACCOUNTRANGE" > <TT CLASS="PARAMETER" ><I @@ -13617,7 +13620,7 @@ CLASS="COMMAND" > - The TDB based password storage backend. Takes a path to the TDB as an optional argument (defaults to passdb.tdb in the <A -HREF="#PRIVATEDIR" +HREF="index.html#PRIVATEDIR" > <TT CLASS="PARAMETER" ><I @@ -13634,7 +13637,7 @@ CLASS="COMMAND" > - The TDB based password storage backend, with non unix account support. Takes a path to the TDB as an optional argument (defaults to passdb.tdb in the <A -HREF="#PRIVATEDIR" +HREF="index.html#PRIVATEDIR" > <TT CLASS="PARAMETER" ><I @@ -13644,7 +13647,7 @@ CLASS="PARAMETER" > directory.</P ><P >See also <A -HREF="#NONUNIXACCOUNTRANGE" +HREF="index.html#NONUNIXACCOUNTRANGE" > <TT CLASS="PARAMETER" ><I @@ -13678,7 +13681,7 @@ CLASS="COMMAND" >)</P ><P >See also <A -HREF="#NONUNIXACCOUNTRANGE" +HREF="index.html#NONUNIXACCOUNTRANGE" > <TT CLASS="PARAMETER" ><I @@ -13774,7 +13777,7 @@ TARGET="_top" > smbd(8)</A > uses to determine what to send to the <A -HREF="#PASSWDPROGRAM" +HREF="index.html#PASSWDPROGRAM" ><TT CLASS="PARAMETER" ><I @@ -13790,7 +13793,7 @@ CLASS="PARAMETER" etc).</P ><P >Note that this parameter only is only used if the <A -HREF="#UNIXPASSWORDSYNC" +HREF="index.html#UNIXPASSWORDSYNC" ><TT CLASS="PARAMETER" ><I @@ -13813,7 +13816,7 @@ CLASS="EMPHASIS" password cleartext. This means that root must be able to reset the user's password without knowing the text of the previous password. In the presence of NIS/YP, this means that the <A -HREF="#PASSWDPROGRAM" +HREF="index.html#PASSWDPROGRAM" >passwd program</A > must be executed on the NIS master. @@ -13849,7 +13852,7 @@ CLASS="CONSTANT" if the expect string is a full stop then no string is expected.</P ><P >If the <A -HREF="#PAMPASSWORDCHANGE" +HREF="index.html#PAMPASSWORDCHANGE" ><TT CLASS="PARAMETER" ><I @@ -13857,16 +13860,13 @@ CLASS="PARAMETER" password change</I ></TT ></A -> parameter is set to <TT -CLASS="CONSTANT" ->yes</TT ->, the chat pairs +> parameter is set to true, the chat pairs may be matched in any order, and success is determined by the PAM result, not any particular output. The \n macro is ignored for PAM conversions. </P ><P >See also <A -HREF="#UNIXPASSWORDSYNC" +HREF="index.html#UNIXPASSWORDSYNC" ><TT CLASS="PARAMETER" ><I @@ -13875,7 +13875,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#PASSWDPROGRAM" +HREF="index.html#PASSWDPROGRAM" ><TT CLASS="PARAMETER" ><I @@ -13883,7 +13883,7 @@ CLASS="PARAMETER" ></TT ></A > ,<A -HREF="#PASSWDCHATDEBUG" +HREF="index.html#PASSWDCHATDEBUG" > <TT CLASS="PARAMETER" ><I @@ -13891,7 +13891,7 @@ CLASS="PARAMETER" ></TT ></A > and <A -HREF="#PAMPASSWORDCHANGE" +HREF="index.html#PAMPASSWORDCHANGE" > <TT CLASS="PARAMETER" ><I @@ -13935,7 +13935,7 @@ TARGET="_top" >smbd(8)</A > log with a <A -HREF="#DEBUGLEVEL" +HREF="index.html#DEBUGLEVEL" ><TT CLASS="PARAMETER" ><I @@ -13962,7 +13962,7 @@ CLASS="PARAMETER" > and should be turned off after this has been done. This option has no effect if the <A -HREF="#PAMPASSWORDCHANGE" +HREF="index.html#PAMPASSWORDCHANGE" ><TT CLASS="PARAMETER" ><I @@ -13973,7 +13973,7 @@ CLASS="PARAMETER" paramter is set. This parameter is off by default.</P ><P >See also <A -HREF="#PASSWDCHAT" +HREF="index.html#PASSWDCHAT" ><TT CLASS="PARAMETER" ><I @@ -13982,7 +13982,7 @@ CLASS="PARAMETER" > </A >, <A -HREF="#PAMPASSWORDCHANGE" +HREF="index.html#PAMPASSWORDCHANGE" ><TT CLASS="PARAMETER" ><I @@ -13991,7 +13991,7 @@ CLASS="PARAMETER" > </A >, <A -HREF="#PASSWDPROGRAM" +HREF="index.html#PASSWDPROGRAM" ><TT CLASS="PARAMETER" ><I @@ -14049,7 +14049,7 @@ CLASS="PARAMETER" ></TT > parameter is set to <TT CLASS="CONSTANT" ->yes +>true </TT > then this program is called <SPAN CLASS="emphasis" @@ -14098,11 +14098,11 @@ CLASS="PARAMETER" ></TT > is set to <TT CLASS="CONSTANT" ->no</TT +>false</TT >.</P ><P >See also <A -HREF="#UNIXPASSWORDSYNC" +HREF="index.html#UNIXPASSWORDSYNC" ><TT CLASS="PARAMETER" ><I @@ -14212,7 +14212,7 @@ CLASS="FILENAME" ><P >The name of the password server is looked up using the parameter <A -HREF="#NAMERESOLVEORDER" +HREF="index.html#NAMERESOLVEORDER" ><TT CLASS="PARAMETER" ><I @@ -14358,7 +14358,7 @@ CLASS="COMMAND" ></UL ><P >See also the <A -HREF="#SECURITY" +HREF="index.html#SECURITY" ><TT CLASS="PARAMETER" ><I @@ -14421,7 +14421,7 @@ CLASS="PARAMETER" up pseudo home directories for users.</P ><P >Note that this path will be based on <A -HREF="#ROOTDIR" +HREF="index.html#ROOTDIR" > <TT CLASS="PARAMETER" ><I @@ -14512,7 +14512,7 @@ CLASS="COMMAND" ></P ><P >See also <A -HREF="#PREEXEC" +HREF="index.html#PREEXEC" ><TT CLASS="PARAMETER" ><I @@ -14583,7 +14583,7 @@ CLASS="COMMAND" >Of course, this could get annoying after a while :-)</P ><P >See also <A -HREF="#PREEXECCLOSE" +HREF="index.html#PREEXECCLOSE" ><TT CLASS="PARAMETER" ><I @@ -14592,7 +14592,7 @@ CLASS="PARAMETER" ></TT ></A > and <A -HREF="#POSTEXEC" +HREF="index.html#POSTEXEC" ><TT CLASS="PARAMETER" ><I @@ -14625,7 +14625,7 @@ NAME="PREEXECCLOSE" ><P >This boolean option controls whether a non-zero return code from <A -HREF="#PREEXEC" +HREF="index.html#PREEXEC" ><TT CLASS="PARAMETER" ><I @@ -14656,7 +14656,7 @@ TARGET="_top" ><P >If this is set to <TT CLASS="CONSTANT" ->yes</TT +>true</TT >, on startup, <B CLASS="COMMAND" >nmbd</B @@ -14666,7 +14666,7 @@ CLASS="COMMAND" used in conjunction with <B CLASS="COMMAND" ><A -HREF="#DOMAINMASTER" +HREF="index.html#DOMAINMASTER" ><TT CLASS="PARAMETER" ><I @@ -14687,7 +14687,7 @@ CLASS="COMMAND" capabilities.</P ><P >See also <A -HREF="#OSLEVEL" +HREF="index.html#OSLEVEL" ><TT CLASS="PARAMETER" ><I @@ -14710,7 +14710,7 @@ NAME="PREFEREDMASTER" ><DD ><P >Synonym for <A -HREF="#PREFERREDMASTER" +HREF="index.html#PREFERREDMASTER" ><TT CLASS="PARAMETER" ><I @@ -14723,7 +14723,7 @@ CLASS="PARAMETER" ><A NAME="PRELOAD" ></A ->preload (G)</DT +>preload</DT ><DD ><P >This is a list of services that you want to be @@ -14733,7 +14733,7 @@ NAME="PRELOAD" ><P >Note that if you just want all printers in your printcap file loaded then the <A -HREF="#LOADPRINTERS" +HREF="index.html#LOADPRINTERS" > <TT CLASS="PARAMETER" ><I @@ -14765,7 +14765,7 @@ NAME="PRESERVECASE" > This controls if new filenames are created with the case that the client passes, or if they are forced to be the <A -HREF="#DEFAULTCASE" +HREF="index.html#DEFAULTCASE" ><TT CLASS="PARAMETER" ><I @@ -14781,7 +14781,7 @@ CLASS="COMMAND" ></P ><P >See the section on <A -HREF="#AEN203" +HREF="index.html#AEN203" >NAME MANGLING</A > for a fuller discussion.</P @@ -14869,7 +14869,7 @@ CLASS="CONSTANT" >nobody</TT > account. If this happens then create an alternative guest account that can print and set the <A -HREF="#GUESTACCOUNT" +HREF="index.html#GUESTACCOUNT" ><TT CLASS="PARAMETER" ><I @@ -14893,7 +14893,7 @@ CLASS="COMMAND" >You may have to vary this command considerably depending on how you normally print files on your system. The default for the parameter varies depending on the setting of the <A -HREF="#PRINTING" +HREF="index.html#PRINTING" > <TT CLASS="PARAMETER" ><I @@ -14935,7 +14935,7 @@ CLASS="COMMAND" ><P >For printing = CUPS : If SAMBA is compiled against libcups, then <A -HREF="#PRINTING" +HREF="index.html#PRINTING" >printcap = cups</A > uses the CUPS API to @@ -14966,7 +14966,7 @@ NAME="PRINTOK" ><DD ><P >Synonym for <A -HREF="#PRINTABLE" +HREF="index.html#PRINTABLE" > <TT CLASS="PARAMETER" ><I @@ -14992,11 +14992,11 @@ CLASS="CONSTANT" >Note that a printable service will ALWAYS allow writing to the service path (user privileges permitting) via the spooling of print data. The <A -HREF="#READONLY" +HREF="index.html#WRITEABLE" ><TT CLASS="PARAMETER" ><I ->read only +>writeable </I ></TT ></A @@ -15016,7 +15016,7 @@ NAME="PRINTCAP" ><DD ><P >Synonym for <A -HREF="#PRINTCAPNAME" +HREF="index.html#PRINTCAPNAME" ><TT CLASS="PARAMETER" ><I @@ -15037,7 +15037,7 @@ NAME="PRINTCAPNAME" CLASS="FILENAME" > /etc/printcap</TT >). See the discussion of the <A -HREF="#AEN79" +HREF="index.html#AEN79" >[printers]</A > section above for reasons why you might want to do this.</P @@ -15048,7 +15048,7 @@ CLASS="COMMAND" </B >. This should be supplemented by an addtional setting <A -HREF="#PRINTING" +HREF="index.html#PRINTING" >printing = cups</A > in the [global] section. <B @@ -15188,7 +15188,7 @@ TARGET="_top" sensitive) that describes the appropriate printer driver for your system. If you don't know the exact string to use then you should first try with no <A -HREF="#PRINTERDRIVER" +HREF="index.html#PRINTERDRIVER" ><TT CLASS="PARAMETER" ><I @@ -15200,7 +15200,7 @@ CLASS="PARAMETER" shown in a scroll box after you have chosen the printer manufacturer.</P ><P >See also <A -HREF="#PRINTERDRIVERFILE" +HREF="index.html#PRINTERDRIVERFILE" ><TT CLASS="PARAMETER" ><I @@ -15271,7 +15271,7 @@ CLASS="FILENAME" >.</P ><P >See also <A -HREF="#PRINTERDRIVERLOCATION" +HREF="index.html#PRINTERDRIVERLOCATION" ><TT CLASS="PARAMETER" ><I @@ -15341,7 +15341,7 @@ CLASS="FILENAME" >.</P ><P >See also <A -HREF="#PRINTERDRIVERFILE" +HREF="index.html#PRINTERDRIVERFILE" ><TT CLASS="PARAMETER" ><I @@ -15400,7 +15400,7 @@ NAME="PRINTER" ><DD ><P >Synonym for <A -HREF="#PRINTERNAME" +HREF="index.html#PRINTERNAME" ><TT CLASS="PARAMETER" ><I @@ -15493,7 +15493,7 @@ TARGET="_top" >This option can be set on a per printer basis</P ><P >See also the discussion in the <A -HREF="#AEN79" +HREF="index.html#AEN79" > [printers]</A > section.</P ></DD @@ -15528,7 +15528,7 @@ NAME="PROTOCOL" ><DD ><P >Synonym for <A -HREF="#MAXPROTOCOL" +HREF="index.html#MAXPROTOCOL" > <TT CLASS="PARAMETER" ><I @@ -15545,7 +15545,7 @@ NAME="PUBLIC" ><DD ><P >Synonym for <A -HREF="#GUESTOK" +HREF="index.html#GUESTOK" ><TT CLASS="PARAMETER" ><I @@ -15616,7 +15616,7 @@ NAME="QUEUERESUMECOMMAND" executed on the server host in order to resume the printer queue. It is the command to undo the behavior that is caused by the previous parameter (<A -HREF="#QUEUEPAUSECOMMAND" +HREF="index.html#QUEUEPAUSECOMMAND" ><TT CLASS="PARAMETER" ><I @@ -15651,7 +15651,7 @@ CLASS="emphasis" ><I CLASS="EMPHASIS" >depends on the setting of <A -HREF="#PRINTING" +HREF="index.html#PRINTING" ><TT CLASS="PARAMETER" ><I @@ -15703,17 +15703,17 @@ NAME="READLIST" >This is a list of users that are given read-only access to a service. If the connecting user is in this list then they will not be given write access, no matter what the <A -HREF="#READONLY" +HREF="index.html#WRITEABLE" ><TT CLASS="PARAMETER" ><I ->read only</I +>writeable</I ></TT ></A > option is set to. The list can include group names using the syntax described in the <A -HREF="#INVALIDUSERS" +HREF="index.html#INVALIDUSERS" ><TT CLASS="PARAMETER" ><I @@ -15723,7 +15723,7 @@ CLASS="PARAMETER" > parameter.</P ><P >See also the <A -HREF="#WRITELIST" +HREF="index.html#WRITELIST" ><TT CLASS="PARAMETER" ><I @@ -15731,7 +15731,7 @@ CLASS="PARAMETER" ></TT ></A > parameter and the <A -HREF="#INVALIDUSERS" +HREF="index.html#INVALIDUSERS" ><TT CLASS="PARAMETER" ><I @@ -15758,40 +15758,15 @@ NAME="READONLY" >read only (S)</DT ><DD ><P ->An inverted synonym is <A -HREF="#WRITEABLE" -> <TT +>Note that this is an inverted synonym for <A +HREF="index.html#WRITEABLE" +><TT CLASS="PARAMETER" ><I >writeable</I ></TT ></A >.</P -><P ->If this parameter is <TT -CLASS="CONSTANT" ->yes</TT ->, then users - of a service may not create or modify files in the service's - directory.</P -><P ->Note that a printable service (<B -CLASS="COMMAND" ->printable = yes</B ->) - will <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->ALWAYS</I -></SPAN -> allow writing to the directory - (user privileges permitting), but only via spooling operations.</P -><P ->Default: <B -CLASS="COMMAND" ->read only = yes</B -></P ></DD ><DT ><A @@ -15814,7 +15789,7 @@ NAME="READRAW" ><P >In general this parameter should be viewed as a system tuning tool and left severely alone. See also <A -HREF="#WRITERAW" +HREF="index.html#WRITERAW" > <TT CLASS="PARAMETER" ><I @@ -15928,7 +15903,7 @@ CLASS="COMMAND" to the two given IP addresses using the given workgroup names. If you leave out the workgroup name then the one given in the <A -HREF="#WORKGROUP" +HREF="index.html#WORKGROUP" ><TT CLASS="PARAMETER" ><I @@ -16016,13 +15991,13 @@ NAME="RESTRICTANONYMOUS" ><P >This is a boolean parameter. If it is <TT CLASS="CONSTANT" ->yes</TT +>true</TT >, then anonymous access to the server will be restricted, namely in the case where the server is expecting the client to send a username, but it doesn't. Setting it to <TT CLASS="CONSTANT" ->yes</TT +>true</TT > will force these anonymous connections to be denied, and the client will be required to always supply a username and password when connecting. Use of this parameter @@ -16035,7 +16010,7 @@ CLASS="CONSTANT" ><P >When restrict anonymous is <TT CLASS="CONSTANT" ->yes</TT +>true</TT >, all anonymous connections are denied no matter what they are for. This can effect the ability of a machine to access the Samba Primary Domain Controller to revalidate @@ -16059,7 +16034,7 @@ NAME="ROOT" ><DD ><P >Synonym for <A -HREF="#ROOTDIRECTORY" +HREF="index.html#ROOTDIRECTORY" > <TT CLASS="PARAMETER" ><I @@ -16076,7 +16051,7 @@ NAME="ROOTDIR" ><DD ><P >Synonym for <A -HREF="#ROOTDIRECTORY" +HREF="index.html#ROOTDIRECTORY" > <TT CLASS="PARAMETER" ><I @@ -16102,7 +16077,7 @@ CLASS="COMMAND" It may also check for, and deny access to, soft links to other parts of the filesystem, or attempts to use ".." in file names to access other directories (depending on the setting of the <A -HREF="#WIDELINKS" +HREF="index.html#WIDELINKS" ><TT CLASS="PARAMETER" ><I @@ -16177,7 +16152,7 @@ CLASS="PARAMETER" (such as CDROMs) after a connection is closed.</P ><P >See also <A -HREF="#POSTEXEC" +HREF="index.html#POSTEXEC" ><TT CLASS="PARAMETER" ><I @@ -16210,7 +16185,7 @@ CLASS="PARAMETER" connection is opened.</P ><P >See also <A -HREF="#PREEXEC" +HREF="index.html#PREEXEC" ><TT CLASS="PARAMETER" ><I @@ -16218,7 +16193,7 @@ CLASS="PARAMETER" ></TT ></A > and <A -HREF="#PREEXECCLOSE" +HREF="index.html#PREEXECCLOSE" > <TT CLASS="PARAMETER" ><I @@ -16249,7 +16224,7 @@ CLASS="PARAMETER" > parameter except that the command is run as root.</P ><P >See also <A -HREF="#PREEXEC" +HREF="index.html#PREEXEC" ><TT CLASS="PARAMETER" ><I @@ -16257,7 +16232,7 @@ CLASS="PARAMETER" ></TT ></A > and <A -HREF="#PREEXECCLOSE" +HREF="index.html#PREEXECCLOSE" > <TT CLASS="PARAMETER" ><I @@ -16351,7 +16326,7 @@ CLASS="COMMAND" >security = user</B >, see the <A -HREF="#MAPTOGUEST" +HREF="index.html#MAPTOGUEST" ><TT CLASS="PARAMETER" ><I @@ -16372,7 +16347,7 @@ CLASS="EMPHASIS" ></SPAN > where it is offers both user and share level security under different <A -HREF="#NETBIOSALIASES" +HREF="index.html#NETBIOSALIASES" > <TT CLASS="PARAMETER" ><I @@ -16439,7 +16414,7 @@ CLASS="COMMAND" ><LI ><P >If the <A -HREF="#GUESTONLY" +HREF="index.html#GUESTONLY" ><TT CLASS="PARAMETER" ><I @@ -16449,7 +16424,7 @@ CLASS="PARAMETER" ></A > parameter is set, then all the other stages are missed and only the <A -HREF="#GUESTACCOUNT" +HREF="index.html#GUESTACCOUNT" > <TT CLASS="PARAMETER" ><I @@ -16463,7 +16438,7 @@ CLASS="PARAMETER" ><P >Is a username is sent with the share connection request, then this username (after mapping - see <A -HREF="#USERNAMEMAP" +HREF="index.html#USERNAMEMAP" ><TT CLASS="PARAMETER" ><I @@ -16499,7 +16474,7 @@ CLASS="EMPHASIS" ><LI ><P >Any users on the <A -HREF="#USER" +HREF="index.html#USER" ><TT CLASS="PARAMETER" ><I @@ -16547,7 +16522,7 @@ CLASS="EMPHASIS" be used in granting access.</P ><P >See also the section <A -HREF="#AEN236" +HREF="index.html#AEN236" > NOTE ABOUT USERNAME/PASSWORD VALIDATION</A >.</P ><P @@ -16566,7 +16541,7 @@ CLASS="EMPHASIS" >This is the default security setting in Samba 2.2. With user-level security a client must first "log-on" with a valid username and password (which can be mapped using the <A -HREF="#USERNAMEMAP" +HREF="index.html#USERNAMEMAP" ><TT CLASS="PARAMETER" ><I @@ -16575,7 +16550,7 @@ CLASS="PARAMETER" ></A > parameter). Encrypted passwords (see the <A -HREF="#ENCRYPTPASSWORDS" +HREF="index.html#ENCRYPTPASSWORDS" > <TT CLASS="PARAMETER" ><I @@ -16584,7 +16559,7 @@ CLASS="PARAMETER" ></A > parameter) can also be used in this security mode. Parameters such as <A -HREF="#USER" +HREF="index.html#USER" > <TT CLASS="PARAMETER" ><I @@ -16592,7 +16567,7 @@ CLASS="PARAMETER" ></TT ></A > and <A -HREF="#GUESTONLY" +HREF="index.html#GUESTONLY" > <TT CLASS="PARAMETER" ><I @@ -16620,7 +16595,7 @@ CLASS="EMPHASIS" the server has successfully authenticated the client. This is why guest shares don't work in user level security without allowing the server to automatically map unknown users into the <A -HREF="#GUESTACCOUNT" +HREF="index.html#GUESTACCOUNT" ><TT CLASS="PARAMETER" ><I @@ -16629,7 +16604,7 @@ CLASS="PARAMETER" ></A >. See the <A -HREF="#MAPTOGUEST" +HREF="index.html#MAPTOGUEST" ><TT CLASS="PARAMETER" ><I @@ -16640,7 +16615,7 @@ CLASS="PARAMETER" > parameter for details on doing this.</P ><P >See also the section <A -HREF="#AEN236" +HREF="index.html#AEN236" > NOTE ABOUT USERNAME/PASSWORD VALIDATION</A >.</P ><P @@ -16712,7 +16687,7 @@ CLASS="EMPHASIS" the server has successfully authenticated the client. This is why guest shares don't work in user level security without allowing the server to automatically map unknown users into the <A -HREF="#GUESTACCOUNT" +HREF="index.html#GUESTACCOUNT" ><TT CLASS="PARAMETER" ><I @@ -16721,7 +16696,7 @@ CLASS="PARAMETER" ></A >. See the <A -HREF="#MAPTOGUEST" +HREF="index.html#MAPTOGUEST" ><TT CLASS="PARAMETER" ><I @@ -16732,12 +16707,12 @@ CLASS="PARAMETER" > parameter for details on doing this.</P ><P >See also the section <A -HREF="#AEN236" +HREF="index.html#AEN236" > NOTE ABOUT USERNAME/PASSWORD VALIDATION</A >.</P ><P >See also the <A -HREF="#PASSWORDSERVER" +HREF="index.html#PASSWORDSERVER" ><TT CLASS="PARAMETER" ><I @@ -16746,7 +16721,7 @@ CLASS="PARAMETER" ></TT ></A > parameter and the <A -HREF="#ENCRYPTPASSWORDS" +HREF="index.html#ENCRYPTPASSWORDS" ><TT CLASS="PARAMETER" ><I @@ -16774,7 +16749,7 @@ TARGET="_top" >smbpasswd(8)</A > has been used to add this machine into a Windows NT Domain. It expects the <A -HREF="#ENCRYPTPASSWORDS" +HREF="index.html#ENCRYPTPASSWORDS" ><TT CLASS="PARAMETER" ><I @@ -16784,7 +16759,7 @@ CLASS="PARAMETER" </A > parameter to be set to <TT CLASS="CONSTANT" ->yes</TT +>true</TT >. In this mode Samba will try to validate the username/password by passing it to a Windows NT Primary or Backup Domain Controller, in exactly @@ -16834,7 +16809,7 @@ CLASS="EMPHASIS" the server has successfully authenticated the client. This is why guest shares don't work in user level security without allowing the server to automatically map unknown users into the <A -HREF="#GUESTACCOUNT" +HREF="index.html#GUESTACCOUNT" ><TT CLASS="PARAMETER" ><I @@ -16843,7 +16818,7 @@ CLASS="PARAMETER" ></A >. See the <A -HREF="#MAPTOGUEST" +HREF="index.html#MAPTOGUEST" ><TT CLASS="PARAMETER" ><I @@ -16871,12 +16846,12 @@ CLASS="COMMAND" Domain Controller. This issue will be addressed in a future release.</P ><P >See also the section <A -HREF="#AEN236" +HREF="index.html#AEN236" > NOTE ABOUT USERNAME/PASSWORD VALIDATION</A >.</P ><P >See also the <A -HREF="#PASSWORDSERVER" +HREF="index.html#PASSWORDSERVER" ><TT CLASS="PARAMETER" ><I @@ -16885,7 +16860,7 @@ CLASS="PARAMETER" ></TT ></A > parameter and the <A -HREF="#ENCRYPTPASSWORDS" +HREF="index.html#ENCRYPTPASSWORDS" ><TT CLASS="PARAMETER" ><I @@ -16943,7 +16918,7 @@ CLASS="CONSTANT" >.</P ><P >See also the <A -HREF="#FORCEDIRECTORYSECURITYMODE" +HREF="index.html#FORCEDIRECTORYSECURITYMODE" > <TT CLASS="PARAMETER" ><I @@ -16952,7 +16927,7 @@ CLASS="PARAMETER" ></A >, <A -HREF="#DIRECTORYSECURITYMASK" +HREF="index.html#DIRECTORYSECURITYMASK" ><TT CLASS="PARAMETER" ><I @@ -16961,7 +16936,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#FORCESECURITYMODE" +HREF="index.html#FORCESECURITYMODE" > <TT CLASS="PARAMETER" ><I @@ -17124,7 +17099,7 @@ NAME="SHORTPRESERVECASE" which conform to 8.3 syntax, that is all in upper case and of suitable length, are created upper case, or if they are forced to be the <A -HREF="#DEFAULTCASE" +HREF="index.html#DEFAULTCASE" ><TT CLASS="PARAMETER" ><I @@ -17133,7 +17108,7 @@ CLASS="PARAMETER" ></TT ></A >. This option can be use with <A -HREF="#PRESERVECASE" +HREF="index.html#PRESERVECASE" ><B CLASS="COMMAND" >preserve case = yes</B @@ -17143,7 +17118,7 @@ CLASS="COMMAND" names are lowered. </P ><P >See the section on <A -HREF="#AEN203" +HREF="index.html#AEN203" > NAME MANGLING</A >.</P ><P @@ -17197,7 +17172,7 @@ CLASS="EMPHASIS" administrative privilege on an individual printer.</P ><P >See also <A -HREF="#ADDPRINTERCOMMAND" +HREF="index.html#ADDPRINTERCOMMAND" ><TT CLASS="PARAMETER" ><I @@ -17206,7 +17181,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#DELETEPRINTERCOMMAND" +HREF="index.html#DELETEPRINTERCOMMAND" > <TT CLASS="PARAMETER" ><I @@ -17214,7 +17189,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#PRINTERADMIN" +HREF="index.html#PRINTERADMIN" ><TT CLASS="PARAMETER" ><I @@ -17335,7 +17310,7 @@ CLASS="PROGRAMLISTING" </P ><P >See also <A -HREF="#ABORTSHUTDOWNSCRIPT" +HREF="index.html#ABORTSHUTDOWNSCRIPT" ><TT CLASS="PARAMETER" ><I @@ -17646,6 +17621,33 @@ CLASS="COMMAND" ></DD ><DT ><A +NAME="STATUS" +></A +>status (G)</DT +><DD +><P +>This enables or disables logging of connections + to a status file that <A +HREF="smbstatus.1.html" +TARGET="_top" +>smbstatus(1)</A +> + can read.</P +><P +>With this disabled <B +CLASS="COMMAND" +>smbstatus</B +> won't be able + to tell you what connections are active. You should never need to + change this parameter.</P +><P +>Default: <B +CLASS="COMMAND" +>status = yes</B +></P +></DD +><DT +><A NAME="STRICTALLOCATE" ></A >strict allocate (S)</DT @@ -17743,7 +17745,7 @@ TARGET="_top" explorer shell file copies.</P ><P >See also the <A -HREF="#SYNCALWAYS" +HREF="index.html#SYNCALWAYS" ><TT CLASS="PARAMETER" ><I @@ -17785,13 +17787,13 @@ NAME="SYNCALWAYS" whether writes will always be written to stable storage before the write call returns. If this is <TT CLASS="CONSTANT" ->no</TT +>false</TT > then the server will be guided by the client's request in each write call (clients can set a bit indicating that a particular write should be synchronous). If this is <TT CLASS="CONSTANT" ->yes</TT +>true</TT > then every write will be followed by a <B CLASS="COMMAND" >fsync() @@ -17810,7 +17812,7 @@ CLASS="CONSTANT" any affect.</P ><P >See also the <A -HREF="#STRICTSYNC" +HREF="index.html#STRICTSYNC" ><TT CLASS="PARAMETER" ><I @@ -17980,7 +17982,7 @@ NAME="TIMESTAMPLOGS" ><DD ><P >Synonym for <A -HREF="#DEBUGTIMESTAMP" +HREF="index.html#DEBUGTIMESTAMP" ><TT CLASS="PARAMETER" ><I @@ -18009,7 +18011,7 @@ TARGET="_top" can be used to prevent a server from exceeding its capacity and is designed as a printing throttle. See also <A -HREF="#MAXPRINTJOBS" +HREF="index.html#MAXPRINTJOBS" ><TT CLASS="PARAMETER" ><I @@ -18093,7 +18095,7 @@ NAME="UNIXPASSWORDSYNC" when the encrypted SMB password in the smbpasswd file is changed. If this is set to <TT CLASS="CONSTANT" ->yes</TT +>true</TT > the program specified in the <TT CLASS="PARAMETER" ><I @@ -18112,7 +18114,7 @@ CLASS="EMPHASIS" access to the old password cleartext, only the new).</P ><P >See also <A -HREF="#PASSWDPROGRAM" +HREF="index.html#PASSWDPROGRAM" ><TT CLASS="PARAMETER" ><I @@ -18121,7 +18123,7 @@ CLASS="PARAMETER" ></TT ></A >, <A -HREF="#PASSWDCHAT" +HREF="index.html#PASSWDCHAT" ><TT CLASS="PARAMETER" ><I @@ -18160,7 +18162,7 @@ CLASS="CONSTANT" >.</P ><P >In order for this parameter to work correctly the <A -HREF="#ENCRYPTPASSWORDS" +HREF="index.html#ENCRYPTPASSWORDS" ><TT CLASS="PARAMETER" ><I @@ -18234,7 +18236,7 @@ CLASS="EMPHASIS" ></P ><P >See also <A -HREF="#DISABLESPOOLSS" +HREF="index.html#DISABLESPOOLSS" >disable spoolss</A > </P @@ -18256,7 +18258,7 @@ NAME="USEMMAP" mmap/read-write system memory cache. Currently only HPUX does not have such a coherent cache, and so this parameter is set to <TT CLASS="CONSTANT" ->no</TT +>false</TT > by default on HPUX. On all other systems this parameter should be left alone. This parameter is provided to help the Samba developers track down problems with @@ -18277,7 +18279,7 @@ NAME="USERHOSTS" ><P >If this global parameter is <TT CLASS="CONSTANT" ->yes</TT +>true</TT >, it specifies that the UNIX user's <TT CLASS="FILENAME" @@ -18321,7 +18323,7 @@ NAME="USER" ><DD ><P >Synonym for <A -HREF="#USERNAME" +HREF="index.html#USERNAME" ><TT CLASS="PARAMETER" ><I @@ -18338,7 +18340,7 @@ NAME="USERS" ><DD ><P >Synonym for <A -HREF="#USERNAME" +HREF="index.html#USERNAME" ><TT CLASS="PARAMETER" ><I @@ -18397,7 +18399,7 @@ CLASS="PARAMETER" ><P >To restrict a service to a particular set of users you can use the <A -HREF="#VALIDUSERS" +HREF="index.html#VALIDUSERS" ><TT CLASS="PARAMETER" ><I @@ -18427,7 +18429,7 @@ CLASS="PARAMETER" search.</P ><P >See the section <A -HREF="#AEN236" +HREF="index.html#AEN236" >NOTE ABOUT USERNAME/PASSWORD VALIDATION</A > for more information on how @@ -18510,16 +18512,16 @@ NAME="USERNAMEMAP" >If any line begins with a '#' or a ';' then it is ignored</P ><P ->If any line begins with an '!' then the processing - will stop after that line if a mapping was done by the line. - Otherwise mapping continues with every line being processed. - Using '!' is most useful when you have a wildcard mapping line +>If any line begins with an '!' then the processing + will stop after that line if a mapping was done by the line. + Otherwise mapping continues with every line being processed. + Using '!' is most useful when you have a wildcard mapping line later in the file.</P ><P >For example to map from the name <TT CLASS="CONSTANT" >admin</TT -> +> or <TT CLASS="CONSTANT" >administrator</TT @@ -18536,7 +18538,7 @@ CLASS="COMMAND" >Or to map anyone in the UNIX group <TT CLASS="CONSTANT" >system</TT -> +> to the UNIX name <TT CLASS="CONSTANT" >sys</TT @@ -18547,10 +18549,10 @@ CLASS="COMMAND" >sys = @system</B ></P ><P ->You can have as many mappings as you like in a username +>You can have as many mappings as you like in a username map file.</P ><P ->If your system supports the NIS NETGROUP option then +>If your system supports the NIS NETGROUP option then the netgroup database is checked before the <TT CLASS="FILENAME" >/etc/group @@ -18565,12 +18567,12 @@ CLASS="COMMAND" >tridge = "Andrew Tridgell"</B ></P ><P ->would map the windows username "Andrew Tridgell" to the +>would map the windows username "Andrew Tridgell" to the unix username "tridge".</P ><P ->The following example would map mary and fred to the - unix user sys, and map the rest to guest. Note the use of the - '!' to tell Samba to stop processing if it gets a match on +>The following example would map mary and fred to the + unix user sys, and map the rest to guest. Note the use of the + '!' to tell Samba to stop processing if it gets a match on that line.</P ><P ><PRE @@ -18580,38 +18582,38 @@ CLASS="PROGRAMLISTING" </PRE ></P ><P ->Note that the remapping is applied to all occurrences +>Note that the remapping is applied to all occurrences of usernames. Thus if you connect to \\server\fred and <TT CLASS="CONSTANT" > fred</TT > is remapped to <TT CLASS="CONSTANT" >mary</TT -> then you - will actually be connecting to \\server\mary and will need to +> then you + will actually be connecting to \\server\mary and will need to supply a password suitable for <TT CLASS="CONSTANT" >mary</TT -> not +> not <TT CLASS="CONSTANT" >fred</TT ->. The only exception to this is the +>. The only exception to this is the username passed to the <A -HREF="#PASSWORDSERVER" +HREF="index.html#PASSWORDSERVER" ><TT CLASS="PARAMETER" ><I > password server</I ></TT ></A -> (if you have one). The password - server will receive whatever username the client supplies without +> (if you have one). The password + server will receive whatever username the client supplies without modification.</P ><P ->Also note that no reverse mapping is done. The main effect - this has is with printing. Users who have been mapped may have - trouble deleting print jobs as PrintManager under WfWg will think +>Also note that no reverse mapping is done. The main effect + this has is with printing. Users who have been mapped may have + trouble deleting print jobs as PrintManager under WfWg will think they don't own the print job.</P ><P >Default: <SPAN @@ -18630,42 +18632,18 @@ CLASS="COMMAND" ></DD ><DT ><A -NAME="USESENDFILE" -></A ->use sendfile (S)</DT -><DD -><P ->If this parameter is <TT -CLASS="CONSTANT" ->yes</TT ->, and Samba - was built with the --with-sendfile-support option, and the underlying operating - system supports sendfile system call, then some SMB read calls (mainly ReadAndX - and ReadRaw) will use the more efficient sendfile system call for files that - are exclusively oplocked. This may make more efficient use of the system CPU's - and cause Samba to be faster. This is off by default as it's effects are unknown - as yet. - </P -><P ->Default: <B -CLASS="COMMAND" ->use sendfile = no</B -></P -></DD -><DT -><A NAME="UTMP" ></A >utmp (G)</DT ><DD ><P ->This boolean parameter is only available if +>This boolean parameter is only available if Samba has been configured and compiled with the option <B CLASS="COMMAND" > --with-utmp</B >. If set to <TT CLASS="CONSTANT" ->yes</TT +>true</TT > then Samba will attempt to add utmp or utmpx records (depending on the UNIX system) whenever a connection is made to a Samba server. Sites may use this to record the @@ -18678,7 +18656,7 @@ CLASS="CONSTANT" performance on large installations. </P ><P >See also the <A -HREF="#UTMPDIRECTORY" +HREF="index.html#UTMPDIRECTORY" ><TT CLASS="PARAMETER" ><I @@ -18706,7 +18684,7 @@ CLASS="COMMAND" >. It specifies a directory pathname that is used to store the utmp or utmpx files (depending on the UNIX system) that record user connections to a Samba server. See also the <A -HREF="#UTMP" +HREF="index.html#UTMP" > <TT CLASS="PARAMETER" ><I @@ -18752,7 +18730,7 @@ CLASS="COMMAND" has logged out. See also the <A -HREF="#UTMP" +HREF="index.html#UTMP" > <TT CLASS="PARAMETER" ><I @@ -18815,7 +18793,7 @@ CLASS="PARAMETER" >. This is useful in the [homes] section.</P ><P >See also <A -HREF="#INVALIDUSERS" +HREF="index.html#INVALIDUSERS" ><TT CLASS="PARAMETER" ><I @@ -18899,7 +18877,7 @@ CLASS="PARAMETER" for a match as they are scanned.</P ><P >See also <A -HREF="#HIDEFILES" +HREF="index.html#HIDEFILES" ><TT CLASS="PARAMETER" ><I @@ -18908,7 +18886,7 @@ CLASS="PARAMETER" ></TT ></A > and <A -HREF="#CASESENSITIVE" +HREF="index.html#CASESENSITIVE" ><TT CLASS="PARAMETER" ><I @@ -18946,7 +18924,7 @@ NAME="VETOOPLOCKFILES" ><DD ><P >This parameter is only valid when the <A -HREF="#OPLOCKS" +HREF="index.html#OPLOCKS" ><TT CLASS="PARAMETER" ><I @@ -18958,7 +18936,7 @@ CLASS="PARAMETER" to selectively turn off the granting of oplocks on selected files that match a wildcarded list, similar to the wildcarded list used in the <A -HREF="#VETOFILES" +HREF="index.html#VETOFILES" ><TT CLASS="PARAMETER" ><I @@ -19051,7 +19029,7 @@ NAME="VFSOPTIONS" to the vfs layer at initialization time. The Samba VFS layer is new to Samba 2.2 and must be enabled at compile time with --with-vfs. See also <A -HREF="#VFSOBJECT" +HREF="index.html#VFSOBJECT" ><TT CLASS="PARAMETER" ><I @@ -19162,10 +19140,7 @@ CLASS="PARAMETER" >winbind enum users</I ></TT > parameter is - <TT -CLASS="CONSTANT" ->no</TT ->, calls to the <B + false, calls to the <B CLASS="COMMAND" >getpwent</B > system call @@ -19220,10 +19195,7 @@ CLASS="PARAMETER" >winbind enum groups</I ></TT > parameter is - <TT -CLASS="CONSTANT" ->no</TT ->, calls to the <B + false, calls to the <B CLASS="COMMAND" >getgrent()</B > system @@ -19347,7 +19319,7 @@ CLASS="COMMAND" >winbind use default domain, <A NAME="WINBINDUSEDEFAULTDOMAIN" ></A ->winbind use default domain (G)</DT +>winbind use default domain</DT ><DD ><P >This parameter specifies whether the <A @@ -19362,13 +19334,13 @@ TARGET="_top" ><P >Default: <B CLASS="COMMAND" ->winbind use default domain = <no> +>winbind use default domain = <falseg> </B ></P ><P >Example: <B CLASS="COMMAND" ->winbind use default domain = yes</B +>winbind use default domain = true</B ></P ></DD ><DT @@ -19521,7 +19493,7 @@ TARGET="_top" > process in Samba will act as a WINS server. You should not set this to <TT CLASS="CONSTANT" ->yes</TT +>true</TT > unless you have a multi-subnetted network and you wish a particular <B CLASS="COMMAND" @@ -19535,7 +19507,7 @@ CLASS="EMPHASIS" ></SPAN > set this to <TT CLASS="CONSTANT" ->yes</TT +>true</TT > on more than one machine in your network.</P ><P @@ -19554,7 +19526,7 @@ NAME="WORKGROUP" >This controls what workgroup your server will appear to be in when queried by clients. Note that this parameter also controls the Domain name used with the <A -HREF="#SECURITYEQUALSDOMAIN" +HREF="index.html#SECURITYEQUALSDOMAIN" ><B CLASS="COMMAND" >security = domain</B @@ -19583,7 +19555,7 @@ NAME="WRITABLE" ><DD ><P >Synonym for <A -HREF="#WRITEABLE" +HREF="index.html#WRITEABLE" ><TT CLASS="PARAMETER" ><I @@ -19646,11 +19618,11 @@ NAME="WRITELIST" >This is a list of users that are given read-write access to a service. If the connecting user is in this list then they will be given write access, no matter what the <A -HREF="#READONLY" +HREF="index.html#WRITEABLE" ><TT CLASS="PARAMETER" ><I ->read only</I +>writeable</I ></TT ></A > @@ -19661,7 +19633,7 @@ CLASS="PARAMETER" write list then they will be given write access.</P ><P >See also the <A -HREF="#READLIST" +HREF="index.html#READLIST" ><TT CLASS="PARAMETER" ><I @@ -19714,12 +19686,12 @@ NAME="WRITEOK" >write ok (S)</DT ><DD ><P ->Inverted synonym for <A -HREF="#READONLY" +>Synonym for <A +HREF="index.html#WRITEABLE" ><TT CLASS="PARAMETER" ><I -> read only</I +> writeable</I ></TT ></A >.</P @@ -19747,15 +19719,40 @@ NAME="WRITEABLE" >writeable (S)</DT ><DD ><P ->Inverted synonym for <A -HREF="#READONLY" -><TT +>An inverted synonym is <A +HREF="index.html#READONLY" +> <TT CLASS="PARAMETER" ><I -> read only</I +>read only</I ></TT ></A >.</P +><P +>If this parameter is <TT +CLASS="CONSTANT" +>no</TT +>, then users + of a service may not create or modify files in the service's + directory.</P +><P +>Note that a printable service (<B +CLASS="COMMAND" +>printable = yes</B +>) + will <SPAN +CLASS="emphasis" +><I +CLASS="EMPHASIS" +>ALWAYS</I +></SPAN +> allow writing to the directory + (user privileges permitting), but only via spooling operations.</P +><P +>Default: <B +CLASS="COMMAND" +>writeable = no</B +></P ></DD ></DL ></DIV @@ -19763,7 +19760,7 @@ CLASS="PARAMETER" ><DIV CLASS="REFSECT1" ><A -NAME="AEN6113" +NAME="AEN6109" ></A ><H2 >WARNINGS</H2 @@ -19793,7 +19790,7 @@ TARGET="_top" ><DIV CLASS="REFSECT1" ><A -NAME="AEN6119" +NAME="AEN6115" ></A ><H2 >VERSION</H2 @@ -19804,7 +19801,7 @@ NAME="AEN6119" ><DIV CLASS="REFSECT1" ><A -NAME="AEN6122" +NAME="AEN6118" ></A ><H2 >SEE ALSO</H2 @@ -19883,7 +19880,7 @@ CLASS="COMMAND" ><DIV CLASS="REFSECT1" ><A -NAME="AEN6142" +NAME="AEN6138" ></A ><H2 >AUTHOR</H2 diff --git a/docs/htmldocs/smbcacls.1.html b/docs/htmldocs/smbcacls.1.html index e0425d481d..637720fa6b 100644 --- a/docs/htmldocs/smbcacls.1.html +++ b/docs/htmldocs/smbcacls.1.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >smbcacls</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="SMBCACLS" -></A ->smbcacls</H1 +>smbcacls</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -56,8 +55,8 @@ TARGET="_top" >The <B CLASS="COMMAND" >smbcacls</B -> program manipulates NT Access Control - Lists (ACLs) on SMB file shares. </P +> program manipulates NT Access Control Lists + (ACLs) on SMB file shares. </P ></DIV ><DIV CLASS="REFSECT1" @@ -107,7 +106,7 @@ CLASS="VARIABLELIST" ><P >This command sets the ACLs on the file with only the ones specified on the command line. All other ACLs are - erased. Note that the ACL specified must contain at least a revision, + erased. Note that the ACL specified must contain at least a revision, type, owner and group for the call to succeed. </P ></DD ><DT @@ -190,14 +189,23 @@ NAME="AEN75" >The format of an ACL is one or more ACL entries separated by either commas or newlines. An ACL entry is one of the following: </P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > -REVISION:<revision number> -OWNER:<sid or name> -GROUP:<sid or name> -ACL:<sid or name>:<type>/<flags>/<mask> +REVISION:<revision number> +OWNER:<sid or name> +GROUP:<sid or name> +ACL:<sid or name>:<type>/<flags>/<mask> </PRE +></TD +></TR +></TABLE ></P ><P >The revision of the ACL specifies the internal Windows @@ -254,62 +262,38 @@ ACL:<sid or name>:<type>/<flags>/<mask> ><UL ><LI ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->R</I -></SPAN +><EM +>R</EM > - Allow read access </P ></LI ><LI ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->W</I -></SPAN +><EM +>W</EM > - Allow write access</P ></LI ><LI ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->X</I -></SPAN +><EM +>X</EM > - Execute permission on the object</P ></LI ><LI ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->D</I -></SPAN +><EM +>D</EM > - Delete the object</P ></LI ><LI ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->P</I -></SPAN +><EM +>P</EM > - Change permissions</P ></LI ><LI ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->O</I -></SPAN +><EM +>O</EM > - Take ownership</P ></LI ></UL @@ -320,34 +304,22 @@ CLASS="EMPHASIS" ><UL ><LI ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->READ</I -></SPAN +><EM +>READ</EM > - Equivalent to 'RX' permissions</P ></LI ><LI ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->CHANGE</I -></SPAN +><EM +>CHANGE</EM > - Equivalent to 'RXWD' permissions </P ></LI ><LI ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->FULL</I -></SPAN +><EM +>FULL</EM > - Equivalent to 'RWXDPO' permissions</P ></LI diff --git a/docs/htmldocs/smbclient.1.html b/docs/htmldocs/smbclient.1.html index 1e251c2ca5..4c770f9eb2 100644 --- a/docs/htmldocs/smbclient.1.html +++ b/docs/htmldocs/smbclient.1.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >smbclient</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="SMBCLIENT" -></A ->smbclient</H1 +>smbclient</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -38,7 +37,7 @@ NAME="AEN8" ><B CLASS="COMMAND" >smbclient</B -> {servicename} [password] [-b <buffer size>] [-d debuglevel] [-D Directory] [-U username] [-W workgroup] [-M <netbios name>] [-m maxprotocol] [-A authfile] [-N] [-l logfile] [-L <netbios name>] [-I destinationIP] [-E <terminal code>] [-c <command string>] [-i scope] [-O <socket options>] [-p port] [-R <name resolve order>] [-s <smb config file>] [-T<c|x>IXFqgbNan]</P +> {servicename} [password] [-b <buffer size>] [-d debuglevel] [-D Directory] [-U username] [-W workgroup] [-M <netbios name>] [-m maxprotocol] [-A authfile] [-N] [-l logfile] [-L <netbios name>] [-I destinationIP] [-E <terminal code>] [-c <command string>] [-i scope] [-O <socket options>] [-p port] [-R <name resolve order>] [-s <smb config file>] [-T<c|x>IXFqgbNan]</P ></DIV ><DIV CLASS="REFSECT1" @@ -196,7 +195,7 @@ CLASS="FILENAME" options. </P ></DD ><DT ->-R <name resolve order></DT +>-R <name resolve order></DT ><DD ><P >This option is used by the programs in the Samba @@ -349,12 +348,8 @@ CLASS="FILENAME" > for a description of how to handle incoming WinPopup messages in Samba. </P ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->Note</I -></SPAN +><EM +>Note</EM >: Copy WinPopup into the startup group on your WfWg PCs if you want them to always be able to receive messages. </P @@ -373,12 +368,8 @@ CLASS="FILENAME" CLASS="FILENAME" >rfc1002.txt</TT >. - NetBIOS scopes are <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->very</I -></SPAN + NetBIOS scopes are <EM +>very</EM > rarely used, only set this parameter if you are the system administrator in charge of all the NetBIOS systems you communicate with. </P @@ -435,20 +426,12 @@ CLASS="REPLACEABLE" ><I >debuglevel</I ></TT -> is set to the letter 'A', then <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" +> is set to the letter 'A', then <EM >all - </I -></SPAN + </EM > debug messages will be printed. This setting - is for developers only (and people who <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->really</I -></SPAN + is for developers only (and people who <EM +>really</EM > want to know how the code works internally). </P ><P @@ -610,12 +593,21 @@ CLASS="COMMAND" password used in the connection. The format of the file is </P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" ->username = <value> -password = <value> -domain = <value> +>username = <value> +password = <value> +domain = <value> </PRE +></TD +></TR +></TABLE ></P ><P >If the domain parameter is missing the current workgroup name @@ -651,18 +643,10 @@ CLASS="COMMAND" > how to interpret filenames coming from the remote server. Usually Asian language multibyte UNIX implementations use different character sets than - SMB/CIFS servers (<SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->EUC</I -></SPAN -> instead of <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" -> SJIS</I -></SPAN + SMB/CIFS servers (<EM +>EUC</EM +> instead of <EM +> SJIS</EM > for example). Setting this parameter will let <B CLASS="COMMAND" @@ -876,12 +860,8 @@ CLASS="PARAMETER" ></LI ></UL ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->Tar Long File Names</I -></SPAN +><EM +>Tar Long File Names</EM ></P ><P ><B @@ -897,24 +877,16 @@ CLASS="COMMAND" files in the archive with relative names, not absolute names. </P ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->Tar Filenames</I -></SPAN +><EM +>Tar Filenames</EM ></P ><P >All file names can be given as DOS path names (with '\' as the component separator) or as UNIX path names (with '/' as the component separator). </P ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->Examples</I -></SPAN +><EM +>Examples</EM ></P ><P >Restore from tar file <TT @@ -1016,7 +988,7 @@ NAME="AEN310" ><P ><TT CLASS="PROMPT" ->smb:\> </TT +>smb:\> </TT ></P ><P >The backslash ("\") indicates the current working directory @@ -1036,7 +1008,7 @@ CLASS="PROMPT" ><P >Parameters shown in square brackets (e.g., "[parameter]") are optional. If not given, the command will use suitable defaults. Parameters - shown in angle brackets (e.g., "<parameter>") are required. + shown in angle brackets (e.g., "<parameter>") are required. </P ><P >Note that all commands operating on the server are actually @@ -1127,7 +1099,7 @@ CLASS="REPLACEABLE" directory on the server will be reported. </P ></DD ><DT ->del <mask></DT +>del <mask></DT ><DD ><P >The client will request that the server attempt @@ -1140,7 +1112,7 @@ CLASS="REPLACEABLE" directory on the server. </P ></DD ><DT ->dir <mask></DT +>dir <mask></DT ><DD ><P >A list of the files matching <TT @@ -1160,7 +1132,7 @@ CLASS="REPLACEABLE" from the program. </P ></DD ><DT ->get <remote file name> [local file name]</DT +>get <remote file name> [local file name]</DT ><DD ><P >Copy the file called <TT @@ -1225,13 +1197,13 @@ CLASS="REPLACEABLE" lowercase filenames are the norm on UNIX systems. </P ></DD ><DT ->ls <mask></DT +>ls <mask></DT ><DD ><P >See the dir command above. </P ></DD ><DT ->mask <mask></DT +>mask <mask></DT ><DD ><P >This command allows the user to set up a mask @@ -1257,13 +1229,13 @@ CLASS="REPLACEABLE" mask back to "*" after using the mget or mput commands. </P ></DD ><DT ->md <directory name></DT +>md <directory name></DT ><DD ><P >See the mkdir command. </P ></DD ><DT ->mget <mask></DT +>mget <mask></DT ><DD ><P >Copy all files matching <TT @@ -1288,14 +1260,14 @@ CLASS="COMMAND" > are binary. See also the lowercase command. </P ></DD ><DT ->mkdir <directory name></DT +>mkdir <directory name></DT ><DD ><P >Create a new directory on the server (user access privileges permitting) with the specified name. </P ></DD ><DT ->mput <mask></DT +>mput <mask></DT ><DD ><P >Copy all files matching <TT @@ -1321,7 +1293,7 @@ CLASS="COMMAND" are binary. </P ></DD ><DT ->print <file name></DT +>print <file name></DT ><DD ><P >Print the specified file from the local machine @@ -1330,7 +1302,7 @@ CLASS="COMMAND" >See also the printmode command.</P ></DD ><DT ->printmode <graphics or text></DT +>printmode <graphics or text></DT ><DD ><P >Set the print mode to suit either binary data @@ -1350,7 +1322,7 @@ CLASS="COMMAND" </P ></DD ><DT ->put <local file name> [remote file name]</DT +>put <local file name> [remote file name]</DT ><DD ><P >Copy the file called <TT @@ -1382,7 +1354,7 @@ CLASS="COMMAND" >See the exit command. </P ></DD ><DT ->rd <directory name></DT +>rd <directory name></DT ><DD ><P >See the rmdir command. </P @@ -1407,7 +1379,7 @@ CLASS="COMMAND" using the mask command will be ignored. </P ></DD ><DT ->rm <mask></DT +>rm <mask></DT ><DD ><P >Remove all files matching <TT @@ -1419,14 +1391,14 @@ CLASS="REPLACEABLE" working directory on the server. </P ></DD ><DT ->rmdir <directory name></DT +>rmdir <directory name></DT ><DD ><P >Remove the specified directory (user access privileges permitting) from the server. </P ></DD ><DT ->setmode <filename> <perm=[+|\-]rsha></DT +>setmode <filename> <perm=[+|\-]rsha></DT ><DD ><P >A version of the DOS attrib command to set @@ -1451,7 +1423,7 @@ CLASS="COMMAND" </P ></DD ><DT ->tar <c|x>[IXbgNa]</DT +>tar <c|x>[IXbgNa]</DT ><DD ><P >Performs a tar operation - see the <TT @@ -1467,7 +1439,7 @@ CLASS="PARAMETER" </P ></DD ><DT ->blocksize <blocksize></DT +>blocksize <blocksize></DT ><DD ><P >Blocksize. Must be followed by a valid (greater @@ -1480,7 +1452,7 @@ CLASS="REPLACEABLE" >*TBLOCK (usually 512 byte) blocks. </P ></DD ><DT ->tarmode <full|inc|reset|noreset></DT +>tarmode <full|inc|reset|noreset></DT ><DD ><P >Changes tar's behavior with regard to archive @@ -1568,12 +1540,8 @@ CLASS="FILENAME" > /usr/samba/bin/</TT > directory, this directory readable by all, writeable only by root. The client program itself should - be executable by all. The client should <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->NOT</I -></SPAN + be executable by all. The client should <EM +>NOT</EM > be setuid or setgid! </P ><P diff --git a/docs/htmldocs/smbcontrol.1.html b/docs/htmldocs/smbcontrol.1.html index 12662dcc04..74c2854a86 100644 --- a/docs/htmldocs/smbcontrol.1.html +++ b/docs/htmldocs/smbcontrol.1.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >smbcontrol</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="SMBCONTROL" -></A ->smbcontrol</H1 +>smbcontrol</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -250,7 +249,7 @@ CLASS="CONSTANT" >printnotify</TT > message-type sends a message to smbd which in turn sends a printer notify message to - any Windows NT clients connected to a printer. This message-type + any Windows NT clients connected to a printer. This message-type takes the following arguments: <P diff --git a/docs/htmldocs/smbd.8.html b/docs/htmldocs/smbd.8.html index 22340139ed..6a4996d938 100644 --- a/docs/htmldocs/smbd.8.html +++ b/docs/htmldocs/smbd.8.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >smbd</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="SMBD" -></A ->smbd</H1 +>smbd</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -37,7 +36,7 @@ NAME="AEN8" ><B CLASS="COMMAND" >smbd</B -> [-D] [-a] [-i] [-o] [-P] [-h] [-V] [-b] [-d <debug level>] [-l <log directory>] [-p <port number>] [-O <socket option>] [-s <configuration file>]</P +> [-D] [-a] [-i] [-o] [-P] [-h] [-V] [-b] [-d <debug level>] [-l <log directory>] [-p <port number>] [-O <socket option>] [-s <configuration file>]</P ></DIV ><DIV CLASS="REFSECT1" @@ -206,7 +205,7 @@ CLASS="COMMAND" Samba was built.</P ></DD ><DT ->-d <debug level></DT +>-d <debug level></DT ><DD ><P ><TT @@ -247,7 +246,7 @@ CLASS="FILENAME" > file.</P ></DD ><DT ->-l <log directory></DT +>-l <log directory></DT ><DD ><P >If specified, @@ -273,12 +272,8 @@ TARGET="_top" CLASS="FILENAME" > smb.conf(5)</TT ></A -> file. <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->Beware:</I -></SPAN +> file. <EM +>Beware:</EM > If the directory specified does not exist, <B CLASS="COMMAND" @@ -291,7 +286,7 @@ CLASS="COMMAND" compile time.</P ></DD ><DT ->-O <socket options></DT +>-O <socket options></DT ><DD ><P >See the <A @@ -310,7 +305,7 @@ CLASS="FILENAME" > file for details.</P ></DD ><DT ->-p <port number></DT +>-p <port number></DT ><DD ><P ><TT @@ -341,7 +336,7 @@ CLASS="REPLACEABLE" in the above situation.</P ></DD ><DT ->-s <configuration file></DT +>-s <configuration file></DT ><DD ><P >The file specified contains the @@ -549,12 +544,8 @@ TARGET="_top" ><UL ><LI ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->Account Validation</I -></SPAN +><EM +>Account Validation</EM >: All acccesses to a samba server are checked against PAM to see if the account is vaild, not disabled and is permitted to @@ -563,12 +554,8 @@ CLASS="EMPHASIS" ></LI ><LI ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->Session Management</I -></SPAN +><EM +>Session Management</EM >: When not using share level secuirty, users must pass PAM's session checks before access is granted. Note however, that this is bypassed in share level secuirty. @@ -637,12 +624,8 @@ CLASS="COMMAND" that <B CLASS="COMMAND" >SIGKILL (-9)</B -> <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->NOT</I -></SPAN +> <EM +>NOT</EM > be used, except as a last resort, as this may leave the shared memory area in an inconsistent state. The safe way to terminate diff --git a/docs/htmldocs/smbgroupedit.8.html b/docs/htmldocs/smbgroupedit.8.html index b93e900dcd..4af49672ca 100644 --- a/docs/htmldocs/smbgroupedit.8.html +++ b/docs/htmldocs/smbgroupedit.8.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >smbgroupedit</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="SMBGROUPEDIT" -></A ->smbgroupedit</H1 +>smbgroupedit</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -37,7 +36,7 @@ NAME="AEN8" ><B CLASS="COMMAND" >smbroupedit</B -> [-v [l|s]] [-a UNIX-groupname [-d NT-groupname|-p privilege|]]</P +> [-v [l|s]] [-a UNIX-groupname [-d NT-groupname|-p prividge|]</P ></DIV ><DIV CLASS="REFSECT1" @@ -89,6 +88,12 @@ CLASS="VARIABLELIST" ><P >give a long listing, of the format:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >"NT Group Name" @@ -97,18 +102,30 @@ CLASS="PROGRAMLISTING" Group type : Comment : Privilege :</PRE +></TD +></TR +></TABLE ></P ><P >For examples,</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >Users - SID : S-1-5-32-545 + SID : S-1-5-32-545 Unix group: -1 Group type: Local group - Comment : + Comment : Privilege : No privilege</PRE +></TD +></TR +></TABLE ></P ></DD ><DT @@ -117,16 +134,34 @@ CLASS="PROGRAMLISTING" ><P >display a short listing of the format:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >NTGroupName(SID) -> UnixGroupName</PRE +></TD +></TR +></TABLE ></P ><P >For example,</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >Users (S-1-5-32-545) -> -1</PRE +></TD +></TR +></TABLE ></P ></DD ></DL @@ -211,6 +246,12 @@ TYPE="a" >Get the SID for the Windows NT "Domain Admins" group:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" ><TT @@ -221,6 +262,9 @@ CLASS="COMMAND" >smbgroupedit -vs | grep "Domain Admins"</B > Domain Admins (S-1-5-21-1108995562-3116817432-1375597819-512) -> -1</PRE +></TD +></TR +></TABLE ></P ></LI ><LI @@ -229,6 +273,12 @@ Domain Admins (S-1-5-21-1108995562-3116817432-1375597819-512) -> -1</PRE "Domain Admins" group, by running the command: </P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" ><TT @@ -240,14 +290,13 @@ CLASS="COMMAND" -c S-1-5-21-1108995562-3116817432-1375597819-512 \ -u domadm</B ></PRE +></TD +></TR +></TABLE ></P ><P -> <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->warning:</I -></SPAN +> <EM +>warning:</EM > don't copy and paste this sample, the Domain Admins SID (the S-1-5-21-...-512) is different for every PDC. </P @@ -256,8 +305,14 @@ CLASS="EMPHASIS" ></LI ></OL ><P ->To verify that your mapping has taken effect:</P +>To verify that you mapping has taken effect:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" ><TT @@ -268,12 +323,21 @@ CLASS="COMMAND" >smbgroupedit -vs|grep "Domain Admins"</B > Domain Admins (S-1-5-21-1108995562-3116817432-1375597819-512) -> domadm</PRE +></TD +></TR +></TABLE ></P ><P >To give access to a certain directory on a domain member machine (an NT/W2K or a samba server running winbind) to some users who are member of a group on your samba PDC, flag that group as a domain group:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" ><TT @@ -283,6 +347,9 @@ CLASS="PROMPT" CLASS="COMMAND" >smbgroupedit -a unixgroup -td</B ></PRE +></TD +></TR +></TABLE ></P ></DIV ><DIV diff --git a/docs/htmldocs/smbmnt.8.html b/docs/htmldocs/smbmnt.8.html index 06b9fb1fd3..a7d10b6e19 100644 --- a/docs/htmldocs/smbmnt.8.html +++ b/docs/htmldocs/smbmnt.8.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >smbmnt</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="SMBMNT" -></A ->smbmnt</H1 +>smbmnt</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -37,7 +36,7 @@ NAME="AEN8" ><B CLASS="COMMAND" >smbmnt</B -> {mount-point} [-s <share>] [-r] [-u <uid>] [-g <gid>] [-f <mask>] [-d <mask>] [-o <options>]</P +> {mount-point} [-s <share>] [-r] [-u <uid>] [-g <gid>] [-f <mask>] [-d <mask>] [-o <options>]</P ></DIV ><DIV CLASS="REFSECT1" diff --git a/docs/htmldocs/smbmount.8.html b/docs/htmldocs/smbmount.8.html index 81a3ac04b2..9d620f1397 100644 --- a/docs/htmldocs/smbmount.8.html +++ b/docs/htmldocs/smbmount.8.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >smbmount</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="SMBMOUNT" -></A ->smbmount</H1 +>smbmount</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -86,12 +85,8 @@ CLASS="COMMAND" >smbmount</B > process may also be called mount.smbfs.</P ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->NOTE:</I -></SPAN +><EM +>NOTE:</EM > <B CLASS="COMMAND" >smbmount</B @@ -119,7 +114,7 @@ NAME="AEN31" CLASS="VARIABLELIST" ><DL ><DT ->username=<arg></DT +>username=<arg></DT ><DD ><P >specifies the username to connect as. If @@ -132,7 +127,7 @@ CLASS="ENVAR" to be specified as part of the username.</P ></DD ><DT ->password=<arg></DT +>password=<arg></DT ><DD ><P >specifies the SMB password. If this @@ -148,7 +143,7 @@ CLASS="COMMAND" for a passeword, unless the guest option is given. </P ><P -> Note that passwords which contain the argument delimiter +> Note that password which contain the arguement delimiter character (i.e. a comma ',') will failed to be parsed correctly on the command line. However, the same password defined in the PASSWD environment variable or a credentials file (see @@ -156,17 +151,26 @@ CLASS="COMMAND" </P ></DD ><DT ->credentials=<filename></DT +>credentials=<filename></DT ><DD ><P >specifies a file that contains a username and/or password. The format of the file is:</P ><P -> <PRE +> <TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD +><PRE CLASS="PROGRAMLISTING" -> username = <value> - password = <value> +> username = <value> + password = <value> </PRE +></TD +></TR +></TABLE > </P ><P @@ -179,14 +183,14 @@ CLASS="FILENAME" </P ></DD ><DT ->netbiosname=<arg></DT +>netbiosname=<arg></DT ><DD ><P >sets the source NetBIOS name. It defaults to the local hostname. </P ></DD ><DT ->uid=<arg></DT +>uid=<arg></DT ><DD ><P >sets the uid that will own all files on @@ -195,7 +199,7 @@ CLASS="FILENAME" </P ></DD ><DT ->gid=<arg></DT +>gid=<arg></DT ><DD ><P >sets the gid that will own all files on @@ -204,14 +208,14 @@ CLASS="FILENAME" gid. </P ></DD ><DT ->port=<arg></DT +>port=<arg></DT ><DD ><P >sets the remote SMB port number. The default is 139. </P ></DD ><DT ->fmask=<arg></DT +>fmask=<arg></DT ><DD ><P >sets the file mask. This determines the @@ -219,7 +223,7 @@ CLASS="FILENAME" The default is based on the current umask. </P ></DD ><DT ->dmask=<arg></DT +>dmask=<arg></DT ><DD ><P >sets the directory mask. This determines the @@ -227,7 +231,7 @@ CLASS="FILENAME" The default is based on the current umask. </P ></DD ><DT ->debug=<arg></DT +>debug=<arg></DT ><DD ><P >sets the debug level. This is useful for @@ -236,20 +240,20 @@ CLASS="FILENAME" output, possibly hiding the useful output.</P ></DD ><DT ->ip=<arg></DT +>ip=<arg></DT ><DD ><P >sets the destination host or IP address. </P ></DD ><DT ->workgroup=<arg></DT +>workgroup=<arg></DT ><DD ><P >sets the workgroup on the destination </P ></DD ><DT ->sockopt=<arg></DT +>sockopt=<arg></DT ><DD ><P >sets the TCP socket options. See the <A @@ -269,7 +273,7 @@ CLASS="PARAMETER" </P ></DD ><DT ->scope=<arg></DT +>scope=<arg></DT ><DD ><P >sets the NetBIOS scope </P @@ -293,7 +297,7 @@ CLASS="PARAMETER" >mount read-write </P ></DD ><DT ->iocharset=<arg></DT +>iocharset=<arg></DT ><DD ><P > sets the charset used by the Linux side for codepage @@ -303,7 +307,7 @@ CLASS="PARAMETER" </P ></DD ><DT ->codepage=<arg></DT +>codepage=<arg></DT ><DD ><P > sets the codepage the server uses. See the iocharset @@ -312,10 +316,10 @@ CLASS="PARAMETER" </P ></DD ><DT ->ttl=<arg></DT +>ttl=<arg></DT ><DD ><P -> sets how long a directory listing is cached in milliseconds +> how long a directory listing is cached in milliseconds (also affects visibility of file size and date changes). A higher value means that changes on the server take longer to be noticed but it can give diff --git a/docs/htmldocs/smbpasswd.5.html b/docs/htmldocs/smbpasswd.5.html index 04fab30ed6..1f862b6611 100644 --- a/docs/htmldocs/smbpasswd.5.html +++ b/docs/htmldocs/smbpasswd.5.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >smbpasswd</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="SMBPASSWD" -></A ->smbpasswd</H1 +>smbpasswd</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -119,29 +118,17 @@ CLASS="CONSTANT" > and the user will not be able to log onto the Samba server. </P ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->WARNING !!</I -></SPAN +><EM +>WARNING !!</EM > Note that, due to the challenge-response nature of the SMB/CIFS authentication protocol, anyone with a knowledge of this password hash will be able to impersonate the user on the network. For this - reason these hashes are known as <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" + reason these hashes are known as <EM >plain text - equivalents</I -></SPAN -> and must <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->NOT</I -></SPAN + equivalents</EM +> and must <EM +>NOT</EM > be made available to anyone but the root user. To protect these passwords the smbpasswd file is placed in a directory with read and @@ -166,29 +153,17 @@ CLASS="EMPHASIS" password this entry will be identical (i.e. the password is not "salted" as the UNIX password is). </P ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->WARNING !!</I -></SPAN +><EM +>WARNING !!</EM >. Note that, due to the challenge-response nature of the SMB/CIFS authentication protocol, anyone with a knowledge of this password hash will be able to impersonate the user on the network. For this - reason these hashes are known as <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" + reason these hashes are known as <EM >plain text - equivalents</I -></SPAN -> and must <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->NOT</I -></SPAN + equivalents</EM +> and must <EM +>NOT</EM > be made available to anyone but the root user. To protect these passwords the smbpasswd file is placed in a directory with read and @@ -211,12 +186,8 @@ CLASS="EMPHASIS" ><UL ><LI ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->U</I -></SPAN +><EM +>U</EM > - This means this is a "User" account, i.e. an ordinary user. Only User and Workstation Trust accounts are currently supported @@ -224,12 +195,8 @@ CLASS="EMPHASIS" ></LI ><LI ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->N</I -></SPAN +><EM +>N</EM > - This means the account has no password (the passwords in the fields LANMAN Password Hash and NT Password Hash are ignored). Note that this @@ -250,24 +217,16 @@ CLASS="FILENAME" ></LI ><LI ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->D</I -></SPAN +><EM +>D</EM > - This means the account is disabled and no SMB/CIFS logins will be allowed for this user. </P ></LI ><LI ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->W</I -></SPAN +><EM +>W</EM > - This means this account is a "Workstation Trust" account. This kind of account is used in the Samba PDC code stream to allow Windows NT Workstations diff --git a/docs/htmldocs/smbpasswd.8.html b/docs/htmldocs/smbpasswd.8.html index fa7b4b2520..a8b39b37e5 100644 --- a/docs/htmldocs/smbpasswd.8.html +++ b/docs/htmldocs/smbpasswd.8.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >smbpasswd</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="SMBPASSWD" -></A ->smbpasswd</H1 +>smbpasswd</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -37,12 +36,12 @@ NAME="AEN8" ><B CLASS="COMMAND" >smbpasswd</B -> [-a] [-x] [-d] [-e] [-D debuglevel] [-n] [-r <remote machine>] [-R <name resolve order>] [-m] [-U username[%password]] [-h] [-s] [-w pass] [username]</P +> [-a] [-x] [-d] [-e] [-D debuglevel] [-n] [-r <remote machine>] [-R <name resolve order>] [-m] [-j DOMAIN] [-U username[%password]] [-h] [-s] [-w pass] [username]</P ></DIV ><DIV CLASS="REFSECT1" ><A -NAME="AEN25" +NAME="AEN26" ></A ><H2 >DESCRIPTION</H2 @@ -54,12 +53,8 @@ TARGET="_top" > suite.</P ><P >The smbpasswd program has several different - functions, depending on whether it is run by the <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->root</I -></SPAN + functions, depending on whether it is run by the <EM +>root</EM > user or not. When run as a normal user it allows the user to change the password used for their SMB sessions on any machines that store @@ -75,12 +70,8 @@ CLASS="COMMAND" CLASS="COMMAND" >smbpasswd</B > differs from how the passwd program works - however in that it is not <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->setuid root</I -></SPAN + however in that it is not <EM +>setuid root</EM > but works in a client-server mode and communicates with a locally running <B @@ -94,13 +85,13 @@ CLASS="FILENAME" >smbpasswd(5)</TT > file. </P ><P ->When run by an ordinary user with no options, smbpasswd +>When run by an ordinary user with no options. smbpasswd will prompt them for their old SMB password and then ask them for their new password twice, to ensure that the new password was typed correctly. No passwords will be echoed on the screen whilst being typed. If you have a blank SMB password (specified by the string "NO PASSWORD" in the smbpasswd file) then just press - the <Enter> key when asked for your old password. </P + the <Enter> key when asked for your old password. </P ><P >smbpasswd can also be used by a normal user to change their SMB password on remote machines, such as Windows NT Primary Domain @@ -119,7 +110,7 @@ CLASS="COMMAND" ><DIV CLASS="REFSECT1" ><A -NAME="AEN41" +NAME="AEN42" ></A ><H2 >OPTIONS</H2 @@ -134,7 +125,7 @@ CLASS="VARIABLELIST" ><P >This option specifies that the username following should be added to the local smbpasswd file, with the - new password typed (type <Enter> for the old password). This + new password typed (type <Enter> for the old password). This option is ignored if the username following already exists in the smbpasswd file and it is treated like a regular change password command. Note that the default passdb backends require @@ -143,7 +134,7 @@ CLASS="VARIABLELIST" CLASS="FILENAME" >/etc/passwd</TT >), else the request to add the - user will fail. </P + user will fail. </P ><P >This option is only available when running smbpasswd as root. </P @@ -303,12 +294,8 @@ CLASS="PARAMETER" copy of the user account database and will not allow the password change).</P ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->Note</I -></SPAN +><EM +>Note</EM > that Windows 95/98 do not have a real password database so it is not possible to change passwords specifying a Win95/98 machine as remote machine target. </P @@ -317,12 +304,12 @@ CLASS="EMPHASIS" >-R name resolve order</DT ><DD ><P ->This option allows the user of smbpasswd to determine +>This option allows the user of smbpasswd to determine what name resolution services to use when looking up the NetBIOS name of the host being connected to. </P ><P ->The options are :"lmhosts", "host", "wins" and "bcast". They - cause names to be resolved as follows : </P +>The options are :"lmhosts", "host", "wins" and "bcast". They cause + names to be resolved as follows : </P ><P ></P ><UL @@ -372,8 +359,8 @@ CLASS="PARAMETER" >wins server</I ></TT > - parameter. If no WINS server has been specified this method - will be ignored.</P + parameter. If no WINS server has been specified this method + will be ignored.</P ></LI ><LI ><P @@ -388,8 +375,8 @@ CLASS="PARAMETER" >interfaces</I ></TT > parameter. This is the least - reliable of the name resolution methods as it depends on the - target host being on a locally connected subnet.</P + reliable of the name resolution methods as it depends on the + target host being on a locally connected subnet.</P ></LI ></UL ><P @@ -412,7 +399,7 @@ CLASS="FILENAME" being changed is a MACHINE account. Currently this is used when Samba is being used as an NT Primary Domain Controller.</P ><P ->This option is only available when running smbpasswd as root. +>This option is only available when running smbpasswd as root. </P ></DD ><DT @@ -461,8 +448,8 @@ CLASS="COMMAND" >-w password</DT ><DD ><P ->This parameter is only available if Samba - has been configured to use the experimental +>This parameter is only available is Samba + has been configured to use the experiemental <B CLASS="COMMAND" >--with-ldapsam</B @@ -494,7 +481,7 @@ CLASS="PARAMETER" >ldap admin dn</I ></TT -> ever changes, the password will need to be +> ever changes, the password will beed to be manually updated as well. </P ></DD @@ -503,12 +490,8 @@ CLASS="PARAMETER" ><DD ><P >This specifies the username for all of the - <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->root only</I -></SPAN + <EM +>root only</EM > options to operate on. Only root can specify this parameter as only root has the permission needed to modify attributes directly in the local smbpasswd file. @@ -520,7 +503,7 @@ CLASS="EMPHASIS" ><DIV CLASS="REFSECT1" ><A -NAME="AEN162" +NAME="AEN163" ></A ><H2 >NOTES</H2 @@ -563,7 +546,7 @@ CLASS="FILENAME" ><DIV CLASS="REFSECT1" ><A -NAME="AEN172" +NAME="AEN173" ></A ><H2 >VERSION</H2 @@ -574,7 +557,7 @@ NAME="AEN172" ><DIV CLASS="REFSECT1" ><A -NAME="AEN175" +NAME="AEN176" ></A ><H2 >SEE ALSO</H2 @@ -597,7 +580,7 @@ TARGET="_top" ><DIV CLASS="REFSECT1" ><A -NAME="AEN181" +NAME="AEN182" ></A ><H2 >AUTHOR</H2 diff --git a/docs/htmldocs/smbsh.1.html b/docs/htmldocs/smbsh.1.html index 72dbda5418..ba2cc7b492 100644 --- a/docs/htmldocs/smbsh.1.html +++ b/docs/htmldocs/smbsh.1.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >smbsh</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="SMBSH" -></A ->smbsh</H1 +>smbsh</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -38,7 +37,7 @@ NAME="AEN8" ><B CLASS="COMMAND" >smbsh</B -> [-W workgroup] [-U username] [-P prefix] [-R <name resolve order>] [-d <debug level>] [-l logfile] [-L libdir]</P +> [-W workgroup] [-U username] [-P prefix] [-R <name resolve order>] [-d <debug level>] [-l logfile] [-L libdir]</P ></DIV ><DIV CLASS="REFSECT1" @@ -115,17 +114,13 @@ CLASS="FILENAME" >This option allows the user to set the directory prefix for SMB access. The default value if this option is not specified is - <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->smb</I -></SPAN + <EM +>smb</EM >. </P ></DD ><DT ->-R <name resolve order></DT +>-R <name resolve order></DT ><DD ><P >This option is used to determine what naming @@ -236,7 +231,7 @@ CLASS="FILENAME" order. </P ></DD ><DT ->-d <debug level></DT +>-d <debug level></DT ><DD ><P >debug level is an integer from 0 to 10.</P @@ -305,6 +300,12 @@ CLASS="COMMAND" that authenticates you to the machine running the Windows NT operating system.</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" > <TT @@ -335,6 +336,9 @@ CLASS="USERINPUT" ></TT > </PRE +></TD +></TR +></TABLE ></P ><P >Any dynamically linked command you execute from @@ -354,7 +358,7 @@ CLASS="COMMAND" the workgroup MYGROUP. The command <B CLASS="COMMAND" ->ls /smb/MYGROUP/<machine-name></B +>ls /smb/MYGROUP/<machine-name></B > will show the share names for that machine. You could then, for example, use the <B CLASS="COMMAND" diff --git a/docs/htmldocs/smbspool.8.html b/docs/htmldocs/smbspool.8.html index 8dc2fbbd63..254abe9a9d 100644 --- a/docs/htmldocs/smbspool.8.html +++ b/docs/htmldocs/smbspool.8.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >smbspool</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="SMBSPOOL" -></A ->smbspool</H1 +>smbspool</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -25,7 +24,7 @@ NAME="AEN5" ></A ><H2 >Name</H2 ->smbspool -- send a print file to an SMB printer</DIV +>smbspool -- send print file to an SMB printer</DIV ><DIV CLASS="REFSYNOPSISDIV" ><A @@ -59,12 +58,8 @@ TARGET="_top" Printing System, but you can use smbspool with any printing system or from a program or script.</P ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->DEVICE URI</I -></SPAN +><EM +>DEVICE URI</EM ></P ><P >smbspool specifies the destination using a Uniform Resource @@ -141,13 +136,13 @@ NAME="AEN39" ><P >The copies argument (argv[4]) contains the number of copies to be printed of the named file. If - no filename is provided then this argument is not used by + no filename is provided than this argument is not used by smbspool.</P ></LI ><LI ><P >The options argument (argv[5]) contains - the print options in a single string and is currently + the print options in a single string and is presently not used by smbspool.</P ></LI ><LI diff --git a/docs/htmldocs/smbstatus.1.html b/docs/htmldocs/smbstatus.1.html index fb7e14fadd..1d3dc9f952 100644 --- a/docs/htmldocs/smbstatus.1.html +++ b/docs/htmldocs/smbstatus.1.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >smbstatus</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="SMBSTATUS" -></A ->smbstatus</H1 +>smbstatus</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -37,12 +36,12 @@ NAME="AEN8" ><B CLASS="COMMAND" >smbstatus</B -> [-P] [-b] [-d <debug level>] [-v] [-L] [-B] [-p] [-S] [-s <configuration file>] [-u <username>]</P +> [-P] [-b] [-d] [-L] [-p] [-S] [-s <configuration file>] [-u <username>]</P ></DIV ><DIV CLASS="REFSECT1" ><A -NAME="AEN21" +NAME="AEN19" ></A ><H2 >DESCRIPTION</H2 @@ -62,7 +61,7 @@ CLASS="COMMAND" ><DIV CLASS="REFSECT1" ><A -NAME="AEN27" +NAME="AEN25" ></A ><H2 >OPTIONS</H2 @@ -72,7 +71,7 @@ NAME="AEN27" CLASS="VARIABLELIST" ><DL ><DT ->-P|--profile</DT +>-P</DT ><DD ><P >If samba has been compiled with the @@ -80,38 +79,25 @@ CLASS="VARIABLELIST" shared memory area.</P ></DD ><DT ->-b|--brief</DT +>-b</DT ><DD ><P >gives brief output.</P ></DD ><DT ->-d|--debug=<debuglevel></DT -><DD -><P ->sets debugging to specified level</P -></DD -><DT ->-v|--verbose</DT +>-d</DT ><DD ><P >gives verbose output.</P ></DD ><DT ->-L|--locks</DT +>-L</DT ><DD ><P >causes smbstatus to only list locks.</P ></DD ><DT ->-B|--byterange</DT -><DD -><P ->causes smbstatus to include byte range locks. - </P -></DD -><DT ->-p|--processes</DT +>-p</DT ><DD ><P >print a list of <A @@ -125,13 +111,13 @@ CLASS="COMMAND" Useful for scripting.</P ></DD ><DT ->-S|--shares</DT +>-S</DT ><DD ><P >causes smbstatus to only list shares.</P ></DD ><DT ->-s|--conf=<configuration file></DT +>-s <configuration file></DT ><DD ><P >The default configuration file name is @@ -147,7 +133,7 @@ CLASS="FILENAME" > for more information.</P ></DD ><DT ->-u|--user=<username></DT +>-u <username></DT ><DD ><P >selects information relevant to @@ -164,18 +150,18 @@ CLASS="PARAMETER" ><DIV CLASS="REFSECT1" ><A -NAME="AEN75" +NAME="AEN65" ></A ><H2 >VERSION</H2 ><P ->This man page is correct for version 3.0 of +>This man page is correct for version 2.2 of the Samba suite.</P ></DIV ><DIV CLASS="REFSECT1" ><A -NAME="AEN78" +NAME="AEN68" ></A ><H2 >SEE ALSO</H2 @@ -197,7 +183,7 @@ TARGET="_top" ><DIV CLASS="REFSECT1" ><A -NAME="AEN84" +NAME="AEN74" ></A ><H2 >AUTHOR</H2 diff --git a/docs/htmldocs/smbtar.1.html b/docs/htmldocs/smbtar.1.html index d3215c6901..47c41a015a 100644 --- a/docs/htmldocs/smbtar.1.html +++ b/docs/htmldocs/smbtar.1.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >smbtar</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="SMBTAR" -></A ->smbtar</H1 +>smbtar</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -231,7 +230,7 @@ NAME="AEN99" CLASS="COMMAND" >smbtar</B > script has different - options from ordinary tar and from smbclient's tar command. </P + options from ordinary tar and tar called from smbclient. </P ></DIV ><DIV CLASS="REFSECT1" @@ -243,7 +242,7 @@ NAME="AEN103" ><P >Sites that are more careful about security may not like the way the script handles PC passwords. Backup and restore work - on entire shares; should work on file lists. smbtar works best + on entire shares, should work on file lists. smbtar works best with GNU tar and may not work well with other versions. </P ></DIV ><DIV @@ -254,12 +253,8 @@ NAME="AEN106" ><H2 >DIAGNOSTICS</H2 ><P ->See the <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->DIAGNOSTICS</I -></SPAN +>See the <EM +>DIAGNOSTICS</EM > section for the <A HREF="smbclient.1.html" @@ -279,7 +274,7 @@ NAME="AEN112" ><H2 >VERSION</H2 ><P ->This man page is correct for version 3.0 of +>This man page is correct for version 2.2 of the Samba suite.</P ></DIV ><DIV diff --git a/docs/htmldocs/smbumount.8.html b/docs/htmldocs/smbumount.8.html index 993436f0c6..68929fd5f9 100644 --- a/docs/htmldocs/smbumount.8.html +++ b/docs/htmldocs/smbumount.8.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >smbumount</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="SMBUMOUNT" -></A ->smbumount</H1 +>smbumount</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A diff --git a/docs/htmldocs/swat.8.html b/docs/htmldocs/swat.8.html index f101a7bc26..386fe5bc7a 100644 --- a/docs/htmldocs/swat.8.html +++ b/docs/htmldocs/swat.8.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >swat</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="SWAT" -></A ->swat</H1 +>swat</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -37,7 +36,7 @@ NAME="AEN8" ><B CLASS="COMMAND" >swat</B -> [-s <smb config file>] [-a]</P +> [-s <smb config file>] [-a]</P ></DIV ><DIV CLASS="REFSECT1" @@ -132,13 +131,9 @@ CLASS="FILENAME" >smb.conf</TT > file. </P ><P -><SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->WARNING: Do NOT enable this option on a production - server. </I -></SPAN +><EM +>Do NOT enable this option on a production + server. </EM ></P ></DD ></DL @@ -350,7 +345,7 @@ CLASS="PARAMETER" > and <TT CLASS="PARAMETER" ><I ->copy= +>copy=" </I ></TT > options. If you have a carefully crafted <TT diff --git a/docs/htmldocs/testparm.1.html b/docs/htmldocs/testparm.1.html index 0fc94cd880..bae907c687 100644 --- a/docs/htmldocs/testparm.1.html +++ b/docs/htmldocs/testparm.1.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >testparm</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="TESTPARM" -></A ->testparm</H1 +>testparm</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -38,12 +37,12 @@ NAME="AEN8" ><B CLASS="COMMAND" >testparm</B -> [-s] [-h] [-v] [-L <servername>] {config filename} [hostname hostIP]</P +> [-s] [-h] [-L <servername>] {config filename} [hostname hostIP]</P ></DIV ><DIV CLASS="REFSECT1" ><A -NAME="AEN17" +NAME="AEN16" ></A ><H2 >DESCRIPTION</H2 @@ -69,12 +68,8 @@ CLASS="COMMAND" </B > will successfully load the configuration file.</P ><P ->Note that this is <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->NOT</I -></SPAN +>Note that this is <EM +>NOT</EM > a guarantee that the services specified in the configuration file will be available or will operate as expected. </P @@ -100,7 +95,7 @@ CLASS="COMMAND" ><DIV CLASS="REFSECT1" ><A -NAME="AEN32" +NAME="AEN31" ></A ><H2 >OPTIONS</H2 @@ -140,18 +135,6 @@ CLASS="REPLACEABLE" %L macro. </P ></DD ><DT ->-v</DT -><DD -><P ->If this option is specified, testparm - will also output all options that were not used in - <TT -CLASS="FILENAME" ->smb.conf</TT -> and are thus set to - their defaults.</P -></DD -><DT >configfilename</DT ><DD ><P @@ -209,7 +192,7 @@ CLASS="COMMAND" ><DIV CLASS="REFSECT1" ><A -NAME="AEN72" +NAME="AEN66" ></A ><H2 >FILES</H2 @@ -238,7 +221,7 @@ CLASS="COMMAND" ><DIV CLASS="REFSECT1" ><A -NAME="AEN81" +NAME="AEN75" ></A ><H2 >DIAGNOSTICS</H2 @@ -252,7 +235,7 @@ NAME="AEN81" ><DIV CLASS="REFSECT1" ><A -NAME="AEN84" +NAME="AEN78" ></A ><H2 >VERSION</H2 @@ -263,7 +246,7 @@ NAME="AEN84" ><DIV CLASS="REFSECT1" ><A -NAME="AEN87" +NAME="AEN81" ></A ><H2 >SEE ALSO</H2 @@ -289,7 +272,7 @@ CLASS="COMMAND" ><DIV CLASS="REFSECT1" ><A -NAME="AEN94" +NAME="AEN88" ></A ><H2 >AUTHOR</H2 diff --git a/docs/htmldocs/testprns.1.html b/docs/htmldocs/testprns.1.html index 0225aad9d5..4929415da0 100644 --- a/docs/htmldocs/testprns.1.html +++ b/docs/htmldocs/testprns.1.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >testprns</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="TESTPRNS" -></A ->testprns</H1 +>testprns</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -164,11 +163,11 @@ NAME="AEN48" >DIAGNOSTICS</H2 ><P >If a printer is found to be valid, the message - "Printer name <printername> is valid" will be + "Printer name <printername> is valid" will be displayed. </P ><P >If a printer is found to be invalid, the message - "Printer name <printername> is not valid" will be + "Printer name <printername> is not valid" will be displayed. </P ><P >All messages that would normally be logged during diff --git a/docs/htmldocs/unix-permissions.html b/docs/htmldocs/unix-permissions.html deleted file mode 100644 index 5be1571532..0000000000 --- a/docs/htmldocs/unix-permissions.html +++ /dev/null @@ -1,917 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<HTML -><HEAD -><TITLE ->UNIX Permission Bits and Windows NT Access Control Lists</TITLE -><META -NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK -REL="HOME" -TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK -REL="PREVIOUS" -TITLE="Hosting a Microsoft Distributed File System tree on Samba" -HREF="msdfs.html"><LINK -REL="NEXT" -TITLE="Printing Support in Samba 2.2.x" -HREF="printing.html"></HEAD -><BODY -CLASS="CHAPTER" -BGCOLOR="#FFFFFF" -TEXT="#000000" -LINK="#0000FF" -VLINK="#840084" -ALINK="#0000FF" -><DIV -CLASS="NAVHEADER" -><TABLE -SUMMARY="Header navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TH -COLSPAN="3" -ALIGN="center" ->SAMBA Project Documentation</TH -></TR -><TR -><TD -WIDTH="10%" -ALIGN="left" -VALIGN="bottom" -><A -HREF="msdfs.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="80%" -ALIGN="center" -VALIGN="bottom" -></TD -><TD -WIDTH="10%" -ALIGN="right" -VALIGN="bottom" -><A -HREF="printing.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -></TABLE -><HR -ALIGN="LEFT" -WIDTH="100%"></DIV -><DIV -CLASS="CHAPTER" -><H1 -><A -NAME="UNIX-PERMISSIONS" -></A ->Chapter 6. UNIX Permission Bits and Windows NT Access Control Lists</H1 -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN722" -></A ->6.1. Viewing and changing UNIX permissions using the NT - security dialogs</H1 -><P ->New in the Samba 2.0.4 release is the ability for Windows - NT clients to use their native security settings dialog box to - view and modify the underlying UNIX permissions.</P -><P ->Note that this ability is careful not to compromise - the security of the UNIX host Samba is running on, and - still obeys all the file permission rules that a Samba - administrator can set.</P -><P ->In Samba 2.0.4 and above the default value of the - parameter <A -HREF="smb.conf.5.html#NTACLSUPPORT" -TARGET="_top" -><TT -CLASS="PARAMETER" -><I -> nt acl support</I -></TT -></A -> has been changed from - <TT -CLASS="CONSTANT" ->false</TT -> to <TT -CLASS="CONSTANT" ->true</TT ->, so - manipulation of permissions is turned on by default.</P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN731" -></A ->6.2. How to view file security on a Samba share</H1 -><P ->From an NT 4.0 client, single-click with the right - mouse button on any file or directory in a Samba mounted - drive letter or UNC path. When the menu pops-up, click - on the <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->Properties</I -></SPAN -> entry at the bottom of - the menu. This brings up the normal file properties dialog - box, but with Samba 2.0.4 this will have a new tab along the top - marked <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->Security</I -></SPAN ->. Click on this tab and you - will see three buttons, <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->Permissions</I -></SPAN ->, - <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->Auditing</I -></SPAN ->, and <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->Ownership</I -></SPAN ->. - The <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->Auditing</I -></SPAN -> button will cause either - an error message <SPAN -CLASS="ERRORNAME" ->A requested privilege is not held - by the client</SPAN -> to appear if the user is not the - NT Administrator, or a dialog which is intended to allow an - Administrator to add auditing requirements to a file if the - user is logged on as the NT Administrator. This dialog is - non-functional with a Samba share at this time, as the only - useful button, the <B -CLASS="COMMAND" ->Add</B -> button will not currently - allow a list of users to be seen.</P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN742" -></A ->6.3. Viewing file ownership</H1 -><P ->Clicking on the <B -CLASS="COMMAND" ->"Ownership"</B -> button - brings up a dialog box telling you who owns the given file. The - owner name will be of the form :</P -><P -><B -CLASS="COMMAND" ->"SERVER\user (Long name)"</B -></P -><P ->Where <TT -CLASS="REPLACEABLE" -><I ->SERVER</I -></TT -> is the NetBIOS name of - the Samba server, <TT -CLASS="REPLACEABLE" -><I ->user</I -></TT -> is the user name of - the UNIX user who owns the file, and <TT -CLASS="REPLACEABLE" -><I ->(Long name)</I -></TT -> - is the descriptive string identifying the user (normally found in the - GECOS field of the UNIX password database). Click on the <B -CLASS="COMMAND" ->Close - </B -> button to remove this dialog.</P -><P ->If the parameter <TT -CLASS="PARAMETER" -><I ->nt acl support</I -></TT -> - is set to <TT -CLASS="CONSTANT" ->false</TT -> then the file owner will - be shown as the NT user <B -CLASS="COMMAND" ->"Everyone"</B ->.</P -><P ->The <B -CLASS="COMMAND" ->Take Ownership</B -> button will not allow - you to change the ownership of this file to yourself (clicking on - it will display a dialog box complaining that the user you are - currently logged onto the NT client cannot be found). The reason - for this is that changing the ownership of a file is a privileged - operation in UNIX, available only to the <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->root</I -></SPAN -> - user. As clicking on this button causes NT to attempt to change - the ownership of a file to the current user logged into the NT - client this will not work with Samba at this time.</P -><P ->There is an NT chown command that will work with Samba - and allow a user with Administrator privilege connected - to a Samba 2.0.4 server as root to change the ownership of - files on both a local NTFS filesystem or remote mounted NTFS - or Samba drive. This is available as part of the <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->Seclib - </I -></SPAN -> NT security library written by Jeremy Allison of - the Samba Team, available from the main Samba ftp site.</P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN762" -></A ->6.4. Viewing file or directory permissions</H1 -><P ->The third button is the <B -CLASS="COMMAND" ->"Permissions"</B -> - button. Clicking on this brings up a dialog box that shows both - the permissions and the UNIX owner of the file or directory. - The owner is displayed in the form :</P -><P -><B -CLASS="COMMAND" ->"SERVER\user (Long name)"</B -></P -><P ->Where <TT -CLASS="REPLACEABLE" -><I ->SERVER</I -></TT -> is the NetBIOS name of - the Samba server, <TT -CLASS="REPLACEABLE" -><I ->user</I -></TT -> is the user name of - the UNIX user who owns the file, and <TT -CLASS="REPLACEABLE" -><I ->(Long name)</I -></TT -> - is the descriptive string identifying the user (normally found in the - GECOS field of the UNIX password database).</P -><P ->If the parameter <TT -CLASS="PARAMETER" -><I ->nt acl support</I -></TT -> - is set to <TT -CLASS="CONSTANT" ->false</TT -> then the file owner will - be shown as the NT user <B -CLASS="COMMAND" ->"Everyone"</B -> and the - permissions will be shown as NT "Full Control".</P -><P ->The permissions field is displayed differently for files - and directories, so I'll describe the way file permissions - are displayed first.</P -><DIV -CLASS="SECT2" -><H2 -CLASS="SECT2" -><A -NAME="AEN777" -></A ->6.4.1. File Permissions</H2 -><P ->The standard UNIX user/group/world triple and - the corresponding "read", "write", "execute" permissions - triples are mapped by Samba into a three element NT ACL - with the 'r', 'w', and 'x' bits mapped into the corresponding - NT permissions. The UNIX world permissions are mapped into - the global NT group <B -CLASS="COMMAND" ->Everyone</B ->, followed - by the list of permissions allowed for UNIX world. The UNIX - owner and group permissions are displayed as an NT - <B -CLASS="COMMAND" ->user</B -> icon and an NT <B -CLASS="COMMAND" ->local - group</B -> icon respectively followed by the list - of permissions allowed for the UNIX user and group.</P -><P ->As many UNIX permission sets don't map into common - NT names such as <B -CLASS="COMMAND" ->"read"</B ->, <B -CLASS="COMMAND" -> "change"</B -> or <B -CLASS="COMMAND" ->"full control"</B -> then - usually the permissions will be prefixed by the words <B -CLASS="COMMAND" -> "Special Access"</B -> in the NT display list.</P -><P ->But what happens if the file has no permissions allowed - for a particular UNIX user group or world component ? In order - to allow "no permissions" to be seen and modified then Samba - overloads the NT <B -CLASS="COMMAND" ->"Take Ownership"</B -> ACL attribute - (which has no meaning in UNIX) and reports a component with - no permissions as having the NT <B -CLASS="COMMAND" ->"O"</B -> bit set. - This was chosen of course to make it look like a zero, meaning - zero permissions. More details on the decision behind this will - be given below.</P -></DIV -><DIV -CLASS="SECT2" -><H2 -CLASS="SECT2" -><A -NAME="AEN791" -></A ->6.4.2. Directory Permissions</H2 -><P ->Directories on an NT NTFS file system have two - different sets of permissions. The first set of permissions - is the ACL set on the directory itself, this is usually displayed - in the first set of parentheses in the normal <B -CLASS="COMMAND" ->"RW"</B -> - NT style. This first set of permissions is created by Samba in - exactly the same way as normal file permissions are, described - above, and is displayed in the same way.</P -><P ->The second set of directory permissions has no real meaning - in the UNIX permissions world and represents the <B -CLASS="COMMAND" -> "inherited"</B -> permissions that any file created within - this directory would inherit.</P -><P ->Samba synthesises these inherited permissions for NT by - returning as an NT ACL the UNIX permission mode that a new file - created by Samba on this share would receive.</P -></DIV -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN798" -></A ->6.5. Modifying file or directory permissions</H1 -><P ->Modifying file and directory permissions is as simple - as changing the displayed permissions in the dialog box, and - clicking the <B -CLASS="COMMAND" ->OK</B -> button. However, there are - limitations that a user needs to be aware of, and also interactions - with the standard Samba permission masks and mapping of DOS - attributes that need to also be taken into account.</P -><P ->If the parameter <TT -CLASS="PARAMETER" -><I ->nt acl support</I -></TT -> - is set to <TT -CLASS="CONSTANT" ->false</TT -> then any attempt to set - security permissions will fail with an <B -CLASS="COMMAND" ->"Access Denied" - </B -> message.</P -><P ->The first thing to note is that the <B -CLASS="COMMAND" ->"Add"</B -> - button will not return a list of users in Samba 2.0.4 (it will give - an error message of <B -CLASS="COMMAND" ->"The remote procedure call failed - and did not execute"</B ->). This means that you can only - manipulate the current user/group/world permissions listed in - the dialog box. This actually works quite well as these are the - only permissions that UNIX actually has.</P -><P ->If a permission triple (either user, group, or world) - is removed from the list of permissions in the NT dialog box, - then when the <B -CLASS="COMMAND" ->"OK"</B -> button is pressed it will - be applied as "no permissions" on the UNIX side. If you then - view the permissions again the "no permissions" entry will appear - as the NT <B -CLASS="COMMAND" ->"O"</B -> flag, as described above. This - allows you to add permissions back to a file or directory once - you have removed them from a triple component.</P -><P ->As UNIX supports only the "r", "w" and "x" bits of - an NT ACL then if other NT security attributes such as "Delete - access" are selected then they will be ignored when applied on - the Samba server.</P -><P ->When setting permissions on a directory the second - set of permissions (in the second set of parentheses) is - by default applied to all files within that directory. If this - is not what you want you must uncheck the <B -CLASS="COMMAND" ->"Replace - permissions on existing files"</B -> checkbox in the NT - dialog before clicking <B -CLASS="COMMAND" ->"OK"</B ->.</P -><P ->If you wish to remove all permissions from a - user/group/world component then you may either highlight the - component and click the <B -CLASS="COMMAND" ->"Remove"</B -> button, - or set the component to only have the special <B -CLASS="COMMAND" ->"Take - Ownership"</B -> permission (displayed as <B -CLASS="COMMAND" ->"O" - </B ->) highlighted.</P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN820" -></A ->6.6. Interaction with the standard Samba create mask - parameters</H1 -><P ->Note that with Samba 2.0.5 there are four new parameters - to control this interaction. These are :</P -><P -><TT -CLASS="PARAMETER" -><I ->security mask</I -></TT -></P -><P -><TT -CLASS="PARAMETER" -><I ->force security mode</I -></TT -></P -><P -><TT -CLASS="PARAMETER" -><I ->directory security mask</I -></TT -></P -><P -><TT -CLASS="PARAMETER" -><I ->force directory security mode</I -></TT -></P -><P ->Once a user clicks <B -CLASS="COMMAND" ->"OK"</B -> to apply the - permissions Samba maps the given permissions into a user/group/world - r/w/x triple set, and then will check the changed permissions for a - file against the bits set in the <A -HREF="smb.conf.5.html#SECURITYMASK" -TARGET="_top" -> - <TT -CLASS="PARAMETER" -><I ->security mask</I -></TT -></A -> parameter. Any bits that - were changed that are not set to '1' in this parameter are left alone - in the file permissions.</P -><P ->Essentially, zero bits in the <TT -CLASS="PARAMETER" -><I ->security mask</I -></TT -> - mask may be treated as a set of bits the user is <SPAN -CLASS="emphasis" -><I -CLASS="EMPHASIS" ->not</I -></SPAN -> - allowed to change, and one bits are those the user is allowed to change. - </P -><P ->If not set explicitly this parameter is set to the same value as - the <A -HREF="smb.conf.5.html#CREATEMASK" -TARGET="_top" -><TT -CLASS="PARAMETER" -><I ->create mask - </I -></TT -></A -> parameter to provide compatibility with Samba 2.0.4 - where this permission change facility was introduced. To allow a user to - modify all the user/group/world permissions on a file, set this parameter - to 0777.</P -><P ->Next Samba checks the changed permissions for a file against - the bits set in the <A -HREF="smb.conf.5.html#FORCESECURITYMODE" -TARGET="_top" -> <TT -CLASS="PARAMETER" -><I ->force security mode</I -></TT -></A -> parameter. Any bits - that were changed that correspond to bits set to '1' in this parameter - are forced to be set.</P -><P ->Essentially, bits set in the <TT -CLASS="PARAMETER" -><I ->force security mode - </I -></TT -> parameter may be treated as a set of bits that, when - modifying security on a file, the user has always set to be 'on'.</P -><P ->If not set explicitly this parameter is set to the same value - as the <A -HREF="smb.conf.5.html#FORCECREATEMODE" -TARGET="_top" -><TT -CLASS="PARAMETER" -><I ->force - create mode</I -></TT -></A -> parameter to provide compatibility - with Samba 2.0.4 where the permission change facility was introduced. - To allow a user to modify all the user/group/world permissions on a file - with no restrictions set this parameter to 000.</P -><P ->The <TT -CLASS="PARAMETER" -><I ->security mask</I -></TT -> and <TT -CLASS="PARAMETER" -><I ->force - security mode</I -></TT -> parameters are applied to the change - request in that order.</P -><P ->For a directory Samba will perform the same operations as - described above for a file except using the parameter <TT -CLASS="PARAMETER" -><I -> directory security mask</I -></TT -> instead of <TT -CLASS="PARAMETER" -><I ->security - mask</I -></TT ->, and <TT -CLASS="PARAMETER" -><I ->force directory security mode - </I -></TT -> parameter instead of <TT -CLASS="PARAMETER" -><I ->force security mode - </I -></TT ->.</P -><P ->The <TT -CLASS="PARAMETER" -><I ->directory security mask</I -></TT -> parameter - by default is set to the same value as the <TT -CLASS="PARAMETER" -><I ->directory mask - </I -></TT -> parameter and the <TT -CLASS="PARAMETER" -><I ->force directory security - mode</I -></TT -> parameter by default is set to the same value as - the <TT -CLASS="PARAMETER" -><I ->force directory mode</I -></TT -> parameter to provide - compatibility with Samba 2.0.4 where the permission change facility - was introduced.</P -><P ->In this way Samba enforces the permission restrictions that - an administrator can set on a Samba share, whilst still allowing users - to modify the permission bits within that restriction.</P -><P ->If you want to set up a share that allows users full control - in modifying the permission bits on their files and directories and - doesn't force any particular bits to be set 'on', then set the following - parameters in the <A -HREF="smb.conf.5.html" -TARGET="_top" -><TT -CLASS="FILENAME" ->smb.conf(5) - </TT -></A -> file in that share specific section :</P -><P -><TT -CLASS="PARAMETER" -><I ->security mask = 0777</I -></TT -></P -><P -><TT -CLASS="PARAMETER" -><I ->force security mode = 0</I -></TT -></P -><P -><TT -CLASS="PARAMETER" -><I ->directory security mask = 0777</I -></TT -></P -><P -><TT -CLASS="PARAMETER" -><I ->force directory security mode = 0</I -></TT -></P -><P ->As described, in Samba 2.0.4 the parameters :</P -><P -><TT -CLASS="PARAMETER" -><I ->create mask</I -></TT -></P -><P -><TT -CLASS="PARAMETER" -><I ->force create mode</I -></TT -></P -><P -><TT -CLASS="PARAMETER" -><I ->directory mask</I -></TT -></P -><P -><TT -CLASS="PARAMETER" -><I ->force directory mode</I -></TT -></P -><P ->were used instead of the parameters discussed here.</P -></DIV -><DIV -CLASS="SECT1" -><H1 -CLASS="SECT1" -><A -NAME="AEN884" -></A ->6.7. Interaction with the standard Samba file attribute - mapping</H1 -><P ->Samba maps some of the DOS attribute bits (such as "read - only") into the UNIX permissions of a file. This means there can - be a conflict between the permission bits set via the security - dialog and the permission bits set by the file attribute mapping. - </P -><P ->One way this can show up is if a file has no UNIX read access - for the owner it will show up as "read only" in the standard - file attributes tabbed dialog. Unfortunately this dialog is - the same one that contains the security info in another tab.</P -><P ->What this can mean is that if the owner changes the permissions - to allow themselves read access using the security dialog, clicks - <B -CLASS="COMMAND" ->"OK"</B -> to get back to the standard attributes tab - dialog, and then clicks <B -CLASS="COMMAND" ->"OK"</B -> on that dialog, then - NT will set the file permissions back to read-only (as that is what - the attributes still say in the dialog). This means that after setting - permissions and clicking <B -CLASS="COMMAND" ->"OK"</B -> to get back to the - attributes dialog you should always hit <B -CLASS="COMMAND" ->"Cancel"</B -> - rather than <B -CLASS="COMMAND" ->"OK"</B -> to ensure that your changes - are not overridden.</P -></DIV -></DIV -><DIV -CLASS="NAVFOOTER" -><HR -ALIGN="LEFT" -WIDTH="100%"><TABLE -SUMMARY="Footer navigation table" -WIDTH="100%" -BORDER="0" -CELLPADDING="0" -CELLSPACING="0" -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" -><A -HREF="msdfs.html" -ACCESSKEY="P" ->Prev</A -></TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -><A -HREF="samba-project-documentation.html" -ACCESSKEY="H" ->Home</A -></TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" -><A -HREF="printing.html" -ACCESSKEY="N" ->Next</A -></TD -></TR -><TR -><TD -WIDTH="33%" -ALIGN="left" -VALIGN="top" ->Hosting a Microsoft Distributed File System tree on Samba</TD -><TD -WIDTH="34%" -ALIGN="center" -VALIGN="top" -> </TD -><TD -WIDTH="33%" -ALIGN="right" -VALIGN="top" ->Printing Support in Samba 2.2.x</TD -></TR -></TABLE -></DIV -></BODY -></HTML ->
\ No newline at end of file diff --git a/docs/htmldocs/wbinfo.1.html b/docs/htmldocs/wbinfo.1.html index 26e098868e..fe218a8f67 100644 --- a/docs/htmldocs/wbinfo.1.html +++ b/docs/htmldocs/wbinfo.1.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >wbinfo</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="WBINFO" -></A ->wbinfo</H1 +>wbinfo</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A diff --git a/docs/htmldocs/winbind.html b/docs/htmldocs/winbind.html index 0d816ef052..cac9a70a6d 100644 --- a/docs/htmldocs/winbind.html +++ b/docs/htmldocs/winbind.html @@ -5,10 +5,11 @@ >Unified Logons between Windows NT and UNIX using Winbind</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ +"><LINK REL="HOME" TITLE="SAMBA Project Documentation" -HREF="samba-project-documentation.html"><LINK +HREF="Samba-HOWTO.html"><LINK REL="PREVIOUS" TITLE="security = domain in Samba 2.x" HREF="domain-security.html"><LINK @@ -69,17 +70,13 @@ WIDTH="100%"></DIV CLASS="CHAPTER" ><H1 ><A -NAME="WINBIND" -></A ->Chapter 11. Unified Logons between Windows NT and UNIX using Winbind</H1 +NAME="WINBIND">Chapter 11. Unified Logons between Windows NT and UNIX using Winbind</H1 ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN1397" -></A ->11.1. Abstract</H1 +NAME="AEN1394">11.1. Abstract</H1 ><P >Integration of UNIX and Microsoft Windows NT through a unified logon has been considered a "holy grail" in heterogeneous @@ -104,9 +101,7 @@ CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN1401" -></A ->11.2. Introduction</H1 +NAME="AEN1398">11.2. Introduction</H1 ><P >It is well known that UNIX and Microsoft Windows NT have different models for representing user and group information and @@ -158,9 +153,7 @@ CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN1414" -></A ->11.3. What Winbind Provides</H1 +NAME="AEN1411">11.3. What Winbind Provides</H1 ><P >Winbind unifies UNIX and Windows NT account management by allowing a UNIX box to become a full member of a NT domain. Once @@ -200,9 +193,7 @@ CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN1421" -></A ->11.3.1. Target Uses</H2 +NAME="AEN1418">11.3.1. Target Uses</H2 ><P >Winbind is targeted at organizations that have an existing NT based domain infrastructure into which they wish @@ -224,9 +215,7 @@ CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN1425" -></A ->11.4. How Winbind Works</H1 +NAME="AEN1422">11.4. How Winbind Works</H1 ><P >The winbind system is designed around a client/server architecture. A long running <B @@ -244,9 +233,7 @@ CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN1430" -></A ->11.4.1. Microsoft Remote Procedure Calls</H2 +NAME="AEN1427">11.4.1. Microsoft Remote Procedure Calls</H2 ><P >Over the last two years, efforts have been underway by various Samba Team members to decode various aspects of @@ -270,9 +257,7 @@ CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN1434" -></A ->11.4.2. Name Service Switch</H2 +NAME="AEN1431">11.4.2. Name Service Switch</H2 ><P >The Name Service Switch, or NSS, is a feature that is present in many UNIX operating systems. It allows system @@ -350,9 +335,7 @@ CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN1450" -></A ->11.4.3. Pluggable Authentication Modules</H2 +NAME="AEN1447">11.4.3. Pluggable Authentication Modules</H2 ><P >Pluggable Authentication Modules, also known as PAM, is a system for abstracting authentication and authorization @@ -399,9 +382,7 @@ CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN1458" -></A ->11.4.4. User and Group ID Allocation</H2 +NAME="AEN1455">11.4.4. User and Group ID Allocation</H2 ><P >When a user or group is created under Windows NT is it allocated a numerical relative identifier (RID). This is @@ -425,9 +406,7 @@ CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN1462" -></A ->11.4.5. Result Caching</H2 +NAME="AEN1459">11.4.5. Result Caching</H2 ><P >An active system can generate a lot of user and group name lookups. To reduce the network cost of these lookups winbind @@ -448,9 +427,7 @@ CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN1465" -></A ->11.5. Installation and Configuration</H1 +NAME="AEN1462">11.5. Installation and Configuration</H1 ><P >Many thanks to John Trostel <A HREF="mailto:jtrostel@snapserver.com" @@ -475,9 +452,7 @@ CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN1472" -></A ->11.5.1. Introduction</H2 +NAME="AEN1469">11.5.1. Introduction</H2 ><P >This HOWTO describes the procedures used to get winbind up and running on my RedHat 7.1 system. Winbind is capable of providing access @@ -534,9 +509,7 @@ CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN1485" -></A ->11.5.2. Requirements</H2 +NAME="AEN1482">11.5.2. Requirements</H2 ><P >If you have a samba configuration file that you are currently using... <SPAN @@ -604,9 +577,7 @@ CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN1499" -></A ->11.5.3. Testing Things Out</H2 +NAME="AEN1496">11.5.3. Testing Things Out</H2 ><P >Before starting, it is probably best to kill off all the SAMBA related daemons running on your server. Kill off all <B @@ -649,9 +620,7 @@ CLASS="SECT3" ><H3 CLASS="SECT3" ><A -NAME="AEN1510" -></A ->11.5.3.1. Configure and compile SAMBA</H3 +NAME="AEN1507">11.5.3.1. Configure and compile SAMBA</H3 ><P >The configuration and compilation of SAMBA is pretty straightforward. The first three steps may not be necessary depending upon @@ -715,9 +684,7 @@ CLASS="SECT3" ><H3 CLASS="SECT3" ><A -NAME="AEN1529" -></A ->11.5.3.2. Configure <TT +NAME="AEN1526">11.5.3.2. Configure <TT CLASS="FILENAME" >nsswitch.conf</TT > and the @@ -820,9 +787,7 @@ CLASS="SECT3" ><H3 CLASS="SECT3" ><A -NAME="AEN1562" -></A ->11.5.3.3. Configure smb.conf</H3 +NAME="AEN1559">11.5.3.3. Configure smb.conf</H3 ><P >Several parameters are needed in the smb.conf file to control the behavior of <B @@ -895,9 +860,7 @@ CLASS="SECT3" ><H3 CLASS="SECT3" ><A -NAME="AEN1578" -></A ->11.5.3.4. Join the SAMBA server to the PDC domain</H3 +NAME="AEN1575">11.5.3.4. Join the SAMBA server to the PDC domain</H3 ><P >Enter the following command to make the SAMBA server join the PDC domain, where <TT @@ -941,9 +904,7 @@ CLASS="SECT3" ><H3 CLASS="SECT3" ><A -NAME="AEN1589" -></A ->11.5.3.5. Start up the winbindd daemon and test it!</H3 +NAME="AEN1586">11.5.3.5. Start up the winbindd daemon and test it!</H3 ><P >Eventually, you will want to modify your smb startup script to automatically invoke the winbindd daemon when the other parts of @@ -1064,17 +1025,13 @@ CLASS="SECT3" ><H3 CLASS="SECT3" ><A -NAME="AEN1625" -></A ->11.5.3.6. Fix the init.d startup scripts</H3 +NAME="AEN1622">11.5.3.6. Fix the init.d startup scripts</H3 ><DIV CLASS="SECT4" ><H4 CLASS="SECT4" ><A -NAME="AEN1627" -></A ->11.5.3.6.1. Linux</H4 +NAME="AEN1624">11.5.3.6.1. Linux</H4 ><P >The <B CLASS="COMMAND" @@ -1168,9 +1125,7 @@ CLASS="SECT4" ><H4 CLASS="SECT4" ><A -NAME="AEN1644" -></A ->11.5.3.6.2. Solaris</H4 +NAME="AEN1641">11.5.3.6.2. Solaris</H4 ><P >On solaris, you need to modify the <TT @@ -1239,9 +1194,7 @@ CLASS="SECT4" ><H4 CLASS="SECT4" ><A -NAME="AEN1651" -></A ->11.5.3.6.3. Restarting</H4 +NAME="AEN1648">11.5.3.6.3. Restarting</H4 ><P >If you restart the <B CLASS="COMMAND" @@ -1263,9 +1216,7 @@ CLASS="SECT3" ><H3 CLASS="SECT3" ><A -NAME="AEN1657" -></A ->11.5.3.7. Configure Winbind and PAM</H3 +NAME="AEN1654">11.5.3.7. Configure Winbind and PAM</H3 ><P >If you have made it this far, you know that winbindd and samba are working together. If you want to use winbind to provide authentication for other @@ -1321,9 +1272,7 @@ CLASS="SECT4" ><H4 CLASS="SECT4" ><A -NAME="AEN1674" -></A ->11.5.3.7.1. Linux/FreeBSD-specific PAM configuration</H4 +NAME="AEN1671">11.5.3.7.1. Linux/FreeBSD-specific PAM configuration</H4 ><P >The <TT CLASS="FILENAME" @@ -1450,9 +1399,7 @@ CLASS="SECT4" ><H4 CLASS="SECT4" ><A -NAME="AEN1707" -></A ->11.5.3.7.2. Solaris-specific configuration</H4 +NAME="AEN1704">11.5.3.7.2. Solaris-specific configuration</H4 ><P >The /etc/pam.conf needs to be changed. I changed this file so that my Domain users can logon both locally as well as telnet.The following are the changes @@ -1537,9 +1484,7 @@ CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN1714" -></A ->11.6. Limitations</H1 +NAME="AEN1711">11.6. Limitations</H1 ><P >Winbind has a number of limitations in its current released version that we hope to overcome in future @@ -1578,9 +1523,7 @@ CLASS="SECT1" ><H1 CLASS="SECT1" ><A -NAME="AEN1724" -></A ->11.7. Conclusion</H1 +NAME="AEN1721">11.7. Conclusion</H1 ><P >The winbind system, through the use of the Name Service Switch, Pluggable Authentication Modules, and appropriate @@ -1615,7 +1558,7 @@ WIDTH="34%" ALIGN="center" VALIGN="top" ><A -HREF="samba-project-documentation.html" +HREF="Samba-HOWTO.html" ACCESSKEY="H" >Home</A ></TD diff --git a/docs/htmldocs/winbindd.8.html b/docs/htmldocs/winbindd.8.html index 3aecf62509..1ecb08cdb4 100644 --- a/docs/htmldocs/winbindd.8.html +++ b/docs/htmldocs/winbindd.8.html @@ -1,11 +1,10 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >winbindd</TITLE ><META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.77"></HEAD +CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" @@ -16,8 +15,8 @@ ALINK="#0000FF" ><H1 ><A NAME="WINBINDD" -></A ->winbindd</H1 +>winbindd</A +></H1 ><DIV CLASS="REFNAMEDIV" ><A @@ -38,7 +37,7 @@ NAME="AEN8" ><B CLASS="COMMAND" >winbindd</B -> [-i] [-d <debug level>] [-s <smb config file>]</P +> [-i] [-d <debug level>] [-s <smb config file>]</P ></DIV ><DIV CLASS="REFSECT1" @@ -93,13 +92,13 @@ CLASS="PARAMETER" >account</I ></TT > - module-types. The latter simply + module-types. The latter is simply performs a getpwnam() to verify that the system can obtain a uid for the user. If the <TT CLASS="FILENAME" >libnss_winbind</TT > library has been correctly - installed, this should always succeed. + installed, this should always suceed. </P ><P >The following nsswitch databases are implemented by @@ -171,11 +170,20 @@ CLASS="FILENAME" > and then from the Windows NT server. </P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >passwd: files winbind group: files winbind </PRE +></TD +></TR +></TABLE ></P ><P >The following simple configuration in the @@ -279,130 +287,279 @@ CLASS="FILENAME" [global] section of smb.conf. </P ><P ></P -><UL -><LI +><DIV +CLASS="VARIABLELIST" +><DL +><DT +>winbind separator</DT +><DD ><P -><A -HREF="smb.conf.5.html#WINBINDSEPARATOR" -TARGET="_top" -> <TT -CLASS="PARAMETER" -><I ->winbind separator</I -></TT -></A +>The winbind separator option allows you + to specify how NT domain names and user names are combined + into unix user names when presented to users. By default, + <B +CLASS="COMMAND" +>winbindd</B +> will use the traditional '\' + separator so that the unix user names look like + DOMAIN\username. In some cases this separator character may + cause problems as the '\' character has special meaning in + unix shells. In that case you can use the winbind separator + option to specify an alternative separator character. Good + alternatives may be '/' (although that conflicts + with the unix directory separator) or a '+ 'character. + The '+' character appears to be the best choice for 100% + compatibility with existing unix utilities, but may be an + aesthetically bad choice depending on your taste. </P +><P +>Default: <B +CLASS="COMMAND" +>winbind separator = \ </B +> + </P +><P +>Example: <B +CLASS="COMMAND" +>winbind separator = + </B ></P -></LI -><LI +></DD +><DT +>winbind uid</DT +><DD ><P -><A -HREF="smb.conf.5.html#WINBINDUID" -TARGET="_top" -> <TT -CLASS="PARAMETER" -><I ->winbind uid</I -></TT -></A +>The winbind uid parameter specifies the + range of user ids that are allocated by the winbindd daemon. + This range of ids should have no existing local or NIS users + within it as strange conflicts can occur otherwise. </P +><P +>Default: <B +CLASS="COMMAND" +>winbind uid = <empty string> + </B ></P -></LI -><LI ><P -><A -HREF="smb.conf.5.html#WINBINDGID" -TARGET="_top" -> <TT +>Example: <B +CLASS="COMMAND" +>winbind uid = 10000-20000</B +></P +></DD +><DT +>winbind gid</DT +><DD +><P +>The winbind gid parameter specifies the + range of group ids that are allocated by the winbindd daemon. + This range of group ids should have no existing local or NIS + groups within it as strange conflicts can occur otherwise.</P +><P +>Default: <B +CLASS="COMMAND" +>winbind gid = <empty string> + </B +></P +><P +>Example: <B +CLASS="COMMAND" +>winbind gid = 10000-20000 + </B +> </P +></DD +><DT +>winbind cache time</DT +><DD +><P +>This parameter specifies the number of + seconds the winbindd daemon will cache user and group information + before querying a Windows NT server again. When a item in the + cache is older than this time winbindd will ask the domain + controller for the sequence number of the server's account database. + If the sequence number has not changed then the cached item is + marked as valid for a further <TT CLASS="PARAMETER" ><I ->winbind gid</I +>winbind cache time + </I ></TT -></A -></P -></LI -><LI -><P -><A -HREF="smb.conf.5.html#WINBINDCACHETIME" -TARGET="_top" -> <TT +> seconds. Otherwise the item is fetched from the + server. This means that as long as the account database is not + actively changing winbindd will only have to send one sequence + number query packet every <TT CLASS="PARAMETER" ><I ->winbind cache time</I +>winbind cache time + </I ></TT -></A -></P -></LI -><LI +> seconds. </P ><P -><A -HREF="smb.conf.5.html#WINBINDENUMUSERS" -TARGET="_top" -> <TT +>Default: <B +CLASS="COMMAND" +>winbind cache time = 15</B +> + </P +></DD +><DT +>winbind enum users</DT +><DD +><P +>On large installations it may be necessary + to suppress the enumeration of users through the <B +CLASS="COMMAND" +> setpwent()</B +>, <B +CLASS="COMMAND" +>getpwent()</B +> and + <B +CLASS="COMMAND" +>endpwent()</B +> group of system calls. If + the <TT CLASS="PARAMETER" ><I >winbind enum users</I ></TT -></A +> parameter is false, + calls to the <B +CLASS="COMMAND" +>getpwent</B +> system call will not + return any data. </P +><P +><EM +>Warning:</EM +> Turning off user enumeration + may cause some programs to behave oddly. For example, the <B +CLASS="COMMAND" +>finger</B +> + program relies on having access to the full user list when + searching for matching usernames. </P +><P +>Default: <B +CLASS="COMMAND" +>winbind enum users = yes </B ></P -></LI -><LI +></DD +><DT +>winbind enum groups</DT +><DD ><P -><A -HREF="smb.conf.5.html#WINBINDENUMGROUPS" -TARGET="_top" -> <TT +>On large installations it may be necessary + to suppress the enumeration of groups through the <B +CLASS="COMMAND" +> setgrent()</B +>, <B +CLASS="COMMAND" +>getgrent()</B +> and + <B +CLASS="COMMAND" +>endgrent()</B +> group of system calls. If + the <TT CLASS="PARAMETER" ><I >winbind enum groups</I ></TT -></A -></P -></LI -><LI +> parameter is + false, calls to the <B +CLASS="COMMAND" +>getgrent()</B +> system + call will not return any data. </P +><P +><EM +>Warning:</EM +> Turning off group + enumeration may cause some programs to behave oddly. + </P ><P -><A -HREF="smb.conf.5.html#TEMPLATEHOMEDIR" -TARGET="_top" -> <TT +>Default: <B +CLASS="COMMAND" +>winbind enum groups = no </B +> + </P +></DD +><DT +>template homedir</DT +><DD +><P +>When filling out the user information + for a Windows NT user, the <B +CLASS="COMMAND" +>winbindd</B +> daemon + uses this parameter to fill in the home directory for that user. + If the string <TT CLASS="PARAMETER" ><I ->template homedir</I +>%D</I ></TT -></A -></P -></LI -><LI -><P -><A -HREF="smb.conf.5.html#TEMPLATESHELL" -TARGET="_top" -> <TT +> is present it is + substituted with the user's Windows NT domain name. If the + string <TT CLASS="PARAMETER" ><I ->template shell</I +>%U</I ></TT -></A +> is present it is substituted + with the user's Windows NT user name. </P +><P +>Default: <B +CLASS="COMMAND" +>template homedir = /home/%D/%U </B +> + </P +></DD +><DT +>template shell</DT +><DD +><P +>When filling out the user information for + a Windows NT user, the <B +CLASS="COMMAND" +>winbindd</B +> daemon + uses this parameter to fill in the shell for that user. + </P +><P +>Default: <B +CLASS="COMMAND" +>template shell = /bin/false </B +> + </P +></DD +><DT +>winbind use default domain</DT +><DD +><P +>This parameter specifies whether the <B +CLASS="COMMAND" +>winbindd</B +> + daemon should operate on users without domain component in their username. + Users without a domain component are treated as is part of the winbindd server's + own domain. While this does not benifit Windows users, it makes SSH, FTP and e-mail + function in a way much closer to the way they would in a native unix system.</P +><P +>Default: <B +CLASS="COMMAND" +>winbind use default domain = <falseg> + </B ></P -></LI -><LI ><P -><A -HREF="smb.conf.5.html#WINBINDUSEDEFAULTDOMAIN" -TARGET="_top" -> <TT -CLASS="PARAMETER" -><I ->winbind use default domain</I -></TT -></A +>Example: <B +CLASS="COMMAND" +>winbind use default domain = true</B ></P -></LI -></UL +></DD +></DL +></DIV ></DIV ><DIV CLASS="REFSECT1" ><A -NAME="AEN118" +NAME="AEN167" ></A ><H2 >EXAMPLE SETUP</H2 @@ -417,11 +574,20 @@ CLASS="FILENAME" > put the following:</P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >passwd: files winbind group: files winbind </PRE +></TD +></TR +></TABLE ></P ><P >In <TT @@ -435,6 +601,12 @@ CLASS="PARAMETER" ></TT > lines with something like this: </P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >auth required /lib/security/pam_securetty.so @@ -442,6 +614,9 @@ auth required /lib/security/pam_nologin.so auth sufficient /lib/security/pam_winbind.so auth required /lib/security/pam_pwdb.so use_first_pass shadow nullok </PRE +></TD +></TR +></TABLE ></P ><P >Note in particular the use of the <TT @@ -522,6 +697,12 @@ CLASS="FILENAME" > containing directives like the following: </P ><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD ><PRE CLASS="PROGRAMLISTING" >[global] @@ -535,6 +716,9 @@ CLASS="PROGRAMLISTING" security = domain password server = * </PRE +></TD +></TR +></TABLE ></P ><P >Now start winbindd and you should find that your user and @@ -553,7 +737,7 @@ CLASS="COMMAND" ><DIV CLASS="REFSECT1" ><A -NAME="AEN157" +NAME="AEN206" ></A ><H2 >NOTES</H2 @@ -611,7 +795,7 @@ CLASS="COMMAND" ><DIV CLASS="REFSECT1" ><A -NAME="AEN173" +NAME="AEN222" ></A ><H2 >SIGNALS</H2 @@ -662,7 +846,7 @@ CLASS="COMMAND" ><DIV CLASS="REFSECT1" ><A -NAME="AEN190" +NAME="AEN239" ></A ><H2 >FILES</H2 @@ -738,7 +922,7 @@ CLASS="FILENAME" ><DIV CLASS="REFSECT1" ><A -NAME="AEN219" +NAME="AEN268" ></A ><H2 >VERSION</H2 @@ -749,7 +933,7 @@ NAME="AEN219" ><DIV CLASS="REFSECT1" ><A -NAME="AEN222" +NAME="AEN271" ></A ><H2 >SEE ALSO</H2 @@ -777,7 +961,7 @@ TARGET="_top" ><DIV CLASS="REFSECT1" ><A -NAME="AEN229" +NAME="AEN278" ></A ><H2 >AUTHOR</H2 diff --git a/docs/manpages/net.8 b/docs/manpages/net.8 index 7a6a5c18c6..fd2a450a6b 100644 --- a/docs/manpages/net.8 +++ b/docs/manpages/net.8 @@ -3,138 +3,20 @@ .\" <http://shell.ipoline.com/~elmert/comp/docbook2X/> .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng <steve@ggi-project.org>. -.TH "NET" "8" "03 October 2002" "" "" +.TH "NET" "8" "01 October 2002" "" "" .SH NAME net \- Tool for administration of Samba and remote CIFS servers. .SH SYNOPSIS -\fBnet\fR \fB<ads|rap|rpc>\fR [ \fB-h\fR ] [ \fB-w workgroup\fR ] [ \fB-W myworkgroup\fR ] [ \fB-U user\fR ] [ \fB-I ip-address\fR ] [ \fB-p port\fR ] [ \fB-n myname\fR ] [ \fB-s conffile\fR ] [ \fB-S server\fR ] [ \fB-C comment\fR ] [ \fB-M maxusers\fR ] [ \fB-F flags\fR ] [ \fB-j jobid\fR ] [ \fB-l\fR ] [ \fB-r\fR ] [ \fB-f\fR ] [ \fB-t timeout\fR ] [ \fB-P\fR ] [ \fB-D debuglevel\fR ] +\fBnet\fR \fB<ads|rap|rpc>\fR .SH "DESCRIPTION" .PP This tool is part of the Samba suite. -.PP -The samba net utility is meant to work just like the net utility -available for windows and DOS. .SH "OPTIONS" -.TP -\fB-h\fR -Display summary of all available options. -.TP -\fB-w target-workgroup\fR -Sets target workgroup or domain. You have to specify either this option or the IP address or the name of a server. -.TP -\fB-W workgroup\fR -Sets client workgroup or domain -.TP -\fB-U user\fR -User name to use -.TP -\fB-I ip-address\fR -IP address of target server to use. You have to specify either this option or a target workgroup or a target server. -.TP -\fB-p port\fR -Port on the target server to connect to. -.TP -\fB-n myname\fR -Sets name of the client. -.TP -\fB-s conffile\fR -Specify alternative configuration file that should be loaded. -.TP -\fB-S server\fR -Name of target server. You should specify either this option or a target workgroup or a target IP address. -.TP -\fB-C comment\fR -FIXME -.TP -\fB-M maxusers\fR -FIXME -.TP -\fB-F flags\fR -FIXME -.TP -\fB-j jobid\fR -FIXME -.TP -\fB-l\fR -FIXME -.TP -\fB-r\fR -FIXME -.TP -\fB-f\fR -FIXME -.TP -\fB-t timeout\fR -FIXME -.TP -\fB-P\fR -Make queries to the external server using the machine account of the local server. -.TP -\fB-D debuglevel\fR -set the debuglevel. Debug level 0 is the lowest -and 100 being the highest. This should be set to 100 if you are -planning on submitting a bug report to the Samba team (see -\fIBUGS.txt\fR). -.SH "TIME" .PP -The \fBNET TIME\fR command allows you to view the time on a remote server -or synchronise the time on the local server with the time on the remote server. -.TP -\fB\fR -Without any options, the \fBNET TIME\fR command -displays the time on the remote server. -.TP -\fBSYSTEM\fR -Displays the time on the remote server in a format ready for /bin/date -.TP -\fBSET\fR -Tries to set the date and time of the local server to that on -the remote server using /bin/date. -.TP -\fBZONE\fR -Displays the timezone in hours from GMT on the remote computer. -.SH "RPC" +.SH "COMMANDS" .PP -The \fBNET RPC\fR command allows you to do various -NT4 operations. -.TP -\fBJOIN -U username[%password] [options]\fR -Join a domain with specified username and password. Password -will be prompted if none is specified. -.TP -\fBJOIN [options except -U]\fR -to join a domain created in server manager -.TP -\fBUSER [misc. options] [targets]\fR -List users -.TP -\fBUSER DELETE <name> [misc options]\fR -delete specified user -.TP -\fBUSER INFO <name> [misc options]\fR -list the domain groups of the specified user -.TP -\fBUSER ADD <name> [password] [-F user flags] [misc. options\fR -Add specified user -.TP -\fBGROUP [misc options] [targets]\fR -List user groups -.TP -\fBGROUP DELETE <name> [misc. options] [targets]\fR -Delete specified group -.TP -\fBGROUP ADD <name> [-C comment]\fR -Create specified group -.TP -\fBSHARE [misc. options] [targets]\fR -enumerates all exported resources (network shares) on target server -.TP -\fBSHARE ADD <name=serverpath> [misc. options] [targets]\fR -Adds a share from a server (makes the export active) -.TP -\fBSHARE DELETE <sharenam\fR .SH "VERSION" .PP This man page is incomplete for version 3.0 of the Samba diff --git a/docs/manpages/smb.conf.5 b/docs/manpages/smb.conf.5 index dc2adaba47..ed4b8cbda2 100644 --- a/docs/manpages/smb.conf.5 +++ b/docs/manpages/smb.conf.5 @@ -3,7 +3,7 @@ .\" <http://shell.ipoline.com/~elmert/comp/docbook2X/> .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng <steve@ggi-project.org>. -.TH "SMB.CONF" "5" "03 October 2002" "" "" +.TH "SMB.CONF" "5" "01 October 2002" "" "" .SH NAME smb.conf \- The configuration file for the Samba suite .SH "SYNOPSIS" @@ -95,7 +95,7 @@ The share is accessed via the share name "foo": .nf [foo] path = /home/bar - read only = no + writeable = true .fi @@ -110,9 +110,9 @@ elsewhere): .nf [aprinter] path = /usr/spool/public - read only = yes - printable = yes - guest ok = yes + writeable = false + printable = true + guest ok = true .fi @@ -173,7 +173,7 @@ section: .nf [homes] - read only = no + writeable = yes .fi @@ -604,6 +604,12 @@ each parameter for details. Note that some are synonyms. \fIdns proxy\fR .TP 0.2i \(bu +\fIdomain admin group\fR +.TP 0.2i +\(bu +\fIdomain guest group\fR +.TP 0.2i +\(bu \fIdomain logons\fR .TP 0.2i \(bu @@ -634,9 +640,6 @@ each parameter for details. Note that some are synonyms. \fIhide unwriteable files\fR .TP 0.2i \(bu -\fIhide special files\fR -.TP 0.2i -\(bu \fIhomedir map\fR .TP 0.2i \(bu @@ -994,9 +997,6 @@ each parameter for details. Note that some are synonyms. \fIuse rhosts\fR .TP 0.2i \(bu -\fIuse sendfile\fR -.TP 0.2i -\(bu \fIusername level\fR .TP 0.2i \(bu @@ -1367,6 +1367,9 @@ each parameter for details. Note that some are synonyms. \fIshort preserve case\fR .TP 0.2i \(bu +\fIstatus\fR +.TP 0.2i +\(bu \fIstrict allocate\fR .TP 0.2i \(bu @@ -1810,7 +1813,7 @@ cannot be immediately satisfied, Samba 2.2 will internally queue the lock request, and periodically attempt to obtain the lock until the timeout period expires. -If this parameter is set to no, then +If this parameter is set to false, then Samba 2.2 will behave as previous versions of Samba would and will fail the lock request immediately if the lock range cannot be obtained. @@ -1842,7 +1845,7 @@ See the \fI browseable\fR. \fBbrowse list (G)\fR This controls whether \fBsmbd(8)\fR will serve a browse list to a client doing a \fBNetServerEnum\fR call. Normally -set to yes. You should never need to change +set to true. You should never need to change this. Default: \fBbrowse list = yes\fR @@ -2269,11 +2272,11 @@ Example: \fBdelete user from group script = /usr/sbin/deluser %u %g\fR This option is used when Samba is attempting to delete a directory that contains one or more vetoed directories (see the \fIveto files\fR -option). If this option is set to no (the default) then if a vetoed +option). If this option is set to false (the default) then if a vetoed directory contains any non-vetoed files or directories then the directory delete will fail. This is usually what you want. -If this option is set to yes, then Samba +If this option is set to true, then Samba will attempt to recursively delete any files and directories within the vetoed directory. This can be useful for integration with file serving systems such as NetAtalk which create meta-files within @@ -2481,8 +2484,42 @@ See also the parameter \fI wins support\fR. Default: \fBdns proxy = yes\fR .TP +\fBdomain admin group (G)\fR +This parameter is intended as a temporary solution +to enable users to be a member of the "Domain Admins" group when +a Samba host is acting as a PDC. A complete solution will be provided +by a system for mapping Windows NT/2000 groups onto UNIX groups. +Please note that this parameter has a somewhat confusing name. It +accepts a list of usernames and of group names in standard +\fIsmb.conf\fR notation. + +See also \fIdomain +guest group\fR, \fIdomain +logons\fR + +Default: \fBno domain administrators\fR + +Example: \fBdomain admin group = root @wheel\fR +.TP +\fBdomain guest group (G)\fR +This parameter is intended as a temporary solution +to enable users to be a member of the "Domain Guests" group when +a Samba host is acting as a PDC. A complete solution will be provided +by a system for mapping Windows NT/2000 groups onto UNIX groups. +Please note that this parameter has a somewhat confusing name. It +accepts a list of usernames and of group names in standard +\fIsmb.conf\fR notation. + +See also \fIdomain +admin group\fR, \fIdomain +logons\fR + +Default: \fBno domain guests\fR + +Example: \fBdomain guest group = nobody @guest\fR +.TP \fBdomain logons (G)\fR -If set to yes, the Samba server will serve +If set to true, the Samba server will serve Windows 95/98 Domain logons for the \fIworkgroup\fR it is in. Samba 2.2 also has limited capability to act as a domain controller for Windows NT 4 Domains. For more details on setting up this feature see @@ -2589,7 +2626,7 @@ file they can change the timestamp on it. Under POSIX semantics, only the owner of the file or root may change the timestamp. By default, Samba runs with POSIX semantics and refuses to change the timestamp on a file if the user \fBsmbd\fR is acting -on behalf of is not the file owner. Setting this option to yes allows DOS semantics and smbd will change the file +on behalf of is not the file owner. Setting this option to true allows DOS semantics and smbd will change the file timestamp as DOS requires. Default: \fBdos filetimes = no\fR @@ -2910,7 +2947,7 @@ This is a tuning option. When this is enabled a caching algorithm will be used to reduce the time taken for getwd() calls. This can have a significant impact on performance, especially when the \fIwide links\fR -parameter is set to no. +parameter is set to false. Default: \fBgetwd cache = yes\fR .TP @@ -3018,16 +3055,9 @@ Note that unwriteable directories are shown as usual. Default: \fBhide unwriteable = no\fR .TP -\fBhide special files (G)\fR -This parameter prevents clients from seeing -special files such as sockets, devices and fifo's in directory -listings. - -Default: \fBhide special files = no\fR -.TP \fBhomedir map (G)\fR If\fInis homedir -\fR is yes, and \fBsmbd(8)\fR is also acting +\fR is true, and \fBsmbd(8)\fR is also acting as a Win95/98 \fIlogon server\fR then this parameter specifies the NIS (or YP) map from which the server for the user's home directory should be extracted. At present, only the Sun @@ -3468,7 +3498,7 @@ Currently, if \fIkernel oplocks\fR are supported then level2 oplocks are not granted (even if this parameter is set to yes). Note also, the \fIoplocks\fR -parameter must be set to yes on this share in order for +parameter must be set to true on this share in order for this parameter to have any effect. See also the \fIoplocks\fR @@ -3481,10 +3511,10 @@ Default: \fBlevel2 oplocks = yes\fR This parameter determines if \fBnmbd(8)\fR will produce Lanman announce broadcasts that are needed by OS/2 clients in order for them to see the Samba server in their browse list. This parameter can have three -values, yes, no, or +values, true, false, or auto. The default is auto. -If set to no Samba will never produce these -broadcasts. If set to yes Samba will produce +If set to false Samba will never produce these +broadcasts. If set to true Samba will produce Lanman announce broadcasts at a frequency set by the parameter \fIlm interval\fR. If set to auto Samba will not send Lanman announce broadcasts by default but will @@ -3524,13 +3554,13 @@ Default: \fBload printers = yes\fR .TP \fBlocal master (G)\fR This option allows \fB nmbd(8)\fR to try and become a local master browser -on a subnet. If set to no then \fB nmbd\fR will not attempt to become a local master browser +on a subnet. If set to false then \fB nmbd\fR will not attempt to become a local master browser on a subnet and will also lose in all browsing elections. By -default this value is set to yes. Setting this value to yes doesn't +default this value is set to true. Setting this value to true doesn't mean that Samba will \fBbecome\fR the local master browser on a subnet, just that \fBnmbd\fR will \fB participate\fR in elections for local master browser. -Setting this value to no will cause \fBnmbd\fR +Setting this value to false will cause \fBnmbd\fR \fBnever\fR to become a local master browser. Default: \fBlocal master = yes\fR @@ -4937,7 +4967,7 @@ is a full stop ".", then no string is sent. Similarly, if the expect string is a full stop then no string is expected. If the \fIpam -password change\fR parameter is set to yes, the chat pairs +password change\fR parameter is set to true, the chat pairs may be matched in any order, and success is determined by the PAM result, not any particular output. The \\n macro is ignored for PAM conversions. @@ -4985,7 +5015,7 @@ of mixed case chars and digits. This can pose a problem as some clients it. \fBNote\fR that if the \fIunix -password sync\fR parameter is set to yes +password sync\fR parameter is set to true then this program is called \fBAS ROOT\fR before the SMB password in the smbpasswd(5) file is changed. If this UNIX password change fails, then @@ -4996,7 +5026,7 @@ If the \fIunix password sync\fR parameter is set this parameter \fBMUST USE ABSOLUTE PATHS\fR for \fBALL\fR programs called, and must be examined for security implications. Note that by default \fIunix -password sync\fR is set to no. +password sync\fR is set to false. See also \fIunix password sync\fR. @@ -5235,7 +5265,7 @@ Default: \fBpreexec close = no\fR This boolean parameter controls if nmbd(8) is a preferred master browser for its workgroup. -If this is set to yes, on startup, \fBnmbd\fR +If this is set to true, on startup, \fBnmbd\fR will force an election, and it will have a slight advantage in winning the election. It is recommended that this parameter is used in conjunction with \fB\fI domain master\fB = yes\fR, so that \fB nmbd\fR can guarantee becoming a domain master. @@ -5255,7 +5285,7 @@ Default: \fBpreferred master = auto\fR \fBprefered master (G)\fR Synonym for \fI preferred master\fR for people who cannot spell :-). .TP -\fBpreload (G)\fR +\fBpreload\fR This is a list of services that you want to be automatically added to the browse lists. This is most useful for homes and printers services that would otherwise not be @@ -5374,7 +5404,7 @@ specified for the service. Note that a printable service will ALWAYS allow writing to the service path (user privileges permitting) via the spooling -of print data. The \fIread only +of print data. The \fIwriteable \fR parameter controls only non-printing access to the resource. @@ -5634,7 +5664,7 @@ Default: \fBread bmpx = no\fR \fBread list (S)\fR This is a list of users that are given read-only access to a service. If the connecting user is in this list then -they will not be given write access, no matter what the \fIread only\fR +they will not be given write access, no matter what the \fIwriteable\fR option is set to. The list can include group names using the syntax described in the \fI invalid users\fR parameter. @@ -5646,17 +5676,7 @@ Default: \fBread list = <empty string>\fR Example: \fBread list = mary, @students\fR .TP \fBread only (S)\fR -An inverted synonym is \fIwriteable\fR. - -If this parameter is yes, then users -of a service may not create or modify files in the service's -directory. - -Note that a printable service (\fBprintable = yes\fR) -will \fBALWAYS\fR allow writing to the directory -(user privileges permitting), but only via spooling operations. - -Default: \fBread only = yes\fR +Note that this is an inverted synonym for \fIwriteable\fR. .TP \fBread raw (G)\fR This parameter controls whether or not the server @@ -5770,10 +5790,10 @@ Default: \fBremote browse sync = <empty string> \fR .TP \fBrestrict anonymous (G)\fR -This is a boolean parameter. If it is yes, then +This is a boolean parameter. If it is true, then anonymous access to the server will be restricted, namely in the case where the server is expecting the client to send a username, -but it doesn't. Setting it to yes will force these anonymous +but it doesn't. Setting it to true will force these anonymous connections to be denied, and the client will be required to always supply a username and password when connecting. Use of this parameter is only recommended for homogeneous NT client environments. @@ -5783,7 +5803,7 @@ on the username (%U, %G, etc) consistent. NT 4.0 likes to use anonymous connections when refreshing the share list, and this is a way to work around that. -When restrict anonymous is yes, all anonymous connections +When restrict anonymous is true, all anonymous connections are denied no matter what they are for. This can effect the ability of a machine to access the Samba Primary Domain Controller to revalidate its machine account after someone else has logged on the client @@ -6031,7 +6051,7 @@ parameter. This mode will only work correctly if smbpasswd(8) has been used to add this machine into a Windows NT Domain. It expects the \fIencrypted passwords\fR -parameter to be set to yes. In this +parameter to be set to true. In this mode Samba will try to validate the username/password by passing it to a Windows NT Primary or Backup Domain Controller, in exactly the same way that a Windows NT Server would do. @@ -6399,6 +6419,17 @@ never need to change this parameter. Default: \fBstat cache size = 50\fR .TP +\fBstatus (G)\fR +This enables or disables logging of connections +to a status file that smbstatus(1) +can read. + +With this disabled \fBsmbstatus\fR won't be able +to tell you what connections are active. You should never need to +change this parameter. + +Default: \fBstatus = yes\fR +.TP \fBstrict allocate (S)\fR This is a boolean that controls the handling of disk space allocation in the server. When this is set to yes @@ -6463,10 +6494,10 @@ Default: \fBstrip dot = no\fR \fBsync always (S)\fR This is a boolean parameter that controls whether writes will always be written to stable storage before -the write call returns. If this is no then the server will be +the write call returns. If this is false then the server will be guided by the client's request in each write call (clients can set a bit indicating that a particular write should be synchronous). -If this is yes then every write will be followed by a \fBfsync() +If this is true then every write will be followed by a \fBfsync() \fR call to ensure the data is written to disk. Note that the \fIstrict sync\fR parameter must be set to yes in order for this parameter to have @@ -6578,7 +6609,7 @@ Default: \fBunix extensions = no\fR This boolean parameter controls whether Samba attempts to synchronize the UNIX password with the SMB password when the encrypted SMB password in the smbpasswd file is changed. -If this is set to yes the program specified in the \fIpasswd +If this is set to true the program specified in the \fIpasswd program\fRparameter is called \fBAS ROOT\fR - to allow the new UNIX password to be set without access to the old UNIX password (as the SMB password change code has no @@ -6651,7 +6682,7 @@ Default: \fBuse client driver = no\fR This global parameter determines if the tdb internals of Samba can depend on mmap working correctly on the running system. Samba requires a coherent mmap/read-write system memory cache. Currently only HPUX does not have such a -coherent cache, and so this parameter is set to no by +coherent cache, and so this parameter is set to false by default on HPUX. On all other systems this parameter should be left alone. This parameter is provided to help the Samba developers track down problems with the tdb internal code. @@ -6659,7 +6690,7 @@ the tdb internal code. Default: \fBuse mmap = yes\fR .TP \fBuse rhosts (G)\fR -If this global parameter is yes, it specifies +If this global parameter is true, it specifies that the UNIX user's \fI.rhosts\fR file in their home directory will be read to find the names of hosts and users who will be allowed access without specifying a password. @@ -6782,26 +6813,26 @@ on the left. Processing then continues with the next line. If any line begins with a '#' or a ';' then it is ignored -If any line begins with an '!' then the processing -will stop after that line if a mapping was done by the line. -Otherwise mapping continues with every line being processed. -Using '!' is most useful when you have a wildcard mapping line +If any line begins with an '!' then the processing +will stop after that line if a mapping was done by the line. +Otherwise mapping continues with every line being processed. +Using '!' is most useful when you have a wildcard mapping line later in the file. -For example to map from the name admin +For example to map from the name admin or administrator to the UNIX name root you would use: \fBroot = admin administrator\fR -Or to map anyone in the UNIX group system +Or to map anyone in the UNIX group system to the UNIX name sys you would use: \fBsys = @system\fR -You can have as many mappings as you like in a username +You can have as many mappings as you like in a username map file. -If your system supports the NIS NETGROUP option then +If your system supports the NIS NETGROUP option then the netgroup database is checked before the \fI/etc/group \fR database for matching groups. @@ -6810,12 +6841,12 @@ by using double quotes around the name. For example: \fBtridge = "Andrew Tridgell"\fR -would map the windows username "Andrew Tridgell" to the +would map the windows username "Andrew Tridgell" to the unix username "tridge". -The following example would map mary and fred to the -unix user sys, and map the rest to guest. Note the use of the -\&'!' to tell Samba to stop processing if it gets a match on +The following example would map mary and fred to the +unix user sys, and map the rest to guest. Note the use of the +\&'!' to tell Samba to stop processing if it gets a match on that line. @@ -6825,18 +6856,18 @@ that line. .fi -Note that the remapping is applied to all occurrences -of usernames. Thus if you connect to \\\\server\\fred and fred is remapped to mary then you -will actually be connecting to \\\\server\\mary and will need to -supply a password suitable for mary not -fred. The only exception to this is the -username passed to the \fI password server\fR (if you have one). The password -server will receive whatever username the client supplies without +Note that the remapping is applied to all occurrences +of usernames. Thus if you connect to \\\\server\\fred and fred is remapped to mary then you +will actually be connecting to \\\\server\\mary and will need to +supply a password suitable for mary not +fred. The only exception to this is the +username passed to the \fI password server\fR (if you have one). The password +server will receive whatever username the client supplies without modification. -Also note that no reverse mapping is done. The main effect -this has is with printing. Users who have been mapped may have -trouble deleting print jobs as PrintManager under WfWg will think +Also note that no reverse mapping is done. The main effect +this has is with printing. Users who have been mapped may have +trouble deleting print jobs as PrintManager under WfWg will think they don't own the print job. Default: \fBno username map\fR @@ -6844,20 +6875,9 @@ Default: \fBno username map\fR Example: \fBusername map = /usr/local/samba/lib/users.map \fR .TP -\fBuse sendfile (S)\fR -If this parameter is yes, and Samba -was built with the --with-sendfile-support option, and the underlying operating -system supports sendfile system call, then some SMB read calls (mainly ReadAndX -and ReadRaw) will use the more efficient sendfile system call for files that -are exclusively oplocked. This may make more efficient use of the system CPU's -and cause Samba to be faster. This is off by default as it's effects are unknown -as yet. - -Default: \fBuse sendfile = no\fR -.TP \fButmp (G)\fR -This boolean parameter is only available if -Samba has been configured and compiled with the option \fB --with-utmp\fR. If set to yes then Samba will attempt +This boolean parameter is only available if +Samba has been configured and compiled with the option \fB --with-utmp\fR. If set to true then Samba will attempt to add utmp or utmpx records (depending on the UNIX system) whenever a connection is made to a Samba server. Sites may use this to record the user connecting to a Samba share. @@ -7051,7 +7071,7 @@ necessary to suppress the enumeration of users through the \fBgetpwent()\fR and \fBendpwent()\fR group of system calls. If the \fIwinbind enum users\fR parameter is -no, calls to the \fBgetpwent\fR system call +false, calls to the \fBgetpwent\fR system call will not return any data. \fBWarning:\fR Turning off user @@ -7070,7 +7090,7 @@ necessary to suppress the enumeration of groups through the \fBgetgrent()\fR and \fBendgrent()\fR group of system calls. If the \fIwinbind enum groups\fR parameter is -no, calls to the \fBgetgrent()\fR system +false, calls to the \fBgetgrent()\fR system call will not return any data. \fBWarning:\fR Turning off group @@ -7117,17 +7137,17 @@ Example: \fBwinbind uid = 10000-20000\fR .TP \fBwinbind use default domain\fR .TP -\fBwinbind use default domain (G)\fR +\fBwinbind use default domain\fR This parameter specifies whether the winbindd(8) daemon should operate on users without domain component in their username. Users without a domain component are treated as is part of the winbindd server's own domain. While this does not benifit Windows users, it makes SSH, FTP and e-mail function in a way much closer to the way they would in a native unix system. -Default: \fBwinbind use default domain = <no> +Default: \fBwinbind use default domain = <falseg> \fR -Example: \fBwinbind use default domain = yes\fR +Example: \fBwinbind use default domain = true\fR .TP \fBwins hook (G)\fR When Samba is running as a WINS server this @@ -7204,9 +7224,9 @@ Example: \fBwins server = 192.9.200.1\fR \fBwins support (G)\fR This boolean controls if the nmbd(8) process in Samba will act as a WINS server. You should -not set this to yes unless you have a multi-subnetted network and +not set this to true unless you have a multi-subnetted network and you wish a particular \fBnmbd\fR to be your WINS server. -Note that you should \fBNEVER\fR set this to yes +Note that you should \fBNEVER\fR set this to true on more than one machine in your network. Default: \fBwins support = no\fR @@ -7253,7 +7273,7 @@ for a 256k cache size per file. \fBwrite list (S)\fR This is a list of users that are given read-write access to a service. If the connecting user is in this list then -they will be given write access, no matter what the \fIread only\fR +they will be given write access, no matter what the \fIwriteable\fR option is set to. The list can include group names using the @group syntax. @@ -7281,7 +7301,7 @@ Default: \fBwins partners = \fR Example: \fBwins partners = 192.168.0.1 172.16.1.2\fR .TP \fBwrite ok (S)\fR -Inverted synonym for \fI read only\fR. +Synonym for \fI writeable\fR. .TP \fBwrite raw (G)\fR This parameter controls whether or not the server @@ -7291,7 +7311,17 @@ You should never need to change this parameter. Default: \fBwrite raw = yes\fR .TP \fBwriteable (S)\fR -Inverted synonym for \fI read only\fR. +An inverted synonym is \fIread only\fR. + +If this parameter is no, then users +of a service may not create or modify files in the service's +directory. + +Note that a printable service (\fBprintable = yes\fR) +will \fBALWAYS\fR allow writing to the directory +(user privileges permitting), but only via spooling operations. + +Default: \fBwriteable = no\fR .SH "WARNINGS" .PP Although the configuration file permits service names diff --git a/docs/textdocs/ADS-HOWTO.txt b/docs/textdocs/ADS-HOWTO.txt new file mode 100644 index 0000000000..7a066c69ec --- /dev/null +++ b/docs/textdocs/ADS-HOWTO.txt @@ -0,0 +1,142 @@ +Samba 3.0 prealpha guide to Kerberos authentication +--------------------------------------------------- + +Andrew Tridgell +tridge@samba.org + +This is a VERY ROUGH guide to setting up the current (November 2001) +pre-alpha version of Samba 3.0 with kerberos authentication against a +Windows2000 KDC. The procedures listed here are likely to change as +the code develops. + +Pieces you need before you begin: + +- a Windows 2000 server +- the latest CVS source code for Samba. See http://cvs.samba.org/ for how to + fetch this. +- the MIT kerberos development libraries (either install from the + above sources or use a package). Under debian you need "libkrb5-dev" + and "krb5-user". The heimdal libraries will not work. +- the OpenLDAP development libraries. + +On RedHat this means you should have at least: + +krb5-workstation (for kinit) +krb5-libs (for linking with) +krb5-devel (because you are compiling from source) + +in addition to the standard development environment. + +Note that these are not standard on a RedHat install, and you may need +to get them off CD2. + +Also check that you have the latest copy of this HOWTO. It is +available from http://samba.org/ftp/tridge/kerberos/HOWTO + +Step 1: Compile Samba + + If your kerberos libraries are in a non-standard location then + remember to add the configure option --with-krb5=DIR. + + After you run configure make sure that include/config.h contains + lines like this: + + #define HAVE_KRB5 1 + #define HAVE_LDAP 1 + + If it doesn't then configure did not find your krb5 libraries or + your ldap libraries. Look in config.log to figure out why and fix + it. + + Then compile and install Samba as usual. You must use at least the + following 3 options in smb.conf: + + realm = YOUR.KERBEROS.REALM + ads server = your.kerberos.server + security = ADS + encrypt passwords = yes + + Strictly speaking, you can omit the realm name and you can use an IP + address for the ads server. In that case Samba will auto-detect these. + + You do *not* need a smbpasswd file, although it won't do any harm + and if you have one then Samba will be able to fall back to normal + password security for older clients. I expect that the above + required options will change soon when we get better active + directory integration. + + +Step 2: Setup your /etc/krb5.conf + + The minimal configuration for krb5.conf is: + + [realms] + YOUR.KERBEROS.REALM = { + kdc = your.kerberos.server + } + + + Test your config by doing a "kinit USERNAME@REALM" and making sure that + your password is accepted by the Win2000 KDC. + + NOTE: The realm must be uppercase. + + You also must ensure that you can do a reverse DNS lookup on the IP + address of your KDC. Also, the name that this reverse lookup maps to + must either be the netbios name of the KDC (ie. the hostname with no + domain attached) or it can alternatively be the netbios name + followed by the realm. + + The easiest way to ensure you get this right is to add a /etc/hosts + entry mapping the IP address of your KDC to its netbios name. If you + don't get this right then you will get a "local error" when you try + to join the realm. + +* If all you want is kerberos support in smbclient then you can skip +* straight to step 5 now. Step 3 is only needed if you want kerberos +* support in smbd. + + +Step 3: Create the computer account + + Do a "kinit" as a user that has authority to change arbitrary + passwords on the KDC ("Administrator" is a good choice). Then as a + user that has write permission on the Samba private directory + (usually root) run: + + net ads join + + Possible errors: + - "bash: kinit: command not found": + - kinit is in the krb5-workstation RPM on RedHat systems, and is + in /usr/kerberos/bin, so it won't be in the path until + you log in again (or open a new terminal) + - "ADS support not compiled in" + - Samba must be reconfigured (remove config.cache) and + recompiled (make clean all install) after the kerberos libs + and headers are installed. + + +Step 4: Test your server setup + + On a Windows 2000 client try "net use * \\server\share". You should + be logged in with kerberos without needing to know a password. If + this fails then run "klist tickets". Did you get a ticket for the + server? Does it have an encoding type of DES-CBC-MD5 ? + +Step 5: Testing with smbclient + + On your Samba server try to login to a Win2000 server or your Samba + server using smbclient and kerberos. Use smbclient as usual, but + specify the -k option to choose kerberos authentication. + + +-------- + +NOTES: + - must change administrator password at least once after DC install, + to create the right encoding types + + - w2k doesn't seem to create the _kerberos._udp and _ldap._tcp in + their defaults DNS setup. Maybe fixed in service packs? + diff --git a/docs/textdocs/Application_Serving.txt b/docs/textdocs/Application_Serving.txt new file mode 100644 index 0000000000..6a61a99d7e --- /dev/null +++ b/docs/textdocs/Application_Serving.txt @@ -0,0 +1,56 @@ +Contributed: January 7, 1997 +Updated: March 24, 1998 +Contributor: John H Terpstra <samba@samba.org> + Copyright (C) 1997 - John H Terpstra +Status: Current + +Subject: Using a Samba share as an administrative share for MS Office, etc. +============================================================================== + +Problem: +======== +Microsoft Office products can be installed as an administrative installation +from which the application can either be run off the administratively installed +product that resides on a shared resource, or from which that product can be +installed onto workstation clients. + +The general mechanism for implementing an adminstrative installation involves +running: + X:\setup /A, where X is the drive letter of either CDROM or floppy + +This installation process will NOT install the product for use per se, but +rather results in unpacking of the compressed distribution files into a target +shared folder. For this process you need write privilidge to the share and it +is desirable to enable file locking and share mode operation during this +process. + +Subsequent installation of MS Office from this share will FAIL unless certain +precautions are taken. This failure will be caused by share mode operation +which will prevent the MS Office installation process from re-opening various +dynamic link library files and will cause sporadic file not found problems. + +Solution: +========= +1. As soon as the administrative installation (unpacking) has completed + set the following parameters on the share containing it: + [MSOP95] + path = /where_you_put_it + comment = Your comment + volume = "The_CD_ROM_Label" + read only = yes + available = yes + share modes = no + locking = no + browseable = yes + public = yes + +2. Now you are ready to run the setup program from the Microsoft Windows +workstation as follows:- + \\"Server_Name"\MSOP95\msoffice\setup + +MS Office Sharing - Please note: +================================ + +Workgroup Templates should be stored on an ordinary writable or read-only share +but USER templates MUST be stored on a writable share _OR_ on the users' local +machine. diff --git a/docs/textdocs/DHCP-Server-Configuration.txt b/docs/textdocs/DHCP-Server-Configuration.txt new file mode 100644 index 0000000000..499706955f --- /dev/null +++ b/docs/textdocs/DHCP-Server-Configuration.txt @@ -0,0 +1,240 @@ +Subject: DHCP Server Configuration for SMB Clients +Date: March 1, 1998 +Updated: May 15, 2001 +Contributor: John H Terpstra <jht@samba.org> +Support: This is an unsupported document. Refer to documentation that is + supplied with the ISC DHCP Server. Do NOT email the contributor + for ANY assistance. +=============================================================================== + +Background: +=========== + +We wish to help those folks who wish to use the ISC DHCP Server and provide +sample configuration settings. Most operating systems today come ship with +the ISC DHCP Server. ISC DHCP is available from: + ftp://ftp.isc.org/isc/dhcp + +Incorrect configuration of MS Windows clients (Windows9X, Windows ME, Windows +NT/2000) will lead to problems with browsing and with general network +operation. Windows 9X/ME users often report problems where the TCP/IP and related +network settings will inadvertantly become reset at machine start-up resulting +in loss of configuration settings. This results in increased maintenance +overheads as well as serious user frustration. + +In recent times users on one mailing list incorrectly attributed the cause of +network operating problems to incorrect configuration of Samba. + +One user insisted that the only way to provent Windows95 from periodically +performing a full system reset and hardware detection process on start-up was +to install the NetBEUI protocol in addition to TCP/IP. This assertion is not +correct. + +In the first place, there is NO need for NetBEUI. All Microsoft Windows clients +natively run NetBIOS over TCP/IP, and that is the only protocol that is +recognised by Samba. Installation of NetBEUI and/or NetBIOS over IPX will +cause problems with browse list operation on most networks. Even Windows NT +networks experience these problems when incorrectly configured Windows95 +systems share the same name space. It is important that only those protocols +that are strictly needed for site specific reasons should EVER be installed. + +Secondly, and totally against common opinion, DHCP is NOT an evil design but is +an extension of the BOOTP protocol that has been in use in Unix environments +for many years without any of the melt-down problems that some sensationalists +would have us believe can be experienced with DHCP. In fact, DHCP in covered by +rfc1541 and is a very safe method of keeping an MS Windows desktop environment +under control and for ensuring stable network operation. + +Please note that MS Windows systems as of MS Windows NT 3.1 and MS Windows 95 +store all network configuration settings a registry. There are a few reports +from MS Windows network administrators that warrant mention here. It would appear +that when one sets certain MS TCP/IP protocol settings (either directly or via +DHCP) that these do get written to the registry. Even though a subsequent +change of setting may occur the old value may persist in the registry. This +has been known to create serious networking problems. + +An example of this occurs when a manual TCP/IP environment is configured to +include a NetBIOS Scope. In this event, when the administrator then changes the +configuration of the MS TCP/IP protocol stack, without first deleting the +current settings, by simply checking the box to configure the MS TCP/IP stack +via DHCP then the NetBIOS Scope that is still persistent in the registry WILL be +applied to the resulting DHCP offered settings UNLESS the DHCP server also sets +a NetBIOS Scope. It may therefore be prudent to forcibly apply a NULL NetBIOS +Scope from your DHCP server. The can be done in the dhcpd.conf file with the +parameter: + option netbios-scope ""; + +While it is true that the Microsoft DHCP server that comes with Windows NT +Server provides only a sub-set of rfc1533 functionality this is hardly an issue +in those sites that already have a large investment and commitment to Unix +systems and technologies. The current state of the art of the DHCP Server +specification in covered in rfc2132. + +This document aims to provide enough background information so that the +majority of site can without too much hardship get the Internet Software +Consortium's (ISC) DHCP Server into operation. The key benefits of using DHCP +includes: + +1) Automated IP Address space management and maximised re-use of available IP +Addresses, + +2) Automated control of MS Windows client TCP/IP network configuration, + +3) Automatic recovery from start-up and run-time problems with Windows95. + + + +Client Configuration for SMB Networking: +======================================== +SMB network clients need to be configured so that all standard TCP/IP name to +address resolution works correctly. Once this has been achieved the SMB +environment provides additional tools and services that act as helper agents in +the translation of SMB (NetBIOS) names to their appropriate IP Addresses. One +such helper agent is the NetBIOS Name Server (NBNS) or as Microsoft called it +in their Windows NT Server implementation WINS (Windows Internet Name Server). + +A client needs to be configured so that it has a unique Machine (Computer) +Name. + +This can be done, but needs a few NT registry hacks and you need to be able to +speak UNICODE, which is of course no problem for a True Wizzard(tm) :) +Instructions on how to do this (including a small util for less capable +Wizzards) can be found at + + http://www.unixtools.org/~nneul/sw/nt/dhcp-netbios-hostname.html + + +All remaining TCP/IP networking parameters can be assigned via DHCP. These include: + +a) IP Address, +b) Netmask, +c) Gateway (Router) Address, +d) DNS Domain Name, +e) DNS Server addresses, +f) WINS (NBNS) Server addresses, +g) IP Forwarding, +h) Timezone offset, +i) Node Type, +j) NetBIOS Scope + +Other assignments can be made from a DHCP server too, but the above cover the +major needs. + +Note: IF ever an entry has has been made to the NetBIOS Scope field of the +TCP/IP configuration panel on an MS Windows machine, and it has then been +committed, then that setting may become persistent. In such a c ase it is better +to configure the DHCP server with a NetBIOS Scope consisting of an empty string +(ie: A NULL scope). + + +DHCP Server Installation: +========================= +It is assumed that you will have obtained a copy of the GPL'd ISC DHCP server +source files from ftp://ftp.isc.org/isc/dhcp, it is also assumed that you have +compiled the sources and have installed the binary files. + +The following simply serves to provide sample configuration files to enable +dhcpd to operate. The sample files assume that your site is configured to use +private IP network address space using the Class B range of 172.16.1.0 - +172.16.1.255 and is using a netmask of 255.255.255.0 (ie:24 bits). It is +assumed that your router to the outside world is at 172.16.1.254 and that your +Internet Domain Name is bestnet.com.au. The IP Address range 172.16.1.100 to +172.16.1.240 has been set aside as your dynamically allocated range. In +addition, bestnet.com.au have two print servers that need to obtain settings +via BOOTP. The machine linux.bestnet.com.au has IP address 172.16.1.1 and is +you primary Samba server with WINS support enabled by adding the parameter to +the /etc/smb.conf file: [globals] wins support = yes. The dhcp lease time will +be set to 20 hours. + +Configuration Files: +==================== +Before dhcpd will run you need to install a file that speifies the +configuration settings, and another that holds the database of issued IP +addresses. On many systems these are stored in the /etc directory on the Unix +system. + +Example /etc/dhcpd.conf: +======================== +server-identifier linux.bestnet.com.au; + +subnet 172.16.1.0 netmask 255.255.255.0 { + range 172.16.1.100 172.16.1.240; + default-lease-time 72000; + max-lease-time 144000; + option subnet-mask 255.255.255.0; + option broadcast-address 172.16.1.255; + option routers 172.16.1.254; + option domain-name-servers 172.16.1.1, 172.16.1.2; + option domain-name "bestnet.com.au"; + option time-offset 39600; + option ip-forwarding off; + option netbios-name-servers 172.16.0.1, 172.16.0.1; + option netbios-dd-server 172.16.0.1; + option netbios-node-type 8; + option netbios-scope ""; +} + +; Note: The above netbios-scope is purposely an empty (NULL) string. + +group { + next-server 172.16.1.10; + option subnet-mask 255.255.255.0; + option domain-name "bestnet.com.au"; + option domain-name-servers 172.16.1.1, 172.16.0.2; + option netbios-name-servers 172.16.0.1, 172.16.0.1; + option netbios-dd-server 172.16.0.1; + option netbios-node-type 8; + option netbios-scope "SomeCrazyScope"; + option routers 172.16.1.240; + option time-offset 39600; + host lexmark1 { + hardware ethernet 06:07:08:09:0a:0b; + fixed-address 172.16.1.245; + } + host epson4 { + hardware ethernet 01:02:03:04:05:06; + fixed-address 172.16.1.242; + } +} + + +Creating the /etc/dhcpd.leases file: +==================================== +At a Unix shell create an empty dhcpd.leases file in the /etc directory. +You can do this by typing: cp /dev/null /etc/dhcpd.leases + + +Setting up a route table for all-ones addresses: +================================================ +Quoting from the README file that comes with the ISC DHCPD Server: + + BROADCAST + +In order for dhcpd to work correctly with picky DHCP clients (e.g., +Windows 95), it must be able to send packets with an IP destination +address of 255.255.255.255. Unfortunately, Linux insists on changing +255.255.255.255 into the local subnet broadcast address (here, that's +192.5.5.223). This results in a DHCP protocol violation, and while +many DHCP clients don't notice the problem, some (e.g., all Microsoft +DHCP clients) do. Clients that have this problem will appear not to +see DHCPOFFER messages from the server. + +It is possible to work around this problem on some versions of Linux +by creating a host route from your network interface address to +255.255.255.255. The command you need to use to do this on Linux +varies from version to version. The easiest version is: + + route add -host 255.255.255.255 dev eth0 + +On some older Linux systems, you will get an error if you try to do +this. On those systems, try adding the following entry to your +/etc/hosts file: + +255.255.255.255 all-ones + +Then, try: + + route add -host all-ones dev eth0 + + +For more information please refer to the ISC DHCPD Server documentation. diff --git a/docs/textdocs/Faxing.txt b/docs/textdocs/Faxing.txt new file mode 100644 index 0000000000..0703d75cc3 --- /dev/null +++ b/docs/textdocs/Faxing.txt @@ -0,0 +1,220 @@ +Contributor: Gerhard Zuber <zuber@berlin.snafu.de> +Date: August 5th 1997. +Status: Current + +Subject: F A X I N G with S A M B A +========================================================================== + +This text describes how to turn your SAMBA-server into a fax-server +for any environment, especially for Windows. + Author: Gerhard Zuber <zuber@berlin.snafu.de> + Version: 1.4 + Date: 04. Aug. 1997 + +Requirements: + UNIX box (Linux preferred) with SAMBA and a faxmodem + ghostscript package + mgetty+sendfax package + pbm package (portable bitmap tools) + +FTP sites: + sunsite.unc.edu:/pub/Linux/system/Serial/mgetty+sendfax* + tsx-11.mit.edu:/pub/linux/sources/sbin/mgetty+sendfax + ftp.leo.org:/pub/comp/networking/communication/modem/mgetty/mgetty1.1.6-May05.tar.gz + + pbm10dec91.tgz + ftp.leo.org:/pub/comp/networking/communication/modem/mgetty/pbm10dec91.tgz + sunsite.unc.edu: ..../apps/graphics/convert/pbmplus-10dec91-bin.tar.gz + ftp.gwdg.de/pub/linux/grafik/pbmplus.src.tar.Z (this is 10dec91 source) + or ??? pbm10dec91.tgz pbmplus10dec91.tgz + + +making mgetty+sendfax running: +============================== + + go to source tree: /usr/src/mgetty+sendfax + cp policy.h-dist policy.h + + change your settings: valid tty ports, modem initstring, Station-Id + +#define MODEM_INIT_STRING "AT &F S0=0 &D3 &K3 &C1\\\\N2" + +#define FAX_STATION_ID "49 30 12345678" + +#define FAX_MODEM_TTYS "ttyS1:ttyS2:ttyS3" + + Modem initstring is for rockwell based modems + if you want to use mgetty+sendfax as PPP-dialin-server, + define AUTO_PPP in Makefile: + +CFLAGS=-O2 -Wall -pipe -DAUTO_PPP + + compile it and install the package. + edit your /etc/inittab and let mgetty running on your preferred + ports: + +s3:45:respawn:/usr/local/sbin/mgetty ttyS2 vt100 + + now issue a + kill -HUP 1 + and enjoy with the lightning LEDs on your modem + your now are ready to receive faxes ! + + + if you want a PPP dialin-server, edit + /usr/local/etc/mgetty+sendfax/login.config + +/AutoPPP/ - ppp /usr/sbin/pppd auth debug passive modem + + + Note: this package automatically decides between a fax call and + a modem call. In case of modem call you get a login prompt ! + +Tools for printing faxes: +========================= + + your incomed faxes are in: + /var/spool/fax/incoming + + print it with: + + for i in * + do + g3cat $i | g3tolj | lpr -P hp + done + + in case of low resolution use instead: + + g3cat $i | g3tolj -aspect 2 | lpr -P hp + + + g3cat is in the tools-section, g3tolj is in the contrib-section + for printing to HP lasers. + + If you want to produce files for displaying and printing with Windows, use + some tools from the pbm-package like follow + + g3cat $i | g3topbm - | ppmtopcx - >$i.pcx + + and view it with your favourite Windows tool (maybe paintbrush) + + +Now making the fax-server: +=========================== + + fetch the file + mgetty+sendfax/frontends/winword/faxfilter + + and place it in + + /usr/local/etc/mgetty+sendfax/ + + prepare your faxspool file as mentioned in this file + edit fax/faxspool.in and reinstall or change the final + /usr/local/bin/faxspool too. + + if [ "$user" = "root" -o "$user" = "fax" -o \ + "$user" = "lp" -o "$user" = "daemon" -o "$user" = "bin" ] + + find the first line and change the second. + + make sure you have pbmtext (from the pbm-package). This is + needed for creating the small header line on each page. + Notes on pbmplus: + Some peoples had problems with precompiled binaries (especially + at linux) with a shared lib libgr.so.x.x. The better way is + to fetch the source and compile it. One needs only pbmtext for + generating the small line on top of each page /faxheader). Install + only the individual programs you need. If you install the full + package then install pbmplus first and then mgetty+sendfax, because + this package has some changed programs by itself (but not pbmtext). + + make sure your ghostscript is functional. You need fonts ! + I prefer these from the OS/2 disks + + prepare your faxheader + /usr/local/etc/mgetty+sendfax/faxheader + + edit your /etc/printcap file: + +# FAX +lp3|fax:\ + :lp=/dev/null:\ + :sd=/usr/spool/lp3:\ + :if=/usr/local/etc/mgetty+sendfax/faxfilter:sh:sf:mx#0:\ + :lf=/usr/spool/lp3/fax-log: + + + + + edit your /usr/local/samba/lib/smb.conf + + so you have a smb based printer named "fax" + + +The final step: +=============== + + Now you have a printer called "fax" which can be used via + TCP/IP-printing (lpd-system) or via SAMBA (windows printing). + + On every system you are able to produce postscript-files you + are ready to fax. + + On Windows 3.1 95 and NT: + + Install a printer wich produces postscript output, + e.g. apple laserwriter + + connect the "fax" to your printer + + + Now write your first fax. Use your favourite wordprocessor, + write, winword, notepad or whatever you want, and start + with the headerpage. + + Usually each fax has a header page. It carries your name, + your address, your phone/fax-number. + + It carries also the recipient, his address and his *** fax + number ***. Now here is the trick: + + Use the text: + Fax-Nr: 123456789 + as the recipients fax-number. Make sure this text does not + occur in regular text ! Make sure this text is not broken + by formatting information, e.g. format it as a single entity. + (Windows Write and Win95 Wordpad are functional, maybe newer + versions of Winword are breaking formatting information). + + The trick is that postscript output is human readable and + the faxfilter program scans the text for this pattern and + uses the found number as the fax-destination-number. + + Now print your fax through the fax-printer and it will be + queued for later transmission. Use faxrunq for sending the + queue out. + + Notes of SAMBA smb.conf: + Simply use fall through from the samba printer to the unix + printer. Sample: + + + printcap name = /etc/printcap + print command = /usr/bin/lpr -r -P %p %s + lpq command = /usr/bin/lpq -P %p + lprm command = /usr/bin/lprm -P %p %j + + +[fax] + comment = FAX (mgetty+sendfax) + path = /tmp + printable = yes + public = yes + writable = no + create mode = 0700 + browseable = yes + guest ok = no + + + diff --git a/docs/textdocs/GOTCHAS.txt b/docs/textdocs/GOTCHAS.txt new file mode 100644 index 0000000000..bc5c6dae85 --- /dev/null +++ b/docs/textdocs/GOTCHAS.txt @@ -0,0 +1,68 @@ +This file lists Gotchas to watch out for: +========================================================================= +Item Number: 1.0 +Description: Problem Detecting Interfaces +Symptom: Workstations do NOT see Samba server in Browse List +OS: RedHat - Rembrandt Beta 2 +Platform: Intel +Date: August 16, 1996 +Submitted By: John H Terpstra +Details: + By default RedHat Rembrandt-II during installation adds an + entry to /etc/hosts as follows:- + 127.0.0.1 loopback "hostname"."domainname" + + This causes Samba to loop back onto the loopback interface. + The result is that Samba fails to communicate correctly with + the world and therefor may fail to correctly negotiate who + is the master browse list holder and who is the master browser. + +Corrective Action: Delete the entry after the word loopback + in the line starting 127.0.0.1 +========================================================================= +Item Number: 2.0 +Description: Problems with MS Windows NT Server network logon service +Symptom: Loss of Domain Logon Services and failed Windows NT / 95 + logon attempts. +OS: All Unix systems with Windows NT Domain Control environments. +Platform: All +Date: February 1, 1997 +Submitted By: John H Terpstra +Details: + Samba is configured for Domain logon control in a network + where a Windows NT Domain Primary Controller is running. + + Case 1: + The Windows NT Server is shut down, then restarted. Then + the Samba server is reconfigured so that it NO LONGER offers + Domain logon services. Windows NT and 95 workstations can no + longer log onto the domain. Ouch!!! + + Case 2: + The Windows NT Server which is running the Network logon + Service is shut down and restarted while Samba is a domain + controller offering the Domain LogOn service. Windows NT + Workstation and Server can no longer log onto the network. + + Cause: + Windows NT checks at start up to see if any domain logon + controllers are already running within the domain. It finds + Samba claiming to offer the service and therefore does NOT + start its Network Logon Service. + + Windows NT needs the Windows NT network logon service to gain + from its Domain controller's SAM database the security + identifier for the user loging on. + +Work-around: Stop the Samba nmbd and smbd processes, then on the Windows + NT Primary Domain Controller start the Network Logon Service. + Now restart the Samba nmbd and smbd services. + + Better still: DO NOT CONFIGURE SAMBA AS THE NETWORK LOGON + SERVER, DO NOT SET SAMBA TO BE THE DOMAIN MASTER, DO NOT + SET SAMBA TO OS LEVEL GREATER THAN 0. + + ie: Let Windows NT Server be the Domain Logon server, the + domain master browser and do NOT interfere with any aspect + of Microsoft Windows NT Domain Control. +========================================================================= diff --git a/docs/textdocs/HINTS.txt b/docs/textdocs/HINTS.txt new file mode 100644 index 0000000000..877640108c --- /dev/null +++ b/docs/textdocs/HINTS.txt @@ -0,0 +1,212 @@ +Contributor: Many +Updated: Not for a long time! + +Subject: A collection of hints +Status: May be useful information but NOT current +=============================================================================== + +Here are some random hints that you may find useful. These really +should be incorporated in the main docs someday. + + +---------------------- +HINT: Always test your smb.conf with testparm before using it + +If your smb.conf file is invalid then samba will fail to load. Run +testparm over it before you install it just to make sure there aren't +any basic syntax or logical errors. + + +---------------------- +HINT: Try printing with smbclient first + +If you have problems printing, test with smbclient first. Just connect using +"smbclient '\\server\printer' -P" and use the "print" command. + +Once this works, you know that Samba is setup correctly for printing, +and you should be able to get it to work from your PCs. + +This particularly helps in getting the "print command" right. + + +---------------------- +HINT: Mount cdroms with conv=binary + +Some OSes (notably Linux) default to auto detection of file type on +cdroms and do cr/lf translation. This is a very bad idea when use with +Samba. It causes all sorts of stuff ups. + +To overcome this problem use conv=binary when mounting the cdrom +before exporting it with Samba. + + +---------------------- +HINT: Convert between unix and dos text formats + +Jim barry has written an excellent drag-and-drop cr/lf converter for +windows. Just drag your file onto the icon and it converts the file. + +Get it from +ftp://samba.org/pub/samba/contributed/fixcrlf.zip + +The utilities unix2dos and dos2unix(in the mtools package) should do +the job under unix. + +---------------------- +HINT: Use the "username map" option + +If the usernames used on your PCs don't match those used on the unix +server then you will find the "username map" option useful. + +----------------------- +HINT: Use "security = user" in [global] + +If you have the same usernames on the unix box and the PCs or have +mapped them with the "username map" option then choose "security = +user" in the [global] section of smb.conf. + +This will mean your password is checked only when you first connect, +and subsequent connections to printers, disks etc will go more +smoothly and much faster. + +The main problem with "security = user" if you use WfWg is that you +will ONLY be able to connect as the username that you log into WfWg +with. This is because WfWg silently ignores the password field in the +connect drive dialog box if the server is in user security mode. + +------------------------ +HINT: Make your printers not "guest ok" + +If your printers are not "guest ok" and you are using "security = +user" and have matching unix and PC usernames then you will attach to +the printer without trouble as your own username. This will mean you +will be able to delete print jobs (in 1.8.06 and above) and printer +accounting will be possible. + + +----------------------- +HINT: Use a sensible "guest" account + +Even if all your services are not available to "guest" you will need a +guest account. This is because the browsing is done as guest. In many +cases setting "guest account = ftp" will do the trick. Using the +default guest account or "guest account = nobody" will give problems on +many unixes. If in doubt create another account with minimal +privilages and use it instead. Your users don't need to know the +password of the guest account. + + +----------------------- +HINT: Use the latest TCP/IP stack from microsoft if you use Windows +for workgroups. + +The early TCP/IP stacks had lots of bugs. + +Microsoft has released an incremental upgrade to their TCP/IP 32-Bit +VxD drivers. The latest release can be found on their ftp site at +ftp.microsoft.com, located in /peropsys/windows/public/tcpip/wfwt32.exe. +There is an update.txt file there that describes the problems that were +fixed. New files include WINSOCK.DLL, TELNET.EXE, WSOCK.386, VNBT.386, +WSTCP.386, TRACERT.EXE, NETSTAT.EXE, and NBTSTAT.EXE. + + +----------------------- +HINT: nmbd can act as a "WINS" server + +By default SMB clients use broadcasts to find shares. Recent clients +(such as WfWg) can use a "wins" server instead, whcih reduces your +broadcast traffic and allows you to find names across routers. + +Just point your WfWg, Win95 and NT clients at the Samba box in the WINS option. + +Note: nmbd does not support all WINS operations. Anyone out there have +a spec they could send me? + +----------------------- +HINT: you may need to delete your .pwl files when you change password. + +WfWg does a lousy job with passwords. I find that if I change my +password on either the unix box or the PC the safest thing to do is to +delete the .pwl files in the windows directory. The PC will complain about not finding the files, but will soon get over it, allowing you to enter the new password. + +If you don't do this you may find that WfWg remembers and uses the old +password, even if you told it a new one. + +Often WfWg will totally ignore a password you give it in a dialog box. + +---------------------- +HINT: Using MS Access + +Here are some notes on running MS-Access on a Samba drive from Stefan +Kjellberg <stefank@esi.com.au> + +1. Opening a database in 'exclusive' mode does NOT work. Samba ignores + r/w/share modes on file open. + +2. Make sure that you open the database as 'shared' and to 'lock modified + records' + +3. Of course locking must be enabled for the particular share (smb.conf) + + +--------------------- +HINT: password cacheing in WfWg + +Here is a hint from michael@ecel.uwa.edu.au (Michael Simmons): + +In case people where not aware. There is a program call admincfg.exe +on the last disk (disk 8) of the WFW 3.11 disk set. To install it +type EXPAND A:\ADMINCFG.EX_ C:\WINDOWS\ADMINCFG.EXE Then add an icon +for it via the "Progam Manager" "New" Menu. This program allows you +to control how WFW handles passwords. ie disable Password Caching etc +for use with "security = user" + + +-------------------- +HINT: file descriptor limits + +If you have problems with the limits on the number of open files you +can edit local.h to fix it. + +-------------------- +HINT: HPUX initgroups() problem + +here is a hint from Frank Wales [frank@arcglade.demon.co.uk]: + +HP's implementation of supplementary groups is, er, non-standard (for +hysterical reasons). There are two group files, /etc/group and +/etc/logingroup; the system maps UIDs to numbers using the former, but +initgroups() reads the latter. Most system admins who know the ropes +symlink /etc/group to /etc/logingroup (hard link doesn't work for reasons +too stupid to go into here). initgroups() will complain if one of the +groups you're in in /etc/logingroup has what it considers to be an invalid +ID, which means outside the range [0..UID_MAX], where UID_MAX is (I think) +60000 currently on HP-UX. This precludes -2 and 65534, the usual 'nobody' +GIDs. + +Perhaps you could suggest to users that, if they encounter this problem, +they make sure that the programs that are failing to initgroups() be +run as users not in any groups with GIDs outside the allowed range. + +This is documented in the HP manual pages under setgroups(2) and passwd(4). + + +--------------------- +HINT: Patch your SCO system + +If you run SCO Unix then you may need to get important TCP/IP patches +for Samba to work correctly. Try + +Paul_Davis@mindlink.bc.ca writes: + + I was having problems with Accpac using 1.9.02 on SCO Unix. One + posting function reported corrupted data. After installing uod385a, + the problem went away (a restore from backup and then another + run-thru). + + It appears that the uod385a update for SCO may be fairly important for + a lot of different DOS and Windows software under Samba. + + uod385a can be found at ftp.sco.com /SLS/uod385a.Z and uod385a.ltr.Z. + + diff --git a/docs/textdocs/README.DCEDFS b/docs/textdocs/README.DCEDFS new file mode 100644 index 0000000000..da9bb2197d --- /dev/null +++ b/docs/textdocs/README.DCEDFS @@ -0,0 +1,78 @@ +Contributor: Jim Doyle <doyle@oec.com> +Date: 06-02-95 +Status: Current but needs updating + +Subject: Basic DCE/DFS Support for SAMBA 1.9.13 +============================================================================= + +Functionality: +-------------- + + Per-instance authentication for DCE/DFS. + +Missing Functionality in this Implementation: +--------------------------------------------- + + * No automatic refresh of credentials + + To do so would not be that hard.. One could simply + stash the clear-text key in memory, spawn a key management + thread to wake up right before credentials expire and + refresh the login context. + + * No UNIX Signals support (SIGCLD, SIGPIPE, SIGHUP, SIGBUS, SIGSEGV) + + + There is no support for signal processing in Samba daemons + that need to authenticate with DCE. The explanation for this + is that the smbd is linked against thread-safe libraries in + order to be able to use DCE authentication mechanisms. + Because smbd uses signal() and fork(), it represents the + worst case scenario for DCE portability. In order + to properly support signals in a forked server environment, + some rework of smbd is needed in order to properly + construct, shutdown and reconstruct asynchronous signal + handling threads and synchronous signal traps across the + parent and child. I have not had contiguous time to work + on it, I expect it to be a weeks worth of work to cleanly + integrate thread-safe signal handing into the code and + test it. Until I can get to this task, I will leave it up + to someone adventurous enough to engineer it and negotiate + with Andrew to integrate the changes into the mainline branch. + + The lack of full signal support means that you cannot + rely upon SIGHUP-ing the parent daemon to refresh + the configuration data. Likewise, you cannot take advantage + of the builtin SIGBUS/SIGSEGV traps to diagnose failures. + You will have to halt Samba in order to make changes + and then have them take effect. + + The SMBD server as it stands is suitable to use if you + already have experience with configuring and running + SAMBA. + +Tested Platforms: +----------------- + + HP-UX 9.05 / HP-UX DCE 1.2.1 + AIX 3.2.5 / AIX DCE/6000 1.3 + DEC OSF-1 3.0 / DEC DCE 1.3 + +Building: +--------- + + - Uncomment the the appropriate block in the Makefile + for the platform you wish to build on. + + - Samples of Samba server configuration files for our + DFS environment are included in samples.dcedfs/ + + + +Bugs, Suggestions, etc.. +-------------------------- + + Please post them to the mailing list. + That way I will see them and they will become part of + the archives so others can share the knowledge. + diff --git a/docs/textdocs/Recent-FAQs.txt b/docs/textdocs/Recent-FAQs.txt new file mode 100644 index 0000000000..feed127827 --- /dev/null +++ b/docs/textdocs/Recent-FAQs.txt @@ -0,0 +1,286 @@ +Contributor: Samba-bugs@samba.org +Date: July 5, 1998 +Status: Current + +============================================================================= +Subject: Recent FAQ answers to common questions / problems +============================================================================= +Contents: NetWkstaUserLogon + Not listening for calling name + System Error 1240 + Trapdoor UID + User Access Control + Using NT to Browse Samba Shares + setup.exe and 16 bit programs + smbclient -N + +NetWkstaUserLogon +================= +FAQ answer about the new password server code: + +In 1.9.18 you can disable the NetWkstaUserLogon call at compile time +in local.h and from 1.9.18p3 you can now disable it from an option in +your smb.conf. + +The password server behaviour changed because we discovered that bugs +in some NT servers allowed anyone to login with no password if they +chose an account name that did not exist on the password server. The +NT password server was saying "yes, it's OK to login" even when the +account didn't exist at all! Adding the NetWkstaUserLogon call fixed +the problem, and follows the "recommended" method that MS have +recently documented for pass through authentication. + +The problem now is that some NT servers (in particular NT +workstation?) don't support the NetWkstaUserLogon call. The call also +doesn't work for accounts in trust relationships. + +The eventual solution for this will be to replace the password server +code in Samba with NT domain code as that is developed. For now you +have the choice of compiling Samba either with or without the +NetWkstaUserLogon call in the password server code. + +In 1.9.18p3 the following was added (copied from the 1.9.18p3 release +notes): + +In the [global] section of smb.conf : + +networkstation user login + +This code (submitted by Rob Nielsen) allows the code many people +were having problems with that queries an NT password server to +be turned off at runtime rather than compile time. Please see the +documentation in the smb.conf manual page for details. This is a +security option - it must only be turned off after checks have been +made to ensure that your NT password server does not suffer from the +bug this code was meant to protect against ! + +In 1.9.18 you can enable/disable this call in local.h. In 1.9.17p5 +you could apply the following patch. Applying this patch will make +the password server code behave like the code in earlier versions +of Samba. If you do this then please ensure that you test to see +that users are prevented from logging in if they give a bogus +username/password. You may have a NT server that is affected by the +bug that this code is designed to avoid. + + +--- password.c 1997/10/21 10:09:28 1.25.2.4 ++++ password.c 1997/12/31 06:43:06 +@@ -1619,6 +1619,7 @@ + } + + ++#if 0 + if (!cli_NetWkstaUserLogon(&cli,user,local_machine)) { + DEBUG(1,("password server %s failed NetWkstaUserLogon\n", cli.desthost)); + cli_tdis(&cli); +@@ -1638,6 +1639,7 @@ + cli_tdis(&cli); + return False; + } ++#endif + + DEBUG(3,("password server %s accepted the password\n", cli.desthost)); +=============================================================================== + +Not listening for calling name +============================== + +> Session request failed (131,129) with myname=HOBBES destname=CALVIN +> Not listening for calling name + +If you get this when talking to a Samba box then it means that your +global "hosts allow" or "hosts deny" settings are causing the Samba +server to refuse the connection. + +Look carefully at your "hosts allow" and "hosts deny" lines in the +global section of smb.conf. + +It can also be a problem with reverse DNS lookups not functioning +correctly, leading to the remote host identity not being able to +be confirmed, but that is less likely. +=============================================================================== + +System Error 1240 +================= +System error 1240 means that the client is refusing to talk +to a non-encrypting server. Microsoft changed WinNT in service +pack 3 to refuse to connect to servers that do not support +SMB password encryption. + +There are two main solutions: + +1) enable SMB password encryption in Samba. See ENCRYPTION.txt in the +Samba docs + +2) disable this new behaviour in NT. See WinNT.txt in the +Samba docs +=============================================================================== + +Trapdoor UID +============ +> Log message "you appear to have a trapdoor uid system" + +This can have several causes. It might be because you are using a uid +or gid of 65535 or -1. This is a VERY bad idea, and is a big security +hole. Check carefully in your /etc/passwd file and make sure that no +user has uid 65535 or -1. Especially check the "nobody" user, as many +broken systems are shipped with nobody setup with a uid of 65535. + +It might also mean that your OS has a trapdoor uid/gid system :-) + +This means that once a process changes effective uid from root to +another user it can't go back to root. Unfortunately Samba relies on +being able to change effective uid from root to non-root and back +again to implement its security policy. If your OS has a trapdoor uid +system this won't work, and several things in Samba may break. Less +things will break if you use user or server level security instead of +the default share level security, but you may still strike +problems. + +The problems don't give rise to any security holes, so don't panic, +but it does mean some of Samba's capabilities will be unavailable. +In particular you will not be able to connect to the Samba server as +two different uids at once. This may happen if you try to print as a +"guest" while accessing a share as a normal user. It may also affect +your ability to list the available shares as this is normally done as +the guest user. + +Complain to your OS vendor and ask them to fix their system. + +Note: the reason why 65535 is a VERY bad choice of uid and gid is that +it casts to -1 as a uid, and the setreuid() system call ignores (with +no error) uid changes to -1. This means any daemon attempting to run +as uid 65535 will actually run as root. This is not good! +=============================================================================== + +User Access Control +=================== +> In windows when i set up a share in "user mode" i get the message: +> "You cannot view the list of users at this time. Please try again later." +> +> I know you have lists of users for access and aliasing purposes, but i +> have read nothing to support the idea that these lists control the Domain +> Users List... + +Samba does NOT at this time support user mode access control for Window 9x +of for NT. This is a priority item and requires full implementation of the NT SMB +protocol calls. Samba-1.9.19 will go into alpha in about 2 months time and will +have a more full implementation of the NT SMB protocols to support Domain Client +interoperability. When we can see that this has been succesful we wil then implement +the NT SMB Server components. This will probably be released as Samba-2.0 + +Samba-1.9.18p5 is scheduled to go out within 14 days. This will close off the 1.9.18 +branch and then opens the way to progress 1.9.19. + +I hope this answers your concerns adequately. +=============================================================================== + +Using NT to Browse Samba Shares +=============================== +> WIN-NT workstations (nt4.0, service pack 3) +> samba with +> security = user +> encrypt passwords = yes +> guest account = guest +> +> start the explorer on a win-nt workstation and select network. I find +> my unix server running samba, but I can not see the list of shares +> unless I am a user, who is known in the smbpasswd of the unix machine. +> The guest account "guest" exists on my unix machine. For testing I even +> made him a regular user with a password. +> +> With my network monitor I can see, that the win-nt workstation uses the +> current login, to connect to IPC$ on the samba server +> (for example "administrator"), not the guest account. + +This is exactly how Windows NT works. You MUST have a valid account on the Windows +NT box you are trying to see the resource list on. If your currently logged in +account details do NOT match an account on the NT machine you are trying to access +then you will be presented with a logon box for that machine. When you enter the +name of an account on that machine / domain, together with a valid password then +the resource list is made available. If the account details are not correct then +no resource list is shown. + +Samba follows the behaviour of Windows NT exactly. + +Warning:Warning:Warning: +======================== +Samba can be compiled with the GUEST_SESSION_SETUP option at 0,1 or 2. +The default is 0. If this is set to 1 or 2 then Windows NT machines that DO NOT +have an account on the Samba server will see the resource list. The down side of this +is that legitimate users may then be refused access to their legitimate resources. +Setting this option creates serious security holes. DO NOT DO IT. Samba has the +value of this option set at 0 - NOT WITHOUT REASON!!!! + +******> Warning:Warning:Warning: ****> Do not tamper with this setting!!! +=============================================================================== + +setup.exe and 16 bit programs +============================= +Running 16 bit programs from Windows NT on a Samba mapped drive +--------------------------------------------------------------- + +The Windows NT redirector has a bug when running against a +Samba or Windows 95 mapped drive and attempting to run a +16 bit executable. + +The problem occurs when the pathname to a 16 bit executable +contains a non 8.3 filename complient directory component, +Windows NT will fail to load the program and complain it +cannot find the path to the program. + +It can be verified that this is a bug in Windows NT and +not Samba as the same problem can be reproduced exactly +when attempting to run the same program with the same +pathname from a Windows 95 server (ie. the problem still +exists even with no Samba server involved). + +Microsoft have been made aware of this problem, it is +unknown if they regard it as serious enough to provide +a fix for this. + +One of the reasons this problem is reported frequently +is that InstallShield setup.exe executables are frequently +written as 16 bit programs, and so hit this problem. + +As a workaround, you may create (on a Samba server at +least) a symbolic link with an 8.3 complient name to +the non 8.3 complient directory name, and then the 16 +bit program will run. Alternatively, use the 8.3 +complient mangled name to specify the path to run +the binary. + +This will be fixed when Samba adds the NT-specific +SMB calls (currently targeted for the next major +Samba release), as once the NT SMB calls are used +this problem no longer occurs (which is why the +problem doesn't occur when running against a drive +mapped to a Windows NT server). + +Regards, + + Jeremy Allison. + Samba Team. +=============================================================================== + +smbclient -N +============ +> When getting the list of shares available on a host using the command +> smbclient -N -L <server> +> the program always prompts for the password if the server is a Samba server. +> It also ignores the "-N" argument when querying some (but not all) of our +> NT servers. + +No, it does not ignore -N, it is just that your server rejected the +null password in the connection, so smbclient prompts for a password +to try again. + +To get the behaviour that you probably want use + smbclient -L host -U% + +this will set both the username and password to null, which is +an anonymous login for SMB. Using -N would only set the password +to null, and this is not accepted as an anonymous login for most +SMB servers. +=============================================================================== + diff --git a/docs/textdocs/UNIX_SECURITY.txt b/docs/textdocs/UNIX_SECURITY.txt new file mode 100644 index 0000000000..38705f018a --- /dev/null +++ b/docs/textdocs/UNIX_SECURITY.txt @@ -0,0 +1,54 @@ +Contributor: John H Terpstra <jht@samba.org> +Date: July 5, 1998 +Status: Current + +Subject: SETTING UNIX FILE SYSTEM SECURITY +=============================================================================== +The following excerpt from a bug report demonstrates the need to +understand Unix file system security and to manage it correctly. + +Quote: +====== +> We are unable to keep individual users from mapping to any other user's +> home directory once they have supplied a valid password! They only need +> to enter their own password. I have not found *any* method that I can +> use to configure samba to enforce that only a user may map their own +> home directory. +> +> User xyzzy can map his home directory. Once mapped user xyzzy can also map +> *anyone* elses home directory! + +ANSWER: +======= +This is not a security flaw, it is by design. Samba allows +users to have *exactly* the same access to the UNIX filesystem +as they would if they were logged onto the UNIX box, except +that it only allows such views onto the file system as are +allowed by the defined shares. + +This means that if your UNIX home directories are set up +such that one user can happily cd into another users +directory and do an ls, the UNIX security solution is to +change the UNIX file permissions on the users home directories +such that the cd and ls would be denied. + +Samba tries very hard not to second guess the UNIX administrators +security policies, and trusts the UNIX admin to set +the policies and permissions he or she desires. + +Samba does allow the setup you require when you have set the +"only user = yes" option on the share, is that you have not set the +valid users list for the share. + +Note that only user works in conjunction with the users= list, +so to get the behavior you require, add the line : + +users = %S + +this is equivalent to: + +valid users = %S + +to the definition of the [homes] share, as recommended in +the smb.conf man page. + diff --git a/examples/VFS/README.OtherModules b/examples/VFS/README.OtherModules index 5693d2e3f4..02dced6158 100644 --- a/examples/VFS/README.OtherModules +++ b/examples/VFS/README.OtherModules @@ -8,8 +8,6 @@ should be implied due to its presence here. ------------------------------------------------------------ -URL: http://www.css.tayloru.edu/~elorimer/databasefs/index.php - Date: Sat, 28 Sep 2002 23:41:31 -0500 From: Eric Lorimer <elorimer@css.tayloru.edu> To: samba-technical@lists.samba.org @@ -39,13 +37,3 @@ Thanks for the great product and keep up the good work. - Eric Lorimer ------------------------------------------------------------ -URL: http://www.openantivirus.org/ - -"samba-vscan is a proof-of-concept module for Samba, which -uses the VFS (virtual file system) features of Samba 2.2.x/3.0 -alphaX. Of couse, Samba has to be compiled with VFS support. -samba-vscan supports various virus scanners and is maintained -by Rainer Link". - ------------------------------------------------------------- - diff --git a/examples/printing/smbprint.old b/examples/printing/smbprint.old deleted file mode 100755 index 5a00a2a8aa..0000000000 --- a/examples/printing/smbprint.old +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/sh - -# This script is an input filter for printcap printing on a unix machine. It -# uses the smbclient program to print the file to the specified smb-based -# server and service. -# For example you could have a printcap entry like this -# -# smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint -# -# which would create a unix printer called "smb" that will print via this -# script. You will need to create the spool directory /usr/spool/smb with -# appropriate permissions and ownerships for your system. - -# Set these to the server and service you wish to print to -# In this example I have a WfWg PC called "lapland" that has a printer -# exported called "printer" with no password. - -# -# Script further altered by hamiltom@ecnz.co.nz (Michael Hamilton) -# so that the server, service, and password can be read from -# a /usr/var/spool/lpd/PRINTNAME/.config file. -# -# Script further modified by Richard Sharpe to fix some things. -# Get rid of the -x on the first line, and add parameters -# -# -t now causes translate to be used when sending files -# -# In order for this to work the /etc/printcap entry must include an -# accounting file (af=...): -# -# cdcolour:\ -# :cm=CD IBM Colorjet on 6th:\ -# :sd=/var/spool/lpd/cdcolour:\ -# :af=/var/spool/lpd/cdcolour/acct:\ -# :if=/usr/local/etc/smbprint:\ -# :mx=0:\ -# :lp=/dev/null: -# -# The /usr/var/spool/lpd/PRINTNAME/.config file should contain: -# server=PC_SERVER -# service=PR_SHARENAME -# password="password" -# -# E.g. -# server=PAULS_PC -# service=CJET_371 -# password="" - -# -# Debugging log file, change to /dev/null if you like. -# -logfile=/tmp/smb-print.log -# logfile=/dev/null - - -# -# The last parameter to the filter is the accounting file name. -# Extract the directory name from the file name. -# Concat this with /.config to get the config file. -# -TRANS=0 -eval acct_file=\${$#} -spool_dir=`dirname $acct_file` -config_file=$spool_dir/.config - -# Should read the following variables set in the config file: -# server -# service -# password -eval `cat $config_file` - -while getopts t c; do - case $c in - t) - TRANS=1 - ;; - - '?') # Bad parameters, ignore it ... - ;; - esac -done -# -# Some debugging help, change the >> to > if you want to same space. -# -echo "server $server, service $service" >> $logfile - -( -# NOTE You may wish to add the line `echo translate' if you want automatic -# CR/LF translation when printing. - if [ $TRANS -eq 1 ]; then - echo translate - fi - echo "print -" - cat -) | /usr/local/samba/bin/smbclient "\\\\$server\\$service" $password -U $server -N -P >> $logfile diff --git a/source3/CodingSuggestions b/source3/CodingSuggestions new file mode 100644 index 0000000000..5e99bc54ca --- /dev/null +++ b/source3/CodingSuggestions @@ -0,0 +1,160 @@ +/** + +@page CodingSuggestions Coding suggestions + +So you want to add code to Samba ... + +One of the daunting tasks facing a programmer attempting to write code for +Samba is understanding the various coding conventions used by those most +active in the project. These conventions were mostly unwritten and helped +improve either the portability, stability or consistency of the code. This +document will attempt to document a few of the more important coding +practices used at this time on the Samba project. The coding practices are +expected to change slightly over time, and even to grow as more is learned +about obscure portability considerations. Two existing documents +samba/source/internals.doc and samba/source/architecture.doc provide +additional information. + +The loosely related question of coding style is very personal and this +document does not attempt to address that subject, except to say that I +have observed that eight character tabs seem to be preferred in Samba +source. If you are interested in the topic of coding style, two oft-quoted +documents are: + + http://lxr.linux.no/source/Documentation/CodingStyle + http://www.fsf.org/prep/standards_toc.html + +but note that coding style in Samba varies due to the many different +programmers who have contributed. + +The indent utility can be used to format C files in the general +samba coding style. The arguments you should give to indent are: +-bad -bap -br -ce -cdw -nbc -brs -bbb -nbc -npsl -ut -i8 + +Following are some considerations you should use when adding new code to +Samba. First and foremost remember that: + +Portability is a primary consideration in adding function, as is network +compatability with de facto, existing, real world CIFS/SMB implementations. +There are lots of platforms that Samba builds on so use caution when adding +a call to a library function that is not invoked in existing Samba code. +Also note that there are many quite different SMB/CIFS clients that Samba +tries to support, not all of which follow the SNIA CIFS Technical Reference +(or the earlier Microsoft reference documents or the X/Open book on the SMB +Standard) perfectly. + +Here are some other suggestions: + +1) use d_printf instead of printf for display text + reason: enable auto-substitution of translated language text + +2) use SAFE_FREE instead of free + reason: reduce traps due to null pointers + +3) don't use bzero use memset, or ZERO_STRUCT and ZERO_STRUCTP macros + reason: not POSIX + +4) don't use strcpy and strlen (use safe_* equivalents) + reason: to avoid traps due to buffer overruns + +5) don't use getopt_long, use popt functions instead + reason: portability + +6) explicitly add const qualifiers on parm passing in functions where parm + is input only (somewhat controversial but const can be #defined away) + +7) when passing a va_list as an arg, or assigning one to another + please use the VA_COPY() macro + reason: on some platforms, va_list is a struct that must be + initialized in each function...can SEGV if you don't. + +8) discourage use of threads + reason: portability (also see architecture.doc) + +9) don't explicitly include new header files in C files - new h files + should be included by adding them once to includes.h + reason: consistency + +10) don't explicitly extern functions (they are autogenerated by + "make proto" into proto.h) + reason: consistency + +11) use endian safe macros when unpacking SMBs (see byteorder.h and + internals.doc) + reason: not everyone uses Intel + +12) Note Unicode implications of charset handling (see internals.doc). See + pull_* and push_* and convert_string functions. + reason: Internationalization + +13) Don't assume English only + reason: See above + +14) Try to avoid using in/out parameters (functions that return data which + overwrites input parameters) + reason: Can cause stability problems + +15) Ensure copyright notices are correct, don't append Tridge's name to code + that he didn't write. If you did not write the code, make sure that it + can coexist with the rest of the Samba GPLed code. + +16) Consider usage of DATA_BLOBs for length specified byte-data. + reason: stability + +17) Take advantage of tdbs for database like function + reason: consistency + +18) Don't access the SAM_ACCOUNT structure directly, they should be accessed + via pdb_get...() and pdb_set...() functions. + reason: stability, consistency + +19) Don't check a password directly against the passdb, always use the + check_password() interface. + reason: long term pluggability + +20) Try to use asprintf rather than pstrings and fstrings where possible + +21) Use normal C comments / * instead of C++ comments // like + this. Although the C++ comment format is part of the C99 + standard, some older vendor C compilers do not accept it. + +22) Try to write documentation for API functions and structures + explaining the point of the code, the way it should be used, and + any special conditions or results. Mark these with a double-star + comment start / ** so that they can be picked up by Doxygen, as in + this file. + +23) Keep the scope narrow. This means making functions/variables + static whenever possible. We don't want our namespace + polluted. Each module should have a minimal number of externally + visible functions or variables. + +24) Use function pointers to keep knowledge about particular pieces of + code isolated in one place. We don't want a particular piece of + functionality to be spread out across lots of places - that makes + for fragile, hand to maintain code. Instead, design an interface + and use tables containing function pointers to implement specific + functionality. This is particularly important for command + interpreters. + +25) Think carefully about what it will be like for someone else to add + to and maintain your code. If it would be hard for someone else to + maintain then do it another way. + +26) Always keep the declaration of a function on one line. The autoprototyper + doesn't catch declarations spread over multiple lines. + Use: +static char foo(int bar) + and not: +static char +foo(int bar) + +The suggestions above are simply that, suggestions, but the information may +help in reducing the routine rework done on new code. The preceeding list +is expected to change routinely as new support routines and macros are +added. + +Written by Steve French, with contributions from Simo Sorce, Andrew +Bartlett, Tim Potter, Martin Pool and Jelmer Vernooij. + +**/ diff --git a/source3/Makefile.in b/source3/Makefile.in index 11cec4a783..32c2e3f70f 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -23,7 +23,6 @@ PYTHON=@PYTHON@ TERMLDFLAGS=@TERMLDFLAGS@ TERMLIBS=@TERMLIBS@ PRINTLIBS=@PRINTLIBS@ -AUTHLIBS=@AUTHLIBS@ LINK=$(CC) $(FLAGS) $(LDFLAGS) @@ -178,8 +177,7 @@ LIBMSRPC_OBJ = rpc_client/cli_lsarpc.o rpc_client/cli_samr.o \ rpc_client/cli_netlogon.o rpc_client/cli_srvsvc.o \ rpc_client/cli_wkssvc.o rpc_client/cli_dfs.o \ rpc_client/cli_reg.o rpc_client/cli_pipe.o \ - rpc_client/cli_spoolss.o rpc_client/cli_spoolss_notify.o \ - rpc_client/cli_ds.o + rpc_client/cli_spoolss.o rpc_client/cli_spoolss_notify.o LIBMSRPC_SERVER_OBJ = libsmb/trust_passwd.o @@ -206,7 +204,7 @@ RPC_PARSE_OBJ1 = rpc_parse/parse_prs.o rpc_parse/parse_sec.o \ RPC_PARSE_OBJ = rpc_parse/parse_lsa.o rpc_parse/parse_net.o \ rpc_parse/parse_reg.o rpc_parse/parse_rpc.o \ rpc_parse/parse_samr.o rpc_parse/parse_srv.o \ - rpc_parse/parse_wks.o rpc_parse/parse_ds.o \ + rpc_parse/parse_wks.o \ rpc_parse/parse_spoolss.o rpc_parse/parse_dfs.o \ $(REGOBJS_OBJ) @@ -223,10 +221,10 @@ PASSDB_OBJ = $(PASSDB_GET_SET_OBJ) passdb/passdb.o passdb/pdb_interface.o \ passdb/pdb_unix.o passdb/util_sam_sid.o \ passdb/pdb_compat.o passdb/pdb_nisplus.o -SAM_STATIC_MODULES = sam/sam_plugin.o sam/sam_skel.o sam/sam_ads.o +SAM_STATIC_MODULES = sam/sam_plugin.o SAM_OBJ = sam/account.o sam/get_set_account.o sam/get_set_group.o \ - sam/get_set_domain.o sam/interface.o $(SAM_STATIC_MODULES) + sam/get_set_domain.o sam/interface.o sam/api.o $(SAM_STATIC_MODULES) SAMTEST_OBJ = torture/samtest.o torture/cmd_sam.o $(SAM_OBJ) $(LIB_OBJ) $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(READLINE_OBJ) lib/util_seaccess.o $(LIBADS_OBJ) $(PASSDB_OBJ) $(SECRETS_OBJ) $(GROUPDB_OBJ) @@ -353,7 +351,7 @@ RPCCLIENT_OBJ1 = rpcclient/rpcclient.o rpcclient/cmd_lsarpc.o \ rpcclient/cmd_samr.o rpcclient/cmd_spoolss.o \ rpcclient/cmd_netlogon.o rpcclient/cmd_srvsvc.o \ rpcclient/cmd_dfs.o rpcclient/cmd_reg.o \ - rpcclient/display_sec.o rpcclient/cmd_ds.o + rpcclient/display_sec.o RPCCLIENT_OBJ = $(RPCCLIENT_OBJ1) \ $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \ @@ -620,8 +618,7 @@ bin/.dummy: bin/smbd: $(SMBD_OBJ) bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(SMBD_OBJ) $(LDFLAGS) $(DYNEXP) $(PRINTLIBS) \ - $(AUTHLIBS) $(LIBS) + @$(CC) $(FLAGS) -o $@ $(SMBD_OBJ) $(LDFLAGS) $(DYNEXP) $(PRINTLIBS) $(LIBS) bin/nmbd: $(NMBD_OBJ) bin/.dummy @echo Linking $@ @@ -633,8 +630,7 @@ bin/wrepld: $(WREPL_OBJ) bin/.dummy bin/swat: $(SWAT_OBJ) bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(SWAT_OBJ) $(LDFLAGS) $(DYNEXP) $(PRINTLIBS) \ - $(AUTHLIBS) $(LIBS) + @$(CC) $(FLAGS) -o $@ $(SWAT_OBJ) $(LDFLAGS) $(DYNEXP) $(PRINTLIBS) $(LIBS) bin/rpcclient: $(RPCCLIENT_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ @@ -738,7 +734,7 @@ bin/nsstest: $(NSSTEST_OBJ) bin/.dummy bin/vfstest: $(VFSTEST_OBJ) bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(VFSTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(PRINTLIBS) $(AUTHLIBS) $(LIBS) @BUILD_POPT@ + @$(CC) $(FLAGS) -o $@ $(VFSTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(PRINTLIBS) $(LIBS) @BUILD_POPT@ bin/locktest2: $(LOCKTEST2_OBJ) bin/.dummy @echo Linking $@ @@ -808,7 +804,7 @@ nsswitch/libnss_winbind.so: $(WINBIND_NSS_PICOBJS) nsswitch/pam_winbind.so: $(PAM_WINBIND_OBJ) bin/.dummy @echo Linking $@ @$(SHLD) $(LDSHFLAGS) -o $@ $(PAM_WINBIND_OBJ) \ - @SONAMEFLAG@`basename $@` -lpam + @SONAMEFLAG@`basename $@` bin/wbinfo: $(WBINFO_OBJ) $(PARAM_OBJ) $(LIB_OBJ) \ $(UBIQX_OBJ) $(SECRETS_OBJ) @BUILD_POPT@ bin/.dummy diff --git a/source3/architecture.doc b/source3/architecture.doc new file mode 100644 index 0000000000..eb29792bea --- /dev/null +++ b/source3/architecture.doc @@ -0,0 +1,134 @@ +Samba Architecture +------------------ + +First preliminary version Dan Shearer Nov 97 +Quickly scrabbled together from odd bits of mail and memory. Please update. + +This document gives a general overview of how Samba works +internally. The Samba Team has tried to come up with a model which is +the best possible compromise between elegance, portability, security +and the constraints imposed by the very messy SMB and CIFS +protocol. + +It also tries to answer some of the frequently asked questions such as: + + * Is Samba secure when running on Unix? The xyz platform? + What about the root priveliges issue? + + * Pros and cons of multithreading in various parts of Samba + + * Why not have a separate process for name resolution, WINS, + and browsing? + + +Multithreading and Samba +------------------------ + +People sometimes tout threads as a uniformly good thing. They are very +nice in their place but are quite inappropriate for smbd. nmbd is +another matter, and multi-threading it would be very nice. + +The short version is that smbd is not multithreaded, and alternative +servers that take this approach under Unix (such as Syntax, at the +time of writing) suffer tremendous performance penalties and are less +robust. nmbd is not threaded either, but this is because it is not +possible to do it while keeping code consistent and portable across 35 +or more platforms. (This drawback also applies to threading smbd.) + +The longer versions is that there are very good reasons for not making +smbd multi-threaded. Multi-threading would actually make Samba much +slower, less scalable, less portable and much less robust. The fact +that we use a separate process for each connection is one of Samba's +biggest advantages. + +Threading smbd +-------------- + +A few problems that would arise from a threaded smbd are: + +0) It's not only to create threads instead of processes, but you + must care about all variables if they have to be thread specific + (currently they would be global). + +1) if one thread dies (eg. a seg fault) then all threads die. We can +immediately throw robustness out the window. + +2) many of the system calls we make are blocking. Non-blocking +equivalents of many calls are either not available or are awkward (and +slow) to use. So while we block in one thread all clients are +waiting. Imagine if one share is a slow NFS filesystem and the others +are fast, we will end up slowing all clients to the speed of NFS. + +3) you can't run as a different uid in different threads. This means +we would have to switch uid/gid on _every_ SMB packet. It would be +horrendously slow. + +4) the per process file descriptor limit would mean that we could only +support a limited number of clients. + +5) we couldn't use the system locking calls as the locking context of +fcntl() is a process, not a thread. + +Threading nmbd +-------------- + +This would be ideal, but gets sunk by portability requirements. + +Andrew tried to write a test threads library for nmbd that used only +ansi-C constructs (using setjmp and longjmp). Unfortunately some OSes +defeat this by restricting longjmp to calling addresses that are +shallower than the current address on the stack (apparently AIX does +this). This makes a truly portable threads library impossible. So to +support all our current platforms we would have to code nmbd both with +and without threads, and as the real aim of threads is to make the +code clearer we would not have gained anything. (it is a myth that +threads make things faster. threading is like recursion, it can make +things clear but the same thing can always be done faster by some +other method) + +Chris tried to spec out a general design that would abstract threading +vs separate processes (vs other methods?) and make them accessible +through some general API. This doesn't work because of the data +sharing requirements of the protocol (packets in the future depending +on packets now, etc.) At least, the code would work but would be very +clumsy, and besides the fork() type model would never work on Unix. (Is there an OS that it would work on, for nmbd?) + +A fork() is cheap, but not nearly cheap enough to do on every UDP +packet that arrives. Having a pool of processes is possible but is +nasty to program cleanly due to the enormous amount of shared data (in +complex structures) between the processes. We can't rely on each +platform having a shared memory system. + +nbmd Design +----------- + +Originally Andrew used recursion to simulate a multi-threaded +environment, which use the stack enormously and made for really +confusing debugging sessions. Luke Leighton rewrote it to use a +queuing system that keeps state information on each packet. The +first version used a single structure which was used by all the +pending states. As the initialisation of this structure was +done by adding arguments, as the functionality developed, it got +pretty messy. So, it was replaced with a higher-order function +and a pointer to a user-defined memory block. This suddenly +made things much simpler: large numbers of functions could be +made static, and modularised. This is the same principle as used +in NT's kernel, and achieves the same effect as threads, but in +a single process. + +Then Jeremy rewrote nmbd. The packet data in nmbd isn't what's on the +wire. It's a nice format that is very amenable to processing but still +keeps the idea of a distinct packet. See "struct packet_struct" in +nameserv.h. It has all the detail but none of the on-the-wire +mess. This makes it ideal for using in disk or memory-based databases +for browsing and WINS support. + +nmbd now consists of a series of modules. It... + + +Samba Design and Security +------------------------- + +Why Isn't nmbd Multiple Daemons? +-------------------------------- + diff --git a/source3/client/client.c b/source3/client/client.c index 31c047c1c5..f25ed1623b 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -94,10 +94,10 @@ static pstring fileselection = ""; extern file_info def_finfo; /* timing globals */ -SMB_BIG_UINT get_total_size = 0; -unsigned int get_total_time_ms = 0; -static SMB_BIG_UINT put_total_size = 0; -static unsigned int put_total_time_ms = 0; +int get_total_size = 0; +int get_total_time_ms = 0; +static int put_total_size = 0; +static int put_total_time_ms = 0; /* totals globals */ static double dir_total; diff --git a/source3/configure b/source3/configure index 77ab11a928..0ecbadc2a4 100755 --- a/source3/configure +++ b/source3/configure @@ -773,7 +773,6 @@ fi - # compile with optimization and without debugging by default CFLAGS="-O ${CFLAGS}" @@ -827,7 +826,7 @@ fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:831: checking for $ac_word" >&5 +echo "configure:830: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -857,7 +856,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:861: checking for $ac_word" >&5 +echo "configure:860: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -908,7 +907,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:912: checking for $ac_word" >&5 +echo "configure:911: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -940,7 +939,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:944: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:943: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -951,12 +950,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 955 "configure" +#line 954 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -982,12 +981,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:986: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:985: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:991: checking whether we are using GNU C" >&5 +echo "configure:990: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -996,7 +995,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1000: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:999: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1015,7 +1014,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1019: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1018: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1077,7 +1076,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:1081: checking for a BSD compatible install" >&5 +echo "configure:1080: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1134,7 +1133,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1138: checking for $ac_word" >&5 +echo "configure:1137: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1166,7 +1165,7 @@ done LD=ld echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 -echo "configure:1170: checking if the linker ($LD) is GNU ld" >&5 +echo "configure:1169: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1182,7 +1181,7 @@ echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6 echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 -echo "configure:1186: checking for POSIXized ISC" >&5 +echo "configure:1185: checking for POSIXized ISC" >&5 if test -d /etc/conf/kconfig.d && grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 then @@ -1205,10 +1204,10 @@ fi if test "x$CC" != xcc; then echo $ac_n "checking whether $CC and cc understand -c and -o together""... $ac_c" 1>&6 -echo "configure:1209: checking whether $CC and cc understand -c and -o together" >&5 +echo "configure:1208: checking whether $CC and cc understand -c and -o together" >&5 else echo $ac_n "checking whether cc understands -c and -o together""... $ac_c" 1>&6 -echo "configure:1212: checking whether cc understands -c and -o together" >&5 +echo "configure:1211: checking whether cc understands -c and -o together" >&5 fi set dummy $CC; ac_cc="`echo $2 | sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`" @@ -1220,16 +1219,16 @@ else # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='${CC-cc} -c conftest.c -o conftest.o 1>&5' -if { (eval echo configure:1224: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && - test -f conftest.o && { (eval echo configure:1225: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; +if { (eval echo configure:1223: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && + test -f conftest.o && { (eval echo configure:1224: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; then eval ac_cv_prog_cc_${ac_cc}_c_o=yes if test "x$CC" != xcc; then # Test first that cc exists at all. - if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1230: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1229: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then ac_try='cc -c conftest.c -o conftest.o 1>&5' - if { (eval echo configure:1232: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && - test -f conftest.o && { (eval echo configure:1233: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; + if { (eval echo configure:1231: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && + test -f conftest.o && { (eval echo configure:1232: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; then # cc works too. : @@ -1263,20 +1262,20 @@ fi echo $ac_n "checking that the C compiler understands volatile""... $ac_c" 1>&6 -echo "configure:1267: checking that the C compiler understands volatile" >&5 +echo "configure:1266: checking that the C compiler understands volatile" >&5 if eval "test \"`echo '$''{'samba_cv_volatile'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1273 "configure" +#line 1272 "configure" #include "confdefs.h" #include <sys/types.h> int main() { volatile int i = 0 ; return 0; } EOF -if { (eval echo configure:1280: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1279: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_volatile=yes else @@ -1325,7 +1324,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:1329: checking host system type" >&5 +echo "configure:1328: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -1346,7 +1345,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:1350: checking target system type" >&5 +echo "configure:1349: checking target system type" >&5 target_alias=$target case "$target_alias" in @@ -1364,7 +1363,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:1368: checking build system type" >&5 +echo "configure:1367: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -1398,7 +1397,7 @@ esac echo $ac_n "checking config.cache system type""... $ac_c" 1>&6 -echo "configure:1402: checking config.cache system type" >&5 +echo "configure:1401: checking config.cache system type" >&5 if { test x"${ac_cv_host_system_type+set}" = x"set" && test x"$ac_cv_host_system_type" != x"$host"; } || { test x"${ac_cv_build_system_type+set}" = x"set" && @@ -1426,7 +1425,7 @@ case "$host_os" in *hpux*) echo $ac_n "checking whether ${CC-cc} accepts -Ae""... $ac_c" 1>&6 -echo "configure:1430: checking whether ${CC-cc} accepts -Ae" >&5 +echo "configure:1429: checking whether ${CC-cc} accepts -Ae" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_Ae'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1587,14 +1586,14 @@ EOF *sysv4*) if test $host = mips-sni-sysv4 ; then echo $ac_n "checking for LFS support""... $ac_c" 1>&6 -echo "configure:1591: checking for LFS support" >&5 +echo "configure:1590: checking for LFS support" >&5 old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS" if test "$cross_compiling" = yes; then SINIX_LFS_SUPPORT=cross else cat > conftest.$ac_ext <<EOF -#line 1598 "configure" +#line 1597 "configure" #include "confdefs.h" #include <unistd.h> @@ -1606,7 +1605,7 @@ exit(1); #endif } EOF -if { (eval echo configure:1610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then SINIX_LFS_SUPPORT=yes else @@ -1637,14 +1636,14 @@ EOF # *linux*) echo $ac_n "checking for LFS support""... $ac_c" 1>&6 -echo "configure:1641: checking for LFS support" >&5 +echo "configure:1640: checking for LFS support" >&5 old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS" if test "$cross_compiling" = yes; then LINUX_LFS_SUPPORT=cross else cat > conftest.$ac_ext <<EOF -#line 1648 "configure" +#line 1647 "configure" #include "confdefs.h" #include <unistd.h> @@ -1682,7 +1681,7 @@ main() { } EOF -if { (eval echo configure:1686: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then LINUX_LFS_SUPPORT=yes else @@ -1715,14 +1714,14 @@ EOF *hurd*) echo $ac_n "checking for LFS support""... $ac_c" 1>&6 -echo "configure:1719: checking for LFS support" >&5 +echo "configure:1718: checking for LFS support" >&5 old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS" if test "$cross_compiling" = yes; then GLIBC_LFS_SUPPORT=cross else cat > conftest.$ac_ext <<EOF -#line 1726 "configure" +#line 1725 "configure" #include "confdefs.h" #include <unistd.h> @@ -1734,7 +1733,7 @@ exit(1); #endif } EOF -if { (eval echo configure:1738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then GLIBC_LFS_SUPPORT=yes else @@ -1764,21 +1763,21 @@ EOF esac echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:1768: checking for inline" >&5 +echo "configure:1767: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <<EOF -#line 1775 "configure" +#line 1774 "configure" #include "confdefs.h" int main() { } $ac_kw foo() { ; return 0; } EOF -if { (eval echo configure:1782: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1781: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -1804,7 +1803,7 @@ EOF esac echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1808: checking how to run the C preprocessor" >&5 +echo "configure:1807: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1819,13 +1818,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext <<EOF -#line 1823 "configure" +#line 1822 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1829: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1828: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1836,13 +1835,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 1840 "configure" +#line 1839 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1846: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1845: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1853,13 +1852,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext <<EOF -#line 1857 "configure" +#line 1856 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1863: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1862: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1884,12 +1883,12 @@ fi echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1888: checking for ANSI C header files" >&5 +echo "configure:1887: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1893 "configure" +#line 1892 "configure" #include "confdefs.h" #include <stdlib.h> #include <stdarg.h> @@ -1897,7 +1896,7 @@ else #include <float.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1901: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1900: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1914,7 +1913,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext <<EOF -#line 1918 "configure" +#line 1917 "configure" #include "confdefs.h" #include <string.h> EOF @@ -1932,7 +1931,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext <<EOF -#line 1936 "configure" +#line 1935 "configure" #include "confdefs.h" #include <stdlib.h> EOF @@ -1953,7 +1952,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext <<EOF -#line 1957 "configure" +#line 1956 "configure" #include "confdefs.h" #include <ctype.h> #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -1964,7 +1963,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:1968: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -1992,12 +1991,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 -echo "configure:1996: checking for $ac_hdr that defines DIR" >&5 +echo "configure:1995: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2001 "configure" +#line 2000 "configure" #include "confdefs.h" #include <sys/types.h> #include <$ac_hdr> @@ -2005,7 +2004,7 @@ int main() { DIR *dirp = 0; ; return 0; } EOF -if { (eval echo configure:2009: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2008: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else @@ -2030,7 +2029,7 @@ done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 -echo "configure:2034: checking for opendir in -ldir" >&5 +echo "configure:2033: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2038,7 +2037,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext <<EOF -#line 2042 "configure" +#line 2041 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -2049,7 +2048,7 @@ int main() { opendir() ; return 0; } EOF -if { (eval echo configure:2053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2052: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2071,7 +2070,7 @@ fi else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 -echo "configure:2075: checking for opendir in -lx" >&5 +echo "configure:2074: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2079,7 +2078,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext <<EOF -#line 2083 "configure" +#line 2082 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -2090,7 +2089,7 @@ int main() { opendir() ; return 0; } EOF -if { (eval echo configure:2094: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2093: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2113,12 +2112,12 @@ fi fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:2117: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:2116: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2122 "configure" +#line 2121 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/time.h> @@ -2127,7 +2126,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:2131: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -2148,12 +2147,12 @@ EOF fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:2152: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:2151: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2157 "configure" +#line 2156 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/wait.h> @@ -2169,7 +2168,7 @@ wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:2173: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2172: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -2193,17 +2192,17 @@ for ac_hdr in arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2197: checking for $ac_hdr" >&5 +echo "configure:2196: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2202 "configure" +#line 2201 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2207: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2206: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2233,17 +2232,17 @@ for ac_hdr in unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2237: checking for $ac_hdr" >&5 +echo "configure:2236: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2242 "configure" +#line 2241 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2247: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2246: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2273,17 +2272,17 @@ for ac_hdr in compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2277: checking for $ac_hdr" >&5 +echo "configure:2276: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2282 "configure" +#line 2281 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2287: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2286: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2313,17 +2312,17 @@ for ac_hdr in sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc. do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2317: checking for $ac_hdr" >&5 +echo "configure:2316: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2322 "configure" +#line 2321 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2327: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2326: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2353,17 +2352,17 @@ for ac_hdr in sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h std do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2357: checking for $ac_hdr" >&5 +echo "configure:2356: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2362 "configure" +#line 2361 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2367: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2366: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2393,17 +2392,17 @@ for ac_hdr in sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h term do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2397: checking for $ac_hdr" >&5 +echo "configure:2396: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2402 "configure" +#line 2401 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2407: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2406: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2433,17 +2432,17 @@ for ac_hdr in sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2437: checking for $ac_hdr" >&5 +echo "configure:2436: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2442 "configure" +#line 2441 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2447: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2446: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2473,17 +2472,17 @@ for ac_hdr in security/pam_modules.h security/_pam_macros.h ldap.h lber.h dlfcn. do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2477: checking for $ac_hdr" >&5 +echo "configure:2476: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2482 "configure" +#line 2481 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2487: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2486: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2513,17 +2512,17 @@ for ac_hdr in sys/syslog.h syslog.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2517: checking for $ac_hdr" >&5 +echo "configure:2516: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2522 "configure" +#line 2521 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2527: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2526: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2557,14 +2556,14 @@ done case "$host_os" in *hpux*) cat > conftest.$ac_ext <<EOF -#line 2561 "configure" +#line 2560 "configure" #include "confdefs.h" #include <shadow.h> int main() { struct spwd testme ; return 0; } EOF -if { (eval echo configure:2568: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2567: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_shadow_h=yes else @@ -2586,17 +2585,17 @@ for ac_hdr in shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2590: checking for $ac_hdr" >&5 +echo "configure:2589: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2595 "configure" +#line 2594 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2600: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2599: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2626,17 +2625,17 @@ for ac_hdr in nss.h nss_common.h ns_api.h sys/security.h security/pam_appl.h sec do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2630: checking for $ac_hdr" >&5 +echo "configure:2629: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2635 "configure" +#line 2634 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2640: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2639: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2666,17 +2665,17 @@ for ac_hdr in stropts.h poll.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2670: checking for $ac_hdr" >&5 +echo "configure:2669: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2675 "configure" +#line 2674 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2680: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2679: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2706,17 +2705,17 @@ for ac_hdr in sys/capability.h syscall.h sys/syscall.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2710: checking for $ac_hdr" >&5 +echo "configure:2709: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2715 "configure" +#line 2714 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2720: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2719: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2746,17 +2745,17 @@ for ac_hdr in sys/acl.h sys/cdefs.h glob.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2750: checking for $ac_hdr" >&5 +echo "configure:2749: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2755 "configure" +#line 2754 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2760: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2759: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2788,17 +2787,17 @@ for ac_hdr in utmp.h utmpx.h lastlog.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2792: checking for $ac_hdr" >&5 +echo "configure:2791: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2797 "configure" +#line 2796 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2802: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2801: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2830,17 +2829,17 @@ for ac_hdr in sys/fs/vx_quota.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2834: checking for $ac_hdr" >&5 +echo "configure:2833: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2839 "configure" +#line 2838 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2844: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2843: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2872,17 +2871,17 @@ for ac_hdr in linux/xqm.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2876: checking for $ac_hdr" >&5 +echo "configure:2875: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2881 "configure" +#line 2880 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2886: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2885: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2910,7 +2909,7 @@ done echo $ac_n "checking size of int""... $ac_c" 1>&6 -echo "configure:2914: checking size of int" >&5 +echo "configure:2913: checking size of int" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2918,7 +2917,7 @@ else ac_cv_sizeof_int=cross else cat > conftest.$ac_ext <<EOF -#line 2922 "configure" +#line 2921 "configure" #include "confdefs.h" #include <stdio.h> int main() @@ -2929,7 +2928,7 @@ int main() return(0); } EOF -if { (eval echo configure:2933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_int=`cat conftestval` else @@ -2949,7 +2948,7 @@ EOF echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:2953: checking size of long" >&5 +echo "configure:2952: checking size of long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2957,7 +2956,7 @@ else ac_cv_sizeof_long=cross else cat > conftest.$ac_ext <<EOF -#line 2961 "configure" +#line 2960 "configure" #include "confdefs.h" #include <stdio.h> int main() @@ -2968,7 +2967,7 @@ int main() return(0); } EOF -if { (eval echo configure:2972: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long=`cat conftestval` else @@ -2988,7 +2987,7 @@ EOF echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:2992: checking size of short" >&5 +echo "configure:2991: checking size of short" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2996,7 +2995,7 @@ else ac_cv_sizeof_short=cross else cat > conftest.$ac_ext <<EOF -#line 3000 "configure" +#line 2999 "configure" #include "confdefs.h" #include <stdio.h> int main() @@ -3007,7 +3006,7 @@ int main() return(0); } EOF -if { (eval echo configure:3011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_short=`cat conftestval` else @@ -3028,12 +3027,12 @@ EOF echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:3032: checking for working const" >&5 +echo "configure:3031: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3037 "configure" +#line 3036 "configure" #include "confdefs.h" int main() { @@ -3082,7 +3081,7 @@ ccp = (char const *const *) p; ; return 0; } EOF -if { (eval echo configure:3086: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3085: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -3103,21 +3102,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:3107: checking for inline" >&5 +echo "configure:3106: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <<EOF -#line 3114 "configure" +#line 3113 "configure" #include "confdefs.h" int main() { } $ac_kw foo() { ; return 0; } EOF -if { (eval echo configure:3121: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3120: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -3143,14 +3142,14 @@ EOF esac echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:3147: checking whether byte ordering is bigendian" >&5 +echo "configure:3146: checking whether byte ordering is bigendian" >&5 if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_bigendian=unknown # See if sys/param.h defines the BYTE_ORDER macro. cat > conftest.$ac_ext <<EOF -#line 3154 "configure" +#line 3153 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/param.h> @@ -3161,11 +3160,11 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:3165: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3164: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # It does; now see whether it defined to BIG_ENDIAN or not. cat > conftest.$ac_ext <<EOF -#line 3169 "configure" +#line 3168 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/param.h> @@ -3176,7 +3175,7 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:3180: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3179: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -3196,7 +3195,7 @@ if test "$cross_compiling" = yes; then { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext <<EOF -#line 3200 "configure" +#line 3199 "configure" #include "confdefs.h" main () { /* Are we little or big endian? From Harbison&Steele. */ @@ -3209,7 +3208,7 @@ main () { exit (u.c[sizeof (long) - 1] == 1); } EOF -if { (eval echo configure:3213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_bigendian=no else @@ -3233,14 +3232,14 @@ EOF fi echo $ac_n "checking whether char is unsigned""... $ac_c" 1>&6 -echo "configure:3237: checking whether char is unsigned" >&5 +echo "configure:3236: checking whether char is unsigned" >&5 if eval "test \"`echo '$''{'ac_cv_c_char_unsigned'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$GCC" = yes; then # GCC predefines this symbol on systems where it applies. cat > conftest.$ac_ext <<EOF -#line 3244 "configure" +#line 3243 "configure" #include "confdefs.h" #ifdef __CHAR_UNSIGNED__ yes @@ -3262,7 +3261,7 @@ if test "$cross_compiling" = yes; then { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext <<EOF -#line 3266 "configure" +#line 3265 "configure" #include "confdefs.h" /* volatile prevents gcc2 from optimizing the test away on sparcs. */ #if !defined(__STDC__) || __STDC__ != 1 @@ -3272,7 +3271,7 @@ main() { volatile char c = 255; exit(c < 0); } EOF -if { (eval echo configure:3276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3275: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_char_unsigned=yes else @@ -3297,12 +3296,12 @@ fi echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:3301: checking return type of signal handlers" >&5 +echo "configure:3300: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3306 "configure" +#line 3305 "configure" #include "confdefs.h" #include <sys/types.h> #include <signal.h> @@ -3319,7 +3318,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:3323: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3322: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -3338,12 +3337,12 @@ EOF echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:3342: checking for uid_t in sys/types.h" >&5 +echo "configure:3341: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3347 "configure" +#line 3346 "configure" #include "confdefs.h" #include <sys/types.h> EOF @@ -3372,12 +3371,12 @@ EOF fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:3376: checking for mode_t" >&5 +echo "configure:3375: checking for mode_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3381 "configure" +#line 3380 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -3405,12 +3404,12 @@ EOF fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3409: checking for off_t" >&5 +echo "configure:3408: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3414 "configure" +#line 3413 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -3438,12 +3437,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3442: checking for size_t" >&5 +echo "configure:3441: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3447 "configure" +#line 3446 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -3471,12 +3470,12 @@ EOF fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:3475: checking for pid_t" >&5 +echo "configure:3474: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3480 "configure" +#line 3479 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -3504,12 +3503,12 @@ EOF fi echo $ac_n "checking for st_rdev in struct stat""... $ac_c" 1>&6 -echo "configure:3508: checking for st_rdev in struct stat" >&5 +echo "configure:3507: checking for st_rdev in struct stat" >&5 if eval "test \"`echo '$''{'ac_cv_struct_st_rdev'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3513 "configure" +#line 3512 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/stat.h> @@ -3517,7 +3516,7 @@ int main() { struct stat s; s.st_rdev; ; return 0; } EOF -if { (eval echo configure:3521: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3520: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_st_rdev=yes else @@ -3538,12 +3537,12 @@ EOF fi echo $ac_n "checking for d_off in dirent""... $ac_c" 1>&6 -echo "configure:3542: checking for d_off in dirent" >&5 +echo "configure:3541: checking for d_off in dirent" >&5 if eval "test \"`echo '$''{'ac_cv_dirent_d_off'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3547 "configure" +#line 3546 "configure" #include "confdefs.h" #include <unistd.h> @@ -3553,7 +3552,7 @@ int main() { struct dirent d; d.d_off; ; return 0; } EOF -if { (eval echo configure:3557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3556: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_dirent_d_off=yes else @@ -3574,12 +3573,12 @@ EOF fi echo $ac_n "checking for ino_t""... $ac_c" 1>&6 -echo "configure:3578: checking for ino_t" >&5 +echo "configure:3577: checking for ino_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_ino_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3583 "configure" +#line 3582 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -3607,12 +3606,12 @@ EOF fi echo $ac_n "checking for loff_t""... $ac_c" 1>&6 -echo "configure:3611: checking for loff_t" >&5 +echo "configure:3610: checking for loff_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_loff_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3616 "configure" +#line 3615 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -3640,12 +3639,12 @@ EOF fi echo $ac_n "checking for offset_t""... $ac_c" 1>&6 -echo "configure:3644: checking for offset_t" >&5 +echo "configure:3643: checking for offset_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_offset_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3649 "configure" +#line 3648 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -3673,12 +3672,12 @@ EOF fi echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 -echo "configure:3677: checking for ssize_t" >&5 +echo "configure:3676: checking for ssize_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3682 "configure" +#line 3681 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -3706,12 +3705,12 @@ EOF fi echo $ac_n "checking for wchar_t""... $ac_c" 1>&6 -echo "configure:3710: checking for wchar_t" >&5 +echo "configure:3709: checking for wchar_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_wchar_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3715 "configure" +#line 3714 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -3753,7 +3752,7 @@ if test x$enable_cups != xno; then # Extract the first word of "cups-config", so it can be a program name with args. set dummy cups-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3757: checking for $ac_word" >&5 +echo "configure:3756: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_CUPS_CONFIG'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3802,12 +3801,12 @@ fi for ac_func in dlopen do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3806: checking for $ac_func" >&5 +echo "configure:3805: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3811 "configure" +#line 3810 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -3830,7 +3829,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:3834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3856,7 +3855,7 @@ done if test x"$ac_cv_func_dlopen" = x"no"; then echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:3860: checking for dlopen in -ldl" >&5 +echo "configure:3859: checking for dlopen in -ldl" >&5 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3864,7 +3863,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext <<EOF -#line 3868 "configure" +#line 3867 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -3875,7 +3874,7 @@ int main() { dlopen() ; return 0; } EOF -if { (eval echo configure:3879: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3878: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3905,13 +3904,13 @@ fi ############################################ # check if the compiler can do immediate structures echo $ac_n "checking for immediate structures""... $ac_c" 1>&6 -echo "configure:3909: checking for immediate structures" >&5 +echo "configure:3908: checking for immediate structures" >&5 if eval "test \"`echo '$''{'samba_cv_immediate_structures'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3915 "configure" +#line 3914 "configure" #include "confdefs.h" #include <stdio.h> @@ -3929,7 +3928,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:3933: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3932: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_immediate_structures=yes else @@ -3952,13 +3951,13 @@ fi ############################################ # check for unix domain sockets echo $ac_n "checking for unix domain sockets""... $ac_c" 1>&6 -echo "configure:3956: checking for unix domain sockets" >&5 +echo "configure:3955: checking for unix domain sockets" >&5 if eval "test \"`echo '$''{'samba_cv_unixsocket'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3962 "configure" +#line 3961 "configure" #include "confdefs.h" #include <sys/types.h> @@ -3973,7 +3972,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:3977: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3976: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_unixsocket=yes else @@ -3995,13 +3994,13 @@ fi echo $ac_n "checking for socklen_t type""... $ac_c" 1>&6 -echo "configure:3999: checking for socklen_t type" >&5 +echo "configure:3998: checking for socklen_t type" >&5 if eval "test \"`echo '$''{'samba_cv_socklen_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4005 "configure" +#line 4004 "configure" #include "confdefs.h" #include <sys/types.h> @@ -4014,7 +4013,7 @@ int main() { socklen_t i = 0 ; return 0; } EOF -if { (eval echo configure:4018: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4017: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_socklen_t=yes else @@ -4035,13 +4034,13 @@ EOF fi echo $ac_n "checking for sig_atomic_t type""... $ac_c" 1>&6 -echo "configure:4039: checking for sig_atomic_t type" >&5 +echo "configure:4038: checking for sig_atomic_t type" >&5 if eval "test \"`echo '$''{'samba_cv_sig_atomic_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4045 "configure" +#line 4044 "configure" #include "confdefs.h" #include <sys/types.h> @@ -4054,7 +4053,7 @@ int main() { sig_atomic_t i = 0 ; return 0; } EOF -if { (eval echo configure:4058: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4057: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_sig_atomic_t=yes else @@ -4077,20 +4076,20 @@ fi # stupid headers have the functions but no declaration. grrrr. echo $ac_n "checking for errno declaration""... $ac_c" 1>&6 -echo "configure:4081: checking for errno declaration" >&5 +echo "configure:4080: checking for errno declaration" >&5 if eval "test \"`echo '$''{'ac_cv_have_errno_decl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4087 "configure" +#line 4086 "configure" #include "confdefs.h" #include <errno.h> int main() { int i = (int)errno ; return 0; } EOF -if { (eval echo configure:4094: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4093: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_errno_decl=yes else @@ -4112,20 +4111,20 @@ EOF echo $ac_n "checking for setresuid declaration""... $ac_c" 1>&6 -echo "configure:4116: checking for setresuid declaration" >&5 +echo "configure:4115: checking for setresuid declaration" >&5 if eval "test \"`echo '$''{'ac_cv_have_setresuid_decl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4122 "configure" +#line 4121 "configure" #include "confdefs.h" #include <unistd.h> int main() { int i = (int)setresuid ; return 0; } EOF -if { (eval echo configure:4129: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4128: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_setresuid_decl=yes else @@ -4147,20 +4146,20 @@ EOF echo $ac_n "checking for setresgid declaration""... $ac_c" 1>&6 -echo "configure:4151: checking for setresgid declaration" >&5 +echo "configure:4150: checking for setresgid declaration" >&5 if eval "test \"`echo '$''{'ac_cv_have_setresgid_decl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4157 "configure" +#line 4156 "configure" #include "confdefs.h" #include <unistd.h> int main() { int i = (int)setresgid ; return 0; } EOF -if { (eval echo configure:4164: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4163: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_setresgid_decl=yes else @@ -4182,20 +4181,20 @@ EOF echo $ac_n "checking for asprintf declaration""... $ac_c" 1>&6 -echo "configure:4186: checking for asprintf declaration" >&5 +echo "configure:4185: checking for asprintf declaration" >&5 if eval "test \"`echo '$''{'ac_cv_have_asprintf_decl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4192 "configure" +#line 4191 "configure" #include "confdefs.h" #include <stdio.h> int main() { int i = (int)asprintf ; return 0; } EOF -if { (eval echo configure:4199: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4198: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_asprintf_decl=yes else @@ -4217,20 +4216,20 @@ EOF echo $ac_n "checking for vasprintf declaration""... $ac_c" 1>&6 -echo "configure:4221: checking for vasprintf declaration" >&5 +echo "configure:4220: checking for vasprintf declaration" >&5 if eval "test \"`echo '$''{'ac_cv_have_vasprintf_decl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4227 "configure" +#line 4226 "configure" #include "confdefs.h" #include <stdio.h> int main() { int i = (int)vasprintf ; return 0; } EOF -if { (eval echo configure:4234: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4233: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_vasprintf_decl=yes else @@ -4252,20 +4251,20 @@ EOF echo $ac_n "checking for vsnprintf declaration""... $ac_c" 1>&6 -echo "configure:4256: checking for vsnprintf declaration" >&5 +echo "configure:4255: checking for vsnprintf declaration" >&5 if eval "test \"`echo '$''{'ac_cv_have_vsnprintf_decl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4262 "configure" +#line 4261 "configure" #include "confdefs.h" #include <stdio.h> int main() { int i = (int)vsnprintf ; return 0; } EOF -if { (eval echo configure:4269: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4268: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_vsnprintf_decl=yes else @@ -4287,20 +4286,20 @@ EOF echo $ac_n "checking for snprintf declaration""... $ac_c" 1>&6 -echo "configure:4291: checking for snprintf declaration" >&5 +echo "configure:4290: checking for snprintf declaration" >&5 if eval "test \"`echo '$''{'ac_cv_have_snprintf_decl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4297 "configure" +#line 4296 "configure" #include "confdefs.h" #include <stdio.h> int main() { int i = (int)snprintf ; return 0; } EOF -if { (eval echo configure:4304: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4303: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_snprintf_decl=yes else @@ -4324,7 +4323,7 @@ EOF # and glibc has setresuid under linux but the function does # nothing until kernel 2.1.44! very dumb. echo $ac_n "checking for real setresuid""... $ac_c" 1>&6 -echo "configure:4328: checking for real setresuid" >&5 +echo "configure:4327: checking for real setresuid" >&5 if eval "test \"`echo '$''{'samba_cv_have_setresuid'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4333,12 +4332,12 @@ else samba_cv_have_setresuid=cross else cat > conftest.$ac_ext <<EOF -#line 4337 "configure" +#line 4336 "configure" #include "confdefs.h" #include <errno.h> main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);} EOF -if { (eval echo configure:4342: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_have_setresuid=yes else @@ -4363,7 +4362,7 @@ fi # Do the same check for setresguid... # echo $ac_n "checking for real setresgid""... $ac_c" 1>&6 -echo "configure:4367: checking for real setresgid" >&5 +echo "configure:4366: checking for real setresgid" >&5 if eval "test \"`echo '$''{'samba_cv_have_setresgid'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4372,13 +4371,13 @@ else samba_cv_have_setresgid=cross else cat > conftest.$ac_ext <<EOF -#line 4376 "configure" +#line 4375 "configure" #include "confdefs.h" #include <unistd.h> #include <errno.h> main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);} EOF -if { (eval echo configure:4382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4381: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_have_setresgid=yes else @@ -4401,7 +4400,7 @@ EOF fi echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 -echo "configure:4405: checking for 8-bit clean memcmp" >&5 +echo "configure:4404: checking for 8-bit clean memcmp" >&5 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4409,7 +4408,7 @@ else ac_cv_func_memcmp_clean=no else cat > conftest.$ac_ext <<EOF -#line 4413 "configure" +#line 4412 "configure" #include "confdefs.h" main() @@ -4419,7 +4418,7 @@ main() } EOF -if { (eval echo configure:4423: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_memcmp_clean=yes else @@ -4442,12 +4441,12 @@ test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}" for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4446: checking for $ac_func" >&5 +echo "configure:4445: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4451 "configure" +#line 4450 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -4470,7 +4469,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:4474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4473: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4496,7 +4495,7 @@ done if test x"$ac_cv_func_crypt" = x"no"; then echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:4500: checking for crypt in -lcrypt" >&5 +echo "configure:4499: checking for crypt in -lcrypt" >&5 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4504,7 +4503,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcrypt $LIBS" cat > conftest.$ac_ext <<EOF -#line 4508 "configure" +#line 4507 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4515,7 +4514,7 @@ int main() { crypt() ; return 0; } EOF -if { (eval echo configure:4519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4530,7 +4529,7 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - AUTHLIBS="$AUTHLIBS -lcrypt"; + LIBS="$LIBS -lcrypt"; cat >> confdefs.h <<\EOF #define HAVE_CRYPT 1 EOF @@ -4548,7 +4547,7 @@ test "${with_readline+set}" != "set" && with_readline=yes # test for where we get readline() from echo $ac_n "checking whether to use readline""... $ac_c" 1>&6 -echo "configure:4552: checking whether to use readline" >&5 +echo "configure:4551: checking whether to use readline" >&5 # Check whether --with-readline or --without-readline was given. if test "${with_readline+set}" = set; then withval="$with_readline" @@ -4560,17 +4559,17 @@ if test "${with_readline+set}" = set; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4564: checking for $ac_hdr" >&5 +echo "configure:4563: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4569 "configure" +#line 4568 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4574: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4573: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4600,17 +4599,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4604: checking for $ac_hdr" >&5 +echo "configure:4603: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4609 "configure" +#line 4608 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4614: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4613: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4641,17 +4640,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4645: checking for $ac_hdr" >&5 +echo "configure:4644: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4650 "configure" +#line 4649 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4655: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4654: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4674,7 +4673,7 @@ EOF for termlib in ncurses curses termcap terminfo termlib; do echo $ac_n "checking for tgetent in -l${termlib}""... $ac_c" 1>&6 -echo "configure:4678: checking for tgetent in -l${termlib}" >&5 +echo "configure:4677: checking for tgetent in -l${termlib}" >&5 ac_lib_var=`echo ${termlib}'_'tgetent | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4682,7 +4681,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l${termlib} $LIBS" cat > conftest.$ac_ext <<EOF -#line 4686 "configure" +#line 4685 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4693,7 +4692,7 @@ int main() { tgetent() ; return 0; } EOF -if { (eval echo configure:4697: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4715,7 +4714,7 @@ fi done echo $ac_n "checking for rl_callback_handler_install in -lreadline""... $ac_c" 1>&6 -echo "configure:4719: checking for rl_callback_handler_install in -lreadline" >&5 +echo "configure:4718: checking for rl_callback_handler_install in -lreadline" >&5 ac_lib_var=`echo readline'_'rl_callback_handler_install | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4723,7 +4722,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lreadline $TERMLIBS $LIBS" cat > conftest.$ac_ext <<EOF -#line 4727 "configure" +#line 4726 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4734,7 +4733,7 @@ int main() { rl_callback_handler_install() ; return 0; } EOF -if { (eval echo configure:4738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4785,17 +4784,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4789: checking for $ac_hdr" >&5 +echo "configure:4788: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4794 "configure" +#line 4793 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4799: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4798: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4825,17 +4824,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4829: checking for $ac_hdr" >&5 +echo "configure:4828: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4834 "configure" +#line 4833 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4839: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4838: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4866,17 +4865,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4870: checking for $ac_hdr" >&5 +echo "configure:4869: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4875 "configure" +#line 4874 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4880: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4879: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4899,7 +4898,7 @@ EOF for termlib in ncurses curses termcap terminfo termlib; do echo $ac_n "checking for tgetent in -l${termlib}""... $ac_c" 1>&6 -echo "configure:4903: checking for tgetent in -l${termlib}" >&5 +echo "configure:4902: checking for tgetent in -l${termlib}" >&5 ac_lib_var=`echo ${termlib}'_'tgetent | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4907,7 +4906,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l${termlib} $LIBS" cat > conftest.$ac_ext <<EOF -#line 4911 "configure" +#line 4910 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4918,7 +4917,7 @@ int main() { tgetent() ; return 0; } EOF -if { (eval echo configure:4922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4921: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4940,7 +4939,7 @@ fi done echo $ac_n "checking for rl_callback_handler_install in -lreadline""... $ac_c" 1>&6 -echo "configure:4944: checking for rl_callback_handler_install in -lreadline" >&5 +echo "configure:4943: checking for rl_callback_handler_install in -lreadline" >&5 ac_lib_var=`echo readline'_'rl_callback_handler_install | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4948,7 +4947,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lreadline $TERMLIBS $LIBS" cat > conftest.$ac_ext <<EOF -#line 4952 "configure" +#line 4951 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4959,7 +4958,7 @@ int main() { rl_callback_handler_install() ; return 0; } EOF -if { (eval echo configure:4963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5009,7 +5008,7 @@ fi # code will generate warnings on one of them unless we have a few # special cases. echo $ac_n "checking for rl_completion_matches in -lreadline""... $ac_c" 1>&6 -echo "configure:5013: checking for rl_completion_matches in -lreadline" >&5 +echo "configure:5012: checking for rl_completion_matches in -lreadline" >&5 ac_lib_var=`echo readline'_'rl_completion_matches | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5017,7 +5016,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lreadline $TERMLIBS $LIBS" cat > conftest.$ac_ext <<EOF -#line 5021 "configure" +#line 5020 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5028,7 +5027,7 @@ int main() { rl_completion_matches() ; return 0; } EOF -if { (eval echo configure:5032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5031: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5061,12 +5060,12 @@ fi for ac_func in connect do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5065: checking for $ac_func" >&5 +echo "configure:5064: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5070 "configure" +#line 5069 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5089,7 +5088,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5093: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5117,7 +5116,7 @@ if test x"$ac_cv_func_connect" = x"no"; then case "$LIBS" in *-lnsl*) ;; *) echo $ac_n "checking for printf in -lnsl_s""... $ac_c" 1>&6 -echo "configure:5121: checking for printf in -lnsl_s" >&5 +echo "configure:5120: checking for printf in -lnsl_s" >&5 ac_lib_var=`echo nsl_s'_'printf | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5125,7 +5124,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl_s $LIBS" cat > conftest.$ac_ext <<EOF -#line 5129 "configure" +#line 5128 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5136,7 +5135,7 @@ int main() { printf() ; return 0; } EOF -if { (eval echo configure:5140: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5139: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5167,7 +5166,7 @@ fi case "$LIBS" in *-lnsl*) ;; *) echo $ac_n "checking for printf in -lnsl""... $ac_c" 1>&6 -echo "configure:5171: checking for printf in -lnsl" >&5 +echo "configure:5170: checking for printf in -lnsl" >&5 ac_lib_var=`echo nsl'_'printf | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5175,7 +5174,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <<EOF -#line 5179 "configure" +#line 5178 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5186,7 +5185,7 @@ int main() { printf() ; return 0; } EOF -if { (eval echo configure:5190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5189: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5217,7 +5216,7 @@ fi case "$LIBS" in *-lsocket*) ;; *) echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 -echo "configure:5221: checking for connect in -lsocket" >&5 +echo "configure:5220: checking for connect in -lsocket" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5225,7 +5224,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $LIBS" cat > conftest.$ac_ext <<EOF -#line 5229 "configure" +#line 5228 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5236,7 +5235,7 @@ int main() { connect() ; return 0; } EOF -if { (eval echo configure:5240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5267,7 +5266,7 @@ fi case "$LIBS" in *-linet*) ;; *) echo $ac_n "checking for connect in -linet""... $ac_c" 1>&6 -echo "configure:5271: checking for connect in -linet" >&5 +echo "configure:5270: checking for connect in -linet" >&5 ac_lib_var=`echo inet'_'connect | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5275,7 +5274,7 @@ else ac_save_LIBS="$LIBS" LIBS="-linet $LIBS" cat > conftest.$ac_ext <<EOF -#line 5279 "configure" +#line 5278 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5286,7 +5285,7 @@ int main() { connect() ; return 0; } EOF -if { (eval echo configure:5290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5330,12 +5329,12 @@ fi for ac_func in yp_get_default_domain do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5334: checking for $ac_func" >&5 +echo "configure:5333: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5339 "configure" +#line 5338 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5358,7 +5357,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5384,7 +5383,7 @@ done if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then echo $ac_n "checking for yp_get_default_domain in -lnsl""... $ac_c" 1>&6 -echo "configure:5388: checking for yp_get_default_domain in -lnsl" >&5 +echo "configure:5387: checking for yp_get_default_domain in -lnsl" >&5 ac_lib_var=`echo nsl'_'yp_get_default_domain | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5392,7 +5391,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <<EOF -#line 5396 "configure" +#line 5395 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -5403,7 +5402,7 @@ int main() { yp_get_default_domain() ; return 0; } EOF -if { (eval echo configure:5407: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5433,12 +5432,12 @@ fi for ac_func in execl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5437: checking for $ac_func" >&5 +echo "configure:5436: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5442 "configure" +#line 5441 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5461,7 +5460,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5494,12 +5493,12 @@ fi for ac_func in dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5498: checking for $ac_func" >&5 +echo "configure:5497: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5503 "configure" +#line 5502 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5522,7 +5521,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5549,12 +5548,12 @@ done for ac_func in fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat setpgid do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5553: checking for $ac_func" >&5 +echo "configure:5552: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5558 "configure" +#line 5557 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5577,7 +5576,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5604,12 +5603,12 @@ done for ac_func in memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5608: checking for $ac_func" >&5 +echo "configure:5607: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5613 "configure" +#line 5612 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5632,7 +5631,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5659,12 +5658,12 @@ done for ac_func in strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5663: checking for $ac_func" >&5 +echo "configure:5662: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5668 "configure" +#line 5667 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5687,7 +5686,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5714,12 +5713,12 @@ done for ac_func in initgroups select poll rdchk getgrnam getgrent pathconf realpath do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5718: checking for $ac_func" >&5 +echo "configure:5717: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5723 "configure" +#line 5722 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5742,7 +5741,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5746: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5769,12 +5768,12 @@ done for ac_func in setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5773: checking for $ac_func" >&5 +echo "configure:5772: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5778 "configure" +#line 5777 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5797,7 +5796,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5801: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5800: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5824,12 +5823,12 @@ done for ac_func in lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5828: checking for $ac_func" >&5 +echo "configure:5827: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5833 "configure" +#line 5832 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5852,7 +5851,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5856: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5879,12 +5878,12 @@ done for ac_func in fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5883: checking for $ac_func" >&5 +echo "configure:5882: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5888 "configure" +#line 5887 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5907,7 +5906,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5934,12 +5933,12 @@ done for ac_func in srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5938: checking for $ac_func" >&5 +echo "configure:5937: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5943 "configure" +#line 5942 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -5962,7 +5961,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:5966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5989,12 +5988,12 @@ done for ac_func in syslog vsyslog getgrouplist do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5993: checking for $ac_func" >&5 +echo "configure:5992: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5998 "configure" +#line 5997 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6017,7 +6016,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6045,12 +6044,12 @@ done for ac_func in setbuffer do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6049: checking for $ac_func" >&5 +echo "configure:6048: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6054 "configure" +#line 6053 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6073,7 +6072,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6077: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6102,12 +6101,12 @@ done for ac_func in syscall do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6106: checking for $ac_func" >&5 +echo "configure:6105: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6111 "configure" +#line 6110 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6130,7 +6129,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6158,12 +6157,12 @@ done for ac_func in _dup _dup2 _opendir _readdir _seekdir _telldir _closedir do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6162: checking for $ac_func" >&5 +echo "configure:6161: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6167 "configure" +#line 6166 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6186,7 +6185,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6189: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6213,12 +6212,12 @@ done for ac_func in __dup __dup2 __opendir __readdir __seekdir __telldir __closedir do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6217: checking for $ac_func" >&5 +echo "configure:6216: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6222 "configure" +#line 6221 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6241,7 +6240,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6268,12 +6267,12 @@ done for ac_func in __getcwd _getcwd do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6272: checking for $ac_func" >&5 +echo "configure:6271: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6277 "configure" +#line 6276 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6296,7 +6295,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6323,12 +6322,12 @@ done for ac_func in __xstat __fxstat __lxstat do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6327: checking for $ac_func" >&5 +echo "configure:6326: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6332 "configure" +#line 6331 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6351,7 +6350,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6378,12 +6377,12 @@ done for ac_func in _stat _lstat _fstat __stat __lstat __fstat do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6382: checking for $ac_func" >&5 +echo "configure:6381: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6387 "configure" +#line 6386 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6406,7 +6405,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6433,12 +6432,12 @@ done for ac_func in _acl __acl _facl __facl _open __open _chdir __chdir do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6437: checking for $ac_func" >&5 +echo "configure:6436: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6442 "configure" +#line 6441 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6461,7 +6460,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6488,12 +6487,12 @@ done for ac_func in _close __close _fchdir __fchdir _fcntl __fcntl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6492: checking for $ac_func" >&5 +echo "configure:6491: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6497 "configure" +#line 6496 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6516,7 +6515,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6543,12 +6542,12 @@ done for ac_func in getdents _getdents __getdents _lseek __lseek _read __read do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6547: checking for $ac_func" >&5 +echo "configure:6546: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6552 "configure" +#line 6551 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6571,7 +6570,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6598,12 +6597,12 @@ done for ac_func in _write __write _fork __fork do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6602: checking for $ac_func" >&5 +echo "configure:6601: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6607 "configure" +#line 6606 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6626,7 +6625,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6629: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6653,12 +6652,12 @@ done for ac_func in _stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6657: checking for $ac_func" >&5 +echo "configure:6656: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6662 "configure" +#line 6661 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6681,7 +6680,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6708,12 +6707,12 @@ done for ac_func in __sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6712: checking for $ac_func" >&5 +echo "configure:6711: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6717 "configure" +#line 6716 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6736,7 +6735,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6740: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6763,12 +6762,12 @@ done for ac_func in pread _pread __pread pread64 _pread64 __pread64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6767: checking for $ac_func" >&5 +echo "configure:6766: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6772 "configure" +#line 6771 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6791,7 +6790,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6795: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6794: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6818,12 +6817,12 @@ done for ac_func in pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6822: checking for $ac_func" >&5 +echo "configure:6821: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6827 "configure" +#line 6826 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6846,7 +6845,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6850: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6873,12 +6872,12 @@ done for ac_func in open64 _open64 __open64 creat64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6877: checking for $ac_func" >&5 +echo "configure:6876: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6882 "configure" +#line 6881 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6901,7 +6900,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6905: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6904: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6932,9 +6931,9 @@ done if test x$ac_cv_func_stat64 = xno ; then echo $ac_n "checking for stat64 in <sys/stat.h>""... $ac_c" 1>&6 -echo "configure:6936: checking for stat64 in <sys/stat.h>" >&5 +echo "configure:6935: checking for stat64 in <sys/stat.h>" >&5 cat > conftest.$ac_ext <<EOF -#line 6938 "configure" +#line 6937 "configure" #include "confdefs.h" #if defined(HAVE_UNISTD_H) @@ -6946,7 +6945,7 @@ int main() { struct stat64 st64; exit(stat64(".",&st64)); ; return 0; } EOF -if { (eval echo configure:6950: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_stat64=yes else @@ -6965,9 +6964,9 @@ fi if test x$ac_cv_func_lstat64 = xno ; then echo $ac_n "checking for lstat64 in <sys/stat.h>""... $ac_c" 1>&6 -echo "configure:6969: checking for lstat64 in <sys/stat.h>" >&5 +echo "configure:6968: checking for lstat64 in <sys/stat.h>" >&5 cat > conftest.$ac_ext <<EOF -#line 6971 "configure" +#line 6970 "configure" #include "confdefs.h" #if defined(HAVE_UNISTD_H) @@ -6979,7 +6978,7 @@ int main() { struct stat64 st64; exit(lstat64(".",&st64)); ; return 0; } EOF -if { (eval echo configure:6983: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_lstat64=yes else @@ -6998,9 +6997,9 @@ fi if test x$ac_cv_func_fstat64 = xno ; then echo $ac_n "checking for fstat64 in <sys/stat.h>""... $ac_c" 1>&6 -echo "configure:7002: checking for fstat64 in <sys/stat.h>" >&5 +echo "configure:7001: checking for fstat64 in <sys/stat.h>" >&5 cat > conftest.$ac_ext <<EOF -#line 7004 "configure" +#line 7003 "configure" #include "confdefs.h" #if defined(HAVE_UNISTD_H) @@ -7012,7 +7011,7 @@ int main() { struct stat64 st64; exit(fstat64(0,&st64)); ; return 0; } EOF -if { (eval echo configure:7016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_fstat64=yes else @@ -7032,7 +7031,7 @@ fi ##################################### # we might need the resolv library on some systems echo $ac_n "checking for dn_expand in -lresolv""... $ac_c" 1>&6 -echo "configure:7036: checking for dn_expand in -lresolv" >&5 +echo "configure:7035: checking for dn_expand in -lresolv" >&5 ac_lib_var=`echo resolv'_'dn_expand | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7040,7 +7039,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lresolv $LIBS" cat > conftest.$ac_ext <<EOF -#line 7044 "configure" +#line 7043 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7051,7 +7050,7 @@ int main() { dn_expand() ; return 0; } EOF -if { (eval echo configure:7055: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7089,12 +7088,12 @@ case "$LIBS" in *-lsecurity*) for ac_func in putprpwnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7093: checking for $ac_func" >&5 +echo "configure:7092: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7098 "configure" +#line 7097 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7117,7 +7116,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7142,7 +7141,7 @@ fi done ;; *) echo $ac_n "checking for putprpwnam in -lsecurity""... $ac_c" 1>&6 -echo "configure:7146: checking for putprpwnam in -lsecurity" >&5 +echo "configure:7145: checking for putprpwnam in -lsecurity" >&5 ac_lib_var=`echo security'_'putprpwnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7150,7 +7149,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsecurity $LIBS" cat > conftest.$ac_ext <<EOF -#line 7154 "configure" +#line 7153 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7161,7 +7160,7 @@ int main() { putprpwnam() ; return 0; } EOF -if { (eval echo configure:7165: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7191,12 +7190,12 @@ fi for ac_func in putprpwnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7195: checking for $ac_func" >&5 +echo "configure:7194: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7200 "configure" +#line 7199 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7219,7 +7218,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7250,12 +7249,12 @@ case "$LIBS" in *-lsec*) for ac_func in putprpwnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7254: checking for $ac_func" >&5 +echo "configure:7253: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7259 "configure" +#line 7258 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7278,7 +7277,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7303,7 +7302,7 @@ fi done ;; *) echo $ac_n "checking for putprpwnam in -lsec""... $ac_c" 1>&6 -echo "configure:7307: checking for putprpwnam in -lsec" >&5 +echo "configure:7306: checking for putprpwnam in -lsec" >&5 ac_lib_var=`echo sec'_'putprpwnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7311,7 +7310,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsec $LIBS" cat > conftest.$ac_ext <<EOF -#line 7315 "configure" +#line 7314 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7322,7 +7321,7 @@ int main() { putprpwnam() ; return 0; } EOF -if { (eval echo configure:7326: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7352,12 +7351,12 @@ fi for ac_func in putprpwnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7356: checking for $ac_func" >&5 +echo "configure:7355: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7361 "configure" +#line 7360 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7380,7 +7379,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7383: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7412,12 +7411,12 @@ case "$LIBS" in *-lsecurity*) for ac_func in set_auth_parameters do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7416: checking for $ac_func" >&5 +echo "configure:7415: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7421 "configure" +#line 7420 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7440,7 +7439,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7465,7 +7464,7 @@ fi done ;; *) echo $ac_n "checking for set_auth_parameters in -lsecurity""... $ac_c" 1>&6 -echo "configure:7469: checking for set_auth_parameters in -lsecurity" >&5 +echo "configure:7468: checking for set_auth_parameters in -lsecurity" >&5 ac_lib_var=`echo security'_'set_auth_parameters | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7473,7 +7472,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsecurity $LIBS" cat > conftest.$ac_ext <<EOF -#line 7477 "configure" +#line 7476 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7484,7 +7483,7 @@ int main() { set_auth_parameters() ; return 0; } EOF -if { (eval echo configure:7488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7514,12 +7513,12 @@ fi for ac_func in set_auth_parameters do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7518: checking for $ac_func" >&5 +echo "configure:7517: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7523 "configure" +#line 7522 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7542,7 +7541,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7573,12 +7572,12 @@ case "$LIBS" in *-lsec*) for ac_func in set_auth_parameters do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7577: checking for $ac_func" >&5 +echo "configure:7576: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7582 "configure" +#line 7581 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7601,7 +7600,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7626,7 +7625,7 @@ fi done ;; *) echo $ac_n "checking for set_auth_parameters in -lsec""... $ac_c" 1>&6 -echo "configure:7630: checking for set_auth_parameters in -lsec" >&5 +echo "configure:7629: checking for set_auth_parameters in -lsec" >&5 ac_lib_var=`echo sec'_'set_auth_parameters | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7634,7 +7633,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsec $LIBS" cat > conftest.$ac_ext <<EOF -#line 7638 "configure" +#line 7637 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7645,7 +7644,7 @@ int main() { set_auth_parameters() ; return 0; } EOF -if { (eval echo configure:7649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7675,12 +7674,12 @@ fi for ac_func in set_auth_parameters do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7679: checking for $ac_func" >&5 +echo "configure:7678: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7684 "configure" +#line 7683 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7703,7 +7702,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7736,12 +7735,12 @@ case "$LIBS" in *-lgen*) for ac_func in getspnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7740: checking for $ac_func" >&5 +echo "configure:7739: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7745 "configure" +#line 7744 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7764,7 +7763,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7789,7 +7788,7 @@ fi done ;; *) echo $ac_n "checking for getspnam in -lgen""... $ac_c" 1>&6 -echo "configure:7793: checking for getspnam in -lgen" >&5 +echo "configure:7792: checking for getspnam in -lgen" >&5 ac_lib_var=`echo gen'_'getspnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7797,7 +7796,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lgen $LIBS" cat > conftest.$ac_ext <<EOF -#line 7801 "configure" +#line 7800 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7808,7 +7807,7 @@ int main() { getspnam() ; return 0; } EOF -if { (eval echo configure:7812: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7811: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7838,12 +7837,12 @@ fi for ac_func in getspnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7842: checking for $ac_func" >&5 +echo "configure:7841: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7847 "configure" +#line 7846 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7866,7 +7865,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7870: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7898,12 +7897,12 @@ case "$LIBS" in *-lsecurity*) for ac_func in getspnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7902: checking for $ac_func" >&5 +echo "configure:7901: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7907 "configure" +#line 7906 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7926,7 +7925,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7930: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7951,7 +7950,7 @@ fi done ;; *) echo $ac_n "checking for getspnam in -lsecurity""... $ac_c" 1>&6 -echo "configure:7955: checking for getspnam in -lsecurity" >&5 +echo "configure:7954: checking for getspnam in -lsecurity" >&5 ac_lib_var=`echo security'_'getspnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7959,7 +7958,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsecurity $LIBS" cat > conftest.$ac_ext <<EOF -#line 7963 "configure" +#line 7962 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -7970,7 +7969,7 @@ int main() { getspnam() ; return 0; } EOF -if { (eval echo configure:7974: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8000,12 +7999,12 @@ fi for ac_func in getspnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8004: checking for $ac_func" >&5 +echo "configure:8003: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8009 "configure" +#line 8008 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8028,7 +8027,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8031: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8059,12 +8058,12 @@ case "$LIBS" in *-lsec*) for ac_func in getspnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8063: checking for $ac_func" >&5 +echo "configure:8062: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8068 "configure" +#line 8067 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8087,7 +8086,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8091: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8112,7 +8111,7 @@ fi done ;; *) echo $ac_n "checking for getspnam in -lsec""... $ac_c" 1>&6 -echo "configure:8116: checking for getspnam in -lsec" >&5 +echo "configure:8115: checking for getspnam in -lsec" >&5 ac_lib_var=`echo sec'_'getspnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8120,7 +8119,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsec $LIBS" cat > conftest.$ac_ext <<EOF -#line 8124 "configure" +#line 8123 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8131,7 +8130,7 @@ int main() { getspnam() ; return 0; } EOF -if { (eval echo configure:8135: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8161,12 +8160,12 @@ fi for ac_func in getspnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8165: checking for $ac_func" >&5 +echo "configure:8164: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8170 "configure" +#line 8169 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8189,7 +8188,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8221,12 +8220,12 @@ case "$LIBS" in *-lsecurity*) for ac_func in bigcrypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8225: checking for $ac_func" >&5 +echo "configure:8224: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8230 "configure" +#line 8229 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8249,7 +8248,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8253: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8274,7 +8273,7 @@ fi done ;; *) echo $ac_n "checking for bigcrypt in -lsecurity""... $ac_c" 1>&6 -echo "configure:8278: checking for bigcrypt in -lsecurity" >&5 +echo "configure:8277: checking for bigcrypt in -lsecurity" >&5 ac_lib_var=`echo security'_'bigcrypt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8282,7 +8281,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsecurity $LIBS" cat > conftest.$ac_ext <<EOF -#line 8286 "configure" +#line 8285 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8293,7 +8292,7 @@ int main() { bigcrypt() ; return 0; } EOF -if { (eval echo configure:8297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8323,12 +8322,12 @@ fi for ac_func in bigcrypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8327: checking for $ac_func" >&5 +echo "configure:8326: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8332 "configure" +#line 8331 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8351,7 +8350,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8382,12 +8381,12 @@ case "$LIBS" in *-lsec*) for ac_func in bigcrypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8386: checking for $ac_func" >&5 +echo "configure:8385: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8391 "configure" +#line 8390 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8410,7 +8409,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8414: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8435,7 +8434,7 @@ fi done ;; *) echo $ac_n "checking for bigcrypt in -lsec""... $ac_c" 1>&6 -echo "configure:8439: checking for bigcrypt in -lsec" >&5 +echo "configure:8438: checking for bigcrypt in -lsec" >&5 ac_lib_var=`echo sec'_'bigcrypt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8443,7 +8442,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsec $LIBS" cat > conftest.$ac_ext <<EOF -#line 8447 "configure" +#line 8446 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8454,7 +8453,7 @@ int main() { bigcrypt() ; return 0; } EOF -if { (eval echo configure:8458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8484,12 +8483,12 @@ fi for ac_func in bigcrypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8488: checking for $ac_func" >&5 +echo "configure:8487: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8493 "configure" +#line 8492 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8512,7 +8511,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8544,12 +8543,12 @@ case "$LIBS" in *-lsecurity*) for ac_func in getprpwnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8548: checking for $ac_func" >&5 +echo "configure:8547: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8553 "configure" +#line 8552 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8572,7 +8571,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8597,7 +8596,7 @@ fi done ;; *) echo $ac_n "checking for getprpwnam in -lsecurity""... $ac_c" 1>&6 -echo "configure:8601: checking for getprpwnam in -lsecurity" >&5 +echo "configure:8600: checking for getprpwnam in -lsecurity" >&5 ac_lib_var=`echo security'_'getprpwnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8605,7 +8604,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsecurity $LIBS" cat > conftest.$ac_ext <<EOF -#line 8609 "configure" +#line 8608 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8616,7 +8615,7 @@ int main() { getprpwnam() ; return 0; } EOF -if { (eval echo configure:8620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8646,12 +8645,12 @@ fi for ac_func in getprpwnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8650: checking for $ac_func" >&5 +echo "configure:8649: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8655 "configure" +#line 8654 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8674,7 +8673,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8677: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8705,12 +8704,12 @@ case "$LIBS" in *-lsec*) for ac_func in getprpwnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8709: checking for $ac_func" >&5 +echo "configure:8708: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8714 "configure" +#line 8713 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8733,7 +8732,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8758,7 +8757,7 @@ fi done ;; *) echo $ac_n "checking for getprpwnam in -lsec""... $ac_c" 1>&6 -echo "configure:8762: checking for getprpwnam in -lsec" >&5 +echo "configure:8761: checking for getprpwnam in -lsec" >&5 ac_lib_var=`echo sec'_'getprpwnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8766,7 +8765,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsec $LIBS" cat > conftest.$ac_ext <<EOF -#line 8770 "configure" +#line 8769 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -8777,7 +8776,7 @@ int main() { getprpwnam() ; return 0; } EOF -if { (eval echo configure:8781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8807,12 +8806,12 @@ fi for ac_func in getprpwnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8811: checking for $ac_func" >&5 +echo "configure:8810: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8816 "configure" +#line 8815 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8835,7 +8834,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8839: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8879,7 +8878,7 @@ SHLIBEXT="so" # Assume non-shared by default and override below BLDSHARED="false" echo $ac_n "checking ability to build shared libraries""... $ac_c" 1>&6 -echo "configure:8883: checking ability to build shared libraries" >&5 +echo "configure:8882: checking ability to build shared libraries" >&5 # and these are for particular systems case "$host_os" in @@ -9047,7 +9046,7 @@ EOF *dgux*) # Extract the first word of "groff", so it can be a program name with args. set dummy groff; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:9051: checking for $ac_word" >&5 +echo "configure:9050: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ROFF'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9104,17 +9103,17 @@ esac echo "$ac_t""$BLDSHARED" 1>&6 echo $ac_n "checking linker flags for shared libraries""... $ac_c" 1>&6 -echo "configure:9108: checking linker flags for shared libraries" >&5 +echo "configure:9107: checking linker flags for shared libraries" >&5 echo "$ac_t""$LDSHFLAGS" 1>&6 echo $ac_n "checking compiler flags for position-independent code""... $ac_c" 1>&6 -echo "configure:9111: checking compiler flags for position-independent code" >&5 +echo "configure:9110: checking compiler flags for position-independent code" >&5 echo "$ac_t""$PICFLAGS" 1>&6 ####################################################### # test whether building a shared library actually works if test $BLDSHARED = true; then echo $ac_n "checking whether building shared libraries actually works""... $ac_c" 1>&6 -echo "configure:9118: checking whether building shared libraries actually works" >&5 +echo "configure:9117: checking whether building shared libraries actually works" >&5 if eval "test \"`echo '$''{'ac_cv_shlib_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9145,7 +9144,7 @@ fi ################ echo $ac_n "checking for long long""... $ac_c" 1>&6 -echo "configure:9149: checking for long long" >&5 +echo "configure:9148: checking for long long" >&5 if eval "test \"`echo '$''{'samba_cv_have_longlong'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9154,12 +9153,12 @@ if test "$cross_compiling" = yes; then samba_cv_have_longlong=cross else cat > conftest.$ac_ext <<EOF -#line 9158 "configure" +#line 9157 "configure" #include "confdefs.h" #include <stdio.h> main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); } EOF -if { (eval echo configure:9163: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_have_longlong=yes else @@ -9186,20 +9185,20 @@ fi # AIX needs this. echo $ac_n "checking for LL suffix on long long integers""... $ac_c" 1>&6 -echo "configure:9190: checking for LL suffix on long long integers" >&5 +echo "configure:9189: checking for LL suffix on long long integers" >&5 if eval "test \"`echo '$''{'samba_cv_compiler_supports_ll'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9196 "configure" +#line 9195 "configure" #include "confdefs.h" #include <stdio.h> int main() { long long i = 0x8000000000LL ; return 0; } EOF -if { (eval echo configure:9203: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9202: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_compiler_supports_ll=yes else @@ -9221,7 +9220,7 @@ fi echo $ac_n "checking for 64 bit off_t""... $ac_c" 1>&6 -echo "configure:9225: checking for 64 bit off_t" >&5 +echo "configure:9224: checking for 64 bit off_t" >&5 if eval "test \"`echo '$''{'samba_cv_SIZEOF_OFF_T'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9230,13 +9229,13 @@ if test "$cross_compiling" = yes; then samba_cv_SIZEOF_OFF_T=cross else cat > conftest.$ac_ext <<EOF -#line 9234 "configure" +#line 9233 "configure" #include "confdefs.h" #include <stdio.h> #include <sys/stat.h> main() { exit((sizeof(off_t) == 8) ? 0 : 1); } EOF -if { (eval echo configure:9240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_SIZEOF_OFF_T=yes else @@ -9259,7 +9258,7 @@ EOF fi echo $ac_n "checking for off64_t""... $ac_c" 1>&6 -echo "configure:9263: checking for off64_t" >&5 +echo "configure:9262: checking for off64_t" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_OFF64_T'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9268,7 +9267,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_OFF64_T=cross else cat > conftest.$ac_ext <<EOF -#line 9272 "configure" +#line 9271 "configure" #include "confdefs.h" #if defined(HAVE_UNISTD_H) @@ -9278,7 +9277,7 @@ else #include <sys/stat.h> main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); } EOF -if { (eval echo configure:9282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_OFF64_T=yes else @@ -9301,7 +9300,7 @@ EOF fi echo $ac_n "checking for 64 bit ino_t""... $ac_c" 1>&6 -echo "configure:9305: checking for 64 bit ino_t" >&5 +echo "configure:9304: checking for 64 bit ino_t" >&5 if eval "test \"`echo '$''{'samba_cv_SIZEOF_INO_T'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9310,13 +9309,13 @@ if test "$cross_compiling" = yes; then samba_cv_SIZEOF_INO_T=cross else cat > conftest.$ac_ext <<EOF -#line 9314 "configure" +#line 9313 "configure" #include "confdefs.h" #include <stdio.h> #include <sys/stat.h> main() { exit((sizeof(ino_t) == 8) ? 0 : 1); } EOF -if { (eval echo configure:9320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_SIZEOF_INO_T=yes else @@ -9339,7 +9338,7 @@ EOF fi echo $ac_n "checking for ino64_t""... $ac_c" 1>&6 -echo "configure:9343: checking for ino64_t" >&5 +echo "configure:9342: checking for ino64_t" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_INO64_T'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9348,7 +9347,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_INO64_T=cross else cat > conftest.$ac_ext <<EOF -#line 9352 "configure" +#line 9351 "configure" #include "confdefs.h" #if defined(HAVE_UNISTD_H) @@ -9358,7 +9357,7 @@ else #include <sys/stat.h> main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); } EOF -if { (eval echo configure:9362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_INO64_T=yes else @@ -9381,7 +9380,7 @@ EOF fi echo $ac_n "checking for dev64_t""... $ac_c" 1>&6 -echo "configure:9385: checking for dev64_t" >&5 +echo "configure:9384: checking for dev64_t" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_DEV64_T'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9390,7 +9389,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_DEV64_T=cross else cat > conftest.$ac_ext <<EOF -#line 9394 "configure" +#line 9393 "configure" #include "confdefs.h" #if defined(HAVE_UNISTD_H) @@ -9400,7 +9399,7 @@ else #include <sys/stat.h> main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); } EOF -if { (eval echo configure:9404: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_DEV64_T=yes else @@ -9423,13 +9422,13 @@ EOF fi echo $ac_n "checking for struct dirent64""... $ac_c" 1>&6 -echo "configure:9427: checking for struct dirent64" >&5 +echo "configure:9426: checking for struct dirent64" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_STRUCT_DIRENT64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9433 "configure" +#line 9432 "configure" #include "confdefs.h" #if defined(HAVE_UNISTD_H) @@ -9441,7 +9440,7 @@ int main() { struct dirent64 de; ; return 0; } EOF -if { (eval echo configure:9445: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_STRUCT_DIRENT64=yes else @@ -9462,7 +9461,7 @@ EOF fi echo $ac_n "checking for major macro""... $ac_c" 1>&6 -echo "configure:9466: checking for major macro" >&5 +echo "configure:9465: checking for major macro" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_DEVICE_MAJOR_FN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9471,7 +9470,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_DEVICE_MAJOR_FN=cross else cat > conftest.$ac_ext <<EOF -#line 9475 "configure" +#line 9474 "configure" #include "confdefs.h" #if defined(HAVE_UNISTD_H) @@ -9480,7 +9479,7 @@ else #include <sys/types.h> main() { dev_t dev; int i = major(dev); return 0; } EOF -if { (eval echo configure:9484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_DEVICE_MAJOR_FN=yes else @@ -9503,7 +9502,7 @@ EOF fi echo $ac_n "checking for minor macro""... $ac_c" 1>&6 -echo "configure:9507: checking for minor macro" >&5 +echo "configure:9506: checking for minor macro" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_DEVICE_MINOR_FN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9512,7 +9511,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_DEVICE_MINOR_FN=cross else cat > conftest.$ac_ext <<EOF -#line 9516 "configure" +#line 9515 "configure" #include "confdefs.h" #if defined(HAVE_UNISTD_H) @@ -9521,7 +9520,7 @@ else #include <sys/types.h> main() { dev_t dev; int i = minor(dev); return 0; } EOF -if { (eval echo configure:9525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_DEVICE_MINOR_FN=yes else @@ -9544,7 +9543,7 @@ EOF fi echo $ac_n "checking for unsigned char""... $ac_c" 1>&6 -echo "configure:9548: checking for unsigned char" >&5 +echo "configure:9547: checking for unsigned char" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UNSIGNED_CHAR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9553,12 +9552,12 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_UNSIGNED_CHAR=cross else cat > conftest.$ac_ext <<EOF -#line 9557 "configure" +#line 9556 "configure" #include "confdefs.h" #include <stdio.h> main() { char c; c=250; exit((c > 0)?0:1); } EOF -if { (eval echo configure:9562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_UNSIGNED_CHAR=yes else @@ -9581,13 +9580,13 @@ EOF fi echo $ac_n "checking for sin_len in sock""... $ac_c" 1>&6 -echo "configure:9585: checking for sin_len in sock" >&5 +echo "configure:9584: checking for sin_len in sock" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_SOCK_SIN_LEN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9591 "configure" +#line 9590 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/socket.h> @@ -9596,7 +9595,7 @@ int main() { struct sockaddr_in sock; sock.sin_len = sizeof(sock); ; return 0; } EOF -if { (eval echo configure:9600: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9599: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_SOCK_SIN_LEN=yes else @@ -9617,13 +9616,13 @@ EOF fi echo $ac_n "checking whether seekdir returns void""... $ac_c" 1>&6 -echo "configure:9621: checking whether seekdir returns void" >&5 +echo "configure:9620: checking whether seekdir returns void" >&5 if eval "test \"`echo '$''{'samba_cv_SEEKDIR_RETURNS_VOID'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9627 "configure" +#line 9626 "configure" #include "confdefs.h" #include <sys/types.h> #include <dirent.h> @@ -9632,7 +9631,7 @@ int main() { return 0; ; return 0; } EOF -if { (eval echo configure:9636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9635: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_SEEKDIR_RETURNS_VOID=yes else @@ -9653,20 +9652,20 @@ EOF fi echo $ac_n "checking for __FILE__ macro""... $ac_c" 1>&6 -echo "configure:9657: checking for __FILE__ macro" >&5 +echo "configure:9656: checking for __FILE__ macro" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_FILE_MACRO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9663 "configure" +#line 9662 "configure" #include "confdefs.h" #include <stdio.h> int main() { printf("%s\n", __FILE__); ; return 0; } EOF -if { (eval echo configure:9670: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9669: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_FILE_MACRO=yes else @@ -9687,20 +9686,20 @@ EOF fi echo $ac_n "checking for __FUNCTION__ macro""... $ac_c" 1>&6 -echo "configure:9691: checking for __FUNCTION__ macro" >&5 +echo "configure:9690: checking for __FUNCTION__ macro" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_FUNCTION_MACRO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9697 "configure" +#line 9696 "configure" #include "confdefs.h" #include <stdio.h> int main() { printf("%s\n", __FUNCTION__); ; return 0; } EOF -if { (eval echo configure:9704: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9703: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_FUNCTION_MACRO=yes else @@ -9721,7 +9720,7 @@ EOF fi echo $ac_n "checking if gettimeofday takes tz argument""... $ac_c" 1>&6 -echo "configure:9725: checking if gettimeofday takes tz argument" >&5 +echo "configure:9724: checking if gettimeofday takes tz argument" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_GETTIMEOFDAY_TZ'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9730,14 +9729,14 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_GETTIMEOFDAY_TZ=cross else cat > conftest.$ac_ext <<EOF -#line 9734 "configure" +#line 9733 "configure" #include "confdefs.h" #include <sys/time.h> #include <unistd.h> main() { struct timeval tv; exit(gettimeofday(&tv, NULL));} EOF -if { (eval echo configure:9741: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9740: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_GETTIMEOFDAY_TZ=yes else @@ -9760,13 +9759,13 @@ EOF fi echo $ac_n "checking for __va_copy""... $ac_c" 1>&6 -echo "configure:9764: checking for __va_copy" >&5 +echo "configure:9763: checking for __va_copy" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_VA_COPY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9770 "configure" +#line 9769 "configure" #include "confdefs.h" #include <stdarg.h> va_list ap1,ap2; @@ -9774,7 +9773,7 @@ int main() { __va_copy(ap1,ap2); ; return 0; } EOF -if { (eval echo configure:9778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_VA_COPY=yes else @@ -9795,7 +9794,7 @@ EOF fi echo $ac_n "checking for C99 vsnprintf""... $ac_c" 1>&6 -echo "configure:9799: checking for C99 vsnprintf" >&5 +echo "configure:9798: checking for C99 vsnprintf" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_C99_VSNPRINTF'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9804,7 +9803,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_C99_VSNPRINTF=cross else cat > conftest.$ac_ext <<EOF -#line 9808 "configure" +#line 9807 "configure" #include "confdefs.h" #include <sys/types.h> @@ -9831,7 +9830,7 @@ void foo(const char *format, ...) { main() { foo("hello"); } EOF -if { (eval echo configure:9835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_C99_VSNPRINTF=yes else @@ -9854,7 +9853,7 @@ EOF fi echo $ac_n "checking for broken readdir""... $ac_c" 1>&6 -echo "configure:9858: checking for broken readdir" >&5 +echo "configure:9857: checking for broken readdir" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_BROKEN_READDIR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9863,7 +9862,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_BROKEN_READDIR=cross else cat > conftest.$ac_ext <<EOF -#line 9867 "configure" +#line 9866 "configure" #include "confdefs.h" #include <sys/types.h> #include <dirent.h> @@ -9871,7 +9870,7 @@ main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d); if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 && di->d_name[0] == 0) exit(0); exit(1);} EOF -if { (eval echo configure:9875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_BROKEN_READDIR=yes else @@ -9894,13 +9893,13 @@ EOF fi echo $ac_n "checking for utimbuf""... $ac_c" 1>&6 -echo "configure:9898: checking for utimbuf" >&5 +echo "configure:9897: checking for utimbuf" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UTIMBUF'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9904 "configure" +#line 9903 "configure" #include "confdefs.h" #include <sys/types.h> #include <utime.h> @@ -9908,7 +9907,7 @@ int main() { struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf)); ; return 0; } EOF -if { (eval echo configure:9912: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9911: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UTIMBUF=yes else @@ -9932,12 +9931,12 @@ fi for ac_func in pututline pututxline updwtmp updwtmpx getutmpx do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9936: checking for $ac_func" >&5 +echo "configure:9935: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9941 "configure" +#line 9940 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9960,7 +9959,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:9964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -9986,13 +9985,13 @@ done echo $ac_n "checking for ut_name in utmp""... $ac_c" 1>&6 -echo "configure:9990: checking for ut_name in utmp" >&5 +echo "configure:9989: checking for ut_name in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_NAME'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9996 "configure" +#line 9995 "configure" #include "confdefs.h" #include <sys/types.h> #include <utmp.h> @@ -10000,7 +9999,7 @@ int main() { struct utmp ut; ut.ut_name[0] = 'a'; ; return 0; } EOF -if { (eval echo configure:10004: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10003: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_NAME=yes else @@ -10021,13 +10020,13 @@ EOF fi echo $ac_n "checking for ut_user in utmp""... $ac_c" 1>&6 -echo "configure:10025: checking for ut_user in utmp" >&5 +echo "configure:10024: checking for ut_user in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_USER'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10031 "configure" +#line 10030 "configure" #include "confdefs.h" #include <sys/types.h> #include <utmp.h> @@ -10035,7 +10034,7 @@ int main() { struct utmp ut; ut.ut_user[0] = 'a'; ; return 0; } EOF -if { (eval echo configure:10039: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10038: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_USER=yes else @@ -10056,13 +10055,13 @@ EOF fi echo $ac_n "checking for ut_id in utmp""... $ac_c" 1>&6 -echo "configure:10060: checking for ut_id in utmp" >&5 +echo "configure:10059: checking for ut_id in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_ID'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10066 "configure" +#line 10065 "configure" #include "confdefs.h" #include <sys/types.h> #include <utmp.h> @@ -10070,7 +10069,7 @@ int main() { struct utmp ut; ut.ut_id[0] = 'a'; ; return 0; } EOF -if { (eval echo configure:10074: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10073: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_ID=yes else @@ -10091,13 +10090,13 @@ EOF fi echo $ac_n "checking for ut_host in utmp""... $ac_c" 1>&6 -echo "configure:10095: checking for ut_host in utmp" >&5 +echo "configure:10094: checking for ut_host in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_HOST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10101 "configure" +#line 10100 "configure" #include "confdefs.h" #include <sys/types.h> #include <utmp.h> @@ -10105,7 +10104,7 @@ int main() { struct utmp ut; ut.ut_host[0] = 'a'; ; return 0; } EOF -if { (eval echo configure:10109: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10108: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_HOST=yes else @@ -10126,13 +10125,13 @@ EOF fi echo $ac_n "checking for ut_time in utmp""... $ac_c" 1>&6 -echo "configure:10130: checking for ut_time in utmp" >&5 +echo "configure:10129: checking for ut_time in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_TIME'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10136 "configure" +#line 10135 "configure" #include "confdefs.h" #include <sys/types.h> #include <utmp.h> @@ -10140,7 +10139,7 @@ int main() { struct utmp ut; time_t t; ut.ut_time = t; ; return 0; } EOF -if { (eval echo configure:10144: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10143: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_TIME=yes else @@ -10161,13 +10160,13 @@ EOF fi echo $ac_n "checking for ut_tv in utmp""... $ac_c" 1>&6 -echo "configure:10165: checking for ut_tv in utmp" >&5 +echo "configure:10164: checking for ut_tv in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_TV'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10171 "configure" +#line 10170 "configure" #include "confdefs.h" #include <sys/types.h> #include <utmp.h> @@ -10175,7 +10174,7 @@ int main() { struct utmp ut; struct timeval tv; ut.ut_tv = tv; ; return 0; } EOF -if { (eval echo configure:10179: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10178: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_TV=yes else @@ -10196,13 +10195,13 @@ EOF fi echo $ac_n "checking for ut_type in utmp""... $ac_c" 1>&6 -echo "configure:10200: checking for ut_type in utmp" >&5 +echo "configure:10199: checking for ut_type in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_TYPE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10206 "configure" +#line 10205 "configure" #include "confdefs.h" #include <sys/types.h> #include <utmp.h> @@ -10210,7 +10209,7 @@ int main() { struct utmp ut; ut.ut_type = 0; ; return 0; } EOF -if { (eval echo configure:10214: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10213: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_TYPE=yes else @@ -10231,13 +10230,13 @@ EOF fi echo $ac_n "checking for ut_pid in utmp""... $ac_c" 1>&6 -echo "configure:10235: checking for ut_pid in utmp" >&5 +echo "configure:10234: checking for ut_pid in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_PID'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10241 "configure" +#line 10240 "configure" #include "confdefs.h" #include <sys/types.h> #include <utmp.h> @@ -10245,7 +10244,7 @@ int main() { struct utmp ut; ut.ut_pid = 0; ; return 0; } EOF -if { (eval echo configure:10249: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10248: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_PID=yes else @@ -10266,13 +10265,13 @@ EOF fi echo $ac_n "checking for ut_exit in utmp""... $ac_c" 1>&6 -echo "configure:10270: checking for ut_exit in utmp" >&5 +echo "configure:10269: checking for ut_exit in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_EXIT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10276 "configure" +#line 10275 "configure" #include "confdefs.h" #include <sys/types.h> #include <utmp.h> @@ -10280,7 +10279,7 @@ int main() { struct utmp ut; ut.ut_exit.e_exit = 0; ; return 0; } EOF -if { (eval echo configure:10284: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_EXIT=yes else @@ -10301,13 +10300,13 @@ EOF fi echo $ac_n "checking for ut_addr in utmp""... $ac_c" 1>&6 -echo "configure:10305: checking for ut_addr in utmp" >&5 +echo "configure:10304: checking for ut_addr in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_ADDR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10311 "configure" +#line 10310 "configure" #include "confdefs.h" #include <sys/types.h> #include <utmp.h> @@ -10315,7 +10314,7 @@ int main() { struct utmp ut; ut.ut_addr = 0; ; return 0; } EOF -if { (eval echo configure:10319: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10318: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_ADDR=yes else @@ -10337,13 +10336,13 @@ fi if test x$ac_cv_func_pututline = xyes ; then echo $ac_n "checking whether pututline returns pointer""... $ac_c" 1>&6 -echo "configure:10341: checking whether pututline returns pointer" >&5 +echo "configure:10340: checking whether pututline returns pointer" >&5 if eval "test \"`echo '$''{'samba_cv_PUTUTLINE_RETURNS_UTMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10347 "configure" +#line 10346 "configure" #include "confdefs.h" #include <sys/types.h> #include <utmp.h> @@ -10351,7 +10350,7 @@ int main() { struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg); ; return 0; } EOF -if { (eval echo configure:10355: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10354: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_PUTUTLINE_RETURNS_UTMP=yes else @@ -10373,13 +10372,13 @@ EOF fi echo $ac_n "checking for ut_syslen in utmpx""... $ac_c" 1>&6 -echo "configure:10377: checking for ut_syslen in utmpx" >&5 +echo "configure:10376: checking for ut_syslen in utmpx" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UX_UT_SYSLEN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10383 "configure" +#line 10382 "configure" #include "confdefs.h" #include <sys/types.h> #include <utmpx.h> @@ -10387,7 +10386,7 @@ int main() { struct utmpx ux; ux.ut_syslen = 0; ; return 0; } EOF -if { (eval echo configure:10391: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10390: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UX_UT_SYSLEN=yes else @@ -10411,7 +10410,7 @@ fi ################################################# # check for libiconv support echo $ac_n "checking whether to use libiconv""... $ac_c" 1>&6 -echo "configure:10415: checking whether to use libiconv" >&5 +echo "configure:10414: checking whether to use libiconv" >&5 # Check whether --with-libiconv or --without-libiconv was given. if test "${with_libiconv+set}" = set; then withval="$with_libiconv" @@ -10424,7 +10423,7 @@ if test "${with_libiconv+set}" = set; then CFLAGS="$CFLAGS -I$withval/include" LDFLAGS="$LDFLAGS -L$withval/lib" echo $ac_n "checking for iconv_open in -liconv""... $ac_c" 1>&6 -echo "configure:10428: checking for iconv_open in -liconv" >&5 +echo "configure:10427: checking for iconv_open in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv_open | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10432,7 +10431,7 @@ else ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext <<EOF -#line 10436 "configure" +#line 10435 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -10443,7 +10442,7 @@ int main() { iconv_open() ; return 0; } EOF -if { (eval echo configure:10447: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10446: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10486,7 +10485,7 @@ fi ############ # check for iconv in libc echo $ac_n "checking for working iconv""... $ac_c" 1>&6 -echo "configure:10490: checking for working iconv" >&5 +echo "configure:10489: checking for working iconv" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_NATIVE_ICONV'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10495,7 +10494,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_NATIVE_ICONV=cross else cat > conftest.$ac_ext <<EOF -#line 10499 "configure" +#line 10498 "configure" #include "confdefs.h" #include <iconv.h> @@ -10506,7 +10505,7 @@ main() { } EOF -if { (eval echo configure:10510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10509: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_NATIVE_ICONV=yes else @@ -10530,7 +10529,7 @@ fi echo $ac_n "checking for Linux kernel oplocks""... $ac_c" 1>&6 -echo "configure:10534: checking for Linux kernel oplocks" >&5 +echo "configure:10533: checking for Linux kernel oplocks" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_KERNEL_OPLOCKS_LINUX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10539,7 +10538,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross else cat > conftest.$ac_ext <<EOF -#line 10543 "configure" +#line 10542 "configure" #include "confdefs.h" #include <sys/types.h> @@ -10553,7 +10552,7 @@ main() { } EOF -if { (eval echo configure:10557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10556: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes else @@ -10576,7 +10575,7 @@ EOF fi echo $ac_n "checking for kernel change notify support""... $ac_c" 1>&6 -echo "configure:10580: checking for kernel change notify support" >&5 +echo "configure:10579: checking for kernel change notify support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_KERNEL_CHANGE_NOTIFY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10585,7 +10584,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross else cat > conftest.$ac_ext <<EOF -#line 10589 "configure" +#line 10588 "configure" #include "confdefs.h" #include <sys/types.h> @@ -10599,7 +10598,7 @@ main() { } EOF -if { (eval echo configure:10603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes else @@ -10622,7 +10621,7 @@ EOF fi echo $ac_n "checking for kernel share modes""... $ac_c" 1>&6 -echo "configure:10626: checking for kernel share modes" >&5 +echo "configure:10625: checking for kernel share modes" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_KERNEL_SHARE_MODES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10631,7 +10630,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_KERNEL_SHARE_MODES=cross else cat > conftest.$ac_ext <<EOF -#line 10635 "configure" +#line 10634 "configure" #include "confdefs.h" #include <sys/types.h> @@ -10647,7 +10646,7 @@ main() { } EOF -if { (eval echo configure:10651: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_KERNEL_SHARE_MODES=yes else @@ -10673,13 +10672,13 @@ fi echo $ac_n "checking for IRIX kernel oplock type definitions""... $ac_c" 1>&6 -echo "configure:10677: checking for IRIX kernel oplock type definitions" >&5 +echo "configure:10676: checking for IRIX kernel oplock type definitions" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_KERNEL_OPLOCKS_IRIX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10683 "configure" +#line 10682 "configure" #include "confdefs.h" #include <sys/types.h> #include <fcntl.h> @@ -10687,7 +10686,7 @@ int main() { oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1; ; return 0; } EOF -if { (eval echo configure:10691: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10690: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes else @@ -10708,7 +10707,7 @@ EOF fi echo $ac_n "checking for irix specific capabilities""... $ac_c" 1>&6 -echo "configure:10712: checking for irix specific capabilities" >&5 +echo "configure:10711: checking for irix specific capabilities" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10717,7 +10716,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross else cat > conftest.$ac_ext <<EOF -#line 10721 "configure" +#line 10720 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/capability.h> @@ -10732,7 +10731,7 @@ main() { } EOF -if { (eval echo configure:10736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10735: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes else @@ -10760,13 +10759,13 @@ fi # echo $ac_n "checking for int16 typedef included by rpc/rpc.h""... $ac_c" 1>&6 -echo "configure:10764: checking for int16 typedef included by rpc/rpc.h" >&5 +echo "configure:10763: checking for int16 typedef included by rpc/rpc.h" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_INT16_FROM_RPC_RPC_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10770 "configure" +#line 10769 "configure" #include "confdefs.h" #include <sys/types.h> #if defined(HAVE_RPC_RPC_H) @@ -10776,7 +10775,7 @@ int main() { int16 testvar; ; return 0; } EOF -if { (eval echo configure:10780: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10779: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes else @@ -10797,13 +10796,13 @@ EOF fi echo $ac_n "checking for uint16 typedef included by rpc/rpc.h""... $ac_c" 1>&6 -echo "configure:10801: checking for uint16 typedef included by rpc/rpc.h" >&5 +echo "configure:10800: checking for uint16 typedef included by rpc/rpc.h" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UINT16_FROM_RPC_RPC_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10807 "configure" +#line 10806 "configure" #include "confdefs.h" #include <sys/types.h> #if defined(HAVE_RPC_RPC_H) @@ -10813,7 +10812,7 @@ int main() { uint16 testvar; ; return 0; } EOF -if { (eval echo configure:10817: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10816: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes else @@ -10834,13 +10833,13 @@ EOF fi echo $ac_n "checking for int32 typedef included by rpc/rpc.h""... $ac_c" 1>&6 -echo "configure:10838: checking for int32 typedef included by rpc/rpc.h" >&5 +echo "configure:10837: checking for int32 typedef included by rpc/rpc.h" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_INT32_FROM_RPC_RPC_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10844 "configure" +#line 10843 "configure" #include "confdefs.h" #include <sys/types.h> #if defined(HAVE_RPC_RPC_H) @@ -10850,7 +10849,7 @@ int main() { int32 testvar; ; return 0; } EOF -if { (eval echo configure:10854: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10853: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes else @@ -10871,13 +10870,13 @@ EOF fi echo $ac_n "checking for uint32 typedef included by rpc/rpc.h""... $ac_c" 1>&6 -echo "configure:10875: checking for uint32 typedef included by rpc/rpc.h" >&5 +echo "configure:10874: checking for uint32 typedef included by rpc/rpc.h" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UINT32_FROM_RPC_RPC_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10881 "configure" +#line 10880 "configure" #include "confdefs.h" #include <sys/types.h> #if defined(HAVE_RPC_RPC_H) @@ -10887,7 +10886,7 @@ int main() { uint32 testvar; ; return 0; } EOF -if { (eval echo configure:10891: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10890: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes else @@ -10909,13 +10908,13 @@ fi echo $ac_n "checking for conflicting AUTH_ERROR define in rpc/rpc.h""... $ac_c" 1>&6 -echo "configure:10913: checking for conflicting AUTH_ERROR define in rpc/rpc.h" >&5 +echo "configure:10912: checking for conflicting AUTH_ERROR define in rpc/rpc.h" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10919 "configure" +#line 10918 "configure" #include "confdefs.h" #include <sys/types.h> #ifdef HAVE_SYS_SECURITY_H @@ -10929,7 +10928,7 @@ int main() { int testvar; ; return 0; } EOF -if { (eval echo configure:10933: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10932: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no else @@ -10950,16 +10949,16 @@ EOF fi echo $ac_n "checking for test routines""... $ac_c" 1>&6 -echo "configure:10954: checking for test routines" >&5 +echo "configure:10953: checking for test routines" >&5 if test "$cross_compiling" = yes; then echo "configure: warning: cannot run when cross-compiling" 1>&2 else cat > conftest.$ac_ext <<EOF -#line 10959 "configure" +#line 10958 "configure" #include "confdefs.h" #include "${srcdir-.}/tests/trivial.c" EOF -if { (eval echo configure:10963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then echo "$ac_t""yes" 1>&6 else @@ -10973,7 +10972,7 @@ fi echo $ac_n "checking for ftruncate extend""... $ac_c" 1>&6 -echo "configure:10977: checking for ftruncate extend" >&5 +echo "configure:10976: checking for ftruncate extend" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_FTRUNCATE_EXTEND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10982,11 +10981,11 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_FTRUNCATE_EXTEND=cross else cat > conftest.$ac_ext <<EOF -#line 10986 "configure" +#line 10985 "configure" #include "confdefs.h" #include "${srcdir-.}/tests/ftruncate.c" EOF -if { (eval echo configure:10990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_FTRUNCATE_EXTEND=yes else @@ -11009,7 +11008,7 @@ EOF fi echo $ac_n "checking for AF_LOCAL socket support""... $ac_c" 1>&6 -echo "configure:11013: checking for AF_LOCAL socket support" >&5 +echo "configure:11012: checking for AF_LOCAL socket support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_WORKING_AF_LOCAL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11018,11 +11017,11 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_WORKING_AF_LOCAL=cross else cat > conftest.$ac_ext <<EOF -#line 11022 "configure" +#line 11021 "configure" #include "confdefs.h" #include "${srcdir-.}/tests/unixsock.c" EOF -if { (eval echo configure:11026: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11025: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_WORKING_AF_LOCAL=yes else @@ -11046,7 +11045,7 @@ EOF fi echo $ac_n "checking for broken getgroups""... $ac_c" 1>&6 -echo "configure:11050: checking for broken getgroups" >&5 +echo "configure:11049: checking for broken getgroups" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_BROKEN_GETGROUPS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11055,11 +11054,11 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_BROKEN_GETGROUPS=cross else cat > conftest.$ac_ext <<EOF -#line 11059 "configure" +#line 11058 "configure" #include "confdefs.h" #include "${srcdir-.}/tests/getgroups.c" EOF -if { (eval echo configure:11063: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_BROKEN_GETGROUPS=yes else @@ -11082,7 +11081,7 @@ EOF fi echo $ac_n "checking whether getpass should be replaced""... $ac_c" 1>&6 -echo "configure:11086: checking whether getpass should be replaced" >&5 +echo "configure:11085: checking whether getpass should be replaced" >&5 if eval "test \"`echo '$''{'samba_cv_REPLACE_GETPASS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11090,7 +11089,7 @@ else SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper" cat > conftest.$ac_ext <<EOF -#line 11094 "configure" +#line 11093 "configure" #include "confdefs.h" #define REPLACE_GETPASS 1 @@ -11103,7 +11102,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:11107: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11106: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_REPLACE_GETPASS=yes else @@ -11126,7 +11125,7 @@ EOF fi echo $ac_n "checking for broken inet_ntoa""... $ac_c" 1>&6 -echo "configure:11130: checking for broken inet_ntoa" >&5 +echo "configure:11129: checking for broken inet_ntoa" >&5 if eval "test \"`echo '$''{'samba_cv_REPLACE_INET_NTOA'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11135,7 +11134,7 @@ if test "$cross_compiling" = yes; then samba_cv_REPLACE_INET_NTOA=cross else cat > conftest.$ac_ext <<EOF -#line 11139 "configure" +#line 11138 "configure" #include "confdefs.h" #include <stdio.h> @@ -11149,7 +11148,7 @@ if (strcmp(inet_ntoa(ip),"18.52.86.120") && strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); } exit(1);} EOF -if { (eval echo configure:11153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_REPLACE_INET_NTOA=yes else @@ -11172,7 +11171,7 @@ EOF fi echo $ac_n "checking for secure mkstemp""... $ac_c" 1>&6 -echo "configure:11176: checking for secure mkstemp" >&5 +echo "configure:11175: checking for secure mkstemp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_SECURE_MKSTEMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11181,7 +11180,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_SECURE_MKSTEMP=cross else cat > conftest.$ac_ext <<EOF -#line 11185 "configure" +#line 11184 "configure" #include "confdefs.h" #include <stdlib.h> #include <sys/types.h> @@ -11198,7 +11197,7 @@ main() { exit(0); } EOF -if { (eval echo configure:11202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_SECURE_MKSTEMP=yes else @@ -11221,7 +11220,7 @@ EOF fi echo $ac_n "checking for sysconf(_SC_NGROUPS_MAX)""... $ac_c" 1>&6 -echo "configure:11225: checking for sysconf(_SC_NGROUPS_MAX)" >&5 +echo "configure:11224: checking for sysconf(_SC_NGROUPS_MAX)" >&5 if eval "test \"`echo '$''{'samba_cv_SYSCONF_SC_NGROUPS_MAX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11230,12 +11229,12 @@ if test "$cross_compiling" = yes; then samba_cv_SYSCONF_SC_NGROUPS_MAX=cross else cat > conftest.$ac_ext <<EOF -#line 11234 "configure" +#line 11233 "configure" #include "confdefs.h" #include <unistd.h> main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); } EOF -if { (eval echo configure:11239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_SYSCONF_SC_NGROUPS_MAX=yes else @@ -11258,7 +11257,7 @@ EOF fi echo $ac_n "checking for root""... $ac_c" 1>&6 -echo "configure:11262: checking for root" >&5 +echo "configure:11261: checking for root" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_ROOT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11267,11 +11266,11 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_ROOT=cross else cat > conftest.$ac_ext <<EOF -#line 11271 "configure" +#line 11270 "configure" #include "confdefs.h" main() { exit(getuid() != 0); } EOF -if { (eval echo configure:11275: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_ROOT=yes else @@ -11299,7 +11298,7 @@ fi # look for a method of finding the list of network interfaces iface=no; echo $ac_n "checking for iface AIX""... $ac_c" 1>&6 -echo "configure:11303: checking for iface AIX" >&5 +echo "configure:11302: checking for iface AIX" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_IFACE_AIX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11308,7 +11307,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_IFACE_AIX=cross else cat > conftest.$ac_ext <<EOF -#line 11312 "configure" +#line 11311 "configure" #include "confdefs.h" #define HAVE_IFACE_AIX 1 @@ -11316,7 +11315,7 @@ else #include "confdefs.h" #include "${srcdir-.}/lib/interfaces.c" EOF -if { (eval echo configure:11320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_IFACE_AIX=yes else @@ -11340,7 +11339,7 @@ fi if test $iface = no; then echo $ac_n "checking for iface ifconf""... $ac_c" 1>&6 -echo "configure:11344: checking for iface ifconf" >&5 +echo "configure:11343: checking for iface ifconf" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_IFACE_IFCONF'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11349,7 +11348,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_IFACE_IFCONF=cross else cat > conftest.$ac_ext <<EOF -#line 11353 "configure" +#line 11352 "configure" #include "confdefs.h" #define HAVE_IFACE_IFCONF 1 @@ -11357,7 +11356,7 @@ else #include "confdefs.h" #include "${srcdir-.}/lib/interfaces.c" EOF -if { (eval echo configure:11361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11360: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_IFACE_IFCONF=yes else @@ -11382,7 +11381,7 @@ fi if test $iface = no; then echo $ac_n "checking for iface ifreq""... $ac_c" 1>&6 -echo "configure:11386: checking for iface ifreq" >&5 +echo "configure:11385: checking for iface ifreq" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_IFACE_IFREQ'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11391,7 +11390,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_IFACE_IFREQ=cross else cat > conftest.$ac_ext <<EOF -#line 11395 "configure" +#line 11394 "configure" #include "confdefs.h" #define HAVE_IFACE_IFREQ 1 @@ -11399,7 +11398,7 @@ else #include "confdefs.h" #include "${srcdir-.}/lib/interfaces.c" EOF -if { (eval echo configure:11403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_IFACE_IFREQ=yes else @@ -11428,7 +11427,7 @@ fi seteuid=no; if test $seteuid = no; then echo $ac_n "checking for setresuid""... $ac_c" 1>&6 -echo "configure:11432: checking for setresuid" >&5 +echo "configure:11431: checking for setresuid" >&5 if eval "test \"`echo '$''{'samba_cv_USE_SETRESUID'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11437,7 +11436,7 @@ if test "$cross_compiling" = yes; then samba_cv_USE_SETRESUID=cross else cat > conftest.$ac_ext <<EOF -#line 11441 "configure" +#line 11440 "configure" #include "confdefs.h" #define AUTOCONF_TEST 1 @@ -11445,7 +11444,7 @@ else #include "confdefs.h" #include "${srcdir-.}/lib/util_sec.c" EOF -if { (eval echo configure:11449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_USE_SETRESUID=yes else @@ -11471,7 +11470,7 @@ fi if test $seteuid = no; then echo $ac_n "checking for setreuid""... $ac_c" 1>&6 -echo "configure:11475: checking for setreuid" >&5 +echo "configure:11474: checking for setreuid" >&5 if eval "test \"`echo '$''{'samba_cv_USE_SETREUID'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11480,7 +11479,7 @@ if test "$cross_compiling" = yes; then samba_cv_USE_SETREUID=cross else cat > conftest.$ac_ext <<EOF -#line 11484 "configure" +#line 11483 "configure" #include "confdefs.h" #define AUTOCONF_TEST 1 @@ -11488,7 +11487,7 @@ else #include "confdefs.h" #include "${srcdir-.}/lib/util_sec.c" EOF -if { (eval echo configure:11492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_USE_SETREUID=yes else @@ -11513,7 +11512,7 @@ fi if test $seteuid = no; then echo $ac_n "checking for seteuid""... $ac_c" 1>&6 -echo "configure:11517: checking for seteuid" >&5 +echo "configure:11516: checking for seteuid" >&5 if eval "test \"`echo '$''{'samba_cv_USE_SETEUID'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11522,7 +11521,7 @@ if test "$cross_compiling" = yes; then samba_cv_USE_SETEUID=cross else cat > conftest.$ac_ext <<EOF -#line 11526 "configure" +#line 11525 "configure" #include "confdefs.h" #define AUTOCONF_TEST 1 @@ -11530,7 +11529,7 @@ else #include "confdefs.h" #include "${srcdir-.}/lib/util_sec.c" EOF -if { (eval echo configure:11534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_USE_SETEUID=yes else @@ -11555,7 +11554,7 @@ fi if test $seteuid = no; then echo $ac_n "checking for setuidx""... $ac_c" 1>&6 -echo "configure:11559: checking for setuidx" >&5 +echo "configure:11558: checking for setuidx" >&5 if eval "test \"`echo '$''{'samba_cv_USE_SETUIDX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11564,7 +11563,7 @@ if test "$cross_compiling" = yes; then samba_cv_USE_SETUIDX=cross else cat > conftest.$ac_ext <<EOF -#line 11568 "configure" +#line 11567 "configure" #include "confdefs.h" #define AUTOCONF_TEST 1 @@ -11572,7 +11571,7 @@ else #include "confdefs.h" #include "${srcdir-.}/lib/util_sec.c" EOF -if { (eval echo configure:11576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_USE_SETUIDX=yes else @@ -11597,7 +11596,7 @@ fi echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:11601: checking for working mmap" >&5 +echo "configure:11600: checking for working mmap" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_MMAP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11606,11 +11605,11 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_MMAP=cross else cat > conftest.$ac_ext <<EOF -#line 11610 "configure" +#line 11609 "configure" #include "confdefs.h" #include "${srcdir-.}/tests/shared_mmap.c" EOF -if { (eval echo configure:11614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_MMAP=yes else @@ -11633,7 +11632,7 @@ EOF fi echo $ac_n "checking for ftruncate needs root""... $ac_c" 1>&6 -echo "configure:11637: checking for ftruncate needs root" >&5 +echo "configure:11636: checking for ftruncate needs root" >&5 if eval "test \"`echo '$''{'samba_cv_FTRUNCATE_NEEDS_ROOT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11642,11 +11641,11 @@ if test "$cross_compiling" = yes; then samba_cv_FTRUNCATE_NEEDS_ROOT=cross else cat > conftest.$ac_ext <<EOF -#line 11646 "configure" +#line 11645 "configure" #include "confdefs.h" #include "${srcdir-.}/tests/ftruncroot.c" EOF -if { (eval echo configure:11650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_FTRUNCATE_NEEDS_ROOT=yes else @@ -11669,7 +11668,7 @@ EOF fi echo $ac_n "checking for fcntl locking""... $ac_c" 1>&6 -echo "configure:11673: checking for fcntl locking" >&5 +echo "configure:11672: checking for fcntl locking" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_FCNTL_LOCK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11678,11 +11677,11 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_FCNTL_LOCK=cross else cat > conftest.$ac_ext <<EOF -#line 11682 "configure" +#line 11681 "configure" #include "confdefs.h" #include "${srcdir-.}/tests/fcntl_lock.c" EOF -if { (eval echo configure:11686: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_FCNTL_LOCK=yes else @@ -11705,7 +11704,7 @@ EOF fi echo $ac_n "checking for broken (glibc2.1/x86) 64 bit fcntl locking""... $ac_c" 1>&6 -echo "configure:11709: checking for broken (glibc2.1/x86) 64 bit fcntl locking" >&5 +echo "configure:11708: checking for broken (glibc2.1/x86) 64 bit fcntl locking" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_BROKEN_FCNTL64_LOCKS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11714,11 +11713,11 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross else cat > conftest.$ac_ext <<EOF -#line 11718 "configure" +#line 11717 "configure" #include "confdefs.h" #include "${srcdir-.}/tests/fcntl_lock64.c" EOF -if { (eval echo configure:11722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes else @@ -11743,7 +11742,7 @@ else echo $ac_n "checking for 64 bit fcntl locking""... $ac_c" 1>&6 -echo "configure:11747: checking for 64 bit fcntl locking" >&5 +echo "configure:11746: checking for 64 bit fcntl locking" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_STRUCT_FLOCK64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11752,7 +11751,7 @@ else samba_cv_HAVE_STRUCT_FLOCK64=cross else cat > conftest.$ac_ext <<EOF -#line 11756 "configure" +#line 11755 "configure" #include "confdefs.h" #if defined(HAVE_UNISTD_H) @@ -11776,7 +11775,7 @@ exit(1); #endif } EOF -if { (eval echo configure:11780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_STRUCT_FLOCK64=yes else @@ -11801,13 +11800,13 @@ EOF fi echo $ac_n "checking for st_blocks in struct stat""... $ac_c" 1>&6 -echo "configure:11805: checking for st_blocks in struct stat" >&5 +echo "configure:11804: checking for st_blocks in struct stat" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_STAT_ST_BLOCKS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 11811 "configure" +#line 11810 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/stat.h> @@ -11816,7 +11815,7 @@ int main() { struct stat st; st.st_blocks = 0; ; return 0; } EOF -if { (eval echo configure:11820: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11819: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_STAT_ST_BLOCKS=yes else @@ -11837,13 +11836,13 @@ EOF fi echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6 -echo "configure:11841: checking for st_blksize in struct stat" >&5 +echo "configure:11840: checking for st_blksize in struct stat" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_STAT_ST_BLKSIZE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 11847 "configure" +#line 11846 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/stat.h> @@ -11852,7 +11851,7 @@ int main() { struct stat st; st.st_blksize = 0; ; return 0; } EOF -if { (eval echo configure:11856: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11855: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_STAT_ST_BLKSIZE=yes else @@ -11875,13 +11874,13 @@ fi case "$host_os" in *linux*) echo $ac_n "checking for broken RedHat 7.2 system header files""... $ac_c" 1>&6 -echo "configure:11879: checking for broken RedHat 7.2 system header files" >&5 +echo "configure:11878: checking for broken RedHat 7.2 system header files" >&5 if eval "test \"`echo '$''{'samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 11885 "configure" +#line 11884 "configure" #include "confdefs.h" #ifdef HAVE_SYS_VFS_H @@ -11895,7 +11894,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:11899: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11898: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no else @@ -11918,13 +11917,13 @@ fi esac echo $ac_n "checking for broken nisplus include files""... $ac_c" 1>&6 -echo "configure:11922: checking for broken nisplus include files" >&5 +echo "configure:11921: checking for broken nisplus include files" >&5 if eval "test \"`echo '$''{'samba_cv_BROKEN_NISPLUS_INCLUDE_FILES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 11928 "configure" +#line 11927 "configure" #include "confdefs.h" #include <sys/acl.h> #if defined(HAVE_RPCSVC_NIS_H) @@ -11934,7 +11933,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:11938: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11937: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no else @@ -11958,7 +11957,7 @@ fi ################################################# # check for smbwrapper support echo $ac_n "checking whether to use smbwrapper""... $ac_c" 1>&6 -echo "configure:11962: checking whether to use smbwrapper" >&5 +echo "configure:11961: checking whether to use smbwrapper" >&5 # Check whether --with-smbwrapper or --without-smbwrapper was given. if test "${with_smbwrapper+set}" = set; then withval="$with_smbwrapper" @@ -12005,7 +12004,7 @@ fi ################################################# # check for AFS clear-text auth support echo $ac_n "checking whether to use AFS clear-text auth""... $ac_c" 1>&6 -echo "configure:12009: checking whether to use AFS clear-text auth" >&5 +echo "configure:12008: checking whether to use AFS clear-text auth" >&5 # Check whether --with-afs or --without-afs was given. if test "${with_afs+set}" = set; then withval="$with_afs" @@ -12031,7 +12030,7 @@ fi ################################################# # check for the DFS clear-text auth system echo $ac_n "checking whether to use DFS clear-text auth""... $ac_c" 1>&6 -echo "configure:12035: checking whether to use DFS clear-text auth" >&5 +echo "configure:12034: checking whether to use DFS clear-text auth" >&5 # Check whether --with-dfs or --without-dfs was given. if test "${with_dfs+set}" = set; then withval="$with_dfs" @@ -12058,7 +12057,7 @@ fi with_ads_support=yes echo $ac_n "checking whether to use Active Directory""... $ac_c" 1>&6 -echo "configure:12062: checking whether to use Active Directory" >&5 +echo "configure:12061: checking whether to use Active Directory" >&5 # Check whether --with-ads or --without-ads was given. if test "${with_ads+set}" = set; then @@ -12086,7 +12085,7 @@ if test x"$with_ads_support" = x"yes"; then ################################################# # check for location of Kerberos 5 install echo $ac_n "checking for kerberos 5 install path""... $ac_c" 1>&6 -echo "configure:12090: checking for kerberos 5 install path" >&5 +echo "configure:12089: checking for kerberos 5 install path" >&5 # Check whether --with-krb5 or --without-krb5 was given. if test "${with_krb5+set}" = set; then withval="$with_krb5" @@ -12114,7 +12113,7 @@ if test x$FOUND_KRB5 = x"no"; then ################################################# # see if this box has the RedHat location for kerberos echo $ac_n "checking for /usr/kerberos""... $ac_c" 1>&6 -echo "configure:12118: checking for /usr/kerberos" >&5 +echo "configure:12117: checking for /usr/kerberos" >&5 if test -d /usr/kerberos; then LDFLAGS="$LDFLAGS -L/usr/kerberos/lib" CFLAGS="$CFLAGS -I/usr/kerberos/include" @@ -12133,17 +12132,17 @@ fi do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:12137: checking for $ac_hdr" >&5 +echo "configure:12136: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 12142 "configure" +#line 12141 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12147: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12146: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12176,17 +12175,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:12180: checking for $ac_hdr" >&5 +echo "configure:12179: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 12185 "configure" +#line 12184 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12190: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12189: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12216,7 +12215,7 @@ done ################################################################## # we might need the k5crypto and com_err libraries on some systems echo $ac_n "checking for _et_list in -lcom_err""... $ac_c" 1>&6 -echo "configure:12220: checking for _et_list in -lcom_err" >&5 +echo "configure:12219: checking for _et_list in -lcom_err" >&5 ac_lib_var=`echo com_err'_'_et_list | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12224,7 +12223,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcom_err $LIBS" cat > conftest.$ac_ext <<EOF -#line 12228 "configure" +#line 12227 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12235,7 +12234,7 @@ int main() { _et_list() ; return 0; } EOF -if { (eval echo configure:12239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12256,7 +12255,7 @@ else fi echo $ac_n "checking for krb5_encrypt_data in -lk5crypto""... $ac_c" 1>&6 -echo "configure:12260: checking for krb5_encrypt_data in -lk5crypto" >&5 +echo "configure:12259: checking for krb5_encrypt_data in -lk5crypto" >&5 ac_lib_var=`echo k5crypto'_'krb5_encrypt_data | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12264,7 +12263,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lk5crypto $LIBS" cat > conftest.$ac_ext <<EOF -#line 12268 "configure" +#line 12267 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12275,7 +12274,7 @@ int main() { krb5_encrypt_data() ; return 0; } EOF -if { (eval echo configure:12279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12278: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12300,7 +12299,7 @@ fi # now see if we can find the krb5 libs in standard paths # or as specified above echo $ac_n "checking for krb5_mk_req_extended in -lkrb5""... $ac_c" 1>&6 -echo "configure:12304: checking for krb5_mk_req_extended in -lkrb5" >&5 +echo "configure:12303: checking for krb5_mk_req_extended in -lkrb5" >&5 ac_lib_var=`echo krb5'_'krb5_mk_req_extended | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12308,7 +12307,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lkrb5 $LIBS" cat > conftest.$ac_ext <<EOF -#line 12312 "configure" +#line 12311 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12319,7 +12318,7 @@ int main() { krb5_mk_req_extended() ; return 0; } EOF -if { (eval echo configure:12323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12347,7 +12346,7 @@ fi ######################################################## # now see if we can find the gssapi libs in standard paths echo $ac_n "checking for gss_display_status in -lgssapi_krb5""... $ac_c" 1>&6 -echo "configure:12351: checking for gss_display_status in -lgssapi_krb5" >&5 +echo "configure:12350: checking for gss_display_status in -lgssapi_krb5" >&5 ac_lib_var=`echo gssapi_krb5'_'gss_display_status | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12355,7 +12354,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lgssapi_krb5 $LIBS" cat > conftest.$ac_ext <<EOF -#line 12359 "configure" +#line 12358 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12366,7 +12365,7 @@ int main() { gss_display_status() ; return 0; } EOF -if { (eval echo configure:12370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12397,7 +12396,7 @@ fi with_ldap_support=yes echo $ac_n "checking whether to use LDAP""... $ac_c" 1>&6 -echo "configure:12401: checking whether to use LDAP" >&5 +echo "configure:12400: checking whether to use LDAP" >&5 # Check whether --with-ldap or --without-ldap was given. if test "${with_ldap+set}" = set; then @@ -12418,7 +12417,7 @@ if test x"$with_ldap_support" = x"yes"; then # we might need the lber lib on some systems. To avoid link errors # this test must be before the libldap test echo $ac_n "checking for ber_scanf in -llber""... $ac_c" 1>&6 -echo "configure:12422: checking for ber_scanf in -llber" >&5 +echo "configure:12421: checking for ber_scanf in -llber" >&5 ac_lib_var=`echo lber'_'ber_scanf | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12426,7 +12425,7 @@ else ac_save_LIBS="$LIBS" LIBS="-llber $LIBS" cat > conftest.$ac_ext <<EOF -#line 12430 "configure" +#line 12429 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12437,7 +12436,7 @@ int main() { ber_scanf() ; return 0; } EOF -if { (eval echo configure:12441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12440: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12462,7 +12461,7 @@ fi # now see if we can find the ldap libs in standard paths if test x$have_ldap != xyes; then echo $ac_n "checking for ldap_domain2hostlist in -lldap""... $ac_c" 1>&6 -echo "configure:12466: checking for ldap_domain2hostlist in -lldap" >&5 +echo "configure:12465: checking for ldap_domain2hostlist in -lldap" >&5 ac_lib_var=`echo ldap'_'ldap_domain2hostlist | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12470,7 +12469,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lldap $LIBS" cat > conftest.$ac_ext <<EOF -#line 12474 "configure" +#line 12473 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12481,7 +12480,7 @@ int main() { ldap_domain2hostlist() ; return 0; } EOF -if { (eval echo configure:12485: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12512,12 +12511,12 @@ fi for ac_func in ldap_set_rebind_proc do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12516: checking for $ac_func" >&5 +echo "configure:12515: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 12521 "configure" +#line 12520 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -12540,7 +12539,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:12544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12543: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12565,13 +12564,13 @@ fi done echo $ac_n "checking whether ldap_set_rebind_proc takes 3 arguments""... $ac_c" 1>&6 -echo "configure:12569: checking whether ldap_set_rebind_proc takes 3 arguments" >&5 +echo "configure:12568: checking whether ldap_set_rebind_proc takes 3 arguments" >&5 if eval "test \"`echo '$''{'pam_ldap_cv_ldap_set_rebind_proc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 12575 "configure" +#line 12574 "configure" #include "confdefs.h" #include <lber.h> @@ -12580,7 +12579,7 @@ int main() { ldap_set_rebind_proc(0, 0, 0); ; return 0; } EOF -if { (eval echo configure:12584: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12583: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* pam_ldap_cv_ldap_set_rebind_proc=3 else @@ -12603,7 +12602,7 @@ fi ################################################# # check for automount support echo $ac_n "checking whether to use AUTOMOUNT""... $ac_c" 1>&6 -echo "configure:12607: checking whether to use AUTOMOUNT" >&5 +echo "configure:12606: checking whether to use AUTOMOUNT" >&5 # Check whether --with-automount or --without-automount was given. if test "${with_automount+set}" = set; then withval="$with_automount" @@ -12628,7 +12627,7 @@ fi ################################################# # check for smbmount support echo $ac_n "checking whether to use SMBMOUNT""... $ac_c" 1>&6 -echo "configure:12632: checking whether to use SMBMOUNT" >&5 +echo "configure:12631: checking whether to use SMBMOUNT" >&5 # Check whether --with-smbmount or --without-smbmount was given. if test "${with_smbmount+set}" = set; then withval="$with_smbmount" @@ -12665,7 +12664,7 @@ fi # check for a PAM clear-text auth, accounts, password and session support with_pam_for_crypt=no echo $ac_n "checking whether to use PAM""... $ac_c" 1>&6 -echo "configure:12669: checking whether to use PAM" >&5 +echo "configure:12668: checking whether to use PAM" >&5 # Check whether --with-pam or --without-pam was given. if test "${with_pam+set}" = set; then withval="$with_pam" @@ -12676,7 +12675,7 @@ if test "${with_pam+set}" = set; then #define WITH_PAM 1 EOF - AUTHLIBS="$AUTHLIBS -lpam" + LIBS="$LIBS -lpam" with_pam_for_crypt=yes ;; *) @@ -12691,7 +12690,7 @@ fi # we can't build a pam module if we don't have pam. echo $ac_n "checking for pam_get_data in -lpam""... $ac_c" 1>&6 -echo "configure:12695: checking for pam_get_data in -lpam" >&5 +echo "configure:12694: checking for pam_get_data in -lpam" >&5 ac_lib_var=`echo pam'_'pam_get_data | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12699,7 +12698,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lpam $LIBS" cat > conftest.$ac_ext <<EOF -#line 12703 "configure" +#line 12702 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12710,7 +12709,7 @@ int main() { pam_get_data() ; return 0; } EOF -if { (eval echo configure:12714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12713: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12737,7 +12736,7 @@ fi ################################################# # check for pam_smbpass support echo $ac_n "checking whether to use pam_smbpass""... $ac_c" 1>&6 -echo "configure:12741: checking whether to use pam_smbpass" >&5 +echo "configure:12740: checking whether to use pam_smbpass" >&5 # Check whether --with-pam_smbpass or --without-pam_smbpass was given. if test "${with_pam_smbpass+set}" = set; then withval="$with_pam_smbpass" @@ -12775,12 +12774,12 @@ if test x"$with_pam_for_crypt" = x"no"; then for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12779: checking for $ac_func" >&5 +echo "configure:12778: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 12784 "configure" +#line 12783 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -12803,7 +12802,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:12807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12829,7 +12828,7 @@ done if test x"$ac_cv_func_crypt" = x"no"; then echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:12833: checking for crypt in -lcrypt" >&5 +echo "configure:12832: checking for crypt in -lcrypt" >&5 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12837,7 +12836,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcrypt $LIBS" cat > conftest.$ac_ext <<EOF -#line 12841 "configure" +#line 12840 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -12848,7 +12847,7 @@ int main() { crypt() ; return 0; } EOF -if { (eval echo configure:12852: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12863,7 +12862,7 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - AUTHLIBS="$AUTHLIBS -lcrypt"; + LIBS="$LIBS -lcrypt"; cat >> confdefs.h <<\EOF #define HAVE_CRYPT 1 EOF @@ -12883,22 +12882,20 @@ fi ## if test $with_pam_for_crypt = no; then echo $ac_n "checking for a crypt that needs truncated salt""... $ac_c" 1>&6 -echo "configure:12887: checking for a crypt that needs truncated salt" >&5 +echo "configure:12886: checking for a crypt that needs truncated salt" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_TRUNCATED_SALT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else -crypt_LIBS="$LIBS" -LIBS="$AUTHLIBS $LIBS" if test "$cross_compiling" = yes; then samba_cv_HAVE_TRUNCATED_SALT=cross else cat > conftest.$ac_ext <<EOF -#line 12898 "configure" +#line 12895 "configure" #include "confdefs.h" #include "${srcdir-.}/tests/crypttest.c" EOF -if { (eval echo configure:12902: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:12899: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_TRUNCATED_SALT=no else @@ -12910,7 +12907,6 @@ fi rm -fr conftest* fi -LIBS="$crypt_LIBS" fi echo "$ac_t""$samba_cv_HAVE_TRUNCATED_SALT" 1>&6 @@ -12925,7 +12921,7 @@ fi # New experimental SAM system echo $ac_n "checking whether to build the new (experimental) SAM database""... $ac_c" 1>&6 -echo "configure:12929: checking whether to build the new (experimental) SAM database" >&5 +echo "configure:12925: checking whether to build the new (experimental) SAM database" >&5 # Check whether --with-sam or --without-sam was given. if test "${with_sam+set}" = set; then withval="$with_sam" @@ -12957,7 +12953,7 @@ fi ################################################# # check for a LDAP password database configuration backwards compatibility echo $ac_n "checking whether to use LDAP SAM 2.2 compatible configuration""... $ac_c" 1>&6 -echo "configure:12961: checking whether to use LDAP SAM 2.2 compatible configuration" >&5 +echo "configure:12957: checking whether to use LDAP SAM 2.2 compatible configuration" >&5 # Check whether --with-ldapsam or --without-ldapsam was given. if test "${with_ldapsam+set}" = set; then withval="$with_ldapsam" @@ -12982,7 +12978,7 @@ fi ################################################# # check for a TDB password database echo $ac_n "checking whether to use TDB SAM database""... $ac_c" 1>&6 -echo "configure:12986: checking whether to use TDB SAM database" >&5 +echo "configure:12982: checking whether to use TDB SAM database" >&5 # Check whether --with-tdbsam or --without-tdbsam was given. if test "${with_tdbsam+set}" = set; then withval="$with_tdbsam" @@ -13007,7 +13003,7 @@ fi ################################################# # check for a NISPLUS password database echo $ac_n "checking whether to use NISPLUS SAM database""... $ac_c" 1>&6 -echo "configure:13011: checking whether to use NISPLUS SAM database" >&5 +echo "configure:13007: checking whether to use NISPLUS SAM database" >&5 # Check whether --with-nisplussam or --without-nisplussam was given. if test "${with_nisplussam+set}" = set; then withval="$with_nisplussam" @@ -13038,7 +13034,7 @@ fi ################################################# # check for a NISPLUS_HOME support echo $ac_n "checking whether to use NISPLUS_HOME""... $ac_c" 1>&6 -echo "configure:13042: checking whether to use NISPLUS_HOME" >&5 +echo "configure:13038: checking whether to use NISPLUS_HOME" >&5 # Check whether --with-nisplus-home or --without-nisplus-home was given. if test "${with_nisplus_home+set}" = set; then withval="$with_nisplus_home" @@ -13063,7 +13059,7 @@ fi ################################################# # check for syslog logging echo $ac_n "checking whether to use syslog logging""... $ac_c" 1>&6 -echo "configure:13067: checking whether to use syslog logging" >&5 +echo "configure:13063: checking whether to use syslog logging" >&5 # Check whether --with-syslog or --without-syslog was given. if test "${with_syslog+set}" = set; then withval="$with_syslog" @@ -13088,7 +13084,7 @@ fi ################################################# # check for a shared memory profiling support echo $ac_n "checking whether to use profiling""... $ac_c" 1>&6 -echo "configure:13092: checking whether to use profiling" >&5 +echo "configure:13088: checking whether to use profiling" >&5 # Check whether --with-profiling-data or --without-profiling-data was given. if test "${with_profiling_data+set}" = set; then withval="$with_profiling_data" @@ -13116,7 +13112,7 @@ fi QUOTAOBJS=smbd/noquotas.o echo $ac_n "checking whether to support disk-quotas""... $ac_c" 1>&6 -echo "configure:13120: checking whether to support disk-quotas" >&5 +echo "configure:13116: checking whether to support disk-quotas" >&5 # Check whether --with-quotas or --without-quotas was given. if test "${with_quotas+set}" = set; then withval="$with_quotas" @@ -13127,13 +13123,13 @@ if test "${with_quotas+set}" = set; then *linux*) # Check for kernel 2.4.x quota braindamage... echo $ac_n "checking for linux 2.4.x quota braindamage..""... $ac_c" 1>&6 -echo "configure:13131: checking for linux 2.4.x quota braindamage.." >&5 +echo "configure:13127: checking for linux 2.4.x quota braindamage.." >&5 if eval "test \"`echo '$''{'samba_cv_linux_2_4_quota_braindamage'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 13137 "configure" +#line 13133 "configure" #include "confdefs.h" #include <stdio.h> #include <sys/types.h> @@ -13145,7 +13141,7 @@ int main() { struct mem_dqblk D; ; return 0; } EOF -if { (eval echo configure:13149: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13145: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_linux_2_4_quota_braindamage=yes else @@ -13194,7 +13190,7 @@ fi # check for experimental utmp accounting echo $ac_n "checking whether to support utmp accounting""... $ac_c" 1>&6 -echo "configure:13198: checking whether to support utmp accounting" >&5 +echo "configure:13194: checking whether to support utmp accounting" >&5 # Check whether --with-utmp or --without-utmp was given. if test "${with_utmp+set}" = set; then withval="$with_utmp" @@ -13219,7 +13215,7 @@ fi ################################################# # choose native language(s) of man pages echo $ac_n "checking chosen man pages' language(s)""... $ac_c" 1>&6 -echo "configure:13223: checking chosen man pages' language(s)" >&5 +echo "configure:13219: checking chosen man pages' language(s)" >&5 # Check whether --with-manpages-langs or --without-manpages-langs was given. if test "${with_manpages_langs+set}" = set; then withval="$with_manpages_langs" @@ -13250,7 +13246,7 @@ fi LIBSMBCLIENT_SHARED= LIBSMBCLIENT= echo $ac_n "checking whether to build the libsmbclient shared library""... $ac_c" 1>&6 -echo "configure:13254: checking whether to build the libsmbclient shared library" >&5 +echo "configure:13250: checking whether to build the libsmbclient shared library" >&5 # Check whether --with-libsmbclient or --without-libsmbclient was given. if test "${with_libsmbclient+set}" = set; then withval="$with_libsmbclient" @@ -13278,14 +13274,14 @@ fi ################################################# # these tests are taken from the GNU fileutils package echo "checking how to get filesystem space usage" 1>&6 -echo "configure:13282: checking how to get filesystem space usage" >&5 +echo "configure:13278: checking how to get filesystem space usage" >&5 space=no # Test for statvfs64. if test $space = no; then # SVR4 echo $ac_n "checking statvfs64 function (SVR4)""... $ac_c" 1>&6 -echo "configure:13289: checking statvfs64 function (SVR4)" >&5 +echo "configure:13285: checking statvfs64 function (SVR4)" >&5 if eval "test \"`echo '$''{'fu_cv_sys_stat_statvfs64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13293,7 +13289,7 @@ else fu_cv_sys_stat_statvfs64=cross else cat > conftest.$ac_ext <<EOF -#line 13297 "configure" +#line 13293 "configure" #include "confdefs.h" #if defined(HAVE_UNISTD_H) @@ -13307,7 +13303,7 @@ else exit (statvfs64 (".", &fsd)); } EOF -if { (eval echo configure:13311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then fu_cv_sys_stat_statvfs64=yes else @@ -13340,12 +13336,12 @@ fi if test $space = no; then # SVR4 echo $ac_n "checking statvfs function (SVR4)""... $ac_c" 1>&6 -echo "configure:13344: checking statvfs function (SVR4)" >&5 +echo "configure:13340: checking statvfs function (SVR4)" >&5 if eval "test \"`echo '$''{'fu_cv_sys_stat_statvfs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 13349 "configure" +#line 13345 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/statvfs.h> @@ -13353,7 +13349,7 @@ int main() { struct statvfs fsd; statvfs (0, &fsd); ; return 0; } EOF -if { (eval echo configure:13357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* fu_cv_sys_stat_statvfs=yes else @@ -13378,7 +13374,7 @@ fi if test $space = no; then # DEC Alpha running OSF/1 echo $ac_n "checking for 3-argument statfs function (DEC OSF/1)""... $ac_c" 1>&6 -echo "configure:13382: checking for 3-argument statfs function (DEC OSF/1)" >&5 +echo "configure:13378: checking for 3-argument statfs function (DEC OSF/1)" >&5 if eval "test \"`echo '$''{'fu_cv_sys_stat_statfs3_osf1'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13386,7 +13382,7 @@ else fu_cv_sys_stat_statfs3_osf1=no else cat > conftest.$ac_ext <<EOF -#line 13390 "configure" +#line 13386 "configure" #include "confdefs.h" #include <sys/param.h> @@ -13399,7 +13395,7 @@ else exit (statfs (".", &fsd, sizeof (struct statfs))); } EOF -if { (eval echo configure:13403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then fu_cv_sys_stat_statfs3_osf1=yes else @@ -13426,7 +13422,7 @@ fi if test $space = no; then # AIX echo $ac_n "checking for two-argument statfs with statfs.bsize member (AIX, 4.3BSD)""... $ac_c" 1>&6 -echo "configure:13430: checking for two-argument statfs with statfs.bsize member (AIX, 4.3BSD)" >&5 +echo "configure:13426: checking for two-argument statfs with statfs.bsize member (AIX, 4.3BSD)" >&5 if eval "test \"`echo '$''{'fu_cv_sys_stat_statfs2_bsize'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13434,7 +13430,7 @@ else fu_cv_sys_stat_statfs2_bsize=no else cat > conftest.$ac_ext <<EOF -#line 13438 "configure" +#line 13434 "configure" #include "confdefs.h" #ifdef HAVE_SYS_PARAM_H @@ -13453,7 +13449,7 @@ else exit (statfs (".", &fsd)); } EOF -if { (eval echo configure:13457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13453: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then fu_cv_sys_stat_statfs2_bsize=yes else @@ -13480,7 +13476,7 @@ fi if test $space = no; then # SVR3 echo $ac_n "checking for four-argument statfs (AIX-3.2.5, SVR3)""... $ac_c" 1>&6 -echo "configure:13484: checking for four-argument statfs (AIX-3.2.5, SVR3)" >&5 +echo "configure:13480: checking for four-argument statfs (AIX-3.2.5, SVR3)" >&5 if eval "test \"`echo '$''{'fu_cv_sys_stat_statfs4'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13488,7 +13484,7 @@ else fu_cv_sys_stat_statfs4=no else cat > conftest.$ac_ext <<EOF -#line 13492 "configure" +#line 13488 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/statfs.h> @@ -13498,7 +13494,7 @@ else exit (statfs (".", &fsd, sizeof fsd, 0)); } EOF -if { (eval echo configure:13502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then fu_cv_sys_stat_statfs4=yes else @@ -13525,7 +13521,7 @@ fi if test $space = no; then # 4.4BSD and NetBSD echo $ac_n "checking for two-argument statfs with statfs.fsize member (4.4BSD and NetBSD)""... $ac_c" 1>&6 -echo "configure:13529: checking for two-argument statfs with statfs.fsize member (4.4BSD and NetBSD)" >&5 +echo "configure:13525: checking for two-argument statfs with statfs.fsize member (4.4BSD and NetBSD)" >&5 if eval "test \"`echo '$''{'fu_cv_sys_stat_statfs2_fsize'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13533,7 +13529,7 @@ else fu_cv_sys_stat_statfs2_fsize=no else cat > conftest.$ac_ext <<EOF -#line 13537 "configure" +#line 13533 "configure" #include "confdefs.h" #include <sys/types.h> #ifdef HAVE_SYS_PARAM_H @@ -13549,7 +13545,7 @@ else exit (statfs (".", &fsd)); } EOF -if { (eval echo configure:13553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13549: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then fu_cv_sys_stat_statfs2_fsize=yes else @@ -13576,7 +13572,7 @@ fi if test $space = no; then # Ultrix echo $ac_n "checking for two-argument statfs with struct fs_data (Ultrix)""... $ac_c" 1>&6 -echo "configure:13580: checking for two-argument statfs with struct fs_data (Ultrix)" >&5 +echo "configure:13576: checking for two-argument statfs with struct fs_data (Ultrix)" >&5 if eval "test \"`echo '$''{'fu_cv_sys_stat_fs_data'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13584,7 +13580,7 @@ else fu_cv_sys_stat_fs_data=no else cat > conftest.$ac_ext <<EOF -#line 13588 "configure" +#line 13584 "configure" #include "confdefs.h" #include <sys/types.h> #ifdef HAVE_SYS_PARAM_H @@ -13604,7 +13600,7 @@ else exit (statfs (".", &fsd) != 1); } EOF -if { (eval echo configure:13608: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then fu_cv_sys_stat_fs_data=yes else @@ -13637,9 +13633,9 @@ fi # file support. # echo $ac_n "checking if large file support can be enabled""... $ac_c" 1>&6 -echo "configure:13641: checking if large file support can be enabled" >&5 +echo "configure:13637: checking if large file support can be enabled" >&5 cat > conftest.$ac_ext <<EOF -#line 13643 "configure" +#line 13639 "configure" #include "confdefs.h" #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8))) @@ -13652,7 +13648,7 @@ int main() { int i ; return 0; } EOF -if { (eval echo configure:13656: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes else @@ -13717,7 +13713,7 @@ fi # check for ACL support echo $ac_n "checking whether to support ACLs""... $ac_c" 1>&6 -echo "configure:13721: checking whether to support ACLs" >&5 +echo "configure:13717: checking whether to support ACLs" >&5 # Check whether --with-acl-support or --without-acl-support was given. if test "${with_acl_support+set}" = set; then withval="$with_acl_support" @@ -13770,7 +13766,7 @@ EOF ;; *) echo $ac_n "checking for acl_get_file in -lacl""... $ac_c" 1>&6 -echo "configure:13774: checking for acl_get_file in -lacl" >&5 +echo "configure:13770: checking for acl_get_file in -lacl" >&5 ac_lib_var=`echo acl'_'acl_get_file | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -13778,7 +13774,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lacl $LIBS" cat > conftest.$ac_ext <<EOF -#line 13782 "configure" +#line 13778 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -13789,7 +13785,7 @@ int main() { acl_get_file() ; return 0; } EOF -if { (eval echo configure:13793: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13817,13 +13813,13 @@ else fi echo $ac_n "checking for ACL support""... $ac_c" 1>&6 -echo "configure:13821: checking for ACL support" >&5 +echo "configure:13817: checking for ACL support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_POSIX_ACLS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 13827 "configure" +#line 13823 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/acl.h> @@ -13831,7 +13827,7 @@ int main() { acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p); ; return 0; } EOF -if { (eval echo configure:13835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_POSIX_ACLS=yes else @@ -13851,13 +13847,13 @@ echo "$ac_t""$samba_cv_HAVE_POSIX_ACLS" 1>&6 EOF echo $ac_n "checking for acl_get_perm_np""... $ac_c" 1>&6 -echo "configure:13855: checking for acl_get_perm_np" >&5 +echo "configure:13851: checking for acl_get_perm_np" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_ACL_GET_PERM_NP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 13861 "configure" +#line 13857 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/acl.h> @@ -13865,7 +13861,7 @@ int main() { acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm); ; return 0; } EOF -if { (eval echo configure:13869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_ACL_GET_PERM_NP=yes else @@ -13910,7 +13906,7 @@ fi # check for sendfile support echo $ac_n "checking whether to check for support sendfile""... $ac_c" 1>&6 -echo "configure:13914: checking whether to check for support sendfile" >&5 +echo "configure:13910: checking whether to check for support sendfile" >&5 # Check whether --with-sendfile-support or --without-sendfile-support was given. if test "${with_sendfile_support+set}" = set; then withval="$with_sendfile_support" @@ -13922,13 +13918,13 @@ if test "${with_sendfile_support+set}" = set; then case "$host_os" in *linux*) echo $ac_n "checking for linux sendfile64 support""... $ac_c" 1>&6 -echo "configure:13926: checking for linux sendfile64 support" >&5 +echo "configure:13922: checking for linux sendfile64 support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_SENDFILE64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 13932 "configure" +#line 13928 "configure" #include "confdefs.h" #include <sys/sendfile.h> int main() { @@ -13940,7 +13936,7 @@ ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total); ; return 0; } EOF -if { (eval echo configure:13944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13940: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_SENDFILE64=yes else @@ -13955,13 +13951,13 @@ fi echo "$ac_t""$samba_cv_HAVE_SENDFILE64" 1>&6 echo $ac_n "checking for linux sendfile support""... $ac_c" 1>&6 -echo "configure:13959: checking for linux sendfile support" >&5 +echo "configure:13955: checking for linux sendfile support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_SENDFILE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 13965 "configure" +#line 13961 "configure" #include "confdefs.h" #include <sys/sendfile.h> int main() { @@ -13973,7 +13969,7 @@ ssize_t nwritten = sendfile(tofd, fromfd, &offset, total); ; return 0; } EOF -if { (eval echo configure:13977: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_SENDFILE=yes else @@ -13989,13 +13985,13 @@ echo "$ac_t""$samba_cv_HAVE_SENDFILE" 1>&6 # Try and cope with broken Linux sendfile.... echo $ac_n "checking for broken linux sendfile support""... $ac_c" 1>&6 -echo "configure:13993: checking for broken linux sendfile support" >&5 +echo "configure:13989: checking for broken linux sendfile support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_BROKEN_LINUX_SENDFILE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 13999 "configure" +#line 13995 "configure" #include "confdefs.h" \ #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64) @@ -14011,7 +14007,7 @@ ssize_t nwritten = sendfile(tofd, fromfd, &offset, total); ; return 0; } EOF -if { (eval echo configure:14015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes else @@ -14067,13 +14063,13 @@ EOF ;; *freebsd*) echo $ac_n "checking for freebsd sendfile support""... $ac_c" 1>&6 -echo "configure:14071: checking for freebsd sendfile support" >&5 +echo "configure:14067: checking for freebsd sendfile support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_SENDFILE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14077 "configure" +#line 14073 "configure" #include "confdefs.h" \ #include <sys/types.h> @@ -14095,7 +14091,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14099: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14095: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_SENDFILE=yes else @@ -14129,13 +14125,13 @@ EOF *hpux*) echo $ac_n "checking for hpux sendfile64 support""... $ac_c" 1>&6 -echo "configure:14133: checking for hpux sendfile64 support" >&5 +echo "configure:14129: checking for hpux sendfile64 support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_SENDFILE64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14139 "configure" +#line 14135 "configure" #include "confdefs.h" \ #include <sys/socket.h> @@ -14155,7 +14151,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14155: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_SENDFILE64=yes else @@ -14186,13 +14182,13 @@ EOF fi echo $ac_n "checking for hpux sendfile support""... $ac_c" 1>&6 -echo "configure:14190: checking for hpux sendfile support" >&5 +echo "configure:14186: checking for hpux sendfile support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_SENDFILE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14196 "configure" +#line 14192 "configure" #include "confdefs.h" \ #include <sys/socket.h> @@ -14212,7 +14208,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_SENDFILE=yes else @@ -14246,13 +14242,13 @@ EOF *solaris*) LIBS="$LIBS -lsendfile" echo $ac_n "checking for solaris sendfilev64 support""... $ac_c" 1>&6 -echo "configure:14250: checking for solaris sendfilev64 support" >&5 +echo "configure:14246: checking for solaris sendfilev64 support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_SENDFILEV64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14256 "configure" +#line 14252 "configure" #include "confdefs.h" \ #include <sys/sendfile.h> @@ -14279,7 +14275,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_SENDFILEV64=yes else @@ -14311,13 +14307,13 @@ EOF fi echo $ac_n "checking for solaris sendfilev support""... $ac_c" 1>&6 -echo "configure:14315: checking for solaris sendfilev support" >&5 +echo "configure:14311: checking for solaris sendfilev support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_SENDFILEV'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14321 "configure" +#line 14317 "configure" #include "confdefs.h" \ #include <sys/sendfile.h> @@ -14344,7 +14340,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_SENDFILEV=yes else @@ -14397,7 +14393,7 @@ fi # (WINBIND_STARGETS) and shared libraries (WINBIND_LTARGETS). echo $ac_n "checking whether to build winbind""... $ac_c" 1>&6 -echo "configure:14401: checking whether to build winbind" >&5 +echo "configure:14397: checking whether to build winbind" >&5 # Initially, the value of $host_os decides whether winbind is supported @@ -14493,20 +14489,20 @@ fi # [#include <pwd.h>]) echo $ac_n "checking whether struct passwd has pw_comment""... $ac_c" 1>&6 -echo "configure:14497: checking whether struct passwd has pw_comment" >&5 +echo "configure:14493: checking whether struct passwd has pw_comment" >&5 if eval "test \"`echo '$''{'samba_cv_passwd_pw_comment'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14503 "configure" +#line 14499 "configure" #include "confdefs.h" #include <pwd.h> int main() { struct passwd p; p.pw_comment; ; return 0; } EOF -if { (eval echo configure:14510: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14506: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_passwd_pw_comment=yes else @@ -14531,20 +14527,20 @@ fi # [#include <pwd.h>]) echo $ac_n "checking whether struct passwd has pw_age""... $ac_c" 1>&6 -echo "configure:14535: checking whether struct passwd has pw_age" >&5 +echo "configure:14531: checking whether struct passwd has pw_age" >&5 if eval "test \"`echo '$''{'samba_cv_passwd_pw_age'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14541 "configure" +#line 14537 "configure" #include "confdefs.h" #include <pwd.h> int main() { struct passwd p; p.pw_age; ; return 0; } EOF -if { (eval echo configure:14548: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14544: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_passwd_pw_age=yes else @@ -14583,7 +14579,7 @@ fi if test x"$INCLUDED_POPT" != x"yes"; then echo $ac_n "checking for poptGetContext in -lpopt""... $ac_c" 1>&6 -echo "configure:14587: checking for poptGetContext in -lpopt" >&5 +echo "configure:14583: checking for poptGetContext in -lpopt" >&5 ac_lib_var=`echo popt'_'poptGetContext | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -14591,7 +14587,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lpopt $LIBS" cat > conftest.$ac_ext <<EOF -#line 14595 "configure" +#line 14591 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -14602,7 +14598,7 @@ int main() { poptGetContext() ; return 0; } EOF -if { (eval echo configure:14606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14626,7 +14622,7 @@ fi fi echo $ac_n "checking whether to use included popt""... $ac_c" 1>&6 -echo "configure:14630: checking whether to use included popt" >&5 +echo "configure:14626: checking whether to use included popt" >&5 if test x"$INCLUDED_POPT" = x"yes"; then echo "$ac_t""yes" 1>&6 BUILD_POPT='$(POPT_OBJS)' @@ -14672,16 +14668,16 @@ fi # final configure stuff echo $ac_n "checking configure summary""... $ac_c" 1>&6 -echo "configure:14676: checking configure summary" >&5 +echo "configure:14672: checking configure summary" >&5 if test "$cross_compiling" = yes; then echo "configure: warning: cannot run when cross-compiling" 1>&2 else cat > conftest.$ac_ext <<EOF -#line 14681 "configure" +#line 14677 "configure" #include "confdefs.h" #include "${srcdir-.}/tests/summary.c" EOF -if { (eval echo configure:14685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:14681: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then echo "$ac_t""yes" 1>&6 else @@ -14856,7 +14852,6 @@ s%@SHLIBEXT@%$SHLIBEXT%g s%@LIBSMBCLIENT_SHARED@%$LIBSMBCLIENT_SHARED%g s%@LIBSMBCLIENT@%$LIBSMBCLIENT%g s%@PRINTLIBS@%$PRINTLIBS%g -s%@AUTHLIBS@%$AUTHLIBS%g s%@CC@%$CC%g s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g diff --git a/source3/configure.in b/source3/configure.in index 81898e6af7..e9ad6af93e 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -148,7 +148,6 @@ AC_SUBST(SHLIBEXT) AC_SUBST(LIBSMBCLIENT_SHARED) AC_SUBST(LIBSMBCLIENT) AC_SUBST(PRINTLIBS) -AC_SUBST(AUTHLIBS) # compile with optimization and without debugging by default CFLAGS="-O ${CFLAGS}" @@ -614,7 +613,7 @@ AC_FUNC_MEMCMP # test for where we get crypt() from AC_CHECK_FUNCS(crypt) if test x"$ac_cv_func_crypt" = x"no"; then - AC_CHECK_LIB(crypt, crypt, [AUTHLIBS="$AUTHLIBS -lcrypt"; + AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt"; AC_DEFINE(HAVE_CRYPT)]) fi @@ -2124,7 +2123,7 @@ AC_ARG_WITH(pam, yes) AC_MSG_RESULT(yes) AC_DEFINE(WITH_PAM) - AUTHLIBS="$AUTHLIBS -lpam" + LIBS="$LIBS -lpam" with_pam_for_crypt=yes ;; *) @@ -2172,7 +2171,7 @@ AC_ARG_WITH(pam_smbpass, if test x"$with_pam_for_crypt" = x"no"; then AC_CHECK_FUNCS(crypt) if test x"$ac_cv_func_crypt" = x"no"; then - AC_CHECK_LIB(crypt, crypt, [AUTHLIBS="$AUTHLIBS -lcrypt"; + AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt"; AC_DEFINE(HAVE_CRYPT)]) fi fi @@ -2185,11 +2184,8 @@ fi ## if test $with_pam_for_crypt = no; then AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[ -crypt_LIBS="$LIBS" -LIBS="$AUTHLIBS $LIBS" AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"], - samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross) -LIBS="$crypt_LIBS"]) + samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)]) if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then AC_DEFINE(HAVE_TRUNCATED_SALT) fi diff --git a/source3/include/ntdomain.h b/source3/include/ntdomain.h index 628035885e..ffb9c96b72 100644 --- a/source3/include/ntdomain.h +++ b/source3/include/ntdomain.h @@ -374,6 +374,5 @@ struct acct_info #include "rpc_wkssvc.h" #include "rpc_spoolss.h" #include "rpc_dfs.h" -#include "rpc_ds.h" #endif /* _NT_DOMAIN_H */ diff --git a/source3/include/rpc_client_proto.h b/source3/include/rpc_client_proto.h deleted file mode 100644 index 0ecb195691..0000000000 --- a/source3/include/rpc_client_proto.h +++ /dev/null @@ -1,231 +0,0 @@ -#ifndef _RPC_CLIENT_PROTO_H_ -#define _RPC_CLIENT_PROTO_H_ -/* This file is automatically generated with "make proto". DO NOT EDIT */ - - -/*The following definitions come from lib/util_list.c */ - -BOOL copy_policy_hnd (POLICY_HND *dest, const POLICY_HND *src); -BOOL compare_rpc_hnd_node(const RPC_HND_NODE *x, - const RPC_HND_NODE *y); -BOOL RpcHndList_set_connection(const POLICY_HND *hnd, - struct cli_connection *con); -BOOL RpcHndList_del_connection(const POLICY_HND *hnd); -struct cli_connection* RpcHndList_get_connection(const POLICY_HND *hnd); - -/*The following definitions come from rpc_client/cli_connect.c */ - -void init_connections(void); -void free_connections(void); -void cli_connection_free(struct cli_connection *con); -void cli_connection_unlink(struct cli_connection *con); -BOOL cli_connection_init(const char *srv_name, char *pipe_name, - struct cli_connection **con); -BOOL cli_connection_init_auth(const char *srv_name, char *pipe_name, - struct cli_connection **con, - cli_auth_fns * auth, void *auth_creds); -struct _cli_auth_fns *cli_conn_get_authfns(struct cli_connection *con); -void *cli_conn_get_auth_creds(struct cli_connection *con); -BOOL rpc_hnd_pipe_req(const POLICY_HND * hnd, uint8 op_num, - prs_struct * data, prs_struct * rdata); -BOOL rpc_con_pipe_req(struct cli_connection *con, uint8 op_num, - prs_struct * data, prs_struct * rdata); -BOOL rpc_con_ok(struct cli_connection *con); - -/*The following definitions come from rpc_client/cli_login.c */ - -BOOL cli_nt_setup_creds(struct cli_state *cli, unsigned char mach_pwd[16]); -BOOL cli_nt_srv_pwset(struct cli_state *cli, unsigned char *new_hashof_mach_pwd); -BOOL cli_nt_login_interactive(struct cli_state *cli, char *domain, char *username, - uint32 smb_userid_low, char *password, - NET_ID_INFO_CTR *ctr, NET_USER_INFO_3 *user_info3); -BOOL cli_nt_login_network(struct cli_state *cli, char *domain, char *username, - uint32 smb_userid_low, char lm_chal[8], - char *lm_chal_resp, char *nt_chal_resp, - NET_ID_INFO_CTR *ctr, NET_USER_INFO_3 *user_info3); -BOOL cli_nt_logoff(struct cli_state *cli, NET_ID_INFO_CTR *ctr); - -/*The following definitions come from rpc_client/cli_lsarpc.c */ - -BOOL do_lsa_open_policy(struct cli_state *cli, - char *system_name, POLICY_HND *hnd, - BOOL sec_qos); -BOOL do_lsa_query_info_pol(struct cli_state *cli, - POLICY_HND *hnd, uint16 info_class, - fstring domain_name, DOM_SID *domain_sid); -BOOL do_lsa_close(struct cli_state *cli, POLICY_HND *hnd); -BOOL cli_lsa_get_domain_sid(struct cli_state *cli, char *server); -uint32 lsa_open_policy(const char *system_name, POLICY_HND *hnd, - BOOL sec_qos, uint32 des_access); -uint32 lsa_lookup_sids(POLICY_HND *hnd, int num_sids, DOM_SID *sids, - char ***names, uint32 **types, int *num_names); -uint32 lsa_lookup_names(POLICY_HND *hnd, int num_names, char **names, - DOM_SID **sids, uint32 **types, int *num_sids); - -/*The following definitions come from rpc_client/cli_netlogon.c */ - -BOOL cli_net_logon_ctrl2(struct cli_state *cli, uint32 status_level); -BOOL cli_net_auth2(struct cli_state *cli, uint16 sec_chan, - uint32 neg_flags, DOM_CHAL *srv_chal); -BOOL cli_net_req_chal(struct cli_state *cli, DOM_CHAL *clnt_chal, DOM_CHAL *srv_chal); -BOOL cli_net_srv_pwset(struct cli_state *cli, uint8 hashed_mach_pwd[16]); -BOOL cli_net_sam_logon(struct cli_state *cli, NET_ID_INFO_CTR *ctr, NET_USER_INFO_3 *user_info3); -BOOL cli_net_sam_logoff(struct cli_state *cli, NET_ID_INFO_CTR *ctr); -BOOL change_trust_account_password( char *domain, char *remote_machine_list); - -/*The following definitions come from rpc_client/cli_pipe.c */ - -BOOL rpc_api_pipe_req(struct cli_state *cli, uint8 op_num, - prs_struct *data, prs_struct *rdata); -BOOL rpc_pipe_bind(struct cli_state *cli, char *pipe_name, char *my_name); -void cli_nt_set_ntlmssp_flgs(struct cli_state *cli, uint32 ntlmssp_flgs); -BOOL cli_nt_session_open(struct cli_state *cli, char *pipe_name); -void cli_nt_session_close(struct cli_state *cli); - -/*The following definitions come from rpc_client/cli_reg.c */ - -BOOL do_reg_connect(struct cli_state *cli, char *full_keyname, char *key_name, - POLICY_HND *reg_hnd); -BOOL do_reg_open_hklm(struct cli_state *cli, uint16 unknown_0, uint32 level, - POLICY_HND *hnd); -BOOL do_reg_open_hku(struct cli_state *cli, uint16 unknown_0, uint32 level, - POLICY_HND *hnd); -BOOL do_reg_flush_key(struct cli_state *cli, POLICY_HND *hnd); -BOOL do_reg_query_key(struct cli_state *cli, POLICY_HND *hnd, - char *class, uint32 *class_len, - uint32 *num_subkeys, uint32 *max_subkeylen, - uint32 *max_subkeysize, uint32 *num_values, - uint32 *max_valnamelen, uint32 *max_valbufsize, - uint32 *sec_desc, NTTIME *mod_time); -BOOL do_reg_unknown_1a(struct cli_state *cli, POLICY_HND *hnd, uint32 *unk); -BOOL do_reg_query_info(struct cli_state *cli, POLICY_HND *hnd, - char *key_value, uint32* key_type); -BOOL do_reg_set_key_sec(struct cli_state *cli, POLICY_HND *hnd, SEC_DESC_BUF *sec_desc_buf); -BOOL do_reg_get_key_sec(struct cli_state *cli, POLICY_HND *hnd, uint32 *sec_buf_size, SEC_DESC_BUF **ppsec_desc_buf); -BOOL do_reg_delete_val(struct cli_state *cli, POLICY_HND *hnd, char *val_name); -BOOL do_reg_delete_key(struct cli_state *cli, POLICY_HND *hnd, char *key_name); -BOOL do_reg_create_key(struct cli_state *cli, POLICY_HND *hnd, - char *key_name, char *key_class, - SEC_ACCESS *sam_access, - POLICY_HND *key); -BOOL do_reg_enum_key(struct cli_state *cli, POLICY_HND *hnd, - int key_index, char *key_name, - uint32 *unk_1, uint32 *unk_2, - time_t *mod_time); -BOOL do_reg_create_val(struct cli_state *cli, POLICY_HND *hnd, - char *val_name, uint32 type, BUFFER3 *data); -BOOL do_reg_enum_val(struct cli_state *cli, POLICY_HND *hnd, - int val_index, int max_valnamelen, int max_valbufsize, - fstring val_name, - uint32 *val_type, BUFFER2 *value); -BOOL do_reg_open_entry(struct cli_state *cli, POLICY_HND *hnd, - char *key_name, uint32 unk_0, - POLICY_HND *key_hnd); -BOOL do_reg_close(struct cli_state *cli, POLICY_HND *hnd); - -/*The following definitions come from rpc_client/cli_samr.c */ - -BOOL get_samr_query_usergroups(struct cli_state *cli, - POLICY_HND *pol_open_domain, uint32 user_rid, - uint32 *num_groups, DOM_GID *gid); -BOOL get_samr_query_userinfo(struct cli_state *cli, - POLICY_HND *pol_open_domain, - uint32 info_level, - uint32 user_rid, SAM_USER_INFO_21 *usr); -BOOL do_samr_chgpasswd_user(struct cli_state *cli, - char *srv_name, char *user_name, - char nt_newpass[516], uchar nt_oldhash[16], - char lm_newpass[516], uchar lm_oldhash[16]); -BOOL do_samr_unknown_38(struct cli_state *cli, char *srv_name); -BOOL do_samr_query_dom_info(struct cli_state *cli, - POLICY_HND *domain_pol, uint16 switch_value); -BOOL do_samr_enum_dom_users(struct cli_state *cli, - POLICY_HND *pol, uint16 num_entries, uint16 unk_0, - uint16 acb_mask, uint16 unk_1, uint32 size, - struct acct_info **sam, - int *num_sam_users); -BOOL do_samr_connect(struct cli_state *cli, - char *srv_name, uint32 unknown_0, - POLICY_HND *connect_pol); -BOOL do_samr_open_user(struct cli_state *cli, - POLICY_HND *pol, uint32 unk_0, uint32 rid, - POLICY_HND *user_pol); -BOOL do_samr_open_domain(struct cli_state *cli, - POLICY_HND *connect_pol, uint32 rid, DOM_SID *sid, - POLICY_HND *domain_pol); -BOOL do_samr_query_unknown_12(struct cli_state *cli, - POLICY_HND *pol, uint32 rid, uint32 num_gids, uint32 *gids, - uint32 *num_aliases, - fstring als_names [MAX_LOOKUP_SIDS], - uint32 num_als_users[MAX_LOOKUP_SIDS]); -BOOL do_samr_query_usergroups(struct cli_state *cli, - POLICY_HND *pol, uint32 *num_groups, DOM_GID *gid); -BOOL do_samr_query_userinfo(struct cli_state *cli, - POLICY_HND *pol, uint16 switch_value, void* usr); -BOOL do_samr_close(struct cli_state *cli, POLICY_HND *hnd); - -/*The following definitions come from rpc_client/cli_spoolss_notify.c */ - -BOOL spoolss_disconnect_from_client( struct cli_state *cli); -BOOL spoolss_connect_to_client( struct cli_state *cli, char *remote_machine); -BOOL cli_spoolss_reply_open_printer(struct cli_state *cli, char *printer, uint32 localprinter, uint32 type, uint32 *status, POLICY_HND *handle); -BOOL cli_spoolss_reply_rrpcn(struct cli_state *cli, POLICY_HND *handle, - uint32 change_low, uint32 change_high, uint32 *status); -BOOL cli_spoolss_reply_close_printer(struct cli_state *cli, POLICY_HND *handle, uint32 *status); - -/*The following definitions come from rpc_client/cli_srvsvc.c */ - -BOOL do_srv_net_srv_conn_enum(struct cli_state *cli, - char *server_name, char *qual_name, - uint32 switch_value, SRV_CONN_INFO_CTR *ctr, - uint32 preferred_len, - ENUM_HND *hnd); -BOOL do_srv_net_srv_sess_enum(struct cli_state *cli, - char *server_name, char *qual_name, - uint32 switch_value, SRV_SESS_INFO_CTR *ctr, - uint32 preferred_len, - ENUM_HND *hnd); -BOOL do_srv_net_srv_share_enum(struct cli_state *cli, - char *server_name, - uint32 switch_value, SRV_R_NET_SHARE_ENUM *r_o, - uint32 preferred_len, ENUM_HND *hnd); -BOOL do_srv_net_srv_file_enum(struct cli_state *cli, - char *server_name, char *qual_name, - uint32 switch_value, SRV_FILE_INFO_CTR *ctr, - uint32 preferred_len, - ENUM_HND *hnd); -BOOL do_srv_net_srv_get_info(struct cli_state *cli, - char *server_name, uint32 switch_value, SRV_INFO_CTR *ctr); - -/*The following definitions come from rpc_client/cli_use.c */ - -void init_cli_use(void); -void free_cli_use(void); -struct cli_state *cli_net_use_add(const char *srv_name, - const struct ntuser_creds *usr_creds, - BOOL reuse, BOOL *is_new); -BOOL cli_net_use_del(const char *srv_name, - const struct ntuser_creds *usr_creds, - BOOL force_close, BOOL *connection_closed); -void cli_net_use_enum(uint32 *num_cons, struct use_info ***use); -void cli_use_wait_keyboard(void); - -/*The following definitions come from rpc_client/cli_wkssvc.c */ - -BOOL do_wks_query_info(struct cli_state *cli, - char *server_name, uint32 switch_value, - WKS_INFO_100 *wks100); - -/*The following definitions come from rpc_client/ncacn_np_use.c */ - -BOOL ncacn_np_use_del(const char *srv_name, const char *pipe_name, - const vuser_key * key, - BOOL force_close, BOOL *connection_closed); -struct ncacn_np *ncacn_np_initialise(struct ncacn_np *msrpc, - const vuser_key * key); -struct ncacn_np *ncacn_np_use_add(const char *pipe_name, - const vuser_key * key, - const char *srv_name, - const struct ntuser_creds *ntc, - BOOL reuse, BOOL *is_new_connection); -#endif /* _PROTO_H_ */ diff --git a/source3/include/rpc_dce.h b/source3/include/rpc_dce.h index 3e615dab80..61316de89c 100644 --- a/source3/include/rpc_dce.h +++ b/source3/include/rpc_dce.h @@ -89,7 +89,6 @@ enum NTLM_MESSAGE_TYPE /* Maximum PDU fragment size. */ #define MAX_PDU_FRAG_LEN 0x1630 -/* #define MAX_PDU_FRAG_LEN 0x10b8 this is what w2k sets */ /* * Actual structure of a DCE UUID diff --git a/source3/include/sam.h b/source3/include/sam.h index f46a6e7bcb..2157a37065 100644 --- a/source3/include/sam.h +++ b/source3/include/sam.h @@ -72,7 +72,6 @@ typedef struct sam_domain_handle { uint32 num_accounts; /* number of accounts in the domain */ uint32 num_groups; /* number of global groups */ uint32 num_aliases; /* number of local groups */ - uint32 sam_sequence_number; /* global sequence number */ } private; } SAM_DOMAIN_HANDLE; @@ -163,6 +162,51 @@ typedef struct sam_context struct sam_methods *methods; TALLOC_CTX *mem_ctx; + /* General API */ + + NTSTATUS (*sam_get_sec_desc) (const struct sam_context *, const NT_USER_TOKEN *access_token, const DOM_SID *sid, SEC_DESC **sd); + NTSTATUS (*sam_set_sec_desc) (const struct sam_context *, const NT_USER_TOKEN *access_token, const DOM_SID *sid, const SEC_DESC *sd); + + NTSTATUS (*sam_lookup_sid) (const struct sam_context *, const NT_USER_TOKEN *access_token, const DOM_SID *sid, char **name, uint32 *type); + NTSTATUS (*sam_lookup_name) (const struct sam_context *, const NT_USER_TOKEN *access_token, const char *domain, const char *name, DOM_SID **sid, uint32 *type); + + + /* Domain API */ + + NTSTATUS (*sam_update_domain) (const struct sam_context *, const SAM_DOMAIN_HANDLE *domain); + + NTSTATUS (*sam_enum_domains) (const struct sam_context *, const NT_USER_TOKEN *access_token, int32 *domain_count, DOM_SID **domains, char **domain_names); + NTSTATUS (*sam_lookup_domain) (const struct sam_context *, const NT_USER_TOKEN * access_token, const char *domain, DOM_SID **domainsid); + + NTSTATUS (*sam_get_domain_by_sid) (const struct sam_context *, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, SAM_DOMAIN_HANDLE **domain); + + + /* Account API */ + + NTSTATUS (*sam_create_account) (const struct sam_context *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account); + NTSTATUS (*sam_add_account) (const struct sam_context *, const DOM_SID *domainsid, const SAM_ACCOUNT_HANDLE *account); + NTSTATUS (*sam_update_account) (const struct sam_context *, const SAM_ACCOUNT_HANDLE *account); + NTSTATUS (*sam_delete_account) (const struct sam_context *, const SAM_ACCOUNT_HANDLE *account); + NTSTATUS (*sam_enum_accounts) (const struct sam_context *, const NT_USER_TOKEN *access_token, const DOM_SID *domain, uint16 acct_ctrl, uint32 *account_count, SAM_ACCOUNT_ENUM **accounts); + + NTSTATUS (*sam_get_account_by_sid) (const struct sam_context *, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *accountsid, SAM_ACCOUNT_HANDLE **account); + NTSTATUS (*sam_get_account_by_name) (const struct sam_context *, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *domain, const char *name, SAM_ACCOUNT_HANDLE **account); + + /* Group API */ + + NTSTATUS (*sam_create_group) (const struct sam_context *, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, const char *group_name, uint16 group_ctrl, SAM_GROUP_HANDLE **group); + NTSTATUS (*sam_add_group) (const struct sam_context *, const DOM_SID *domainsid, const SAM_GROUP_HANDLE *group); + NTSTATUS (*sam_update_group) (const struct sam_context *, const SAM_GROUP_HANDLE *group); + NTSTATUS (*sam_delete_group) (const struct sam_context *, const SAM_GROUP_HANDLE *group); + NTSTATUS (*sam_enum_groups) (const struct sam_context *, const NT_USER_TOKEN *access_token, const DOM_SID *domainsid, const uint16 group_ctrl, uint32 *groups_count, SAM_GROUP_ENUM **groups); + NTSTATUS (*sam_get_group_by_sid) (const struct sam_context *, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *groupsid, SAM_GROUP_HANDLE **group); + NTSTATUS (*sam_get_group_by_name) (const struct sam_context *, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *domain, const char *name, SAM_GROUP_HANDLE **group); + + NTSTATUS (*sam_add_member_to_group) (const struct sam_context *, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member); + NTSTATUS (*sam_delete_member_from_group) (const struct sam_context *, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member); + NTSTATUS (*sam_enum_groupmembers) (const struct sam_context *, const SAM_GROUP_HANDLE *group, uint32 *members_count, SAM_GROUP_MEMBER **members); + + NTSTATUS (*sam_get_groups_of_sid) (const struct sam_context *, const NT_USER_TOKEN *access_token, const DOM_SID **sids, uint16 group_ctrl, uint32 *group_count, SAM_GROUP_ENUM **groups); void (*free_fn)(struct sam_context **); } SAM_CONTEXT; @@ -181,8 +225,8 @@ typedef struct sam_methods NTSTATUS (*sam_get_sec_desc) (const struct sam_methods *, const NT_USER_TOKEN *access_token, const DOM_SID *sid, SEC_DESC **sd); NTSTATUS (*sam_set_sec_desc) (const struct sam_methods *, const NT_USER_TOKEN *access_token, const DOM_SID *sid, const SEC_DESC *sd); - NTSTATUS (*sam_lookup_sid) (const struct sam_methods *, const NT_USER_TOKEN *access_token, TALLOC_CTX *mem_ctx, const DOM_SID *sid, char **name, uint32 *type); - NTSTATUS (*sam_lookup_name) (const struct sam_methods *, const NT_USER_TOKEN *access_token, const char *name, DOM_SID *sid, uint32 *type); + NTSTATUS (*sam_lookup_sid) (const struct sam_methods *, const NT_USER_TOKEN *access_token, const DOM_SID *sid, char **name, uint32 *type); + NTSTATUS (*sam_lookup_name) (const struct sam_methods *, const NT_USER_TOKEN *access_token, const char *name, DOM_SID **sid, uint32 *type); /* Domain API */ diff --git a/source3/include/smb.h b/source3/include/smb.h index b5ab504415..5bf79b75fe 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -188,7 +188,7 @@ typedef smb_ucs2_t wfstring[FSTRING_LEN]; #define PIPE_NETDFS "\\PIPE\\netdfs" #define PI_LSARPC 0 -#define PI_LSARPC_DS 1 +#define PI_LSARPC_V2 1 #define PI_SAMR 2 #define PI_NETLOGON 3 #define PI_SRVSVC 4 diff --git a/source3/include/version.h b/source3/include/version.h index c0a1c702f2..415b456aac 100644 --- a/source3/include/version.h +++ b/source3/include/version.h @@ -1 +1 @@ -#define VERSION "post3.0-HEAD" +#define VERSION "3.0alpha21cvs" diff --git a/source3/internals.doc b/source3/internals.doc new file mode 100644 index 0000000000..c8cc6dd136 --- /dev/null +++ b/source3/internals.doc @@ -0,0 +1,281 @@ +internals.txt, 8 May 1996 +Written by David Chappell <David.Chappell@mail.trincoll.edu>. + +This document describes some of the internal functions which must be +understood by anyone wishing to add features to Samba. + + + +============================================================================= +This section describes character set handling in Samba, as implemented in +Samba 3.0 and above + +In the past Samba had very ad-hoc character set handling. Scattered +throughout the code were numerous calls which converted particular +strings to/from DOS codepages. The problem is that there was no way of +telling if a particular char* is in dos codepage or unix +codepage. This led to a nightmare of code that tried to cope with +particular cases without handlingt the general case. + +The new system works like this: + +- all char* strings inside Samba are "unix" strings. These are + multi-byte strings that are in the charset defined by the "unix + charset" option in smb.conf. + +- there is no single fixed character set for unix strings, but any + character set that is used does need the following properties: + * must not contain NULLs except for termination + * must be 7-bit compatible with C strings, so that a constant + string or character in C will be byte-for-byte identical to the + equivalent string in the chosen character set. + * when you uppercase or lowercase a string it does not become + longer than the original string + * must be able to correctly hold all characters that your client + will throw at it + For example, UTF-8 is fine, and most multi-byte asian character sets + are fine, but UCS2 could not be used for unix strings as they + contain nulls. + +- when you need to put a string into a buffer that will be sent on the + wire, or you need a string in a character set format that is + compatible with the clients character set then you need to use a + pull_ or push_ function. The pull_ functions pull a string from a + wire buffer into a (multi-byte) unix string. The push_ functions + push a string out to a wire buffer. + +- the two main pull_ and push_ functions you need to understand are + pull_string and push_string. These functions take a base pointer + that should point at the start of the SMB packet that the string is + in. The functions will check the flags field in this packet to + automatically determine if the packet is marked as a unicode packet, + and they will choose whether to use unicode for this string based on + that flag. You may also force this decision using the STR_UNICODE or + STR_ASCII flags. For use in smbd/ and libsmb/ there are wrapper + functions clistr_ and srvstr_ that call the pull_/push_ functions + with the appropriate first argument. + + You may also call the pull_ascii/pull_ucs2 or push_ascii/push_ucs2 + functions if you know that a particular string is ascii or + unicode. There are also a number of other convenience functions in + charcnv.c that call the pull_/push_ functions with particularly + common arguments, such as pull_ascii_pstring() + +The biggest thing to remember is that internal (unix) strings in Samba +may now contain multi-byte characters. This means you cannot assume +that characters are always 1 byte long. Often this means that you will +have to convert strings to ucs2 and back again in order to do some +(seemingly) simple task. For examples of how to do this see functions +like strchr_m(). I know this is very slow, and we will eventually +speed it up but right now we want this stuff correct not fast. + +Other rules: + + - all lp_ functions now return unix strings. The magic "DOS" flag on + parameters is gone. + - all vfs functions take unix strings. Don't convert when passing to + them + + +============================================================================= +This section describes the macros defined in byteorder.h. These macros +are used extensively in the Samba code. + +----------------------------------------------------------------------------- +CVAL(buf,pos) + +returns the byte at offset pos within buffer buf as an unsigned character. + +----------------------------------------------------------------------------- +PVAL(buf,pos) + +returns the value of CVAL(buf,pos) cast to type unsigned integer. + +----------------------------------------------------------------------------- +SCVAL(buf,pos,val) + +sets the byte at offset pos within buffer buf to value val. + +----------------------------------------------------------------------------- +SVAL(buf,pos) + +returns the value of the unsigned short (16 bit) little-endian integer at +offset pos within buffer buf. An integer of this type is sometimes +refered to as "USHORT". + +----------------------------------------------------------------------------- +IVAL(buf,pos) + +returns the value of the unsigned 32 bit little-endian integer at offset +pos within buffer buf. + +----------------------------------------------------------------------------- +SVALS(buf,pos) + +returns the value of the signed short (16 bit) little-endian integer at +offset pos within buffer buf. + +----------------------------------------------------------------------------- +IVALS(buf,pos) + +returns the value of the signed 32 bit little-endian integer at offset pos +within buffer buf. + +----------------------------------------------------------------------------- +SSVAL(buf,pos,val) + +sets the unsigned short (16 bit) little-endian integer at offset pos within +buffer buf to value val. + +----------------------------------------------------------------------------- +SIVAL(buf,pos,val) + +sets the unsigned 32 bit little-endian integer at offset pos within buffer +buf to the value val. + +----------------------------------------------------------------------------- +SSVALS(buf,pos,val) + +sets the short (16 bit) signed little-endian integer at offset pos within +buffer buf to the value val. + +----------------------------------------------------------------------------- +SIVALS(buf,pos,val) + +sets the signed 32 bit little-endian integer at offset pos withing buffer +buf to the value val. + +----------------------------------------------------------------------------- +RSVAL(buf,pos) + +returns the value of the unsigned short (16 bit) big-endian integer at +offset pos within buffer buf. + +----------------------------------------------------------------------------- +RIVAL(buf,pos) + +returns the value of the unsigned 32 bit big-endian integer at offset +pos within buffer buf. + +----------------------------------------------------------------------------- +RSSVAL(buf,pos,val) + +sets the value of the unsigned short (16 bit) big-endian integer at +offset pos within buffer buf to value val. +refered to as "USHORT". + +----------------------------------------------------------------------------- +RSIVAL(buf,pos,val) + +sets the value of the unsigned 32 bit big-endian integer at offset +pos within buffer buf to value val. + + + + + +============================================================================= +This section describes the functions need to make a LAN Manager RPC call. +This information had been obtained by examining the Samba code and the LAN +Manager 2.0 API documentation. It should not be considered entirely +reliable. + +----------------------------------------------------------------------------- +call_api(int prcnt, int drcnt, int mprcnt, int mdrcnt, + char *param, char *data, char **rparam, char **rdata); + +This function is defined in client.c. It uses an SMB transaction to call a +remote api. + +The parameters are as follows: + +prcnt: the number of bytes of parameters begin sent. +drcnt: the number of bytes of data begin sent. +mprcnt: the maximum number of bytes of parameters which should be returned +mdrcnt: the maximum number of bytes of data which should be returned +param: a pointer to the parameters to be sent. +data: a pointer to the data to be sent. +rparam: a pointer to a pointer which will be set to point to the returned + paramters. The caller of call_api() must deallocate this memory. +rdata: a pointer to a pointer which will be set to point to the returned + data. The caller of call_api() must deallocate this memory. + +----------------------------------------------------------------------------- +These are the parameters which you ought to send, in the order of their +appearance in the parameter block: + +* An unsigned 16 bit integer API number. You should set this value with +SSVAL(). I do not know where these numbers are described. + +* An ASCIIZ string describing the parameters to the API function as defined +in the LAN Manager documentation. The first parameter, which is the server +name, is ommited. This string is based uppon the API function as described +in the manual, not the data which is actually passed. + +* An ASCIIZ string describing the data structure which ought to be returned. + +* Any parameters which appear in the function call, as defined in the LAN +Manager API documentation, after the "Server" and up to and including the +"uLevel" parameters. + +* An unsigned 16 bit integer which gives the size in bytes of the buffer we +will use to receive the returned array of data structures. Presumably this +should be the same as mdrcnt. This value should be set with SSVAL(). + +* An ASCIIZ string describing substructures which should be returned. If no +substructures apply, this string is of zero length. + +----------------------------------------------------------------------------- +The code in client.c always calls call_api() with no data. It is unclear +when a non-zero length data buffer would be sent. + +----------------------------------------------------------------------------- +The returned parameters (pointed to by rparam), in their order of appearance +are: + +* An unsigned 16 bit integer which contains the API function's return code. +This value should be read with SVAL(). + +* An adjustment which tells the amount by which pointers in the returned +data should be adjusted. This value should be read with SVAL(). Basically, +the address of the start of the returned data buffer should have the returned +pointer value added to it and then have this value subtracted from it in +order to obtain the currect offset into the returned data buffer. + +* A count of the number of elements in the array of structures returned. +It is also possible that this may sometimes be the number of bytes returned. + +----------------------------------------------------------------------------- +When call_api() returns, rparam points to the returned parameters. The +first if these is the result code. It will be zero if the API call +suceeded. This value by be read with "SVAL(rparam,0)". + +The second parameter may be read as "SVAL(rparam,2)". It is a 16 bit offset +which indicates what the base address of the returned data buffer was when +it was built on the server. It should be used to correct pointer before +use. + +The returned data buffer contains the array of returned data structures. +Note that all pointers must be adjusted before use. The function +fix_char_ptr() in client.c can be used for this purpose. + +The third parameter (which may be read as "SVAL(rparam,4)") has something to +do with indicating the amount of data returned or possibly the amount of +data which can be returned if enough buffer space is allowed. + +----------------------------------------------------------------------------- +Certain data structures are described by means of ASCIIz strings containing +code characters. These are the code characters: + +W a type byte little-endian unsigned integer +N a count of substructures which follow +D a four byte little-endian unsigned integer +B a byte (with optional count expressed as trailing ASCII digits) +z a four byte offset to a NULL terminated string +l a four byte offset to non-string user data +b an offset to data (with count expressed as trailing ASCII digits) +r pointer to returned data buffer??? +L length in bytes of returned data buffer??? +h number of bytes of information available??? + +---------------------------------------------------------------------------- diff --git a/source3/lib/access.c b/source3/lib/access.c index a39bc6df76..4e524735e4 100644 --- a/source3/lib/access.c +++ b/source3/lib/access.c @@ -316,20 +316,20 @@ BOOL check_access(int sock, char **allow_list, char **deny_list) else { DEBUG (3, ("check_access: hostnames in host allow/deny list.\n")); - ret = allow_access(deny_list,allow_list, get_socket_name(sock,True), + ret = allow_access(deny_list,allow_list, get_socket_name(sock), get_socket_addr(sock)); } if (ret) { DEBUG(2,("Allowed connection from %s (%s)\n", - only_ip ? "" : get_socket_name(sock,True), + only_ip ? "" : get_socket_name(sock), get_socket_addr(sock))); } else { DEBUG(0,("Denied connection from %s (%s)\n", - only_ip ? "" : get_socket_name(sock,True), + only_ip ? "" : get_socket_name(sock), get_socket_addr(sock))); } } diff --git a/source3/lib/domain_namemap.c b/source3/lib/domain_namemap.c deleted file mode 100644 index 988f5e5d65..0000000000 --- a/source3/lib/domain_namemap.c +++ /dev/null @@ -1,1317 +0,0 @@ -/* - Unix SMB/Netbios implementation. - Version 1.9. - Groupname handling - Copyright (C) Jeremy Allison 1998. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -/* - * UNIX gid and Local or Domain SID resolution. This module resolves - * only those entries in the map files, it is *NOT* responsible for - * resolving UNIX groups not listed: that is an entirely different - * matter, altogether... - */ - -/* - * - * - - format of the file is: - - unixname NT Group name - unixname Domain Admins (well-known Domain Group) - unixname DOMAIN_NAME\NT Group name - unixname OTHER_DOMAIN_NAME\NT Group name - unixname DOMAIN_NAME\Domain Admins (well-known Domain Group) - .... - - if the DOMAIN_NAME\ component is left off, then your own domain is assumed. - - * - * - */ - - -#include "includes.h" -extern int DEBUGLEVEL; - -extern fstring global_myworkgroup; -extern DOM_SID global_member_sid; -extern fstring global_sam_name; -extern DOM_SID global_sam_sid; -extern DOM_SID global_sid_S_1_5_20; - -/******************************************************************* - converts UNIX uid to an NT User RID. NOTE: IS SOMETHING SPECIFIC TO SAMBA - ********************************************************************/ -static uid_t pwdb_user_rid_to_uid(uint32 user_rid) -{ - return ((user_rid & (~RID_TYPE_USER))- 1000)/RID_MULTIPLIER; -} - -/******************************************************************* - converts NT Group RID to a UNIX uid. NOTE: IS SOMETHING SPECIFIC TO SAMBA - ********************************************************************/ -static uint32 pwdb_group_rid_to_gid(uint32 group_rid) -{ - return ((group_rid & (~RID_TYPE_GROUP))- 1000)/RID_MULTIPLIER; -} - -/******************************************************************* - converts NT Alias RID to a UNIX uid. NOTE: IS SOMETHING SPECIFIC TO SAMBA - ********************************************************************/ -static uint32 pwdb_alias_rid_to_gid(uint32 alias_rid) -{ - return ((alias_rid & (~RID_TYPE_ALIAS))- 1000)/RID_MULTIPLIER; -} - -/******************************************************************* - converts NT Group RID to a UNIX uid. NOTE: IS SOMETHING SPECIFIC TO SAMBA - ********************************************************************/ -static uint32 pwdb_gid_to_group_rid(uint32 gid) -{ - uint32 grp_rid = ((((gid)*RID_MULTIPLIER) + 1000) | RID_TYPE_GROUP); - return grp_rid; -} - -/****************************************************************** - converts UNIX gid to an NT Alias RID. NOTE: IS SOMETHING SPECIFIC TO SAMBA - ********************************************************************/ -static uint32 pwdb_gid_to_alias_rid(uint32 gid) -{ - uint32 alias_rid = ((((gid)*RID_MULTIPLIER) + 1000) | RID_TYPE_ALIAS); - return alias_rid; -} - -/******************************************************************* - converts UNIX uid to an NT User RID. NOTE: IS SOMETHING SPECIFIC TO SAMBA - ********************************************************************/ -static uint32 pwdb_uid_to_user_rid(uint32 uid) -{ - uint32 user_rid = ((((uid)*RID_MULTIPLIER) + 1000) | RID_TYPE_USER); - return user_rid; -} - -/****************************************************************** - converts SID + SID_NAME_USE type to a UNIX id. the Domain SID is, - and can only be, our own SID. - ********************************************************************/ -static BOOL pwdb_sam_sid_to_unixid(DOM_SID *sid, uint8 type, uint32 *id) -{ - DOM_SID tmp_sid; - uint32 rid; - - sid_copy(&tmp_sid, sid); - sid_split_rid(&tmp_sid, &rid); - if (!sid_equal(&global_sam_sid, &tmp_sid)) - { - return False; - } - - switch (type) - { - case SID_NAME_USER: - { - *id = pwdb_user_rid_to_uid(rid); - return True; - } - case SID_NAME_ALIAS: - { - *id = pwdb_alias_rid_to_gid(rid); - return True; - } - case SID_NAME_DOM_GRP: - case SID_NAME_WKN_GRP: - { - *id = pwdb_group_rid_to_gid(rid); - return True; - } - } - return False; -} - -/****************************************************************** - converts UNIX gid + SID_NAME_USE type to a SID. the Domain SID is, - and can only be, our own SID. - ********************************************************************/ -static BOOL pwdb_unixid_to_sam_sid(uint32 id, uint8 type, DOM_SID *sid) -{ - sid_copy(sid, &global_sam_sid); - switch (type) - { - case SID_NAME_USER: - { - sid_append_rid(sid, pwdb_uid_to_user_rid(id)); - return True; - } - case SID_NAME_ALIAS: - { - sid_append_rid(sid, pwdb_gid_to_alias_rid(id)); - return True; - } - case SID_NAME_DOM_GRP: - case SID_NAME_WKN_GRP: - { - sid_append_rid(sid, pwdb_gid_to_group_rid(id)); - return True; - } - } - return False; -} - -/******************************************************************* - Decides if a RID is a well known RID. - ********************************************************************/ -static BOOL pwdb_rid_is_well_known(uint32 rid) -{ - return (rid < 1000); -} - -/******************************************************************* - determines a rid's type. NOTE: THIS IS SOMETHING SPECIFIC TO SAMBA - ********************************************************************/ -static uint32 pwdb_rid_type(uint32 rid) -{ - /* lkcl i understand that NT attaches an enumeration to a RID - * such that it can be identified as either a user, group etc - * type: SID_ENUM_TYPE. - */ - if (pwdb_rid_is_well_known(rid)) - { - /* - * The only well known user RIDs are DOMAIN_USER_RID_ADMIN - * and DOMAIN_USER_RID_GUEST. - */ - if (rid == DOMAIN_USER_RID_ADMIN || rid == DOMAIN_USER_RID_GUEST) - { - return RID_TYPE_USER; - } - if (DOMAIN_GROUP_RID_ADMINS <= rid && rid <= DOMAIN_GROUP_RID_GUESTS) - { - return RID_TYPE_GROUP; - } - if (BUILTIN_ALIAS_RID_ADMINS <= rid && rid <= BUILTIN_ALIAS_RID_REPLICATOR) - { - return RID_TYPE_ALIAS; - } - } - return (rid & RID_TYPE_MASK); -} - -/******************************************************************* - checks whether rid is a user rid. NOTE: THIS IS SOMETHING SPECIFIC TO SAMBA - ********************************************************************/ -BOOL pwdb_rid_is_user(uint32 rid) -{ - return pwdb_rid_type(rid) == RID_TYPE_USER; -} - -/************************************************************************** - Groupname map functionality. The code loads a groupname map file and - (currently) loads it into a linked list. This is slow and memory - hungry, but can be changed into a more efficient storage format - if the demands on it become excessive. -***************************************************************************/ - -typedef struct name_map -{ - ubi_slNode next; - DOM_NAME_MAP grp; - -} name_map_entry; - -static ubi_slList groupname_map_list; -static ubi_slList aliasname_map_list; -static ubi_slList ntusrname_map_list; - -static void delete_name_entry(name_map_entry *gmep) -{ - if (gmep->grp.nt_name) - { - free(gmep->grp.nt_name); - } - if (gmep->grp.nt_domain) - { - free(gmep->grp.nt_domain); - } - if (gmep->grp.unix_name) - { - free(gmep->grp.unix_name); - } - free((char*)gmep); -} - -/************************************************************************** - Delete all the entries in the name map list. -***************************************************************************/ - -static void delete_map_list(ubi_slList *map_list) -{ - name_map_entry *gmep; - - while ((gmep = (name_map_entry *)ubi_slRemHead(map_list )) != NULL) - { - delete_name_entry(gmep); - } -} - - -/************************************************************************** - makes a group sid out of a domain sid and a _unix_ gid. -***************************************************************************/ -static BOOL make_mydomain_sid(DOM_NAME_MAP *grp, DOM_MAP_TYPE type) -{ - int ret = False; - fstring sid_str; - - if (!map_domain_name_to_sid(&grp->sid, &(grp->nt_domain))) - { - DEBUG(0,("make_mydomain_sid: unknown domain %s\n", - grp->nt_domain)); - return False; - } - - if (sid_equal(&grp->sid, &global_sid_S_1_5_20)) - { - /* - * only builtin aliases are recognised in S-1-5-20 - */ - DEBUG(10,("make_mydomain_sid: group %s in builtin domain\n", - grp->nt_name)); - - if (lookup_builtin_alias_name(grp->nt_name, "BUILTIN", &grp->sid, &grp->type) != 0x0) - { - DEBUG(0,("unix group %s mapped to an unrecognised BUILTIN domain name %s\n", - grp->unix_name, grp->nt_name)); - return False; - } - ret = True; - } - else if (lookup_wk_user_name(grp->nt_name, grp->nt_domain, &grp->sid, &grp->type) == 0x0) - { - if (type != DOM_MAP_USER) - { - DEBUG(0,("well-known NT user %s\\%s listed in wrong map file\n", - grp->nt_domain, grp->nt_name)); - return False; - } - ret = True; - } - else if (lookup_wk_group_name(grp->nt_name, grp->nt_domain, &grp->sid, &grp->type) == 0x0) - { - if (type != DOM_MAP_DOMAIN) - { - DEBUG(0,("well-known NT group %s\\%s listed in wrong map file\n", - grp->nt_domain, grp->nt_name)); - return False; - } - ret = True; - } - else - { - switch (type) - { - case DOM_MAP_USER: - { - grp->type = SID_NAME_USER; - break; - } - case DOM_MAP_DOMAIN: - { - grp->type = SID_NAME_DOM_GRP; - break; - } - case DOM_MAP_LOCAL: - { - grp->type = SID_NAME_ALIAS; - break; - } - } - - ret = pwdb_unixid_to_sam_sid(grp->unix_id, grp->type, &grp->sid); - } - - sid_to_string(sid_str, &grp->sid); - DEBUG(10,("nt name %s\\%s gid %d mapped to %s\n", - grp->nt_domain, grp->nt_name, grp->unix_id, sid_str)); - return ret; -} - -/************************************************************************** - makes a group sid out of an nt domain, nt group name or a unix group name. -***************************************************************************/ -static BOOL unix_name_to_nt_name_info(DOM_NAME_MAP *map, DOM_MAP_TYPE type) -{ - /* - * Attempt to get the unix gid_t for this name. - */ - - DEBUG(5,("unix_name_to_nt_name_info: unix_name:%s\n", map->unix_name)); - - if (type == DOM_MAP_USER) - { - const struct passwd *pwptr = Get_Pwnam(map->unix_name, False); - if (pwptr == NULL) - { - DEBUG(0,("unix_name_to_nt_name_info: Get_Pwnam for user %s\ -failed. Error was %s.\n", map->unix_name, strerror(errno) )); - return False; - } - - map->unix_id = (uint32)pwptr->pw_uid; - } - else - { - struct group *gptr = getgrnam(map->unix_name); - if (gptr == NULL) - { - DEBUG(0,("unix_name_to_nt_name_info: getgrnam for group %s\ -failed. Error was %s.\n", map->unix_name, strerror(errno) )); - return False; - } - - map->unix_id = (uint32)gptr->gr_gid; - } - - DEBUG(5,("unix_name_to_nt_name_info: unix gid:%d\n", map->unix_id)); - - /* - * Now map the name to an NT SID+RID. - */ - - if (map->nt_domain != NULL && !strequal(map->nt_domain, global_sam_name)) - { - /* Must add client-call lookup code here, to - * resolve remote domain's sid and the group's rid, - * in that domain. - * - * NOTE: it is _incorrect_ to put code here that assumes - * we are responsible for lookups for foriegn domains' RIDs. - * - * for foriegn domains for which we are *NOT* the PDC, all - * we can be responsible for is the unix gid_t to which - * the foriegn SID+rid maps to, on this _local_ machine. - * we *CANNOT* make any short-cuts or assumptions about - * RIDs in a foriegn domain. - */ - - if (!map_domain_name_to_sid(&map->sid, &(map->nt_domain))) - { - DEBUG(0,("unix_name_to_nt_name_info: no known sid for %s\n", - map->nt_domain)); - return False; - } - } - - return make_mydomain_sid(map, type); -} - -static BOOL make_name_entry(name_map_entry **new_ep, - char *nt_domain, char *nt_group, char *unix_group, - DOM_MAP_TYPE type) -{ - /* - * Create the list entry and add it onto the list. - */ - - DEBUG(5,("make_name_entry:%s,%s,%s\n", nt_domain, nt_group, unix_group)); - - (*new_ep) = (name_map_entry *)malloc(sizeof(name_map_entry)); - if ((*new_ep) == NULL) - { - DEBUG(0,("make_name_entry: malloc fail for name_map_entry.\n")); - return False; - } - - ZERO_STRUCTP(*new_ep); - - (*new_ep)->grp.nt_name = strdup(nt_group ); - (*new_ep)->grp.nt_domain = strdup(nt_domain ); - (*new_ep)->grp.unix_name = strdup(unix_group); - - if ((*new_ep)->grp.nt_name == NULL || - (*new_ep)->grp.unix_name == NULL) - { - DEBUG(0,("make_name_entry: malloc fail for names in name_map_entry.\n")); - delete_name_entry((*new_ep)); - return False; - } - - /* - * look up the group names, make the Group-SID and unix gid - */ - - if (!unix_name_to_nt_name_info(&(*new_ep)->grp, type)) - { - delete_name_entry((*new_ep)); - return False; - } - - return True; -} - -/************************************************************************** - Load a name map file. Sets last accessed timestamp. -***************************************************************************/ -static ubi_slList *load_name_map(DOM_MAP_TYPE type) -{ - static time_t groupmap_file_last_modified = (time_t)0; - static time_t aliasmap_file_last_modified = (time_t)0; - static time_t ntusrmap_file_last_modified = (time_t)0; - static BOOL initialised_group = False; - static BOOL initialised_alias = False; - static BOOL initialised_ntusr = False; - char *groupname_map_file = lp_groupname_map(); - char *aliasname_map_file = lp_aliasname_map(); - char *ntusrname_map_file = lp_ntusrname_map(); - - FILE *fp; - char *s; - pstring buf; - name_map_entry *new_ep; - - time_t *file_last_modified = NULL; - int *initialised = NULL; - char *map_file = NULL; - ubi_slList *map_list = NULL; - - switch (type) - { - case DOM_MAP_DOMAIN: - { - file_last_modified = &groupmap_file_last_modified; - initialised = &initialised_group; - map_file = groupname_map_file; - map_list = &groupname_map_list; - - break; - } - case DOM_MAP_LOCAL: - { - file_last_modified = &aliasmap_file_last_modified; - initialised = &initialised_alias; - map_file = aliasname_map_file; - map_list = &aliasname_map_list; - - break; - } - case DOM_MAP_USER: - { - file_last_modified = &ntusrmap_file_last_modified; - initialised = &initialised_ntusr; - map_file = ntusrname_map_file; - map_list = &ntusrname_map_list; - - break; - } - } - - if (!(*initialised)) - { - DEBUG(10,("initialising map %s\n", map_file)); - ubi_slInitList(map_list); - (*initialised) = True; - } - - if (!*map_file) - { - return map_list; - } - - /* - * Load the file. - */ - - fp = open_file_if_modified(map_file, "r", file_last_modified); - if (!fp) - { - return map_list; - } - - /* - * Throw away any previous list. - */ - delete_map_list(map_list); - - DEBUG(4,("load_name_map: Scanning name map %s\n",map_file)); - - while ((s = fgets_slash(buf, sizeof(buf), fp)) != NULL) - { - pstring unixname; - pstring nt_name; - fstring nt_domain; - fstring ntname; - char *p; - - DEBUG(10,("Read line |%s|\n", s)); - - memset(nt_name, 0, sizeof(nt_name)); - - if (!*s || strchr("#;",*s)) - continue; - - if (!next_token(&s,unixname, "\t\n\r=", sizeof(unixname))) - continue; - - if (!next_token(&s,nt_name, "\t\n\r=", sizeof(nt_name))) - continue; - - trim_string(unixname, " ", " "); - trim_string(nt_name, " ", " "); - - if (!*nt_name) - continue; - - if (!*unixname) - continue; - - p = strchr(nt_name, '\\'); - - if (p == NULL) - { - memset(nt_domain, 0, sizeof(nt_domain)); - fstrcpy(ntname, nt_name); - } - else - { - *p = 0; - p++; - fstrcpy(nt_domain, nt_name); - fstrcpy(ntname , p); - } - - if (make_name_entry(&new_ep, nt_domain, ntname, unixname, type)) - { - ubi_slAddTail(map_list, (ubi_slNode *)new_ep); - DEBUG(5,("unixname = %s, ntname = %s\\%s type = %d\n", - new_ep->grp.unix_name, - new_ep->grp.nt_domain, - new_ep->grp.nt_name, - new_ep->grp.type)); - } - } - - DEBUG(10,("load_name_map: Added %ld entries to name map.\n", - ubi_slCount(map_list))); - - fclose(fp); - - return map_list; -} - -static void copy_grp_map_entry(DOM_NAME_MAP *grp, const DOM_NAME_MAP *from) -{ - sid_copy(&grp->sid, &from->sid); - grp->unix_id = from->unix_id; - grp->nt_name = from->nt_name; - grp->nt_domain = from->nt_domain; - grp->unix_name = from->unix_name; - grp->type = from->type; -} - -#if 0 -/*********************************************************** - Lookup unix name. -************************************************************/ -static BOOL map_unixname(DOM_MAP_TYPE type, - char *unixname, DOM_NAME_MAP *grp_info) -{ - name_map_entry *gmep; - ubi_slList *map_list; - - /* - * Initialise and load if not already loaded. - */ - map_list = load_name_map(type); - - for (gmep = (name_map_entry *)ubi_slFirst(map_list); - gmep != NULL; - gmep = (name_map_entry *)ubi_slNext(gmep )) - { - if (strequal(gmep->grp.unix_name, unixname)) - { - copy_grp_map_entry(grp_info, &gmep->grp); - DEBUG(7,("map_unixname: Mapping unix name %s to nt group %s.\n", - gmep->grp.unix_name, gmep->grp.nt_name )); - return True; - } - } - - return False; -} - -#endif - -/*********************************************************** - Lookup nt name. -************************************************************/ -static BOOL map_ntname(DOM_MAP_TYPE type, char *ntname, char *ntdomain, - DOM_NAME_MAP *grp_info) -{ - name_map_entry *gmep; - ubi_slList *map_list; - - /* - * Initialise and load if not already loaded. - */ - map_list = load_name_map(type); - - for (gmep = (name_map_entry *)ubi_slFirst(map_list); - gmep != NULL; - gmep = (name_map_entry *)ubi_slNext(gmep )) - { - if (strequal(gmep->grp.nt_name , ntname) && - strequal(gmep->grp.nt_domain, ntdomain)) - { - copy_grp_map_entry(grp_info, &gmep->grp); - DEBUG(7,("map_ntname: Mapping unix name %s to nt name %s.\n", - gmep->grp.unix_name, gmep->grp.nt_name )); - return True; - } - } - - return False; -} - - -/*********************************************************** - Lookup by SID -************************************************************/ -static BOOL map_sid(DOM_MAP_TYPE type, - DOM_SID *psid, DOM_NAME_MAP *grp_info) -{ - name_map_entry *gmep; - ubi_slList *map_list; - - /* - * Initialise and load if not already loaded. - */ - map_list = load_name_map(type); - - for (gmep = (name_map_entry *)ubi_slFirst(map_list); - gmep != NULL; - gmep = (name_map_entry *)ubi_slNext(gmep )) - { - if (sid_equal(&gmep->grp.sid, psid)) - { - copy_grp_map_entry(grp_info, &gmep->grp); - DEBUG(7,("map_sid: Mapping unix name %s to nt name %s.\n", - gmep->grp.unix_name, gmep->grp.nt_name )); - return True; - } - } - - return False; -} - -/*********************************************************** - Lookup by gid_t. -************************************************************/ -static BOOL map_unixid(DOM_MAP_TYPE type, uint32 unix_id, DOM_NAME_MAP *grp_info) -{ - name_map_entry *gmep; - ubi_slList *map_list; - - /* - * Initialise and load if not already loaded. - */ - map_list = load_name_map(type); - - for (gmep = (name_map_entry *)ubi_slFirst(map_list); - gmep != NULL; - gmep = (name_map_entry *)ubi_slNext(gmep )) - { - fstring sid_str; - sid_to_string(sid_str, &gmep->grp.sid); - DEBUG(10,("map_unixid: enum entry unix group %s %d nt %s %s\n", - gmep->grp.unix_name, gmep->grp.unix_id, gmep->grp.nt_name, sid_str)); - if (gmep->grp.unix_id == unix_id) - { - copy_grp_map_entry(grp_info, &gmep->grp); - DEBUG(7,("map_unixid: Mapping unix name %s to nt name %s type %d\n", - gmep->grp.unix_name, gmep->grp.nt_name, gmep->grp.type)); - return True; - } - } - - return False; -} - -/*********************************************************** - * - * Call four functions to resolve unix group ids and either - * local group SIDs or domain group SIDs listed in the local group - * or domain group map files. - * - * Note that it is *NOT* the responsibility of these functions to - * resolve entries that are not in the map files. - * - * Any SID can be in the map files (i.e from any Domain). - * - ***********************************************************/ - -#if 0 - -/*********************************************************** - Lookup a UNIX Group entry by name. -************************************************************/ -BOOL map_unix_group_name(char *group_name, DOM_NAME_MAP *grp_info) -{ - return map_unixname(DOM_MAP_DOMAIN, group_name, grp_info); -} - -/*********************************************************** - Lookup a UNIX Alias entry by name. -************************************************************/ -BOOL map_unix_alias_name(char *alias_name, DOM_NAME_MAP *grp_info) -{ - return map_unixname(DOM_MAP_LOCAL, alias_name, grp_info); -} - -/*********************************************************** - Lookup an Alias name entry -************************************************************/ -BOOL map_nt_alias_name(char *ntalias_name, char *nt_domain, DOM_NAME_MAP *grp_info) -{ - return map_ntname(DOM_MAP_LOCAL, ntalias_name, nt_domain, grp_info); -} - -/*********************************************************** - Lookup a Group entry -************************************************************/ -BOOL map_nt_group_name(char *ntgroup_name, char *nt_domain, DOM_NAME_MAP *grp_info) -{ - return map_ntname(DOM_MAP_DOMAIN, ntgroup_name, nt_domain, grp_info); -} - -#endif - -/*********************************************************** - Lookup a Username entry by name. -************************************************************/ -static BOOL map_nt_username(char *nt_name, char *nt_domain, DOM_NAME_MAP *grp_info) -{ - return map_ntname(DOM_MAP_USER, nt_name, nt_domain, grp_info); -} - -/*********************************************************** - Lookup a Username entry by SID. -************************************************************/ -static BOOL map_username_sid(DOM_SID *sid, DOM_NAME_MAP *grp_info) -{ - return map_sid(DOM_MAP_USER, sid, grp_info); -} - -/*********************************************************** - Lookup a Username SID entry by uid. -************************************************************/ -static BOOL map_username_uid(uid_t gid, DOM_NAME_MAP *grp_info) -{ - return map_unixid(DOM_MAP_USER, (uint32)gid, grp_info); -} - -/*********************************************************** - Lookup an Alias SID entry by name. -************************************************************/ -BOOL map_alias_sid(DOM_SID *psid, DOM_NAME_MAP *grp_info) -{ - return map_sid(DOM_MAP_LOCAL, psid, grp_info); -} - -/*********************************************************** - Lookup a Group entry by sid. -************************************************************/ -BOOL map_group_sid(DOM_SID *psid, DOM_NAME_MAP *grp_info) -{ - return map_sid(DOM_MAP_DOMAIN, psid, grp_info); -} - -/*********************************************************** - Lookup an Alias SID entry by gid_t. -************************************************************/ -static BOOL map_alias_gid(gid_t gid, DOM_NAME_MAP *grp_info) -{ - return map_unixid(DOM_MAP_LOCAL, (uint32)gid, grp_info); -} - -/*********************************************************** - Lookup a Group SID entry by gid_t. -************************************************************/ -static BOOL map_group_gid( gid_t gid, DOM_NAME_MAP *grp_info) -{ - return map_unixid(DOM_MAP_DOMAIN, (uint32)gid, grp_info); -} - - -/************************************************************************ - Routine to look up User details by UNIX name -*************************************************************************/ -BOOL lookupsmbpwnam(const char *unix_usr_name, DOM_NAME_MAP *grp) -{ - uid_t uid; - DEBUG(10,("lookupsmbpwnam: unix user name %s\n", unix_usr_name)); - if (nametouid(unix_usr_name, &uid)) - { - return lookupsmbpwuid(uid, grp); - } - else - { - return False; - } -} - -/************************************************************************ - Routine to look up a remote nt name -*************************************************************************/ -static BOOL lookup_remote_ntname(const char *ntname, DOM_SID *sid, uint8 *type) -{ - struct cli_state cli; - POLICY_HND lsa_pol; - fstring srv_name; - extern struct ntuser_creds *usr_creds; - struct ntuser_creds usr; - - BOOL res3 = True; - BOOL res4 = True; - uint32 num_sids; - DOM_SID *sids; - uint8 *types; - char *names[1]; - - usr_creds = &usr; - - ZERO_STRUCT(usr); - pwd_set_nullpwd(&usr.pwd); - - DEBUG(5,("lookup_remote_ntname: %s\n", ntname)); - - if (!cli_connect_serverlist(&cli, lp_passwordserver())) - { - return False; - } - - names[0] = ntname; - - fstrcpy(srv_name, "\\\\"); - fstrcat(srv_name, cli.desthost); - strupper(srv_name); - - /* lookup domain controller; receive a policy handle */ - res3 = res3 ? lsa_open_policy( srv_name, - &lsa_pol, True) : False; - - /* send lsa lookup sids call */ - res4 = res3 ? lsa_lookup_names( &lsa_pol, - 1, names, - &sids, &types, &num_sids) : False; - - res3 = res3 ? lsa_close(&lsa_pol) : False; - - if (res4 && res3 && sids != NULL && types != NULL) - { - sid_copy(sid, &sids[0]); - *type = types[0]; - } - else - { - res3 = False; - } - if (types != NULL) - { - free(types); - } - - if (sids != NULL) - { - free(sids); - } - - return res3 && res4; -} - -/************************************************************************ - Routine to look up a remote nt name -*************************************************************************/ -static BOOL get_sid_and_type(const char *fullntname, uint8 expected_type, - DOM_NAME_MAP *gmep) -{ - /* - * check with the PDC to see if it owns the name. if so, - * the SID is resolved with the PDC database. - */ - - if (lp_server_role() == ROLE_DOMAIN_MEMBER) - { - if (lookup_remote_ntname(fullntname, &gmep->sid, &gmep->type)) - { - if (sid_front_equal(&gmep->sid, &global_member_sid) && - strequal(gmep->nt_domain, global_myworkgroup) && - gmep->type == expected_type) - { - return True; - } - return False; - } - } - - /* - * ... otherwise, it's one of ours. map the sid ourselves, - * which can only happen in our own SAM database. - */ - - if (!strequal(gmep->nt_domain, global_sam_name)) - { - return False; - } - if (!pwdb_unixid_to_sam_sid(gmep->unix_id, gmep->type, &gmep->sid)) - { - return False; - } - - return True; -} - -/* - * used by lookup functions below - */ - -static fstring nt_name; -static fstring unix_name; -static fstring nt_domain; - -/************************************************************************* - looks up a uid, returns User Information. -*************************************************************************/ -BOOL lookupsmbpwuid(uid_t uid, DOM_NAME_MAP *gmep) -{ - DEBUG(10,("lookupsmbpwuid: unix uid %d\n", uid)); - if (map_username_uid(uid, gmep)) - { - return True; - } -#if 0 - if (lp_server_role() != ROLE_DOMAIN_NONE) -#endif - { - gmep->nt_name = nt_name; - gmep->unix_name = unix_name; - gmep->nt_domain = nt_domain; - - gmep->unix_id = (uint32)uid; - - /* - * ok, assume it's one of ours. then double-check it - * if we are a member of a domain - */ - - gmep->type = SID_NAME_USER; - fstrcpy(gmep->nt_name, uidtoname(uid)); - fstrcpy(gmep->unix_name, gmep->nt_name); - - /* - * here we should do a LsaLookupNames() call - * to check the status of the name with the PDC. - * if the PDC know nothing of the name, it's ours. - */ - - if (lp_server_role() == ROLE_DOMAIN_MEMBER) - { -#if 0 - lsa_lookup_names(global_myworkgroup, gmep->nt_name, &gmep->sid...); -#endif - } - - /* - * ok, it's one of ours. - */ - - gmep->nt_domain = global_sam_name; - pwdb_unixid_to_sam_sid(gmep->unix_id, gmep->type, &gmep->sid); - - return True; - } - - /* oops. */ - - return False; -} - -/************************************************************************* - looks up by NT name, returns User Information. -*************************************************************************/ -BOOL lookupsmbpwntnam(const char *fullntname, DOM_NAME_MAP *gmep) -{ - DEBUG(10,("lookupsmbpwntnam: nt user name %s\n", fullntname)); - - if (!split_domain_name(fullntname, nt_domain, nt_name)) - { - return False; - } - - if (map_nt_username(nt_name, nt_domain, gmep)) - { - return True; - } - if (lp_server_role() != ROLE_DOMAIN_NONE) - { - uid_t uid; - gmep->nt_name = nt_name; - gmep->unix_name = unix_name; - gmep->nt_domain = nt_domain; - - /* - * ok, it's one of ours. we therefore "create" an nt user named - * after the unix user. this is the point where "appliance mode" - * should get its teeth in, as unix users won't really exist, - * they will only be numbers... - */ - - gmep->type = SID_NAME_USER; - fstrcpy(gmep->unix_name, gmep->nt_name); - if (!nametouid(gmep->unix_name, &uid)) - { - return False; - } - gmep->unix_id = (uint32)uid; - - return get_sid_and_type(fullntname, gmep->type, gmep); - } - - /* oops. */ - - return False; -} - -/************************************************************************* - looks up by RID, returns User Information. -*************************************************************************/ -BOOL lookupsmbpwsid(DOM_SID *sid, DOM_NAME_MAP *gmep) -{ - fstring sid_str; - sid_to_string(sid_str, sid); - DEBUG(10,("lookupsmbpwsid: nt sid %s\n", sid_str)); - - if (map_username_sid(sid, gmep)) - { - return True; - } - if (lp_server_role() != ROLE_DOMAIN_NONE) - { - gmep->nt_name = nt_name; - gmep->unix_name = unix_name; - gmep->nt_domain = nt_domain; - - /* - * here we should do a LsaLookupNames() call - * to check the status of the name with the PDC. - * if the PDC know nothing of the name, it's ours. - */ - - if (lp_server_role() == ROLE_DOMAIN_MEMBER) - { -#if 0 - if (lookup_remote_sid(global_myworkgroup, gmep->sid, gmep->nt_name, gmep->nt_domain...); -#endif - } - - /* - * ok, it's one of ours. we therefore "create" an nt user named - * after the unix user. this is the point where "appliance mode" - * should get its teeth in, as unix users won't really exist, - * they will only be numbers... - */ - - gmep->type = SID_NAME_USER; - sid_copy(&gmep->sid, sid); - if (!pwdb_sam_sid_to_unixid(&gmep->sid, gmep->type, &gmep->unix_id)) - { - return False; - } - fstrcpy(gmep->nt_name, uidtoname((uid_t)gmep->unix_id)); - fstrcpy(gmep->unix_name, gmep->nt_name); - gmep->nt_domain = global_sam_name; - - return True; - } - - /* oops. */ - - return False; -} - -/************************************************************************ - Routine to look up group / alias / well-known group RID by UNIX name -*************************************************************************/ -BOOL lookupsmbgrpnam(const char *unix_grp_name, DOM_NAME_MAP *grp) -{ - gid_t gid; - DEBUG(10,("lookupsmbgrpnam: unix user group %s\n", unix_grp_name)); - if (nametogid(unix_grp_name, &gid)) - { - return lookupsmbgrpgid(gid, grp); - } - else - { - return False; - } -} - -/************************************************************************* - looks up a SID, returns name map entry -*************************************************************************/ -BOOL lookupsmbgrpsid(DOM_SID *sid, DOM_NAME_MAP *gmep) -{ - fstring sid_str; - sid_to_string(sid_str, sid); - DEBUG(10,("lookupsmbgrpsid: nt sid %s\n", sid_str)); - - if (map_alias_sid(sid, gmep)) - { - return True; - } - if (map_group_sid(sid, gmep)) - { - return True; - } - if (lp_server_role() != ROLE_DOMAIN_NONE) - { - gmep->nt_name = nt_name; - gmep->unix_name = unix_name; - gmep->nt_domain = nt_domain; - - /* - * here we should do a LsaLookupNames() call - * to check the status of the name with the PDC. - * if the PDC know nothing of the name, it's ours. - */ - - if (lp_server_role() == ROLE_DOMAIN_MEMBER) - { -#if 0 - lsa_lookup_sids(global_myworkgroup, gmep->sid, gmep->nt_name, gmep->nt_domain...); -#endif - } - - /* - * ok, it's one of ours. we therefore "create" an nt group or - * alias name named after the unix group. this is the point - * where "appliance mode" should get its teeth in, as unix - * groups won't really exist, they will only be numbers... - */ - - /* name is not explicitly mapped - * with map files or the PDC - * so we are responsible for it... - */ - - if (lp_server_role() == ROLE_DOMAIN_MEMBER) - { - /* ... as a LOCAL group. */ - gmep->type = SID_NAME_ALIAS; - } - else - { - /* ... as a DOMAIN group. */ - gmep->type = SID_NAME_DOM_GRP; - } - - sid_copy(&gmep->sid, sid); - if (!pwdb_sam_sid_to_unixid(&gmep->sid, gmep->type, &gmep->unix_id)) - { - return False; - } - fstrcpy(gmep->nt_name, gidtoname((gid_t)gmep->unix_id)); - fstrcpy(gmep->unix_name, gmep->nt_name); - gmep->nt_domain = global_sam_name; - - return True; - } - - /* oops */ - return False; -} - -/************************************************************************* - looks up a gid, returns RID and type local, domain or well-known domain group -*************************************************************************/ -BOOL lookupsmbgrpgid(gid_t gid, DOM_NAME_MAP *gmep) -{ - DEBUG(10,("lookupsmbgrpgid: unix gid %d\n", (int)gid)); - if (map_alias_gid(gid, gmep)) - { - return True; - } - if (map_group_gid(gid, gmep)) - { - return True; - } - if (lp_server_role() != ROLE_DOMAIN_NONE) - { - gmep->nt_name = nt_name; - gmep->unix_name = unix_name; - gmep->nt_domain = nt_domain; - - gmep->unix_id = (uint32)gid; - - /* - * here we should do a LsaLookupNames() call - * to check the status of the name with the PDC. - * if the PDC know nothing of the name, it's ours. - */ - - if (lp_server_role() == ROLE_DOMAIN_MEMBER) - { -#if 0 - if (lsa_lookup_names(global_myworkgroup, gmep->nt_name, &gmep->sid...); - { - return True; - } -#endif - } - - /* - * ok, it's one of ours. we therefore "create" an nt group or - * alias name named after the unix group. this is the point - * where "appliance mode" should get its teeth in, as unix - * groups won't really exist, they will only be numbers... - */ - - /* name is not explicitly mapped - * with map files or the PDC - * so we are responsible for it... - */ - - if (lp_server_role() == ROLE_DOMAIN_MEMBER) - { - /* ... as a LOCAL group. */ - gmep->type = SID_NAME_ALIAS; - } - else - { - /* ... as a DOMAIN group. */ - gmep->type = SID_NAME_DOM_GRP; - } - fstrcpy(gmep->nt_name, gidtoname(gid)); - fstrcpy(gmep->unix_name, gmep->nt_name); - - return get_sid_and_type(gmep->nt_name, gmep->type, gmep); - } - - /* oops */ - return False; -} - diff --git a/source3/lib/util_sock.c b/source3/lib/util_sock.c index 04c20f6596..fc2abf976f 100644 --- a/source3/lib/util_sock.c +++ b/source3/lib/util_sock.c @@ -832,7 +832,7 @@ void client_setfd(int fd) char *client_name(void) { - return get_socket_name(client_fd,False); + return get_socket_name(client_fd); } char *client_addr(void) @@ -890,7 +890,7 @@ static BOOL matchname(char *remotehost,struct in_addr addr) /******************************************************************* return the DNS name of the remote end of a socket ******************************************************************/ -char *get_socket_name(int fd, BOOL force_lookup) +char *get_socket_name(int fd) { static pstring name_buf; static fstring addr_buf; @@ -902,7 +902,7 @@ char *get_socket_name(int fd, BOOL force_lookup) situations won't work because many networks don't link dhcp with dns. To avoid the delay we avoid the lookup if possible */ - if (!lp_hostname_lookups() && (force_lookup == False)) { + if (!lp_hostname_lookups()) { return get_socket_addr(fd); } diff --git a/source3/libads/kerberos_verify.c b/source3/libads/kerberos_verify.c index 52fd2e6862..22b58f47dd 100644 --- a/source3/libads/kerberos_verify.c +++ b/source3/libads/kerberos_verify.c @@ -38,7 +38,7 @@ NTSTATUS ads_verify_ticket(ADS_STRUCT *ads, const DATA_BLOB *ticket, krb5_ticket *tkt = NULL; krb5_data salt; krb5_encrypt_block eblock; - int ret, i; + int ret; krb5_keyblock * key; krb5_principal host_princ; char *host_princ_s; @@ -46,7 +46,6 @@ NTSTATUS ads_verify_ticket(ADS_STRUCT *ads, const DATA_BLOB *ticket, fstring myname; char *password_s; krb5_data password; - krb5_enctype *enctypes = NULL; if (!secrets_init()) { DEBUG(1,("secrets_init failed\n")); @@ -71,6 +70,7 @@ NTSTATUS ads_verify_ticket(ADS_STRUCT *ads, const DATA_BLOB *ticket, ret = krb5_set_default_realm(context, ads->auth.realm); if (ret) { DEBUG(1,("krb5_set_default_realm failed (%s)\n", error_message(ret))); + ads_destroy(&ads); return NT_STATUS_LOGON_FAILURE; } @@ -102,44 +102,30 @@ NTSTATUS ads_verify_ticket(ADS_STRUCT *ads, const DATA_BLOB *ticket, return NT_STATUS_NO_MEMORY; } - if ((ret = krb5_get_permitted_enctypes(context, &enctypes))) { - DEBUG(1,("krb5_get_permitted_enctypes failed (%s)\n", - error_message(ret))); + krb5_use_enctype(context, &eblock, ENCTYPE_DES_CBC_MD5); + + ret = krb5_string_to_key(context, &eblock, key, &password, &salt); + if (ret) { + DEBUG(1,("krb5_string_to_key failed (%s)\n", error_message(ret))); return NT_STATUS_LOGON_FAILURE; } - /* we need to setup a auth context with each possible encoding type in turn */ - for (i=0;enctypes[i];i++) { - krb5_use_enctype(context, &eblock, enctypes[i]); - - ret = krb5_string_to_key(context, &eblock, key, &password, &salt); - if (ret) { - continue; - } + krb5_auth_con_setuseruserkey(context, auth_context, key); - krb5_auth_con_setuseruserkey(context, auth_context, key); + packet.length = ticket->length; + packet.data = (krb5_pointer)ticket->data; - packet.length = ticket->length; - packet.data = (krb5_pointer)ticket->data; - - if (!(ret = krb5_rd_req(context, &auth_context, &packet, - NULL, keytab, NULL, &tkt))) { - krb5_free_ktypes(context, enctypes); - break; - } - } +#if 0 + file_save("/tmp/ticket.dat", ticket->data, ticket->length); +#endif - if (!enctypes[i]) { + if ((ret = krb5_rd_req(context, &auth_context, &packet, + NULL, keytab, NULL, &tkt))) { DEBUG(3,("krb5_rd_req with auth failed (%s)\n", error_message(ret))); return NT_STATUS_LOGON_FAILURE; } -#if 0 - file_save("/tmp/ticket.dat", ticket->data, ticket->length); -#endif - - if (tkt->enc_part2) { *auth_data = data_blob(tkt->enc_part2->authorization_data[0]->contents, tkt->enc_part2->authorization_data[0]->length); diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c index d3c8b39e22..2133bf0719 100644 --- a/source3/libads/ldap.c +++ b/source3/libads/ldap.c @@ -1031,8 +1031,6 @@ static ADS_STATUS ads_add_machine_acct(ADS_STRUCT *ads, const char *hostname, ADS_MODLIST mods; const char *objectClass[] = {"top", "person", "organizationalPerson", "user", "computer", NULL}; - char *servicePrincipalName[3] = {NULL, NULL, NULL}; - unsigned acct_control; if (!(ctx = talloc_init_named("machine_account"))) return ADS_ERROR(LDAP_NO_MEMORY); @@ -1050,24 +1048,15 @@ static ADS_STATUS ads_add_machine_acct(ADS_STRUCT *ads, const char *hostname, } new_dn = talloc_asprintf(ctx, "cn=%s,%s,%s", hostname, ou_str, ads->config.bind_path); - servicePrincipalName[0] = talloc_asprintf(ctx, "HOST/%s", hostname); - servicePrincipalName[1] = talloc_asprintf(ctx, "HOST/%s.%s", - hostname, - ads->config.realm); - strlower(&servicePrincipalName[1][5]); - free(ou_str); if (!new_dn) goto done; if (!(samAccountName = talloc_asprintf(ctx, "%s$", hostname))) goto done; - - acct_control = UF_WORKSTATION_TRUST_ACCOUNT | UF_DONT_EXPIRE_PASSWD; -#ifndef ENCTYPE_ARCFOUR_HMAC - acct_control |= UF_USE_DES_KEY_ONLY; -#endif - if (!(controlstr = talloc_asprintf(ctx, "%u", acct_control))) + if (!(controlstr = talloc_asprintf(ctx, "%u", + UF_DONT_EXPIRE_PASSWD | UF_WORKSTATION_TRUST_ACCOUNT | + UF_TRUSTED_FOR_DELEGATION | UF_USE_DES_KEY_ONLY))) goto done; if (!(mods = ads_init_mods(ctx))) @@ -1077,7 +1066,7 @@ static ADS_STATUS ads_add_machine_acct(ADS_STRUCT *ads, const char *hostname, ads_mod_str(ctx, &mods, "sAMAccountName", samAccountName); ads_mod_strlist(ctx, &mods, "objectClass", objectClass); ads_mod_str(ctx, &mods, "userPrincipalName", host_upn); - ads_mod_strlist(ctx, &mods, "servicePrincipalName", servicePrincipalName); + ads_mod_str(ctx, &mods, "servicePrincipalName", host_spn); ads_mod_str(ctx, &mods, "dNSHostName", hostname); ads_mod_str(ctx, &mods, "userAccountControl", controlstr); ads_mod_str(ctx, &mods, "operatingSystem", "Samba"); diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index f005ac21f3..3951e3c776 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -344,7 +344,7 @@ static BOOL cli_session_setup_nt1(struct cli_state *cli, char *user, /* Have plaintext orginal */ set_signing_on_cli(cli, pass, ntpword); } - + return True; } diff --git a/source3/parsing.doc b/source3/parsing.doc new file mode 100644 index 0000000000..d26a64ae4e --- /dev/null +++ b/source3/parsing.doc @@ -0,0 +1,363 @@ +Chris Hertel, Samba Team +November 1997 + +This is a quick overview of the lexical analysis, syntax, and semantics +of the smb.conf file. + +Lexical Analysis: + + Basically, the file is processed on a line by line basis. There are + four types of lines that are recognized by the lexical analyzer + (params.c): + + Blank lines - Lines containing only whitespace. + Comment lines - Lines beginning with either a semi-colon or a + pound sign (';' or '#'). + Section header lines - Lines beginning with an open square bracket + ('['). + Parameter lines - Lines beginning with any other character. + (The default line type.) + + The first two are handled exclusively by the lexical analyzer, which + ignores them. The latter two line types are scanned for + + - Section names + - Parameter names + - Parameter values + + These are the only tokens passed to the parameter loader + (loadparm.c). Parameter names and values are divided from one + another by an equal sign: '='. + + + Handling of Whitespace: + + Whitespace is defined as all characters recognized by the isspace() + function (see ctype(3C)) except for the newline character ('\n') + The newline is excluded because it identifies the end of the line. + + - The lexical analyzer scans past white space at the beginning of a + line. + + - Section and parameter names may contain internal white space. All + whitespace within a name is compressed to a single space character. + + - Internal whitespace within a parameter value is kept verbatim with + the exception of carriage return characters ('\r'), all of which + are removed. + + - Leading and trailing whitespace is removed from names and values. + + + Handling of Line Continuation: + + Long section header and parameter lines may be extended across + multiple lines by use of the backslash character ('\\'). Line + continuation is ignored for blank and comment lines. + + If the last (non-whitespace) character within a section header or on + a parameter line is a backslash, then the next line will be + (logically) concatonated with the current line by the lexical + analyzer. For example: + + param name = parameter value string \ + with line continuation. + + Would be read as + + param name = parameter value string with line continuation. + + Note that there are five spaces following the word 'string', + representing the one space between 'string' and '\\' in the top + line, plus the four preceeding the word 'with' in the second line. + (Yes, I'm counting the indentation.) + + Line continuation characters are ignored on blank lines and at the end + of comments. They are *only* recognized within section and parameter + lines. + + + Line Continuation Quirks: + + Note the following example: + + param name = parameter value string \ + \ + with line continuation. + + The middle line is *not* parsed as a blank line because it is first + concatonated with the top line. The result is + + param name = parameter value string with line continuation. + + The same is true for comment lines. + + param name = parameter value string \ + ; comment \ + with a comment. + + This becomes: + + param name = parameter value string ; comment with a comment. + + On a section header line, the closing bracket (']') is considered a + terminating character, and the rest of the line is ignored. The lines + + [ section name ] garbage \ + param name = value + + are read as + + [section name] + param name = value + + + +Syntax: + + The syntax of the smb.conf file is as follows: + + <file> :== { <section> } EOF + + <section> :== <section header> { <parameter line> } + + <section header> :== '[' NAME ']' + + <parameter line> :== NAME '=' VALUE NL + + + Basically, this means that + + - a file is made up of zero or more sections, and is terminated by + an EOF (we knew that). + + - A section is made up of a section header followed by zero or more + parameter lines. + + - A section header is identified by an opening bracket and + terminated by the closing bracket. The enclosed NAME identifies + the section. + + - A parameter line is divided into a NAME and a VALUE. The *first* + equal sign on the line separates the NAME from the VALUE. The + VALUE is terminated by a newline character (NL = '\n'). + + +About params.c: + + The parsing of the config file is a bit unusual if you are used to + lex, yacc, bison, etc. Both lexical analysis (scanning) and parsing + are performed by params.c. Values are loaded via callbacks to + loadparm.c. + +-------------------------------------------------------------------------- + + Samba DEBUG + +Chris Hertel, Samba Team +July, 1998 + + Here's the scoop on the update to the DEBUG() system. + + First, my goals are: + * Backward compatibility (ie., I don't want to break any Samba code + that already works). + * Debug output should be timestamped and easy to read (format-wise). + * Debug output should be parsable by software. + * There should be convenient tools for composing debug messages. + + NOTE: the Debug functionality has been moved from util.c to the new + debug.c module. + +New Output Syntax + + The syntax of a debugging log file is represented as: + <debugfile> :== { <debugmsg> } + + <debugmsg> :== <debughdr> '\n' <debugtext> + + <debughdr> :== '[' TIME ',' LEVEL ']' FILE ':' [FUNCTION] '(' LINE ')' + + <debugtext> :== { <debugline> } + + <debugline> :== TEXT '\n' + + TEXT is a string of characters excluding the newline character. + LEVEL is the DEBUG level of the message (an integer in the range + 0..10). + TIME is a timestamp. + FILE is the name of the file from which the debug message was + generated. + FUNCTION is the function from which the debug message was generated. + LINE is the line number of the debug statement that generated the + message. + + Basically, what that all means is: + * A debugging log file is made up of debug messages. + * Each debug message is made up of a header and text. The header is + separated from the text by a newline. + * The header begins with the timestamp and debug level of the + message enclosed in brackets. The filename, function, and line + number at which the message was generated follow. The filename is + terminated by a colon, and the function name is terminated by the + parenthesis which contain the line number. Depending upon the + compiler, the function name may be missing (it is generated by the + __FUNCTION__ macro, which is not universally implemented, dangit). + * The message text is made up of zero or more lines, each terminated + by a newline. + + Here's some example output: + + [1998/08/03 12:55:25, 1] nmbd.c:(659) + Netbios nameserver version 1.9.19-prealpha started. + Copyright Andrew Tridgell 1994-1997 + [1998/08/03 12:55:25, 3] loadparm.c:(763) + Initializing global parameters + + Note that in the above example the function names are not listed on + the header line. That's because the example above was generated on an + SGI Indy, and the SGI compiler doesn't support the __FUNCTION__ macro. + +The DEBUG() Macro + + Use of the DEBUG() macro is unchanged. DEBUG() takes two parameters. + The first is the message level, the second is the body of a function + call to the Debug1() function. + + That's confusing. + + Here's an example which may help a bit. If you would write + + printf( "This is a %s message.\n", "debug" ); + + to send the output to stdout, then you would write + + DEBUG( 0, ( "This is a %s message.\n", "debug" ) ); + + to send the output to the debug file. All of the normal printf() + formatting escapes work. + + Note that in the above example the DEBUG message level is set to 0. + Messages at level 0 always print. Basically, if the message level is + less than or equal to the global value DEBUGLEVEL, then the DEBUG + statement is processed. + + The output of the above example would be something like: + + [1998/07/30 16:00:51, 0] file.c:function(128) + This is a debug message. + + Each call to DEBUG() creates a new header *unless* the output produced + by the previous call to DEBUG() did not end with a '\n'. Output to the + debug file is passed through a formatting buffer which is flushed + every time a newline is encountered. If the buffer is not empty when + DEBUG() is called, the new input is simply appended. + + ...but that's really just a Kludge. It was put in place because + DEBUG() has been used to write partial lines. Here's a simple (dumb) + example of the kind of thing I'm talking about: + + DEBUG( 0, ("The test returned " ) ); + if( test() ) + DEBUG(0, ("True") ); + else + DEBUG(0, ("False") ); + DEBUG(0, (".\n") ); + + Without the format buffer, the output (assuming test() returned true) + would look like this: + + [1998/07/30 16:00:51, 0] file.c:function(256) + The test returned + [1998/07/30 16:00:51, 0] file.c:function(258) + True + [1998/07/30 16:00:51, 0] file.c:function(261) + . + + Which isn't much use. The format buffer kludge fixes this problem. + +The DEBUGADD() Macro + + In addition to the kludgey solution to the broken line problem + described above, there is a clean solution. The DEBUGADD() macro never + generates a header. It will append new text to the current debug + message even if the format buffer is empty. The syntax of the + DEBUGADD() macro is the same as that of the DEBUG() macro. + + DEBUG( 0, ("This is the first line.\n" ) ); + DEBUGADD( 0, ("This is the second line.\nThis is the third line.\n" ) ); + + Produces + [1998/07/30 16:00:51, 0] file.c:function(512) + This is the first line. + This is the second line. + This is the third line. + +The DEBUGLVL() Macro + + One of the problems with the DEBUG() macro was that DEBUG() lines + tended to get a bit long. Consider this example from + nmbd_sendannounce.c: + + DEBUG(3,("send_local_master_announcement: type %x for name %s on subnet %s for workgroup %s\n", + type, global_myname, subrec->subnet_name, work->work_group)); + + One solution to this is to break it down using DEBUG() and DEBUGADD(), + as follows: + + DEBUG( 3, ( "send_local_master_announcement: " ) ); + DEBUGADD( 3, ( "type %x for name %s ", type, global_myname ) ); + DEBUGADD( 3, ( "on subnet %s ", subrec->subnet_name ) ); + DEBUGADD( 3, ( "for workgroup %s\n", work->work_group ) ); + + A similar, but arguably nicer approach is to use the DEBUGLVL() macro. + This macro returns True if the message level is less than or equal to + the global DEBUGLEVEL value, so: + + if( DEBUGLVL( 3 ) ) + { + dbgtext( "send_local_master_announcement: " ); + dbgtext( "type %x for name %s ", type, global_myname ); + dbgtext( "on subnet %s ", subrec->subnet_name ); + dbgtext( "for workgroup %s\n", work->work_group ); + } + + (The dbgtext() function is explained below.) + + There are a few advantages to this scheme: + * The test is performed only once. + * You can allocate variables off of the stack that will only be used + within the DEBUGLVL() block. + * Processing that is only relevant to debug output can be contained + within the DEBUGLVL() block. + +New Functions + + dbgtext() + This function prints debug message text to the debug file (and + possibly to syslog) via the format buffer. The function uses a + variable argument list just like printf() or Debug1(). The + input is printed into a buffer using the vslprintf() function, + and then passed to format_debug_text(). + + If you use DEBUGLVL() you will probably print the body of the + message using dbgtext(). + + dbghdr() + This is the function that writes a debug message header. + Headers are not processed via the format buffer. Also note that + if the format buffer is not empty, a call to dbghdr() will not + produce any output. See the comments in dbghdr() for more info. + + It is not likely that this function will be called directly. It + is used by DEBUG() and DEBUGADD(). + + format_debug_text() + This is a static function in debug.c. It stores the output text + for the body of the message in a buffer until it encounters a + newline. When the newline character is found, the buffer is + written to the debug file via the Debug1() function, and the + buffer is reset. This allows us to add the indentation at the + beginning of each line of the message body, and also ensures + that the output is written a line at a time (which cleans up + syslog output). diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c index 2732c53e5c..b6b58d2237 100644 --- a/source3/rpc_client/cli_pipe.c +++ b/source3/rpc_client/cli_pipe.c @@ -599,7 +599,7 @@ static BOOL create_rpc_bind_req(prs_struct *rpc_out, BOOL do_auth, uint32 rpc_ca } /* create the request RPC_HDR */ - init_rpc_hdr(&hdr, RPC_BIND, 0x3, rpc_call_id, + init_rpc_hdr(&hdr, RPC_BIND, 0x0, rpc_call_id, RPC_HEADER_LEN + RPC_HDR_RB_LEN + prs_offset(&auth_info), auth_len); diff --git a/source3/rpc_parse/parse_rpc.c b/source3/rpc_parse/parse_rpc.c index 247c83aecd..590268bed5 100644 --- a/source3/rpc_parse/parse_rpc.c +++ b/source3/rpc_parse/parse_rpc.c @@ -75,7 +75,7 @@ interface/version dce/rpc pipe identification }, 0x00 \ } -#define SYNT_LSARPC_V0_DS \ +#define SYNT_LSARPC_V0_WIN2K \ { \ { \ 0x3919286a, 0xb10c, 0x11d0, \ @@ -147,7 +147,7 @@ struct pipe_id_info pipe_names [] = { /* client pipe , abstract syntax , server pipe , transfer syntax */ { PIPE_LSARPC , SYNT_LSARPC_V0 , PIPE_LSASS , TRANS_SYNT_V2 }, - { PIPE_LSARPC , SYNT_LSARPC_V0_DS , PIPE_LSASS , TRANS_SYNT_V2 }, + { PIPE_LSARPC , SYNT_LSARPC_V0_WIN2K , PIPE_LSASS , TRANS_SYNT_V2 }, { PIPE_SAMR , SYNT_SAMR_V1 , PIPE_LSASS , TRANS_SYNT_V2 }, { PIPE_NETLOGON, SYNT_NETLOGON_V1 , PIPE_LSASS , TRANS_SYNT_V2 }, { PIPE_SRVSVC , SYNT_SRVSVC_V3 , PIPE_NTSVCS , TRANS_SYNT_V2 }, diff --git a/source3/rpcclient/cmd_lsarpc.c b/source3/rpcclient/cmd_lsarpc.c index 8eb8ce8754..af5bb2066b 100644 --- a/source3/rpcclient/cmd_lsarpc.c +++ b/source3/rpcclient/cmd_lsarpc.c @@ -525,6 +525,13 @@ static NTSTATUS cmd_lsa_query_secobj(struct cli_state *cli, } +static NTSTATUS cmd_lsa_dsrole_getprimarydominfo(struct cli_state *cli, + TALLOC_CTX *mem_ctx, int argc, + char **argv) +{ + return NT_STATUS_OK; +} + /* List of commands exported by this module */ struct cmd_set lsarpc_commands[] = { @@ -541,6 +548,7 @@ struct cmd_set lsarpc_commands[] = { { "lsaenumprivsaccount", cmd_lsa_enum_privsaccounts, PI_LSARPC, "Enumerate the privileges of an SID", "" }, { "lsalookupprivvalue", cmd_lsa_lookupprivvalue, PI_LSARPC, "Get a privilege value given its name", "" }, { "lsaquerysecobj", cmd_lsa_query_secobj, PI_LSARPC, "Query LSA security object", "" }, + { "lsarpcbind", cmd_lsa_dsrole_getprimarydominfo, PI_LSARPC_V2, "Test 2k UUID in rpc bind", "" }, { NULL } }; diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c index c34f3b08ad..9c6cd3794b 100644 --- a/source3/rpcclient/rpcclient.c +++ b/source3/rpcclient/rpcclient.c @@ -402,12 +402,10 @@ extern struct cmd_set netlogon_commands[]; extern struct cmd_set srvsvc_commands[]; extern struct cmd_set dfs_commands[]; extern struct cmd_set reg_commands[]; -extern struct cmd_set ds_commands[]; static struct cmd_set *rpcclient_command_list[] = { rpcclient_commands, lsarpc_commands, - ds_commands, samr_commands, spoolss_commands, netlogon_commands, diff --git a/source3/sam/api.c b/source3/sam/api.c new file mode 100644 index 0000000000..fb2f015e95 --- /dev/null +++ b/source3/sam/api.c @@ -0,0 +1,322 @@ +/* + Unix SMB/CIFS implementation. + SAM interface API. + + Copyright (C) Stefan (metze) Metzmacher 2002 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "includes.h" + +#undef DBGC_CLASS +#define DBGC_CLASS DBGC_SAM + +/* these functions should be used by the rest of SAMBA --metze */ + +/* General API */ + +NTSTATUS sam_get_sec_desc(const NT_USER_TOKEN *access_token, const DOM_SID *sid, SEC_DESC **sd) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_get_sec_desc(sam_context, access_token, sid, sd); +} + +NTSTATUS sam_set_sec_desc(const NT_USER_TOKEN *access_token, const DOM_SID *sid, const SEC_DESC *sd) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_set_sec_desc(sam_context, access_token, sid, sd); +} + +NTSTATUS sam_lookup_sid(const NT_USER_TOKEN *access_token, const DOM_SID *sid, char **name, uint32 *type) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_lookup_sid(sam_context, access_token, sid, name, type); +} + +NTSTATUS sam_lookup_name(const NT_USER_TOKEN *access_token, const char *domain, const char *name, DOM_SID **sid, uint32 *type) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_lookup_name(sam_context, access_token, domain, name, sid, type); +} + +/* Domain API */ + +NTSTATUS sam_update_domain(const SAM_DOMAIN_HANDLE *domain) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_update_domain(sam_context, domain); +} + +NTSTATUS sam_enum_domains(const NT_USER_TOKEN *access_token, int32 *domain_count, DOM_SID **domains, char **domain_names) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_enum_domains(sam_context, access_token, domain_count, domains, domain_names); +} + +NTSTATUS sam_lookup_domain(const NT_USER_TOKEN * access_token, const char *domain, DOM_SID **domainsid) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_lookup_domain(sam_context, access_token, domain, domainsid); +} + +NTSTATUS sam_get_domain_by_sid(const NT_USER_TOKEN *access_token, const uint32 access_desired, const DOM_SID *domainsid, SAM_DOMAIN_HANDLE **domain) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_get_domain_by_sid(sam_context, access_token, access_desired, domainsid, domain); +} + +/* Account API */ + +NTSTATUS sam_create_account(const NT_USER_TOKEN *access_token, const uint32 access_desired, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_create_account(sam_context, access_token, access_desired, domainsid, account_name, acct_ctrl, account); +} + +NTSTATUS sam_add_account(const DOM_SID *domainsid, const SAM_ACCOUNT_HANDLE *account) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_add_account(sam_context, domainsid, account); +} + +NTSTATUS sam_update_account(const SAM_ACCOUNT_HANDLE *account) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_update_account(sam_context, account); +} + +NTSTATUS sam_delete_account(const SAM_ACCOUNT_HANDLE *account) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_delete_account(sam_context, account); +} + +NTSTATUS sam_enum_accounts(const NT_USER_TOKEN *access_token, const DOM_SID *domain, uint16 acct_ctrl, uint32 *account_count, SAM_ACCOUNT_ENUM **accounts) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_enum_accounts(sam_context, access_token, domain, acct_ctrl, account_count, accounts); +} + +NTSTATUS sam_get_account_by_sid(const NT_USER_TOKEN *access_token, const uint32 access_desired, const DOM_SID *accountsid, SAM_ACCOUNT_HANDLE **account) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_get_account_by_sid(sam_context, access_token, access_desired, accountsid, account); +} + +NTSTATUS sam_get_account_by_name(const NT_USER_TOKEN *access_token, const uint32 access_desired, const char *domain, const char *name, SAM_ACCOUNT_HANDLE **account) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_get_account_by_name(sam_context, access_token, access_desired, domain, name, account); +} + +/* Group API */ + +NTSTATUS sam_create_group(const NT_USER_TOKEN *access_token, const uint32 access_desired, const DOM_SID *domainsid, const char *group_name, uint16 group_ctrl, SAM_GROUP_HANDLE **group) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_create_group(sam_context, access_token, access_desired, domainsid, group_name, group_ctrl, group); +} + +NTSTATUS sam_add_group(const DOM_SID *domainsid, const SAM_GROUP_HANDLE *group) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_add_group(sam_context, domainsid, group); +} + +NTSTATUS sam_update_group(const SAM_GROUP_HANDLE *group) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_update_group(sam_context, group); +} + +NTSTATUS sam_delete_group(const SAM_GROUP_HANDLE *group) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_delete_group(sam_context, group); +} + +NTSTATUS sam_enum_groups(const NT_USER_TOKEN *access_token, const DOM_SID *domainsid, uint16 group_ctrl, uint32 *groups_count, SAM_GROUP_ENUM **groups) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_enum_groups(sam_context, access_token, domainsid, group_ctrl, groups_count, groups); +} + +NTSTATUS sam_get_group_by_sid(const NT_USER_TOKEN *access_token, const uint32 access_desired, const DOM_SID *groupsid, SAM_GROUP_HANDLE **group) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_get_group_by_sid(sam_context, access_token, access_desired, groupsid, group); +} + +NTSTATUS sam_get_group_by_name(const NT_USER_TOKEN *access_token, const uint32 access_desired, const char *domain, const char *name, SAM_GROUP_HANDLE **group) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_get_group_by_name(sam_context, access_token, access_desired, domain, name, group); +} + +NTSTATUS sam_add_member_to_group(const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_add_member_to_group(sam_context, group, member); +} + +NTSTATUS sam_delete_member_from_group(const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_delete_member_from_group(sam_context, group, member); +} + +NTSTATUS sam_enum_groupmembers(const SAM_GROUP_HANDLE *group, uint32 *members_count, SAM_GROUP_MEMBER **members) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_enum_groupmembers(sam_context, group, members_count, members); +} + +NTSTATUS sam_get_groups_of_sid(const NT_USER_TOKEN *access_token, const DOM_SID **sids, uint16 group_ctrl, uint32 *group_count, SAM_GROUP_ENUM **groups) +{ + SAM_CONTEXT *sam_context = sam_get_static_context(False); + + if (!sam_context) { + return NT_STATUS_UNSUCCESSFUL; + } + + return sam_context->sam_get_groups_of_sid(sam_context, access_token, sids, group_ctrl, group_count, groups); +} + diff --git a/source3/sam/interface.c b/source3/sam/interface.c index 4f5e565d2e..0943a0e8f1 100644 --- a/source3/sam/interface.c +++ b/source3/sam/interface.c @@ -32,15 +32,17 @@ extern DOM_SID global_sid_Builtin; const struct sam_init_function_entry builtin_sam_init_functions[] = { { "plugin", sam_init_plugin }, -#ifdef HAVE_LDAP - { "ads", sam_init_ads }, -#endif - { "skel", sam_init_skel }, { NULL, NULL} }; +/****************************************************************** + context_sam_* functions are used to link the external SAM interface + with the internal backends. These functions lookup the appropriate + backends for the domain and pass on to the function in sam_methods + in the selected backend + *******************************************************************/ -static NTSTATUS sam_get_methods_by_sid(const SAM_CONTEXT *context, SAM_METHODS **sam_method, const DOM_SID *domainsid) +NTSTATUS sam_get_methods_by_sid(const SAM_CONTEXT *context, SAM_METHODS **sam_method, const DOM_SID *domainsid) { SAM_METHODS *tmp_methods; @@ -65,7 +67,7 @@ static NTSTATUS sam_get_methods_by_sid(const SAM_CONTEXT *context, SAM_METHODS * return NT_STATUS_NO_SUCH_DOMAIN; } -static NTSTATUS sam_get_methods_by_name(const SAM_CONTEXT *context, SAM_METHODS **sam_method, const char *domainname) +NTSTATUS sam_get_methods_by_name(const SAM_CONTEXT *context, SAM_METHODS **sam_method, const char *domainname) { SAM_METHODS *tmp_methods; @@ -77,7 +79,7 @@ static NTSTATUS sam_get_methods_by_name(const SAM_CONTEXT *context, SAM_METHODS tmp_methods = context->methods; while (tmp_methods) { - if (strequal(domainname, tmp_methods->domain_name)) + if (!strcmp(domainname, tmp_methods->domain_name)) { (*sam_method) = tmp_methods; return NT_STATUS_OK; @@ -90,393 +92,12 @@ static NTSTATUS sam_get_methods_by_name(const SAM_CONTEXT *context, SAM_METHODS return NT_STATUS_NO_SUCH_DOMAIN; } -static NTSTATUS make_sam_methods(TALLOC_CTX *mem_ctx, SAM_METHODS **methods) -{ - *methods = talloc(mem_ctx, sizeof(SAM_METHODS)); - - if (!*methods) { - return NT_STATUS_NO_MEMORY; - } - - ZERO_STRUCTP(*methods); - - return NT_STATUS_OK; -} - -/****************************************************************** - Free and cleanup a sam context, any associated data and anything - that the attached modules might have associated. - *******************************************************************/ - -void free_sam_context(SAM_CONTEXT **context) -{ - SAM_METHODS *sam_selected = (*context)->methods; - - while (sam_selected) { - if (sam_selected->free_private_data) { - sam_selected->free_private_data(&(sam_selected->private_data)); - } - sam_selected = sam_selected->next; - } - - talloc_destroy((*context)->mem_ctx); - *context = NULL; -} - -/****************************************************************** - Make a backend_entry from scratch - *******************************************************************/ - -static NTSTATUS make_backend_entry(SAM_BACKEND_ENTRY *backend_entry, char *sam_backend_string) -{ - char *tmp = NULL; - char *tmp_string = sam_backend_string; - - DEBUG(5,("make_backend_entry: %d\n", __LINE__)); - - SAM_ASSERT(sam_backend_string && backend_entry); - - backend_entry->module_name = sam_backend_string; - - DEBUG(5,("makeing backend_entry for %s\n", backend_entry->module_name)); - - if ((tmp = strrchr(tmp_string, '|')) != NULL) { - DEBUGADD(20,("a domain name has been specified\n")); - *tmp = 0; - backend_entry->domain_name = smb_xstrdup(tmp + 1); - tmp_string = tmp + 1; - } - - if ((tmp = strchr(tmp_string, ':')) != NULL) { - DEBUG(20,("options for the backend have been specified\n")); - *tmp = 0; - backend_entry->module_params = smb_xstrdup(tmp + 1); - tmp_string = tmp + 1; - } - - if (backend_entry->domain_name == NULL) { - DEBUG(10,("make_backend_entry: no domain was specified for sam module %s. Using default domain %s\n", - backend_entry->module_name, lp_workgroup())); - backend_entry->domain_name = smb_xstrdup(lp_workgroup()); - } - - if ((backend_entry->domain_sid = (DOM_SID *)malloc(sizeof(DOM_SID))) == NULL) { - DEBUG(0,("make_backend_entry: failed to malloc domain_sid\n")); - return NT_STATUS_NO_MEMORY; - } - - DEBUG(10,("looking up sid for domain %s\n", backend_entry->domain_name)); - - if (!secrets_fetch_domain_sid(backend_entry->domain_name, backend_entry->domain_sid)) { - DEBUG(2,("make_backend_entry: There is no SID stored for domain %s. Creating a new one.\n", - backend_entry->domain_name)); - DEBUG(0, ("FIXME in %s:%d\n", __FILE__, __LINE__)); - ZERO_STRUCTP(backend_entry->domain_sid); - } - - DEBUG(5,("make_backend_entry: module name: %s, module parameters: %s, domain name: %s, domain sid: %s\n", - backend_entry->module_name, backend_entry->module_params, backend_entry->domain_name, sid_string_static(backend_entry->domain_sid))); - - return NT_STATUS_OK; -} - -/****************************************************************** - create sam_methods struct based on sam_backend_entry - *****************************************************************/ - -static NTSTATUS make_sam_methods_backend_entry(SAM_CONTEXT *context, SAM_METHODS **methods_ptr, SAM_BACKEND_ENTRY *backend_entry) -{ - NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; - SAM_METHODS *methods; - int i; - - DEBUG(5,("make_sam_methods_backend_entry: %d\n", __LINE__)); - - if (!NT_STATUS_IS_OK(nt_status = make_sam_methods(context->mem_ctx, methods_ptr))) { - return nt_status; - } - - methods = *methods_ptr; - methods->backendname = talloc_strdup(context->mem_ctx, backend_entry->module_name); - methods->domain_name = talloc_strdup(context->mem_ctx, backend_entry->domain_name); - sid_copy(&methods->domain_sid, backend_entry->domain_sid); - methods->parent = context; - - DEBUG(5,("Attempting to find sam backend %s\n", backend_entry->module_name)); - for (i = 0; builtin_sam_init_functions[i].module_name; i++) - { - if (strequal(builtin_sam_init_functions[i].module_name, backend_entry->module_name)) - { - DEBUG(5,("Found sam backend %s (at pos %d)\n", backend_entry->module_name, i)); - DEBUGADD(5,("initialising it with options=%s for domain %s\n", backend_entry->module_params, sid_string_static(backend_entry->domain_sid))); - nt_status = builtin_sam_init_functions[i].init(methods, backend_entry->module_params); - if (NT_STATUS_IS_OK(nt_status)) { - DEBUG(5,("sam backend %s has a valid init\n", backend_entry->module_name)); - } else { - DEBUG(2,("sam backend %s did not correctly init (error was %s)\n", - backend_entry->module_name, nt_errstr(nt_status))); - } - return nt_status; - } - } - - DEBUG(2,("could not find backend %s\n", backend_entry->module_name)); - - return NT_STATUS_INVALID_PARAMETER; -} - -static NTSTATUS sam_context_check_default_backends(SAM_CONTEXT *context) -{ - SAM_BACKEND_ENTRY entry; - DOM_SID *global_sam_sid = get_global_sam_sid(); /* lp_workgroup doesn't play nicely with multiple domains */ - SAM_METHODS *methods, *tmpmethods; - NTSTATUS ntstatus; - - DEBUG(5,("sam_context_check_default_backends: %d\n", __LINE__)); - - /* Make sure domain lp_workgroup() is available */ - - ntstatus = sam_get_methods_by_sid(context, &methods, &global_sid_Builtin); - - if (NT_STATUS_EQUAL(ntstatus, NT_STATUS_NO_SUCH_DOMAIN)) { - DEBUG(4,("There was no backend specified for domain %s(%s); using %s\n", - lp_workgroup(), sid_string_static(global_sam_sid), SAM_DEFAULT_BACKEND)); - - SAM_ASSERT(global_sam_sid); - - entry.module_name = SAM_DEFAULT_BACKEND; - entry.module_params = NULL; - entry.domain_name = lp_workgroup(); - entry.domain_sid = (DOM_SID *)malloc(sizeof(DOM_SID)); - sid_copy(entry.domain_sid, global_sam_sid); - - if (!NT_STATUS_IS_OK(ntstatus = make_sam_methods_backend_entry(context, &methods, &entry))) { - DEBUG(4,("make_sam_methods_backend_entry failed\n")); - return ntstatus; - } - - DLIST_ADD_END(context->methods, methods, tmpmethods); - - } else if (!NT_STATUS_IS_OK(ntstatus)) { - DEBUG(2, ("sam_get_methods_by_sid failed for %s\n", lp_workgroup())); - return ntstatus; - } - - /* Make sure the BUILTIN domain is available */ - - ntstatus = sam_get_methods_by_sid(context, &methods, global_sam_sid); - - if (NT_STATUS_EQUAL(ntstatus, NT_STATUS_NO_SUCH_DOMAIN)) { - DEBUG(4,("There was no backend specified for domain BUILTIN; using %s\n", - SAM_DEFAULT_BACKEND)); - entry.module_name = SAM_DEFAULT_BACKEND; - entry.module_params = NULL; - entry.domain_name = "BUILTIN"; - entry.domain_sid = (DOM_SID *)malloc(sizeof(DOM_SID)); - sid_copy(entry.domain_sid, &global_sid_Builtin); - - if (!NT_STATUS_IS_OK(ntstatus = make_sam_methods_backend_entry(context, &methods, &entry))) { - DEBUG(4,("make_sam_methods_backend_entry failed\n")); - return ntstatus; - } - - DLIST_ADD_END(context->methods, methods, tmpmethods); - } else if (!NT_STATUS_IS_OK(ntstatus)) { - DEBUG(2, ("sam_get_methods_by_sid failed for BUILTIN\n")); - return ntstatus; - } - - return NT_STATUS_OK; -} - -static NTSTATUS check_duplicate_backend_entries(SAM_BACKEND_ENTRY **backend_entries, int *nBackends) -{ - int i, j; - - DEBUG(5,("check_duplicate_backend_entries: %d\n", __LINE__)); - - for (i = 0; i < *nBackends; i++) { - for (j = i + 1; j < *nBackends; j++) { - if (sid_equal((*backend_entries)[i].domain_sid, (*backend_entries)[j].domain_sid)) { - DEBUG(0,("two backend modules claim the same domain %s\n", - sid_string_static((*backend_entries)[j].domain_sid))); - return NT_STATUS_INVALID_PARAMETER; - } - } - } - - return NT_STATUS_OK; -} - -NTSTATUS make_sam_context_list(SAM_CONTEXT **context, char **sam_backends_param) -{ - int i = 0, j = 0; - SAM_METHODS *curmethods, *tmpmethods; - int nBackends = 0; - SAM_BACKEND_ENTRY *backends = NULL; - NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; - - DEBUG(5,("make_sam_context_from_conf: %d\n", __LINE__)); - - if (!sam_backends_param) { - DEBUG(1, ("no SAM backeds specified!\n")); - return NT_STATUS_INVALID_PARAMETER; - } - - if (!NT_STATUS_IS_OK(nt_status = make_sam_context(context))) { - DEBUG(4,("make_sam_context failed\n")); - return nt_status; - } - - while (sam_backends_param[nBackends]) - nBackends++; - - DEBUG(6,("There are %d domains listed with their backends\n", nBackends)); - - if ((backends = (SAM_BACKEND_ENTRY *)malloc(sizeof(*backends)*nBackends)) == NULL) { - DEBUG(0,("make_sam_context_list: failed to allocate backends\n")); - return NT_STATUS_NO_MEMORY; - } - - memset(backends, '\0', sizeof(*backends)*nBackends); - - for (i = 0; i < nBackends; i++) { - DEBUG(8,("processing %s\n",sam_backends_param[i])); - if (!NT_STATUS_IS_OK(nt_status = make_backend_entry(&backends[i], sam_backends_param[i]))) { - DEBUG(4,("make_backend_entry failed\n")); - for (j = 0; j < nBackends; j++) SAFE_FREE(backends[j].domain_sid); - SAFE_FREE(backends); - free_sam_context(context); - return nt_status; - } - } - - if (!NT_STATUS_IS_OK(nt_status = check_duplicate_backend_entries(&backends, &nBackends))) { - DEBUG(4,("check_duplicate_backend_entries failed\n")); - for (j = 0; j < nBackends; j++) SAFE_FREE(backends[j].domain_sid); - SAFE_FREE(backends); - free_sam_context(context); - return nt_status; - } - - for (i = 0; i < nBackends; i++) { - if (!NT_STATUS_IS_OK(nt_status = make_sam_methods_backend_entry(*context, &curmethods, &backends[i]))) { - DEBUG(4,("make_sam_methods_backend_entry failed\n")); - for (j = 0; j < nBackends; j++) SAFE_FREE(backends[j].domain_sid); - SAFE_FREE(backends); - free_sam_context(context); - return nt_status; - } - DLIST_ADD_END((*context)->methods, curmethods, tmpmethods); - } - - for (i = 0; i < nBackends; i++) SAFE_FREE(backends[i].domain_sid); - - SAFE_FREE(backends); - return NT_STATUS_OK; -} - -/****************************************************************** - Make a sam_context from scratch. - *******************************************************************/ - -NTSTATUS make_sam_context(SAM_CONTEXT **context) -{ - TALLOC_CTX *mem_ctx; - - mem_ctx = talloc_init_named("sam_context internal allocation context"); - - if (!mem_ctx) { - DEBUG(0, ("make_sam_context: talloc init failed!\n")); - return NT_STATUS_NO_MEMORY; - } - - *context = talloc(mem_ctx, sizeof(**context)); - if (!*context) { - DEBUG(0, ("make_sam_context: talloc failed!\n")); - return NT_STATUS_NO_MEMORY; - } - - ZERO_STRUCTP(*context); - - (*context)->mem_ctx = mem_ctx; - - (*context)->free_fn = free_sam_context; - - return NT_STATUS_OK; -} - -/****************************************************************** - Return an already initialised sam_context, to facilitate backward - compatibility (see functions below). - *******************************************************************/ - -static struct sam_context *sam_get_static_context(BOOL reload) -{ - static SAM_CONTEXT *sam_context = NULL; - - if ((sam_context) && (reload)) { - sam_context->free_fn(&sam_context); - sam_context = NULL; - } - - if (!sam_context) { - if (!NT_STATUS_IS_OK(make_sam_context_list(&sam_context, lp_sam_backend()))) { - DEBUG(4,("make_sam_context_list failed\n")); - return NULL; - } - - /* Make sure the required domains (default domain, builtin) are available */ - if (!NT_STATUS_IS_OK(sam_context_check_default_backends(sam_context))) { - DEBUG(4,("sam_context_check_default_backends failed\n")); - return NULL; - } - } - - return sam_context; -} - -/*************************************************************** - Initialize the static context (at smbd startup etc). - - If uninitialised, context will auto-init on first use. - ***************************************************************/ - -BOOL initialize_sam(BOOL reload) -{ - return (sam_get_static_context(reload) != NULL); -} - - -/************************************************************** - External API. This is what the rest of the world calls... -***************************************************************/ - -/****************************************************************** - sam_* functions are used to link the external SAM interface - with the internal backends. These functions lookup the appropriate - backends for the domain and pass on to the function in sam_methods - in the selected backend - - When the context parmater is NULL, the default is used. - *******************************************************************/ - -#define SAM_SETUP_CONTEXT if (!context) \ - context = sam_get_static_context(False);\ - if (!context) {\ - return NT_STATUS_UNSUCCESSFUL; \ - }\ - - - -NTSTATUS sam_get_sec_desc(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *sid, SEC_DESC **sd) +NTSTATUS context_sam_get_sec_desc(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *sid, SEC_DESC **sd) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("sam_get_sec_desc: %d\n", __LINE__)); - - SAM_SETUP_CONTEXT; + DEBUG(5,("context_sam_get_sec_desc: %d\n", __LINE__)); if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, sid))) { DEBUG(4,("sam_get_methods_by_sid failed\n")); @@ -484,7 +105,7 @@ NTSTATUS sam_get_sec_desc(const SAM_CONTEXT *context, const NT_USER_TOKEN *acces } if (!tmp_methods->sam_get_sec_desc) { - DEBUG(3, ("sam_get_sec_desc: sam_methods of the domain did not specify sam_get_sec_desc\n")); + DEBUG(3, ("context_sam_get_sec_desc: sam_methods of the domain did not specify sam_get_sec_desc\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -496,22 +117,20 @@ NTSTATUS sam_get_sec_desc(const SAM_CONTEXT *context, const NT_USER_TOKEN *acces return NT_STATUS_OK; } -NTSTATUS sam_set_sec_desc(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *sid, const SEC_DESC *sd) +NTSTATUS context_sam_set_sec_desc(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *sid, const SEC_DESC *sd) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("sam_set_sec_desc: %d\n", __LINE__)); + DEBUG(5,("context_sam_set_sec_desc: %d\n", __LINE__)); - SAM_SETUP_CONTEXT; - if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, sid))) { DEBUG(4,("sam_get_methods_by_sid failed\n")); return nt_status; } if (!tmp_methods->sam_set_sec_desc) { - DEBUG(3, ("sam_set_sec_desc: sam_methods of the domain did not specify sam_set_sec_desc\n")); + DEBUG(3, ("context_sam_set_sec_desc: sam_methods of the domain did not specify sam_set_sec_desc\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -524,14 +143,12 @@ NTSTATUS sam_set_sec_desc(const SAM_CONTEXT *context, const NT_USER_TOKEN *acces } -NTSTATUS sam_lookup_name(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const char *domain, const char *name, DOM_SID *sid, uint32 *type) +NTSTATUS context_sam_lookup_name(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const char *domain, const char *name, DOM_SID **sid, uint32 *type) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("sam_lookup_name: %d\n", __LINE__)); - - SAM_SETUP_CONTEXT; + DEBUG(5,("context_sam_lookup_name: %d\n", __LINE__)); if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_name(context, &tmp_methods, domain))) { DEBUG(4,("sam_get_methods_by_name failed\n")); @@ -539,7 +156,7 @@ NTSTATUS sam_lookup_name(const SAM_CONTEXT *context, const NT_USER_TOKEN *access } if (!tmp_methods->sam_lookup_name) { - DEBUG(3, ("sam_lookup_name: sam_methods of the domain did not specify sam_lookup_name\n")); + DEBUG(3, ("context_sam_lookup_name: sam_methods of the domain did not specify sam_lookup_name\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -552,20 +169,18 @@ NTSTATUS sam_lookup_name(const SAM_CONTEXT *context, const NT_USER_TOKEN *access return NT_STATUS_OK; } -NTSTATUS sam_lookup_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, TALLOC_CTX *mem_ctx, const DOM_SID *sid, char **name, uint32 *type) +NTSTATUS context_sam_lookup_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *sid, char **name, uint32 *type) { SAM_METHODS *tmp_methods; uint32 rid; NTSTATUS nt_status; DOM_SID domainsid; - DEBUG(5,("sam_lookup_sid: %d\n", __LINE__)); - - SAM_SETUP_CONTEXT; + DEBUG(5,("context_sam_lookup_sid: %d\n", __LINE__)); sid_copy(&domainsid, sid); if (!sid_split_rid(&domainsid, &rid)) { - DEBUG(3,("sam_lookup_sid: failed to split the sid\n")); + DEBUG(3,("context_sam_lookup_sid: failed to split the sid\n")); return NT_STATUS_INVALID_SID; } @@ -575,11 +190,11 @@ NTSTATUS sam_lookup_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_ } if (!tmp_methods->sam_lookup_sid) { - DEBUG(3, ("sam_lookup_sid: sam_methods of the domain did not specify sam_lookup_sid\n")); + DEBUG(3, ("context_sam_lookup_sid: sam_methods of the domain did not specify sam_lookup_sid\n")); return NT_STATUS_NOT_IMPLEMENTED; } - if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_lookup_sid(tmp_methods, access_token, mem_ctx, sid, name, type))) { + if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_lookup_sid(tmp_methods, access_token, sid, name, type))) { DEBUG(4,("sam_lookup_name for %s in backend %s failed\n", sid_string_static(sid), tmp_methods->backendname)); return nt_status; @@ -589,22 +204,20 @@ NTSTATUS sam_lookup_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_ } -NTSTATUS sam_update_domain(const SAM_CONTEXT *context, const SAM_DOMAIN_HANDLE *domain) +NTSTATUS context_sam_update_domain(const SAM_CONTEXT *context, const SAM_DOMAIN_HANDLE *domain) { const SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("sam_update_domain: %d\n", __LINE__)); + DEBUG(5,("context_sam_update_domain: %d\n", __LINE__)); - SAM_SETUP_CONTEXT; - /* invalid domain specified */ SAM_ASSERT(domain && domain->current_sam_methods); tmp_methods = domain->current_sam_methods; if (!tmp_methods->sam_update_domain) { - DEBUG(3, ("sam_update_domain: sam_methods of the domain did not specify sam_update_domain\n")); + DEBUG(3, ("context_sam_update_domain: sam_methods of the domain did not specify sam_update_domain\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -617,7 +230,7 @@ NTSTATUS sam_update_domain(const SAM_CONTEXT *context, const SAM_DOMAIN_HANDLE * return NT_STATUS_OK; } -NTSTATUS sam_enum_domains(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, int32 *domain_count, DOM_SID **domains, char ***domain_names) +NTSTATUS context_sam_enum_domains(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, int32 *domain_count, DOM_SID **domains, char ***domain_names) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; @@ -627,12 +240,10 @@ NTSTATUS sam_enum_domains(const SAM_CONTEXT *context, const NT_USER_TOKEN *acces uint32 acc_granted; int i = 0; - DEBUG(5,("sam_enum_domains: %d\n", __LINE__)); + DEBUG(5,("context_sam_enum_domains: %d\n", __LINE__)); - SAM_SETUP_CONTEXT; - - /* invalid parmaters specified */ - SAM_ASSERT(domain_count && domains && domain_names); + /* invalid sam_context specified */ + SAM_ASSERT(context && context->methods); if (!NT_STATUS_IS_OK(nt_status = samr_make_sam_obj_sd(context->mem_ctx, &sd, &sd_size))) { DEBUG(4,("samr_make_sam_obj_sd failed\n")); @@ -640,7 +251,7 @@ NTSTATUS sam_enum_domains(const SAM_CONTEXT *context, const NT_USER_TOKEN *acces } if (!se_access_check(sd, access_token, SAMR_ACCESS_ENUM_DOMAINS, &acc_granted, &nt_status)) { - DEBUG(3,("sam_enum_domains: ACCESS DENIED\n")); + DEBUG(3,("context_sam_enum_domains: ACCESS DENIED\n")); return nt_status; } @@ -652,17 +263,17 @@ NTSTATUS sam_enum_domains(const SAM_CONTEXT *context, const NT_USER_TOKEN *acces tmp_methods= tmp_methods->next; } - DEBUG(6,("sam_enum_domains: enumerating %d domains\n", (*domain_count))); + DEBUG(6,("context_sam_enum_domains: enumerating %d domains\n", (*domain_count))); tmp_methods = context->methods; if (((*domains) = malloc( sizeof(DOM_SID) * (*domain_count))) == NULL) { - DEBUG(0,("sam_enum_domains: Out of memory allocating domain SID list\n")); + DEBUG(0,("context_sam_enum_domains: Out of memory allocating domain SID list\n")); return NT_STATUS_NO_MEMORY; } if (((*domain_names) = malloc( sizeof(char*) * (*domain_count))) == NULL) { - DEBUG(0,("sam_enum_domains: Out of memory allocating domain name list\n")); + DEBUG(0,("context_sam_enum_domains: Out of memory allocating domain name list\n")); SAFE_FREE((*domains)); return NT_STATUS_NO_MEMORY; } @@ -678,7 +289,7 @@ NTSTATUS sam_enum_domains(const SAM_CONTEXT *context, const NT_USER_TOKEN *acces return NT_STATUS_OK; } -NTSTATUS sam_lookup_domain(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const char *domain, DOM_SID **domainsid) +NTSTATUS context_sam_lookup_domain(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const char *domain, DOM_SID **domainsid) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; @@ -687,12 +298,10 @@ NTSTATUS sam_lookup_domain(const SAM_CONTEXT *context, const NT_USER_TOKEN *acce size_t sd_size; uint32 acc_granted; - DEBUG(5,("sam_lookup_domain: %d\n", __LINE__)); + DEBUG(5,("context_sam_lookup_domain: %d\n", __LINE__)); - SAM_SETUP_CONTEXT; - - /* invalid paramters */ - SAM_ASSERT(access_token && domain && domainsid); + /* invalid sam_context specified */ + SAM_ASSERT(context && context->methods); if (!NT_STATUS_IS_OK(nt_status = samr_make_sam_obj_sd(context->mem_ctx, &sd, &sd_size))) { DEBUG(4,("samr_make_sam_obj_sd failed\n")); @@ -700,7 +309,7 @@ NTSTATUS sam_lookup_domain(const SAM_CONTEXT *context, const NT_USER_TOKEN *acce } if (!se_access_check(sd, access_token, SAMR_ACCESS_OPEN_DOMAIN, &acc_granted, &nt_status)) { - DEBUG(3,("sam_lookup_domain: ACCESS DENIED\n")); + DEBUG(3,("context_sam_lookup_domain: ACCESS DENIED\n")); return nt_status; } @@ -719,16 +328,12 @@ NTSTATUS sam_lookup_domain(const SAM_CONTEXT *context, const NT_USER_TOKEN *acce } -NTSTATUS sam_get_domain_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, SAM_DOMAIN_HANDLE **domain) +NTSTATUS context_sam_get_domain_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, SAM_DOMAIN_HANDLE **domain) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("sam_get_domain_by_sid: %d\n", __LINE__)); - - SAM_SETUP_CONTEXT; - - SAM_ASSERT(access_token && domainsid && domain); + DEBUG(5,("context_sam_get_domain_by_sid: %d\n", __LINE__)); if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, domainsid))) { DEBUG(4,("sam_get_methods_by_sid failed\n")); @@ -736,7 +341,7 @@ NTSTATUS sam_get_domain_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN * } if (!tmp_methods->sam_get_domain_handle) { - DEBUG(3, ("sam_get_domain_by_sid: sam_methods of the domain did not specify sam_get_domain_handle\n")); + DEBUG(3, ("context_sam_get_domain_by_sid: sam_methods of the domain did not specify sam_get_domain_handle\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -749,17 +354,12 @@ NTSTATUS sam_get_domain_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN * return NT_STATUS_OK; } -NTSTATUS sam_create_account(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) +NTSTATUS context_sam_create_account(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("sam_create_account: %d\n", __LINE__)); - - SAM_SETUP_CONTEXT; - - /* invalid parmaters */ - SAM_ASSERT(access_token && domainsid && account_name && account); + DEBUG(5,("context_sam_create_account: %d\n", __LINE__)); if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, domainsid))) { DEBUG(4,("sam_get_methods_by_sid failed\n")); @@ -767,7 +367,7 @@ NTSTATUS sam_create_account(const SAM_CONTEXT *context, const NT_USER_TOKEN *acc } if (!tmp_methods->sam_create_account) { - DEBUG(3, ("sam_create_account: sam_methods of the domain did not specify sam_create_account\n")); + DEBUG(3, ("context_sam_create_account: sam_methods of the domain did not specify sam_create_account\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -780,7 +380,7 @@ NTSTATUS sam_create_account(const SAM_CONTEXT *context, const NT_USER_TOKEN *acc return NT_STATUS_OK; } -NTSTATUS sam_add_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE *account) +NTSTATUS context_sam_add_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE *account) { DOM_SID domainsid; const DOM_SID *accountsid; @@ -788,12 +388,7 @@ NTSTATUS sam_add_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE *a uint32 rid; NTSTATUS nt_status; - DEBUG(5,("sam_add_account: %d\n", __LINE__)); - - SAM_SETUP_CONTEXT; - - /* invalid parmaters */ - SAM_ASSERT(account); + DEBUG(5,("context_sam_add_account: %d\n", __LINE__)); if (!NT_STATUS_IS_OK(nt_status = sam_get_account_sid(account, &accountsid))) { DEBUG(0,("Can't get account SID\n")); @@ -802,7 +397,7 @@ NTSTATUS sam_add_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE *a sid_copy(&domainsid, accountsid); if (!sid_split_rid(&domainsid, &rid)) { - DEBUG(3,("sam_get_account_by_sid: failed to split the sid\n")); + DEBUG(3,("context_sam_get_account_by_sid: failed to split the sid\n")); return NT_STATUS_INVALID_SID; } @@ -812,7 +407,7 @@ NTSTATUS sam_add_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE *a } if (!tmp_methods->sam_add_account) { - DEBUG(3, ("sam_add_account: sam_methods of the domain did not specify sam_add_account\n")); + DEBUG(3, ("context_sam_add_account: sam_methods of the domain did not specify sam_add_account\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -825,22 +420,20 @@ NTSTATUS sam_add_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE *a return NT_STATUS_OK; } -NTSTATUS sam_update_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE *account) +NTSTATUS context_sam_update_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE *account) { const SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("sam_update_account: %d\n", __LINE__)); - - SAM_SETUP_CONTEXT; - + DEBUG(5,("context_sam_update_account: %d\n", __LINE__)); + /* invalid account specified */ SAM_ASSERT(account && account->current_sam_methods); tmp_methods = account->current_sam_methods; if (!tmp_methods->sam_update_account) { - DEBUG(3, ("sam_update_account: sam_methods of the domain did not specify sam_update_account\n")); + DEBUG(3, ("context_sam_update_account: sam_methods of the domain did not specify sam_update_account\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -853,22 +446,20 @@ NTSTATUS sam_update_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE return NT_STATUS_OK; } -NTSTATUS sam_delete_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE *account) +NTSTATUS context_sam_delete_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE *account) { const SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("sam_delete_account: %d\n", __LINE__)); + DEBUG(5,("context_sam_delete_account: %d\n", __LINE__)); - SAM_SETUP_CONTEXT; - /* invalid account specified */ SAM_ASSERT(account && account->current_sam_methods); tmp_methods = account->current_sam_methods; if (!tmp_methods->sam_delete_account) { - DEBUG(3, ("sam_delete_account: sam_methods of the domain did not specify sam_delete_account\n")); + DEBUG(3, ("context_sam_delete_account: sam_methods of the domain did not specify sam_delete_account\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -881,16 +472,12 @@ NTSTATUS sam_delete_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE return NT_STATUS_OK; } -NTSTATUS sam_enum_accounts(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *domainsid, uint16 acct_ctrl, int32 *account_count, SAM_ACCOUNT_ENUM **accounts) +NTSTATUS context_sam_enum_accounts(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *domainsid, uint16 acct_ctrl, int32 *account_count, SAM_ACCOUNT_ENUM **accounts) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("sam_enum_accounts: %d\n", __LINE__)); - - SAM_SETUP_CONTEXT; - - SAM_ASSERT(access_token && domainsid && account_count && accounts); + DEBUG(5,("context_sam_enum_accounts: %d\n", __LINE__)); if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, domainsid))) { DEBUG(4,("sam_get_methods_by_sid failed\n")); @@ -898,7 +485,7 @@ NTSTATUS sam_enum_accounts(const SAM_CONTEXT *context, const NT_USER_TOKEN *acce } if (!tmp_methods->sam_enum_accounts) { - DEBUG(3, ("sam_enum_accounts: sam_methods of the domain did not specify sam_enum_accounts\n")); + DEBUG(3, ("context_sam_enum_accounts: sam_methods of the domain did not specify sam_enum_accounts\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -912,22 +499,18 @@ NTSTATUS sam_enum_accounts(const SAM_CONTEXT *context, const NT_USER_TOKEN *acce } -NTSTATUS sam_get_account_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *accountsid, SAM_ACCOUNT_HANDLE **account) +NTSTATUS context_sam_get_account_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *accountsid, SAM_ACCOUNT_HANDLE **account) { SAM_METHODS *tmp_methods; uint32 rid; DOM_SID domainsid; NTSTATUS nt_status; - DEBUG(5,("sam_get_account_by_sid: %d\n", __LINE__)); - - SAM_SETUP_CONTEXT; - - SAM_ASSERT(access_token && accountsid && account); + DEBUG(5,("context_sam_get_account_by_sid: %d\n", __LINE__)); sid_copy(&domainsid, accountsid); if (!sid_split_rid(&domainsid, &rid)) { - DEBUG(3,("sam_get_account_by_sid: failed to split the sid\n")); + DEBUG(3,("context_sam_get_account_by_sid: failed to split the sid\n")); return NT_STATUS_INVALID_SID; } @@ -938,7 +521,7 @@ NTSTATUS sam_get_account_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN } if (!tmp_methods->sam_get_account_by_sid) { - DEBUG(3, ("sam_get_account_by_sid: sam_methods of the domain did not specify sam_get_account_by_sid\n")); + DEBUG(3, ("context_sam_get_account_by_sid: sam_methods of the domain did not specify sam_get_account_by_sid\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -951,16 +534,12 @@ NTSTATUS sam_get_account_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN return NT_STATUS_OK; } -NTSTATUS sam_get_account_by_name(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *domain, const char *name, SAM_ACCOUNT_HANDLE **account) +NTSTATUS context_sam_get_account_by_name(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *domain, const char *name, SAM_ACCOUNT_HANDLE **account) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("sam_get_account_by_name: %d\n", __LINE__)); - - SAM_SETUP_CONTEXT; - - SAM_ASSERT(access_token && domain && name && account); + DEBUG(5,("context_sam_get_account_by_name: %d\n", __LINE__)); if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_name(context, &tmp_methods, domain))) { DEBUG(4,("sam_get_methods_by_name failed\n")); @@ -968,7 +547,7 @@ NTSTATUS sam_get_account_by_name(const SAM_CONTEXT *context, const NT_USER_TOKEN } if (!tmp_methods->sam_get_account_by_name) { - DEBUG(3, ("sam_get_account_by_name: sam_methods of the domain did not specify sam_get_account_by_name\n")); + DEBUG(3, ("context_sam_get_account_by_name: sam_methods of the domain did not specify sam_get_account_by_name\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -981,16 +560,12 @@ NTSTATUS sam_get_account_by_name(const SAM_CONTEXT *context, const NT_USER_TOKEN return NT_STATUS_OK; } -NTSTATUS sam_create_group(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, const char *group_name, uint16 group_ctrl, SAM_GROUP_HANDLE **group) +NTSTATUS context_sam_create_group(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, const char *group_name, uint16 group_ctrl, SAM_GROUP_HANDLE **group) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("sam_create_group: %d\n", __LINE__)); - - SAM_SETUP_CONTEXT; - - SAM_ASSERT(access_token && domainsid && group_name && group); + DEBUG(5,("context_sam_create_group: %d\n", __LINE__)); if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, domainsid))) { DEBUG(4,("sam_get_methods_by_sid failed\n")); @@ -998,7 +573,7 @@ NTSTATUS sam_create_group(const SAM_CONTEXT *context, const NT_USER_TOKEN *acces } if (!tmp_methods->sam_create_group) { - DEBUG(3, ("sam_create_group: sam_methods of the domain did not specify sam_create_group\n")); + DEBUG(3, ("context_sam_create_group: sam_methods of the domain did not specify sam_create_group\n")); return NT_STATUS_UNSUCCESSFUL; } @@ -1011,7 +586,7 @@ NTSTATUS sam_create_group(const SAM_CONTEXT *context, const NT_USER_TOKEN *acces return NT_STATUS_OK; } -NTSTATUS sam_add_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group) +NTSTATUS context_sam_add_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group) { DOM_SID domainsid; const DOM_SID *groupsid; @@ -1019,11 +594,7 @@ NTSTATUS sam_add_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group uint32 rid; NTSTATUS nt_status; - DEBUG(5,("sam_add_group: %d\n", __LINE__)); - - SAM_SETUP_CONTEXT; - - SAM_ASSERT(group); + DEBUG(5,("context_sam_add_group: %d\n", __LINE__)); if (!NT_STATUS_IS_OK(nt_status = sam_get_group_sid(group, &groupsid))) { DEBUG(0,("Can't get group SID\n")); @@ -1032,7 +603,7 @@ NTSTATUS sam_add_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group sid_copy(&domainsid, groupsid); if (!sid_split_rid(&domainsid, &rid)) { - DEBUG(3,("sam_get_group_by_sid: failed to split the sid\n")); + DEBUG(3,("context_sam_get_group_by_sid: failed to split the sid\n")); return NT_STATUS_INVALID_SID; } @@ -1042,7 +613,7 @@ NTSTATUS sam_add_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group } if (!tmp_methods->sam_add_group) { - DEBUG(3, ("sam_add_group: sam_methods of the domain did not specify sam_add_group\n")); + DEBUG(3, ("context_sam_add_group: sam_methods of the domain did not specify sam_add_group\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -1055,22 +626,20 @@ NTSTATUS sam_add_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group return NT_STATUS_OK; } -NTSTATUS sam_update_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group) +NTSTATUS context_sam_update_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group) { const SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("sam_update_group: %d\n", __LINE__)); + DEBUG(5,("context_sam_update_group: %d\n", __LINE__)); - SAM_SETUP_CONTEXT; - /* invalid group specified */ SAM_ASSERT(group && group->current_sam_methods); tmp_methods = group->current_sam_methods; if (!tmp_methods->sam_update_group) { - DEBUG(3, ("sam_update_group: sam_methods of the domain did not specify sam_update_group\n")); + DEBUG(3, ("context_sam_update_group: sam_methods of the domain did not specify sam_update_group\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -1083,22 +652,20 @@ NTSTATUS sam_update_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *gr return NT_STATUS_OK; } -NTSTATUS sam_delete_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group) +NTSTATUS context_sam_delete_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group) { const SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("sam_delete_group: %d\n", __LINE__)); + DEBUG(5,("context_sam_delete_group: %d\n", __LINE__)); - SAM_SETUP_CONTEXT; - /* invalid group specified */ SAM_ASSERT(group && group->current_sam_methods); tmp_methods = group->current_sam_methods; if (!tmp_methods->sam_delete_group) { - DEBUG(3, ("sam_delete_group: sam_methods of the domain did not specify sam_delete_group\n")); + DEBUG(3, ("context_sam_delete_group: sam_methods of the domain did not specify sam_delete_group\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -1111,16 +678,12 @@ NTSTATUS sam_delete_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *gr return NT_STATUS_OK; } -NTSTATUS sam_enum_groups(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *domainsid, uint16 group_ctrl, uint32 *groups_count, SAM_GROUP_ENUM **groups) +NTSTATUS context_sam_enum_groups(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *domainsid, uint16 group_ctrl, uint32 *groups_count, SAM_GROUP_ENUM **groups) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("sam_enum_groups: %d\n", __LINE__)); - - SAM_SETUP_CONTEXT; - - SAM_ASSERT(access_token && domainsid && groups_count && groups); + DEBUG(5,("context_sam_enum_groups: %d\n", __LINE__)); if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, domainsid))) { DEBUG(4,("sam_get_methods_by_sid failed\n")); @@ -1128,7 +691,7 @@ NTSTATUS sam_enum_groups(const SAM_CONTEXT *context, const NT_USER_TOKEN *access } if (!tmp_methods->sam_enum_accounts) { - DEBUG(3, ("sam_enum_groups: sam_methods of the domain did not specify sam_enum_groups\n")); + DEBUG(3, ("context_sam_enum_groups: sam_methods of the domain did not specify sam_enum_groups\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -1141,22 +704,18 @@ NTSTATUS sam_enum_groups(const SAM_CONTEXT *context, const NT_USER_TOKEN *access return NT_STATUS_OK; } -NTSTATUS sam_get_group_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *groupsid, SAM_GROUP_HANDLE **group) +NTSTATUS context_sam_get_group_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *groupsid, SAM_GROUP_HANDLE **group) { SAM_METHODS *tmp_methods; uint32 rid; NTSTATUS nt_status; DOM_SID domainsid; - DEBUG(5,("sam_get_group_by_sid: %d\n", __LINE__)); - - SAM_SETUP_CONTEXT; - - SAM_ASSERT(access_token && groupsid && group); + DEBUG(5,("context_sam_get_group_by_sid: %d\n", __LINE__)); sid_copy(&domainsid, groupsid); if (!sid_split_rid(&domainsid, &rid)) { - DEBUG(3,("sam_get_group_by_sid: failed to split the sid\n")); + DEBUG(3,("context_sam_get_group_by_sid: failed to split the sid\n")); return NT_STATUS_INVALID_SID; } @@ -1167,7 +726,7 @@ NTSTATUS sam_get_group_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *a } if (!tmp_methods->sam_get_group_by_sid) { - DEBUG(3, ("sam_get_group_by_sid: sam_methods of the domain did not specify sam_get_group_by_sid\n")); + DEBUG(3, ("context_sam_get_group_by_sid: sam_methods of the domain did not specify sam_get_group_by_sid\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -1180,16 +739,12 @@ NTSTATUS sam_get_group_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *a return NT_STATUS_OK; } -NTSTATUS sam_get_group_by_name(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *domain, const char *name, SAM_GROUP_HANDLE **group) +NTSTATUS context_sam_get_group_by_name(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *domain, const char *name, SAM_GROUP_HANDLE **group) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("sam_get_group_by_name: %d\n", __LINE__)); - - SAM_SETUP_CONTEXT; - - SAM_ASSERT(access_token && domain && name && group); + DEBUG(5,("context_sam_get_group_by_name: %d\n", __LINE__)); if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_name(context, &tmp_methods, domain))) { DEBUG(4,("sam_get_methods_by_name failed\n")); @@ -1197,7 +752,7 @@ NTSTATUS sam_get_group_by_name(const SAM_CONTEXT *context, const NT_USER_TOKEN * } if (!tmp_methods->sam_get_group_by_name) { - DEBUG(3, ("sam_get_group_by_name: sam_methods of the domain did not specify sam_get_group_by_name\n")); + DEBUG(3, ("context_sam_get_group_by_name: sam_methods of the domain did not specify sam_get_group_by_name\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -1210,12 +765,11 @@ NTSTATUS sam_get_group_by_name(const SAM_CONTEXT *context, const NT_USER_TOKEN * return NT_STATUS_OK; } -NTSTATUS sam_add_member_to_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) +NTSTATUS context_sam_add_member_to_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) { const SAM_METHODS *tmp_methods; NTSTATUS nt_status; - SAM_SETUP_CONTEXT; /* invalid group or member specified */ SAM_ASSERT(group && group->current_sam_methods && member); @@ -1223,7 +777,7 @@ NTSTATUS sam_add_member_to_group(const SAM_CONTEXT *context, const SAM_GROUP_HAN tmp_methods = group->current_sam_methods; if (!tmp_methods->sam_add_member_to_group) { - DEBUG(3, ("sam_add_member_to_group: sam_methods of the domain did not specify sam_add_member_to_group\n")); + DEBUG(3, ("context_sam_add_member_to_group: sam_methods of the domain did not specify sam_add_member_to_group\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -1236,20 +790,18 @@ NTSTATUS sam_add_member_to_group(const SAM_CONTEXT *context, const SAM_GROUP_HAN } -NTSTATUS sam_delete_member_from_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) +NTSTATUS context_sam_delete_member_from_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) { const SAM_METHODS *tmp_methods; NTSTATUS nt_status; - - SAM_SETUP_CONTEXT; /* invalid group or member specified */ - SAM_ASSERT(group && group->current_sam_methods && member); + SAM_ASSERT(group && group->current_sam_methods &&member); tmp_methods = group->current_sam_methods; if (!tmp_methods->sam_delete_member_from_group) { - DEBUG(3, ("sam_delete_member_from_group: sam_methods of the domain did not specify sam_delete_member_from_group\n")); + DEBUG(3, ("context_sam_delete_member_from_group: sam_methods of the domain did not specify sam_delete_member_from_group\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -1261,20 +813,18 @@ NTSTATUS sam_delete_member_from_group(const SAM_CONTEXT *context, const SAM_GROU return NT_STATUS_OK; } -NTSTATUS sam_enum_groupmembers(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group, uint32 *members_count, SAM_GROUP_MEMBER **members) +NTSTATUS context_sam_enum_groupmembers(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group, uint32 *members_count, SAM_GROUP_MEMBER **members) { const SAM_METHODS *tmp_methods; NTSTATUS nt_status; - SAM_SETUP_CONTEXT; - /* invalid group specified */ - SAM_ASSERT(group && group->current_sam_methods && members_count && members); + SAM_ASSERT(group && group->current_sam_methods); tmp_methods = group->current_sam_methods; if (!tmp_methods->sam_enum_groupmembers) { - DEBUG(3, ("sam_enum_groupmembers: sam_methods of the domain did not specify sam_enum_group_members\n")); + DEBUG(3, ("context_sam_enum_groupmembers: sam_methods of the domain did not specify sam_enum_group_members\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -1286,7 +836,7 @@ NTSTATUS sam_enum_groupmembers(const SAM_CONTEXT *context, const SAM_GROUP_HANDL return NT_STATUS_OK; } -NTSTATUS sam_get_groups_of_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID **sids, uint16 group_ctrl, uint32 *group_count, SAM_GROUP_ENUM **groups) +NTSTATUS context_sam_get_groups_of_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID **sids, uint16 group_ctrl, uint32 *group_count, SAM_GROUP_ENUM **groups) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; @@ -1294,12 +844,10 @@ NTSTATUS sam_get_groups_of_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN * uint32 tmp_group_count; SAM_GROUP_ENUM *tmp_groups; - DEBUG(5,("sam_get_groups_of_sid: %d\n", __LINE__)); + DEBUG(5,("context_sam_get_groups_of_sid: %d\n", __LINE__)); - SAM_SETUP_CONTEXT; - /* invalid sam_context specified */ - SAM_ASSERT(access_token && sids && context && context->methods); + SAM_ASSERT(context && context->methods); *group_count = 0; @@ -1310,7 +858,7 @@ NTSTATUS sam_get_groups_of_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN * while (tmp_methods) { DEBUG(5,("getting groups from domain \n")); if (!tmp_methods->sam_get_groups_of_sid) { - DEBUG(3, ("sam_get_groups_of_sid: sam_methods of domain did not specify sam_get_groups_of_sid\n")); + DEBUG(3, ("context_sam_get_groups_of_sid: sam_methods of domain did not specify sam_get_groups_of_sid\n")); SAFE_FREE(*groups); return NT_STATUS_NOT_IMPLEMENTED; } @@ -1336,3 +884,354 @@ NTSTATUS sam_get_groups_of_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN * } +/****************************************************************** + Free and cleanup a sam context, any associated data and anything + that the attached modules might have associated. + *******************************************************************/ + +void free_sam_context(SAM_CONTEXT **context) +{ + SAM_METHODS *sam_selected = (*context)->methods; + + while (sam_selected) { + if (sam_selected->free_private_data) { + sam_selected->free_private_data(&(sam_selected->private_data)); + } + sam_selected = sam_selected->next; + } + + talloc_destroy((*context)->mem_ctx); + *context = NULL; +} + +/****************************************************************** + Make a backend_entry from scratch + *******************************************************************/ + +static NTSTATUS make_backend_entry(SAM_BACKEND_ENTRY *backend_entry, char *sam_backend_string) +{ + char *tmp = NULL; + char *tmp_string = sam_backend_string; + + DEBUG(5,("make_backend_entry: %d\n", __LINE__)); + + SAM_ASSERT(sam_backend_string && backend_entry); + + backend_entry->module_name = sam_backend_string; + + DEBUG(5,("makeing backend_entry for %s\n", backend_entry->module_name)); + + if ((tmp = strchr(tmp_string, '|')) != NULL) { + DEBUGADD(20,("a domain name has been specified\n")); + *tmp = 0; + backend_entry->domain_name = tmp + 1; + tmp_string = tmp + 1; + } + + if ((tmp = strchr(tmp_string, ':')) != NULL) { + DEBUG(20,("options for the backend have been specified\n")); + *tmp = 0; + backend_entry->module_params = tmp + 1; + tmp_string = tmp + 1; + } + + if (backend_entry->domain_name == NULL) { + DEBUG(10,("make_backend_entry: no domain was specified for sam module %s. Useing default domain %s\n", + backend_entry->module_name, lp_workgroup())); + backend_entry->domain_name = lp_workgroup(); + } + + if ((backend_entry->domain_sid = (DOM_SID *)malloc(sizeof(DOM_SID))) == NULL) { + DEBUG(0,("make_backend_entry: failed to malloc domain_sid\n")); + return NT_STATUS_NO_MEMORY; + } + + DEBUG(10,("looking up sid for domain %s\n", backend_entry->domain_name)); + + if (!secrets_fetch_domain_sid(backend_entry->domain_name, backend_entry->domain_sid)) { + DEBUG(2,("make_backend_entry: There is no SID stored for domain %s. Creating a new one.\n", + backend_entry->domain_name)); + /* FIXME */ + ZERO_STRUCTP(backend_entry->domain_sid); + } + + DEBUG(5,("make_backend_entry: module name: %s, module parameters: %s, domain name: %s, domain sid: %s\n", + backend_entry->module_name, backend_entry->module_params, backend_entry->domain_name, sid_string_static(backend_entry->domain_sid))); + + return NT_STATUS_OK; +} + +/****************************************************************** + create sam_methods struct based on sam_backend_entry + *****************************************************************/ + +static NTSTATUS make_sam_methods_backend_entry(SAM_CONTEXT *context, SAM_METHODS **methods_ptr, SAM_BACKEND_ENTRY *backend_entry) +{ + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; + SAM_METHODS *methods; + int i; + + DEBUG(5,("make_sam_methods_backend_entry: %d\n", __LINE__)); + + if (!NT_STATUS_IS_OK(nt_status = make_sam_methods(context->mem_ctx, methods_ptr))) { + return nt_status; + } + + methods = *methods_ptr; + methods->backendname = talloc_strdup(context->mem_ctx, backend_entry->module_name); + methods->domain_name = talloc_strdup(context->mem_ctx, backend_entry->domain_name); + sid_copy(&methods->domain_sid, backend_entry->domain_sid); + methods->parent = context; + + DEBUG(5,("Attempting to find sam backend %s\n", backend_entry->module_name)); + for (i = 0; builtin_sam_init_functions[i].module_name; i++) + { + if (strequal(builtin_sam_init_functions[i].module_name, backend_entry->module_name)) + { + DEBUG(5,("Found sam backend %s (at pos %d)\n", backend_entry->module_name, i)); + DEBUGADD(5,("initialising it with options=%s for domain %s\n", backend_entry->module_params, sid_string_static(backend_entry->domain_sid))); + nt_status = builtin_sam_init_functions[i].init(methods, backend_entry->module_params); + if (NT_STATUS_IS_OK(nt_status)) { + DEBUG(5,("sam backend %s has a valid init\n", backend_entry->module_name)); + } else { + DEBUG(2,("sam backend %s did not correctly init (error was %s)\n", + backend_entry->module_name, nt_errstr(nt_status))); + } + return nt_status; + } + } + + DEBUG(2,("could not find backend %s\n", backend_entry->module_name)); + + return NT_STATUS_INVALID_PARAMETER; +} + +static NTSTATUS sam_context_check_default_backends(SAM_CONTEXT *context) +{ + SAM_BACKEND_ENTRY entry; + DOM_SID *global_sam_sid = get_global_sam_sid(); /* lp_workgroup doesn't play nicely with multiple domains */ + SAM_METHODS *methods, *tmpmethods; + NTSTATUS ntstatus; + + DEBUG(5,("sam_context_check_default_backends: %d\n", __LINE__)); + + /* Make sure domain lp_workgroup() is available */ + + ntstatus = sam_get_methods_by_sid(context, &methods, &global_sid_Builtin); + + if (NT_STATUS_EQUAL(ntstatus, NT_STATUS_NO_SUCH_DOMAIN)) { + DEBUG(4,("There was no backend specified for domain %s; using %s\n", + lp_workgroup(), SAM_DEFAULT_BACKEND)); + + SAM_ASSERT(global_sam_sid); + + entry.module_name = SAM_DEFAULT_BACKEND; + entry.module_params = NULL; + entry.domain_name = lp_workgroup(); + entry.domain_sid = (DOM_SID *)malloc(sizeof(DOM_SID)); + sid_copy(entry.domain_sid, global_sam_sid); + + if (!NT_STATUS_IS_OK(ntstatus = make_sam_methods_backend_entry(context, &methods, &entry))) { + DEBUG(4,("make_sam_methods_backend_entry failed\n")); + return ntstatus; + } + + DLIST_ADD_END(context->methods, methods, tmpmethods); + + } else if (!NT_STATUS_IS_OK(ntstatus)) { + DEBUG(2, ("sam_get_methods_by_sid failed for %s\n", lp_workgroup())); + return ntstatus; + } + + /* Make sure the BUILTIN domain is available */ + + ntstatus = sam_get_methods_by_sid(context, &methods, global_sam_sid); + + if (NT_STATUS_EQUAL(ntstatus, NT_STATUS_NO_SUCH_DOMAIN)) { + DEBUG(4,("There was no backend specified for domain BUILTIN; using %s\n", + SAM_DEFAULT_BACKEND)); + entry.module_name = SAM_DEFAULT_BACKEND; + entry.module_params = NULL; + entry.domain_name = "BUILTIN"; + entry.domain_sid = (DOM_SID *)malloc(sizeof(DOM_SID)); + sid_copy(entry.domain_sid, &global_sid_Builtin); + + if (!NT_STATUS_IS_OK(ntstatus = make_sam_methods_backend_entry(context, &methods, &entry))) { + DEBUG(4,("make_sam_methods_backend_entry failed\n")); + return ntstatus; + } + + DLIST_ADD_END(context->methods, methods, tmpmethods); + } else if (!NT_STATUS_IS_OK(ntstatus)) { + DEBUG(2, ("sam_get_methods_by_sid failed for BUILTIN\n")); + return ntstatus; + } + + return NT_STATUS_OK; +} + +static NTSTATUS check_duplicate_backend_entries(SAM_BACKEND_ENTRY **backend_entries, int *nBackends) +{ + int i, j; + + DEBUG(5,("check_duplicate_backend_entries: %d\n", __LINE__)); + + for (i = 0; i < *nBackends; i++) { + for (j = i + 1; j < *nBackends; j++) { + if (sid_equal((*backend_entries)[i].domain_sid, (*backend_entries)[j].domain_sid)) { + DEBUG(0,("two backend modules claim the same domain %s\n", + sid_string_static((*backend_entries)[j].domain_sid))); + return NT_STATUS_INVALID_PARAMETER; + } + } + } + + return NT_STATUS_OK; +} + +NTSTATUS make_sam_context_list(SAM_CONTEXT **context, char **sam_backends_param) +{ + int i = 0, j = 0; + SAM_METHODS *curmethods, *tmpmethods; + int nBackends = 0; + SAM_BACKEND_ENTRY *backends = NULL; + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; + + DEBUG(5,("make_sam_context_from_conf: %d\n", __LINE__)); + + if (!NT_STATUS_IS_OK(nt_status = make_sam_context(context))) { + DEBUG(4,("make_sam_context failed\n")); + return nt_status; + } + + while (sam_backends_param[nBackends]) + nBackends++; + + DEBUG(6,("There are %d domains listed with there backends\n", nBackends)); + + if ((backends = (SAM_BACKEND_ENTRY *)malloc(sizeof(SAM_BACKEND_ENTRY)*nBackends)) == NULL) { + DEBUG(0,("make_sam_context_list: failed to allocate backends\n")); + return NT_STATUS_NO_MEMORY; + } + ZERO_STRUCTP(backends); + + for (i = 0; i < nBackends; i++) { + DEBUG(8,("processing %s\n",sam_backends_param[i])); + if (!NT_STATUS_IS_OK(nt_status = make_backend_entry(&backends[i], sam_backends_param[i]))) { + DEBUG(4,("make_backend_entry failed\n")); + for (j = 0; j < nBackends; j++) SAFE_FREE(backends[j].domain_sid); + SAFE_FREE(backends); + free_sam_context(context); + return nt_status; + } + } + + if (!NT_STATUS_IS_OK(nt_status = check_duplicate_backend_entries(&backends, &nBackends))) { + DEBUG(4,("check_duplicate_backend_entries failed\n")); + for (j = 0; j < nBackends; j++) SAFE_FREE(backends[j].domain_sid); + SAFE_FREE(backends); + free_sam_context(context); + return nt_status; + } + + for (i = 0; i < nBackends; i++) { + if (!NT_STATUS_IS_OK(nt_status = make_sam_methods_backend_entry(*context, &curmethods, &backends[i]))) { + DEBUG(4,("make_sam_methods_backend_entry failed\n")); + for (j = 0; j < nBackends; j++) SAFE_FREE(backends[j].domain_sid); + SAFE_FREE(backends); + free_sam_context(context); + return nt_status; + } + DLIST_ADD_END((*context)->methods, curmethods, tmpmethods); + } + + for (i = 0; i < nBackends; i++) SAFE_FREE(backends[i].domain_sid); + + SAFE_FREE(backends); + return NT_STATUS_OK; +} + +/****************************************************************** + Make a sam_context from scratch. + *******************************************************************/ + +NTSTATUS make_sam_context(SAM_CONTEXT **context) +{ + TALLOC_CTX *mem_ctx; + + mem_ctx = talloc_init_named("sam_context internal allocation context"); + + if (!mem_ctx) { + DEBUG(0, ("make_sam_context: talloc init failed!\n")); + return NT_STATUS_NO_MEMORY; + } + + *context = talloc(mem_ctx, sizeof(**context)); + if (!*context) { + DEBUG(0, ("make_sam_context: talloc failed!\n")); + return NT_STATUS_NO_MEMORY; + } + + ZERO_STRUCTP(*context); + + (*context)->mem_ctx = mem_ctx; + + (*context)->free_fn = free_sam_context; + + return NT_STATUS_OK; +} + +/****************************************************************** + Return an already initialised sam_context, to facilitate backward + compatibility (see functions below). + *******************************************************************/ + +struct sam_context *sam_get_static_context(BOOL reload) +{ + static SAM_CONTEXT *sam_context = NULL; + + if ((sam_context) && (reload)) { + sam_context->free_fn(&sam_context); + sam_context = NULL; + } + + if (!sam_context) { + if (!NT_STATUS_IS_OK(make_sam_context_list(&sam_context, lp_sam_backend()))) { + DEBUG(4,("make_sam_context_list failed\n")); + return NULL; + } + + /* Make sure the required domains (default domain, builtin) are available */ + if (!NT_STATUS_IS_OK(sam_context_check_default_backends(sam_context))) { + DEBUG(4,("sam_context_check_default_backends failed\n")); + return NULL; + } + } + + return sam_context; +} + +/*************************************************************** + Initialize the static context (at smbd startup etc). + + If uninitialised, context will auto-init on first use. + ***************************************************************/ + +BOOL initialize_sam(BOOL reload) +{ + return (sam_get_static_context(reload) != NULL); +} + + +NTSTATUS make_sam_methods(TALLOC_CTX *mem_ctx, SAM_METHODS **methods) +{ + *methods = talloc(mem_ctx, sizeof(SAM_METHODS)); + + if (!*methods) { + return NT_STATUS_NO_MEMORY; + } + + ZERO_STRUCTP(*methods); + + return NT_STATUS_OK; +} diff --git a/source3/sam/sam_ads.c b/source3/sam/sam_ads.c deleted file mode 100755 index e10b476997..0000000000 --- a/source3/sam/sam_ads.c +++ /dev/null @@ -1,1204 +0,0 @@ -/* - Unix SMB/CIFS implementation. - Active Directory SAM backend, for simulate a W2K DC in mixed mode. - - Copyright (C) Stefan (metze) Metzmacher 2002 - Copyright (C) Andrew Bartlett 2002 - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include "includes.h" - - -#ifdef HAVE_LDAP - -static int sam_ads_debug_level = DBGC_SAM; - -#undef DBGC_CLASS -#define DBGC_CLASS sam_ads_debug_level - -#define ADS_STATUS_OK ADS_ERROR(0) -#define ADS_STATUS_UNSUCCESSFUL ADS_ERROR_NT(NT_STATUS_UNSUCCESSFUL) -#define ADS_STATUS_NOT_IMPLEMENTED ADS_ERROR_NT(NT_STATUS_NOT_IMPLEMENTED) - - -#define ADS_SUBTREE_BUILTIN "CN=Builtin," -#define ADS_SUBTREE_COMPUTERS "CN=Computers," -#define ADS_SUBTREE_DC "CN=Domain Controllers," -#define ADS_SUBTREE_USERS "CN=Users," -#define ADS_ROOT_TREE "" -/* Here are private module structs and functions */ - -struct sam_ads_privates { - ADS_STRUCT *ads_struct; - TALLOC_CTX *mem_ctx; - BOOL bind_plaintext; - char *ads_bind_dn; - char *ads_bind_pw; - char *ldap_uri; - /* did we need something more? */ -}; - - -/* get only these LDAP attributes, witch we really need for an account */ -const char *account_attrs[] = { "objectSid", - "objectGUID", - "sAMAccountType", - "sAMAcountName", - "userPrincipalName", - "accountExpires", - "badPasswordTime", - "badPwdCount", - "lastLogoff", - "lastLogon", - "userWorkstations", - "dBCSPwd", - "unicodePwd", - "pwdLastSet", - "userAccountControl", - "profilePath", - "homeDrive", - "scriptPath", - "homeDirectory", - "cn", - "primaryGroupID",/* 513 */ - "nsNPAllowDialIn",/* TRUE */ - "userParameters",/* Dial Back number ...*/ - "codePage",/* 0 */ - "countryCode",/* 0 */ - "adminCount",/* 1 or 0 */ - "logonCount",/* 0 */ - "managedObjects", - "memberOf",/* dn */ - "instanceType",/* 4 */ - "name", /* sync with cn */ - "description", - /* "nTSecurityDescriptor", */ - NULL}; - -/* get only these LDAP attributes, witch we really need for a group */ -const char *group_attrs[] = {"objectSid", - /* "objectGUID", */ - "sAMAccountType", - "sAMAcountName", - "groupType", - /* "member", */ - "description", - "name", /* sync with cn */ - /* "nTSecurityDescriptor", */ - NULL}; - - -/*************************************************** - return our ads connection. We keep the connection - open to make things faster -****************************************************/ -static ADS_STATUS sam_ads_cached_connection(struct sam_ads_privates *private) -{ - ADS_STRUCT *ads_struct; - ADS_STATUS ads_status; - - if (!private->ads_struct) { - private->ads_struct = ads_init_simple(); - ads_struct = private->ads_struct; - ads_struct->server.ldap_uri = smb_xstrdup(private->ldap_uri); - if ((!private->ads_bind_dn) || (!*private->ads_bind_dn)) { - ads_struct->auth.flags |= ADS_AUTH_ANON_BIND; - } else { - ads_struct->auth.user_name - = smb_xstrdup(private->ads_bind_dn); - if (private->ads_bind_pw) { - ads_struct->auth.password - = smb_xstrdup(private->ads_bind_pw); - } - } - if (private->bind_plaintext) { - ads_struct->auth.flags |= ADS_AUTH_SIMPLE_BIND; - } - } else { - ads_struct = private->ads_struct; - } - - if (ads_struct->ld != NULL) { - /* connection has been opened. ping server. */ - struct sockaddr_un addr; - socklen_t len; - int sd; - if (ldap_get_option(ads_struct->ld, LDAP_OPT_DESC, &sd) == 0 && - getpeername(sd, (struct sockaddr *) &addr, &len) < 0) { - /* the other end has died. reopen. */ - ldap_unbind_ext(ads_struct->ld, NULL, NULL); - ads_struct->ld = NULL; - } - } - - if (ads_struct->ld != NULL) { - DEBUG(5,("sam_ads_cached_connection: allready connected to the LDAP server\n")); - return ADS_SUCCESS; - } - - ads_status = ads_connect(ads_struct); - - ads_status = ads_server_info(ads_struct); - if (!ADS_ERR_OK(ads_status)) { - DEBUG(0,("Can't set server info: %s\n",ads_errstr(ads_status))); - /* return ads_status; */ /*for now we only warn! */ - } - - DEBUG(2, ("sam_ads_cached_connection: succesful connection to the LDAP server\n")); - return ADS_SUCCESS; -} - -static ADS_STATUS sam_ads_do_search(struct sam_ads_privates *private, const char *bind_path, int scope, const char *exp, const char **attrs, void **res) -{ - ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_UNSUCCESSFUL); - - ads_status = sam_ads_cached_connection(private); - if (!ADS_ERR_OK(ads_status)) - return ads_status; - - return ads_do_search_retry(private->ads_struct, bind_path, scope, exp, attrs, res); -} - - -/********************************************* -here we have to check the update serial number - - this is the core of the ldap cache -*********************************************/ -static ADS_STATUS sam_ads_usn_is_valid(ADS_STRUCT *ads_struct, uint32 usn_in, uint32 *usn_out) -{ - ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_UNSUCCESSFUL); - - SAM_ASSERT(ads_struct && usn_out); - - ads_status = ads_USN(ads_struct, usn_out); - if (!ADS_ERR_OK(ads_status)) - return ads_status; - - if (*usn_out == usn_in) - return ADS_SUCCESS; - - return ads_status; -} - -/*********************************************** -Initialize SAM_ACCOUNT_HANDLE from an ADS query -************************************************/ -/* not ready :-( */ -static ADS_STATUS ads_entry2sam_account_handle(ADS_STRUCT *ads_struct, SAM_ACCOUNT_HANDLE *account ,const void *entry) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(ads_struct && account && entry); - - - - return ads_status; -} - - -/*********************************************** -Initialize SAM_GROUP_ENUM from an ads entry -************************************************/ -/* not ready :-( */ -static ADS_STATUS ads_entry2sam_group_enum(ADS_STRUCT *ads_struct, TALLOC_CTX *mem_ctx, SAM_GROUP_ENUM **group_enum,const void *entry) -{ - ADS_STATUS ads_status = ADS_STATUS_UNSUCCESSFUL; - SAM_GROUP_ENUM __group_enum; - SAM_GROUP_ENUM *_group_enum = &__group_enum; - - SAM_ASSERT(ads_struct && mem_ctx && group_enum && entry); - - *group_enum = _group_enum; - - DEBUG(3,("sam_ads: ads_entry2sam_account_handle\n")); - - if (!ads_pull_sid((ADS_STRUCT *)ads_struct, &entry, "objectSid", &(_group_enum->sid))) { - DEBUG(0,("No sid for!?\n")); - return ADS_STATUS_UNSUCCESSFUL; - } - - if (!(_group_enum->group_name = ads_pull_string((ADS_STRUCT *)ads_struct, mem_ctx, &entry, "sAMAccountName"))) { - DEBUG(0,("No groupname found")); - return ADS_STATUS_UNSUCCESSFUL; - } - - if (!(_group_enum->group_desc = ads_pull_string((ADS_STRUCT *)ads_struct, mem_ctx, &entry, "desciption"))) { - DEBUG(0,("No description found")); - return ADS_STATUS_UNSUCCESSFUL; - } - - DEBUG(0,("sAMAccountName: %s\ndescription: %s\nobjectSid: %s\n", - _group_enum->group_name, - _group_enum->group_desc, - sid_string_static(&(_group_enum->sid)) - )); - - return ads_status; -} - -static ADS_STATUS sam_ads_access_check(const SAM_METHODS *sam_method, const SEC_DESC *sd, const NT_USER_TOKEN *access_token, uint32 access_desired) -{ - ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_ACCESS_DENIED); - NTSTATUS nt_status; - uint32 acc_granted; - - SAM_ASSERT(sam_method && sd && access_token); - /* the steps you need are: - 1. get_sec_desc for sid - 2. se_map_generic(accessdesired, generic_mapping) - 3. se_access_check() */ - - if (!se_access_check(sd, access_token, access_desired, &acc_granted, &nt_status)) { - DEBUG(3,("sam_ads_access_check: ACCESS DENIED\n")); - ads_status = ADS_ERROR_NT(nt_status); - return ads_status; - } - ads_status = ADS_ERROR_NT(nt_status); - return ads_status; -} - -static ADS_STATUS sam_ads_get_tree_sec_desc(const SAM_METHODS *sam_method, const char *subtree, SEC_DESC **sd) -{ - ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_INVALID_PARAMETER); - struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; - ADS_STRUCT *ads_struct = privates->ads_struct; - TALLOC_CTX *mem_ctx = privates->mem_ctx; - char *search_path; - void *sec_desc_res; - void *sec_desc_msg; - const char *sec_desc_attrs[] = {"nTSecurityDescriptor",NULL}; - - SAM_ASSERT(sam_method && ads_struct && sd); - *sd = NULL; - - if (subtree) { - asprintf(&search_path, "%s%s",subtree,ads_struct->config.bind_path); - } else { - asprintf(&search_path, "%s",""); - } - ads_status = sam_ads_do_search(privates, search_path, LDAP_SCOPE_BASE, "(objectClass=*)", sec_desc_attrs, &sec_desc_res); - SAFE_FREE(search_path); - if (!ADS_ERR_OK(ads_status)) - return ads_status; - - if ((sec_desc_msg = ads_first_entry(ads_struct, sec_desc_res))==NULL) { - ads_status = ADS_ERROR_NT(NT_STATUS_INVALID_PARAMETER); - return ads_status; - } - - if (!ads_pull_sd(ads_struct, mem_ctx, sec_desc_msg, sec_desc_attrs[0], sd)) { - *sd = NULL; - ads_status = ADS_ERROR_NT(NT_STATUS_INVALID_PARAMETER); - return ads_status; - } - - return ads_status; -} - -static ADS_STATUS sam_ads_account_policy_get(const SAM_METHODS *sam_method, int field, uint32 *value) -{ - ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_INVALID_PARAMETER); - struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; - ADS_STRUCT *ads_struct = privates->ads_struct; - void *ap_res; - void *ap_msg; - const char *ap_attrs[] = {"minPwdLength","pwdHistoryLength", - /*"mustLogonToChangePass",*/"lockoutDuration" - "maxPwdAge","minPwdAge",NULL}; - /*lockOutObservationWindow - lockoutThreshold $ pwdProperties*/ - static uint32 ap[9]; - static uint32 ap_usn = 0; - uint32 tmp_usn = 0; - - SAM_ASSERT(sam_method && value); - - ads_status = sam_ads_usn_is_valid(ads_struct,ap_usn,&tmp_usn); - if (!ADS_ERR_OK(ads_status)) { - ads_status = sam_ads_do_search(privates, ads_struct->config.bind_path, LDAP_SCOPE_BASE, "(objectClass=*)", ap_attrs, &ap_res); - if (!ADS_ERR_OK(ads_status)) - return ads_status; - - if (ads_count_replies(ads_struct, ap_res) != 1) { - ads_msgfree(ads_struct, ap_res); - return ADS_ERROR(LDAP_NO_RESULTS_RETURNED); - } - - if (!(ap_msg = ads_first_entry(ads_struct, ap_res))) { - ads_msgfree(ads_struct, ap_res); - return ADS_ERROR(LDAP_NO_RESULTS_RETURNED); - } - - if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[0], &ap[0])) { - /* AP_MIN_PASSWORD_LEN */ - ap[0] = MINPASSWDLENGTH;/* 5 chars minimum */ - } - if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[1], &ap[1])) { - /* AP_PASSWORD_HISTORY */ - ap[1] = 0;/* don't keep any old password */ - } - if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[2], &ap[2])) { - /* AP_USER_MUST_LOGON_TO_CHG_PASS */ - ap[2] = 0;/* don't force user to logon */ - } - if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[3], &ap[3])) { - /* AP_MAX_PASSWORD_AGE */ - ap[3] = MAX_PASSWORD_AGE;/* 21 days */ - } - if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[4], &ap[4])) { - /* AP_MIN_PASSWORD_AGE */ - ap[4] = 0;/* 0 days */ - } - if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[5], &ap[5])) { - /* AP_LOCK_ACCOUNT_DURATION */ - ap[5] = 0;/* lockout for 0 minutes */ - } - if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[6], &ap[6])) { - /* AP_RESET_COUNT_TIME */ - ap[6] = 0;/* reset immediatly */ - } - if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[7], &ap[7])) { - /* AP_BAD_ATTEMPT_LOCKOUT */ - ap[7] = 0;/* don't lockout */ - } - if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[8], &ap[8])) { - /* AP_TIME_TO_LOGOUT */ - ap[8] = -1;/* don't force logout */ - } - - ads_msgfree(ads_struct, ap_res); - ap_usn = tmp_usn; - } - - switch(field) { - case AP_MIN_PASSWORD_LEN: - *value = ap[0]; - ads_status = ADS_ERROR_NT(NT_STATUS_OK); - break; - case AP_PASSWORD_HISTORY: - *value = ap[1]; - ads_status = ADS_ERROR_NT(NT_STATUS_OK); - break; - case AP_USER_MUST_LOGON_TO_CHG_PASS: - *value = ap[2]; - ads_status = ADS_ERROR_NT(NT_STATUS_OK); - break; - case AP_MAX_PASSWORD_AGE: - *value = ap[3]; - ads_status = ADS_ERROR_NT(NT_STATUS_OK); - break; - case AP_MIN_PASSWORD_AGE: - *value = ap[4]; - ads_status = ADS_ERROR_NT(NT_STATUS_OK); - break; - case AP_LOCK_ACCOUNT_DURATION: - *value = ap[5]; - ads_status = ADS_ERROR_NT(NT_STATUS_OK); - break; - case AP_RESET_COUNT_TIME: - *value = ap[6]; - ads_status = ADS_ERROR_NT(NT_STATUS_OK); - break; - case AP_BAD_ATTEMPT_LOCKOUT: - *value = ap[7]; - ads_status = ADS_ERROR_NT(NT_STATUS_OK); - break; - case AP_TIME_TO_LOGOUT: - *value = ap[8]; - ads_status = ADS_ERROR_NT(NT_STATUS_OK); - break; - default: *value = 0; break; - } - - return ads_status; -} - -/********************************** -Now the functions off the SAM API -***********************************/ - -/* General API */ -static NTSTATUS sam_ads_get_sec_desc(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, - const DOM_SID *sid, SEC_DESC **sd) -{ - ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_UNSUCCESSFUL); - struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; - ADS_STRUCT *ads_struct = privates->ads_struct; - TALLOC_CTX *mem_ctx; - char *sidstr,*filter; - void *sec_desc_res; - void *sec_desc_msg; - const char *sec_desc_attrs[] = {"nTSecurityDescriptor",NULL}; - fstring sid_str; - SEC_DESC *my_sd; - - SAM_ASSERT(sam_method && access_token && sid && sd); - - ads_status = sam_ads_get_tree_sec_desc(sam_method, ADS_ROOT_TREE, &my_sd); - if (!ADS_ERR_OK(ads_status)) - return ads_ntstatus(ads_status); - - ads_status = sam_ads_access_check(sam_method, my_sd, access_token, DOMAIN_READ); - - if (!ADS_ERR_OK(ads_status)) - return ads_ntstatus(ads_status); - - sidstr = sid_binstring(sid); - if (asprintf(&filter, "(objectSid=%s)", sidstr) == -1) { - SAFE_FREE(sidstr); - return NT_STATUS_NO_MEMORY; - } - - SAFE_FREE(sidstr); - - ads_status = sam_ads_do_search(privates,ads_struct->config.bind_path, - LDAP_SCOPE_SUBTREE, filter, sec_desc_attrs, - &sec_desc_res); - SAFE_FREE(filter); - - if (!ADS_ERR_OK(ads_status)) { - return ads_ntstatus(ads_status); - } - - if (!(mem_ctx = talloc_init_named("sec_desc parse in sam_ads"))) { - DEBUG(1, ("talloc_init_named() failed for sec_desc parse context in sam_ads")); - ads_msgfree(ads_struct, sec_desc_res); - return NT_STATUS_NO_MEMORY; - } - - if (ads_count_replies(ads_struct, sec_desc_res) != 1) { - DEBUG(1,("sam_ads_get_sec_desc: duplicate or 0 results for sid %s\n", - sid_to_string(sid_str, sid))); - talloc_destroy(mem_ctx); - ads_msgfree(ads_struct, sec_desc_res); - return NT_STATUS_UNSUCCESSFUL; - } - - if (!(sec_desc_msg = ads_first_entry(ads_struct, sec_desc_res))) { - talloc_destroy(mem_ctx); - ads_msgfree(ads_struct, sec_desc_res); - return NT_STATUS_INVALID_PARAMETER; - } - - if (!ads_pull_sd(ads_struct, mem_ctx, sec_desc_msg, sec_desc_attrs[0], sd)) { - ads_status = ADS_ERROR_NT(NT_STATUS_INVALID_PARAMETER); - talloc_destroy(mem_ctx); - ads_msgfree(ads_struct, sec_desc_res); - return ads_ntstatus(ads_status); - } - - /* now, were we allowed to see the SD we just got? */ - - ads_msgfree(ads_struct, sec_desc_res); - talloc_destroy(mem_ctx); - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_set_sec_desc(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, - const DOM_SID *sid, const SEC_DESC *sd) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - return ads_ntstatus(ads_status); -} - - -static NTSTATUS sam_ads_lookup_sid(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, - TALLOC_CTX *mem_ctx, const DOM_SID *sid, char **name, - enum SID_NAME_USE *type) -{ - ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_UNSUCCESSFUL); - struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; - ADS_STRUCT *ads_struct = privates->ads_struct; - SEC_DESC *my_sd; - - SAM_ASSERT(sam_method && access_token && mem_ctx && sid && name && type); - - ads_status = sam_ads_get_tree_sec_desc(sam_method, ADS_ROOT_TREE, &my_sd); - if (!ADS_ERR_OK(ads_status)) - return ads_ntstatus(ads_status); - - ads_status = sam_ads_access_check(sam_method, my_sd, access_token, DOMAIN_READ); - if (!ADS_ERR_OK(ads_status)) - return ads_ntstatus(ads_status); - - return ads_sid_to_name(ads_struct, mem_ctx, sid, name, type); -} - -static NTSTATUS sam_ads_lookup_name(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, - const char *name, DOM_SID *sid, enum SID_NAME_USE *type) -{ - ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_UNSUCCESSFUL); - struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; - ADS_STRUCT *ads_struct = privates->ads_struct; - SEC_DESC *my_sd; - - SAM_ASSERT(sam_method && access_token && name && sid && type); - - ads_status = sam_ads_get_tree_sec_desc(sam_method, ADS_ROOT_TREE, &my_sd); - if (!ADS_ERR_OK(ads_status)) - return ads_ntstatus(ads_status); - - ads_status = sam_ads_access_check(sam_method, my_sd, access_token, DOMAIN_READ); - if (!ADS_ERR_OK(ads_status)) - return ads_ntstatus(ads_status); - - return ads_name_to_sid(ads_struct, name, sid, type); -} - - -/* Domain API */ - -static NTSTATUS sam_ads_update_domain(const SAM_METHODS *sam_method, const SAM_DOMAIN_HANDLE *domain) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_get_domain_handle(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, - const uint32 access_desired, SAM_DOMAIN_HANDLE **domain) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; - TALLOC_CTX *mem_ctx = privates->mem_ctx; /*Fix me is this right??? */ - SAM_DOMAIN_HANDLE *dom_handle = NULL; - SEC_DESC *sd; - uint32 acc_granted; - uint32 tmp_value; - - DEBUG(5,("sam_ads_get_domain_handle: %d\n",__LINE__)); - - SAM_ASSERT(sam_method && access_token && domain); - - (*domain) = NULL; - - if ((dom_handle = talloc(mem_ctx, sizeof(SAM_DOMAIN_HANDLE))) == NULL) { - DEBUG(0,("failed to talloc dom_handle\n")); - ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); - return ads_ntstatus(ads_status); - } - - ZERO_STRUCTP(dom_handle); - - dom_handle->mem_ctx = mem_ctx; /*Fix me is this right??? */ - dom_handle->free_fn = NULL; - dom_handle->current_sam_methods = sam_method; - - /* check if access can be granted as requested */ - - ads_status = sam_ads_get_tree_sec_desc(sam_method, ADS_ROOT_TREE, &sd); - if (!ADS_ERR_OK(ads_status)) - return ads_ntstatus(ads_status); - - ads_status = sam_ads_access_check(sam_method, sd, access_token, access_desired); - if (!ADS_ERR_OK(ads_status)) - return ads_ntstatus(ads_status); - - dom_handle->access_granted = acc_granted; - - /* fill all the values of dom_handle */ - sid_copy(&dom_handle->private.sid, &sam_method->domain_sid); - dom_handle->private.name = smb_xstrdup(sam_method->domain_name); - dom_handle->private.servername = "WHOKNOWS"; /* what is the servername */ - - /*Fix me: sam_ads_account_policy_get() return ADS_STATUS! */ - ads_status = sam_ads_account_policy_get(sam_method, AP_MAX_PASSWORD_AGE, &tmp_value); - if (!ADS_ERR_OK(ads_status)) { - DEBUG(4,("sam_ads_account_policy_get failed for max password age. Useing default\n")); - tmp_value = MAX_PASSWORD_AGE; - } - unix_to_nt_time_abs(&dom_handle->private.max_passwordage,tmp_value); - - ads_status = sam_ads_account_policy_get(sam_method, AP_MIN_PASSWORD_AGE, &tmp_value); - if (!ADS_ERR_OK(ads_status)) { - DEBUG(4,("sam_ads_account_policy_get failed for min password age. Useing default\n")); - tmp_value = 0; - } - unix_to_nt_time_abs(&dom_handle->private.min_passwordage, tmp_value); - - ads_status = sam_ads_account_policy_get(sam_method, AP_LOCK_ACCOUNT_DURATION, &tmp_value); - if (!ADS_ERR_OK(ads_status)) { - DEBUG(4,("sam_ads_account_policy_get failed for lockout duration. Useing default\n")); - tmp_value = 0; - } - unix_to_nt_time_abs(&dom_handle->private.lockout_duration, tmp_value); - - ads_status = sam_ads_account_policy_get(sam_method, AP_RESET_COUNT_TIME, &tmp_value); - if (!ADS_ERR_OK(ads_status)) { - DEBUG(4,("sam_ads_account_policy_get failed for time till locout count is reset. Useing default\n")); - tmp_value = 0; - } - unix_to_nt_time_abs(&dom_handle->private.reset_count, tmp_value); - - ads_status = sam_ads_account_policy_get(sam_method, AP_MIN_PASSWORD_LEN, &tmp_value); - if (!ADS_ERR_OK(ads_status)) { - DEBUG(4,("sam_ads_account_policy_get failed for min password length. Useing default\n")); - tmp_value = 0; - } - dom_handle->private.min_passwordlength = (uint16)tmp_value; - - ads_status = sam_ads_account_policy_get(sam_method, AP_PASSWORD_HISTORY, &tmp_value); - if (!ADS_ERR_OK(ads_status)) { - DEBUG(4,("sam_ads_account_policy_get failed password history. Useing default\n")); - tmp_value = 0; - } - dom_handle->private.password_history = (uint16)tmp_value; - - ads_status = sam_ads_account_policy_get(sam_method, AP_BAD_ATTEMPT_LOCKOUT, &tmp_value); - if (!ADS_ERR_OK(ads_status)) { - DEBUG(4,("sam_ads_account_policy_get failed for bad attempts till lockout. Useing default\n")); - tmp_value = 0; - } - dom_handle->private.lockout_count = (uint16)tmp_value; - - ads_status = sam_ads_account_policy_get(sam_method, AP_TIME_TO_LOGOUT, &tmp_value); - if (!ADS_ERR_OK(ads_status)) { - DEBUG(4,("sam_ads_account_policy_get failed for force logout. Useing default\n")); - tmp_value = -1; - } - - ads_status = sam_ads_account_policy_get(sam_method, AP_USER_MUST_LOGON_TO_CHG_PASS, &tmp_value); - if (!ADS_ERR_OK(ads_status)) { - DEBUG(4,("sam_ads_account_policy_get failed for user must login to change password. Useing default\n")); - tmp_value = 0; - } - - /* should the real values of num_accounts, num_groups and num_aliases be retreved? - * I think it is to expensive to bother - */ - dom_handle->private.num_accounts = 3; - dom_handle->private.num_groups = 4; - dom_handle->private.num_aliases = 5; - - *domain = dom_handle; - - ads_status = ADS_ERROR_NT(NT_STATUS_OK); - return ads_ntstatus(ads_status); -} - -/* Account API */ -static NTSTATUS sam_ads_create_account(const SAM_METHODS *sam_method, - const NT_USER_TOKEN *access_token, uint32 access_desired, - const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - SEC_DESC *sd = NULL; - - SAM_ASSERT(sam_method && access_token && account_name && account); - - ads_status = sam_ads_get_tree_sec_desc(sam_method, ADS_SUBTREE_USERS, &sd); - if (!ADS_ERR_OK(ads_status)) - return ads_ntstatus(ads_status); - - ads_status = sam_ads_access_check(sam_method, sd, access_token, access_desired); - if (!ADS_ERR_OK(ads_status)) - return ads_ntstatus(ads_status); - - ads_status = ADS_ERROR_NT(sam_init_account(account)); - if (!ADS_ERR_OK(ads_status)) - return ads_ntstatus(ads_status); - - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_add_account(const SAM_METHODS *sam_method, const SAM_ACCOUNT_HANDLE *account) -{ - ADS_STATUS ads_status = ADS_ERROR(LDAP_NO_MEMORY); - struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; - ADS_STRUCT *ads_struct = privates->ads_struct; - TALLOC_CTX *mem_ctx = privates->mem_ctx; - ADS_MODLIST mods; - uint16 acct_ctrl; - char *new_dn; - - SAM_ASSERT(sam_method && account); - - ads_status = ADS_ERROR_NT(sam_get_account_acct_ctrl(account,&acct_ctrl)); - if (!ADS_ERR_OK(ads_status)) - goto done; - - if ((acct_ctrl & ACB_WSTRUST)||(acct_ctrl & ACB_SVRTRUST)) { - /* Computer account */ - char *name,*controlstr; - char *hostname,*host_upn,*host_spn; - const char *objectClass[] = {"top", "person", "organizationalPerson", - "user", "computer", NULL}; - - ads_status = ADS_ERROR_NT(sam_get_account_name(account,&name)); - if (!ADS_ERR_OK(ads_status)) - goto done; - - if (!(host_upn = talloc_asprintf(mem_ctx, "%s@%s", name, ads_struct->config.realm))) { - ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); - goto done; - } - - if (!(new_dn = talloc_asprintf(mem_ctx, "CN=%s,CN=Computers,%s", hostname, - ads_struct->config.bind_path))) { - ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); - goto done; - } - - if (!(controlstr = talloc_asprintf(mem_ctx, "%u", ads_acb2uf(acct_ctrl)))) { - ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); - goto done; - } - - if (!(mods = ads_init_mods(mem_ctx))) { - ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); - goto done; - } - - ads_status = ads_mod_str(mem_ctx, &mods, "cn", hostname); - if (!ADS_ERR_OK(ads_status)) - goto done; - ads_status = ads_mod_strlist(mem_ctx, &mods, "objectClass", objectClass); - if (!ADS_ERR_OK(ads_status)) - goto done; - ads_status = ads_mod_str(mem_ctx, &mods, "userPrincipalName", host_upn); - if (!ADS_ERR_OK(ads_status)) - goto done; - ads_status = ads_mod_str(mem_ctx, &mods, "displayName", hostname); - if (!ADS_ERR_OK(ads_status)) - goto done; - ads_status = ads_mod_str(mem_ctx, &mods, "sAMAccountName", name); - if (!ADS_ERR_OK(ads_status)) - goto done; - ads_status = ads_mod_str(mem_ctx, &mods, "userAccountControl", controlstr); - if (!ADS_ERR_OK(ads_status)) - goto done; - - ads_status = ads_mod_str(mem_ctx, &mods, "servicePrincipalName", host_spn); - if (!ADS_ERR_OK(ads_status)) - goto done; - ads_status = ads_mod_str(mem_ctx, &mods, "dNSHostName", hostname); - if (!ADS_ERR_OK(ads_status)) - goto done; - ads_status = ads_mod_str(mem_ctx, &mods, "userAccountControl", controlstr); - if (!ADS_ERR_OK(ads_status)) - goto done; - /* ads_status = ads_mod_str(mem_ctx, &mods, "operatingSystem", "Samba"); - if (!ADS_ERR_OK(ads_status)) - goto done; - *//* ads_status = ads_mod_str(mem_ctx, &mods, "operatingSystemVersion", VERSION); - if (!ADS_ERR_OK(ads_status)) - goto done; - */ - /* End Computer account */ - } else { - /* User account*/ - char *upn, *controlstr; - char *name, *fullname; - const char *objectClass[] = {"top", "person", "organizationalPerson", - "user", NULL}; - - ads_status = ADS_ERROR_NT(sam_get_account_name(account,&name)); - if (!ADS_ERR_OK(ads_status)) - goto done; - - ads_status = ADS_ERROR_NT(sam_get_account_fullname(account,&fullname)); - if (!ADS_ERR_OK(ads_status)) - goto done; - - if (!(upn = talloc_asprintf(mem_ctx, "%s@%s", name, ads_struct->config.realm))) { - ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); - goto done; - } - - if (!(new_dn = talloc_asprintf(mem_ctx, "CN=%s,CN=Users,%s", fullname, - ads_struct->config.bind_path))) { - ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); - goto done; - } - - if (!(controlstr = talloc_asprintf(mem_ctx, "%u", ads_acb2uf(acct_ctrl)))) { - ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); - goto done; - } - - if (!(mods = ads_init_mods(mem_ctx))) { - ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); - goto done; - } - - ads_status = ads_mod_str(mem_ctx, &mods, "cn", fullname); - if (!ADS_ERR_OK(ads_status)) - goto done; - ads_status = ads_mod_strlist(mem_ctx, &mods, "objectClass", objectClass); - if (!ADS_ERR_OK(ads_status)) - goto done; - ads_status = ads_mod_str(mem_ctx, &mods, "userPrincipalName", upn); - if (!ADS_ERR_OK(ads_status)) - goto done; - ads_status = ads_mod_str(mem_ctx, &mods, "displayName", fullname); - if (!ADS_ERR_OK(ads_status)) - goto done; - ads_status = ads_mod_str(mem_ctx, &mods, "sAMAccountName", name); - if (!ADS_ERR_OK(ads_status)) - goto done; - ads_status = ads_mod_str(mem_ctx, &mods, "userAccountControl", controlstr); - if (!ADS_ERR_OK(ads_status)) - goto done; - }/* End User account */ - - /* Finally at the account */ - ads_status = ads_gen_add(ads_struct, new_dn, mods); - -done: - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_update_account(const SAM_METHODS *sam_method, const SAM_ACCOUNT_HANDLE *account) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_delete_account(const SAM_METHODS *sam_method, const SAM_ACCOUNT_HANDLE *account) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - - - - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_enum_accounts(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, uint16 acct_ctrl, uint32 *account_count, SAM_ACCOUNT_ENUM **accounts) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_get_account_by_sid(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, const uint32 access_desired, const DOM_SID *accountsid, SAM_ACCOUNT_HANDLE **account) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_get_account_by_name(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, const uint32 access_desired, const char *name, SAM_ACCOUNT_HANDLE **account) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - return ads_ntstatus(ads_status); -} - - -/* Group API */ -static NTSTATUS sam_ads_create_group(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *group_name, uint16 group_ctrl, SAM_GROUP_HANDLE **group) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_add_group(const SAM_METHODS *sam_method, const SAM_GROUP_HANDLE *group) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_update_group(const SAM_METHODS *sam_method, const SAM_GROUP_HANDLE *group) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_delete_group(const SAM_METHODS *sam_method, const SAM_GROUP_HANDLE *group) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_enum_groups(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, const uint16 group_ctrl, uint32 *groups_count, SAM_GROUP_ENUM **groups) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; - ADS_STRUCT *ads_struct = privates->ads_struct; - TALLOC_CTX *mem_ctx = privates->mem_ctx; - void *res = NULL; - void *msg = NULL; - char *filter = NULL; - int i = 0; - - /* get only these LDAP attributes, witch we really need for a group */ - const char *group_enum_attrs[] = {"objectSid", - "description", - "sAMAcountName", - NULL}; - - SAM_ASSERT(sam_method && access_token && groups_count && groups); - - *groups_count = 0; - - DEBUG(3,("ads: enum_dom_groups\n")); - - /* Fix Me: get only group from the wanted Type */ - asprintf(&filter, "(&(objectClass=group)(groupType=%s))", "*"); - ads_status = sam_ads_do_search(privates, ads_struct->config.bind_path, LDAP_SCOPE_SUBTREE, filter, group_enum_attrs, &res); - if (!ADS_ERR_OK(ads_status)) { - DEBUG(1,("enum_groups ads_search: %s\n", ads_errstr(ads_status))); - } - - *groups_count = ads_count_replies(ads_struct, res); - if (*groups_count == 0) { - DEBUG(1,("enum_groups: No groups found\n")); - } - - (*groups) = talloc_zero(mem_ctx, (*groups_count) * sizeof(**groups)); - if (!*groups) { - ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); - } - - for (msg = ads_first_entry(ads_struct, res); msg; msg = ads_next_entry(ads_struct, msg)) { - uint32 grouptype; - - if (!ads_pull_uint32(ads_struct, msg, "groupType", &grouptype)) { - ; - } else { - (*groups)->group_ctrl = ads_gtype2gcb(grouptype); - } - - if (!((*groups)->group_name = ads_pull_string(ads_struct, mem_ctx, msg, "sAMAccountName"))) { - ; - } - - if (!((*groups)->group_desc = ads_pull_string(ads_struct, mem_ctx, msg, "description"))) { - ; - } - - if (!ads_pull_sid(ads_struct, msg, "objectSid", &((*groups)->sid))) { - DEBUG(1,("No sid for group %s !?\n", (*groups)->group_name)); - continue; - } - - i++; - } - - (*groups_count) = i; - - ads_status = ADS_ERROR_NT(NT_STATUS_OK); - - DEBUG(3,("ads enum_dom_groups gave %d entries\n", (*groups_count))); - - if (res) ads_msgfree(ads_struct, res); - - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_get_group_by_sid(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, const uint32 access_desired, const DOM_SID *groupsid, SAM_GROUP_HANDLE **group) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_get_group_by_name(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, const uint32 access_desired, const char *name, SAM_GROUP_HANDLE **group) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_add_member_to_group(const SAM_METHODS *sam_method, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_delete_member_from_group(const SAM_METHODS *sam_method, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_enum_groupmembers(const SAM_METHODS *sam_method, const SAM_GROUP_HANDLE *group, uint32 *members_count, SAM_GROUP_MEMBER **members) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - return ads_ntstatus(ads_status); -} - -static NTSTATUS sam_ads_get_groups_of_sid(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, const DOM_SID **sids, const uint16 group_ctrl, uint32 *group_count, SAM_GROUP_ENUM **groups) -{ - ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); - SAM_ASSERT(sam_method); - return ads_ntstatus(ads_status); -} - -/********************************** -Free our private data -***********************************/ -static void sam_ads_free_private_data(void **vp) -{ - struct sam_ads_privates **sam_ads_state = (struct sam_ads_privates **)vp; - - if ((*sam_ads_state)->ads_struct->ld) { - ldap_unbind((*sam_ads_state)->ads_struct->ld); - } - - ads_destroy(&((*sam_ads_state)->ads_struct)); - - talloc_destroy((*sam_ads_state)->mem_ctx); - /* Fix me: maybe we must free some other stuff here */ - - *sam_ads_state = NULL; -} - - - -/***************************************************** -Init the ADS SAM backend -******************************************************/ -NTSTATUS sam_init_ads(SAM_METHODS *sam_method, const char *module_params) -{ - ADS_STATUS ads_status; - struct sam_ads_privates *sam_ads_state; - TALLOC_CTX *mem_ctx; - - SAM_ASSERT(sam_method && sam_method->parent); - - mem_ctx = sam_method->parent->mem_ctx; - - /* Here the SAM API functions of the sam_ads module */ - - /* General API */ - - sam_method->sam_get_sec_desc = sam_ads_get_sec_desc; - sam_method->sam_set_sec_desc = sam_ads_set_sec_desc; - - sam_method->sam_lookup_sid = sam_ads_lookup_sid; - sam_method->sam_lookup_name = sam_ads_lookup_name; - - /* Domain API */ - - sam_method->sam_update_domain = sam_ads_update_domain; - sam_method->sam_get_domain_handle = sam_ads_get_domain_handle; - - /* Account API */ - - sam_method->sam_create_account = sam_ads_create_account; - sam_method->sam_add_account = sam_ads_add_account; - sam_method->sam_update_account = sam_ads_update_account; - sam_method->sam_delete_account = sam_ads_delete_account; - sam_method->sam_enum_accounts = sam_ads_enum_accounts; - - sam_method->sam_get_account_by_sid = sam_ads_get_account_by_sid; - sam_method->sam_get_account_by_name = sam_ads_get_account_by_name; - - /* Group API */ - - sam_method->sam_create_group = sam_ads_create_group; - sam_method->sam_add_group = sam_ads_add_group; - sam_method->sam_update_group = sam_ads_update_group; - sam_method->sam_delete_group = sam_ads_delete_group; - sam_method->sam_enum_groups = sam_ads_enum_groups; - sam_method->sam_get_group_by_sid = sam_ads_get_group_by_sid; - sam_method->sam_get_group_by_name = sam_ads_get_group_by_name; - - sam_method->sam_add_member_to_group = sam_ads_add_member_to_group; - sam_method->sam_delete_member_from_group = sam_ads_delete_member_from_group; - sam_method->sam_enum_groupmembers = sam_ads_enum_groupmembers; - - sam_method->sam_get_groups_of_sid = sam_ads_get_groups_of_sid; - - /*Fix me: use talloc !*/ - sam_ads_state = talloc_zero(mem_ctx, sizeof(struct sam_ads_privates)); - if (!sam_ads_state) { - DEBUG(0, ("talloc() failed for sam_ads private_data!\n")); - return NT_STATUS_NO_MEMORY; - } - - if (!(sam_ads_state->mem_ctx = talloc_init_named("sam_ads_method"))) { - DEBUG(0, ("talloc_init_named() failed for sam_ads_state->mem_ctx\n")); - return NT_STATUS_NO_MEMORY; - } - - sam_ads_state->ads_bind_dn = talloc_strdup(sam_ads_state->mem_ctx, lp_parm_string(NULL,"sam_ads","bind as")); - sam_ads_state->ads_bind_pw = talloc_strdup(sam_ads_state->mem_ctx, lp_parm_string(NULL,"sam_ads","bind pw")); - - sam_ads_state->bind_plaintext = strequal(lp_parm_string(NULL, "sam_ads", "plaintext bind"), "yes"); - - if (!sam_ads_state->ads_bind_dn || !sam_ads_state->ads_bind_pw) { - DEBUG(0, ("talloc_strdup() failed for bind dn or password\n")); - return NT_STATUS_NO_MEMORY; - } - - /* Maybe we should not check the result here? Server down on startup? */ - - if (module_params && *module_params) { - sam_ads_state->ldap_uri = talloc_strdup(sam_ads_state->mem_ctx, module_params); - if (!sam_ads_state->ldap_uri) { - DEBUG(0, ("talloc_strdup() failed for bind dn or password\n")); - return NT_STATUS_NO_MEMORY; - } - } else { - sam_ads_state->ldap_uri = "ldapi://"; - } - - ads_status = sam_ads_cached_connection(sam_ads_state); - if (!ADS_ERR_OK(ads_status)) { - return ads_ntstatus(ads_status); - } - - sam_method->private_data = sam_ads_state; - sam_method->free_private_data = sam_ads_free_private_data; - - sam_ads_debug_level = debug_add_class("sam_ads"); - if (sam_ads_debug_level == -1) { - sam_ads_debug_level = DBGC_ALL; - DEBUG(0, ("sam_ads: Couldn't register custom debugging class!\n")); - } else DEBUG(2, ("sam_ads: Debug class number of 'sam_ads': %d\n", sam_ads_debug_level)); - - DEBUG(5, ("Initializing sam_ads\n")); - if (module_params) - DEBUG(10, ("Module Parameters for Domain %s[%s]: %s\n", sam_method->domain_name, sam_method->domain_name, module_params)); - return NT_STATUS_OK; -} - -#else /* HAVE_LDAP */ -void sam_ads_dummy(void) -{ - DEBUG(0,("sam_ads: not supported!\n")); -} -#endif /* HAVE_LDAP */ diff --git a/source3/sam/sam_skel.c b/source3/sam/sam_skel.c deleted file mode 100644 index 8073470716..0000000000 --- a/source3/sam/sam_skel.c +++ /dev/null @@ -1,251 +0,0 @@ -/* - Unix SMB/CIFS implementation. - this is a skeleton for SAM backend modules. - - Copyright (C) Stefan (metze) Metzmacher 2002 - Copyright (C) Jelmer Vernooij 2002 - Copyright (C) Andrew Bartlett 2002 - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include "includes.h" - -static int sam_skel_debug_level = DBGC_SAM; - -#undef DBGC_CLASS -#define DBGC_CLASS sam_skel_debug_level - -/* define the version of the SAM interface */ -SAM_MODULE_VERSIONING_MAGIC - -/* General API */ - -static NTSTATUS sam_skel_get_sec_desc(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, const DOM_SID *sid, SEC_DESC **sd) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS sam_skel_set_sec_desc(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, const DOM_SID *sid, const SEC_DESC *sd) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - - -static NTSTATUS sam_skel_lookup_sid(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, TALLOC_CTX *mem_ctx, const DOM_SID *sid, char **name, uint32 *type) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS sam_skel_lookup_name(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, const char *name, DOM_SID *sid, uint32 *type) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - - -/* Domain API */ - -static NTSTATUS sam_skel_update_domain(const SAM_METHODS *sam_methods, const SAM_DOMAIN_HANDLE *domain) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS sam_skel_get_domain_handle(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint32 access_desired, SAM_DOMAIN_HANDLE **domain) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - - -/* Account API */ - -static NTSTATUS sam_skel_create_account(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS sam_skel_add_account(const SAM_METHODS *sam_methods, const SAM_ACCOUNT_HANDLE *account) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS sam_skel_update_account(const SAM_METHODS *sam_methods, const SAM_ACCOUNT_HANDLE *account) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS sam_skel_delete_account(const SAM_METHODS *sam_methods, const SAM_ACCOUNT_HANDLE *account) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS sam_skel_enum_accounts(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint16 acct_ctrl, uint32 *account_count, SAM_ACCOUNT_ENUM **accounts) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - - -static NTSTATUS sam_skel_get_account_by_sid(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *accountsid, SAM_ACCOUNT_HANDLE **account) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS sam_skel_get_account_by_name(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *name, SAM_ACCOUNT_HANDLE **account) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - - -/* Group API */ - -static NTSTATUS sam_skel_create_group(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *account_name, uint16 group_ctrl, SAM_GROUP_HANDLE **group) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS sam_skel_add_group(const SAM_METHODS *sam_methods, const SAM_GROUP_HANDLE *group) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS sam_skel_update_group(const SAM_METHODS *sam_methods, const SAM_GROUP_HANDLE *group) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS sam_skel_delete_group(const SAM_METHODS *sam_methods, const SAM_GROUP_HANDLE *group) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS sam_skel_enum_groups(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint16 group_ctrl, uint32 *groups_count, SAM_GROUP_ENUM **groups) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS sam_skel_get_group_by_sid(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *groupsid, SAM_GROUP_HANDLE **group) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS sam_skel_get_group_by_name(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *name, SAM_GROUP_HANDLE **group) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - - -static NTSTATUS sam_skel_add_member_to_group(const SAM_METHODS *sam_methods, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS sam_skel_delete_member_from_group(const SAM_METHODS *sam_methods, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS sam_skel_enum_groupmembers(const SAM_METHODS *sam_methods, const SAM_GROUP_HANDLE *group, uint32 *members_count, SAM_GROUP_MEMBER **members) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - - -static NTSTATUS sam_skel_get_groups_of_sid(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, const DOM_SID **sids, uint16 group_ctrl, uint32 *group_count, SAM_GROUP_ENUM **groups) -{ - DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); - return NT_STATUS_NOT_IMPLEMENTED; -} - -NTSTATUS sam_init_skel(SAM_METHODS *sam_methods, const char *module_params) -{ - /* Functions your SAM module doesn't provide should be set - * to NULL */ - - sam_methods->sam_get_sec_desc = sam_skel_get_sec_desc; - sam_methods->sam_set_sec_desc = sam_skel_set_sec_desc; - - sam_methods->sam_lookup_sid = sam_skel_lookup_sid; - sam_methods->sam_lookup_name = sam_skel_lookup_name; - - /* Domain API */ - - sam_methods->sam_update_domain = sam_skel_update_domain; - sam_methods->sam_get_domain_handle = sam_skel_get_domain_handle; - - /* Account API */ - - sam_methods->sam_create_account = sam_skel_create_account; - sam_methods->sam_add_account = sam_skel_add_account; - sam_methods->sam_update_account = sam_skel_update_account; - sam_methods->sam_delete_account = sam_skel_delete_account; - sam_methods->sam_enum_accounts = sam_skel_enum_accounts; - - sam_methods->sam_get_account_by_sid = sam_skel_get_account_by_sid; - sam_methods->sam_get_account_by_name = sam_skel_get_account_by_name; - - /* Group API */ - - sam_methods->sam_create_group = sam_skel_create_group; - sam_methods->sam_add_group = sam_skel_add_group; - sam_methods->sam_update_group = sam_skel_update_group; - sam_methods->sam_delete_group = sam_skel_delete_group; - sam_methods->sam_enum_groups = sam_skel_enum_groups; - sam_methods->sam_get_group_by_sid = sam_skel_get_group_by_sid; - sam_methods->sam_get_group_by_name = sam_skel_get_group_by_name; - - sam_methods->sam_add_member_to_group = sam_skel_add_member_to_group; - sam_methods->sam_delete_member_from_group = sam_skel_delete_member_from_group; - sam_methods->sam_enum_groupmembers = sam_skel_enum_groupmembers; - - sam_methods->sam_get_groups_of_sid = sam_skel_get_groups_of_sid; - - sam_methods->free_private_data = NULL; - - - sam_skel_debug_level = debug_add_class("sam_skel"); - if (sam_skel_debug_level == -1) { - sam_skel_debug_level = DBGC_SAM; - DEBUG(0, ("sam_skel: Couldn't register custom debugging class!\n")); - } else DEBUG(2, ("sam_skel: Debug class number of 'sam_skel': %d\n", sam_skel_debug_level)); - - if(module_params) - DEBUG(0, ("Starting 'sam_skel' with parameters '%s' for domain %s\n", module_params, sam_methods->domain_name)); - else - DEBUG(0, ("Starting 'sam_skel' for domain %s without paramters\n", sam_methods->domain_name)); - - return NT_STATUS_OK; -} diff --git a/source3/script/find_missing_doc.pl b/source3/script/find_missing_doc.pl index b582446569..89385baaa2 100755 --- a/source3/script/find_missing_doc.pl +++ b/source3/script/find_missing_doc.pl @@ -1,62 +1,21 @@ -#!/usr/bin/perl +#!/usr/bin/perl -w -my $doc_file = "/docs/docbook/manpages/smb.conf.5.sgml"; -my $source_file = "/source/param/loadparm.c"; +#reads in the list of parameters from the source +#compares this list to the list of parms documented in the docbook source +#prints out the names of the parameters that are in need of documentation +# (C) 2002 Bradley W. Langhorst" <brad@langhorst.com> -my %link,%doc,%param; +my $doc_file = "./docs/docbook/manpages/smb.conf.5.sgml"; +my $source_file = "./source/param/loadparm.c"; +my $ln; +my %params; -# This one shouldn't be documented at all -$doc{-valid} = "FOUND"; +open(SOURCE, "<$source_file") || + die "Unable to open $source_file for input: $!\n"; +open(DOC, "<$doc_file") || + die "Unable to open $doc_file for input: $!\n"; -$topdir = (shift @ARGV) or $topdir = "."; - -################################################## -# Reading links from manpage - -open(IN,$topdir.$doc_file); - -while(<IN>) { - if( /<listitem><para><link linkend="([^"]*)"><parameter>([^<]*)<\/parameter><\/link><\/para><\/listitem>/g ){ - $link{$2} = $1; - $ref{$1} = $2; - } -} - -close(IN); - -################################################## -# Reading documentation from manpage - -open(IN,$topdir.$doc_file) || die("Can't open $topdir$doc_file"); - -while(<IN>) { - if( /<term><anchor id="([^"]*)">([^<]*?)([ ]*)\(.\)([ ]*)<\/term>/g ) { - $key = $1; - $value = $2; - $doc{$value} = $key; - - # There is a reference to this entry - if($ref{$key} eq $value){ - $ref{$key} = "FOUND"; - } else { - if($ref{$key}) { - print "$key should refer to $value, but refers to " . $ref{$key} . "\n"; - } else { - print "$key should refer to $value, but has no reference!\n"; - } - $ref{$key} = $value; - } - } -} - -close(IN); - -################################################# -# Reading entries from source code - -open(SOURCE,$topdir.$source_file) || die("Can't open $topdir$source_file"); - -while ($ln = <SOURCE>) { +while ($ln= <SOURCE>) { last if $ln =~ m/^static\ struct\ parm_struct\ parm_table.*/; } #burn through the preceding lines @@ -64,27 +23,21 @@ while ($ln = <SOURCE>) { last if $ln =~ m/^\s*\}\;\s*$/; #pull in the param names only next if $ln =~ m/.*P_SEPARATOR.*/; - next unless $ln =~ /.*\"(.*)\".*/; - - if($doc{lc($1)}) { - $doc{lc($1)} = "FOUND"; - } else { - print "$1 is not documented!\n"; - } + $ln =~ m/.*\"(.*)\".*/; + $params{lc($1)}='not_found'; #not case sensitive } close SOURCE; - -################################################## -# Trying to find missing references - -foreach (keys %ref) { - if($ref{$_} cmp "FOUND") { - print "$_ references to " . $ref{$_} . ", but " . $ref{$_} . " isn't an anchor!\n"; - } +#now read in the params list from the docs +@doclines = <DOC>; + +foreach $ln (grep (/\<anchor\ id\=/, @doclines)) { + $ln =~ m/^.*\<anchor\ id\=\".*\"\>\s*(?:\<.*?\>)*\s*(.*?)(?:\s*\(?[S,G]?\)?\s*(\<\/term\>)?){1}\s*$/; + #print "got: $1 from: $ln"; + if (exists $params{lc($1)}) { + $params{$1} = 'found'; + } } -foreach (keys %doc) { - if($doc{$_} cmp "FOUND") { - print "$_ is documented but is not a configuration option!\n"; - } +foreach (keys %params) { + print "$_\n" if $params{$_} eq 'not_found' and $_ cmp "valid" and $_ eq ""; } diff --git a/source3/torture/cmd_sam.c b/source3/torture/cmd_sam.c index eb8c17f2f9..3d4725c8a8 100644 --- a/source3/torture/cmd_sam.c +++ b/source3/torture/cmd_sam.c @@ -22,11 +22,6 @@ #include "includes.h" #include "samtest.h" -static void print_account(SAM_ACCOUNT_HANDLE *a) -{ - /* FIXME */ -} - static NTSTATUS cmd_context(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) { NTSTATUS status; @@ -56,12 +51,12 @@ static NTSTATUS cmd_load_module(struct samtest_state *st, TALLOC_CTX *mem_ctx, i char *plugin_arg[2]; NTSTATUS status; if (argc != 2 && argc != 3) { - printf("Usage: load <module path> [domain-name]\n"); + printf("Usage: load <module path> [domain-sid]\n"); return NT_STATUS_OK; } if (argc == 3) - asprintf(&plugin_arg[0], "plugin:%s|%s", argv[1], argv[2]); + asprintf(&plugin_arg[0], "%s|plugin:%s", argv[2], argv[1]); else asprintf(&plugin_arg[0], "plugin:%s", argv[1]); @@ -104,8 +99,8 @@ static NTSTATUS cmd_lookup_sid(struct samtest_state *st, TALLOC_CTX *mem_ctx, in return NT_STATUS_INVALID_PARAMETER; } - if (!NT_STATUS_IS_OK(status = sam_lookup_sid(st->context, st->token, mem_ctx, &sid, &name, &type))) { - printf("sam_lookup_sid failed!\n"); + if (!NT_STATUS_IS_OK(status = context_sam_lookup_sid(st->context, st->token, &sid, &name, &type))) { + printf("context_sam_lookup_sid failed!\n"); return status; } @@ -117,7 +112,7 @@ static NTSTATUS cmd_lookup_sid(struct samtest_state *st, TALLOC_CTX *mem_ctx, in static NTSTATUS cmd_lookup_name(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) { - DOM_SID sid; + DOM_SID *sid; uint32 type; NTSTATUS status; if (argc != 3) { @@ -125,12 +120,12 @@ static NTSTATUS cmd_lookup_name(struct samtest_state *st, TALLOC_CTX *mem_ctx, i return NT_STATUS_INVALID_PARAMETER; } - if (!NT_STATUS_IS_OK(status = sam_lookup_name(st->context, st->token, argv[1], argv[2], &sid, &type))) { - printf("sam_lookup_name failed!\n"); + if (!NT_STATUS_IS_OK(status = context_sam_lookup_name(st->context, st->token, argv[1], argv[2], &sid, &type))) { + printf("context_sam_lookup_name failed!\n"); return status; } - printf("SID: %s\n", sid_string_static(&sid)); + printf("SID: %s\n", sid_string_static(sid)); printf("Type: %d\n", type); return NT_STATUS_OK; @@ -155,8 +150,8 @@ static NTSTATUS cmd_lookup_domain(struct samtest_state *st, TALLOC_CTX *mem_ctx, return NT_STATUS_INVALID_PARAMETER; } - if (!NT_STATUS_IS_OK(status = sam_lookup_domain(st->context, st->token, argv[1], &sid))) { - printf("sam_lookup_name failed!\n"); + if (!NT_STATUS_IS_OK(status = context_sam_lookup_domain(st->context, st->token, argv[1], &sid))) { + printf("context_sam_lookup_name failed!\n"); return status; } @@ -172,8 +167,8 @@ static NTSTATUS cmd_enum_domains(struct samtest_state *st, TALLOC_CTX *mem_ctx, char **domain_names; NTSTATUS status; - if (!NT_STATUS_IS_OK(status = sam_enum_domains(st->context, st->token, &domain_count, &domain_sids, &domain_names))) { - printf("sam_enum_domains failed!\n"); + if (!NT_STATUS_IS_OK(status = context_sam_enum_domains(st->context, st->token, &domain_count, &domain_sids, &domain_names))) { + printf("context_sam_enum_domains failed!\n"); return status; } @@ -218,8 +213,8 @@ static NTSTATUS cmd_show_domain(struct samtest_state *st, TALLOC_CTX *mem_ctx, i return NT_STATUS_INVALID_PARAMETER; } - if (!NT_STATUS_IS_OK(status = sam_get_domain_by_sid(st->context, st->token, DOMAIN_ALL_ACCESS, &sid, &domain))) { - printf("sam_get_domain_by_sid failed\n"); + if (!NT_STATUS_IS_OK(status = context_sam_get_domain_by_sid(st->context, st->token, DOMAIN_ALL_ACCESS, &sid, &domain))) { + printf("context_sam_get_domain_by_sid failed\n"); return status; } @@ -232,13 +227,13 @@ static NTSTATUS cmd_show_domain(struct samtest_state *st, TALLOC_CTX *mem_ctx, i if (!NT_STATUS_IS_OK(status = sam_get_domain_num_groups(domain, &tmp_uint32))) { printf("sam_get_domain_num_groups failed: %s\n", nt_errstr(status)); } else { - printf("Number of groups: %u\n", tmp_uint32); + printf("Number of groups: %d\n", tmp_uint32); } if (!NT_STATUS_IS_OK(status = sam_get_domain_num_aliases(domain, &tmp_uint32))) { printf("sam_get_domain_num_aliases failed: %s\n", nt_errstr(status)); } else { - printf("Number of aliases: %u\n", tmp_uint32); + printf("Number of aliases: %d\n", tmp_uint32); } if (!NT_STATUS_IS_OK(status = sam_get_domain_name(domain, &tmp_string))) { @@ -250,7 +245,7 @@ static NTSTATUS cmd_show_domain(struct samtest_state *st, TALLOC_CTX *mem_ctx, i if (!NT_STATUS_IS_OK(status = sam_get_domain_lockout_count(domain, &tmp_uint16))) { printf("sam_get_domain_lockout_count failed: %s\n", nt_errstr(status)); } else { - printf("Lockout Count: %u\n", tmp_uint16); + printf("Lockout Count: %d\n", tmp_uint16); } if (!NT_STATUS_IS_OK(status = sam_get_domain_force_logoff(domain, &tmp_bool))) { @@ -262,7 +257,7 @@ static NTSTATUS cmd_show_domain(struct samtest_state *st, TALLOC_CTX *mem_ctx, i if (!NT_STATUS_IS_OK(status = sam_get_domain_lockout_duration(domain, &tmp_nttime))) { printf("sam_get_domain_lockout_duration failed: %s\n", nt_errstr(status)); } else { - printf("Lockout duration: %u\n", tmp_nttime.low); + printf("Lockout duration: %d\n", tmp_nttime.low); } if (!NT_STATUS_IS_OK(status = sam_get_domain_login_pwdchange(domain, &tmp_bool))) { @@ -274,31 +269,31 @@ static NTSTATUS cmd_show_domain(struct samtest_state *st, TALLOC_CTX *mem_ctx, i if (!NT_STATUS_IS_OK(status = sam_get_domain_max_pwdage(domain, &tmp_nttime))) { printf("sam_get_domain_max_pwdage failed: %s\n", nt_errstr(status)); } else { - printf("Maximum password age: %u\n", tmp_nttime.low); + printf("Maximum password age: %d\n", tmp_nttime.low); } if (!NT_STATUS_IS_OK(status = sam_get_domain_min_pwdage(domain, &tmp_nttime))) { printf("sam_get_domain_min_pwdage failed: %s\n", nt_errstr(status)); } else { - printf("Minimal password age: %u\n", tmp_nttime.low); + printf("Minimal password age: %d\n", tmp_nttime.low); } if (!NT_STATUS_IS_OK(status = sam_get_domain_min_pwdlength(domain, &tmp_uint16))) { printf("sam_get_domain_min_pwdlength: %s\n", nt_errstr(status)); } else { - printf("Minimal Password Length: %u\n", tmp_uint16); + printf("Minimal Password Length: %d\n", tmp_uint16); } if (!NT_STATUS_IS_OK(status = sam_get_domain_pwd_history(domain, &tmp_uint16))) { printf("sam_get_domain_pwd_history failed: %s\n", nt_errstr(status)); } else { - printf("Password history: %u\n", tmp_uint16); + printf("Password history: %d\n", tmp_uint16); } if (!NT_STATUS_IS_OK(status = sam_get_domain_reset_count(domain, &tmp_nttime))) { printf("sam_get_domain_reset_count failed: %s\n", nt_errstr(status)); } else { - printf("Reset count: %u\n", tmp_nttime.low); + printf("Reset count: %d\n", tmp_nttime.low); } if (!NT_STATUS_IS_OK(status = sam_get_domain_server(domain, &tmp_string))) { @@ -342,8 +337,8 @@ static NTSTATUS cmd_enum_accounts(struct samtest_state *st, TALLOC_CTX *mem_ctx, return NT_STATUS_INVALID_PARAMETER; } - if (!NT_STATUS_IS_OK(status = sam_enum_accounts(st->context, st->token, &sid, 0, &account_count, &accounts))) { - printf("sam_enum_accounts failed: %s\n", nt_errstr(status)); + if (!NT_STATUS_IS_OK(status = context_sam_enum_accounts(st->context, st->token, &sid, 0, &account_count, &accounts))) { + printf("context_sam_enum_accounts failed: %s\n", nt_errstr(status)); return status; } @@ -353,7 +348,7 @@ static NTSTATUS cmd_enum_accounts(struct samtest_state *st, TALLOC_CTX *mem_ctx, } for (i = 0; i < account_count; i++) - printf("SID: %s\nName: %s\nFullname: %s\nDescription: %s\nACB_BITS: %08X\n\n", + printf("%s\t%s\t%s\t%s\t%d\n", sid_string_static(&accounts[i].sid), accounts[i].account_name, accounts[i].full_name, accounts[i].account_desc, accounts[i].acct_ctrl); @@ -365,49 +360,12 @@ static NTSTATUS cmd_enum_accounts(struct samtest_state *st, TALLOC_CTX *mem_ctx, static NTSTATUS cmd_lookup_account_sid(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) { - NTSTATUS status; - DOM_SID sid; - SAM_ACCOUNT_HANDLE *account; - - if (argc != 2) { - printf("Usage: lookup_account_sid <account-sid>\n"); - return NT_STATUS_INVALID_PARAMETER; - } - - if (!string_to_sid(&sid, argv[1])){ - printf("Unparseable SID specified!\n"); - return NT_STATUS_INVALID_PARAMETER; - } - - if (!NT_STATUS_IS_OK(status = sam_get_account_by_sid(st->context, st->token, USER_ALL_ACCESS, &sid, &account))) { - printf("context_sam_get_account_by_sid failed: %s\n", nt_errstr(status)); - return status; - } - - print_account(account); - - return NT_STATUS_OK; + return NT_STATUS_NOT_IMPLEMENTED; } static NTSTATUS cmd_lookup_account_name(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) { - NTSTATUS status; - SAM_ACCOUNT_HANDLE *account; - - if (argc != 3) { - printf("Usage: lookup_account_name <domain-name> <account-name>\n"); - return NT_STATUS_INVALID_PARAMETER; - } - - - if (!NT_STATUS_IS_OK(status = sam_get_account_by_name(st->context, st->token, USER_ALL_ACCESS, argv[1], argv[2], &account))) { - printf("context_sam_get_account_by_sid failed: %s\n", nt_errstr(status)); - return status; - } - - print_account(account); - - return NT_STATUS_OK; + return NT_STATUS_NOT_IMPLEMENTED; } static NTSTATUS cmd_create_group(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) diff --git a/source3/torture/samtest.c b/source3/torture/samtest.c index d3268d8b5b..b5f7ed9f76 100644 --- a/source3/torture/samtest.c +++ b/source3/torture/samtest.c @@ -360,6 +360,7 @@ int main(int argc, char *argv[]) struct cmd_set **cmd_set; struct samtest_state st; + /* make sure the vars that get altered (4th field) are in a fixed location or certain compilers complain */ poptContext pc; @@ -374,8 +375,6 @@ int main(int argc, char *argv[]) ZERO_STRUCT(st); - st.token = get_system_token(); - setlinebuf(stdout); DEBUGLEVEL = 1; diff --git a/source3/web/cgi.c b/source3/web/cgi.c index 27cc932abe..7415fbe3f1 100644 --- a/source3/web/cgi.c +++ b/source3/web/cgi.c @@ -636,7 +636,7 @@ return the hostname of the client char *cgi_remote_host(void) { if (inetd_server) { - return get_socket_name(1,False); + return get_socket_name(1); } return getenv("REMOTE_HOST"); } diff --git a/swat/help/welcome.html b/swat/help/welcome.html index fad83fbc92..1c23d35a27 100644 --- a/swat/help/welcome.html +++ b/swat/help/welcome.html @@ -46,7 +46,19 @@ Please choose a configuration action using one of the above buttons <li><b>Books</b> <ul> <li><a href="/swat/using_samba/index.html" target="docs">Using Samba</a> - by Robert Eckstein, David Collier-Brown and Peter Kelly - <li><a href="/swat/help/Samba-HOWTO.html">The Samba HOWTO Collection</a> + </ul> + <li><b>Samba HOWTO Collection</b></li> + <ul> + <li><a href="/swat/help/Samba-HOWTO-Collection.html">Entire Collection (one file)</a> + <li><a href="/swat/help/DOMAIN_MEMBER.html">security = domain in Samba 2.x</a> + <li><a href="/swat/help/winbind.html">Unified Logons between Windows NT and UNIX Using Winbind</a> + <li><a href="/swat/help/msdfs_setup.html">Setting Samba as an MS-DFS server</a> + <li><a href="/swat/help/NT_Security.html">UNIX Permission Bits and Samba 2.x</a> + <li><a href="/swat/help/OS2-Client-HOWTO.html">OS/2 Clients and Samba</a> + <li><a href="/swat/help/printer_driver2.html">Printing under Samba 2.2.x</a> + <li><a href="/swat/help/UNIX_INSTALL.html">HOWTO Install and Test Samba</a> + <li><a href="/swat/help/Integrating-with-Windows.html">Integrating Name Resolution and Authentication Services</a> + <li><a href="/swat/help/CVS-Access.html">CVS Access to Samba code</a> </ul> </ul> |