openuniverse-1.0beta3.1.orig/0000755000175000017500000000000007116712312016021 5ustar paulliupaulliuopenuniverse-1.0beta3.1.orig/README0000644000175000017500000000017407045671066016716 0ustar paulliupaulliu OpenUniverse ============ You'll find notes about current release and a basic manual in the docs directory. openuniverse-1.0beta3.1.orig/stamp-h.in0000644000175000017500000000001207116712175017722 0ustar paulliupaulliutimestamp openuniverse-1.0beta3.1.orig/AUTHORS0000644000175000017500000000000107045414427017067 0ustar paulliupaulliu openuniverse-1.0beta3.1.orig/COPYING0000644000175000017500000004311006675475047017077 0ustar paulliupaulliu GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. openuniverse-1.0beta3.1.orig/ChangeLog0000644000175000017500000000000107045414434017567 0ustar paulliupaulliu openuniverse-1.0beta3.1.orig/INSTALL0000644000175000017500000002067007116542333017063 0ustar paulliupaulliuBefore you start ================ Make sure Mesa 3.2, glut and GLUI (optional) are working fine (run some tests or example programs). Read the manual (docs dir) to know where to get any of these libs. If you want to enable GUI you should run the configure script like this: configure --with-glui-inc=/usr/local/glui_v2 --with-glui-libs=/usr/local/glui_v2/lib/libglui.a We know it's a hack and we'll try to find a better way to detect GLUI. Anyways, i guess you know how this works configure make make install /usr/local/bin/openuniverse If the configure script fails we've included a Makefile.X11 in the src directory. In such a case you'll have to manually copy the binary and the ou.conf file (conf dir) to current directory (where you're right now). Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. openuniverse-1.0beta3.1.orig/Makefile.am0000644000175000017500000000006707045671647020100 0ustar paulliupaulliuSUBDIRS = src data 3dmodels fonts textures conf docs openuniverse-1.0beta3.1.orig/Makefile.in0000644000175000017500000002501607116712172020076 0ustar paulliupaulliu# Makefile.in generated automatically by automake 1.4 from Makefile.am # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : CC = @CC@ CPP = @CPP@ CXX = @CXX@ CXXCPP = @CXXCPP@ LEX = @LEX@ MAKEINFO = @MAKEINFO@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ YACC = @YACC@ SUBDIRS = src data 3dmodels fonts textures conf docs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = DIST_COMMON = README ./stamp-h.in AUTHORS COPYING ChangeLog INSTALL \ Makefile.am Makefile.in NEWS acconfig.h aclocal.m4 config.h.in \ configure configure.in install-sh missing mkinstalldirs DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = gtar GZIP_ENV = --best all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status $(ACLOCAL_M4): configure.in cd $(srcdir) && $(ACLOCAL) config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) config.h: stamp-h @if test ! -f $@; then \ rm -f stamp-h; \ $(MAKE) stamp-h; \ else :; fi stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES= CONFIG_HEADERS=config.h \ $(SHELL) ./config.status @echo timestamp > stamp-h 2> /dev/null $(srcdir)/config.h.in: $(srcdir)/stamp-h.in @if test ! -f $@; then \ rm -f $(srcdir)/stamp-h.in; \ $(MAKE) $(srcdir)/stamp-h.in; \ else :; fi $(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h cd $(top_srcdir) && $(AUTOHEADER) @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null mostlyclean-hdr: clean-hdr: distclean-hdr: -rm -f config.h maintainer-clean-hdr: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. @SET_MAKE@ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive info-recursive dvi-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ rev="$$subdir $$rev"; \ test "$$subdir" = "." && dot_seen=yes; \ done; \ test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ here=`pwd` && cd $(srcdir) \ && mkid -f$$here/ID $$unique $(LISP) TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS) mostlyclean-tags: clean-tags: distclean-tags: -rm -f TAGS ID maintainer-clean-tags: distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist -rm -rf $(distdir) GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz mkdir $(distdir)/=build mkdir $(distdir)/=inst dc_install_base=`cd $(distdir)/=inst && pwd`; \ cd $(distdir)/=build \ && ../configure --srcdir=.. --prefix=$$dc_install_base \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) dist -rm -rf $(distdir) @banner="$(distdir).tar.gz is ready for distribution"; \ dashes=`echo "$$banner" | sed s/./=/g`; \ echo "$$dashes"; \ echo "$$banner"; \ echo "$$dashes" dist: distdir -chmod -R a+r $(distdir) GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) -rm -rf $(distdir) dist-all: distdir -chmod -R a+r $(distdir) GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) -rm -rf $(distdir) distdir: $(DISTFILES) -rm -rf $(distdir) mkdir $(distdir) -chmod 777 $(distdir) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ chmod 777 $(distdir)/$$subdir; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done info-am: info: info-recursive dvi-am: dvi: dvi-recursive check-am: all-am check: check-recursive installcheck-am: installcheck: installcheck-recursive all-recursive-am: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive install-exec-am: install-exec: install-exec-recursive install-data-am: install-data: install-data-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-recursive uninstall-am: uninstall: uninstall-recursive all-am: Makefile config.h all-redirect: all-recursive-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: installdirs-recursive installdirs-am: mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic mostlyclean: mostlyclean-recursive clean-am: clean-hdr clean-tags clean-generic mostlyclean-am clean: clean-recursive distclean-am: distclean-hdr distclean-tags distclean-generic clean-am distclean: distclean-recursive -rm -f config.status maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \ maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-recursive -rm -f config.status .PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ install-data-recursive uninstall-data-recursive install-exec-recursive \ uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ all-recursive check-recursive installcheck-recursive info-recursive \ dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \ install-exec-am install-exec install-data-am install-data install-am \ install uninstall-am uninstall all-redirect all-am all installdirs-am \ installdirs mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: openuniverse-1.0beta3.1.orig/NEWS0000644000175000017500000000000107045414406016513 0ustar paulliupaulliu openuniverse-1.0beta3.1.orig/acconfig.h0000644000175000017500000000030107107357653017752 0ustar paulliupaulliu#undef JOYSTICK_IS_PRESENT #undef LINUX_JOYSTICK_IS_PRESENT #undef TEXTURE_DIR #undef FONT_DIR #undef MODEL_DIR #undef DATA_DIR #undef CONF_DIR #undef SHOTS_DIR #undef EVENTS_DIR #undef WIN32 openuniverse-1.0beta3.1.orig/aclocal.m40000644000175000017500000001105507116712171017666 0ustar paulliupaulliudnl aclocal.m4 generated automatically by aclocal 1.4 dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A dnl PARTICULAR PURPOSE. # Like AC_CONFIG_HEADER, but automatically create stamp file. AC_DEFUN(AM_CONFIG_HEADER, [AC_PREREQ([2.12]) AC_CONFIG_HEADER([$1]) dnl When config.status generates a header, we must update the stamp-h file. dnl This file resides in the same directory as the config header dnl that is generated. We must strip everything past the first ":", dnl and everything past the last "/". AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, <>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, <>; do case " <<$>>CONFIG_HEADERS " in *" <<$>>am_file "*<<)>> echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx ;; esac am_indx=`expr "<<$>>am_indx" + 1` done<<>>dnl>>) changequote([,]))]) # Do all the work for Automake. This macro actually does too much -- # some checks are only needed if your package does certain things. # But this isn't really a big deal. # serial 1 dnl Usage: dnl AM_INIT_AUTOMAKE(package,version, [no-define]) AC_DEFUN(AM_INIT_AUTOMAKE, [AC_REQUIRE([AC_PROG_INSTALL]) PACKAGE=[$1] AC_SUBST(PACKAGE) VERSION=[$2] AC_SUBST(VERSION) dnl test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi ifelse([$3],, AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) AC_REQUIRE([AM_SANITY_CHECK]) AC_REQUIRE([AC_ARG_PROGRAM]) dnl FIXME This is truly gross. missing_dir=`cd $ac_aux_dir && pwd` AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) AC_REQUIRE([AC_PROG_MAKE_SET])]) # # Check to make sure that the build environment is sane. # AC_DEFUN(AM_SANITY_CHECK, [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftestfile # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` if test "[$]*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftestfile` fi if test "[$]*" != "X $srcdir/configure conftestfile" \ && test "[$]*" != "X conftestfile $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "[$]2" = conftestfile ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi rm -f conftest* AC_MSG_RESULT(yes)]) dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) dnl The program must properly implement --version. AC_DEFUN(AM_MISSING_PROG, [AC_MSG_CHECKING(for working $2) # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if ($2 --version) < /dev/null > /dev/null 2>&1; then $1=$2 AC_MSG_RESULT(found) else $1="$3/missing $2" AC_MSG_RESULT(missing) fi AC_SUBST($1)]) dnl AM_PROG_LEX dnl Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT AC_DEFUN(AM_PROG_LEX, [missing_dir=ifelse([$1],,`cd $ac_aux_dir && pwd`,$1) AC_CHECK_PROGS(LEX, flex lex, "$missing_dir/missing flex") AC_PROG_LEX AC_DECL_YYTEXT]) openuniverse-1.0beta3.1.orig/config.h.in0000644000175000017500000000230707114552167020056 0ustar paulliupaulliu/* config.h.in. Generated automatically from configure.in by autoheader. */ /* Define if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define if the X Window System is missing or not being used. */ #undef X_DISPLAY_MISSING /* Define if lex declares yytext as a char * by default, not a char[]. */ #undef YYTEXT_POINTER #undef JOYSTICK_IS_PRESENT #undef LINUX_JOYSTICK_IS_PRESENT #undef TEXTURE_DIR #undef FONT_DIR #undef MODEL_DIR #undef DATA_DIR #undef CONF_DIR #undef SHOTS_DIR #undef EVENTS_DIR #undef WIN32 /* Define if you have the header file. */ #undef HAVE_GL_GL_H /* Define if you have the header file. */ #undef HAVE_GL_GLUT_H /* Define if you have the GL library (-lGL). */ #undef HAVE_LIBGL /* Define if you have the GLU library (-lGLU). */ #undef HAVE_LIBGLU /* Define if you have the MesaGL library (-lMesaGL). */ #undef HAVE_LIBMESAGL /* Define if you have the MesaGLU library (-lMesaGLU). */ #undef HAVE_LIBMESAGLU /* Define if you have the glut library (-lglut). */ #undef HAVE_LIBGLUT /* Define if you have the jpeg library (-ljpeg). */ #undef HAVE_LIBJPEG /* Name of package */ #undef PACKAGE /* Version number of package */ #undef VERSION openuniverse-1.0beta3.1.orig/configure0000755000175000017500000031500507116712172017740 0ustar paulliupaulliu#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated automatically using autoconf version 2.13 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # Defaults: ac_help= ac_default_prefix=/usr/local # Any additions from configure.in: ac_help="$ac_help --with-glui-libs=DIR Specify GLUI library location" ac_help="$ac_help --with-glui-inc=DIR Specify GLUI headers location" ac_help="$ac_help --with-gl-libs=DIR Specify OpenGL library location" ac_help="$ac_help --with-gl-inc=DIR Specify OpenGL header file location" ac_help="$ac_help --with-glut-libs=DIR Specify GLUT library location" ac_help="$ac_help --with-glut-inc=DIR Specify GLUT header file location" ac_help="$ac_help --with-x use the X Window System" # Initialize some variables set by options. # The variables have the same names as the options, with # dashes changed to underlines. build=NONE cache_file=./config.cache exec_prefix=NONE host=NONE no_create= nonopt=NONE no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= target=NONE verbose= x_includes=NONE x_libraries=NONE bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' # Initialize some other variables. subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. ac_max_here_lines=12 ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi case "$ac_option" in -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) ac_optarg= ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case "$ac_option" in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir="$ac_optarg" ;; -build | --build | --buil | --bui | --bu) ac_prev=build ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build="$ac_optarg" ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file="$ac_optarg" ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir="$ac_optarg" ;; -disable-* | --disable-*) ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } fi ac_feature=`echo $ac_feature| sed 's/-/_/g'` eval "enable_${ac_feature}=no" ;; -enable-* | --enable-*) ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } fi ac_feature=`echo $ac_feature| sed 's/-/_/g'` case "$ac_option" in *=*) ;; *) ac_optarg=yes ;; esac eval "enable_${ac_feature}='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix="$ac_optarg" ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he) # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat << EOF Usage: configure [options] [host] Options: [defaults in brackets after descriptions] Configuration: --cache-file=FILE cache test results in FILE --help print this message --no-create do not create output files --quiet, --silent do not print \`checking...' messages --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [same as prefix] --bindir=DIR user executables in DIR [EPREFIX/bin] --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] --libexecdir=DIR program executables in DIR [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data in DIR [PREFIX/share] --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data in DIR [PREFIX/com] --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] --libdir=DIR object code libraries in DIR [EPREFIX/lib] --includedir=DIR C header files in DIR [PREFIX/include] --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] --infodir=DIR info documentation in DIR [PREFIX/info] --mandir=DIR man documentation in DIR [PREFIX/man] --srcdir=DIR find the sources in DIR [configure dir or ..] --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names EOF cat << EOF Host type: --build=BUILD configure for building on BUILD [BUILD=HOST] --host=HOST configure for HOST [guessed] --target=TARGET configure for TARGET [TARGET=HOST] Features and packages: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR EOF if test -n "$ac_help"; then echo "--enable and --with options recognized:$ac_help" fi exit 0 ;; -host | --host | --hos | --ho) ac_prev=host ;; -host=* | --host=* | --hos=* | --ho=*) host="$ac_optarg" ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir="$ac_optarg" ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir="$ac_optarg" ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir="$ac_optarg" ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir="$ac_optarg" ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir="$ac_optarg" ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir="$ac_optarg" ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir="$ac_optarg" ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix="$ac_optarg" ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix="$ac_optarg" ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix="$ac_optarg" ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name="$ac_optarg" ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir="$ac_optarg" ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir="$ac_optarg" ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site="$ac_optarg" ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir="$ac_optarg" ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir="$ac_optarg" ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target="$ac_optarg" ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers) echo "configure generated by autoconf version 2.13" exit 0 ;; -with-* | --with-*) ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } fi ac_package=`echo $ac_package| sed 's/-/_/g'` case "$ac_option" in *=*) ;; *) ac_optarg=yes ;; esac eval "with_${ac_package}='$ac_optarg'" ;; -without-* | --without-*) ac_package=`echo $ac_option|sed -e 's/-*without-//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } fi ac_package=`echo $ac_package| sed 's/-/_/g'` eval "with_${ac_package}=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes="$ac_optarg" ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries="$ac_optarg" ;; -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } ;; *) if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then echo "configure: warning: $ac_option: invalid host type" 1>&2 fi if test "x$nonopt" != xNONE; then { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } fi nonopt="$ac_option" ;; esac done if test -n "$ac_prev"; then { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } fi trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 # File descriptor usage: # 0 standard input # 1 file creation # 2 errors and warnings # 3 some systems may open it to /dev/tty # 4 used on the Kubota Titan # 6 checking for... messages and results # 5 compiler messages saved in config.log if test "$silent" = yes; then exec 6>/dev/null else exec 6>&1 fi exec 5>./config.log echo "\ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. " 1>&5 # Strip out --no-create and --no-recursion so they do not pile up. # Also quote any args containing shell metacharacters. ac_configure_args= for ac_arg do case "$ac_arg" in -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c) ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) ac_configure_args="$ac_configure_args '$ac_arg'" ;; *) ac_configure_args="$ac_configure_args $ac_arg" ;; esac done # NLS nuisances. # Only set these to C if already set. These must not be set unconditionally # because not all systems understand e.g. LANG=C (notably SCO). # Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! # Non-C LC_CTYPE values break the ctype check. if test "${LANG+set}" = set; then LANG=C; export LANG; fi if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo > confdefs.h # A filename unique to this package, relative to the directory that # configure is in, which we can look for to find out if srcdir is correct. ac_unique_file=src/ou.cpp # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_prog=$0 ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } else { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } fi fi srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then echo "loading site script $ac_site_file" . "$ac_site_file" fi done if test -r "$cache_file"; then echo "loading cache $cache_file" . $cache_file else echo "creating cache $cache_file" > $cache_file fi ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross ac_exeext= ac_objext=o if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then ac_n= ac_c=' ' ac_t=' ' else ac_n=-n ac_c= ac_t= fi else ac_n= ac_c='\c' ac_t= fi ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break fi done if test -z "$ac_aux_dir"; then { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } fi ac_config_guess=$ac_aux_dir/config.guess ac_config_sub=$ac_aux_dir/config.sub ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # 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:573: 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 else IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" for ac_dir in $PATH; do # Account for people who put trailing slashes in PATH elements. case "$ac_dir/" in /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do if test -f $ac_dir/$ac_prog; then if test $ac_prog = install && grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : else ac_cv_path_install="$ac_dir/$ac_prog -c" break 2 fi fi done ;; esac done IFS="$ac_save_IFS" fi if test "${ac_cv_path_install+set}" = set; then INSTALL="$ac_cv_path_install" else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL="$ac_install_sh" fi fi echo "$ac_t""$INSTALL" 1>&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 echo "configure:626: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftestfile` fi if test "$*" != "X $srcdir/configure conftestfile" \ && test "$*" != "X conftestfile $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { echo "configure: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" 1>&2; exit 1; } fi test "$2" = conftestfile ) then # Ok. : else { echo "configure: error: newly created file is older than distributed files! Check your system clock" 1>&2; exit 1; } fi rm -f conftest* echo "$ac_t""yes" 1>&6 if test "$program_transform_name" = s,x,x,; then program_transform_name= else # Double any \ or $. echo might interpret backslashes. cat <<\EOF_SED > conftestsed s,\\,\\\\,g; s,\$,$$,g EOF_SED program_transform_name="`echo $program_transform_name|sed -f conftestsed`" rm -f conftestsed fi test "$program_prefix" != NONE && program_transform_name="s,^,${program_prefix},; $program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" # sed with no file args requires a program. test "$program_transform_name" = "" && program_transform_name="s,x,x," echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 echo "configure:683: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftestmake <<\EOF all: @echo 'ac_maketemp="${MAKE}"' EOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftestmake fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$ac_t""yes" 1>&6 SET_MAKE= else echo "$ac_t""no" 1>&6 SET_MAKE="MAKE=${MAKE-make}" fi PACKAGE=openuniverse VERSION=1.0beta3 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } fi cat >> confdefs.h <> confdefs.h <&6 echo "configure:729: checking for working aclocal" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (aclocal --version) < /dev/null > /dev/null 2>&1; then ACLOCAL=aclocal echo "$ac_t""found" 1>&6 else ACLOCAL="$missing_dir/missing aclocal" echo "$ac_t""missing" 1>&6 fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 echo "configure:742: checking for working autoconf" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (autoconf --version) < /dev/null > /dev/null 2>&1; then AUTOCONF=autoconf echo "$ac_t""found" 1>&6 else AUTOCONF="$missing_dir/missing autoconf" echo "$ac_t""missing" 1>&6 fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 echo "configure:755: checking for working automake" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (automake --version) < /dev/null > /dev/null 2>&1; then AUTOMAKE=automake echo "$ac_t""found" 1>&6 else AUTOMAKE="$missing_dir/missing automake" echo "$ac_t""missing" 1>&6 fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 echo "configure:768: checking for working autoheader" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (autoheader --version) < /dev/null > /dev/null 2>&1; then AUTOHEADER=autoheader echo "$ac_t""found" 1>&6 else AUTOHEADER="$missing_dir/missing autoheader" echo "$ac_t""missing" 1>&6 fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 echo "configure:781: checking for working makeinfo" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (makeinfo --version) < /dev/null > /dev/null 2>&1; then MAKEINFO=makeinfo echo "$ac_t""found" 1>&6 else MAKEINFO="$missing_dir/missing makeinfo" echo "$ac_t""missing" 1>&6 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:798: 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 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_CC="gcc" break fi done IFS="$ac_save_ifs" fi fi CC="$ac_cv_prog_CC" if test -n "$CC"; then echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi 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:828: 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 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_prog_rejected=no ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" break fi done IFS="$ac_save_ifs" if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# -gt 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift set dummy "$ac_dir/$ac_word" "$@" shift ac_cv_prog_CC="$@" fi fi fi fi CC="$ac_cv_prog_CC" if test -n "$CC"; then echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi if test -z "$CC"; then case "`uname -s`" in *win32* | *WIN32*) # 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:879: 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 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_CC="cl" break fi done IFS="$ac_save_ifs" fi fi CC="$ac_cv_prog_CC" if test -n "$CC"; then echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi ;; esac fi test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 echo "configure:911: 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. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF #line 922 "configure" #include "confdefs.h" main(){return(0);} EOF if { (eval echo configure:927: \"$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 ac_cv_prog_cc_cross=no else ac_cv_prog_cc_cross=yes fi else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_prog_cc_works=no fi rm -fr conftest* ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 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:953: 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:958: 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 cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no fi fi echo "$ac_t""$ac_cv_prog_gcc" 1>&6 if test $ac_cv_prog_gcc = yes; then GCC=yes else GCC= fi 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:986: 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 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then ac_cv_prog_cc_g=yes else ac_cv_prog_cc_g=no fi rm -f conftest* fi echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 if test "$ac_test_CFLAGS" = set; then CFLAGS="$ac_save_CFLAGS" elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl 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:1022: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_CXX="$ac_prog" break fi done IFS="$ac_save_ifs" fi fi CXX="$ac_cv_prog_CXX" if test -n "$CXX"; then echo "$ac_t""$CXX" 1>&6 else echo "$ac_t""no" 1>&6 fi test -n "$CXX" && break done test -n "$CXX" || CXX="gcc" echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 echo "configure:1054: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext << EOF #line 1065 "configure" #include "confdefs.h" int main(){return(0);} EOF if { (eval echo configure:1070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cxx_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then ac_cv_prog_cxx_cross=no else ac_cv_prog_cxx_cross=yes fi else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_prog_cxx_works=no fi rm -fr conftest* ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6 if test $ac_cv_prog_cxx_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 ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 echo "configure:1096: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 echo "configure:1101: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.C <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no fi fi echo "$ac_t""$ac_cv_prog_gxx" 1>&6 if test $ac_cv_prog_gxx = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS="${CXXFLAGS+set}" ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 echo "configure:1129: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else echo 'void f(){}' > conftest.cc if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then ac_cv_prog_cxx_g=yes else ac_cv_prog_cxx_g=no fi rm -f conftest* fi echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS="$ac_save_CXXFLAGS" elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 echo "configure:1161: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else # This must be in double quotes, not single quotes, because CPP may get # substituted into the Makefile and "${CC-cc}" will confuse make. CPP="${CC-cc} -E" # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1182: \"$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 : else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1199: \"$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 : else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1216: \"$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 : else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* CPP=/lib/cpp fi rm -f conftest* fi rm -f conftest* fi rm -f conftest* ac_cv_prog_CPP="$CPP" fi CPP="$ac_cv_prog_CPP" else ac_cv_prog_CPP="$CPP" fi echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 echo "configure:1241: checking how to run the C++ preprocessor" >&5 if test -z "$CXXCPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1259: \"$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 : else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* CXXCPP=/lib/cpp fi rm -f conftest* ac_cv_prog_CXXCPP="$CXXCPP" ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross fi fi CXXCPP="$ac_cv_prog_CXXCPP" echo "$ac_t""$CXXCPP" 1>&6 # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # 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:1295: 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 else IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" for ac_dir in $PATH; do # Account for people who put trailing slashes in PATH elements. case "$ac_dir/" in /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do if test -f $ac_dir/$ac_prog; then if test $ac_prog = install && grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : else ac_cv_path_install="$ac_dir/$ac_prog -c" break 2 fi fi done ;; esac done IFS="$ac_save_IFS" fi if test "${ac_cv_path_install+set}" = set; then INSTALL="$ac_cv_path_install" else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL="$ac_install_sh" fi fi echo "$ac_t""$INSTALL" 1>&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' missing_dir=`cd $ac_aux_dir && pwd` for ac_prog in flex lex 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:1353: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$LEX"; then ac_cv_prog_LEX="$LEX" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_LEX="$ac_prog" break fi done IFS="$ac_save_ifs" fi fi LEX="$ac_cv_prog_LEX" if test -n "$LEX"; then echo "$ac_t""$LEX" 1>&6 else echo "$ac_t""no" 1>&6 fi test -n "$LEX" && break done test -n "$LEX" || LEX=""$missing_dir/missing flex"" # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:1386: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$LEX"; then ac_cv_prog_LEX="$LEX" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_LEX="flex" break fi done IFS="$ac_save_ifs" test -z "$ac_cv_prog_LEX" && ac_cv_prog_LEX="lex" fi fi LEX="$ac_cv_prog_LEX" if test -n "$LEX"; then echo "$ac_t""$LEX" 1>&6 else echo "$ac_t""no" 1>&6 fi if test -z "$LEXLIB" then case "$LEX" in flex*) ac_lib=fl ;; *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 echo "configure:1420: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-l$ac_lib $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 LEXLIB="-l$ac_lib" else echo "$ac_t""no" 1>&6 fi fi echo $ac_n "checking lex output file root""... $ac_c" 1>&6 echo "configure:1462: checking lex output file root" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else # The minimal lex program is just a single line: %%. But some broken lexes # (Solaris, I think it was) want two %% lines, so accommodate them. echo '%% %%' | $LEX if test -f lex.yy.c; then ac_cv_prog_lex_root=lex.yy elif test -f lexyy.c; then ac_cv_prog_lex_root=lexyy else { echo "configure: error: cannot find output from $LEX; giving up" 1>&2; exit 1; } fi fi echo "$ac_t""$ac_cv_prog_lex_root" 1>&6 LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6 echo "configure:1483: checking whether yytext is a pointer" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else # POSIX says lex can declare yytext either as a pointer or an array; the # default is implementation-dependent. Figure out which it is, since # not all implementations provide the %pointer and %array declarations. ac_cv_prog_lex_yytext_pointer=no echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c ac_save_LIBS="$LIBS" LIBS="$LIBS $LEXLIB" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_prog_lex_yytext_pointer=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* LIBS="$ac_save_LIBS" rm -f "${LEX_OUTPUT_ROOT}.c" fi echo "$ac_t""$ac_cv_prog_lex_yytext_pointer" 1>&6 if test $ac_cv_prog_lex_yytext_pointer = yes; then cat >> confdefs.h <<\EOF #define YYTEXT_POINTER 1 EOF fi for ac_prog in 'bison -y' byacc 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:1528: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_YACC="$ac_prog" break fi done IFS="$ac_save_ifs" fi fi YACC="$ac_cv_prog_YACC" if test -n "$YACC"; then echo "$ac_t""$YACC" 1>&6 else echo "$ac_t""no" 1>&6 fi test -n "$YACC" && break done test -n "$YACC" || YACC="yacc" # Check whether --with-glui-libs or --without-glui-libs was given. if test "${with_glui_libs+set}" = set; then withval="$with_glui_libs" GLUI_LIB="$withval" fi # Check whether --with-glui-inc or --without-glui-inc was given. if test "${with_glui_inc+set}" = set; then withval="$with_glui_inc" OU_EXTRA_CFLAGS="$OU_EXTRA_CFLAGS -I$withval -DHAVE_GLUI" fi # Check whether --with-gl-libs or --without-gl-libs was given. if test "${with_gl_libs+set}" = set; then withval="$with_gl_libs" OULIBS="$OULIBS -L$withval" fi # Check whether --with-gl-inc or --without-gl-inc was given. if test "${with_gl_inc+set}" = set; then withval="$with_gl_inc" OUFLAGS="$OUFLAGS -I$withval" fi # Check whether --with-glut-libs or --without-glut-libs was given. if test "${with_glut_libs+set}" = set; then withval="$with_glut_libs" OULIBS="$OULIBS -L$withval" fi # Check whether --with-glut-inc or --without-glut-inc was given. if test "${with_glut_inc+set}" = set; then withval="$with_glut_inc" OUFLAGS="$OUFLAGS -I$withval" fi CFLAGS="$CFLAGS $OUFLAGS $OU_EXTRA_CFLAGS" CXXFLAGS="$CXXFLAGS $OUFLAGS $OU_EXTRA_CFLAGS" LIBS="$LIBS $OULIBS $GLUI_LIB" # If we find X, set shell vars x_includes and x_libraries to the # paths, otherwise set no_x=yes. # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 echo "configure:1612: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then withval="$with_x" : fi # $have_x is `yes', `no', `disabled', or empty when we do not yet know. if test "x$with_x" = xno; then # The user explicitly disabled X. have_x=disabled else if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then # Both variables are already set. have_x=yes else if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else # One or both of the vars are not set, and there is no cached value. ac_x_includes=NO ac_x_libraries=NO rm -fr conftestdir if mkdir conftestdir; then cd conftestdir # Make sure to not put "make" in the Imakefile rules, since we grep it out. cat > Imakefile <<'EOF' acfindx: @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' EOF if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl; do if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && test -f $ac_im_libdir/libX11.$ac_extension; then ac_im_usrlibdir=$ac_im_libdir; break fi done # Screen out bogus values from the imake configuration. They are # bogus both because they are the default anyway, and because # using them would break gcc on systems where it needs fixed includes. case "$ac_im_incroot" in /usr/include) ;; *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;; esac case "$ac_im_usrlibdir" in /usr/lib | /lib) ;; *) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;; esac fi cd .. rm -fr conftestdir fi if test "$ac_x_includes" = NO; then # Guess where to find include files, by looking for this one X11 .h file. test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1679: \"$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* # We can compile using X headers with no special include directory. ac_x_includes= else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* # Look for the header file in a standard set of common directories. # Check X11 before X11Rn because it is often a symlink to the current release. for ac_dir in \ /usr/X11/include \ /usr/X11R6/include \ /usr/X11R5/include \ /usr/X11R4/include \ \ /usr/include/X11 \ /usr/include/X11R6 \ /usr/include/X11R5 \ /usr/include/X11R4 \ \ /usr/local/X11/include \ /usr/local/X11R6/include \ /usr/local/X11R5/include \ /usr/local/X11R4/include \ \ /usr/local/include/X11 \ /usr/local/include/X11R6 \ /usr/local/include/X11R5 \ /usr/local/include/X11R4 \ \ /usr/X386/include \ /usr/x386/include \ /usr/XFree86/include/X11 \ \ /usr/include \ /usr/local/include \ /usr/unsupported/include \ /usr/athena/include \ /usr/local/x11r5/include \ /usr/lpp/Xamples/include \ \ /usr/openwin/include \ /usr/openwin/share/include \ ; \ do if test -r "$ac_dir/$x_direct_test_include"; then ac_x_includes=$ac_dir break fi done fi rm -f conftest* fi # $ac_x_includes = NO if test "$ac_x_libraries" = NO; then # Check for the libraries. test -z "$x_direct_test_library" && x_direct_test_library=Xt test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc # See if we find them without any special options. # Don't add to $LIBS permanently. ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. ac_x_libraries= else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* LIBS="$ac_save_LIBS" # First see if replacing the include by lib works. # Check X11 before X11Rn because it is often a symlink to the current release. for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \ /usr/X11/lib \ /usr/X11R6/lib \ /usr/X11R5/lib \ /usr/X11R4/lib \ \ /usr/lib/X11 \ /usr/lib/X11R6 \ /usr/lib/X11R5 \ /usr/lib/X11R4 \ \ /usr/local/X11/lib \ /usr/local/X11R6/lib \ /usr/local/X11R5/lib \ /usr/local/X11R4/lib \ \ /usr/local/lib/X11 \ /usr/local/lib/X11R6 \ /usr/local/lib/X11R5 \ /usr/local/lib/X11R4 \ \ /usr/X386/lib \ /usr/x386/lib \ /usr/XFree86/lib/X11 \ \ /usr/lib \ /usr/local/lib \ /usr/unsupported/lib \ /usr/athena/lib \ /usr/local/x11r5/lib \ /usr/lpp/Xamples/lib \ /lib/usr/lib/X11 \ \ /usr/openwin/lib \ /usr/openwin/share/lib \ ; \ do for ac_extension in a so sl; do if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then ac_x_libraries=$ac_dir break 2 fi done done fi rm -f conftest* fi # $ac_x_libraries = NO if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then # Didn't find X anywhere. Cache the known absence of X. ac_cv_have_x="have_x=no" else # Record where we found X for the cache. ac_cv_have_x="have_x=yes \ ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" fi fi fi eval "$ac_cv_have_x" fi # $with_x != no if test "$have_x" != yes; then echo "$ac_t""$have_x" 1>&6 no_x=yes else # If each of the values was on the command line, it overrides each guess. test "x$x_includes" = xNONE && x_includes=$ac_x_includes test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries # Update the cache value to reflect the command line values. ac_cv_have_x="have_x=yes \ ac_x_includes=$x_includes ac_x_libraries=$x_libraries" echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6 fi if test "$no_x" = yes; then # Not all programs may use this symbol, but it does not hurt to define it. cat >> confdefs.h <<\EOF #define X_DISPLAY_MISSING 1 EOF X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= else if test -n "$x_includes"; then X_CFLAGS="$X_CFLAGS -I$x_includes" fi # It would also be nice to do this for all -L options, not just this one. if test -n "$x_libraries"; then X_LIBS="$X_LIBS -L$x_libraries" # For Solaris; some versions of Sun CC require a space after -R and # others require no space. Words are not sufficient . . . . case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 echo "configure:1861: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* ac_R_nospace=no fi rm -f conftest* if test $ac_R_nospace = yes; then echo "$ac_t""no" 1>&6 X_LIBS="$X_LIBS -R$x_libraries" else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* ac_R_space=no fi rm -f conftest* if test $ac_R_space = yes; then echo "$ac_t""yes" 1>&6 X_LIBS="$X_LIBS -R $x_libraries" else echo "$ac_t""neither works" 1>&6 fi fi LIBS="$ac_xsave_LIBS" esac fi # Check for system-dependent libraries X programs must link with. # Do this before checking for the system-independent R6 libraries # (-lICE), since we may need -lsocket or whatever for X linking. if test "$ISC" = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" else # Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X # libraries were built with DECnet support. And karl@cs.umb.edu says # the Alpha needs dnet_stub (dnet does not exist). echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 echo "configure:1926: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-ldnet $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" else echo "$ac_t""no" 1>&6 fi if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 echo "configure:1967: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-ldnet_stub $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" else echo "$ac_t""no" 1>&6 fi fi # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, # to get the SysV transport functions. # chad@anasazi.com says the Pyramis MIS-ES running DC/OSx (SVR4) # needs -lnsl. # The nsl library prevents programs from opening the X display # on Irix 5.2, according to dickey@clark.net. echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 echo "configure:2015: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char gethostbyname(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_gethostbyname) || defined (__stub___gethostbyname) choke me #else gethostbyname(); #endif ; return 0; } EOF if { (eval echo configure:2043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_func_gethostbyname=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then echo "$ac_t""yes" 1>&6 : else echo "$ac_t""no" 1>&6 fi if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 echo "configure:2064: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" else echo "$ac_t""no" 1>&6 fi fi # lieder@skyler.mavd.honeywell.com says without -lsocket, # socket/setsockopt and other routines are undefined under SCO ODT # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary # on later versions), says simon@lia.di.epfl.ch: it contains # gethostby* variants that don't use the nameserver (or something). # -lsocket must be given before -lnsl if both are needed. # We assume that if connect needs -lnsl, so does gethostbyname. echo $ac_n "checking for connect""... $ac_c" 1>&6 echo "configure:2113: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char connect(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_connect) || defined (__stub___connect) choke me #else connect(); #endif ; return 0; } EOF if { (eval echo configure:2141: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_func_connect=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_func_'connect`\" = yes"; then echo "$ac_t""yes" 1>&6 : else echo "$ac_t""no" 1>&6 fi if test $ac_cv_func_connect = no; then echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 echo "configure:2162: 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 else ac_save_LIBS="$LIBS" LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" else echo "$ac_t""no" 1>&6 fi fi # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. echo $ac_n "checking for remove""... $ac_c" 1>&6 echo "configure:2205: checking for remove" >&5 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char remove(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_remove) || defined (__stub___remove) choke me #else remove(); #endif ; return 0; } EOF if { (eval echo configure:2233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_remove=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_func_remove=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_func_'remove`\" = yes"; then echo "$ac_t""yes" 1>&6 : else echo "$ac_t""no" 1>&6 fi if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 echo "configure:2254: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lposix $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" else echo "$ac_t""no" 1>&6 fi fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 echo "configure:2297: checking for shmat" >&5 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shmat(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_shmat) || defined (__stub___shmat) choke me #else shmat(); #endif ; return 0; } EOF if { (eval echo configure:2325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_func_shmat=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_func_'shmat`\" = yes"; then echo "$ac_t""yes" 1>&6 : else echo "$ac_t""no" 1>&6 fi if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 echo "configure:2346: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lipc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" else echo "$ac_t""no" 1>&6 fi fi fi # Check for libraries that X11R6 Xt/Xaw programs need. ac_save_LDFLAGS="$LDFLAGS" test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to # check for ICE first), but we must link in the order -lSM -lICE or # we get undefined symbols. So assume we have SM if we have ICE. # These have to be linked with before -lX11, unlike the other # libraries we check for below, so use a different variable. # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 echo "configure:2398: checking for IceConnectionNumber in -lICE" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" else echo "$ac_t""no" 1>&6 fi LDFLAGS="$ac_save_LDFLAGS" fi LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lXmu -lXi -lXext -lX11 $X_EXTRA_LIBS" CFLAGS="$CFLAGS $X_CFLAGS" echo $ac_n "checking for glNewList in -lGL""... $ac_c" 1>&6 echo "configure:2446: checking for glNewList in -lGL" >&5 ac_lib_var=`echo GL'_'glNewList | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lGL $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_lib=HAVE_LIB`echo GL | sed -e 's/[^a-zA-Z0-9_]/_/g' \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` cat >> confdefs.h <&6 fi if test "x$ac_cv_lib_GL_glNewList" = "xno" ; then echo $ac_n "checking for glNewList in -lMesaGL""... $ac_c" 1>&6 echo "configure:2495: checking for glNewList in -lMesaGL" >&5 ac_lib_var=`echo MesaGL'_'glNewList | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lMesaGL $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_lib=HAVE_LIB`echo MesaGL | sed -e 's/[^a-zA-Z0-9_]/_/g' \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` cat >> confdefs.h <&6 { echo "configure: error: GL library was not found" 1>&2; exit 1; } fi fi echo $ac_n "checking for gluLookAt in -lGLU""... $ac_c" 1>&6 echo "configure:2545: checking for gluLookAt in -lGLU" >&5 ac_lib_var=`echo GLU'_'gluLookAt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lGLU $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_lib=HAVE_LIB`echo GLU | sed -e 's/[^a-zA-Z0-9_]/_/g' \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` cat >> confdefs.h <&6 fi if test "x$ac_cv_lib_GLU_gluLookAt" = "xno"; then echo $ac_n "checking for gluLookAt in -lMesaGLU""... $ac_c" 1>&6 echo "configure:2594: checking for gluLookAt in -lMesaGLU" >&5 ac_lib_var=`echo MesaGLU'_'gluLookAt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lMesaGLU $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_lib=HAVE_LIB`echo MesaGLU | sed -e 's/[^a-zA-Z0-9_]/_/g' \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` cat >> confdefs.h <&6 { echo "configure: error: GLU library was not found" 1>&2; exit 1; } fi fi echo $ac_n "checking for glutKeyboardUpFunc in -lglut""... $ac_c" 1>&6 echo "configure:2645: checking for glutKeyboardUpFunc in -lglut" >&5 ac_lib_var=`echo glut'_'glutKeyboardUpFunc | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-lglut $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_lib=HAVE_LIB`echo glut | sed -e 's/[^a-zA-Z0-9_]/_/g' \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` cat >> confdefs.h <&6 { echo "configure: error: GLUT library version >= 3.7 not found" 1>&2; exit 1; } fi echo $ac_n "checking for jpeg_start_decompress in -ljpeg""... $ac_c" 1>&6 echo "configure:2694: checking for jpeg_start_decompress in -ljpeg" >&5 ac_lib_var=`echo jpeg'_'jpeg_start_decompress | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" LIBS="-ljpeg $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_lib=HAVE_LIB`echo jpeg | sed -e 's/[^a-zA-Z0-9_]/_/g' \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` cat >> confdefs.h <&6 { echo "configure: error: jpeg library not found" 1>&2; exit 1; } fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 echo "configure:2746: 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 < #include #include #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (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* ac_cv_header_stdc=yes else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* ac_cv_header_stdc=no fi 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 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "memchr" >/dev/null 2>&1; then : else rm -rf conftest* ac_cv_header_stdc=no fi rm -f conftest* 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 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "free" >/dev/null 2>&1; then : else rm -rf conftest* ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') #define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF if { (eval echo configure:2826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -fr conftest* ac_cv_header_stdc=no fi rm -fr conftest* fi fi fi echo "$ac_t""$ac_cv_header_stdc" 1>&6 if test $ac_cv_header_stdc = yes; then cat >> confdefs.h <<\EOF #define STDC_HEADERS 1 EOF fi for ac_hdr in GL/gl.h GL/glut.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo "configure:2854: 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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:2864: \"$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* eval "ac_cv_header_$ac_safe=yes" else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >> confdefs.h <&6 fi done ac_safe=`echo "joystick.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for joystick.h""... $ac_c" 1>&6 echo "configure:2892: checking for joystick.h" >&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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:2902: \"$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* eval "ac_cv_header_$ac_safe=yes" else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF #define JOYSTICK_IS_PRESENT 1 EOF else echo "$ac_t""no" 1>&6 fi ac_safe=`echo "linux/joystick.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for linux/joystick.h""... $ac_c" 1>&6 echo "configure:2928: checking for linux/joystick.h" >&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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:2938: \"$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* eval "ac_cv_header_$ac_safe=yes" else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF #define LINUX_JOYSTICK_IS_PRESENT 1 EOF else echo "$ac_t""no" 1>&6 fi cat >> confdefs.h <<\EOF #define TEXTURE_DIR "$texture_dir" EOF cat >> confdefs.h <<\EOF #define FONT_DIR "$font_dir" EOF cat >> confdefs.h <<\EOF #define MODEL_DIR "$model_dir" EOF cat >> confdefs.h <<\EOF #define DATA_DIR "$data_dir" EOF cat >> confdefs.h <<\EOF #define CONF_DIR "$conf_dir" EOF cat >> confdefs.h <<\EOF #define SHOTS_DIR "$shots_dir" EOF cat >> confdefs.h <<\EOF #define EVENTS_DIR "$events_dir" EOF trap '' 1 2 15 cat > confcache <<\EOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs. It is not useful on other systems. # If it contains results you don't want to keep, you may remove or edit it. # # By default, configure uses ./config.cache as the cache file, # creating it if it does not exist already. You can give configure # the --cache-file=FILE option to use a different cache file; that is # what configure does when it calls configure scripts in # subdirectories, so they share the cache. # Giving --cache-file=/dev/null disables caching, for debugging configure. # config.status only pays attention to the cache file if you give it the # --recheck option to rerun configure. # EOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote substitution # turns \\\\ into \\, and sed turns \\ into \). sed -n \ -e "s/'/'\\\\''/g" \ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' ;; esac >> confcache if cmp -s $cache_file confcache; then : else if test -w $cache_file; then echo "updating cache $cache_file" cat confcache > $cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Any assignment to VPATH causes Sun make to only execute # the first set of double-colon rules, so remove it if not needed. # If there is a colon in the path, we need to keep it. if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' fi trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 DEFS=-DHAVE_CONFIG_H # Without the "./", some shells look in PATH for config.status. : ${CONFIG_STATUS=./config.status} echo creating $CONFIG_STATUS rm -f $CONFIG_STATUS cat > $CONFIG_STATUS </dev/null | sed 1q`: # # $0 $ac_configure_args # # Compiler output produced by configure, useful for debugging # configure, is in ./config.log if it exists. ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" for ac_option do case "\$ac_option" in -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; -version | --version | --versio | --versi | --vers | --ver | --ve | --v) echo "$CONFIG_STATUS generated by autoconf version 2.13" exit 0 ;; -help | --help | --hel | --he | --h) echo "\$ac_cs_usage"; exit 0 ;; *) echo "\$ac_cs_usage"; exit 1 ;; esac done ac_given_srcdir=$srcdir ac_given_INSTALL="$INSTALL" trap 'rm -fr `echo "Makefile \ src/Makefile \ data/Makefile \ 3dmodels/Makefile \ textures/Makefile \ fonts/Makefile \ conf/Makefile \ docs/Makefile \ config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 EOF cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF $ac_vpsub $extrasub s%@SHELL@%$SHELL%g s%@CFLAGS@%$CFLAGS%g s%@CPPFLAGS@%$CPPFLAGS%g s%@CXXFLAGS@%$CXXFLAGS%g s%@FFLAGS@%$FFLAGS%g s%@DEFS@%$DEFS%g s%@LDFLAGS@%$LDFLAGS%g s%@LIBS@%$LIBS%g s%@exec_prefix@%$exec_prefix%g s%@prefix@%$prefix%g s%@program_transform_name@%$program_transform_name%g s%@bindir@%$bindir%g s%@sbindir@%$sbindir%g s%@libexecdir@%$libexecdir%g s%@datadir@%$datadir%g s%@sysconfdir@%$sysconfdir%g s%@sharedstatedir@%$sharedstatedir%g s%@localstatedir@%$localstatedir%g s%@libdir@%$libdir%g s%@includedir@%$includedir%g s%@oldincludedir@%$oldincludedir%g s%@infodir@%$infodir%g s%@mandir@%$mandir%g s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g s%@INSTALL_DATA@%$INSTALL_DATA%g s%@PACKAGE@%$PACKAGE%g s%@VERSION@%$VERSION%g s%@ACLOCAL@%$ACLOCAL%g s%@AUTOCONF@%$AUTOCONF%g s%@AUTOMAKE@%$AUTOMAKE%g s%@AUTOHEADER@%$AUTOHEADER%g s%@MAKEINFO@%$MAKEINFO%g s%@SET_MAKE@%$SET_MAKE%g s%@CC@%$CC%g s%@CXX@%$CXX%g s%@CPP@%$CPP%g s%@CXXCPP@%$CXXCPP%g s%@LEX@%$LEX%g s%@LEXLIB@%$LEXLIB%g s%@LEX_OUTPUT_ROOT@%$LEX_OUTPUT_ROOT%g s%@YACC@%$YACC%g s%@X_CFLAGS@%$X_CFLAGS%g s%@X_PRE_LIBS@%$X_PRE_LIBS%g s%@X_LIBS@%$X_LIBS%g s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g CEOF EOF cat >> $CONFIG_STATUS <<\EOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. ac_file=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_cmds # Line after last line for current file. ac_more_lines=: ac_sed_cmds="" while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file else sed "${ac_end}q" conftest.subs > conftest.s$ac_file fi if test ! -s conftest.s$ac_file; then ac_more_lines=false rm -f conftest.s$ac_file else if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f conftest.s$ac_file" else ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" fi ac_file=`expr $ac_file + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_cmds` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case "$ac_file" in *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; *) ac_file_in="${ac_file}.in" ;; esac # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. # Remove last slash and all that follows it. Not all systems have dirname. ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then # The file is in a subdirectory. test ! -d "$ac_dir" && mkdir "$ac_dir" ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" # A "../" for each directory in $ac_dir_suffix. ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` else ac_dir_suffix= ac_dots= fi case "$ac_given_srcdir" in .) srcdir=. if test -z "$ac_dots"; then top_srcdir=. else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; *) # Relative path. srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" top_srcdir="$ac_dots$ac_given_srcdir" ;; esac case "$ac_given_INSTALL" in [/$]*) INSTALL="$ac_given_INSTALL" ;; *) INSTALL="$ac_dots$ac_given_INSTALL" ;; esac echo creating "$ac_file" rm -f "$ac_file" configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." case "$ac_file" in *Makefile*) ac_comsub="1i\\ # $configure_input" ;; *) ac_comsub= ;; esac ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` sed -e "$ac_comsub s%@configure_input@%$configure_input%g s%@srcdir@%$srcdir%g s%@top_srcdir@%$top_srcdir%g s%@INSTALL@%$INSTALL%g " $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file fi; done rm -f conftest.s* # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' ac_dC='\3' ac_dD='%g' # ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='\([ ]\)%\1#\2define\3' ac_uC=' ' ac_uD='\4%g' # ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_eB='$%\1#\2define\3' ac_eC=' ' ac_eD='%g' if test "${CONFIG_HEADERS+set}" != set; then EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF fi for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case "$ac_file" in *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; *) ac_file_in="${ac_file}.in" ;; esac echo creating $ac_file rm -f conftest.frag conftest.in conftest.out ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` cat $ac_file_inputs > conftest.in EOF # Transform confdefs.h into a sed script conftest.vals that substitutes # the proper values into config.h.in to produce config.h. And first: # Protect against being on the right side of a sed subst in config.status. # Protect against being in an unquoted here document in config.status. rm -f conftest.vals cat > conftest.hdr <<\EOF s/[\\&%]/\\&/g s%[\\$`]%\\&%g s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp s%ac_d%ac_u%gp s%ac_u%ac_e%gp EOF sed -n -f conftest.hdr confdefs.h > conftest.vals rm -f conftest.hdr # This sed command replaces #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >> conftest.vals <<\EOF s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% EOF # Break up conftest.vals because some shells have a limit on # the size of here documents, and old seds have small limits too. rm -f conftest.tail while : do ac_lines=`grep -c . conftest.vals` # grep -c gives empty output for an empty file on some AIX systems. if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi # Write a limited-size here document to conftest.frag. echo ' cat > conftest.frag <> $CONFIG_STATUS sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS echo 'CEOF sed -f conftest.frag conftest.in > conftest.out rm -f conftest.in mv conftest.out conftest.in ' >> $CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail rm -f conftest.vals mv conftest.tail conftest.vals done rm -f conftest.vals cat >> $CONFIG_STATUS <<\EOF rm -f conftest.frag conftest.h echo "/* $ac_file. Generated automatically by configure. */" > conftest.h cat conftest.in >> conftest.h rm -f conftest.in if cmp -s $ac_file conftest.h 2>/dev/null; then echo "$ac_file is unchanged" rm -f conftest.h else # Remove last slash and all that follows it. Not all systems have dirname. ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then # The file is in a subdirectory. test ! -d "$ac_dir" && mkdir "$ac_dir" fi rm -f $ac_file mv conftest.h $ac_file fi fi; done EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h exit 0 EOF chmod +x $CONFIG_STATUS rm -fr confdefs* $ac_clean_files test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 echo "$ac_t""" 1>&6 echo "$ac_t""" 1>&6 echo "$ac_t""********************************************************************" 1>&6 echo "$ac_t""*** Before compiling OpenUniverse take a look at the configuration " 1>&6 echo "$ac_t""*** file in the conf directory. Default configuration file is tuned " 1>&6 echo "$ac_t""*** for a GeForce card so if you own a less powerful card you'll " 1>&6 echo "$ac_t""*** have to edit that file and read carefully " 1>&6 echo "$ac_t""********************************************************************" 1>&6 echo "$ac_t""" 1>&6 echo "$ac_t""" 1>&6 openuniverse-1.0beta3.1.orig/configure.in0000644000175000017500000000627707116712160020347 0ustar paulliupaulliudnl dnl OpenUniverse autoconf file dnl dnl Based on plib and xracer autoconf scripts dnl AC_INIT(src/ou.cpp) AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE(openuniverse, 1.0beta3) dnl Checks for programs. AC_PROG_CC AC_PROG_CXX AC_PROG_CPP AC_PROG_CXXCPP AC_PROG_INSTALL AM_PROG_LEX AC_PROG_YACC AC_ARG_WITH(glui-libs,[ --with-glui-libs=DIR Specify GLUI library location],GLUI_LIB="$withval") AC_ARG_WITH(glui-inc, [ --with-glui-inc=DIR Specify GLUI headers location],OU_EXTRA_CFLAGS="$OU_EXTRA_CFLAGS -I$withval -DHAVE_GLUI") AC_ARG_WITH( gl-libs, [ --with-gl-libs=DIR Specify OpenGL library location], OULIBS="$OULIBS -L$withval") AC_ARG_WITH( gl-inc, [ --with-gl-inc=DIR Specify OpenGL header file location], OUFLAGS="$OUFLAGS -I$withval") AC_ARG_WITH( glut-libs, [ --with-glut-libs=DIR Specify GLUT library location], OULIBS="$OULIBS -L$withval") AC_ARG_WITH( glut-inc, [ --with-glut-inc=DIR Specify GLUT header file location], OUFLAGS="$OUFLAGS -I$withval") CFLAGS="$CFLAGS $OUFLAGS $OU_EXTRA_CFLAGS" CXXFLAGS="$CXXFLAGS $OUFLAGS $OU_EXTRA_CFLAGS" LIBS="$LIBS $OULIBS $GLUI_LIB" dnl Check for X11. AC_PATH_XTRA LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lXmu -lXi -lXext -lX11 $X_EXTRA_LIBS" CFLAGS="$CFLAGS $X_CFLAGS" dnl Check for OpenGL. Taken partly from the plib sources. AC_CHECK_LIB(GL,glNewList) if test "x$ac_cv_lib_GL_glNewList" = "xno" ; then dnl Check for MesaGL. AC_CHECK_LIB(MesaGL, glNewList,, AC_MSG_ERROR(GL library was not found)) fi AC_CHECK_LIB(GLU,gluLookAt) if test "x$ac_cv_lib_GLU_gluLookAt" = "xno"; then dnl Check for MesaGLU. AC_CHECK_LIB(MesaGLU, gluLookAt,, AC_MSG_ERROR(GLU library was not found)) fi dnl Check for GLUT. AC_CHECK_LIB(glut, glutKeyboardUpFunc,, AC_MSG_ERROR(GLUT library version >= 3.7 not found)) dnl Check for JPEG library. AC_CHECK_LIB(jpeg, jpeg_start_decompress,, AC_MSG_ERROR(jpeg library not found)) dnl Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS(GL/gl.h GL/glut.h) AC_CHECK_HEADER(joystick.h, AC_DEFINE(JOYSTICK_IS_PRESENT)) AC_CHECK_HEADER(linux/joystick.h, AC_DEFINE(LINUX_JOYSTICK_IS_PRESENT)) AC_DEFINE(TEXTURE_DIR,"$texture_dir") AC_DEFINE(FONT_DIR,"$font_dir") AC_DEFINE(MODEL_DIR,"$model_dir") AC_DEFINE(DATA_DIR,"$data_dir") AC_DEFINE(CONF_DIR,"$conf_dir") AC_DEFINE(SHOTS_DIR,"$shots_dir") AC_DEFINE(EVENTS_DIR,"$events_dir") AC_OUTPUT( Makefile \ src/Makefile \ data/Makefile \ 3dmodels/Makefile \ textures/Makefile \ fonts/Makefile \ conf/Makefile \ docs/Makefile \ ) AC_MSG_RESULT() AC_MSG_RESULT() AC_MSG_RESULT(********************************************************************) AC_MSG_RESULT(*** Before compiling OpenUniverse take a look at the configuration ) AC_MSG_RESULT(*** file in the conf directory. Default configuration file is tuned ) AC_MSG_RESULT(*** for a GeForce card so if you own a less powerful card you'll ) AC_MSG_RESULT(*** have to edit that file and read carefully ) AC_MSG_RESULT(********************************************************************) AC_MSG_RESULT() AC_MSG_RESULT() openuniverse-1.0beta3.1.orig/install-sh0000755000175000017500000001273606675475047020062 0ustar paulliupaulliu#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 openuniverse-1.0beta3.1.orig/missing0000755000175000017500000001421306675475047017445 0ustar paulliupaulliu#! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright (C) 1996, 1997 Free Software Foundation, Inc. # Franc,ois Pinard , 1996. # 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, 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., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing - GNU libit 0.0" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequirements for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 openuniverse-1.0beta3.1.orig/mkinstalldirs0000755000175000017500000000132206675475047020651 0ustar paulliupaulliu#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here openuniverse-1.0beta3.1.orig/src/0000755000175000017500000000000011000421146016575 5ustar paulliupaulliuopenuniverse-1.0beta3.1.orig/src/Makefile.am0000644000175000017500000000234707116535543020663 0ustar paulliupaulliuINCLUDES=-DTEXTURE_DIR=\""$(pkgdatadir)/textures"\" \ -DFONT_DIR=\""$(pkgdatadir)/fonts"\" \ -DMODEL_DIR=\""$(pkgdatadir)/3dmodels"\" \ -DDATA_DIR=\""$(pkgdatadir)/data"\" \ -DCONF_DIR=\""$(pkgdatadir)/conf"\" \ -DEVENTS_DIR=\""$(pkgdatadir)/events"\" \ -DSHOTS_DIR=\""$(pkgdatadir)/scrshots"\" bin_PROGRAMS = openuniverse openuniverse_SOURCES = \ astrolib.cpp gravity.cpp lex.cfg.cpp positions.cpp texture.cpp \ bmf.h gui.cpp loadbmf.cpp radar.cpp texture.h \ camera.cpp gui.h macros.h rings.cpp timer.cpp \ cfgparse.tab.cpp info.cpp messier.cpp scrnshot.cpp util.cpp \ cfgparse.tab.h init.cpp milkyway.cpp stars.cpp events.cpp \ cmdline.cpp joystick.cpp mouse.cpp sun.cpp mp3.cpp \ comet.cpp jpeg.cpp ou.cpp texfont.cpp flares.cpp \ font.cpp keyboard.cpp ou.h texfont.h glext.h EXTRA_openuniverse_SOURCES = cfgparse.y cfglex.l vsop87.dat Makefile.X11 lex.cfg.cpp: cfglex.l cfgparse.tab.cpp ${LEX} -i -Pcfg cfglex.l mv lex.cfg.c lex.cfg.cpp cfgparse.tab.cpp: cfgparse.y ${YACC} -d -v -p cfg cfgparse.y mv y.tab.c cfgparse.tab.cpp mv y.tab.h cfgparse.tab.h cfgparse.tab.h: cfgparse.tab.cpp openuniverse-1.0beta3.1.orig/src/Makefile.in0000644000175000017500000002251507116712176020672 0ustar paulliupaulliu# Makefile.in generated automatically by automake 1.4 from Makefile.am # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : CC = @CC@ CPP = @CPP@ CXX = @CXX@ CXXCPP = @CXXCPP@ LEX = @LEX@ MAKEINFO = @MAKEINFO@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ YACC = @YACC@ INCLUDES = -DTEXTURE_DIR=\""$(pkgdatadir)/textures"\" -DFONT_DIR=\""$(pkgdatadir)/fonts"\" -DMODEL_DIR=\""$(pkgdatadir)/3dmodels"\" -DDATA_DIR=\""$(pkgdatadir)/data"\" -DCONF_DIR=\""$(pkgdatadir)/conf"\" -DEVENTS_DIR=\""$(pkgdatadir)/events"\" -DSHOTS_DIR=\""$(pkgdatadir)/scrshots"\" bin_PROGRAMS = openuniverse openuniverse_SOURCES = astrolib.cpp gravity.cpp lex.cfg.cpp positions.cpp texture.cpp bmf.h gui.cpp loadbmf.cpp radar.cpp texture.h camera.cpp gui.h macros.h rings.cpp timer.cpp cfgparse.tab.cpp info.cpp messier.cpp scrnshot.cpp util.cpp cfgparse.tab.h init.cpp milkyway.cpp stars.cpp events.cpp cmdline.cpp joystick.cpp mouse.cpp sun.cpp mp3.cpp comet.cpp jpeg.cpp ou.cpp texfont.cpp flares.cpp font.cpp keyboard.cpp ou.h texfont.h glext.h EXTRA_openuniverse_SOURCES = cfgparse.y cfglex.l vsop87.dat Makefile.X11 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = PROGRAMS = $(bin_PROGRAMS) DEFS = @DEFS@ -I. -I$(srcdir) -I.. CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ X_CFLAGS = @X_CFLAGS@ X_LIBS = @X_LIBS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ openuniverse_OBJECTS = astrolib.o gravity.o lex.cfg.o positions.o \ texture.o gui.o loadbmf.o radar.o camera.o rings.o timer.o \ cfgparse.tab.o info.o messier.o scrnshot.o util.o init.o milkyway.o \ stars.o events.o cmdline.o joystick.o mouse.o sun.o mp3.o comet.o \ jpeg.o ou.o texfont.o flares.o font.o keyboard.o openuniverse_LDADD = $(LDADD) openuniverse_DEPENDENCIES = openuniverse_LDFLAGS = CXXFLAGS = @CXXFLAGS@ CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LEXLIB = @LEXLIB@ CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ DIST_COMMON = Makefile.am Makefile.in cfglex.c cfgparse.c DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = gtar GZIP_ENV = --best SOURCES = $(openuniverse_SOURCES) $(EXTRA_openuniverse_SOURCES) OBJECTS = $(openuniverse_OBJECTS) all: all-redirect .SUFFIXES: .SUFFIXES: .S .c .cpp .l .o .s .y $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status mostlyclean-binPROGRAMS: clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) distclean-binPROGRAMS: maintainer-clean-binPROGRAMS: install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ if test -f $$p; then \ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) list='$(bin_PROGRAMS)'; for p in $$list; do \ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ done .c.o: $(COMPILE) -c $< .s.o: $(COMPILE) -c $< .S.o: $(COMPILE) -c $< mostlyclean-compile: -rm -f *.o core *.core clean-compile: distclean-compile: -rm -f *.tab.c maintainer-clean-compile: openuniverse: $(openuniverse_OBJECTS) $(openuniverse_DEPENDENCIES) @rm -f openuniverse $(CXXLINK) $(openuniverse_LDFLAGS) $(openuniverse_OBJECTS) $(openuniverse_LDADD) $(LIBS) .cpp.o: $(CXXCOMPILE) -c $< .l.c: $(LEX) $(AM_LFLAGS) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@ .y.c: $(YACC) $(AM_YFLAGS) $(YFLAGS) $< && mv y.tab.c $*.c if test -f y.tab.h; then \ if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \ else :; fi cfgparse.h: cfgparse.c tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ here=`pwd` && cd $(srcdir) \ && mkid -f$$here/ID $$unique $(LISP) TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) mostlyclean-tags: clean-tags: distclean-tags: -rm -f TAGS ID maintainer-clean-tags: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = src distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done info-am: info: info-am dvi-am: dvi: dvi-am check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am install-exec-am: install-binPROGRAMS install-exec: install-exec-am install-data-am: install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am uninstall-am: uninstall-binPROGRAMS uninstall: uninstall-am all-am: Makefile $(PROGRAMS) all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: $(mkinstalldirs) $(DESTDIR)$(bindir) mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: -test -z "cfglexlcfgparsehcfgparsec" || rm -f cfglexl cfgparseh cfgparsec mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ mostlyclean-tags mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-binPROGRAMS clean-compile clean-tags clean-generic \ mostlyclean-am clean: clean-am distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \ distclean-generic clean-am distclean: distclean-am maintainer-clean-am: maintainer-clean-binPROGRAMS \ maintainer-clean-compile maintainer-clean-tags \ maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am .PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ mostlyclean-compile distclean-compile clean-compile \ maintainer-clean-compile tags mostlyclean-tags distclean-tags \ clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ check-am installcheck-am installcheck install-exec-am install-exec \ install-data-am install-data install-am install uninstall-am uninstall \ all-redirect all-am all installdirs mostlyclean-generic \ distclean-generic clean-generic maintainer-clean-generic clean \ mostlyclean distclean maintainer-clean lex.cfg.cpp: cfglex.l cfgparse.tab.cpp ${LEX} -i -Pcfg cfglex.l mv lex.cfg.c lex.cfg.cpp cfgparse.tab.cpp: cfgparse.y ${YACC} -d -v -p cfg cfgparse.y mv y.tab.c cfgparse.tab.cpp mv y.tab.h cfgparse.tab.h cfgparse.tab.h: cfgparse.tab.cpp # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: openuniverse-1.0beta3.1.orig/src/cfglex.c0000644000175000017500000014115507116535237020244 0ustar paulliupaulliu/* A lexical scanner generated by flex */ /* Scanner skeleton version: * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $ */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #include /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ #ifdef c_plusplus #ifndef __cplusplus #define __cplusplus #endif #endif #ifdef __cplusplus #include #include /* Use prototypes in function declarations. */ #define YY_USE_PROTOS /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ #if __STDC__ #define YY_USE_PROTOS #define YY_USE_CONST #endif /* __STDC__ */ #endif /* ! __cplusplus */ #ifdef __TURBOC__ #pragma warn -rch #pragma warn -use #include #include #define YY_USE_CONST #define YY_USE_PROTOS #endif #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif #ifdef YY_USE_PROTOS #define YY_PROTO(proto) proto #else #define YY_PROTO(proto) () #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #define YY_BUF_SIZE 16384 typedef struct yy_buffer_state *YY_BUFFER_STATE; extern int yyleng; extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 /* The funky do-while in the following #define is used to turn the definition * int a single C statement (which needs a semi-colon terminator). This * avoids problems with code like: * * if ( condition_holds ) * yyless( 5 ); * else * do_something_else(); * * Prior to using the do-while the compiler would get upset at the * "else" because it interpreted the "if" statement as being all * done when it reached the ';' after the yyless() call. */ /* Return all but the first 'n' matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ *yy_cp = yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yytext_ptr ) /* The following is because we cannot portably get our hands on size_t * (without autoconf's help, which isn't available because we want * flex-generated scanners to compile on their own). */ typedef unsigned int yy_size_t; struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; static YY_BUFFER_STATE yy_current_buffer = 0; /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". */ #define YY_CURRENT_BUFFER yy_current_buffer /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; static int yy_init = 1; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow yywrap()'s to do buffer switches * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void yyrestart YY_PROTO(( FILE *input_file )); void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); void yy_load_buffer_state YY_PROTO(( void )); YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str )); YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); static void *yy_flex_alloc YY_PROTO(( yy_size_t )); static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); static void yy_flex_free YY_PROTO(( void * )); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! yy_current_buffer ) \ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! yy_current_buffer ) \ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (yy_current_buffer->yy_at_bol) #define yywrap() 1 #define YY_SKIP_YYWRAP typedef unsigned char YY_CHAR; FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; typedef int yy_state_type; extern char *yytext; #define yytext_ptr yytext static yy_state_type yy_get_previous_state YY_PROTO(( void )); static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); static int yy_get_next_buffer YY_PROTO(( void )); static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yytext_ptr = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; #define YY_NUM_RULES 53 #define YY_END_OF_BUFFER 54 static yyconst short int yy_accept[283] = { 0, 43, 43, 54, 52, 46, 47, 52, 43, 43, 41, 51, 50, 52, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 48, 49, 46, 0, 44, 43, 45, 42, 41, 0, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 42, 42, 35, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, 43, 43, 42, 43, 43, 43, 43, 43, 43, 6, 9, 43, 34, 13, 43, 38, 43, 43, 43, 43, 43, 43, 43, 33, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 31, 43, 43, 43, 43, 43, 43, 43, 7, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 1, 43, 43, 43, 4, 43, 43, 43, 23, 43, 26, 43, 43, 43, 20, 19, 43, 3, 21, 43, 43, 43, 18, 43, 43, 43, 43, 43, 43, 43, 40, 43, 43, 28, 43, 43, 43, 5, 43, 43, 43, 43, 43, 30, 43, 43, 43, 43, 10, 43, 43, 43, 43, 8, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 39, 43, 43, 27, 29, 43, 15, 43, 43, 32, 43, 43, 43, 43, 43, 43, 43, 43, 43, 2, 17, 43, 37, 43, 43, 43, 43, 43, 43, 16, 22, 43, 43, 43, 12, 43, 24, 43, 43, 43, 11, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 36, 43, 43, 14, 0 } ; static yyconst int yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 5, 1, 1, 6, 7, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 6, 10, 1, 11, 1, 1, 1, 1, 1, 1, 12, 13, 1, 1, 1, 1, 1, 1, 14, 1, 1, 15, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 1, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 6, 38, 39, 40, 41, 42, 1, 43, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static yyconst int yy_meta[44] = { 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1 } ; static yyconst short int yy_base[285] = { 0, 0, 0, 305, 306, 302, 306, 300, 0, 297, 37, 306, 306, 286, 12, 269, 28, 32, 25, 269, 266, 266, 30, 262, 35, 33, 47, 40, 306, 306, 293, 291, 306, 0, 306, 53, 58, 281, 256, 262, 256, 260, 40, 252, 258, 258, 255, 262, 262, 259, 246, 42, 262, 242, 261, 260, 246, 239, 257, 248, 235, 59, 254, 240, 235, 229, 64, 72, 306, 246, 235, 245, 243, 232, 241, 240, 229, 223, 222, 226, 233, 224, 219, 226, 223, 226, 215, 219, 220, 224, 225, 225, 225, 209, 223, 224, 61, 0, 217, 203, 229, 203, 201, 214, 200, 199, 196, 0, 196, 209, 0, 0, 213, 0, 203, 187, 209, 189, 203, 202, 186, 0, 193, 195, 198, 199, 196, 181, 188, 56, 193, 176, 181, 179, 176, 192, 192, 0, 171, 172, 172, 183, 187, 170, 180, 0, 164, 174, 170, 167, 161, 174, 159, 169, 157, 64, 175, 154, 155, 163, 163, 0, 170, 165, 163, 0, 146, 148, 143, 164, 145, 143, 148, 151, 152, 0, 0, 150, 0, 0, 139, 147, 143, 0, 149, 149, 147, 57, 146, 134, 148, 0, 147, 141, 0, 146, 140, 124, 0, 134, 133, 116, 139, 139, 0, 120, 122, 120, 119, 0, 122, 109, 123, 119, 0, 125, 113, 121, 122, 124, 122, 119, 119, 117, 101, 111, 0, 107, 117, 0, 0, 109, 0, 111, 100, 95, 108, 107, 103, 90, 89, 106, 87, 94, 92, 0, 0, 100, 0, 79, 97, 96, 86, 80, 82, 0, 0, 79, 84, 90, 0, 76, 0, 74, 73, 86, 0, 71, 70, 88, 68, 80, 73, 80, 65, 75, 63, 54, 0, 58, 54, 0, 306, 99, 58 } ; static yyconst short int yy_def[285] = { 0, 282, 1, 282, 282, 282, 282, 283, 284, 284, 284, 282, 282, 282, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 282, 282, 282, 283, 282, 284, 282, 284, 284, 282, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 282, 282, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 282, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 0, 282, 282 } ; static yyconst short int yy_nxt[350] = { 0, 4, 5, 6, 7, 4, 8, 8, 9, 10, 11, 12, 4, 4, 13, 4, 8, 14, 15, 16, 17, 8, 18, 8, 8, 19, 20, 8, 21, 22, 8, 23, 24, 8, 25, 26, 27, 8, 8, 8, 8, 8, 28, 29, 35, 41, 36, 38, 39, 43, 45, 50, 53, 44, 55, 51, 46, 64, 56, 42, 33, 65, 66, 54, 57, 35, 67, 36, 73, 74, 83, 58, 155, 66, 84, 59, 94, 67, 60, 61, 128, 100, 180, 62, 63, 67, 206, 95, 281, 280, 279, 156, 207, 278, 277, 129, 276, 275, 274, 181, 31, 31, 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 100, 131, 130, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 99, 98, 97, 96, 93, 92, 91, 90, 89, 88, 87, 86, 85, 82, 81, 80, 79, 78, 77, 76, 75, 72, 71, 70, 69, 68, 32, 30, 52, 49, 48, 47, 40, 37, 34, 32, 30, 282, 3, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282 } ; static yyconst short int yy_chk[350] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 16, 10, 14, 14, 17, 18, 22, 24, 17, 25, 22, 18, 27, 25, 16, 284, 27, 35, 24, 26, 36, 35, 36, 42, 42, 51, 26, 129, 66, 51, 26, 61, 66, 26, 26, 96, 67, 155, 26, 26, 67, 187, 61, 280, 279, 277, 129, 187, 276, 275, 96, 274, 273, 272, 155, 283, 283, 271, 270, 269, 268, 267, 265, 264, 263, 261, 259, 258, 257, 254, 253, 252, 251, 250, 249, 247, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 231, 228, 227, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 213, 212, 211, 210, 208, 207, 206, 205, 203, 202, 201, 200, 199, 197, 196, 195, 193, 192, 190, 189, 188, 186, 185, 184, 182, 181, 180, 177, 174, 173, 172, 171, 170, 169, 168, 167, 166, 164, 163, 162, 160, 159, 158, 157, 156, 154, 153, 152, 151, 150, 149, 148, 147, 146, 144, 143, 142, 141, 140, 139, 138, 136, 135, 134, 133, 132, 131, 130, 128, 127, 126, 125, 124, 123, 122, 120, 119, 118, 117, 116, 115, 114, 112, 109, 108, 106, 105, 104, 103, 102, 101, 100, 99, 98, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 65, 64, 63, 62, 60, 59, 58, 57, 56, 55, 54, 53, 52, 50, 49, 48, 47, 46, 45, 44, 43, 41, 40, 39, 38, 37, 31, 30, 23, 21, 20, 19, 15, 13, 9, 7, 5, 3, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282 } ; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; #line 1 "cfglex.l" #define INITIAL 0 #line 2 "cfglex.l" #include #include "ou.h" int reserverd_word(char *s); extern int yylineno; #define YY_NO_UNPUT #line 541 "lex.yy.c" /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap YY_PROTO(( void )); #else extern int yywrap YY_PROTO(( void )); #endif #endif #ifndef YY_NO_UNPUT static void yyunput YY_PROTO(( int c, char *buf_ptr )); #endif #ifndef yytext_ptr static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int )); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen YY_PROTO(( yyconst char * )); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput YY_PROTO(( void )); #else static int input YY_PROTO(( void )); #endif #endif #if YY_STACK_USED static int yy_start_stack_ptr = 0; static int yy_start_stack_depth = 0; static int *yy_start_stack = 0; #ifndef YY_NO_PUSH_STATE static void yy_push_state YY_PROTO(( int new_state )); #endif #ifndef YY_NO_POP_STATE static void yy_pop_state YY_PROTO(( void )); #endif #ifndef YY_NO_TOP_STATE static int yy_top_state YY_PROTO(( void )); #endif #else #define YY_NO_PUSH_STATE 1 #define YY_NO_POP_STATE 1 #define YY_NO_TOP_STATE 1 #endif #ifdef YY_MALLOC_DECL YY_MALLOC_DECL #else #if __STDC__ #ifndef __cplusplus #include #endif #else /* Just try to get by without declaring the routines. This will fail * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) * or sizeof(void*) != sizeof(int). */ #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( yy_current_buffer->yy_is_interactive ) \ { \ int c = '*', n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \ && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL int yylex YY_PROTO(( void )) #endif /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; #line 15 "cfglex.l" #line 695 "lex.yy.c" if ( yy_init ) { yy_init = 0; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! yy_start ) yy_start = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! yy_current_buffer ) yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); yy_load_buffer_state(); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = yy_c_buf_p; /* Support of yytext. */ *yy_cp = yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yy_start; yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; if ( yy_accept[yy_current_state] ) { yy_last_accepting_state = yy_current_state; yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 283 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 306 ); yy_find_action: yy_act = yy_accept[yy_current_state]; if ( yy_act == 0 ) { /* have to back up */ yy_cp = yy_last_accepting_cpos; yy_current_state = yy_last_accepting_state; yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yy_hold_char; yy_cp = yy_last_accepting_cpos; yy_current_state = yy_last_accepting_state; goto yy_find_action; case 1: YY_RULE_SETUP #line 17 "cfglex.l" return BORDER; YY_BREAK case 2: YY_RULE_SETUP #line 18 "cfglex.l" return ATMOSPHERES; YY_BREAK case 3: YY_RULE_SETUP #line 19 "cfglex.l" return SPLASHBITMAP; YY_BREAK case 4: YY_RULE_SETUP #line 20 "cfglex.l" return FILTER; YY_BREAK case 5: YY_RULE_SETUP #line 21 "cfglex.l" return SHADING; YY_BREAK case 6: YY_RULE_SETUP #line 22 "cfglex.l" return SIM_DATE; YY_BREAK case 7: YY_RULE_SETUP #line 23 "cfglex.l" return PAUSE; YY_BREAK case 8: YY_RULE_SETUP #line 24 "cfglex.l" return REALTIME; YY_BREAK case 9: YY_RULE_SETUP #line 25 "cfglex.l" return DEMO; YY_BREAK case 10: YY_RULE_SETUP #line 26 "cfglex.l" return DEMOSTEP; YY_BREAK case 11: YY_RULE_SETUP #line 27 "cfglex.l" return PLANETS_LABELS; YY_BREAK case 12: YY_RULE_SETUP #line 28 "cfglex.l" return STARS_LABELS; YY_BREAK case 13: YY_RULE_SETUP #line 29 "cfglex.l" return INFO; YY_BREAK case 14: YY_RULE_SETUP #line 30 "cfglex.l" return STAR_BRIGHT; YY_BREAK case 15: YY_RULE_SETUP #line 31 "cfglex.l" return STAR_SIZE; YY_BREAK case 16: YY_RULE_SETUP #line 32 "cfglex.l" return CAM_SPEED; YY_BREAK case 17: YY_RULE_SETUP #line 33 "cfglex.l" return CAM_MODE; YY_BREAK case 18: YY_RULE_SETUP #line 34 "cfglex.l" return TARGET; YY_BREAK case 19: YY_RULE_SETUP #line 35 "cfglex.l" return SOURCE; YY_BREAK case 20: YY_RULE_SETUP #line 36 "cfglex.l" return SLICES; YY_BREAK case 21: YY_RULE_SETUP #line 37 "cfglex.l" return STACKS; YY_BREAK case 22: YY_RULE_SETUP #line 38 "cfglex.l" return JPEG_QUALITY; YY_BREAK case 23: YY_RULE_SETUP #line 39 "cfglex.l" return MIPMAP; YY_BREAK case 24: YY_RULE_SETUP #line 40 "cfglex.l" return MIPMAP_FILTER; YY_BREAK case 25: YY_RULE_SETUP #line 41 "cfglex.l" return SUN; YY_BREAK case 26: YY_RULE_SETUP #line 42 "cfglex.l" return PLANET; YY_BREAK case 27: YY_RULE_SETUP #line 43 "cfglex.l" return SATELLITE; YY_BREAK case 28: YY_RULE_SETUP #line 44 "cfglex.l" return ORBITER; YY_BREAK case 29: YY_RULE_SETUP #line 45 "cfglex.l" return SPACESHIP; YY_BREAK case 30: YY_RULE_SETUP #line 46 "cfglex.l" return ASTEROID; YY_BREAK case 31: YY_RULE_SETUP #line 47 "cfglex.l" return COMET; YY_BREAK case 32: YY_RULE_SETUP #line 48 "cfglex.l" return ATMOSPHERE; YY_BREAK case 33: YY_RULE_SETUP #line 49 "cfglex.l" return RING; YY_BREAK case 34: YY_RULE_SETUP #line 50 "cfglex.l" return FONT; YY_BREAK case 35: YY_RULE_SETUP #line 51 "cfglex.l" return LEVELOFDETAIL; YY_BREAK case 36: YY_RULE_SETUP #line 52 "cfglex.l" return TEXTURECOMPRESSION; YY_BREAK case 37: YY_RULE_SETUP #line 53 "cfglex.l" return COLORDEPTH; YY_BREAK case 38: YY_RULE_SETUP #line 54 "cfglex.l" return LOGO; YY_BREAK case 39: YY_RULE_SETUP #line 55 "cfglex.l" return MILKYWAY; YY_BREAK case 40: YY_RULE_SETUP #line 56 "cfglex.l" return MESSIER; YY_BREAK case 41: YY_RULE_SETUP #line 58 "cfglex.l" { cfglval.ival = atoi(yytext); return INTEGER_NUM; } YY_BREAK case 42: YY_RULE_SETUP #line 60 "cfglex.l" { cfglval.dval = atof(yytext); return DOUBLE_NUM; } YY_BREAK case 43: YY_RULE_SETUP #line 62 "cfglex.l" { strcpy(cfglval.name, yytext); return NAME; } YY_BREAK case 44: YY_RULE_SETUP #line 65 "cfglex.l" yylineno++; YY_BREAK case 45: YY_RULE_SETUP #line 66 "cfglex.l" { register int c; for (;;) { while ((c = yyinput()) != '*' && c != EOF); /* eat up text of comment */ if (c == '*') { while ((c = yyinput()) == '*'); if (c == '/') break; /* found the end */ } if (c == EOF) { error("EOF in comment"); break; } } } YY_BREAK case 46: YY_RULE_SETUP #line 85 "cfglex.l" YY_BREAK case 47: YY_RULE_SETUP #line 86 "cfglex.l" { yylineno++; } YY_BREAK case 48: YY_RULE_SETUP #line 87 "cfglex.l" return ('{'); YY_BREAK case 49: YY_RULE_SETUP #line 88 "cfglex.l" return ('}'); YY_BREAK case 50: YY_RULE_SETUP #line 89 "cfglex.l" return ('='); YY_BREAK case 51: YY_RULE_SETUP #line 90 "cfglex.l" return (';'); YY_BREAK case 52: YY_RULE_SETUP #line 91 "cfglex.l" YY_BREAK case 53: YY_RULE_SETUP #line 93 "cfglex.l" ECHO; YY_BREAK #line 1060 "lex.yy.c" case YY_STATE_EOF(INITIAL): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between yy_current_buffer and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yy_n_chars = yy_current_buffer->yy_n_chars; yy_current_buffer->yy_input_file = yyin; yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) { /* This was really a NUL. */ yy_state_type yy_next_state; yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = yytext_ptr + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yy_c_buf_p; goto yy_find_action; } } else switch ( yy_get_next_buffer() ) { case EOB_ACT_END_OF_FILE: { yy_did_buffer_switch_on_eof = 0; if ( yywrap() ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yy_c_buf_p = &yy_current_buffer->yy_ch_buf[yy_n_chars]; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer() { register char *dest = yy_current_buffer->yy_ch_buf; register char *source = yytext_ptr; register int number_to_move, i; int ret_val; if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( yy_current_buffer->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ yy_current_buffer->yy_n_chars = yy_n_chars = 0; else { int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ #ifdef YY_USES_REJECT YY_FATAL_ERROR( "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); #else /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = yy_current_buffer; int yy_c_buf_p_offset = (int) (yy_c_buf_p - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yy_flex_realloc( (void *) b->yy_ch_buf, b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; #endif } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), yy_n_chars, num_to_read ); yy_current_buffer->yy_n_chars = yy_n_chars; } if ( yy_n_chars == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; yy_current_buffer->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; yy_n_chars += number_to_move; yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state() { register yy_state_type yy_current_state; register char *yy_cp; yy_current_state = yy_start; for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { yy_last_accepting_state = yy_current_state; yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 283 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ #ifdef YY_USE_PROTOS static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) #else static yy_state_type yy_try_NUL_trans( yy_current_state ) yy_state_type yy_current_state; #endif { register int yy_is_jam; register char *yy_cp = yy_c_buf_p; register YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { yy_last_accepting_state = yy_current_state; yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 283 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 282); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_UNPUT #ifdef YY_USE_PROTOS static void yyunput( int c, register char *yy_bp ) #else static void yyunput( c, yy_bp ) int c; register char *yy_bp; #endif { register char *yy_cp = yy_c_buf_p; /* undo effects of setting up yytext */ *yy_cp = yy_hold_char; if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ register int number_to_move = yy_n_chars + 2; register char *dest = &yy_current_buffer->yy_ch_buf[ yy_current_buffer->yy_buf_size + 2]; register char *source = &yy_current_buffer->yy_ch_buf[number_to_move]; while ( source > yy_current_buffer->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); yy_current_buffer->yy_n_chars = yy_n_chars = yy_current_buffer->yy_buf_size; if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (char) c; yytext_ptr = yy_bp; yy_hold_char = *yy_cp; yy_c_buf_p = yy_cp; } #endif /* ifndef YY_NO_UNPUT */ #ifdef __cplusplus static int yyinput() #else static int input() #endif { int c; *yy_c_buf_p = yy_hold_char; if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) /* This was really a NUL. */ *yy_c_buf_p = '\0'; else { /* need more input */ int offset = yy_c_buf_p - yytext_ptr; ++yy_c_buf_p; switch ( yy_get_next_buffer() ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin ); /* fall through */ case EOB_ACT_END_OF_FILE: { if ( yywrap() ) return EOF; if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + offset; break; } } } c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */ *yy_c_buf_p = '\0'; /* preserve yytext */ yy_hold_char = *++yy_c_buf_p; return c; } #ifdef YY_USE_PROTOS void yyrestart( FILE *input_file ) #else void yyrestart( input_file ) FILE *input_file; #endif { if ( ! yy_current_buffer ) yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); yy_init_buffer( yy_current_buffer, input_file ); yy_load_buffer_state(); } #ifdef YY_USE_PROTOS void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) #else void yy_switch_to_buffer( new_buffer ) YY_BUFFER_STATE new_buffer; #endif { if ( yy_current_buffer == new_buffer ) return; if ( yy_current_buffer ) { /* Flush out information for old buffer. */ *yy_c_buf_p = yy_hold_char; yy_current_buffer->yy_buf_pos = yy_c_buf_p; yy_current_buffer->yy_n_chars = yy_n_chars; } yy_current_buffer = new_buffer; yy_load_buffer_state(); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ yy_did_buffer_switch_on_eof = 1; } #ifdef YY_USE_PROTOS void yy_load_buffer_state( void ) #else void yy_load_buffer_state() #endif { yy_n_chars = yy_current_buffer->yy_n_chars; yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; yyin = yy_current_buffer->yy_input_file; yy_hold_char = *yy_c_buf_p; } #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) #else YY_BUFFER_STATE yy_create_buffer( file, size ) FILE *file; int size; #endif { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } #ifdef YY_USE_PROTOS void yy_delete_buffer( YY_BUFFER_STATE b ) #else void yy_delete_buffer( b ) YY_BUFFER_STATE b; #endif { if ( ! b ) return; if ( b == yy_current_buffer ) yy_current_buffer = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yy_flex_free( (void *) b->yy_ch_buf ); yy_flex_free( (void *) b ); } #ifndef YY_ALWAYS_INTERACTIVE #ifndef YY_NEVER_INTERACTIVE extern int isatty YY_PROTO(( int )); #endif #endif #ifdef YY_USE_PROTOS void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) #else void yy_init_buffer( b, file ) YY_BUFFER_STATE b; FILE *file; #endif { yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; #if YY_ALWAYS_INTERACTIVE b->yy_is_interactive = 1; #else #if YY_NEVER_INTERACTIVE b->yy_is_interactive = 0; #else b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; #endif #endif } #ifdef YY_USE_PROTOS void yy_flush_buffer( YY_BUFFER_STATE b ) #else void yy_flush_buffer( b ) YY_BUFFER_STATE b; #endif { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == yy_current_buffer ) yy_load_buffer_state(); } #ifndef YY_NO_SCAN_BUFFER #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size ) #else YY_BUFFER_STATE yy_scan_buffer( base, size ) char *base; yy_size_t size; #endif { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer( b ); return b; } #endif #ifndef YY_NO_SCAN_STRING #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str ) #else YY_BUFFER_STATE yy_scan_string( yy_str ) yyconst char *yy_str; #endif { int len; for ( len = 0; yy_str[len]; ++len ) ; return yy_scan_bytes( yy_str, len ); } #endif #ifndef YY_NO_SCAN_BYTES #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len ) #else YY_BUFFER_STATE yy_scan_bytes( bytes, len ) yyconst char *bytes; int len; #endif { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = len + 2; buf = (char *) yy_flex_alloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < len; ++i ) buf[i] = bytes[i]; buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #endif #ifndef YY_NO_PUSH_STATE #ifdef YY_USE_PROTOS static void yy_push_state( int new_state ) #else static void yy_push_state( new_state ) int new_state; #endif { if ( yy_start_stack_ptr >= yy_start_stack_depth ) { yy_size_t new_size; yy_start_stack_depth += YY_START_STACK_INCR; new_size = yy_start_stack_depth * sizeof( int ); if ( ! yy_start_stack ) yy_start_stack = (int *) yy_flex_alloc( new_size ); else yy_start_stack = (int *) yy_flex_realloc( (void *) yy_start_stack, new_size ); if ( ! yy_start_stack ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); } yy_start_stack[yy_start_stack_ptr++] = YY_START; BEGIN(new_state); } #endif #ifndef YY_NO_POP_STATE static void yy_pop_state() { if ( --yy_start_stack_ptr < 0 ) YY_FATAL_ERROR( "start-condition stack underflow" ); BEGIN(yy_start_stack[yy_start_stack_ptr]); } #endif #ifndef YY_NO_TOP_STATE static int yy_top_state() { return yy_start_stack[yy_start_stack_ptr - 1]; } #endif #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif #ifdef YY_USE_PROTOS static void yy_fatal_error( yyconst char msg[] ) #else static void yy_fatal_error( msg ) char msg[]; #endif { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ yytext[yyleng] = yy_hold_char; \ yy_c_buf_p = yytext + n; \ yy_hold_char = *yy_c_buf_p; \ *yy_c_buf_p = '\0'; \ yyleng = n; \ } \ while ( 0 ) /* Internal utility routines. */ #ifndef yytext_ptr #ifdef YY_USE_PROTOS static void yy_flex_strncpy( char *s1, yyconst char *s2, int n ) #else static void yy_flex_strncpy( s1, s2, n ) char *s1; yyconst char *s2; int n; #endif { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN #ifdef YY_USE_PROTOS static int yy_flex_strlen( yyconst char *s ) #else static int yy_flex_strlen( s ) yyconst char *s; #endif { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif #ifdef YY_USE_PROTOS static void *yy_flex_alloc( yy_size_t size ) #else static void *yy_flex_alloc( size ) yy_size_t size; #endif { return (void *) malloc( size ); } #ifdef YY_USE_PROTOS static void *yy_flex_realloc( void *ptr, yy_size_t size ) #else static void *yy_flex_realloc( ptr, size ) void *ptr; yy_size_t size; #endif { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc( (char *) ptr, size ); } #ifdef YY_USE_PROTOS static void yy_flex_free( void *ptr ) #else static void yy_flex_free( ptr ) void *ptr; #endif { free( ptr ); } #if YY_MAIN int main() { yylex(); return 0; } #endif #line 93 "cfglex.l" openuniverse-1.0beta3.1.orig/src/cfgparse.c0000644000175000017500000014145007116535240020556 0ustar paulliupaulliu /* A Bison parser, made from cfgparse.y by GNU Bison version 1.25 */ #define YYBISON 1 /* Identify Bison output. */ #define INTEGER_NUM 258 #define DOUBLE_NUM 259 #define NAME 260 #define SUN 261 #define PLANET 262 #define ASTEROID 263 #define COMET 264 #define SATELLITE 265 #define ORBITER 266 #define SPACESHIP 267 #define RING 268 #define ATMOSPHERE 269 #define SPLASHBITMAP 270 #define BORDER 271 #define FILTER 272 #define SHADING 273 #define SIM_DATE 274 #define PAUSE 275 #define REALTIME 276 #define PLANETS_LABELS 277 #define STARS_LABELS 278 #define INFO 279 #define STAR_BRIGHT 280 #define STAR_SIZE 281 #define CAM_SPEED 282 #define ATMOSPHERES 283 #define CAM_MODE 284 #define TARGET 285 #define SOURCE 286 #define SLICES 287 #define STACKS 288 #define JPEG_QUALITY 289 #define MIPMAP 290 #define MIPMAP_FILTER 291 #define FONT 292 #define LEVELOFDETAIL 293 #define COLORDEPTH 294 #define LOGO 295 #define EOL 296 #define MILKYWAY 297 #define MESSIER 298 #define DEMO 299 #define DEMOSTEP 300 #define TEXTURECOMPRESSION 301 #line 1 "cfgparse.y" #include /* For math functions, cos(), sin(), etc. */ #include #include "ou.h" void yyerror(char *s); void SetUpRings(int, char *, float, float, float), SetUpAtmosphere(int, char *, float, int), SetUpBody(int, char *, int), SetUpAsteroid(int, char *), SetUpOrbiter(int, char *), SetUpSpaceShip(int, char *), SetUpComet(int, char *, float, float, int), InitSun(char *, double, int); int yylex(void); int yylineno = 0; int body_index = 1, last_planet = 0, last_satellite = 0, currblock = PLANET; double v[3]; extern planetdata planets[MAXBODIES]; extern FILE *cfgin; extern GLenum smodel; extern int border, filter, paused, demomode, demostep, plabels, slabels, realtime, cmode, currtarget, currsource, jpeg_quality, mipmap, info, mipmap_filter, fonttype, LOD, tex_compr, color_depth; extern GLenum cd_rgb, cd_lum, cd_rgba, cd_luma; extern float speed, star_mag; struct tm date; #line 32 "cfgparse.y" typedef union { int ival; double dval; char name[100]; } YYSTYPE; #include #ifndef __cplusplus #ifndef __STDC__ #define const #endif #endif #define YYFINAL 288 #define YYFLAG -32768 #define YYNTBASE 50 #define YYTRANSLATE(x) ((unsigned)(x) <= 301 ? yytranslate[x] : 72) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48, 2, 49, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 }; #if YYDEBUG != 0 static const short yyprhs[] = { 0, 0, 1, 4, 8, 12, 16, 20, 24, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93, 97, 101, 105, 109, 113, 117, 121, 125, 129, 131, 133, 135, 143, 145, 147, 149, 150, 181, 182, 184, 187, 188, 189, 219, 220, 222, 225, 226, 248, 249, 274, 275, 303, 304, 316, 317, 319, 322, 333, 334 }; static const short yyrhs[] = { -1, 50, 51, 0, 15, 47, 3, 0, 28, 47, 3, 0, 16, 47, 3, 0, 17, 47, 5, 0, 18, 47, 5, 0, 19, 47, 5, 5, 0, 20, 47, 3, 0, 21, 47, 3, 0, 44, 47, 3, 0, 45, 47, 3, 0, 22, 47, 3, 0, 23, 47, 3, 0, 24, 47, 3, 0, 25, 47, 4, 0, 26, 47, 4, 0, 27, 47, 4, 0, 29, 47, 3, 0, 30, 47, 3, 0, 31, 47, 3, 0, 32, 47, 3, 0, 33, 47, 3, 0, 34, 47, 3, 0, 35, 47, 3, 0, 36, 47, 5, 0, 37, 47, 3, 0, 38, 47, 3, 0, 46, 47, 3, 0, 39, 47, 3, 0, 40, 47, 3, 0, 42, 47, 3, 0, 43, 47, 3, 0, 52, 0, 53, 0, 70, 0, 6, 48, 5, 4, 3, 4, 49, 0, 54, 0, 63, 0, 65, 0, 0, 7, 5, 48, 5, 3, 3, 3, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 55, 67, 68, 56, 60, 49, 0, 0, 57, 0, 56, 57, 0, 0, 0, 10, 5, 48, 5, 3, 3, 3, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 58, 67, 60, 59, 49, 0, 0, 61, 0, 60, 61, 0, 0, 11, 5, 48, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 62, 49, 0, 0, 8, 5, 48, 5, 4, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 64, 56, 49, 0, 0, 9, 5, 48, 5, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 66, 49, 0, 0, 14, 48, 5, 3, 3, 3, 4, 4, 4, 3, 49, 0, 0, 69, 0, 68, 69, 0, 13, 48, 5, 3, 3, 3, 4, 4, 4, 49, 0, 0, 12, 5, 48, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 71, 49, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, 52, 52, 54, 60, 64, 68, 75, 82, 90, 94, 98, 102, 106, 110, 114, 118, 122, 126, 130, 134, 138, 142, 146, 150, 158, 162, 175, 178, 181, 184, 203, 207, 211, 215, 215, 215, 217, 223, 223, 223, 225, 255, 257, 258, 259, 261, 292, 294, 296, 297, 298, 300, 328, 331, 365, 367, 396, 399, 400, 414, 415, 415, 417, 434, 451 }; #endif #if YYDEBUG != 0 || defined (YYERROR_VERBOSE) static const char * const yytname[] = { "$","error","$undefined.","INTEGER_NUM", "DOUBLE_NUM","NAME","SUN","PLANET","ASTEROID","COMET","SATELLITE","ORBITER", "SPACESHIP","RING","ATMOSPHERE","SPLASHBITMAP","BORDER","FILTER","SHADING","SIM_DATE", "PAUSE","REALTIME","PLANETS_LABELS","STARS_LABELS","INFO","STAR_BRIGHT","STAR_SIZE", "CAM_SPEED","ATMOSPHERES","CAM_MODE","TARGET","SOURCE","SLICES","STACKS","JPEG_QUALITY", "MIPMAP","MIPMAP_FILTER","FONT","LEVELOFDETAIL","COLORDEPTH","LOGO","EOL","MILKYWAY", "MESSIER","DEMO","DEMOSTEP","TEXTURECOMPRESSION","'='","'{'","'}'","input","line", "sun","body","planet","@1","satellites","satellite","@2","@3","orbiters","orbiter", "@4","asteroid","@5","comet","@6","atmosphere","rings","ring","spaceship","@7", NULL }; #endif static const short yyr1[] = { 0, 50, 50, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 52, 53, 53, 53, 55, 54, 56, 56, 56, 58, 59, 57, 60, 60, 60, 62, 61, 64, 63, 66, 65, 67, 67, 68, 68, 68, 69, 71, 70 }; static const short yyr2[] = { 0, 0, 2, 3, 3, 3, 3, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 7, 1, 1, 1, 0, 30, 0, 1, 2, 0, 0, 29, 0, 1, 2, 0, 21, 0, 24, 0, 27, 0, 11, 0, 1, 2, 10, 0, 19 }; static const short yydefact[] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 34, 35, 38, 39, 40, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 6, 7, 0, 9, 10, 13, 14, 15, 16, 17, 18, 4, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 11, 12, 29, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 54, 0, 0, 43, 0, 0, 0, 0, 44, 0, 41, 0, 55, 45, 0, 58, 0, 56, 0, 60, 0, 0, 0, 0, 43, 61, 0, 57, 0, 0, 49, 62, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 42, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 52, 58, 0, 49, 53, 47, 0, 48, 0, 0 }; static const short yydefgoto[] = { 1, 38, 39, 40, 41, 205, 197, 198, 280, 285, 226, 227, 281, 42, 193, 43, 211, 209, 214, 215, 44, 181 }; static const short yypact[] = {-32768, 1, -44, 7, 45, 46, 47, -41, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,-32768,-32768,-32768, -32768,-32768,-32768,-32768, 49, 39, 40, 41, 42, 83, 88, 87, 89, 90, 93, 94, 95, 96, 97, 98, 99, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,-32768,-32768,-32768,-32768, 126, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768, 129, 130, 131, 133, 134,-32768, 135, 137, 138, 139, 140, 44, 142, 143, 144, 145,-32768, 146, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,-32768, 191, 192, 193, 52, 194, 195, 196,-32768, 197, 199, 200, 201,-32768, 202, 203, 127, 204, 206, 147, -7,-32768, 207,-32768, 65,-32768,-32768, 208, 112, 163,-32768, 76, 205, 209, 85, 198, 210, -8,-32768, 211,-32768, 212, 214, 4, -32768, 213, 217, 218, 219, 0,-32768, 221, 220, 223, 215,-32768,-32768, 224, 225, 227, 222, 228, 229, 230, 231, 232, 233, 234, 235, 237, 238, 239, 240, 241, 216, 226, 242, 243,-32768,-32768, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 255, 256, 257, 258, 260, 262, 263, 264, 265, 267, 268,-32768,-32768, 112, 236, 132,-32768, 132, 254,-32768, 271,-32768 }; static const short yypgoto[] = {-32768, -32768,-32768,-32768,-32768,-32768, -66, -149,-32768,-32768, -69, -226,-32768,-32768,-32768,-32768,-32768, -63,-32768, 59,-32768, -32768 }; #define YYLAST 303 static const short yytable[] = { 233, 287, 196, 196, 45, 213, 50, 2, 3, 4, 5, 225, 46, 6, 196, 225, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 202, 33, 34, 35, 36, 37, 203, 232, 47, 48, 49, 51, 81, 52, 53, 54, 233, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 203, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 86, 82, 83, 84, 85, 87, 88, 133, 89, 90, 91, 92, 93, 94, 95, 185, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 206, 108, 107, 109, 110, 111, 112, 113, 114, 115, 116, 212, 117, 208, 118, 119, 120, 121, 122, 123, 124, 217, 125, 126, 196, 127, 128, 129, 130, 131, 225, 132, 134, 135, 136, 220, 137, 138, 139, 201, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 210, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 182, 183, 184, 186, 187, 188, 189, 190, 218, 191, 192, 194, 195, 199, 200, 204, 207, 216, 284, 222, 223, 228, 282, 213, 224, 229, 230, 0, 235, 231, 234, 236, 241, 238, 239, 240, 0, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 219, 269, 270, 271, 272, 237, 273, 255, 274, 275, 276, 277, 278, 288, 279, 221, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 286 }; static const short yycheck[] = { 226, 0, 10, 10, 48, 13, 47, 6, 7, 8, 9, 11, 5, 12, 10, 11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 49, 42, 43, 44, 45, 46, 197, 49, 5, 5, 5, 47, 5, 47, 47, 47, 284, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 220, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 3, 48, 48, 48, 48, 3, 5, 49, 5, 5, 3, 3, 3, 3, 3, 49, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 48, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 48, 4, 14, 5, 5, 5, 5, 5, 3, 3, 49, 4, 3, 10, 4, 4, 3, 3, 3, 11, 4, 3, 3, 3, 214, 4, 4, 3, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 282, 3, 3, 3, 280, 13, 5, 3, 3, -1, 3, 5, 4, 3, 5, 4, 4, 3, -1, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, -1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 48, 4, 4, 4, 4, 48, 4, 49, 4, 4, 4, 4, 3, 0, 4, 214, -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 49 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/share/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. 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, 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. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ #ifndef alloca #ifdef __GNUC__ #define alloca __builtin_alloca #else /* not GNU C. */ #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) #include #else /* not sparc */ #if defined (MSDOS) && !defined (__TURBOC__) #include #else /* not MSDOS, or __TURBOC__ */ #if defined(_AIX) #include #pragma alloca #else /* not MSDOS, __TURBOC__, or _AIX */ #ifdef __hpux #ifdef __cplusplus extern "C" { void *alloca (unsigned int); }; #else /* not __cplusplus */ void *alloca (); #endif /* not __cplusplus */ #endif /* __hpux */ #endif /* not _AIX */ #endif /* not MSDOS, or __TURBOC__ */ #endif /* not sparc. */ #endif /* not GNU C. */ #endif /* alloca not defined. */ /* This is the parser code that is written into each bison parser when the %semantic_parser declaration is not specified in the grammar. It was written by Richard Stallman by simplifying the hairy parser used when %semantic_parser is specified. */ /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action as one case of the switch. */ #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 #define YYACCEPT return(0) #define YYABORT return(1) #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(token, value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { yychar = (token), yylval = (value); \ yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { yyerror ("syntax error: cannot back up"); YYERROR; } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 #ifndef YYPURE #define YYLEX yylex() #endif #ifdef YYPURE #ifdef YYLSP_NEEDED #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) #else #define YYLEX yylex(&yylval, &yylloc) #endif #else /* not YYLSP_NEEDED */ #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, YYLEX_PARAM) #else #define YYLEX yylex(&yylval) #endif #endif /* not YYLSP_NEEDED */ #endif /* If nonreentrant, generate the variables here */ #ifndef YYPURE int yychar; /* the lookahead symbol */ YYSTYPE yylval; /* the semantic value of the */ /* lookahead symbol */ #ifdef YYLSP_NEEDED YYLTYPE yylloc; /* location data for the lookahead */ /* symbol */ #endif int yynerrs; /* number of parse errors so far */ #endif /* not YYPURE */ #if YYDEBUG != 0 int yydebug; /* nonzero means print parse trace */ /* Since this is uninitialized, it does not stop multiple parsers from coexisting. */ #endif /* YYINITDEPTH indicates the initial size of the parser's stacks */ #ifndef YYINITDEPTH #define YYINITDEPTH 200 #endif /* YYMAXDEPTH is the maximum size the stacks can grow to (effective only if the built-in stack extension method is used). */ #if YYMAXDEPTH == 0 #undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH #define YYMAXDEPTH 10000 #endif #ifndef YYPARSE_RETURN_TYPE #define YYPARSE_RETURN_TYPE int #endif /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ YYPARSE_RETURN_TYPE yyparse (void); #endif #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ #ifndef __cplusplus /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (to, from, count) char *to; char *from; int count; { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #else /* __cplusplus */ /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (char *to, char *from, int count) { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #endif #endif #line 196 "/usr/share/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. It should actually point to an object. Grammar actions can access the variable by casting it to the proper pointer type. */ #ifdef YYPARSE_PARAM #ifdef __cplusplus #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM #define YYPARSE_PARAM_DECL #else /* not __cplusplus */ #define YYPARSE_PARAM_ARG YYPARSE_PARAM #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; #endif /* not __cplusplus */ #else /* not YYPARSE_PARAM */ #define YYPARSE_PARAM_ARG #define YYPARSE_PARAM_DECL #endif /* not YYPARSE_PARAM */ YYPARSE_RETURN_TYPE yyparse(YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL { register int yystate; register int yyn; register short *yyssp; register YYSTYPE *yyvsp; int yyerrstatus; /* number of tokens to shift before error messages enabled */ int yychar1 = 0; /* lookahead token as an internal (translated) token number */ short yyssa[YYINITDEPTH]; /* the state stack */ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ short *yyss = yyssa; /* refer to the stacks thru separate pointers */ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ #ifdef YYLSP_NEEDED YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) #else #define YYPOPSTACK (yyvsp--, yyssp--) #endif int yystacksize = YYINITDEPTH; #ifdef YYPURE int yychar; YYSTYPE yylval; int yynerrs; #ifdef YYLSP_NEEDED YYLTYPE yylloc; #endif #endif YYSTYPE yyval; /* the variable used to return */ /* semantic values from the action */ /* routines */ int yylen; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Starting parse\n"); #endif yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss - 1; yyvsp = yyvs; #ifdef YYLSP_NEEDED yylsp = yyls; #endif /* Push a new state, which is found in yystate . */ /* In all cases, when you get here, the value and location stacks have just been pushed. so pushing a state here evens the stacks. */ yynewstate: *++yyssp = yystate; if (yyssp >= yyss + yystacksize - 1) { /* Give user a chance to reallocate the stack */ /* Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; short *yyss1 = yyss; #ifdef YYLSP_NEEDED YYLTYPE *yyls1 = yyls; #endif /* Get the current used size of the three stacks, in elements. */ int size = yyssp - yyss + 1; #ifdef yyoverflow /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. */ #ifdef YYLSP_NEEDED /* This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yyls1, size * sizeof (*yylsp), &yystacksize); #else yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yystacksize); #endif yyss = yyss1; yyvs = yyvs1; #ifdef YYLSP_NEEDED yyls = yyls1; #endif #else /* no yyoverflow */ /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp)); yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp)); #ifdef YYLSP_NEEDED yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp)); #endif #endif /* no yyoverflow */ yyssp = yyss + size - 1; yyvsp = yyvs + size - 1; #ifdef YYLSP_NEEDED yylsp = yyls + size - 1; #endif #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Stack size increased to %d\n", yystacksize); #endif if (yyssp >= yyss + yystacksize - 1) YYABORT; } #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Entering state %d\n", yystate); #endif goto yybackup; yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ /* yyresume: */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYFLAG) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* yychar is either YYEMPTY or YYEOF or a valid token in external form. */ if (yychar == YYEMPTY) { #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Reading a token: "); #endif yychar = YYLEX; } /* Convert token to internal form (in yychar1) for indexing tables with */ if (yychar <= 0) /* This means end of input. */ { yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Now at end of input.\n"); #endif } else { yychar1 = YYTRANSLATE(yychar); #if YYDEBUG != 0 if (yydebug) { fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); /* Give the individual parser a way to print the precise meaning of a token, for further debugging info. */ #ifdef YYPRINT YYPRINT (stderr, yychar, yylval); #endif fprintf (stderr, ")\n"); } #endif } yyn += yychar1; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) goto yydefault; yyn = yytable[yyn]; /* yyn is what to do for this token type in this state. Negative => reduce, -yyn is rule number. Positive => shift, yyn is new state. New state is final state => don't bother to shift, just return success. 0, or most negative number => error. */ if (yyn < 0) { if (yyn == YYFLAG) goto yyerrlab; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; /* Shift the lookahead token. */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); #endif /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif /* count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; yystate = yyn; goto yynewstate; /* Do the default action for the current state. */ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; /* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: yylen = yyr2[yyn]; if (yylen > 0) yyval = yyvsp[1-yylen]; /* implement default value of the action */ #if YYDEBUG != 0 if (yydebug) { int i; fprintf (stderr, "Reducing via rule %d (line %d), ", yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) fprintf (stderr, "%s ", yytname[yyrhs[i]]); fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); } #endif switch (yyn) { case 3: #line 56 "cfgparse.y" { splashbitmap = yyvsp[0]. ival ; ; break;} case 4: #line 60 "cfgparse.y" { atmospheres = yyvsp[0]. ival ; ; break;} case 5: #line 64 "cfgparse.y" { border = yyvsp[0]. ival ; ; break;} case 6: #line 68 "cfgparse.y" { if (!strcmp(yyvsp[0]. name , "GL_NEAREST")) filter = GL_NEAREST; if (!strcmp(yyvsp[0]. name , "GL_LINEAR")) filter = GL_LINEAR; ; break;} case 7: #line 75 "cfgparse.y" { if (strcmp(yyvsp[0]. name , "GL_FLAT")) smodel = GL_SMOOTH; else smodel = GL_FLAT; ; break;} case 8: #line 82 "cfgparse.y" { sscanf(yyvsp[-1]. name , "%d-%d-%d", &date.tm_mon, &date.tm_mday, &date.tm_year); sscanf(yyvsp[0]. name , "%d:%d:%d", &date.tm_hour, &date.tm_min, &date.tm_sec); date.tm_mon--; date.tm_year-=1900; days = mktime(&date) / 3600.0 / 24.0 - 10092.0; ; break;} case 9: #line 90 "cfgparse.y" { paused = yyvsp[0]. ival ; ; break;} case 10: #line 94 "cfgparse.y" { realtime = yyvsp[0]. ival ; ; break;} case 11: #line 98 "cfgparse.y" { demomode = yyvsp[0]. ival ; ; break;} case 12: #line 102 "cfgparse.y" { demostep = yyvsp[0]. ival ; ; break;} case 13: #line 106 "cfgparse.y" { plabels = yyvsp[0]. ival ; ; break;} case 14: #line 110 "cfgparse.y" { slabels = yyvsp[0]. ival ; ; break;} case 15: #line 114 "cfgparse.y" { info = yyvsp[0]. ival ; ; break;} case 16: #line 118 "cfgparse.y" { star_mag = yyvsp[0]. dval ; ; break;} case 17: #line 122 "cfgparse.y" { star_size = yyvsp[0]. dval ; ; break;} case 18: #line 126 "cfgparse.y" { speed = yyvsp[0]. dval ; ; break;} case 19: #line 130 "cfgparse.y" { cmode = yyvsp[0]. ival ; ; break;} case 20: #line 134 "cfgparse.y" { currtarget = yyvsp[0]. ival ; ; break;} case 21: #line 138 "cfgparse.y" { currsource = yyvsp[0]. ival ; ; break;} case 22: #line 142 "cfgparse.y" { slices = yyvsp[0]. ival ; ; break;} case 23: #line 146 "cfgparse.y" { stacks = yyvsp[0]. ival ; ; break;} case 24: #line 150 "cfgparse.y" { jpeg_quality = yyvsp[0]. ival ; if ((jpeg_quality < 0) || (jpeg_quality > 100)) { error("Invalid jpeg_quality value\n"); shutdown(1); } ; break;} case 25: #line 158 "cfgparse.y" { mipmap = yyvsp[0]. ival ; ; break;} case 26: #line 162 "cfgparse.y" { if (!strcmp(yyvsp[0]. name , "GL_NEAREST_MIPMAP_NEAREST")) mipmap_filter = GL_NEAREST_MIPMAP_NEAREST; if (!strcmp(yyvsp[0]. name , "GL_LINEAR_MIPMAP_NEAREST")) mipmap_filter = GL_LINEAR_MIPMAP_NEAREST; if (!strcmp(yyvsp[0]. name , "GL_NEAREST_MIPMAP_LINEAR")) mipmap_filter = GL_NEAREST_MIPMAP_LINEAR; if (!strcmp(yyvsp[0]. name , "GL_NEAREST_MIPMAP_LINEAR")) mipmap_filter = GL_NEAREST_MIPMAP_LINEAR; if (!strcmp(yyvsp[0]. name , "GL_LINEAR_MIPMAP_LINEAR")) mipmap_filter = GL_LINEAR_MIPMAP_LINEAR; ; break;} case 27: #line 175 "cfgparse.y" { fonttype = yyvsp[0]. ival ; break;} case 28: #line 178 "cfgparse.y" { LOD = yyvsp[0]. ival ; break;} case 29: #line 181 "cfgparse.y" { tex_compr *= yyvsp[0]. ival ; break;} case 30: #line 184 "cfgparse.y" { color_depth = yyvsp[0]. ival ; switch (color_depth) { default: case 16: cd_rgb = GL_RGB5; cd_lum = GL_LUMINANCE8; cd_rgba = GL_RGBA4; cd_luma = GL_LUMINANCE8_ALPHA8; break; case 32: cd_rgb = GL_RGB8; cd_lum = GL_LUMINANCE8; cd_rgba = GL_RGBA8; cd_luma = GL_LUMINANCE8_ALPHA8; break; } ; break;} case 31: #line 203 "cfgparse.y" { logo = yyvsp[0]. ival ; ; break;} case 32: #line 207 "cfgparse.y" { milkyway = yyvsp[0]. ival ; ; break;} case 33: #line 211 "cfgparse.y" { messier = yyvsp[0]. ival ; ; break;} case 37: #line 217 "cfgparse.y" { sprintf(planets[0].Name, "The Sun"); planets[0].Mass = yyvsp[-1]. dval ; LOG("Initializing Sun", InitSun(yyvsp[-4]. name , yyvsp[-3]. dval , yyvsp[-2]. ival )) ; break;} case 41: #line 228 "cfgparse.y" { strcpy(planets[body_index].Name, yyvsp[-22]. name ); INITVECTOR(planets[body_index].Color, yyvsp[-19]. ival / 255.0, yyvsp[-18]. ival / 255.0, yyvsp[-17]. ival / 255.0); planets[body_index].Radius = yyvsp[-16]. dval ; planets[body_index].xflat = yyvsp[-15]. dval ; planets[body_index].yflat = yyvsp[-14]. dval ; planets[body_index].zflat = yyvsp[-13]. dval ; planets[body_index].Degrees = yyvsp[-11]. dval ; planets[body_index].Rotation = yyvsp[-10]. dval ; planets[body_index].Inclination = yyvsp[-9]. dval * M_PI / 180.0; planets[body_index].AscendingNode = yyvsp[-8]. dval * M_PI / 180.0; planets[body_index].Perihelion = yyvsp[-7]. dval * M_PI / 180.0; planets[body_index].MeanDistance = DISTCORRECTION(yyvsp[-6]. dval ); planets[body_index].DailyMotion = yyvsp[-5]. dval * M_PI / 180.0; planets[body_index].OrbitalPeriod = yyvsp[-4]. dval ; planets[body_index].Eccentricity = yyvsp[-3]. dval ; planets[body_index].MeanLongitude = yyvsp[-2]. dval * M_PI / 180.0; planets[body_index].Mass = yyvsp[-1]. dval ; planets[body_index].CustomFunction = yyvsp[0]. ival ; planets[body_index].Sat = 0; planets[body_index].TrailEnabled = 0; planets[body_index].Type = PLANET; LOG(yyvsp[-22]. name , SetUpBody(body_index, yyvsp[-20]. name , yyvsp[-12]. ival )); last_planet = body_index; body_index++; ; break;} case 46: #line 264 "cfgparse.y" { currblock = SATELLITE; strcpy(planets[body_index].Name, yyvsp[-22]. name ); INITVECTOR(planets[body_index].Color, yyvsp[-19]. ival / 255.0, yyvsp[-18]. ival / 255.0, yyvsp[-17]. ival / 255.0); planets[body_index].Radius = yyvsp[-16]. dval ; planets[body_index].xflat = yyvsp[-15]. dval ; planets[body_index].yflat = yyvsp[-14]. dval ; planets[body_index].zflat = yyvsp[-13]. dval ; planets[body_index].Degrees = yyvsp[-11]. dval ; planets[body_index].Rotation = yyvsp[-10]. dval ; planets[body_index].Inclination = yyvsp[-9]. dval * M_PI / 180.0; planets[body_index].AscendingNode = yyvsp[-8]. dval * M_PI / 180.0; planets[body_index].Perihelion = yyvsp[-7]. dval * M_PI / 180.0; planets[body_index].MeanDistance = yyvsp[-6]. dval ; planets[body_index].DailyMotion = yyvsp[-5]. dval * M_PI / 180.0; planets[body_index].OrbitalPeriod = yyvsp[-4]. dval ; planets[body_index].Eccentricity = yyvsp[-3]. dval ; planets[body_index].MeanLongitude = yyvsp[-2]. dval * M_PI / 180.0; planets[body_index].Mass = yyvsp[-1]. dval ; planets[body_index].Type = SATELLITE; planets[body_index].Sat = last_planet; planets[body_index].CustomFunction = yyvsp[0]. ival ; LOG(yyvsp[-22]. name , SetUpBody(body_index, yyvsp[-20]. name , yyvsp[-12]. ival )); last_satellite = body_index; body_index++; ; break;} case 47: #line 292 "cfgparse.y" { currblock = PLANET; ; break;} case 52: #line 301 "cfgparse.y" { strcpy(planets[body_index].Name, yyvsp[-17]. name ); planets[body_index].Type = ORBITER; planets[body_index].Radius = yyvsp[-14]. dval ; INITVECTOR(planets[body_index].Color, 1.0, 1.0, 1.0); planets[body_index].Sat = (currblock == SATELLITE) ? last_satellite : last_planet; planets[body_index].up[0] = yyvsp[-13]. dval ; planets[body_index].up[1] = yyvsp[-12]. dval ; planets[body_index].up[2] = yyvsp[-11]. dval ; planets[body_index].dir[0] = yyvsp[-10]. dval ; planets[body_index].dir[1] = yyvsp[-9]. dval ; planets[body_index].dir[2] = yyvsp[-8]. dval ; planets[body_index].Rotation = 0.0; planets[body_index].Inclination = yyvsp[-7]. dval ; planets[body_index].AscendingNode = yyvsp[-6]. dval ; planets[body_index].Perihelion = yyvsp[-5]. dval ; planets[body_index].MeanDistance = yyvsp[-4]. dval ; planets[body_index].DailyMotion = yyvsp[-3]. dval ; planets[body_index].OrbitalPeriod = yyvsp[-2]. dval ; planets[body_index].Eccentricity = yyvsp[-1]. dval ; planets[body_index].MeanLongitude = yyvsp[0]. dval ; planets[body_index].CustomFunction = 0; LOG(yyvsp[-17]. name , SetUpOrbiter(body_index, yyvsp[-15]. name )); body_index++; ; break;} case 54: #line 334 "cfgparse.y" { strcpy(planets[body_index].Name, yyvsp[-19]. name ); planets[body_index].Radius = yyvsp[-16]. dval ; INITVECTOR(planets[body_index].Color, yyvsp[-15]. ival / 255.0, yyvsp[-14]. ival / 255.0, yyvsp[-13]. ival / 255.0); planets[body_index].xflat = yyvsp[-12]. dval ; planets[body_index].yflat = yyvsp[-11]. dval ; planets[body_index].zflat = yyvsp[-10]. dval ; planets[body_index].Rotation = yyvsp[-9]. dval ; planets[body_index].Inclination = yyvsp[-8]. dval * M_PI / 180.0; planets[body_index].AscendingNode = yyvsp[-7]. dval * M_PI / 180.0; planets[body_index].Perihelion = yyvsp[-6]. dval * M_PI / 180.0; planets[body_index].MeanDistance = DISTCORRECTION(yyvsp[-5]. dval ); planets[body_index].DailyMotion = yyvsp[-4]. dval * M_PI / 180.0; planets[body_index].OrbitalPeriod = yyvsp[-3]. dval ; planets[body_index].Eccentricity = yyvsp[-2]. dval ; planets[body_index].MeanLongitude = yyvsp[-1]. dval * M_PI / 180.0; planets[body_index].Sat = 0; planets[body_index].CustomFunction = yyvsp[0]. ival ; planets[body_index].Type = ASTEROID; planets[body_index].up[0] = 0.0; planets[body_index].up[1] = 1.0; planets[body_index].up[2] = 0.0; planets[body_index].dir[0] = 0.0; planets[body_index].dir[1] = 0.0; planets[body_index].dir[2] = -1.0; LOG(yyvsp[-19]. name , SetUpAsteroid(body_index, yyvsp[-17]. name )); last_planet = body_index; body_index++; ; break;} case 56: #line 370 "cfgparse.y" { strcpy(planets[body_index].Name, yyvsp[-23]. name ); INITVECTOR(planets[body_index].Color, yyvsp[-20]. ival / 255.0, yyvsp[-19]. ival / 255.0, yyvsp[-18]. ival / 255.0); planets[body_index].Radius = yyvsp[-17]. dval ; planets[body_index].xflat = yyvsp[-16]. dval ; planets[body_index].yflat = yyvsp[-15]. dval ; planets[body_index].zflat = yyvsp[-14]. dval ; planets[body_index].Degrees = yyvsp[-12]. dval ; planets[body_index].Rotation = yyvsp[-11]. dval ; planets[body_index].Inclination = yyvsp[-10]. dval * M_PI / 180.0; planets[body_index].AscendingNode = yyvsp[-9]. dval * M_PI / 180.0; planets[body_index].Perihelion = yyvsp[-8]. dval * M_PI / 180.0; planets[body_index].MeanDistance = DISTCORRECTION(yyvsp[-7]. dval ); planets[body_index].DailyMotion = yyvsp[-6]. dval * M_PI / 180.0; planets[body_index].OrbitalPeriod = yyvsp[-5]. dval ; planets[body_index].Eccentricity = yyvsp[-4]. dval ; planets[body_index].MeanLongitude = yyvsp[-3]. dval * M_PI / 180.0; planets[body_index].Sat = 0; planets[body_index].CustomFunction = yyvsp[0]. ival ; planets[body_index].Type = COMET; LOG(yyvsp[-23]. name , SetUpComet(body_index, yyvsp[-21]. name , yyvsp[-13]. dval , yyvsp[-2]. dval , yyvsp[-1]. ival )); last_planet = body_index; body_index++; ; break;} case 59: #line 401 "cfgparse.y" { INITVECTOR(planets[body_index].Color, yyvsp[-7]. ival / 255.0, yyvsp[-6]. ival / 255.0, yyvsp[-5]. ival / 255.0); planets[body_index].Radius = yyvsp[-4]. dval ; planets[body_index].Rotation = yyvsp[-3]. dval ; planets[body_index].Sat = last_planet; planets[body_index].Type = ATMOSPHERE; LOG("Atmosphere", SetUpAtmosphere(body_index, yyvsp[-8]. name , yyvsp[-2]. dval , yyvsp[-1]. ival )); body_index++; ; break;} case 63: #line 418 "cfgparse.y" { planets[body_index].Color[0] = yyvsp[-6]. ival / 255.0; planets[body_index].Color[1] = yyvsp[-5]. ival / 255.0; planets[body_index].Color[2] = yyvsp[-4]. ival / 255.0; planets[body_index].Sat = last_planet; planets[body_index].Type = RING; planets[body_index].InnerRadius = yyvsp[-3]. dval ; planets[body_index].Radius = yyvsp[-2]. dval ; planets[body_index].initialized = 0; LOG("Ring", SetUpRings(body_index, yyvsp[-7]. name , yyvsp[-3]. dval , yyvsp[-2]. dval , yyvsp[-1]. dval )); body_index++; ; break;} case 64: #line 436 "cfgparse.y" { strcpy(planets[body_index].Name, yyvsp[-15]. name ); INITVECTOR(planets[body_index].Color, 1.0, 1.0, 1.0); planets[body_index].Type = SPACESHIP; planets[body_index].Radius = yyvsp[-12]. dval ; planets[body_index].Sat = 0; INITVECTOR(planets[body_index].pos, yyvsp[-11]. dval * AU, yyvsp[-10]. dval * AU, yyvsp[-9]. dval * AU); INITVECTOR(planets[body_index].up, yyvsp[-8]. dval , yyvsp[-7]. dval , yyvsp[-6]. dval ); INITVECTOR(planets[body_index].dir, yyvsp[-5]. dval , yyvsp[-4]. dval , yyvsp[-3]. dval ); INITVECTOR(planets[body_index].vel, yyvsp[-2]. dval , yyvsp[-1]. dval , yyvsp[0]. dval ); LOG(yyvsp[-15]. name , SetUpSpaceShip(body_index, yyvsp[-13]. name )); body_index++; ; break;} } /* the action file gets copied in in place of this dollarsign */ #line 498 "/usr/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; #ifdef YYLSP_NEEDED yylsp -= yylen; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif *++yyvsp = yyval; #ifdef YYLSP_NEEDED yylsp++; if (yylen == 0) { yylsp->first_line = yylloc.first_line; yylsp->first_column = yylloc.first_column; yylsp->last_line = (yylsp-1)->last_line; yylsp->last_column = (yylsp-1)->last_column; yylsp->text = 0; } else { yylsp->last_line = (yylsp+yylen-1)->last_line; yylsp->last_column = (yylsp+yylen-1)->last_column; } #endif /* Now "shift" the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTBASE] + *yyssp; if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTBASE]; goto yynewstate; yyerrlab: /* here on detecting error */ if (! yyerrstatus) /* If not already recovering from an error, report this error. */ { ++yynerrs; #ifdef YYERROR_VERBOSE yyn = yypact[yystate]; if (yyn > YYFLAG && yyn < YYLAST) { int size = 0; char *msg; int x, count; count = 0; /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) size += strlen(yytname[x]) + 15, count++; msg = (char *) malloc(size + 15); if (msg != 0) { strcpy(msg, "parse error"); if (count < 5) { count = 0; for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) { strcat(msg, count == 0 ? ", expecting `" : " or `"); strcat(msg, yytname[x]); strcat(msg, "'"); count++; } } yyerror(msg); free(msg); } else yyerror ("parse error; also virtual memory exceeded"); } else #endif /* YYERROR_VERBOSE */ yyerror("parse error"); } goto yyerrlab1; yyerrlab1: /* here on error raised explicitly by an action */ if (yyerrstatus == 3) { /* if just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) YYABORT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); #endif yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this */ goto yyerrhandle; yyerrdefault: /* current state does not do anything special for the error token. */ #if 0 /* This is wrong; only states that explicitly want error tokens should shift them. */ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ if (yyn) goto yydefault; #endif yyerrpop: /* pop the current state because it cannot handle the error token */ if (yyssp == yyss) YYABORT; yyvsp--; yystate = *--yyssp; #ifdef YYLSP_NEEDED yylsp--; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "Error: state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif yyerrhandle: yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrdefault; yyn += YYTERROR; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) goto yyerrdefault; yyn = yytable[yyn]; if (yyn < 0) { if (yyn == YYFLAG) goto yyerrpop; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting error token, "); #endif *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif yystate = yyn; goto yynewstate; } #line 454 "cfgparse.y" void yyerror(char *s) { fprintf(stderr, "%s in line %d of configuration file\n", s, yylineno); shutdown(1); } /* Read configuration file */ void ReadConfigFile(void) { char s[200]; sprintf(s, "ou.conf"); cfgin = fopen(s, "rt"); if (cfgin == NULL) { sprintf(s, "%s/ou.conf", confpath); cfgin = fopen(s, "rt"); if (cfgin == NULL) { error("Couldn't find configuration file"); shutdown(1); } } yyparse(); fclose(cfgin); NUMBODIES = body_index; } openuniverse-1.0beta3.1.orig/src/astrolib.cpp0000644000175000017500000006144507107355646021162 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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. */ /* * Astronomical library * Written February 1999 by Larry Manley * * Used in openuniverse with permission, thanks Larry :-) * * Based on information in "Astronomical Algorithms", by Jean Meeus, 1991 * * * * Here you'll find the custom functions for the nine planets and the Moon. * They return longitude, latitude and distance from the Sun in AU (the * MoonPos and every custom satellite funcition must return the distance * from its host planet in planet radii) */ #include #include #ifndef M_PI #define M_PI 3.14159265358979323846 #endif #define DEG2RAD(x) ((x)*M_PI/180.0) #define RAD2DEG(x) ((x)*180.0/M_PI) #include "vsop87.dat" /* Hardcoded VSOP87 data */ /* Not used elsewhere yet ... but it will be */ double JulianDay(int Y, int M, int D) { double JD; int A, B; if (M < 3) { Y -= 1; M += 12; } A = (int) floor((double) Y / 100.0); B = 2 - A + (int) floor((double) A / 4.0); JD = floor(365.25 * ((double) Y + 4716.0)) + floor(30.6001 * ((double) M + 1)) + D + B - 1524.5; return JD; } /* Planetary positioning algorithms * Abridged VSOP87 theory * Longitude and latitude calculated in radians * Radius calculated in AU */ double ReadTerms(double T, double *data) { double sum = 0.0; int i, j; i = (int) data[0]; for (j = 0; j < i; j++) sum += (data[j * 3 + 1] * cos(data[j * 3 + 2] + (data[j * 3 + 3] * T))); return (sum / 1.0E8); } void MercuryPos(double JD, double *Long, double *Lat, double *Rad) { double t, L0, L1, L2, L3, L4, L5; double B0, B1, B2, B3, B4; double R0, R1, R2, R3; t = (JD - 2451545.0) / 365250.0; /* Calculate tau */ L0 = ReadTerms(t, mercuryL0); L1 = ReadTerms(t, mercuryL1); L2 = ReadTerms(t, mercuryL2); L3 = ReadTerms(t, mercuryL3); L4 = ReadTerms(t, mercuryL4); L5 = ReadTerms(t, mercuryL5); *Long = L0 + t * (L1 + t * (L2 + t * (L3 + t * (L4 + t * L5)))); B0 = ReadTerms(t, mercuryB0); B1 = ReadTerms(t, mercuryB1); B2 = ReadTerms(t, mercuryB2); B3 = ReadTerms(t, mercuryB3); B4 = ReadTerms(t, mercuryB4); *Lat = B0 + t * (B1 + t * (B2 + t * (B3 + t * B4))); R0 = ReadTerms(t, mercuryR0); R1 = ReadTerms(t, mercuryR1); R2 = ReadTerms(t, mercuryR2); R3 = ReadTerms(t, mercuryR3); *Rad = R0 + t * (R1 + t * (R2 + t * R3)); } void VenusPos(double JD, double *Long, double *Lat, double *Rad) { double t, L0, L1, L2, L3, L4, L5; double B0, B1, B2, B3, B4; double R0, R1, R2, R3, R4; t = (JD - 2451545.0) / 365250.0; /* Calculate tau */ L0 = ReadTerms(t, venusL0); L1 = ReadTerms(t, venusL1); L2 = ReadTerms(t, venusL2); L3 = ReadTerms(t, venusL3); L4 = ReadTerms(t, venusL4); L5 = ReadTerms(t, venusL5); *Long = L0 + t * (L1 + t * (L2 + t * (L3 + t * (L4 + t * L5)))); B0 = ReadTerms(t, venusB0); B1 = ReadTerms(t, venusB1); B2 = ReadTerms(t, venusB2); B3 = ReadTerms(t, venusB3); B4 = ReadTerms(t, venusB4); *Lat = B0 + t * (B1 + t * (B2 + t * (B3 + t * B4))); R0 = ReadTerms(t, venusR0); R1 = ReadTerms(t, venusR1); R2 = ReadTerms(t, venusR2); R3 = ReadTerms(t, venusR3); R4 = ReadTerms(t, venusR4); *Rad = R0 + t * (R1 + t * (R2 + t * (R3 + t * R4))); } void EarthPos(double JD, double *Long, double *Lat, double *Rad) { double t, L0, L1, L2, L3, L4, L5; double B0, B1; double R0, R1, R2, R3, R4; t = (JD - 2451545.0) / 365250.0; /* Calculate tau */ L0 = ReadTerms(t, earthL0); L1 = ReadTerms(t, earthL1); L2 = ReadTerms(t, earthL2); L3 = ReadTerms(t, earthL3); L4 = ReadTerms(t, earthL4); L5 = ReadTerms(t, earthL5); *Long = L0 + t * (L1 + t * (L2 + t * (L3 + t * (L4 + t * L5)))); B0 = ReadTerms(t, earthB0); B1 = ReadTerms(t, earthB1); *Lat = B0 + t * B1; R0 = ReadTerms(t, earthR0); R1 = ReadTerms(t, earthR1); R2 = ReadTerms(t, earthR2); R3 = ReadTerms(t, earthR3); R4 = ReadTerms(t, earthR4); *Rad = R0 + t * (R1 + t * (R2 + t * (R3 + t * R4))); } void MarsPos(double JD, double *Long, double *Lat, double *Rad) { double t, L0, L1, L2, L3, L4, L5; double B0, B1, B2, B3, B4; double R0, R1, R2, R3, R4; t = (JD - 2451545.0) / 365250.0; /* Calculate tau */ L0 = ReadTerms(t, marsL0); L1 = ReadTerms(t, marsL1); L2 = ReadTerms(t, marsL2); L3 = ReadTerms(t, marsL3); L4 = ReadTerms(t, marsL4); L5 = ReadTerms(t, marsL5); *Long = L0 + t * (L1 + t * (L2 + t * (L3 + t * (L4 + t * L5)))); B0 = ReadTerms(t, marsB0); B1 = ReadTerms(t, marsB1); B2 = ReadTerms(t, marsB2); B3 = ReadTerms(t, marsB3); B4 = ReadTerms(t, marsB4); *Lat = B0 + t * (B1 + t * (B2 + t * (B3 + t * B4))); R0 = ReadTerms(t, marsR0); R1 = ReadTerms(t, marsR1); R2 = ReadTerms(t, marsR2); R3 = ReadTerms(t, marsR3); R4 = ReadTerms(t, marsR4); *Rad = R0 + t * (R1 + t * (R2 + t * (R3 + t * R4))); } void JupiterPos(double JD, double *Long, double *Lat, double *Rad) { double t, L0, L1, L2, L3, L4, L5; double B0, B1, B2, B3, B4, B5; double R0, R1, R2, R3, R4, R5; t = (JD - 2451545.0) / 365250.0; /* Calculate tau */ L0 = ReadTerms(t, jupiterL0); L1 = ReadTerms(t, jupiterL1); L2 = ReadTerms(t, jupiterL2); L3 = ReadTerms(t, jupiterL3); L4 = ReadTerms(t, jupiterL4); L5 = ReadTerms(t, jupiterL5); *Long = L0 + t * (L1 + t * (L2 + t * (L3 + t * (L4 + t * L5)))); B0 = ReadTerms(t, jupiterB0); B1 = ReadTerms(t, jupiterB1); B2 = ReadTerms(t, jupiterB2); B3 = ReadTerms(t, jupiterB3); B4 = ReadTerms(t, jupiterB4); B5 = ReadTerms(t, jupiterB5); *Lat = B0 + t * (B1 + t * (B2 + t * (B3 + t * (B4 + t * B5)))); R0 = ReadTerms(t, jupiterR0); R1 = ReadTerms(t, jupiterR1); R2 = ReadTerms(t, jupiterR2); R3 = ReadTerms(t, jupiterR3); R4 = ReadTerms(t, jupiterR4); R5 = ReadTerms(t, jupiterR5); *Rad = R0 + t * (R1 + t * (R2 + t * (R3 + t * (R4 + t * R5)))); } void SaturnPos(double JD, double *Long, double *Lat, double *Rad) { double t, L0, L1, L2, L3, L4, L5; double B0, B1, B2, B3, B4, B5; double R0, R1, R2, R3, R4, R5; t = (JD - 2451545.0) / 365250.0; /* Calculate tau */ L0 = ReadTerms(t, saturnL0); L1 = ReadTerms(t, saturnL1); L2 = ReadTerms(t, saturnL2); L3 = ReadTerms(t, saturnL3); L4 = ReadTerms(t, saturnL4); L5 = ReadTerms(t, saturnL5); *Long = L0 + t * (L1 + t * (L2 + t * (L3 + t * (L4 + t * L5)))); B0 = ReadTerms(t, saturnB0); B1 = ReadTerms(t, saturnB1); B2 = ReadTerms(t, saturnB2); B3 = ReadTerms(t, saturnB3); B4 = ReadTerms(t, saturnB4); B5 = ReadTerms(t, saturnB5); *Lat = B0 + t * (B1 + t * (B2 + t * (B3 + t * (B4 + t * B5)))); R0 = ReadTerms(t, saturnR0); R1 = ReadTerms(t, saturnR1); R2 = ReadTerms(t, saturnR2); R3 = ReadTerms(t, saturnR3); R4 = ReadTerms(t, saturnR4); R5 = ReadTerms(t, saturnR5); *Rad = R0 + t * (R1 + t * (R2 + t * (R3 + t * (R4 + t * R5)))); } void UranusPos(double JD, double *Long, double *Lat, double *Rad) { double t, L0, L1, L2, L3, L4; double B0, B1, B2, B3, B4; double R0, R1, R2, R3, R4; t = (JD - 2451545.0) / 365250.0; /* Calculate tau */ L0 = ReadTerms(t, uranusL0); L1 = ReadTerms(t, uranusL1); L2 = ReadTerms(t, uranusL2); L3 = ReadTerms(t, uranusL3); L4 = ReadTerms(t, uranusL4); *Long = L0 + t * (L1 + t * (L2 + t * (L3 + t * L4))); B0 = ReadTerms(t, uranusB0); B1 = ReadTerms(t, uranusB1); B2 = ReadTerms(t, uranusB2); B3 = ReadTerms(t, uranusB3); B4 = ReadTerms(t, uranusB4); *Lat = B0 + t * (B1 + t * (B2 + t * (B3 + t * B4))); R0 = ReadTerms(t, uranusR0); R1 = ReadTerms(t, uranusR1); R2 = ReadTerms(t, uranusR2); R3 = ReadTerms(t, uranusR3); R4 = ReadTerms(t, uranusR4); *Rad = R0 + t * (R1 + t * (R2 + t * (R3 + t * R4))); } void NeptunePos(double JD, double *Long, double *Lat, double *Rad) { double t, L0, L1, L2, L3, L4; double B0, B1, B2, B3, B4; double R0, R1, R2, R3; t = (JD - 2451545.0) / 365250.0; /* Calculate tau */ L0 = ReadTerms(t, neptuneL0); L1 = ReadTerms(t, neptuneL1); L2 = ReadTerms(t, neptuneL2); L3 = ReadTerms(t, neptuneL3); L4 = ReadTerms(t, neptuneL4); *Long = L0 + t * (L1 + t * (L2 + t * (L3 + t * L4))); B0 = ReadTerms(t, neptuneB0); B1 = ReadTerms(t, neptuneB1); B2 = ReadTerms(t, neptuneB2); B3 = ReadTerms(t, neptuneB3); B4 = ReadTerms(t, neptuneB4); *Lat = B0 + t * (B1 + t * (B2 + t * (B3 + t * B4))); R0 = ReadTerms(t, neptuneR0); R1 = ReadTerms(t, neptuneR1); R2 = ReadTerms(t, neptuneR2); R3 = ReadTerms(t, neptuneR3); *Rad = R0 + t * (R1 + t * (R2 + t * R3)); } void PlutoPos(double JD, double *Long, double *Lat, double *Rad) { double j, s, p, a, T, sumL, sumB, sumR, sa, ca; double j2, j3, s2, p2, p3, p4, p5, p6; sumL = sumB = sumR = 0.0; T = (JD - 2451545.0) / 36525.0; j = 34.35 + (3034.9057 * T); j = DEG2RAD(j); j2 = 2.0 * j; j3 = 3.0 * j; s = 50.08 + (1222.1138 * T); s = DEG2RAD(s); s2 = 2.0 * s; p = 238.96 + (144.9600 * T); p = DEG2RAD(p); p2 = 2.0 * p; p3 = 3.0 * p; p4 = 4.0 * p; p5 = 5.0 * p; p6 = 6.0 * p; a = p; sa = sin(a); ca = cos(a); sumL += (-19798886 * sa) + (19848454 * ca); sumB += (-5453098 * sa) + (-14974876 * ca); sumR += (66867334 * sa) + (68955876 * ca); a = p2; sa = sin(a); ca = cos(a); sumL += (897499 * sa) + (-4955707 * ca); sumB += (3527363 * sa) + (1672673 * ca); sumR += (-11826086 * sa) + (-333765 * ca); a = p3; sa = sin(a); ca = cos(a); sumL += (610820 * sa) + (1210521 * ca); sumB += (-1050939 * sa) + (327763 * ca); sumR += (1593657 * sa) + (-1439953 * ca); a = p4; sa = sin(a); ca = cos(a); sumL += (-341639 * sa) + (-189719 * ca); sumB += (178691 * sa) + (-291925 * ca); sumR += (-18948 * sa) + (482443 * ca); a = p5; sa = sin(a); ca = cos(a); sumL += (129027 * sa) + (-34863 * ca); sumB += (18763 * sa) + (100448 * ca); sumR += (-66634 * sa) + (-85576 * ca); a = p6; sa = sin(a); ca = cos(a); sumL += (-38215 * sa) + (31061 * ca); sumB += (-30594 * sa) + (-25838 * ca); sumR += (30841 * sa) + (-5765 * ca); a = s - p; sa = sin(a); ca = cos(a); sumL += (20349 * sa) + (-9886 * ca); sumB += (4965 * sa) + (11263 * ca); sumR += (-6140 * sa) + (22254 * ca); a = s; sa = sin(a); ca = cos(a); sumL += (-4045 * sa) + (-4904 * ca); sumB += (310 * sa) + (-132 * ca); sumR += (4434 * sa) + (4443 * ca); a = s + p; sa = sin(a); ca = cos(a); sumL += (-5885 * sa) + (-3238 * ca); sumB += (2036 * sa) + (-947 * ca); sumR += (-1518 * sa) + (641 * ca); a = s + p2; sa = sin(a); ca = cos(a); sumL += (-3812 * sa) + (3011 * ca); sumB += (-2 * sa) + (-674 * ca); sumR += (-5 * sa) + (792 * ca); a = s + p3; sa = sin(a); ca = cos(a); sumL += (-601 * sa) + (3468 * ca); sumB += (-329 * sa) + (-563 * ca); sumR += (518 * sa) + (518 * ca); a = s2 - p2; sa = sin(a); ca = cos(a); sumL += (1237 * sa) + (463 * ca); sumB += (-64 * sa) + (39 * ca); sumR += (-13 * sa) + (-221 * ca); a = s2 - p; sa = sin(a); ca = cos(a); sumL += (1086 * sa) + (-911 * ca); sumB += (-94 * sa) + (210 * ca); sumR += (837 * sa) + (-494 * ca); a = s2; sa = sin(a); ca = cos(a); sumL += (595 * sa) + (-1229 * ca); sumB += (-8 * sa) + (-160 * ca); sumR += (-281 * sa) + (616 * ca); a = j - s; sa = sin(a); ca = cos(a); sumL += (2484 * sa) + (-485 * ca); sumB += (-177 * sa) + (259 * ca); sumR += (260 * sa) + (-395 * ca); a = j - s + p; sa = sin(a); ca = cos(a); sumL += (839 * sa) + (-1414 * ca); sumB += (17 * sa) + (234 * ca); sumR += (-191 * sa) + (-396 * ca); a = j - p3; sa = sin(a); ca = cos(a); sumL += (-964 * sa) + (1059 * ca); sumB += (582 * sa) + (-285 * ca); sumR += (-3218 * sa) + (370 * ca); a = j - p2; sa = sin(a); ca = cos(a); sumL += (-2303 * sa) + (-1038 * ca); sumB += (-298 * sa) + (692 * ca); sumR += (8019 * sa) + (-7869 * ca); a = j - p; sa = sin(a); ca = cos(a); sumL += (7049 * sa) + (747 * ca); sumB += (157 * sa) + (201 * ca); sumR += (105 * sa) + (45637 * ca); a = j; sa = sin(a); ca = cos(a); sumL += (1179 * sa) + (-358 * ca); sumB += (304 * sa) + (825 * ca); sumR += (8623 * sa) + (8444 * ca); a = j + p; sa = sin(a); ca = cos(a); sumL += (393 * sa) + (-63 * ca); sumB += (-124 * sa) + (-29 * ca); sumR += (-896 * sa) + (-801 * ca); a = j + p2; sa = sin(a); ca = cos(a); sumL += (111 * sa) + (-268 * ca); sumB += (15 * sa) + (8 * ca); sumR += (208 * sa) + (-122 * ca); a = j + p3; sa = sin(a); ca = cos(a); sumL += (-52 * sa) + (-154 * ca); sumB += (7 * sa) + (15 * ca); sumR += (-133 * sa) + (65 * ca); a = j + p4; sa = sin(a); ca = cos(a); sumL += (-78 * sa) + (-30 * ca); sumB += (2 * sa) + (2 * ca); sumR += (-16 * sa) + ca; a = j + s - p3; sa = sin(a); ca = cos(a); sumL += (-34 * sa) + (-26 * ca); sumB += (4 * sa) + (2 * ca); sumR += (-22 * sa) + (7 * ca); a = j + s - p2; sa = sin(a); ca = cos(a); sumL += (-43 * sa) + ca; sumB += 3 * sa; sumR += (-8 * sa) + (16 * ca); a = j + s - p; sa = sin(a); ca = cos(a); sumL += (-15 * sa) + (21 * ca); sumB += sa - ca; sumR += (2 * sa) + (9 * ca); a = j + s; sa = sin(a); ca = cos(a); sumL += (-1 * sa) + (15 * ca); sumB += -2 * ca; sumR += (12 * sa) + (5 * ca); a = j + s + p; sa = sin(a); ca = cos(a); sumL += (4 * sa) + (7 * ca); sumB += sa; sumR += sa - 3.0 * ca; a = j + s + p3; sa = sin(a); ca = cos(a); sumL += sa + (5.0 * ca); sumB += sa - ca; sumR += sa; a = j2 - p6; sa = sin(a); ca = cos(a); sumL += (8 * sa) + (3 * ca); sumB += (-2 * sa) + (-3 * ca); sumR += (9 * sa) + (5 * ca); a = j2 - p5; sa = sin(a); ca = cos(a); sumL += (-3.0 * sa) + (6 * ca); sumB += sa + (2 * ca); sumR += (2 * sa) - ca; a = j2 - p4; sa = sin(a); ca = cos(a); sumL += (6 * sa) + (-13 * ca); sumB += (-8 * sa) + (2 * ca); sumR += (14 * sa) + (10 * ca); a = j2 - p3; sa = sin(a); ca = cos(a); sumL += (10 * sa) + (22 * ca); sumB += (10 * sa) + (-7 * ca); sumR += (-65 * sa) + (12 * ca); a = j2 - p2; sa = sin(a); ca = cos(a); sumL += (-57 * sa) + (-32 * ca); sumB += 21 * ca; sumR += (126 * sa) + (-233 * ca); a = j2 - p; sa = sin(a); ca = cos(a); sumL += (157 * sa) + (-46 * ca); sumB += (8 * sa) + (5 * ca); sumR += (270 * sa) + (1068 * ca); a = j2; sa = sin(a); ca = cos(a); sumL += (12 * sa) + (-18 * ca); sumB += (13 * sa) + (16 * ca); sumR += (254 * sa) + (155 * ca); a = j2 + p; sa = sin(a); ca = cos(a); sumL += (-4 * sa) + (8 * ca); sumB += (-2 * sa) + (-3 * ca); sumR += (-26 * sa) + (-2 * ca); a = j2 + p2; sa = sin(a); ca = cos(a); sumL += -5 * sa; sumR += 7 * sa; a = j2 + p3; sa = sin(a); ca = cos(a); sumL += (3 * sa) + (4 * ca); sumB += ca; sumR += (-11 * sa) + (4 * ca); a = j3 - p2; sa = sin(a); ca = cos(a); sumL += (-1 * sa) + (-1 * ca); sumB += ca; sumR += (4 * sa) + (-14 * ca); a = j3 - p; sa = sin(a); ca = cos(a); sumL += (6 * sa) + (-3 * ca); sumR += (18 * sa) + (35 * ca); a = j3; sa = sin(a); ca = cos(a); sumL += (-1 * sa) + (-2 * ca); sumB += ca; sumR += (13 * sa) + (3 * ca); *Long = 238.956785 + (144.96 * T) + (sumL / 1E6); while (*Long > 360.0) *Long -= 360.0; while (*Long < 0.0) *Long += 360.0; *Lat = -3.98202 + (sumB / 1E6); while (*Lat > 360.0) *Lat -= 360.0; while (*Lat < 0.0) *Lat += 360.0; *Rad = 40.7247248 + (sumR / 1E7); *Long = DEG2RAD(*Long); *Lat = DEG2RAD(*Lat); } void MoonPos(double JD, double *Long, double *Lat, double *Rad) { double Lp, Lpr, D, Dr, M, Mr, Mp, Mpr, F, Fr, A1, A2, A3, E; double T, T2, T3, T4, sumL, sumB, sumR; sumL = sumB = sumR = 0.0; T = (JD - 2451545.0) / 36525.0; T2 = T * T; T3 = T * T2; T4 = T3 * T; /* Compute moon's mean longitude , in degrees */ Lp = 218.3164591 + (481267.88134236 * T) - (0.0013268 * T2) + (T3 / 538841.0) - (T4 / 65194000); while (Lp > 360.0) Lp -= 360.0; while (Lp < 0.0) Lp += 360.0; Lpr = DEG2RAD(Lp); /* Create radians version for trig functions below */ /* Mean elongation of the moon , in degrees */ D = 297.8502042 + (445267.1115168 * T) - (0.0016300 * T2) + (T3 / 545868.0) - (T4 / 113065000.0); while (D > 360.0) D -= 360.0; while (D < 0.0) D += 360.0; Dr = DEG2RAD(D); /* Sun's mean anomaly , in degrees */ M = 357.5291092 + (35999.0502909 * T) - (0.0001536 * T2) + (T3 / 24490000.0); while (M > 360.0) M -= 360.0; while (M < 0.0) M += 360.0; Mr = DEG2RAD(M); /* Moon's mean anomaly , in degrees */ Mp = 134.9634114 + (477198.8676313 * T) + (0.0089970 * T2) + (T3 / 69699.0) - (T4 / 14712000.0); while (Mp > 360.0) Mp -= 360.0; while (Mp < 0.0) Mp += 360.0; Mpr = DEG2RAD(Mp); /* Moon's argument of latitude */ F = 93.2720993 + (483202.0175273 * T) - (0.0034029 * T2) - (T3 / 3526000.0) + (T4 / 863310000.0); while (F > 360.0) F -= 360.0; while (F < 0.0) F += 360.0; Fr = DEG2RAD(F); A1 = 119.75 + (131.849 * T); while (A1 > 360.0) A1 -= 360.0; while (A1 < 0.0) A1 += 360.0; A2 = 53.09 + (479264.290 * T); while (A2 > 360.0) A2 -= 360.0; while (A2 < 0.0) A2 += 360.0; A3 = 313.45 + (481266.484 * T); while (A3 > 360.0) A3 -= 360.0; while (A3 < 0.0) A3 += 360.0; E = 1.0 - (0.002516 * T) - (0.0000074 * T2); A1 = DEG2RAD(A1); A2 = DEG2RAD(A2); A3 = DEG2RAD(A3); sumL += 6288774 * sin(Mpr); sumL += 1274027 * sin(2.0 * Dr - Mpr); sumL += 658314 * sin(2.0 * Dr); sumL += 213618 * sin(2.0 * Mpr); sumL += (-185116 * sin(Mr)) * E; sumL += -114332 * sin(2.0 * Fr); sumL += 58793 * sin(2.0 * Dr - 2.0 * Mpr); sumL += (57066 * sin(2.0 * Dr - Mr - Mpr)) * E; sumL += 53322 * sin(2.0 * Dr + Mpr); sumL += (45758 * sin(2.0 * Dr - Mr)) * E; sumL += (-40923 * sin(Mr - Mpr)) * E; sumL += -34720 * sin(Dr); sumL += (-30383 * sin(Mr + Mpr)) * E; sumL += 15327 * sin(2.0 * Dr - 2.0 * Fr); sumL += -12528 * sin(Mpr + 2.0 * Fr); sumL += 10980 * sin(Mpr - 2.0 * Fr); sumL += 10675 * sin(4.0 * Dr - Mpr); sumL += 10034 * sin(3.0 * Mpr); sumL += 8548 * sin(4.0 * Dr - 2.0 * Mpr); sumL += (-7888 * sin(2.0 * Dr + Mr - Mpr)) * E; sumL += (-6766 * sin(2.0 * Dr + Mr)) * E; sumL += -5163 * sin(Dr - Mpr); sumL += (4987 * sin(Dr + Mr)) * E; sumL += (-4036 * sin(2.0 * Dr - Mr + Mpr)) * E; sumL += 3994 * sin(2.0 * Dr + 2.0 * Mpr); sumL += 3861 * sin(4.0 * Dr); sumL += 3665 * sin(2.0 * Dr - 3.0 * Mpr); sumL += (-2689 * sin(Mr - 2.0 * Mpr)) * E; sumL += -2602 * sin(2.0 * Dr - Mpr + 2.0 * Fr); sumL += (2390 * sin(2.0 * Dr - Mr - 2.0 * Mpr)) * E; sumL += -2348 * sin(Dr + Mpr); sumL += (2236 * sin(2.0 * Dr - 2.0 * Mr)) * E * E; sumL += (-2120 * sin(Mr + 2.0 * Mpr)) * E; sumL += (-2069 * sin(2.0 * Mr)) * E * E; sumL += (2048 * sin(2.0 * Dr - 2.0 * Mr - Mpr)) * E * E; sumL += -1773 * sin(2.0 * Dr + Mpr - 2.0 * Fr); sumL += -1595 * sin(2.0 * Dr + 2.0 * Fr); sumL += (1215 * sin(4.0 * Dr - Mr - Mpr)) * E; sumL += -1110 * sin(2.0 * Mpr + 2.0 * Fr); sumL += -892 * sin(3.0 * Dr - Mpr); sumL += (-810 * sin(2.0 * Dr + Mr + Mpr)) * E; sumL += (759 * sin(4.0 * Dr - Mr - 2.0 * Mpr)) * E; sumL += (-713 * sin(2.0 * Mr - Mpr)) * E * E; sumL += (-700 * sin(2.0 * Dr + 2.0 * Mr - Mpr)) * E * E; sumL += (691 * sin(2.0 * Dr + Mr - 2.0 * Mpr)) * E; sumL += (596 * sin(2.0 * Dr - Mr - 2.0 * F)) * E; sumL += 549 * sin(4.0 * Dr + Mpr); sumL += 537 * sin(4.0 * Mpr); sumL += (520 * sin(4.0 * Dr - Mr)) * E; sumL += -487 * sin(Dr - 2.0 * Mpr); sumL += (-399 * sin(2.0 * Dr + Mr - 2.0 * Fr)) * E; sumL += -381 * sin(2.0 * Mpr - 2.0 * Fr); sumL += (351 * sin(Dr + Mr + Mpr)) * E; sumL += -340 * sin(3.0 * Dr - 2.0 * Mpr); sumL += 330 * sin(4.0 * Dr - 3.0 * Mpr); sumL += (327 * sin(2.0 * Dr - Mr + 2.0 * Mpr)) * E; sumL += (-323 * sin(2.0 * Mr + Mpr)) * E * E; sumL += (299 * sin(Dr + Mr - Mpr)) * E; sumL += 294 * sin(2.0 * Dr + 3.0 * Mpr); sumL += 3958 * sin(A1); sumL += 1962 * sin(Lpr - Fr); sumL += 318 * sin(A2); *Long = Lp + (sumL / 1E6); while (*Long > 360.0) *Long -= 360.0; while (*Long < 0.0) *Long += 360.0; sumB += 5128122 * sin(Fr); sumB += 280602 * sin(Mpr + Fr); sumB += 277693 * sin(Mpr - Fr); sumB += 173237 * sin(2.0 * Dr - Fr); sumB += 55413 * sin(2.0 * Dr - Mpr + Fr); sumB += 46271 * sin(2.0 * Dr - Mpr - Fr); sumB += 32573 * sin(2.0 * Dr + Fr); sumB += 17198 * sin(2.0 * Mpr + Fr); sumB += 9266 * sin(2.0 * Dr + Mpr - Fr); sumB += 8822 * sin(2.0 * Mpr - Fr); sumB += (8216 * sin(2.0 * Dr - Mr - Fr)) * E; sumB += 4324 * sin(2.0 * Dr - 2.0 * Mpr - Fr); sumB += 4200 * sin(2.0 * Dr + Mpr + Fr); sumB += (-3359 * sin(2.0 * Dr + Mr - Fr)) * E; sumB += (2463 * sin(2.0 * Dr - Mr - Mpr + Fr)) * E; sumB += (2211 * sin(2.0 * Dr - Mr + Fr)) * E; sumB += (2065 * sin(2.0 * Dr - Mr - Mpr - Fr)) * E; sumB += (-1870 * sin(Mr - Mpr - Fr)) * E; sumB += 1828 * sin(4.0 * Dr - Mpr - Fr); sumB += (-1794 * sin(Mr + Fr)) * E; sumB += -1749 * sin(3.0 * Fr); sumB += (-1565 * sin(Mr - Mpr - Fr)) * E; sumB += -1491 * sin(Dr - Fr); sumB += (-1475 * sin(Mr + Mpr + Fr)) * E; sumB += (-1410 * sin(Mr + Mpr - Fr)) * E; sumB += (-1344 * sin(Mr - Fr)) * E; sumB += -1335 * sin(Dr - Fr); sumB += 1107 * sin(3.0 * Mpr + Fr); sumB += 1021 * sin(4.0 * Dr - Fr); sumB += 833 * sin(4.0 * Dr - Mpr + Fr); sumB += 777 * sin(Mpr - 3.0 * Fr); sumB += 671 * sin(4.0 * Dr - 2.0 * Mpr + Fr); sumB += 607 * sin(2.0 * Dr - 3.0 * Fr); sumB += 596 * sin(2.0 * Dr + 2.0 * Mpr - Fr); sumB += (491 * sin(2.0 * Dr - Mr + Mpr - Fr)) * E; sumB += -451 * sin(2.0 * Dr - 2.0 * Mpr + Fr); sumB += 439 * sin(3.0 * Mpr - Fr); sumB += 422 * sin(2.0 * Dr + 2.0 * Mpr + Fr); sumB += 421 * sin(2.0 * Dr - 3.0 * Mpr - Fr); sumB += (-366 * sin(2.0 * Dr + Mr - Mpr + Fr)) * E; sumB += (-351 * sin(2.0 * Dr + Mr + Fr)) * E; sumB += 331 * sin(4.0 * Dr + Fr); sumB += (315 * sin(2.0 * Dr - Mr + Mpr + Fr)) * E; sumB += (302 * sin(2.0 * Dr - 2.0 * Mr - Fr)) * E * E; sumB += -283 * sin(Mpr + 3.0 * Fr); sumB += (-229 * sin(2.0 * Dr + Mr + Mpr - Fr)) * E; sumB += (223 * sin(Dr + Mr - Fr)) * E; sumB += (223 * sin(Dr + Mr + Fr)) * E; sumB += (-220 * sin(Mr - 2.0 * Mpr - Fr)) * E; sumB += (-220 * sin(2.0 * Dr + Mr - Mpr - Fr)) * E; sumB += -185 * sin(Dr + Mpr + Fr); sumB += (181 * sin(2.0 * Dr - Mr - 2.0 * Mpr - Fr)) * E; sumB += (-177 * sin(Mr + 2.0 * Mpr + Fr)) * E; sumB += 176 * sin(4.0 * Dr - 2.0 * Mpr - Fr); sumB += (166 * sin(4.0 * Dr - Mr - Mpr - Fr)) * E; sumB += -164 * sin(Dr + Mpr - Fr); sumB += 132 * sin(4.0 * Dr + Mpr - Fr); sumB += -119 * sin(Dr - Mpr - Fr); sumB += (115 * sin(4.0 * Dr - Mr - Fr)) * E; sumB += (107 * sin(2.0 * Dr - 2.0 * Mr + Fr)) * E; sumB += (-2235 * sin(Lpr)); sumB += 382 * sin(A3); sumB += 175 * sin(A1 - Fr); sumB += 175 * sin(A1 + Fr); sumB += 127 * sin(Lpr - Mpr); sumB += -115 * sin(Lpr + Mpr); *Lat = sumB / 1E6; while (*Lat > 360.0) *Lat -= 360.0; while (*Lat < -360.0) *Lat += 360.0; sumR += -20905355 * cos(Mpr); sumR += -3699111 * cos(2.0 * Dr - Mpr); sumR += -2955968 * cos(2.0 * Dr); sumR += -569925 * cos(2.0 * Mpr); sumR += (48888 * cos(Mr)) * E; sumR += -3149 * cos(2.0 * Fr); sumR += 246158 * cos(2.0 * Dr - 2.0 * Mpr); sumR += (-152138 * cos(2.0 * Dr - Mr - Mpr)) * E; sumR += -170733 * cos(2.0 * Dr + Mpr); sumR += (-204586 * cos(2.0 * Dr - Mr)) * E; sumR += (-129620 * cos(Mr - Mpr)) * E; sumR += 108743 * cos(Dr); sumR += (104755 * cos(Mr + Mpr)) * E; sumR += 10321 * cos(2.0 * Dr - 2.0 * Fr); sumR += 79661 * cos(Mpr - 2.0 * Fr); sumR += -34782 * cos(4.0 * Dr - Mpr); sumR += -23210 * cos(3.0 * Mpr); sumR += -21636 * cos(4.0 * Dr - 2.0 * Mpr); sumR += (24208 * cos(2.0 * Dr + Mr - Mpr)) * E; sumR += (30824 * cos(2.0 * Dr + Mr)) * E; sumR += -8379 * cos(Dr - Mpr); sumR += (-16675 * cos(Dr + Mr)) * E; sumR += (-12831 * cos(2.0 * Dr - Mr + Mpr)) * E; sumR += -10445 * cos(2.0 * Dr + 2.0 * Mpr); sumR += -11650 * cos(4.0 * Dr); sumR += 14403 * cos(2.0 * Dr - 3.0 * Mpr); sumR += (-7003 * cos(Mr - 2.0 * Mpr)) * E; sumR += (10056 * cos(2.0 * Dr - Mr - 2.0 * Mpr)) * E; sumR += 6322 * cos(Dr + Mpr); sumR += (-9884 * cos(2.0 * Dr - 2.0 * Mr)) * E * E; sumR += (5751 * cos(Mr + 2.0 * Mpr)) * E; sumR += (-4950 * cos(2.0 * Dr - 2.0 * Mr - Mpr)) * E * E; sumR += 4130 * cos(2.0 * Dr + Mpr - 2.0 * Fr); sumR += (-3958 * cos(4.0 * Dr - Mr - Mpr)) * E; sumR += 3258 * cos(3.0 * Dr - Mpr); sumR += (2616 * cos(2.0 * Dr + Mr + Mpr)) * E; sumR += (-1897 * cos(4.0 * Dr - Mr - 2.0 * Mpr)) * E; sumR += (-2117 * cos(2.0 * Mr - Mpr)) * E * E; sumR += (2354 * cos(2.0 * Dr + 2.0 * Mr - Mpr)) * E * E; sumR += -1423 * cos(4.0 * Dr + Mpr); sumR += -1117 * cos(4.0 * Mpr); sumR += (-1571 * cos(4.0 * Dr - Mr)) * E; sumR += -1739 * cos(Dr - 2.0 * Mpr); sumR += -4421 * cos(2.0 * Mpr - 2.0 * Fr); sumR += (1165 * cos(2.0 * Mr + Mpr)) * E * E; sumR += 8752 * cos(2.0 * Dr - Mpr - 2.0 * Fr); *Rad = 385000.56 + (sumR / 1000.0); /* Center of Earth to center of Moon in kilometers */ *Rad /= 6378.0; /* Return distance in Earth radii */ *Long = DEG2RAD(*Long); *Lat = DEG2RAD(*Lat); } openuniverse-1.0beta3.1.orig/src/gravity.cpp0000644000175000017500000001166307107355755021026 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" #define G 6.67259E-11 /* Computes gravity force vector for a body located at pos */ void Gravity(double *pos, double *force) { int i; double d, a, r[3]; INITVECTOR(force, 0.0, 0.0, 0.0); for (i = 0; i < NUMBODIES; i++) { if (planets[i].Type > SATELLITE) /* Discard spaceships, rings, etc... */ continue; SUBVECTORS(r, pos, planets[i].pos); d = MODULE(r) * 1.0E6; a = (-G * planets[i].Mass) / (d * d * d); if (a == 0.0) continue; MULTVECTOR(r, r, a); ADDVECTORS(force, force, r); } } /* Updates gravity pull and orientation for spaceships and orbiters */ void FeelTheGravity(void) { double v1[3], v2[3], a; int i; for (i = 1; i < NUMBODIES; i++) { if (gravity) switch (planets[i].Type) { case SPACESHIP: COPYVECTOR(planets[i].prevel, planets[i].vel); Gravity((double *) planets[i].pos, (double *) planets[i].grav); COPYVECTOR(v1, planets[i].vel); COPYVECTOR(v2, planets[i].grav); ADDVECTORS(planets[i].vel, planets[i].vel, planets[i].grav); MULTVECTOR(v1, v1, fabs((double) timefactor)); MULTVECTOR(v2, v2, fabs((double) timefactor)); ADDVECTORS(v1, v1, v2); ADDVECTORS(planets[i].pos, planets[i].pos, v1); a = MODULE(planets[i].prevel) * MODULE(planets[i].vel); if (a > 0.0) { a = acos(DOTPRODUCT (planets[i].prevel, planets[i].vel) / a); if (a > 0.0) { CROSSPRODUCT(v1, planets[i].prevel, planets[i].vel); Rotation(-a, v1, planets[i].dir); Rotation(-a, v1, planets[i].up); NORMALIZE(planets[i].dir); NORMALIZE(planets[i].up); } } break; case ORBITER: a = MODULE(planets[i].prevel) * MODULE(planets[i].vel); if (a > 0.0) { a = acos(DOTPRODUCT(planets[i].prevel, planets[i].vel) / a); if (a > 0.0) { CROSSPRODUCT(v1, planets[i].prevel, planets[i].vel); Rotation(-a, v1, planets[i].dir); Rotation(-a, v1, planets[i].up); NORMALIZE(planets[i].dir); NORMALIZE(planets[i].up); } } break; default: continue; } if (abs(planets[i].rot[Z]) > 8) Rotation(planets[i].rot[Z] * 0.0001, planets[i].dir, planets[i].up); if (abs(planets[i].rot[X]) > 8) Rotation(planets[i].rot[X] * 0.0001, planets[i].up, planets[i].dir); if (abs(planets[i].rot[Y]) > 8) { CROSSPRODUCT(v1, planets[i].up, planets[i].dir); Rotation(planets[i].rot[Y] * 0.0001, v1, planets[i].dir); Rotation(planets[i].rot[Y] * 0.0001, v1, planets[i].up); } if (follow && (i == currtarget)) { switch (cmode) { case 0: CROSSPRODUCT(v2, planets[i].up, planets[i].dir); COPYVECTOR(v1, planets[currtarget].dir); Rotation(-0.1, v2, v1); SUBVECTORS(v1, v1, cameye); DIVVECTOR(v1, v1, 50.0); ADDVECTORS(v1, v1, cameye); NORMALIZE(v1); MULTVECTOR(v1, v1, RADIUSSCALE(planets[currtarget].Radius * zoom)); SUBVECTORS(campos, planets[currtarget].pos, v1); SUBVECTORS(cameye, planets[currtarget].pos, campos); NORMALIZE(cameye); COPYVECTOR(camup, planets[currtarget].up); break; case 1: COPYVECTOR(campos, planets[currtarget].pos); MULTVECTOR(v1, planets[currtarget].up, RADIUSSCALE(planets[currtarget].Radius * zoom)); ADDVECTORS(campos, campos, v1); COPYVECTOR(camup, planets[currtarget].dir); COPYVECTOR(cameye, planets[currtarget].up); MULTVECTOR(cameye, cameye, -1.0); break; case 2: CROSSPRODUCT(v1, planets[currtarget].dir, planets[currtarget].up); COPYVECTOR(cameye, v1); MULTVECTOR(cameye, cameye, -1.0); MULTVECTOR(v1, v1, RADIUSSCALE(planets[currtarget].Radius * zoom)); ADDVECTORS(campos, planets[currtarget].pos, v1); COPYVECTOR(camup, planets[currtarget].up); break; case 3: CROSSPRODUCT(v1, planets[currtarget].up, planets[currtarget].dir); COPYVECTOR(cameye, v1); MULTVECTOR(cameye, cameye, -1.0); MULTVECTOR(v1, v1, RADIUSSCALE(planets[currtarget].Radius * zoom)); ADDVECTORS(campos, planets[currtarget].pos, v1); COPYVECTOR(camup, planets[currtarget].up); break; default: break; } } } speed = MODULE(planets[currtarget].vel) * (double) timefactor; } openuniverse-1.0beta3.1.orig/src/lex.cfg.cpp0000644000175000017500000014173707116527673020675 0ustar paulliupaulliu#define yy_create_buffer cfg_create_buffer #define yy_delete_buffer cfg_delete_buffer #define yy_scan_buffer cfg_scan_buffer #define yy_scan_string cfg_scan_string #define yy_scan_bytes cfg_scan_bytes #define yy_flex_debug cfg_flex_debug #define yy_init_buffer cfg_init_buffer #define yy_flush_buffer cfg_flush_buffer #define yy_load_buffer_state cfg_load_buffer_state #define yy_switch_to_buffer cfg_switch_to_buffer #define yyin cfgin #define yyleng cfgleng #define yylex cfglex #define yyout cfgout #define yyrestart cfgrestart #define yytext cfgtext /* A lexical scanner generated by flex */ /* Scanner skeleton version: * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $ */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #include /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ #ifdef c_plusplus #ifndef __cplusplus #define __cplusplus #endif #endif #ifdef __cplusplus #include #include /* Use prototypes in function declarations. */ #define YY_USE_PROTOS /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ #if __STDC__ #define YY_USE_PROTOS #define YY_USE_CONST #endif /* __STDC__ */ #endif /* ! __cplusplus */ #ifdef __TURBOC__ #pragma warn -rch #pragma warn -use #include #include #define YY_USE_CONST #define YY_USE_PROTOS #endif #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif #ifdef YY_USE_PROTOS #define YY_PROTO(proto) proto #else #define YY_PROTO(proto) () #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #define YY_BUF_SIZE 16384 typedef struct yy_buffer_state *YY_BUFFER_STATE; extern int yyleng; extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 /* The funky do-while in the following #define is used to turn the definition * int a single C statement (which needs a semi-colon terminator). This * avoids problems with code like: * * if ( condition_holds ) * yyless( 5 ); * else * do_something_else(); * * Prior to using the do-while the compiler would get upset at the * "else" because it interpreted the "if" statement as being all * done when it reached the ';' after the yyless() call. */ /* Return all but the first 'n' matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ *yy_cp = yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yytext_ptr ) /* The following is because we cannot portably get our hands on size_t * (without autoconf's help, which isn't available because we want * flex-generated scanners to compile on their own). */ typedef unsigned int yy_size_t; struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; static YY_BUFFER_STATE yy_current_buffer = 0; /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". */ #define YY_CURRENT_BUFFER yy_current_buffer /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; static int yy_init = 1; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow yywrap()'s to do buffer switches * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void yyrestart YY_PROTO(( FILE *input_file )); void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); void yy_load_buffer_state YY_PROTO(( void )); YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str )); YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); static void *yy_flex_alloc YY_PROTO(( yy_size_t )); static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); static void yy_flex_free YY_PROTO(( void * )); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! yy_current_buffer ) \ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! yy_current_buffer ) \ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (yy_current_buffer->yy_at_bol) #define yywrap() 1 #define YY_SKIP_YYWRAP typedef unsigned char YY_CHAR; FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; typedef int yy_state_type; extern char *yytext; #define yytext_ptr yytext static yy_state_type yy_get_previous_state YY_PROTO(( void )); static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); static int yy_get_next_buffer YY_PROTO(( void )); static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yytext_ptr = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; #define YY_NUM_RULES 53 #define YY_END_OF_BUFFER 54 static yyconst short int yy_accept[281] = { 0, 43, 43, 54, 52, 46, 47, 52, 43, 43, 41, 51, 50, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 48, 49, 46, 0, 44, 43, 45, 42, 41, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 35, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 25, 43, 43, 42, 43, 43, 43, 43, 43, 43, 6, 9, 43, 34, 13, 43, 38, 43, 43, 43, 43, 43, 43, 43, 33, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 31, 43, 43, 43, 43, 43, 43, 43, 7, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 1, 43, 43, 43, 4, 43, 43, 43, 23, 43, 26, 43, 43, 43, 20, 19, 43, 3, 21, 43, 43, 43, 18, 43, 43, 43, 43, 43, 43, 43, 40, 43, 43, 28, 43, 43, 43, 5, 43, 43, 43, 43, 43, 30, 43, 43, 43, 43, 10, 43, 43, 43, 43, 8, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 39, 43, 43, 27, 29, 43, 15, 43, 43, 32, 43, 43, 43, 43, 43, 43, 43, 43, 43, 2, 17, 43, 37, 43, 43, 43, 43, 43, 43, 16, 22, 43, 43, 43, 12, 43, 24, 43, 43, 43, 11, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 36, 43, 43, 14, 0 } ; static yyconst int yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 5, 1, 1, 6, 7, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 6, 10, 1, 11, 1, 1, 1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 6, 34, 35, 36, 37, 1, 1, 1, 1, 12, 1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 6, 34, 35, 36, 37, 38, 1, 39, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static yyconst int yy_meta[40] = { 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1 } ; static yyconst short int yy_base[283] = { 0, 0, 0, 300, 301, 297, 301, 295, 0, 292, 33, 301, 301, 12, 269, 28, 32, 25, 269, 266, 266, 30, 262, 35, 33, 47, 40, 301, 301, 289, 287, 301, 0, 301, 47, 54, 257, 263, 257, 261, 41, 253, 259, 259, 256, 263, 263, 53, 248, 34, 264, 244, 263, 262, 248, 241, 259, 250, 237, 57, 256, 242, 237, 231, 59, 68, 248, 237, 247, 245, 234, 243, 242, 231, 225, 224, 228, 235, 0, 226, 221, 228, 225, 228, 217, 221, 222, 226, 227, 227, 227, 211, 225, 226, 58, 0, 219, 205, 227, 205, 203, 216, 202, 201, 198, 0, 198, 211, 0, 0, 215, 0, 205, 189, 211, 191, 205, 204, 188, 0, 195, 197, 200, 201, 198, 183, 190, 66, 195, 178, 183, 181, 178, 194, 194, 0, 173, 174, 174, 185, 189, 172, 182, 0, 166, 176, 172, 169, 163, 176, 161, 171, 159, 68, 177, 156, 157, 165, 165, 0, 172, 167, 165, 0, 148, 150, 145, 166, 147, 145, 150, 153, 154, 0, 0, 152, 0, 0, 141, 149, 145, 0, 151, 151, 149, 58, 148, 136, 150, 0, 149, 143, 0, 148, 142, 126, 0, 136, 135, 118, 141, 141, 0, 122, 124, 122, 121, 0, 124, 111, 125, 121, 0, 127, 115, 123, 124, 126, 124, 121, 121, 119, 103, 113, 0, 109, 119, 0, 0, 111, 0, 113, 102, 97, 110, 109, 105, 92, 91, 108, 89, 96, 94, 0, 0, 102, 0, 81, 99, 98, 88, 82, 84, 0, 0, 81, 86, 92, 0, 78, 0, 76, 75, 88, 0, 73, 72, 90, 67, 78, 74, 81, 66, 77, 65, 58, 0, 60, 56, 0, 301, 99, 82 } ; static yyconst short int yy_def[283] = { 0, 280, 1, 280, 280, 280, 280, 281, 282, 282, 282, 280, 280, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 280, 280, 280, 281, 280, 282, 280, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 0, 280, 280 } ; static yyconst short int yy_nxt[341] = { 0, 4, 5, 6, 7, 4, 8, 8, 9, 10, 11, 12, 8, 13, 14, 15, 16, 8, 17, 8, 8, 18, 19, 8, 20, 21, 8, 22, 23, 8, 24, 25, 26, 8, 8, 8, 8, 8, 27, 28, 34, 39, 35, 36, 37, 41, 43, 48, 51, 42, 53, 49, 44, 62, 54, 40, 64, 63, 81, 52, 55, 34, 82, 35, 65, 70, 71, 56, 64, 78, 92, 57, 79, 126, 58, 59, 65, 98, 153, 60, 61, 93, 178, 204, 32, 65, 279, 278, 127, 205, 277, 276, 275, 274, 273, 272, 271, 154, 270, 179, 30, 30, 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 98, 129, 128, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 97, 96, 95, 94, 91, 90, 89, 88, 87, 86, 85, 84, 83, 80, 77, 76, 75, 74, 73, 72, 69, 68, 67, 66, 31, 29, 50, 47, 46, 45, 38, 33, 31, 29, 280, 3, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280 } ; static yyconst short int yy_chk[341] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 15, 10, 13, 13, 16, 17, 21, 23, 16, 24, 21, 17, 26, 24, 15, 34, 26, 49, 23, 25, 35, 49, 35, 34, 40, 40, 25, 64, 47, 59, 25, 47, 94, 25, 25, 64, 65, 127, 25, 25, 59, 153, 185, 282, 65, 278, 277, 94, 185, 275, 274, 273, 272, 271, 270, 269, 127, 268, 153, 281, 281, 267, 266, 265, 263, 262, 261, 259, 257, 256, 255, 252, 251, 250, 249, 248, 247, 245, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 229, 226, 225, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 211, 210, 209, 208, 206, 205, 204, 203, 201, 200, 199, 198, 197, 195, 194, 193, 191, 190, 188, 187, 186, 184, 183, 182, 180, 179, 178, 175, 172, 171, 170, 169, 168, 167, 166, 165, 164, 162, 161, 160, 158, 157, 156, 155, 154, 152, 151, 150, 149, 148, 147, 146, 145, 144, 142, 141, 140, 139, 138, 137, 136, 134, 133, 132, 131, 130, 129, 128, 126, 125, 124, 123, 122, 121, 120, 118, 117, 116, 115, 114, 113, 112, 110, 107, 106, 104, 103, 102, 101, 100, 99, 98, 97, 96, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 63, 62, 61, 60, 58, 57, 56, 55, 54, 53, 52, 51, 50, 48, 46, 45, 44, 43, 42, 41, 39, 38, 37, 36, 30, 29, 22, 20, 19, 18, 14, 9, 7, 5, 3, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280 } ; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; #line 1 "cfglex.l" #define INITIAL 0 #line 2 "cfglex.l" #include #include "ou.h" int reserverd_word(char *s); extern int yylineno; #define YY_NO_UNPUT #line 554 "lex.cfg.c" /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap YY_PROTO(( void )); #else extern int yywrap YY_PROTO(( void )); #endif #endif #ifndef YY_NO_UNPUT static void yyunput YY_PROTO(( int c, char *buf_ptr )); #endif #ifndef yytext_ptr static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int )); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen YY_PROTO(( yyconst char * )); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput YY_PROTO(( void )); #else static int input YY_PROTO(( void )); #endif #endif #if YY_STACK_USED static int yy_start_stack_ptr = 0; static int yy_start_stack_depth = 0; static int *yy_start_stack = 0; #ifndef YY_NO_PUSH_STATE static void yy_push_state YY_PROTO(( int new_state )); #endif #ifndef YY_NO_POP_STATE static void yy_pop_state YY_PROTO(( void )); #endif #ifndef YY_NO_TOP_STATE static int yy_top_state YY_PROTO(( void )); #endif #else #define YY_NO_PUSH_STATE 1 #define YY_NO_POP_STATE 1 #define YY_NO_TOP_STATE 1 #endif #ifdef YY_MALLOC_DECL YY_MALLOC_DECL #else #if __STDC__ #ifndef __cplusplus #include #endif #else /* Just try to get by without declaring the routines. This will fail * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) * or sizeof(void*) != sizeof(int). */ #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( yy_current_buffer->yy_is_interactive ) \ { \ int c = '*', n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \ && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL int yylex YY_PROTO(( void )) #endif /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; #line 15 "cfglex.l" #line 708 "lex.cfg.c" if ( yy_init ) { yy_init = 0; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! yy_start ) yy_start = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! yy_current_buffer ) yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); yy_load_buffer_state(); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = yy_c_buf_p; /* Support of yytext. */ *yy_cp = yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yy_start; yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; if ( yy_accept[yy_current_state] ) { yy_last_accepting_state = yy_current_state; yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 281 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 301 ); yy_find_action: yy_act = yy_accept[yy_current_state]; if ( yy_act == 0 ) { /* have to back up */ yy_cp = yy_last_accepting_cpos; yy_current_state = yy_last_accepting_state; yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yy_hold_char; yy_cp = yy_last_accepting_cpos; yy_current_state = yy_last_accepting_state; goto yy_find_action; case 1: YY_RULE_SETUP #line 17 "cfglex.l" return BORDER; YY_BREAK case 2: YY_RULE_SETUP #line 18 "cfglex.l" return ATMOSPHERES; YY_BREAK case 3: YY_RULE_SETUP #line 19 "cfglex.l" return SPLASHBITMAP; YY_BREAK case 4: YY_RULE_SETUP #line 20 "cfglex.l" return FILTER; YY_BREAK case 5: YY_RULE_SETUP #line 21 "cfglex.l" return SHADING; YY_BREAK case 6: YY_RULE_SETUP #line 22 "cfglex.l" return SIM_DATE; YY_BREAK case 7: YY_RULE_SETUP #line 23 "cfglex.l" return PAUSE; YY_BREAK case 8: YY_RULE_SETUP #line 24 "cfglex.l" return REALTIME; YY_BREAK case 9: YY_RULE_SETUP #line 25 "cfglex.l" return DEMO; YY_BREAK case 10: YY_RULE_SETUP #line 26 "cfglex.l" return DEMOSTEP; YY_BREAK case 11: YY_RULE_SETUP #line 27 "cfglex.l" return PLANETS_LABELS; YY_BREAK case 12: YY_RULE_SETUP #line 28 "cfglex.l" return STARS_LABELS; YY_BREAK case 13: YY_RULE_SETUP #line 29 "cfglex.l" return INFO; YY_BREAK case 14: YY_RULE_SETUP #line 30 "cfglex.l" return STAR_BRIGHT; YY_BREAK case 15: YY_RULE_SETUP #line 31 "cfglex.l" return STAR_SIZE; YY_BREAK case 16: YY_RULE_SETUP #line 32 "cfglex.l" return CAM_SPEED; YY_BREAK case 17: YY_RULE_SETUP #line 33 "cfglex.l" return CAM_MODE; YY_BREAK case 18: YY_RULE_SETUP #line 34 "cfglex.l" return TARGET; YY_BREAK case 19: YY_RULE_SETUP #line 35 "cfglex.l" return SOURCE; YY_BREAK case 20: YY_RULE_SETUP #line 36 "cfglex.l" return SLICES; YY_BREAK case 21: YY_RULE_SETUP #line 37 "cfglex.l" return STACKS; YY_BREAK case 22: YY_RULE_SETUP #line 38 "cfglex.l" return JPEG_QUALITY; YY_BREAK case 23: YY_RULE_SETUP #line 39 "cfglex.l" return MIPMAP; YY_BREAK case 24: YY_RULE_SETUP #line 40 "cfglex.l" return MIPMAP_FILTER; YY_BREAK case 25: YY_RULE_SETUP #line 41 "cfglex.l" return SUN; YY_BREAK case 26: YY_RULE_SETUP #line 42 "cfglex.l" return PLANET; YY_BREAK case 27: YY_RULE_SETUP #line 43 "cfglex.l" return SATELLITE; YY_BREAK case 28: YY_RULE_SETUP #line 44 "cfglex.l" return ORBITER; YY_BREAK case 29: YY_RULE_SETUP #line 45 "cfglex.l" return SPACESHIP; YY_BREAK case 30: YY_RULE_SETUP #line 46 "cfglex.l" return ASTEROID; YY_BREAK case 31: YY_RULE_SETUP #line 47 "cfglex.l" return COMET; YY_BREAK case 32: YY_RULE_SETUP #line 48 "cfglex.l" return ATMOSPHERE; YY_BREAK case 33: YY_RULE_SETUP #line 49 "cfglex.l" return RING; YY_BREAK case 34: YY_RULE_SETUP #line 50 "cfglex.l" return FONT; YY_BREAK case 35: YY_RULE_SETUP #line 51 "cfglex.l" return LEVELOFDETAIL; YY_BREAK case 36: YY_RULE_SETUP #line 52 "cfglex.l" return TEXTURECOMPRESSION; YY_BREAK case 37: YY_RULE_SETUP #line 53 "cfglex.l" return COLORDEPTH; YY_BREAK case 38: YY_RULE_SETUP #line 54 "cfglex.l" return LOGO; YY_BREAK case 39: YY_RULE_SETUP #line 55 "cfglex.l" return MILKYWAY; YY_BREAK case 40: YY_RULE_SETUP #line 56 "cfglex.l" return MESSIER; YY_BREAK case 41: YY_RULE_SETUP #line 58 "cfglex.l" { cfglval.ival = atoi(yytext); return INTEGER_NUM; } YY_BREAK case 42: YY_RULE_SETUP #line 60 "cfglex.l" { cfglval.dval = atof(yytext); return DOUBLE_NUM; } YY_BREAK case 43: YY_RULE_SETUP #line 62 "cfglex.l" { strcpy(cfglval.name, yytext); return NAME; } YY_BREAK case 44: YY_RULE_SETUP #line 65 "cfglex.l" yylineno++; YY_BREAK case 45: YY_RULE_SETUP #line 66 "cfglex.l" { register int c; for (;;) { while ((c = yyinput()) != '*' && c != EOF); /* eat up text of comment */ if (c == '*') { while ((c = yyinput()) == '*'); if (c == '/') break; /* found the end */ } if (c == EOF) { error("EOF in comment"); break; } } } YY_BREAK case 46: YY_RULE_SETUP #line 85 "cfglex.l" YY_BREAK case 47: YY_RULE_SETUP #line 86 "cfglex.l" { yylineno++; } YY_BREAK case 48: YY_RULE_SETUP #line 87 "cfglex.l" return ('{'); YY_BREAK case 49: YY_RULE_SETUP #line 88 "cfglex.l" return ('}'); YY_BREAK case 50: YY_RULE_SETUP #line 89 "cfglex.l" return ('='); YY_BREAK case 51: YY_RULE_SETUP #line 90 "cfglex.l" return (';'); YY_BREAK case 52: YY_RULE_SETUP #line 91 "cfglex.l" YY_BREAK case 53: YY_RULE_SETUP #line 93 "cfglex.l" ECHO; YY_BREAK #line 1073 "lex.cfg.c" case YY_STATE_EOF(INITIAL): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between yy_current_buffer and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yy_n_chars = yy_current_buffer->yy_n_chars; yy_current_buffer->yy_input_file = yyin; yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) { /* This was really a NUL. */ yy_state_type yy_next_state; yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = yytext_ptr + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yy_c_buf_p; goto yy_find_action; } } else switch ( yy_get_next_buffer() ) { case EOB_ACT_END_OF_FILE: { yy_did_buffer_switch_on_eof = 0; if ( yywrap() ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yy_c_buf_p = &yy_current_buffer->yy_ch_buf[yy_n_chars]; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer() { register char *dest = yy_current_buffer->yy_ch_buf; register char *source = yytext_ptr; register int number_to_move, i; int ret_val; if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( yy_current_buffer->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ yy_current_buffer->yy_n_chars = yy_n_chars = 0; else { int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ #ifdef YY_USES_REJECT YY_FATAL_ERROR( "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); #else /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = yy_current_buffer; int yy_c_buf_p_offset = (int) (yy_c_buf_p - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yy_flex_realloc( (void *) b->yy_ch_buf, b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; #endif } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), yy_n_chars, num_to_read ); yy_current_buffer->yy_n_chars = yy_n_chars; } if ( yy_n_chars == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; yy_current_buffer->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; yy_n_chars += number_to_move; yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state() { register yy_state_type yy_current_state; register char *yy_cp; yy_current_state = yy_start; for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { yy_last_accepting_state = yy_current_state; yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 281 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ #ifdef YY_USE_PROTOS static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) #else static yy_state_type yy_try_NUL_trans( yy_current_state ) yy_state_type yy_current_state; #endif { register int yy_is_jam; register char *yy_cp = yy_c_buf_p; register YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { yy_last_accepting_state = yy_current_state; yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 281 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 280); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_UNPUT #ifdef YY_USE_PROTOS static void yyunput( int c, register char *yy_bp ) #else static void yyunput( c, yy_bp ) int c; register char *yy_bp; #endif { register char *yy_cp = yy_c_buf_p; /* undo effects of setting up yytext */ *yy_cp = yy_hold_char; if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ register int number_to_move = yy_n_chars + 2; register char *dest = &yy_current_buffer->yy_ch_buf[ yy_current_buffer->yy_buf_size + 2]; register char *source = &yy_current_buffer->yy_ch_buf[number_to_move]; while ( source > yy_current_buffer->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); yy_current_buffer->yy_n_chars = yy_n_chars = yy_current_buffer->yy_buf_size; if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (char) c; yytext_ptr = yy_bp; yy_hold_char = *yy_cp; yy_c_buf_p = yy_cp; } #endif /* ifndef YY_NO_UNPUT */ #ifdef __cplusplus static int yyinput() #else static int input() #endif { int c; *yy_c_buf_p = yy_hold_char; if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) /* This was really a NUL. */ *yy_c_buf_p = '\0'; else { /* need more input */ int offset = yy_c_buf_p - yytext_ptr; ++yy_c_buf_p; switch ( yy_get_next_buffer() ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin ); /* fall through */ case EOB_ACT_END_OF_FILE: { if ( yywrap() ) return EOF; if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + offset; break; } } } c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */ *yy_c_buf_p = '\0'; /* preserve yytext */ yy_hold_char = *++yy_c_buf_p; return c; } #ifdef YY_USE_PROTOS void yyrestart( FILE *input_file ) #else void yyrestart( input_file ) FILE *input_file; #endif { if ( ! yy_current_buffer ) yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); yy_init_buffer( yy_current_buffer, input_file ); yy_load_buffer_state(); } #ifdef YY_USE_PROTOS void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) #else void yy_switch_to_buffer( new_buffer ) YY_BUFFER_STATE new_buffer; #endif { if ( yy_current_buffer == new_buffer ) return; if ( yy_current_buffer ) { /* Flush out information for old buffer. */ *yy_c_buf_p = yy_hold_char; yy_current_buffer->yy_buf_pos = yy_c_buf_p; yy_current_buffer->yy_n_chars = yy_n_chars; } yy_current_buffer = new_buffer; yy_load_buffer_state(); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ yy_did_buffer_switch_on_eof = 1; } #ifdef YY_USE_PROTOS void yy_load_buffer_state( void ) #else void yy_load_buffer_state() #endif { yy_n_chars = yy_current_buffer->yy_n_chars; yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; yyin = yy_current_buffer->yy_input_file; yy_hold_char = *yy_c_buf_p; } #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) #else YY_BUFFER_STATE yy_create_buffer( file, size ) FILE *file; int size; #endif { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } #ifdef YY_USE_PROTOS void yy_delete_buffer( YY_BUFFER_STATE b ) #else void yy_delete_buffer( b ) YY_BUFFER_STATE b; #endif { if ( ! b ) return; if ( b == yy_current_buffer ) yy_current_buffer = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yy_flex_free( (void *) b->yy_ch_buf ); yy_flex_free( (void *) b ); } #ifndef YY_ALWAYS_INTERACTIVE #ifndef YY_NEVER_INTERACTIVE extern int isatty YY_PROTO(( int )); #endif #endif #ifdef YY_USE_PROTOS void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) #else void yy_init_buffer( b, file ) YY_BUFFER_STATE b; FILE *file; #endif { yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; #if YY_ALWAYS_INTERACTIVE b->yy_is_interactive = 1; #else #if YY_NEVER_INTERACTIVE b->yy_is_interactive = 0; #else b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; #endif #endif } #ifdef YY_USE_PROTOS void yy_flush_buffer( YY_BUFFER_STATE b ) #else void yy_flush_buffer( b ) YY_BUFFER_STATE b; #endif { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == yy_current_buffer ) yy_load_buffer_state(); } #ifndef YY_NO_SCAN_BUFFER #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size ) #else YY_BUFFER_STATE yy_scan_buffer( base, size ) char *base; yy_size_t size; #endif { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer( b ); return b; } #endif #ifndef YY_NO_SCAN_STRING #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str ) #else YY_BUFFER_STATE yy_scan_string( yy_str ) yyconst char *yy_str; #endif { int len; for ( len = 0; yy_str[len]; ++len ) ; return yy_scan_bytes( yy_str, len ); } #endif #ifndef YY_NO_SCAN_BYTES #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len ) #else YY_BUFFER_STATE yy_scan_bytes( bytes, len ) yyconst char *bytes; int len; #endif { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = len + 2; buf = (char *) yy_flex_alloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < len; ++i ) buf[i] = bytes[i]; buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #endif #ifndef YY_NO_PUSH_STATE #ifdef YY_USE_PROTOS static void yy_push_state( int new_state ) #else static void yy_push_state( new_state ) int new_state; #endif { if ( yy_start_stack_ptr >= yy_start_stack_depth ) { yy_size_t new_size; yy_start_stack_depth += YY_START_STACK_INCR; new_size = yy_start_stack_depth * sizeof( int ); if ( ! yy_start_stack ) yy_start_stack = (int *) yy_flex_alloc( new_size ); else yy_start_stack = (int *) yy_flex_realloc( (void *) yy_start_stack, new_size ); if ( ! yy_start_stack ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); } yy_start_stack[yy_start_stack_ptr++] = YY_START; BEGIN(new_state); } #endif #ifndef YY_NO_POP_STATE static void yy_pop_state() { if ( --yy_start_stack_ptr < 0 ) YY_FATAL_ERROR( "start-condition stack underflow" ); BEGIN(yy_start_stack[yy_start_stack_ptr]); } #endif #ifndef YY_NO_TOP_STATE static int yy_top_state() { return yy_start_stack[yy_start_stack_ptr - 1]; } #endif #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif #ifdef YY_USE_PROTOS static void yy_fatal_error( yyconst char msg[] ) #else static void yy_fatal_error( msg ) char msg[]; #endif { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ yytext[yyleng] = yy_hold_char; \ yy_c_buf_p = yytext + n; \ yy_hold_char = *yy_c_buf_p; \ *yy_c_buf_p = '\0'; \ yyleng = n; \ } \ while ( 0 ) /* Internal utility routines. */ #ifndef yytext_ptr #ifdef YY_USE_PROTOS static void yy_flex_strncpy( char *s1, yyconst char *s2, int n ) #else static void yy_flex_strncpy( s1, s2, n ) char *s1; yyconst char *s2; int n; #endif { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN #ifdef YY_USE_PROTOS static int yy_flex_strlen( yyconst char *s ) #else static int yy_flex_strlen( s ) yyconst char *s; #endif { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif #ifdef YY_USE_PROTOS static void *yy_flex_alloc( yy_size_t size ) #else static void *yy_flex_alloc( size ) yy_size_t size; #endif { return (void *) malloc( size ); } #ifdef YY_USE_PROTOS static void *yy_flex_realloc( void *ptr, yy_size_t size ) #else static void *yy_flex_realloc( ptr, size ) void *ptr; yy_size_t size; #endif { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc( (char *) ptr, size ); } #ifdef YY_USE_PROTOS static void yy_flex_free( void *ptr ) #else static void yy_flex_free( ptr ) void *ptr; #endif { free( ptr ); } #if YY_MAIN int main() { yylex(); return 0; } #endif #line 93 "cfglex.l" openuniverse-1.0beta3.1.orig/src/positions.cpp0000644000175000017500000001360107116527560021355 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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. */ /* Calculate planets positions in a given date. The main algorithm uses elements dated Julian 2450680.5 (8/20/1997) so it's quite accurate for dates near this. To be improved in the future ... Keith Burnett's planet positioning algorithm used with persmission. */ #include "ou.h" static double SolveKepler(double, double); static double SolveKepler(double M, double ec) { static double E, d, delta; E = M; d = E - ec * sin(E) - M; while (fabs(d) > 1.0E-8) { delta = d / (1.0L - ec * cos(E)); E = E - delta; d = E - ec * sin(E) - M; } return E; } /* Based on Keith Burnett's QBASIC code found here: http://www.xylem.demon.co.uk/kepler/ */ void UpdatePositions(double days, int num) { static int j, k; static double e, M, E, r, v, o, p, i, x, y, z, l, b; static double oldpos[3], axis[3]; if (!num) { j = 1; k = NUMBODIES; } else { j = num; k = j + 1; } for (j = 1; j < k; j++) { if (planets[j].Type == SPACESHIP) { ADDVECTORS(planets[j].pos, planets[j].pos, planets[j].vel); continue; } if (planets[j].Type >= RING) { if (planets[j].Type == ATMOSPHERE) { i = atan2(planets[planets[j].Sat].pos[Z], planets[planets[j].Sat].pos[X]) * 180.0 / M_PI; e = planets[j].Rotation * (days / 360.252502); /* convert earth days to local */ planets[j].DeltaRotation = (e - floor(e)) * 360.0 - i + 85.0; } continue; } COPYVECTOR(oldpos, planets[j].pos); if (planets[j].CustomFunction) { switch (planets[j].CustomFunction) { case 1: MercuryPos(days + 2450680.5, &l, &b, &r); break; case 2: VenusPos(days + 2450680.5, &l, &b, &r); break; case 3: EarthPos(days + 2450680.5, &l, &b, &r); break; case 4: MarsPos(days + 2450680.5, &l, &b, &r); break; case 5: JupiterPos(days + 2450680.5, &l, &b, &r); break; case 6: SaturnPos(days + 2450680.5, &l, &b, &r); break; case 7: UranusPos(days + 2450680.5, &l, &b, &r); break; case 8: NeptunePos(days + 2450680.5, &l, &b, &r); break; case 9: PlutoPos(days + 2450680.5, &l, &b, &r); break; case 10: MoonPos(days + 2450680.5, &l, &b, &r); break; } if (planets[j].Type != SATELLITE) r = DISTCORRECTION(r); INITVECTOR(planets[j].pos, r * cos(b) * sin(l), r * cos(b) * sin(b), r * cos(b) * cos(l)); } else { e = planets[j].Eccentricity; M = planets[j].DailyMotion * days + planets[j].MeanLongitude - planets[j].Perihelion; E = SolveKepler(M, e); r = planets[j].MeanDistance * (1.0 - e * cos(E)); v = 2.0L * atan(sqrt((1.0L + e) / (1.0L - e)) * tan(E / 2.0L)); o = planets[j].AscendingNode; p = planets[j].Perihelion; i = planets[j].Inclination; INITVECTOR(planets[j].pos, r * (cos(o) * cos(v + p - o) - sin(o) * sin(v + p - o) * cos(i)), r * (sin(v + p - o) * sin(i)), -r * (sin(o) * cos(v + p - o) + cos(o) * sin(v + p - o) * cos(i))); } if (planets[j].Sat) { /* satellites coords are expressed in host planet radii, convert * to global coord ... similar to RADIUSSCALE macro */ MULTVECTOR(planets[j].pos, planets[j].pos, RADIUSSCALE(planets[planets[j].Sat].Radius)); if (!planets[j].CustomFunction) { /* Rotate satellite to match host planet tilt + satellite orbit * tilt. We could do this with glRotate when drawing objects * but then we don't know real satellite coords so it's * impossible to point the camera accurately */ i = -atan2(planets[planets[j].Sat].pos[X], planets[planets[j].Sat].pos[Z]); o = cos(i); p = sin(i); x = planets[j].pos[X] * o + planets[j].pos[Z] * p; y = planets[j].pos[Y]; z = -planets[j].pos[X] * p + planets[j].pos[Z] * o; o = cos(DEG2RAD(planets[planets[j].Sat].Degrees) + planets[j].Inclination); p = sin(DEG2RAD(planets[planets[j].Sat].Degrees) + planets[j].Inclination); COPYVECTOR(planets[j].pos, planets[planets[j].Sat].pos); planets[j].pos[X] += x; planets[j].pos[Y] += y * o + z * p; planets[j].pos[Z] += z * o - y * p; } else { /* Customs functions return always corrected values */ ADDVECTORS(planets[j].pos, planets[j].pos, planets[planets[j].Sat].pos); } } /* Rotate body. Due to the rendering process (where every body is moved * from origin to its x,y,z position) it's neccesary for us to correct * rotation angle so we undo the implicit rotation in that translation */ if (planets[j].Type == ASTEROID) { INITVECTOR(axis, planets[j].xflat, planets[j].yflat, planets[j].zflat); Rotation(DEG2RAD (planets[j].Rotation * timefactor / SECS_A_DAY), axis, planets[j].dir); Rotation(DEG2RAD (planets[j].Rotation * timefactor / SECS_A_DAY), axis, planets[j].up); } else { i = atan2(planets[j].pos[Z], planets[j].pos[X]) * 180.0 / M_PI; e = planets[j].Rotation * (days / 360.252502); /* convert earth days to local */ planets[j].DeltaRotation = (e - floor(e)) * 360.0 - i + 85.0; } if (planets[j].Type <= ORBITER) { COPYVECTOR(planets[j].prevel, planets[j].vel); SUBVECTORS(planets[j].vel, planets[j].pos, oldpos); } } } openuniverse-1.0beta3.1.orig/src/texture.cpp0000644000175000017500000001362507107356200021023 0ustar paulliupaulliu#include #include #include #include "ou.h" void bwtorgba(unsigned char *b, unsigned char *l, int n) { while (n--) { l[0] = *b; l[1] = *b; l[2] = *b; l[3] = 0xff; l += 4; b++; } } void latorgba(unsigned char *b, unsigned char *a, unsigned char *l, int n) { while (n--) { l[0] = *b; l[1] = *b; l[2] = *b; l[3] = *a; l += 4; b++; a++; } } void rgbtorgba(unsigned char *r, unsigned char *g, unsigned char *b, unsigned char *l, int n) { while (n--) { l[0] = r[0]; l[1] = g[0]; l[2] = b[0]; l[3] = 0xff; l += 4; r++; g++; b++; } } void rgbatorgba(unsigned char *r, unsigned char *g, unsigned char *b, unsigned char *a, unsigned char *l, int n) { while (n--) { l[0] = r[0]; l[1] = g[0]; l[2] = b[0]; l[3] = a[0]; l += 4; r++; g++; b++; a++; } } typedef struct _ImageRec { unsigned short imagic; unsigned short type; unsigned short dim; unsigned short xsize, ysize, zsize; unsigned int min, max; unsigned int wasteBytes; char name[80]; unsigned long colorMap; FILE *file; unsigned char *tmp, *tmpR, *tmpG, *tmpB; unsigned long rleEnd; unsigned int *rowStart; int *rowSize; } ImageRec; static void ConvertShort(unsigned short *array, long length) { unsigned b1, b2; unsigned char *ptr; ptr = (unsigned char *) array; while (length--) { b1 = *ptr++; b2 = *ptr++; *array++ = (b1 << 8) | (b2); } } static void ConvertLong(unsigned *array, long length) { unsigned b1, b2, b3, b4; unsigned char *ptr; ptr = (unsigned char *) array; while (length--) { b1 = *ptr++; b2 = *ptr++; b3 = *ptr++; b4 = *ptr++; *array++ = (b1 << 24) | (b2 << 16) | (b3 << 8) | (b4); } } static ImageRec *ImageOpen(const char *fileName) { union { int testWord; char testByte[4]; } endianTest; ImageRec *image; int swapFlag; int x; endianTest.testWord = 1; if (endianTest.testByte[0] == 1) { swapFlag = 1; } else { swapFlag = 0; } image = (ImageRec *) malloc(sizeof(ImageRec)); if (image == NULL) { fprintf(stderr, "Out of memory!\n"); shutdown(1); } if ((image->file = fopen(fileName, "rb")) == NULL) { perror(fileName); shutdown(1); } fread(image, 1, 12, image->file); if (swapFlag) { ConvertShort(&image->imagic, 6); } image->tmp = (unsigned char *) malloc(image->xsize * 256); image->tmpR = (unsigned char *) malloc(image->xsize * 256); image->tmpG = (unsigned char *) malloc(image->xsize * 256); image->tmpB = (unsigned char *) malloc(image->xsize * 256); if (image->tmp == NULL || image->tmpR == NULL || image->tmpG == NULL || image->tmpB == NULL) { fprintf(stderr, "Out of memory!\n"); shutdown(1); } if ((image->type & 0xFF00) == 0x0100) { x = image->ysize * image->zsize * sizeof(unsigned); image->rowStart = (unsigned *) malloc(x); image->rowSize = (int *) malloc(x); if (image->rowStart == NULL || image->rowSize == NULL) { fprintf(stderr, "Out of memory!\n"); shutdown(1); } image->rleEnd = 512 + (2 * x); fseek(image->file, 512, SEEK_SET); fread(image->rowStart, 1, x, image->file); fread(image->rowSize, 1, x, image->file); if (swapFlag) { ConvertLong(image->rowStart, x / (int) sizeof(unsigned)); ConvertLong((unsigned *) image->rowSize, x / (int) sizeof(int)); } } return image; } static void ImageClose(ImageRec * image) { fclose(image->file); free(image->tmp); free(image->tmpR); free(image->tmpG); free(image->tmpB); free(image); } static void ImageGetRow(ImageRec * image, unsigned char *buf, int y, int z) { unsigned char *iPtr, *oPtr, pixel; int count; if ((image->type & 0xFF00) == 0x0100) { fseek(image->file, (long) image->rowStart[y + z * image->ysize], SEEK_SET); fread(image->tmp, 1, (unsigned int) image->rowSize[y + z * image->ysize], image->file); iPtr = image->tmp; oPtr = buf; for (;;) { pixel = *iPtr++; count = (int) (pixel & 0x7F); if (!count) { return; } if (pixel & 0x80) { while (count--) { *oPtr++ = *iPtr++; } } else { pixel = *iPtr++; while (count--) { *oPtr++ = pixel; } } } } else { fseek(image->file, 512 + (y * image->xsize) + (z * image->xsize * image->ysize), SEEK_SET); fread(buf, 1, image->xsize, image->file); } } unsigned *read_texture(char *name, int *width, int *height, int *components) { unsigned *base, *lptr; unsigned char *rbuf, *gbuf, *bbuf, *abuf; ImageRec *image; int y; image = ImageOpen(name); if (!image) return NULL; (*width) = image->xsize; (*height) = image->ysize; (*components) = image->zsize; base = (unsigned *) malloc(image->xsize * image->ysize * sizeof(unsigned)); rbuf = (unsigned char *) malloc(image->xsize * sizeof(unsigned char)); gbuf = (unsigned char *) malloc(image->xsize * sizeof(unsigned char)); bbuf = (unsigned char *) malloc(image->xsize * sizeof(unsigned char)); abuf = (unsigned char *) malloc(image->xsize * sizeof(unsigned char)); if (!base || !rbuf || !gbuf || !bbuf) return NULL; lptr = base; for (y = 0; y < image->ysize; y++) { if (image->zsize >= 4) { ImageGetRow(image, rbuf, y, 0); ImageGetRow(image, gbuf, y, 1); ImageGetRow(image, bbuf, y, 2); ImageGetRow(image, abuf, y, 3); rgbatorgba(rbuf, gbuf, bbuf, abuf, (unsigned char *) lptr, image->xsize); lptr += image->xsize; } else if (image->zsize == 3) { ImageGetRow(image, rbuf, y, 0); ImageGetRow(image, gbuf, y, 1); ImageGetRow(image, bbuf, y, 2); rgbtorgba(rbuf, gbuf, bbuf, (unsigned char *) lptr, image->xsize); lptr += image->xsize; } else if (image->zsize == 2) { ImageGetRow(image, rbuf, y, 0); ImageGetRow(image, abuf, y, 1); latorgba(rbuf, abuf, (unsigned char *) lptr, image->xsize); lptr += image->xsize; } else { ImageGetRow(image, rbuf, y, 0); bwtorgba(rbuf, (unsigned char *) lptr, image->xsize); lptr += image->xsize; } } ImageClose(image); free(rbuf); free(gbuf); free(bbuf); free(abuf); return (unsigned *) base; } openuniverse-1.0beta3.1.orig/src/bmf.h0000644000175000017500000000437607107355661017551 0ustar paulliupaulliu#ifndef __BMF_H_ #define __BMF_H_ typedef short word; typedef unsigned short int uword; typedef int dword; typedef float float32; /* * Untransformed with Normal Vertex * Corresponds to OpenGL's GL_T2F_N3F_V3F format */ typedef struct { float32 u, v; float32 i, j, k; float32 x, y, z; } BMF_UNVERTEX; typedef struct { float32 x, y, z, w; } T_VERTEX; typedef struct { float32 i, j, k; } T_NORMAL; /* * RGB Color */ typedef struct { float32 red, green, blue, alpha; } BMF_RGBCOLOR; /* * Surface of three indexes into a vertex list; this is a triangle */ typedef struct { uword p0, p1, p2; } BMF_SURFACE; /* * The texture name length includes the terminating 0, so it is * always at least one. The texture name is a string terminated * with a 0. If it is empty (ie, no texture), then it is simply * a 0. * * The ambient, diffuse, and specular red, green, and blue * components are exactly that. * * The number of vertices is the size of the vertex list array. * The vertex list is an array of UNVERTEX, or an Untransformed with * Normal Vertex. * The vertex list is local to this particular material. * */ typedef struct { uword texture_name_length; char *texture_name; GLuint texbind; BMF_RGBCOLOR ambient; BMF_RGBCOLOR diffuse; BMF_RGBCOLOR specular; uword number_of_vertices; BMF_UNVERTEX *vertexlist; short number_of_triangles; BMF_SURFACE *indexlist; } SparseMesh; typedef struct { uword texture_name_length; char *texture_name; GLuint texbind; BMF_RGBCOLOR ambient; BMF_RGBCOLOR diffuse; BMF_RGBCOLOR specular; uword number_of_vertices; BMF_UNVERTEX *vertexlist; uword number_of_strips; uword *length_of_strip; uword number_of_strip_indices; uword *stripindex; } StripMesh; /* * This is the actual BMF object. NumMaterials is the size of the * mesh array. The mesh array is either sparse, or strip. One will be * a null pointer and the other will be a real pointer to the data. * Thus, if BMFObject->strip == 0, then BMFObject->sparse is an array * of SparseMesh elements. */ typedef struct { uword NumMaterials; SparseMesh *sparse; StripMesh *strip; double radius; /* openuniverse */ int texsize; /* openuniverse */ } BMFObject; BMFObject *LoadBMF(char *, double); void DrawBMFObject(BMFObject *); #endif openuniverse-1.0beta3.1.orig/src/gui.cpp0000644000175000017500000002456607116527532020125 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" #include "gui.h" #ifdef HAVE_GLUI GLUI *glui_rwin = NULL, *glui_trailwin, *glui_optwin = NULL; GLUI_Listbox *list_source, *list_target; GLUI_Panel *control_panel; GLUI_Translation *head_trans, *roll_trans; GLUI_Checkbox *glui_follow; GLUI_RadioGroup *radio; GLUI_RadioButton *cam1, *cam2, *cam3, *cam4; GLUI_Translation *trans_zoom; int fullscreeninGUI = 0, rebuildStarsDL = 0; /* GLUI callback */ void update_cmode(void) { int type; type = ISASPACECRAFT(currtarget); if (type) glui_follow->enable(); else glui_follow->disable(); if (follow && type) { cam1->set_name("Behind"); cam2->set_name("Top"); cam3->set_name("Right"); cam4->set_name("Left"); list_target->enable(); trans_zoom->enable(); head_trans->enable(); roll_trans->enable(); } else { cam1->set_name("Free"); cam2->set_name("Linked"); cam3->set_name("Body to Body"); cam4->set_name("Orbiter"); switch (cmode) { case 0: case 1: trans_zoom->disable(); head_trans->disable(); roll_trans->disable(); break; case 2: case 3: trans_zoom->enable(); break; } } } void glui_callback(int cmd) { #define CX(s) (s->ball->down_pt[0]-s->ball->center[0]) #define CY(s) (s->ball->down_pt[1]-s->ball->center[1]) static GLUI_Spinner *spinner; static int i; switch (cmd) { case OPT_OPEN: if (glui_optwin) { glui_optwin->show(); } else { glui_optwin = GLUI_Master.create_glui("Options"); glui_optwin->add_checkbox("Demo", &demomode); glui_optwin->add_checkbox("Pause", &paused); glui_optwin->add_separator(); glui_optwin->add_checkbox("Atmosphere", &atmospheres); glui_optwin->add_checkbox("Lighting", &lighting); glui_optwin->add_checkbox("Textures", &texture); glui_optwin->add_checkbox("Stars", &drawstars); glui_optwin->add_checkbox("Milky Way", &milkyway); glui_optwin->add_checkbox("Messier Objects", &messier); glui_optwin->add_separator(); glui_optwin->add_checkbox("Info", &info); glui_optwin->add_checkbox("Top View Map", &radar); glui_optwin->add_checkbox("Stars labels", &slabels); glui_optwin->add_checkbox("Bodies labels", &plabels); glui_optwin->add_separator(); glui_optwin->add_checkbox("Joystick", &joyactive); glui_optwin->add_separator(); glui_optwin->add_checkbox("Real time", &realtime); glui_optwin->add_separator(); spinner = glui_optwin->add_spinner("Star brightness:", GLUI_SPINNER_FLOAT, &star_mag, OPT_STARMAG, (GLUI_Update_CB) glui_callback); spinner->set_float_limits(0.0, 10.0); glui_optwin->add_button("Trails", TRAILS_OPEN, (GLUI_Update_CB) glui_callback); glui_optwin->add_button("Close", OPT_HIDE, (GLUI_Update_CB) glui_callback); } break; case OPT_HIDE: glui_optwin->hide(); break; case TRAILS_OPEN: if (glui_trailwin) { glui_trailwin->show(); } else { glui_trailwin = GLUI_Master.create_glui("Trails"); for (i = 0; i < NUMBODIES; i++) if ((planets[i].Type == PLANET) || (planets[i].Type == ASTEROID) || (planets[i].Type == COMET)) glui_trailwin->add_checkbox(planets[i].Name, &planets[i]. TrailEnabled); glui_trailwin->add_button("Close", TRAILS_HIDE, (GLUI_Update_CB) glui_callback); } break; case TRAILS_HIDE: glui_trailwin->hide(); break; case CAM_NEAR: Key('n', 0, 0); break; case CAM_CMODE: i = follow && ISASPACECRAFT(currtarget); switch (cmode) { case 0: list_target->disable(); control_panel->enable(); trans_zoom->disable(); break; case 1: transition = 1; if (!i) { list_target->enable(); control_panel->disable(); } break; case 2: transition = 1; if (!i) { list_target->enable(); control_panel->disable(); } break; case 3: transition = 1; if (!i) { list_target->enable(); control_panel->disable(); } break; default: break; } update_cmode(); break; case CAM_FOLLOW: update_cmode(); break; case CAM_SOURCE: if (currsource == currtarget) { currsource = (currsource + 1) % NUMBODIES; while (planets[currsource].Type >= RING) currsource = (currsource + 1) % NUMBODIES; } transition = 1; break; case CAM_TARGET: if (currsource == currtarget) { currtarget = (currtarget + 1) % NUMBODIES; while (planets[currtarget].Type >= RING) currtarget = (currtarget + 1) % NUMBODIES; } update_cmode(); transition = 1; break; case CAM_HEADING: if (ISASPACECRAFT(currtarget)) { planets[currtarget].rot[X] = (int) head_trans->get_x(); planets[currtarget].rot[Y] = (int) head_trans->get_y(); CLAMP_SELF(planets[currtarget].rot[X], -64, 64); CLAMP_SELF(planets[currtarget].rot[Y], -64, 64); head_trans->set_x((float) planets[currtarget].rot[X]); head_trans->set_y((float) planets[currtarget].rot[Y]); } else { camrot[X] = (int) head_trans->get_x(); camrot[Y] = (int) head_trans->get_y(); CLAMP_SELF(camrot[X], -64, 64); CLAMP_SELF(camrot[Y], -64, 64); head_trans->set_x((float) camrot[X]); head_trans->set_y((float) camrot[Y]); } break; case CAM_ROLL: if (ISASPACECRAFT(currtarget)) { planets[currtarget].rot[Z] = (int) roll_trans->get_x(); CLAMP_SELF(planets[currtarget].rot[Z], -64, 64); roll_trans->set_x((float) planets[currtarget].rot[Z]); } else { camrot[Z] = (int) roll_trans->get_x(); CLAMP_SELF(camrot[Z], -64, 64); roll_trans->set_x((float) camrot[Z]); } if (roll_trans->get_y() > 0.0) Special(GLUT_KEY_PAGE_UP, 0, 0); if (roll_trans->get_y() < 0.0) Special(GLUT_KEY_PAGE_DOWN, 0, 0); roll_trans->set_y(0.0); break; case GUI_HIDE: glui_rwin->hide(); fullscreeninGUI = 1; Reshape(glutGet((GLenum) GLUT_WINDOW_WIDTH), glutGet((GLenum) GLUT_WINDOW_HEIGHT)); break; case GUI_QUIT: Key(27, 0, 0); break; case OPT_STARMAG: rebuildStarsDL = 1; break; default: break; } } #endif void GUI_Viewport(int *width, int *height) { #ifdef HAVE_GLUI int tx, ty, tw, th; if (fullscreeninGUI) glViewport(0, 0, *width, *height); else { GLUI_Master.get_viewport_area(&tx, &ty, &tw, &th); GLUI_Master.auto_set_viewport(); *width = tw; *height = th; } #else glViewport(0, 0, *width, *height); #endif } void GUI_Init(void) { #ifdef HAVE_GLUI int i; char sbuf[80]; if (fullscreen) return; GLUI_Master.set_glutKeyboardFunc(Key); GLUI_Master.set_glutSpecialFunc(Special); GLUI_Master.set_glutMouseFunc(Mouse); glutIdleFunc(NULL); GLUI_Master.set_glutIdleFunc(Idle); glui_rwin = GLUI_Master.create_glui_subwindow(main_window, GLUI_SUBWINDOW_RIGHT); glui_rwin->set_main_gfx_window(main_window); list_source = glui_rwin->add_listbox("Source:", &currsource, CAM_SOURCE, (GLUI_Update_CB) glui_callback); for (i = 0; i < NUMBODIES; i++) switch (planets[i].Type) { case RING: case ATMOSPHERE: break; case SATELLITE: case ORBITER: sprintf(sbuf, " %s", planets[i].Name); list_source->add_item(i, sbuf); break; default: list_source->add_item(i, planets[i].Name); break; } list_source->enabled = true; list_target = glui_rwin->add_listbox("Target:", &currtarget, CAM_TARGET, (GLUI_Update_CB) glui_callback); for (i = 0; i < NUMBODIES; i++) switch (planets[i].Type) { case RING: case ATMOSPHERE: break; case SATELLITE: case ORBITER: sprintf(sbuf, " %s", planets[i].Name); list_target->add_item(i, sbuf); break; default: list_target->add_item(i, planets[i].Name); break; } glui_rwin->add_button("Go there!", CAM_NEAR, (GLUI_Update_CB) glui_callback); GLUI_Panel *camera_panel = glui_rwin->add_panel("Camera Mode"); radio = glui_rwin->add_radiogroup_to_panel(camera_panel, &cmode, CAM_CMODE, (GLUI_Update_CB) glui_callback); cam1 = glui_rwin->add_radiobutton_to_group(radio, "Free"); cam2 = glui_rwin->add_radiobutton_to_group(radio, "Linked"); cam3 = glui_rwin->add_radiobutton_to_group(radio, "Body to Body"); cam4 = glui_rwin->add_radiobutton_to_group(radio, "Orbiter"); glui_follow = glui_rwin->add_checkbox_to_panel(camera_panel, "Follow", &follow, CAM_FOLLOW, (GLUI_Update_CB) glui_callback); if (ISASPACECRAFT(currtarget)) glui_follow->disable(); control_panel = glui_rwin->add_panel("", GLUI_PANEL_NONE); head_trans = glui_rwin->add_translation_to_panel(control_panel, "Heading", GLUI_TRANSLATION_XY, NULL, CAM_HEADING, (GLUI_Update_CB) glui_callback); glui_rwin->add_column_to_panel(control_panel, false); roll_trans = glui_rwin->add_translation_to_panel(control_panel, "Roll/Speed", GLUI_TRANSLATION_XY, NULL, CAM_ROLL, (GLUI_Update_CB) glui_callback); GLUI_Panel *lens_panel = glui_rwin->add_panel("", GLUI_PANEL_NONE); /* Insert extra blank spaces to avoid misalignment */ GLUI_Translation *trans_fov = glui_rwin->add_translation_to_panel(lens_panel, " FOV ", GLUI_TRANSLATION_Z, &fov); trans_fov->set_speed(0.1); trans_fov->set_z(fov); glui_rwin->add_column_to_panel(lens_panel, false); trans_zoom = glui_rwin->add_translation_to_panel(lens_panel, " ZOOM ", GLUI_TRANSLATION_Z, &zoom); trans_zoom->set_speed(0.1); trans_zoom->set_z(zoom); GLUI_Spinner *glui_tf = glui_rwin->add_spinner("Timefactor:", GLUI_SPINNER_INT, &timefactor); glui_tf->set_int_limits(-5000, 5000); glui_tf->set_speed(0.001); glui_rwin->add_button("Options", OPT_OPEN, (GLUI_Update_CB) glui_callback); glui_rwin->add_button("Hide GUI", GUI_HIDE, (GLUI_Update_CB) glui_callback); glui_rwin->add_button("Quit", GUI_QUIT, (GLUI_Update_CB) glui_callback); if (!cmode) control_panel->disable(); update_cmode(); #endif } openuniverse-1.0beta3.1.orig/src/loadbmf.cpp0000644000175000017500000002235007107356032020725 0ustar paulliupaulliu/* * Sample BMF file reader (from view3ds by David Farrell) */ #include #include #include #ifdef WIN32 #include #endif #include "GL/glut.h" #include "bmf.h" #include "ou.h" GLubyte *read_JPEG_file(char *, int *, int *, int *); char modelspath[100] = MODEL_DIR; BMFObject *LoadBMF(char *filename, double radius) { uword MeshType; SparseMesh *MaterialList; StripMesh *StripMaterialList; BMFObject *obj; FILE *in; int i, j; int width, height, components; GLubyte *image; char s[120]; /* openuniverse */ double max = 0.0, d; /* openuniverse */ /* Create the new BMF object */ if (!(obj = (BMFObject *) malloc(sizeof(BMFObject)))) { error("Can't allocate memory for BMFObject\n"); shutdown(1); } sprintf(s, "%s/%s", modelspath, filename); if (!(in = fopen(s, "rb"))) { sprintf(s, "Can't open file %s", filename); error("Can't open file\n"); shutdown(1); } obj->texsize = 0; /* Get number of materials */ fread(&obj->NumMaterials, sizeof(uword), 1, in); /* Get mesh type */ fread(&MeshType, sizeof(uword), 1, in); if (MeshType == 0) { /* Sparse Triangles */ /* Allocate space for the materials */ if (! (MaterialList = (SparseMesh *) malloc(sizeof(SparseMesh) * obj->NumMaterials))) { error("Can't allocate memory for materials\n"); shutdown(1); } obj->sparse = MaterialList; obj->strip = 0; /* Read in each material */ for (i = 0; i < obj->NumMaterials; i++) { /* Get the texture's name length */ fread(&MaterialList[i].texture_name_length, sizeof(uword), 1, in); if (MaterialList[i].texture_name_length == 0) { error("Invalid texture name length\n"); shutdown(1); } /* Get the texture's name */ MaterialList[i].texture_name = (char *) malloc(MaterialList[i].texture_name_length); fread(MaterialList[i].texture_name, MaterialList[i].texture_name_length, 1, in); if (MaterialList[i].texture_name_length > 1) { for (j = 0; j < MaterialList[i].texture_name_length; j++) MaterialList[i].texture_name[j] = (char) tolower(MaterialList[i].texture_name[j]); image = read_JPEG_file(MaterialList[i].texture_name, &width, &height, &components); if (image == NULL) { sprintf(s, "reading image %s", MaterialList[i].texture_name); error(s); shutdown(1); } image = texture_LOD(image, &width, &height, components); if (components == 1) j = 1; else j = color_depth / 8; obj->texsize += (width * height * j); glGenTextures(1, &MaterialList[i].texbind); glBindTexture(GL_TEXTURE_2D, MaterialList[i].texbind); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexImage2D(GL_TEXTURE_2D, 0, components == 3 ? cd_rgb : cd_lum, width, height, 0, components == 3 ? GL_RGB : GL_LUMINANCE, GL_UNSIGNED_BYTE, image); free(image); } /* Read in RGB colors */ fread(&MaterialList[i].ambient, sizeof(BMF_RGBCOLOR), 1, in); fread(&MaterialList[i].diffuse, sizeof(BMF_RGBCOLOR), 1, in); fread(&MaterialList[i].specular, sizeof(BMF_RGBCOLOR), 1, in); /* Get the number of vertices */ fread(&MaterialList[i].number_of_vertices, sizeof(uword), 1, in); /* Allocate space for the vertex list */ MaterialList[i].vertexlist = (BMF_UNVERTEX *) malloc(sizeof(BMF_UNVERTEX) * MaterialList [i].number_of_vertices); if (MaterialList[i].vertexlist == 0) { error("Error allocating memory for vertexlist\n"); shutdown(1); } /* Read in the vertex list */ fread(MaterialList[i].vertexlist, sizeof(BMF_UNVERTEX), MaterialList[i].number_of_vertices, in); for (j = 0; j < MaterialList[i].number_of_vertices; j++) { d = DISTANCE(MaterialList[i].vertexlist[j].x, MaterialList[i].vertexlist[j].y, MaterialList[i].vertexlist[j].z); if (d > max) max = d; } /* Read in the number of polygons */ fread(&MaterialList[i].number_of_triangles, sizeof(uword), 1, in); /* Allocate space for the index list */ MaterialList[i].indexlist = (BMF_SURFACE *) malloc(sizeof(BMF_SURFACE) * MaterialList [i].number_of_triangles); /* Read in the triangle indices */ fread(MaterialList[i].indexlist, sizeof(BMF_SURFACE), MaterialList[i].number_of_triangles, in); } /* Sorta vertex normalization */ for (i = 0; i < obj->NumMaterials; i++) { for (j = 0; j < MaterialList[i].number_of_vertices; j++) { MaterialList[i].vertexlist[j].x /= max / radius; MaterialList[i].vertexlist[j].y /= max / radius; MaterialList[i].vertexlist[j].z /= max / radius; } } } else { /* Triangle Strips */ /* Allocate space for the materials */ if (! (StripMaterialList = (StripMesh *) malloc(sizeof(StripMesh) * obj->NumMaterials))) { error("Can't allocate memory for materials\n"); shutdown(1); } obj->sparse = 0; obj->strip = StripMaterialList; /* Read in each material */ for (i = 0; i < obj->NumMaterials; i++) { /* Get the texture's name length */ fread(&StripMaterialList[i].texture_name_length, sizeof(uword), 1, in); if (StripMaterialList[i].texture_name_length == 0) { error("Invalid texture name length\n"); shutdown(1); } /* Get the texture's name */ StripMaterialList[i].texture_name = (char *) malloc(StripMaterialList[i].texture_name_length); fread(StripMaterialList[i].texture_name, StripMaterialList[i].texture_name_length, 1, in); if (StripMaterialList[i].texture_name_length > 1) { for (j = 0; j < StripMaterialList[i].texture_name_length; j++) StripMaterialList[i].texture_name[j] = (char) tolower(StripMaterialList[i].texture_name[j]); image = read_JPEG_file(StripMaterialList[i].texture_name, &width, &height, &components); if (image == NULL) { sprintf(s, "error reading image %s", StripMaterialList[i].texture_name); error(s); shutdown(1); } image = texture_LOD(image, &width, &height, components); if (components == 1) j = 1; else j = color_depth / 8; obj->texsize += (width * height * j); glGenTextures(1, &StripMaterialList[i].texbind); glBindTexture(GL_TEXTURE_2D, StripMaterialList[i].texbind); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexImage2D(GL_TEXTURE_2D, 0, components == 3 ? cd_rgb : cd_lum, width, height, 0, components == 3 ? GL_RGB : GL_LUMINANCE, GL_UNSIGNED_BYTE, image); free(image); } /* Read in RGB colors */ fread(&StripMaterialList[i].ambient, sizeof(BMF_RGBCOLOR), 1, in); fread(&StripMaterialList[i].diffuse, sizeof(BMF_RGBCOLOR), 1, in); fread(&StripMaterialList[i].specular, sizeof(BMF_RGBCOLOR), 1, in); /* Get the number of vertices */ fread(&StripMaterialList[i].number_of_vertices, sizeof(uword), 1, in); /* Allocate space for the vertex list */ StripMaterialList[i].vertexlist = (BMF_UNVERTEX *) malloc(sizeof(BMF_UNVERTEX) * StripMaterialList [i].number_of_vertices); if (StripMaterialList[i].vertexlist == 0) { error("Error allocating memory for vertexlist\n"); shutdown(1); } /* Read in the vertex list */ fread(StripMaterialList[i].vertexlist, sizeof(BMF_UNVERTEX), StripMaterialList[i].number_of_vertices, in); for (j = 0; j < StripMaterialList[i].number_of_vertices; j++) { d = DISTANCE(StripMaterialList[i].vertexlist[j].x, StripMaterialList[i].vertexlist[j].y, StripMaterialList[i].vertexlist[j].z); if (d > max) max = d; } /* Read in the number of strips */ fread(&StripMaterialList[i].number_of_strips, sizeof(uword), 1, in); /* Allocate space for the strip length list */ StripMaterialList[i].length_of_strip = (uword *) malloc(sizeof(uword) * StripMaterialList[i].number_of_strips); /* Read in the triangle strip lengths */ fread(StripMaterialList[i].length_of_strip, sizeof(uword), StripMaterialList[i].number_of_strips, in); /* Read in the number of strip points */ fread(&StripMaterialList[i].number_of_strip_indices, sizeof(uword), 1, in); /* Allocate space for the strip length list */ StripMaterialList[i].stripindex = (uword *) malloc(sizeof(uword) * StripMaterialList [i].number_of_strip_indices); /* Read in the triangle strip lengths */ fread(StripMaterialList[i].stripindex, sizeof(uword), StripMaterialList[i].number_of_strip_indices, in); } /* Sorta vertex normalization */ for (i = 0; i < obj->NumMaterials; i++) { for (j = 0; j < StripMaterialList[i].number_of_vertices; j++) { StripMaterialList[i].vertexlist[j].x /= max / radius; StripMaterialList[i].vertexlist[j].y /= max / radius; StripMaterialList[i].vertexlist[j].z /= max / radius; } } } fclose(in); obj->radius = radius; return obj; } openuniverse-1.0beta3.1.orig/src/radar.cpp0000644000175000017500000000456707107356114020425 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" float radarzoom = 1000.0; int radar = 0; void Radar() { int i, inrange = 0; char sbuf[80]; double pos[3], v1[3], angle; double t, range; glEnable(GL_BLEND); glColor4f(0.4, 0.4, 0.4, 0.5); glRecti(50, 50, width - 50, height - 50); glDisable(GL_BLEND); if (height > width) range = (double) (width - 100) * radarzoom / 2.0; else range = (double) (height - 100) * radarzoom / 2.0; glPushMatrix(); glTranslatef(width / 2, height / 2, 0); angle = RAD2DEG(atan2(cameye[Z], cameye[X])) - 90.0; glRotatef(angle, 0.0, 0.0, 1.0); for (i = 0; i < NUMBODIES; i++) switch (planets[i].Type) { case SATELLITE: case ORBITER: SUBVECTORS(v1, planets[i].pos, campos); t = MODULE(v1); if (t > RADIUSSCALE(planets[planets[i].Sat].Radius * 10.0)) continue; case SPACESHIP: case ASTEROID: case COMET: case PLANET: pos[X] = (planets[i].pos[X] - campos[X]) / radarzoom; pos[Y] = (planets[i].pos[Z] - campos[Z]) / radarzoom; pos[Z] = 0.0; t = MODULE(pos); if (t > (height / 2 - 50)) continue; if (t < 1) continue; pos[X] = -pos[X]; pos[Y] = pos[Y]; pos[Z] = 0.0; glColor4fv(planets[i].Color); glutprintstring(pos[X], pos[Y], pos[Z], planets[i].Name); glBegin(GL_LINE_LOOP); glVertex2i(0, 0); glVertex2i((int) pos[X], (int) pos[Y]); glEnd(); inrange++; break; } glPopMatrix(); glColor4f(0.7, 0.7, 0.7, 1.0); sprintf(sbuf, "Objects in range: %d", inrange); glutprintstring(50, height - 50 - glyphheight, 0, sbuf); sprintf(sbuf, "Range (million Km): %.1f", range / 1000.0); glutprintstring(50, height - 50 - glyphheight * 2, 0, sbuf); } openuniverse-1.0beta3.1.orig/src/texture.h0000644000175000017500000000071007107356203020462 0ustar paulliupaulliu/* * read_texture() - read in an image file in SGI 'libimage' format * currently its very simple minded and converts all images * to RGBA8 regardless of the input format and returns the * original number of components in the appropriate parameter. * * * the components are converted as follows * L -> LLL 1.0 * LA -> LLL A * RGB -> RGB 1.0 * RGBA -> RGB A * */ unsigned *read_texture(char *name, int *, int *, int *); openuniverse-1.0beta3.1.orig/src/camera.cpp0000644000175000017500000001216207116527500020551 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" /* Updates camera position, eye and up vectors acording to current camera mode. Parameters tell the function where to store result, which is useful to differentiate normal operation and transitions. */ void UpdateCamera(double tcam[3], double teye[3], double tup[3]) { int sat; double rad, d, o, p, x, y, z, v1[3], v2[3]; double tocam[3], toeye[3], toup[3]; switch (cmode) { case 0: CROSSPRODUCT(v1, camup, cameye); NORMALIZE(v1); CROSSPRODUCT(camup, cameye, v1); NORMALIZE(camup); if (abs(camrot[Z]) > 8) Rotation(camrot[Z] * 0.0001, cameye, camup); if (abs(camrot[X]) > 8) Rotation(camrot[X] * 0.0001, camup, cameye); if (abs(camrot[Y]) > 8) { CROSSPRODUCT(v1, camup, cameye); Rotation(camrot[Y] * 0.0001, v1, cameye); Rotation(camrot[Y] * 0.0001, v1, camup); } COPYVECTOR(tcam, campos); COPYVECTOR(teye, cameye); COPYVECTOR(tup, camup); break; case 1: COPYVECTOR(tocam, campos); COPYVECTOR(toup, camup); if (smooth_transitions && transition) dosmooth = 1; SUBVECTORS(toeye, planets[currtarget].pos, campos); NORMALIZE(toeye); CROSSPRODUCT(v1, toup, toeye); CROSSPRODUCT(toup, toeye, v1); COPYVECTOR(tcam, tocam); COPYVECTOR(teye, toeye); COPYVECTOR(tup, toup); break; case 2: /* Body to Body Camera, simply places the camera near the current target with current source line view */ if (planets[currtarget].Type == SATELLITE) { /* If current target is a satellite take also into account host planet data */ sat = currtarget; rad = RADIUSSCALE(planets[sat].Radius * zoom); d = DISTANCE(planets[sat].pos[X] - planets[currsource].pos[X], planets[sat].pos[Y] - planets[currsource].pos[Y], planets[sat].pos[Z] - planets[currsource].pos[Z]); if (rad > d) rad = d; tocam[X] = (planets[sat].pos[X] - planets[currsource].pos[X]) / d * (d - rad) + planets[currsource].pos[X]; tocam[Y] = (planets[sat].pos[Y] - planets[currsource].pos[Y]) / d * (d - rad) + planets[currsource].pos[Y]; tocam[Z] = (planets[sat].pos[Z] - planets[currsource].pos[Z]) / d * (d - rad) + planets[currsource].pos[Z]; } else { rad = RADIUSSCALE(planets[currtarget].Radius * zoom); d = DISTANCE(planets[currtarget].pos[X] - planets[currsource].pos[X], planets[currtarget].pos[Y] - planets[currsource].pos[Y], planets[currtarget].pos[Z] - planets[currsource].pos[Z]); if (rad > d) rad = d; tocam[X] = (planets[currtarget].pos[X] - planets[currsource].pos[X]) / d * (d - rad) + planets[currsource].pos[X]; tocam[Y] = (planets[currtarget].pos[Y] - planets[currsource].pos[Y]) / d * (d - rad) + planets[currsource].pos[Y]; tocam[Z] = (planets[currtarget].pos[Z] - planets[currsource].pos[Z]) / d * (d - rad) + planets[currsource].pos[Z]; } SUBVECTORS(toeye, planets[currtarget].pos, tocam); NORMALIZE(toeye); INITVECTOR(toup, 0.0, 1.0, 0.0); CROSSPRODUCT(v1, toup, toeye); CROSSPRODUCT(toup, toeye, v1); if (smooth_transitions && transition) dosmooth = 1; COPYVECTOR(tcam, tocam); COPYVECTOR(teye, toeye); COPYVECTOR(tup, toup); break; case 3: /* Orbiter Camera */ if (currtarget == 0) break; /* Set Camera in equatorial orbit */ INITVECTOR(v1, RADIUSSCALE(planets[currtarget].Radius * zoom), 0.0, 0.0); INITVECTOR(v2, 0.0, 1.0, 0.0); /* Rotate camera to simulate orbit */ Rotation(-days * 10.0, v2, v1); /* Rotate orbit plane to match planet tilt */ o = cos(DEG2RAD (planets[currtarget].Degrees + planets[planets[currtarget].Sat].Degrees) + planets[planets[currtarget].Sat].Inclination); p = sin(DEG2RAD (planets[currtarget].Degrees + planets[planets[currtarget].Sat].Degrees) + planets[planets[currtarget].Sat].Inclination); tocam[X] = planets[currtarget].pos[X] + v1[X]; tocam[Y] = planets[currtarget].pos[Y] + v1[Y] * o + v1[Z] * p; tocam[Z] = planets[currtarget].pos[Z] + v1[Y] * p + v1[Z] * o; /* Do the same with up vector */ x = 0.0; y = 1.0; z = 0.0; INITVECTOR(toup, 0.0, o, -p); SUBVECTORS(toeye, planets[currtarget].pos, tocam); NORMALIZE(toeye); if (smooth_transitions && transition) dosmooth = 1; COPYVECTOR(tcam, tocam); COPYVECTOR(teye, toeye); COPYVECTOR(tup, toup); break; default: break; } } openuniverse-1.0beta3.1.orig/src/gui.h0000644000175000017500000000310207107355770017554 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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. */ #ifdef HAVE_GLUI #include "glui.h" #include "arcball.h" #include "quaternion.h" #define OPT_OPEN 100 #define OPT_HIDE 101 #define CAM_NEAR 103 #define CAM_CMODE 104 #define CAM_SOURCE 105 #define CAM_TARGET 106 #define GUI_HIDE 107 #define OPT_STARMAG 108 #define GUI_QUIT 110 #define CAM_FOLLOW 112 #define CAM_HEADING 113 #define CAM_ROLL 114 #define TRAILS_OPEN 115 #define TRAILS_HIDE 116 extern GLUI *glui_rwin, *glui_bwin, *glui_optwin; extern GLUI_Listbox *list_source, *list_target; extern GLUI_Rotation *head_rot, *roll_rot; extern GLUI_Panel *control_panel; extern GLUI_Checkbox *glui_follow; extern GLUI_RadioGroup *radio; extern int fullscreeninGUI, rebuildStarsDL; void glui_callback(int); void update_cmode(void); #endif void GUI_Viewport(int *, int *); void GUI_Init(void); openuniverse-1.0beta3.1.orig/src/macros.h0000644000175000017500000000746407116527543020272 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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. */ /* Macros used to scale down distances/radii so we can reduce the jerkiness effect in outter bodies */ #define RADIUSSCALE(x) ((x)*6.378) #define DISTCORRECTION(x) ((x) * AU) /* Need no comment ;-) */ #define DEG2RAD(x) ((x)*M_PI/180.0) #define RAD2DEG(x) ((x)*180.0/M_PI) #define DISTANCE(x,y,z) sqrt((x)*(x)+(y)*(y)+(z)*(z)) #define CLAMP( X, MIN, MAX ) ( (X)<(MIN) ? (MIN) : ((X)>(MAX) ? (MAX) : (X)) ) #define CLAMP_SELF(x, mn, mx) \ ( (x)<(mn) ? ((x) = (mn)) : ((x)>(mx) ? ((x)=(mx)) : (x)) ) #define LOG(m,f) \ log(m); \ f; \ log(" ... OK\n"); \ /* Vector macros */ #define INITVECTOR( A, x, y, z) \ do { \ (A)[0] = (x); \ (A)[1] = (y); \ (A)[2] = (z); \ } while (0) #define COPYVECTOR( A, B ) \ do { \ (A)[0] = (B)[0]; \ (A)[1] = (B)[1]; \ (A)[2] = (B)[2]; \ } while (0) #define SAMEVECTOR( A, B ) \ ( ((A)[0] == (B)[0]) ? (( ((A)[1] == (B)[1]) ? (( ((A)[2] == (B)[2]) ? (1) : 0)) : 0 )) : 0 ) #define MODULE(V) sqrt(V[0]*V[0]+V[1]*V[1]+V[2]*V[2]) #define NORMALIZE(V) \ do { \ double d=MODULE(V); \ (V)[0]/=d; \ (V)[1]/=d; \ (V)[2]/=d; \ } while (0) #define ADDVECTORS( A, B, C ) \ do { \ (A)[0] = (B)[0] + (C)[0]; \ (A)[1] = (B)[1] + (C)[1]; \ (A)[2] = (B)[2] + (C)[2]; \ } while (0) #define SUBVECTORS( A, B, C ) \ do { \ (A)[0] = (B)[0] - (C)[0]; \ (A)[1] = (B)[1] - (C)[1]; \ (A)[2] = (B)[2] - (C)[2]; \ } while (0) #define MULTVECTOR( A, B, K ) \ do { \ (A)[0] = (B)[0] * (K); \ (A)[1] = (B)[1] * (K); \ (A)[2] = (B)[2] * (K); \ } while (0) #define DIVVECTOR( A, B, K ) \ do { \ (A)[0] = (B)[0] / (K); \ (A)[1] = (B)[1] / (K); \ (A)[2] = (B)[2] / (K); \ } while (0) #define DOTPRODUCT( A, B ) ( (A)[0]*(B)[0] + (A)[1]*(B)[1] + (A)[2]*(B)[2] ) #define CROSSPRODUCT(A, B, C) \ do { \ double x,y,z; \ x = (B)[1]*(C)[2] - (B)[2]*(C)[1]; \ y = (B)[2]*(C)[0] - (B)[0]*(C)[2]; \ z = (B)[0]*(C)[1] - (B)[1]*(C)[0]; \ (A)[0] = x; \ (A)[1] = y; \ (A)[2] = z; \ } while (0) #define ISASPACECRAFT(S) ((planets[S].Type==SPACESHIP) || (planets[S].Type==ORBITER)) openuniverse-1.0beta3.1.orig/src/rings.cpp0000644000175000017500000001230407116527566020455 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" static void Ring(double, double, int, planetdata *); static int inrange(double, double, double); void DrawRing(int body) { glBindTexture(GL_TEXTURE_2D, planets[body].textures[0]); glDisable(GL_CULL_FACE); glDisable(GL_LIGHTING); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); Ring(RADIUSSCALE(planets[body].InnerRadius), RADIUSSCALE(planets[body].Radius), slices * 2, &planets[body]); if (lighting) glEnable(GL_LIGHTING); glEnable(GL_CULL_FACE); glDisable(GL_BLEND); } static void Ring(double innerRadius, double outerRadius, int slices, planetdata * pdata) { GLfloat da, dr; int j = pdata->Sat; GLfloat sa, ca; GLfloat r1 = innerRadius; GLfloat r2; GLint s; GLfloat a; double b; if (!pdata->initialized) { pdata->vertex_list = (vertex_data *) malloc(sizeof(vertex_data) * (slices + 1) * 2); pdata->indices = (GLuint *) malloc(sizeof(GLuint) * (slices + 1) * 2); da = 2.0 * M_PI / slices; dr = (outerRadius - innerRadius); r2 = r1 + dr; for (s = 0; s <= slices; s++) { if (s == slices) a = 0.0; else a = s * da; sa = sin(a); ca = cos(a); if (s % 2) { pdata->vertex_list[s * 2].u = 1.0; pdata->vertex_list[s * 2].v = 0.0; } else { pdata->vertex_list[s * 2].u = 1.0; pdata->vertex_list[s * 2].v = 1.0; } pdata->vertex_list[s * 2].x = r2 * sa; pdata->vertex_list[s * 2].y = r2 * ca; pdata->vertex_list[s * 2].z = 0.0; pdata->vertex_list[s * 2].nx = 0.0; pdata->vertex_list[s * 2].ny = 0.0; pdata->vertex_list[s * 2].nz = 1.0; pdata->indices[s * 2] = s * 2; if (a < (M_PI / 3.0)) { pdata->vertex_list[s * 2].r = pdata->vertex_list[s * 2].g = pdata->vertex_list[s * 2].b = 0.2; pdata->vertex_list[s * 2].a = 1.0; } else { pdata->vertex_list[s * 2].r = pdata->Color[0]; pdata->vertex_list[s * 2].g = pdata->Color[1]; pdata->vertex_list[s * 2].b = pdata->Color[2]; pdata->vertex_list[s * 2].a = 1.0; } if (s % 2) { pdata->vertex_list[s * 2 + 1].u = 0.0; pdata->vertex_list[s * 2 + 1].v = 0.0; } else { pdata->vertex_list[s * 2 + 1].u = 0.0; pdata->vertex_list[s * 2 + 1].v = 1.0; } pdata->vertex_list[s * 2 + 1].x = r1 * sa; pdata->vertex_list[s * 2 + 1].y = r1 * ca; pdata->vertex_list[s * 2 + 1].z = 0.0; pdata->vertex_list[s * 2 + 1].nx = 0.0; pdata->vertex_list[s * 2 + 1].ny = 0.0; pdata->vertex_list[s * 2 + 1].nz = 1.0; pdata->indices[s * 2 + 1] = s * 2 + 1; if (a < (M_PI / 3.0)) { pdata->vertex_list[s * 2 + 1].r = pdata->vertex_list[s * 2 + 1].g = pdata->vertex_list[s * 2 + 1].b = 0.2; pdata->vertex_list[s * 2 + 1].a = 1.0; } else { pdata->vertex_list[s * 2 + 1].r = pdata->Color[0]; pdata->vertex_list[s * 2 + 1].g = pdata->Color[1]; pdata->vertex_list[s * 2 + 1].b = pdata->Color[2]; pdata->vertex_list[s * 2 + 1].a = 1.0; } } pdata->initialized = 1; } else { da = 2.0 * M_PI / slices; dr = (outerRadius - innerRadius); r2 = r1 + dr; for (s = 0; s <= slices; s++) { if (s == slices) a = 0.0; else a = s * da; sa = sin(a); ca = cos(a); b = DEG2RAD(planets[j].DeltaRotation) + atan2(planets[j].pos[Z], planets[j].pos[X]) + M_PI / 3.0; while (b > (2 * M_PI)) b -= (2 * M_PI); while (b < 0.0) b += (2 * M_PI); if (inrange(a, b, b + M_PI / 3.0)) { pdata->vertex_list[s * 2].r = pdata->vertex_list[s * 2].g = pdata->vertex_list[s * 2].b = 0.2; pdata->vertex_list[s * 2].a = 1.0; pdata->vertex_list[s * 2 + 1].r = pdata->vertex_list[s * 2 + 1].g = pdata->vertex_list[s * 2 + 1].b = 0.2; pdata->vertex_list[s * 2 + 1].a = 1.0; } else { pdata->vertex_list[s * 2].r = pdata->Color[0]; pdata->vertex_list[s * 2].g = pdata->Color[1]; pdata->vertex_list[s * 2].b = pdata->Color[2]; pdata->vertex_list[s * 2].a = 1.0; pdata->vertex_list[s * 2 + 1].r = pdata->Color[0]; pdata->vertex_list[s * 2 + 1].g = pdata->Color[1]; pdata->vertex_list[s * 2 + 1].b = pdata->Color[2]; pdata->vertex_list[s * 2 + 1].a = 1.0; } } glInterleavedArrays(GL_T2F_C4F_N3F_V3F, 0, pdata->vertex_list); glDrawElements(GL_QUAD_STRIP, (slices + 1) * 2, GL_UNSIGNED_INT, pdata->indices); } } static int inrange(double a, double b, double c) { int i = 0; double tmp; if (c > (2 * M_PI)) tmp = a + 2 * M_PI; else tmp = a; if ((tmp >= b) && (tmp <= c)) i = 1; if ((a >= b) && (a <= c)) i = 1; return i; } openuniverse-1.0beta3.1.orig/src/timer.cpp0000644000175000017500000000260407107356210020437 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" #include "gui.h" void TimerFunc(int i) { switch (i) { case 0: if (demomode) { cmode = (rand() % 3) + 1; if (cmode > 1) do { currtarget = rand() % NUMBODIES; currsource = rand() % NUMBODIES; } while ((currsource == currtarget) || (planets[currsource].Type >= RING) || (planets[currtarget].Type >= RING)); zoom = rand() % 5 + 5.0; #ifdef HAVE_GLUI if (!fullscreeninGUI) update_cmode(); #endif transition = 1; dosmooth = 1; if (!(rand() % 5)) logo = 1; } glutTimerFunc(demostep * 1000, TimerFunc, 0); break; case 1: help = 0; break; } } openuniverse-1.0beta3.1.orig/src/cfgparse.tab.cpp0000644000175000017500000014171707116527671021702 0ustar paulliupaulliu /* A Bison parser, made from cfgparse.y by GNU Bison version 1.25 */ #define YYBISON 1 /* Identify Bison output. */ #define yyparse cfgparse #define yylex cfglex #define yyerror cfgerror #define yylval cfglval #define yychar cfgchar #define yydebug cfgdebug #define yynerrs cfgnerrs #define INTEGER_NUM 258 #define DOUBLE_NUM 259 #define NAME 260 #define SUN 261 #define PLANET 262 #define ASTEROID 263 #define COMET 264 #define SATELLITE 265 #define ORBITER 266 #define SPACESHIP 267 #define RING 268 #define ATMOSPHERE 269 #define SPLASHBITMAP 270 #define BORDER 271 #define FILTER 272 #define SHADING 273 #define SIM_DATE 274 #define PAUSE 275 #define REALTIME 276 #define PLANETS_LABELS 277 #define STARS_LABELS 278 #define INFO 279 #define STAR_BRIGHT 280 #define STAR_SIZE 281 #define CAM_SPEED 282 #define ATMOSPHERES 283 #define CAM_MODE 284 #define TARGET 285 #define SOURCE 286 #define SLICES 287 #define STACKS 288 #define JPEG_QUALITY 289 #define MIPMAP 290 #define MIPMAP_FILTER 291 #define FONT 292 #define LEVELOFDETAIL 293 #define COLORDEPTH 294 #define LOGO 295 #define EOL 296 #define MILKYWAY 297 #define MESSIER 298 #define DEMO 299 #define DEMOSTEP 300 #define TEXTURECOMPRESSION 301 #line 1 "cfgparse.y" #include /* For math functions, cos(), sin(), etc. */ #include #include "ou.h" void yyerror(char *s); void SetUpRings(int, char *, float, float, float), SetUpAtmosphere(int, char *, float, int), SetUpBody(int, char *, int), SetUpAsteroid(int, char *), SetUpOrbiter(int, char *), SetUpSpaceShip(int, char *), SetUpComet(int, char *, float, float, int), InitSun(char *, double, int); int yylex(void); int yylineno = 0; int body_index = 1, last_planet = 0, last_satellite = 0, currblock = PLANET; double v[3]; extern planetdata planets[MAXBODIES]; extern FILE *cfgin; extern GLenum smodel; extern int border, filter, paused, demomode, demostep, plabels, slabels, realtime, cmode, currtarget, currsource, jpeg_quality, mipmap, info, mipmap_filter, fonttype, LOD, tex_compr, color_depth; extern GLenum cd_rgb, cd_lum, cd_rgba, cd_luma; extern float speed, star_mag; struct tm date; #line 32 "cfgparse.y" typedef union { int ival; double dval; char name[100]; } YYSTYPE; #include #ifndef __cplusplus #ifndef __STDC__ #define const #endif #endif #define YYFINAL 288 #define YYFLAG -32768 #define YYNTBASE 50 #define YYTRANSLATE(x) ((unsigned)(x) <= 301 ? yytranslate[x] : 72) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48, 2, 49, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 }; #if YYDEBUG != 0 static const short yyprhs[] = { 0, 0, 1, 4, 8, 12, 16, 20, 24, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93, 97, 101, 105, 109, 113, 117, 121, 125, 129, 131, 133, 135, 143, 145, 147, 149, 150, 181, 182, 184, 187, 188, 189, 219, 220, 222, 225, 226, 248, 249, 274, 275, 303, 304, 316, 317, 319, 322, 333, 334 }; static const short yyrhs[] = { -1, 50, 51, 0, 15, 47, 3, 0, 28, 47, 3, 0, 16, 47, 3, 0, 17, 47, 5, 0, 18, 47, 5, 0, 19, 47, 5, 5, 0, 20, 47, 3, 0, 21, 47, 3, 0, 44, 47, 3, 0, 45, 47, 3, 0, 22, 47, 3, 0, 23, 47, 3, 0, 24, 47, 3, 0, 25, 47, 4, 0, 26, 47, 4, 0, 27, 47, 4, 0, 29, 47, 3, 0, 30, 47, 3, 0, 31, 47, 3, 0, 32, 47, 3, 0, 33, 47, 3, 0, 34, 47, 3, 0, 35, 47, 3, 0, 36, 47, 5, 0, 37, 47, 3, 0, 38, 47, 3, 0, 46, 47, 3, 0, 39, 47, 3, 0, 40, 47, 3, 0, 42, 47, 3, 0, 43, 47, 3, 0, 52, 0, 53, 0, 70, 0, 6, 48, 5, 4, 3, 4, 49, 0, 54, 0, 63, 0, 65, 0, 0, 7, 5, 48, 5, 3, 3, 3, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 55, 67, 68, 56, 60, 49, 0, 0, 57, 0, 56, 57, 0, 0, 0, 10, 5, 48, 5, 3, 3, 3, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 58, 67, 60, 59, 49, 0, 0, 61, 0, 60, 61, 0, 0, 11, 5, 48, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 62, 49, 0, 0, 8, 5, 48, 5, 4, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 64, 56, 49, 0, 0, 9, 5, 48, 5, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 66, 49, 0, 0, 14, 48, 5, 3, 3, 3, 4, 4, 4, 3, 49, 0, 0, 69, 0, 68, 69, 0, 13, 48, 5, 3, 3, 3, 4, 4, 4, 49, 0, 0, 12, 5, 48, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 71, 49, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, 52, 52, 54, 60, 64, 68, 75, 82, 90, 94, 98, 102, 106, 110, 114, 118, 122, 126, 130, 134, 138, 142, 146, 150, 158, 162, 175, 178, 181, 184, 203, 207, 211, 215, 215, 215, 217, 223, 223, 223, 225, 255, 257, 258, 259, 261, 292, 294, 296, 297, 298, 300, 328, 331, 365, 367, 396, 399, 400, 414, 415, 415, 417, 434, 451 }; #endif #if YYDEBUG != 0 || defined (YYERROR_VERBOSE) static const char * const yytname[] = { "$","error","$undefined.","INTEGER_NUM", "DOUBLE_NUM","NAME","SUN","PLANET","ASTEROID","COMET","SATELLITE","ORBITER", "SPACESHIP","RING","ATMOSPHERE","SPLASHBITMAP","BORDER","FILTER","SHADING","SIM_DATE", "PAUSE","REALTIME","PLANETS_LABELS","STARS_LABELS","INFO","STAR_BRIGHT","STAR_SIZE", "CAM_SPEED","ATMOSPHERES","CAM_MODE","TARGET","SOURCE","SLICES","STACKS","JPEG_QUALITY", "MIPMAP","MIPMAP_FILTER","FONT","LEVELOFDETAIL","COLORDEPTH","LOGO","EOL","MILKYWAY", "MESSIER","DEMO","DEMOSTEP","TEXTURECOMPRESSION","'='","'{'","'}'","input","line", "sun","body","planet","@1","satellites","satellite","@2","@3","orbiters","orbiter", "@4","asteroid","@5","comet","@6","atmosphere","rings","ring","spaceship","@7", NULL }; #endif static const short yyr1[] = { 0, 50, 50, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 52, 53, 53, 53, 55, 54, 56, 56, 56, 58, 59, 57, 60, 60, 60, 62, 61, 64, 63, 66, 65, 67, 67, 68, 68, 68, 69, 71, 70 }; static const short yyr2[] = { 0, 0, 2, 3, 3, 3, 3, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 7, 1, 1, 1, 0, 30, 0, 1, 2, 0, 0, 29, 0, 1, 2, 0, 21, 0, 24, 0, 27, 0, 11, 0, 1, 2, 10, 0, 19 }; static const short yydefact[] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 34, 35, 38, 39, 40, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 6, 7, 0, 9, 10, 13, 14, 15, 16, 17, 18, 4, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 11, 12, 29, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 54, 0, 0, 43, 0, 0, 0, 0, 44, 0, 41, 0, 55, 45, 0, 58, 0, 56, 0, 60, 0, 0, 0, 0, 43, 61, 0, 57, 0, 0, 49, 62, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 42, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 52, 58, 0, 49, 53, 47, 0, 48, 0, 0 }; static const short yydefgoto[] = { 1, 38, 39, 40, 41, 205, 197, 198, 280, 285, 226, 227, 281, 42, 193, 43, 211, 209, 214, 215, 44, 181 }; static const short yypact[] = {-32768, 1, -44, 7, 45, 46, 47, -41, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,-32768,-32768,-32768, -32768,-32768,-32768,-32768, 49, 39, 40, 41, 42, 83, 88, 87, 89, 90, 93, 94, 95, 96, 97, 98, 99, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,-32768,-32768,-32768,-32768, 126, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768, 129, 130, 131, 133, 134,-32768, 135, 137, 138, 139, 140, 44, 142, 143, 144, 145,-32768, 146, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,-32768, 191, 192, 193, 52, 194, 195, 196,-32768, 197, 199, 200, 201,-32768, 202, 203, 127, 204, 206, 147, -7,-32768, 207,-32768, 65,-32768,-32768, 208, 112, 163,-32768, 76, 205, 209, 85, 198, 210, -8,-32768, 211,-32768, 212, 214, 4, -32768, 213, 217, 218, 219, 0,-32768, 221, 220, 223, 215,-32768,-32768, 224, 225, 227, 222, 228, 229, 230, 231, 232, 233, 234, 235, 237, 238, 239, 240, 241, 216, 226, 242, 243,-32768,-32768, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 255, 256, 257, 258, 260, 262, 263, 264, 265, 267, 268,-32768,-32768, 112, 236, 132,-32768, 132, 254,-32768, 271,-32768 }; static const short yypgoto[] = {-32768, -32768,-32768,-32768,-32768,-32768, -66, -149,-32768,-32768, -69, -226,-32768,-32768,-32768,-32768,-32768, -63,-32768, 59,-32768, -32768 }; #define YYLAST 303 static const short yytable[] = { 233, 287, 196, 196, 45, 213, 50, 2, 3, 4, 5, 225, 46, 6, 196, 225, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 202, 33, 34, 35, 36, 37, 203, 232, 47, 48, 49, 51, 81, 52, 53, 54, 233, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 203, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 86, 82, 83, 84, 85, 87, 88, 133, 89, 90, 91, 92, 93, 94, 95, 185, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 206, 108, 107, 109, 110, 111, 112, 113, 114, 115, 116, 212, 117, 208, 118, 119, 120, 121, 122, 123, 124, 217, 125, 126, 196, 127, 128, 129, 130, 131, 225, 132, 134, 135, 136, 220, 137, 138, 139, 201, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 210, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 182, 183, 184, 186, 187, 188, 189, 190, 218, 191, 192, 194, 195, 199, 200, 204, 207, 216, 284, 222, 223, 228, 282, 213, 224, 229, 230, 0, 235, 231, 234, 236, 241, 238, 239, 240, 0, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 0, 252, 253, 254, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 219, 269, 270, 271, 272, 237, 273, 255, 274, 275, 276, 277, 278, 288, 279, 221, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 286 }; static const short yycheck[] = { 226, 0, 10, 10, 48, 13, 47, 6, 7, 8, 9, 11, 5, 12, 10, 11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 49, 42, 43, 44, 45, 46, 197, 49, 5, 5, 5, 47, 5, 47, 47, 47, 284, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 220, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 3, 48, 48, 48, 48, 3, 5, 49, 5, 5, 3, 3, 3, 3, 3, 49, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 48, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 48, 4, 14, 5, 5, 5, 5, 5, 3, 3, 49, 4, 3, 10, 4, 4, 3, 3, 3, 11, 4, 3, 3, 3, 214, 4, 4, 3, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 282, 3, 3, 3, 280, 13, 5, 3, 3, -1, 3, 5, 4, 3, 5, 4, 4, 3, -1, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, -1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 48, 4, 4, 4, 4, 48, 4, 49, 4, 4, 4, 4, 3, 0, 4, 214, -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 49 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/share/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. 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, 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. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ #ifndef alloca #ifdef __GNUC__ #define alloca __builtin_alloca #else /* not GNU C. */ #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) #include #else /* not sparc */ #if defined (MSDOS) && !defined (__TURBOC__) #include #else /* not MSDOS, or __TURBOC__ */ #if defined(_AIX) #include #pragma alloca #else /* not MSDOS, __TURBOC__, or _AIX */ #ifdef __hpux #ifdef __cplusplus extern "C" { void *alloca (unsigned int); }; #else /* not __cplusplus */ void *alloca (); #endif /* not __cplusplus */ #endif /* __hpux */ #endif /* not _AIX */ #endif /* not MSDOS, or __TURBOC__ */ #endif /* not sparc. */ #endif /* not GNU C. */ #endif /* alloca not defined. */ /* This is the parser code that is written into each bison parser when the %semantic_parser declaration is not specified in the grammar. It was written by Richard Stallman by simplifying the hairy parser used when %semantic_parser is specified. */ /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action as one case of the switch. */ #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 #define YYACCEPT return(0) #define YYABORT return(1) #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(token, value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { yychar = (token), yylval = (value); \ yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { yyerror ("syntax error: cannot back up"); YYERROR; } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 #ifndef YYPURE #define YYLEX yylex() #endif #ifdef YYPURE #ifdef YYLSP_NEEDED #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) #else #define YYLEX yylex(&yylval, &yylloc) #endif #else /* not YYLSP_NEEDED */ #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, YYLEX_PARAM) #else #define YYLEX yylex(&yylval) #endif #endif /* not YYLSP_NEEDED */ #endif /* If nonreentrant, generate the variables here */ #ifndef YYPURE int yychar; /* the lookahead symbol */ YYSTYPE yylval; /* the semantic value of the */ /* lookahead symbol */ #ifdef YYLSP_NEEDED YYLTYPE yylloc; /* location data for the lookahead */ /* symbol */ #endif int yynerrs; /* number of parse errors so far */ #endif /* not YYPURE */ #if YYDEBUG != 0 int yydebug; /* nonzero means print parse trace */ /* Since this is uninitialized, it does not stop multiple parsers from coexisting. */ #endif /* YYINITDEPTH indicates the initial size of the parser's stacks */ #ifndef YYINITDEPTH #define YYINITDEPTH 200 #endif /* YYMAXDEPTH is the maximum size the stacks can grow to (effective only if the built-in stack extension method is used). */ #if YYMAXDEPTH == 0 #undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH #define YYMAXDEPTH 10000 #endif #ifndef YYPARSE_RETURN_TYPE #define YYPARSE_RETURN_TYPE int #endif /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ YYPARSE_RETURN_TYPE yyparse (void); #endif #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ #ifndef __cplusplus /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (to, from, count) char *to; char *from; int count; { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #else /* __cplusplus */ /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (char *to, char *from, int count) { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #endif #endif #line 196 "/usr/share/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. It should actually point to an object. Grammar actions can access the variable by casting it to the proper pointer type. */ #ifdef YYPARSE_PARAM #ifdef __cplusplus #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM #define YYPARSE_PARAM_DECL #else /* not __cplusplus */ #define YYPARSE_PARAM_ARG YYPARSE_PARAM #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; #endif /* not __cplusplus */ #else /* not YYPARSE_PARAM */ #define YYPARSE_PARAM_ARG #define YYPARSE_PARAM_DECL #endif /* not YYPARSE_PARAM */ YYPARSE_RETURN_TYPE yyparse(YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL { register int yystate; register int yyn; register short *yyssp; register YYSTYPE *yyvsp; int yyerrstatus; /* number of tokens to shift before error messages enabled */ int yychar1 = 0; /* lookahead token as an internal (translated) token number */ short yyssa[YYINITDEPTH]; /* the state stack */ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ short *yyss = yyssa; /* refer to the stacks thru separate pointers */ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ #ifdef YYLSP_NEEDED YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) #else #define YYPOPSTACK (yyvsp--, yyssp--) #endif int yystacksize = YYINITDEPTH; #ifdef YYPURE int yychar; YYSTYPE yylval; int yynerrs; #ifdef YYLSP_NEEDED YYLTYPE yylloc; #endif #endif YYSTYPE yyval; /* the variable used to return */ /* semantic values from the action */ /* routines */ int yylen; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Starting parse\n"); #endif yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss - 1; yyvsp = yyvs; #ifdef YYLSP_NEEDED yylsp = yyls; #endif /* Push a new state, which is found in yystate . */ /* In all cases, when you get here, the value and location stacks have just been pushed. so pushing a state here evens the stacks. */ yynewstate: *++yyssp = yystate; if (yyssp >= yyss + yystacksize - 1) { /* Give user a chance to reallocate the stack */ /* Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; short *yyss1 = yyss; #ifdef YYLSP_NEEDED YYLTYPE *yyls1 = yyls; #endif /* Get the current used size of the three stacks, in elements. */ int size = yyssp - yyss + 1; #ifdef yyoverflow /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. */ #ifdef YYLSP_NEEDED /* This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yyls1, size * sizeof (*yylsp), &yystacksize); #else yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yystacksize); #endif yyss = yyss1; yyvs = yyvs1; #ifdef YYLSP_NEEDED yyls = yyls1; #endif #else /* no yyoverflow */ /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp)); yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp)); #ifdef YYLSP_NEEDED yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp)); #endif #endif /* no yyoverflow */ yyssp = yyss + size - 1; yyvsp = yyvs + size - 1; #ifdef YYLSP_NEEDED yylsp = yyls + size - 1; #endif #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Stack size increased to %d\n", yystacksize); #endif if (yyssp >= yyss + yystacksize - 1) YYABORT; } #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Entering state %d\n", yystate); #endif goto yybackup; yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ /* yyresume: */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYFLAG) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* yychar is either YYEMPTY or YYEOF or a valid token in external form. */ if (yychar == YYEMPTY) { #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Reading a token: "); #endif yychar = YYLEX; } /* Convert token to internal form (in yychar1) for indexing tables with */ if (yychar <= 0) /* This means end of input. */ { yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Now at end of input.\n"); #endif } else { yychar1 = YYTRANSLATE(yychar); #if YYDEBUG != 0 if (yydebug) { fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); /* Give the individual parser a way to print the precise meaning of a token, for further debugging info. */ #ifdef YYPRINT YYPRINT (stderr, yychar, yylval); #endif fprintf (stderr, ")\n"); } #endif } yyn += yychar1; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) goto yydefault; yyn = yytable[yyn]; /* yyn is what to do for this token type in this state. Negative => reduce, -yyn is rule number. Positive => shift, yyn is new state. New state is final state => don't bother to shift, just return success. 0, or most negative number => error. */ if (yyn < 0) { if (yyn == YYFLAG) goto yyerrlab; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; /* Shift the lookahead token. */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); #endif /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif /* count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; yystate = yyn; goto yynewstate; /* Do the default action for the current state. */ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; /* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: yylen = yyr2[yyn]; if (yylen > 0) yyval = yyvsp[1-yylen]; /* implement default value of the action */ #if YYDEBUG != 0 if (yydebug) { int i; fprintf (stderr, "Reducing via rule %d (line %d), ", yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) fprintf (stderr, "%s ", yytname[yyrhs[i]]); fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); } #endif switch (yyn) { case 3: #line 56 "cfgparse.y" { splashbitmap = yyvsp[0]. ival ; ; break;} case 4: #line 60 "cfgparse.y" { atmospheres = yyvsp[0]. ival ; ; break;} case 5: #line 64 "cfgparse.y" { border = yyvsp[0]. ival ; ; break;} case 6: #line 68 "cfgparse.y" { if (!strcmp(yyvsp[0]. name , "GL_NEAREST")) filter = GL_NEAREST; if (!strcmp(yyvsp[0]. name , "GL_LINEAR")) filter = GL_LINEAR; ; break;} case 7: #line 75 "cfgparse.y" { if (strcmp(yyvsp[0]. name , "GL_FLAT")) smodel = GL_SMOOTH; else smodel = GL_FLAT; ; break;} case 8: #line 82 "cfgparse.y" { sscanf(yyvsp[-1]. name , "%d-%d-%d", &date.tm_mon, &date.tm_mday, &date.tm_year); sscanf(yyvsp[0]. name , "%d:%d:%d", &date.tm_hour, &date.tm_min, &date.tm_sec); date.tm_mon--; date.tm_year-=1900; days = mktime(&date) / 3600.0 / 24.0 - 10092.0; ; break;} case 9: #line 90 "cfgparse.y" { paused = yyvsp[0]. ival ; ; break;} case 10: #line 94 "cfgparse.y" { realtime = yyvsp[0]. ival ; ; break;} case 11: #line 98 "cfgparse.y" { demomode = yyvsp[0]. ival ; ; break;} case 12: #line 102 "cfgparse.y" { demostep = yyvsp[0]. ival ; ; break;} case 13: #line 106 "cfgparse.y" { plabels = yyvsp[0]. ival ; ; break;} case 14: #line 110 "cfgparse.y" { slabels = yyvsp[0]. ival ; ; break;} case 15: #line 114 "cfgparse.y" { info = yyvsp[0]. ival ; ; break;} case 16: #line 118 "cfgparse.y" { star_mag = yyvsp[0]. dval ; ; break;} case 17: #line 122 "cfgparse.y" { star_size = yyvsp[0]. dval ; ; break;} case 18: #line 126 "cfgparse.y" { speed = yyvsp[0]. dval ; ; break;} case 19: #line 130 "cfgparse.y" { cmode = yyvsp[0]. ival ; ; break;} case 20: #line 134 "cfgparse.y" { currtarget = yyvsp[0]. ival ; ; break;} case 21: #line 138 "cfgparse.y" { currsource = yyvsp[0]. ival ; ; break;} case 22: #line 142 "cfgparse.y" { slices = yyvsp[0]. ival ; ; break;} case 23: #line 146 "cfgparse.y" { stacks = yyvsp[0]. ival ; ; break;} case 24: #line 150 "cfgparse.y" { jpeg_quality = yyvsp[0]. ival ; if ((jpeg_quality < 0) || (jpeg_quality > 100)) { error("Invalid jpeg_quality value\n"); shutdown(1); } ; break;} case 25: #line 158 "cfgparse.y" { mipmap = yyvsp[0]. ival ; ; break;} case 26: #line 162 "cfgparse.y" { if (!strcmp(yyvsp[0]. name , "GL_NEAREST_MIPMAP_NEAREST")) mipmap_filter = GL_NEAREST_MIPMAP_NEAREST; if (!strcmp(yyvsp[0]. name , "GL_LINEAR_MIPMAP_NEAREST")) mipmap_filter = GL_LINEAR_MIPMAP_NEAREST; if (!strcmp(yyvsp[0]. name , "GL_NEAREST_MIPMAP_LINEAR")) mipmap_filter = GL_NEAREST_MIPMAP_LINEAR; if (!strcmp(yyvsp[0]. name , "GL_NEAREST_MIPMAP_LINEAR")) mipmap_filter = GL_NEAREST_MIPMAP_LINEAR; if (!strcmp(yyvsp[0]. name , "GL_LINEAR_MIPMAP_LINEAR")) mipmap_filter = GL_LINEAR_MIPMAP_LINEAR; ; break;} case 27: #line 175 "cfgparse.y" { fonttype = yyvsp[0]. ival ; break;} case 28: #line 178 "cfgparse.y" { LOD = yyvsp[0]. ival ; break;} case 29: #line 181 "cfgparse.y" { tex_compr *= yyvsp[0]. ival ; break;} case 30: #line 184 "cfgparse.y" { color_depth = yyvsp[0]. ival ; switch (color_depth) { default: case 16: cd_rgb = GL_RGB5; cd_lum = GL_LUMINANCE8; cd_rgba = GL_RGBA4; cd_luma = GL_LUMINANCE8_ALPHA8; break; case 32: cd_rgb = GL_RGB8; cd_lum = GL_LUMINANCE8; cd_rgba = GL_RGBA8; cd_luma = GL_LUMINANCE8_ALPHA8; break; } ; break;} case 31: #line 203 "cfgparse.y" { logo = yyvsp[0]. ival ; ; break;} case 32: #line 207 "cfgparse.y" { milkyway = yyvsp[0]. ival ; ; break;} case 33: #line 211 "cfgparse.y" { messier = yyvsp[0]. ival ; ; break;} case 37: #line 217 "cfgparse.y" { sprintf(planets[0].Name, "The Sun"); planets[0].Mass = yyvsp[-1]. dval ; LOG("Initializing Sun", InitSun(yyvsp[-4]. name , yyvsp[-3]. dval , yyvsp[-2]. ival )) ; break;} case 41: #line 228 "cfgparse.y" { strcpy(planets[body_index].Name, yyvsp[-22]. name ); INITVECTOR(planets[body_index].Color, yyvsp[-19]. ival / 255.0, yyvsp[-18]. ival / 255.0, yyvsp[-17]. ival / 255.0); planets[body_index].Radius = yyvsp[-16]. dval ; planets[body_index].xflat = yyvsp[-15]. dval ; planets[body_index].yflat = yyvsp[-14]. dval ; planets[body_index].zflat = yyvsp[-13]. dval ; planets[body_index].Degrees = yyvsp[-11]. dval ; planets[body_index].Rotation = yyvsp[-10]. dval ; planets[body_index].Inclination = yyvsp[-9]. dval * M_PI / 180.0; planets[body_index].AscendingNode = yyvsp[-8]. dval * M_PI / 180.0; planets[body_index].Perihelion = yyvsp[-7]. dval * M_PI / 180.0; planets[body_index].MeanDistance = DISTCORRECTION(yyvsp[-6]. dval ); planets[body_index].DailyMotion = yyvsp[-5]. dval * M_PI / 180.0; planets[body_index].OrbitalPeriod = yyvsp[-4]. dval ; planets[body_index].Eccentricity = yyvsp[-3]. dval ; planets[body_index].MeanLongitude = yyvsp[-2]. dval * M_PI / 180.0; planets[body_index].Mass = yyvsp[-1]. dval ; planets[body_index].CustomFunction = yyvsp[0]. ival ; planets[body_index].Sat = 0; planets[body_index].TrailEnabled = 0; planets[body_index].Type = PLANET; LOG(yyvsp[-22]. name , SetUpBody(body_index, yyvsp[-20]. name , yyvsp[-12]. ival )); last_planet = body_index; body_index++; ; break;} case 46: #line 264 "cfgparse.y" { currblock = SATELLITE; strcpy(planets[body_index].Name, yyvsp[-22]. name ); INITVECTOR(planets[body_index].Color, yyvsp[-19]. ival / 255.0, yyvsp[-18]. ival / 255.0, yyvsp[-17]. ival / 255.0); planets[body_index].Radius = yyvsp[-16]. dval ; planets[body_index].xflat = yyvsp[-15]. dval ; planets[body_index].yflat = yyvsp[-14]. dval ; planets[body_index].zflat = yyvsp[-13]. dval ; planets[body_index].Degrees = yyvsp[-11]. dval ; planets[body_index].Rotation = yyvsp[-10]. dval ; planets[body_index].Inclination = yyvsp[-9]. dval * M_PI / 180.0; planets[body_index].AscendingNode = yyvsp[-8]. dval * M_PI / 180.0; planets[body_index].Perihelion = yyvsp[-7]. dval * M_PI / 180.0; planets[body_index].MeanDistance = yyvsp[-6]. dval ; planets[body_index].DailyMotion = yyvsp[-5]. dval * M_PI / 180.0; planets[body_index].OrbitalPeriod = yyvsp[-4]. dval ; planets[body_index].Eccentricity = yyvsp[-3]. dval ; planets[body_index].MeanLongitude = yyvsp[-2]. dval * M_PI / 180.0; planets[body_index].Mass = yyvsp[-1]. dval ; planets[body_index].Type = SATELLITE; planets[body_index].Sat = last_planet; planets[body_index].CustomFunction = yyvsp[0]. ival ; LOG(yyvsp[-22]. name , SetUpBody(body_index, yyvsp[-20]. name , yyvsp[-12]. ival )); last_satellite = body_index; body_index++; ; break;} case 47: #line 292 "cfgparse.y" { currblock = PLANET; ; break;} case 52: #line 301 "cfgparse.y" { strcpy(planets[body_index].Name, yyvsp[-17]. name ); planets[body_index].Type = ORBITER; planets[body_index].Radius = yyvsp[-14]. dval ; INITVECTOR(planets[body_index].Color, 1.0, 1.0, 1.0); planets[body_index].Sat = (currblock == SATELLITE) ? last_satellite : last_planet; planets[body_index].up[0] = yyvsp[-13]. dval ; planets[body_index].up[1] = yyvsp[-12]. dval ; planets[body_index].up[2] = yyvsp[-11]. dval ; planets[body_index].dir[0] = yyvsp[-10]. dval ; planets[body_index].dir[1] = yyvsp[-9]. dval ; planets[body_index].dir[2] = yyvsp[-8]. dval ; planets[body_index].Rotation = 0.0; planets[body_index].Inclination = yyvsp[-7]. dval ; planets[body_index].AscendingNode = yyvsp[-6]. dval ; planets[body_index].Perihelion = yyvsp[-5]. dval ; planets[body_index].MeanDistance = yyvsp[-4]. dval ; planets[body_index].DailyMotion = yyvsp[-3]. dval ; planets[body_index].OrbitalPeriod = yyvsp[-2]. dval ; planets[body_index].Eccentricity = yyvsp[-1]. dval ; planets[body_index].MeanLongitude = yyvsp[0]. dval ; planets[body_index].CustomFunction = 0; LOG(yyvsp[-17]. name , SetUpOrbiter(body_index, yyvsp[-15]. name )); body_index++; ; break;} case 54: #line 334 "cfgparse.y" { strcpy(planets[body_index].Name, yyvsp[-19]. name ); planets[body_index].Radius = yyvsp[-16]. dval ; INITVECTOR(planets[body_index].Color, yyvsp[-15]. ival / 255.0, yyvsp[-14]. ival / 255.0, yyvsp[-13]. ival / 255.0); planets[body_index].xflat = yyvsp[-12]. dval ; planets[body_index].yflat = yyvsp[-11]. dval ; planets[body_index].zflat = yyvsp[-10]. dval ; planets[body_index].Rotation = yyvsp[-9]. dval ; planets[body_index].Inclination = yyvsp[-8]. dval * M_PI / 180.0; planets[body_index].AscendingNode = yyvsp[-7]. dval * M_PI / 180.0; planets[body_index].Perihelion = yyvsp[-6]. dval * M_PI / 180.0; planets[body_index].MeanDistance = DISTCORRECTION(yyvsp[-5]. dval ); planets[body_index].DailyMotion = yyvsp[-4]. dval * M_PI / 180.0; planets[body_index].OrbitalPeriod = yyvsp[-3]. dval ; planets[body_index].Eccentricity = yyvsp[-2]. dval ; planets[body_index].MeanLongitude = yyvsp[-1]. dval * M_PI / 180.0; planets[body_index].Sat = 0; planets[body_index].CustomFunction = yyvsp[0]. ival ; planets[body_index].Type = ASTEROID; planets[body_index].up[0] = 0.0; planets[body_index].up[1] = 1.0; planets[body_index].up[2] = 0.0; planets[body_index].dir[0] = 0.0; planets[body_index].dir[1] = 0.0; planets[body_index].dir[2] = -1.0; LOG(yyvsp[-19]. name , SetUpAsteroid(body_index, yyvsp[-17]. name )); last_planet = body_index; body_index++; ; break;} case 56: #line 370 "cfgparse.y" { strcpy(planets[body_index].Name, yyvsp[-23]. name ); INITVECTOR(planets[body_index].Color, yyvsp[-20]. ival / 255.0, yyvsp[-19]. ival / 255.0, yyvsp[-18]. ival / 255.0); planets[body_index].Radius = yyvsp[-17]. dval ; planets[body_index].xflat = yyvsp[-16]. dval ; planets[body_index].yflat = yyvsp[-15]. dval ; planets[body_index].zflat = yyvsp[-14]. dval ; planets[body_index].Degrees = yyvsp[-12]. dval ; planets[body_index].Rotation = yyvsp[-11]. dval ; planets[body_index].Inclination = yyvsp[-10]. dval * M_PI / 180.0; planets[body_index].AscendingNode = yyvsp[-9]. dval * M_PI / 180.0; planets[body_index].Perihelion = yyvsp[-8]. dval * M_PI / 180.0; planets[body_index].MeanDistance = DISTCORRECTION(yyvsp[-7]. dval ); planets[body_index].DailyMotion = yyvsp[-6]. dval * M_PI / 180.0; planets[body_index].OrbitalPeriod = yyvsp[-5]. dval ; planets[body_index].Eccentricity = yyvsp[-4]. dval ; planets[body_index].MeanLongitude = yyvsp[-3]. dval * M_PI / 180.0; planets[body_index].Sat = 0; planets[body_index].CustomFunction = yyvsp[0]. ival ; planets[body_index].Type = COMET; LOG(yyvsp[-23]. name , SetUpComet(body_index, yyvsp[-21]. name , yyvsp[-13]. dval , yyvsp[-2]. dval , yyvsp[-1]. ival )); last_planet = body_index; body_index++; ; break;} case 59: #line 401 "cfgparse.y" { INITVECTOR(planets[body_index].Color, yyvsp[-7]. ival / 255.0, yyvsp[-6]. ival / 255.0, yyvsp[-5]. ival / 255.0); planets[body_index].Radius = yyvsp[-4]. dval ; planets[body_index].Rotation = yyvsp[-3]. dval ; planets[body_index].Sat = last_planet; planets[body_index].Type = ATMOSPHERE; LOG("Atmosphere", SetUpAtmosphere(body_index, yyvsp[-8]. name , yyvsp[-2]. dval , yyvsp[-1]. ival )); body_index++; ; break;} case 63: #line 418 "cfgparse.y" { planets[body_index].Color[0] = yyvsp[-6]. ival / 255.0; planets[body_index].Color[1] = yyvsp[-5]. ival / 255.0; planets[body_index].Color[2] = yyvsp[-4]. ival / 255.0; planets[body_index].Sat = last_planet; planets[body_index].Type = RING; planets[body_index].InnerRadius = yyvsp[-3]. dval ; planets[body_index].Radius = yyvsp[-2]. dval ; planets[body_index].initialized = 0; LOG("Ring", SetUpRings(body_index, yyvsp[-7]. name , yyvsp[-3]. dval , yyvsp[-2]. dval , yyvsp[-1]. dval )); body_index++; ; break;} case 64: #line 436 "cfgparse.y" { strcpy(planets[body_index].Name, yyvsp[-15]. name ); INITVECTOR(planets[body_index].Color, 1.0, 1.0, 1.0); planets[body_index].Type = SPACESHIP; planets[body_index].Radius = yyvsp[-12]. dval ; planets[body_index].Sat = 0; INITVECTOR(planets[body_index].pos, yyvsp[-11]. dval * AU, yyvsp[-10]. dval * AU, yyvsp[-9]. dval * AU); INITVECTOR(planets[body_index].up, yyvsp[-8]. dval , yyvsp[-7]. dval , yyvsp[-6]. dval ); INITVECTOR(planets[body_index].dir, yyvsp[-5]. dval , yyvsp[-4]. dval , yyvsp[-3]. dval ); INITVECTOR(planets[body_index].vel, yyvsp[-2]. dval , yyvsp[-1]. dval , yyvsp[0]. dval ); LOG(yyvsp[-15]. name , SetUpSpaceShip(body_index, yyvsp[-13]. name )); body_index++; ; break;} } /* the action file gets copied in in place of this dollarsign */ #line 498 "/usr/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; #ifdef YYLSP_NEEDED yylsp -= yylen; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif *++yyvsp = yyval; #ifdef YYLSP_NEEDED yylsp++; if (yylen == 0) { yylsp->first_line = yylloc.first_line; yylsp->first_column = yylloc.first_column; yylsp->last_line = (yylsp-1)->last_line; yylsp->last_column = (yylsp-1)->last_column; yylsp->text = 0; } else { yylsp->last_line = (yylsp+yylen-1)->last_line; yylsp->last_column = (yylsp+yylen-1)->last_column; } #endif /* Now "shift" the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTBASE] + *yyssp; if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTBASE]; goto yynewstate; yyerrlab: /* here on detecting error */ if (! yyerrstatus) /* If not already recovering from an error, report this error. */ { ++yynerrs; #ifdef YYERROR_VERBOSE yyn = yypact[yystate]; if (yyn > YYFLAG && yyn < YYLAST) { int size = 0; char *msg; int x, count; count = 0; /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) size += strlen(yytname[x]) + 15, count++; msg = (char *) malloc(size + 15); if (msg != 0) { strcpy(msg, "parse error"); if (count < 5) { count = 0; for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) { strcat(msg, count == 0 ? ", expecting `" : " or `"); strcat(msg, yytname[x]); strcat(msg, "'"); count++; } } yyerror(msg); free(msg); } else yyerror ("parse error; also virtual memory exceeded"); } else #endif /* YYERROR_VERBOSE */ yyerror("parse error"); } goto yyerrlab1; yyerrlab1: /* here on error raised explicitly by an action */ if (yyerrstatus == 3) { /* if just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) YYABORT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); #endif yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this */ goto yyerrhandle; yyerrdefault: /* current state does not do anything special for the error token. */ #if 0 /* This is wrong; only states that explicitly want error tokens should shift them. */ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ if (yyn) goto yydefault; #endif yyerrpop: /* pop the current state because it cannot handle the error token */ if (yyssp == yyss) YYABORT; yyvsp--; yystate = *--yyssp; #ifdef YYLSP_NEEDED yylsp--; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "Error: state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif yyerrhandle: yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrdefault; yyn += YYTERROR; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) goto yyerrdefault; yyn = yytable[yyn]; if (yyn < 0) { if (yyn == YYFLAG) goto yyerrpop; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting error token, "); #endif *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif yystate = yyn; goto yynewstate; } #line 454 "cfgparse.y" void yyerror(char *s) { fprintf(stderr, "%s in line %d of configuration file\n", s, yylineno); shutdown(1); } /* Read configuration file */ void ReadConfigFile(void) { char s[200]; sprintf(s, "ou.conf"); cfgin = fopen(s, "rt"); if (cfgin == NULL) { sprintf(s, "%s/ou.conf", confpath); cfgin = fopen(s, "rt"); if (cfgin == NULL) { error("Couldn't find configuration file"); shutdown(1); } } yyparse(); fclose(cfgin); NUMBODIES = body_index; } openuniverse-1.0beta3.1.orig/src/info.cpp0000644000175000017500000002770107116546356020273 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" #include "gui.h" #include #include void Help(void), Help2(void), DrawLogo(void); extern int totaltexsize; int help = 1, help2 = 0, camseesun; void OnScreenInfo(void) { time_t t; struct tm *tm; int i; double x, y, z, s, relvel[3], relvelnorm[3], v1[3]; char sbuf[80]; glDisable(GL_TEXTURE_2D); glDisable(GL_LIGHTING); glDisable(GL_DEPTH_TEST); if (slabels) { /* Star labels on ? */ glColor3f(0.3, 1.0, 0.3); i = 0; while (stars[i].magnitude < star_mag) { if (i > NUMSTARS) break; glutprintstring(stars[i].pos[X], stars[i].pos[Y], stars[i].pos[Z], stars[i].Name); i++; } glColor3f(1.0, 0.4, 0.4); i = 0; while (i < num_messier) { glutprintstring(messierobjs[i].pos[X], messierobjs[i].pos[Y], messierobjs[i].pos[Z], messierobjs[i].Name); i++; } } if (ISASPACECRAFT(currtarget)) SUBVECTORS(relvel, planets[currtarget].vel, planets[currsource].vel); else SUBVECTORS(relvel, camvel, planets[currsource].vel); if (planets[currtarget].Type == SPACESHIP) { COPYVECTOR(relvelnorm, relvel); NORMALIZE(relvelnorm); glColor3f(1.0, 1.0, 0.0); if (MODULE(relvelnorm) > 0.0) { MULTVECTOR(v1, relvelnorm, UNIVERSERADIUS); glutprintstring(v1[X], v1[Y], v1[Z], "X"); } glColor3f(1.0, 0.0, 1.0); MULTVECTOR(v1, relvelnorm, -1.0); if (MODULE(v1) > 0.0) { MULTVECTOR(v1, v1, UNIVERSERADIUS); glutprintstring(v1[X], v1[Y], v1[Z], "X"); } glColor3f(0.0, 1.0, 0.0); COPYVECTOR(v1, planets[currtarget].dir); MULTVECTOR(v1, v1, UNIVERSERADIUS); glutprintstring(v1[X], v1[Y], v1[Z], "X"); glColor3f(1.0, 0.0, 0.0); COPYVECTOR(v1, planets[currtarget].grav); NORMALIZE(v1); MULTVECTOR(v1, v1, UNIVERSERADIUS); glutprintstring(v1[X], v1[Y], v1[Z], "X"); } glColor3f(1.0, 1.0, 1.0); if (plabels) /* Planets labels on ? */ for (i = 0; i < NUMBODIES; i++) { if (planets[i].Type >= RING) continue; /* Distance from planet to camera */ d = DISTANCE(planets[i].pos[X] - campos[X], planets[i].pos[Y] - campos[Y], planets[i].pos[Z] - campos[Z]); if (planets[i].Type == SATELLITE) if (d > (RADIUSSCALE(planets[i].Radius) * UNIVERSERADIUS * 0.001 * 60.0 / fov)) continue; x = planets[i].pos[X] - campos[X]; y = planets[i].pos[Y] - campos[Y] - RADIUSSCALE(planets[i].Radius); z = planets[i].pos[Z] - campos[Z]; glutprintstring(x, y, z, planets[i].Name); } if (camseesun) LensFlares(); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0, width, 0, height); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); if (camseesun) { COPYVECTOR(v1, campos); z = MODULE(campos) / 5.0; z = CLAMP( AU / z, 0.0 , 0.9); NORMALIZE(v1); ADDVECTORS(v1, v1, cameye); s = MODULE(v1); s *= (60.0 / fov); if (s < FLAREINTENSITY) { glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glColor4f(1.0, 1.0, 0.95, (FLAREINTENSITY - s) / FLAREINTENSITY * z); glRecti(0, 0, width, height); glDisable(GL_BLEND); } } if (radar) Radar(); if (fonttype == TEXFONT) { glEnable(GL_TEXTURE_2D); glEnable(GL_ALPHA_TEST); glAlphaFunc(GL_GEQUAL, 0.5); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); txfBindFontTexture(txf); } glColor3f(1.0, 1.0, 1.0); if (help) Help(); if (help2) Help2(); if (!info) { if (lighting) glEnable(GL_LIGHTING); return; } t = (int) ((10092.0 + days) * 24.0 * 3600.0); tm = localtime(&t); strftime(sbuf, 80, "%m / %d / %Y %X (Local Time)", tm); printstring(0, height - glyphheight, 0, sbuf); if (!(follow && ISASPACECRAFT(currtarget))) switch (cmode) { case 0: printstring(0, height - 2 * glyphheight, 0, "Free Camera"); sprintf(sbuf, "%s", planets[currtarget].Name); break; case 1: printstring(0, height - 2 * glyphheight, 0, "Linked Camera"); sprintf(sbuf, "Tracking %s", planets[currtarget].Name); break; case 2: printstring(0, height - 2 * glyphheight, 0, "Body to Body Camera"); sprintf(sbuf, "%s as seen from %s", planets[currtarget].Name, planets[currsource].Name); break; case 3: printstring(0, height - 2 * glyphheight, 0, "Orbiter Camera"); sprintf(sbuf, "Orbiting around %s", planets[currtarget].Name); break; default: break; } printstring(0, height - 4 * glyphheight, 0, sbuf); if (cmode || (follow && ISASPACECRAFT(currtarget))) { SUBVECTORS(v1, planets[currtarget].pos, planets[currsource].pos); sprintf(sbuf, "Body distance from %s (Km): %.2f", planets[currsource].Name, MODULE(v1) * 1000.0); printstring(0, height - 3 * glyphheight, 0, sbuf); } sprintf(sbuf, "Camera distance from Sun (Km): %.2f", DISTANCE(campos[X], campos[Y], campos[Z]) * 1000.0); printstring(0, 3 * glyphheight, 0, sbuf); sprintf(sbuf, "Time factor: %d sec / iteration", timefactor); printstring(0, 2 * glyphheight, 0, sbuf); speed = MODULE(relvel); s = speed * 1000.0; if (s < 10000.0) sprintf(sbuf, "Camera speed (Km / sec) rel to %s: %.2f", planets[currsource].Name, s); else sprintf(sbuf, "Camera speed (c) rel to %s: %.2f", planets[currsource].Name, s / LIGHTSPEED); printstring(0, glyphheight, 0, sbuf); if (cmode > 1) { sprintf(sbuf, "Zoom factor: %.2f", 10.0 / zoom); printstring(0, 0, 0, sbuf); } sprintf(sbuf, "FOV: %.1f FPS: %.1f TEX: %.1f", fov, fps, totaltexsize / (1024.0 * 1024.0)); printstring(width - glyphwidth * 32, glyphheight, 0, sbuf); #ifdef DEBUG sprintf(sbuf, "N: %.3f F: %.3f %s", nearclip, farclip, planets[nearest].Name); printstring(width - glyphwidth * 30, 2 * glyphheight, 0, sbuf); for (i = 0; i < objstorender; i++) { printstring(width - glyphwidth * 22, (3 + i) * glyphheight, 0, planets[renderlist[i].body].Name); } sprintf(sbuf, "up: (%f) %f %f %f", MODULE(camup), camup[X], camup[Y], camup[Z]); printstring(0, (4 + i) * glyphheight, 0, sbuf); i++; sprintf(sbuf, "eye: (%f) %f %f %f", MODULE(cameye), cameye[X], cameye[Y], cameye[Z]); printstring(0, (4 + i) * glyphheight, 0, sbuf); i++; sprintf(sbuf, "angle: %f", RAD2DEG(acos(DOTPRODUCT(cameye, camup)))); printstring(0, (4 + i) * glyphheight, 0, sbuf); #endif if (demomode) { printstring(0, 4 * glyphheight, 0, "Demo Mode"); } if (paused) { printstring(width - glyphwidth * 8, height - glyphheight, 0, "Paused"); } if (joyactive && joyavailable) { printstring(width - glyphwidth * 16, height - 2 * glyphheight, 0, "Joystick Active"); } if (eventrecord) { printstring(width - glyphwidth * 20, height - glyphheight, 0, "Recording keystrokes"); } if (logo) { if (fonttype != TEXFONT) { glEnable(GL_TEXTURE_2D); glEnable(GL_BLEND); } DrawLogo(); } if (lighting) glEnable(GL_LIGHTING); } void DrawLogo(void) { static float intensity = 1.0; glBindTexture(GL_TEXTURE_2D, logotex); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glColor4f(1.0, 1.0, 1.0, intensity); intensity -= 0.002; if (intensity <= 0.0) { logo = 0; intensity = 1.0; } glBegin(GL_QUADS); glTexCoord2f(0.0, 0.0); glVertex2i(width - 64, height - 64); glTexCoord2f(1.0, 0.0); glVertex2i(width, height - 64); glTexCoord2f(1.0, 1.0); glVertex2i(width, height); glTexCoord2f(0.0, 1.0); glVertex2i(width - 64, height); glEnd(); } void Help(void) { int i; i = height / 2 + 13 * glyphheight; printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "1: Free / Behind camera mode"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "2: Fixed Target / Top camera mode"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "3: Body to Body / Right camera mode"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "4: Orbiter / Left camera mode"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "w: Spaceship follow mode (if currtarget is spaceship)"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "Home/End: Select previous/next target body"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "SHIFT + Home/End: Selects previous/next source body"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "+/- : Increase/Decrease timefactor *"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "Arrow keys : Camera/Ship heading * **"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "CTRL + arrow keys : Camera/Ship roll **"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "Page Up/Down : Increase/decrease speed * **"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "CTRL + Page Up/Down : Match current source body speed **"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "z/Z : Increase/decrease zoom factor"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "Insert: Current target trail on/off (planets only)"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight * 2, 0, "* hold SHIFT for faster operation"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight * 2, 0, "** commands only available in Free or Spaceship camera modes"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight * 2, 0, "PRESS H FOR MORE HELP"); } void Help2(void) { int i; i = height / 2 + 13 * glyphheight; printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "a : Atmosphere on/off"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "b : Distant bodies labels on/off"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "B : Stars labels on/off"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "d : Demo mode on/off"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "e : Real Time on/off"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "f : Flat/Smooth shading model"); #ifdef HAVE_GLUI printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "g : Show GUI"); #endif printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "G : Show Logo"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "i : Info (HUD) on/off"); if (joyavailable) { printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "j : Joystick control on/off"); } printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "l : Lighting on/off"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "m/M : Brighter/Fainter stars"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "n : Place camera near current target planet"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "o/O : Wider/Narrower FOV"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "p : Pause"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "r : Top view map on/off"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "s : Stars on/off"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "S : Screenshot"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "t : Texture on/off"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "u/U : Wider/Narrower map range"); printstring(width / 2 - glyphwidth * 30, i -= glyphheight, 0, "y : Gravity on/off"); } openuniverse-1.0beta3.1.orig/src/messier.cpp0000644000175000017500000001164407107356053020777 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" int messier = 1, messier_texsize = 0; void InitMessier() { char datapath[100] = DATA_DIR; char line[100], texname[20]; int i, j, height, components, width; FILE *f = NULL; float dimension; double p1[3], p2[3], p3[3], p4[3]; unsigned char *image; sprintf(line, "%s/messier.dat", datapath); f = fopen(line, "rt"); if (f == NULL) { error("Couldn't find messier catalog file"); shutdown(1); } i = 0; while (1) { fgets(line, 100, f); while (line[0] == '#') fgets(line, 100, f); if (feof(f)) break; sscanf(line, "%s %s %f %f %f %f\n", messierobjs[i].Name, texname, &messierobjs[i].ascension, &messierobjs[i].declination, &messierobjs[i].magnitude, &messierobjs[i].size); INITVECTOR(messierobjs[i].pos, UNIVERSERADIUS * cos(-messierobjs[i].ascension) * cos(messierobjs[i].declination), UNIVERSERADIUS * sin(messierobjs[i].declination), UNIVERSERADIUS * sin(-messierobjs[i].ascension) * cos(messierobjs[i].declination)); image = read_JPEG_file(texname, &width, &height, &components); if (!image) { sprintf(line, "Couldn't read image mw.jpg\n"); error(line); shutdown(1); } image = texture_LOD(image, &width, &height, components); if ((width > 256) || (height > 256)) { error ("Messier textures larger than 256x256 are not supported"); shutdown(1); } if (components == 1) j = 1; else j = color_depth / 8; messier_texsize += (width * height * j); glGenTextures(1, messierobjs[i].textures); glBindTexture(GL_TEXTURE_2D, messierobjs[i].textures[0]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); glTexImage2D(GL_TEXTURE_2D, 0, components == 3 ? cd_rgb : cd_lum, width, height, 0, components == 3 ? GL_RGB : GL_LUMINANCE, GL_UNSIGNED_BYTE, image); free(image); i++; } fclose(f); num_messier = i; i = 0; MessierDL = glGenLists(1); glNewList(MessierDL, GL_COMPILE); while (i < num_messier) { glBindTexture(GL_TEXTURE_2D, messierobjs[i].textures[0]); dimension = messierobjs[i].size / 2.0; INITVECTOR(p1, UNIVERSERADIUS * cos(-(messierobjs[i].ascension + dimension)) * cos(messierobjs[i].declination - dimension), UNIVERSERADIUS * sin(messierobjs[i].declination - dimension), UNIVERSERADIUS * sin(-(messierobjs[i].ascension + dimension)) * cos(messierobjs[i].declination - dimension)); INITVECTOR(p2, UNIVERSERADIUS * cos(-(messierobjs[i].ascension - dimension)) * cos(messierobjs[i].declination - dimension), UNIVERSERADIUS * sin(messierobjs[i].declination - dimension), UNIVERSERADIUS * sin(-(messierobjs[i].ascension - dimension)) * cos(messierobjs[i].declination - dimension)); INITVECTOR(p3, UNIVERSERADIUS * cos(-(messierobjs[i].ascension - dimension)) * cos(messierobjs[i].declination + dimension), UNIVERSERADIUS * sin(messierobjs[i].declination + dimension), UNIVERSERADIUS * sin(-(messierobjs[i].ascension - dimension)) * cos(messierobjs[i].declination + dimension)); INITVECTOR(p4, UNIVERSERADIUS * cos(-(messierobjs[i].ascension + dimension)) * cos(messierobjs[i].declination + dimension), UNIVERSERADIUS * sin(messierobjs[i].declination + dimension), UNIVERSERADIUS * sin(-(messierobjs[i].ascension + dimension)) * cos(messierobjs[i].declination + dimension)); if (messierobjs[i].magnitude > 4.0) glColor3f(4.0 / messierobjs[i].magnitude, 4.0 / messierobjs[i].magnitude, 4.0 / messierobjs[i].magnitude); else glColor3f(1.0, 1.0, 1.0); glBegin(GL_QUADS); glTexCoord2f(0.0, 0.0); glVertex3f(p1[X], p1[Y], p1[Z]); glTexCoord2f(1.0, 0.0); glVertex3f(p2[X], p2[Y], p2[Z]); glTexCoord2f(1.0, 1.0); glVertex3f(p3[X], p3[Y], p3[Z]); glTexCoord2f(0.0, 1.0); glVertex3f(p4[X], p4[Y], p4[Z]); glEnd(); i++; } glEndList(); } openuniverse-1.0beta3.1.orig/src/scrnshot.cpp0000644000175000017500000000527407107356132021173 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 #include extern "C" { #include "jpeglib.h" } #include "ou.h" /* Based on screenshot function from PyroTechnics v1.3 http://www.ling.ed.ac.uk/~oliphant/pyro and on IJG sample code */ void ScreenShot(char *filename) { int i; unsigned char *pixels; struct jpeg_compress_struct cinfo; struct jpeg_error_mgr jerr; FILE *outfile; /* target file */ JSAMPROW row_pointer[1]; /* pointer to JSAMPLE row[s] */ int row_stride; /* physical row width in image buffer */ char shotspath[100] = SHOTS_DIR; static char line[200]; cinfo.err = jpeg_std_error(&jerr); /* Now we can initialize the JPEG compression object. */ fflush(stdout); jpeg_create_compress(&cinfo); sprintf(line, "%s/%s", shotspath, filename); if ((outfile = fopen(line, "wb")) == NULL) { error("can't write screenshot\n"); shutdown(1); } jpeg_stdio_dest(&cinfo, outfile); cinfo.image_width = width; /* image width and height, in pixels */ cinfo.image_height = height; cinfo.input_components = 3; /* # of color components per pixel */ cinfo.in_color_space = JCS_RGB; /* colorspace of input image */ jpeg_set_defaults(&cinfo); jpeg_set_quality(&cinfo, jpeg_quality, TRUE /* limit to baseline-JPEG values */ ); jpeg_start_compress(&cinfo, TRUE); pixels = (unsigned char *) malloc(height * width * 3); if (!pixels) { error("Failed to allocate memory"); shutdown(1); } glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, pixels); row_stride = width * 3; i = cinfo.image_height - 1; while (i >= 0) { /* jpeg_write_scanlines expects an array of pointers to scanlines. * Here the array is only one element long, but you could pass * more than one scanline at a time if that's more convenient. */ row_pointer[0] = &pixels[i * row_stride]; (void) jpeg_write_scanlines(&cinfo, row_pointer, 1); i--; } jpeg_finish_compress(&cinfo); fclose(outfile); jpeg_destroy_compress(&cinfo); free(pixels); } openuniverse-1.0beta3.1.orig/src/util.cpp0000644000175000017500000002666707116527573020327 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" #include float gettime(void) { static float told = 0.0f; float tnew, ris; tnew = glutGet((GLenum) GLUT_ELAPSED_TIME); ris = tnew - told; told = tnew; return ris / 1000.0; } /* Rotates point around the axis, 'angle' radians, borrowed from Mesa */ void Rotation(double angle, double axis[3], double point[3]) { double mag, s, c; double x, y, z, xx, yy, zz, xy, yz, zx, xs, ys, zs, one_c; s = sin(angle); c = cos(angle); mag = MODULE(axis); if (mag == 0.0) return; x = axis[X] / mag; y = axis[Y] / mag; z = axis[Z] / mag; xx = x * x; yy = y * y; zz = z * z; xy = x * y; yz = y * z; zx = z * x; xs = x * s; ys = y * s; zs = z * s; one_c = 1.0 - c; x = point[X] * ((one_c * xx) + c); y = point[X] * ((one_c * xy) - zs); z = point[X] * ((one_c * zx) + ys); x += point[Y] * ((one_c * xy) + zs); y += point[Y] * ((one_c * yy) + c); z += point[Y] * ((one_c * yz) - xs); x += point[Z] * ((one_c * zx) - ys); y += point[Z] * ((one_c * yz) + xs); z += point[Z] * ((one_c * zz) + c); point[X] = x; point[Y] = y; point[Z] = z; } void MakeQuat(double *q, double angle, double ax, double ay, double az) { double d; double s; angle /= 2.0; d = DISTANCE(ax, ay, az); ax /= d; ay /= d; az /= d; s = -sin(angle); q[0] = cos(angle); q[1] = s * ax; q[2] = s * ay; q[3] = s * az; } void Quat2Matrix(double *q, float m[16]) { float wx, wy, wz, xx, yy, yz, xy, xz, zz, x2, y2, z2; x2 = q[1] + q[1]; y2 = q[2] + q[2]; z2 = q[3] + q[3]; xx = q[1] * x2; xy = q[1] * y2; xz = q[1] * z2; yy = q[2] * y2; yz = q[2] * z2; zz = q[3] * z2; wx = q[0] * x2; wy = q[0] * y2; wz = q[0] * z2; m[0] = 1.0 - (yy + zz); m[1] = xy - wz; m[2] = xz + wy; m[3] = 0.0; m[4] = xy + wz; m[5] = 1.0 - (xx + zz); m[6] = yz - wx; m[7] = 0.0; m[8] = xz - wy; m[9] = yz + wx; m[10] = 1.0 - (xx + yy); m[11] = 0.0; m[12] = 0; m[13] = 0; m[14] = 0; m[15] = 1; } void Mat2Quat(float m[4][4], double *q) { float tr, s, q2[4]; int i, j, k; int nxt[3] = { 1, 2, 0 }; tr = m[0][0] + m[1][1] + m[2][2]; if (tr > 0.0) { s = sqrt(tr + 1.0); q[0] = s / 2.0; s = 0.5 / s; q[1] = (m[1][2] - m[2][1]) * s; q[2] = (m[2][0] - m[0][2]) * s; q[3] = (m[0][1] - m[1][0]) * s; } else { i = 0; if (m[1][1] > m[0][0]) i = 1; if (m[2][2] > m[i][i]) i = 2; j = nxt[i]; k = nxt[j]; s = sqrt((m[i][i] - (m[j][j] + m[k][k])) + 1.0); q2[i] = s * 0.5; if (s != 0.0) s = 0.5 / s; q2[3] = (m[j][k] - m[k][j]) * s; q2[j] = (m[i][j] + m[j][i]) * s; q2[k] = (m[i][k] + m[k][i]) * s; q[1] = q2[0]; q[2] = q2[1]; q[3] = q2[2]; q[0] = q2[3]; } } void Euler2Quat(double roll, double pitch, double yaw, double *q) { float cr, cp, cy, sr, sp, sy, cpcy, spsy; cr = cos(roll / 2); cp = cos(pitch / 2); cy = cos(yaw / 2); sr = sin(roll / 2); sp = sin(pitch / 2); sy = sin(yaw / 2); cpcy = cp * cy; spsy = sp * sy; q[0] = cr * cpcy + sr * spsy; q[1] = sr * cpcy - cr * spsy; q[2] = cr * sp * cy + sr * cp * sy; q[3] = cr * cp * sy - sr * sp * cy; } #define SWAP_ROWS(a, b) { double *_tmp = a; (a)=(b); (b)=_tmp; } #define MAT(m,r,c) m[(c)*4+(r)] /* * Compute inverse of 4x4 transformation matrix. * Code contributed by Jacques Leroy jle@star.be * Return TRUE for success, FALSE for failure (singular matrix) * * Aug '99: Adapted for openuniverse from the Mesa 3.1 source code */ static int invert_matrix_general(double mat[16], double inv[16]) { double *m = mat; double *out = inv; double wtmp[4][8]; double m0, m1, m2, m3, s; double *r0, *r1, *r2, *r3; r0 = wtmp[0], r1 = wtmp[1], r2 = wtmp[2], r3 = wtmp[3]; r0[0] = MAT(m, 0, 0), r0[1] = MAT(m, 0, 1), r0[2] = MAT(m, 0, 2), r0[3] = MAT(m, 0, 3), r0[4] = 1.0, r0[5] = r0[6] = r0[7] = 0.0, r1[0] = MAT(m, 1, 0), r1[1] = MAT(m, 1, 1), r1[2] = MAT(m, 1, 2), r1[3] = MAT(m, 1, 3), r1[5] = 1.0, r1[4] = r1[6] = r1[7] = 0.0, r2[0] = MAT(m, 2, 0), r2[1] = MAT(m, 2, 1), r2[2] = MAT(m, 2, 2), r2[3] = MAT(m, 2, 3), r2[6] = 1.0, r2[4] = r2[5] = r2[7] = 0.0, r3[0] = MAT(m, 3, 0), r3[1] = MAT(m, 3, 1), r3[2] = MAT(m, 3, 2), r3[3] = MAT(m, 3, 3), r3[7] = 1.0, r3[4] = r3[5] = r3[6] = 0.0; /* choose pivot - or die */ if (fabs(r3[0]) > fabs(r2[0])) SWAP_ROWS(r3, r2); if (fabs(r2[0]) > fabs(r1[0])) SWAP_ROWS(r2, r1); if (fabs(r1[0]) > fabs(r0[0])) SWAP_ROWS(r1, r0); if (0.0 == r0[0]) return 0; /* eliminate first variable */ m1 = r1[0] / r0[0]; m2 = r2[0] / r0[0]; m3 = r3[0] / r0[0]; s = r0[1]; r1[1] -= m1 * s; r2[1] -= m2 * s; r3[1] -= m3 * s; s = r0[2]; r1[2] -= m1 * s; r2[2] -= m2 * s; r3[2] -= m3 * s; s = r0[3]; r1[3] -= m1 * s; r2[3] -= m2 * s; r3[3] -= m3 * s; s = r0[4]; if (s != 0.0) { r1[4] -= m1 * s; r2[4] -= m2 * s; r3[4] -= m3 * s; } s = r0[5]; if (s != 0.0) { r1[5] -= m1 * s; r2[5] -= m2 * s; r3[5] -= m3 * s; } s = r0[6]; if (s != 0.0) { r1[6] -= m1 * s; r2[6] -= m2 * s; r3[6] -= m3 * s; } s = r0[7]; if (s != 0.0) { r1[7] -= m1 * s; r2[7] -= m2 * s; r3[7] -= m3 * s; } /* choose pivot - or die */ if (fabs(r3[1]) > fabs(r2[1])) SWAP_ROWS(r3, r2); if (fabs(r2[1]) > fabs(r1[1])) SWAP_ROWS(r2, r1); if (0.0 == r1[1]) return 0; /* eliminate second variable */ m2 = r2[1] / r1[1]; m3 = r3[1] / r1[1]; r2[2] -= m2 * r1[2]; r3[2] -= m3 * r1[2]; r2[3] -= m2 * r1[3]; r3[3] -= m3 * r1[3]; s = r1[4]; if (0.0 != s) { r2[4] -= m2 * s; r3[4] -= m3 * s; } s = r1[5]; if (0.0 != s) { r2[5] -= m2 * s; r3[5] -= m3 * s; } s = r1[6]; if (0.0 != s) { r2[6] -= m2 * s; r3[6] -= m3 * s; } s = r1[7]; if (0.0 != s) { r2[7] -= m2 * s; r3[7] -= m3 * s; } /* choose pivot - or die */ if (fabs(r3[2]) > fabs(r2[2])) SWAP_ROWS(r3, r2); if (0.0 == r2[2]) return 0; /* eliminate third variable */ m3 = r3[2] / r2[2]; r3[3] -= m3 * r2[3], r3[4] -= m3 * r2[4], r3[5] -= m3 * r2[5], r3[6] -= m3 * r2[6], r3[7] -= m3 * r2[7]; /* last check */ if (0.0 == r3[3]) return 0; s = 1.0 / r3[3]; /* now back substitute row 3 */ r3[4] *= s; r3[5] *= s; r3[6] *= s; r3[7] *= s; m2 = r2[3]; /* now back substitute row 2 */ s = 1.0 / r2[2]; r2[4] = s * (r2[4] - r3[4] * m2), r2[5] = s * (r2[5] - r3[5] * m2), r2[6] = s * (r2[6] - r3[6] * m2), r2[7] = s * (r2[7] - r3[7] * m2); m1 = r1[3]; r1[4] -= r3[4] * m1, r1[5] -= r3[5] * m1, r1[6] -= r3[6] * m1, r1[7] -= r3[7] * m1; m0 = r0[3]; r0[4] -= r3[4] * m0, r0[5] -= r3[5] * m0, r0[6] -= r3[6] * m0, r0[7] -= r3[7] * m0; m1 = r1[2]; /* now back substitute row 1 */ s = 1.0 / r1[1]; r1[4] = s * (r1[4] - r2[4] * m1), r1[5] = s * (r1[5] - r2[5] * m1), r1[6] = s * (r1[6] - r2[6] * m1), r1[7] = s * (r1[7] - r2[7] * m1); m0 = r0[2]; r0[4] -= r2[4] * m0, r0[5] -= r2[5] * m0, r0[6] -= r2[6] * m0, r0[7] -= r2[7] * m0; m0 = r0[1]; /* now back substitute row 0 */ s = 1.0 / r0[0]; r0[4] = s * (r0[4] - r1[4] * m0), r0[5] = s * (r0[5] - r1[5] * m0), r0[6] = s * (r0[6] - r1[6] * m0), r0[7] = s * (r0[7] - r1[7] * m0); MAT(out, 0, 0) = r0[4]; MAT(out, 0, 1) = r0[5], MAT(out, 0, 2) = r0[6]; MAT(out, 0, 3) = r0[7], MAT(out, 1, 0) = r1[4]; MAT(out, 1, 1) = r1[5], MAT(out, 1, 2) = r1[6]; MAT(out, 1, 3) = r1[7], MAT(out, 2, 0) = r2[4]; MAT(out, 2, 1) = r2[5], MAT(out, 2, 2) = r2[6]; MAT(out, 2, 3) = r2[7], MAT(out, 3, 0) = r3[4]; MAT(out, 3, 1) = r3[5], MAT(out, 3, 2) = r3[6]; MAT(out, 3, 3) = r3[7]; return 1; } #undef SWAP_ROWS /* Based upon the gluLookAt function from the Mesa 3.1 source tree. The very only differences with the original function are: -Removed the call to glTranlate -Rotation matrix is inverted This function is used to rotate spaceships so they orientation matches their dir and up vectors. */ void MyLookAt(double dir[3], double up[3]) { GLdouble m[16], inv[16]; GLdouble x[3], y[3], z[3]; GLdouble mag; /* Make rotation matrix */ /* Z vector */ z[0] = dir[0]; z[1] = dir[1]; z[2] = dir[2]; mag = sqrt(z[0] * z[0] + z[1] * z[1] + z[2] * z[2]); if (mag) { /* mpichler, 19950515 */ z[0] /= mag; z[1] /= mag; z[2] /= mag; } /* Y vector */ y[0] = up[0]; y[1] = up[1]; y[2] = up[2]; /* X vector = Y cross Z */ x[0] = y[1] * z[2] - y[2] * z[1]; x[1] = -y[0] * z[2] + y[2] * z[0]; x[2] = y[0] * z[1] - y[1] * z[0]; /* Recompute Y = Z cross X */ y[0] = z[1] * x[2] - z[2] * x[1]; y[1] = -z[0] * x[2] + z[2] * x[0]; y[2] = z[0] * x[1] - z[1] * x[0]; /* mpichler, 19950515 */ /* cross product gives area of parallelogram, which is < 1.0 for * non-perpendicular unit-length vectors; so normalize x, y here */ mag = sqrt(x[0] * x[0] + x[1] * x[1] + x[2] * x[2]); if (mag) { x[0] /= mag; x[1] /= mag; x[2] /= mag; } mag = sqrt(y[0] * y[0] + y[1] * y[1] + y[2] * y[2]); if (mag) { y[0] /= mag; y[1] /= mag; y[2] /= mag; } #define M(row,col) m[col*4+row] M(0, 0) = x[0]; M(0, 1) = x[1]; M(0, 2) = x[2]; M(0, 3) = 0.0; M(1, 0) = y[0]; M(1, 1) = y[1]; M(1, 2) = y[2]; M(1, 3) = 0.0; M(2, 0) = z[0]; M(2, 1) = z[1]; M(2, 2) = z[2]; M(2, 3) = 0.0; M(3, 0) = 0.0; M(3, 1) = 0.0; M(3, 2) = 0.0; M(3, 3) = 1.0; #undef M if (invert_matrix_general(m, inv)) glMultMatrixd(inv); } int SmoothTrans(double cam[3], double eye[3], double up[3], double tocam[3], double toeye[3], double toup[3], double mark) { double v[3], d, trans_speed; d = 0.0; trans_speed = 20.0; if (!paused) switch (cmode) { default: case 0: case 1: break; case 2: case 3: ADDVECTORS(cam, cam, planets[currtarget].vel); break; } SUBVECTORS(v, tocam, cam); d += MODULE(v); DIVVECTOR(v, v, trans_speed); ADDVECTORS(cam, cam, v); SUBVECTORS(v, toeye, eye); d += MODULE(v); DIVVECTOR(v, v, trans_speed); ADDVECTORS(eye, eye, v); SUBVECTORS(v, toup, up); d += MODULE(v); DIVVECTOR(v, v, trans_speed); ADDVECTORS(up, up, v); if (d <= mark) return 0; else return 1; } GLubyte *texture_LOD(GLubyte * image, int *width, int *height, int components) { int i, j, k, nw, nh; switch (LOD) { case LOW: nh = *height / 4; nw = *width / 4; for (j = 0; j < nh; j++) for (i = 0; i < nw; i++) for (k = 0; k < components; k++) image[j * nw * components + i * components + k] = image[j * 4 * (*width) * components + i * 4 * components + k]; *height /= 4; *width /= 4; break; case MEDIUM: nh = *height / 2; nw = *width / 2; for (j = 0; j < nh; j++) for (i = 0; i < nw; i++) for (k = 0; k < components; k++) image[j * nw * components + i * components + k] = image[j * 2 * (*width) * components + i * 2 * components + k]; *height /= 2; *width /= 2; break; case HIGH: default: break; } return image; } void log(char *message) { if (logfile) { fprintf(logfile, "%s", message); fflush(logfile); } } void shutdown(int status) { fclose(logfile); exit(status); } openuniverse-1.0beta3.1.orig/src/cfgparse.tab.h0000644000175000017500000000200207116527671021326 0ustar paulliupaulliutypedef union { int ival; double dval; char name[100]; } YYSTYPE; #define INTEGER_NUM 258 #define DOUBLE_NUM 259 #define NAME 260 #define SUN 261 #define PLANET 262 #define ASTEROID 263 #define COMET 264 #define SATELLITE 265 #define ORBITER 266 #define SPACESHIP 267 #define RING 268 #define ATMOSPHERE 269 #define SPLASHBITMAP 270 #define BORDER 271 #define FILTER 272 #define SHADING 273 #define SIM_DATE 274 #define PAUSE 275 #define REALTIME 276 #define PLANETS_LABELS 277 #define STARS_LABELS 278 #define INFO 279 #define STAR_BRIGHT 280 #define STAR_SIZE 281 #define CAM_SPEED 282 #define ATMOSPHERES 283 #define CAM_MODE 284 #define TARGET 285 #define SOURCE 286 #define SLICES 287 #define STACKS 288 #define JPEG_QUALITY 289 #define MIPMAP 290 #define MIPMAP_FILTER 291 #define FONT 292 #define LEVELOFDETAIL 293 #define COLORDEPTH 294 #define LOGO 295 #define EOL 296 #define MILKYWAY 297 #define MESSIER 298 #define DEMO 299 #define DEMOSTEP 300 #define TEXTURECOMPRESSION 301 extern YYSTYPE cfglval; openuniverse-1.0beta3.1.orig/src/init.cpp0000644000175000017500000011412307116542752020272 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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. */ /* Initialization routines: - Read texture images - Initialize planets' data - Create display lists - Other initialization routines */ #include #include #include #include #include extern "C" { #include "jpeglib.h" } #include #include "ou.h" #include "texture.h" #include "bmf.h" #include "glext.h" GLfloat LightPos[4] = { 0.0, 0.0, 0.0, 1.0 }; GLfloat ambient[4] = { 0.2, 0.2, 0.2, 0.0 }; GLfloat White[4] = { 1.0, 1.0, 1.0, 1.0 }; GLfloat Black[4] = { 0.0, 0.0, 0.0, 1.0 }; GLfloat Fog[4] = { 1.0, 0.9, 0.8, 1.0 }; float fogdensity = 0.1; int texture = 1, lighting = 1, drawstars = 1, gravity = 1, logo = 1; GLenum smodel = GL_SMOOTH; GLuint StarsDL, MessierDL, MilkyWayDL; int ImgWidth, ImgHeight, components, red, polaris; int width = 640, height = 480; /* default WIDTH and HEIGHT */ planetdata planets[MAXBODIES]; stardata stars[NUMSTARS]; messierdata messierobjs[MAXMESSIER]; double days; int timefactor = 1; /* iterarion = 1 second */ int slices = 16, stacks = 16, NUMBODIES, num_messier, border = 0, filter = GL_LINEAR; int mipmap = 1, mipmap_filter = GL_LINEAR_MIPMAP_LINEAR; char texturepath[100] = TEXTURE_DIR; char confpath[100] = CONF_DIR; unsigned char tmpimg[258 * 258 * 4], *splash_image; int splashwidth = 0, splashheight = 0, splashbitmap = 1, LOD = HIGH, tex_compr; int color_depth = 24; GLenum cd_rgb, cd_lum, cd_rgba, cd_luma; GLuint splashtex[4], logotex; extern float star_mag; static void SetUpTrails(void); static void Spheroid(double, float, float, float, float, int, int, planetdata *, int); void Print(char *), InitLogo(void); GLubyte *read_JPEG_file(char *, int *, int *, int *); void Init(void) { time_t t; glPixelStorei(GL_UNPACK_ALIGNMENT, 4); t = time(NULL); srand(t); days = t / 3600.0 / 24.0 - 10092.0; initfontengine(); hasPointEXT = glutExtensionSupported("GL_EXT_point_parameters"); tex_compr = glutExtensionSupported("GL_EXT_texture_compression_s3tc"); tex_compr *= glutExtensionSupported("GL_ARB_texture_compression"); #ifdef WIN32 InitPointEXT(); #endif ReadConfigFile(); SetUpTrails(); Print("Setting up Stars"); InitStars(star_mag, 1); Print("Setting up Messier Objects"); InitMessier(); Print("Setting up Milky Way"); InitMilkyWay(); InitLogo(); InitFlares(); glShadeModel(smodel); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE); glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambient); glHint((GLenum) GL_TEXTURE_COMPRESSION_HINT_ARB, GL_NICEST); glEnable(GL_TEXTURE_2D); glBlendFunc(GL_DST_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_CULL_FACE); glEnable(GL_DEPTH_TEST); } void InitLogo(void) { static int i, width, height, components; static double j; static unsigned char *image, *localimage; char sbuf[80]; image = read_JPEG_file("cyclo.jpg", &width, &height, &components); if (!image) { sprintf(sbuf, "Couldn't read image %s/cyclo.jpg\n", texturepath); error(sbuf); shutdown(1); } localimage = (unsigned char *) malloc(width * height * 4); if (localimage == NULL) { error("Couldn't allocate memory"); shutdown(1); } for (i = 0; i < (width * height); i++) { localimage[i * 4] = image[i * 3]; localimage[i * 4 + 1] = image[i * 3 + 1]; localimage[i * 4 + 2] = image[i * 3 + 2]; j = (image[i * 3] + image[i * 3 + 1] + image[i * 3 + 2]) / 3.0; if (j < (double) 100.0) j = 0.0; localimage[i * 4 + 3] = j > 255.0 ? 255 : (int) j; } glGenTextures(1, &logotex); glBindTexture(GL_TEXTURE_2D, logotex); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexImage2D(GL_TEXTURE_2D, 0, components == 3 ? cd_rgba : cd_luma, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, localimage); free(image); free(localimage); } /* A quick and dirty Print function for the opening screen I know it's not the best way to do this but it will only have impact in the loading time ;-) */ void Print(char *s) { glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0, width, 0, height); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); if (splashbitmap) { if (!splashwidth) { char *files[4]={"splash1.jpg", "splash2.jpg", "splash3.jpg", "splash4.jpg"}; int i; splash_image = read_JPEG_file(files[rand() % 4], &splashwidth, &splashheight, &components); if ((splashwidth != 512) || (splashheight != 512) || (components != 3)) { error("splash.jpg must be 512x512 24bits"); shutdown(1); } glGenTextures(4, splashtex); for (i = 0; i < 256; i++) memcpy(tmpimg + i * 256 * 3, splash_image + i * splashwidth * components, 256 * components); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, splashtex[0]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); glTexImage2D(GL_TEXTURE_2D, 0, components == 3 ? cd_rgb : cd_lum, 256, 256, 0, components == 3 ? GL_RGB : GL_LUMINANCE, GL_UNSIGNED_BYTE, tmpimg); for (i = 0; i < 256; i++) memcpy(tmpimg + i * 256 * 3, splash_image + i * splashwidth * components + 256 * components, 256 * components); glBindTexture(GL_TEXTURE_2D, splashtex[1]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); glTexImage2D(GL_TEXTURE_2D, 0, components == 3 ? cd_rgb : cd_lum, 256, 256, 0, GL_RGB, GL_UNSIGNED_BYTE, tmpimg); for (i = 0; i < 256; i++) memcpy(tmpimg + i * 256 * 3, splash_image + (i + 256) * splashwidth * components, 256 * components); glBindTexture(GL_TEXTURE_2D, splashtex[2]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); glTexImage2D(GL_TEXTURE_2D, 0, components == 3 ? cd_rgb : cd_lum, 256, 256, 0, components == 3 ? GL_RGB : GL_LUMINANCE, GL_UNSIGNED_BYTE, tmpimg); for (i = 0; i < 256; i++) memcpy(tmpimg + i * 256 * 3, splash_image + (i + 256) * splashwidth * components + 256 * components, 256 * components); glBindTexture(GL_TEXTURE_2D, splashtex[3]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); glTexImage2D(GL_TEXTURE_2D, 0, components == 3 ? cd_rgb : cd_lum, 256, 256, 0, GL_RGB, GL_UNSIGNED_BYTE, tmpimg); free(splash_image); } glDisable(GL_LIGHTING); glDisable(GL_DEPTH_TEST); glEnable(GL_TEXTURE_2D); glColor3f(1.0, 1.0, 1.0); glBindTexture(GL_TEXTURE_2D, splashtex[0]); glBegin(GL_QUADS); glTexCoord2f(0.0, 0.0); glVertex2i(0, 0); glTexCoord2f(1.0, 0.0); glVertex2i(width / 2, 0); glTexCoord2f(1.0, 1.0); glVertex2i(width / 2, height / 2); glTexCoord2f(0.0, 1.0); glVertex2i(0, height / 2); glEnd(); glBindTexture(GL_TEXTURE_2D, splashtex[1]); glBegin(GL_QUADS); glTexCoord2f(0.0, 0.0); glVertex2i(width / 2, 0); glTexCoord2f(1.0, 0.0); glVertex2i(width, 0); glTexCoord2f(1.0, 1.0); glVertex2i(width, height / 2); glTexCoord2f(0.0, 1.0); glVertex2i(width / 2, height / 2); glEnd(); glBindTexture(GL_TEXTURE_2D, splashtex[2]); glBegin(GL_QUADS); glTexCoord2f(0.0, 0.0); glVertex2i(0, height / 2); glTexCoord2f(1.0, 0.0); glVertex2i(width / 2, height / 2); glTexCoord2f(1.0, 1.0); glVertex2i(width / 2, height); glTexCoord2f(0.0, 1.0); glVertex2i(0, height); glEnd(); glBindTexture(GL_TEXTURE_2D, splashtex[3]); glBegin(GL_QUADS); glTexCoord2f(0.0, 0.0); glVertex2i(width / 2, height / 2); glTexCoord2f(1.0, 0.0); glVertex2i(width, height / 2); glTexCoord2f(1.0, 1.0); glVertex2i(width, height); glTexCoord2f(0.0, 1.0); glVertex2i(width / 2, height); glEnd(); } else glClear(GL_COLOR_BUFFER_BIT); switch (fonttype) { case TEXFONT: txfBindFontTexture(txf); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); break; case BMAPFONT: glDisable(GL_TEXTURE_2D); glDisable(GL_LIGHTING); glDisable(GL_DEPTH_TEST); glColor3f(1.0, 1.0, 1.0); } printstring(width / 2 - strlen(s) * glyphwidth / 2, height / 2, 0, s); glutSwapBuffers(); } /* Spheroid drawing routine based on gluSphere Mesa function (src-glu/quadric.c) patched to allow multiple texture objects and flattening. */ static void Spheroid(double radius, float xflat, float yflat, float zflat, float randomness, int slices, int stacks, planetdata * pdata, int textured) { static GLfloat rho, drho, theta, dtheta; GLfloat x, y, z; GLfloat s, t, ds, dt; int i, j, k, imin, imax, tex; double *rarray1, *rarray2, *tmp; drho = M_PI / (GLfloat) stacks; dtheta = 2.0 * M_PI / (GLfloat) slices; /* Allocate memory for surface randomness arrays */ rarray1 = (double *) malloc((slices + 1) * 3 * sizeof(double)); rarray2 = (double *) malloc((slices + 1) * 3 * sizeof(double)); if (textured) { if (stacks % pdata->texheight) { error("Incorrect STACKS value, edit configuration file\n"); shutdown(1); } if (slices % pdata->texwidth) { error("Incorrect SLICES value, edit configuration file\n"); shutdown(1); } ds = 1.0 / slices * pdata->texwidth; dt = 1.0 / stacks * pdata->texheight; t = 1.0; imin = 0; imax = stacks; /* Initialize surface randomness arrays */ for (i = 0; i < (slices + 1) * 3; i++) { rarray1[i] = (1.0 - randomness) + (randomness * 2.0 * rand()) / RAND_MAX; rarray2[i] = (1.0 - randomness) + (randomness * 2.0 * rand()) / RAND_MAX; } for (i = imin; i < imax; i++) { rho = i * drho; if (!(i % (imax / pdata->texheight))) t = 1.0; tmp = rarray1; rarray1 = rarray2; rarray2 = tmp; for (k = 0; k < (slices + 1) * 3; k++) rarray2[k] = (1.0 - randomness) + (randomness * 2.0 * rand()) / RAND_MAX; for (k = 0; k < pdata->texwidth; k++) { /* Find the texture map we should apply in this iteration */ tex = imax / pdata->texheight; tex = (pdata->texwidth * (pdata->texheight - 1) - i / tex * pdata->texwidth) + k; glBindTexture(GL_TEXTURE_2D, pdata->textures[tex]); glBegin(GL_QUAD_STRIP); s = 0.0; /* overwrite last element with first element data */ rarray1[(k + 1) * slices / pdata->texwidth * 3] = rarray1[k * slices / pdata->texwidth * 3]; rarray1[(k + 1) * slices / pdata->texwidth * 3 + 1] = rarray1[k * slices / pdata->texwidth * 3 + 1]; rarray1[(k + 1) * slices / pdata->texwidth * 3 + 2] = rarray1[k * slices / pdata->texwidth * 3 + 2]; rarray2[(k + 1) * slices / pdata->texwidth * 3] = rarray2[k * slices / pdata->texwidth * 3]; rarray2[(k + 1) * slices / pdata->texwidth * 3 + 1] = rarray2[k * slices / pdata->texwidth * 3 + 1]; rarray2[(k + 1) * slices / pdata->texwidth * 3 + 2] = rarray2[k * slices / pdata->texwidth * 3 + 2]; for (j = (k * slices / pdata->texwidth); j <= ((k + 1) * slices / pdata->texwidth); j++) { theta = (j == slices) ? 0.0 : j * dtheta; x = -sin(theta) * sin(rho) * rarray1[j * 3]; y = cos(theta) * sin(rho) * rarray1[j * 3 + 1]; z = cos(rho) * rarray1[j * 3 + 2]; glNormal3f(x, y, z); glTexCoord2f(s, t); glVertex3f(x * radius * (1.0 - xflat), y * radius * (1.0 - yflat), z * radius * (1.0 - zflat)); x = -sin(theta) * sin(rho + drho) * rarray2[j * 3]; y = cos(theta) * sin(rho + drho) * rarray2[j * 3 + 1]; z = cos(rho + drho) * rarray2[j * 3 + 2]; glNormal3f(x, y, z); glTexCoord2f(s, t - dt); s += ds; glVertex3f(x * radius * (1.0 - xflat), y * radius * (1.0 - yflat), z * radius * (1.0 - zflat)); } glEnd(); } t -= dt; } } else { ds = 1.0 / slices; dt = 1.0 / stacks; imin = 0; imax = stacks; for (i = imin; i < imax; i++) { rho = i * drho; glBegin(GL_QUAD_STRIP); for (j = 0; j <= slices; j++) { theta = (j == slices) ? 0.0 : j * dtheta; x = -sin(theta) * sin(rho); y = cos(theta) * sin(rho); z = cos(rho); glNormal3f(x, y, z); glVertex3f(x * radius, y * radius, z * radius); x = -sin(theta) * sin(rho + drho); y = cos(theta) * sin(rho + drho); z = cos(rho + drho); glNormal3f(x, y, z); glVertex3f(x * radius, y * radius, z * radius); } glEnd(); } } free(rarray1); free(rarray2); } /* Read texture, split large textures into 256x256 pieces and set up display lists */ void SetUpBody(int body, char *texfile, int compress_texture) { int width = 256, height = 256, x1, x2, x3, y, i, j, k, current; GLenum gluerr; BMFObject *obj; char sbuf[80]; GLenum intformat, format; sprintf(sbuf, "Setting up body: %s", planets[body].Name); Print(sbuf); switch (texfile[strlen(texfile) - 1]) { case 'f': /* BMF file */ obj = LoadBMF(texfile, RADIUSSCALE(planets[body].Radius)); planets[body].HighDetail = glGenLists(1); glNewList(planets[body].HighDetail, GL_COMPILE); glMaterialf(GL_FRONT, GL_SHININESS, 1.0); if (obj->sparse) { for (i = 0; i < obj->NumMaterials; i++) { glInterleavedArrays(GL_T2F_N3F_V3F, 0, obj->sparse[i].vertexlist); glMaterialfv(GL_FRONT, GL_AMBIENT, (GLfloat *) & obj->sparse[i].ambient); glMaterialfv(GL_FRONT, GL_DIFFUSE, (GLfloat *) & obj->sparse[i].diffuse); glMaterialfv(GL_FRONT, GL_SPECULAR, (GLfloat *) & obj->sparse[i].specular); if (obj->sparse[i].texture_name_length > 1) { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, obj->sparse[i].texbind); } else glDisable(GL_TEXTURE_2D); glDrawElements(GL_TRIANGLES, obj->sparse[i].number_of_triangles * 3, GL_UNSIGNED_SHORT, obj->sparse[i].indexlist); } } else { for (i = 0; i < obj->NumMaterials; i++) { glInterleavedArrays(GL_T2F_N3F_V3F, 0, obj->strip[i].vertexlist); glMaterialfv(GL_FRONT, GL_AMBIENT, (GLfloat *) & obj->strip[i].ambient); glMaterialfv(GL_FRONT, GL_DIFFUSE, (GLfloat *) & obj->strip[i].diffuse); glMaterialfv(GL_FRONT, GL_SPECULAR, (GLfloat *) & obj->strip[i].specular); if (obj->strip[i].texture_name_length > 1) { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, obj->strip[i].texbind); } else glDisable(GL_TEXTURE_2D); current = 0; for (j = 0; j < obj->strip[i].number_of_strips; j++) { glDrawElements(GL_TRIANGLE_STRIP, obj->strip[i].length_of_strip[j], GL_UNSIGNED_SHORT, &obj->strip[i].stripindex[current]); current += obj->strip[i].length_of_strip[j]; } } } glMaterialfv(GL_FRONT, GL_SPECULAR, Black); glEndList(); planets[body].LowDetail = planets[body].MidDetail = planets[body].HighDetail; planets[body].texsize = obj->texsize; break; case 'g': /* Spherical body, JPEG texture */ planets[body].Image = read_JPEG_file(texfile, &ImgWidth, &ImgHeight, &components); if (!planets[body].Image) { sprintf(sbuf, "Couldn't read image %s/%s\n", texturepath, texfile); error(sbuf); shutdown(1); } planets[body].Image = texture_LOD(planets[body].Image, &ImgWidth, &ImgHeight, components); if (components == 1) j = 1; else j = color_depth / 8; planets[body].texsize = (ImgWidth * ImgHeight * j); if (ImgWidth < width) { planets[body].texwidth = 1; width = ImgWidth; } else planets[body].texwidth = ImgWidth / width; if (ImgHeight < height) { planets[body].texheight = 1; height = ImgHeight; } else planets[body].texheight = ImgHeight / height; planets[body].texnum = planets[body].texwidth * planets[body].texheight; planets[body].textures = (GLuint *) malloc(planets[body].texnum * sizeof(GLuint)); if (planets[body].textures == NULL) { error("Couldn't allocate memory"); shutdown(1); } intformat = components == 3 ? cd_rgb : cd_lum; format = components == 3 ? (GLenum) GL_RGB : (GLenum) GL_LUMINANCE; if ((format == GL_RGB) && tex_compr && compress_texture) intformat = (GLenum) GL_COMPRESSED_RGB_ARB; glGenTextures(planets[body].texnum, planets[body].textures); for (j = 0; j < planets[body].texheight; j++) for (i = 0; i < planets[body].texwidth; i++) { glBindTexture(GL_TEXTURE_2D, planets[body].textures[planets[body]. texwidth * j + i]); if (border) { /* Copy pixel data to texture buffer and set up borders */ x1 = i * width; x2 = (i * width + ImgWidth - 1) % ImgWidth; x3 = ((i + 1) * width) % ImgWidth; for (k = 0; k < (height + 2); k++) { y = (j * height + k + ImgHeight - 1) % ImgHeight; memcpy(tmpimg + k * (width + 2) * components + components, planets[body].Image + y * ImgWidth * components + x1 * components, width * components); memcpy(tmpimg + k * (width + 2) * components, planets[body].Image + y * ImgWidth * components + x2 * components, components); memcpy(tmpimg + k * (width + 2) * components + (width + 1) * components, planets[body].Image + y * ImgWidth * components + x3 * components, components); } glTexImage2D(GL_TEXTURE_2D, 0, intformat, width + 2, height + 2, 1, format, GL_UNSIGNED_BYTE, tmpimg); } else { for (k = 0; k < height; k++) memcpy(tmpimg + k * width * components, planets[body].Image + ImgWidth * width * components * j + width * components * i + ImgWidth * components * k, width * components); if (mipmap) { if ( (gluerr = (GLenum) gluBuild2DMipmaps(GL_TEXTURE_2D, intformat, width, height, format, GL_UNSIGNED_BYTE, tmpimg))) { error((char *) gluErrorString(gluerr)); shutdown(1); } } else { glTexImage2D(GL_TEXTURE_2D, 0, intformat, width, height, 0, format, GL_UNSIGNED_BYTE, tmpimg); } } if (mipmap) { glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mipmap_filter); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mipmap_filter); } else { glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter); } glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); } free(planets[body].Image); planets[body].HighDetail = glGenLists(1); glNewList(planets[body].HighDetail, GL_COMPILE); Spheroid(RADIUSSCALE(planets[body].Radius), planets[body].xflat, planets[body].yflat, planets[body].zflat, 0.0, slices, stacks, &planets[body], 1); glEndList(); planets[body].MidDetail = glGenLists(1); glNewList(planets[body].MidDetail, GL_COMPILE); Spheroid(RADIUSSCALE(planets[body].Radius), planets[body].xflat, planets[body].yflat, planets[body].zflat, 0.0, slices / 2, stacks / 2, &planets[body], 1); glEndList(); planets[body].LowDetail = glGenLists(1); glNewList(planets[body].LowDetail, GL_COMPILE); Spheroid(RADIUSSCALE(planets[body].Radius), planets[body].xflat, planets[body].yflat, planets[body].zflat, 0.0, slices / 4, stacks / 4, &planets[body], 1); glEndList(); break; } } void SetUpAsteroid(int body, char *model) { int i, j, current; BMFObject *obj; char sbuf[80]; sprintf(sbuf, "Setting up Asteroid: %s", planets[body].Name); Print(sbuf); planets[body].Radius /= RADIUSSCALE(1.0); obj = LoadBMF(model, RADIUSSCALE(planets[body].Radius)); planets[body].HighDetail = glGenLists(1); glNewList(planets[body].HighDetail, GL_COMPILE); glMaterialf(GL_FRONT, GL_SHININESS, 1.0); if (obj->sparse) { for (i = 0; i < obj->NumMaterials; i++) { glInterleavedArrays(GL_T2F_N3F_V3F, 0, obj->sparse[i].vertexlist); glMaterialfv(GL_FRONT, GL_AMBIENT, (GLfloat *) & obj->sparse[i].ambient); glMaterialfv(GL_FRONT, GL_DIFFUSE, (GLfloat *) & obj->sparse[i].diffuse); glMaterialfv(GL_FRONT, GL_SPECULAR, (GLfloat *) & obj->sparse[i].specular); if (obj->sparse[i].texture_name_length > 1) { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, obj->sparse[i].texbind); } else glDisable(GL_TEXTURE_2D); glDrawElements(GL_TRIANGLES, obj->sparse[i].number_of_triangles * 3, GL_UNSIGNED_SHORT, obj->sparse[i].indexlist); } } else { for (i = 0; i < obj->NumMaterials; i++) { glInterleavedArrays(GL_T2F_N3F_V3F, 0, obj->strip[i].vertexlist); glMaterialfv(GL_FRONT, GL_AMBIENT, (GLfloat *) & obj->strip[i].ambient); glMaterialfv(GL_FRONT, GL_DIFFUSE, (GLfloat *) & obj->strip[i].diffuse); glMaterialfv(GL_FRONT, GL_SPECULAR, (GLfloat *) & obj->strip[i].specular); if (obj->strip[i].texture_name_length > 1) { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, obj->strip[i].texbind); } else glDisable(GL_TEXTURE_2D); current = 0; for (j = 0; j < obj->strip[i].number_of_strips; j++) { glDrawElements(GL_TRIANGLE_STRIP, obj->strip[i].length_of_strip[j], GL_UNSIGNED_SHORT, &obj->strip[i].stripindex[current]); current += obj->strip[i].length_of_strip[j]; } } } glMaterialfv(GL_FRONT, GL_SPECULAR, Black); glEndList(); planets[body].texsize = obj->texsize; } void SetUpComet(int body, char *texfile, float randomness, float lenght, int num_part) { int i; float a, b, c, xo, yo, zo, xd, yd, zd; char sbuf[80]; sprintf(sbuf, "Setting up body: %s", planets[body].Name); Print(sbuf); planets[body].tail = (particle *) malloc(sizeof(particle) * num_part); planets[body].tail_lenght = lenght; planets[body].num_particles = num_part; for (i = 0; i < num_part; i++) { a = (rand() % 360) * M_PI / 180.0; b = (float) rand() / RAND_MAX; b *= RADIUSSCALE(planets[body].Radius); c = (float) i / (float) num_part *lenght; xo = yo = zo = 0.0; xd = 0.1 * b / RADIUSSCALE(planets[body].Radius) * sin(a); yd = RADIUSSCALE(planets[body].Radius); zd = 0.1 * b / RADIUSSCALE(planets[body].Radius) * cos(a); planets[body].tail[i].dist = c; c = DISTANCE(xd, yd, zd); planets[body].tail[i].origin[0] = xo; planets[body].tail[i].origin[1] = yo; planets[body].tail[i].origin[2] = zo; planets[body].tail[i].dir[0] = xd / c; planets[body].tail[i].dir[1] = zd / c; planets[body].tail[i].dir[2] = yd / c; } } void SetUpOrbiter(int body, char *model) { int i, j, current; BMFObject *obj; char sbuf[80]; sprintf(sbuf, "Setting up orbiter: %s", planets[body].Name); Print(sbuf); planets[body].Radius /= RADIUSSCALE(1.0); obj = LoadBMF(model, RADIUSSCALE(planets[body].Radius)); planets[body].HighDetail = glGenLists(1); glNewList(planets[body].HighDetail, GL_COMPILE); glMaterialf(GL_FRONT, GL_SHININESS, 1.0); if (obj->sparse) { for (i = 0; i < obj->NumMaterials; i++) { glInterleavedArrays(GL_T2F_N3F_V3F, 0, obj->sparse[i].vertexlist); glMaterialfv(GL_FRONT, GL_AMBIENT, (GLfloat *) & obj->sparse[i].ambient); glMaterialfv(GL_FRONT, GL_DIFFUSE, (GLfloat *) & obj->sparse[i].diffuse); glMaterialfv(GL_FRONT, GL_SPECULAR, (GLfloat *) & obj->sparse[i].specular); if (obj->sparse[i].texture_name_length > 1) { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, obj->sparse[i].texbind); } else glDisable(GL_TEXTURE_2D); glDrawElements(GL_TRIANGLES, obj->sparse[i].number_of_triangles * 3, GL_UNSIGNED_SHORT, obj->sparse[i].indexlist); } } else { for (i = 0; i < obj->NumMaterials; i++) { glInterleavedArrays(GL_T2F_N3F_V3F, 0, obj->strip[i].vertexlist); glMaterialfv(GL_FRONT, GL_AMBIENT, (GLfloat *) & obj->strip[i].ambient); glMaterialfv(GL_FRONT, GL_DIFFUSE, (GLfloat *) & obj->strip[i].diffuse); glMaterialfv(GL_FRONT, GL_SPECULAR, (GLfloat *) & obj->strip[i].specular); if (obj->strip[i].texture_name_length > 1) { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, obj->strip[i].texbind); } else glDisable(GL_TEXTURE_2D); current = 0; for (j = 0; j < obj->strip[i].number_of_strips; j++) { glDrawElements(GL_TRIANGLE_STRIP, obj->strip[i].length_of_strip[j], GL_UNSIGNED_SHORT, &obj->strip[i].stripindex[current]); current += obj->strip[i].length_of_strip[j]; } } } glMaterialfv(GL_FRONT, GL_SPECULAR, Black); glEndList(); planets[body].texsize = obj->texsize; } void SetUpSpaceShip(int body, char *model) { int i, j, current; BMFObject *obj; char sbuf[80]; sprintf(sbuf, "Setting up SpaceShip: %s", planets[body].Name); Print(sbuf); planets[body].Radius /= RADIUSSCALE(1.0); obj = LoadBMF(model, RADIUSSCALE(planets[body].Radius)); planets[body].HighDetail = glGenLists(1); glNewList(planets[body].HighDetail, GL_COMPILE); glMaterialf(GL_FRONT, GL_SHININESS, 1.0); if (obj->sparse) { for (i = 0; i < obj->NumMaterials; i++) { glInterleavedArrays(GL_T2F_N3F_V3F, 0, obj->sparse[i].vertexlist); glMaterialfv(GL_FRONT, GL_AMBIENT, (GLfloat *) & obj->sparse[i].ambient); glMaterialfv(GL_FRONT, GL_DIFFUSE, (GLfloat *) & obj->sparse[i].diffuse); glMaterialfv(GL_FRONT, GL_SPECULAR, (GLfloat *) & obj->sparse[i].specular); if (obj->sparse[i].texture_name_length > 1) { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, obj->sparse[i].texbind); } else glDisable(GL_TEXTURE_2D); glDrawElements(GL_TRIANGLES, obj->sparse[i].number_of_triangles * 3, GL_UNSIGNED_SHORT, obj->sparse[i].indexlist); if (obj->sparse[i].texture_name_length <= 1) glEnable(GL_TEXTURE_2D); } } else { for (i = 0; i < obj->NumMaterials; i++) { glInterleavedArrays(GL_T2F_N3F_V3F, 0, obj->strip[i].vertexlist); glMaterialfv(GL_FRONT, GL_AMBIENT, (GLfloat *) & obj->strip[i].ambient); glMaterialfv(GL_FRONT, GL_DIFFUSE, (GLfloat *) & obj->strip[i].diffuse); glMaterialfv(GL_FRONT, GL_SPECULAR, (GLfloat *) & obj->strip[i].specular); if (obj->strip[i].texture_name_length > 1) { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, obj->strip[i].texbind); } else glDisable(GL_TEXTURE_2D); current = 0; for (j = 0; j < obj->strip[i].number_of_strips; j++) { glDrawElements(GL_TRIANGLE_STRIP, obj->strip[i].length_of_strip[j], GL_UNSIGNED_SHORT, &obj->strip[i].stripindex[current]); current += obj->strip[i].length_of_strip[j]; } if (obj->strip[i].texture_name_length <= 1) glEnable(GL_TEXTURE_2D); } } glMaterialfv(GL_FRONT, GL_SPECULAR, Black); glEndList(); planets[body].texsize = obj->texsize; } void SetUpRings(int body, char *texfile, float inner_radius, float outter_radius, float tlevel) { unsigned char *localimage; int i; char sbuf[80]; sprintf(sbuf, "Setting up rings: %s", planets[planets[body].Sat].Name); Print(sbuf); planets[body].Image = read_JPEG_file(texfile, &ImgWidth, &ImgHeight, &components); if (!planets[body].Image) { sprintf(sbuf, "Couldn't read image %s/%s\n", texturepath, texfile); error(sbuf); shutdown(1); } localimage = (unsigned char *) malloc(ImgHeight * ImgWidth * (components + 1)); if (localimage == NULL) { error("Couldn't allocate memory"); shutdown(1); } switch (components) { case 1: for (i = 0; i < (ImgHeight * ImgWidth); i++) { localimage[i * 2] = planets[body].Image[i]; localimage[i * 2 + 1] = (unsigned char) (planets[body].Image[i] / tlevel); } break; case 3: for (i = 0; i < (ImgHeight * ImgWidth); i++) { localimage[i * 4] = planets[body].Image[i * 3]; localimage[i * 4 + 1] = planets[body].Image[i * 3 + 1]; localimage[i * 4 + 2] = planets[body].Image[i * 3 + 2]; localimage[i * 4 + 3] = (unsigned char) ((planets[body].Image[i * 3] + planets[body].Image[i * 3 + 1] + planets[body].Image[i * 3 + 2]) / 3 / tlevel); } break; } planets[body].texnum = 1; planets[body].textures = (GLuint *) malloc(planets[body].texnum * sizeof(GLuint)); if (planets[body].textures == NULL) { error("Couldn't allocate memory"); shutdown(1); } glGenTextures(planets[body].texnum, planets[body].textures); glBindTexture(GL_TEXTURE_2D, planets[body].textures[0]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexImage2D(GL_TEXTURE_2D, 0, components == 3 ? cd_rgba : cd_luma, ImgWidth, ImgHeight, 0, components == 3 ? GL_RGBA : GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, localimage); free(planets[body].Image); free(localimage); } void SetUpAtmosphere(int body, char *texfile, float level, int cut) { int width = 256, height = 256, x1, x2, x3, y, i, j, k; unsigned char localimage[258 * 258 * 4]; GLenum gluerr; char sbuf[80]; sprintf(sbuf, "Setting up atmosphere: %s", planets[planets[body].Sat].Name); Print(sbuf); planets[body].Image = read_JPEG_file(texfile, &ImgWidth, &ImgHeight, &components); if (!planets[body].Image) { sprintf(sbuf, "Couldn't read image %s/%s\n", texturepath, texfile); error(sbuf); shutdown(1); } planets[body].Image = texture_LOD(planets[body].Image, &ImgWidth, &ImgHeight, components); if (components == 1) j = 1; else j = color_depth / 8; planets[body].texsize = (ImgWidth * ImgHeight * j); if (ImgWidth < width) { planets[body].texwidth = 1; width = ImgWidth; } else planets[body].texwidth = ImgWidth / width; if (ImgHeight < height) { planets[body].texheight = 1; height = ImgHeight; } else planets[body].texheight = ImgHeight / height; planets[body].texnum = planets[body].texwidth * planets[body].texheight; planets[body].textures = (GLuint *) malloc(planets[body].texnum * sizeof(GLuint)); if (planets[body].textures == NULL) { error("Couldn't allocate memory"); shutdown(1); } glGenTextures(planets[body].texnum, planets[body].textures); for (j = 0; j < planets[body].texheight; j++) for (i = 0; i < planets[body].texwidth; i++) { glBindTexture(GL_TEXTURE_2D, planets[body].textures[planets[body].texwidth * j + i]); if (border) { /* Copy pixel data to texture buffer and set up borders */ x1 = i * width; x2 = (i * width + ImgWidth - 1) % ImgWidth; x3 = ((i + 1) * width) % ImgWidth; for (k = 0; k < (height + 2); k++) { y = (j * height + k + ImgHeight - 1) % ImgHeight; memcpy(tmpimg + k * (width + 2) * components + components, planets[body].Image + y * ImgWidth * components + x1 * components, width * components); memcpy(tmpimg + k * (width + 2) * components, planets[body].Image + y * ImgWidth * components + x2 * components, components); memcpy(tmpimg + k * (width + 2) * components + (width + 1) * components, planets[body].Image + y * ImgWidth * components + x3 * components, components); } for (k = 0; k < (258 * 258); k++) { localimage[k * (components + 1)] = tmpimg[k * components]; localimage[k * (components + 1) + 1] = tmpimg[k * components + 1]; localimage[k * (components + 1) + 2] = tmpimg[k * components + 2]; if (components == 3) y = (tmpimg[k * 3] + tmpimg[k * 3 + 1] + tmpimg[k * 3 + 2]) / 3; else y = tmpimg[k]; if (y < cut) y = 0; localimage[k * (components + 1) + components] = (unsigned char) ((float) y / level); } glTexImage2D(GL_TEXTURE_2D, 0, components == 3 ? cd_rgba : cd_luma, width + 2, height + 2, 1, components == 3 ? GL_RGBA : GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, localimage); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter); } else { for (k = 0; k < height; k++) memcpy(tmpimg + k * width * components, planets[body].Image + ImgWidth * width * components * j + width * components * i + ImgWidth * components * k, width * components); for (k = 0; k < (256 * 256); k++) { localimage[k * (components + 1)] = tmpimg[k * components]; localimage[k * (components + 1) + 1] = tmpimg[k * components + 1]; localimage[k * (components + 1) + 2] = tmpimg[k * components + 2]; if (components == 3) y = (tmpimg[k * 3] + tmpimg[k * 3 + 1] + tmpimg[k * 3 + 2]) / 3; else y = tmpimg[k]; if (y < cut) y = 0; localimage[k * (components + 1) + components] = (unsigned char) ((float) y / level); } if (mipmap) { if ( (gluerr = (GLenum) gluBuild2DMipmaps(GL_TEXTURE_2D, components == 3 ? cd_rgba : cd_luma, width, height, components == 3 ? GL_RGBA : GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, localimage))) { error((char *) gluErrorString(gluerr)); shutdown(1); } glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, mipmap_filter); } else { glTexImage2D(GL_TEXTURE_2D, 0, components == 3 ? cd_rgba : cd_luma, width, height, 0, components == 3 ? GL_RGBA : GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, localimage); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter); } } glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter); } free(planets[body].Image); planets[body].HighDetail = glGenLists(1); glNewList(planets[body].HighDetail, GL_COMPILE); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); Spheroid(RADIUSSCALE(planets[body].Radius), planets[planets[body].Sat].xflat, planets[planets[body].Sat].yflat, planets[planets[body].Sat].zflat, 0.0, slices, stacks, &planets[body], 1); glDisable(GL_BLEND); glEndList(); planets[body].MidDetail = glGenLists(1); glNewList(planets[body].MidDetail, GL_COMPILE); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); Spheroid(RADIUSSCALE(planets[body].Radius), planets[planets[body].Sat].xflat, planets[planets[body].Sat].yflat, planets[planets[body].Sat].zflat, 0.0, slices / 2, stacks / 2, &planets[body], 1); glDisable(GL_BLEND); glEndList(); planets[body].LowDetail = glGenLists(1); glNewList(planets[body].LowDetail, GL_COMPILE); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); Spheroid(RADIUSSCALE(planets[body].Radius), planets[planets[body].Sat].xflat, planets[planets[body].Sat].yflat, planets[planets[body].Sat].zflat, 0.0, slices / 4, stacks / 4, &planets[body], 1); glDisable(GL_BLEND); glEndList(); } static void SetUpTrails(void) { int i, j; double d; Print("Setting up Trails"); for (i = 1; i < NUMBODIES; i++) { if ((planets[i].Type != PLANET) && (planets[i].Type != ASTEROID) && (planets[i].Type != COMET)) continue; planets[i].Trail = glGenLists(1); glNewList(planets[i].Trail, GL_COMPILE); glColor3f(planets[i].Color[0], planets[i].Color[1], planets[i].Color[2]); glBegin(GL_LINE_LOOP); d = 0.0; for (j = 0; j < 360; j++) { UpdatePositions(d, i); glVertex3dv(planets[i].pos); d += planets[i].OrbitalPeriod / 360.0; } glEnd(); glEndList(); } } void InitSun(char *filename, double blend, int cutlevel) { static int i; char sbuf[80]; Print("Setting up The Sun"); planets[0].Radius = 2.0; /*Real Radius is 109.6 */ planets[0].Degrees = 0.0; planets[0].DeltaRotation = 0.0; planets[0].Rotation = 360.0 / 28.0; planets[0].Inclination = 0.0; planets[0].Sat = 0; INITVECTOR(planets[0].pos, 0.0, 0.0, 0.0); INITVECTOR(planets[0].vel, 0.0, 0.0, 0.0); sprintf(planets[0].Name, "Sun"); planets[0].Image = read_JPEG_file(filename, &ImgWidth, &ImgHeight, &components); if (!planets[0].Image) { sprintf(sbuf, "Couldn't read image %s/sun.jpg\n", texturepath); error(sbuf); shutdown(1); } if (components == 1) i = 1; else i = color_depth / 8; planets[0].texsize = (ImgWidth * ImgHeight * i); planets[0].texnum = 7; planets[0].textures = (GLuint *) malloc(sizeof(GLuint) * 7); if (planets[0].textures == NULL) { error("Couldn't allocate memory"); shutdown(1); } glGenTextures(7, planets[0].textures); glBindTexture(GL_TEXTURE_2D, planets[0].textures[0]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexImage2D(GL_TEXTURE_2D, 0, components == 3 ? cd_rgb : cd_lum, ImgWidth, ImgHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, planets[0].Image); free(planets[0].Image); } openuniverse-1.0beta3.1.orig/src/milkyway.cpp0000644000175000017500000000717007107356061021174 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" int milkyway = 1, milkyway_texsize = 0; void InitMilkyWay() { #define MW_QUADS 32 int i, j, height, components, width, tw, th; GLuint textures[MW_QUADS]; char sbuf[100]; unsigned char *image, *localimage; double alfa; image = read_JPEG_file("mw.jpg", &width, &height, &components); if (!image) { sprintf(sbuf, "Couldn't read image mw.jpg\n"); error(sbuf); shutdown(1); } image = texture_LOD(image, &width, &height, components); if (components == 1) i = 1; else i = color_depth / 8; milkyway_texsize = (width * height * i); th = height; tw = width / MW_QUADS; localimage = (unsigned char *) malloc(tw * th * components); if (localimage == NULL) { error("Couldn't allocate memory"); shutdown(1); } glGenTextures(MW_QUADS, textures); for (j = 0; j < MW_QUADS; j++) { for (i = 0; i < th; i++) memcpy(localimage + i * tw * components, image + i * width * components + j * tw * components, tw * components); glBindTexture(GL_TEXTURE_2D, textures[j]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); glTexImage2D(GL_TEXTURE_2D, 0, components == 3 ? cd_rgb : cd_lum, tw, th, 0, components == 3 ? GL_RGB : GL_LUMINANCE, GL_UNSIGNED_BYTE, localimage); } free(image); free(localimage); MilkyWayDL = glGenLists(1); glNewList(MilkyWayDL, GL_COMPILE); glColor3f(1.0, 1.0, 0.9); glRotatef(90.0, 0.0, 1.0, 0.0); glRotatef(-60.0, 1.0, 0.0, 0.0); alfa = atan2(1.0, 5.0); for (i = 0; i < MW_QUADS; i++) { #define X1 (UNIVERSERADIUS*0.9*cos(DEG2RAD(i*(360.0/MW_QUADS)))) #define Z1 (UNIVERSERADIUS*0.9*sin(DEG2RAD(i*(360.0/MW_QUADS)))) #define X2 (UNIVERSERADIUS*0.9*cos(DEG2RAD((i+1)*(360.0/MW_QUADS)))) #define Z2 (UNIVERSERADIUS*0.9*sin(DEG2RAD((i+1)*(360.0/MW_QUADS)))) #define _X1 (UNIVERSERADIUS*0.9*cos(alfa)*cos(DEG2RAD(i*(360.0/MW_QUADS)))) #define _Z1 (UNIVERSERADIUS*0.9*cos(alfa)*sin(DEG2RAD(i*(360.0/MW_QUADS)))) #define _X2 (UNIVERSERADIUS*0.9*cos(alfa)*cos(DEG2RAD((i+1)*(360.0/MW_QUADS)))) #define _Z2 (UNIVERSERADIUS*0.9*cos(alfa)*sin(DEG2RAD((i+1)*(360.0/MW_QUADS)))) glBindTexture(GL_TEXTURE_2D, textures[i]); glBegin(GL_QUADS); glTexCoord2f(1.0, 1.0); glVertex3f(_X2, UNIVERSERADIUS / 5.0, _Z2); glTexCoord2f(0.0, 1.0); glVertex3f(_X1, UNIVERSERADIUS / 5.0, _Z1); glTexCoord2f(0.0, 0.5); glVertex3f(X1, 0.0, Z1); glTexCoord2f(1.0, 0.5); glVertex3f(X2, 0.0, Z2); glTexCoord2f(1.0, 0.5); glVertex3f(X2, 0.0, Z2); glTexCoord2f(0.0, 0.5); glVertex3f(X1, 0.0, Z1); glTexCoord2f(0.0, 0.0); glVertex3f(_X1, -UNIVERSERADIUS / 5.0, _Z1); glTexCoord2f(1.0, 0.0); glVertex3f(_X2, -UNIVERSERADIUS / 5.0, _Z2); glEnd(); } glEndList(); } openuniverse-1.0beta3.1.orig/src/stars.cpp0000644000175000017500000001373507107356137020472 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" float star_size = 40.0; void InitStars(float magcorr, int read_file) { char datapath[100] = DATA_DIR; static char line[100], *tmp; FILE *f = NULL; static float dimension, old_mag, magnitude; static double p1[3], p2[3], p3[3], p4[3]; int i, j; if (read_file) { sprintf(line, "%s/stars.dat", datapath); f = fopen(line, "rt"); if (f == NULL) { error("Couldn't find star catalog file"); shutdown(1); } } for (i = 0; i < NUMSTARS; i++) { if (read_file) { fgets(line, 100, f); if (feof(f)) break; while (line[0] == '#') fgets(line, 100, f); if (feof(f)) break; j = 0; while (line[j] != ',') j++; line[j] = '\0'; tmp = line + j + 1; strcpy(stars[i].Name, line); sscanf(tmp, "%f,%f,%f,%c\n", &stars[i].ascension, &stars[i].declination, &stars[i].magnitude, &stars[i].type); /* Translate declination/ascension coord into x,y,z */ INITVECTOR(stars[i].pos, UNIVERSERADIUS * cos(-stars[i].ascension) * cos(stars[i].declination), UNIVERSERADIUS * sin(stars[i].declination), UNIVERSERADIUS * sin(-stars[i].ascension) * cos(stars[i].declination)); } red = 0; /* Print some stars in red color for accuracy testing */ if (!strcmp(stars[i].Name, "Polaris")) { red = 1; polaris = i; } if (!strcmp(stars[i].Name, "Dubhe")) red = 1; if (!strcmp(stars[i].Name, "Merak")) red = 1; if (!strcmp(stars[i].Name, "Phecda")) red = 1; if (!strcmp(stars[i].Name, "Megrez")) red = 1; if (!strcmp(stars[i].Name, "Alioth")) red = 1; if (!strcmp(stars[i].Name, "Mizar")) red = 1; /* Translate magnitude scale into 0-1 color scale. This is a bit tricky and didn't find the right translation yet (it's very monitor gamma dependant) */ /* * stars[i].color=1.0/(1.46+stars[i].magnitude)+0.2; * stars[i].color=pow(1.0/(stars[i].magnitude+2.46),0.5); * stars[i].color=0.8/log(1.46+stars[i].magnitude); */ magnitude = magcorr * 2.42 / ((2.46 + stars[i].magnitude) * 2.42); if (magnitude > 1.0) magnitude = 1.0; /* Only 20 magnitudes levels to speed up rendering process */ magnitude = (int) ceil(magnitude * 20.0) / 20.0; switch (stars[i].type) { case 'O': stars[i].color[0] = 0.8; stars[i].color[1] = 0.8; stars[i].color[2] = 1.0; break; case 'B': stars[i].color[0] = 0.9; stars[i].color[1] = 0.9; stars[i].color[2] = 1.0; break; case 'A': stars[i].color[0] = 1.0; stars[i].color[1] = 1.0; stars[i].color[2] = 1.0; break; case 'F': stars[i].color[0] = 1.0; stars[i].color[1] = 1.0; stars[i].color[2] = 0.8; break; case 'G': stars[i].color[0] = 1.0; stars[i].color[1] = 1.0; stars[i].color[2] = 0.7; break; case 'K': stars[i].color[0] = 1.0; stars[i].color[1] = 0.9; stars[i].color[2] = 0.8; break; case 'M': case 'C': case 'S': stars[i].color[0] = 1.0; stars[i].color[1] = 0.6; stars[i].color[2] = 0.6; break; } stars[i].color[0] *= magnitude; stars[i].color[1] *= magnitude; stars[i].color[2] *= magnitude; } if (read_file) fclose(f); old_mag = 100.0; i = 0; StarsDL = glGenLists(1); glNewList(StarsDL, GL_COMPILE); glEnable(GL_BLEND); glBindTexture(GL_TEXTURE_2D, planets[0].textures[0]); while (stars[i].magnitude < magcorr) { dimension = star_size + 100.0 / (stars[i].magnitude + 2.4); dimension = 0.0035 + 0.001 / (stars[i].magnitude + 2.4); INITVECTOR(p1, UNIVERSERADIUS * cos(-(stars[i].ascension + dimension)) * cos(stars[i].declination - dimension), UNIVERSERADIUS * sin(stars[i].declination - dimension), UNIVERSERADIUS * sin(-(stars[i].ascension + dimension)) * cos(stars[i].declination - dimension)); INITVECTOR(p2, UNIVERSERADIUS * cos(-(stars[i].ascension - dimension)) * cos(stars[i].declination - dimension), UNIVERSERADIUS * sin(stars[i].declination - dimension), UNIVERSERADIUS * sin(-(stars[i].ascension - dimension)) * cos(stars[i].declination - dimension)); INITVECTOR(p3, UNIVERSERADIUS * cos(-(stars[i].ascension - dimension)) * cos(stars[i].declination + dimension), UNIVERSERADIUS * sin(stars[i].declination + dimension), UNIVERSERADIUS * sin(-(stars[i].ascension - dimension)) * cos(stars[i].declination + dimension)); INITVECTOR(p4, UNIVERSERADIUS * cos(-(stars[i].ascension + dimension)) * cos(stars[i].declination + dimension), UNIVERSERADIUS * sin(stars[i].declination + dimension), UNIVERSERADIUS * sin(-(stars[i].ascension + dimension)) * cos(stars[i].declination + dimension)); glColor3f(stars[i].color[0], stars[i].color[1], stars[i].color[2]); glBegin(GL_QUADS); glTexCoord2f(0.0, 0.0); glVertex3f(p1[X], p1[Y], p1[Z]); glTexCoord2f(0.0, 1.0); glVertex3f(p2[X], p2[Y], p2[Z]); glTexCoord2f(1.0, 1.0); glVertex3f(p3[X], p3[Y], p3[Z]); glTexCoord2f(1.0, 0.0); glVertex3f(p4[X], p4[Y], p4[Z]); glEnd(); i++; } glDisable(GL_BLEND); glDisable(GL_TEXTURE_2D); glBegin(GL_POINTS); while (i < NUMSTARS) { glColor3f(stars[i].color[0], stars[i].color[1], stars[i].color[2]); glVertex3dv(stars[i].pos); i++; } glEnd(); glEndList(); } openuniverse-1.0beta3.1.orig/src/events.cpp0000644000175000017500000000704507107360241020626 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" #include event events[MAXEVENTS]; int numevents = 0, currevent = 0, eventrecord = 0, nexteventin; double eventrecordstart; double eventstartcampos[3], eventstartcameye[3], eventstartcamup[3]; void EventTimerFunc(int); void AutoEvents(void) { char eventpath[100] = EVENTS_DIR; static char line[200]; FILE *f = NULL; sprintf(line, "%s/autoevent.dat", eventpath); f = fopen(line, "rt"); if (f == NULL) return; currevent = -1; for (;;) { fgets(line, 200, f); if (feof(f)) break; while (line[0] == '#') fgets(line, 200, f); if (feof(f)) break; if (!strncmp(line, "keystrokes", 10)) { currevent = 0; continue; } if (currevent < 0) { if (!strncmp(line, "days", 4)) sscanf(line + 4, "%lf", &days); if (!strncmp(line, "timefactor", 10)) sscanf(line + 10, "%d", &timefactor); if (!strncmp(line, "paused", 6)) sscanf(line + 6, "%d", &paused); if (!strncmp(line, "cmode", 5)) sscanf(line + 5, "%d", &cmode); if (!strncmp(line, "campos", 6)) sscanf(line + 6, "%d", &campos[X], &campos[Y], &campos[Z]); if (!strncmp(line, "cameye", 6)) sscanf(line + 6, "%d", &cameye[X], &cameye[Y], &cameye[Z]); if (!strncmp(line, "camup", 5)) sscanf(line + 5, "%d", &camup[X], &camup[Y], &camup[Z]); } else { sscanf(line, "%d,%d,%d\n", &events[currevent].key, &events[currevent].special, &events[currevent].when); currevent++; } } fclose(f); if (currevent > 0) numevents = currevent; else numevents = 0; currevent = 0; nexteventin = 0; } void DumpEvents(void) { char eventpath[100] = EVENTS_DIR; static char line[200]; FILE *f = NULL; int i; sprintf(line, "%s/dumpevent.dat", eventpath); f = fopen(line, "wt"); if (f == NULL) { error("Couldn't open dumpevent file"); shutdown(1); } fprintf(f, "days %f\n", eventrecordstart); fprintf(f, "timefactor %d\n", timefactor); fprintf(f, "paused %d\n", paused); fprintf(f, "cmode %d\n", cmode); fprintf(f, "campos %f %f %f\n", eventstartcampos[X], eventstartcampos[Y], eventstartcampos[Z]); fprintf(f, "cameye %f %f %f\n", eventstartcameye[X], eventstartcameye[Y], eventstartcameye[Z]); fprintf(f, "camup %f %f %f\n", eventstartcamup[X], eventstartcamup[Y], eventstartcamup[Z]); fprintf(f, "keystrokes only beyond this point\n"); for (i = 0; i < numevents; i++) { fprintf(f, "%d,%d,%d\n", events[i].key, events[i].special, events[i].when); } fclose(f); } void NewEvents() { if (currevent == numevents) return; if (!nexteventin) { if (events[currevent].key) Key(events[currevent].key, 0, 0); if (events[currevent].special) Special(events[currevent].special, 0, 0); if (currevent < (numevents - 1)) nexteventin = events[currevent + 1].when - events[currevent].when; currevent++; } else nexteventin--; } openuniverse-1.0beta3.1.orig/src/cmdline.cpp0000644000175000017500000000253207107355715020743 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" #ifdef HAVE_GLUI #include "gui.h" #endif void ParseCmdLine(int n, char **s) { int i = 1, err = 0; while ((i < n) && (!err)) { err = 0; if (!strcmp(s[i], "-bench")) { bench = 1; i++; continue; } if (!strcmp(s[i], "-fullscreen")) { fullscreen = 1; #ifdef HAVE_GLUI fullscreeninGUI = 1; #endif if (s[i + 1][0] != '-') { strcpy(game_string, s[i + 1]); i++; } i++; continue; } err = 1; }; if (err) { error("Valid command line options:\n"); error("\n ou [-bench] [-fullscreen [mode_string]] \n\n"); shutdown(1); } } openuniverse-1.0beta3.1.orig/src/joystick.cpp0000644000175000017500000000731307107356007021164 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" #ifdef LINUXJOY #include #include #include #include #endif #ifdef WIN32 #include #endif /* And another function based on David Bucciarelli's demos. */ int joyavailable = 0, joyactive = 0, joy_fd; char axes = 2; char buttons = 2; int version = 0x000800; int *axis; int *button; void joystick(int *rot, double *dir, double *vel) { #ifdef WIN32 MMRESULT res; JOYINFO joy; static double v1[3]; static int x, y; res = joyGetPos(JOYSTICKID1, &joy); if (res == JOYERR_NOERROR) { joyavailable = 1; x = (joy.wXpos >> 12) - 8; y = (joy.wYpos >> 12) - 8; if ((x < 2) && (x > -2)) x = 0; if ((y < 2) && (y > -2)) y = 0; if (joyactive) { if (joy.wButtons & JOY_BUTTON4) { rot[Z] += x; CLAMP_SELF(rot[Z], -64, 64); } else { if (x) { rot[X] += x; CLAMP_SELF(rot[X], -64, 64); } if (y) { rot[Y] += y; CLAMP_SELF(rot[Y], -64, 64); } } if (joy.wButtons & JOY_BUTTON1) { DIVVECTOR(v1, dir, 10000.0); ADDVECTORS(vel, vel, v1); } if (joy.wButtons & JOY_BUTTON2) { DIVVECTOR(v1, dir, 10000.0); SUBVECTORS(vel, vel, v1); } if ((joy.wButtons & JOY_BUTTON1) & (joy.wButtons & JOY_BUTTON2) || (joy.wButtons & JOY_BUTTON3)) INITVECTOR(vel, 0.0, 0.0, 0.0); } } else joyavailable = 0; #endif #ifdef LINUXJOY static struct js_event js; static int status, x, y; static double v1[3]; status = read(joy_fd, &js, sizeof(struct js_event)); if (status > 0) { switch (js.type & ~JS_EVENT_INIT) { case JS_EVENT_BUTTON: button[js.number] = js.value; break; case JS_EVENT_AXIS: axis[js.number] = js.value; break; } x = axis[0] / 4096; /* 16 levels */ y = axis[1] / 4096; } if (joyactive) { if (button[4]) { rot[Z] += x; CLAMP_SELF(rot[Z], -64, 64); } else { if (x) { rot[X] += x; CLAMP_SELF(rot[X], -64, 64); } if (y) { rot[Y] += y; CLAMP_SELF(rot[Y], -64, 64); } } if (button[0]) { DIVVECTOR(v1, dir, 10000.0); ADDVECTORS(vel, vel, v1); } if (button[1]) { DIVVECTOR(v1, dir, 10000.0); SUBVECTORS(vel, vel, v1); } if ((button[0]) & (button[1]) || button[2]) INITVECTOR(vel, 0.0, 0.0, 0.0); } #endif } void joydetect(void) { #ifdef WIN32 MMRESULT res; JOYINFO joy; res = joyGetPos(JOYSTICKID1, &joy); if (res == JOYERR_NOERROR) joyavailable = 1; else joyavailable = 0; #endif #ifdef LINUXJOY if ((joy_fd = open("/dev/js0", O_RDONLY)) < 0) joyavailable = 0; else { joyavailable = 1; ioctl(joy_fd, JSIOCGVERSION, &version); ioctl(joy_fd, JSIOCGAXES, &axes); ioctl(joy_fd, JSIOCGBUTTONS, &buttons); printf ("%d axes %d buttons joystick detected (%d.%d.%d driver version)\n", axes, buttons, version >> 16, (version >> 8) & 0xff, version & 0xff); fcntl(joy_fd, F_SETFL, O_NONBLOCK); axis = (int *) calloc(axes, sizeof(int)); button = (int *) calloc(buttons, sizeof(int)); } #endif } openuniverse-1.0beta3.1.orig/src/mouse.cpp0000644000175000017500000000244407107356066020462 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" static int oldmousex, oldmousey; void Mouse(int button, int state, int x, int y) { if ((button == GLUT_LEFT_BUTTON) && (state == GLUT_DOWN)) { oldmousex = x; oldmousey = y; } } /* Moves camera with the mouse */ void Motion(int x, int y) { static double v1[3]; if (!cmode) { Rotation(-(x - oldmousex) / 1000.0, camup, cameye); CROSSPRODUCT(v1, camup, cameye); Rotation((y - oldmousey) / 1000.0, v1, cameye); Rotation((y - oldmousey) / 1000.0, v1, camup); } oldmousex = x; oldmousey = y; } openuniverse-1.0beta3.1.orig/src/sun.cpp0000644000175000017500000000413607116527571020140 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" void SunBillBoard(double size) { double p1[3], p2[3], p3[3], p4[3]; double alfa, beta, cosalfa, cosbeta, sinalfa, sinbeta; double x, y, z; /* this macro by Sebastien Metrot */ #define ROTATE(V) \ do { \ y = V[Y]*cosbeta + V[Z]*sinbeta; \ z = -V[Y]*sinbeta + V[Z]*cosbeta; \ x = V[X]*cosalfa - z*sinalfa; \ z = V[X]*sinalfa + z*cosalfa; \ V[X]=x; V[Y]=y; V[Z]=z; \ } while (0); p1[X] = p4[X] = p1[Y] = p2[Y] = size; p2[X] = p3[X] = p3[Y] = p4[Y] = -size; p1[Z] = p2[Z] = p3[Z] = p4[Z] = 0.0; /* BILLBOARDING effect, rotates sun tile so it shows always the same face and angle to camera */ alfa = atan2(campos[Z], campos[X]) - M_PI / 2.0; beta = atan2(campos[Y], sqrt(campos[X] * campos[X] + campos[Z] * campos[Z])); cosalfa = cos(alfa); cosbeta = cos(beta); sinalfa = sin(alfa); sinbeta = sin(beta); ROTATE(p1); ROTATE(p2); ROTATE(p3); ROTATE(p4); glEnable(GL_BLEND); glDepthMask(GL_FALSE); glBlendFunc(GL_ONE, GL_ONE); glBegin(GL_QUADS); glTexCoord2f(0.0, 0.0); glVertex3f(p1[X], p1[Y], p1[Z]); glTexCoord2f(0.0, 1.0); glVertex3f(p2[X], p2[Y], p2[Z]); glTexCoord2f(1.0, 1.0); glVertex3f(p3[X], p3[Y], p3[Z]); glTexCoord2f(1.0, 0.0); glVertex3f(p4[X], p4[Y], p4[Z]); glEnd(); glDisable(GL_BLEND); glDepthMask(GL_TRUE); } openuniverse-1.0beta3.1.orig/src/mp3.cpp0000644000175000017500000000357307116527545020037 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" #include "gui.h" #ifdef HAVE_XAUDIO #include "xaudio.h" #include "decoder.h" #include "player.h" #include "control.h" #include int *player; void MP3_InitPlayer(void) { char s[100]; struct _finddata_t c_file; long hfile; /* Find first .c file in current directory */ sprintf(s, "%s/*.mp3", MP3_DIR); if ((hfile = _findfirst(s, &c_file)) == -1L) printf("No *.c files in current directory!\n"); else { /* Find the rest of the .c files */ while (_findnext(hfile, &c_file) == 0) { } _findclose(hfile); } if (player_new((void **) &player, NULL) != XA_SUCCESS) error("XAPLAYER: cannot not create decoder thread"); sprintf(s, "%s/%s", MP3_DIR, "2001.mp3"); control_message_send(player, XA_MSG_COMMAND_INPUT_OPEN, s); control_message_send(player, XA_MSG_COMMAND_PLAY); } void MP3_FlushMessages(void) { XA_Message message; while (control_message_get(player, &message)>0) { /* Flush message queue */ if (message.code < 0) break; if (message.code == XA_MSG_NOTIFY_INPUT_POSITION) if (message.data.position.offset >= message.data.position.range) shutdown(0); } } #endif openuniverse-1.0beta3.1.orig/src/comet.cpp0000644000175000017500000000510307107355723020433 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" #ifdef WIN32 typedef void (APIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); typedef void (APIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat * params); static PFNGLPOINTPARAMETERFEXTPROC wglPointParameterfEXT; static PFNGLPOINTPARAMETERFVEXTPROC wglPointParameterfvEXT; void InitPointEXT(void) { wglPointParameterfEXT = (PFNGLPOINTPARAMETERFEXTPROC) wglGetProcAddress("glPointParameterfEXT"); wglPointParameterfvEXT = (PFNGLPOINTPARAMETERFVEXTPROC) wglGetProcAddress("glPointParameterfvEXT"); } #endif int hasPointEXT; void CometTail(int body) { int i; float a; static GLfloat quad[3] = { 0.25, 0.0, 1 / 60.0 }; if (!hasPointEXT) return; glEnable(GL_POINT_SMOOTH); glPointSize(5.0); #ifdef WIN32 wglPointParameterfvEXT(GL_DISTANCE_ATTENUATION_EXT, quad); #else #ifdef GL_EXT_point_parameters glPointParameterfvEXT(GL_DISTANCE_ATTENUATION_EXT, quad); #endif #endif glDisable(GL_TEXTURE_2D); glDisable(GL_LIGHTING); glEnable(GL_BLEND); glBegin(GL_POINTS); for (i = 0; i < planets[body].num_particles; i++) { a = sqrt(1.0 - planets[body].tail[i].dist / planets[body].tail_lenght); glColor4f(0.2 + a / 2.0, 0.2 + a / 2.0, 0.2 + a / 2.0, a); glVertex3f(planets[body].tail[i].origin[0] + planets[body].tail[i].dir[0] * planets[body].tail[i].dist, planets[body].tail[i].origin[1] + planets[body].tail[i].dir[1] * planets[body].tail[i].dist, planets[body].tail[i].origin[2] + planets[body].tail[i].dir[2] * planets[body].tail[i].dist); planets[body].tail[i].dist += 0.01; if (planets[body].tail[i].dist > planets[body].tail_lenght) planets[body].tail[i].dist = 0.0; } glEnd(); glDisable(GL_BLEND); if (lighting) glEnable(GL_LIGHTING); glEnable(GL_TEXTURE_2D); glPointSize(1.0); } openuniverse-1.0beta3.1.orig/src/jpeg.cpp0000644000175000017500000001610007107356016020244 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 #include #include extern "C" { #include "jpeglib.h" } #include "ou.h" /*******************************************************************//* JPEG DECOMPRESSION CODE EXTRACTED FROM JPEG LIBRARY SAMPLE CODE *//*******************************************************************/ struct my_error_mgr { struct jpeg_error_mgr pub; /* "public" fields */ jmp_buf setjmp_buffer; /* for return to caller */ }; typedef struct my_error_mgr *my_error_ptr; /* * Here's the routine that will replace the standard error_exit method: */ METHODDEF(void) my_error_exit(j_common_ptr cinfo) { /* cinfo->err really points to a my_error_mgr struct, so coerce pointer */ my_error_ptr myerr = (my_error_ptr) cinfo->err; /* Always display the message. */ /* We could postpone this until after returning, if we chose. */ (*cinfo->err->output_message) (cinfo); /* Return control to the setjmp point */ longjmp(myerr->setjmp_buffer, 1); } /* * Sample routine for JPEG decompression. We assume that the source file name * is passed in. We want to return 1 on success, 0 on error. */ GLubyte *read_JPEG_file(char *fname, int *width, int *height, int *components) { /* This struct contains the JPEG decompression parameters and pointers to * working space (which is allocated as needed by the JPEG library). */ struct jpeg_decompress_struct cinfo; /* We use our private extension JPEG error handler. * Note that this struct must live as long as the main JPEG parameter * struct, to avoid dangling-pointer problems. */ struct my_error_mgr jerr; /* More stuff */ FILE *infile; /* source file */ JSAMPARRAY buffer; /* Output row buffer */ int row_stride; /* physical row width in output buffer */ long cont; JSAMPLE *image_buffer; char filename[128]; /* In this example we want to open the input file before doing anything else, * so that the setjmp() error recovery below can assume the file is open. * VERY IMPORTANT: use "b" option to fopen() if you are on a machine that * requires it in order to read binary files. */ sprintf(filename, "%s/%s", texturepath, fname); if ((infile = fopen(filename, "rb")) == NULL) { fprintf(stderr, "can't open %s\n", filename); return NULL; } /* Step 1: allocate and initialize JPEG decompression object */ /* We set up the normal JPEG error routines, then override error_exit. */ cinfo.err = jpeg_std_error(&jerr.pub); jerr.pub.error_exit = my_error_exit; /* Establish the setjmp return context for my_error_exit to use. */ if (setjmp(jerr.setjmp_buffer)) { /* If we get here, the JPEG code has signaled an error. * We need to clean up the JPEG object, close the input file, and return. */ jpeg_destroy_decompress(&cinfo); fclose(infile); return NULL; } /* Now we can initialize the JPEG decompression object. */ jpeg_create_decompress(&cinfo); /* Step 2: specify data source (eg, a file) */ jpeg_stdio_src(&cinfo, infile); /* Step 3: read file parameters with jpeg_read_header() */ (void) jpeg_read_header(&cinfo, TRUE); /* We can ignore the return value from jpeg_read_header since * (a) suspension is not possible with the stdio data source, and * (b) we passed TRUE to reject a tables-only JPEG file as an error. * See libjpeg.doc for more info. */ /* Step 4: set parameters for decompression */ /* In this example, we don't need to change any of the defaults set by * jpeg_read_header(), so we do nothing here. */ /* Step 5: Start decompressor */ (void) jpeg_start_decompress(&cinfo); /* We can ignore the return value since suspension is not possible * with the stdio data source. */ /* We may need to do some setup of our own at this point before reading * the data. After jpeg_start_decompress() we have the correct scaled * output image dimensions available, as well as the output colormap * if we asked for color quantization. * In this example, we need to make an output work buffer of the right size. */ /* JSAMPLEs per row in output buffer */ row_stride = cinfo.output_width * cinfo.output_components; /* Make a one-row-high sample array that will go away when done with image */ buffer = (*cinfo.mem->alloc_sarray) ((j_common_ptr) & cinfo, JPOOL_IMAGE, row_stride, 1); /* Step 6: while (scan lines remain to be read) */ /* jpeg_read_scanlines(...); */ /* Here we use the library's state variable cinfo.output_scanline as the * loop counter, so that we don't have to keep track ourselves. */ image_buffer = (JSAMPLE *) malloc(cinfo.image_width * cinfo.image_height * cinfo.output_components); if (image_buffer == NULL) { error("Coundn't allocate memory"); shutdown(1); } *width = cinfo.image_width; *height = cinfo.image_height; cont = cinfo.output_height - 1; while (cinfo.output_scanline < cinfo.output_height) { /* jpeg_read_scanlines expects an array of pointers to scanlines. * Here the array is only one element long, but you could ask for * more than one scanline at a time if that's more convenient. */ (void) jpeg_read_scanlines(&cinfo, buffer, 1); /* Assume put_scanline_someplace wants a pointer and sample count. */ /* put_scanline_someplace(buffer[0], row_stride); */ memcpy(image_buffer + cinfo.image_width * cinfo.output_components * cont, buffer[0], row_stride); cont--; } /* Step 7: Finish decompression */ (void) jpeg_finish_decompress(&cinfo); /* We can ignore the return value since suspension is not possible * with the stdio data source. */ /* Step 8: Release JPEG decompression object */ /* This is an important step since it will release a good deal of memory. */ jpeg_destroy_decompress(&cinfo); /* After finish_decompress, we can close the input file. * Here we postpone it until after no more JPEG errors are possible, * so as to simplify the setjmp error logic above. (Actually, I don't * think that jpeg_destroy can do an error exit, but why assume anything...) */ fclose(infile); /* At this point you may want to check to see whether any corrupt-data * warnings occurred (test whether jerr.pub.num_warnings is nonzero). */ /* And we're done! */ *components = cinfo.output_components; return image_buffer; } openuniverse-1.0beta3.1.orig/src/ou.cpp0000644000175000017500000003212107116545071017744 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 #include #include #include #include #include #include #include "ou.h" #include "gui.h" double campos[3] = { 0.0, 0.0, 1.0 }, cameye[3] = { 0.0, 0.0, -1.0}, camup[3] = { 0.0, 1.0, 0.0}; int camrot[3] = { 0, 0, 0 }; double tocam[3] = { 0.0, 0.0, 1.0 }, toeye[3] = { 0.0, 0.0, -1.0}, toup[3] = { 0.0, 1.0, 0.0}; double camvel[3] = { 0.0, 0.0, 0.0 }; float fov = 60.0, fps, sec, star_mag = 3.0, speed = 0.0, d, zoom = 10.0, aratio; float nearclip = 0.001, farclip = UNIVERSERADIUS * 2.0; int frames = 0, paused = 0, cmode = 1, currsource = 0, currtarget = 3, nearest; int demomode = 1, demostep = 15, bench = 0, plabels = 0, slabels = 0, init = 0; int fullscreen = 0, info = 1, realtime = 0, jpeg_quality = 90, atmospheres = 1; char game_string[20] = "640x480:16"; extern int joyavailable, joyactive; int follow = 0, smooth_transitions = 1, dosmooth = 0, transition = 0; void Camera(void), Display(void); rlist renderlist[MAXBODIES]; int objstorender, main_window; TexFont *txf = NULL; int fonttype = TEXFONT, glyphheight, glyphwidth; FILE *logfile = NULL; int totaltexsize = 0; void CheckError(void) { GLenum error = glGetError(); if (error) { char *err = (char *) gluErrorString(error); error(err); shutdown(1); } } void Reshape(int x, int y) { width = x; height = y; aratio = sqrt(x * x + y * y) / y; GUI_Viewport(&width, &height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(CLAMP_SELF(fov, 0.5, 120.0), width / (double) height, nearclip, farclip); glMatrixMode(GL_MODELVIEW); } /* This function finds which bodies need to be renderered during next Display call. It also sets up the near and far clipping planes (a hack to reduce precision loss in the z-buffer) */ void BuildRenderList(void) { double a, b, c, v1[3]; int i, j, n = 0; nearclip = farclip = UNIVERSERADIUS * 4.0; for (i = 1; i < NUMBODIES; i++) { if (!atmospheres) if (planets[i].Type == ATMOSPHERE) continue; if ((planets[i].Type == RING) || (planets[i].Type == ATMOSPHERE)) j = planets[i].Sat; else j = i; SUBVECTORS(v1, planets[j].pos, campos); d = MODULE(v1); /* Distance from camera to body */ c = d / RADIUSSCALE(planets[i].Radius); /* Apply a distance/radius factor */ if (c > (UNIVERSERADIUS * 0.001)) continue; /* If it's too far to be visible discard it */ NORMALIZE(v1); a = DOTPRODUCT(v1, cameye); a = acos(CLAMP(a, -1.0, 1.0)); /* a stores angle between eye vector and object */ b = atan(RADIUSSCALE(planets[i].Radius) / d); c = fabs(a) - fabs(b); if (c > DEG2RAD(aratio * 90.0 / 2.0)) continue; c = fabs(cos(a) * d); a = c - RADIUSSCALE(planets[i].Radius) - 0.001; if (planets[i].Type == COMET) a -= planets[i].tail_lenght; if (a < 0.001) a = 0.001; if (a < nearclip) { nearclip = a; nearest = i; } renderlist[n].body = i; renderlist[n++].dist = a; } objstorender = n; if (n == 0) nearclip = UNIVERSERADIUS * 0.0001 * 60.0 / fov; a = UNIVERSERADIUS * cos(DEG2RAD((aratio > 1.0 ? aratio : 1.0) * fov / 2.0)); if (nearclip > a) nearclip = a; /* Otherwise stars wouldn't be drawn */ Reshape(width, height); } void Idle(void) { double rad, tmp[3]; #ifdef WIN32 struct _timeb currtime; char sbuf[80]; #else struct timeb currtime; #endif if (glutGetWindow() != main_window) glutSetWindow(main_window); if (!init) { init = 1; width = glutGet((GLenum) GLUT_WINDOW_WIDTH); height = glutGet((GLenum) GLUT_WINDOW_HEIGHT); Reshape(width, height); /* Make sure Reshape is called */ Init(); if (bench) days = 1000.0; UpdatePositions(days, 0); while (planets[currtarget].Type >= RING) currtarget = (currtarget + 1) % NUMBODIES; while (planets[currsource].Type >= RING) currsource = (currsource + 1) % NUMBODIES; sec = glutGet((GLenum) GLUT_ELAPSED_TIME); glutDisplayFunc(Display); #ifndef HAVE_GLUI glutKeyboardFunc(Key); glutSpecialFunc(Special); glutMouseFunc(Mouse); #else if (fullscreen) { glutKeyboardFunc(Key); glutSpecialFunc(Special); glutMouseFunc(Mouse); } #endif glutMotionFunc(Motion); glutTimerFunc(demostep * 1000, TimerFunc, 0); glutTimerFunc(10000, TimerFunc, 1); LOG("Initializing GUI", GUI_Init()); Key('n', 0, 0); #ifdef HAVE_XAUDIO MP3_InitPlayer(); #endif // AutoEvents(); } #ifdef HAVE_GLUI /* GLUI 2.0 doesn't support limits for translation controls */ CLAMP_SELF(zoom, 2.0, 100.0); #endif if (bench & (frames == 1000)) { sec = (glutGet((GLenum) GLUT_ELAPSED_TIME) - sec) / 1000.0; #ifdef WIN32 if (fullscreen) glutLeaveGameMode(); ShowCursor(TRUE); sprintf(sbuf, "\n%.2f frames/sec\n\n", (float) frames / sec); MessageBox(NULL, sbuf, "Overall Performance", MB_OK); #else printf("\n%.2f frames/sec\n\n", (float) frames / sec); glutSetCursor(GLUT_CURSOR_INHERIT); #endif shutdown(0); } if (!(frames % 50)) fps = 50.0 / gettime(); if (!paused) { /* Update positions to Julian day "days" */ days += (timefactor / SECS_A_DAY); UpdatePositions(days, 0); /* 0 tells UpdatePositions to process all bodies */ } if (realtime) { #ifdef WIN32 _ftime(&currtime); /* we need milliseconds to avoid jerkiness */ #else ftime(&currtime); /* we need milliseconds to avoid jerkiness */ #endif days = (time(NULL) + currtime.millitm / 1000.0) / 3600.0 / 24.0 - 10092.0; /* days = NOW */ } if (!paused) FeelTheGravity(); if ((!follow) || !ISASPACECRAFT(currtarget)) { if (smooth_transitions && transition) UpdateCamera(tocam, toeye, toup); else UpdateCamera(campos, cameye, camup); if (transition && dosmooth) { rad = RADIUSSCALE(planets[currtarget].Radius) / 10.0; CLAMP_SELF(rad, 0.0, 0.001); if (!SmoothTrans(campos, cameye, camup, tocam, toeye, toup, rad)) { dosmooth = 0; transition = 0; } NORMALIZE(cameye); NORMALIZE(camup); CROSSPRODUCT(tmp, cameye, camup); CROSSPRODUCT(camup, tmp, cameye); } if (!cmode) ADDVECTORS(campos, campos, camvel); } if (joyactive && joyavailable) if (ISASPACECRAFT(currtarget)) joystick(planets[currtarget].rot, planets[currtarget].dir, planets[currtarget].vel); else if (!cmode) joystick(camrot, cameye, camvel); BuildRenderList(); #ifdef HAVE_GLUI if (!fullscreeninGUI) glui_rwin->sync_live(); if (rebuildStarsDL) { rebuildStarsDL = 0; glDeleteLists(StarsDL, 1); InitStars(star_mag, 0); } #endif if (init) { glutSetWindow(main_window); glutPostRedisplay(); } // if (!eventrecord) // NewEvents(); #ifdef HAVE_XAUDIO MP3_FlushMessages(); #endif } /* Stand alone function for future enhancements */ void Camera(void) { gluLookAt(0.0, 0.0, 0.0, cameye[X], cameye[Y], cameye[Z], camup[X], camup[Y], camup[Z]); } void Display(void) { double a, c; int i, j, n, ondarkside = 0; double v[3]; extern int camseesun; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); Camera(); glDepthMask(GL_FALSE); /* A workaround for the Mesa 3.1beta2 bug */ glDisable(GL_DEPTH_TEST); glAlphaFunc(GL_GEQUAL, 0.0); totaltexsize = 0; glDisable(GL_LIGHTING); glEnable(GL_TEXTURE_2D); if (milkyway) { glPushMatrix(); glCallList(MilkyWayDL); glPopMatrix(); totaltexsize += milkyway_texsize; } if (messier) { glCallList(MessierDL); totaltexsize += messier_texsize; } if (drawstars) { glCallList(StarsDL); } glDisable(GL_TEXTURE_2D); glPushMatrix(); glTranslated(-campos[X], -campos[Y], -campos[Z]); for (i = 0; i < NUMBODIES; i++) if (planets[i].TrailEnabled) glCallList(planets[i].Trail); glPopMatrix(); if (texture) glEnable(GL_TEXTURE_2D); if (lighting) glEnable(GL_LIGHTING); glDepthMask(GL_TRUE); glMaterialfv(GL_FRONT, GL_AMBIENT, White); glMaterialfv(GL_FRONT, GL_DIFFUSE, White); glMaterialfv(GL_FRONT, GL_EMISSION, White); glColor3f(1.0, 1.0, 1.0); glPushMatrix(); glTranslated(-campos[X], -campos[Y], -campos[Z]); a = RADIUSSCALE(1000.0); glLightfv(GL_LIGHT0, GL_POSITION, LightPos); glBindTexture(GL_TEXTURE_2D, planets[0].textures[0]); if (texture) { SunBillBoard(a); totaltexsize += planets[0].texsize; } else glCallList(planets[0].HighDetail); glPopMatrix(); glEnable(GL_DEPTH_TEST); glMaterialfv(GL_FRONT, GL_EMISSION, Black); camseesun = 1; for (n = 0; n < objstorender; n++) { i = renderlist[n].body; if ((planets[i].Type == RING) || (planets[i].Type == ATMOSPHERE)) j = planets[i].Sat; else { j = i; a = MODULE(campos); c = MODULE(planets[i].pos); if (!ISASPACECRAFT(currtarget)) if (a > c) { MULTVECTOR(v, campos, c / a); SUBVECTORS(v, v, planets[i].pos); if (MODULE(v) < RADIUSSCALE(planets[i].Radius)) camseesun = 0; } } if ((planets[i].Type >= SATELLITE) && (planets[i].Type <= ORBITER)) { a = MODULE(planets[j].pos); c = MODULE(planets[planets[j].Sat].pos); a = c / a; if (a < 1.0) { MULTVECTOR(v, planets[j].pos, a); SUBVECTORS(v, planets[planets[j].Sat].pos, v); d = MODULE(v); if (d < RADIUSSCALE(planets[planets[j].Sat].Radius)) { glDisable(GL_LIGHTING); glColor4fv(ambient); ondarkside = 1; } } } glPushMatrix(); /* Move body to its position in the orbit */ glTranslatef(planets[j].pos[X] - campos[X], planets[j].pos[Y] - campos[Y], planets[j].pos[Z] - campos[Z]); if (planets[i].Type == COMET) CometTail(i); if (ISASPACECRAFT(currtarget) || (planets[i].Type == ASTEROID)) { if (!paused) Rotation(DEG2RAD (planets[i].Rotation * timefactor / SECS_A_DAY), planets[i].up, planets[i].dir); MyLookAt(planets[i].dir, planets[i].up); } else { /* Adjust body tilt */ glRotatef(-planets[j].Degrees - planets[planets[j].Sat].Degrees - planets[planets[j].Sat].Inclination - 90.0, 1.0, 0.0, 0.0); /* Rotate body around its axis */ if (planets[i].Type == RING) glRotatef(planets[j].DeltaRotation, 0.0, 0.0, 1.0); else glRotatef(planets[i].DeltaRotation, 0.0, 0.0, 1.0); } if (planets[i].Type == ATMOSPHERE) glDisable(GL_DEPTH_TEST); if (!texture) { glMaterialfv(GL_FRONT, GL_AMBIENT, planets[j].Color); glMaterialfv(GL_FRONT, GL_DIFFUSE, planets[j].Color); } else { glMaterialfv(GL_FRONT, GL_AMBIENT, White); glMaterialfv(GL_FRONT, GL_DIFFUSE, White); } switch (planets[i].Type) { case PLANET: case SATELLITE: case ATMOSPHERE: if (renderlist[n].dist < (UNIVERSERADIUS * 0.000003 * RADIUSSCALE(planets[i].Radius) * 60.0 / fov)) glCallList(planets[i].HighDetail); else { if (renderlist[n].dist < (UNIVERSERADIUS * 0.00001 * RADIUSSCALE(planets[i].Radius) * 60.0 / fov)) glCallList(planets[i].MidDetail); else glCallList(planets[i].LowDetail); } totaltexsize += planets[i].texsize; break; case COMET: break; case ORBITER: case SPACESHIP: if (renderlist[n].dist < (RADIUSSCALE(planets[i].Radius) * 100000.0 / fov)) glCallList(planets[i].HighDetail); totaltexsize += planets[i].texsize; break; default: glCallList(planets[i].HighDetail); totaltexsize += planets[i].texsize; break; } if (planets[i].Type == RING) { DrawRing(i); } if (planets[i].Type == ATMOSPHERE) glEnable(GL_DEPTH_TEST); if (ondarkside) { if (lighting) glEnable(GL_LIGHTING); ondarkside = 0; } glPopMatrix(); } // CheckError(); OnScreenInfo(); /* Draw info stuff */ glutSwapBuffers(); frames++; } int main(int argc, char *argv[]) { logfile = fopen("log.txt", "wt"); LOG("Initializing GLUT", glutInit(&argc, argv)); LOG("Initializing display mode", glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH)); LOG("Initializing window", glutInitWindowSize(width, height)); glutInitWindowPosition(0, 0); LOG("Parsing command line", ParseCmdLine(argc, argv)); if (fullscreen) { #ifdef WIN32 glutGameModeString(game_string); LOG("Entering game mode", glutEnterGameMode()); main_window = 1; ShowCursor(FALSE); #else LOG("Creating window", main_window = glutCreateWindow("OpenUniverse")); LOG("Entering full screen mode", glutFullScreen()); glutSetCursor(GLUT_CURSOR_NONE); #endif } else { LOG("Creating window", main_window = glutCreateWindow("OpenUniverse")); } if (!main_window) { error("Couldn't create window"); shutdown(1); } joydetect(); demomode = !bench; speed = 0.0; glutIdleFunc(Idle); #ifdef HAVE_GLUI GLUI_Master.set_glutReshapeFunc(Reshape); #else glutReshapeFunc(Reshape); #endif glutMainLoop(); return 0; } openuniverse-1.0beta3.1.orig/src/flares.cpp0000644000175000017500000001162207116527523020602 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" #define NUM_FLARES 9 #define TYPE_FLARES 6 GLuint flares[TYPE_FLARES]; struct { int type; double loc, scale, intensity; } flaresdata[NUM_FLARES]; void InitFlares(void) { unsigned char *image; char filename[20], sbuf[100]; int j, width, height, components; glGenTextures(TYPE_FLARES, flares); for (j = 0; j < TYPE_FLARES; j++) { sprintf(filename,"flare%d.jpg",j+1); image = read_JPEG_file(filename, &width, &height, &components); if (!image) { sprintf(sbuf, "Couldn't read image %s\n", filename); error(sbuf); shutdown(1); } if (components > 1) { sprintf(sbuf, "Invalid flare image: %s\n", filename); error(sbuf); shutdown(1); } glBindTexture(GL_TEXTURE_2D, flares[j]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); glTexImage2D(GL_TEXTURE_2D, 0, cd_lum, width, height, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, image); free(image); } flaresdata[0].type=2; flaresdata[0].loc=1.3; flaresdata[0].scale=0.1; flaresdata[0].intensity=0.6; flaresdata[1].type=3; flaresdata[1].loc=1.0; flaresdata[1].scale=0.25; flaresdata[1].intensity=0.4; flaresdata[2].type=1; flaresdata[2].loc=0.5; flaresdata[2].scale=0.5; flaresdata[2].intensity=0.3; flaresdata[3].type=3; flaresdata[3].loc=0.2; flaresdata[3].scale=0.1; flaresdata[3].intensity=0.3; flaresdata[4].type=0; flaresdata[4].loc=0.0; flaresdata[4].scale=0.1; flaresdata[4].intensity=0.3; flaresdata[5].type=5; flaresdata[5].loc=-0.25; flaresdata[5].scale=0.2; flaresdata[5].intensity=0.5; flaresdata[6].type=5; flaresdata[6].loc=-0.4; flaresdata[6].scale=0.05; flaresdata[6].intensity=0.6; flaresdata[7].type=5; flaresdata[7].loc=-0.6; flaresdata[7].scale=0.1; flaresdata[7].intensity=0.4; flaresdata[8].type=5; flaresdata[8].loc=-1.0; flaresdata[8].scale=0.1; flaresdata[8].intensity=0.2; } void LensFlares(void) { int i; double tmp[3], center[3],lightdir[3], dx[3], dy[3], sx[3], sy[3]; double lookatsun, sunbrightness, brightness; COPYVECTOR(tmp, campos); sunbrightness = MODULE(campos); sunbrightness = CLAMP( AU / sunbrightness, 0.0 , 0.9); NORMALIZE(tmp); ADDVECTORS(tmp, tmp, cameye); lookatsun = MODULE(tmp); lookatsun *= (60.0 / fov); if (lookatsun > FLAREINTENSITY) return; glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(CLAMP_SELF(fov, 0.5, 120.0), width / (double) height, 0.5, 10.0); glMatrixMode(GL_MODELVIEW); COPYVECTOR(lightdir, campos); MULTVECTOR(lightdir, lightdir, -1.0); NORMALIZE(lightdir); if (SAMEVECTOR(cameye, lightdir)) COPYVECTOR(dx, camup); else CROSSPRODUCT(dx, cameye, lightdir); NORMALIZE(dx); CROSSPRODUCT(dy, dx, cameye); MULTVECTOR(center, cameye, 0.5 + 2.0); glDisable(GL_LIGHTING); glEnable(GL_TEXTURE_2D); glEnable(GL_BLEND); glBlendFunc(GL_ONE, GL_ONE); glDisable(GL_DEPTH_TEST); for (i=0; i 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 "ou.h" char fontpath[100] = FONT_DIR; void initfontengine(void) { switch (fonttype) { case TEXFONT: txf = txfLoadFont("default.txf"); if (txf == NULL) { error("Error loading font file"); shutdown(1); } txfEstablishTexture(txf, 0, GL_FALSE); glyphwidth = txf->tgi->width + txf->tgi->advance; glyphheight = txf->tgi->height; break; case BMAPFONT: glyphwidth = 10; glyphheight = 10; break; default: error("Invalid font type in ou.conf"); shutdown(1); break; } } /* A couple of functions borrowed from David Bucciarelli's demos */ void texprintstring(float x, float y, float z, char *string) { extern int filter; glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glPushMatrix(); glTranslatef(x, y, z); txfRenderString(txf, string, (int) strlen(string)); glPopMatrix(); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter); } void glutprintstring(float x, float y, float z, char *string) { int i = 0; unsigned char v; glRasterPos3f(x, y, z); glGetBooleanv(GL_CURRENT_RASTER_POSITION_VALID, &v); if (v) while (string[i]) glutBitmapCharacter(GLUT_BITMAP_HELVETICA_10, string[i++]); } void printstring(float x, float y, float z, char *string) { switch (fonttype) { case TEXFONT: texprintstring(x, y, z, string); break; case BMAPFONT: glutprintstring(x, y, z, string); break; } } openuniverse-1.0beta3.1.orig/src/keyboard.cpp0000644000175000017500000002451307116560134021124 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 "ou.h" #include "gui.h" void Key(unsigned char key, int x, int y) { double v1[3], v2[3], v3[3]; char sbuf[80]; if (eventrecord) { events[numevents].key = key; events[numevents].special = 0; events[numevents].when = frames; numevents++; } switch (key) { case 27: /* ESC ... bye bye */ sec = (glutGet((GLenum) GLUT_ELAPSED_TIME) - sec) / 1000.0; #ifdef WIN32 if (fullscreen) { glutLeaveGameMode(); ShowCursor(TRUE); } #else printf("\n%.2f frames/sec\n\n", (float) frames / sec); glutSetCursor(GLUT_CURSOR_INHERIT); #endif // DumpEvents(); shutdown(0); break; case '1': cmode = 0; cameye[Y] = 0.0; #ifdef HAVE_GLUI if (!fullscreeninGUI) update_cmode(); #endif break; case '2': cmode = 1; transition = 1; #ifdef HAVE_GLUI if (!fullscreeninGUI) update_cmode(); #endif break; case '3': cmode = 2; transition = 1; INITVECTOR(camup, 0.0, cos(DEG2RAD(planets[currsource].Degrees)), -sin(DEG2RAD(planets[currsource].Degrees))); #ifdef HAVE_GLUI if (!fullscreeninGUI) update_cmode(); #endif break; case '4': cmode = 3; transition = 1; #ifdef HAVE_GLUI if (!fullscreeninGUI) update_cmode(); #endif break; case 'p': paused = !paused; break; case 'f': smodel = (smodel == GL_FLAT) ? GL_SMOOTH : GL_FLAT; glShadeModel(smodel); break; case 'o': fov += 0.5; break; case 'O': fov -= 0.5; break; case 't': texture = !texture; break; case 'e': realtime = !realtime; break; case 'E': eventrecord = !eventrecord; events[numevents].key = 0; events[numevents].special = 0; events[numevents].when = frames; eventrecordstart = days; COPYVECTOR(eventstartcampos, campos); COPYVECTOR(eventstartcameye, cameye); COPYVECTOR(eventstartcamup, camup); numevents++; break; case 's': drawstars = !drawstars; break; case 'S': sprintf(sbuf, "sshot%d.jpg", frames); ScreenShot(sbuf); break; case 'm': glDeleteLists(StarsDL, 1); star_mag += 0.1; InitStars(star_mag, 0); break; case 'M': glDeleteLists(StarsDL, 1); star_mag -= 0.1; InitStars(star_mag, 0); break; case 'n': /* Set camera nearby the current target */ if (currtarget == 0) break; if (planets[currtarget].Sat) { /* If body is a satellite */ MULTVECTOR(v1, planets[currtarget].vel, fps * 5.0); ADDVECTORS(v1, planets[currtarget].pos, v1); MULTVECTOR(v2, planets[planets[currtarget].Sat].vel, fps * 5.0); ADDVECTORS(v2, planets[planets[currtarget].Sat].pos, v2); SUBVECTORS(v3, v1, v2); NORMALIZE(v3); COPYVECTOR(v2, v3); MULTVECTOR(v3, v3, RADIUSSCALE(planets[currtarget].Radius * 8.0) / tan(DEG2RAD(fov))); ADDVECTORS(campos, v1, v3); SUBVECTORS(cameye, planets[currtarget].pos, campos); NORMALIZE(cameye); CROSSPRODUCT(camup, cameye, v2); NORMALIZE(camup); } else { MULTVECTOR(v1, planets[currtarget].vel, fps * 5.0); ADDVECTORS(v1, planets[currtarget].pos, v1); COPYVECTOR(v2, v1); NORMALIZE(v2); MULTVECTOR(v2, v2, RADIUSSCALE(planets[currtarget].Radius * 8.0) / tan(DEG2RAD(fov))); SUBVECTORS(campos, v1, v2); SUBVECTORS(cameye, planets[currtarget].pos, campos); NORMALIZE(cameye); CROSSPRODUCT(camup, cameye, v2); NORMALIZE(camup); } camup[Y] = fabs(camup[Y]); dosmooth = 0; break; case 'h': help = !help; if (help2) help2 = 0; break; case 'H': help2 = !help2; if (help) help = 0; break; case 'd': demomode = !demomode; break; case 'l': lighting = !lighting; break; case 'b': plabels = !plabels; break; case 'B': slabels = !slabels; break; case 'i': info = !info; break; case 'j': joyactive = !joyactive; break; case '+': if (glutGetModifiers() & GLUT_ACTIVE_SHIFT) timefactor *= 2; else timefactor += 1; /* one second/iteration */ break; case '-': if (glutGetModifiers() & GLUT_ACTIVE_SHIFT) timefactor /= 2; else timefactor -= 1; /* one second/iteration */ break; case 'z': if (zoom < 100.0) zoom += 1.0; break; case 'Z': if (zoom > 2.0) zoom -= 1.0; break; case 'a': atmospheres = !atmospheres; break; case 'r': radar = !radar; break; case 'u': radarzoom *= 1.1; break; case 'U': radarzoom /= 1.1; break; case 'w': follow = !follow; break; case 'y': gravity = !gravity; break; case 'G': logo = 1; break; #ifdef HAVE_GLUI case 'g': if (!fullscreen) { glui_rwin->show(); fullscreeninGUI = 0; update_cmode(); } break; #endif default: help = 1; break; } #ifdef HAVE_GLUI if (!fullscreeninGUI) { if (glui_optwin) glui_optwin->sync_live(); glui_rwin->sync_live(); } #endif } void Special(int k, int x, int y) { double rot, speeddiv, v1[3]; int m; char sbuf[80]; m = glutGetModifiers(); if (m & GLUT_ACTIVE_SHIFT) { speeddiv = 1.0; rot = 0.02; } else { rot = 0.006; speeddiv = 1000.0; } if (eventrecord) { events[numevents].key = 0; events[numevents].special = k; events[numevents].when = frames; numevents++; } switch (k) { case 's': if (m & GLUT_ACTIVE_CTRL) { sprintf(sbuf, "frame%d.ppm", frames); ScreenShot(sbuf); } break; case GLUT_KEY_INSERT: if (planets[currtarget].Type <= ASTEROID) planets[currtarget].TrailEnabled = !planets[currtarget].TrailEnabled; break; case GLUT_KEY_LEFT: if (m & GLUT_ACTIVE_CTRL) { if (ISASPACECRAFT(currtarget)) { planets[currtarget].rot[Z] += 16; CLAMP_SELF(planets[currtarget].rot[Z], -64, 64); } else if (!cmode) { camrot[Z] += 16; CLAMP_SELF(camrot[Z], -64, 64); } } else { if (ISASPACECRAFT(currtarget)) { planets[currtarget].rot[X] -= 16; CLAMP_SELF(planets[currtarget].rot[X], -64, 64); } else if (!cmode) { camrot[X] -= 16; CLAMP_SELF(camrot[X], -64, 64); } } break; case GLUT_KEY_RIGHT: if (m & GLUT_ACTIVE_CTRL) { if (ISASPACECRAFT(currtarget)) { planets[currtarget].rot[Z] -= 16; CLAMP_SELF(planets[currtarget].rot[Z], -64, 64); } else if (!cmode) { camrot[Z] -= 16; CLAMP_SELF(camrot[Z], -64, 64); } } else { if (ISASPACECRAFT(currtarget)) { planets[currtarget].rot[X] += 16; CLAMP_SELF(planets[currtarget].rot[X], -64, 64); } else if (!cmode) { camrot[X] += 16; CLAMP_SELF(camrot[X], -64, 64); } } break; break; case GLUT_KEY_DOWN: if (ISASPACECRAFT(currtarget)) { planets[currtarget].rot[Y] += 16; CLAMP_SELF(planets[currtarget].rot[Y], -64, 64); } else if (!cmode) { camrot[Y] += 16; CLAMP_SELF(camrot[Y], -64, 64); } break; case GLUT_KEY_UP: if (ISASPACECRAFT(currtarget)) { planets[currtarget].rot[Y] -= 16; CLAMP_SELF(planets[currtarget].rot[Y], -64, 64); } else if (!cmode) { camrot[Y] -= 16; CLAMP_SELF(camrot[Y], -64, 64); } break; case GLUT_KEY_PAGE_UP: switch (planets[currtarget].Type) { case SPACESHIP: case ORBITER: if (m & GLUT_ACTIVE_CTRL) COPYVECTOR(planets[currtarget].vel, planets[currsource].vel); else { DIVVECTOR(v1, planets[currtarget].dir, speeddiv); ADDVECTORS(planets[currtarget].vel, planets[currtarget].vel, v1); } break; default: if (m & GLUT_ACTIVE_CTRL) COPYVECTOR(camvel, planets[currsource].vel); else { DIVVECTOR(v1, cameye, speeddiv); ADDVECTORS(camvel, camvel, v1); } break; } break; case GLUT_KEY_PAGE_DOWN: switch (planets[currtarget].Type) { case SPACESHIP: case ORBITER: if (m & GLUT_ACTIVE_CTRL) COPYVECTOR(planets[currtarget].vel, planets[currsource].vel); else { DIVVECTOR(v1, planets[currtarget].dir, speeddiv); SUBVECTORS(planets[currtarget].vel, planets[currtarget].vel, v1); } break; default: if (m & GLUT_ACTIVE_CTRL) COPYVECTOR(camvel, planets[currsource].vel); else { DIVVECTOR(v1, cameye, speeddiv); SUBVECTORS(camvel, camvel, v1); } break; } break; case GLUT_KEY_HOME: if (m & GLUT_ACTIVE_SHIFT) { currsource--; while (planets[currsource].Type >= RING) currsource--; if (currsource < 0) { currsource = NUMBODIES - 1; while (planets[currsource].Type >= RING) currsource--; } if (cmode == 2) if (currsource == currtarget) { currsource--; while (planets[currsource].Type >= RING) currsource--; if (currsource < 0) { currsource = NUMBODIES - 1; while (planets[currsource].Type >= RING) currsource--; } } } else { currtarget--; while (planets[currtarget].Type >= RING) currtarget--; if (currtarget < 0) { currtarget = NUMBODIES - 1; while (planets[currtarget].Type >= RING) currtarget--; } if (cmode == 2) if (currsource == currtarget) { currtarget--; while (planets[currtarget].Type >= RING) currtarget--; if (currtarget < 0) { currtarget = NUMBODIES - 1; while (planets[currtarget].Type >= RING) currtarget--; } } } transition = 1; break; case GLUT_KEY_END: if (m & GLUT_ACTIVE_SHIFT) { currsource = (currsource + 1) % NUMBODIES; while (planets[currsource].Type >= RING) currsource = (currsource + 1) % NUMBODIES; if (cmode == 2) if (currsource == currtarget) { currsource = (currsource + 1) % NUMBODIES; while (planets[currsource].Type >= RING) currsource = (currsource + 1) % NUMBODIES; } } else { currtarget = (currtarget + 1) % NUMBODIES; while (planets[currtarget].Type >= RING) currtarget = (currtarget + 1) % NUMBODIES; if (cmode == 2) if (currtarget == currsource) { currtarget = (currtarget + 1) % NUMBODIES; while (planets[currtarget].Type >= RING) currtarget = (currtarget + 1) % NUMBODIES; } } transition = 1; break; } } openuniverse-1.0beta3.1.orig/src/ou.h0000644000175000017500000001676507116527555017440 0ustar paulliupaulliu/* OpenUniverse 1.0 Copyright (C) 2000 Raul Alonso 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 #include #include #ifdef WIN32 #include #include #endif #include #ifndef PLANET #include "cfgparse.tab.h" #endif #include "texfont.h" #include "macros.h" #define NUMSTARS 3141 /* 3141 for full star catalog, decrease number for better performance, first N brighter stars are used */ #define FLAREINTENSITY 0.5 #define MAXBODIES 50 #define MAXMESSIER 50 #define MAXVERTEX 3000 #define MAXEVENTS 1000 #define AU 149597.870 #define UNIVERSERADIUS 10000000.0 /* Somewhere beyond Pluto */ #define LIGHTSPEED 299792.458 /* Km / sec */ #define SECS_A_DAY (24.0*60.0*60.0) /* seconds */ enum { X, Y, Z }; enum { TEXFONT, BMAPFONT }; enum { LOW, MEDIUM, HIGH }; #ifndef M_PI #define M_PI 3.14159265358979323846 #endif #define DATEOFELEMENTS 2450680.5 /* In Julian days */ #ifndef WIN32 #define error(s) fprintf(stderr,s) #define scmp strcasecmp #define delay(x) usleep(x*1000) #else #define error(s) MessageBox(NULL,s,"ERROR", MB_OK); #define scmp _stricmp #define delay(x) Sleep(x) #endif extern GLfloat LightPos[4]; extern GLfloat ambient[4]; extern GLfloat White[4]; extern GLfloat Black[4]; extern GLfloat Fog[4]; extern GLuint logotex; extern float fogdensity; extern int texture, lighting, drawstars, gravity; extern int messier, milkyway, messier_texsize, milkyway_texsize; extern GLenum smodel; extern GLuint StarsDL, MessierDL, MilkyWayDL, EclipticDL; extern int ImgWidth, ImgHeight, width, height, red, polaris; extern double days; extern char texturepath[100], fontpath[100], confpath[100]; extern int slices, stacks, NUMBODIES, num_messier, timefactor; extern double campos[3], cameye[3], camup[3], camvel[3]; extern int camrot[3]; extern float fov, fps, sec, star_mag, speed, d, zoom, aratio, radarzoom; extern float nearclip, farclip; extern int frames, paused, cmode, currsource, currtarget, nearest, objstorender; extern int demomode, bench, help, help2, plabels, slabels, init, splashbitmap, LOD; extern int demostep, color_depth, tex_comp; extern GLenum cd_rgb, cd_lum, cd_rgba, cd_luma; extern int fullscreen, info, logo, realtime, trail, jpeg_quality, atmospheres; extern char sbuf[100], game_string[20]; extern int joyavailable, joyactive; extern int follow, smooth_transitions, dosmooth, transition, radar; extern int main_window; extern TexFont *txf; extern int fonttype, glyphheight, glyphwidth; extern FILE *logfile; extern int hasPointEXT, numevents, currevent, eventrecord; extern double eventrecordstart; extern double eventstartcampos[3], eventstartcameye[3], eventstartcamup[3]; typedef struct { double origin[3]; double dir[3]; float color[4]; double dist; } particle; typedef struct { char Name[20]; double pos[3]; float ascension, declination, magnitude, color[3]; char type; } stardata; typedef struct { char Name[20]; double pos[3]; float ascension, declination, magnitude, size; GLuint textures[1]; } messierdata; typedef struct { float u, v; float r, g, b, a; float nx, ny, nz; float x, y, z; } vertex_data; typedef struct { char Name[20]; int Type, TrailEnabled; int Sat, CustomFunction; GLubyte *Image; GLuint LowDetail, MidDetail, HighDetail, Trail, *textures; int texnum, texwidth, texheight, texsize; float DeltaRotation, InnerRadius, Radius, xflat, yflat, zflat, Rotation, Degrees, OrbitalPeriod; float Inclination, AscendingNode, Perihelion, MeanDistance, DailyMotion; float Eccentricity, MeanLongitude, Color[4]; double pos[3], prevel[3], vel[3], grav[3], dir[3], up[3]; double Mass; float tail_lenght; int num_particles, initialized, rot[3]; particle *tail; vertex_data *vertex_list; GLuint *indices; } planetdata; typedef struct { int body; double dist; GLuint dlist; } rlist; typedef struct { unsigned char key; int special, when; } event; extern rlist renderlist[MAXBODIES]; extern planetdata planets[MAXBODIES]; extern stardata stars[NUMSTARS]; extern messierdata messierobjs[MAXMESSIER]; extern event events[MAXEVENTS]; /* cmdline.cpp */ void ParseCmdLine(int, char **); /* ou.cpp */ void Idle(void); void Reshape(int, int); /* init.cpp */ void Init(void); /* stars.cpp */ void InitStars(float, int); /* milkyway.cpp */ void InitMilkyWay(); /* messier.cpp */ void InitMessier(); /* positions.cpp */ void UpdatePositions(double, int); /* joystick.cpp */ void joystick(int *, double *, double *); void joydetect(void); /* cfgparse */ void ReadConfigFile(void); /* vsop87.cpp */ void EarthPos(double, double *, double *, double *); void JupiterPos(double, double *, double *, double *); void MarsPos(double, double *, double *, double *); void MercuryPos(double, double *, double *, double *); void NeptunePos(double, double *, double *, double *); void SaturnPos(double, double *, double *, double *); void UranusPos(double, double *, double *, double *); void VenusPos(double, double *, double *, double *); void PlutoPos(double, double *, double *, double *); void MoonPos(double, double *, double *, double *); /* keyboard.cpp */ void Key(unsigned char, int, int); void Special(int, int, int); /* mouse.cpp */ void Mouse(int, int, int, int); void Motion(int, int); /* sshot.cpp */ void ScreenShot(char *); /* sun.cpp */ void SunBillBoard(double); /* timer.cpp */ void TimerFunc(int); /* font.cpp */ void initfontengine(void); void texprintstring(float, float, float, char *); void glutprintstring(float, float, float, char *string); void printstring(float, float, float, char *string); /* util.cpp */ float gettime(void); void Rotation(double, double[3], double[3]); void MakeQuat(double *, double, double, double, double); void Quat2Matrix(double *, float[16]); void Mat2Quat(float[4][4], double *); void Euler2Quat(double, double, double, double *); void MyLookAt(double[3], double[3]); void RotMat(double[3], double[3], float[16]); int SmoothTrans(double[3], double[3], double[3], double[3], double[3], double[3], double); GLubyte *texture_LOD(GLubyte *, int *, int *, int); void log(char *); void shutdown(int); /* jpeg.cpp */ GLubyte *read_JPEG_file(char *, int *, int *, int *); /* dds.cpp */ GLubyte *read_DDS_file(char *, int *, int *, int *); /* stars.cpp */ void InitStars(float, int); extern float star_size; /* comet.cpp */ void InitPointEXT(void); void CometTail(int); /* rings.cpp */ void DrawRing(int); /* gravity.cpp */ void Gravity(double *, double *); void FeelTheGravity(void); /* radar.cpp */ void Radar(void); /* camera.cpp */ void UpdateCamera(double[3], double[3], double[3]); /* info.cpp */ void OnScreenInfo(void); /* events.cpp */ void AutoEvents(void); void DumpEvents(void); void NewEvents(void); /* mp3.cpp */ void MP3_InitPlayer(void); void MP3_FlushMessages(void); /* flares.cpp */ void InitFlares(void); void LensFlares(void); openuniverse-1.0beta3.1.orig/src/glext.h0000644000175000017500000031412407116530237020115 0ustar paulliupaulliu#ifndef __glext_h_ #define __glext_h_ #ifdef __cplusplus extern "C" { #endif /* ** License Applicability. Except to the extent portions of this file are ** made subject to an alternative license as permitted in the SGI Free ** Software License B, Version 1.1 (the "License"), the contents of this ** file are subject only to the provisions of the License. You may not use ** this file except in compliance with the License. You may obtain a copy ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: ** ** http://oss.sgi.com/projects/FreeB ** ** Note that, as provided in the License, the Software is distributed on an ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. ** ** Original Code. The Original Code is: OpenGL Sample Implementation, ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, ** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. ** Copyright in any portions created by third parties is as indicated ** elsewhere herein. All Rights Reserved. ** ** Additional Notice Provisions: This software was created using the ** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has ** not been independently verified as being compliant with the OpenGL(R) ** version 1.2.1 Specification. */ #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN32) #define WIN32_LEAN_AND_MEAN 1 #include #endif #ifndef APIENTRY #define APIENTRY #endif /*************************************************************/ /* OpenGL ABI for Linux version number */ #define GLEXT_VERSION_EXT 5 #ifndef GL_VERSION_1_2 #define GL_CONSTANT_COLOR 0x8001 #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 #define GL_CONSTANT_ALPHA 0x8003 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 #define GL_BLEND_COLOR 0x8005 #define GL_FUNC_ADD 0x8006 #define GL_MIN 0x8007 #define GL_MAX 0x8008 #define GL_BLEND_EQUATION 0x8009 #define GL_FUNC_SUBTRACT 0x800A #define GL_FUNC_REVERSE_SUBTRACT 0x800B #define GL_CONVOLUTION_1D 0x8010 #define GL_CONVOLUTION_2D 0x8011 #define GL_SEPARABLE_2D 0x8012 #define GL_CONVOLUTION_BORDER_MODE 0x8013 #define GL_CONVOLUTION_FILTER_SCALE 0x8014 #define GL_CONVOLUTION_FILTER_BIAS 0x8015 #define GL_REDUCE 0x8016 #define GL_CONVOLUTION_FORMAT 0x8017 #define GL_CONVOLUTION_WIDTH 0x8018 #define GL_CONVOLUTION_HEIGHT 0x8019 #define GL_MAX_CONVOLUTION_WIDTH 0x801A #define GL_MAX_CONVOLUTION_HEIGHT 0x801B #define GL_POST_CONVOLUTION_RED_SCALE 0x801C #define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D #define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E #define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F #define GL_POST_CONVOLUTION_RED_BIAS 0x8020 #define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 #define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 #define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 #define GL_HISTOGRAM 0x8024 #define GL_PROXY_HISTOGRAM 0x8025 #define GL_HISTOGRAM_WIDTH 0x8026 #define GL_HISTOGRAM_FORMAT 0x8027 #define GL_HISTOGRAM_RED_SIZE 0x8028 #define GL_HISTOGRAM_GREEN_SIZE 0x8029 #define GL_HISTOGRAM_BLUE_SIZE 0x802A #define GL_HISTOGRAM_ALPHA_SIZE 0x802B #define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C #define GL_HISTOGRAM_SINK 0x802D #define GL_MINMAX 0x802E #define GL_MINMAX_FORMAT 0x802F #define GL_MINMAX_SINK 0x8030 #define GL_TABLE_TOO_LARGE 0x8031 #define GL_UNSIGNED_BYTE_3_3_2 0x8032 #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 #define GL_UNSIGNED_INT_8_8_8_8 0x8035 #define GL_UNSIGNED_INT_10_10_10_2 0x8036 #define GL_RESCALE_NORMAL 0x803A #define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 #define GL_UNSIGNED_SHORT_5_6_5 0x8363 #define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 #define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 #define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 #define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 #define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 #define GL_COLOR_MATRIX 0x80B1 #define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 #define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 #define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 #define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 #define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 #define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 #define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 #define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 #define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA #define GL_COLOR_TABLE 0x80D0 #define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 #define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 #define GL_PROXY_COLOR_TABLE 0x80D3 #define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 #define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 #define GL_COLOR_TABLE_SCALE 0x80D6 #define GL_COLOR_TABLE_BIAS 0x80D7 #define GL_COLOR_TABLE_FORMAT 0x80D8 #define GL_COLOR_TABLE_WIDTH 0x80D9 #define GL_COLOR_TABLE_RED_SIZE 0x80DA #define GL_COLOR_TABLE_GREEN_SIZE 0x80DB #define GL_COLOR_TABLE_BLUE_SIZE 0x80DC #define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD #define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE #define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF #define GL_CLAMP_TO_EDGE 0x812F #define GL_TEXTURE_MIN_LOD 0x813A #define GL_TEXTURE_MAX_LOD 0x813B #define GL_TEXTURE_BASE_LEVEL 0x813C #define GL_TEXTURE_MAX_LEVEL 0x813D #endif #ifndef GL_ARB_multitexture #define GL_TEXTURE0_ARB 0x84C0 #define GL_TEXTURE1_ARB 0x84C1 #define GL_TEXTURE2_ARB 0x84C2 #define GL_TEXTURE3_ARB 0x84C3 #define GL_ACTIVE_TEXTURE_ARB 0x84E0 #define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 #define GL_MAX_ACTIVE_TEXTURES_ARB 0x84E2 #endif #ifndef GL_ARB_transpose_matrix #define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 #define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 #define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 #define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 #endif #ifndef GL_ARB_multisample #define GL_MULTISAMPLE_ARB 0x809D #define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E #define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F #define GL_SAMPLE_COVERAGE_ARB 0x80A0 #define GL_SAMPLE_BUFFERS_ARB 0x80A8 #define GL_SAMPLES_ARB 0x80A9 #define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA #define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB #define GL_MULTISAMPLE_BIT_ARB 0x20000000 #endif #ifndef GL_ARB_texture_cube_map #define GL_NORMAL_MAP_ARB 0x8511 #define GL_REFLECTION_MAP_ARB 0x8512 #define GL_TEXTURE_CUBE_MAP_ARB 0x8513 #define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A #define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B #define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C #endif #ifndef GL_ARB_texture_compression #define GL_COMPRESSED_ALPHA_ARB 0x84E9 #define GL_COMPRESSED_LUMINANCE_ARB 0x84EA #define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB #define GL_COMPRESSED_INTENSITY_ARB 0x84EC #define GL_COMPRESSED_RGB_ARB 0x84ED #define GL_COMPRESSED_RGBA_ARB 0x84EE #define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF #define GL_TEXTURE_IMAGE_SIZE_ARB 0x86A0 #define GL_TEXTURE_COMPRESSED_ARB 0x86A1 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 #define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 #endif #ifndef GL_EXT_abgr #define GL_ABGR_EXT 0x8000 #endif #ifndef GL_EXT_blend_color #define GL_CONSTANT_COLOR_EXT 0x8001 #define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 #define GL_CONSTANT_ALPHA_EXT 0x8003 #define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 #define GL_BLEND_COLOR_EXT 0x8005 #endif #ifndef GL_EXT_polygon_offset #define GL_POLYGON_OFFSET_EXT 0x8037 #define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 #define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 #endif #ifndef GL_EXT_texture #define GL_ALPHA4_EXT 0x803B #define GL_ALPHA8_EXT 0x803C #define GL_ALPHA12_EXT 0x803D #define GL_ALPHA16_EXT 0x803E #define GL_LUMINANCE4_EXT 0x803F #define GL_LUMINANCE8_EXT 0x8040 #define GL_LUMINANCE12_EXT 0x8041 #define GL_LUMINANCE16_EXT 0x8042 #define GL_LUMINANCE4_ALPHA4_EXT 0x8043 #define GL_LUMINANCE6_ALPHA2_EXT 0x8044 #define GL_LUMINANCE8_ALPHA8_EXT 0x8045 #define GL_LUMINANCE12_ALPHA4_EXT 0x8046 #define GL_LUMINANCE12_ALPHA12_EXT 0x8047 #define GL_LUMINANCE16_ALPHA16_EXT 0x8048 #define GL_INTENSITY_EXT 0x8049 #define GL_INTENSITY4_EXT 0x804A #define GL_INTENSITY8_EXT 0x804B #define GL_INTENSITY12_EXT 0x804C #define GL_INTENSITY16_EXT 0x804D #define GL_RGB2_EXT 0x804E #define GL_RGB4_EXT 0x804F #define GL_RGB5_EXT 0x8050 #define GL_RGB8_EXT 0x8051 #define GL_RGB10_EXT 0x8052 #define GL_RGB12_EXT 0x8053 #define GL_RGB16_EXT 0x8054 #define GL_RGBA2_EXT 0x8055 #define GL_RGBA4_EXT 0x8056 #define GL_RGB5_A1_EXT 0x8057 #define GL_RGBA8_EXT 0x8058 #define GL_RGB10_A2_EXT 0x8059 #define GL_RGBA12_EXT 0x805A #define GL_RGBA16_EXT 0x805B #define GL_TEXTURE_RED_SIZE_EXT 0x805C #define GL_TEXTURE_GREEN_SIZE_EXT 0x805D #define GL_TEXTURE_BLUE_SIZE_EXT 0x805E #define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F #define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 #define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 #define GL_REPLACE_EXT 0x8062 #define GL_PROXY_TEXTURE_1D_EXT 0x8063 #define GL_PROXY_TEXTURE_2D_EXT 0x8064 #define GL_TEXTURE_TOO_LARGE_EXT 0x8065 #endif #ifndef GL_EXT_texture3D #define GL_PACK_SKIP_IMAGES 0x806B #define GL_PACK_SKIP_IMAGES_EXT 0x806B #define GL_PACK_IMAGE_HEIGHT 0x806C #define GL_PACK_IMAGE_HEIGHT_EXT 0x806C #define GL_UNPACK_SKIP_IMAGES 0x806D #define GL_UNPACK_SKIP_IMAGES_EXT 0x806D #define GL_UNPACK_IMAGE_HEIGHT 0x806E #define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E #define GL_TEXTURE_3D 0x806F #define GL_TEXTURE_3D_EXT 0x806F #define GL_PROXY_TEXTURE_3D 0x8070 #define GL_PROXY_TEXTURE_3D_EXT 0x8070 #define GL_TEXTURE_DEPTH 0x8071 #define GL_TEXTURE_DEPTH_EXT 0x8071 #define GL_TEXTURE_WRAP_R 0x8072 #define GL_TEXTURE_WRAP_R_EXT 0x8072 #define GL_MAX_3D_TEXTURE_SIZE 0x8073 #define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 #endif #ifndef GL_SGIS_texture_filter4 #define GL_FILTER4_SGIS 0x8146 #define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 #endif #ifndef GL_EXT_subtexture #endif #ifndef GL_EXT_copy_texture #endif #ifndef GL_EXT_histogram #define GL_HISTOGRAM_EXT 0x8024 #define GL_PROXY_HISTOGRAM_EXT 0x8025 #define GL_HISTOGRAM_WIDTH_EXT 0x8026 #define GL_HISTOGRAM_FORMAT_EXT 0x8027 #define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 #define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 #define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A #define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B #define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C #define GL_HISTOGRAM_SINK_EXT 0x802D #define GL_MINMAX_EXT 0x802E #define GL_MINMAX_FORMAT_EXT 0x802F #define GL_MINMAX_SINK_EXT 0x8030 #define GL_TABLE_TOO_LARGE_EXT 0x8031 #endif #ifndef GL_EXT_convolution #define GL_CONVOLUTION_1D_EXT 0x8010 #define GL_CONVOLUTION_2D_EXT 0x8011 #define GL_SEPARABLE_2D_EXT 0x8012 #define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 #define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 #define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 #define GL_REDUCE_EXT 0x8016 #define GL_CONVOLUTION_FORMAT_EXT 0x8017 #define GL_CONVOLUTION_WIDTH_EXT 0x8018 #define GL_CONVOLUTION_HEIGHT_EXT 0x8019 #define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A #define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B #define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C #define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D #define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E #define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F #define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 #define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 #define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 #define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 #endif #ifndef GL_SGI_color_matrix #define GL_COLOR_MATRIX_SGI 0x80B1 #define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 #define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 #define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 #define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 #define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 #define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 #define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 #define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 #define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA #define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB #endif #ifndef GL_SGI_color_table #define GL_COLOR_TABLE_SGI 0x80D0 #define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 #define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 #define GL_PROXY_COLOR_TABLE_SGI 0x80D3 #define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 #define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 #define GL_COLOR_TABLE_SCALE_SGI 0x80D6 #define GL_COLOR_TABLE_BIAS_SGI 0x80D7 #define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 #define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 #define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA #define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB #define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC #define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD #define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE #define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF #endif #ifndef GL_SGIS_pixel_texture #define GL_PIXEL_TEXTURE_SGIS 0x8353 #define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 #define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 #define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 #endif #ifndef GL_SGIX_pixel_texture #define GL_PIXEL_TEX_GEN_SGIX 0x8139 #define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B #endif #ifndef GL_SGIS_texture4D #define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 #define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 #define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 #define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 #define GL_TEXTURE_4D_SGIS 0x8134 #define GL_PROXY_TEXTURE_4D_SGIS 0x8135 #define GL_TEXTURE_4DSIZE_SGIS 0x8136 #define GL_TEXTURE_WRAP_Q_SGIS 0x8137 #define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 #define GL_TEXTURE_4D_BINDING_SGIS 0x814F #endif #ifndef GL_SGI_texture_color_table #define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC #define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD #endif #ifndef GL_EXT_cmyka #define GL_CMYK_EXT 0x800C #define GL_CMYKA_EXT 0x800D #define GL_PACK_CMYK_HINT_EXT 0x800E #define GL_UNPACK_CMYK_HINT_EXT 0x800F #endif #ifndef GL_EXT_texture_object #define GL_TEXTURE_PRIORITY_EXT 0x8066 #define GL_TEXTURE_RESIDENT_EXT 0x8067 #define GL_TEXTURE_1D_BINDING_EXT 0x8068 #define GL_TEXTURE_2D_BINDING_EXT 0x8069 #define GL_TEXTURE_3D_BINDING_EXT 0x806A #endif #ifndef GL_SGIS_detail_texture #define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 #define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 #define GL_LINEAR_DETAIL_SGIS 0x8097 #define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 #define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 #define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A #define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B #define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C #endif #ifndef GL_SGIS_sharpen_texture #define GL_LINEAR_SHARPEN_SGIS 0x80AD #define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE #define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF #define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 #endif #ifndef GL_EXT_packed_pixels #define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 #define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 #define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 #define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 #define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 #endif #ifndef GL_SGIS_texture_lod #define GL_TEXTURE_MIN_LOD_SGIS 0x813A #define GL_TEXTURE_MAX_LOD_SGIS 0x813B #define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C #define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D #endif #ifndef GL_SGIS_multisample #define GL_MULTISAMPLE_SGIS 0x809D #define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E #define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F #define GL_SAMPLE_MASK_SGIS 0x80A0 #define GL_1PASS_SGIS 0x80A1 #define GL_2PASS_0_SGIS 0x80A2 #define GL_2PASS_1_SGIS 0x80A3 #define GL_4PASS_0_SGIS 0x80A4 #define GL_4PASS_1_SGIS 0x80A5 #define GL_4PASS_2_SGIS 0x80A6 #define GL_4PASS_3_SGIS 0x80A7 #define GL_SAMPLE_BUFFERS_SGIS 0x80A8 #define GL_SAMPLES_SGIS 0x80A9 #define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA #define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB #define GL_SAMPLE_PATTERN_SGIS 0x80AC #endif #ifndef GL_EXT_rescale_normal #define GL_RESCALE_NORMAL_EXT 0x803A #endif #ifndef GL_EXT_vertex_array #define GL_VERTEX_ARRAY_EXT 0x8074 #define GL_NORMAL_ARRAY_EXT 0x8075 #define GL_COLOR_ARRAY_EXT 0x8076 #define GL_INDEX_ARRAY_EXT 0x8077 #define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 #define GL_EDGE_FLAG_ARRAY_EXT 0x8079 #define GL_VERTEX_ARRAY_SIZE_EXT 0x807A #define GL_VERTEX_ARRAY_TYPE_EXT 0x807B #define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C #define GL_VERTEX_ARRAY_COUNT_EXT 0x807D #define GL_NORMAL_ARRAY_TYPE_EXT 0x807E #define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F #define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 #define GL_COLOR_ARRAY_SIZE_EXT 0x8081 #define GL_COLOR_ARRAY_TYPE_EXT 0x8082 #define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 #define GL_COLOR_ARRAY_COUNT_EXT 0x8084 #define GL_INDEX_ARRAY_TYPE_EXT 0x8085 #define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 #define GL_INDEX_ARRAY_COUNT_EXT 0x8087 #define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 #define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 #define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A #define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B #define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C #define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D #define GL_VERTEX_ARRAY_POINTER_EXT 0x808E #define GL_NORMAL_ARRAY_POINTER_EXT 0x808F #define GL_COLOR_ARRAY_POINTER_EXT 0x8090 #define GL_INDEX_ARRAY_POINTER_EXT 0x8091 #define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 #define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 #endif #ifndef GL_EXT_misc_attribute #endif #ifndef GL_SGIS_generate_mipmap #define GL_GENERATE_MIPMAP_SGIS 0x8191 #define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 #endif #ifndef GL_SGIX_clipmap #define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 #define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 #define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 #define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 #define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 #define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 #define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 #define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 #define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 #define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D #define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E #define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F #endif #ifndef GL_SGIX_shadow #define GL_TEXTURE_COMPARE_SGIX 0x819A #define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B #define GL_TEXTURE_LEQUAL_R_SGIX 0x819C #define GL_TEXTURE_GEQUAL_R_SGIX 0x819D #endif #ifndef GL_SGIS_texture_edge_clamp #define GL_CLAMP_TO_EDGE_SGIS 0x812F #endif #ifndef GL_SGIS_texture_border_clamp #define GL_CLAMP_TO_BORDER_SGIS 0x812D #endif #ifndef GL_EXT_blend_minmax #define GL_FUNC_ADD_EXT 0x8006 #define GL_MIN_EXT 0x8007 #define GL_MAX_EXT 0x8008 #define GL_BLEND_EQUATION_EXT 0x8009 #endif #ifndef GL_EXT_blend_subtract #define GL_FUNC_SUBTRACT_EXT 0x800A #define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B #endif #ifndef GL_EXT_blend_logic_op #endif #ifndef GL_SGIX_interlace #define GL_INTERLACE_SGIX 0x8094 #endif #ifndef GL_SGIX_pixel_tiles #define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E #define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F #define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 #define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 #define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 #define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 #define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 #define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 #endif #ifndef GL_SGIS_texture_select #define GL_DUAL_ALPHA4_SGIS 0x8110 #define GL_DUAL_ALPHA8_SGIS 0x8111 #define GL_DUAL_ALPHA12_SGIS 0x8112 #define GL_DUAL_ALPHA16_SGIS 0x8113 #define GL_DUAL_LUMINANCE4_SGIS 0x8114 #define GL_DUAL_LUMINANCE8_SGIS 0x8115 #define GL_DUAL_LUMINANCE12_SGIS 0x8116 #define GL_DUAL_LUMINANCE16_SGIS 0x8117 #define GL_DUAL_INTENSITY4_SGIS 0x8118 #define GL_DUAL_INTENSITY8_SGIS 0x8119 #define GL_DUAL_INTENSITY12_SGIS 0x811A #define GL_DUAL_INTENSITY16_SGIS 0x811B #define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C #define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D #define GL_QUAD_ALPHA4_SGIS 0x811E #define GL_QUAD_ALPHA8_SGIS 0x811F #define GL_QUAD_LUMINANCE4_SGIS 0x8120 #define GL_QUAD_LUMINANCE8_SGIS 0x8121 #define GL_QUAD_INTENSITY4_SGIS 0x8122 #define GL_QUAD_INTENSITY8_SGIS 0x8123 #define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 #define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 #endif #ifndef GL_SGIX_sprite #define GL_SPRITE_SGIX 0x8148 #define GL_SPRITE_MODE_SGIX 0x8149 #define GL_SPRITE_AXIS_SGIX 0x814A #define GL_SPRITE_TRANSLATION_SGIX 0x814B #define GL_SPRITE_AXIAL_SGIX 0x814C #define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D #define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E #endif #ifndef GL_SGIX_texture_multi_buffer #define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E #endif #ifndef GL_SGIS_point_parameters #define GL_POINT_SIZE_MIN_EXT 0x8126 #define GL_POINT_SIZE_MIN_SGIS 0x8126 #define GL_POINT_SIZE_MAX_EXT 0x8127 #define GL_POINT_SIZE_MAX_SGIS 0x8127 #define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 #define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 #define GL_DISTANCE_ATTENUATION_EXT 0x8129 #define GL_DISTANCE_ATTENUATION_SGIS 0x8129 #endif #ifndef GL_SGIX_instruments #define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 #define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 #endif #ifndef GL_SGIX_texture_scale_bias #define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 #define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A #define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B #define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C #endif #ifndef GL_SGIX_framezoom #define GL_FRAMEZOOM_SGIX 0x818B #define GL_FRAMEZOOM_FACTOR_SGIX 0x818C #define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D #endif #ifndef GL_SGIX_tag_sample_buffer #endif #ifndef GL_SGIX_reference_plane #define GL_REFERENCE_PLANE_SGIX 0x817D #define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E #endif #ifndef GL_SGIX_flush_raster #endif #ifndef GL_SGIX_depth_texture #define GL_DEPTH_COMPONENT16_SGIX 0x81A5 #define GL_DEPTH_COMPONENT24_SGIX 0x81A6 #define GL_DEPTH_COMPONENT32_SGIX 0x81A7 #endif #ifndef GL_SGIS_fog_function #define GL_FOG_FUNC_SGIS 0x812A #define GL_FOG_FUNC_POINTS_SGIS 0x812B #define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C #endif #ifndef GL_SGIX_fog_offset #define GL_FOG_OFFSET_SGIX 0x8198 #define GL_FOG_OFFSET_VALUE_SGIX 0x8199 #endif #ifndef GL_HP_image_transform #define GL_IMAGE_SCALE_X_HP 0x8155 #define GL_IMAGE_SCALE_Y_HP 0x8156 #define GL_IMAGE_TRANSLATE_X_HP 0x8157 #define GL_IMAGE_TRANSLATE_Y_HP 0x8158 #define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 #define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A #define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B #define GL_IMAGE_MAG_FILTER_HP 0x815C #define GL_IMAGE_MIN_FILTER_HP 0x815D #define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E #define GL_CUBIC_HP 0x815F #define GL_AVERAGE_HP 0x8160 #define GL_IMAGE_TRANSFORM_2D_HP 0x8161 #define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 #define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 #endif #ifndef GL_HP_convolution_border_modes #define GL_IGNORE_BORDER_HP 0x8150 #define GL_CONSTANT_BORDER_HP 0x8151 #define GL_REPLICATE_BORDER_HP 0x8153 #define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 #endif #ifndef GL_INGR_palette_buffer #endif #ifndef GL_SGIX_texture_add_env #define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE #endif #ifndef GL_EXT_color_subtable #endif #ifndef GL_PGI_vertex_hints #define GL_VERTEX_DATA_HINT_PGI 0x1A22A #define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B #define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C #define GL_MAX_VERTEX_HINT_PGI 0x1A22D #define GL_COLOR3_BIT_PGI 0x00010000 #define GL_COLOR4_BIT_PGI 0x00020000 #define GL_EDGEFLAG_BIT_PGI 0x00040000 #define GL_INDEX_BIT_PGI 0x00080000 #define GL_MAT_AMBIENT_BIT_PGI 0x00100000 #define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 #define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 #define GL_MAT_EMISSION_BIT_PGI 0x00800000 #define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 #define GL_MAT_SHININESS_BIT_PGI 0x02000000 #define GL_MAT_SPECULAR_BIT_PGI 0x04000000 #define GL_NORMAL_BIT_PGI 0x08000000 #define GL_TEXCOORD1_BIT_PGI 0x10000000 #define GL_TEXCOORD2_BIT_PGI 0x20000000 #define GL_TEXCOORD3_BIT_PGI 0x40000000 #define GL_TEXCOORD4_BIT_PGI 0x80000000 #define GL_VERTEX23_BIT_PGI 0x00000004 #define GL_VERTEX4_BIT_PGI 0x00000008 #endif #ifndef GL_PGI_misc_hints #define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 #define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD #define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE #define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 #define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 #define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 #define GL_ALWAYS_FAST_HINT_PGI 0x1A20C #define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D #define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E #define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F #define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 #define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 #define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 #define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 #define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 #define GL_FULL_STIPPLE_HINT_PGI 0x1A219 #define GL_CLIP_NEAR_HINT_PGI 0x1A220 #define GL_CLIP_FAR_HINT_PGI 0x1A221 #define GL_WIDE_LINE_HINT_PGI 0x1A222 #define GL_BACK_NORMALS_HINT_PGI 0x1A223 #endif #ifndef GL_EXT_paletted_texture #define GL_COLOR_INDEX1_EXT 0x80E2 #define GL_COLOR_INDEX2_EXT 0x80E3 #define GL_COLOR_INDEX4_EXT 0x80E4 #define GL_COLOR_INDEX8_EXT 0x80E5 #define GL_COLOR_INDEX12_EXT 0x80E6 #define GL_COLOR_INDEX16_EXT 0x80E7 #define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED #endif #ifndef GL_EXT_clip_volume_hint #define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 #endif #ifndef GL_SGIX_list_priority #define GL_LIST_PRIORITY_SGIX 0x8182 #endif #ifndef GL_SGIX_ir_instrument1 #define GL_IR_INSTRUMENT1_SGIX 0x817F #endif #ifndef GL_SGIX_calligraphic_fragment #define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 #endif #ifndef GL_SGIX_texture_lod_bias #define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E #define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F #define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 #endif #ifndef GL_SGIX_shadow_ambient #define GL_SHADOW_AMBIENT_SGIX 0x80BF #endif #ifndef GL_EXT_index_texture #endif #ifndef GL_EXT_index_material #define GL_INDEX_MATERIAL_EXT 0x81B8 #define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 #define GL_INDEX_MATERIAL_FACE_EXT 0x81BA #endif #ifndef GL_EXT_index_func #define GL_INDEX_TEST_EXT 0x81B5 #define GL_INDEX_TEST_FUNC_EXT 0x81B6 #define GL_INDEX_TEST_REF_EXT 0x81B7 #endif #ifndef GL_EXT_index_array_formats #define GL_IUI_V2F_EXT 0x81AD #define GL_IUI_V3F_EXT 0x81AE #define GL_IUI_N3F_V2F_EXT 0x81AF #define GL_IUI_N3F_V3F_EXT 0x81B0 #define GL_T2F_IUI_V2F_EXT 0x81B1 #define GL_T2F_IUI_V3F_EXT 0x81B2 #define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 #define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 #endif #ifndef GL_EXT_compiled_vertex_array #define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 #define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 #endif #ifndef GL_EXT_cull_vertex #define GL_CULL_VERTEX_EXT 0x81AA #define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB #define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC #endif #ifndef GL_SGIX_ycrcb #define GL_YCRCB_422_SGIX 0x81BB #define GL_YCRCB_444_SGIX 0x81BC #endif #ifndef GL_SGIX_fragment_lighting #define GL_FRAGMENT_LIGHTING_SGIX 0x8400 #define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 #define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 #define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 #define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 #define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 #define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 #define GL_LIGHT_ENV_MODE_SGIX 0x8407 #define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 #define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 #define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A #define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B #define GL_FRAGMENT_LIGHT0_SGIX 0x840C #define GL_FRAGMENT_LIGHT1_SGIX 0x840D #define GL_FRAGMENT_LIGHT2_SGIX 0x840E #define GL_FRAGMENT_LIGHT3_SGIX 0x840F #define GL_FRAGMENT_LIGHT4_SGIX 0x8410 #define GL_FRAGMENT_LIGHT5_SGIX 0x8411 #define GL_FRAGMENT_LIGHT6_SGIX 0x8412 #define GL_FRAGMENT_LIGHT7_SGIX 0x8413 #endif #ifndef GL_IBM_rasterpos_clip #define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 #endif #ifndef GL_HP_texture_lighting #define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 #define GL_TEXTURE_POST_SPECULAR_HP 0x8168 #define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 #endif #ifndef GL_EXT_draw_range_elements #define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 #define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 #endif #ifndef GL_WIN_phong_shading #define GL_PHONG_WIN 0x80EA #define GL_PHONG_HINT_WIN 0x80EB #endif #ifndef GL_WIN_specular_fog #define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC #endif #ifndef GL_EXT_light_texture #define GL_FRAGMENT_MATERIAL_EXT 0x8349 #define GL_FRAGMENT_NORMAL_EXT 0x834A #define GL_FRAGMENT_COLOR_EXT 0x834C #define GL_ATTENUATION_EXT 0x834D #define GL_SHADOW_ATTENUATION_EXT 0x834E #define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F #define GL_TEXTURE_LIGHT_EXT 0x8350 #define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 #define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 /* reuse GL_FRAGMENT_DEPTH_EXT */ #endif #ifndef GL_SGIX_blend_alpha_minmax #define GL_ALPHA_MIN_SGIX 0x8320 #define GL_ALPHA_MAX_SGIX 0x8321 #endif #ifndef GL_EXT_bgra #define GL_BGR_EXT 0x80E0 #define GL_BGRA_EXT 0x80E1 #endif #ifndef GL_INTEL_texture_scissor #endif #ifndef GL_INTEL_parallel_arrays #define GL_PARALLEL_ARRAYS_INTEL 0x83F4 #define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 #define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 #define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 #define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 #endif #ifndef GL_HP_occlusion_test #define GL_OCCLUSION_TEST_HP 0x8165 #define GL_OCCLUSION_TEST_RESULT_HP 0x8166 #endif #ifndef GL_EXT_pixel_transform #define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 #define GL_PIXEL_MAG_FILTER_EXT 0x8331 #define GL_PIXEL_MIN_FILTER_EXT 0x8332 #define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 #define GL_CUBIC_EXT 0x8334 #define GL_AVERAGE_EXT 0x8335 #define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 #define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 #define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 #endif #ifndef GL_EXT_pixel_transform_color_table #endif #ifndef GL_EXT_shared_texture_palette #define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB #endif #ifndef GL_EXT_separate_specular_color #define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 #define GL_SINGLE_COLOR_EXT 0x81F9 #define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA #endif #ifndef GL_EXT_secondary_color #define GL_COLOR_SUM_EXT 0x8458 #define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 #define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A #define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B #define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C #define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D #define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E #endif #ifndef GL_EXT_texture_perturb_normal #define GL_PERTURB_EXT 0x85AE #define GL_TEXTURE_NORMAL_EXT 0x85AF #endif #ifndef GL_EXT_multi_draw_arrays #endif #ifndef GL_EXT_fog_coord #define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 #define GL_FOG_COORDINATE_EXT 0x8451 #define GL_FRAGMENT_DEPTH_EXT 0x8452 #define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 #define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 #define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 #define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 #define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 #endif #ifndef GL_REND_screen_coordinates #define GL_SCREEN_COORDINATES_REND 0x8490 #define GL_INVERTED_SCREEN_W_REND 0x8491 #endif #ifndef GL_EXT_coordinate_frame #define GL_TANGENT_ARRAY_EXT 0x8439 #define GL_BINORMAL_ARRAY_EXT 0x843A #define GL_CURRENT_TANGENT_EXT 0x843B #define GL_CURRENT_BINORMAL_EXT 0x843C #define GL_TANGENT_ARRAY_TYPE_EXT 0x843E #define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F #define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 #define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 #define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 #define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 #define GL_MAP1_TANGENT_EXT 0x8444 #define GL_MAP2_TANGENT_EXT 0x8445 #define GL_MAP1_BINORMAL_EXT 0x8446 #define GL_MAP2_BINORMAL_EXT 0x8447 #endif #ifndef GL_EXT_texture_env_combine #define GL_COMBINE_EXT 0x8570 #define GL_COMBINE_RGB_EXT 0x8571 #define GL_COMBINE_ALPHA_EXT 0x8572 #define GL_RGB_SCALE_EXT 0x8573 #define GL_ADD_SIGNED_EXT 0x8574 #define GL_INTERPOLATE_EXT 0x8575 #define GL_CONSTANT_EXT 0x8576 #define GL_PRIMARY_COLOR_EXT 0x8577 #define GL_PREVIOUS_EXT 0x8578 #define GL_SOURCE0_RGB_EXT 0x8580 #define GL_SOURCE1_RGB_EXT 0x8581 #define GL_SOURCE2_RGB_EXT 0x8582 #define GL_SOURCE3_RGB_EXT 0x8583 #define GL_SOURCE4_RGB_EXT 0x8584 #define GL_SOURCE5_RGB_EXT 0x8585 #define GL_SOURCE6_RGB_EXT 0x8586 #define GL_SOURCE7_RGB_EXT 0x8587 #define GL_SOURCE0_ALPHA_EXT 0x8588 #define GL_SOURCE1_ALPHA_EXT 0x8589 #define GL_SOURCE2_ALPHA_EXT 0x858A #define GL_SOURCE3_ALPHA_EXT 0x858B #define GL_SOURCE4_ALPHA_EXT 0x858C #define GL_SOURCE5_ALPHA_EXT 0x858D #define GL_SOURCE6_ALPHA_EXT 0x858E #define GL_SOURCE7_ALPHA_EXT 0x858F #define GL_OPERAND0_RGB_EXT 0x8590 #define GL_OPERAND1_RGB_EXT 0x8591 #define GL_OPERAND2_RGB_EXT 0x8592 #define GL_OPERAND3_RGB_EXT 0x8593 #define GL_OPERAND4_RGB_EXT 0x8594 #define GL_OPERAND5_RGB_EXT 0x8595 #define GL_OPERAND6_RGB_EXT 0x8596 #define GL_OPERAND7_RGB_EXT 0x8597 #define GL_OPERAND0_ALPHA_EXT 0x8598 #define GL_OPERAND1_ALPHA_EXT 0x8599 #define GL_OPERAND2_ALPHA_EXT 0x859A #define GL_OPERAND3_ALPHA_EXT 0x859B #define GL_OPERAND4_ALPHA_EXT 0x859C #define GL_OPERAND5_ALPHA_EXT 0x859D #define GL_OPERAND6_ALPHA_EXT 0x859E #define GL_OPERAND7_ALPHA_EXT 0x859F #endif #ifndef GL_APPLE_specular_vector #define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 #endif #ifndef GL_APPLE_transform_hint #define GL_TRANSFORM_HINT_APPLE 0x85B1 #endif #ifndef GL_SGIX_fog_scale #define GL_FOG_SCALE_SGIX 0x81FC #define GL_FOG_SCALE_VALUE_SGIX 0x81FD #endif #ifndef GL_SUNX_constant_data #define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 #define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 #endif #ifndef GL_SUN_global_alpha #define GL_GLOBAL_ALPHA_SUN 0x81D9 #define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA #endif #ifndef GL_SUN_triangle_list #define GL_RESTART_SUN 0x01 #define GL_REPLACE_MIDDLE_SUN 0x02 #define GL_REPLACE_OLDEST_SUN 0x03 #define GL_TRIANGLE_LIST_SUN 0x81D7 #define GL_REPLACEMENT_CODE_SUN 0x81D8 #define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 #define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 #define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 #define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 #define GL_R1UI_V3F_SUN 0x85C4 #define GL_R1UI_C4UB_V3F_SUN 0x85C5 #define GL_R1UI_C3F_V3F_SUN 0x85C6 #define GL_R1UI_N3F_V3F_SUN 0x85C7 #define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 #define GL_R1UI_T2F_V3F_SUN 0x85C9 #define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA #define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB #endif #ifndef GL_SUN_vertex #endif #ifndef GL_EXT_blend_func_separate #define GL_BLEND_DST_RGB_EXT 0x80C8 #define GL_BLEND_SRC_RGB_EXT 0x80C9 #define GL_BLEND_DST_ALPHA_EXT 0x80CA #define GL_BLEND_SRC_ALPHA_EXT 0x80CB #endif #ifndef GL_INGR_color_clamp #define GL_RED_MIN_CLAMP_INGR 0x8560 #define GL_GREEN_MIN_CLAMP_INGR 0x8561 #define GL_BLUE_MIN_CLAMP_INGR 0x8562 #define GL_ALPHA_MIN_CLAMP_INGR 0x8563 #define GL_RED_MAX_CLAMP_INGR 0x8564 #define GL_GREEN_MAX_CLAMP_INGR 0x8565 #define GL_BLUE_MAX_CLAMP_INGR 0x8566 #define GL_ALPHA_MAX_CLAMP_INGR 0x8567 #endif #ifndef GL_INGR_interlace_read #define GL_INTERLACE_READ_INGR 0x8568 #endif #ifndef GL_EXT_stencil_wrap #define GL_INCR_WRAP_EXT 0x8507 #define GL_DECR_WRAP_EXT 0x8508 #endif #ifndef GL_EXT_422_pixels #define GL_422_EXT 0x80CC #define GL_422_REV_EXT 0x80CD #define GL_422_AVERAGE_EXT 0x80CE #define GL_422_REV_AVERAGE_EXT 0x80CF #endif #ifndef GL_NV_texgen_reflection #define GL_NORMAL_MAP_NV 0x8511 #define GL_REFLECTION_MAP_NV 0x8512 #endif #ifndef GL_EXT_texture_cube_map #define GL_NORMAL_MAP_EXT 0x8511 #define GL_REFLECTION_MAP_EXT 0x8512 #define GL_TEXTURE_CUBE_MAP_EXT 0x8513 #define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A #define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B #define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C #endif #ifndef GL_SUN_convolution_border_modes #define GL_WRAP_BORDER_SUN 0x81D4 #endif #ifndef GL_EXT_texture_env_add #endif #ifndef GL_EXT_texture_lod_bias #define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD #define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 #define GL_TEXTURE_LOD_BIAS_EXT 0x8501 #endif #ifndef GL_EXT_texture_filter_anisotropic #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF #endif #ifndef GL_EXT_vertex_weighting #define GL_MODELVIEW0_STACK_DEPTH_EXT GL_MODELVIEW_STACK_DEPTH #define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 #define GL_MODELVIEW0_MATRIX_EXT GL_MODELVIEW_MATRIX #define GL_MODELVIEW_MATRIX1_EXT 0x8506 #define GL_VERTEX_WEIGHTING_EXT 0x8509 #define GL_MODELVIEW0_EXT GL_MODELVIEW #define GL_MODELVIEW1_EXT 0x850A #define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B #define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C #define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D #define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E #define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F #define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 #endif #ifndef GL_NV_light_max_exponent #define GL_MAX_SHININESS_NV 0x8504 #define GL_MAX_SPOT_EXPONENT_NV 0x8505 #endif #ifndef GL_NV_vertex_array_range #define GL_VERTEX_ARRAY_RANGE_NV 0x851D #define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E #define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F #define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 #define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 #endif #ifndef GL_NV_register_combiners #define GL_REGISTER_COMBINERS_NV 0x8522 #define GL_VARIABLE_A_NV 0x8523 #define GL_VARIABLE_B_NV 0x8524 #define GL_VARIABLE_C_NV 0x8525 #define GL_VARIABLE_D_NV 0x8526 #define GL_VARIABLE_E_NV 0x8527 #define GL_VARIABLE_F_NV 0x8528 #define GL_VARIABLE_G_NV 0x8529 #define GL_CONSTANT_COLOR0_NV 0x852A #define GL_CONSTANT_COLOR1_NV 0x852B #define GL_PRIMARY_COLOR_NV 0x852C #define GL_SECONDARY_COLOR_NV 0x852D #define GL_SPARE0_NV 0x852E #define GL_SPARE1_NV 0x852F #define GL_DISCARD_NV 0x8530 #define GL_E_TIMES_F_NV 0x8531 #define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 #define GL_UNSIGNED_IDENTITY_NV 0x8536 #define GL_UNSIGNED_INVERT_NV 0x8537 #define GL_EXPAND_NORMAL_NV 0x8538 #define GL_EXPAND_NEGATE_NV 0x8539 #define GL_HALF_BIAS_NORMAL_NV 0x853A #define GL_HALF_BIAS_NEGATE_NV 0x853B #define GL_SIGNED_IDENTITY_NV 0x853C #define GL_SIGNED_NEGATE_NV 0x853D #define GL_SCALE_BY_TWO_NV 0x853E #define GL_SCALE_BY_FOUR_NV 0x853F #define GL_SCALE_BY_ONE_HALF_NV 0x8540 #define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 #define GL_COMBINER_INPUT_NV 0x8542 #define GL_COMBINER_MAPPING_NV 0x8543 #define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 #define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 #define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 #define GL_COMBINER_MUX_SUM_NV 0x8547 #define GL_COMBINER_SCALE_NV 0x8548 #define GL_COMBINER_BIAS_NV 0x8549 #define GL_COMBINER_AB_OUTPUT_NV 0x854A #define GL_COMBINER_CD_OUTPUT_NV 0x854B #define GL_COMBINER_SUM_OUTPUT_NV 0x854C #define GL_MAX_GENERAL_COMBINERS_NV 0x854D #define GL_NUM_GENERAL_COMBINERS_NV 0x854E #define GL_COLOR_SUM_CLAMP_NV 0x854F #define GL_COMBINER0_NV 0x8550 #define GL_COMBINER1_NV 0x8551 #define GL_COMBINER2_NV 0x8552 #define GL_COMBINER3_NV 0x8553 #define GL_COMBINER4_NV 0x8554 #define GL_COMBINER5_NV 0x8555 #define GL_COMBINER6_NV 0x8556 #define GL_COMBINER7_NV 0x8557 /* reuse GL_TEXTURE0_ARB */ /* reuse GL_TEXTURE1_ARB */ /* reuse GL_ZERO */ /* reuse GL_NONE */ /* reuse GL_FOG */ #endif #ifndef GL_NV_fog_distance #define GL_FOG_DISTANCE_MODE_NV 0x855A #define GL_EYE_RADIAL_NV 0x855B #define GL_EYE_PLANE_ABSOLUTE_NV 0x855C /* reuse GL_EYE_PLANE */ #endif #ifndef GL_NV_texgen_emboss #define GL_EMBOSS_LIGHT_NV 0x855D #define GL_EMBOSS_CONSTANT_NV 0x855E #define GL_EMBOSS_MAP_NV 0x855F #endif #ifndef GL_NV_blend_square #endif #ifndef GL_NV_texture_env_combine4 #define GL_COMBINE4_NV 0x8503 #define GL_SOURCE3_RGB_NV 0x8583 #define GL_SOURCE3_ALPHA_NV 0x858B #define GL_OPERAND3_RGB_NV 0x8593 #define GL_OPERAND3_ALPHA_NV 0x859B #endif #ifndef GL_MESA_resize_buffers #endif #ifndef GL_MESA_window_pos #endif #ifndef GL_EXT_texture_compression_s3tc #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 #endif #ifndef GL_IBM_cull_vertex #define GL_CULL_VERTEX_IBM 103050 #endif #ifndef GL_IBM_multimode_draw_arrays #endif #ifndef GL_IBM_vertex_array_lists #define GL_VERTEX_ARRAY_LIST_IBM 103070 #define GL_NORMAL_ARRAY_LIST_IBM 103071 #define GL_COLOR_ARRAY_LIST_IBM 103072 #define GL_INDEX_ARRAY_LIST_IBM 103073 #define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 #define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 #define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 #define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 #define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 #define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 #define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 #define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 #define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 #define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 #define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 #define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 #endif #ifndef GL_SGIX_subsample #define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 #define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 #define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 #define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 #define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 #endif #ifndef GL_SGIX_ycrcb_subsample #endif #ifndef GL_SGIX_ycrcba #define GL_YCRCB_SGIX 0x8318 #define GL_YCRCBA_SGIX 0x8319 #endif #ifndef GL_SGI_depth_pass_instrument #define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310 #define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311 #define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312 #endif #ifndef GL_3DFX_texture_compression_FXT1 #define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 #define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 #endif #ifndef GL_3DFX_multisample #define GL_MULTISAMPLE_3DFX 0x86B2 #define GL_SAMPLE_BUFFERS_3DFX 0x86B3 #define GL_SAMPLES_3DFX 0x86B4 #define GL_MULTISAMPLE_BIT_3DFX 0x20000000 #endif #ifndef GL_3DFX_tbuffer #endif #ifndef GL_EXT_multisample #define GL_MULTISAMPLE_EXT 0x809D #define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E #define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F #define GL_SAMPLE_MASK_EXT 0x80A0 #define GL_1PASS_EXT 0x80A1 #define GL_2PASS_0_EXT 0x80A2 #define GL_2PASS_1_EXT 0x80A3 #define GL_4PASS_0_EXT 0x80A4 #define GL_4PASS_1_EXT 0x80A5 #define GL_4PASS_2_EXT 0x80A6 #define GL_4PASS_3_EXT 0x80A7 #define GL_SAMPLE_BUFFERS_EXT 0x80A8 #define GL_SAMPLES_EXT 0x80A9 #define GL_SAMPLE_MASK_VALUE_EXT 0x80AA #define GL_SAMPLE_MASK_INVERT_EXT 0x80AB #define GL_SAMPLE_PATTERN_EXT 0x80AC #endif #ifndef GL_SGIX_vertex_preclip #define GL_VERTEX_PRECLIP_SGIX 0x83EE #define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF #endif #ifndef GL_SGIX_convolution_accuracy #define GL_CONVOLUTION_HINT_SGIX 0x8316 #endif #ifndef GL_SGIX_resample #define GL_PACK_RESAMPLE_SGIX 0x842C #define GL_UNPACK_RESAMPLE_SGIX 0x842D #define GL_RESAMPLE_REPLICATE_SGIX 0x842E #define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F #define GL_RESAMPLE_DECIMATE_SGIX 0x8430 #endif #ifndef GL_SGIS_point_line_texgen #define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 #define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 #define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 #define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 #define GL_EYE_POINT_SGIS 0x81F4 #define GL_OBJECT_POINT_SGIS 0x81F5 #define GL_EYE_LINE_SGIS 0x81F6 #define GL_OBJECT_LINE_SGIS 0x81F7 #endif /*************************************************************/ #ifndef GL_VERSION_1_2 #define GL_VERSION_1_2 1 typedef void (APIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); typedef void (APIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode); typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); typedef void (APIENTRY * PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRY * PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); typedef void (APIENTRY * PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRY * PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); typedef void (APIENTRY * PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (APIENTRY * PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRY * PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); typedef void (APIENTRY * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); typedef void (APIENTRY * PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRY * PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRY * PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); typedef void (APIENTRY * PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); typedef void (APIENTRY * PFNGLRESETHISTOGRAMPROC) (GLenum target); typedef void (APIENTRY * PFNGLRESETMINMAXPROC) (GLenum target); typedef void (APIENTRY * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); typedef void (APIENTRY * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); #endif #ifndef GL_ARB_multitexture #define GL_ARB_multitexture 1 typedef void (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture); typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); typedef void (APIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); typedef void (APIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); typedef void (APIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); typedef void (APIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); typedef void (APIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); typedef void (APIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); typedef void (APIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); typedef void (APIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); #endif #ifndef GL_ARB_transpose_matrix #define GL_ARB_transpose_matrix 1 typedef void (APIENTRY * PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); typedef void (APIENTRY * PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); typedef void (APIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); typedef void (APIENTRY * PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); #endif #ifndef GL_ARB_multisample #define GL_ARB_multisample 1 typedef void (APIENTRY * PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); typedef void (APIENTRY * PFNGLSAMPLEPASSARBPROC) (GLenum pass); #endif #ifndef GL_ARB_texture_env_add #define GL_ARB_texture_env_add 1 #endif #ifndef GL_ARB_texture_cube_map #define GL_ARB_texture_cube_map 1 #endif #ifndef GL_ARB_texture_compression #define GL_ARB_texture_compression 1 typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, void *img); #endif #ifndef GL_EXT_abgr #define GL_EXT_abgr 1 #endif #ifndef GL_EXT_blend_color #define GL_EXT_blend_color 1 typedef void (APIENTRY * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); #endif #ifndef GL_EXT_polygon_offset #define GL_EXT_polygon_offset 1 typedef void (APIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); #endif #ifndef GL_EXT_texture #define GL_EXT_texture 1 #endif #ifndef GL_EXT_texture3D #define GL_EXT_texture3D 1 typedef void (APIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); #endif #ifndef GL_EXT_subtexture #define GL_EXT_subtexture 1 typedef void (APIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); #endif #ifndef GL_SGIS_texture_filter4 #define GL_SGIS_texture_filter4 1 typedef void (APIENTRY * PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights); typedef void (APIENTRY * PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); #endif #ifndef GL_EXT_subtexture #define GL_EXT_subtexture 1 typedef void (APIENTRY * PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); typedef void (APIENTRY * PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); #endif #ifndef GL_EXT_copy_texture #define GL_EXT_copy_texture 1 typedef void (APIENTRY * PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); typedef void (APIENTRY * PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); #endif #ifndef GL_EXT_histogram #define GL_EXT_histogram 1 typedef void (APIENTRY * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRY * PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRY * PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); typedef void (APIENTRY * PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); typedef void (APIENTRY * PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); typedef void (APIENTRY * PFNGLRESETMINMAXEXTPROC) (GLenum target); #endif #ifndef GL_EXT_convolution #define GL_EXT_convolution 1 typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params); typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params); typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (APIENTRY * PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRY * PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); typedef void (APIENTRY * PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); #endif #ifndef GL_EXT_color_matrix #define GL_EXT_color_matrix 1 #endif #ifndef GL_SGI_color_table #define GL_SGI_color_table 1 typedef void (APIENTRY * PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRY * PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); typedef void (APIENTRY * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params); #endif #ifndef GL_SGIX_pixel_texture #define GL_SGIX_pixel_texture 1 typedef void (APIENTRY * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); #endif #ifndef GL_SGIS_pixel_texture #define GL_SGIS_pixel_texture 1 typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param); typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params); typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param); typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); typedef void (APIENTRY * PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params); typedef void (APIENTRY * PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params); #endif #ifndef GL_SGIS_texture4D #define GL_SGIS_texture4D 1 typedef void (APIENTRY * PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels); typedef void (APIENTRY * PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels); #endif #ifndef GL_SGI_texture_color_table #define GL_SGI_texture_color_table 1 #endif #ifndef GL_EXT_cmyka #define GL_EXT_cmyka 1 #endif #ifndef GL_EXT_texture_object #define GL_EXT_texture_object 1 typedef GLboolean (APIENTRY * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); typedef void (APIENTRY * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); typedef void (APIENTRY * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); typedef void (APIENTRY * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); typedef GLboolean (APIENTRY * PFNGLISTEXTUREEXTPROC) (GLuint texture); typedef void (APIENTRY * PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); #endif #ifndef GL_SGIS_detail_texture #define GL_SGIS_detail_texture 1 typedef void (APIENTRY * PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); typedef void (APIENTRY * PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points); #endif #ifndef GL_SGIS_sharpen_texture #define GL_SGIS_sharpen_texture 1 typedef void (APIENTRY * PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); typedef void (APIENTRY * PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points); #endif #ifndef GL_EXT_packed_pixels #define GL_EXT_packed_pixels 1 #endif #ifndef GL_SGIS_texture_lod #define GL_SGIS_texture_lod 1 #endif #ifndef GL_SGIS_multisample #define GL_SGIS_multisample 1 typedef void (APIENTRY * PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); typedef void (APIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); #endif #ifndef GL_EXT_rescale_normal #define GL_EXT_rescale_normal 1 #endif #ifndef GL_EXT_vertex_array #define GL_EXT_vertex_array 1 typedef void (APIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i); typedef void (APIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); typedef void (APIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); typedef void (APIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); typedef void (APIENTRY * PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params); typedef void (APIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); typedef void (APIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); typedef void (APIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); typedef void (APIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); #endif #ifndef GL_EXT_misc_attribute #define GL_EXT_misc_attribute 1 #endif #ifndef GL_SGIS_generate_mipmap #define GL_SGIS_generate_mipmap 1 #endif #ifndef GL_SGIX_clipmap #define GL_SGIX_clipmap 1 #endif #ifndef GL_SGIX_shadow #define GL_SGIX_shadow 1 #endif #ifndef GL_SGIS_texture_edge_clamp #define GL_SGIS_texture_edge_clamp 1 #endif #ifndef GL_SGIS_texture_border_clamp #define GL_SGIS_texture_border_clamp 1 #endif #ifndef GL_EXT_blend_minmax #define GL_EXT_blend_minmax 1 typedef void (APIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); #endif #ifndef GL_EXT_blend_subtract #define GL_EXT_blend_subtract 1 #endif #ifndef GL_EXT_blend_logic_op #define GL_EXT_blend_logic_op 1 #endif #ifndef GL_SGIX_interlace #define GL_SGIX_interlace 1 #endif #ifndef GL_SGIX_pixel_tiles #define GL_SGIX_pixel_tiles 1 #endif #ifndef GL_SGIX_texture_select #define GL_SGIX_texture_select 1 #endif #ifndef GL_SGIX_sprite #define GL_SGIX_sprite 1 typedef void (APIENTRY * PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); typedef void (APIENTRY * PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params); typedef void (APIENTRY * PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); typedef void (APIENTRY * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params); #endif #ifndef GL_SGIX_texture_multi_buffer #define GL_SGIX_texture_multi_buffer 1 #endif #ifndef GL_EXT_point_parameters #define GL_EXT_point_parameters 1 typedef void (APIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); typedef void (APIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); typedef void (APIENTRY * PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param); typedef void (APIENTRY * PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); #endif #ifndef GL_SGIX_instruments #define GL_SGIX_instruments 1 typedef GLint (APIENTRY * PFNGLGETINSTRUMENTSSGIXPROC) (void); typedef void (APIENTRY * PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer); typedef GLint (APIENTRY * PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p); typedef void (APIENTRY * PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker); typedef void (APIENTRY * PFNGLSTARTINSTRUMENTSSGIXPROC) (void); typedef void (APIENTRY * PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker); #endif #ifndef GL_SGIX_texture_scale_bias #define GL_SGIX_texture_scale_bias 1 #endif #ifndef GL_SGIX_framezoom #define GL_SGIX_framezoom 1 typedef void (APIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); #endif #ifndef GL_SGIX_tag_sample_buffer #define GL_SGIX_tag_sample_buffer 1 typedef void (APIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); #endif #ifndef GL_SGIX_reference_plane #define GL_SGIX_reference_plane 1 typedef void (APIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation); #endif #ifndef GL_SGIX_flush_raster #define GL_SGIX_flush_raster 1 typedef void (APIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void); #endif #ifndef GL_SGIX_depth_texture #define GL_SGIX_depth_texture 1 #endif #ifndef GL_SGIS_fog_function #define GL_SGIS_fog_function 1 typedef void (APIENTRY * PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points); typedef void (APIENTRY * PFNGLGETFOGFUNCSGISPROC) (const GLfloat *points); #endif #ifndef GL_SGIX_fog_offset #define GL_SGIX_fog_offset 1 #endif #ifndef GL_HP_image_transform #define GL_HP_image_transform 1 typedef void (APIENTRY * PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param); typedef void (APIENTRY * PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param); typedef void (APIENTRY * PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRY * PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (APIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params); #endif #ifndef GL_HP_convolution_border_modes #define GL_HP_convolution_border_modes 1 #endif #ifndef GL_SGIX_texture_add_env #define GL_SGIX_texture_add_env 1 #endif #ifndef GL_EXT_color_subtable #define GL_EXT_color_subtable 1 typedef void (APIENTRY * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); typedef void (APIENTRY * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); #endif #ifndef GL_PGI_vertex_hints #define GL_PGI_vertex_hints 1 #endif #ifndef GL_PGI_misc_hints #define GL_PGI_misc_hints 1 typedef void (APIENTRY * PFNGLHINTPGIPROC) (GLenum target, GLint mode); #endif #ifndef GL_EXT_paletted_texture #define GL_EXT_paletted_texture 1 typedef void (APIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); typedef void (APIENTRY * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data); typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); #endif #ifndef GL_EXT_clip_volume_hint #define GL_EXT_clip_volume_hint 1 #endif #ifndef GL_SGIX_list_priority #define GL_SGIX_list_priority 1 typedef void (APIENTRY * PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params); typedef void (APIENTRY * PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params); typedef void (APIENTRY * PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param); typedef void (APIENTRY * PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params); typedef void (APIENTRY * PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param); typedef void (APIENTRY * PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params); #endif #ifndef GL_SGIX_ir_instrument1 #define GL_SGIX_ir_instrument1 1 #endif #ifndef GL_SGIX_calligraphic_fragment #define GL_SGIX_calligraphic_fragment 1 #endif #ifndef GL_SGIX_texture_lod_bias #define GL_SGIX_texture_lod_bias 1 #endif #ifndef GL_SGIX_shadow_ambient #define GL_SGIX_shadow_ambient 1 #endif #ifndef GL_EXT_index_texture #define GL_EXT_index_texture 1 #endif #ifndef GL_EXT_index_material #define GL_EXT_index_material 1 typedef void (APIENTRY * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); #endif #ifndef GL_EXT_index_func #define GL_EXT_index_func 1 typedef void (APIENTRY * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref); #endif #ifndef GL_EXT_index_array_formats #define GL_EXT_index_array_formats 1 #endif #ifndef GL_EXT_compiled_vertex_array #define GL_EXT_compiled_vertex_array 1 typedef void (APIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); typedef void (APIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void); #endif #ifndef GL_EXT_cull_vertex #define GL_EXT_cull_vertex 1 typedef void (APIENTRY * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params); typedef void (APIENTRY * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); #endif #ifndef GL_SGIX_ycrcb #define GL_SGIX_ycrcb 1 #endif #ifndef GL_SGIX_fragment_lighting #define GL_SGIX_fragment_lighting 1 typedef void (APIENTRY * PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); typedef void (APIENTRY * PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); typedef void (APIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params); typedef void (APIENTRY * PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); typedef void (APIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params); typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params); typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params); typedef void (APIENTRY * PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param); typedef void (APIENTRY * PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params); typedef void (APIENTRY * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param); typedef void (APIENTRY * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params); typedef void (APIENTRY * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params); typedef void (APIENTRY * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params); typedef void (APIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params); typedef void (APIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params); typedef void (APIENTRY * PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param); #endif #ifndef GL_IBM_rasterpos_clip #define GL_IBM_rasterpos_clip 1 #endif #ifndef GL_HP_texture_lighting #define GL_HP_texture_lighting 1 #endif #ifndef GL_EXT_draw_range_elements #define GL_EXT_draw_range_elements 1 typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); #endif #ifndef GL_WIN_phong_shading #define GL_WIN_phong_shading 1 #endif #ifndef GL_WIN_specular_fog #define GL_WIN_specular_fog 1 #endif #ifndef GL_EXT_light_texture #define GL_EXT_light_texture 1 typedef void (APIENTRY * PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); typedef void (APIENTRY * PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); typedef void (APIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); #endif #ifndef GL_SGIX_blend_alpha_minmax #define GL_SGIX_blend_alpha_minmax 1 #endif #ifndef GL_EXT_bgra #define GL_EXT_bgra 1 #endif #ifndef GL_INTEL_parallel_arrays #define GL_INTEL_parallel_arrays 1 typedef void (APIENTRY * PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); typedef void (APIENTRY * PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const GLvoid* *pointer); typedef void (APIENTRY * PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); typedef void (APIENTRY * PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); #endif #ifndef GL_HP_occlusion_test #define GL_HP_occlusion_test 1 #endif #ifndef GL_EXT_pixel_transform #define GL_EXT_pixel_transform 1 typedef void (APIENTRY * PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); typedef void (APIENTRY * PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); typedef void (APIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); #endif #ifndef GL_EXT_pixel_transform_color_table #define GL_EXT_pixel_transform_color_table 1 #endif #ifndef GL_EXT_shared_texture_palette #define GL_EXT_shared_texture_palette 1 #endif #ifndef GL_EXT_separate_specular_color #define GL_EXT_separate_specular_color 1 #endif #ifndef GL_EXT_secondary_color #define GL_EXT_secondary_color 1 typedef void (APIENTRY * PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); typedef void (APIENTRY * PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); typedef void (APIENTRY * PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); typedef void (APIENTRY * PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); typedef void (APIENTRY * PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); typedef void (APIENTRY * PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); typedef void (APIENTRY * PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); typedef void (APIENTRY * PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); typedef void (APIENTRY * PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); typedef void (APIENTRY * PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); typedef void (APIENTRY * PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); typedef void (APIENTRY * PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); typedef void (APIENTRY * PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); typedef void (APIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); #endif #ifndef GL_EXT_texture_perturb_normal #define GL_EXT_texture_perturb_normal 1 typedef void (APIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #endif #ifndef GL_EXT_multi_draw_arrays #define GL_EXT_multi_draw_arrays 1 typedef void (APIENTRY * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); typedef void (APIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); #endif #ifndef GL_EXT_fog_coord #define GL_EXT_fog_coord 1 typedef void (APIENTRY * PFNGLFOGCOORDFEXTPROC) (GLfloat coord); typedef void (APIENTRY * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); typedef void (APIENTRY * PFNGLFOGCOORDDEXTPROC) (GLdouble coord); typedef void (APIENTRY * PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); typedef void (APIENTRY * PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); #endif #ifndef GL_REND_screen_coordinates #define GL_REND_screen_coordinates 1 #endif #ifndef GL_EXT_coordinate_frame #define GL_EXT_coordinate_frame 1 typedef void (APIENTRY * PFNGLTANGENT3BPROC) (GLbyte tx, GLbyte ty, GLbyte tz); typedef void (APIENTRY * PFNGLTANGENT3BVPROC) (const GLbyte *v); typedef void (APIENTRY * PFNGLTANGENT3DPROC) (GLdouble tx, GLdouble ty, GLdouble tz); typedef void (APIENTRY * PFNGLTANGENT3DVPROC) (const GLdouble *v); typedef void (APIENTRY * PFNGLTANGENT3FPROC) (GLfloat tx, GLfloat ty, GLfloat tz); typedef void (APIENTRY * PFNGLTANGENT3FVPROC) (const GLfloat *v); typedef void (APIENTRY * PFNGLTANGENT3IPROC) (GLint tx, GLint ty, GLint tz); typedef void (APIENTRY * PFNGLTANGENT3IVPROC) (const GLint *v); typedef void (APIENTRY * PFNGLTANGENT3SPROC) (GLshort tx, GLshort ty, GLshort tz); typedef void (APIENTRY * PFNGLTANGENT3SVPROC) (const GLshort *v); typedef void (APIENTRY * PFNGLBINORMAL3BPROC) (GLbyte bx, GLbyte by, GLbyte bz); typedef void (APIENTRY * PFNGLBINORMAL3BVPROC) (const GLbyte *v); typedef void (APIENTRY * PFNGLBINORMAL3DPROC) (GLdouble bx, GLdouble by, GLdouble bz); typedef void (APIENTRY * PFNGLBINORMAL3DVPROC) (const GLdouble *v); typedef void (APIENTRY * PFNGLBINORMAL3FPROC) (GLfloat bx, GLfloat by, GLfloat bz); typedef void (APIENTRY * PFNGLBINORMAL3FVPROC) (const GLfloat *v); typedef void (APIENTRY * PFNGLBINORMAL3IPROC) (GLint bx, GLint by, GLint bz); typedef void (APIENTRY * PFNGLBINORMAL3IVPROC) (const GLint *v); typedef void (APIENTRY * PFNGLBINORMAL3SPROC) (GLshort bx, GLshort by, GLshort bz); typedef void (APIENTRY * PFNGLBINORMAL3SVPROC) (const GLshort *v); typedef void (APIENTRY * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); typedef void (APIENTRY * PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); #endif #ifndef GL_EXT_texture_env_combine #define GL_EXT_texture_env_combine 1 #endif #ifndef GL_APPLE_specular_vector #define GL_APPLE_specular_vector 1 #endif #ifndef GL_APPLE_transform_hint #define GL_APPLE_transform_hint 1 #endif #ifndef GL_SGIX_fog_scale #define GL_SGIX_fog_scale 1 #endif #ifndef GL_SUNX_constant_data #define GL_SUNX_constant_data 1 typedef void (APIENTRY * PFNGLFINISHTEXTURESUNXPROC) (void); #endif #ifndef GL_SUN_global_alpha #define GL_SUN_global_alpha 1 typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); typedef void (APIENTRY * PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); #endif #ifndef GL_SUN_triangle_list #define GL_SUN_triangle_list 1 typedef void (APIENTRY * PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code); typedef void (APIENTRY * PFNGLREPLACEMENTCODEPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid* *pointer); #endif #ifndef GL_SUN_vertex #define GL_SUN_vertex 1 typedef void (APIENTRY * PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); typedef void (APIENTRY * PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v); typedef void (APIENTRY * PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v); typedef void (APIENTRY * PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v); typedef void (APIENTRY * PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v); typedef void (APIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v); typedef void (APIENTRY * PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v); typedef void (APIENTRY * PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v); typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); typedef void (APIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); typedef void (APIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLenum rc, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *v); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLenum rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLenum *rc, const GLubyte *c, const GLfloat *v); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLenum rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *c, const GLfloat *v); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLenum rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *n, const GLfloat *v); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLenum rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLenum rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *tc, const GLfloat *v); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLenum rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLenum rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLenum *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); #endif #ifndef GL_EXT_blend_func_separate #define GL_EXT_blend_func_separate 1 typedef void (APIENTRY * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); #endif #ifndef GL_INGR_color_clamp #define GL_INGR_color_clamp 1 #endif #ifndef GL_INGR_interlace_read #define GL_INGR_interlace_read 1 #endif #ifndef GL_EXT_stencil_wrap #define GL_EXT_stencil_wrap 1 #endif #ifndef GL_EXT_422_pixels #define GL_EXT_422_pixels 1 #endif #ifndef GL_NV_texgen_reflection #define GL_NV_texgen_reflection 1 #endif #ifndef GL_SUN_convolution_border_modes #define GL_SUN_convolution_border_modes 1 #endif #ifndef GL_EXT_texture_env_add #define GL_EXT_texture_env_add 1 #endif #ifndef GL_EXT_texture_lod_bias #define GL_EXT_texture_lod_bias 1 #endif #ifndef GL_EXT_texture_filter_anisotropic #define GL_EXT_texture_filter_anisotropic 1 #endif #ifndef GL_EXT_vertex_weighting #define GL_EXT_vertex_weighting 1 typedef void (APIENTRY * PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); typedef void (APIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight); typedef void (APIENTRY * PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer); #endif #ifndef GL_NV_light_max_exponent #define GL_NV_light_max_exponent 1 #endif #ifndef GL_NV_vertex_array_range #define GL_NV_vertex_array_range 1 typedef void (APIENTRY * PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); typedef void (APIENTRY * PFNGLVERTEXARRAYRANGENVPROC) (GLsizei size, const GLvoid *pointer); #endif #ifndef GL_NV_register_combiners #define GL_NV_register_combiners 1 typedef void (APIENTRY * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params); typedef void (APIENTRY * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); typedef void (APIENTRY * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params); typedef void (APIENTRY * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); typedef void (APIENTRY * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); typedef void (APIENTRY * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); typedef void (APIENTRY * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); typedef void (APIENTRY * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); typedef void (APIENTRY * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); typedef void (APIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); typedef void (APIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params); typedef void (APIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params); typedef void (APIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params); #endif #ifndef GL_NV_fog_distance #define GL_NV_fog_distance 1 #endif #ifndef GL_NV_texgen_emboss #define GL_NV_texgen_emboss 1 #endif #ifndef GL_NV_blend_square #define GL_NV_blend_square 1 #endif #ifndef GL_NV_texture_env_combine4 #define GL_NV_texture_env_combine4 1 #endif #ifndef GL_MESA_resize_buffers #define GL_MESA_resize_buffers 1 typedef void (APIENTRY * PFNGLRESIZEBUFFERSMESAPROC) (void); #endif #ifndef GL_MESA_window_pos #define GL_MESA_window_pos 1 typedef void (APIENTRY * PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); typedef void (APIENTRY * PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v); typedef void (APIENTRY * PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); typedef void (APIENTRY * PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v); typedef void (APIENTRY * PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); typedef void (APIENTRY * PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v); typedef void (APIENTRY * PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); typedef void (APIENTRY * PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v); typedef void (APIENTRY * PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); typedef void (APIENTRY * PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v); typedef void (APIENTRY * PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v); typedef void (APIENTRY * PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); typedef void (APIENTRY * PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v); typedef void (APIENTRY * PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); typedef void (APIENTRY * PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v); typedef void (APIENTRY * PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (APIENTRY * PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v); typedef void (APIENTRY * PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRY * PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v); typedef void (APIENTRY * PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); typedef void (APIENTRY * PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v); typedef void (APIENTRY * PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); typedef void (APIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v); #endif #ifndef GL_IBM_cull_vertex #define GL_IBM_cull_vertex 1 #endif #ifndef GL_IBM_multimode_draw_arrays #define GL_IBM_multimode_draw_arrays 1 typedef void (APIENTRY * PFNGLMULTIMODEDRAWARRAYSIBMPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); typedef void (APIENTRY * PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount, GLint modestride); #endif #ifndef GL_IBM_vertex_array_lists #define GL_IBM_vertex_array_lists 1 typedef void (APIENTRY * PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); typedef void (APIENTRY * PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); typedef void (APIENTRY * PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean* *pointer, GLint ptrstride); typedef void (APIENTRY * PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); typedef void (APIENTRY * PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); typedef void (APIENTRY * PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); typedef void (APIENTRY * PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); typedef void (APIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); #endif #ifndef GL_SGIX_subsample #define GL_SGIX_subsample 1 #endif #ifndef GL_SGIX_ycrcba #define GL_SGIX_ycrcba 1 #endif #ifndef GL_SGIX_ycrcb_subsample #define GL_SGIX_ycrcb_subsample 1 #endif #ifndef GL_SGIX_depth_pass_instrument #define GL_SGIX_depth_pass_instrument 1 #endif #ifndef GL_3DFX_texture_compression_FXT1 #define GL_3DFX_texture_compression_FXT1 1 #endif #ifndef GL_3DFX_multisample #define GL_3DFX_multisample 1 #endif #ifndef GL_3DFX_tbuffer #define GL_3DFX_tbuffer 1 typedef void (APIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); #endif #ifndef GL_EXT_multisample #define GL_EXT_multisample 1 typedef void (APIENTRY * PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); typedef void (APIENTRY * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); #endif #ifndef GL_SGI_vertex_preclip #define GL_SGI_vertex_preclip 1 #endif #ifndef GL_SGIX_convolution_accuracy #define GL_SGIX_convolution_accuracy 1 #endif #ifndef GL_SGIX_resample #define GL_SGIX_resample 1 #endif #ifdef __cplusplus } #endif #endif openuniverse-1.0beta3.1.orig/src/cfgparse.y0000644000175000017500000003270207116527516020612 0ustar paulliupaulliu%{ #include /* For math functions, cos(), sin(), etc. */ #include #include "ou.h" void yyerror(char *s); void SetUpRings(int, char *, float, float, float), SetUpAtmosphere(int, char *, float, int), SetUpBody(int, char *, int), SetUpAsteroid(int, char *), SetUpOrbiter(int, char *), SetUpSpaceShip(int, char *), SetUpComet(int, char *, float, float, int), InitSun(char *, double, int); int yylex(void); int yylineno = 0; int body_index = 1, last_planet = 0, last_satellite = 0, currblock = PLANET; double v[3]; extern planetdata planets[MAXBODIES]; extern FILE *cfgin; extern GLenum smodel; extern int border, filter, paused, demomode, demostep, plabels, slabels, realtime, cmode, currtarget, currsource, jpeg_quality, mipmap, info, mipmap_filter, fonttype, LOD, tex_compr, color_depth; extern GLenum cd_rgb, cd_lum, cd_rgba, cd_luma; extern float speed, star_mag; struct tm date; %} %union { int ival; double dval; char name[100]; } %token < ival > INTEGER_NUM %token < dval > DOUBLE_NUM %token < name > NAME %token < name > SUN PLANET ASTEROID COMET SATELLITE ORBITER SPACESHIP RING ATMOSPHERE %token < name > SPLASHBITMAP BORDER FILTER SHADING SIM_DATE PAUSE REALTIME %token < name > PLANETS_LABELS STARS_LABELS INFO STAR_BRIGHT STAR_SIZE CAM_SPEED %token < name > ATMOSPHERES CAM_MODE TARGET SOURCE SLICES STACKS JPEG_QUALITY %token < name > MIPMAP MIPMAP_FILTER FONT LEVELOFDETAIL COLORDEPTH LOGO EOL %token < name > MILKYWAY MESSIER DEMO DEMOSTEP TEXTURECOMPRESSION %expect 5 %% input: |input line; line: SPLASHBITMAP '=' INTEGER_NUM { splashbitmap = $3; } |ATMOSPHERES '=' INTEGER_NUM { atmospheres = $3; } |BORDER '=' INTEGER_NUM { border = $3; } |FILTER '=' NAME { if (!strcmp($3, "GL_NEAREST")) filter = GL_NEAREST; if (!strcmp($3, "GL_LINEAR")) filter = GL_LINEAR; } |SHADING '=' NAME { if (strcmp($3, "GL_FLAT")) smodel = GL_SMOOTH; else smodel = GL_FLAT; } |SIM_DATE '=' NAME NAME { sscanf($3, "%d-%d-%d", &date.tm_mon, &date.tm_mday, &date.tm_year); sscanf($4, "%d:%d:%d", &date.tm_hour, &date.tm_min, &date.tm_sec); date.tm_mon--; date.tm_year-=1900; days = mktime(&date) / 3600.0 / 24.0 - 10092.0; } |PAUSE '=' INTEGER_NUM { paused = $3; } |REALTIME '=' INTEGER_NUM { realtime = $3; } |DEMO '=' INTEGER_NUM { demomode = $3; } |DEMOSTEP '=' INTEGER_NUM { demostep = $3; } |PLANETS_LABELS '=' INTEGER_NUM { plabels = $3; } |STARS_LABELS '=' INTEGER_NUM { slabels = $3; } |INFO '=' INTEGER_NUM { info = $3; } |STAR_BRIGHT '=' DOUBLE_NUM { star_mag = $3; } |STAR_SIZE '=' DOUBLE_NUM { star_size = $3; } |CAM_SPEED '=' DOUBLE_NUM { speed = $3; } |CAM_MODE '=' INTEGER_NUM { cmode = $3; } |TARGET '=' INTEGER_NUM { currtarget = $3; } |SOURCE '=' INTEGER_NUM { currsource = $3; } |SLICES '=' INTEGER_NUM { slices = $3; } |STACKS '=' INTEGER_NUM { stacks = $3; } |JPEG_QUALITY '=' INTEGER_NUM { jpeg_quality = $3; if ((jpeg_quality < 0) || (jpeg_quality > 100)) { error("Invalid jpeg_quality value\n"); shutdown(1); } } |MIPMAP '=' INTEGER_NUM { mipmap = $3; } |MIPMAP_FILTER '=' NAME { if (!strcmp($3, "GL_NEAREST_MIPMAP_NEAREST")) mipmap_filter = GL_NEAREST_MIPMAP_NEAREST; if (!strcmp($3, "GL_LINEAR_MIPMAP_NEAREST")) mipmap_filter = GL_LINEAR_MIPMAP_NEAREST; if (!strcmp($3, "GL_NEAREST_MIPMAP_LINEAR")) mipmap_filter = GL_NEAREST_MIPMAP_LINEAR; if (!strcmp($3, "GL_NEAREST_MIPMAP_LINEAR")) mipmap_filter = GL_NEAREST_MIPMAP_LINEAR; if (!strcmp($3, "GL_LINEAR_MIPMAP_LINEAR")) mipmap_filter = GL_LINEAR_MIPMAP_LINEAR; } |FONT '=' INTEGER_NUM { fonttype = $3} |LEVELOFDETAIL '=' INTEGER_NUM { LOD = $3} |TEXTURECOMPRESSION '=' INTEGER_NUM { tex_compr *= $3} |COLORDEPTH '=' INTEGER_NUM { color_depth = $3; switch (color_depth) { default: case 16: cd_rgb = GL_RGB5; cd_lum = GL_LUMINANCE8; cd_rgba = GL_RGBA4; cd_luma = GL_LUMINANCE8_ALPHA8; break; case 32: cd_rgb = GL_RGB8; cd_lum = GL_LUMINANCE8; cd_rgba = GL_RGBA8; cd_luma = GL_LUMINANCE8_ALPHA8; break; } } |LOGO '=' INTEGER_NUM { logo = $3; } |MILKYWAY '=' INTEGER_NUM { milkyway = $3; } |MESSIER '=' INTEGER_NUM { messier = $3; } |sun | body | spaceship; sun:SUN '{' NAME DOUBLE_NUM INTEGER_NUM DOUBLE_NUM '}' { sprintf(planets[0].Name, "The Sun"); planets[0].Mass = $6; LOG("Initializing Sun", InitSun($3, $4, $5)) } body:planet | asteroid | comet; planet:PLANET NAME '{' NAME INTEGER_NUM INTEGER_NUM INTEGER_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM INTEGER_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM INTEGER_NUM { strcpy(planets[body_index].Name, $2); INITVECTOR(planets[body_index].Color, $5 / 255.0, $6 / 255.0, $7 / 255.0); planets[body_index].Radius = $8; planets[body_index].xflat = $9; planets[body_index].yflat = $10; planets[body_index].zflat = $11; planets[body_index].Degrees = $13; planets[body_index].Rotation = $14; planets[body_index].Inclination = $15 * M_PI / 180.0; planets[body_index].AscendingNode = $16 * M_PI / 180.0; planets[body_index].Perihelion = $17 * M_PI / 180.0; planets[body_index].MeanDistance = DISTCORRECTION($18); planets[body_index].DailyMotion = $19 * M_PI / 180.0; planets[body_index].OrbitalPeriod = $20; planets[body_index].Eccentricity = $21; planets[body_index].MeanLongitude = $22 * M_PI / 180.0; planets[body_index].Mass = $23; planets[body_index].CustomFunction = $24; planets[body_index].Sat = 0; planets[body_index].TrailEnabled = 0; planets[body_index].Type = PLANET; LOG($2, SetUpBody(body_index, $4, $12)); last_planet = body_index; body_index++; } atmosphere rings satellites orbiters '}'; satellites: | satellite | satellites satellite satellite: SATELLITE NAME '{' NAME INTEGER_NUM INTEGER_NUM INTEGER_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM INTEGER_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM INTEGER_NUM { currblock = SATELLITE; strcpy(planets[body_index].Name, $2); INITVECTOR(planets[body_index].Color, $5 / 255.0, $6 / 255.0, $7 / 255.0); planets[body_index].Radius = $8; planets[body_index].xflat = $9; planets[body_index].yflat = $10; planets[body_index].zflat = $11; planets[body_index].Degrees = $13; planets[body_index].Rotation = $14; planets[body_index].Inclination = $15 * M_PI / 180.0; planets[body_index].AscendingNode = $16 * M_PI / 180.0; planets[body_index].Perihelion = $17 * M_PI / 180.0; planets[body_index].MeanDistance = $18; planets[body_index].DailyMotion = $19 * M_PI / 180.0; planets[body_index].OrbitalPeriod = $20; planets[body_index].Eccentricity = $21; planets[body_index].MeanLongitude = $22 * M_PI / 180.0; planets[body_index].Mass = $23; planets[body_index].Type = SATELLITE; planets[body_index].Sat = last_planet; planets[body_index].CustomFunction = $24; LOG($2, SetUpBody(body_index, $4, $12)); last_satellite = body_index; body_index++; } atmosphere orbiters { currblock = PLANET; } '}'; orbiters: |orbiter | orbiters orbiter orbiter:ORBITER NAME '{' NAME DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM { strcpy(planets[body_index].Name, $2); planets[body_index].Type = ORBITER; planets[body_index].Radius = $5; INITVECTOR(planets[body_index].Color, 1.0, 1.0, 1.0); planets[body_index].Sat = (currblock == SATELLITE) ? last_satellite : last_planet; planets[body_index].up[0] = $6; planets[body_index].up[1] = $7; planets[body_index].up[2] = $8; planets[body_index].dir[0] = $9; planets[body_index].dir[1] = $10; planets[body_index].dir[2] = $11; planets[body_index].Rotation = 0.0; planets[body_index].Inclination = $12; planets[body_index].AscendingNode = $13; planets[body_index].Perihelion = $14; planets[body_index].MeanDistance = $15; planets[body_index].DailyMotion = $16; planets[body_index].OrbitalPeriod = $17; planets[body_index].Eccentricity = $18; planets[body_index].MeanLongitude = $19; planets[body_index].CustomFunction = 0; LOG($2, SetUpOrbiter(body_index, $4)); body_index++; } '}'; asteroid:ASTEROID NAME '{' NAME DOUBLE_NUM INTEGER_NUM INTEGER_NUM INTEGER_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM INTEGER_NUM { strcpy(planets[body_index].Name, $2); planets[body_index].Radius = $5; INITVECTOR(planets[body_index].Color, $6 / 255.0, $7 / 255.0, $8 / 255.0); planets[body_index].xflat = $9; planets[body_index].yflat = $10; planets[body_index].zflat = $11; planets[body_index].Rotation = $12; planets[body_index].Inclination = $13 * M_PI / 180.0; planets[body_index].AscendingNode = $14 * M_PI / 180.0; planets[body_index].Perihelion = $15 * M_PI / 180.0; planets[body_index].MeanDistance = DISTCORRECTION($16); planets[body_index].DailyMotion = $17 * M_PI / 180.0; planets[body_index].OrbitalPeriod = $18; planets[body_index].Eccentricity = $19; planets[body_index].MeanLongitude = $20 * M_PI / 180.0; planets[body_index].Sat = 0; planets[body_index].CustomFunction = $21; planets[body_index].Type = ASTEROID; planets[body_index].up[0] = 0.0; planets[body_index].up[1] = 1.0; planets[body_index].up[2] = 0.0; planets[body_index].dir[0] = 0.0; planets[body_index].dir[1] = 0.0; planets[body_index].dir[2] = -1.0; LOG($2, SetUpAsteroid(body_index, $4)); last_planet = body_index; body_index++; } satellites '}'; comet:COMET NAME '{' NAME INTEGER_NUM INTEGER_NUM INTEGER_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM INTEGER_NUM INTEGER_NUM { strcpy(planets[body_index].Name, $2); INITVECTOR(planets[body_index].Color, $5 / 255.0, $6 / 255.0, $7 / 255.0); planets[body_index].Radius = $8; planets[body_index].xflat = $9; planets[body_index].yflat = $10; planets[body_index].zflat = $11; planets[body_index].Degrees = $13; planets[body_index].Rotation = $14; planets[body_index].Inclination = $15 * M_PI / 180.0; planets[body_index].AscendingNode = $16 * M_PI / 180.0; planets[body_index].Perihelion = $17 * M_PI / 180.0; planets[body_index].MeanDistance = DISTCORRECTION($18); planets[body_index].DailyMotion = $19 * M_PI / 180.0; planets[body_index].OrbitalPeriod = $20; planets[body_index].Eccentricity = $21; planets[body_index].MeanLongitude = $22 * M_PI / 180.0; planets[body_index].Sat = 0; planets[body_index].CustomFunction = $25; planets[body_index].Type = COMET; LOG($2, SetUpComet(body_index, $4, $12, $23, $24)); last_planet = body_index; body_index++; } '}'; atmosphere: |ATMOSPHERE '{' NAME INTEGER_NUM INTEGER_NUM INTEGER_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM INTEGER_NUM '}' { INITVECTOR(planets[body_index].Color, $4 / 255.0, $5 / 255.0, $6 / 255.0); planets[body_index].Radius = $7; planets[body_index].Rotation = $8; planets[body_index].Sat = last_planet; planets[body_index].Type = ATMOSPHERE; LOG("Atmosphere", SetUpAtmosphere(body_index, $3, $9, $10)); body_index++; } ; rings: |ring | rings ring; ring:RING '{' NAME INTEGER_NUM INTEGER_NUM INTEGER_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM '}' { planets[body_index].Color[0] = $4 / 255.0; planets[body_index].Color[1] = $5 / 255.0; planets[body_index].Color[2] = $6 / 255.0; planets[body_index].Sat = last_planet; planets[body_index].Type = RING; planets[body_index].InnerRadius = $7; planets[body_index].Radius = $8; planets[body_index].initialized = 0; LOG("Ring", SetUpRings(body_index, $3, $7, $8, $9)); body_index++; } ; spaceship:SPACESHIP NAME '{' NAME DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM DOUBLE_NUM { strcpy(planets[body_index].Name, $2); INITVECTOR(planets[body_index].Color, 1.0, 1.0, 1.0); planets[body_index].Type = SPACESHIP; planets[body_index].Radius = $5; planets[body_index].Sat = 0; INITVECTOR(planets[body_index].pos, $6 * AU, $7 * AU, $8 * AU); INITVECTOR(planets[body_index].up, $9, $10, $11); INITVECTOR(planets[body_index].dir, $12, $13, $14); INITVECTOR(planets[body_index].vel, $15, $16, $17); LOG($2, SetUpSpaceShip(body_index, $4)); body_index++; } '}'; %% void yyerror(char *s) { fprintf(stderr, "%s in line %d of configuration file\n", s, yylineno); shutdown(1); } /* Read configuration file */ void ReadConfigFile(void) { char s[200]; sprintf(s, "ou.conf"); cfgin = fopen(s, "rt"); if (cfgin == NULL) { sprintf(s, "%s/ou.conf", confpath); cfgin = fopen(s, "rt"); if (cfgin == NULL) { error("Couldn't find configuration file"); shutdown(1); } } yyparse(); fclose(cfgin); NUMBODIES = body_index; } openuniverse-1.0beta3.1.orig/src/cfglex.l0000644000175000017500000000464207116527521020251 0ustar paulliupaulliu%{ #include #include "ou.h" int reserverd_word(char *s); extern int yylineno; #define YY_NO_UNPUT %} %option noyywrap DIGIT [0-9] TEXT [a-z_\-:/0-9.]* %% border return BORDER; atmospheres return ATMOSPHERES; splash return SPLASHBITMAP; filter return FILTER; shading return SHADING; date return SIM_DATE; pause return PAUSE; realtime return REALTIME; demo return DEMO; demostep return DEMOSTEP; planets_labels return PLANETS_LABELS; stars_labels return STARS_LABELS; info return INFO; star_brightness_factor return STAR_BRIGHT; star_size return STAR_SIZE; camera_speed return CAM_SPEED; camera_mode return CAM_MODE; target return TARGET; source return SOURCE; slices return SLICES; stacks return STACKS; jpeg_quality return JPEG_QUALITY; mipmap return MIPMAP; mipmap_filter return MIPMAP_FILTER; sun return SUN; planet return PLANET; satellite return SATELLITE; orbiter return ORBITER; spaceship return SPACESHIP; asteroid return ASTEROID; comet return COMET; atmosphere return ATMOSPHERE; ring return RING; font return FONT; LOD return LEVELOFDETAIL; texture_compression return TEXTURECOMPRESSION; color_depth return COLORDEPTH; logo return LOGO; milky_way return MILKYWAY; messier return MESSIER; {DIGIT}+ { cfglval.ival = atoi(yytext); return INTEGER_NUM; } {DIGIT}+"."{DIGIT}*"E"*{DIGIT}* { cfglval.dval = atof(yytext); return DOUBLE_NUM; } {TEXT} { strcpy(cfglval.name, yytext); return NAME; } "\#"(.)*"\n" yylineno++; "/*" { register int c; for (;;) { while ((c = yyinput()) != '*' && c != EOF); /* eat up text of comment */ if (c == '*') { while ((c = yyinput()) == '*'); if (c == '/') break; /* found the end */ } if (c == EOF) { error("EOF in comment"); break; } } } [\t]+ \n { yylineno++; } "{" return ('{'); "}" return ('}'); "=" return ('='); ";" return (';'); . %% openuniverse-1.0beta3.1.orig/src/vsop87.dat0000644000175000017500000017510007107356221020457 0ustar paulliupaulliudouble mercuryL0[]={38.0 ,440250710.0 ,0.0 ,0.0 ,40989415.0 ,1.48302034 ,26087.90314157 ,5046294.0 ,4.4778549 ,52175.8062831 ,855347.0 ,1.165203 ,78263.709425 ,165590.0 ,4.119692 ,104351.612566 ,34562.0 ,0.77931 ,130439.51571 ,7583.0 ,3.7135 ,156527.4188 ,3560.0 ,1.512 ,1109.3786 ,1803.0 ,4.1033 ,5661.332 ,1726.0 ,0.3583 ,182615.322 ,1590.0 ,2.9951 ,25028.5212 ,1365.0 ,4.5992 ,27197.2817 ,1017.0 ,0.8803 ,31749.2352 ,714.0 ,1.541 ,24978.525 ,644.0 ,5.303 ,21535.95 ,451.0 ,6.05 ,51116.424 ,404.0 ,3.282 ,208703.225 ,352.0 ,5.242 ,20426.571 ,345.0 ,2.792 ,15874.618 ,343.0 ,5.765 ,955.6 ,339.0 ,5.863 ,25558.212 ,325.0 ,1.337 ,53285.185 ,273.0 ,2.495 ,529.691 ,264.0 ,3.917 ,57837.138 ,260.0 ,0.987 ,4551.953 ,239.0 ,0.113 ,1059.382 ,235.0 ,0.267 ,11322.664 ,217.0 ,0.66 ,13521.751 ,209.0 ,2.092 ,47623.853 ,183.0 ,2.629 ,27043.503 ,182.0 ,2.434 ,25661.305 ,176.0 ,4.536 ,51066.428 ,173.0 ,2.452 ,24498.83 ,142.0 ,3.36 ,37410.567 ,138.0 ,0.291 ,10213.286 ,125.0 ,3.721 ,39609.655 ,118.0 ,2.781 ,77204.327 ,106.0 ,4.206 ,19804.827 }; double mercuryL1[]={16.0 ,2608814706223.0 ,0.0 ,0.0 ,1126008.0 ,6.2170397 ,26087.9031416 ,303471.0 ,3.055655 ,52175.806283 ,80538.0 ,6.10455 ,78263.70942 ,21245.0 ,2.83532 ,104351.61257 ,5592.0 ,5.8268 ,130439.5157 ,1472.0 ,2.5185 ,156527.4188 ,388.0 ,5.48 ,182615.322 ,352.0 ,3.052 ,1109.379 ,103.0 ,2.149 ,208703.225 ,94.0 ,6.12 ,27197.28 ,91.0 ,0.0 ,24978.52 ,52.0 ,5.62 ,5661.33 ,44.0 ,4.57 ,25028.52 ,28.0 ,3.04 ,51066.43 ,27.0 ,5.09 ,234791.13 }; double mercuryL2[]={10.0 ,53050.0 ,0.0 ,0.0 ,16904.0 ,4.69072 ,26087.90314 ,7397.0 ,1.3474 ,52175.8063 ,3018.0 ,4.4564 ,78263.7094 ,1107.0 ,1.2623 ,104351.6126 ,378.0 ,4.32 ,130439.516 ,123.0 ,1.069 ,156527.419 ,39.0 ,4.08 ,182615.32 ,15.0 ,4.63 ,1109.38 ,12.0 ,0.79 ,208703.23 }; double mercuryL3[]={8.0 ,188.0 ,0.035 ,52175.806 ,142.0 ,3.125 ,26087.903 ,97.0 ,3 ,78263.71 ,44.0 ,6.02 ,104351.61 ,35.0 ,0.0 ,0.0 ,18.0 ,2.78 ,130439.52 ,7.0 ,5.82 ,156527.42 ,3.0 ,2.57 ,182615.32 }; double mercuryL4[]={6.0 ,114.0 ,3.1416 ,0.0 ,3.0 ,2.03 ,26087.9 ,2.0 ,1.42 ,78263.71 ,2.0 ,4.5 ,52175.81 ,1.0 ,4.5 ,104351.61 ,1.0 ,1.27 ,130439.52 }; double mercuryL5[]={1.0 ,1.0 ,3.14 ,0.0 }; double mercuryB0[]={14.0 ,11737529.0 ,1.98357499 ,26087.90314157 ,2388077.0 ,5.0373896 ,52175.8062831 ,1222840.0 ,3.1415927 ,0.0 ,543252.0 ,1.796444 ,78263.709425 ,129779.0 ,4.832325 ,104351.612566 ,31867.0 ,1.58088 ,130439.51571 ,7963.0 ,4.6097 ,156527.4188 ,2014.0 ,1.3532 ,182615.322 ,514.0 ,4.378 ,208703.225 ,209.0 ,2.02 ,24978.525 ,208.0 ,4.918 ,27197.282 ,132.0 ,1.119 ,234791.128 ,121.0 ,1.813 ,53285.185 ,100.0 ,5.657 ,20426.571 }; double mercuryB1[]={11.0 ,429151.0 ,3.501698 ,26087.903142 ,146234.0 ,3.141593 ,0.0 ,22675.0 ,0.01515 ,52175.80628 ,10895.0 ,0.4854 ,78263.70942 ,6353.0 ,3.4294 ,104351.6126 ,2496.0 ,0.1605 ,130439.5157 ,860.0 ,3.185 ,156527.419 ,278.0 ,6.21 ,182615.322 ,86.0 ,2.95 ,208703.23 ,28.0 ,0.29 ,27197.28 ,26.0 ,5.98 ,234791.13 }; double mercuryB2[]={9.0 ,11831.0 ,4.79066 ,26087.90314 ,1914.0 ,0.0 ,0.0 ,1045.0 ,1.2122 ,52175.8063 ,266.0 ,4.434 ,78263.709 ,170.0 ,1.623 ,104351.613 ,96.0 ,4.8 ,130439.52 ,45.0 ,1.61 ,156527.42 ,18.0 ,4.67 ,182615.32 ,7.0 ,1.43 ,208703.23 }; double mercuryB3[]={7.0 ,235.0 ,0.354 ,26087.903 ,161.0 ,0.0 ,0.0 ,19.0 ,4.36 ,52175.81 ,6.0 ,2.51 ,78263.71 ,5.0 ,6.14 ,104351.61 ,3.0 ,3.12 ,130439.52 ,2.0 ,6.27 ,156527.42 }; double mercuryB4[]={2.0 ,4.0 ,1.75 ,26087.9 ,1.0 ,3.14 ,0.0 }; double mercuryR0[]={13.0 ,39528272.0 ,0.0 ,0.0 ,7834132.0 ,6.1923372 ,26087.9031416 ,795526.0 ,2.959897 ,52175.806283 ,121282.0 ,6.010642 ,78263.709425 ,21922.0 ,2.7782 ,104351.61257 ,4354.0 ,5.8289 ,130439.5157 ,918.0 ,2.597 ,156527.419 ,290.0 ,1.424 ,25028.521 ,260.0 ,3.028 ,27197.282 ,202.0 ,5.647 ,182615.322 ,201.0 ,5.592 ,31749.235 ,142.0 ,6.253 ,24978.525 ,100.0 ,3.734 ,21535.95 }; double mercuryR1[]={8.0 ,217348.0 ,4.656172 ,26087.903142 ,44142.0 ,1.42386 ,52175.80628 ,10094.0 ,4.47466 ,78263.70942 ,2433.0 ,1.2423 ,104351.6126 ,1624.0 ,0.0 ,0.0 ,604.0 ,4.293 ,130439.516 ,153.0 ,1.061 ,156527.419 ,39.0 ,4.11 ,182615.32 }; double mercuryR2[]={7.0 ,3118.0 ,3.0823 ,26087.9031 ,1245.0 ,6.1518 ,52175.8063 ,425.0 ,2.926 ,78263.709 ,136.0 ,5.98 ,104351.613 ,42.0 ,2.75 ,130439.52 ,22.0 ,3.14 ,0.0 ,13.0 ,5.8 ,156527.42 }; double mercuryR3[]={5.0 ,33.0 ,1.68 ,26087.9 ,24.0 ,4.63 ,52175.81 ,12.0 ,1.39 ,78263.71 ,5.0 ,4.44 ,104351.61 ,2.0 ,1.21 ,130439.52 }; double venusL0[]={24.0 ,317614667.0 ,0.0 ,0.0 ,1353968.0 ,5.5931332 ,10213.2855462 ,89892.0 ,5.3065 ,20426.57109 ,5477.0 ,4.4163 ,7860.4194 ,3456.0 ,2.6996 ,11790.6291 ,2372.0 ,2.9938 ,3930.2097 ,1664.0 ,4.2502 ,1577.3435 ,1438.0 ,4.1575 ,9683.5946 ,1317.0 ,5.1867 ,26.2983 ,1201.0 ,6.1536 ,30639.8566 ,769.0 ,0.816 ,9437.763 ,761.0 ,1.95 ,529.691 ,708.0 ,1.065 ,775.523 ,585.0 ,3.998 ,191.448 ,500.0 ,4.123 ,15720.839 ,429.0 ,3.586 ,19367.189 ,327.0 ,5.677 ,5507.553 ,326.0 ,4.591 ,10404.734 ,232.0 ,3.163 ,9153.904 ,180.0 ,4.653 ,1109.379 ,155.0 ,5.57 ,19651.048 ,128.0 ,4.226 ,20.775 ,128.0 ,0.962 ,5661.332 ,106.0 ,1.537 ,801.821 }; double venusL1[]={12.0 ,1021352943053.0 ,0.0 ,0.0 ,95708.0 ,2.46424 ,10213.28555 ,14445.0 ,0.51625 ,20426.57109 ,213.0 ,1.795 ,30639.857 ,174.0 ,2.655 ,26.298 ,152.0 ,6.106 ,1577.344 ,82.0 ,5.7 ,191.45 ,70.0 ,2.68 ,9437.76 ,52.0 ,3.6 ,775.52 ,38.0 ,1.03 ,529.69 ,30.0 ,1.25 ,5507.55 ,25.0 ,6.11 ,10404.73 }; double venusL2[]={8.0 ,54127.0 ,0.0 ,0.0 ,3891.0 ,0.3451 ,10213.2855 ,1338.0 ,2.0201 ,20426.5711 ,24.0 ,2.05 ,26.3 ,19.0 ,3.54 ,30639.86 ,10.0 ,3.97 ,775.52 ,7.0 ,1.52 ,1577.34 ,6.0 ,1 ,191.45 }; double venusL3[]={3.0 ,136.0 ,4.804 ,10213.286 ,78.0 ,3.67 ,20426.57 ,26.0 ,0.0 ,0.0 }; double venusL4[]={3.0 ,114.0 ,3.1416 ,0.0 ,3.0 ,5.21 ,20426.57 ,2.0 ,2.51 ,10213.29 }; double venusL5[]={1.0 ,1.0 ,3.14 ,0.0 }; double venusB0[]={9.0 ,5923638.0 ,0.2670278 ,10213.2855462 ,40108.0 ,1.14737 ,20426.57109 ,32815.0 ,3.14159 ,0.0 ,1011.0 ,1.0895 ,30639.8566 ,149.0 ,6.254 ,18073.705 ,138.0 ,0.86 ,1577.344 ,130.0 ,3.672 ,9437.763 ,120.0 ,3.705 ,2352.866 ,108.0 ,4.539 ,22003.915 }; double venusB1[]={4.0 ,513348.0 ,1.803643 ,10213.285546 ,4380.0 ,3.3862 ,20426.5711 ,199.0 ,0.0 ,0.0 ,197.0 ,2.53 ,30639.857 }; double venusB2[]={4.0 ,22378.0 ,3.38509 ,10213.28555 ,282.0 ,0.0 ,0.0 ,173.0 ,5.256 ,20426.571 ,27.0 ,3.87 ,30639.86 }; double venusB3[]={4.0 ,647.0 ,4.992 ,10213.286 ,20.0 ,3.14 ,0.0 ,6.0 ,0.77 ,20426.57 ,3.0 ,5.44 ,30639.86 }; double venusB4[]={1.0 ,14.0 ,0.32 ,10213.29 }; double venusR0[]={12.0 ,72334821.0 ,0.0 ,0.0 ,489824.0 ,4.021518 ,10213.285546 ,1658.0 ,4.9021 ,20426.5711 ,1632.0 ,2.8455 ,7860.4194 ,1378.0 ,1.1285 ,11790.6291 ,498.0 ,2.587 ,9683.595 ,374.0 ,1.423 ,3930.21 ,264.0 ,5.529 ,9437.763 ,237.0 ,2.551 ,15720.839 ,222.0 ,2.013 ,19367.189 ,126.0 ,2.728 ,1577.344 ,119.0 ,3.02 ,10404.734 }; double venusR1[]={3.0 ,34551.0 ,0.89199 ,10213.28555 ,234.0 ,1.772 ,20426.571 ,234.0 ,3.142 ,0.0 }; double venusR2[]={3.0 ,1407.0 ,5.0637 ,10213.2855 ,16.0 ,5.47 ,20426.57 ,13.0 ,0.0 ,0.0 }; double venusR3[]={1.0 ,50.0 ,3.22 ,10213.29 }; double venusR4[]={1.0 ,1.0 ,0.92 ,10213.29 }; double earthL0[]={64.0 ,175347046.0 ,0.0 ,0.0 ,3341656.0 ,4.6692568 ,6283.07585 ,34894.0 ,4.6261 ,12566.1517 ,3497.0 ,2.7441 ,5753.3849 ,3418.0 ,2.8289 ,3.5231 ,3136.0 ,3.6277 ,77713.7715 ,2676.0 ,4.4181 ,7860.4194 ,2343.0 ,6.1352 ,3930.2097 ,1324.0 ,0.7425 ,11506.7698 ,1273.0 ,2.0371 ,529.691 ,1199.0 ,1.1096 ,1577.3435 ,990.0 ,5.233 ,5884.927 ,902.0 ,2.045 ,26.298 ,857.0 ,3.508 ,398.149 ,780.0 ,1.179 ,5223.694 ,753.0 ,2.533 ,5507.553 ,505.0 ,4.583 ,18849.228 ,492.0 ,4.205 ,775.523 ,357.0 ,2.92 ,0.067 ,317.0 ,5.849 ,11790.629 ,284.0 ,1.899 ,796.298 ,271.0 ,0.315 ,10977.079 ,243.0 ,0.345 ,5486.778 ,206.0 ,4.806 ,2544.314 ,205.0 ,1.869 ,5573.143 ,202.0 ,2.458 ,6069.777 ,156.0 ,0.833 ,213.299 ,132.0 ,3.411 ,2942.463 ,126.0 ,1.083 ,20.775 ,115.0 ,0.645 ,0.98 ,103.0 ,0.636 ,4694.003 ,102.0 ,0.976 ,15720.839 ,102.0 ,4.267 ,7.114 ,99.0 ,6.21 ,2146.17 ,98.0 ,0.68 ,155.42 ,86.0 ,5.98 ,161000.69 ,85.0 ,1.3 ,6275.96 ,85.0 ,3.67 ,71430.7 ,80.0 ,1.81 ,17260.15 ,79.0 ,3.04 ,12036.46 ,75.0 ,1.76 ,5088.63 ,74.0 ,3.5 ,3154.69 ,74.0 ,4.68 ,801.82 ,70.0 ,0.83 ,9437.76 ,62.0 ,3.98 ,8827.39 ,61.0 ,1.82 ,7084.9 ,57.0 ,2.78 ,6286.6 ,56.0 ,4.39 ,14143.5 ,56.0 ,3.47 ,6279.55 ,52.0 ,0.19 ,12139.55 ,52.0 ,1.33 ,1748.02 ,51.0 ,0.28 ,5856.48 ,49.0 ,0.49 ,1194.45 ,41.0 ,5.37 ,8429.24 ,41.0 ,2.4 ,19651.05 ,39.0 ,6.17 ,10447.39 ,37.0 ,6.04 ,10213.29 ,37.0 ,2.57 ,1059.38 ,36.0 ,1.71 ,2352.87 ,36.0 ,1.78 ,6812.77 ,33.0 ,0.59 ,17789.85 ,30.0 ,0.44 ,83996.85 ,30.0 ,2.74 ,1349.87 ,25.0 ,3.16 ,4690.48 }; double earthL1[]={34.0 ,628331966747.0 ,0.0 ,0.0 ,206059.0 ,2.678235 ,6283.07585 ,4303.0 ,2.6351 ,12566.1517 ,425.0 ,1.59 ,3.523 ,119.0 ,5.796 ,26.298 ,109.0 ,2.966 ,1577.344 ,93.0 ,2.59 ,18849.23 ,72.0 ,1.14 ,529.69 ,68.0 ,1.87 ,398.15 ,67.0 ,4.41 ,5507.55 ,59.0 ,2.89 ,5223.69 ,56.0 ,2.17 ,155.42 ,45.0 ,0.4 ,796.3 ,36.0 ,0.47 ,775.52 ,29.0 ,2.65 ,7.11 ,21.0 ,5.34 ,0.98 ,19.0 ,1.85 ,5486.78 ,19.0 ,4.97 ,213.3 ,17.0 ,2.99 ,6275.96 ,16.0 ,0.03 ,2544.31 ,16.0 ,1.43 ,2146.17 ,15.0 ,1.21 ,10977.08 ,12.0 ,2.83 ,1748.02 ,12.0 ,3.26 ,5088.63 ,12.0 ,5.27 ,1194.45 ,12.0 ,2.08 ,4694 ,11.0 ,0.77 ,553.57 ,10.0 ,1.3 ,6286.6 ,10.0 ,4.24 ,1349.87 ,9.0 ,2.7 ,242.73 ,9.0 ,5.64 ,951.72 ,8.0 ,5.3 ,2352.87 ,6.0 ,2.65 ,9437.76 ,6.0 ,4.67 ,4690.48 }; double earthL2[]={20.0 ,52919.0 ,0.0 ,0.0 ,8720.0 ,1.0721 ,6283.0758 ,309.0 ,0.867 ,12566.152 ,27.0 ,0.05 ,3.52 ,16.0 ,5.19 ,26.3 ,16.0 ,3.68 ,155.42 ,10.0 ,0.76 ,18849.23 ,9.0 ,2.06 ,77713.77 ,7.0 ,0.83 ,775.52 ,5.0 ,4.66 ,1577.34 ,4.0 ,1.03 ,7.11 ,4.0 ,3.44 ,5573.14 ,3.0 ,5.14 ,796.3 ,3.0 ,6.05 ,5507.55 ,3.0 ,1.19 ,242.73 ,3.0 ,6.12 ,529.69 ,3.0 ,0.31 ,398.15 ,3.0 ,2.28 ,553.57 ,2.0 ,4.38 ,5223.69 ,2.0 ,3.75 ,0.98 }; double earthL3[]={7.0 ,289.0 ,5.844 ,6283.076 ,35.0 ,0.0 ,0.0 ,17.0 ,5.49 ,12566.15 ,3.0 ,5.2 ,155.42 ,1.0 ,4.72 ,3.52 ,1.0 ,5.3 ,18849.23 ,1.0 ,5.97 ,242.73 }; double earthL4[]={3.0 ,114.0 ,3.142 ,0.0 ,8.0 ,4.13 ,6283.08 ,1.0 ,3.84 ,12566.15 }; double earthL5[]={1.0 ,1.0 ,3.14 ,0.0 }; double earthB0[]={5.0 ,280.0 ,3.199 ,84334.662 ,102.0 ,5.422 ,5507.553 ,80.0 ,3.88 ,5223.69 ,44.0 ,3.7 ,2352.87 ,32.0 ,4 ,1577.34 }; double earthB1[]={2.0 ,9.0 ,3.9 ,5507.55 ,6.0 ,1.73 ,5223.69 }; double earthR0[]={40.0 ,100013989.0 ,0.0 ,0.0 ,1670700.0 ,3.0984635 ,6283.07585 ,13956.0 ,3.05525 ,12566.1517 ,3084.0 ,5.1985 ,77713.7715 ,1628.0 ,1.1739 ,5753.3849 ,1576.0 ,2.8469 ,7860.4194 ,925.0 ,5.453 ,11506.77 ,542.0 ,4.564 ,3930.21 ,472.0 ,3.661 ,5884.927 ,346.0 ,0.964 ,5507.553 ,329.0 ,5.9 ,5223.694 ,307.0 ,0.299 ,5573.143 ,243.0 ,4.273 ,11790.629 ,212.0 ,5.847 ,1577.344 ,186.0 ,5.022 ,10977.079 ,175.0 ,3.012 ,18849.228 ,110.0 ,5.055 ,5486.778 ,98.0 ,0.89 ,6069.78 ,86.0 ,5.69 ,15720.84 ,86.0 ,1.27 ,161000.69 ,65.0 ,0.27 ,17260.15 ,63.0 ,0.92 ,529.69 ,57.0 ,2.01 ,83996.85 ,56.0 ,5.24 ,71430.7 ,49.0 ,3.25 ,2544.31 ,47.0 ,2.58 ,775.52 ,45.0 ,5.54 ,9437.76 ,43.0 ,6.01 ,6275.96 ,39.0 ,5.36 ,4694 ,38.0 ,2.39 ,8827.39 ,37.0 ,0.83 ,19651.05 ,37.0 ,4.9 ,12139.55 ,36.0 ,1.67 ,12036.46 ,35.0 ,1.84 ,2942.46 ,33.0 ,0.24 ,7084.9 ,32.0 ,0.18 ,5088.63 ,32.0 ,1.78 ,398.15 ,28.0 ,1.21 ,6286.6 ,28.0 ,1.9 ,6279.55 ,26.0 ,4.59 ,10447.39 }; double earthR1[]={10.0 ,103019.0 ,1.10749 ,6283.07585 ,1721.0 ,1.0644 ,12566.1517 ,702.0 ,3.142 ,0.0 ,32.0 ,1.02 ,18849.23 ,31.0 ,2.84 ,5507.55 ,25.0 ,1.32 ,5223.69 ,18.0 ,1.42 ,1577.34 ,10.0 ,5.91 ,10977.08 ,9.0 ,1.42 ,6275.96 ,9.0 ,0.27 ,5486.78 }; double earthR2[]={6.0 ,4359.0 ,5.7846 ,6283.0758 ,124.0 ,5.579 ,12566.152 ,12.0 ,3.14 ,0.0 ,9.0 ,3.63 ,77713.77 ,6.0 ,1.87 ,5573.14 ,3.0 ,5.47 ,18849.23 }; double earthR3[]={2.0 ,145.0 ,4.273 ,6283.076 ,7.0 ,3.92 ,12566.15 }; double earthR4[]={1.0 ,4.0 ,2.56 ,6283.08 }; double marsL0[]={69.0 ,620347712.0 ,0.0 ,0.0 ,18656368.0 ,5.050371 ,3340.6124267 ,1108217.0 ,5.4009984 ,6681.2248534 ,91798.0 ,5.75479 ,10021.83728 ,27745.0 ,5.9705 ,3.52312 ,12316.0 ,0.84956 ,2810.92146 ,10610.0 ,2.93959 ,2281.2305 ,8927.0 ,4.157 ,0.0173 ,8716.0 ,6.1101 ,13362.4497 ,7775.0 ,3.3397 ,5621.8429 ,6798.0 ,0.3646 ,398.149 ,4161.0 ,0.2281 ,2942.4634 ,3575.0 ,1.6619 ,2544.3144 ,3075.0 ,0.857 ,191.4483 ,2938.0 ,6.0789 ,0.0673 ,2628.0 ,0.6481 ,3337.0893 ,2580.0 ,0.03 ,3344.1355 ,2389.0 ,5.039 ,796.298 ,1799.0 ,0.6563 ,529.691 ,1546.0 ,2.9158 ,1751.5395 ,1528.0 ,1.1498 ,6151.5339 ,1286.0 ,3.068 ,2146.1654 ,1264.0 ,3.6228 ,5092.152 ,1025.0 ,3.6933 ,8962.4553 ,892.0 ,0.183 ,16703.062 ,859.0 ,2.401 ,2914.014 ,833.0 ,4.495 ,3340.63 ,833.0 ,2.464 ,3340.595 ,749.0 ,3.822 ,155.42 ,724.0 ,0.675 ,3738.761 ,713.0 ,3.663 ,1059.382 ,655.0 ,0.489 ,3127.313 ,636.0 ,2.922 ,8432.764 ,553.0 ,4.475 ,1748.016 ,550.0 ,3.81 ,0.98 ,472.0 ,3.625 ,1194.447 ,426.0 ,0.554 ,6283.076 ,415.0 ,0.497 ,213.299 ,312.0 ,0.999 ,6677.702 ,307.0 ,0.381 ,6684.748 ,302.0 ,4.486 ,3532.061 ,299.0 ,2.783 ,6254.627 ,293.0 ,4.221 ,20.775 ,284.0 ,5.769 ,3149.164 ,281.0 ,5.882 ,1349.867 ,274.0 ,0.542 ,3340.545 ,274.0 ,0.134 ,3340.68 ,239.0 ,5.372 ,4136.91 ,236.0 ,5.755 ,3333.499 ,231.0 ,1.282 ,3870.303 ,221.0 ,3.505 ,382.897 ,204.0 ,2.821 ,1221.849 ,193.0 ,3.357 ,3.59 ,189.0 ,1.491 ,9492.146 ,179.0 ,1.006 ,951.718 ,174.0 ,2.414 ,553.569 ,172.0 ,0.439 ,5486.778 ,160.0 ,3.949 ,4562.461 ,144.0 ,1.419 ,135.065 ,140.0 ,3.326 ,2700.715 ,138.0 ,4.301 ,7.114 ,131.0 ,4.045 ,12303.068 ,128.0 ,2.208 ,1592.596 ,128.0 ,1.807 ,5088.629 ,117.0 ,3.128 ,7903.073 ,113.0 ,3.701 ,1589.073 ,110.0 ,1.052 ,242.729 ,105.0 ,0.785 ,8827.39 ,100.0 ,3.243 ,11773.377 }; double marsL1[]={46.0 ,334085627474.0 ,0.0 ,0.0 ,1458227.0 ,3.6042605 ,3340.6124267 ,164901.0 ,3.926313 ,6681.224853 ,19963.0 ,4.26594 ,10021.83728 ,3452.0 ,4.7321 ,3.5231 ,2485.0 ,4.6128 ,13362.4497 ,842.0 ,4.459 ,2281.23 ,538.0 ,5.016 ,398.149 ,521.0 ,4.994 ,3344.136 ,433.0 ,2.561 ,191.448 ,430.0 ,5.316 ,155.42 ,382.0 ,3.539 ,796.298 ,314.0 ,4.963 ,16703.062 ,283.0 ,3.16 ,2544.314 ,206.0 ,4.569 ,2146.165 ,169.0 ,1.329 ,3337.089 ,158.0 ,4.185 ,1751.54 ,134.0 ,2.233 ,0.98 ,134.0 ,5.974 ,1748.016 ,118.0 ,6.024 ,6151.534 ,117.0 ,2.213 ,1059.382 ,114.0 ,2.129 ,1194.447 ,114.0 ,5.428 ,3738.761 ,91.0 ,1.1 ,1349.87 ,85.0 ,3.91 ,553.57 ,83.0 ,5.3 ,6684.75 ,81.0 ,4.43 ,529.69 ,80.0 ,2.25 ,8962.46 ,73.0 ,2.5 ,951.72 ,73.0 ,5.84 ,242.73 ,71.0 ,3.86 ,2914.01 ,68.0 ,5.02 ,382.9 ,65.0 ,1.02 ,3340.6 ,65.0 ,3.05 ,3340.63 ,62.0 ,4.15 ,3149.16 ,57.0 ,3.89 ,4136.91 ,48.0 ,4.87 ,213.3 ,48.0 ,1.18 ,3333.5 ,47.0 ,1.31 ,3185.19 ,41.0 ,0.71 ,1592.6 ,40.0 ,2.73 ,7.11 ,40.0 ,5.32 ,20043.67 ,33.0 ,5.41 ,6283.08 ,28.0 ,0.05 ,9492.15 ,27.0 ,3.89 ,1221.85 ,27.0 ,5.11 ,2700.72 }; double marsL2[]={33.0 ,58016.0 ,2.04979 ,3340.61243 ,54188.0 ,0.0 ,0.0 ,13908.0 ,2.45742 ,6681.22485 ,2465.0 ,2.8 ,10021.8373 ,398.0 ,3.141 ,13362.45 ,222.0 ,3.194 ,3.523 ,121.0 ,0.543 ,155.42 ,62.0 ,3.49 ,16703.06 ,54.0 ,3.54 ,3344.14 ,34.0 ,6 ,2281.23 ,32.0 ,4.14 ,191.45 ,30.0 ,2 ,796.3 ,23.0 ,4.33 ,242.73 ,22.0 ,3.45 ,398.15 ,20.0 ,5.42 ,553.57 ,16.0 ,0.66 ,0.98 ,16.0 ,6.11 ,2146.17 ,16.0 ,1.22 ,1748.02 ,15.0 ,6.1 ,3185.19 ,14.0 ,4.02 ,951.72 ,14.0 ,2.62 ,1349.87 ,13.0 ,0.6 ,1194.45 ,12.0 ,3.86 ,6684.75 ,11.0 ,4.72 ,2544.31 ,10.0 ,0.25 ,382.9 ,9.0 ,0.68 ,1059.38 ,9.0 ,3.83 ,20043.67 ,9.0 ,3.88 ,3738.76 ,8.0 ,5.46 ,1751.54 ,7.0 ,2.58 ,3149.16 ,7.0 ,2.38 ,4136.91 ,6.0 ,5.48 ,1592.6 ,6.0 ,2.34 ,3097.88 }; double marsL3[]={12.0 ,1482.0 ,0.4443 ,3340.6124 ,662.0 ,0.885 ,6681.225 ,188.0 ,1.288 ,10021.837 ,41.0 ,1.65 ,13362.45 ,26.0 ,0.0 ,0.0 ,23.0 ,2.05 ,155.42 ,10.0 ,1.58 ,3.52 ,8.0 ,2 ,16703.06 ,5.0 ,2.82 ,242.73 ,4.0 ,2.02 ,3344.14 ,3.0 ,4.59 ,3185.19 ,3.0 ,0.65 ,553.57 }; double marsL4[]={8.0 ,114.0 ,3.1416 ,0.0 ,29.0 ,5.64 ,6681.22 ,24.0 ,5.14 ,3340.61 ,11.0 ,6.03 ,10021.84 ,3.0 ,0.13 ,13362.45 ,3.0 ,3.56 ,155.42 ,1.0 ,0.49 ,16703.06 ,1.0 ,1.32 ,242.73 }; double marsL5[]={2.0 ,1.0 ,3.14 ,0.0 ,1.0 ,4.04 ,6681.22 }; double marsB0[]={16.0 ,3197135.0 ,3.7683204 ,3340.6124267 ,298033.0 ,4.10617 ,6681.224853 ,289105.0 ,0.0 ,0.0 ,31366.0 ,4.44651 ,10021.83728 ,3484.0 ,4.7881 ,13362.4497 ,443.0 ,5.026 ,3344.136 ,443.0 ,5.652 ,3337.089 ,399.0 ,5.131 ,16703.062 ,293.0 ,3.793 ,2281.23 ,182.0 ,6.136 ,6151.534 ,163.0 ,4.264 ,529.691 ,160.0 ,2.232 ,1059.382 ,149.0 ,2.165 ,5621.843 ,143.0 ,1.182 ,3340.595 ,143.0 ,3.213 ,3340.63 ,139.0 ,2.418 ,8962.455 }; double marsB1[]={9.0 ,350069.0 ,5.368478 ,3340.612427 ,14116.0 ,3.14159 ,0.0 ,9671.0 ,5.4788 ,6681.2249 ,1472.0 ,3.2021 ,10021.8373 ,426.0 ,3.408 ,13362.45 ,102.0 ,0.776 ,3337.089 ,79.0 ,3.72 ,16703.06 ,33.0 ,3.46 ,5621.84 ,26.0 ,2.48 ,2281.23 }; double marsB2[]={7.0 ,16727.0 ,0.60221 ,3340.61243 ,4987.0 ,3.1416 ,0.0 ,302.0 ,3.559 ,6681.225 ,26.0 ,1.9 ,13362.45 ,21.0 ,0.92 ,10021.84 ,12.0 ,2.24 ,3337.09 ,8.0 ,2.25 ,16703.06 }; double marsB3[]={4.0 ,607.0 ,1.981 ,3340.612 ,43.0 ,0.0 ,0.0 ,14.0 ,1.8 ,6681.22 ,3.0 ,3.45 ,10021.84 }; double marsB4[]={3.0 ,13.0 ,0.0 ,0.0 ,11.0 ,3.46 ,3340.61 ,1.0 ,0.5 ,6681.22 }; double marsR0[]={45.0 ,153033488.0 ,0.0 ,0.0 ,14184953.0 ,3.47971284 ,3340.6124267 ,660776.0 ,3.817834 ,6681.224853 ,46179.0 ,4.15595 ,10021.83728 ,8110.0 ,5.5596 ,2810.9215 ,7485.0 ,1.7724 ,5621.8429 ,5523.0 ,1.3644 ,2281.2305 ,3825.0 ,4.4941 ,13362.4497 ,2484.0 ,4.9255 ,2942.4634 ,2307.0 ,0.0908 ,2544.3144 ,1999.0 ,5.3606 ,3337.0893 ,1960.0 ,4.7425 ,3344.1355 ,1167.0 ,2.1126 ,5092.152 ,1103.0 ,5.0091 ,398.149 ,992.0 ,5.839 ,6151.534 ,899.0 ,4.408 ,529.691 ,807.0 ,2.102 ,1059.382 ,798.0 ,3.448 ,796.298 ,741.0 ,1.499 ,2146.165 ,726.0 ,1.245 ,8432.764 ,692.0 ,2.134 ,8962.455 ,633.0 ,0.894 ,3340.595 ,633.0 ,2.924 ,3340.63 ,630.0 ,1.287 ,1751.54 ,574.0 ,0.829 ,2914.014 ,526.0 ,5.383 ,3738.761 ,473.0 ,5.199 ,3127.313 ,348.0 ,4.832 ,16703.062 ,284.0 ,2.907 ,3532.061 ,280.0 ,5.257 ,6283.076 ,276.0 ,1.218 ,6254.627 ,275.0 ,2.908 ,1748.016 ,270.0 ,3.764 ,5884.927 ,239.0 ,2.037 ,1194.447 ,234.0 ,5.105 ,5486.778 ,228.0 ,3.255 ,6872.673 ,223.0 ,4.199 ,3149.164 ,219.0 ,5.583 ,191.448 ,208.0 ,5.255 ,3340.545 ,208.0 ,4.846 ,3340.68 ,186.0 ,5.699 ,6677.702 ,183.0 ,5.081 ,6684.748 ,179.0 ,4.184 ,3333.499 ,176.0 ,5.953 ,3870.303 ,164.0 ,3.799 ,4136.91 }; double marsR1[]={27.0 ,1107433.0 ,2.0325052 ,3340.6124267 ,103176.0 ,2.370718 ,6681.224853 ,12877.0 ,0.0 ,0.0 ,10816.0 ,2.70888 ,10021.83728 ,1195.0 ,3.047 ,13362.4497 ,439.0 ,2.888 ,2281.23 ,396.0 ,3.423 ,3344.136 ,183.0 ,1.584 ,2544.314 ,136.0 ,3.385 ,16703.062 ,128.0 ,6.043 ,3337.089 ,128.0 ,0.63 ,1059.382 ,127.0 ,1.954 ,796.298 ,118.0 ,2.998 ,2146.165 ,88.0 ,3.42 ,398.15 ,83.0 ,3.86 ,3738.76 ,76.0 ,4.45 ,6151.53 ,72.0 ,2.76 ,529.69 ,67.0 ,2.55 ,1751.54 ,66.0 ,4.41 ,1748.02 ,58.0 ,0.54 ,1194.45 ,54.0 ,0.68 ,8962.46 ,51.0 ,3.73 ,6684.75 ,49.0 ,5.73 ,3340.6 ,49.0 ,1.48 ,3340.63 ,48.0 ,2.58 ,3149.16 ,48.0 ,2.29 ,2914.01 ,39.0 ,2.32 ,4136.91 }; double marsR2[]={11.0 ,44242.0 ,0.47931 ,3340.61243 ,8138.0 ,0.87 ,6681.2249 ,1275.0 ,1.2259 ,10021.8373 ,187.0 ,1.573 ,13362.45 ,52.0 ,3.14 ,0.0 ,41.0 ,1.97 ,3344.14 ,27.0 ,1.92 ,16703.06 ,18.0 ,4.43 ,2281.23 ,12.0 ,4.53 ,3185.19 ,10.0 ,5.39 ,1059.38 ,10.0 ,0.42 ,796.3 }; double marsR3[]={6.0 ,1113.0 ,5.1499 ,3340.6124 ,424.0 ,5.613 ,6681.225 ,100.0 ,5.997 ,10021.837 ,20.0 ,0.08 ,13362.45 ,5.0 ,3.14 ,0.0 ,3.0 ,0.43 ,16703.06 }; double marsR4[]={4.0 ,20.0 ,3.58 ,3340.61 ,16.0 ,4.05 ,6681.22 ,6.0 ,4.46 ,10021.84 ,2.0 ,4.84 ,13362.45 }; double jupiterL0[]={64.0 ,59954691.0 ,0.0 ,0.0 ,9695899.0 ,5.0619179 ,529.6909651 ,573610.0 ,1.444062 ,7.113547 ,306389.0 ,5.417347 ,1059.38193 ,97178.0 ,4.14265 ,632.78374 ,72903.0 ,3.64043 ,522.57742 ,64264.0 ,3.41145 ,103.09277 ,39806.0 ,2.29377 ,419.48464 ,38858.0 ,1.27232 ,316.39187 ,27965.0 ,1.78455 ,536.80451 ,13590.0 ,5.77481 ,1589.0729 ,8769.0 ,3.63 ,949.1756 ,8246.0 ,3.5823 ,206.1855 ,7368.0 ,5.081 ,735.8765 ,6263.0 ,0.025 ,213.2991 ,6114.0 ,4.5132 ,1162.4747 ,5305.0 ,4.1863 ,1052.2684 ,5305.0 ,1.3067 ,14.2271 ,4905.0 ,1.3208 ,110.2063 ,4647.0 ,4.6996 ,3.9322 ,3045.0 ,4.3168 ,426.5982 ,2610.0 ,1.5667 ,846.0828 ,2028.0 ,1.0638 ,3.1814 ,1921.0 ,0.9717 ,639.8973 ,1765.0 ,2.1415 ,1066.4955 ,1723.0 ,3.8804 ,1265.5675 ,1633.0 ,3.582 ,515.4639 ,1432.0 ,4.2968 ,625.6702 ,973.0 ,4.098 ,95.979 ,884.0 ,2.437 ,412.371 ,733.0 ,6.085 ,838.969 ,731.0 ,3.806 ,1581.959 ,709.0 ,1.293 ,742.99 ,692.0 ,6.134 ,2118.764 ,614.0 ,4.109 ,1478.867 ,582.0 ,4.54 ,309.278 ,495.0 ,3.756 ,323.505 ,441.0 ,2.958 ,454.909 ,417.0 ,1.036 ,2.448 ,390.0 ,4.897 ,1692.166 ,376.0 ,4.703 ,1368.66 ,341.0 ,5.715 ,533.623 ,330.0 ,4.74 ,0.048 ,262.0 ,1.877 ,0.963 ,261.0 ,0.82 ,380.128 ,257.0 ,3.724 ,199.072 ,244.0 ,5.22 ,728.763 ,235.0 ,1.227 ,909.819 ,220.0 ,1.651 ,543.918 ,207.0 ,1.855 ,525.759 ,202.0 ,1.807 ,1375.774 ,197.0 ,5.293 ,1155.361 ,175.0 ,3.73 ,942.062 ,175.0 ,3.226 ,1898.351 ,175.0 ,5.91 ,956.289 ,158.0 ,4.365 ,1795.258 ,151.0 ,3.906 ,74.782 ,149.0 ,4.377 ,1685.052 ,141.0 ,3.136 ,491.558 ,138.0 ,1.318 ,1169.588 ,131.0 ,4.169 ,1045.155 ,117.0 ,2.5 ,1596.186 ,117.0 ,3.389 ,0.521 ,106.0 ,4.554 ,526.51 }; double jupiterL1[]={61.0 ,52993480757.0 ,0.0 ,0.0 ,489741.0 ,4.220667 ,529.690965 ,228919.0 ,6.026475 ,7.113547 ,27655.0 ,4.57266 ,1059.38193 ,20721.0 ,5.45939 ,522.57742 ,12106.0 ,0.16986 ,536.80451 ,6068.0 ,4.4242 ,103.0928 ,5434.0 ,3.9848 ,419.4846 ,4238.0 ,5.8901 ,14.2271 ,2212.0 ,5.2677 ,206.1855 ,1746.0 ,4.9267 ,1589.0729 ,1296.0 ,5.5513 ,3.1814 ,1173.0 ,5.8565 ,1052.2684 ,1163.0 ,0.5145 ,3.9322 ,1099.0 ,5.307 ,515.4639 ,1007.0 ,0.4648 ,735.8765 ,1004.0 ,3.1504 ,426.5982 ,848.0 ,5.758 ,110.206 ,827.0 ,4.803 ,213.299 ,816.0 ,0.586 ,1066.495 ,725.0 ,5.518 ,639.897 ,568.0 ,5.989 ,625.67 ,474.0 ,4.132 ,412.371 ,413.0 ,5.737 ,95.979 ,345.0 ,4.242 ,632.784 ,336.0 ,3.732 ,1162.475 ,234.0 ,4.035 ,949.176 ,234.0 ,6.243 ,309.278 ,199.0 ,1.505 ,838.969 ,195.0 ,2.219 ,323.505 ,187.0 ,6.086 ,742.99 ,184.0 ,6.28 ,543.918 ,171.0 ,5.417 ,199.072 ,131.0 ,0.626 ,728.763 ,115.0 ,0.68 ,846.083 ,115.0 ,5.286 ,2118.764 ,108.0 ,4.493 ,956.289 ,80.0 ,5.82 ,1045.15 ,72.0 ,5.34 ,942.06 ,70.0 ,5.97 ,532.87 ,67.0 ,5.73 ,21.34 ,66.0 ,0.13 ,526.51 ,65.0 ,6.09 ,1581.96 ,59.0 ,0.59 ,1155.36 ,58.0 ,0.99 ,1596.19 ,57.0 ,5.97 ,1169.59 ,57.0 ,1.41 ,533.62 ,55.0 ,5.43 ,10.29 ,52.0 ,5.73 ,117.32 ,52.0 ,0.23 ,1368.66 ,50.0 ,6.08 ,525.76 ,47.0 ,3.63 ,1478.87 ,47.0 ,0.51 ,1265.57 ,40.0 ,4.16 ,1692.17 ,34.0 ,0.1 ,302.16 ,33.0 ,5.04 ,220.41 ,32.0 ,5.37 ,508.35 ,29.0 ,5.42 ,1272.68 ,29.0 ,3.36 ,4.67 ,29.0 ,0.76 ,88.87 ,25.0 ,1.61 ,831.86 }; double jupiterL2[]={57.0 ,47234.0 ,4.32148 ,7.11355 ,38966.0 ,0.0 ,0.0 ,30629.0 ,2.93021 ,529.69097 ,3189.0 ,1.055 ,522.5774 ,2729.0 ,4.8455 ,536.8045 ,2723.0 ,3.4141 ,1059.3819 ,1721.0 ,4.1873 ,14.2271 ,383.0 ,5.768 ,419.485 ,378.0 ,0.76 ,515.464 ,367.0 ,6.055 ,103.093 ,337.0 ,3.786 ,3.181 ,308.0 ,0.694 ,206.186 ,218.0 ,3.814 ,1589.073 ,199.0 ,5.34 ,1066.495 ,197.0 ,2.484 ,3.932 ,156.0 ,1.406 ,1052.268 ,146.0 ,3.814 ,639.897 ,142.0 ,1.634 ,426.598 ,130.0 ,5.837 ,412.371 ,117.0 ,1.414 ,625.67 ,97.0 ,4.03 ,110.21 ,91.0 ,1.11 ,95.98 ,87.0 ,2.52 ,632.78 ,79.0 ,4.64 ,543.92 ,72.0 ,2.22 ,735.88 ,58.0 ,0.83 ,199.07 ,57.0 ,3.12 ,213.3 ,49.0 ,1.67 ,309.28 ,40.0 ,4.02 ,21.34 ,40.0 ,0.62 ,323.51 ,36.0 ,2.33 ,728.76 ,29.0 ,3.61 ,10.29 ,28.0 ,3.24 ,838.97 ,26.0 ,4.5 ,742.99 ,26.0 ,2.51 ,1162.47 ,25.0 ,1.22 ,1045.15 ,24.0 ,3.01 ,956.29 ,19.0 ,4.29 ,532.87 ,18.0 ,0.81 ,508.35 ,17.0 ,4.2 ,2118.76 ,17.0 ,1.83 ,526.51 ,15.0 ,5.81 ,1596.19 ,15.0 ,0.68 ,942.06 ,15.0 ,4 ,117.32 ,14.0 ,5.95 ,316.39 ,14.0 ,1.8 ,302.16 ,13.0 ,2.52 ,88.87 ,13.0 ,4.37 ,1169.59 ,11.0 ,4.44 ,525.76 ,10.0 ,1.72 ,1581.96 ,9.0 ,2.18 ,1155.36 ,9.0 ,3.29 ,220.41 ,9.0 ,3.32 ,831.86 ,8.0 ,5.76 ,846.08 ,8.0 ,2.71 ,533.62 ,7.0 ,2.18 ,1265.57 ,6.0 ,0.5 ,949.18 }; double jupiterL3[]={39.0 ,6502.0 ,2.5986 ,7.1135 ,1357.0 ,1.3464 ,529.691 ,471.0 ,2.475 ,14.227 ,417.0 ,3.245 ,536.805 ,353.0 ,2.974 ,522.577 ,155.0 ,2.076 ,1059.382 ,87.0 ,2.51 ,515.46 ,44.0 ,0.0 ,0.0 ,34.0 ,3.83 ,1066.5 ,28.0 ,2.45 ,206.19 ,24.0 ,1.28 ,412.37 ,23.0 ,2.98 ,543.92 ,20.0 ,2.1 ,639.9 ,20.0 ,1.4 ,419.48 ,19.0 ,1.59 ,103.09 ,17.0 ,2.3 ,21.34 ,17.0 ,2.6 ,1589.07 ,16.0 ,3.15 ,625.67 ,16.0 ,3.36 ,1052.27 ,13.0 ,2.76 ,95.98 ,13.0 ,2.54 ,199.07 ,13.0 ,6.27 ,426.6 ,9.0 ,1.76 ,10.29 ,9.0 ,2.27 ,110.21 ,7.0 ,3.43 ,309.28 ,7.0 ,4.04 ,728.76 ,6.0 ,2.52 ,508.35 ,5.0 ,2.91 ,1045.15 ,5.0 ,5.25 ,323.51 ,4.0 ,4.3 ,88.87 ,4.0 ,3.52 ,302.16 ,4.0 ,4.09 ,735.88 ,3.0 ,1.43 ,956.29 ,3.0 ,4.36 ,1596.19 ,3.0 ,1.25 ,213.3 ,3.0 ,5.02 ,838.97 ,3.0 ,2.24 ,117.32 ,2.0 ,2.9 ,742.99 ,2.0 ,2.36 ,942.06 }; double jupiterL4[]={19.0 ,669.0 ,0.853 ,7.114 ,114.0 ,3.142 ,0.0 ,100.0 ,0.743 ,14.227 ,50.0 ,1.65 ,536.8 ,44.0 ,5.82 ,529.69 ,32.0 ,4.86 ,522.58 ,15.0 ,4.29 ,515.46 ,9.0 ,0.71 ,1059.38 ,5.0 ,1.3 ,543.92 ,4.0 ,2.32 ,1066.5 ,4.0 ,0.48 ,21.34 ,3.0 ,3 ,412.37 ,2.0 ,0.4 ,639.9 ,2.0 ,4.26 ,199.07 ,2.0 ,4.91 ,625.67 ,2.0 ,4.26 ,206.19 ,1.0 ,5.26 ,1052.27 ,1.0 ,4.72 ,95.98 ,1.0 ,1.29 ,1589.07 }; double jupiterL5[]={5.0 ,50.0 ,5.26 ,7.11 ,16.0 ,5.25 ,14.23 ,4.0 ,0.01 ,536.8 ,2.0 ,1.1 ,522.58 ,1.0 ,3.14 ,0.0 }; double jupiterB0[]={26.0 ,2268616.0 ,3.5585261 ,529.6909651 ,110090.0 ,0.0 ,0.0 ,109972.0 ,3.908093 ,1059.38193 ,8101.0 ,3.6051 ,522.5774 ,6438.0 ,0.3063 ,536.8045 ,6044.0 ,4.2588 ,1589.0729 ,1107.0 ,2.9853 ,1162.4747 ,944.0 ,1.675 ,426.598 ,942.0 ,2.936 ,1052.268 ,894.0 ,1.754 ,7.114 ,836.0 ,5.179 ,103.093 ,767.0 ,2.155 ,632.784 ,684.0 ,3.678 ,213.299 ,629.0 ,0.643 ,1066.495 ,559.0 ,0.014 ,846.083 ,532.0 ,2.703 ,110.206 ,464.0 ,1.173 ,949.176 ,431.0 ,2.608 ,419.485 ,351.0 ,4.611 ,2118.764 ,132.0 ,4.778 ,742.99 ,123.0 ,3.35 ,1692.166 ,116.0 ,1.387 ,323.505 ,115.0 ,5.049 ,316.392 ,104.0 ,3.701 ,515.464 ,103.0 ,2.319 ,1478.867 ,102.0 ,3.153 ,1581.959 }; double jupiterB1[]={22.0 ,177352.0 ,5.701665 ,529.690965 ,3230.0 ,5.7794 ,1059.3819 ,3081.0 ,5.4746 ,522.5774 ,2212.0 ,4.7348 ,536.8045 ,1694.0 ,3.1416 ,0.0 ,346.0 ,4.746 ,1052.268 ,234.0 ,5.189 ,1066.495 ,196.0 ,6.186 ,7.114 ,150.0 ,3.927 ,1589.073 ,114.0 ,3.439 ,632.784 ,97.0 ,2.91 ,949.18 ,82.0 ,5.08 ,1162.47 ,77.0 ,2.51 ,103.09 ,77.0 ,0.61 ,419.48 ,74.0 ,5.5 ,515.46 ,61.0 ,5.45 ,213.3 ,50.0 ,3.95 ,735.88 ,46.0 ,0.54 ,110.21 ,45.0 ,1.9 ,846.08 ,37.0 ,4.7 ,543.92 ,36.0 ,6.11 ,316.39 ,32.0 ,4.92 ,1581.96 }; double jupiterB2[]={14.0 ,8094.0 ,1.4632 ,529.691 ,813.0 ,3.1416 ,0.0 ,742.0 ,0.957 ,522.577 ,399.0 ,2.899 ,536.805 ,342.0 ,1.447 ,1059.382 ,74.0 ,0.41 ,1052.27 ,46.0 ,3.48 ,1066.5 ,30.0 ,1.93 ,1589.07 ,29.0 ,0.99 ,515.46 ,23.0 ,4.27 ,7.11 ,14.0 ,2.92 ,543.92 ,12.0 ,5.22 ,632.78 ,11.0 ,4.88 ,949.18 ,6.0 ,6.21 ,1045.15 }; double jupiterB3[]={9.0 ,252.0 ,3.381 ,529.691 ,122.0 ,2.733 ,522.577 ,49.0 ,1.04 ,536.8 ,11.0 ,2.31 ,1052.27 ,8.0 ,2.77 ,515.46 ,7.0 ,4.25 ,1059.38 ,6.0 ,1.78 ,1066.5 ,4.0 ,1.13 ,543.92 ,3.0 ,3.14 ,0.0 }; double jupiterB4[]={6.0 ,15.0 ,4.53 ,522.58 ,5.0 ,4.47 ,529.69 ,4.0 ,5.44 ,536.8 ,3.0 ,0.0 ,0.0 ,2.0 ,4.52 ,515.46 ,1.0 ,4.2 ,1052.27 }; double jupiterB5[]={1.0 ,1.0 ,0.09 ,522.58 }; double jupiterR0[]={46.0 ,520887429.0 ,0.0 ,0.0 ,25209327.0 ,3.4910864 ,529.69096509 ,610600.0 ,3.841154 ,1059.38193 ,282029.0 ,2.574199 ,632.783739 ,187647.0 ,2.075904 ,522.577418 ,86793.0 ,0.71001 ,419.48464 ,72063.0 ,0.21466 ,536.80451 ,65517.0 ,5.97996 ,316.39187 ,30135.0 ,2.16132 ,949.17561 ,29135.0 ,1.67759 ,103.09277 ,23947.0 ,0.27458 ,7.11355 ,23453.0 ,3.54023 ,735.87651 ,22284.0 ,4.19363 ,1589.0729 ,13033.0 ,2.96043 ,1162.4747 ,12749.0 ,2.7155 ,1052.26838 ,9703.0 ,1.9067 ,206.1855 ,9161.0 ,4.4135 ,213.2991 ,7895.0 ,2.4791 ,426.5982 ,7058.0 ,2.1818 ,1265.5675 ,6138.0 ,6.2642 ,846.0828 ,5477.0 ,5.6573 ,639.8973 ,4170.0 ,2.0161 ,515.4639 ,4137.0 ,2.7222 ,625.6702 ,3503.0 ,0.5653 ,1066.4955 ,2617.0 ,2.0099 ,1581.9593 ,2500.0 ,4.5518 ,838.9693 ,2128.0 ,6.1275 ,742.9901 ,1912.0 ,0.8562 ,412.3711 ,1611.0 ,3.0887 ,1368.6603 ,1479.0 ,2.6803 ,1478.8666 ,1231.0 ,1.8904 ,323.5054 ,1217.0 ,1.8017 ,110.2063 ,1015.0 ,1.3867 ,454.9094 ,999.0 ,2.872 ,309.278 ,961.0 ,4.549 ,2118.764 ,886.0 ,4.148 ,533.623 ,821.0 ,1.593 ,1898.351 ,812.0 ,5.941 ,909.819 ,777.0 ,3.677 ,728.763 ,727.0 ,3.988 ,1155.361 ,655.0 ,2.791 ,1685.052 ,654.0 ,3.382 ,1692.166 ,621.0 ,4.823 ,956.289 ,615.0 ,2.276 ,942.062 ,562.0 ,0.081 ,543.918 ,542.0 ,0.284 ,525.759 }; double jupiterR1[]={43.0 ,1271802.0 ,2.6493751 ,529.6909651 ,61662.0 ,3.00076 ,1059.38193 ,53444.0 ,3.89718 ,522.57742 ,41390.0 ,0.0 ,0.0 ,31185.0 ,4.88277 ,536.80451 ,11847.0 ,2.4133 ,419.48464 ,9166.0 ,4.7598 ,7.1135 ,3404.0 ,3.3469 ,1589.0729 ,3203.0 ,5.2108 ,735.8765 ,3176.0 ,2.793 ,103.0928 ,2806.0 ,3.7422 ,515.4639 ,2677.0 ,4.3305 ,1052.2684 ,2600.0 ,3.6344 ,206.1855 ,2412.0 ,4.4695 ,426.5982 ,2101.0 ,3.9276 ,639.8973 ,1646.0 ,5.3095 ,1066.4955 ,1641.0 ,4.4163 ,625.6702 ,1050.0 ,3.1611 ,213.2991 ,1025.0 ,2.5543 ,412.3711 ,806.0 ,2.678 ,632.784 ,741.0 ,2.171 ,1162.475 ,677.0 ,6.25 ,838.969 ,567.0 ,4.577 ,742.99 ,485.0 ,2.469 ,949.176 ,469.0 ,4.71 ,543.918 ,445.0 ,0.403 ,323.505 ,416.0 ,5.368 ,728.763 ,402.0 ,4.605 ,309.278 ,347.0 ,4.681 ,14.227 ,338.0 ,3.168 ,956.289 ,261.0 ,5.343 ,846.083 ,247.0 ,3.923 ,942.062 ,220.0 ,4.842 ,1368.66 ,203.0 ,5.6 ,1155.361 ,200.0 ,4.439 ,1045.155 ,197.0 ,3.706 ,2118.764 ,196.0 ,3.759 ,199.072 ,184.0 ,4.265 ,95.979 ,180.0 ,4.402 ,532.872 ,170.0 ,4.846 ,526.51 ,146.0 ,6.13 ,533.623 ,133.0 ,1.322 ,110.206 ,132.0 ,4.512 ,525.759 }; double jupiterR2[]={36.0 ,79645.0 ,1.35866 ,529.69097 ,8252.0 ,5.7777 ,522.5774 ,7030.0 ,3.2748 ,536.8045 ,5314.0 ,1.8384 ,1059.3819 ,1861.0 ,2.9768 ,7.1135 ,964.0 ,5.48 ,515.464 ,836.0 ,4.199 ,419.485 ,498.0 ,3.142 ,0.0 ,427.0 ,2.228 ,639.897 ,406.0 ,3.783 ,1066.495 ,377.0 ,2.242 ,1589.073 ,363.0 ,5.368 ,206.186 ,342.0 ,6.099 ,1052.268 ,339.0 ,6.127 ,625.67 ,333.0 ,0.003 ,426.598 ,280.0 ,4.262 ,412.371 ,257.0 ,0.963 ,632.784 ,230.0 ,0.705 ,735.877 ,201.0 ,3.069 ,543.918 ,200.0 ,4.429 ,103.093 ,139.0 ,2.932 ,14.227 ,114.0 ,0.787 ,728.763 ,95.0 ,1.7 ,838.97 ,86.0 ,5.14 ,323.51 ,83.0 ,0.06 ,309.28 ,80.0 ,2.98 ,742.99 ,75.0 ,1.6 ,956.29 ,70.0 ,1.51 ,213.3 ,67.0 ,5.47 ,199.07 ,62.0 ,6.1 ,1045.15 ,56.0 ,0.96 ,1162.47 ,52.0 ,5.58 ,942.06 ,50.0 ,2.72 ,532.87 ,45.0 ,5.52 ,508.35 ,44.0 ,0.27 ,526.51 ,40.0 ,5.95 ,95.98 }; double jupiterR3[]={28.0 ,3519.0 ,6.058 ,529.691 ,1073.0 ,1.6732 ,536.8045 ,916.0 ,1.413 ,522.577 ,342.0 ,0.523 ,1059.382 ,255.0 ,1.196 ,7.114 ,222.0 ,0.952 ,515.464 ,90.0 ,3.14 ,0.0 ,69.0 ,2.27 ,1066.5 ,58.0 ,1.41 ,543.92 ,58.0 ,0.53 ,639.9 ,51.0 ,5.98 ,412.37 ,47.0 ,1.58 ,625.67 ,43.0 ,6.12 ,419.48 ,37.0 ,1.18 ,14.23 ,34.0 ,1.67 ,1052.27 ,34.0 ,0.85 ,206.19 ,31.0 ,1.04 ,1589.07 ,30.0 ,4.63 ,426.6 ,21.0 ,2.5 ,728.76 ,15.0 ,0.89 ,199.07 ,14.0 ,0.96 ,508.35 ,13.0 ,1.5 ,1045.15 ,12.0 ,2.61 ,735.88 ,12.0 ,3.56 ,323.51 ,11.0 ,1.79 ,309.28 ,11.0 ,6.28 ,956.29 ,10.0 ,6.26 ,103.09 ,9.0 ,3.45 ,838.97 }; double jupiterR4[]={15.0 ,129.0 ,0.084 ,536.805 ,113.0 ,4.249 ,529.691 ,83.0 ,3.3 ,522.58 ,38.0 ,2.73 ,515.46 ,27.0 ,5.69 ,7.11 ,18.0 ,5.4 ,1059.38 ,13.0 ,6.02 ,543.92 ,9.0 ,0.77 ,1066.5 ,8.0 ,5.68 ,14.23 ,7.0 ,1.43 ,412.37 ,6.0 ,5.12 ,639.9 ,5.0 ,3.34 ,625.67 ,3.0 ,3.4 ,1052.27 ,3.0 ,4.16 ,728.76 ,3.0 ,2.9 ,426.6 }; double jupiterR5[]={7.0 ,11.0 ,4.75 ,536.8 ,4.0 ,5.92 ,522.58 ,2.0 ,5.57 ,515.46 ,2.0 ,4.3 ,543.92 ,2.0 ,3.69 ,7.11 ,2.0 ,4.13 ,1059.38 ,2.0 ,5.49 ,1066.5 }; double saturnL0[]={90.0 ,87401354.0 ,0.0 ,0.0 ,11107660.0 ,3.9620509 ,213.29909544 ,1414151.0 ,4.5858152 ,7.113547 ,398379.0 ,0.52112 ,206.185548 ,350769.0 ,3.303299 ,426.598191 ,206816.0 ,0.246584 ,103.092774 ,79271.0 ,3.84007 ,220.41264 ,23990.0 ,4.66977 ,110.20632 ,16574.0 ,0.43719 ,419.48464 ,15820.0 ,0.93809 ,632.78374 ,15054.0 ,2.7167 ,639.89729 ,14907.0 ,5.76903 ,316.39187 ,14610.0 ,1.56519 ,3.93215 ,13160.0 ,4.44891 ,14.22709 ,13005.0 ,5.98119 ,11.0457 ,10725.0 ,3.1294 ,202.2534 ,6126.0 ,1.7633 ,277.035 ,5863.0 ,0.2366 ,529.691 ,5228.0 ,4.2078 ,3.1814 ,5020.0 ,3.1779 ,433.7117 ,4593.0 ,0.6198 ,199.072 ,4006.0 ,2.2448 ,63.7359 ,3874.0 ,3.2228 ,138.5175 ,3269.0 ,0.7749 ,949.1756 ,2954.0 ,0.9828 ,95.9792 ,2461.0 ,2.0316 ,735.8765 ,1758.0 ,3.2658 ,522.5774 ,1640.0 ,5.505 ,846.0828 ,1581.0 ,4.3727 ,309.2783 ,1391.0 ,4.0233 ,323.5054 ,1124.0 ,2.8373 ,415.5525 ,1087.0 ,4.1834 ,2.4477 ,1017.0 ,3.717 ,227.5262 ,957.0 ,0.507 ,1265.567 ,853.0 ,3.421 ,175.166 ,849.0 ,3.191 ,209.367 ,789.0 ,5.007 ,0.963 ,749.0 ,2.144 ,853.196 ,744.0 ,5.253 ,224.345 ,687.0 ,1.747 ,1052.268 ,654.0 ,1.599 ,0.048 ,634.0 ,2.299 ,412.371 ,625.0 ,0.97 ,210.118 ,580.0 ,3.093 ,74.782 ,546.0 ,2.127 ,350.332 ,543.0 ,1.518 ,9.561 ,530.0 ,4.449 ,117.32 ,478.0 ,2.965 ,137.033 ,474.0 ,5.475 ,742.99 ,452.0 ,1.044 ,490.334 ,449.0 ,1.29 ,127.472 ,372.0 ,2.278 ,217.231 ,355.0 ,3.013 ,838.969 ,347.0 ,1.539 ,340.771 ,343.0 ,0.246 ,0.521 ,330.0 ,0.247 ,1581.959 ,322.0 ,0.961 ,203.738 ,322.0 ,2.572 ,647.011 ,309.0 ,3.495 ,216.48 ,287.0 ,2.37 ,351.817 ,278.0 ,0.4 ,211.815 ,249.0 ,1.47 ,1368.66 ,227.0 ,4.91 ,12.53 ,220.0 ,4.204 ,200.769 ,209.0 ,1.345 ,625.67 ,208.0 ,0.483 ,1162.475 ,208.0 ,1.283 ,39.357 ,204.0 ,6.011 ,265.989 ,185.0 ,3.503 ,149.563 ,184.0 ,0.973 ,4.193 ,182.0 ,5.491 ,2.921 ,174.0 ,1.863 ,0.751 ,165.0 ,0.44 ,5.417 ,149.0 ,5.736 ,52.69 ,148.0 ,1.535 ,5.629 ,146.0 ,6.231 ,195.14 ,140.0 ,4.295 ,21.341 ,131.0 ,4.068 ,10.295 ,125.0 ,6.277 ,1898.351 ,122.0 ,1.976 ,4.666 ,118.0 ,5.341 ,554.07 ,117.0 ,2.679 ,1155.361 ,114.0 ,5.594 ,1059.382 ,112.0 ,1.105 ,191.208 ,110.0 ,0.166 ,1.484 ,109.0 ,3.438 ,536.805 ,107.0 ,4.012 ,956.289 ,104.0 ,2.192 ,88.866 ,103.0 ,1.197 ,1685.052 ,101.0 ,4.965 ,269.921 }; double saturnL1[]={79.0 ,21354295596.0 ,0.0 ,0.0 ,1296855.0 ,1.8282054 ,213.2990954 ,564348.0 ,1.885001 ,7.113547 ,107679.0 ,2.277699 ,206.185548 ,98323.0 ,1.0807 ,426.59819 ,40255.0 ,2.04128 ,220.41264 ,19942.0 ,1.27955 ,103.09277 ,10512.0 ,2.7488 ,14.22709 ,6939.0 ,0.4049 ,639.8973 ,4803.0 ,2.4419 ,419.4846 ,4056.0 ,2.9217 ,110.2063 ,3769.0 ,3.6497 ,3.9322 ,3385.0 ,2.4169 ,3.1814 ,3302.0 ,1.2626 ,433.7117 ,3071.0 ,2.3274 ,199.072 ,1953.0 ,3.5639 ,11.0457 ,1249.0 ,2.628 ,95.9792 ,922.0 ,1.961 ,227.526 ,706.0 ,4.417 ,529.691 ,650.0 ,6.174 ,202.253 ,628.0 ,6.111 ,309.278 ,487.0 ,6.04 ,853.196 ,479.0 ,4.988 ,522.577 ,468.0 ,4.617 ,63.736 ,417.0 ,2.117 ,323.505 ,408.0 ,1.299 ,209.367 ,352.0 ,2.317 ,632.784 ,344.0 ,3.959 ,412.371 ,340.0 ,3.634 ,316.392 ,336.0 ,3.772 ,735.877 ,332.0 ,2.861 ,210.118 ,289.0 ,2.733 ,117.32 ,281.0 ,5.744 ,2.448 ,266.0 ,0.543 ,647.011 ,230.0 ,1.644 ,216.48 ,192.0 ,2.965 ,224.345 ,173.0 ,4.077 ,846.083 ,167.0 ,2.597 ,21.341 ,136.0 ,2.286 ,10.295 ,131.0 ,3.441 ,742.99 ,128.0 ,4.095 ,217.231 ,109.0 ,6.161 ,415.552 ,98.0 ,4.73 ,838.97 ,94.0 ,3.48 ,1052.27 ,92.0 ,3.95 ,88.87 ,87.0 ,1.22 ,440.83 ,83.0 ,3.11 ,625.67 ,78.0 ,6.24 ,302.16 ,67.0 ,0.29 ,4.67 ,66.0 ,5.65 ,9.56 ,62.0 ,4.29 ,127.47 ,62.0 ,1.83 ,195.14 ,58.0 ,2.48 ,191.96 ,57.0 ,5.02 ,137.03 ,55.0 ,0.28 ,74.78 ,54.0 ,5.13 ,490.33 ,51.0 ,1.46 ,536.8 ,47.0 ,1.18 ,149.56 ,47.0 ,5.15 ,515.46 ,46.0 ,2.23 ,956.29 ,44.0 ,2.71 ,5.42 ,40.0 ,0.41 ,269.92 ,40.0 ,3.89 ,728.76 ,38.0 ,0.65 ,422.67 ,38.0 ,2.53 ,12.53 ,37.0 ,3.78 ,2.92 ,35.0 ,6.08 ,5.63 ,34.0 ,3.21 ,1368.66 ,33.0 ,4.64 ,277.03 ,33.0 ,5.43 ,1066.5 ,33.0 ,0.3 ,351.82 ,32.0 ,4.39 ,1155.36 ,31.0 ,2.43 ,52.69 ,30.0 ,2.84 ,203 ,30.0 ,6.19 ,284.15 ,30.0 ,3.39 ,1059.38 ,29.0 ,2.03 ,330.62 ,28.0 ,2.74 ,265.99 ,26.0 ,4.51 ,340.77 }; double saturnL2[]={63.0 ,116441.0 ,1.179879 ,7.113547 ,91921.0 ,0.07425 ,213.2991 ,90592.0 ,0.0 ,0.0 ,15277.0 ,4.06492 ,206.18555 ,10631.0 ,0.25778 ,220.41264 ,10605.0 ,5.40964 ,426.59819 ,4265.0 ,1.046 ,14.2271 ,1216.0 ,2.9186 ,103.0928 ,1165.0 ,4.6094 ,639.8973 ,1082.0 ,5.6913 ,433.7117 ,1045.0 ,4.0421 ,199.072 ,1020.0 ,0.6337 ,3.1814 ,634.0 ,4.388 ,419.485 ,549.0 ,5.573 ,3.932 ,457.0 ,1.268 ,110.206 ,425.0 ,0.209 ,227.526 ,274.0 ,4.288 ,95.979 ,162.0 ,1.381 ,11.046 ,129.0 ,1.566 ,309.278 ,117.0 ,3.881 ,853.196 ,105.0 ,4.9 ,647.011 ,101.0 ,0.893 ,21.341 ,96.0 ,2.91 ,316.39 ,95.0 ,5.63 ,412.37 ,85.0 ,5.73 ,209.37 ,83.0 ,6.05 ,216.48 ,82.0 ,1.02 ,117.32 ,75.0 ,4.76 ,210.12 ,67.0 ,0.46 ,522.58 ,66.0 ,0.48 ,10.29 ,64.0 ,0.35 ,323.51 ,61.0 ,4.88 ,632.78 ,53.0 ,2.75 ,529.69 ,46.0 ,5.69 ,440.83 ,45.0 ,1.67 ,202.25 ,42.0 ,5.71 ,88.87 ,32.0 ,0.07 ,63.74 ,32.0 ,1.67 ,302.16 ,31.0 ,4.16 ,191.96 ,27.0 ,0.83 ,224.34 ,25.0 ,5.66 ,735.88 ,20.0 ,5.94 ,217.23 ,18.0 ,4.9 ,625.67 ,17.0 ,1.63 ,742.99 ,16.0 ,0.58 ,515.46 ,14.0 ,0.21 ,838.97 ,14.0 ,3.76 ,195.14 ,12.0 ,4.72 ,203 ,12.0 ,0.13 ,234.64 ,12.0 ,3.12 ,846.08 ,11.0 ,5.92 ,536.8 ,11.0 ,5.6 ,728.76 ,11.0 ,3.2 ,1066.5 ,10.0 ,4.99 ,422.67 ,10.0 ,0.26 ,330.62 ,10.0 ,4.15 ,860.31 ,9.0 ,0.46 ,956.29 ,8.0 ,2.14 ,269.92 ,8.0 ,5.25 ,429.78 ,8.0 ,4.03 ,9.56 ,7.0 ,5.4 ,1052.27 ,6.0 ,4.46 ,284.15 ,6.0 ,5.93 ,405.26 }; double saturnL3[]={48.0 ,16039.0 ,5.73945 ,7.11355 ,4250.0 ,4.5854 ,213.2991 ,1907.0 ,4.7608 ,220.4126 ,1466.0 ,5.9133 ,206.1855 ,1162.0 ,5.6197 ,14.2271 ,1067.0 ,3.6082 ,426.5982 ,239.0 ,3.861 ,433.712 ,237.0 ,5.768 ,199.072 ,166.0 ,5.116 ,3.181 ,151.0 ,2.736 ,639.897 ,131.0 ,4.743 ,227.526 ,63.0 ,0.23 ,419.48 ,62.0 ,4.74 ,103.09 ,40.0 ,5.47 ,21.34 ,40.0 ,5.96 ,95.98 ,39.0 ,5.83 ,110.21 ,28.0 ,3.01 ,647.01 ,25.0 ,0.99 ,3.93 ,19.0 ,1.92 ,853.2 ,18.0 ,4.97 ,10.29 ,18.0 ,1.03 ,412.37 ,18.0 ,4.2 ,216.48 ,18.0 ,3.32 ,309.28 ,16.0 ,3.9 ,440.83 ,16.0 ,5.62 ,117.32 ,13.0 ,1.18 ,88.87 ,13.0 ,5.58 ,11.05 ,11.0 ,5.93 ,191.96 ,10.0 ,3.95 ,209.37 ,9.0 ,3.39 ,302.16 ,8.0 ,4.88 ,323.51 ,7.0 ,0.38 ,632.78 ,6.0 ,2.25 ,522.58 ,6.0 ,1.06 ,210.12 ,5.0 ,4.64 ,234.64 ,4.0 ,3.14 ,0.0 ,4.0 ,2.31 ,515.46 ,3.0 ,2.2 ,860.31 ,3.0 ,0.59 ,529.69 ,3.0 ,4.93 ,224.34 ,3.0 ,0.42 ,625.67 ,2.0 ,4.77 ,330.62 ,2.0 ,3.35 ,429.78 ,2.0 ,3.2 ,202.25 ,2.0 ,1.19 ,1066.5 ,2.0 ,1.35 ,405.26 ,2.0 ,4.16 ,223.59 ,2.0 ,3.07 ,654.12 }; double saturnL4[]={27.0 ,1662.0 ,3.9983 ,7.1135 ,257.0 ,2.984 ,220.413 ,236.0 ,3.902 ,14.227 ,149.0 ,2.741 ,213.299 ,114.0 ,3.142 ,0.0 ,110.0 ,1.515 ,206.186 ,68.0 ,1.72 ,426.6 ,40.0 ,2.05 ,433.71 ,38.0 ,1.24 ,199.07 ,31.0 ,3.01 ,227.53 ,15.0 ,0.83 ,639.9 ,9.0 ,3.71 ,21.34 ,6.0 ,2.42 ,419.48 ,6.0 ,1.16 ,647.01 ,4.0 ,1.45 ,95.98 ,4.0 ,2.12 ,440.83 ,3.0 ,4.09 ,110.21 ,3.0 ,2.77 ,412.37 ,3.0 ,3.01 ,88.87 ,3.0 ,0.0 ,853.2 ,3.0 ,0.39 ,103.09 ,2.0 ,3.78 ,117.32 ,2.0 ,2.83 ,234.64 ,2.0 ,5.08 ,309.28 ,2.0 ,2.24 ,216.48 ,2.0 ,5.19 ,302.16 ,1.0 ,1.55 ,191.96 }; double saturnL5[]={12.0 ,124.0 ,2.259 ,7.114 ,34.0 ,2.16 ,14.23 ,28.0 ,1.2 ,220.41 ,6.0 ,1.22 ,227.53 ,5.0 ,0.24 ,433.71 ,4.0 ,6.23 ,426.6 ,3.0 ,2.97 ,199.07 ,3.0 ,4.29 ,206.19 ,2.0 ,6.25 ,213.3 ,1.0 ,5.28 ,639.9 ,1.0 ,0.24 ,440.83 ,1.0 ,3.14 ,0.0 }; double saturnB0[]={34.0 ,4330678.0 ,3.6028443 ,213.2990954 ,240348.0 ,2.852385 ,426.598191 ,84746.0 ,0.0 ,0.0 ,34116.0 ,0.57297 ,206.18555 ,30863.0 ,3.48442 ,220.41264 ,14734.0 ,2.11847 ,639.89729 ,9917.0 ,5.79 ,419.4846 ,6994.0 ,4.736 ,7.1135 ,4808.0 ,5.4331 ,316.3919 ,4788.0 ,4.9651 ,110.2063 ,3432.0 ,2.7326 ,433.7117 ,1506.0 ,6.013 ,103.0928 ,1060.0 ,5.631 ,529.691 ,969.0 ,5.204 ,632.784 ,942.0 ,1.396 ,853.196 ,708.0 ,3.803 ,323.505 ,552.0 ,5.131 ,202.253 ,400.0 ,3.359 ,227.526 ,319.0 ,3.626 ,209.367 ,316.0 ,1.997 ,647.011 ,314.0 ,0.465 ,217.231 ,284.0 ,4.886 ,224.345 ,236.0 ,2.139 ,11.046 ,215.0 ,5.95 ,846.083 ,209.0 ,2.12 ,415.552 ,207.0 ,0.73 ,199.072 ,179.0 ,2.954 ,63.736 ,141.0 ,0.644 ,490.334 ,139.0 ,4.595 ,14.227 ,139.0 ,1.998 ,735.877 ,135.0 ,5.245 ,742.99 ,122.0 ,3.115 ,522.577 ,116.0 ,3.109 ,216.48 ,114.0 ,0.963 ,210.118 }; double saturnB1[]={32.0 ,397555.0 ,5.3329 ,213.299095 ,49479.0 ,3.14159 ,0.0 ,18572.0 ,6.09919 ,426.59819 ,14801.0 ,2.30586 ,206.18555 ,9644.0 ,1.6967 ,220.4126 ,3757.0 ,1.2543 ,419.4846 ,2717.0 ,5.9117 ,639.8973 ,1455.0 ,0.8516 ,433.7117 ,1291.0 ,2.9177 ,7.1135 ,853.0 ,0.436 ,316.392 ,298.0 ,0.919 ,632.784 ,292.0 ,5.316 ,853.196 ,284.0 ,1.619 ,227.526 ,275.0 ,3.889 ,103.093 ,172.0 ,0.052 ,647.011 ,166.0 ,2.444 ,199.072 ,158.0 ,5.209 ,110.206 ,128.0 ,1.207 ,529.691 ,110.0 ,2.457 ,217.231 ,82.0 ,2.76 ,210.12 ,81.0 ,2.86 ,14.23 ,69.0 ,1.66 ,202.25 ,65.0 ,1.26 ,216.48 ,61.0 ,1.25 ,209.37 ,59.0 ,1.82 ,323.51 ,46.0 ,0.82 ,440.83 ,36.0 ,1.82 ,224.34 ,34.0 ,2.84 ,117.32 ,33.0 ,1.31 ,412.37 ,32.0 ,1.19 ,846.08 ,27.0 ,4.65 ,1066.5 ,27.0 ,4.44 ,11.05 }; double saturnB2[]={29.0 ,20630.0 ,0.50482 ,213.2991 ,3720.0 ,3.9983 ,206.1855 ,1627.0 ,6.1819 ,220.4126 ,1346.0 ,0.0 ,0.0 ,706.0 ,3.039 ,419.485 ,365.0 ,5.099 ,426.598 ,330.0 ,5.279 ,433.712 ,219.0 ,3.828 ,639.897 ,139.0 ,1.043 ,7.114 ,104.0 ,6.157 ,227.526 ,93.0 ,1.98 ,316.39 ,71.0 ,4.15 ,199.07 ,52.0 ,2.88 ,632.78 ,49.0 ,4.43 ,647.01 ,41.0 ,3.16 ,853.2 ,29.0 ,4.53 ,210.12 ,24.0 ,1.12 ,14.23 ,21.0 ,4.35 ,217.23 ,20.0 ,5.31 ,440.83 ,18.0 ,0.85 ,110.21 ,17.0 ,5.68 ,216.48 ,16.0 ,4.26 ,103.09 ,14.0 ,3 ,412.37 ,12.0 ,2.53 ,529.69 ,8.0 ,3.32 ,202.25 ,7.0 ,5.56 ,209.37 ,7.0 ,0.29 ,323.51 ,6.0 ,1.16 ,117.32 ,6.0 ,3.61 ,860.31 }; double saturnB3[]={21.0 ,666.0 ,1.99 ,213.299 ,632.0 ,5.698 ,206.186 ,398.0 ,0.0 ,0.0 ,188.0 ,4.338 ,220.413 ,92.0 ,4.84 ,419.48 ,52.0 ,3.42 ,433.71 ,42.0 ,2.38 ,426.6 ,26.0 ,4.4 ,227.53 ,21.0 ,5.85 ,199.07 ,18.0 ,1.99 ,639.9 ,11.0 ,5.37 ,7.11 ,10.0 ,2.55 ,647.01 ,7.0 ,3.46 ,316.39 ,6.0 ,4.8 ,632.78 ,6.0 ,0.02 ,210.12 ,6.0 ,3.52 ,440.83 ,5.0 ,5.64 ,14.23 ,5.0 ,1.22 ,853.2 ,4.0 ,4.71 ,412.37 ,3.0 ,0.63 ,103.09 ,2.0 ,3.72 ,216.48 }; double saturnB4[]={12.0 ,80.0 ,1.12 ,206.19 ,32.0 ,3.12 ,213.3 ,17.0 ,2.48 ,220.41 ,12.0 ,3.14 ,0.0 ,9.0 ,0.38 ,419.48 ,6.0 ,1.56 ,433.71 ,5.0 ,2.63 ,227.53 ,5.0 ,1.28 ,199.07 ,1.0 ,1.43 ,426.6 ,1.0 ,0.67 ,647.01 ,1.0 ,1.72 ,440.83 ,1.0 ,6.18 ,639.9 }; double saturnB5[]={2.0 ,8.0 ,2.82 ,206.19 ,1.0 ,0.51 ,220.41 }; double saturnR0[]={44.0 ,955758136.0 ,0.0 ,0.0 ,52921382.0 ,2.3922622 ,213.29909544 ,1873680.0 ,5.2354961 ,206.1855484 ,1464664.0 ,1.6476305 ,426.5981909 ,821891.0 ,5.9352 ,316.39187 ,547507.0 ,5.015326 ,103.092774 ,371684.0 ,2.271148 ,220.412642 ,361778.0 ,3.139043 ,7.113547 ,140618.0 ,5.704067 ,632.783739 ,108975.0 ,3.293136 ,110.206321 ,69007.0 ,5.941 ,419.48464 ,61053.0 ,0.94038 ,639.89729 ,48913.0 ,1.55733 ,202.2534 ,34144.0 ,0.19519 ,277.03499 ,32402.0 ,5.47085 ,949.17561 ,20937.0 ,0.46349 ,735.87651 ,20839.0 ,1.52103 ,733.71174 ,20747.0 ,5.33256 ,199.072 ,15298.0 ,3.05944 ,529.69097 ,14296.0 ,2.60434 ,323.50542 ,12884.0 ,1.64892 ,138.5175 ,11993.0 ,5.98051 ,846.08283 ,11380.0 ,1.73106 ,522.57742 ,9796.0 ,5.2048 ,1265.5675 ,7753.0 ,5.8519 ,95.9792 ,6771.0 ,3.0043 ,14.2271 ,6466.0 ,0.1773 ,1052.2684 ,5850.0 ,1.4552 ,415.5525 ,5307.0 ,0.5974 ,63.7359 ,4696.0 ,2.1492 ,227.5262 ,4044.0 ,1.6401 ,209.3669 ,3688.0 ,0.7802 ,412.3711 ,3461.0 ,1.8509 ,175.1661 ,3420.0 ,4.9455 ,1581.9593 ,3401.0 ,0.5539 ,350.3321 ,3376.0 ,3.6953 ,224.3448 ,2976.0 ,5.6847 ,210.1177 ,2885.0 ,1.3876 ,838.9693 ,2881.0 ,0.1796 ,853.1964 ,2508.0 ,3.5385 ,742.9901 ,2448.0 ,6.1841 ,1368.6603 ,2406.0 ,2.9656 ,117.3199 ,2174.0 ,0.0151 ,340.7709 ,2024.0 ,5.0541 ,11.0457 }; double saturnR1[]={38.0 ,6182981.0 ,0.2584352 ,213.2990954 ,506578.0 ,0.711147 ,206.185548 ,341394.0 ,5.796358 ,426.598191 ,188491.0 ,0.472157 ,220.412642 ,186262.0 ,3.141593 ,0.0 ,143891.0 ,1.407449 ,7.113547 ,49621.0 ,6.01744 ,103.09277 ,20928.0 ,5.09246 ,639.89729 ,19953.0 ,1.1756 ,419.48464 ,18840.0 ,1.6082 ,110.20632 ,13877.0 ,0.75886 ,199.072 ,12893.0 ,5.9433 ,433.71174 ,5397.0 ,1.2885 ,14.2271 ,4869.0 ,0.8679 ,323.5054 ,4247.0 ,0.393 ,227.5262 ,3252.0 ,1.2585 ,95.9792 ,3081.0 ,3.4366 ,522.5774 ,2909.0 ,4.6068 ,202.2534 ,2856.0 ,2.1673 ,735.8765 ,1988.0 ,2.4505 ,412.3711 ,1941.0 ,6.0239 ,209.3669 ,1581.0 ,1.2919 ,210.1177 ,1340.0 ,4.308 ,853.1964 ,1316.0 ,1.253 ,117.3199 ,1203.0 ,1.8665 ,316.3919 ,1091.0 ,0.0753 ,216.4805 ,966.0 ,0.48 ,632.784 ,954.0 ,5.152 ,647.011 ,898.0 ,0.983 ,529.691 ,882.0 ,1.885 ,1052.268 ,874.0 ,1.402 ,224.345 ,785.0 ,3.064 ,838.969 ,740.0 ,1.382 ,625.67 ,658.0 ,4.144 ,309.278 ,650.0 ,1.725 ,742.99 ,613.0 ,3.033 ,63.736 ,599.0 ,2.549 ,217.231 ,503.0 ,2.13 ,3.932 }; double saturnR2[]={32.0 ,436902.0 ,4.786717 ,213.299095 ,71923.0 ,2.5007 ,206.18555 ,49767.0 ,4.97168 ,220.41264 ,43221.0 ,3.8694 ,426.59819 ,29646.0 ,5.9631 ,7.11355 ,4721.0 ,2.4753 ,199.072 ,4142.0 ,4.1067 ,433.7117 ,3789.0 ,3.0977 ,639.8973 ,2964.0 ,1.3721 ,103.0928 ,2556.0 ,2.8507 ,419.4846 ,2327.0 ,0.0 ,0.0 ,2208.0 ,6.2759 ,110.2063 ,2188.0 ,5.8555 ,14.2271 ,1957.0 ,4.9245 ,227.5262 ,924.0 ,5.464 ,323.505 ,706.0 ,2.971 ,95.979 ,546.0 ,4.129 ,412.371 ,431.0 ,5.178 ,522.577 ,405.0 ,4.173 ,209.367 ,391.0 ,4.481 ,216.48 ,374.0 ,5.834 ,117.32 ,361.0 ,3.277 ,647.011 ,356.0 ,3.192 ,210.118 ,326.0 ,2.269 ,853.196 ,207.0 ,4.022 ,735.877 ,204.0 ,0.088 ,202.253 ,180.0 ,3.597 ,632.784 ,178.0 ,4.097 ,440.825 ,154.0 ,3.135 ,625.67 ,148.0 ,0.136 ,302.165 ,133.0 ,2.594 ,191.958 ,132.0 ,5.933 ,309.278 }; double saturnR3[]={28.0 ,20315.0 ,3.02187 ,213.2991 ,8924.0 ,3.1914 ,220.4126 ,6909.0 ,4.3517 ,206.1855 ,4087.0 ,4.2241 ,7.1135 ,3879.0 ,2.0106 ,426.5982 ,1071.0 ,4.2036 ,199.072 ,907.0 ,2.283 ,433.712 ,606.0 ,3.175 ,227.526 ,597.0 ,4.135 ,14.227 ,483.0 ,1.173 ,639.897 ,393.0 ,0.0 ,0.0 ,229.0 ,4.698 ,419.485 ,188.0 ,4.59 ,110.206 ,150.0 ,3.202 ,103.093 ,121.0 ,3.768 ,323.505 ,102.0 ,4.71 ,95.979 ,101.0 ,5.819 ,412.371 ,93.0 ,1.44 ,647.01 ,84.0 ,2.63 ,216.48 ,73.0 ,4.15 ,117.32 ,62.0 ,2.31 ,440.83 ,55.0 ,0.31 ,853.2 ,50.0 ,2.39 ,209.37 ,45.0 ,4.37 ,191.96 ,41.0 ,0.69 ,522.58 ,40.0 ,1.84 ,302.16 ,38.0 ,5.94 ,88.87 ,32.0 ,4.01 ,21.34 }; double saturnR4[]={23.0 ,1202.0 ,1.415 ,220.4126 ,708.0 ,1.162 ,213.299 ,516.0 ,6.24 ,206.186 ,427.0 ,2.469 ,7.114 ,268.0 ,0.187 ,426.598 ,170.0 ,5.959 ,199.072 ,150.0 ,0.48 ,433.712 ,145.0 ,1.442 ,227.526 ,121.0 ,2.405 ,14.227 ,47.0 ,5.57 ,639.9 ,19.0 ,5.86 ,647.01 ,17.0 ,0.53 ,440.83 ,16.0 ,2.9 ,110.21 ,15.0 ,0.3 ,419.48 ,14.0 ,1.3 ,412.37 ,13.0 ,2.09 ,323.51 ,11.0 ,0.22 ,95.98 ,11.0 ,2.46 ,117.32 ,10.0 ,3.14 ,0.0 ,9.0 ,1.56 ,88.87 ,9.0 ,2.28 ,21.34 ,9.0 ,0.68 ,216.48 ,8.0 ,1.27 ,234.64 }; double saturnR5[]={18.0 ,129.0 ,5.913 ,220.413 ,32.0 ,0.69 ,7.11 ,27.0 ,5.91 ,227.53 ,20.0 ,4.95 ,433.71 ,20.0 ,0.67 ,14.23 ,14.0 ,2.67 ,206.19 ,14.0 ,1.46 ,199.07 ,13.0 ,4.59 ,426.6 ,7.0 ,4.63 ,213.3 ,5.0 ,3.61 ,639.9 ,4.0 ,4.9 ,440.83 ,3.0 ,4.07 ,647.01 ,3.0 ,4.66 ,191.96 ,3.0 ,0.49 ,323.51 ,3.0 ,3.18 ,419.48 ,2.0 ,3.7 ,88.87 ,2.0 ,3.32 ,95.98 ,2.0 ,0.56 ,117.32 }; double uranusL0[]={91.0 ,548129294.0 ,0.0 ,0.0 ,9260408.0 ,0.8910642 ,74.7815986 ,1504248.0 ,3.6271926 ,1.4844727 ,365982.0 ,1.899622 ,73.297126 ,272328.0 ,3.358237 ,149.563197 ,70328.0 ,5.39254 ,63.7359 ,68893.0 ,6.09292 ,76.26607 ,61999.0 ,2.26952 ,2.96895 ,61951.0 ,2.85099 ,11.0457 ,26469.0 ,3.14152 ,71.81265 ,25711.0 ,6.1138 ,454.90937 ,21079.0 ,4.36059 ,148.07872 ,17819.0 ,1.74437 ,36.64856 ,14613.0 ,4.73732 ,3.93215 ,11163.0 ,5.82682 ,224.3448 ,10998.0 ,0.48865 ,138.5175 ,9527.0 ,2.9552 ,35.1641 ,7546.0 ,5.2363 ,109.9457 ,4220.0 ,3.2333 ,70.8494 ,4052.0 ,2.2775 ,151.0477 ,3490.0 ,5.4831 ,146.5943 ,3355.0 ,1.0655 ,4.4534 ,3144.0 ,4.752 ,77.7505 ,2927.0 ,4.629 ,9.5612 ,2922.0 ,5.3524 ,85.8273 ,2273.0 ,4.366 ,70.3282 ,2149.0 ,0.6075 ,38.133 ,2051.0 ,1.5177 ,0.1119 ,1992.0 ,4.9244 ,277.035 ,1667.0 ,3.6274 ,380.1278 ,1533.0 ,2.5859 ,52.6902 ,1376.0 ,2.0428 ,65.2204 ,1372.0 ,4.1964 ,111.4302 ,1284.0 ,3.1135 ,202.2534 ,1282.0 ,0.5427 ,222.8603 ,1244.0 ,0.9161 ,2.4477 ,1221.0 ,0.199 ,108.4612 ,1151.0 ,4.179 ,33.6796 ,1150.0 ,0.9334 ,3.1814 ,1090.0 ,1.775 ,12.5302 ,1072.0 ,0.2356 ,62.2514 ,946.0 ,1.192 ,127.472 ,708.0 ,5.183 ,213.299 ,653.0 ,0.966 ,78.714 ,628.0 ,0.182 ,984.6 ,607.0 ,5.432 ,529.691 ,559.0 ,3.358 ,0.521 ,524.0 ,2.013 ,299.126 ,483.0 ,2.106 ,0.963 ,471.0 ,1.407 ,184.727 ,467.0 ,0.415 ,145.11 ,434.0 ,5.521 ,183.243 ,405.0 ,5.987 ,8.077 ,399.0 ,0.338 ,415.552 ,396.0 ,5.87 ,351.817 ,379.0 ,2.35 ,56.622 ,310.0 ,5.833 ,145.631 ,300.0 ,5.644 ,22.091 ,294.0 ,5.839 ,39.618 ,252.0 ,1.637 ,221.376 ,249.0 ,4.746 ,225.829 ,239.0 ,2.35 ,137.033 ,224.0 ,0.516 ,84.343 ,223.0 ,2.843 ,0.261 ,220.0 ,1.922 ,67.668 ,217.0 ,6.142 ,5.938 ,216.0 ,4.778 ,340.771 ,208.0 ,5.58 ,68.844 ,202.0 ,1.297 ,0.048 ,199.0 ,0.956 ,152.532 ,194.0 ,1.888 ,456.394 ,193.0 ,0.916 ,453.425 ,187.0 ,1.319 ,0.16 ,182.0 ,3.536 ,79.235 ,173.0 ,1.539 ,160.609 ,172.0 ,5.68 ,219.891 ,170.0 ,3.677 ,5.417 ,169.0 ,5.879 ,18.159 ,165.0 ,1.424 ,106.977 ,163.0 ,3.05 ,112.915 ,158.0 ,0.738 ,54.175 ,147.0 ,1.263 ,59.804 ,143.0 ,1.3 ,35.425 ,139.0 ,5.386 ,32.195 ,139.0 ,4.26 ,909.819 ,124.0 ,1.374 ,7.114 ,110.0 ,2.027 ,554.07 ,109.0 ,5.706 ,77.963 ,104.0 ,5.028 ,0.751 ,104.0 ,1.458 ,24.379 ,103.0 ,0.681 ,14.978 }; double uranusL1[]={57.0 ,7502543122.0 ,0.0 ,0.0 ,154458.0 ,5.242017 ,74.781599 ,24456.0 ,1.71256 ,1.48447 ,9258.0 ,0.4284 ,11.0457 ,8266.0 ,1.5022 ,63.7359 ,7842.0 ,1.3198 ,149.5632 ,3899.0 ,0.4648 ,3.9322 ,2284.0 ,4.1737 ,76.2661 ,1927.0 ,0.5301 ,2.9689 ,1233.0 ,1.5863 ,70.8494 ,791.0 ,5.436 ,3.181 ,767.0 ,1.996 ,73.297 ,482.0 ,2.984 ,85.827 ,450.0 ,4.138 ,138.517 ,446.0 ,3.723 ,224.345 ,427.0 ,4.731 ,71.813 ,354.0 ,2.583 ,148.079 ,348.0 ,2.454 ,9.561 ,317.0 ,5.579 ,52.69 ,206.0 ,2.363 ,2.448 ,189.0 ,4.202 ,56.622 ,184.0 ,0.284 ,151.048 ,180.0 ,5.684 ,12.53 ,171.0 ,3.001 ,78.714 ,158.0 ,2.909 ,0.963 ,155.0 ,5.591 ,4.453 ,154.0 ,4.652 ,35.164 ,152.0 ,2.942 ,77.751 ,143.0 ,2.59 ,62.251 ,121.0 ,4.148 ,127.472 ,116.0 ,3.732 ,65.22 ,102.0 ,4.188 ,145.631 ,102.0 ,6.034 ,0.112 ,88.0 ,3.99 ,18.16 ,88.0 ,6.16 ,202.25 ,81.0 ,2.64 ,22.09 ,72.0 ,6.05 ,70.33 ,69.0 ,4.05 ,77.96 ,59.0 ,3.7 ,67.67 ,47.0 ,3.54 ,351.82 ,44.0 ,5.91 ,7.11 ,43.0 ,5.72 ,5.42 ,39.0 ,4.92 ,222.86 ,36.0 ,5.9 ,33.68 ,36.0 ,3.29 ,8.08 ,36.0 ,3.33 ,71.6 ,35.0 ,5.08 ,38.13 ,31.0 ,5.62 ,984.6 ,31.0 ,5.5 ,59.8 ,31.0 ,5.46 ,160.61 ,30.0 ,1.66 ,447.8 ,29.0 ,1.15 ,462.02 ,29.0 ,4.52 ,84.34 ,27.0 ,5.54 ,131.4 ,27.0 ,6.15 ,299.13 ,26.0 ,4.99 ,137.03 ,25.0 ,5.74 ,380.13 }; double uranusL2[]={35.0 ,53033.0 ,0.0 ,0.0 ,2358.0 ,2.2601 ,74.7816 ,769.0 ,4.526 ,11.046 ,552.0 ,3.258 ,63.736 ,542.0 ,2.276 ,3.932 ,529.0 ,4.923 ,1.484 ,258.0 ,3.691 ,3.181 ,239.0 ,5.858 ,149.563 ,182.0 ,6.218 ,70.849 ,54.0 ,1.44 ,76.27 ,49.0 ,6.03 ,56.62 ,45.0 ,3.91 ,2.45 ,45.0 ,0.81 ,85.83 ,38.0 ,1.78 ,52.69 ,37.0 ,4.46 ,2.97 ,33.0 ,0.86 ,9.56 ,29.0 ,5.1 ,73.3 ,24.0 ,2.11 ,18.16 ,22.0 ,5.99 ,138.52 ,22.0 ,4.82 ,78.71 ,21.0 ,2.4 ,77.96 ,21.0 ,2.17 ,224.34 ,17.0 ,2.54 ,145.63 ,17.0 ,3.47 ,12.53 ,12.0 ,0.02 ,22.09 ,11.0 ,0.08 ,127.47 ,10.0 ,5.16 ,71.6 ,10.0 ,4.46 ,62.25 ,9.0 ,4.26 ,7.11 ,8.0 ,5.5 ,67.67 ,7.0 ,1.25 ,5.42 ,6.0 ,3.36 ,447.8 ,6.0 ,5.45 ,65.22 ,6.0 ,4.52 ,151.05 ,6.0 ,5.73 ,462.02 }; double uranusL3[]={18.0 ,121.0 ,0.024 ,74.782 ,68.0 ,4.12 ,3.93 ,53.0 ,2.39 ,11.05 ,46.0 ,0.0 ,0.0 ,45.0 ,2.04 ,3.18 ,44.0 ,2.96 ,1.48 ,25.0 ,4.89 ,63.74 ,21.0 ,4.55 ,70.85 ,20.0 ,2.31 ,149.56 ,9.0 ,1.58 ,56.62 ,4.0 ,0.23 ,18.16 ,4.0 ,5.39 ,76.27 ,4.0 ,0.95 ,77.96 ,3.0 ,4.98 ,85.83 ,3.0 ,4.13 ,52.69 ,3.0 ,0.37 ,78.71 ,2.0 ,0.86 ,145.63 ,2.0 ,5.66 ,9.56 }; double uranusL4[]={4.0 ,114.0 ,3.142 ,0.0 ,6.0 ,4.58 ,74.78 ,3.0 ,0.35 ,11.05 ,1.0 ,3.42 ,56.62 }; double uranusB0[]={28.0 ,1346278.0 ,2.6187781 ,74.7815986 ,62341.0 ,5.08111 ,149.5632 ,61601.0 ,3.14159 ,0.0 ,9964.0 ,1.616 ,76.2661 ,9926.0 ,0.5763 ,73.2971 ,3259.0 ,1.2612 ,224.3448 ,2972.0 ,2.2437 ,1.4845 ,2010.0 ,6.0555 ,148.0787 ,1522.0 ,0.2796 ,63.7359 ,924.0 ,4.038 ,151.048 ,761.0 ,6.14 ,71.813 ,522.0 ,3.321 ,138.517 ,463.0 ,0.743 ,85.527 ,437.0 ,3.381 ,529.691 ,435.0 ,0.341 ,77.751 ,431.0 ,3.554 ,213.299 ,420.0 ,5.213 ,11.046 ,245.0 ,0.788 ,2.969 ,233.0 ,2.257 ,222.86 ,216.0 ,1.591 ,38.133 ,180.0 ,3.725 ,299.126 ,175.0 ,1.236 ,146.594 ,174.0 ,1.937 ,380.128 ,160.0 ,5.336 ,111.43 ,144.0 ,5.962 ,35.164 ,116.0 ,5.739 ,70.849 ,106.0 ,0.941 ,70.328 ,102.0 ,2.619 ,78.714 }; double uranusB1[]={20.0 ,206366.0 ,4.123943 ,74.781599 ,8563.0 ,0.3382 ,149.5632 ,1726.0 ,2.1219 ,73.2971 ,1374.0 ,0.0 ,0.0 ,1369.0 ,3.0686 ,76.2661 ,451.0 ,3.777 ,1.484 ,400.0 ,2.848 ,224.345 ,307.0 ,1.255 ,148.079 ,154.0 ,3.786 ,63.736 ,112.0 ,5.573 ,151.048 ,111.0 ,5.329 ,138.517 ,83.0 ,3.59 ,71.81 ,56.0 ,3.4 ,85.83 ,54.0 ,1.7 ,77.75 ,42.0 ,1.21 ,11.05 ,41.0 ,4.45 ,78.71 ,32.0 ,3.77 ,222.86 ,30.0 ,2.56 ,2.97 ,27.0 ,5.34 ,213.3 ,26.0 ,0.42 ,380.13 }; double uranusB2[]={11.0 ,9212.0 ,5.8004 ,74.7816 ,557.0 ,0.0 ,0.0 ,286.0 ,2.177 ,149.563 ,95.0 ,3.84 ,73.3 ,45.0 ,4.88 ,76.27 ,20.0 ,5.46 ,1.48 ,15.0 ,0.88 ,138.52 ,14.0 ,2.85 ,148.08 ,14.0 ,5.07 ,63.74 ,10.0 ,5 ,224.34 ,8.0 ,6.27 ,78.71 }; double uranusB3[]={4.0 ,268.0 ,1.251 ,74.782 ,11.0 ,3.14 ,0.0 ,6.0 ,4.01 ,149.56 ,3.0 ,5.78 ,73.3 }; double uranusB4[]={1.0 ,6.0 ,2.85 ,74.78 }; double uranusR0[]={59.0 ,1921264848.0 ,0.0 ,0.0 ,88784984.0 ,5.60377527 ,74.78159857 ,3440836.0 ,0.328361 ,73.2971259 ,2055653.0 ,1.7829517 ,149.5631971 ,649322.0 ,4.522473 ,76.266071 ,602248.0 ,3.860038 ,63.735898 ,496404.0 ,1.401399 ,454.909367 ,338526.0 ,1.580027 ,138.517497 ,243508.0 ,1.570866 ,71.812653 ,190522.0 ,1.998094 ,1.484473 ,161858.0 ,2.791379 ,148.078724 ,143706.0 ,1.383686 ,11.0457 ,93192.0 ,0.17437 ,36.64856 ,89806.0 ,3.66105 ,109.94569 ,71424.0 ,4.24509 ,224.3448 ,46677.0 ,1.39977 ,35.16409 ,39026.0 ,3.36235 ,277.03499 ,39010.0 ,1.66971 ,70.84945 ,36755.0 ,3.88649 ,146.59425 ,30349.0 ,0.701 ,151.04767 ,29156.0 ,3.18056 ,77.75054 ,25786.0 ,3.78538 ,85.8273 ,25620.0 ,5.25656 ,380.12777 ,22637.0 ,0.72519 ,529.69097 ,20473.0 ,2.7964 ,70.32818 ,20472.0 ,1.55589 ,202.2534 ,17901.0 ,0.55455 ,2.96895 ,15503.0 ,5.35405 ,38.13304 ,14702.0 ,4.90434 ,108.46122 ,12897.0 ,2.62154 ,111.43016 ,12328.0 ,5.96039 ,127.4718 ,11959.0 ,1.75044 ,984.60033 ,11853.0 ,0.99343 ,52.6902 ,11696.0 ,3.29826 ,3.92315 ,11495.0 ,0.43774 ,65.22037 ,10793.0 ,1.42105 ,213.2991 ,9111.0 ,4.9964 ,62.2514 ,8421.0 ,5.2535 ,222.8603 ,8402.0 ,5.0388 ,415.5525 ,7449.0 ,0.7949 ,351.8166 ,7329.0 ,3.9728 ,183.2428 ,6046.0 ,5.6796 ,78.7138 ,5524.0 ,3.115 ,9.5612 ,5445.0 ,5.1058 ,145.1098 ,5238.0 ,2.6296 ,33.6796 ,4079.0 ,3.2206 ,340.7709 ,3919.0 ,4.2502 ,39.6175 ,3802.0 ,6.1099 ,184.7273 ,3781.0 ,3.4584 ,456.3938 ,3687.0 ,2.4872 ,453.4249 ,3102.0 ,4.1403 ,219.8914 ,2963.0 ,0.8298 ,56.6224 ,2942.0 ,0.4239 ,299.1264 ,2940.0 ,2.1464 ,137.033 ,2938.0 ,3.6766 ,140.002 ,2865.0 ,0.31 ,12.5302 ,2538.0 ,4.8546 ,131.4039 ,2364.0 ,0.4425 ,554.07 ,2183.0 ,2.9404 ,305.3462 }; double uranusR1[]={35.0 ,1479896.0 ,3.6720571 ,74.7815986 ,71212.0 ,6.22601 ,63.7359 ,68627.0 ,6.13411 ,149.5632 ,24060.0 ,3.14159 ,0.0 ,21468.0 ,2.60177 ,76.26607 ,20857.0 ,5.24625 ,11.0457 ,11405.0 ,0.01848 ,70.84945 ,7497.0 ,0.4236 ,73.2971 ,4244.0 ,1.4169 ,85.8273 ,3927.0 ,3.1551 ,71.8127 ,3578.0 ,2.3116 ,224.3448 ,3506.0 ,2.5835 ,138.5175 ,3229.0 ,5.255 ,3.9322 ,3060.0 ,0.1532 ,1.4845 ,2564.0 ,0.9808 ,148.0787 ,2429.0 ,3.9944 ,52.6902 ,1645.0 ,2.6535 ,127.4718 ,1584.0 ,1.4305 ,78.7138 ,1508.0 ,5.06 ,151.0477 ,1490.0 ,2.6756 ,56.6224 ,1413.0 ,4.5746 ,202.2534 ,1403.0 ,1.3699 ,77.7505 ,1228.0 ,1.047 ,62.2514 ,1033.0 ,0.2646 ,131.4039 ,992.0 ,2.172 ,65.22 ,862.0 ,5.055 ,351.817 ,744.0 ,3.076 ,35.164 ,687.0 ,2.499 ,77.963 ,647.0 ,4.473 ,70.328 ,624.0 ,0.863 ,9.561 ,604.0 ,0.907 ,984.6 ,575.0 ,3.231 ,447.796 ,562.0 ,2.718 ,462.023 ,530.0 ,5.917 ,213.299 ,528.0 ,5.151 ,2.969 }; double uranusR2[]={18.0 ,22440.0 ,0.69953 ,74.7816 ,4727.0 ,1.699 ,63.7359 ,1682.0 ,4.6483 ,70.8494 ,1650.0 ,3.0966 ,11.0457 ,1434.0 ,3.5212 ,149.5632 ,770.0 ,0.0 ,0.0 ,500.0 ,6.172 ,76.266 ,461.0 ,0.767 ,3.932 ,390.0 ,4.496 ,56.622 ,390.0 ,5.527 ,85.827 ,292.0 ,0.204 ,52.69 ,287.0 ,3.534 ,73.297 ,273.0 ,3.847 ,138.517 ,220.0 ,1.964 ,131.404 ,216.0 ,0.848 ,77.963 ,205.0 ,3.248 ,78.714 ,149.0 ,4.898 ,127.472 ,129.0 ,2.081 ,3.181 }; double uranusR3[]={10.0 ,1164.0 ,4.7345 ,74.7816 ,212.0 ,3.343 ,63.736 ,196.0 ,2.98 ,70.849 ,105.0 ,0.958 ,11.046 ,73.0 ,1 ,149.56 ,72.0 ,0.03 ,56.62 ,55.0 ,2.59 ,3.93 ,36.0 ,5.65 ,77.96 ,34.0 ,3.82 ,76.27 ,32.0 ,3.6 ,131.4 }; double uranusR4[]={2.0 ,53.0 ,3.01 ,74.78 ,10.0 ,1.91 ,56.62 }; double neptuneL0[]={38.0 ,531188633.0 ,0.0 ,0.0 ,1798476.0 ,2.9010127 ,38.1330356 ,1019728.0 ,0.4858092 ,1.4844727 ,124532.0 ,4.830081 ,36.648563 ,42064.0 ,5.41055 ,2.96895 ,37715.0 ,6.09222 ,35.16409 ,33785.0 ,1.24489 ,76.26607 ,16483.0 ,8e-05 ,491.55793 ,9199.0 ,4.9375 ,39.6175 ,8994.0 ,0.2746 ,175.1661 ,4216.0 ,1.9871 ,73.2971 ,3365.0 ,1.0359 ,33.6796 ,2285.0 ,4.2061 ,4.4534 ,1434.0 ,2.7834 ,74.7816 ,900.0 ,2.076 ,109.946 ,745.0 ,3.19 ,71.813 ,506.0 ,5.748 ,114.399 ,400.0 ,0.35 ,1021.249 ,345.0 ,3.462 ,41.102 ,340.0 ,3.304 ,77.751 ,323.0 ,2.248 ,32.195 ,306.0 ,0.497 ,0.521 ,287.0 ,4.505 ,0.048 ,282.0 ,2.246 ,146.594 ,267.0 ,4.889 ,0.963 ,252.0 ,5.782 ,388.465 ,245.0 ,1.247 ,9.561 ,233.0 ,2.505 ,137.033 ,227.0 ,1.797 ,453.425 ,170.0 ,3.324 ,108.461 ,151.0 ,2.192 ,33.94 ,150.0 ,2.997 ,5.938 ,148.0 ,0.859 ,111.43 ,119.0 ,3.677 ,2.448 ,109.0 ,2.416 ,183.243 ,103.0 ,0.041 ,0.261 ,103.0 ,4.404 ,70.328 ,102.0 ,5.705 ,0.112 }; double neptuneL1[]={18.0 ,3837687717.0 ,0.0 ,0.0 ,16604.0 ,4.86319 ,1.48447 ,15807.0 ,2.27923 ,38.13304 ,3335.0 ,3.682 ,76.2661 ,1306.0 ,3.6732 ,2.9689 ,605.0 ,1.505 ,35.164 ,179.0 ,3.453 ,39.618 ,107.0 ,2.451 ,4.453 ,106.0 ,2.755 ,33.68 ,73.0 ,5.49 ,36.65 ,57.0 ,1.86 ,114.4 ,57.0 ,5.22 ,0.52 ,35.0 ,4.52 ,74.78 ,32.0 ,5.9 ,77.75 ,30.0 ,3.67 ,388.47 ,29.0 ,5.17 ,9.56 ,29.0 ,5.17 ,2.45 ,26.0 ,5.25 ,168.05 }; double neptuneL2[]={7.0 ,53893.0 ,0.0 ,0.0 ,296.0 ,1.855 ,1.484 ,281.0 ,1.191 ,38.133 ,270.0 ,5.721 ,76.266 ,23.0 ,1.21 ,2.97 ,9.0 ,4.43 ,35.16 ,7.0 ,0.54 ,2.45 }; double neptuneL3[]={4.0 ,31.0 ,0.0 ,0.0 ,15.0 ,1.35 ,76.27 ,12.0 ,6.04 ,1.48 ,12.0 ,6.11 ,38.13 }; double neptuneL4[]={1.0 ,114.0 ,3.142 ,0.0 }; double neptuneB0[]={17.0 ,3088623.0 ,1.4410437 ,38.1330356 ,27780.0 ,5.91272 ,76.26607 ,27624.0 ,0.0 ,0.0 ,15448.0 ,3.50877 ,39.61751 ,15355.0 ,2.52124 ,36.64856 ,2000.0 ,1.51 ,74.7816 ,1968.0 ,4.3778 ,1.4845 ,1015.0 ,3.2156 ,35.1641 ,606.0 ,2.802 ,73.297 ,595.0 ,2.129 ,41.102 ,589.0 ,3.187 ,2.969 ,402.0 ,4.169 ,114.399 ,280.0 ,1.682 ,77.751 ,262.0 ,3.767 ,213.299 ,254.0 ,3.271 ,453.425 ,206.0 ,4.257 ,529.691 ,140.0 ,3.53 ,137.033 }; double neptuneB1[]={13.0 ,227279.0 ,3.807931 ,38.133036 ,1803.0 ,1.9758 ,76.2661 ,1433.0 ,3.1416 ,0.0 ,1386.0 ,4.8256 ,36.6486 ,1073.0 ,6.0805 ,39.6175 ,148.0 ,3.858 ,74.782 ,136.0 ,0.478 ,1.484 ,70.0 ,6.19 ,35.16 ,52.0 ,5.05 ,73.3 ,43.0 ,0.31 ,114.4 ,37.0 ,4.89 ,41.1 ,37.0 ,5.76 ,2.97 ,26.0 ,5.22 ,213.3 }; double neptuneB2[]={6.0 ,9691.0 ,5.5712 ,38.133 ,79.0 ,3.63 ,76.27 ,72.0 ,0.45 ,36.65 ,59.0 ,3.14 ,0.0 ,30.0 ,1.61 ,39.62 ,6.0 ,5.61 ,74.78 }; double neptuneB3[]={4.0 ,273.0 ,1.017 ,38.133 ,2.0 ,0.0 ,0.0 ,2.0 ,2.37 ,36.65 ,2.0 ,5.33 ,76.27 }; double neptuneB4[]={1.0 ,6.0 ,2.67 ,38.13 }; double neptuneR0[]={32.0 ,3007013206.0 ,0.0 ,0.0 ,27062259.0 ,1.32999459 ,38.13303564 ,1691764.0 ,3.2518614 ,36.6485629 ,807831.0 ,5.185928 ,1.484473 ,537761.0 ,4.521139 ,35.16409 ,495726.0 ,1.571057 ,491.557929 ,274572.0 ,1.845523 ,175.16606 ,135134.0 ,3.372206 ,39.617508 ,121802.0 ,5.797544 ,76.266071 ,100895.0 ,0.377027 ,73.297126 ,69792.0 ,3.79617 ,2.96895 ,46688.0 ,5.74938 ,33.67962 ,24594.0 ,0.50802 ,109.94569 ,16939.0 ,1.59422 ,71.81265 ,14230.0 ,1.07786 ,74.7816 ,12012.0 ,1.92062 ,1021.24889 ,8395.0 ,0.6782 ,146.5943 ,7572.0 ,1.0715 ,388.4652 ,5721.0 ,2.5906 ,4.4534 ,4840.0 ,1.9069 ,41.102 ,4483.0 ,2.9057 ,529.691 ,4421.0 ,1.7499 ,108.4612 ,4354.0 ,0.6799 ,32.1951 ,4270.0 ,3.4134 ,453.4249 ,3381.0 ,0.8481 ,183.2428 ,2881.0 ,1.986 ,137.033 ,2879.0 ,3.6742 ,350.3321 ,2636.0 ,3.0976 ,213.2991 ,2530.0 ,5.7984 ,490.0735 ,2523.0 ,0.4863 ,493.0424 ,2306.0 ,2.8096 ,70.3282 ,2087.0 ,0.6186 ,33.9402 }; double neptuneR1[]={15.0 ,236339.0 ,0.70498 ,38.133036 ,13220.0 ,3.32015 ,1.48447 ,8622.0 ,6.2163 ,35.1641 ,2702.0 ,1.8814 ,39.6175 ,2155.0 ,2.0943 ,2.9689 ,2153.0 ,5.1687 ,76.2661 ,1603.0 ,0.0 ,0.0 ,1464.0 ,1.1842 ,33.6796 ,1136.0 ,3.9189 ,36.6486 ,898.0 ,5.241 ,388.465 ,790.0 ,0.533 ,168.053 ,760.0 ,0.021 ,182.28 ,607.0 ,1.077 ,1021.249 ,572.0 ,3.401 ,484.444 ,561.0 ,2.887 ,498.671 }; double neptuneR2[]={5.0 ,4247.0 ,5.8991 ,38.133 ,218.0 ,0.346 ,1.484 ,163.0 ,2.239 ,168.053 ,156.0 ,4.594 ,182.28 ,127.0 ,2.848 ,35.164 }; double neptuneR3[]={1.0 ,166.0 ,4.552 ,38.133 }; openuniverse-1.0beta3.1.orig/src/Makefile.X110000644000175000017500000000340607116546026020632 0ustar paulliupaulliu# # openuniverse 1.0 Makefile for gcc compilers # # Remove -DLINUXJOY if your linux kernel doesn't support joysticks or # you're running other OS # # Even if you're running Linux, make sure your joystick driver is v1.x # # Add -DHAVE_GLUI if you have GLUI installed and want GUI # CC= g++ # Your Mesa base directory MESADIR=/usr/local/Mesa-3.2 #GLUIDIR=/root/glui_v2 GLUIDIR=. #OU data directory TEXTURE_DIR=./textures FONT_DIR=./fonts MODEL_DIR=./3dmodels DATA_DIR=./data CONF_DIR=./conf SHOTS_DIR=./scrnshots EVENTS_DIR=./events CFLAGS = -Wall -O3 -I$(MESADIR)/include -DLINUXJOY \ -DTEXTURE_DIR=\"$(TEXTURE_DIR)\" -DFONT_DIR=\"$(FONT_DIR)\" \ -DMODEL_DIR=\"$(MODEL_DIR)\" -DDATA_DIR=\"$(DATA_DIR)\" \ -DCONF_DIR=\"$(CONF_DIR)\" -DSHOTS_DIR=\"$(SHOTS_DIR)\" \ -DEVENTS_DIR=\"$(EVENTS_DIR)\" -I$(GLUIDIR) LDFLAGS= -L/usr/X11R6/lib -L$(MESADIR)/lib -ljpeg -lglut -lGLU -lGL \ -lXext -lXmu -lX11 -lXi -lm #LIBS= $(GLUIDIR)/lib/libglui.a OBJ = astrolib.o gravity.o keyboard.o ou.o sun.o \ camera.o gui.o lex.cfg.o positions.o texfont.o \ cfgparse.tab.o info.o loadbmf.o radar.o texture.o \ cmdline.o init.o messier.o rings.o timer.o \ comet.o joystick.o milkyway.o scrnshot.o util.o \ font.o jpeg.o mouse.o stars.o flares.o \ mp3.o events.o all: openuniverse clean: rm -f *.o *~ openuniverse .depend cfgparse.tab.* cfgparse.output lex.cfg.cpp openuniverse: $(OBJ) $(CC) -o openuniverse $(OBJ) $(LDFLAGS) $(LIBS) lex.cfg.cpp: cfglex.l cfgparse.tab.cpp cfgparse.tab.h flex -i -Pcfg cfglex.l mv lex.cfg.c lex.cfg.cpp cfgparse.tab.cpp: cfgparse.y bison -d -v -p cfg cfgparse.y mv cfgparse.tab.c cfgparse.tab.cpp .cpp.o: $(CC) -c $(CFLAGS) $< openuniverse-1.0beta3.1.orig/data/0000755000175000017500000000000010062160136016725 5ustar paulliupaulliuopenuniverse-1.0beta3.1.orig/data/Makefile.am0000644000175000017500000000015607045425301020770 0ustar paulliupaulliu#data pkgdatadir = $(datadir)/@PACKAGE@/data pkgdata_DATA = $(wildcard *.dat) EXTRA_DIST = $(pkgdata_DATA) openuniverse-1.0beta3.1.orig/data/Makefile.in0000644000175000017500000001172207116712232021003 0ustar paulliupaulliu# Makefile.in generated automatically by automake 1.4 from Makefile.am # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. #data SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : CC = @CC@ CPP = @CPP@ CXX = @CXX@ CXXCPP = @CXXCPP@ LEX = @LEX@ MAKEINFO = @MAKEINFO@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ YACC = @YACC@ pkgdatadir = $(datadir)/@PACKAGE@/data pkgdata_DATA = $(wildcard *.dat) EXTRA_DIST = $(pkgdata_DATA) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = DATA = $(pkgdata_DATA) DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = gtar GZIP_ENV = --best all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps data/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status install-pkgdataDATA: $(pkgdata_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) @list='$(pkgdata_DATA)'; for p in $$list; do \ if test -f $(srcdir)/$$p; then \ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p"; \ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p; \ else if test -f $$p; then \ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p; \ fi; fi; \ done uninstall-pkgdataDATA: @$(NORMAL_UNINSTALL) list='$(pkgdata_DATA)'; for p in $$list; do \ rm -f $(DESTDIR)$(pkgdatadir)/$$p; \ done tags: TAGS TAGS: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = data distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done info-am: info: info-am dvi-am: dvi: dvi-am check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am install-exec-am: install-exec: install-exec-am install-data-am: install-pkgdataDATA install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am uninstall-am: uninstall-pkgdataDATA uninstall: uninstall-am all-am: Makefile $(DATA) all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-generic mostlyclean-am clean: clean-am distclean-am: distclean-generic clean-am distclean: distclean-am maintainer-clean-am: maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am .PHONY: uninstall-pkgdataDATA install-pkgdataDATA tags distdir info-am \ info dvi-am dvi check check-am installcheck-am installcheck \ install-exec-am install-exec install-data-am install-data install-am \ install uninstall-am uninstall all-redirect all-am all installdirs \ mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: openuniverse-1.0beta3.1.orig/data/messier.dat0000644000175000017500000000037707045144435021110 0ustar paulliupaulliu# Basic messier object support # # Format is (one line per object): # # Name,texture,right_ascension(radians),declination(radians),magnitude,size(radians) # Andromeda m31.jpg 0.18631 0.72024 3.4 0.051 Triangulum m33.jpg 0.40971 0.53494 5.7 0.0142 openuniverse-1.0beta3.1.orig/3dmodels/0000755000175000017500000000000007116712312017533 5ustar paulliupaulliuopenuniverse-1.0beta3.1.orig/3dmodels/Makefile.am0000644000175000017500000000016607045425375021605 0ustar paulliupaulliu#3dmodels pkgdatadir = $(datadir)/@PACKAGE@/3dmodels pkgdata_DATA = $(wildcard *.bmf) EXTRA_DIST = $(pkgdata_DATA) openuniverse-1.0beta3.1.orig/3dmodels/Makefile.in0000644000175000017500000001174207116712232021606 0ustar paulliupaulliu# Makefile.in generated automatically by automake 1.4 from Makefile.am # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. #3dmodels SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : CC = @CC@ CPP = @CPP@ CXX = @CXX@ CXXCPP = @CXXCPP@ LEX = @LEX@ MAKEINFO = @MAKEINFO@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ YACC = @YACC@ pkgdatadir = $(datadir)/@PACKAGE@/3dmodels pkgdata_DATA = $(wildcard *.bmf) EXTRA_DIST = $(pkgdata_DATA) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = DATA = $(pkgdata_DATA) DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = gtar GZIP_ENV = --best all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps 3dmodels/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status install-pkgdataDATA: $(pkgdata_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) @list='$(pkgdata_DATA)'; for p in $$list; do \ if test -f $(srcdir)/$$p; then \ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p"; \ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p; \ else if test -f $$p; then \ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p; \ fi; fi; \ done uninstall-pkgdataDATA: @$(NORMAL_UNINSTALL) list='$(pkgdata_DATA)'; for p in $$list; do \ rm -f $(DESTDIR)$(pkgdatadir)/$$p; \ done tags: TAGS TAGS: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = 3dmodels distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done info-am: info: info-am dvi-am: dvi: dvi-am check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am install-exec-am: install-exec: install-exec-am install-data-am: install-pkgdataDATA install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am uninstall-am: uninstall-pkgdataDATA uninstall: uninstall-am all-am: Makefile $(DATA) all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-generic mostlyclean-am clean: clean-am distclean-am: distclean-generic clean-am distclean: distclean-am maintainer-clean-am: maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am .PHONY: uninstall-pkgdataDATA install-pkgdataDATA tags distdir info-am \ info dvi-am dvi check check-am installcheck-am installcheck \ install-exec-am install-exec install-data-am install-data install-am \ install uninstall-am uninstall all-redirect all-am all installdirs \ mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: openuniverse-1.0beta3.1.orig/3dmodels/amalthea.bmf0000644000175000017500000007724707045144437022026 0ustar paulliupaulliu ASTEROID.JPG>>>dz???dzdz|Ԛ?ݧ?G;mC>F{>Z+Bf@ZŸ ??>Y>+mtpBV@×?Gt>8=y@C>z%B "H rG)??S>Oj>Y}rBL@ʦ`G$?u?[>>jҺBSERIyX/?? ?c>IGqB@DF;N3? ?m ?d?& BGAҋ5?(?7c"RBaBAYö;?U?p?=N=B^x@z->? ?v_?0>KugB*rA٦jB??fx?ޯ=j'm>(BR @l@;C?rm ?fP?}>9>!BxnA @wG?d ?2?8>}!&?7BGGA ՖA*G??TY??W=~j(?B'&@AƸL? ?L?p>AbO?B/AAAboM???S ?s-=U?SB?\B5S?m?tc>]3>7j?c>Bz@d~#BSZ?3r? >>;b?jB\LA 2B1\?c?>0@>͊p?_B? DB$d??J>>c?\vBo8AMBk?E?+>ԏ=0i?gA @CmgBe?]?:~>>o?`B?)[B~?p ?Bw=ZyA)Aࢃ^??Z>oA?E„F%?ݕ?>#>bMЇB}rA3j’-??>^?Y 9BA:;?!?"?X8?mFBpAj,??mK?-?c;?ueB.A.C?~?,*?2?>BtA@G?Q? $?]?:?yBQAYAK?a?|2>?.<&>LV?B/A B{??r=0>޳{&BLoAd}??,H>"$>l gFPBm_Ar} '?(?F>?--.BbApT02?f?P>7?/yqBbbAH d7?m??2?B'A֙@G?'?.>#?P? BAƁAP?H?.I> ?G?B AAX?? ?{1>β>1R?Dy\>fU?+BA5B ?e ?s>CD>$Ak[A@^|<#?H`?f>P{?f{9lBAc e-? ?>`f1?Y JBB #‹";?v?S>K?GBIBBp??h?-?Y?mѼOǾB B{kcF??>C>?>BBEAxJ??ھ> ? 7?B+B$ASl?3c?Jk?5dU>x&=uh^?AvX@tBVs?z ?6z>ZAv?[DŽAASB 5s??9i.>`6/^mx?qňA?Bvnv? y?~ s=x8LT{?>9A@SB?&?ۤ+2=]rO/AAA??r{>޿}Z~ BѸA› ?lZ?*q>?>g<$BۏA‚e4?M"?'P>@?dB,BVI?%?>,? ?ȟBs(B9FA/`M?)?Cu>>q?x8?sB+BD۱Ag??;?8I>S?BA/LB~%??>^?()9:0FB;Aցm))?;*?>(?́jB&B %D~4?!,?$>܉C?$/ǍB4:B];?&_,?i=>uU?ѐ{B:BBD G?2+? >@N?…>B>BV7AhV?z '?>>H?Ny^BA B%B ?< ?f̾S>cd?A @>n|>A?1?A>te?šP?AA ElBbF?#?yeV>X>i BKB~?'?G>n ?A#BB6=k– ?+?;>? (82B BPf'?+a1?>_1?uNB8B9'0? 5?>>??nBLBe8?j9?m?>ǽ\?WrJwB7_BrorO?p4?7>o?#?ܤjBGBAaa?2??>A?7B!q)B)B c?'?C?9>f.F?.BBq8Bi?A'?X ? @j>xO?A0BPBdBt?p?E,>M>)k?NuA-AWBsw?fk ?A&ؽY~?$ A#AHBz?]W?Z}?:<@hF@B ?t1?{A־=YPh5CAyNVAh@kŽ"J?#=?'>X?W:>2bBeBɁIANY?Ca7?c5>{ ?K(0?P 5ByABBg?%?J\>?wA@B ¤$?3?tl-B8|ZBxm!|?2? mA?W>J?YIBlB$9?K? %>f?@]1BB95A?D?~>ee?FC="OBwB(BJR?S=?9>|?.?w ?FB(]BAv??m]==g~?tFGAJMAƒBt?:?־`h\GA+A4[|?a-?7>v?WCA"Bu?WwV-?l#ԅ BTB @X-J?N?Zʹ>Thi?V>y$Bu=BfC A?j ?s>@pf@@4h/#?E?>UU?UB[+rB-?K?>g_?jBрB Z@?lQ?&>!p?GW==B&ŇBk$/tX?EH?>G? >BtBN~As?M?ܦ>AK>l?dAAzB?h)B?Rz>'8?ͩ%}7AaBEDc?6?+=y<>1_AVp?z>aABe7ANd?J>?f>s?0?-A\RB "B<n?5[2?>>:F?/OA)BRBq?a(?>>^?e9AEBrlBjG?c0?yo`>tq)Ar!B:q»?ZO?4_>h]?uAq B%?V?Ta>(_l?A A BW@4?`?v-l>w?uAfBs6=3L?c?KL>w?t>iA4B@h?L?zy>D?I?AE {B@Bp?B@?og>g@ ???|AcTUB:B=x?ح?㧽Ek>|?CAOkAH:?hhZ?4A $BۖfB x?$?=K>ݛu?A AyBJ?$?L='u@]}A _ ?z;?r>*sъ2ADBT2c ?Q?+=5$U?_ Z@kIBd+¸b? d?>v?y>,&=A-ČBRAo?Fh\?ZF=nx?[f>B@wBjAl?QT?t7=i?C>>ZABB:?0?LF|;p~{(r@ B_an?\5f?`n=v?hxDw@vByn7?#sv?5>!p|?oN@Bhk?s?,+>v?&P>_W?Ba@t?ɯL?'i==?)?h@uB/z$Bpw?:?A=~ 2BW]}?gX?d<j?a> $څBB }?,?d>hd?蜓+B8nBJ?i?gFX=> ~Js>jaAu\`?oFE?ɓƢ>Fa/\B RŠ>\?;m?9 ĭ"BM¨ ?s?s?vƽ&A{?*)ĴпqBhTs?1>k#o?>_W?Ba@b BdܔA@ d?1>k#o?>,&=A-ČBRAH؀Fh\?&i=w?-b>B@wBjA@ d?&i=w?-b>,&=A-ČBRAW|?%_:?Tq=vW?pL?P>?BUBk<?BUB0ɯL?x=%?vB?h@uB/z$B?"?w.bA=A;/[S,>w!O?NZC?K$eYe|B8$#sv?_>4< o?@C=N@B=Gu?Ҵb3?:_(3BM@Ts?_>4< o?@C=_W?Ba@@:gX?U=q? I> $څBBH؀Fh\?U=q?!I>B@wBjA@:gX?gGMS?@? $څBB=1<O?5/D?h ?.ŗwBeB0ɯL?eGMS???h@uB/z$B0ɯL?LT??ٛ)?h@uB/z$B>-?Ӻ=~QA,_™>b?< I|?Ɋ_`gB#I>m?kz?l BB´$#sv?r&~?%N@BTs?Wx?w>_W?Ba@d1=b'X?axYa?5>W\dBA@:gX?lthn?> $څBB@:gX?KZ?)? $څBBUw<6?->k^?^ 82B(ZBj%_:?e' ?T?P>?BUB ,?SM ?[?蜓+B8nBj%_:?SM ?[?P>?BUB }? ?h?O?XKA@,Bà~?u?>=t~?r&A0[BD>@/=?ƻ>]kZNB\>Xpj?h~?9Bԣ]1>H2?Bu)A=^?d?7q>T(ßBǔA ,?#ܽ` p>VUw?蜓+B8nB}WYt?<AluB$?#ܽa p>VUw?A AyBu?ͽL>y?r&A0[B$?ͽL>y?A AyB>J9?>T>}w_1Bb`a>GV?ǽr?%|ĈB”>c?NJtu}? *2B2גp>x?>&l;}oe؍Af]>d;A?z)? <7cBJMŽ>œG?[N?e ~fxB1!>/U?ֽŢ_?L?* -…B_8> Z?", v?q>WʂB#EA===3I?pW;B??ŧZkB'B=<;?aVaR ? wJ?iBBq4:BJ=.?`甾{>[f?qçBAZB ,?X7ֹ>Jh?蜓+B8nB ,?r8]>|l?蜓+B8nBL>M2?b>L{>!u!Y6"*Bޔn>=vJ?ˏa??ľ//.B/1>`X?R½%}?Sp>-BzGk>|R?pՆt?v=JE(BM1@`^>Q~G?ޅ;??x8uBSA6E=7?kE> X?J>2B1@OB>X?U7y5: AZ_E&>*?o>["=xSVB\1m—>;L?Ƚy'o?7mI©BJ>CO?`s?Y-BVPӣB{@>LJ?ه_?l>PBA=>?n?ذ??zj(RB*"BG<?ɷI#q?TFwAܣvBu?K=Qy?r&A0[BT>'?>>/ztBPvp>aA?$eW?v9…|B蹈IU>2C? վbX?>c{™BkJAY>R?Sπ>6>)juA(y>x[.?ͼư>+pdF&°2(B2~o >+?ZKp ?BNTL`T)Budv>!t5?7?`}\SMBvYEd>X;?~оlI?jaBLz>A?0ȇc?}4>?վ /?B?җp(iBpAL1>@v:?ݾ>@?YšcQBlB=4?Xؾ>3T?O#€.B1B-e=-$?,־=Tg?+fA\B@ ?YZ!z?XKA@,Bu?YZ!z?r&A0[BI>]?G>(j>q$p~O/R$ANKat>*??>Kk>pjAiŒ!>"#!?,J1v,8¦NAy~€i>@7?xl??ޡ>GaeBԜ@yE>X7?7P ʕ??E>[B8>A3>K=0?I}.>)C?LX¦5BqAԤ>/?m{)A\>O`X?X""BBI=*?A)=a?r2I Bm3Bg>o ?(=B>YTy7.hޘAIIQ> (?׾>?F°t,B5Cº>Ԙ4?eL?D#¡/XBG>Y[0?OS?^TRBfO>-?_|?*m?q:7BA.4=?iҾLNi?ܪlAuaBO< ?0/}q?@qB@ ?u~D#l?XKA@,B>?;>5i(rbEA;Ԁ:w>B#?\? ~$)B]k>(?w3?>\[6B,@(C>"?)辨>B?; B|A?>$G?PJ>g?H{wA*B[= $?%ؾe=g?l3(A=IBL>?>\x>,kP!6@ zx>Ӑ?Q,pV>[‡YAByј>vy?u۾O?5¥BgT2>?+@?i Bߖ-Ё>8z?^8Y?[=1•pBB]">ӥ"?MԾ4>[?n ~A> B@ ?H8~Vj?XKA@,Bo]W?H9~Wj?:<@hF@B?2f?s5)>MClȮ? bv?ui>6 ?ˬr>{gHJA*A>$?E,Cl>Ryv"¶HA,Ä >o?*P>ZY\YA,a9(>?<'*>T[KAv Ɠ>1?MJ?ӲQ—Bb3>+? l_?| 3‡l BYr>v?=!h-?z>y¯AtI@a`>s?S ? /2?QנA|A {I>}?~6?uB?W8AAI3>A?sZ>}`\? כ\A1 B@=lA?QZc>,h?288AEB%O=9 ?夾 >+o?&xA,:`B>% ?Pq޾~=w[e<,`A{>|>-@? XX>iP¤-A:>'?f0ؾ8?[¶Ag.>?)>՜>o[xO_p>e?>!>(sx'? g>bj?Hp>=bw P@Z]>ܨ?B=Z7=sD?@,c>?WʾmHie|¶!@āϬ>u& ?N#X¼Al]8>s ?hǽIMA>*3NӐ>t@ ?=*׽v*UJAm> ?uY=M~hA[z>1o ?i*J>W>ProA??c>[ ?+1>[8?*I![A܍AK> ?T~оɰ[>cEc?RK>A>Aw<>y ?>/m?&g@'5Bw=?>1r??bB;??Mȇ-z?džX{?uBo]W?cq7R=iix?:<@hF@BT>1?y#I+s rLjD@y>?e _Ǿ>y#a@!mBOK>q?߾vq'2?Yqۈ>l?WXLoAڵ}@^> ?N0]0ݾ]><_;@ali>F?A}þ?][r@D(WApTS>>Yu9?%HkA*>>:@b?MYB>E?5y=6q?Ѩ G*B=K?訣9/>7n?f"Z6?AOB[h> >a=zo zw|odž­>]->6L/r9j%e/> >_ZP(eGxNe›>>O/;sB o>>QO.¾%F`>6>%%Jy=r,hǐ>S>R>4e;)ywh>Z>X3Ö1Œn>!>#BS=w7$>l>_>B$b$>ogTf&A#5>F>ֿ˾utB?4HBg=l1>0T1[ >#r? D™ttIFB=,g>Ƀb;*_w?\Ƙ>]Bnd>>/7>\I<{m&>T]»ܽ>2>EEfmpƒR%_Ԧ>x>l㨾GzCl(z >$r>6оCPEԾQ͇}>M>bR.Xk^?Ps q>*'>]^E`m>do.@RLW>>.q):>XPAP?>O>}Ni?:NAai >>G6J[^6o?$sO^K=Xbu?@*-NS&i#SBX =>S=x?L(stkB#?>V3?>:hkw¼> N>Z ~qT`ȩwϭ>Υ>/Y6" ABghc>qƒڑ>>*˾Oھ? !O5'>$?><\%yu#ZX>Z>HE&>FdAL>`>@|Ǿ7K?Y)BxQ>>5⮼E4> {;s ]|>>oN=|.bVp>4:>. BU=A@<6>:>m"d?J{3BŸ=F>OX|n?K:CWoJB=<>hE4edRz? qXBN/!=U>d$\KGx?fDD cBm{>I>ag~, Xk}M>l>Im pMLzA>>0˦HNj3 |`Y>>>1Y^!B+>n>RI8h$k˫>@w>ZUJ_ R^&Js>>̾Lk徃…7Yl>y>G澌Y¥w 6q>M@>龉cV<" 9#Ϩ7@\].>{>񾩎I.>tQA04=>߫wwM?T@x?B9P>K)>Pv?L[pBo]W?he?]Ku?:<@hF@B>v>UJG^I_¤{9yT>4ޥ>x޾_\]>(տ"~[Ad>V4>8о-b?aCB=]>2`nr?N •PBP>0>Qc3$,c“>W>f/Y>Π=oU> ҟ>QL:µK[B>y2>WCݼ--B ª1M>4> ihU9`,Rd31< >.>վR>J16\,Bɼ)>tR_CR>t?@epJ|Bo]W?4id22u?:<@hF@B{F>$E> ԹTMUվ/>|>wn8Y:|4¡4 X>Ɇ>vϾBh=PR<ªbA b/>>ؾnz_s,x>|HTK6LAԔ=ĺ>+Gf' ;?Ú)(/5B= >W/>̾f?%&BLB2d>yo{Zv?`zu{iB>?>eZ8gxzaœ»>>iuwGloq{ >>mT;ؾ >7¿=>z>5ۻ*>T>;Ra" ¶:*> `*>pقka4NSڱI> @>弳'o̦;:XM7 A >?S>thdq?>R%UrA=eъ>dWN?2f@8’Bʩ<>8XcRt?A# yZB>> EOOBg*QEd>/>Wʾj;JKf1_}!,> w>5Aʾ @.L"M!=;n>1Z_?ېVHBT?>JLd>7aS@¯9u­?>Y`U<>uJSZT>>4(9bMnė>ȝ>Qy.C 1 u9‹LS> >ѩ"mR>.߾%~'H b>>Vxjg)zARYݕ @?|>S>f AOBݯ>x>Ҿ DH3w&˜>I4=o͊r)ź Qi*Aş >J>)>qW=b–Ai=y[>;ˎZlG>Hء4jqAd]= '^>.JWL?0/'N¼ B> d>.f3E[]c5>xuþuFv*Bº7>a{=5+[ѿhyrFl>B?>Nm Klk?D蛆Uh>ѥ3>̾J27 IZ>=ɾQվp2aWNt[=U-p=Wc]c=x#UAj@R<{3>*>F??yQ*7Bּ>V-=Şh9X?@4jFB@l>g<$+mm?ڛ@"\BZBEM?d>,Gۓr?`zu{iBw?>5ŕ<`n?ZZAE>\sBy?)>,Gۓr?@epJ|B^&?=>O: ={ܺ@SQnik?"U>/W+O&:/@**|@|>pj>=;BoLS5;X*Q?/=_Ǿ1[, ܈–rL=l=sSh"Q>(k1x> AXPK]V*6>TZmyAnY?؄>u9?q)…FN_ ?4==@SP@a`?\no۾"|<Q"a06>WHx8Շ~=zy S=4)?A=[7XH>^y}!A@ϼs$>rꓽh#D?l4@<«+B ?Ad=>GOou0@ʧX(\Yo?~=վj_\EД>4)?Ax@ bA~?=վj_\EД>^y}!A|>NeK+ ?@*acA0O/*>> BB?>@iwBT8?=}M^elTAº?>Ϣ`x:A lXoH?\=%r"Y+@n¸׾T{W?|<ܽ j 06>WHxYo?~= ysY{<4)?AT{W?|< zsY{<06>WHx$7p?>OSF?@*acA~?=OSF?^y}!Afy?l>{Ǿ j?ڛ@"\BZBEM?d>{Ǿ j?`zu{iB ?>&A VLA1`ׄv ?> 彴/A7L[A9­s ?ڕ>m)6~\A.?.1\–Z ?$x>+B+j~;Ax;WK}??Y>bXRC Ai(`G?= BeI|NAS~&@@|R?z=T5&,t@x>A#%AYo?~=)Βu =4)?AYo?~=;w0>4)?Aa?=M"]G>4)?A$7p?>fUSVz?@*acA u?*>>b@E(g@?>@iwB$m?l>P6J?|vAt2U[By?s$>b@E(g@?l4@<«+B`m?>zX=# `?ƘA'#" ;By?s$>z<4 qU?l4@<«+BOy?>s <>Z?@4jFBy?s$>s <>Z?l4@<«+BOy?>=,޾~e?@4jFBWr?(>zH=;gԾėh?DAmARBfy?l>=,޾~e?ڛ@"\BZB9 ?>%!sC`AU`5: ^3֧6?AJp8B$7p?> >M+?@*acA$7p?>i-@(?@*acA u?*>>i-@(?>@iwB u?*>>z1j8?>@iwBOy?>-a=2̾BVj?@4jFB+r?<>S=.ɾi??A(uhBfy?l>=>Ծog?ڛ@"\BZBfy?l>=]{jc?ڛ@"\BZB?wp>@D(SFA Җqf?1i><RBrA!V©NLt ?g>єXXI;aA_ygM.¢? E>ޕOc󧵾PAԂc !*>?Y> huy TB,ª-m5?*/>pB=OV?w1>=_K?nB?HhAc ?Dh>q>Qr_LA/} ?4>, > yėAy/JT?>=fPZlA00?;>h qD^BY:eJ?>=w)d>/ B%Ĝt@,f?>=cR?A:LD%BW?>:s0y}(g4(5 BNkR?>$?f>5=?\uoJB&@nރ=?A>(=_|ԃ;BE?B>jY>FqC/>8B#@L?5^T>I>M? G;B%LVAy\?U>6@>?"A?B_ BJs?> >Lq?@xAV@xBy?)><*w?@epJ|B ?>se;> dAJHai?>e<֜{8`ARmqG ?QZ>A>#oA-BĒ\œeIW6?7_Y>7:Z>nMBd!&/?,s>꾸>XǾ,WBwV?Cy>ꅉ>1+?T3Bsw³A^?#o>B>$V?/BS~-u+Bd?\> >4 ׾|e?.Bn~8DB k?y>.y=|zm?MA7OZB.?lQ>_p>77@,oBnu Ws7?aB>>?jTsA|B:ZҊq=?3r>7>o`٢huB^ D?_l>q߽>fPa>P9lBY@tK?ǃ>D>J>pBf¨{AP?`>`>:)f+?"qtBZaSAJ!?;5>ۋO>çF-VBjQ*veW1?> ?DD𳾓 BYw@D?7>?oC[>ȕBgBx†@XX?>v&>=E?kUB@"Bdf?>>su> 8go?Bu`VB?>ێ= obBJ'¸3?8>`=`eb69BSU­(?>9>)Pt*n{BhF´?:?F>Lb#?1 =^[BмonL??_>s"?^E-M!BpkR>bp/tR?/ÎB3VfNAU?b>>4"N?WB)!B&n?:>'>3F yq?APlBO? >~\ȟ>fAԧV .?q>*?8BG DŠf `4?ƣ>?/tӾ;B~ \h(n ]?ĺ>8^>)NJ{b? LBZ °P4B˵?>ý0:>dzAVo?r>]>/>}'Bn€?>G>7ss`]CB\6U#?*>^>2þlfNBK z”&?5>p>>Q@G BfCDcc*?>d >6)[%qB|Kq??>r7?2b;q"BT#³MKC?߮>?Z)?7,g>sDBLˆl@I?4>?P%>2Bq4D#> A4?ʞBδ'¡AXX?wR>F>斾Smf?5zB+0B]?>>z=ll?(^PBPVABRg?>#>pu?$!B&`BPc?0>=>C>GARo \B4҃1?@>?(Nܾq B:} ‘p¤6?C0>$?4$];B$,›hF?>*'?%#E>>Bp ’_AW-S?J>X>\?ۛBKBw'?>ّ>Vy`1^OBm‘*+?Y> ?<M 3 BR2TM0?Yl> 1?U39Ba4//_:?J.t.B' FC?>˵9?;>B\–@`?A>V>>j)nt?̋CBj@RRBy?)>9k=T;z?@epJ|By?)> <{#*ye|?@epJ|B1#?+>_>rBpQ"~I6?>D?,@6]1B1EI? >^"?9 ?Y\B$|A+O?Q>X?]ӾA? íB in7BX?>>ufBOm?ÄBz[ɓ7B8?>>i$= vīcB0¢A-?> ,?t;BB7EO€;?P>gBF?r5B%ԯ tA?>E? =[B ?eF?[>??`{>B߅sA]I?>#?iz߾_!?EBƒؿAt*?>p>=cUBk `+@?<>WO?>E=B5+tsN?F>>xqV?aB4YB 3[?`>wv>6;*s?sB>˿BB1?"E>P0?Hj93{B %2m6?>mU?"FUB\^`EFm=?h>p?, B /V0D? >Fc?">BXA3I?>Q5?8r7*?BփEAT?֟>VP>>w&}n?ʚB,BTs?1>k#o?>_W?Ba@@ d?1>k#o?>,&=A-ČBRAH؀Fh\?&i=w?-b>B@wBjA@ d?&i=w?-b>,&=A-ČBRAj%_:?x=%?vB?P>?BUB0ɯL?x=%?vB?h@uB/z$B$#sv?_>4< o?@C=N@BTs?_>4< o?@C=_W?Ba@@:gX?U=q? I> $څBBH؀Fh\?U=q?!I>B@wBjA@:gX?gGMS?@? $څBB0ɯL?eGMS???h@uB/z$B0ɯL?LT??ٛ)?h@uB/z$B$#sv?r&~?%N@BTs?Wx?w>_W?Ba@@:gX?lthn?> $څBB@:gX?KZ?)? $څBBj%_:?e' ?T?P>?BUB ,?SM ?[?蜓+B8nBj%_:?SM ?[?P>?BUB ,?#ܽ` p>VUw?蜓+B8nB$?#ܽa p>VUw?A AyBu?ͽL>y?r&A0[B$?ͽL>y?A AyB ,?X7ֹ>Jh?蜓+B8nB ,?r8]>|l?蜓+B8nBu?K=Qy?r&A0[B@ ?YZ!z?XKA@,Bu?YZ!z?r&A0[B@ ?u~D#l?XKA@,B@ ?H8~Vj?XKA@,Bo]W?H9~Wj?:<@hF@Bo]W?cq7R=iix?:<@hF@Bo]W?he?]Ku?:<@hF@Bo]W?4id22u?:<@hF@BEM?d>,Gۓr?`zu{iBy?)>,Gۓr?@epJ|BYo?~=վj_\EД>4)?A~?=վj_\EД>^y}!AT{W?|<ܽ j 06>WHxYo?~= ysY{<4)?AT{W?|< zsY{<06>WHx$7p?>OSF?@*acA~?=OSF?^y}!Afy?l>{Ǿ j?ڛ@"\BZBEM?d>{Ǿ j?`zu{iBYo?~=)Βu =4)?AYo?~=;w0>4)?AYo?~=)XfS>4)?A$7p?>fUSVz?@*acA u?*>>b@E(g@?>@iwBy?s$>b@E(g@?l4@<«+By?s$>z<4 qU?l4@<«+BOy?>s <>Z?@4jFBy?s$>s <>Z?l4@<«+BOy?>=,޾~e?@4jFBfy?l>=,޾~e?ڛ@"\BZB$7p?> >M+?@*acA$7p?>i-@(?@*acA u?*>>i-@(?>@iwB u?*>>z1j8?>@iwBOy?>-a=2̾BVj?@4jFBfy?l>=>Ծog?ڛ@"\BZBfy?l>=]{jc?ڛ@"\BZBy?)><*w?@epJ|By?)>9k=T;z?@epJ|By?)> <{#*ye|?@epJ|B              !"!""#$$%%%&&' ('( ())*"++##,,$$-%%-.-../&/0&&00'112234354*67!78!8"!,9$$9-.//:0:;0;'0<)678="=+"+>#=>+>,#,?9?@99@-@.-.A/A:/;B''B(B)(<1C6*@D..DAA;:E217F88G=FG8GH==I>HI=>J,,J?JK?K@?AL;LB;BM)MN)NO)O<)<E1EP2P323Q55QRS6CIJ>KD@DTATLALUBUMBOE<6V7VF7HWIIXJJXKXYKKZDYZKZTDT[L[ULMONP\3\Q3S]6]V6F^GG_H^_G_WHWXIZ`TaSCV^F_bWbcWWcXcYXYdZd`Z`eTTe[[eUOfEfPE^g_hg^`ieejUUjMMkOjkMklOlfOVm^mh^_nbgn_bocnobopccpYpdYdq`qi`rjeskjPt\tQ\Su]]uVumVhvgirersjkwlwxlxflSyumzhzvhg{npqdq|i|}ii~r}~iswkftPxtftRQaySumzmv{gno{npopqq|q~rsryuzp}~~wxayzzv{v{sswwy{{ytRtxtaa                           !!"!"#"##$$%$%%&&''( ( )*)*+*+,+,- ,--.  .!./!!0"/0!"1#01"#2$12#2%$%3&4(45(5( 66+7,,8--8.89..9//:09:/:101;2;<22<%%=3<=%&>''4>4'?545@@A6))B**C+BC*+C778,8D99E:DE9:E1E;1;F<3G&=G3G>&>?4AHH68IDEJ;JF;<F=FK==KGGL>>L?LM?M5?N@5HO6OP66P)PB)BQCQRCCS7RSC7T8ST78TIIUDUVDDVEEWJVWEWFJFXKGYLKYGZ[T\I\UIW]F]XFX^K^YKY_L_MLMN5N@P`Ba`P`QBRbSScTbcSc\TUdV\dUdWVe^X_NMNZZfgQhRhbRci\id\djWWj]jk]]kXkeX^lYYm_lmYnZNHoOOpPopOpaP`qQQqhbrcrscsicitddujjvkuvjew^wl^_xNmx_`yqqzhh{bz{h{rbstitudvekl|mxnN}AA~H~oHpaa`ay`{rrsstsvwem|x}A~Ayqqz{zttuuuvvvvwlwnfZopp{{~ooyll|||x|nxa}~~}a}                    !!4"#4R $$ $ % &&&&''((4*  )  ) )$ **%%++,,  -&,- -.&(!aCC*  )/$$//*0,+00-,.1&&1'1'2!(!224)//3**34%34%5+45%+5056006--7.67-71.188(82(2!!45R))/3//343 4 54 5 656 76177811288              !"!""#$$%%%&&' ('( ())*"++##,,$$-%%-.-../&/0&&00'112234354*67!78!8"!,9$$9-.//:0:;0;'0<)678="=+"+>#=>+>,#,?9?@99@-@.-.A/A:/;B''B(B)(<1C6*@D..DAA;:E217F88G=FG8GH==I>HI=>J,,J?JK?K@?AL;LB;BM)MN)NO)O<)<E1EP2P323Q55QRS6CIJ>KD@DTATLALUBUMBOE<6V7VF7HWIIXJJXKXYKKZDYZKZTDT[L[ULMONP\3\Q3S]6]V6F^GG_H^_G_WHWXIZ`TaSCV^F_bWbcWWcXcYXYdZd`Z`eTTe[[eUOfEfPE^g_hg^`ieejUUjMMkOjkMklOlfOVm^mh^_nbgn_bocnobopccpYpdYdq`qi`rjeskjPt\tQ\Su]]uVumVhvgirersjkwlwxlxflSyumzhzvhg{npqdq|i|}ii~r}~iswkftPxtftRQaySumzmv{gno{npopqq|q~rsryuzp}~~wxayzzv{v{9:;<s=>swwy{{?@ABCDEyFGHIJKLtRtMNxtOPQRSaTUVWXa                       Y    !!"!"#"##$$%$%%&&''( ( )*)*+*+,+,- ,--.  .!./!!0"/0!"1#01"#2$12#2%$%3&4(45(5( 66+7,,8--8.89..9//:09:/:101;2;<22<%%=3<=%&>''4>4'?545@@A6))B**C+BC*+C778,8D99E:DE9:E1E;1;F<3G&=G3G>&>?4AHH68IDEJ;JF;<F=FK==KGGL>>L?LM?M5?N@5HO6OP66P)PB)BQCQRCCS7RSC7T8ST78TIIUDUVDDVEEWJVWEWFJFXKGYLKYGZZT\I\UIW]F]XFX^K^YKY_L_MLMN5N@P`Ba`P`QBRbSScTbcSc\TUdV\dUdWVe^X_NMNZZf[QhRhbRci\id\djWWj]jk]]kXkeX^lYYm_lmYnZNHoOOpPopOpaP`qQQqhbrcrscsicitddujjvkuvjew^wl^_xNmx_`yqqzhh{bz{h{rbstitudvekl|mxnN}AA~H~oHpaa`ay`{rrsstsvwem|x}A~Ayqqz{zttuuuvvvvwlwnfZopp{{~ooyll|||x|nx\]a}~~^_`abcdefghijklmnopqrstuvwx}ya}                    !!4z{4R $$ $ % &&&&''((4*  )  ) )$ **%%++,,  -&,- -.&(!aCC*  )/$$//*0,+00-,.1&&1'1'2!(!224)//3**34%34%5+45%+5056006--7.67-71.188(82(2!!45R))/3//343 4 54 5 656 76177811288openuniverse-1.0beta3.1.orig/3dmodels/apollo13.bmf0000644000175000017500000035265707045144437021705 0ustar paulliupaulliu APL-O01.JPG>>>dz>>>dz???dz9Ŋ?{,?3-.4?Zn7z?z,?3-.4?4Ի 7`?z,?*ñ=[H~?qBm8^={,?S7$c=Zn7B/=豺:Ǿk{q4һ Ü_B/=z,?ecyF4Ի 7B/=豺Ob}恳4һ Ü_İI3豺Ob}恳麻&Ü_z?z,?3~$4?4Ի 7?z,?Zq=(`q>麻&7 u?z,?>QT V>X4BԻ 7$tj?z,?Z?WTI)=Bn7`?!鱺6[=.ñH~qBgœ_܋U?!鱺?žZ.94Cœ_݋U?z,??3[.9?4C8-J?!鱺&?MCgQ9#C4'œ_/J?z,?!-?S Q9?#C@'8??(걺0?aAq/\*CP@_@?z,?0?a=Bq/=\*CǎP@8 5?(걺&8\?.2>U#C'AB_"t*?!鱺?3>[.94CB_ ?!鱺^?ؐ>9qB_B_܋?!鱺2>\:?BC_- ?豺> QT?UU4BN@'C_?豺Zq=(`?q麻U-C_Ĥ>豺/2(8\?U4N@'C_G>籺:ɾI?ZC_>籺(?bw_B_ĺ>籺\:0> B_]>籺 QT>U#$AB_> 決(`Zq=qH*P@_M/T> 決(8\'2U#7'œ_ē)>籺I:ɾ œ_>籺(dwgœ_^=籺VRZlÜ_>{,?(d>wm7B/=豺:Ǿk{q4һ Ü_ċ)>{,?\:2> 7H/T>{,? QTU>#C'7>z,?(`Zqq>H*ǎP@8[>z,?(8\+2>U>#AB8ù>z,?I:>> B8>z,?(?c>wYB8G>z,?*\:?>ZC9æ>z,? QT?U>4L@'C9?z,?Zq(`?q>麻U-C9. ?z,?,2>(8\?U>U4BL@'C9݋?z,?:>I?>BC9 ?z,?ڐ>_?9?qBYB9%t*?z,??>Y.9?4CB9 5?y,?QT?>V>#CAB9z?z,?Ob}恳4Ի 7?豺} &8\VX4Bһ Ü_$tj?!鱺>{dI)BlÜ_z?豺d04һ Ü_Ŋ?籺sJ>IZlÜ_2>                 !"#"$#%!% %&'()*+,-./0122210/.-,+*)('& 34 5 6 6 5 4 78 APL-O03.JPG>>>dz>>>dz???dzz3=oU=|g4H_x`AC31N>oU=|g4~uDC<=Zk=8]0?A`AC31N>mS=r}+~uDC3.>lS=r}+ce[DeC<1N>=}7AʔDC3.>P=6y]ce[DeCz3./?P=6y]œC1=Qzp2F@@eCz3./?K=`sHœC{83_?K=`sHVt4m LC<./?=uɛ_@-9œC{83_?rE=NlfbþVt4m LCA4Ð?rE=NlfbþKH,;C<_?&k=Boe@k LCA4Ð?==bKH,;C٧4G?==b÷PC^<Ð?ry=fDؾ@oG,;C٧4G?̼fC>`÷PC 4:?̼fC>`^9,C^9,C6~4ƾ?w=Lb?I;> W5:ŒC<:?Ps?N6@a ,C6~4ƾ?&\Ec8l?M> W5:ŒCZ4\?&\Ec8l?N>3 L^C<ƾ?Lnmf?>Υ@ 9ŒCZ4\?zKs?Ι>3 L^C{83,?|Ks?Ι>pz:CH<\??ǽg:o?L>@A]C{83,?lPy?YF]>pz:Cz31>lPy?XF]> €CF<,?əͽu?>@(3y:Cz31>Sy}?J> €C{83>Sy}?J>ToC<2>ѽz?>1>@€C{83>mU"i?1=ToCn4T=mU"i?1=𹻧¨MC1<>|Խ/}?E=G@܌ToCn4T=:)ü5?𹻧¨MCz3=:,ü6?H_x`ACYe|X#4=]ӕØH=\{<*i6^0 -<DD>mze+>]ӕØĘ<[>mze+>#1TsG=DD>Ssy߿=#w˜Ę<[>@~v]>#1Ts <`?@~v]>܁E J{ėG=[>ÍQYv+p2>cGgs <`?'o6q>܁E J{'1qF=`?M^qś>K2,J{'1qĜ>٭F4hĸE=M.?.HQk>za"JqĜ>٭F4h<|? dh`k>v*_C=KV?,AbD>ⓖ)F4h<|?%B=>`?v*_< y?%B=>`?"y_^@=|?< u?n*_< y?J >W`?;"y_<;S?K >W`?;쾱 ¤h>= y?C>"0p? >Zvt_<;S?>4i? þ ¤hĐ<,?>4i? þ&+0rB=;S? $@>Tb?Gؾ_ޞ¤hĐ<,?g>L/q?Ι&+0rę<?g>L/q?ΙJ:¯{E=,?ZG>Nk?RLZߥ0rę<?>v?D]J:¯{2< >>v?D]IN5LF=?& M>eq?ع*q¯{2< >p>Wz?JIN5Ďp>Wz?JQm¥G= >-Q>v?1^7^5Ď>|?C1Qm¥Ĭ<<>|?C1TF1H}G=A>S>yy?Gݘ¥Ĭ<k+?j97HĹ31N>mU=gO4~uDChH= =G>5j6^0?XAjO`ACDH=2N>S>syږA3>DC3.>kS=r}+ce[DeCz3./?P=1y]œCG=Q>ٍQ>Kv$q2wxA-@eCL=3N>>rɾADCL=R>7>Ӻo"q2>:Ac@eC6G=./?ѤM>[q雄gA%œC{83_?K=js%Vt4m LCA4Ð?koE=NlJbþKH,;C F=_?/H>QkJdOAg LC>L=./?g>#k뛄|gAN|œCܭ=R>TJ> =f q2 A_@eC=./?i>a%AqœCL=_?ߔ>diA` LC+D=Ð?,A>bDؾ.<1AC,;C٧4G?_==b÷PC 4:?̼C>`^9,C@=G?;=ҔuYv AڠCL=Ð?u>S\EؾxAD$>,;Cȯ=_?^>[l8A}W LC#̪=./?ǃ>V{} BdœC̪=_?>*DP=k`AK LCű=Ð?>kSDؾ_A6,;CL=G?=[VudEQACU?=:?CP0p?וA ,C6~4ƾ?:=Rb?;> W5:ŒCZ4\?_Ee8l?4>3 L^C;C=ƾ?#@Tb?S>6%A5ŒCL=:?5͓Ǻi? ?A ,CP=G?e >.]{+uA@ CbΪ=Ð?_>_HDؾ.Al+,;Ch=_?} ?ȓB;Byh= LCl=Ð?y}?;DؾG!A ,;CЪ=G? &>bkiupAC綈=:?fľ`?38|A,CnL=ƾ?} ѥ\?w>vA_0ŒCaE=\?ZGNk?DL>@CA,YC{83,?Ks?Ι>pz:Cz31>Py?:F]> €CF=,?p Mfq?8>AZA6t:CBL=\?vVd?|L>|jA$RCƲ=ƾ?ǚS?W>X&A(ŒCѪ=:? W6U?jXAr,C,=G?T=>iXuACf=Ð?{N?:g,DؾrB5,;C`=G?@S>C]uA0C=:?|qG? A",CϪ=ƾ?羰H?&>DAofŒC=\?þu[?pL>LAICL=,?/k?>Am:CdG=2>K.Qv?1>fkAk€C{83>CSy}?J>ToCn4T=KoU!i?1=𹻧¨MCG= >Syy?F=GuA*qToC*L=3>﷛o?1>-AȎ€C2=,?#ɾca?ܛ>Ac:Cͪ=\?yQP?GL>uA>C=ƾ?l>3;?*>AŒC=:?c"7?/cA,CTz>G?f>ݓ,uA(CLz>:?)4r%?A͵,C=ƾ?,?+>v4BCŒC=\?.L qB?+L>Q BX1C̪=,?0A#V?ƛ>$BBW:Cn=3> ;3Nf?1>UCAfiv€CL= >Cۍr?G=#AjToCG=T=<\%j+?9?]yAXv¨MCz3=:Fü6?H_x`ACL=T=\l#&?9?VA`¨MC= >Ͼh?G=IAԀToC̪=3>$)SZ?21>B h€C!=,?FH?ޛ>BEH:C=\?f l2?/L>fB]!Caz>ƾ? @, \?M> BlCן>:?~+E9?67A%m,Cx>ƾ?;q?[>B!BChz>\?2!?jL>.BC=,?W%7?>{[0B6:C=4>M%K?1>&BX€C˪= >\?G='DBsToC⭈=T=UV;?9?A¨MCL= =-S>1_0?A<`ACe= =م>R+^0?uB `AC˪=T=c4?9?7UB&w¨MC= >8VN?F=G2.B|bToCw=4>(o;?A1>=B5F€Crz>,?c7%? >CBw#:C>\??Bu ?L>Xc>B`C*>Ǿ?hH >I>,BC*>\?2JP>L>@KB1CD>,?G_f?">gPUBF :Czz>4>E;(?e1>SB1€C^= >^*Y=?nG=;FBEOToC=T='׾ ?9?0Bf¨MCR˪== >" ]0?$\B`ACy=3N>f>hEAmDCa˪=3N>{.>I\޿>B5DCK==>mY\0?I:B s`ACS=T=F򾛓>9?mHBXR¨MCzz> >t=Ǹ*?AH=)\B6[9ToC>4>K:?1>@eB€C *>,?"VD>>gdBra:C9;>\?[׷>qL>9WB-C;>,?aj'> >rpB57:C*>4>XZK>1>9vBw€Cٜ> >NN%?-H=oB'!ToCzz>T=X3>і9?;_B)<¨MC0==N> \0?SBrE^`ACP=4N>?fKNѿ57BoDC˪=S>WK>?Zp2Bv@eC=S>5?K=p2.0B*ve@eC5=4N>e*?v=ӿ$PB![DCzz>=?5l^0?3'kBF`ACϜ>T=}uLZ>9?sB~#¨MC0*> >\>H= ]BToC!;>5>Rf >F1>AŁBQCL>,?#k>>zB$و:CL>5>o>,1>BIrC;> >h_>G=eB/ToC!*>T=Ƨ>9?%'B ¨MC>=U?b_0? B-`AC}z>4N>oz=?1*ֿPhBKDDCS=S>[(?Y;5p2}HBQ@eC=./?f?[Gx#BTœC=./?t%?7:B_\BœCwz>S>Q;?(>p2|^B5;@eC>4N> SN? *|BÇ*DCʾ*>=Z?oc^0?#B'`AC;>T="#w>59?HB'MCL> >Љr%>}G=CBToCf]>4>v %R>y1>BEd8CG]> >_oyyT>gG=ZB6BToCL>T= )[G>9?9BMC;>='?=?\0?9B3`ACپ*>5N>\?bEBcDCԜ>T>!K?P!&p2rB.$#@eCuz>./?;7?Zs%כ[BOB-œC=_?!?2Q_'BR, LCkz>_?2?2 lk9BVz LC >./?H?IGԛraB'œC&*>T>S_Z?o2ӁB+@eC;>5N>&i?DϾ򿳽ǮBQDCZL>=.?v'\0?B2`AC?]>T=+g-=19?BFMCn> >}=G=^BPToCn>T=/(wZ=9?lBǓMC!]>=y4?ߋ,\0?hΚBtS`ACdL>5N>r?Ž؄BbDC;>T>Vf?̾o2BM@eC*>./?6V? ٛpqBijCt>_?B?T rJB  LCfz>Đ?jy,?-:EؾtB{,;C>Đ? ;?>JEؾv,Bm ,;Cs*>_?oP?IXBkLC8;>./?Ma?Ⱦқ9~B|CL>T>o?o2Bt%@eC#]>5N>ny?CTXBODCn>=7?n^0?"gB=`AC>T=FD0y69?AB4Q@MC>=}9?f_0?FBQ@`ACn>5N>,}?4ս MBұDCB]>T>v?Qep2bBvE@eCL>./?/k?՛BRC;>_?[?eþf.dBiLLC*>Đ? I?Dؾ9B_,;CS>G?Tnw>cu BCB*>G?>h"uBC;>Đ?T?QhDؾ2CB,;CQL>_?d?#6mB8LCp]>./?q?MϛqB.4Cn>T>&z?vҽ q2 BD&@eC>4N>?8`)B%Q@DCΒ>=x8?Pm=^0?gB1 9A`ACْ>4N>Қ}? =4 MBPZ7ADC>T>G|?JlN9%q2B/Q@@eCn>./?u?νBC]>_?Tk?G ;tBl:LCL>Đ?ܸ\?,Dؾ.KBS,;C;>G?DY>fuB-_CX*>:?W[ScX>0B,C;>:?._(>o B-H,C|L>G?rr>1 ug!BzCH]>Đ?Ob?@DؾxPBz,;Cn>_?zDo?!ȽG9xBO./?Cw?9ȀBmQ@C>S>qz?=q2 B2A@eC>4N>bky?uT>0B 8ADC7>S>v?R>p2eBA@eCC>./?u?=盄B`)AC[>_?!p?d_9\?zBQ@LC'n>Đ?bf?DؾuTB,;C8]>G?>j _uã%B~CL>:?0h)>B ,Ca;>Ǿ?.Sʼ>>5BŇCxL>Ǿ?]\͘>>i=BAC]>:?YoS>sgBF>,Cpn>G?>buk(B C>Đ?f h?n9EؾڣUBQ@,;C>_?*?o?ȋ=A./?q?34N>ěqBXACr>S>Ѻo?[>p2BeA@eC>./?#k?>BPAC>_?RJk?fH>@tB]ALCn>Đ?ſf?S=DؾuTB A,;C>G?eg>:?^s" =hBO,C]>Ǿ?b{A>>BB]CL>\?yd\ؔ>gL>_B7nC]>\?QL>w-fBC;n>Ǿ?f=Q>FBC>:?f u;KADBnQ@,C>G?A>>`=,u k(B@CH>Ð?b?A>Dؾ{PB>fA,;Cӛ>_?d? >@mB̴ALC>./?a?&>C~B6AC>_?e[?>K7dB%ALC9>Ð?^\?֤>Dؾ.KBT-A,;C=>G?斉>`=kuţ%Bj\AACQ>:?]s2ShB@,C>ƾ?yg9u>)GBQ@C n>\?#1o҃=iL> jBa9:C]>,?q 5N>>oBi':Cn>,?uA=,> Bi:C>\?p9L>VkBQ@C̔>ƾ?fU>FBAC>:?'pDjBՠ5A,Cꜙ>G?:j>^="ul!B΂AC!>Ð?$S?ܼ>Dؾ3CBeA,;Cݣ>_?TVP?>}XB BLC⣪>Ð?kH?B!>Dؾ9BXA,;C>G?ʉ{>(e >]uBqˣAC7>:?6iԓ$Bj3tA,C>ƾ?b0@!>BB;0ZAC>\?6oȽmL> jBAC;>,?CwS9G>փBQ@:Cn>4>z=1>?BC>4>g|P91>BbQ@C|>,?uYν6>"B"A:C>\?.GkG@L>|-fBSQxACi>ƾ?\< >i=B:AC>:?`Kþt BWA,C>G?Wdk>%>uB]ACk5>Ð?;?Y}?Eؾ,B B,;C5>G?:X>'=>u B=AC>:?:KU]BoIA,C>>ƾ?S;W>5BAC>\?fdjvPL>_B?AC>,?q+M>pBA:C0>4>:zӽ1>?BZ+AC> >78G=)0B?Q@ToC> >B}սG=^B0AToC\>4>vQ\1>BrAC>,?/k> zBA:C>\?o[YþoL>AWBnAC裪>ƾ?HiZ>,Bw(AC@6>:?sG˂7AA,C Ȼ>G?C>iS>#uAACȻ>:?|h7"5 A A,C5>ƾ?;>>:!B;$BCߣ>\?cP9L>IKBBC>,?naȾ >zpBwA:C>4>oM1>BAC@> >ryETG=\B˓AToC>T=.`9?lBOe2AMC6>T=Dd+/%79?B/LAMCz> >܍rAkG=IBOAToC>3>H]f ̾1>FŁBBCݣ>,?<6V~>gdB*B:C45>\?ZB#L L>yc>BgBC:ǻ>ƾ?mj,-~>BiBCN>:?Mf%T4JtA0B,CM>ƾ?@X,:>r4B"!BCƻ>\?2 L>C.B*BC4>,?HGٛ>yPUB(B:Cأ>3>zeZ1>BvBBC> >iMHϾG=eBxBToCo>T=#&7l9??B AMC>=e6?f> ]0?VΚBA`ACY>=1?S>h\0?wBA`AC>T=_69?HBO4BMCף> >8\I=]BT(!BToC4>3>K!%1>@eB 4BCƻ>,?F7Ls%盄>CB=B:CUM>\?t *2>L>gBƾ?q; >A)5.BC=>\?u BB*L>Q BNyKBCM>,?t%7⛄>[0BPQB:CŻ>2>V;H(1>SB-=KBC4> >~VNOH=oB6H;BToCգ>T=@ߖ9?)'B8#BMC>=\+?E]> ]0?,BϹ B`AC_>4N>r?u>B*ADC>3N>h?K]>߮B BDCף> ="?Q_>p^0?B~=+B`AC4>T=E ׾9?sBϵ=BMCŻ> >g}=*oG=*\B{SBToCL>2>(X^;l1>6=B>`BC>,?rfG>BIfbB:CO>\?{7P?L>vA|XBCO>,?zoV>XBbqB:C>1>x:K1>5&BrBCL>>ٜ*ύ=LG=;FB8fiBToCŻ>T=kU+ϖ9?;_B~?VBMC4> =?>m_0? B4$GB`ACգ>3N>\?>}gEB )BDC>0>'Lf?>[p2BBDeCԣ>0>wRZ? > p2ӁB"BDeC4>3N>JKN??p?|B#DBDCŻ>= ?n>t^0?['kB `B`ACL>T=YO@ 9?HBZxlBMC>>NNF=T2.B|BToCO>1>REZ31>BBC>,?jɾzaD>`A8}B:C >0>P;CfN1>CADBCO>>2\F=NDBنBToC>T=4fǾ0n9?0B'BMCL>=N >?\0?SBexB`ACŻ>2N>q=?е*?ehB(^BDC4>0>K?P6?tp2rBD=BDeCڣ>./?"V?D>{qBOzBC4>./?WG?f?aB}1BCŻ>/>s@;?(?p2^BUBDeCL>1N>*?K=?&@PBVAuBDC>=<>a]?E\0?X:BʖB`ACO>T=1d 9?JUBBMC>>EϾih@G=WJABToCf>0>D雾o%1>A BCf>>3ωrG= $A:zBToC>T=E"9?DAǏBMCO>=>P?\0?;\BߕB`AC>1N>?SN?4F7BBDCL>/>)(?^j;? p2}HB"kBDeCŻ>./?7?%?pBOBGBC5>_?B?} ?sJB* BLCGƻ>_?22?!?9B4BLCL>./?>X%?7?:B|\BC>.>x!? K?o2.0BBDeCO>0N>b>\?>BMBDC#>=v>'?_^0?BB`ACf>T=(eG$)29?A/qBMC>>S wyG= uAGBToC>T=(m-9?D^yABMCf>=Rv>K.?G_0?dAzB`AC>0N>Ȉ>h?ԿBFA-BDCO>.>>LZ?o2B#PBDeC>./?`G?H?#BSnBC/M>_?* ?x2?D_'BGBLCƻ>Ð?O,?2i?DؾpBB,;CM>Ð?G?,?DؾpB+B,;C#>_?T ?B?HBֈWBLC O>./?wA>#V? B ~BC>->>Gf?o2o AoBDeCf>/N>׎>r?򿳽ABDC>=2,>}4?\^0?XA_B`AC~>T=#Yk/39?N@BMC~>=kw=h8?\0?A=B`AC>/N>8S>uy?ȿIAONBDCf>->>o?o2:ABDeC >./?#>Ya?뛄P&ABCO>_?o>]P?``AeBLCc>Ð?G?,> f>puA BC>G?ϛ>bw>-uAcBC&O>Ð?>H?Dؾ_AFB,;C>_?>([?toAʦqBLCf>./?>e/k?뛄gA7BC>,>(Q>v?to2KxA_(BDeC~>.N>{= }?ǿAۡBDC>=a<ʀ9?\0?ѤB`AC>.N>ϸ?BDC~>,>R=z?Eo2@͚BDeC>./?M>Qq?ʛgAjBCg>_?e>td?tA({BLC>Ð?$>T?DؾA-7PB,;CBO>G?;=>cupA@BC>:? a-E#Aʱ B,COO>:?>GSBXAB,C~>G?F=R>"u%A'BC2g>Ð?,>ĸ\?EؾADXB,;C.>_?hG>X\k?OACBLC~>./?Z=u?ța@uIBC>+>@RW|?o2`kBDeC@?-N>nԽ}?߿A ۡBDC@?+>"ҽ[z?p2&КBDeC>./?Cw?@治 BC>_?=FHo?Qf@'BLC>Ð?5@>c?Dؾ<1A^B,;Clg>G?X~=n>uEQAb&.BC_>:?˾_ĕd|AB,C.O>ƾ?LH%>@DAن9BC>ƾ? .S1>s&ABBCg>:?1jh,?A| B,CV>G?Z={>+uv AK2BC3>Ð??=9f?Dؾ@0aB,;C>_?ʹ0p? [rBLCz@?./?pνu?ܺeIBC ?*>]Q]v?(p2xd(BDeC?./?lMeq?ʛhg^BCl@?_?jɽCo?*BLC>?m3} h?DؾbB,;C>G?v~;>lu=@5BC>:? SBbo+At$B,CAg>ƾ?Wb\M>PvAJBC>\?þ[ZL>AdBCg>\?ؔkdL>jAxlBC>ƾ?A0b@>@7%A+OBC>:?[۽ؖsd6@'B,C>G?lϼs>!up6BCU@??y½f?Dؾ;3aB,;C׃?_?.HQk?@OHBLCo ?./?T#k?֛)~7BCe ?_?ߔd?a˷8{BLC??,Ab?Dؾi1^B,;C+@?G?=+_?N>`u)P5BC>:? u䗓&Z(B,CL>ƾ?[g½Яf>ϥ@L*SBCT>\?$HDkL>ACA=MsBCg>,?k#kl>>A{B:C>,?MAq<>ZAႇB:C>\?]`ɽ4ofL>@$wBC>ƾ?`g>򴻩?TBC@?:?=sA'B,CE?G?;> u N2BCV ??jY\?Dؾ@DXB,;C?_?ľ[?eqBLC ??-SS?Eؾ-;7PB,;C: ?G?)/V>usQe&.BC?:?C>O0pΕu$B,CJ@?ž?m=pf>2*O*SBC>\?C˹+pL>/ylxBC~>,?νu>l@ܩB:C>/>QRv1>$kAG{BC~>/> ҽuz1>T@̓BC>,?񘹴Cw>LpaB:Cc@?\?=k:oL>R$wBC?ž? $@>SbI>{d%1OBC- ?:?m̓>˺i͕L @ B,C/?G?Z ]{>u'BC]X??_UH?DؾFB,;CPX?G? &ek>2uXBCA?:?>`ȗ}B,CN ?ž?o >֥\p>KvJBCă?\?ZG>Nk1L>nCGMsBCr@?,?=u>̩B:C>.>tQl|]1>ɲBC~>>Խʢ}jG=@BToC>>``Ӹ9OG=y|BToC{@?.>=!zW1>̓BC?,?_ M>hq)>ZӂB:C` ?\?`v>bdjL>'lBC?ž?>SQ>(=BBCJX?:?> 6UPYoB,C?G?=X>u|(BCs?:?V?LqGб B,CYX?ž? >H>Z9BC?\?b>i[aL>"dBCj ?,?׫>/kG>B:C?->,Q>vd1>kL{BC@?>}=*}?G=6BToC>T=WES>yyG=vMBToCp ?->>oO1>՝BC?,?#>Wa3>R}B:CcX?\?y>{QP@L>|XBC?ž?g>?C;>V365.BC?:?."?7ޘD3B,C ?ž?? ,>?¿"!BC՘?\? L ?B8L> ] RyKBCiX?,?tA>#V>bqB:C?-> >*Nf1>ZEBCt ?> >rG=^:EzBToC ?T=\%>Pk+<9?͊yBMC@?k=-ka8?v]0?.@BdAC?g=i6?_0?n_BdACt ?T=\l>"$&9?ǹ;qBMC?>~>hG=`BToCkX?,>%>SZ1>+&BC?,?F?H雄>ffbB:CG?\?h ?g2AL>\rs1iBC"?\?2?!L>.*BCj?,?W%?7>f0…QB:C?,>6%?K1>i'@rBCmX?>>\G=oO®نBToC?T=V>69?ǏBMCx ?g=S1?_0?BdAC?-N>Ssy?rVNBDCx ?,N>2r?BDC?g=UBR+?$_0?BdAClX?T=>4x9?|`˜BMC?>b?uVNUG==.|BToC~?,>(?o;+1>n >·>`BC"?,?<7?+%>C2=B:C[e&?\?RB?u L>n>«gBCve&?,?-G?3f">[U(B:C"?+>rE;?(1>SW=KBC?>*?Ė=mG=WFFcfiBToC?T=0>y 9?0CBMCnX?c=ǖ"?]0?ggBdAC?,N>Ͼh?񿳽\-BDCt ?*> 䛾o?>p2PBDeC?)>I;H=f?o2 oBDeCnX?,N>-\?OJ[BDC?c=Ҿ&?\0?:ߖBdAC?T=/>S9? IƒxlBMC"?>t=?*G=D5\{SBToCe&?+>K?:1>e4 4BC*?,?"V?D(>^rd=B:C*?+>XZ?1>vBCe&?>~NN?YGG=GojH;BToC"?T=3?9?F_œ?VBMC?c=?M ?]0?GSexBdAC?+N>fKN?7BDClX?)>J@Z?o21PBDeC?./?Diɾa?<BCkX?./?V? &~BC?)>06K?o290ªBDeC?+N>(*=?oPtAuBDC/"?_=N4>F_0?2k>`BdACe&?T=v?[ǾF9?'s=BMC*?>\?kG=b—(!BToC.?+>Rf?` ;1>ʁ4BC.?>h?`Ͼ]G=Bk®BToC*?T=?ǧ9?,8#BMCe&?_=>UT>'`0?q[$GBdAC,"?+N>z=#*?^h(^BDC?(>?(5Y;?o2وHRkBDeC?./?&fQG?$wnBCfX?_?DP?W3weBLCߘ?_?} “B?FC WBLCy?./?t%7?:|\BC"?(>Q;(?3p2ͷ^¸UBDeCe&?+N>RN]?z|ZDBDC *?_=Yn>`_0?¡=+BdAC.?T=#?-x=9?MN4BMC923?>ˉr?TMG=PAToC<23?T=)?G9?…AMC.?_='>>]0?Т BdAC*?*N>u\R>)K )BDCe&?(> KG!?p2rD=BDeC"?./?47fs%?˛MO;GBC\?_?!2?C"k'½GBLC??`};?Dؾ89B,;C&??N$g,?Dؾ±+B,;C"?_?82 ?l94BLCe&?./?H&G?aš1BC*?(>a_Z->p2Iف"BDeC.?*N>iD>9 BDCH23?_=.,v>*]0?3AdACr7?T= h-?s>9?4´LAMCr7?_=x4,>]0?Ԛ^AdACE23?*N>r>x+ADC.?(>Vf>dp2J7BDeC*?./?"6V>ȹqmzBCie&?_?BT ?T~J* BLC~"??\y,6:?EؾƽB,;C?G?CSC>!uܞ BC"?G?@f,>ubAC?e&??*;%J?>Eؾ,´ B,;C*?_?oPI>IX: BLC.?./?*a>P~•AC;23?(>o>p27{fADeCr7?*N> nyBT>˜¦8ADC;?_=7m=f_0?lP!9AdAC;?*N>)}k=쿳Ro[7ADCr7?(>vQ>p2„ADeC)23?./?/k>=x“AC.?_?[f>gdeALC*?? I>Eؾ9œA,;Cd&?G?`pw/e>^u ª=AC"?:?(4?%bڿ A,Cd&?:?x+E?NA,C*?G?‚nl=u]ACf.??Tsh>DؾT>C–A,;C 23?_?dH>n nWʹALCr7?./?q|M>XxwXACw;?(>-z=и翳p/„Q@DC??(>Q|pNPp2L¨Q@DeCV;?./? u=q^˜a)ACr7?_?TkG>otL^ALC13??̸\,>Dؾ:K-A,;C3.?G?kZ=5upˣAC*?:?:[S?Wޗ!iIA,C+e&?ž?;?lqq>*!O$BC*?ž?dH? Y>,ž(AC.?:?-_?ʾ2 WA,C13?G?sI=u!«΂ACTr7??8b@>DؾPf?fA,;C;?_?gDo=xVQALC??./?Cw]IQ@CGD?(>zzCӽ5p2x%DeCGD?./?ubϽl`C??_?prʹkJzQ@LCµ;??ZfI=Eؾ"T‰ A,;Cq7?G?>j =u.%©\AAC^13?:?ׇh?3*޵‚3tA,CX.?ž?S?˼>/6AC*?\?9JP?ђwL>KBCy.?\?r[?Oþ@L>WoAC13?ž??\?j(>mu=;ACq7?:?Yo?ҶS(5A,C;?G?t͈;۩utv(T@C???_ h$EؾDUQ@,;CGD?_??oʽx‰;SLC$H?./?qN4NP~wj.4CH?_??JkHpt3:LCvGD??ɿfýDؾ%T#,;C>??G?hѼ^uf)Q@CԴ;?:?s?i ݽ^s@,C2r7?ž?b?A.>B­0ZAC13?\?dd?ٔ5L>_‹AC.?,?a?H'ɾ㛄>pExA:C23?,?|#k?>az4A:C~r7?\?j8fQxAC;?ž?f?rýH>|FAC??:?F u?q%OQ@,CcGD?G?B5`uuv(~CH??b ADؾP$z,;CL?_?dR nLC{L??[\夏Dؾ&:KS,;CH?G?𖉾`ju0%LC[GD?:?bs?.3=/slO,C??ž?{g?'m>/5GQ@C;?\?1o?_ʽL>?j…ACr7?,?q?6N>2A:C.23?+>|o?]雾1>YACr7?+>v?%Ri1>+TsAC:;?,?u?ϽÛ>!a"A:C??\?p?̹L>bkQ@CpGD?ž?f?=N>~FŠCH?:?'p?D>º=,C"L?G?Gj u!0C Q??,SۼDؾq>C~,;C Q?G?щ{d _u_CL?:?%i?ԓ>ƒ ,CߊH?ž?b?<@>> B\C|GD?\?{6o?A=L>Bj™8:C??,?Cw?Dޛ>G܃Q@:C_;?+>z?ӽ1>DL+ACr7?>Xoy?yT1G=QAToCs;?>}?Wֽ_G=zdª0AToC??+>h|?TP1>q ¨Q@CGD?,?u?=ʛ>!i:CH?\?&Gk?G>lL>8f˜CcL?ž?\? >>tu=ACc Q?:?`?߼> ©-H,CNU?G?Jdk%uCNU?:?tKU?>t%„,C Q?ž?S?2W>;>J6ŇCL?\?Sd?v>>L>_˪nCH?,?q?M>>7»i':CGD?+>:z?:=1>D–C??>8?MѸG=5„Q@ToCz;?T=#/?IzZ9?@rNf2AMC??T=OE0?x<<9?F`Q@MCGD?>@}?=G=}drPToC(H?,>v?Q>1>0d8CL?,?/k?Ĭ>>mz؈:C5 Q?\?t[?Y>>L>W-CdOU?ž?H?^>b> ,‘CY?:?tG?ǂ?𔓾Nm,CgY?ž?;?"??T>*!ŒCOU?\?cP?:>oL>KC` Q?,?wa?>>p7:CL?,>o?e>1>$rC/H?>ry?FT>jG=!BToCGD?T=.?a=9?Cr ǓMC??_=|9B9?:FMCL?>ۍr?M>dG= ToC{ Q?,>g]f?V>1>ʁ1CPU?,?66V?>>trdta:CY?\?B?L ?L>n>:Cm]?ž?Sj,?9-?=>,Ci]?\?2? ?vL>.’CY?,?H?;G? >[UB :C#PU?->eZ?>1>vx€C Q?>i?G>F=LkToCL?T=$&?E8l>—9?cMC:H?c=͚}7 ֽR|DC8H?+N>[kyDuT˜ODCL?c=1:S2]0?& dAC Q?T=?4>A9?VN'MC5PU?>\?B>wF=bToCĘY?->K?%? 1>eš€Cg]?,? 7?ks%?>CŒw#:C%b?\? ?չ2??L>fr9!C%b?,?u%?7?>f06:Cg]?->V;?F(?F1> S1€C̘Y?>\VN??G=io'!ToC 9?,b ¨MC Q?c=\+\]0?ۢ2dACL?+N>r6DC1H?(>vJRp2ZvEDeCL?)>ںo^䛾o2?H%DeC Q?,N>h\Ͼ5DCQPU?g=2"^_0?dACϘY?T= ?:>9?'sT#¨MCf]?>}=?خ*?G=l5\2[9ToC%b?.>=(?8^;?1> >"F€Cef?,?f?G?㛄>BEH:Cef?.>w:?K?h1>'›X€C%b?>ל*?э=?G=FFEOToCf]?T=k>+>9?G_<¨MCۘY?=ϊҾ_0?-`ACKPU?,N>\꿳.KODC Q?)>1Lf;Yp2T.DeCL?./?#kEb„RCs Q?./?a'ɾg~JC;PU?)>}RZ mp2Xف+DeCטY?,N>UKN|¸*DCe]?= An^0?2k¡F`AC%b?T=>4@?9? IWR¨MCef?>_?wNN?G==.bbToCj?/>R>EZ?1>g&h€Cj?>2>\?PG=OsToCef?T=pf>Jn?9?c0f¨MC%b?= \0?wS\E^`ACe]?-N>q=ݵ*JhDDDCΘY?*>K16{p2r%$#DeCPU?./?"VtDq³CM Q?_?m[þ>dJLLCOU?_?FVP!upXILCY?./?GcfћaœCe]?*>4@;(p2^;DeC%b?-N>s*g=P [DCef?=*Z]P\0?: s`ACj?T=> ?9?`ˆ&w¨MCGn?>+>nh?G=aԀToCJn?T=>"?9?¨MCj?=:O ]0?g™`ACef?.N>aRN!7™oDC%b?+>U(4j;Rp2 H£QDeCf]?./?o7%MO-œCY?_?zB} m~JX  LCOU??;H!Eؾ:9€_,;C|Y??Ҧ;}'Eؾ,K ,;Cg]?_?@2!p9/z LC%b?./?X%l7} :J\BœCef?+>z!K2p2*:0veDeCj?.N>=\dLJ*DCZn?=>v'^0?Œ `AC2s?T=OeG>^$)?9?Sȹ`¨MC2s?= v._0?4`ACVn?/N>Ͼhֿ\eDCj?,>LZp2[¶vDeCef?./?1GH$TœC %b?_?U O2O0k'?, LCk]??PO,hDؾڽX,;C1Y?G?Xj=u ”Cq]?G?ChS0urC$b??|,Dؾ%,;Cef?_?T BGW dh= LC~j?./?A#Vr dœCIn?,>;Gfp2!_DeC2s?/N>ߎrEDC~{w?=r2,T}4^0?BofO`AC{w?0N>Suy󾳽魁.>DC2s?->op2[QLDeC2n?./?q#ɾxa=qœCej?_?]PPywK LCef??hJ%;DؾG8,;C$b?G?,`feuCt]?:?Ch7?6"?q̵,C$b?:?>f%?E4?ؗ;s,Ccef?G?cwu(C9j?Ð?UHDؾ1^+,;C n?_?oþJ[f?pW LC2s?./?'/k~N|œC{w?->*Qvp2x)DeC@{?0N>0{Խ}QAʔDCB{?.>"ѽzp2DeC{w?./?MOq՛4g!œC2s?_?df#` LCn?Ð?T(TDؾ`6,;Cj?G?񽈷PuʇޖCLef?:?$?3-E?@蘶",C$b?ž?!A?tX,?>?$ŒCef?ƾ?r?;?'>3ŒC˥j?:?">GS?VoB,C_n?G?MRu9 C2s?Ð?,ĸ\Eؾl9$>,;C{w?_?hGc\kEOg LCG{?./?ͽu}+9œC?.>?QzdHce[DeC?./?MUvu|œCO{?_?AǽJHok LC?_?w(GWnF/Vt4m LC\{?Ð?47fDؾ{÷PC{?:?1=Ֆs?Бa ,C?:?ϜR='|?R*>^9,Cc{?ƾ?g=ίf?!>* 9ŒC?ƾ?C=j?/3> W5:ŒCT{?\?{^= 5o?8L>T>]C?\?rJJ=r?o>3 L^CK{?,?=u?>e$3y:C?,?O=Ux?;s>pz:CF{?1>=Uz?s1>:€C?1>3S=W|?> €CD{?>=Ƣ}? G=7܌ToC?>-0U=u?=ToCC{?T=#Y=/?9?yT¨MC?T=n/|}t?𹻧¨MC?{?=v+8]0?!`AC?=VL'u.8>H_x`AC?1N>@]T ~ཏ~uDC{w?T==?n-?9?ySv¨MC{w?>S>!wy?G=v%qToC{w?0>\Q>Wv?1>kk€C{w?,?M>aq?ӛ>TZTt:C{w?\?+$H>Dk?L>nC,YC{w?ƾ?<A>4b?O>d%5ŒC|w?:? S>?bo?8 ,C{w?G?v+uT ؠC{w?Ð?6@cDؾ'j1C,;C2s?G?~nuNsQC2s?:?1>mh?1o @ ,C2s?ƾ?#>b\?p>Kv_0ŒC2s?\?1ؔ>zd?L>tRC2s?,?>#k?> m:C2s?0>4>~o?1>AπC2s?>>ԉr?G=:jToC8n?/>#P>Cf?1>[ZZiv€C n?,?+j>a?ݛ>c:Cn?\?>[?fL>`~ICn?ƾ?>S?V>P=(ŒC/n?:?>_?},C$j?ƾ?M>H?8>[dfŒCUj?\?>7P?QL> >Cqj?,?Մ>YV?ћ>uBW:Cef?\?v ?B?BL>] X1C<DD>.i|"4=]ӕØOL=\{r뿳=#͢˜Ę<[>alz)+>#1Ts <`?<v]>܁E J{ČL=[>F䛾ۺo=p2>BM™|sX=DD>}Ͼh¿=CWi˜Ĺ=[>J;7=f!p2>G:O sL=`?#kԛ>j3J{'1qĜ>٭F4hąL=M.?Hd>Sqp=a?iɾa>@fJ{ą˪=[>J@Zo2>~´s̪=a?V># mmJ{ğ=M.?Rľ[>b-cqĉL=KV?O\ E>'>F4h<|?o h`>v*_< y?@=>|`?"y_YL=|?㽱Weu?ű4*_Ě=KV?rSD>1F4h̪=M.?*DPi>TiqĻ=a? fTG>c=J{O=N.?} B_>:yVq4Ϊ=KV?_aHD>5ZE4h=|?F _{u?8y*_)L= y?͓>i?U>1m_<;S?Ͽ >vW`?:쾱 ¤hĐ<,?;>%i?þ&+0rL=;S? >Х\?jؾY E¤hĭ= y?@>~`?b>Gc_ĬЪ=|?& ek;u?k*_C=KV?};D>D?Uœ2E4hĴ=N.?!2r>dq>=KV?yN:g,D>r,KF4h=|?=+Xu?N )Ԑ[*_Ѫ= y?>B6U?Ҙ>TE2W_Ė=;S?>S?Nؾ @¤hL=,?v>Pd?qLz0rę<?i>D/q?~ΙJ:¯{2< > >v?SD]IN59L=?]>/k?x_ ¨[¯{Y=,?0>u[?[L""0rΪ=;S?>H?ؾ"8)6݋¤hĻ= y?F?qqG?(>K27H_2=|?KBSC/u?s]@ױH*_Tz>KV?Zy,F:D>忆eF4h=z>|?fb,u?UNp3*_Ę= y?Q"?u7?>]0C6_Ľ=;S?>?';?ؾFVA¤hYͪ=,?y>QP?-LGSt0r =?#>[a?[K6H¯{L= >`>o?1\5Ďq>Sz?JQm¥Ĭ<<`>|?1TF1HĠL=A>P>ٍr?GV¤B=!> >,Nf?1aD³5o̪=?[A>#V?ޛ`²H¯{Ī=,?4L ?pB? Ljƒ0rą=;S??,?ؾ7bPn¤h3z> y?4?N%?>C²m#_>>|?pwdeu?hE*_ß> y?N+E?-?e>]RU> _Oz>;S?@,?\?Cؾ"={PU¤h=,?` ?t2?)Lr0r=?F?H?ԛ ď¯{˪=!>S%>SZ?1'Tq‚D5׭=A>8>h?GLmG¤đL=<\l>#&?9Y$H<\{}?b9nOo{Hę˪=A>>\?G{Q¤ħ=!>_%?K?1Í»5ċ=?W%?7?؛ֽUޟ¯{[z>,?~2?!?VLo²m~0rf>;S?;?q?iؾΈƱ9¤h?*> y?5[S?X>o>XjdnD_n*>;S?aH? >MؾQ|b¤hħ>,?AB?u ?qL«]0rcz>?37?:%?UN&Q¯{X=">(?o;?1Qg5o=A>?OVN?iG5¤ą˪=<1>4?9RLP[H9=\{ ?49UH:=A>1*?=?sGXO¤hz>>sE;?(?1})54>?G?Rf? NPz¯{*>,?2JP?>UL|:0rT;>;S?S?L˼>ؾ ¾h-;>,?[?з>*LQ0r*>?"V?D>OZR¯{> >K?r:?1DŽ55kz>A>t=?*?G¥5=<>L>9٧RH"=m{-w\=. ˜2=DD>OKN=ݛ2˜=m{<3?,>n9݈?HϜ>A>NN?,?GZ¥w*> >XZ?>1c5;>?a?'>ݛ·(¯{ĐL>,?d?Yؔ>L.0r L>?#k?M>Λ({;> >Rf?S >1S[65-*>A>\?>GZn¥Ĝ>9hpjHpz>m{<85^0o!]=DD>@*==]‰˜d=[>.6Ko2>—Ws5=[>Z(Y;o2>q:smz>DD>{z=$*ӿ=9˜ę>m{<?'ǧ>i9qH;>A>h?_>G“p?¥ĽL> >o?>1[^h5Ė]>?q?5N>ڛšO{`]> >v?%R>1qF5ĔL>A>щr?)>{GO’l¤;><#?w>9[JBH*>K{<Zn^0yģ>DD>RN'=P˜kz>[>Q;(%p2>[‰ѣsc=a?t%7>Vr抩J{fz>a?17is%ě>tBJ{Ĝ>[>!KQ!1p2>N sԾ*>DD>\=3{˜Đ;>\{<'>`]0\MĈL><)?HG>'9iHD]>A>_oy?yT>gG@snn> >z?=105n>A>}?=G< =]>\{DD>%iDϾ=G)rJ˜*>[>\_ZZp2>sŒ8qs>a?H,G՛>﯄J{^z>N.?22 > ֝qg>N.?xBT >GlqĖ*>a?6V&>2 _J{;>[>Vfq̾o2>gAsaL>DD>r̎=J0¿˜]>\{A>8?&)8GžRQ@>\{DD>nyBT=1JĈL>[>oDo2> U2s1;>a?HaȾ>os3J{f*>N.?oP I>> l7Gq>KV? ;hJE>+F$HF4h*>KV? ID>w!µ((F4h;>M.?[(fþl>!0qL>a?/k鬘>IOJ{=]>[>v Qo2>[ѹsn>DD>,}áսֿ=ê@*>\{<|}9_0`kRQ@>\{<88Om=^0wA>DD>q8ؿ=NrRQ@n>[>1zjҽp2>L!sm]>a?q M>o&J{GL>M.?d`>gdqq;>KV?ThD>[XF4h.*>|?~‚ku? "y*_Ĥ;>|?fZ:u?&c›*_ L>KV?\,D>F4hĺ]>N.?TkGl>Жqn>a?u.ν>ԒiJ{>[>S|N9(p2>~yRQ@sڒ>DD>Κ} ==)uA>m{H]0tn<A>DD>]kyuT>m=3 A>[>|z=p2>RAs>a?Cw9Л>RQ@J{n>N.?kDo6Ƚ>K~qA]>KV?Ob@D>iyF4hoL>|?su?KˆՏ*_p;> y?-_?>ߘ>p6 _ L> y?h?)>=>?z’Lj_+]>|?/ .u?=>;*_"n>KV?cfD>cžF4hZ>N.?pTK9>jw6SQ@qC>a?u=>ג$0{AJ{:>[>v<R>o2>_&Asc>DD>r~>=U00Bw>[>޺oP>o2>" ³\*Bsm>a?qD4N>>O{AJ{ij>N.??o=>KfAq>KV?f h49E>&d”SQ@F4hfn>|?𗂻u?yž*_đ]> y?Yo?S>>C‡R'_pL>;S?c\?Ř>ؾZӠ?׶hĀ]>;S?b?A>ؾd?eehćn> y?5s?M =>Si_}>|?htKV?Ŀf=D>cΣLAF4hľ>N.?CJk_H>f>ª%Aqě>a?#k>>IyBJ{Į>[>=Lf>o2>[Bs>a?a&>>onMBJ{כ>N.?de>^>o cBqI>KV?bA>D>iCAF4hľ>|?%Cn?`=u?{s-A*_> y?= u?;Y>cփtTQ@_6n>;S?f?H=Cؾ*4Uh]>,?)LneF0rn>,?(1o?=RL%0r>;S?|g?9hؾSQ@hO> y?4s?2l>C#A_?>|?2Ua=;u?2A*_:>KV?Y\>D> ]AF4h>N.?Z[>n>!¦9Bqޣ>a?"VD>ě>'2yBJ{⣪>M.?LVP>>G aaBq#>KV?'Sܼ>D>܂ BF4h윙>|?xk=u?OˆA*_ī> y?y'p?DҘ>E\A_̔>;S?f?Fؾ*¥TBAhā>,?p?!9kLaSQ@0rn>?u?Z=•{;>?Cw?<9SQ@{>,?6o?8ȽUL'd\A0rĎ>;S?b?>@ؾd¦Ah:> y?i?ӓ,>Fz¯A_ď>|?.{e >/u?+cYB*_裪>KV?}H!>D>~!6SBBF4h5>M.?B} ?>*^kBqn5>KV?;O}?E>7NbBF4h>|?fkA%>u?"yƒB*_Ľ> y?`?!þ>pOuA_j>;S?\?, ؾ`Ӡ8,Ah>,?3Gk?G-Ln_A0r|>?u?iνpEpA{> >g|?P91 ,RQ@51>!>:z?ӽ13~A5ĕ>?q?ܝM؛~A{>,?bd?vL4ӐB0rB>;S?S?fWؾbBh> y?/KU? >ajdB_6>|?X=>eu? h6B*_ƻ>KV?O,6i?D>WBF4hȻ>|?fC:kS>u?UۚMB*_H6> y?sG?|^>hRU (B_죪>;S?H?:CؾW| 6Bh>,?t[?Yþ'L |/B0rĹ>?/k?f͛0nB{`>!>v?4Q1s$A5 >A>A}?ĦսG<_ǃAC>A>ry?ETGBQAĒ>!>o?[1c^ "B5>?ma?Ⱦ՛Ë0 CB{壪>,?cP?-:RLTB0rĘ5>;S?;?>gؾΈJSBhčȻ> y?Dh7?"n>C?=B_\N>|?!,!f>;u?]@bbB*_İN> y?'f%?'4՘>]0QB_?ǻ>;S?\j,?+-Eؾ7={s{oBh:5>,?TB?CL kL$wB0rᣪ>?G6V?a󛄾YlB{Ŀ>!>Q]f?̾1[[PQB5|>A>܍r?EnGO(B:>A>i?GϾyGYBޣ>!>eZ?1I~B55>?H?F ]B{ĉƻ>,?2? RL.oLB0rM>;S?@?X,ؾ7b½=Bh > y??,-E<>ZabB_ĉ>;S?q?ݖ;ؾF™VBh]M>,? ?2*L°B0rƻ>?67?Zs%fN_fB{4>!>K?]%1TJB5ݣ>A>.\?GœBBĮ>m{\0,3BĠ>m{<\+]>P]0`gBܣ><@?m99BH4>A>NVN?GoBŻ>!>V;?c(1)·B5M>?t%?7՛꽕ŽB{E>,?u ?DBLj.B0r8O>;S?L>H ؾD8)zBh&O>,?>7P!L.G”B0r>?Zf?!Gț7B{L>!>(?Z^;1%QŸйB5ļŻ>A>z}=?*GIB4>< ?׾9h¢BHڣ>m{^0¸ьBĤ>DD>h\>=G™dBڣ>DD>\>ƿ=<§Bij4>m{<$>_0m=BıŻ>+p96TBHL>A>*?=zGmO0B>!>w:?K1ÍB5O>?Ä>^Vқ`]B{>,?>[IL*"`B0r>?j>aK6B{O>!>R>EZ1eTq»YB5>A>/?NNkGQ?BL><>p@9Š1BHĉŻ>m{< n>^0VrBĸ4>DD>MKN?ο=ȆFeBܣ>[>tRZ >p2>s~Bs4>[>K16?/p2>€BsĒŻ>DD>q=е*?=h BĶL>m{< 8?L]0aijŸQB>n:9BHO>A>V2>\`GV{0gB>!>P>Cf1bDB5g>?]>#k_ pB{g>!> >o1B5>A>U>chGL¡\BO> 9LˆpBH>m{<\?\0™BĻL>DD>*O=?=]ºBIJŻ>[>a@;(?p2>n¼Bs4>a?KGf?͛>!őBJ{Ż>a?7%?>wBJ{L>[>9(Tj;?o2>:Bs>DD>3RN?=ݛaB O>m{<>"p9O©BHf>A>?>͉rGՇB>!>Q>Ev18sB5>A>$S>!wyGmBf>$)9`-BH+>m{DD>[\?=,b B>[>\!K?o2>ߗ=lBsL>a?krBJ{Mƻ>M.?:2!?>֝¼ĔBq6M>M.? 2?h>zBq>a?,GH?>}=Q,BJ{ O>[>QLZ?o2>~Bs)>DD>Ͼh?Կ=WœBf>m{<6=rn-t9&CH~>A>=ˢ}qGQdC~><$Y=/9TE#CHĶ>m{DD>掝r?ÿ=#\C!>[>;Gf? p2>:OCBsO>a?A#V?>c m§BJ{+>M.?T B?\>gykBqĠM>KV?P,?D>Ϩrl`BF4hk>KV?OJ9;?D>g?UGBF4hO>M.?]P?n>T~Bq>a?#ɾXa?>@¡BJ{f>[>go?p2>MבBsľ>DD>9Suy?=$ZC~>\{<2w8?O]0P`HC>\{<眓9?\0R»x C~>DD>{Խ }?=j]t C>[>(Qv?p2>HP|Bsg>a?/k?՛>jrBJ{>M.?þ0[?>-¡Bq0O>KV?>H?D> 5šBF4h>|?mew>u?c )auB*_OO>|?}]>,u?J B*_>KV?T?D>`95BF4hg>M.?d?>S%Bq>a?MSq?>tABJ{~>[>Iѽ z?o2>2TCs>DD>k88?=»%Cč@?\{W=}?=\Av C>[>M9X|?o2>ӷ2Cs~>a?'ͽu?>GEZBJ{8>M.?hGW\k?>bg_BqKV?,ø\?E>>B BF4hċ>|?¹JS>u?8XމB*_\O> y?Ù>GS>g\qB_l> y?6>_>-}B_yg>|?*~ p>au?4ƱJB*_ģ>KV?5@c?D>HoBF4h>M.?_ǽ;Ho?i>,(1.Bq>`?]ؘ9Cw?>OiBJ{ć@?[>=]z?o2>)TACs?DD>S>sy?Ϳ=< A_C?[>kQ>_v?o2>/A[|Bs~@?`?t=u?>REA_BJ{>M.?9 p?^>hBq@>KV?X8f?D>{?=BF4hb>|?!>u?\n2B*_Ēg> y?0>;hl>cB_>;S?1>S@ؾ( …BhNg>;S?O>]\dؾ [BhĶ> y? S>bof> ZB_Ė>|?߈>;u?gB*_>KV?1W9} h?D> BF4hq@?M.?j=Bo?m>0A3Bq?`?M>dq?>ďAABJ{y ?[>">o?p2>rABBst ?`?>#k?ӛ>^BBJ{܃?M.?.H>Qk?>IAo_BqZ@?KV?-y=f?D>A?BF4h>|?a<u>u?OSB*_ļ> y?=sܘ>oB_>;S?OA>9b@ؾ_Bh(g>,??ؔ>~diL=B0ra>,?#H>"DkSLߥ0B0rW>;S?eg=ԯf ؾc @Bh> y?;u0>z^B_3@?|?K+_=O>-u?)p@gB*_Ĩ?KV?,A>b?D>s|AwBF4hk ?M.? >d?>GB3Bq?`?i>a?>@BBJ{?M.?/>[?>,BBq\ ?KV?>R\?E>&AK BF4hM?|?r<= >u?/nA2B*_!@? y?s>l@B_>;S?ե9gؾJٽBh!>,?n`= 5o#L& AB0r>?AM>SqٹmB{>?=uޛ:-B{>,?9*pLxBNWB0rP@?;S?mrf ؾ ABBh$? y?C"0p>ZAB_A ?|?X=W>bu?AJB*_?KV?>sS?D>zBD5BF4hkX?M.?>+DP?g>ҏTB~BqcX?KV?_>_H?D>Dx5BBF4h7?|?X >_{>u?D!A]މB*_6 ? y?͓ij>mAfB_ď?;S? $@Wb@ؾHABhh@?,?ǽg:o"Lk&A AB0r>?9CwӛPeB{~>!>=fz1 IcB5> >^Q9l|1B5w@??љͽu؛`y:A-B{Ƀ?,?ZGNkJLǥA8B0rT ?;S? ԥ\gؾA#[BhI? y?%ľ`x>A}B_VX?|?&>Cek>9u?BO B*_Ƙ?KV?y}? ;?D>3UBGBF4hĒ?|?ԫ=>dX>u?)BruB*_QX? y?@6U㘓>B\qB_?;S?SHؾM BBhe ?,?vVdiLFAB0r?? MgqmAuB{Ā@? >ѽz1HAcB5>A>n#88\G~YCą@?A>|Խ+}`GQAdC? >G-Qv1AsB5o ??A/k S BpB{?,?þ{[SL8"BpB0r_X?;S?羺Hؾq,)BBh{? y?TdqG8>BabB_?|?!BS>C>-u?Q@BrbB*_Ĩ? y?B"7>"R0BQB_ķ?;S?>+;ؾFBVBhhX?,?yQP(LIGBB0r??#ɾea?6BB{u ? >(o1B*B5 ?A>ISyyG5A#Bć@?rG{BB? > ;0Nf1UDBB5mX??`A#Vӛ_B]B{ؘ?,?!L BLjB.B0r?;S?,ؾ,bB=BhĹ"? y? 4F%>CBE=B_\"?;S?@,\Dؾm1{B{oBhK?,?P 2LBB0r??FH˛:BB{pX? >W%SZ1kHqBYB5?A>%ϾhGLB\By ?<\l#&9Bs-BH?\{<>j6?^0AC} ?\{1?_0&BC?\uGV{BIgB? >G%K1BB5m??W%7қBB{ĵ"?,?2!IL?iB0LB0r0e&?;S?;qbؾ ɈBjSBh]e&?,?=Bu lL2BUwB0r"??.7A%򛄾qHB}fB{Ă?>(o;1'KBйB5?A>zcVNrGLB`BrX?<49@BpBH?\{<>}R+?^0TZBB| ?DD>[>r?ؿ=#B \C?DD>\>h?=xWBBtX?K{<Ζ>"?J]0pB;B?"*=lGnIBSB "?>aE;(1#BB5xe&??Gcf lBB{*?,?(JP$VLB.TB0r *??"VDlBlB{ĉe&?>K:1_BJB5"?A>t=͸*GBoBĐ?D?\0BBtX?DD>->}\?=&Bz B?[>I>@=f?o2>.OB^BsrX?[>J> @Z?o2>~BBs?DD>?_KN?=כBBĝ?K{l ?J]0]BQB "?<3Mm9B_TBHĒe&?A>NN@GBpB *?>XZB1B~B5Ď.??a/'ɾڛۅBv CB{ę.?>Rf ;1pUBQB5 *?A>\GBBBĔe&?^0BrBĚ?DD>(*?=?=WBB?[>6?K?o2>ؑB^lBsnX?`?>V?>glBBJ{?`?f?]G?>|7Bo,BJ{Đ?[>Q(?$Y;?o2>4BBs."?DD>tz=?.*?ֿ=B BĞe&?K{_0hBnB *?h`ϾGB`YB023?>o"雾1|XB+!"B5:23?A>ȉr_rGIBX(BĢ.?<#w9B$u\BH *?K{<Z?n>^0BьBĜe&?DD>RN?@?޿=̀BteB"?[>Q;?(?p2>r BBs}?`?t%?7?>nlB@BJ{?M.?} ?ēB?`>vyBkBq^?M.?!?2?l>BzBq"?`?!7?}s%?>BBJ{Ĕe&?[>K?f!?%p2>BBs *?DD>v\?D>=IBBĨ.?:{<'?2?>I]0B‡gB<23?<})VG;9şB.*BHr7?A>WoyyThG`B6Ar7?\0BJ-3Bħ.?DD>i?E>{=ABdB *?[>K_Z?>p2>mBBsąe&?`?H??G?̛>BJőBJ{"?M.? 2?% ?>'НBĔBq+?KV?iN?Ig,?D>rB`BF4hĄ"?KV?Qy,?R:?D>B}BF4hme&?M.?pB?T ?>;ޫB|kBq *?`?6V?f>>8,ByBJ{Ģ.?[>Vf?>o2>B6[BsE23?DD>r?>y=j*B0Br7?:{K]0kCAAz;? ny?BT>=@C# A<23?[>o?y>o2>8B ]*BsĖ.?`?=a?>>iBMBJ{*?L.?oP?(I>>]B$baBqDe&?KV?;?uJ?E>OBNbBF4h"?|?f>,>u?UBMB*_d&?|?pw>/e>du?PhB6B*_*?KV? I?>D>BbSBBF4hĆ.?M.?[?Wf>h>5B9Bq+23?`?/k?->>CBSzBJ{r7?[>v?Q>o2>{B'AsĊ;?DD>)}?=п=CvA??:{<}}9?/<_0]CTQ@ ??DD>?dhиѿ=bCTQ@x;?[>.z?(=p2>4B7Asr7?`?q?M>>:B)|AJ{ 23?M.?d?>`> BlcBqj.?KV?T?8h>D>B BF4h*?|?{‚>Fk=u?_yBB*_d&? y?R+E)b>FUB (B_*? y?7[SXd>^dBB_7.?|?YZ>ܩ=D>}By]AF4hęr7?M.?Tk?G>l>BY&AqV;?`?u?=>B1{AJ{??[>R|?N-p2>xBUQ@sČGD?DD>͚}?0 ֽ=C]@*ĊGD?[>{z?>ӽp2>8BL!s??`?Cw?T6ϛ>B:UQ@J{;?M.?iDo?=>;EBqfAqUr7?KV?Kb?N@>D> dBqDAF4hĈ13?|?s>$=u?tBA*_!.? y?-_ʾ՘>1pBeuA_*?;S?`H CؾvvB 6Bh\.?;S? Sv˼ؾ/|BBhc13? y?h)4>zBA_q7?|?> =/u?ԞBiA*_õ;?KV?bf?5=D>]BLAF4h??M.?p?ʹ>qBAUQ@qĆGD?`?u?^Ͻ>BJ{0H?[>v?hRo2>Bѹs$H?`?q?`4N>DBD&J{ĀGD?M.??o?ʽ>=EBqĜ??KV?f h?4E>N^BtUQ@F4h;?|?>;u?B-A*_Īq7? y?YoS>lBwA_13?;S?a\͘ؾ͠B,Ah{.?,?[þ*LBG|/B0r13?,?duؔLQBB0r4r7?;S?b۫Aؾ^BAh״;? y?2sk ݽ>B#A_???|?h>OѼeu? ƏBUQ@*_vGD?KV?ſf?ýD>]BF4hH?M.?@Jk?Hm> BЖqL?`?#k?>CBjOJ{ĬL?L.?d?}`> B"qqH?KV?b?#AD>%dByF4hdGD?|?$C>V?`u?B߈*_?? y?? uT>ЃBUQ@_Ė;?;S?fýHؾ %B_UBAhr7?,?zBi_ijH?|?->a:u?֞B=;*_zL?KV?V\?D>}BF4hK Q?L.?\[? þl>CBq Q?KV?*S?ۼD>BCXF4h!L?|?k>u?wB*_ęH? y?v'pD>㘓>mB0R'_pGD?;S?f=Fؾ %BThĽ??,?pl̹kLBAUQ@0r:;??u Ͻ󛄾BFpA{r7?>v%R1BA5_;?>}zӽ1UB.~A5???Cw* ,B:UQ@{|GD?,?6oz=WLOBL0rފH?;S?bR@>ؾ^BdehL? y?iӓ>7>zBlLj_Ĕ Q?|?F{>e -u?S]Bo*_čOU?KV?zH?!D>B((F4hNU?|?fk>I%u?jyB*_a Q? y?`>>7pB _aL?;S?\ >ؾ͠B׶hH?,?2GkG>/LDhB9F0răGD??u=BI{??>f|[P11&BUQ@5s;?A>}SֽG 7B?ȃA??A>8ҠѸGBTQ@ćGD?>9z(=1YB5H??qM>ڛBtO{ęL?,?cdv>L[B0r Q?;S?SdW>ؾ7|BhĮNU? y?*KU>>^dBLD_.Y?|?X>=bu?\hB2*_ Y? y?sG?a>FUB. _bOU?;S?HB>DؾvBL¤h2 Q?,?s[Y>&L'BvQ0rĺL??/ky>ћUB{'H?>vKQ>1B 5ĉGD?A>@}ܦ=G7B??ry!FT>GiBSnL?>oq>1XBH5^ Q??ja >؛B(¯{OU?,?cP<:>RL&B`:0rdY?;S?;>?gؾɈB9¤hp]? y?Jh7"?e>CBm#_i]?;S?Yj,.-?Gؾ1{BPU¤hēY?,?SBCL ?mLDB]0rOU??E6Vg>BM]f>1UB65L?A>؍rZ>GJBol¤0H?9|BZHčGD?:{<58?HPm^0ӟC C-9H?){,9ӟBKHĆ Q?A>iH>{GB{p?¥ PU?>eZ>1Bc5įY??HF?B*z¯{e]?,?2 ?XLUiBm~0r$b?;S?@X,?ؾ>,bBPn¤h$b?,? 2?/LBc0rd]??47Xs%?HBQ¯{Y?>K]%?1{Bz553PU?A>/\>GBZn¥ċ Q?9+BFJBHL?){<71?S\0(B`6H?DD>Yky?WuT=FC)L?DD>r?=y*B˜ě Q?){`9BqHɘY?A>PVN?GʌBZ¥b]?>V;a(?1#Bn5 %b??t%7?ߛBDޟ¯{Ħef?,?u ;B?LjBt0rĺef??^fG?Λ`B¯{%b? >(Z^;?1JKBW5b]?A>}}=*?G B¥̘Y?< >9cB[jHNPU?){h?\Ͼ=ABrJ˜L?[>ںo?h䛾o2>FB/2sĊ Q?[>>Lf?;o2>BLAsIPU?DD>\?ο=dB{˜֘Y?K{<?;Ҿ_0"hBka]?<`l+>o9B>H%b?A>*=?GIB뀴¤ef? >v:K?1GB5mj??DŽ\V?՛?_BH¯{j? >REZ?1HqBqD5ef?A>-NN?}GyB¤%b?<t@?9BBHa]?K{< ?m^0B]ӘY?DD>KKN?迳=BO˜8PU?[>nRZ?' %p2> nBk8qsr Q?`?a?&ɾ>iBs3J{PU?`?"V?D>N,B_J{˘Y?[>K?'63p2>B7 sa]?DD>q=?͵*=.B#˜%b?K{< >=O]0BW<ef?\2\?~G{BQ¤4n? >wP;Cf?1AVDB5An?A>>Ͼih?GLBbG¤ċj?\\0BK%b?DD>*?V== XBv˜a]?[>`@;?(p2> BsѣsļY?`?MG?fΛ>ٞBٯJ{OU?M.?QVP?ޠ>oBN7GqĢY?M.?B?} >QޫB#lqb]?`?7?%>B-J{%b?[>/(?Yj;o2>4Bsef?DD>0?RN=כB˜Ėj?K{<>OV]0pB&Fn?<ޟ"?e9OBd{H2s?A>/Ήr?G|BK¤2s?G'^0ZBsēj?DD>U>\=QB ˜ef?[>U!? Ko2>BVs%b?`?5X%?7>lBԊJ{d]?M.?82?!>AНBnqxY?KV? ;?R} E>^B($HF4hg]?KV?O,?/iD>BeF4h%b?M.? ?2n>Bdqef?`?-G?H>7BJ{Ċj?[>Y>LZo2><~BsQn?DD>>hѿ=WB[˜2s?K{._0&Bq ā{w?< n-?h9_AHz{w?K{<]2,>}4^0A -2s?DD>ߎ>r=D#B¢˜Dn?[>>Gf3p2>.OBszj?`?A>#V>lB]J{ıef?M.?T ?Ba>yB~Vq$b?KV?T?,D>rBKF4hm]?|?C>kSu?UB;p3*_$b?|?,>f=u?Q@BDZH*_ēef?KV?RJ?5;D>3UB2E4h`j?M.?>]Pm>TBiq.n?`?#>]aě>@BXJ{2s?[>T>oFp2>AB|s{{w?DD>S>uyտ= Ao˜:{?\{P{= }=e\AѕØā{w?[>(Q>v p2>0Ags2s?`?>/kћ>_B(J{n?M.?>3[>,BXq4j?KV?4>HD>nx5BOE4h]ef?|?>1ewu?)BĐ[*_$b? y?"f%,4?֘>*R0B56_Fef? y?2-E?(>B'7H_j?|?=N1u?Bk*_n?KV?h>"TD>BF4h2s?M.?>d>5HB݃qč{w?`? M>Tq>sA+,J{={?[>== zo2>TAs?DD>)-ϸ=УNØ?[>V|MV|o2>AsB{?`?=u>QTEA J{ğ{w?M.?hG>V\k>JAJq2s?KV?,>\E>'AF4hYn?|?y¹=ASu?p!Ay*_ťj? y?™GS?|>B=2W_Ąef?;S?qٖ;?ؾ6FBJA¤hj?;S?LH?ؾ,)B.݋¤h(n? y?>˾_?>˨A>c_ħ2s?|?~=ofu?ϮA4*_Ŀ{w?KV? 6@>cD>|A&F4hJ{?M.?/=;Hoh>D0Aq?`?𘹽Cw>TJ{^ ?[>Qz*H>#1Ts\ ?`?MPvu>܁E J{?M.?ʹ!p_>&ڵqX ?M.?%GWnq/>'1q?KV?} hD>lT֮F4hR ?KV??]^e>>٭F4h?|?ϼtu?*I>*_H ?|?M<;>{?v*_? y?u?%>Թz_C ? y?lR=|?+U*"y_?;S?tg?ؾKi¤hO ?;S?gC=j?3ξ ¤h?,?t͹)p?LYB0rV ?,?GJ=r?&+0r??Cw?ЛshP¯{Z ??"O=Ux?:;sJ:¯{? >GYQi|?1m5] ? >%S=h|?QIN5?A>xӸ8?G_¥^ ?A>-U=t?,Qm¥?2tTF1H?\{ZT ~=]ӕØ>{?<6$Y/?9TAC1H>{?A>Խ̢}?GQAg¥A{? >2ҽfz?1HAN5F{??νu?ܛz:A¯{N{?,?`ɽ5o?1Ll&A+0r]{?;S?g½ѯf?ؾ A¤hw{? y?t۽s?Ϙ>@"y_m{?|?;;u?p@v*_V{?KV?M=5fD>A٭F4h{w?|?=u?nA*_|w? y? Sbo?k>HZArt_{w?;S??A7b?KؾoHAޞ¤hī{w?,?#H!Dk?XL^ȥA0rĖ{w??EMRq?¹A$q¯{Ċ{w? >QGv?1 A^5ă{w?A> S"wy?GA՘¥2s? >蛾o?1B52s??Q#k?T B[¯{2s?,?5ؔ}d?oLAz0rĻ2s?;S?7a\?hؾ@AE¤hě2s? y?1=h?W>A,m_Īn?;S?,S?Gؾq B9¤hn?,?þ[?PLn"B0rn??jɾa??6B;¯{Pj?,?7P?'L|GBHt0r8 "  " D  !"!#$%$&'(')*+*,-.-/0102343567689:9;<=<>?@?ABCBDEFEGHIHJKLKMNONPQRQSTUVWX YVYZY[Y\ ]^_\`[`a`b`c_defgdhcibijikilhmgnopqnrmsltktutvtwsxryqz {|# }z~yxwv~}#&)&)UUVZZ[aabjjkuuv             !"#$%%%%&$'#(")!* ++,+-+.*/)0(1'2&33334251607/8.9-9:9;9<8=7>6?5@4AAAAB@C?D>E=F<G;GHGIGJFKELDMCNBOOOOPNQMRLSKTJUIUVUWUXTYSZR[Q\P]]]]^\_[`ZaYbXcWcdcecfbgah`i_j^kkkkljminhogpfqeqrqsqtpuovnwmxlyyyyzx{w|v}u~ts~}|{z,,-::;HHIVVWdderrs            !!!!" #$%&''(')'*&+%,$-#."////0.1-2,3+4*5)565758493:2;1<0====><?;@:A9B8C7CDCECFBGAH@I?J>KKKKLJMINHOGPFQEQRQSQTPUOVNWMXLYYYYZX[W\V]U^T_S_`_a_b^c]d\e[fZggg ghfiejdkclbmamnmomplqkrjsithu u uuvtwsxryqzp{o{|{}{~zyxwv(~}()667DDERRS``anno||}           !"##$#%#&"'!( )*++++,*-).(/'0&1%12131405/6.7-8,9999:8;7<6=5>4?3?@?A?B>C=D<E;F:GGGGHFIEJDKCLBMAMNMOMPLQKRJSITHUUUUVTWSXRYQZP[O[\[][^Z_Y`XaWbVccccdbeaf`g_h^i]ijiklmnopqrstuvwxyz{|}~\]jO\ON~|zxvtrpnlhihg@AN3@32fgfe$%2$ded ,,///25258;8;>A>ADGDGJMJMPSPS,,             !"#$%&''''(&)%*$+#,"-!-.-/-0,1+2*3)4(555564738291:0;/;<;=;>:?9@8A7B6CCCCDBEAF@G?H>I=IJIKILHMGNFOEPDQQQQRPSOTNUMVLWKWXWYWZV[U\T]S^R____`^a]b\c[dZeYefegehdicjbkal`mmmmnlokpjqirhsgstsusvrwqxpyozn{{{ {|z}y~xwvu~}| !../<<=JJKXXYffgttu             !"####$"%!& '())*)+),(-'.&/%0$1111203/4.5-6,7+78797:6;5<4=3>2????@>A=B<C;D:E9EFEGEHDICJBKAL@MMMMNLOKPJQIRHSGSTSUSVRWQXPYOZN[[[[\Z]Y^X_W`VaUabacad`e_f^g]h\iiiijhkglfmendocopoqornsmtlukvjwwwwxvyuzt{s|r}q}~}}|{zyx**+889FFGTTUbbcppq~~            !"#$%%&%'%($)#*"+!, ----.,/+0*1)2(3'343536271809/:.;;;;<:=9>8?7@6A5ABACAD@E?F>G=H<IIIIJHKGLFMENDOCOPOQORNSMTLUKVJWWWWXVYUZT[S\R]Q]^]_]`\a[bZcYdXeee efdgchbiaj`k_klkmknjoiphqgrfs s sstruqvpwoxnymyzy{y|x}w~vut&~}|{&'445BBCP{{zlmz_l_^PQ^ APL-O02.JPG>>>dz>>>dz???dz8*=&<OrXd>0 T*=ͅ{? OrXd>p: 7§=&&<ùvͩ #P@æ*=&Lwxm$~=ͅ{?ӪľB_O9? 7T*=ͅ{?#OrXd>p: 7²?&< #P@?&<=|bw!ý&UU?&<`}\}}M=0 ?ͅ{?5<:0\O9?&7SU?ͅ{?+1{[?p: 7¾E?ͅ{??#P@7PUu?ͅ{?@>jG-[O9?B:A 7UUu?&pewm/B êj?&<0 ?7RnwB.æj?ͅ{?ʛ>[O9?{A7_?ͅ{?">[O9?sA }7_?T&?A'qwgBTUU?T&ZO9?-B_}nA7UU5?&<p?J>rw3$C9=B ê*?p&<5R?4 ?nw7C~Bí*?ͅ{??ʛ>ZO9?BA7 ?ͅ{??>ZO9?fAoP B7 ?p&<B'?Di>?kwgBBUU?&<>k6c?iwB{CYU?ͅ{?>A?ZO9?pAf(B7° ?ͅ{?{ d>+'?[O9?jB:A:B7« ?&x?]wV/BUw'C?&<|?_w#=B-C?ͅ{?<=:0?\O9?ӸAB7³>ͅ{?,jG-?\O9?p::B7«>&<@p?Uw0Tw'CVU>&<0 8R?Rwª{C^U>ͅ{?ʛ?]O9? f(B7>ͅ{??_O9?mP B7>3'B'?Kwm Bë>3'Dw:yBï>ͅ{?<>^O9?8A7WU>ͅ{?+' d>`O9?-P}nA7VU>3'Kw6$*=B>3'<|Hwx*#P@>ͅ{?:0_<=`O9?4#P@7HUU>ͅ{?gG-?_O9?-57OUU>3'<pNIw6$e"è*>'<6R5 Fw:Ô{=ͅ{?^O9?x}7T*=ͅ{??p: 7™*>ͅ{?ʛ_O9?4*7~        !! !" ##$#%"% %&$''(')&) )*(++,+-*- -.,//0/1.1 120345 65 7273745 APL-O04.JPG>>>dz>>>dz???dzga?C?B" #da?>B" #@B" #da?>55?B" #@Bӑ?!>55?B?p\Ciy֫͑i>" #@B?>B>PO?# GJ&C?!@C=?a:5?53,B" #ÈC=B>5?53/B" #!@CNX\?P&w?` ワ0§? V³a?C?55B" #da?>B" #@Bp?B>ڑi|֫ilj" #!@C?B>J&C?!@C?B>P|4X(/B" #!@Cp?a:J̾i?lj" #ÈC??a:.d0>,B" #ÈC?Z a:?J&C?ˆC?>Z a:v?.J&C?ˆC=?a:5?5R4,B" #ÈC>B>Q?Z>` J&CHB!@C>B>>0?` 0B)C!@C?B>ʖ!?&Dljœ)C!@CP?B>Q\` M&ã?!@CP?`:0ᄇ` ?M&á?ˆC?`:"?&D? ljœ)CC>a:_>Q?` ?-B)CC>?a:0?>` ?J&CHBC0?B>kQv?}M&ÔHB!@C0?`:IyI3>>}>M&ÖHBC#?O&w?` Y>Q‘HBVe?C?` 0?œ)Cde?>&Dʖ!?=œ)C@BMX\?>` ]Q?£?p\CϞ>!>r9?'?B?p\C> >}>D3>>Iy?BHBp\C#?>}u?lQ?”HBp\C6y>>&D??>B)C@B.=>?$#S4B" #@B6y>C?` ?Q?SB)Cd>Q&w?` ? >0BHBVϞ>Q&w?` ?_QB? V.=C?N> + +B" #d<>- u?%1?" >#[P,B~x-BWT?, u?0"O"šf€WM+?, u?RW?}"~x-BW/0?,?_(6?Xo lBۣBb>,?-?57?4y C lBۣB@B>,?4L(?m6Cty C%R°ۣB/>- u?>/W ,Bf€WO?,?<.79%R°ۣBq.?1>Bl|>A.b>vyB@TPC!R>1>B~>8?9%?CyB@TPC[=>1>%Ul?;ǡ/#`>Cv@TPC+Q?1>C~8 Y%?vv@TPC4?b?UD2>+8\¤~Bp %?P?G{=bB@8½,?|[?I)>rdRBm‡>z[?rI)=j?LTBRBm1X>b? V>>QTB~Bp>Xe?q>[q=(`B#P@ཛ@?Xe?q[q(`#P@ཛ,K?b?U QTlp¤OS>b?U>Y2#8\Blp[>P?I{?>BbB@8„!?B?\:?4B/-Z?>x!O7>Y8C|,^?>\:*>yB3l`?X ?U QT>B)a?=?q(`Zq=ý@dB2l`?2!1?U(8\I2@A|,^?B?I:ɾ€/-Z?P?["(Y@8CS?|[?/\:a m 0>z[?>:ɾIBa€m-H>P?k>(BY@8N>B?>\:*B€/p=4!1?U> QTB@A==?q>(`[qBý@dBp=X ?U>(8\92>BBN>>>I:>ByB*H>>x?Z7!>BY8C 0>[>>\:?B`Ȯ-CCS?W>:ɾI?`Ȯ-COS>gX> Q9?#Cg&?BlXM;C,K?dX>Q9S %-?lXM;C>B>iq/=a0?B#P@!@C@?B>iq/a=0?#P@!@C/X>gX>U>/2>)8\?B~BXM;C>Z>%W?Vx>">BSBȮ-C[>>f>?!(?BbB8CX>>>\:?.>BByBe>X ?U> QT?>BnCBS>=?q>(`?Zq=B=B C@dBe>3!1?U>(8\?52BnC@AX>B?>I?:ɾBB/Γ?1!1?U QT?†nC@A?=?q(`?&[q=B C@dBΓ?X ?U)8\?2>†nCB!?>I?:>ByB %?>i(??bB8C,?V>%WD7>>SBȮ-C4?cX>U>QT?¦~BXM;C $%a$        !"!#!$ $%#%"%&%' '() )*)&('+,-.-/+0+1,2.3.4/50564636201789:9;7<7=8=>=?<@;@:@8A8B8C8D8E8F8G8H8I>J?J@JKIKHLGMFNEODPCQBRSTUVWVXTYRYQZQ[Q\Q]Q^Q_Q@P@O@N@M@LK_@_A`BaBbBcBdBeSeUfWfXfYeZd[c\b]a^`_>>>dz>>>dz???dz6Bg1˽Q4C;Yr l>^Uى8CyoԼxYð2#0=Czd@P:bK\f$ C2;g1FDsC^bu>)=. xC y[`5ýX$CRK>`tJ?B.`wC>f|F&Ck~>Nnv3C$?'/übC9C? 9÷D5CY?L) ~VCyg?=ž*tCpk? ;ƾ ?Cf?G>ľ# ÈQAhCpX?e>ҿ>háApC~A? ?îWAh C#?;g1?(㬾FVÈ?AlrCGS>@P?u0 B|CW>`g?S#BCr>u?a*3/(B(,C1y?^2ϗ,BC4lt?!=.:~*BԄC0Ҿ f?ΡA%#B,CNzN?)zAHkBC8D/?(ɽNÒBSCSVu ?PRS#mA`C1tm>o)}ڹWԽAC 5{=>MNVFZþMA,YC~עvI[[@qCVQ`D|O>Z}S)8hCR1 )?WRC <~*?Ya!|C>0=-+?3Zq@0Cp7T>*?h#YÖJA(nCz)g>)'?V@(A5Cج?#?lR}A(C)!??IMBmC< u:??ǿGD BCS@L?u(?.@tF BhLCbV? ?I9'BC >X??#2׉)BCmė>R?U>*6%BUCp>!D?ԫ>#çBPCe??H..?{>z B#C$B6? ?A>|ApCq+O?>H>Ô+Al>Cla?>>ӵ8AC##k?=j> ?uACNm?0Z>m ^?lC"f?ŖT>~~ÔûtCX?.g>0íSQCC?}>yQthCH&?)!+~>ÕC&?u:a>,aCp>ΖL>&M4C$Z>`VQ?-Ɵ CJ=X p?}5J ICR^RL?< C{!D? D\LC+Rо..8 ?:Jw$C,\!?%P(,CM ܘ޾%?Tڭ0 Cbɜ(`?^Rsz`C҄վLb?HpUÖ=C㾅쯽:d?93WG deCm澕=wd?@WH@ nCݾ>Zc?VöBBAWCfɾ> a?:TA`"Cʪ5>F6_?PAC₾>P[?4KAeC^l&?F}W?14FÉM BCl?GR?v?1BhUC_=?M?8BHC .>"?>{H?C1} B`C>Ÿ?QC?*JkB{CO>>f ?*i>?!$BC> >9?Â-BZC?y1>t6?ACb%?lɜ>2?%|{ƳAC=1?L>f0?j#Ad>C 9?\=/?ôACJg:? 0I/?D? C5?j 0?TE$CK+?^1?BYC?[4?2=ôrCu@?[ ' &Cue>F?-ò¼Cs=["EK?5>¤aC[N˻A>oP?u?FP4AdC%.n~>2t?VMWACш$>Jq?[I/VA2Cn?CûvA|C>:xk?5> B=C=~>g??8LcBC7>>Ud?1@B"Cp>D>`?S+"B\C>i>X]?M%$Bd C @>놪>>Z?ÔA`Cٚ>Ki>ؑW? ËA$C\|?~Y>kU?8τAC5 ?:>$S?u7kA@C"?xit=S?AxkC?!nR?ΆG?cC?yѽ-dS?m(wC&?\67T?#æ))̧CN>~~V?74C >#X? קhQC]>ⶾE[?+"gCs֖>Ⱦ!_?'|gFCj]>LҾեb?#.^H@C >Ծ-Df?g}4Z(bCOj=Eξi?:âCy@m?@MxC-Zp?TFí%C[@mx?"C:C({?OIGOADCJ̼]\>y?XxE2(AtC<K>w?B AAhjC=N>u?:>s?6èA,CU9>P>;p?1KA C'6r>>bn?+,2AtC> >k?J 'ô1AC>m>i?_"͸A\C>?F>g?TÎFAYC$>>0f?êAC>:=e?gÕlPAC>@S*=zd?A`@CL%>4Hydd?wbL d?QCf>Pe?"hCD>1f?QjߡS-C> \Ӥh?H ݩC9۟>2Kj?]b$Ö"C>l?G)í68PCT>gko?|.r*C.>yPq?3'TACKE=Ert?V9 VC60= v?Rv>óH.Ca=6[z?;ëCDa[=!~g|?]?_fC ,<8}?OBg8PKCW8;Nyνӱ~?E;CuZupl?*FBC%ʷ2漝?WH93=CżO-<;?=HÔՋ@CiDIH=?GÜ ALCf=?&9FÑKA\C|~l}?3AA-CNF=.>{?=ifAC =>>^z?9cA(C(>XRH> cx?5æA+C9>J>v?M1ZAC_>D>t?S-NAdlCe->6>ZXs?L)õ|AC>!>9q?%íԩACzL>}8>p?[s"뱒AvCܬ>x}=o?mA0=C">3=&n? ×o/AC̹>q/-`]n?G@`C_>NHn?-[*pC2 >6o?#C>p? ðTC>*]Dq? #e7NDC>I.r?4'EwPCp> >u7t? +Ë 9CJ>[RH|u?//slC#>vJw?\r34dC=DOy?77~UC4>ю{?5y6C4=J|?I8`B&(C=/ɽ|}?+;Ë <4C:=5`%G~?[=Æ eC6=Q~?j?2lC\k=#&]]?d@Ƃ CcT=U5?AÜ?C?cP=+=;?HA <@4CC~_=<~?I@@ԴC=[=??RnAԞC=FQ=f~?je>FA}CS=0μ=}?5o<ýjAPC==.|?X:\AC s>={?n7AC~+>=:z?)4zACc7>=y?1èAd]CO>=x?.ڊACf>=w?V+EA(Cs{>R=v?p)ãzAC>\=v?@'M [ArC>I=ru?8}%4AJCG>&=t?7$ A4.C">h<'t? }#@Cg>VҲt?T#y/@C>Nrt?]#0Y|#CO>t[SjQu?87&H[C'>ļzv?n-(p,C̜o>ڽvew?G*JC}Y>x_x?--c.lChA>ky?u0Ó>:8CfW)>m~z?2L'sty?v2HLC0V= z?+4=Cv=M,|?k5û.h C]=F[}?66'Ct:=ӽJ]~?7Þ-@Cn?^9 `@?cCB&F}?Y7 AP6CG=>|?&'6& ADCXz>Y!>z?Q4*-+AC[ >'>Xy?Y3A81AC@>W'>qw?12A@C|`>: >v?_0</AȘC6~>>1u?@.'AxC>bJ>>t?1-zA[C>ܖ=s?,a ABC>o={8r?o+@L.Cj#>>=q?+þ@C3>Rt<=iq?T*Ò@HC0>kq?m*ïND@pCeΦ>]Hq?*|?8C{>oDr?B+P>p%C[>P׽s?B,Îr6C:ɋ>t?J-m9PJu?9.NHhC_^>]!v?/xȆCr>>ϊ'x?z1wCZ1Q>5V|%2èY@CV7'00ٽii10?Q#?0H@CţVc_>r>97H@C㰾'00?>P#iH@gDC.V?a>@s}#cH@ECCU(>ajrq}#ciL10?sN ?]$|@2Ce8^>?'|@PC b|00?'M oh|@hDCe8?a>e|@UCC9~axsen?UCC[&?h00 ړ{!@C]&a>00_kZU@!@CIQ>JQZ?_dA!@C]&?]>00? ړ{!OCDQھLQZ?_>dA!OC^&_00?_kZU@!OC;Q>NQZ_>v"ì!OCKQھKQZ_v"ì!@Cg&P00kȎP@!@C`&?`>00iB!@CGQ>IQZ_d-I!@C`&?`00?iB!OC`QھBQZ_>d-I!OCc&`>00?kȎP@!OCIQ>IQZ?_>Ib"à͗B!OCMQھHQZ?_Ib"à͗B!@CG3?00@I"0C?3>00v×BC?,=?_gH{>uBCj'4?4>00?AI"0C6Fml?_>hH{>uBCw'4400?v×BCYFm>l_>ccQÞC"=_bcQÞCa>00~ßBC?#a00,ÛAC'>1_G]7BCީ 800?,ÛACd|r@=_>G]7BCީ= 8?00?~ßBCZ|r?iA߽_>3(PBC"'?>1?_2(PBC. q00|ÓLˆC4 ?q>00E}侈C!?Q6_@u ]ˆC5?400?E}侈CC!o_>Au ]ˆC51>00?|ÓLˆCC>!o?_>ZpM@C!E6?_YpM@Cp>E ?00- C,q 10xÓˆCK6!?_{}EcˆCB5?00?- C!oC_>{}EcˆC5>500?xÓˆCt!o?}C>_>_)ˆCQ6?!_^)ˆC}g1?6e˽AMߣArR@CWWAU8=CAP?ddo52lAH, Cg?\;CB,AtCu?:^b>B{D:ÀCԜy? `[B-2$Cbt?I>?MB*wCf?麪>N|B#CjN?>n(lBä3C,/?$?hA8}C ? 9C?:A\H5C >Y?\*FEA[s Co=>yg?žA! |C袻`k?ܗƾރ?E CGf? ľs< lCegX?ҿ#\$ tC zA?Qvl C;g1#?'㬾9prC@PPS>m/ÀCagT>XQf èCur>aF,',,Cy1^M?/Ct4l7=j6؄C f0Ҿ #Z>,CNMzmz’GECG/ߒ8\(ɽNMlKðSCu RVQOgPdC/tm+}+vTðC=5{ZQVhW0YC ;IFXðqC6D>P`!R>@W@hC>(1 )?SAhTüRC= -+?'j?V4CTp7*?U,nCg{))'?l"`S5C٬#?ɹO,C)!ᄡ?'YJômCu:: ?X|DôC L?@p(?C=lLCV6a ?še6üCX >?5.CRdė>P>3Pk'ôUC!Dy>ޫ> AP TCF..e??>#C %B6?:>+9tC ޾k+O?H>%p>Cga?>W#r C&#k?j>i ôC0=-m?>g??J* tCіT>-f?>A: xCg>X?>A C?C?(>VAːxhC)!?[&?}>pACu:?q&?Wb>BgaC L?>q>K>; Bi#8CV?%Z> ?B*CX?J=p?MBG:2èICR?X_?B-9C!D?{h? B:@PCm..?Rоm ?}AEGÜ$Cu?+'!?AVL0C>x %?ApfQ4 CȜ>b\`?NAOhC L>݅վab?BFA,Rè=C|=E㾊:d?z@SleC m澢wd?࿑RT$nCݾZc? 7QSÄWCfɾ"a?<{H?{”.dC>QC?^hp'{Cf S>>*i>? C >9?+U[Cw1;?s6?kzCɜb%?2?v8èCL31?p0?kK&h>C ﯽ 9?E/?ͷc äC)=g:?H/?? C>&5?0?Q A Ð$C|>+?"1?vA9\ðYC@>1?Ċ4?ADC>?8?YA(C?>Cq@? B#ä&C?e>F?B0*C "?sq=EK?ABܽ1ìaC?q˻ oP?2/B80Cf ?{m뽊WU?Bu?DC> [~Y?AE!C2>F]?iA JPCh>ss?AG$`C.Y>N|F-u? AKàC>biv?\2AiNC_t=|}Mw?X@OC/mw?:@̿XPØ C|ѽ.t5w?<qO8 C47Xu?bSMhCn~%.2t?JC$ЈJq?XPE2C2㶾rRn?p@ÀCcȾ\?<9xk?:Ð=CҾ=g?_`4CԾ|7>Ud?RJb. "CDξp>`?(`Ch>X]?n "h Cꆪ @>>Z?1dCKiٚ>֑W?$CYU|?kU?~ØCL5 ?(S?s72DCot5#?S?=|kC<?fR??CäcCV{= ?VdS?@'*xC57>?bT?^5]AsHЧC~~>>~V?=A1T>X?A[pQCW> >[?@AøC^>֖>!_?VmA$ìFCћ>J]>b?'Bt*HC> >MDf?B910bCbE>Pj=i?yA7C >:Am?%A =xCT>Zp?+ACCm>:x?@A?ȗCF>}Z|?M gAO,GÔs?Тo30CPS9>;p?s NH. C'6r>an?Y(xC >k?+#C m>i?N`C>F>g?@)YC%>0f?kÐC:ƽ>e?`uÐC3]*>|d?Ӎ Cn&y<%>dd?>w?tCM=Z>d? @AC=<> e?;ArbpC1>D>f?փA&-Co\>>h?AðCyK>ڟ>j?p(A!üCH>]>l?>T>)lo?K0AF+CDP>>q?A0XAC.>[A=prt?[A+6ðCI >0=v?A2;L.C6>k=Iz?Acn8İCh">i[=^g|?\AP<äC*8><Ƭ}?slAG?XKC}=8;DZ~?4AA C=zZvl?@{CȮC<ķ?aM@DðC-ż;?1DCFIHi?_DPCf?wB`CO~l<+~?S @PmC$=}?'=-C.LF={?`.:C> =]z?]W6,C[RH+> cx?C2+CJ9>v?ܱH.üCD_>t?vQ*hlC6g->[Xs?v&ÐC!>9q?Ώ\"ðC|8xL>p?!Xq/vCx}νݬ>o?\9=4=CI">(n?ÌC9I˹>pn?O`äC-<>c]n?O?}hCTH=>7n?w3@}C=u >6o?A؁#C=>p?fNADUC7>>Dq?!A[ LC.>v>r?A#TC%>>p>Q7t?cA'(9CRH>ףJ>u?LA+pC J>#>w? jA.0ØCD>=Oy?Ag4UC|=G4>Ύ{?*%jAؚ2ÜC==0|?NZA`5,C=7=|}?cP=?p%Q>8CB~_=~?]q=شC[=?D<؞CGQ=f~?Ly!; }C3μU=}? 6+9PCڽ=.|?R6ôCs>{?TgL+4C|+>;z?D/szR1äCf7>y?u9c.h]CO>x? okz+C㽍f>w?2_(,CUɽs{>v?F:-&C\>v?'#ôrCI>ru?b9"JC&G>t?& 8.C>*t?]9 Cc;g>ղt??W $Ca<7>jt?]@z Ä#C\=N>eu?- A"P[Cʼ=ĭ>v?!1A$ÔC#=աo>,ew?MAC'äC =wY>[_x?~obA)tCw=A>jy?FJnA,ô8C =X)>O~z?pA/zChW'>>sy?6@A/TC >v== z?IU@|0C>=,|?.@R'2ô CE>=[}?a@`q3'C=<:=S]~?@4@Cw=<&?w@"u5DUCҰ>=z?B1C'[ >Xy? Y0CW'@>qw?.DC? `>v?g-̘C5~>1u?q+xCcJ>>t?+g*[Cӽ>s?]I)ÜBCo>{8r?c(P.C>f#>q?3'ðCȿt44>iq?鱪^'LC<<8>akq?>>I'xCH=ͦ>ĵq??'@C﷠="{>Dr?H@1't%Cl=Z>Ys? @(ð6C>^͋>t?4@)DMC>v|>ZIu?j@l*PhC_!> X^>Hv?x@AO,̆Cj'>r>>x?/@-ÐCN?61^|@.ðC#00?Y7ٽEO@qMfgDC.10?Q7?=EO@T-C]>;Zrq?EO@3C\10۰>Q#?DT-Cb_ãVr>D3C*00㰾9P#DqMfgDCa4V?nsD_ÈECC"b>Q(>crqEO@_ÈECC@00?A9fR=?QepDC10?A9?RE? Ø2C_]>d=\ys?@?cC$XC10Y]>M ?;\濯 Ø2C`je8?@\cC$TC00bM \QepDC`e8?(\aUCCBa>g~xs?aUCCe>W&?00dKBC!@CcX&00(g!@CHQZMQ>_Lna!@CZa&?00?eKBB!OCPQZMna!OCY>c&00?Dg!OCPQZ?AQ>_>$B"3!OCGQZ?JQھ_$B#3!@CI>l&0001g!@Ca]&?00jz¾!@CFQZ?DQ>_@TZa!@Cc>d&?00?iz¾!OC;QZ?Qھ_>@RZa!OC`c&00?12g!OCLQZCQ>_>)Lž!OCGQZMQھ_)Lž!@C>H3?00i#@zFÌCC300#6٩ÌC(=?_¹xÌC4m'4?00?h#@zFÌClgFm_>¹xÌCމ4>|'400?!6۩ÌCl?XFm>_>~ANÌC=?_~ANÌC`00+$w{ÌCa>?00;<)ÌC>1? '_赂KÌC8?ީ00?;<)ÌCt@߽f|r_>終KÌC8ީ=00?*$w{ÌCZA=`|r?_>b†g%ÌC>1$'?_c†g%ÌCq>* 00΢B=yÌCq/ ?00{l@SBÌCQ6?!?_ޫBqÌCG>5?00?{l@SBÌC!o?C_>ޫBqÌC:500? ΢B=yÌC!oC>_>MU,JÌCN6!_LU,JÌCC p>00A^*ÌC ?%q00BuÌC!N6_B78zÌC5D00?A^*ÌCC>!o_>B78zÌC5?,>00?BuÌCCy!o?_> B%ÌC!?K6?_ B%ÌCCg16?˽b[TC8CWr ;?l>)XCxnWwI\C4=C@P{d?9NvNC( Cg*>:F§HCtCu]b>>&@C|Cy =X`g¦.9C$CctaK8?WŒ1CwCf|*CCNp~n2xi&#C3C%/$CC% 9C{9 [CH5CnY)W]CC=ygžkCxC;ukqƾ̿UCCG>fľ^+@CpCAf>lX"ҿj[ACxCw ?A9ANCp Cg1?#㬾!ACprC@P?R'%BN CC_g?bQB&CCu?ra= B}).C,,Cܜy?1=^؈B5CC{t?5l>=Bn=C؄C f?0>B`DC,CN?Uz?:zsB KCCO/?Ē8?,ɽ1AQCSCB ?cV?V/OAWCdCB>Ftm?z"}AZCCz=> 5{?VV؊A]C4YCᢻ?DI,?^CqCDVQ`?O>!1^C?|-+?I?t]C4C}T>O7?*?A3d\C0nCg>])?A'?M AYC5Cά??#?A7VC0C*!?>? AAQCmCu:?d >n?LBKCC L?E@>Y(?{7B5DClLCV? b< ?B'B-CUC!D?o>B&CTC6..?T?>AnY C #C?)B6K>ACtC>+OoG> A8Cp>C(>^a>WACC= #k2k>r@CC10Hmf>jǿĮCpCTf!>HCxCCgX>ǂ>CC}C>nDCxhC)!I&)~>bCCu:&a> "#CaC̖Lp>Cy)C8C^V$ZU?[91CCXoJ p?Y8CICR^=K?§3@CC!D{>? µNGCPC../R>5 ?ߕMC$C\,?!?eSC0Cۘ޾M ?%?ˠWC4 Cɜb>(`?f{UCdCL҄>b?{FXC=Cjﯽr>:d?ctZCheC=;l>wd?D? ZC(nC >)>c?AUYCWC>g>a?zA{WCd"C|>˪>$6_?+AtSCC >k>S[?A!OCeC?(}W?}AtICC?al=NR?7 B@CClUC?`_M?B/ɾAi>?Bhb'CCf>^9?=A`G!C[C03>6?ACCɜ>c%2?ACC L>G1Z0?IaKAbCh>C"=C 9υ/?m@nCCסFg:.I/? hC C 50?ʁ C$CtH+1?@vCYC[4?}C@C8?mn:C$CpCY?LC!C2;iF>ժ]?]QCLCi>s?VNC$`CY }F>-u?$t+RCCmiai>ַv?2tTCCptr}>>w?~OVCCw?l?kVC C{=Ίt>5w? AbUC< C57>X>u?aASClCˣ~>#.>Xt?fARPCCZ$>}=Vq?=8A&TLC2C1>9qR=n?XAy8GCCݚ>@?!xk?AvAC=Cl>˽g?STB G;CC>P7Ud?IB4C "C[E>p`?Bz.C`C`>/X]?WA](Cl C>?ξ?Z?A#CdCDj>W?AxNC$CԣY>||kU?fAyCCG>j5 KS?\C7ACHCdt="S?@ CkC kR? CcCyѽ/dS? CxC67!T?e]CЧCݣ~K~V?U C8C#ݾX?P ClQCⶾcE[?Ul%CCȾr֖!_?kj.+CFCRҾu]ԥb?%3]1CDCԾ ,Df?%27C,bCEξOji?|>CCrk<@m?>DCxC$=Zp?CLICCm?;x?XjcFCėCF<=z?nJCC |=Z|?9gɰMCa=){?U1AYLCHC\>[w?A aDCljC>-u?A{?CCi>7<s?A8:C0CO>9?p?[A4C C>6r{n?CAl/CxC >ַk?AM*CCm>盬ڍi?ߚAǠ%C`CF>lg?(A!C YC>ҾH0f?zkAlSCC@=J޾e?0A1CCcP*=jd?@s@ C$CvyM%dd?]AUCpCL/d?0mCCt\پe?;ClC1Dʾf?C-C \Ӥh?ǤK#CC.K9۟j?@('CCㅾl?T,CCİC!Na[}g|?tʞBCC8,м}?ѣlECTKCLyν8ӱ~?05[HC CuuZl$}?|AktDC -C.>A{?yHA ACC>>qؽEz?EA1=C0CMRH>cx?A9C+ClJ>9v?kıA4CCD>_t?_ެAʓ0ChlC"6>+[Xs?^Aa,CC!>Ⓘ6q?Av(CCs4>Lp?'qA%%CwC~=4ݬڔo?69A$#C4=Ch=I"8n?vg@SL!CC<˹qn?5`@%= CC-p]n?vR CdCNHPn?“ CC2 6o?.S"C#C릾p?N2$CUC(^Dq?9 'CHCG.r?u*CTC >pt7t?zoN.C$9C\RHJ{u?cp2CpCsJ#w?$'6CCDOy?&r:CUC4ю{?YUjR9CC7J|?A~Z;C,C-ɽʽ|}?m+Bl>C@4C4`:$G~?$L"@CeCQ6~?35`BCpC"&\k\]?uCC$C`gT0?:- f`DCC6;lPx?>"N?jDC8CΙn? =C nCH=D?.?lyG}?͝@Ú:CT6C>`Ľ|?@g9CHCW!>vr,z?@8CC'>\ NYy?@6CCNK'>@tw?,@5CDC8 >`v?@3C̘C>~1u?@ 62CxCYK>Ϲ;t?8@0C[CE=s?L@d/CBCw= 7r?@Z@:.CT.C>=u'q?2@ZB.CCs<<5hq?0?-CPC lq? J8-CtCH0̦q?w ڿm.C<CyDr?CH.Ct%C!K׽Ys?_T G/C6C4Nj)t?rG0C@MC;i|PJu?:y1CLhCX!^^4v?M2C̆C'Sr>x?EG4CC61>Z|>f5CC"00Y7? ٽPlCgDC610F7+=P^3CCP`;>qq?PG:CC 10?ܰ+Q#?/D@^3CC^>V?r>/D@G:CC+00?>7P#.D@lCgDC^b>%Vs/D@NdfCECCa3(srqPLdfCECC00sA9?R=O>kCpDC-10A94RkO)B'C2C-a\ixs?pO*CTC00?m^yN ??)B'C2C]>e8?9??*CXCk00?9b>)M ?>kCpDCHa>e8?PhCUCC`i=xsOPhCUCCkX&00jQºNC!@C\>b&?00=.\nC!@CFQZ?GQھ_{@PgC!@Ca>c&00?iQºNC!OCDQZ?fQ>_>{@NgC!OC^_&?00?f=/\nC!OCQQZ1Qھ_>(#š%C!OCJQZJQ>_(#š%C!@CP`&?00"GnC!@C\>\&00dtB;:C!@CFQZIQھ_^LgC!@C\c&00?etB::C!OCGQZYQ>_>_LgC!OCZ>f&?00?ۛGnC!OCKQZ?LQھ_>%FB%C!OCEQZ?MQ>_%FB%C!@CC300˃LCC>@3?000B+CC)=?_B6~CC4>q'400?̃LCCl?PFm>_>B6~CC4p'4?00?0B+CCl\Fm_>30TCC(=?_20TCCa>?00!BCCa00A/CC>1 '?_߯B!CC 8ީ=00?A/CC8A=`|r?_>ூB!CC8?ީ00?"BCCIA߽_|r_>ZB+CC>1?'_ZB+CCq. ?00ԢCCq>. 00>mHCCK6!_ RxCC+500?>mHCC!oC>_> RxCC >5?00?ԢCC!o?C_>IR?'PCCG6?!?_IR?'PCCB ?p00s0CC# )q>00i4|CC!?P6?_W^CC5?W>00?s0CCȼC!o?_>W^CC5:10?i4|CCC>y!o_>,[,CC!R6_,[,CC6?vg1?˽QCA8CD;? r ?n>lUCA^g?CDC BtC]b>u?d>7=C+'B|Cc =לy?ڰ`5Cj+B$CIct???.C\)BwC뺪f?9|T&C!BC%fN?nC7{B3C$*/?CZBC<9Cg ?9CAD5CY>*C`cACygW=>ž'CIAxCck\Ǘƾ Cb@CfGľ1} Cg& C@|CS`gX#C ¤Crua*C7(,C1=ۜy^ 2CӅC5l>yt@='+:CԄC0> fAC ¼,CQz?NozOHC,CΒ8?D/,ɽ NC)SCdV?> !W`SC(I`CEtm?A#}WC3[C5{?=YV%CZC0YC?;nIY[C3?qCP`?6D>"R>ZC؜A )?%WC쥃ARC ?0%-+?0ZCGx?0CO7?|T*?v YC:-,nC[)?gC'?ĠVCV5C?Ǭ#?zRC,C>*!?WMC;mCh >u:h?ռGCCJ@>LN(?<@Cw4hLCa *C$ °UCm!D>#CPCT?6..>C#C)B6H>yCpC+O޾G>Cl>C]a>C#C#kk>' CE4C'm0=>k CD@pC'fT>>{C)FAtC!XMg>>>C͜ACC?D>C uAthC_&)!?}>CACr&u:?cb>#CBaC@q L?S>&CIB4C%ZV? ?-C±&BCXJX?p?{5C\(BIC^=R??!D?b? DCBLCR>i..?p ?HJCM B$C+?p?+!?"PC#A,Cu ?>%?-TCѺA0 C{b>Ȝ>^`?[RClAdCۅ> L>bb?VmUCzA=C>b=S:d?G0WC > AheCwd?NWC?$nC)> c?VC|WCg>a?8TCF`"C%˪>u$6_?PC!Co>S[?BKCeCOl&>'}W??1FCwC9l=LR??ChdhUCm_M?8CHC .b"{H?Q1CldCcRC?-*CNY{C5>ɾf Gi>?$CCXe9?C 7ZC2;6?(C޽Cc%;ɜ2?3yCECH1 LY0?gC4Ud>C 9 /?CCg:=H/?ACkߖ@ C&5>0?bBCލ=A$C+W>)1?C&AYC.>Պ4?@:CA@C>8?CvA$C?CB,Csm=f ?WU?ABCɮB@C[>޸>Y?KHCB !CF>2>]?NCALCr>h>s?KCA `CJ|F>1Y>-u?NC*ACbi>>v?QCfAC}>bt=dw?@SCxKACim>w?SC!? Cˊt>{ѽ5w?RC8 CX>57u?TPCr-hC#.>~Zt?SMC]Cw=T$Wq?iIC522CGqR=*㶾n?CCRC*?ܚȾ!xk?2>C=C˽gҾg?M8CC\7ԾUd?1Cv"CpIEξ`?P+C!\C!JX]?J%COh C?ξɆ?Z?C`C jW? Cߙ$C{|ӣYkU?5C`Ck5 IKS?rCH7DC#_jtS?Cf|kCfT?1CʸA̧C?~>~V?C[A8CLݾt$>X? CAlQC 4>[?("C^AC֖@>!_?'CBFC<]>b?1.C+6BDC >MDf?uz4C)B,bC%Qj`E>i?:C BCR<>Zp?QFCIACx9;m>x?CC^AėC<=F>z?*GCAC}=>Z|? mJCʢAf?_gCA-C^\>h?V C;ACٟ[K>j?k_$CFAC`䅾=>l?D)CZA8PCBT{>(lo?.CjNACCP>q?3C ATAC`AĽ->qrt?S9CzAC#0I >v?`s>CAH.Cr6>Iz?!;C"ACi[o">]g|? [?CzACм*8>Ƭ}?]BCWATKC38}=DZ~?EC0Cz?9C?,CQRHcx?5Cڕ+C9lJv?[1CbC_Dt?P-CVؒdlC+6ZXs?I)CXCⒾ!6q?%CkakCLp4p?ip"C=vC3ݬ~νٔo?C"0=CI"h8n?CNOCʹ+qn?iCH+C©-Dq?#C?AHC{.>r?1'C APCp'>>Q7t? +C A$9CڣJRH>u?,/CkAlC# J>w?jo3C,ACD>Oy?7C0AUCR4=͎{?5C0AC =0|?W8C*EA(C@ʽ=|}?(;C7vA@4C}U=TG~?X=C7XVAeC7M=~?x?C &0ApCbkC&=`]?a@CMA ClTOS<.?AC®@ClP6x?EAC@4Cz_͙~?W@CԴCs/\??CwTԞC<Rf~?xb>Cz}Cʼ}?ClC7Ay?1C^Ah]COsx?(.C:Cfw?d+C*,CZt{7ɽv?m)CCav?='CrC獾Mru?Fz%CJ$JC?&t?4$CO4.Cf畾낌t?z#CK?Cg;˲t?Q#Cq@ C>N=*ew?U*CAC#wY#=[_x?*-CUApCA=jy?0CBCA8CX),=M~z?2CzAzCR'>sy?2C-APC?? >Fz?93Cf*ACu>3,|?h5CS"A CkA>\}?6C7A'CK:s=]]~?7CA@C&r=&?ߵ8Ci@@UC6>=n?[9C䃸@cC&tq?*C82>C5'thq?b*C0?LC15t?X-CMV A@MC}t|>Iu?)6.CALhCV^Z!>v?/Cx&AȆCr>'>+x?1C׃,ACS1>6c|"2C!'G@CT7?(00?ٽ0iCU@gDC07N10?=0C@C=>^>"rq?G7C@C۰P104Q#?0C@>CV?^r>G7C@>C>'00gDC,VaHs辑 cC0@>ECC[(a>jrq cCS@ECCA9?|00?R=hCP@hDC:A900?Rm#C@2Cm_>xs?!'C@TC_00M ?m#C?2Cae8?_?!'C?TC b>|00(M hC?hDCe8a eC?UCC.~=a>xs eCO@UCCZ&g>00 CҊB!@C]&?a00skCqK@!@CCQھLQZ_dCN!@C\&b00? CҊB!OCIQ>LQZ_>dCN!OC\&?d>00?skCpK@!OC;QھOQZ?_>s"CB!OCCQ>MQZ?_s"CB!@Ch&?Q>00kCP@!@C`&`00~C{!@CLQھHQZ?_dCaA!@Ca&[>00?~C{!OC^Q>CQZ?_>dC_A!OCd&?]00?kCP@!OCHQھIQZ_>^_"CĊ!OCSQ>GQZ_^_"CĊ!@C?3>00RIC@CR3?00LuCˆC$=_zE{C=lˆCw'4400?QIC @CFm>l_>yE{C=lˆCs'4?4>00?LuCˆCMFml?_>s`QCSFAC?&=?_t`QCTFAC?`10ҷ~CˆCa>00|,CC'?>1?_BFC\xˆCީ=8?00?|,CCi|r??߽_>BFC\xˆCީ800?ѷ~CˆCd|rHA=_>C(CfC'>1_D(CfC8 ?q>00|CUBC) q00ÓEC@C!E6?_QuC!fBC5->00?“EC@C+C>!o?_>PuC!fBC5?-00?|CUBCC!o_>jmMC@C!?M6_kmMC@Cp< 00-Cq BC-q>! ?00xCBCS6?!_x}CFlBCX>500?-Cq BC!o?C>_>x}CFlBC/5?00?xCBC!ozC_>o)C)BCM6!?_p)C)BC$IIII\       !"#$%&'()*+,-./012 3 4 5 6 789:;<=>?? @ A!B"C#D$E%F&G'H(I)J*K+L,M-N.O/P0Q1R2S3T4U5V6W7X8Y9Z:[;\<]=^>_?_@`@aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ{[|\}]~^_``abcdefghijklmnopqrstuvwxyz{|}~             !"!#$#%"%&$'!'(&("!)*+,+-)-.,/*0)0./123435156472818679:9;<;=:=><?9?@>@:9ABACDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC[C\C]C^C_C`a`b_c^d]e\f[gZhYiXjWkVlUmTnSoRpQqPrOsNtMuLvKwJxIyHzG{F|E}D~ABCaabcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'() * + , - ./0123456789:;<=>?@ @!@A?A>A=A<A;A:A9A8A7A6A5A4A3A2A1A0A/A.A-A,A+A*A)A(A'A&A%A$A#A"!BCDEDFBFGEHCIBIGHJKLMLNJNOMPKQJQOPRSRTUTVSVWUXRXYWYSRZ[\]\^Z^_]`[aZa_`bcbdedfcfgehbhigicbjklmlnjnompkqjqoprstutvrvwuxsyrywxz{z|}|~{~}z{z      !!"#$%&'() * + , - ./0123456789:;<=>?@ A!A"B"C#D$E%F&G'H(I)J*K+L,M-N.O/P0Q1R2S3T4U5V6W7X8Y9Z:[;\<]=^>_?`@aAaBbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ{[|\}]~^_`ab~}|{zyxwvutsrqponmlkjihgfedcb      !""#$%&'() * + , - ./0123456789:;<=>?@ A!B"B#C#D$E%F&G'H(I)J*K+L,M-N.O/P0Q1R2S3T4U5V6W7X8Y9Z:[;\<]=^>_?`@aAbBbCcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ{[|\}]~^_`abccdefghijklmnopqrstuvwxyz{|}~openuniverse-1.0beta3.1.orig/3dmodels/bacchus.bmf0000644000175000017500000007374707045144437021663 0ustar paulliupaulliu ASTEROID.JPG4>==dz???dzdzFcX>Nsg?<[u?j>xȈg>T{n=a? XGq?z>~[U`>R ?T]v?-ʘx?De>cGnW>f;e>tdc?ך>ցh?d>3T=~Z>h"~>to?9& >nu?J*s>z=έ]>t?6f?p>,(m?/>Si=I>\=&PV?f?auk?=qP>bz=O?|S?<?RʩeoT>y3=4A?i6[?^=/~?:<M>W= {p=kY?'jm?> V>w->V?)7t?|l>VXy>Y2=N?i?z_>:нh>˽Z>wP?,?<6<3h>jN% Ui>X?&7y?^>.Ȼ>^#>T\U?>Ov?ػ^>W=!>6<?(L?P>ncY?!kB>>> *>T~~<=[>YL?}>P?K>>+@>x^i>gZ?KB>'[?og>È=@>:/?K?d>m?cD(=`C>, >z0?i?> {?=wy=#N>.i=pF5> P?[ nOx?IZ;t"{>k[>1E?ھhg?-潝zh>,i+>G[C?(鬾z_h?vk>&3hv>+PG?ȩDכu?ByS@?˹h>\^M{> 6?%b^wm?sڰ;#i>I qOT>V=?wQ`d?]AQf>Od,>1G?´=Ib~?ҍ$h=7>$J/>:?R?HH?c>tU7>##>1[h?K?r>0a?+y=31=.>dH=R ???[? vW?Hz=>]>6!0=2E?^{E?R=@~? nm3 T>;>(b9?L7=?UTe> x?rӽ+;=1L>4?[>H\?##?+Iw?J e- >/g>8_?>2?UI?lT ">%>%`?"?|iFJ>+Z_9-'!=J=>f?2?r|O#>-/=?>6g?+?sg>` =X=Cs?? NqE5>=3{3v==6r?=]0?)f>?= =F=?]?~v߄2>QS>"C_=)<=?c<>OjQC=E}=L)?DPc?">sFR>6|=u-%?L}0?-yV7*>PD(>t2?+?9?_#>?E>1>_,?K1?+?> N=?w%?R?M?,=vT>j= &E={?i!?@?Ac(?6O'="G>88=@#>Q?d2??NP?<9>d>>gA?f"?2:7U?= ? r:>H>ĵ??2?R,>tN?? v>=?Y!?E+>oQ? >"=2>~>$k?8 ?r~==-2|=J=T?>~wO<> Fn,;t?? ? { '4>7;ـ=Ee]?.Umژ<㰿>"C_=)<<6 ?/?q]<ê>v3O=лX>.Umژ<䰿> Fn,;F= ?)X|x=>6~д=Ll=|>vR~=ʛ}n;J-p=>t'EMF>ONhm<i3>:|?HM>dLiO9e?7E>[> F"+_;=3H>>A08&Nkݾ> ?|>(?8,z=p=c>?X>:?TX=\< !>|2 ? >!?iC<=L>GO>Lwt?Eo>aM5ۨ>o>m?G>󓳾z^>E;<0&>'?uU\?>j1`>YG<䩾'n>?ڸt?Vk>I:>.$?fh?T>M3?2o>+=8B>>D ?t? ו>??={>7<=?O ?#i?>ȁ_s>0.=>?3}?r?>=O|{><\>?µ>!d?='1>a4P:*>G#??AZ?l>>>f>V=>$??Ġk?>9Ȓ>tm>f7?ڜ?}=?A>^H?a=L3=n>5:?h?$?6 >?=tbn=}?4^:?k?چ'?_ZA?tɮ=nZ<?a@?]>X=V .V?.ľ>hO?^Nռƚ?B?2>{,+ 3?̔@{1>*I?G>Th>B?8>@K?;2>gl*;!?B⽎>'M?G>+ >_ >n?{>{GNȽU ">$v20L(=Wf?7>o~K=-DA > >^>zd>)׾'>Kwݨd>S>piqu1ބV>>hXmJti Otˎ(>a>ViLJaarIz'G԰f>OZ>n>ad5uܵ=ɻ݌鸄>g>c>Q>^!>P c0\=K=ѫI>'?@n?X>u>m Q$?y?*$x=QZu>o;`Q>>v?b߽>wR>ɒ@^I>h>4?33ҽ!y>rԽ>*>qZ?kt->[O>@>pa?D=눇>S+ȽɁ?>eIb?!kレz:#q>ꝽR= ?r>B{?tCL<~>>F=s?>s?M%*T=z>kEN>. 6?8>2N?A?>>bPF:)+>/?[>&F?dP?-1>>-?->tr\? ?pG>E=rU>N>x(ΔR?wV= a+ ?/=?| ?3>in?T=;w ?$:???*HK}?"=-n_Tܾk>!BϽzڬ]=F>Uć { >B"zlE>]>&&>; z_>?= T4R 34ujh>ݶ>&=*={S?UY۾M`>>䰹b6ML4>>D?P(4h:<]>>?PYn:=[}>N[> i>*q{b|6`>]? 󾫟)>bc}>'枽T0">0>S:6? 3~=2p>Z L)?>#?wD=>ݥ?!O>0)?>91?pt7p = +>Xe>x/?>?F;X=]=Ee>.?8>(7>Z '>OG?k>6u|=w][Ks>kI?T>Nzql>@\DR#>auQ?\"{>оdi3u=X8XJH>0U?E>OBA={|6@Wk>TV?5]> =+;]0ݽD?N>aP?nw>kF-= ý H >Ke?>p~=x0ٽ1>Fd?d>iPsM$=%=[?>gܾ<  gA>>>. :؇=[+#Ϯ,4=Ѕ>W_=@<08='I>D1/8u[=C-0gM>bh>x?NJ:=$i8j9wФ> 8l>ϱ>YcV޽t@=RX?)za>ˑ>?V?_+@=Xvڂ&>`>On?NZEȮ=Nn>v>E?bJ5i9>>i>A<?IJ~!~#>T9ck2>}>.?:^0=WF>`/:s{IS?\>,?t<Ɍ=\r">8h.< ?X7>p.?%;3=O&>ݼ H ><?*>?3Oa=#=Rx=^?pa> .?g?:t7={>59e=y[?K_>!EL)NC >f?5 >_o_½헽P猊=T?;>KTs2dg``>X>^>Mqb3l>>w _=ee稽m3>X>G?I\_g=VE"?>O>Dv'=~=Jk=<&?q>V?YKB,="=[K>>8=XH0zf0˼b^a 5?m >i6?E ?=k >+9?,W> *?Tc_?=%ütR?:?N>`?j?= O>=w>R>W>@l׾a8*= v ~>+>>=5dPHse>VId暾d?ó"m>QHAc?=q>?6΁* ?UV==du>Q ?ZXz/?V&0=>?3?Lb >4B?9"?T<Ȕ=?>B???ҽnB?n$?)}G= ?K?? ?;I-? P?3z>4?H+=->z#>=F?4JU{p>4UE?-?[2[h`?|n;?]?|B? ?UˈKb?N f;6 ?C?Ub?" >`?UoC4=? >g? g>G ?\;Ϝ=@=|27?N}?UR?3>D?-=<?.@?h>af`kk?ܧs;#g ?7IV2?S?_b=u=0?>Ls>d$?(BȾ >oӽOvȾ?>L>Y?(M =ZY߾)>>(?,,)(E>]`X۾P>>>=>~G#!IȾ62>G$>ICI=; c/>N&?^4I>½`}7=:> ?QI!(؄=Ljľ">ɝ ?LC7>zV-N}=yYF?T !?"b? >h=gd4>>fI?p*(?ozjr?cT>FߌD>ܝ>H}K??@)4X?5?uֽc#->> :?+?ӛ>h?t>hT=*K>>7?U,$?7>N?/>촬=2>->ߣN??!,R_>?S=>qP??D_9>>' >y>O? ?aKM=>4x=E>f'?}>V?=>6_>0S<>|.?]h>lA?[J ?>/3>4M>~%?L>jn?캲?>>\m>:ݚ>q)-?*R?eW?>>:D> =ɻ>+TA?d*? M;ut?A\> 49;eQ>>G?C1?F t? =H.$W> > t>>>]nZ)ZvU&:f>=Ț> v=~[4)@g).>1>?<9V2=`ZɾG>#>G?Ay >J>v+uF>L)5z4` ^i>>3 $g]Fec Q ބ>>B? ?>Zd?;>Rn>?">Y?dD<[>w#?r&@>(>@s]W>|e ?0IJ>:/2 ֽ(=v)9L>?T?>Uw='ҾJ=20?ף,>1-7 >8?CY?rHt]Q>F1!i> #?l00?̉hT%As>~å>/&?>2?x='@>˱5>!?F33? ?fW>q*>&,v>S?:? ?;0i=D=;=?qY> 2i?kwT===) ?,D? >.1BL?R?g>p>?/=A>62?r?nX?a>>*><>!J?@>M+@?ؾV>M?:>R?Ⱦ?f ?Θ ՘s>JO?>k ZP>-Ca>Q?)>y>Α)A>In}SLM> g>T@?P>@L=9M0?,SE?y>.N(:[kv>g@z'>=?N?>K=XC?*=+R>Ҧ4?jg>T? ?=*Y>w9?ɲ>d?f$?=>9?f>\>%|?Ƙ=$>6?>y> Br >D=S;Ԯ>lxP??K>X[e%O=>VQ}a|>3N?:>~T/B8q> X"S(>rL?O>3|phh>b3^>s;O?>h-9i=@/˙0>v>>Y>VpJB~ݽJV|>>n>[/E`:$i<㾉gS?ˣ>Gfw<>%@4y#> [?1>Wuzq<#|f>VR?G>kž=?Dnh>(Rh>??8Om>!q>?Ӿ=0D?H"$">a>)>&?'E>>=>Q>%>e=ri=S:R>?ٙ?S8>l2ݹ=ȶ< Hj>B:>r6+NeHiiV>[>}5n[0EܽeLf>p>2%ӪfCaʊ2ۻ{@?a>b)Hey>;,4X>&]B?1>lDkQ>-sA~B>)? ?N?7>7>R>T=v.>GuI?dS>νR>~z'r=⼌d0>8>QW>s=g <=vfR.q>@>k=sv|/M>)eBkq.g?=̾ciXٽ-\,=KMv>> \>p?OYIdB̾$>?sL>/J?pq N=-.>q˾+>o+?hc?ԭr>+?5>]?xX=U>si>C ?eS?w>b㟾Z>dx==(>\-?{%Y?>妾Sj>x=+~V>>.U?yq ]>~΍>>J?P;q>O?ZHl>x>Ey-?c%,mW?>(lyYR>\>876q_"]㽂&2d־->@> ?~C9Ci>a 3\zX?2?L?%sqK4>Q>Й"?>:?.vH8=@J>6^>e/>}?]l> zk8v=/{No>J>#!?\@wU;!Y>GNE)>b>0OM鿶=F~`>&>dx%fVy4?û9>7q>ƻ)?S'E?? ]>)]>=k&J>&?DXZ?@?_q=Ij>%>r"35>w? 9F?$w g>O %>5w+?{:ھ\?;.8>}>>#?7 Cj?V2,> =?G>Ru> Fv^!QqDѷľYrH>֩>~{F;:>?sfD2>0>SNH.'S7w櫾ء>?¼Q?r>{66>F= p|> ?f:? ?I^վ@)>F=Ⱦ+>?5V?ݿL>4<>Vɾ'>??ƙxw?`\x~ =c8}>rY?<>}?:e;i>>t"j> b?>|*bI= ()]IP)>\)_?. ?S}H]D`1ȝ=_K>^?0?"|(=/,v:6=;V>#S?#c"?(yG@?8<<%P&>꽤>X?bF!?63?K-m>s>V?U??!Li!`>\=3)#>5֩>)?>qK?OҾW>H>ڮr>ZX$?y>^T?M+N>]>M½>w1?X>?(Ua0C>=?j>J?? oz?N8?=v>s>>%,f]`Cڼ yl>u>@%M¾Pa@w׽a"Ta>>7mulIe¢O >F8?`^hv>T m#=O = ?EAxj>?BcC=sK>F?Y>`dt?A==ux>0,0>??.>r?}=y>d"=?߿>}>\X!?3=,bƒ>~d9?|>>aY>|=ƿE3y>ܽap>*=Li>Y&>5?x$`?5?O>ZRA[?>?t>`?=>>C|>w?kwŴc>FZ l>f%>?=ERKŽ>ԌF>N|>rG}?eL½=>J!>>#n?؇5ˁ·>-u:r>:-?%M??^ 1A>3>8T>I6?7?*?AH$>Y>aZ˻>;??oK?;=B+>W>?~*~}>e_E?>U?>Z>>=Wb>0 F?>p(;5?~Q>C==x'>-d\/ov={*>n&N3/=?r|9>Ȇ>R's_=v$9= "?J`Y>=ݘ>)['=2>tέ=)*?(? ?G?&=<>KO>w>1?Sa%?a?fJ?0>\=&>X>$})?H?j=?Ka'?">t5>=d>_uT??zM=G>8ĸ=?>3PX?Z:?و}_==PC.e=Λ>U?&g??{cTO>t9=>4uQ?8N>Q?w-?d?<ܽ;>|g>x!o>uq'?m.$o?ռȃH>ѩ`>W&?l?p3Fxko@>f>tF/?╹̠f?PtF~U>b=|=?F?>YpxL>DΫS?ϫ>4}^|=$S>4?>>=0n&>=AbL0>$?5?9ъ>6 1>z==>V+v>#>}>%M?Pdd3:[>S۲>8>&i?~o> ;iAL?9!?V6oK12?i!<>I??x=|X?ؽ!=>f2?F?<4?(?>z >ݱ=>>4?y ?<>?D>^9>>=>"0??MXG?>^>&>"S=>p??L#>D~ =DSۛYJ?C<~a>J?T>CW?ˏ$> M?>߅@M ?QD>jA>>iG{B=&պd(rXU> >"+e|&r;x͆`ν$k>Â>V>c).۾_!UtȾ[>>]pdXþ-ttnƾ5C=}>DS*K=\'.B>!?Q?%>#FB>>X>Y-????) ?Xv>.G>"g<>Ee>dT$Z>aakZ(T>G>]؉qۄ=6^Czk6H> O>.auhi@>WLa]=?2>V>Xr9?P= [?F??oX,3?.?YDYY=V>pC?I ?gB>R?=h? >?J<?UH:>h>h(?ZLZ??Tk`>>Wg,>;3 ?6p?O>!&>>{"=kۼn>>z? >{B>[k>@ -Pu.>.9?X=jt?4H=ŗu>꞉>^2?`]m?ӱG=g>dÜѨw?@?kae/>!L=a l(>=l?"??R^>9di%>`=~r?K? M'?\G=*ȕ=;?"<?q>$3>w7"<=T4?xK^?r>-i>xeE@?!Q5?N=}?{=};]>>yI?k=?}?."X>VT`>>*?uh?r/>U}|y>U=!?a> Eo?{}>u>\H=>{>ө?ω>,?.k=t>}[>>b?J𾊾L>EkҾ=>Tܢ $Xh=VĽR$)?7? >^?1= />29>g)>>Cv0!}L@6y>J=?7>%a?$n H >@n>S":?2?&>zk?Ȟ=V=FHS>x>7=?$~4̊s-;}WR+}@?bK? \={E>?>9???#?h?%F=7m=Tc>$ ?A>aIJ?G}"=^>ٜ׽y= ?5>nl?"¾N=|v>ӎsـ=O?v>Nj&a>|>]Q?g?vՙ#F>7,¸!=>t?">{?dv(=>6#= 4?rN>/?NѾ?JX=Jὸ>Œf>X?e n>,ZSf=f`>?_->#G)=>>T>=s?})D u|>Ǽw+ >>l1f?0,*by>VMV4y>#? S?t>WH>>o>&}>?ed>G>??u>L3+{g/>$j<*Vv>{>-?HPP>eL<8 rKd>1?u`pk?䓦Tu4>Ҿ{>`!?=4_?Uz@nN7>ʾDN>XO>Yt<b<C: 9?W>!=z.!>҇=R?>u=X?b>Zyr`Pۼ:5H텹ԑ>G?2>Ha־ʾcQ? ޞ/>B>[>7y?VrM>F>t"xۊ#>W>q?iwD>">| >>`?cC;T= DǷy?i=j>t d=1j<%Κ>>E?(R="F->m3]D(>?vE?s> ?5><8߾HG8??>5?>uݺ=>!>^N>4?>_?3L=k>-[Z? ?A~xԽdWC.Ix=>E??eʽNQL?*&?#E>Г>M>}?`+?er־>&oɾ(>*$??? >]o:=iC=0?kvG>+>i^9b=لEe]?pǒ=>"C_=)}3T?)~=h>/:>?$>???):)W>罄) >ʼn>>KҺ>V FIۙ=ŸXVN??2?> >w> >@>]O>KC*)>3>N>l$Vc,>S`wUoDI?Y">o;on֟>ݏ;>&?jx>Y??sl'K=S>Q_N>vnf";I?Q .)4?(,S>AcI9>sf? 8I?!"yF?zi=Pq?[?i8b{?GL> =j[?v_?Z*>L> =w.?Ot>)>if%=S=-Y0@>p5>\>:ZNmŘ *0jx ˽5 >)m.e헽P猊=jR>!?;!d?rOt ½VI0>u@~( 4?DUX?`Po>->?x?=?HXg!>⾀> ?X? >Kh> V= L>/=295~x=jm4?/>;>?־]? >Q[3>G?Z ?}оC>+U?B֮==>c}Q?+?s=z>,AM=m>bR?p?Tsp>5bI>L2=t>d>S?R>XV?>=?V> R??C ?m>$%?>ټ>N?T"?ᾝb? 7>@_2>>9/<\&?wT>M>7R=R\=]0?-J\r?4> =F=>kx? _?^ >T;>r>?ŏ=%a>?d?>>n|>=hr> >R.?tD?X>*>Ķ>":?J?ڽ{?i >>T/>`;&b%>2&>ub>d-{o53#B>p>y3X?J?Xw>_x?L3Q>> F>>D*xJs$ @̾[=>uFl9dO>ZbјX>w<Р~> Fn,;R<>r͙4Fԋ>Kt{>w<Ѡ~>$v20L(={>jz>$v20L(=x>&ScwþC>*EF޽F=R1?@>oܸ>\>?!ݳ=ndEX#H<^6H>|> ?i8,>㧾ԇ?'>*:?1W.)l==>Ж=^?t<@i{N%y|;"fHa<ȍt<|p|;"fHav!]=`;FI=m@@?q?jŔa>`n?z;{D=4 ? H?jK?T??E=Nh>==Z>J>F? !>y?(#7==X?}>t*>Х&JѽEr.>+?]v? s=}?#>cGnW>f;#?T ?p}n?^>s=Kv>&=^Q=>o}>B>q69u=cΌWe$>Qa>mξ`h#H=9USR[ HRK?VIm? G=j[?VIm? <L> =^K?>3^i>ɽt!>c5?dQ> =}=cY=7d->j[?"|?01 >L> =x ˽5 >5 *Wc1<헽P猊=MT>S*#D&G==T8=8pOM>UQc&=5M;>'S?JxP-N>ҁ3]La=Ѣ@>?h:>žqq?=百?)>|}?G>T5:=>3?E ?mI?˜=c>&$/?>BG?~[?+}$>%>^>,>7>5D:F9=\Lz>7>FU,0 Lrb~O3 >4`>Mvf}A>zT:񈑾T>W>g )JͽXѾȍt<2ؽp~|;"fHa+]ub>*EF޽F=q,=>P6ce<&+NkԬHȍt'=$>>vv?x>uHm(`">*EF޽F=q">>V O5=19 r@?`>=a l(>=8>2">c?Yr\> oh^>>_zA@>PSzK&+?]v?ҫݽO}?Uo=cGnW>f;Ee]?3Waz>X>"C_=)<\=]0?3Way>X> =F=y@.>>=(>xwCȍt<'v|3ļ|;"fHa<ڌ>/?,I>(?\!O= >r3׾H+2?Ѷ2?,>]? yz>E>l6/?4̰5e?5OոE>EZNk?T>N hTսT8=R?|>qg־T߀= 1*>>N>i?xJ-i3>T< aV~g?=Yi"zY<-\,='5>>g>ϾTmF= %>Q?H߭>e?,>=1p> S> p&?5fj?0y9>>M}?E>G44=; zG44=T8=r@?R8UcX?'>a l(>= HRK?R8UcX?'>MU<>G=^}? 4?bۊ>Ʈ>->?>"C_=)"C|%ljf~` ϼ헽P猊=vv?x>Z>*EF޽F=M}?E>Z>; z<X>hqK{Q> Fn,;X>\qI\ Fn,;Ee]?.Umژ<㰿>"C_=)<X>.Umژ<䰿> Fn,;g?=̾ciXٽ-\,=Ee]?pǒ=>"C_=)L> =x ˽5 >)m.e헽P猊=\=]0?-J\r?4> =F=X>w<Р~> Fn,;{>w<Ѡ~>$v20L(={>jz>$v20L(=ȍt<|p|;"fHa<+?]v? s}#cGnW>f; HRK?VIm? G=j[?VIm? <L> =j[?"|?01 >L> =x ˽5 >5 *Wc1<헽P猊=ȍt<2ؽp~|;"fHa+]ub>*EF޽F=ȍtuHm(`">*EF޽F=r@?`>=a l(>=+?]v?ҫݽO}?Uo=cGnW>f;Ee]?3Waz>X>"C_=)<\=]0?3Way>X> =F=ȍt<'v|3ļ|;"fHaN hTսT8=g?=Yi"zY<-\,=M}?E>G44=; zG44=T8=r@?R8UcX?'>a l(>= HRK?R8UcX?'>MU<>G=^}? 4?bۊ>Ʈ>->?>"C_=)"C|%ljf~` ϼ헽P猊=vv?x>Z>*EF޽F=M}?E>Z>; z<X>hqK{Q> Fn,;X>\qI\ Fn,;     !"#$%&'%()*+,-.-,.,/012#%345'6789:;<=>?@ABCDEFGHIJIKLMNOPQRSTUVW5XYZZ[X\]^_`abcdefghijklmnopqrstuvwxdyz{|{z}~@?hOQP>2iLjvsmljhT|UjLK}vr_     Oks=! z(*(  Xbx<  DC!"I#JW$%%&#'()*|+,|-./0/123456789"&:;< =c>??@ABT:CD;:DrEFGHIJKLMNOPQRST{UV  WXS H./a`E  zytvYZ[\]^_*`abc drefg)(GvuhijklmPnop;E9q>rsG"tu"vwx)ySzyFPRRBcb b{||{/.}GF~#!CDC,//[y?@I\^92Ne;EGE`_wf.a_a=i>Z}1UhaZYY:P6UYb$"!BQ-n<utj~g#22w (%1009EG^=<#&""$#{{q5PY<>7qsN^]aV$W~wx x y%$&tzq>'3%ihiZ-Z}$VM'%&  szFN6U6+x>UTU= aZ o 20|>w$!gn-ww_^ hdMK*m.HlOlkOb_,{|,U{QP?LMrBRQBSl_E;.H-ld~USVkf ..p]g1JfgfJ434b ||*mmk2G((2]\0dw\][p1pN\[\ZZY1#3%mk5mrf+-dfk2)*)S[J^d?>i?AAA@J#gD _g+B_XBVnGrrXM= &$w 21bdx|OhXY;HIbCeFljiT~>O('<<p1k p-HhW  >=+|zXX XXdl\jjc8_GF)l!BD_M4t"tVV25mN|213W%)':CnoV54BXW5W3'53 D  D!+~~[i L#"uR /[IefyVv)(9ZfK)L.HJ7 ---   srno3  ``b^IH^ /04?T t5zueefQkcljj@A;aEY:PQT O'%$ihh#IL}Gd( 9xwB 8 8@AAz+  76;DnperOMJK{Vdc:&9MJI[{I(OfsrsN|PRQRR ~a+TF A3ONVU=a;9:8*,+TSB  0 SSySJ.mKJi]et{{C Z[[]\MQckjH$  rq`baY^t4 c5TH/H\]11oFEut^PkkPmkl;:==:civv1RU,gpgp?AuFy)Qu))Kyznpo&vv&w-+^ <sw^0??qOO2oonoo/0!!w  :<dBCq}} q}}FA !R~[KIX[DCu 9G2L99L)A3\I+g~6LYIy{_ EE FGs;;s<7]]@[eS?iXW\NMMr*+?x~}a``@h  WU@!N3[77=  ONHJn<d  "9%^k;77;AKK;eg     !"#$%&'%()*+,-.-,.,/012#%345'79:;<=>?@ABCDEFGHIJIKLMNOPQRSTUVW5XYZZ[X\]^_`abcdefghijklmnopqrstuvwxdyz{|{z}~@?hOQP>2iLjvsmljhT|UjLK}v r_     Oks=! z(*(  Xbx<  DC!"I#JW$%%&#'()*|+,|-./0/123456789"&:;< =c>??@ABT:CD;:DrEFGHIJKLMNOPQRST{UV  WXS H./a`E  zytvYZ[\]^_*`abc drefg)(GvuhijklmPnop;E9q>rsG"tu"vwx)ySzyFPRRBcb b|{|{/.}GF~#!CDC,//[y?@I\^92Ne;EGE`_wf.a_a=i>Z}1UhaZYY:P6UYb$"!BQ-n<utj~g#22w (%1009EG^=<#&""$#{{q5PY<>7!qsN^]aV$W~wx x" y#%$&tzq>'3%ihiZ-Z}$VM'%&$  szFN6U6+x>UTU= aZ o 20%&'|>w$!gn-ww_^ hd(MK*m.HlOlkOb_,{|,U{QP?LM)rBRQBSl_E;.H-*+ld~USVkf ,..-p]g1JfgfJ434b ||*mmk2G((2]\0dw\][p1pN\[\ZZY1#3%mk5mrf+-.dfk2/)*)S[J^d?>i?AAA@J#g0D _g+B_XB1VnGrrXM= &$w 212bdx|OhXY;HIbCeFlji345T~>O('<<p1k p-HhW  >=+|zXX XXdl\jjc8_GF)l!6BD_M4t"tVV25mN|213W%)':CnoV54BXW5W3'53 D  D!+~~[i L#"uR /[IefyVv)(9ZfK)L.HJ7 ---7  srno3  ``b^IH^8/04?T t5zueefQkcljj@A;aEY:PQT O'%$ihh#IL}Gd( 9xwB 8 8@AAz+  76;DnperOMJK{Vdc:&9MJI[{I(OfsrsN|PRQRR ~a+TF A3ONVU=a;9:8*,+TSB  09: SSySJ.mKJi]et{{C Z[[]\MQckjH$  rq`baY^t4 c5TH/H\]11oFEut^PkkPmkl;:==:civv1RU,gpgp?AuFy)Qu))Kyznpo;<=&vv&w-+>^ <sw^0??qOO2oonoo?/0!!w  :<dBCq}} q}}FA !R~@[KIX[DCu 9G2L99L)A3ABC\I+g~6LYIy{_ EE FGs;;s<7]]@[eS?iXW\NMMr*+?x~}a``@h  WU@!N3[77=  ONHJn<d  "9%^k;77;DAKKE;egopenuniverse-1.0beta3.1.orig/3dmodels/castalia.bmf0000644000175000017500000007454707045144437022033 0ustar paulliupaulliu ASTEROID.JPG4>==dz???dzdzR>?Rp'?J(?r"o>L3?,Ě>.? Q>H?݁u->1?j^>?ʾE>\?{d'>n??^>>>\wRrU.ZMq>6>25> i~V$> *4>>ƴ>2x:'>>>l6?K?߾d?oNkp>>>K?UIν~?=Q^">S=>#A?S o?k>bg>mEa= q> ?Y;~'z?jdD=T=pT?rl>?@x>i>n?lz=.> eR?> ?t咾> h?8*> K?=>>?+Xf>=i> ">!=#> ?'3Us=:>~2>i=>F>1>o6> `$>%>Pv>D>n>:8z~UX>>ڲL> @>={=<>3<Ԯ{9>~YR>iX>9>xT6+>â=N>?1>wQ} ʥ7>[ߕPX?>J?B6> ??ǰ>N1>];Zg3>_'?@?8/?A>>~E>@'3?l8>q?C?">?ʞ>"`>l??2&>?i?#>[>->y > '?F?P>$>@Lgu=Z9AyF?@c>>䂾^&*=64{C?;>Y>딾n:$=_BfC8>cw>^p{ <gH>>3~>OhIN0`5 b>y>lm>"DAň&>>;:?"A|?O >y >E~>b9?Z'4?&x>e>r>D?񇽼|?-$P > ݦ>&%?/B>!`v@龾H˥=޾?>K>`3E.ݾ\^F<43eD??QJ=w?Mp=>$AI?s9?y>3>{W['>Lj>=D?\?>>-t"7= {>RG0C?D?4;?:= Z:>whS;?&5@? {}?F;(Of>>kþ\:?L?0Ž'|?>慽>@=_JT?D>I|?=>쿏>b=ƕ<??i>Tt?dD>j>w>Pn=E<(L?Z,>#x?7>D>>2G?>枇=c~6K=0޾˾ P?aq>OI>Ugz8>,r޾V֥M?*GX>§p,~ɒ==3߾CIJgbfԾӾȎ:;?>⇾Dg:$ǽfA?ڪ>+n=ϻSA: 4xtg?'? A?t%?= @>T>j??!?Dx?6>c$>A> g>Td?l!?q?G̨>5>>ͺH+?lM(?mJ?%b>$?+? xQ?ƽcH> ;'?/?Ͼ$j?׫;̤X>Ҿ͟>@?g>„>Y89,>#>>V?5&]l>(>@{"><?>*:?< ?<>ԓcpG>X?˶>"?cG>ޛz,>>>%?}u86>a3˾g~>>>?{mH<㾞=%t|>>p>)=Jz>Fɖ>ϭ>2=|9_{s=a=Ol?"?w?ӑg\=2><=@dn??t?@<><.e?8Z?)m?Ru>=k욾y?>P+D"=`b|#?@> t>e2湾h; 4? $>/rIu>3_㴾^Y'>'>=9<+}(oǾN>%t>d>`ƾ$|پ) r><>>UyJN|iȾ˾vy>0>s{>G?UZ=ޅ>o->H>]>!5?3˪=>N=Y>,> @> Jmk=B%+/> ?3?tq->3=6[)>Y`#?7/?Qmչ>̵#=>`?:?L|l,G>1m~6?c?_&>kHNԉ>v6ni6?3+? h,90?lz?g-D='9_`>((z &f7?:$?swL?ĖǦ3>J,A6?.?Z0u?,>ho" >WE?US?7=!w?jt>*^n]wI3?lV? cDt?+ʉ>c>K4>?`?LZnn?5)>X>]>'?>U>d>*h;#9>x<>yX%?dh9>gh>MIȾ_'>=>`0?.g45?9>3xbZ>^=E;?)>aʾ8߾KNB۽(+2C:?X>MO`Pm:IZ@0M=?q>FlS'?`b:8>?\?xPq>ucvHtu>F9??65 4>dk  pm>D_@;:?]?擾?nL4 >>;1g3>+>Ԩ7?e>/_>3?>>P><>9R%?>dٽ;?r9>:> ?w7j>O>j,?!I]>X>Q=&)??aB>ƥA?Qn>n>9-g OP?v(_=ཞC?xQs>m>Q< )?댩>{&[8ԯhR݀q>>>koJ>Cԅ> \>>Q.&-橾o嫾0]Ηa>P(>h>j9b"٘`:">6?Ź>iF>f> f)>?>/?9?J| H?ź>- > d>`>A)`rK ?q>у>A9}#?V[̽6̝'?>?vCkZ> ;H?ũzD>fF'?ڈ>] ?1no;a?,beR= \9?>?P'?v:? ^Tk>NS??@Y>j?+>E?U?ԭ'>rK> N?Z>?=tV'>qC?x,m>?}U?[J?=Be>:J?1>bB?佗z?l-3T>> `>7T?mC{?A>B<|>S>td?_?$>o?5>6=>uV?9L?^>r?p>=|x>өPq>?pYJ5x>+u־vZ=G =i?<? QMT>l޾H]?S'`=o>Ǿ9Oe=&?U?xj7;?Ee81?$?y!]^$R:Z=g@O?G ?clSͅ:~=~#oOK>?>>̳d P?Vg>ipH?;9>T>ڂ6?r!"?>I&ti??9F>*?>gY?qI>NcjJ?r.m$r?$=@(rz|Q?F/^>A?YNZx?M!>&=>W?P>4+?f>|?O=g>Z>>?O>&?3D>^6s?ǽ{>G'>s>%?t<>TP&?&>Fl?{=e>>h?^g>C?J>C4H>>\?x>} f?2Lþ]W>6KK¾U?y>J?)ԥL>zV?> /O?UѾ׾C>->$>`=v~&|8->оh<>>*>& 5'>caRCY>8>>$>ANY!2>پv>˽>$P?UZb{? :4N>R@%>SE>@@?A#jy?^<{t>V>7`?s>?OR>Z;t>ƾPprrVZ?E>_,?M5{P v>ZVNbc?Ul>LQ?)tѽ o>~x>?= >?IJ>ξg>3?> ?->=$?UҾy!>?&9>>(۾>D?4E'?+>->E̾>6?Ѵxm86?>>n'1&??xnz?>v2? Rfz?$s e>IT>(>44?!{t?{&t]܉>Y>]>+,?r+ҾdTh?ᄉ >> ?%?q31u0?_>dGG^>4H?`#?H >ͳ*?5=kQDe>idE>|?J?H?D?q{>p^>2A?zB>u?>CU?>)o>f>/?L>N?>F?2n ?DW>ʕ>=?G?2"?vx>UF?!xe]=4>6*L?|D?9>$?m%>Z>蝔>2̆>2?D:x{?!7= ^P>>j>My/?kD|?:y=y)>> ?$g>%.?;(~?a=k=>l?QY>W2?1d=j?ߝ=ߨ>5>3P:>/?pz>2w?D<_9> >^>`??u?pL>K>TFo>)\?'?d?IVé>~M>[??iQ?˴>wN>>8h-h>{s?Tz?P>DDPe>Q=>4q?-^t?>eV>T=>>ab?ՂeHa?0(s{>t=3V?=(q58K>Y=OȾ׽a*_?Q%>C-<.zbM>=?оY5q?=սy$C>YŰ=Pþ NZ?F^>/n>duH=o.>|־Dp==~=$~{ >(/=i^=5>u^5>(*oNI1>OQa=E ?HE>?c G0>dr&?%>2$$p̡Y>N>f쮾i>{?W?( ?:Һ>2+G>1>B>$?*?>?Y>{>>2>_?B?d$?I?=ʰ>^>C?>2i>^#G>-=#> >D^[X=5EDY+=2,>>ڸ[RQ))I=??\fʾ >YU< ^?l>f\Nr;H>xC}=*>)?:.>>|҂,>2j=[>F?!ព=> ;al>5=G>m?w<>_rM>1A>`(h?4վ\=>WhX"gʟ8|>/x?ӵz8S>Lx>tr%<|վ7??>-~ֽ̺޾ܾf>{>*"WA|w0]>NNN,>0>v>[s>n I>>>QDOeيe=w>nu>UM>3[5ݚ)=U?0 ?>5?2%M>=ҵQ?D ?B?_Dt> =)OR?F?M"?ĔRERw>+>,V*ȁQ>I>;">]k#:>>%m#?K>>w>=F?O>2$5?d]>>$=&S,? X=wU?)2?>?Lz(1=(?a&>4)?/{;F>&*=|>2>? 5m(?R/ξHN?j>W>x=(8X?ž~ֽ. ??D>2H?g辫> ھ҄Q5I?,?(?EKG20r>0?C~ ?6*qL73?=%.K.??U@{gաLC=jc+P?? ?X>C>hy> 0Q???("?["s>n>$5iT?r??] >)٪>P>v!Ѹ;H>^>nxX>sQ>^F =Q=B>ѝ>k>>NB>ۊ==əc=VBxdXs>'Q== >T?͂ս 2u?'>Ixҋ>+=<*?Zjl?w[+qm?+>!љ>7:\?V?K n?ۀ>@@>dT>Z$?7R.?b]ھ+Ua>|D>%>_?sr>}Gd >ax>>?9/?JIF=A:V>^>pX>t?˙19>0ڽ@;?*?5m>ZwS=>ۤe!?? eUb>ߺƾ@q-^>׾Q??=:j{Uľѯ>V$ ?Cx>I7UIk>LFR?p9=89bouy&=㕻bJg=?[= B}RU<߽hݙd>@=\ r>$^ xg=F$?Xr> bWoO Y2GB+?~>S" #i<%*?>dR}ž.־Tqv,ܾx[?>.d?ľ5Wqڵ>2ŽN``?J}>õњ>g"?f%\?i>$h>(?I>"?滾Z?dL>&͢]|> ?>? e2?`?,"`>hu"?Z1>-?r!?S=?p> >ڴ>ȸ ?%>?1W?>U>f>'M>?BFK>Qv?L>S>^ S?Qr>>RO?W~>WA>*{Ǿo_?~!IG?&=~>\{? BW0:Ұ>G>R ?Nm>FCX>[7 ?5>= >B.l@?>(Bkx C lk=eZB??X$>vQQ+wI<`A %?t ?Z\ l:QϾױ=^|9*?M&?_T`ff;گ0h?>[3?4w=NL>n*h?.?>QC\?:b>A>d>w΃Pk?5?D>f i? >㢯>՝>L7m? *?2?\'?9”>>>b>mKhp?ڶ?z??;ElR>p>K{->s=(tn?"?m?>}>ޥ>^>=r?%?jd?=>>B>d>y0?76?ւ$pw?Xfuྒྷ%?s7? Q8p?9=Tb$>Z1)?UV??>Gs?y >xe>f>A= ?+еyd?=X>ły?u>0>U?-M> ?p><q?7j>=S?nJ?"?U/ ?vO =jB/?AJ?[_ w?T>k>.U5?>-gK/oQJB$l5?F?;"ZjCU8~tU-;G8?>LHNK'ݽ0/?>DD٥R ĉxg\6?>\z'(>+7cri2sU7?>3U6d gҾPi5?x>&50־:>N'?:.ll?>>Q>%?Cg>6n(?\;w?ր>uo= >#?x>f+?ȽT`y?P>>ދ?a 6? ? "SoVY=5:?Ȅ?Ę$ou7>{Bњ:?s?<ھ16bH;Nj;?(?!-"?o>ྨ/X>r ?/?,GX?>8Ծ6W>ཻx>>Ƚ]m> <;i&?(oO?6?yh~>w?-C=>3>AܾaL?ФB?G>z?iذ=m1=>p1U?x?bd=3 ?>>: > ?'N,* "=?qþ{}=\?e|>5>`Dpѯ>ro?$V>3?Li2 ҾӾy=<>"Y??wR?`оɾr>u4?j~~>{̽;T?.?)?2 ̾"> m:t$>>Xvk>aM3X;J?KF?>s>xTsI C=f+H?>K?mD,{>Y C,QwY?@}>OG?u'>TgQ?z>?%y5MOH>a0?~>Py=7[1Ѿm0?<>,d[^F8,{Q˾-۾6?>xh.y" xؾM5پ'>?z?}>c=?g,> ? vi?N=%>dz>A=f3?կ ?O?zC=lV>xR=)PX?) ?2 ?%D ?'Z X>;>W?R6?i/'&)(>*a>_/aH?R?>e"C>\DkC??=gG~RM=U1>Ic?? ?(a||r y>~5Iw?8?br>m?v@>!>>M9y?n+?s%?$(?<`>>PNh>?p?C^2?x>K T?h>>H>y?^?ԭu?,=>o;>#s*>PL|?j?ö{?)0=>= Dt??#{?9f >&>==7߽ ۽>F>pVa>m[>>@>2a|hĘ*ݾt- >et?>AK?>>[$s? g>>? NeU>|>"n>G?U;=} ?ju循= ?df?5? G~?2l߽+=k^>6>cb?j?jp?먾s >֯=D\˾b?K|? ~?l(vAܽT>Z H>оuG?5n>-JLe=>n._L*:=G?>dBҾA9g߾ںŽ\aZ7^? ?d?n¾Ȯ}.>Y۶=/_?ލ?h?lƾÄi1>Pچ?Sj&ǽiȾ߾g< 6s><>'[>O9d؁]˾׾2z>L>; ?qvu??`\W>w>O&>ăG?,?=A>Z?>>~AJ?,?w>s?;> ˻>WJ?W<6?K>z?_8T=> e&T?+V1?K>оz?WMm>r(>YK>>R E?˽O5?[4>E>2>>p%>;>b>uF?:?=~?/=F=1>%ᾢ??r>ͽʆ};=L߼r ݾcLM?uǏ>'>kE>..ӾsfھY>xx>Ļ1hd?n&>M(N?>/>Ѵ^}쇾GԾBNƾxp}+>G>N?Ezp&y6YǾÁ<.>>l>2j@¾I=W>(>=LYо3㾝Q$ '>d?f>I=t?Δ S>~ɍe?Zt>Ѯn?<ܽ>~~vB>.*L?[=\|?e罯j=Vl>XV>>5?<>,~p?aS>ɖ>>o=:?Q۔>s?e>>i>< ?Sh?;v>t#=t=|=`?}?6 &;ֱO>xl=jm?ɯ}?p&>(<>;=C>N?62>b%qA>,u=־PD>vK'?ᾇTe?YU=uþK>>I>]+?Tl ?tH>k>>A>-!ҾbT?!Ɣ6?>?{Rk?TCT?D |?X)?=>?_+??PL;&⹾QA>db+??>F> Ƿ|>*;=7?x?eb=>X<>k?ƞ>d?U]!=j>h/i\$??Yf<>jKgiƮ>,x̾d}/?[>mXkt0>ɾjj60?Q>;Eƍv!?>>idLBHȾ/> b?K9{? y js> >d>V?˹l0y?3^F>h5>'=;>=vJ=G? ?eš>)[b3l5==B^B?k ?P{/=(s:I{{y<$=,IH`wZB?߃$>Av?g\b>?|>$>؂j>D ?~?=ؘ=>1Z=)>>H>y?T_D=Qz>e=>c] ?1}$? D?Xaܾ͂C܄>ˮž>W)?RArqq?o>>ȴ?C >Py*?Zgt?U>ݠ̙>i}>>?-Y?QD5U.(xqR< B?4?1G? ̽>뻾pw>`Z@ ?4@?vĎj?\>B>2 ]?*-?>pw?Q>>pZ>Ͼkc?,?>ie?\=i>r(>pX`?(?6j?uI?~ >d>3)ξE?.?uK=y? @s=j>@?*2?tw y}?H; Ҽp>X w*2?!? ?OJⱖ>&-?"?*4?aj>1?Cz'?־U?򁵾Ȃ2>~=mD6?>n?$=%>w>r>1=Xt,?>"`?F;>|l>>Z=)?9"?D?Yt=5>SR>(>@(L?fN?1 ?I n>K{E> xŻ"/8?:J?cmTsq?ls>=mY>>|?f8?'n?54>鵾># +"O?>/?]'^"c> V,#^J?L>?O=WnuQ &>ڽp. >?r?o>==>Qb>4?*?@!>c62!F;Dξ4#? d>@[>' ~8`h= ?N>av"!t:!?>r\54 ?څr)!.>ʾt *==3>p?H_lZ{=>aо=3m=L>u ?^ -;TP=>Bv?$Ͻ Lv?r>9>`:>a?hg}? fz=Z? %'?y>Rpa?錾ʙ>>T7'\?6F#?;?Sk8?R3>Ԙ>q=L?Vv?R>ϔ@;P\6a>~>8 *>^>X??/jq>vc>4`?9>*>>y[~>x>HM@?./>>>=^0M>w>h-?vTT?,(?|>2q?Yh>H>- C g>•>ٽbn>|>"n@4&>o>@o)>T$>D3¾ָE]3?K!?$P?EVe>S?Jx)?.J?'Ė<߾G>ve>_"?_ g?W>(= >I4?s>z?M?2?u<>;?]?>_?پWv>3ͧ«9?ݐ> w MaԽ*ھx񾡛W??A?ž>"e(=KJj?n|?BU*a6P;>= %>8(?~>F|?d^>ǾE>K 2>~T?Ń>>`D%S7>R\վ߬u?p>UChz>ꦁcoHV#?\> tP>&5XRGߠ7?ǵ>-%Χ=?>\T[H#=XD.#`7p9=Ҷ۽Aj}=㕻bJgK?B>>?p?h>( K?V#>|?Ǩ >⡣ď2=d?~@?1>diu? I}>q>4> ?%B?['?== e?;".?? ?R'?SE@21>A?QKG?4>|>]Cy Z=ЕH?>o>]t3=%ɾvR%?[B?fqfҾ0>=y>6e?jLo>??=>!y׾TXf=23B?2e>Q=fNVfD<ŗ,G?fN.?`\?]=m־>Wv'>'?>\^?Sk>>?̣>+?Y?MX?E>|w>C>b\?#6?=|?T=)>|>Krd>"?V?Y@>愍>*?!Z? ?!X??j>K,= Y?b?H?+k />5(>q_?ɫ?aq?PFr \>> ?>p JrI>ΛWQgL(?x>iSv*>a(ɾk9<ˬ> M?z~=>ܦ>K_ e=@(>?`k?,ؽ#>9>Q>!q?[C2>>YS ?Q=p>w?{g4>I4> _?-km=>[$l=-QCS.x[v>YŰ=Pþ Z?#!>dFUS=ƾB( Ua>y?[X5i>z[nJj?m{?s3ƍ>= q?>6hw?]G>=i>z[nig?>ts?oݝ*w>Hu?EYW.i>z[nRHE?@y>f>?*x~.t=!%>h> ~ƾ 3?hgX ?)e?W>Y>ʡg(0>6-V><ɾx>^?྆ \?U;n'8?^=!?AL|?n-(>f*=/j>Z=L>7= "?0:?.?>,J>M>MT?B#?>;F?nÞ>>o M?l$?>bZ?5;$;V>>^U%>c?3?P>@w?#>>Đ>/'>O> b?Ƒ>ӵ>5XJ(?S &>)>[J?>>npp?h3?Q=~c;d{精[&?kK!?# Tk>ʾǃ>Ώ;t?(L?g$>my?(>D>>EL{?ZB?g$>my?(>?|>$>؂Q]>t>=ўvyv>=|=>'=?}m?Aܽ>a<_>!U>xF>8\=#?b?RH>F{=a>>/>z< 1?1>X?C>e>`l>8Tx= Vʞ>w$6>ߎ=\(?u6?.a($>.'ȾDd>,v ܼ^?M,W??/7>o;>#s*>PLǼn+?M,W??/7>>PNh>>?$?ԇg?~%f> ;l>qg>P>k>ؽ̞Y }>˜Xq0>v?A>q?4 =>WhX"gur?>q?4 =>0ڽ ;>?#@=2;E?A0P?$R>dt>:~ZMQg>_+?[^??ǾHs>l>K?a>%q?$ݾz&O'>aσr <Ȇ>$?;i>e0> p,=q?>v?CĄ4`i>z[nur?>v?CĄ4`>0ڽur?>S*x?){uX>0ڽ_?!?[V?={?iJM\> />AL?!?uk>d=e4^t_>#V> ;;W>?x >DŽtt?E/5>f3<\T?^?Bv?|Ah?>9>V >>Ja2{׽"=^?Bv?4t>l?έ>9>I?'?G>Wj?+>z>r&>?yV>h,)&v`> lվB ܼ^?Jgj?>\>o;>#s*>PLJj?s?S<q=>= ur?>kr?>0ڽkf?Z?K4r?f=݄>;=u?>Y@>w:>T$>D3¾ָl=@D@=Exmj>YŰ=Pþ /?=,?H2m?Gc޳>Y;(?id>t%ᆰ[b6 ;ӀOžǼn+??%?L5?>>PNh>>V>c?I,=~>5> ? ?`k{ʸ>k=,ĽJj??c4>=>= ܼ^??c4>=o;>#s*>PLF>_>nXQ?q>5>" ?Ǽn+?aV?t T?h\>>PNh>/8?aV?t T?h\>!>>M9u?>>.`>T$>D3¾ָ`7p9=,cDx+>㕻bJgl=,cDx+>YŰ=Pþ v?A>]?ʊ[>>WhX"gI4>5?$+j>>[$^?Bv?lኽ_m?>9>C g>f?sEѓ>|>"n.?Q?bn¾;3񄾂q?>Js?UX#i>z[n/8?Ȣ>g?Y>!>>M9/8?9FC>\u?^>!>>M9;t?(L?<&>Ps?E>D>>u?>A=yx?Fm>T$>D3¾ָP>=7!?2C>5\`?E>94>;> :4?I4>8.?E}2f>>[$C g>8.?E}2f>|>"n;t?(L? >t?ן>D>>Zܽ_?k*>>.z?>6=>uZܽ_?:f{?Ǭ;>6=>uC g>•>ٽbn>|>"nJj?n|?BU*a6P;>= `7p9=Ҷ۽Aj}=㕻bJgI4> _?-km=>[$l=-QCS.x[v>YŰ=Pþ Jj?m{?s3ƍ>= q?>6hw?]G>=i>z[nq?>Hu?EYW.i>z[n;t?(L?g$>my?(>D>>EL{?ZB?g$>my?(>?|>$>؂ ܼ^?M,W??/7>o;>#s*>PLǼn+?M,W??/7>>PNh>v?A>q?4 =>WhX"gur?>q?4 =>0ڽq?>v?CĄ4`i>z[nur?>v?CĄ4`>0ڽur?>S*x?){uX>0ڽ^?Bv?|Ah?>9>^?Bv?4t>l?έ>9> ܼ^?Jgj?>\>o;>#s*>PLJj?s?S<q=>= ur?>kr?>0ڽu?>Y@>w:>T$>D3¾ָl=@D@=Exmj>YŰ=Pþ Ǽn+??%?L5?>>PNh>Jj??c4>=>= ܼ^??c4>=o;>#s*>PLǼn+?aV?t T?h\>>PNh>/8?aV?t T?h\>!>>M9u?>>.`>T$>D3¾ָ`7p9=,cDx+>㕻bJgl=,cDx+>YŰ=Pþ v?A>]?ʊ[>>WhX"gI4>5?$+j>>[$^?Bv?lኽ_m?>9>C g>f?sEѓ>|>"nq?>Js?UX#i>z[n/8?Ȣ>g?Y>!>>M9/8?9FC>\u?^>!>>M9;t?(L?<&>Ps?E>D>>u?>A=yx?Fm>T$>D3¾ָI4>8.?E}2f>>[$C g>8.?E}2f>|>"n;t?(L? >t?ן>D>>Zܽ_?k*>>.z?>6=>uZܽ_?:f{?Ǭ;>6=>u  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ K?LMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq rstuv wxyVz{|}~ ogfv;mM%TaP/@v} -iEDL|{ @L@K sf#     suk {  0on !"p#q$>=%&'()v *+,-./012~}~3M45%6&_78c9:;<<=>?hi@H@ABC4ADDEFFGHl}IJEKLMNO PogQRSfTo UV'!:90/C#W-X.-YfZ[\]MZ^_`abcdcefGga`b*`[Zhij qj]aklmRendAopFqr"s/wtuecv&67wx7*+y,z{njI]l#|76}~;F5VPYwK"!y +1'ONz*4w6)/W-!hjQSSTNMt/k]k(,-0(&kch[hMH(E<>NN<Ti1@-"y$2X|@lU?S">LN~q15 uur n{O8KTsII"sB=^^Ti2ien?i5k#p!VyRRQjhG:Cq.|[L%Y80W$_HFg?SSM3OMOU|5DF9 z(Ue00,2j j vem9;+*j?gg#nimn1.$n[=o)V''V!2I#"?i(^$v)X- @?L{z bbd[o_5b PYP |HGRwuv~~}_8<   \rRPWwxw^^_h!+xNq#q5N212Q}9(Us Lsd    Xs8--X*=ZTf-qj]pGFN_Xxm|% %=[10/fW/oTvcv`_4\Zpk2o_dccKEC-X2*\W)Irupqrg$AD:<4xVXaTRQaa_jiW.2ZMLn$<86w`m$S "mJ&&QQ\g./ RV!R! <=niA4r >=BU([ZL:C{1 K.atw  OlGpf;:ev  )(ttKK~g s21X.rgetu|6B>AZ]UJWww`mRR:h=EJJUqFE'V;4~OO~Mq G?AoeYf)WVs  C##} DEYHH`QeY{{ znSR dc0<>b]IMNMkp[[YSrdd $&__&733RlOP{  ^x876wuCBlEcb,}II#qut^\ 3~e`*Br1zd|z)l++y87x6!#}moGh? ~\[|,{z1^#vug~O3 %L>3*!"ndd-YZ{RVQ;9PTUTU}fp43~_o+*b8O994D5SU6O#aa455]\6]]^tts&K[|  z]\;:hZ=8"^tKC 02$%*+ek??6%Y/rC$[4j]k&&'r4))w%QP``Pa@ba*+FDJU &JKD<CABGIjJKK i>BA35NWXXFFEvmllU6'/ff 9lEq ('yxW.0t('}q.r05Dx!vSL@GG@HCE877| w,"**#HMI/.\|  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ K?LMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq rstuv wxyVz{|}~ ogfv;mM%TaP/@v} -iEDL|{ @L@K sf#     suk {  0on !"p#q$>=%&'()v *+,-./012~}~3M45%6&_78c9:;<<=>?hi@H@ABC4ADDEFFGHl}IJEKLMNO PogQRSfTo UV'!:90/C#W-X.-YfZ[\]MZ^_`abcdcefGga`b*`[Zhij qj]aklmRendAopFqr"s/wtuecv&67wx7*+y,z{njI]l#|76}~;F5VPYwK"!y +1'ONz*4w6)/W-!hjQS$STNMt/k]k(,-0(&k%ch[hMH(E<>NN<Ti1@&-"y$2X|@lU?S">LN~q15'( uur n{O8KTsII"s)*B=^+^Ti2ien?i5k#p!VyRRQjhG:Cq.|[L%Y80W$_HFg?SSM3OMOU|5DF9,- z(Ue00,2j j vem9;+*j?./gg#nimn1.$n[=0o1)V''V!2I#"?i(^$v)X- @?L{z bbd[o_5b PYP |HGRwuv~~}_8<   \rRPWwxw23^^4_h!+xNq#q5N212Q}9(Us Lsd    5Xs8--X*=ZTf-qj]pGFN_X6xm|% %=[10/fW/oTv7c8v`_4\Zpk29o_dccKEC-X2*\W)Irupqrg$AD:<4xVXaT:;RQaa_jiW.2ZMLn$<86w`m$S "mJ&&QQ\g./ RV!R! <=niA4r<>=BU([ZL:C{1 K.atw  OlGpf;:ev=>)(ttKK~g s21X.rge?@tu|6BA>AZ]UJWww`mRR:h=EJJUqFE'V;4~OO~Mq BCG?DAoeYf)WVs  C##} DEYHH`QeY{{ znSR dc0<>b]IMNMkp[[YSrdd $&__&733RlOPE{  ^x8F76wuCBlEcb,G}II#qut^\ 3~e`*BHr1zd|z)lI++Jy87x6!#}moGh? ~\[|,{z1^#vug~O3 %L>3*!"ndd-YZ{RVQ;9PTUTU}fp43~_o+*b8O9K94D5SUL6O#aa455]\6]]^tts&K[|  z]\;:hZ=8"^tKC 02$%*+ek??6%Y/rC$[4j]k&&'r4))w%QP``Pa@ba*+FDJU &JKD<CABGIjJKK i>BA35NWXXFFEvmllU6'/ffMN9lEq ('yxW.0t('}q.r05DxOvSL@GG@HCE877| w,P**QHMI/.\|openuniverse-1.0beta3.1.orig/3dmodels/deimos.bmf0000644000175000017500000007671507045144437021531 0ustar paulliupaulliu DEIMOS.JPG>>>dz???dzdzy?9>]=6}S xm@/ >6??Y>ZʾK@Jp3X?>^>Pk:@ѭB>0 ?8?`?SBξv@ u\ ?L>?lI;[]@hdS>$?'z?` !?'mվC@9ly*?? 9?HsI@ zJ ִ1?-?W?wT0@rr5 %+?n>#V?L @ D|K7>j6?#>1oq?qtr@iR >8?a?f?6бP@+ѿlIA@? ?u?K6_\4@C-EP??rX>q{?TP>K"@ܾ͛>*E?>7|? >ꐽwJ@:4?v5t[5I?4?Ra?+>Wg@|?bmJ?>-)b?>oG=@b?,X:^T? ?D?O/?;@'N@ݮ'8T?2L>+E?!?#=@P!R@w>rZ???A?Gs@@ M \?P5>J- ?TG?źg~@H@=`?>>`?&u@n@$g??>>*k?唾 Z@@ld[e?>{>w?`=Rt@G@ w>Hl??={? -(@Ч@W- l?Y>ֈ=!?D=\2@Q@,>X?>y#|8K%C@"ŷtӨ??=yp奾X`@'G4??yI?-ľQ@ 9`E?5?\j? 4>Ѷu@J?ѿ0N?A ?'E?p.?@ @맿cW? ?8% ?)?=Ѿη@a@yavu??|?Oᾗ@d?Z_? ?J>,J?)۾c@%r@zR2 ?Y> sؾ2gk=j?W >??Ҁ-uiQ@٬,yd?>ޝty=*@k ߼P?> ?۽v}wB*@<%? ?l ?y+$n@ ]3A??}Y?=9e@p9L3F?b?F?>2O@N Q?%)T?L?J%?+?i;@B<@i}dY?y?!B>$?C[o֢@R^@V8?q?1?j[<}?r :?v@D0b?> 徼c-B=>ݗw*m ?n?òþXl!?}W8?-(?h=-oK6j54@Q<׿WT?j? >3TpL@x@\{??>J=0Y@ř{5?"?2?O{yϾ@\ M&9?!?ĮE?*ݱ1qo@iD+M.>?"?KO?eڽQ@IQpL??zw??Β"@T?z/g??k>dL?H@4I@dFB?;(?+?[a>"5;@ [/G@$?Kb'L?)?Y>F[>9@oC?~cAX?!?O>H?6+f@>@K5a?S?:>Y/?a,, q@}@0m?-?P>Cd?ܾ2@)@9r? ?Yli=h]q?ˉ?@"v?d ?4N2}?j?Ѧ@pxdy?~?qDd~?ߤ:?@Őx??e>νFZ~?ȂQ=^Q?ʂ@}?>t?3N{?6=^=@5 ?q@?IxIwͶ?сƹ!r?"?H> >o md@HڊQ.sD#?˨$?L> 6 @By>i>`)?g~+?.O?{%A@'H|Vb3?.??bMb!i@>[[~o9?.?%?d_3@܂=?-?-? ̤:î@J{1?6?ڽ+w+s @'laԿA?>6?! ?D@x>hN}@(P F? 9?W>>gE}@R ?*k?*?a>;?&$ @C€@: I!?( ?jp^~=D??>rqh?)P+?;>Cz2@PLO ?[.?>68#f\@ 3wKbɬ-?]7?R? ({@ |3?Ub?C7+@ԭK@o?+!?=Ouf~־H@bk%%?j>?J>`'H%"Y@=̨+?G? >r?QV@]wuC? I?9_>Y> Y2r@`=m?0"?5>[O?Y@n@-&+t ?_?axu#!?G(?;/?\ P> T`I@n]?>B;?>/*l*@tj2E/?BM?>?Z-Q@;޿[$6?N?\>yeadY@K.l=?^'N?_>=g`@y&m?*E)@}>ҽLj9@_?b{?9?Uv?͂k>@O1Zz??;+lo?:6 ?@Zm{??\{?1˽0,>a@TB?^/>[þaagD>6v=_Ȑ.=j?<?c&ľiq>J@ ?W2.?_=i̾'sx?"1^P.? ?u1?uE]!?L?L>Hi #P:,@z/6&q?A?f>(?7?Q@V#v?e&?v~= Y?Y+?bM@4/ ?6?|>GT ک?c`p]&?X?lz>쾪ZN @X /?@_??>v;p@AM 9?#h?G[> =MtE?6K?|a?Р>>aX?> ^?A\?>? P@?1?g?'0L?3,>?C?<@ɗ?Ⱥ? m >=xF,˿t?I"?1w|O>1yDjw?G?Y>#7.L?q<~]?V?`>!C~%?k9>#??E)2?nk(=[KVS h>%^v1?5b?M=^AE? :0?&m?(=󢍾t6?ط^_Y?#4r?%>>˯g*?\>{?|9?>fC?o!b>rs@Os?9]0?{;msc;=p2VTt? i?rV>4>yYP]>bx?j_w?V?Tp>?OI*0>m@w }?~Q?Z(18"=ZS>D]?O%@#,^*>(z?xy V_t|f덾#h?PyE>I!>wE?6;} |?e7='Y6>${+x<:#4r?OyE>I!>w*?\>f덾#h?W>=|E?6` V?#>)?Z;*0>m@w GM<L?= 4?YA53ܾL>@7y@$aA?#>)?Z;?Q@Va|9?H=ݹ7?`/b>rs@Os@$aA?G=ݹ7?`/?Q@Va|9?P1*=dMR?wb>rs@Os;-?pzjZ?6z\j@DHe&?P1*=dMR?w+?bM@4?.<*b? ?@Ze&?.<*b?ᄂ+?bM@44a<|y?M[v?ll ,@+鿀Ꜽ9?Lz( u?אk>@O1?Lz( u?א ?@ZꜼ9?g?z?Fk>@O1(<, ?I*{?྿@]dG?g?z?F0,>a@T > }?y^=@5G? }?y0,>a@Tl3>"?lovx=Xowd>i?w ޾[d=%Z¬>Hs?誽哾n'tqO!`X[e=To?8+X=('>m k+"Q?#4r?Z>>so*?\>#4r?U">>Ie*?\>Z3 i?T">>HeP]>bx?jZ3 i?ѡ> ?26SP]>bx?j =!^?:<8? qTvzi?` V?ѡ> ?26S*0>m@w i}<c!?rj?ǾGU'@?Jyc? ?@Z?&s?L ?@Zu> 1?zp')a^YW>nZM?IwH4$s3V8^L>GXo?E_9r>Ey~=Z3 i?=TA>]P]>bx?j` V?=? F*0>m@w rs@Osa|9?>)IM?b>rs@OsSc>F?㝾Znݗ?>^h}>9?WmY6qxg>w`?SA,Ӿj]h:߿Ϡ'k>27k? _}^oԿOpd;>`e?n[>yjΐӿ+?= K?P=?` +[ſi6@(= T?y5#!?ASI@4zI>?Bx=>~ඐ@o>Z+?n|4;jK?> }>P?z6 L`Ji9-٦i>a?LXG;esI[?pþ~> cz?%ٽ > V?>XT1?:_G=*b#?ǁ8h? MԿS@7%Ꜽ9?6{?k>@O1(>/4?xfoӾBӋr!g>;Q?TӾ.U4;:3>GY?fJ%^+^9br@ >\F?5F.?>)3nI<@5s=D?TeL;?d$6@?p=B-?e4U?1RG#v@R$>6C?MR˾zEOMXGAt|s>C?@lJp<80K>NJ? q> ,Trdi?U/>%" ?xi_v5>eAX>D?6zսEy`XO>ђmlf>F"?M:$}}н=[SY+><*?&yH#%jkBaw> 1? c^BPg'>I?S KQO5xΣp_/>y;C?6OM>yAy#?8=:?J9?VL?@v>$`>ѹҾd7>"FY_>=? xEF =? ]}v?YѽZ@1=>!?"|ܧGD%!/>;'?@}|zpIr,p ӆC>_/-?-BeUYryb>X-?q U*!dVHgZ>9?E2$[%@Rrʋ{O>>?^"^i>̹j3? Y!?~,"{@b {sI= I-?*׾D?3"h#V@=Z=>?ǛDp?!@@q="?ž"[?Y8K~@*>?ȀS+um4>{+S׾?>#4?q|j>l~~qͅO>J[?~s=9P/K>*?"35L)h^X>_1?76Qu>Y1'Cz?%|<>1?'>],?zC>x?|NX-} >eH@0>J)?Z6w /o4]w> )??=ko(00R\XU>!? zE?6w3V@+ %*>i/#?3-!?qi"@S9O=?"98%a?Ib}@*M=?9u?+Ў?6@S+>gV?%|t]{>D~?y g\2۸<>!?:7]2&͸>Rhc>"?J>zN n??)B!;S>"?{B>_Zި?s?уD>,$?KJ81>ȹ?t6C3<>dY$z?Xo;W@\)>-?@o#<$]ll>?H *GaTgӝ:>?5Qɾ`g; >j?K>AȿF:aI>$?`MchW#'p;>6?#?LoO?ɔʽ{b%d@Oѿ4=? @+`? ju}@>>tDjv>*پpPa>?J;/l~=`-G>>3U ?Z~Ey=Z{w>n?%W\K+>j =Cg>?LY1>3ؾL0?8 V>P?L^NHk>?nKB>*?s;0??E%>~?25?罙3@ʿ=)/|?|<^=@5V>>DzW=mT6_M=٧>n>|>šֿH?L_>z ?(Cb&߃>}>u ?Lb_D= {эje׊>a ?Cad@-=g 5mF>7 ?N:ؓ-?ӽ]ș?⪿p>X ?@J?[=[EUR@[p>v>=d~4=L %|ؽٜ>U?Y 4@Bo'lJY>_?`/`WP߾S9c 4Xn> ?aѽ>6Ihf>]VW>a?u]GS?ֽa&7Ȭ?.W:->>')Q??W=7+U&@p߽B=ū>7Gʾj?72=_4@@>W>P5>x<!u<8ss8Լz̯>7>6}vZipv>,?d[NݾDϾMcM>q?u<\պg!SF>?Urs_>vyؒwbw>+5?iݿ>TY}=̾zi>X>rWF?"H׾0?>T]>cM?N=mka@!C?y=ة>Ռu?Y! @9>y:>B|>g}A>m/*Q?V>M>| =Pu2ZO*{>sj>>TNCvsZge>>T>msLLݵ-->r>>2J4d^?-\>ۼ>5.GB ?€=Ecv??mnH>K>~44?h= ?d??>s> ;*zYY>FLd?,>>Fdyd>K=j"sprB9?\s>CW>c|{>3ӆ=>2&?"1==> Z?c=`>@b?B8>>CpM>I"F{?Ֆ>8>A= vDP}>KoՀ|T?W>(m>Mr>h"?~>>,ξax{>8|;?m(>>ac8&r>xn]Ӳ?ƙ>>k Y>4"?>r> x=nڼ*{>-?U->+:> ktW>>=6[?>[>\>>[u11?X>e>GC?j>ci?d?>Y>UdL?`=ۼqC@*?˸>>1=UnOx>%?>>\1Q?`7p @>L>%'.?^BpX@">B>-At?}y2U @#>>:]l|0>vx{ @,̈> >uPI>Z ?.aQ@f>'Y>\MB>>1?Y @3>>)P9?=A>ŮJ@J@Z=> a0x?w=-@u?>,A>=iDqh>Kz{?>>n\,?&v@R>>þGB?4\*w<@c>>24je7?xq:@;H>5>.F^y>Š?O@:C@n={>Kƾdh?'>֜'zE@?sP<t>8U(\{?k=3@;k>lY>Ӝ>Qtr:>ki{y?>\H>=a>kk @>s >뾽|9Ok.?աlG Q@>@>8{>3c=Ԋ5?XCm@12g>Ǥ>M{>5 ?#?[@ͩE>->@%?B>s~?M_@T>>nK?JU> tB@k*@=/m>HW?ؐ>EKc;>q@t@ >t,`{?`=^=@5T>~>Mo=Lg2>g@">]X>ӊ=LQ/?tqJsK@4>Ł>hN?DBcp@ڔ>n> g [P8Q?t]x@QU>А>?=>?e`?@$>>O;?*>c"@,b@9>X>ٿaX+@U>p>l62yUX?f@7li>ƒ>6=2?>l@f=ر>f?Qd>G0"@@g=ŗ>ķdr?c>ܭ@U2?I>y>ۛfiA>fJ?=>>k|{n\>&=z֖?w>P&>F?>J J?qj@&>h>K:,оX?lYP^@\N>4{>Ƃ>=;?'؛?@aV4>0>Q ??5~?Z@7=dơ>d澋hW?:*>' o`w?`>#$Q@a?n>e>ZC:mG>|iK?>RO>nJ?W~;t{@>`>y4`(5 =?%-rO8@хc>?\>fR=c6^?JsQ>v@ú>Jwq>U׾8R?>3yg@!l@j=@c>Մ&1i?E>t@n6@(>LXz?>@3\?1V6>N>!æ>~T?pvJA?e@}+%=ũ>tWr?W> B@x"@%ڥ>+>!,9,?[w:Wֿ@|>3K'> LK?KH-]@>?= [nr?C"(E@g>1 >Xht?p&;`=a{@5B>.&>{䨾m>\n?jQp?@t%>(J> .. ???\L1>@@Sz=>5f?(>z@Qzi@>Ӝ~>ԩdu>w~N@2@>!>/#U ?kY @@/ >&>CwGs>Df?܊,? @=S>b-?,?+4@c@= ]>$+1dI?#$?K)Q@b@9;N>*0Au?D5j> Ծ@?+|> >8|i׈>hO}>?>5>][>S)u@nj>2=!׽;+?oп+u@->Ō=r1RpL?|ޕ @-J(>0=`q+>8:z?lr?(@E=ϼ5>?rM? z%@2 @}<>:Aѽ&[??lm4}@6u@< >n?>;c@YgB@%>ד>x㋾^n>`if+@:^>=GԽ/O?C|G3!ܚ@L/A>=U=ûA?aݿ->\#@=i >R>!l?# ٿ@ @ >Qn|?8=^=@5 ?I>׾P_u>h>>0d?D>Y=[BQiK?:&ȿt@`>_9=m_r?E '⠃@=J=q[o=P>+z?F]g?H@<+->:B< ?QJP?%/7@@h?>Шо]}>g>-σ?>6J>BjWz>esr<~$Z@>@z=X9H*?򐾍@c'>׹>k?yv?Ų@Ժ.Z>X꼼@?o](?9ha@?@@(1>ڽV`?Ԁ>&t=i@Jj@h?>ؾM >HLj @ٮ>/ 6_k?ן> ?P@3?@D'(>u; r?\։>>b@B@S ?Ԡ>ly}JJK> ?Ƴ?=?>I.>6$>s7 @?,>#;;>j>8f5E@? '>>3L>Z>n/4@ 2?r>7ᮾ6?hT?:@o?{=Ӯ 3bT?K]?bv@0><6>>B>\?hH?17@Nf@ ?҈S>'Iڴ)> ?R1p@?Y=v_⼞Ͼi?I?50ÿȶ@Q?i=eaw?K6?B @BR/=mA=z 6?''?z@V>p?))?x?*@>T>F>/>ac?T?V@ݤ@ t?<6><)=?|N?hH?17@Nf@~s?}f>M=Q,?7;?D?c@e@?.Z><)=?|N?9ha@?@Cz?ٮ>>.l?> ?P@3?@1#w?X>Iq?l֜>v?@y%@b}?(>>.l?>>b@B@@̝c>jmQv?=>>n?@?> ?v>τR?'h>s?.r}Ge@?.>Rb"?un?6>Ò@V=܊z?''?z@tPI?9=p >L!>t??|=@;v?iE=jj5>=܊z?)=X?@[?c =6>>hj?Y_??f¬@;v?iE=:T>_K>9u?)=X?@6p?^K=DW>%A>u?))?x?*@;v?iE=DW>%A>u?)=X?@?.Z>CM?u?9ha@?@_q?=ٙ>˞BM?t?&t=i@Jj@?.Z>/;QI??9ha@?@x?1>Ɓ⽔x?V>L?z@K?b}?(>L;r?,>>b@B@1>VSr?z>L?z@K?* ?r>!4i>o.]?刋!@?iaK>}[:??Z>@+[?2)!>QiH??.f>@ ?e>࠽֣l?m*? f@*?=Vk> }z?? 7@V^*;|?''?z@,8j?T>!>>e?T?V@ݤ@6p?^K=!>>e?))?x?*@,8j?T>|>#>Hd?T?V@ݤ@Pe?*Z>>">]? @("1@#.@ t?<6>|>#>Hd?hH?17@Nf@ t?<6>*9>v ?4S?hH?17@Nf@Zl?ċ>Gq?P?PM?V@@ t?<6>U>ż>c?hH?17@Nf@Cz?ٮ>fZwAc?> ?P@3?@]}?1>hZwAc?>&t=i@Jj@h?->3>?;`@m?j>ך=/%?m3?IwȦ@81? H>iE?F|?U}B@?G7>Ee?Ⱦk?u@*2@]B?^o>>d=s?(?@qkN@Vp׊=Ox?''?z@V/ux?''?z@"O?>ִ>vu>[g? @J.?*@j?IP> v>|+?H4?7@Ax@z@6r?JB>4%73m?E>0W?X;@:-@Cz?ٮ>^?$> ?P@3?@Cz?ٮ>۽~i?> ?P@3?@1>XS"v?x3>L?z@K?ך?R>0~E=>??+Ӓ?_ ?> L>#?P, @ ?C>*lLY>>?'??yG>ľXS.?)@O;kLj@U?yj>!o[? +@bnt@l+?1>gh>AD sau?M6@Y!۫@8?V">>[=P,m?ݥ6@`FT@W?nPD>Jw>QЛ>_W?X,@?ؖ@,8j?T>{=>Dz>X[?T?V@ݤ@,8j?T>>Sz>f?T?V@ݤ@dJe?>>e>qG?$ +@pY@@?k?>iho>-+E?T?C@@DX@{?c>w!{??=>n?@? x?A>b}?,=#T?c*@Q>?>v!{??=@3\??> /%Ⱦ{?I=@3\?=?_>վOG>@[V@4?r>}a!3&-?)%@5k@Pn#?S>soU>n"Ym?j=@_<@CF?+>>Mm>!`?/;@ȗ9>~@ss?>Fg;x?&(k>x?۞@@ ?g%>R(+Gӕ>?fG??>Ыظhv|>-(@į@?6>=JP?7@֢Ig@h?S>ً">ՐDJ?cUU@Wދa@A!? >R>fؾU?m@%Tx@&(?Yh>>f$zac?ui@"0 @Y5?<_>>gr=)`?WI}@d,@@,A?PP>>J>W'V?h@]:U@U[?><?>tL?F^@r&@cz@Ek?E[>4>Oc?Y>G'@–@*@?.N>,kt9 >,@FB?>?>"Ilmf><@VC@{?D>)=48)0??^X@~x@82?W>h^?޽)X?@@mc?>o>*??a@@0C@m?ɻ>=Z=r?>@1f@@`Wo?.]><Az?(V> @?@M{?` ?G>MPK?>n?Ю؊'?IS ?!>k P1>??(?9>N=5W/?a@ ֩LT@&?{>N>;%&,?TP@ZҦd@;A?>D1?ئ>E?j@<\ݷt@O?+!>?'>{J?i@޺?r@^?ޣ>c>?4?'{@6d@=L@f?߳>O>.aS?(W>aR@ŏ@4,@?&N>#UC>x?,m>f?0&>f =Lw5> i@O@%?,ݡ>?Oݾ5!=?N@/xr@ *?<ޙ>?WjF?v@yP x@5?>V"?13=2aE?Ү@9׿4ǁ@o X?Fճ>e?{>%7?ɚ@O]C@0@s?>1t&}?=?ܥ@me?{?c>:޽ar|?ޮ>>n?@?!"?>/ھf=?Ua? ? |>y Tw>0E@ζH@?oֺ>>+Yk>J8@Zq1@j,$?>G?`  ?c@NLM@:QM?!>U\?y>k9?w@D?U5/@j?>6#>C:u?#qt>;8@R@?!? C> ?da8>h@-l)@®*?>\U2?Fp%?\@VjQ@g5?˪>^??҆v(?v@^8X@S=?Rë>)9?!>-?L@=5O@[?>;?$? ?-@n@8 @^? %>h[?.7?g>G@@M?b?>>`\?4->dž@@?f?hF>?i>p?o>b@@=?X?Ʌ>X"ߍ=f@?tI?0>|}>@h`?1?c>>d%=u@?P&?!>3?R9>d@/@1+?>W?ķm>{@~keS)@H3? >1.Y?v!]?W@*S3@F?M>{q7?>%?@3a?o@@m?Do>q=g}?8o=2C#@/!@^7?{?c>y|?;=>n?@??9>ϼ>\tz<@`? #?>.,?RW:U>@a?%7'? >KI?T%>R>@m@G0??m>g?c(>^"@Q< @6?>o?:Y>/@ ?k=?>\?돹*}?@*@tU?0>x$?p2>]9?R@NC@@EZ?>U$?A?=9?Χ@jq@7?&?>O?τ°<2@槴?v-?y>?f?xԾn >@c%?Q?>S5?1>A?/@Z'@?eAV?n>L6?Y,?9r>k@PW@W'?+$?>NM.?$7! 8Y@0.: F? XE?'>ݶr?b$>y>@06?8f?F?\>U?>. >@>r?嶮?P?>F?>?>͗@j&@:?ҹ\?>!?( A?@>@d @7F?|"a?a>>lP]?>ђ@g@$k_?>t>3@?6?f덾#h?PyE>I!>wE?6#4r?OyE>I!>w*?\>f덾#h?W>=|E?6` V?#>)?Z;*0>m@w @$aA?#>)?Z;?Q@Va|9?H=ݹ7?`/b>rs@Os@$aA?G=ݹ7?`/?Q@Va|9?P1*=dMR?wb>rs@Ose&?P1*=dMR?w+?bM@4?.<*b? ?@Ze&?.<*b?ᄂ+?bM@4Ꜽ9?Lz( u?אk>@O1?Lz( u?א ?@ZꜼ9?g?z?Fk>@O1G?g?z?F0,>a@T > }?y^=@5G? }?y0,>a@T#4r?Z>>so*?\>#4r?U">>Ie*?\>Z3 i?T">>HeP]>bx?jZ3 i?ѡ> ?26SP]>bx?j` V?ѡ> ?26S*0>m@w ?Jyc? ?@Z?&s?L ?@ZZ3 i?=TA>]P]>bx?j` V?=? F*0>m@w a|9?;]D?=$b>rs@Osa|9?>)IM?b>rs@OsꜼ9?6{?k>@O1 >)/|?|<^=@5 >t,`{?`=^=@5 >Qn|?8=^=@5V<)=?|N?hH?17@Nf@?.Z><)=?|N?9ha@?@Cz?ٮ>>.l?> ?P@3?@b}?(>>.l?>>b@B@V=܊z?''?z@;v?iE=jj5>=܊z?)=X?@;v?iE=:T>_K>9u?)=X?@6p?^K=DW>%A>u?))?x?*@;v?iE=DW>%A>u?)=X?@?.Z>CM?u?9ha@?@]}?1>BM?t?&t=i@Jj@?.Z>/;QI??9ha@?@b}?(>L;r?,>>b@B@1>VSr?z>L?z@K?V^*;|?''?z@,8j?T>!>>e?T?V@ݤ@6p?^K=!>>e?))?x?*@,8j?T>|>#>Hd?T?V@ݤ@ t?<6>|>#>Hd?hH?17@Nf@ t?<6>*9>v ?4S?hH?17@Nf@ t?<6>U>ż>c?hH?17@Nf@Cz?ٮ>fZwAc?> ?P@3?@]}?1>hZwAc?>&t=i@Jj@Vp׊=Ox?''?z@V/ux?''?z@Cz?ٮ>^?$> ?P@3?@Cz?ٮ>۽~i?> ?P@3?@1>XS"v?x3>L?z@K?,8j?T>{=>Dz>X[?T?V@ݤ@,8j?T>>Sz>f?T?V@ݤ@{?c>w!{??=>n?@??>v!{??=@3\??> /%Ⱦ{?I=@3\?{?c>:޽ar|?ޮ>>n?@?{?c>y|?;=>n?@?       ! ! ""###$%&&'%'&'((  !) *)* *""+++,,#-./$/%$'01012122( 3344!45!5)!*6""6+6,+#758))9*89)*:69:*6;,:;6,<#;<,<7#7=>=>>--?@AA@BC%/1D2DE22E((F EF( G3FG 3H4GH34I5HI4I85CJ%%J'J0'IK88L9KL8L:9M7<>?-.N/NC/1ODDPEOPDPFEFQGQRGGSHRSGHTISTHTKI:U;;U<UM<?@JV00V1VO1PWFFWQWXQXRQTYKYLKMZ7Z=7C[J[VJV\OO]P]WPX^RR_S^_RS`T_`S`YT:aU[bVb\VLc:ca:>d?ed>?f@df?fB@gh..hN[ibOj]\jO]kWkXWYcLlMUZm=m>=bn\inbnj\koXXo^^p_op^_q`pq_`rYqr`rcYcsastaatUtlUMmZme>huNuvNvCNCv[vi[nwjw]j]xkxokrsciynzyi]wxx{o{|o|poq}rl~M~mMviziywn|qprs}rstltyzywwxx{x|qsuvv{{|||yyhuuyyhhgh   g                  g        !!"" ##$#$$$ %%g& ''()()*)*+*+,+,-#,--.##.$./$$/ /! 0 "''11((2))3*23)*4+34*+5,45+,6-56,-6.67..7/!88099&":'"1;(;2(3<44=5<=4=656>7/8!%?9@&A"A:"'B1B;1;C22D3CD2D<3=E6E>6>F77G/FG7G8/H080II%I?%?9@J:K'BL;LC;DM<<N=MN<NE=EF>OGFGP8PH8HI0AQ:KB'CMDNREESFSOFT?I?U9VW&&WAQK:KXBXLBCYMMZNYZMRSES[OO\G[\OG\PP]HH]I]TITU?U^9A_QL`CCaY`aCZRNRbSb[S\cPPd]cdP]eTeUT9f@^f9gV&W_AX`LaZYbg[[g\de]ehUh^UQXK`iaajZijaZkRjkZRlbklRlmbmgbgn\nc\doepXQq`Xmrgrngnscctdstctodohehu^uf^vWVWv__pQpwXwqX`xiqx`iyjxyiykjlzmzrmn{sr{n{ts|}o}hov~_~p_wqxqklzlzr{rt|o}uh@fvVxxyxkyzz{t{~v~ppwwwkktt|}|gV~~|}}u}vufuuBgg                  !$$ ""#$#$$%%&'&'''()()) &&#*$$++%,(,,-(-)(  .$&""".#..*#*+$+&%& ' /''0/0'1,011-,-2))23233    ABg.$& .**++ & &/400411-2- .. + / 4// 41423223 A       ! ! ""###$%&&'%'&'((  !) *)* *""+++,,#-./$/%$'01012122( 3344!45!5)!*6""6+6,+#758))9*89)*:69:*6;,:;6,<#;<,<7#7=>=>>--?@AA@BC%/1D2DE22E((F EF( G3FG 3H4GH34I5HI4I85CJ%%J'J0'IK88L9KL8L:9M7<>?-.N/NC/1ODDPEOPDPFEFQGQRGGSHRSGHTISTHTKI:U;;U<UM<?@JV00V1VO1PWFFWQWXQXRQTYKYLKMZ7Z=7C[J[VJV\OO]P]WPX^RR_S^_RS`T_`S`YT:aU[bVb\VLc:ca:>d?ed>?f@df?fB@gh..hN[ibOj]\jO]kWkXWYcLlMUZm=m>=bn\inbnj\koXXo^^p_op^_q`pq_`rYqr`rcYcsastaatUtlUMmZme>huNuvNvCNCv[vi[nwjw]j]xkxokrsciynzyi]wxx{o{|o|poq}rl~M~mMviziywn|qprs}rstltyzywwxx{x|q567s89:;<=>?@ABCDEuvv{{|||FGHIJKLyyMNOPhuuyyQhhghR   g                  g        !!"" ##$#$$$ %%g& ''()()*)*+*+,+,-#,--.##.$./$$/ /! 0 "''11((2))3*23)*4+34*+5,45+,6-56,-6.67..7/!88099&":'"1;(;2(3<44=5<=4=656>7/8!%?9@&A"A:"'B1B;1;C22D3CD2D<3=E6E>6>F77G/FG7G8/H080II%I?%?9@S:K'BL;LC;DM<<N=MN<NE=EF>OGFGP8PH8HI0AQ:KB'CMDNREESFSOFT?I?U9&WV&WAQK:KXBXLBCYMMZNYZMRSES[OO\G[\OG\PP]HH]I]TITU?U^9A_QL`CCaY`aCZRNRbSb[S\cPPd]cdP]eTeUT9f@^f9gV&W_AX`LaZYbg[[g\de]ehUh^UQXK`iaajZijaZkRjkZRlbklRlmbmgbgn\nc\doepXQq`Xmrgrngnscctdstctodohehu^uf^vWVWv__pQpwXwqX`xiqx`iyjxyiykjlzmzrmn{sr{n{ts|}o}hov~_~p_wqxqklzlzr{rt|o}uh@fTvVxxyxkyzz{t{~v~ppwwwkktt|}|gV~~|}}u}vUVWXYufZ[\]^_`abcudefghijklmnopqurstuvBgg   w              x$$ ""#$#$$%%&'&'''()()) &&#*$$++%,(,,-(-)(  .$&""".#..*#*+$+&%& ' /''0/0'1,011-,-2))23233    ABg.$& .**++ & &/400411-2- .. + / 4// 41423223 Aopenuniverse-1.0beta3.1.orig/3dmodels/discovery.bmf0000644000175000017500000036314107045144437022250 0ustar paulliupaulliuH?H?H?dzH?H?H?dzdzJ ݌.[?@G?~B܌-[?@p@~B?;?`_@@̂Be'>#>`_@(z?̂Ba+]B1?F{N@p@uBl7`#?@pkI@uB̸nMN<*!@`@̂B#q"F{N@p@B(}MV@pkI@Bn$M+?`@BOM>8K kI@B뇁>APkӿ`@B>..k&@Jp@Be?'Ӿ#>[@̂Bkʸ>xntG"A`@̂B4>$2r3? kI@uBLPp/Y?m?B-@DB)>+ai?kӿB-@DB|L>,w??@DBc>c"z?W^B-@DBhy>-=h x??/?DB '> >s?kӿ/;?DBa+?n]>F1??JG?uBN?4z8??Jp@uB??>?[(z?̂B،?/[?&p@~Bڌ?/[?&G?~B6?D$Ĺ> τ@ DBHF@?Im>>F@p'L~B D?^k>@@ JB1@? $>>8@pOBM?{p >&@`!^dB09?ž?#@(TMB "?  ,?@ YقB?A!?Z)?1j@h;B?Qr?X@ЂB`?2?M@pOB>3?PR2@ RB?>#>  mi@4W?X.@=B9 ?&W T?R}Y@B>U!`?':@'?߆B!?oAF?`W@DϾUBu.?T-m:?Hs@` BPB?m<&?()@DϾB:J?zq?@`?߂B b?Kνñ>ƴ@'#BnX?]>aݩ@)BC\?u*>ʮ@= B9I?%?@0B/M?Jo>䝬@HB4>'-N?? hBЀ>OJ?@p'qB?.>=P?@@ JB7>@U\??pOBO>:N)h?@`!\BM&=ɑž)Mk?>(XB YBM=]xOP?k>㏅BcV2S?-㏅BH9H\??xpOBWM??x hBC.4P?@ JBЀOJ?p'pBdUȾxd?P!\B/Pp? EB5a0gk?BMin?=R"Bws7'nt?/SՇB~p?'dBr $n}?DϾB<q~?]^@B&=eo<??DϾB,=Ue֕|?n&n?`B>LνYu?@'dB>`>B^}s?7?ՇB(>uo?@=R"B>rp?>0 BL=> "l?@B2 -?Kr. RB3о ;o9?p'B?ھA5pOB( ;i>߂ CB Dhk>@ JBGF@EmL>Dp'L~BNȾs,>#P!^dBGਫ਼;T ?Ҙ;ɂB qRX' >᭪HBr_i>ڬ= B:=]&F>^)BGg?a>ֲ'#B QU?%9DϾB!F_r!?@?߂B3k<6?SDϾUB.&;(r?? ho@ Bν7Y?!7'?߆B ]2O?LUB@=#yuS?S+=Bq??F0CuB 6D?7&deBm>7?`#? >uBx>V^B-@WyB__g?m?B-@WyB0000?j>m?/;?WyB_>_>g?X^/;?WyB::?9?m?/;?DBG^D>5Pz?+?/;?DBL,>w?F{@/?DBhy -h x?F{@@DBQ4>x8?F{N@G?uB 5$2?p3?@>uB̸>n?/NN<#ÂB)#?p"?z@JG?B(>}M?U >B>n?$Mkӿ?BSM8?K @>Bꇁ?@P+??B+.?k&F{N@G?Bnʸxn?AqG*!@̂Bu+e?+?B-@DBoHb@?  ? @:B_w<->9?Ҭ?:Bjw>9?Ҭ?!ZBr衾9?>:B9&־T~>9?>ǵB[?ӭ!M9?>:B>aR>?>ǵB&*?/-?? @?deB^_F?=??Ҭ?!ZB 5?J5?a9? @:B >?_?? @[BsRN{?6Z> ? @[BJi ?k??R@B=(>dN? a?R@BWŋ >%b?9? @?deB5*K?ƨ>D @[Bw>dx?2J @:Brҡ>9D @:B@h"ߙ?s4Ҭ?!ZB {HFk9D>:B* >/?D @?deB*Ľ&2i+x>D>ǵB>r2m*>:B^O?y_ Kr>m*>ǵB^w?A->m*Ҭ?:B *?l<,-?m* @?deBҶ>M>Ab?m*Ҭ?!ZB(-?o=P;?t4R@Bx>AO?>J @[B9>i?R@B=' ?)5> R.Ui@ A\%?24=T(WXQ@ A{>\+>h[F ȋ@(AlG>j>OhM G@ A 8>DI>(_cA0ʆ@(A%>>Xdx?@c}@AE>?؀KpzB@:y@ AM+/>?`V1{@tAp>?Q{Q@:y@ A̅>cW`҂@(AȾ6>h;_h0ʆ@(AY8>Q G@ AU*>\II ȋ@(AX2{> Nyci@ AґvSXQ@A+T5XJeXQ@ A9qpiZgY1HΤ@tA샠>9DiPozB@ AT>&˾I]Kt9XП@(AV>.㽾QgM[@ AJ>[3_cA؛@(A?<_nQ.U8@ A9>y>`Fږ@(Ad>B<(hGCXQ@H\ A깒>AM!>qj4@M@f Ayn>/>j3p3(@ A~>*z>,lU,h(@ AA<>Whe$@ A`ڥ>hXvh(@ A{?B)>.s]@f AĉEc>*o@M@f At?6=%tq9X&@f A:վ-wh\ XQ@ A'ž+7h  (I@ A*-ngx֘@ ACs.Xk[@ A ])ϾhXvPz@ A̬;Ǿke$(@ A>M:lU,Pz@ AN>Yjq'n0@f A/>TU?Toj4pU@f A>dǽɋr7`|@f A>&ib= |T .@D A=U>y`")@ A /|>[w@ A=>{l$PO@D AmP\g xh@ An4luw_@ A1>̽4|,hS@D ABv=~%C)@ES9e?i@ A?P7_MFg?XQ@ A=?gJ,6lUl@`@tA?osQ?[@ A>őch @؛@(Ağ>9h˾9\X@XП@(A68>ZQ\R @@ Af}!>K_hT@_@(AM >vQ@x@ Ac<?N]f(@<@(AR FSwPf(@@ AK *UNY@i@ AU*>\J@ ȋ@(AZ8>QIQ@ G@ AȾ5>j;_dE@0ʆ@(Ass>QQ{F@@:y@ A̅>c,u=@`҂@(A]-E& ?JS5@{@tAo<?M58@q@ A \?VcKf(@oo@ A;8$ ?Wf(@@t@Ap>??`Vκ@{@tAD>?ـK\R @@:y@ A$>>XhT @@c}@A>">^N? G@ A~>l>1^h @0ʆ@(A>>f7 @@H\ A&>r;Bn=@XQ@ AŤ>i@(I@ Am>2"OCsb@pU@f A4>ꄜ\o"@ @f Ak<;tqf(@Ȏ@f A㽻м?ltV0@Pz@ ACs.Xkq7@@ A*-ngA#=@x֘@ A$ž+7h¸@@(I@ A=վ-vhpB@XQ@ At;6=%tq;@X&@f AĉEc>*oK8@@M@f A{?D)>.so4@@f A`ۥ>htV0@h(@ AB<>Whf(@@ A~>(z>,l9w @h(@ Ayn>/>j\@(@ AXϊ>kN>pb@@M@f AF>v=(zI@(@ A$Ui>OLxI@@ A.~=ML,{D%@.@D Adnڽ_Wxl1@@ AmP\g xd6@@ A|8U$=`}`0@PO@D A#9>XvA#-@@ A?= E>Cyl#@@ AZ=UyQ#@(@QTs@ AU?":J R@ AZ?nl[R2@@ A^ ?`5Rsh~@ AY>4B,dS]@@ Avy>S <3\~䌿 @@ A*>藽Q˿Y@ As>*ɾO3`J@@ AǙ>5QIh~@ A9>12z2\;PO@@ A˓ >p@Qz3@ A<r\6=@@ AŕnNB=@ A01V~WW?x@AHoI7&?@ A58L4ƍNu?@ Aר)>\_?ܩ@@ A'{Ǚ>Q?@ A=Ⱦ>7_@?Y@@ Az%1>O ?@ A8̍R>U\bkZ?h~@@ A) ?!pRW?@AB?I7&? u@ AG?O?I=oo@ Aڻ& ?W=P<|@A&>e?ٍN}3 u@ A)>ب>\;8 @@ A]Ǚ>4>QJ@ A>>7_Jh~@@ A{>oؽ> Q˿@ AGl>>=H^䌿Y@@ A>c>[hi ث@pbAۨ>s m8q":0@,An>i;qc#k@,A-V=p,=XQ@,AYmrj8>X&@Aop'kv?@AUb툾gbW?@A;]!f~v{?@A9mؾ٩|g?@A.E=>_qJ?XЯ@,A㉾fc>o-?P@,A>#>?s6?@,A> g8>(I@AۛZ>j=@A\=8>\q\]@,Axy>kp>pe#ᾈ@,A[d>e=x ı@A->}}{׋@A+&=%|彽@A޽XxC><@A.pwG?H@AmTU={c>p*@AAN6n>Rxw]> r@A̬=!>0{Qa@A/J=P ;A8S"ػ@A>Ej",>޼@AM=~=H@A>Hܾ@ W\'xBYC4?ݓQ&W\#Bgw4?A@!&W\Byl3?:W\%0Bz/?P?W\%0BqL?Ws@W\BS5?dl1*@W\#BX4?ܴ @ W\B ̫>E?f@ W\EB̸#Z?ܾ@'xB3RR?*T@u)(BwT@PR?@@\sBK&R?²@ Չ9B2]EpὍ>@B >s=>r 'xB>]UK>ko?s W\'xBdK?R?'du)(BIM?%PR? @\sBC?ʔR?Ұ Չ9B>Ӵ'~?*BB}iBJ?BiiB]@;BjnRuu?:6 >i@%WRc=şz?H>q_@@FjP/Ǡ>m?/AJ> g@@jP>[?p >zr@WR0 ?P?ZI>qo@@(jPBi3?03? >Sy@.WR=?%?I>p)v@e=jP[?>k > @NWR|a?w>J>(H{@@FXjPnu?t>h >@@qWRv?h6>I>[{~@vjP}?T >G@ #WRz?dyH>q@ #jP@ wWRm? Ǡ@J>[{~@ǜjPǗ[?b* > @AWR7P?0 I>(H{@ #jP03?+i3 >Sy@WR%?N=I>p)v@jP>[Wl >zr@̿WR>a*J>qo@@ÿjP>nubh >i@3ԿWRi6>v.I> g@7ʿjP~} >q_@`ֿWRT dz H>q_@ #̿jP~Euu6 >"U@3ԿWR:Ơһmj@J>2W@7ʿjP [ >L@̿WR0 4PI>qO@@ÿjPKi303 >E@WRu=%I≯H@jP[Lkl >2?@AWRxa޾J>C@ #jPnuph >h;@ wWRvh6I>f@@ǜjP}a: >fR:@ #WRzd=yH>q?@ #jP:uu~>6 >h;@@qWRm Ǡ>@J>f@@vjP[> >2?@NWRP0 ?rI>C@@FXjP03Xi3? >E@.WR9%<=?I≯H@e=jP[?4l >L@WRM޾xa?|J>qO@@(jPnu?i >"U@%WRyh6v?kI>2W@@jP\:}? >q_@WR >9+4?92i@WTeG>$?l27s@WTp>- ?2{@'WT?>vf2@+IWTC-?Ui>2@oWT7?%=17@ #WT;+4?^32@WT$?Gl2@WT ?p񾁏2{@@TĿWT>f27s@`ѿWTi>}-2i@ ؿWT%=m71q_@=ۿWT,?+4%2K#U@ ؿWT,G$l2vK@`ѿWT=29@oWT$G>l2=@+IWT2 p>2XC@'WT˾?yf2vK@WTiE-?2K#U@WTD%7?1q_@"WTFmi@@HWTpΎcFQr@WTGԾjFz@8+WT{&fXFl@yKWTzMFMX@VpWT} U-G@ #WT'=ʻFMX@WTc͎>Fl@WT#H>Fz@`¿WTcX_&?FQr@οWT۪Mw?Fmi@ ֿWTs ?-Gq_@ؿWT=?ڻF6uU@ ֿWT=͎>c?F=L@οWT5H> >F-D@`¿WTk&?X>F>@WTp? M>F1:@WTz ?=-G 9@ #WT?ͻF1:@VpWTc?͎yF>@yKWT)>HԾF-D@8+WTX>u&F=L@WT׫M>`F6uU@@HWT=s -Gq_@YWTEgLq_@@FjR3=gM2W@@jR^>+Q $.MqO@@(jR>a澭\M̸H@e=jR|>kѩw-MC@@FXjR?xCMf@@vjR)g?Lq?@ #jR?4=XMf@@ǜjR(Q ?]>3.MC@ #jRb>p>\M̸H@jRЩ>>-MqO@@ÿjRÂC>?~M2W@7ʿjRs=g?Lq_@ #̿jR"5߽?WM g@7ʿjR]#Q ?7.Mqo@@ÿjRȾa>\Mp)v@jRЩ>-M(H{@ #jRC>M[{~@ǜjR&g=Lq@ #jR5߽MM[{~@vjRCQ p]1.M(H{@@FXjRa-Ⱦ\Mp)v@e=jRѩh-Mqo@@(jRCaM g@@jR:=b Mq_@>jRkk>BkN,Y@}AjRw>+h=T@@sJjRi?l[O@XjR;8?K@ykjRp[J?bI@@}jRL?8=T2 I@ #jRB?g>Q_I@ɗjR+?>K@jR"?}?O@`jRx>|S8?w=T@`-jR>E[J?b,Y@@jR8L?E2q_@jRgB?s_De@@jRX侊*?£Qj@`-jR7f?qYPo@`jR6r8>r@jR 7JO>wlK#u@ɗjR~ M:u@ #jRBNlkNK#u@@}jR*w侲zr@ykjR6=auYPo@XjR0QZ8"|Qj@@sJjR?N)7JilDe@}AjRmyRd>q_@eP<~qW@ P>_+a>P@@D-P\!?,9,I@@PrrL?j17D@ZPh?};,A@@FxPu?WV} ̸@@ #Pjkq?1>Y,A@ #PH\?>9D@۪P9?Em!?-X,I@ɷPB?nL?BIP@ P!>h?";qW@ǿPbbV=ܺu? q_@ɿP1:kq?1Zqg@ǿPھH\?9Gn@ PB" 8?ޏDu@ɷPLL>?1z@۪Pah/>tD}@ #PPuSj=wꌾp)~@ #PJq6DD}@@FxP_\8"ھ}1z@ZP*8""BDu@@Pd{ЅL6Gn@@D-P/Phuqg@ P~>uu?^7 >i@`?WRd=z?\H>q_@?jPFȠ>em?AJ> g@`?jPH>ɗ[? >zr@?WR50 ?}P?I>qo@?jP2i3?03? >Sy@:}?WRR=?1%?,I>p)v@@n?jP[?>k > @@]?WRa?>J>(H{@S?jPnu?>h >@i:?WRv?h6>I>[{~@ 5?jP}? & >G@?WRz?dxH>q@?jP3uu?~7 >@4>WRm? Ǡ@J>[{~@>jPܗ[?i > @ >WRmP?E0 UI>(H{@>jP03?2i3 >Sy@$)>WR%?t=I>p)v@c>jP>[l >zr@ғ=WR>paJ>qo@>jPB>ouIi >i@@h<WRf6>vI> g@ȼ=jP퉺}` >q_@9WRczH>q_@=jP~+uu7 >"U@@h<WRuǠmAJ>2W@ȼ=jPHʗ[ >L@ғ=WR70 zPI>qO@>jP3i303 >E@$)>WR=%I≯H@c>jP[Jl >2?@ >WRa޾J>C@>jPnuRh >h;@4>WRvh6I>f@@>jP}{: >fR:@?WRzd=zH>q?@?jP1uu~>6 >h;@i:?WRmƠ>@J>f@@ 5?jP[ޖ> >2?@@]?WRVPw0 ?I>C@S?jP03hi3? >E@:}?WR%=?|I≯H@@n?jP[?l >L@?WR޾oa?J>qO@?jPnu?i >"U@`?WRh6v?I>2W@`?jPɉ:}?9 >q_@`?WR >9+4?92i@?WTjH>$?l27s@ ?WTp>y ?2{@ ?WT1?>bf2@b?WTR-?Zi>2@@WT%$?Gl2@N>WTp ?p񾍏2{@~ >WT>5\f27s@x =WTi>-2i@ȲWTz%=71q_@4'WT%+4^2K#U@ȲWTfH$l2vK@x =WT pw 2XC@~ >WT0˾df2=@N>WTP-i29@>WT7%17@?WT3+4>829@@l2=@b?WTi #p>2XC@ ?WT˾7?\f2wK@ ?WTi!-?2L#U@?WT?%7?1q_@?WTٜ׻Fmi@_?WT͎cFQr@ౌ?WTGԾjFz@ h?WT{&fXFl@`?WTMFMX@;?WTz O-G@?WTV=лFMX@>WTc͎>Fl@>WTwG>Fz@>WTW&?FQr@b=WTMm?Fmi@WTs ?-Gq_@WT±=ݜ?F6uU@WT͎>c?F=L@b=WTG>j>F-D@>WT&?W>F>@>WTn?vM>F1:@>WT ?=-G 9@?WT?ϻF1:@;?WTc?R͎|F>@`?WT.>HԾF-D@ h?WTW>&F=L@ౌ?WTM>lF7uU@_?WTc= -Gq_@?WTfLq_@?jR'8=1M2W@`?jR\>`Q =.MqO@?jR>a澬\M̸H@@n?jR>2ѩ-MC@S?jR?-CyMf@@ 5?jR%g?!Lq?@?jR?4=TMf@@>jRPQ ?2]>1.MC@>jRa>>\M̸H@c>jRЩ>>-MqO@>jR/C>?M2W@ȼ=jRs=g?Lq_@=jR"5߽?WM g@ȼ=jR\_Q ??.Mqo@>jRȾya>\Mp)v@c>jRѩ>y-M(H{@>jRYC>M[{~@>jR#gC=Lq@?jR4߽FM[{~@ 5?jR@Q ]?.M(H{@S?jRa-Ⱦ\Mp)v@@n?jRЩ-Mqo@?jRSCʕkM g@`?jRɹ:= Mvq_@[m?jRil>B[N,Y@j?jR>I+n=T@a?jR1?mCO@>S?jR;8?K@@?jRp[J?bI@ +?jRL?8=\2 I@?jRB?f>]_I@>jR+?>{K@>jR"??ЄO@>jRx>S8?K=T@[>jR>h[J?yb,Y@r>jR8L?2q_@h>jRgB?F_De@r>jRX侣*?Qj@[>jR7P?qYPo@>jRr8>r@>jR7JpO>ylK#u@>jRz M:u@?jRBNlkNK#u@ +?jR*w侲zr@@?jR63uYPo@>S?jR=0Z8|Qj@a?jRP7JrlDe@j?jRCmyxRd>q_@Q?P<~qW@?Pً>u_,a>P@~?P!?,9,I@ k?PrrL?j17D@2Q?Ph?};,A@3?Pu?WV} ̸@@?Pjkq??1>Z,A@>PH\?f>9D@>P9?m!? X,I@q>PR?L?HP@">P8>h?_:qW@=PzbV=u?- q_@=Pږ1Wkq?iYqg@=PھH\?g8Gn@">P"߮8?ޏDu@q>PL?1z@>PVh/>tD}@>PQuQj=zꌾp)~@?PJq6DD}@3?P_\8"ھ}1z@2Q?P*8""BDu@ k?PzjLGn@~?P/ih\tqg@?PZ>eP5?*1?g@g>#7k=6?֌1q_@v>j)=>r?K2g@g>j)>B+%?1?qo@h4>#77 ?U?_)3qo@h4>j)[>z ?1?o)v@=#7@?og(?8f3n)v@=j)V?!>1?'H{@#7We?ʨ>4 3&H{@j).?k>'1?Z{~@#7{?;>=3Y{~@j)7?|)=2?q@#72?k3q@j)RP5?t[21?Z{~@Ǿ#7r?=Ӑ3Y{~@Ǿj)U+%?M1?'H{@@B#7U? mu~3&H{@@Bj) ?,򾮥1?o)v@##7 g(?@I3n)v@#j)| >W1?qo@@1#7 > enR3qo@@1j)k>z.1?g@@k>#7;>{R`2g@@k>j){)=72?q_@@BB#7k8֌q_@@BBj)[hP51?1W@@k>#7בrNò0W@@k>j)*%1?qO@@1#7 Uf^)qO@@1j)2 1?˸H@##7_@g(8fʸH@#j)W ̾1?C@@B#7eU C@@Bj).vk.1?f@@Ǿ#7{H;=f@@Ǿj)7_~)2?q?@#76qk= q?@j)`P5Z[>$1?f@@#7rI>Ӑf@@j)+%>1?C@#7U ?Iu~C@j) >1?˸H@=#7g(5@?IʸH@=j)|!̾V?1?qO@h4>#7]se?mQqO@h4>j)qk.?(1?1W@g>#73;{?P`0W@g>j)_{)7?2?q_@v>#7 f>*?5?k@!>#7>Z?o5?u@J>#7?W>5??@s>#7o!?>o5?{5@=#71?K>o5?r@V#7o4?&4?@#7*?Cf5?r@#7LZ?OȾo5?{5@#7X>n5??@}A#7>a!o5?u@)^#7gK>~15?k@@p#7&44?q_@uu#7 fg*5?:S@@p#7ȾGZo5? I@)^#7jX5?D?@}A#7{!o5?Bw8@#71>Lw5?`3@#7q4&&=4?P2@#7*f>5?`3@V#7Z>o5?Bw8@=#7PW?5?D?@s>#7Hl!?o5? I@J>#7L1?q5?:S@!>#7r&=k4?4?q_@>#7 >B8?-?mi@w>j@3G>cr(?-?Pr@>j@E> ?-?z@1+>j@\?P3>-?l@(=j@`82?pp>Ӫ-?MX@ҽj@ @;?-=:.?@j@L8?' -?MX@cԾj@`r(?Gy-?l@j@Ŗ ?E-?z@P/j@3>\-?Pr@Gj@wrp>C82̪-?mi@@@Wj@-=@;;.?q_@[j@ h8ث-?5uU@@@Wj@qHr(-?=L@Gj@Eɖ -?-D@P/j@\3о-?>@j@M826qpܪ-?1:@cԾj@#@;S-:.? 9@j@N8 >-?1:@ҽj@mr(G>-?>@(=j@̖ F>-?-D@1+>j@/3о\?-?=L@>j@qpI82?ժ-?5uU@w>j@-.@;?:.?q_@>j@Ya>'?9?l@e?j@> -?2%9? y@>j@?$M>]9?@L>j@t?P>J%9?1@>j@ \-?3k>9?@,Pj@f0?Q`#ӭ8?)R@j@'?Ya9?@j@)-?þ5%9?1@(j@L>]9?@Sj@ሜ>l2%9? y@@otj@kj>[-9?l@ uj@!]#~08?q_@j@Ya'9?>!R@ uj@þ-3%9?E@@otj@tL込]9?;@Sj@/%9?2@(j@\-Dk9?!-@j@j0`#=ϭ8?=,@j@'Xa>9?"-@,Pj@,C>I%9?2@>j@L?]9?;@L>j@߈m?3%9?E@>j@jj[-?9??!R@e?j@2]#=0?8?q_@ ?j@$>\??l@e?#AK>I?q y@>#Ae?2)?̃@L>#A0;?V1>ʶ1@>#AT?f>?@,P#AH`?O=)R@#A\?$?@#AI?Ǿ~1@(#A2)?p@S#A0>&1;s y@@ot#Apg>wT?l@ u#AO=``q_@#A$\?>!R@ u#AFǾIuE@@ot#A2);@S#A;1;0~2@(#ATFg?"-@#AE`ܥO=,@#A!\_$>?"-@,P#AI>Ƕ2@>#Ab2)?̓;@L>#A1#1;?vE@>#AhgzT???!R@e?#AO``?q_@ ?#Aza=~9>@(=#Ai~>Ruu?76 >,Q%WRc=şz?H>(p[@FjP:Ơ>һm?j@J><S@jP4>ؗ[? >HWR1 ?P?I>(pK(jPi3?03? >A.WR9=?C%?I>ַDe=jP[?>k ><;NWRxa?>J>?@FXjPnu?p>h >g7@qWRv?h6>I>epQ6 #WRz?dyH>(p; #jPAuu?~6 >g7 wWRm?Ǡ@J>e<ǜjP[? ><;AWRP?0 I>? #jP03?%i3 >AWR%?=I>׷DjP>[l >H̿WR>a%J>(pK@ÿjP>nu^h >,Q3ԿWRi6>v)I><S7ʿjP} >(p[`ֿWRq dz"H>(p[ #̿jP~Fuu6 >$e3ԿWR6Ơӻmp@J>c7ʿjP[F >m̿WR1 PI>(pk@ÿjP]i303 >]uWR?==%I>z(rjP[3l >{AWR|aw޾J>2Gw #jPnuth >Xx wWRvh6I>ezzǜjP}T: >pG #WRzd=yH>(p{ #jP6uu~>6 >Xx@qWRm Ǡ>@J>ezzvjP[> >{NWRP0 ?\I>2Gw@FXjP03Si3? >]u.WR%=?qI>z(re=jP2[?{k >mWR޾a?*J>(pk(jPou?h >$e%WRf6v?jI>c@jPכ:}? >(p[WR >9+4?92U"QWTaG>$?l2GWTp>, ?2W?'WT?>vf29+IWTA-?Ti>2$5oWT7?%=13 #WT@+4?22$5WT$?Gl29WTV ?pf2W?@TĿWT>f2G`ѿWTi>}-2U"Q ؿWT%=m71(p[=ۿWT,?+4%2e ؿWT0G$l26o`ѿWT q; f2w@TĿWT˾}f2}WTW-i2WT7%1~ #WT/+4><2oWT$G>l2}+IWT8 p>2w'WT˾?{f26oWTiD-?2eWTD%7?1(p["WTF@tQ@HWT͎cxFF:WT)H>F,@@¿WTXT&?Fc?vF[nοWTUH>>Fv@¿WTg&?X>F|WTs?ܪM>FWWT} ?L=-GG #WT?ɲ˻FWVpWTc?͎wF|yKWT'>HԾFv8+WTX>V&F[nWTM>Fle@HWT =s -G(p[YWTEgL(p[@FjR1=KMc@jR]>"Q 8.M(pk(jRY>a澍\Mz(re=jRx>mѩw-M2Gw@FXjR?dC}MezzvjR'g?L(p{ #jR?4=SMezzǜjR*Q ?]>4.M2Gw #jRa>>\Mz(rjR{ѩ>b>|-M(pk@ÿjRC>?}Mc7ʿjR=g?L(p[ #̿jR!5߽?XM<S7ʿjR]"Q ?7.M(pK@ÿjRRȾa>\MַDjR|kѩ>w-M? #jRC>Me<ǜjR'g=L(p; #jR4߽QMejRkk>BkNCa}AjRew>*z[f@sJjR?g6AucOk@XjRnZ8?607|nykjR 7J?OwlU"q@}jR~ M?:=q #jRB?k>bNU"qɗjR+?>njRm?2?@cOk`jR>;8?[f`-jR>E[J?bCa@jR8L?E2(p[jRgB?t_6U@jR+?m GjRp[J>bEɗjRL8T2 E #jRBg[_E@}jR*Xϣ GykjRP7qK@XjR[r8(p[eP<~(pc P>_+a>Qj@D-P"?@8BCq@PL?Tz󈎾0vZPEh?@0tCy@FxPPu?Sjwꌾz(z #PJq?ܔ6> Cy #P_\?L">}0v۪P,9?!? CqɷPj?rL?z7Qj P!>h?";(pcǿPbbV=ܺu? (p[ɿP1:kq?1Z(pSǿPھH\?9L Pm!E9?@X6EɷPyL2?;I@۪P h>:6= #PuWV=} ַ< #PXkqk1Z6=@FxPH\ھ8@ZP&8 "iߏ6E@PJ=LL@D-P/Phu(pS P~>uu?[7 >,Q`?WRd=z?ZH>(p[?jPJȠ>cm?AJ><S`?jPH>ʗ[? >H?WR70 ?zP?I>(pK?jP3i3?03? >A:}?WRK=?8%?6I>ַD@n?jP[?>k ><;@]?WRa?>J>?S?jPnu?>h >g7i:?WRv?h6> I>e< 5?jP}?/ >pQ6?WRz?dwH>(p;?jP7uu?~7 >g74>WRm? Ǡ@J>e<>jPؗ[?p ><; >WR.P?0 I>?>jP03?`i3 >A$)>WR%?N=I>ַDc>jP>[l >Hғ=WR>a%J>(pK>jPd>ou i >,QPh<WRi6>v)I><Sȼ=jP}e >(p[9WRq dz"H>(p[=jP~+uuw7 >$ePh<WR6Ơӻmp@J>cȼ=jP[? >mғ=WR0 6PI>(pk>jPpi303 >]u$)>WR{=%I>z(rc>jP[~l >{ >WR|aw޾J>2Gw>jPnuUi >Xx4>WRvh6I>ezz>jP}m:& >pG?WRzd={H>(p{?jP+uuK~> 7 >Xxi:?WRmƠ>@J>ezz 5?jP[˖> >{@]?WRaPj0 ?I>2GwS?jP03`i3? >]u:}?WR%=?|I>z(r@n?jP[?l >m?WR޾pa?J>(pk?jPnu?i >$e`?WRh6v?I>c`?jPƉ:}?9 >(p[`?WR >9+4?92U"Q?WTfH>$?l2G ?WT p>w ?2W? ?WT/?>bf29b?WTN-?Ui>2$5@WT%$?Gl29N>WTk ?&p񾏏2W?~ >WT>8Zf2Gx =WTi>h-2U"QȲWT%=71(p[4'WTܐ/+492eȲWTG<$l26ox =WTpu 2w~ >WT1˾af2}N>WTN-Gi2>WT7y%1~?WT4+4>42@l2}b?WTq p>2w ?WT˾5?\f26o ?WTi"-?2e?WTD%7?1(p[?WTֻٜF@tQ_?WT͎cFWTc͎>F:>WTG>F,@>WTbX[&?Fc?F[nb=WTH>>Fv>WTb&?:X>F|>WTn?TM>FW>WT} ?L=-GG?WT?һFW;?WTc??͎}F|`?WT'>HԾFv h?WTW>&F[nౌ?WTM>mFle_?WTz= -G(p[?WTfL(p[?jR#8=0Mc`?jR\>_Q ?.M(pk?jR>a澭\Mz(r@n?jR~>1ѩ-M2GwS?jR?CyMezz 5?jR!g?0L(p{?jR?4=SMezz>jR*Q ?^]>D.M2Gw>jRa>>\Mz(rc>jR@ѩ>>-M(pk>jRC>?Mcȼ=jR=g?L(p[=jR!5߽?XM<Sȼ=jR\,Q ?S.M(pK>jRȾwa>\MַDc>jRBMѩ>-M?>jRoC>Me<>jR$g1=L(p;?jR4߽JMe< 5?jR=Q 7]=.M?S?jRa Ⱦ\MַD@n?jRЩ-M(pK?jR`CƕlM<S`?jRɹ:= Mv(p[[m?jRil>B[NCaj?jRw>*z[fa?jRs?6EucOk>S?jRVZ8?0%|n@?jR 7J?OwlU"q +?jR~ M?:=q?jR B?Fk>xNU"q>jR +?L>tn>jRRm??>cOk>jR>><8?[f[>jR>E[J?bCar>jR8L?E2(p[h>jRyfB?\_6Ur>jR㾚+?jR#?K>jRS8w>Y G>jRq[J>bE>jRL8T2 E?jRBg[_E +?jR*X侭 G@?jR7qK>S?jRs2r8Ύ(p[Q?P<~(pc?Pً>u_,a>Qj~?P"?O8BCq k?P*L?z㈎0v2Q?PEh?@0tCy3?PPu?Sjwꌾz(z?PJq?ܔ6> Cy>P_\?p!>"~0v>P,9?!?Cqq>Pwj?rL?7Qj">P<>=h?{:(pc=PbbV=ܺu? (p[=P1ckq?Y(pS=P]ھH\?9L">Pum!9?W6Eq>PL?I@>P.h6>:6=>PuWV=} ַ<?PXkqk1Z6=3?PH\ھ8@2Q?P8"ޏ6E k?P[PLL~?P/ih\t(pS?PZ>fP5?)1?=Sg>#7k=6?֌1*p[v>j)M>r?K2>Sg>j)>?+%?1?)pKh4>#7 ?U? pP*pKh4>j)> ?1?׷D=#7@?}g(?E طD=j))W?e >1??#7ne?o>C 3 ?j).?k>%1?e<#7{?W;>=3e<j)7?{)=2?)p;#73?kb3*p;j)TP5?\[01?e<Ǿ#7r?Ue<Ǿj)N+%?h1? ?@B#7U? ?@Bj) ?,򾮥1?طD##7 g(?@طD#j) >=W1?*pK@1#7>el1*pK@1j)k>.=1?=Sk>#7;>e{tW`2>Sk>j))=72?)p[@BB#7Qk**p[@BBj)^"P5=1?ck>#7"rLòck>j)&R+%1?)pk@1#7E DU])*pk@1j)2 1?{(r##7_@g(8f|(r#j) W ̾1?3Gw@B#7ȩ[ 4Gw@Bj).Nk11?fzzǾ#7{;=gzzǾj)7)2?)p{#76gk= *p{j)\P5[>'1?fzz#7r0>Ӑgzzj)!+%>1?3Gw#7U ?~4Gwj) >1?{(r=#7g(G@?4|(r=j) ̾*W?1?)pkh4>#7⾢e?P*pkh4>j)]k.?)1?cg>#71;{?P`cg>j){)7?2?)p[v>#7 f>*?5?FO!>#7y>Z?o5? EJ>#7i?X>5?P;s>#7|!?>o5?Nv4=#71?K>x5?m/T#7s4?&4?].#7*?Ef5?m/#7LZ?MȾo5?Ov4#7W>v~5?Q;}A#7L>!o5? E)^#7L>1q5?GOp#7y&k44?*p[@uu#7f*5? gp#7/ȾRZo5?q)^#7d!X5??{}A#7!o5?5#71?Lu5?sr#7w4&&=4?{#7*f>5?srT#7HZX>o5?5=#7RW?5??{s>#7#7L1?q5? g!>#7b&=k4?4?)p[>#7 >C8?-?AtQw>j@+G>cr(?-?j@|E> ?-?,@1+>j@\?3>-?:(=j@S82?pp>۪-?06ҽj@#@;?-=:.? 5j@M8?' -?06cԾj@`r(?Gy-?:j@ ?E-?,@P/j@>3>]-?L82-?AtQ@Wj@-=.@;:.?)p[[j@ @8-?le@Wj@2Gr(q-?\nGj@E̖ -?vP/j@\3о-?|j@N82qpު-?WcԾj@#@;-:.?Gj@T8 >-?Wҽj@fr(G>t-?|(=j@ FF>-?v1+>j@%3о\?-?\n>j@qpH82?֪-?lew>j@-.@;?:.?)p[>j@Xa>'?t9?J Ne?j@l>,?W%9?A>j@?L>]9? 7L>j@v?M>I%9?.>j@ \-? k>9?-),Pj@i0?_#Э8?<(j@'?Ya9?-)j@,?nþA%9?.(j@WM>]9? 7Sj@>yY%9?A@otj@5l>\-t9?J Nuj@c#M08?)p[j@Xa's9?huj@vþ,Y%9? u@otj@L辝]9?DSj@`ƈA%9?(j@[-zk9?j@f0Q`#=ҭ8?Qj@'Ya>9?,Pj@,O>J%9?>j@_M辧?]9?DL>j@v?Y%9? u>j@;l\-?u9?he?j@c#=M0?8?)p[ ?j@Է$>#\?U?J Ne?#A3>I?A>#A?W2)? 7L>#A0;?H1>ȶ.>#AT?f>?-),P#AK`?8O=<(#A\?$?-)#AI?(Ǿ.(#A2)? 7S#A1>0;A@ot#Af>ǯTW?J Nu#AO=/`9)p[#Aڷ$#\W?hu#A@ǾI u@ot#AU2)DS#A0;1(#ATag?#AH`OQ#A \$>?,P#AI>ʶ>#A2)?DL>#A10;? u>#AfƯT?X?he?#AO/`?9)p[ ?#Azk=~u|(=#Ae~>Ruu?86 >i:>%WRc=şz?H>=@FjP1Ǡ>m?-AJ>a&%>@jPߗ>[?q >~>WR0 ?P?bI>>@(jPDi3?03? >>.WR=?%?I>c>e=jP[?>k >I ?NWRwa?>J>&>@FXjPnu?j>h >"?@qWRv?h6>+I>*?vjP}?V >|? #WRz?dH>? #jP?uu?B~6 >"? wWRm?Ǡ@J>*?ǜjP[?v> >I ?AWR2P?0 I>%> #jP03?/i3 >}>WR%?P=I>b>jP>[\l >~>̿WR>a*J>>@ÿjP>nu`h >e:>3ԿWRi6>v*I>_&%>7ʿjP} >=`ֿWRg dz"H>= #̿jP~Euu6 >*03ԿWR7Ơӻml@J>".ʽ7ʿjP [ > w̿WR0 5PI>X_@ÿjPNi303 >¾WRy=%I>jP[Q^l >AWRwa޾J>}ξ #jPnuhh > wWRvh6"I>NǜjP}[: >x #WRzd=H>+ #jP8uu~>6 >@qWRmǠ>@J>N辀vjP[> >NWRP0 ?`I>}ξ@FXjP03Vi3? >¾.WR5%>=?I>e=jP[?3l > wWRK޾ya?J>U_@(jP~nu?i >$0%WRvh6v?lI>.ʽ@jPy:}? >=WR >9+4?92D>WTaG>$?l29>WTp>* ?2q>'WT?>vf2H?+IWT<-?li>2Y!?oWT7?%=1)7&? #WT>+4?32Y!?WT$?Gl2H?WTz ?-p񾁏2p>@TĿWT> f29>`ѿWTi>~-2D> ؿWT%=n71==ۿWT-?+4%2 ؿWT.G$l2j1`ѿWT>2$VoWT$G>l2r+IWT5 p>2о'WT˾?|f2h1WTiD-?2WTG%7?1="WTF#?>@HWTrΎcFp>WTGԾfF >8+WTx&hXF ?yKWTyMF?VpWT{ -G!? #WT=ʻF?WTc͎>F ?WT#H>F >`¿WTbX]&?Fn>οWTMw?F ?> ֿWTs ?-G=ؿWT=?ڻFm ֿWT;͎>c?FŕοWT8H>>Fʾ`¿WTj&?%X>F?WTt?M>F WTz ?=-G #WT?˻F VpWTc?͎xF?yKWT)>HԾFʾ8+WTX>u&FÕWT˫M>aFm@HWT=t -G=YWTEgL=@FjR3=fM.ʽ@jR^>,Q $.MT_@(jR>a澭\Me=jR|>jѩw-M|ξ@FXjR?C~MN辀vjR)g?RL* #jR?4=VMNǜjR'Q ?]>3.M}ξ #jRb>v>\MjRЩ>>-MV_@ÿjRC>?}M.ʽ7ʿjR=g?L= #̿jR!5߽?WM`&%>7ʿjR]"Q ?7.M>@ÿjRȾa>\Mc>jRЩ>-M&> #jRC>M*?ǜjR&g=L? #jR4߽OM*?vjR@Q ]/.M&>@FXjRa(Ⱦ\Md>e=jRѩj-M>@(jRC_Mc&%>@jR:=b M=>jRik>BlNt}AjRcw>*z+@sJjR?k6Bu ]@XjRrZ8?$07| ykjR 7J?Oyl@}jR~ M?2:=]/ #jRB?k>dNɗjR+?>jRm?1?@ ]`jR>;8?+`-jR>E[J?bŝt@jR8L?D2=jRgB?t_m=@jRX侉*?ģ:S>`-jR7i?q>`jR:r8>>jR 7JO>zl<>ɗjR~ M:7> #jRB?lmN<>@}jR*vz>ykjR6fFu>@XjR 0qZ8:|:S>@sJjR:N)7Jilm=}AjRmyRd>=eP<~𿽀 P>_+a>U@D-P"?B8B@PL?RzDƾZPIh?.0t޾@FxPOu?jTjꌾ #PJq?6>޾ #P_\?7">}Dƾ۪P,9?!?ɷPj?rL?z7U P>h?;ǿPnbV=ܺu? =ɿP1:kq?0Z >ǿPھH\?"9> P@"8?ޏ`>ɷPJL=?>۪Pdh/>t`> #PNuwTj=ꌾ1? #PJq6Ga>@FxP_\#"ھ}>ZP8P"Ba>@PzULQ>@D-P/Phu > P~>uu?[7 >n:>`?WRd=z?[H>=?jPGȠ>dm?AJ>f&%>`?jPE>˗[? >~>?WR50 ?{P? I>>?jP4i3?03? >>:}?WRP=?3%?5I>f>@n?jP[?>k >I ?@]?WRa?&>J>(>S?jPnu?>h >"?i:?WRv?h6>%I>*? 5?jP}? >|??WRz?dH>??jP5uu?~ 7 >"?4>WRm?Ǡ@J>*?>jPڗ[?i >I ? >WRiP?K0 aI>'>>jP03?7i3 >>$)>WR%?v=I>d>c>jP>[Vl >~>ғ=WRo>a$J>>>jP^>oui >j:>Ph<WRi6>v+I>c&%>ȼ=jPE}e >=9WRe dzH>==jP~+uut7 > 0Ph<WR6Ơӻmk@J>.ʽȼ=jP[; > wғ=WR60 zPI>S_>jP6i303 >¾$)>WR=%I>c>jP[ Dl > >WRa޾J>{ξ>jPnuIh >4>WRvh6$I>N辀>jP}s: >x ?WRz;d=H>(?jP-uu0~>7 >i:?WRmƠ>@J>N辀 5?jP[ږ> >@]?WR]Po0 ?I>zξS?jP03di3? >¾:}?WR%=?I>@n?jP[?l >w?WR޾oa?J>P_?jPnu?i >0`?WRh6v?I>.ʽ`?jPƉ:}?9 >=`?WR >9+4?92D>?WTgH>$?l29> ?WT p>v ?2t> ?WT1?>bf2J?b?WTK-?ki>2Y!?@WT#$?Gl2I?N>WTo ?p񾏏2s>~ >WT>8[f29>x =WTi>g-2D>ȲWT%=71=4'WTݐ0+492ȲWTG>$l2g1x =WT pv 2о~ >WT1˾bf2rN>WTK-Gi2$V>WT7%1R3?WT3+4>72#V@l2qb?WTn p>2о ?WT˾7?\f2f1 ?WTi"-?2}?WTG%7?1=?WTٜ׻F(?>_?WT͎cFr>ౌ?WTGԾfF > h?WTw&jXF ?`?WTéMF?;?WTw -G!??WTG=ѻF?>WTc͎>F ?>WTwG>F >>WTW&?Fq>b=WTMl?F%?>WTs ?-G=WT±=ݜ?FmWT͎>c?F•b=WTG>i>Fʾ>WT&?W>F?>WTo?hM>F >WTz ?=-G?WT?ѻF ;?WTc?H͎F?`?WT'>HԾFʾ h?WTW>&Fౌ?WTM>lFm_?WTj= -G=?WTfL=?jR 8=1M.ʽ`?jR\>_Q >.MO_?jR>a澭\M@n?jR>1ѩ-MyξS?jR?/CyMN辀 5?jR!g?L(?jR?4=WMN辀>jRMQ ?<]>2.Mzξ>jRa>>\Mc>jRЩ>>-MQ_>jR%C>?M.ʽȼ=jR=g?L==jR$5߽?WMe&%>ȼ=jR\_Q ?>.M>>jRȾza>\Me>c>jRѩ>x-M(>>jRpC>M*?>jR#g =L??jR{4߽IM*? 5?jRS?jRa(Ⱦ\Mf>@n?jRЩ-M>?jRVCǕlMh&%>`?jR̹:= Mu=[m?jRhl>B[Ntj?jRw>*z+a?jRo?6Fu]>S?jR[Z8?0$| @?jR 7J?Ozl +?jRz M?:=[/?jRB?k>pN>jR+?> >jRTm???]>jR>;8?+[>jR>g[J?zbtr>jR8L?2=h>jRgB?F_m=r>jRX侣*?:S>[>jR7U?q>>jRr8>>>jR 7J{O>{l?>>jRz M1: 7>?jRBAlmN?> +?jR*w侲z>@?jR64u>>S?jR:0Z8 |:S>a?jRP7Jtlm=j?jROmyxRd>=Q?P<~?P׋>v_,a>ߺU~?P"?P8B k?P(L?zAƾ2Q?PIh?/0t޾3?PNu?wTjꌾ?PJq?l6>-޾>P_\?9">8~Bƾ>P,9?!?q>Pj?grL?a7U">P0>h?^:=PbV=u?+ ==Pޖ1Wkq?gY >=PھH\?i8>">P"8?ޏc>q>PL?>>PYh/>tc>>PPu Rj=ꌾ2??PJq6Ec>3?P_\%"ھ}>2Q?P*8"$Bd> k?PzjL>~?P/jh\t >?PZ>eP5?)1?Q&%>g>#7k=6?.1>=v>j)H>r?{t2G&%>g>j)>@+%?1?>h4>#7: ?U?޶2>h4>j)Y>{ ?1?[>=#7@?tg(?3V>=j)V?!>1?>#7Ve?ը>N+3>j).?k>'1?*?#7{?t;>WE3*?j)7?7|)=2??#73?k[3?j)TP5?Z[11?*?Ǿ#7r?=53*?Ǿj)S+%?V1?>@B#7U? ` 3>@Bj) ?2򾯥1?Z>##7 g(?@X2U>#j) >W1?>@1#7@>;eI4>@1j)k>.1?N&%>@k>#7;>{aK`5D&%>k>j)8)=72?Z=@BB#72k642=@BBj)|^JP51?B.ʽ@k>#7ՑrU5V.ʽk>j)+%1?h_@1#7H CUuӲr_@1j)5 1?þ##7]@g(\Ⱦ#j)W ̾1?ξ@B#7eק0N+ξ@Bj).Rk/1?N辀Ǿ#7{`;W;$N辀Ǿj)7~)2?3タ#77k=N>8タj)_P5k[>&1?N#7r3>5$Nj)+% >1?ξ#7U ?L ξj) >1?¾=#7g(7@?`Ǿ=j)|!̾V?1?f_h4>#7Xve?p o_h4>j)ik.?)1?<.ʽg>#73;{?P.ʽg>j)t{)7?2?f=v>#7 f>*?5?eZ>!>#7>Z?o5?6>J>#7?W>5?J=?s>#7h!?S>o5?S#?=#71?K>y5?5?T#7s4?ٝ&4?5;?#7*?Ff5?5?#7LZ?JȾo5?R#?#7W>s5?J=?}A#76>h!o5?6>)^#7J>1~5?eZ>p#7&u44?X=@uu#7f*5?Vp#7/ȾRZo5?g/)^#7fX~5?r}A#7z!o5?#71$Lt5? %#7u4&=4?L1+#7*f>5? %T#7Z>o5?=#7RW?5?rs>#7@p!?o5?e/J>#7L1?q5?V!>#7l&=k4?4?h=>#7 >B8?-??>w>j@4G>cr(?-?j>>j@E> ?-?{ >1+>j@\?b3>-? ?(=j@S82?{qp>Ѫ-??ҽj@"@;?-=:.?!?j@M8?* -??cԾj@cr(?Gy-? ?j@ ?E-?z >P/j@3>\-?h>Gj@pp>f82Ϫ-??>@@Wj@-=@;;.?u=[j@ `8-?m@@Wj@GMr(-?˕Gj@Eɖ -?ʾP/j@\3о-??j@Q82qpܪ-? cԾj@!@;-:.?j@U8G >-? ҽj@[r(cG>-??(=j@͖ F>-?ʾ1+>j@(3о\?-?ɕ>j@qpH82?ժ-?mw>j@ -.@;?:.?=>j@Ya>'?9?u>e?j@>-?3%9?>>j@?M>]9?[j?L>j@v?T>H%9?.:?>j@ \-?k>9?שN?,Pj@h0?`#ѭ8?T?j@'?Ya9?שN?j@--?þ3%9?.:?(j@L>]9?Zj?Sj@ȇ>F%9?>@otj@8l>\-t9?u>uj@c#M08?r=j@Xa's9?V4uj@þ&-F%9?ȼ@otj@qL込]9?f Sj@}2%9?&+*(j@[-^k9?>j@i0`#=Э8?Dj@' Ya>9?>,Pj@,D>I%9?%+*>j@XM辨?]9?f L>j@x?V%9?ȼ>j@i\-?9?R4e?j@ ]#=0?8?= ?j@$>\??u>e?#AM>I?s>>#An?2)?Ѓ[j?L>#A0;?B1>ö.:?>#AT?f>?שN?,P#AJ`?[O=T?#A\?϶$?שN?#AI?Ǿy.:?(#A2)?eZj?S#A0>41;>@ot#Af>ǯTW?u>u#AO=0`9t=#Aط$#\U?V4u#AǾIȼ@ot#A2)f S#A;1;0y&+*(#ATag?>#AH`DOD#A \r$>?>,P#AI>Ķ%+*>#A2)?f L>#A10;?ȼ>#AfǯT??Q4e?#AO``?= ?#Az`=~(=#AZ>qyU? ? _g=A~V==&`͉>uc=?"`*->#Dm??`>xy`w|>v@`ub>'?yù?ֿ#?7@`?KV%?ȸ`@ %`[)?ڜ9/?R?`G$g?tB>bRz@)^`#6?Wk2?v@^n?I]=&>;@`s3?tJ >2?R?>=]?>>>bRz@J>`!?l>5*?=?=?S9?#?>ȸ`@i?`?4?(?zù??| ?9R?9>7@ܳ?`s> 9???@?ذ> _n?;=w@?`X>bO?cu ? ?0?e>}?=?@` < PZ? z?=?qcg>~?V==s@`4[vyU??90?͉u?`=@`*-#D?m?&w@?xy`?t|>?`hb꾽'?w??#73ܳ?`K>V%?fڿ=?J& ?)>ڷ\i?`[)ڜ>9/?Q>$g}>:>tQvJ>`%6=k2?^nH]%>}`s3fJ 2?Q`G6]>¾>tQv)^`!p˾4*?fڿ!S9#>ڷ\ %`#3?ֿ| 9R9>3`Λ^D>)w`ذ _n5=`yپ˶~?9 Mf~R =\=d}="`T黟)|||0>< 5gBذ=,3+K?>s?KhB!K?<0ǞKhBJ1wֻ0>n+5gB#K?#HdKhB(Ǿ!g0>55gBƇT =K?6*kKhBOU1>v$,x}5gB{K?*%(FKhB'31)0>[m5gBW!SѾ K?ReKhBQ 0>nE>5gB (K?Ex7KhB%i 0>5gB3S"K?20KhBw;0>`᛿5gB,ٰ*K?Β@KhB)|rQ;{0>ԛ5gB!< K?(KhB8wJ>H0>@3?5gB b>#K?Β*?KhB0gT(>0>?5gBQ vƇ>=K?2 ?KhBO+?e1>nEp@5gB{>K?Dx@KhB1.3?0>[L@5gBSѾ!> K?RD@KhB Q?0>u$,s@5gB1?(K?*%@i@KhB %i?0>쿸@5gB S)?"K?3*@KhB';w?0>{n@5gBذ,?++K?Hd@KhBS;)|?c|0><Ȍ@5gB<ٟ? !K?< G@KhBJ>0w?0>}?@5gB~>?$K?Ds?@KhB(>g?50>߃?@5gBƇ>x ?=K?F?@KhB?O?1>0@s@5gB>O{>K? )@@i@KhB"3?1?0>`_@L@5gB[!>S> K?V@D@KhBQ? ?,0>r5@p@5gB?>(K?M{@@KhB%i? >0>@?5gB:?S>"K?#@ ?KhBw?;>ֺ0>@@3?5gB,?ٰ=*K?@*?KhB)|?R{0>ĝ@5gB!? K?-@KhB8w?JF0>@`᛿5gB?p#K?@@KhB/g?[(Ǿ0>@5gBW ?Ƈ=K?#@0KhBO?+V1>r5@>5gB {>K?L{@7KhB1?+30>`_@m5gBS>! K?V@eKhB ?Q܍0>~0@x}5gB> (K? )@0FKhB >%i0>܃?55gBS>"K?C?kKhB';>w0>}?+5gBggB<+DI<؍aBdڽqIg7hPaBhrIŷraB*D>I@[aB_۾a6*5If*<=aB4NUx:I/CINaBJipI,`ܿaB)MHsI0n`߀aB+cBDIraBd=qI0n|>aBh>rI,`?aB*>J>I.CI?aBb6_>&5Ie*`<@aB_x5N?:I :@aBJ?epIŷQ@aBH+M?sIa7_@aBaB+?DI<d@aBd=?qI~G?_@aBֆh>?rI텿?Q@aB*>?D>I޾ @ :@aB_>p6>'5Io.@`<@aB0N?Xx>:I8#M@?aBJ?>fpI d@?aB)M?H>sIr@|>aB+?dBI7#M@NaBd6>_۾&5In.@<=aBLx>:N:Iݾ @@[aB>JhpIꅿ?raBH>+MsI~G?hPaB3]SY<5^B82fNH;5^Bǭ@-@cP5^Bd,X̘05^B ;EkÿK5^B1PT,~ 5^BD+!<~I5^BucP J05^B8]SH]2>5^B@ȭ>$@~@?5^Bd,>X+~Ww?5^B ?6fN?HB>?5^Bȭ>@?"@S`? ?5^BB>d,?X? ^?5^B ??;E+?K?5^B 1?>PT>>?Ww?5^BD?-!><^@@?5^BucP?>Jn @]2>5^B7]S?Y@5^B5fN?8Hn @05^B@?ȭ"@^@I5^Bd,?X=>? 5^B? 01IT?05^B{!>D<S`?5^B`>cPJ;>5^B! =B72?<]Bӽ5=g2?;]ByM,7Y2?cP]Bۚ?2?̘0]B\O|2?kÿK]Bx۾I2?,~ ]BLc%*Y2?~I]BZ2c2Kg2?0]BB7}$ 2?. ]Bܭ5K=Jg2?]2>]Bj,Py>)Y2?~@?]B}>I2?+~Ww?]B>N|2?kÿK?]B۾d?F2?˘ ^?]BMc%?)Y2?`P ?]Bc2Z2?Kg2?;?]B'% B7?2?<`=?]BJ=ۭ5?Lg2?B>?]BKy>k,?*Y2?S`? ?]B>?G2?? ^?]BY>?N|2?+?K?]Bx?>I2?>>?Ww?]BJc%?>*Y2?^@@?]BZ2?c2>Ig2?n @]2>]BB7?H$ =2?@]Bݭ5?0ӽKg2?n @0]Be,?gy,Y2?^@I]B?xL2?=>? ]B?N|2?+?K]B>x@2??0]B>Uc%6Y2?S`?]Bwd2>Z2@g2?<>]B$œ5m?<`cF]B`4m?}pC]B'(m?Р8]Bqhl?ƿ']B,l?V]Bn+HUm?*]B.{q;4m?0&@]B\达 [:$m?V0P]B5œ<m?N3]B?=[4m?V0.>]B '>(m?0& U?]B rh>l?*?]B,t>l?U@?]B#HV+>_m?ƿ@]Bq.>;4m?@]B[X>;$m?yP"@]BaÓ<5>m?<@c%@]B=>a4m?W?P"@]B'>>(m?(e?@]Bqh>>l??@]B>,>l?b@@?]Bo+>H>Um? @?]B.>q>:4m?*@ U?]Bv>"[=4$m?a4@.>]B5>Ɠm?Y7@]BF>Y4m?`4@P]B>'(m?*@@]B> rhl? @]B,>tl?b@]B#H>V+_m??']Bq>.<4m?&e?Р8]B[=[达;$m?W?pC]BXܻ"w+Q><L]BFq]> P4I]B þb>Es>]B K[>XͿ,]B/x-i>*@]]BDM' Dž>Y]Bbdz>,`b]Br7ֆ>46uU]B"w~;3Q>8:]BqKF>e>46>]Bb>>,@^?]BK ?[>Y@?]B y-/?V>)@?]B' ?M?Dž>VͿ @]B]bd?>Cs@]B7r?ֆ> 04(@]B#;!w?,Q><+@]BF>q?\>4?04(@]B >b?>WB?s@]B ?K?[>j? @]B/?x-?h>4@@?]BEM?' ?Dž>9@@?]Bbd?~>>/@@^?]Br?7>Ն>>:@>]B$w?}ܻQ>>@]Bq?SFM>=:@uU]Bb?þ>/@`b]BK? [>9@]B y-?/X>3@@]]B' ??MDž>h?,]B]>bd>UB?s>]B7>rֆ>4?P4I]BYH;cvHUBk:>!.?UB)>1!kM`?UBI=?A!ٿp?UBlk5?,!o4z?UBq2?!hu@UB AU@?!cBpk @UBF?7/!`:?!cx?u@UB> )?1!?z?UB?E=?A!P?p?UBv5?yl>,!u-@`?UBm2?̺>!@.?UB[@?* A>!@c>UB"F?=+/!Ѽ@UBKD?*㽥!@<UBl:? !@RUB)?Ͼ1!u-@ϿUBK=?A!P?pUBl>k5,!?UB>r2!cx?u!UBn>gn@Y?k*UBuFm?6o@Bv~=/Ca@B1 mQ}N?Zu@-Ba.><|?@9?B*?Y? 5 \?Bb'?;s=k@9?MBZO뾥A?>ի \?ьBS6 >N/?0@?#ńBվo@?>?i \?B+-5>?<=J@9?BW?q>W? \?VxBC?Љ=#A&@9?BjJ?~=g@9?)FBcA?ߍ? \?+B\^?`=@9?jB u:d?%H?ÿ \?Bؽ A?!%?e}B \?uBŻdi?7=0(@9?B1A?R'?P< \?B: ;1i?Ɋ=^<@9?PBd=YX??zQ? \?uB>A?s#?? \?B]#?C? @\?+B~р>W?:n>7C@\?VxB =,D?`=*@@9?BԠ-=I>?;=N@@9?B>&@?g? um@\?B8&U=%0?Ov=o@@9?MB,>FQ@?\">؛@\?ьB'=S1(?@?@@9?Bg$?>)?@\?B13?Q>#3? @@?#ńBI?A=B?h@@?ьBU?<>>*T@\? B[?=έ? Ϭ@@?5Bd?>U>]@\?LBj?V>N>>@@?Bn?~ԅ>J>]@\?B~Bt?H[>{>@@?k~Bt?>I>@\?.{B{?5>~>r@@?B{Bv?^>h;?@\?'xB}?>+g^@@?'xB2u?K>-@\?1tBi{?Y>r@@?tBn?d>^@\?qB1u?>D@@?qB3qd?bυ> g^@\?nBkmj?>b¾?@@?EnBHzV?">"+T@\?kBaY\?t>S Ϭ@@?kBqC?>H?@\?LiBH?i<>*h@@?hB/?m>).ٛ@\?fB3?T>>B3 @@?fB?Մ> C"um@\?1dB` ?v=D7s@@?WdB ?|>gN7C@\?cB,7>d>J:@u@'dB\g?y> =87c@u@;eB%,?Ϲ>"%^@u@;gB;?>^@u@iBL?GT> @u@ulBZ?>v^@u@.oBgd?>Ôu^@u@drBXuj?7>Â?@u@'uBk?>w<؛@u@'xBk?>N[>>@u@'{Bȧd?>t>]@u@}BMZ?M>y>]@u@nB\J?J>;>@u@AʁBK?m?R?,@u@-BDi47?:@u@BQ$=㽟=c"@@fBX><=?@B>ûh?`@u@B>>FD?`/@7@cB5?i?@1?6#U@7@B"?>?w@7@BW9??Ɨ>| @7@nBL?h?30>@7@j&B U?mv?j>+T@7@}BD]? >v= Ϭ@7@1zB^?> Ϭ@7@.uBKV?wT?_V+T@7@krB8L?di?6@7@yoBFD?>־} @7@.mB@1?k?5?@7@jB?5>#w@7@;hB>?I<`/@7@BeB>ia?fIj@7@'dBL>?y@<? b@;eB5y>x`? G<?7@cB>(?b=z&.? b@WdBW]>5?nn+˕?0@fB35?QN4̺ 0@fBIՌ,? =< b@.dBCT1Bk$?%?R b@WdB葾2?'qԿ0@;gB=??)S b@;eB5yx`? G)S7@cB+-?!E܊7@'dBfXӾ?,L b@1fBLe.g8?6FaF0@kBZ ?cѳ^ b@iB5o 0?Eݾѳ^0@BmB /'8?ǭy b@kB|*G2?=Y0@BqBx8?篭Y b@kpB?{!?h(WO b@nrB^306?x0@'xB'L>g? Ƚx b@kuBdI?=x b@zB(N4?>Y0@~B??=>Y b@B!s,e?7>O b@VB7F.g8?Ge>aF0@#EB` x ?H ?ҳ^ b@BHݾ 0?5o?8*0@Bǭ7? /'?W? b@ރB=D2?|*?qԿ0@+B语?x8?,S b@+Bk(W|!??? b@BD06?]3?<0@لBȽ?g?'L?Y b@مB=?dI?s&.? b@مB>O4?(?1?0@+B=>???9? b@+BfX>?,?U @ b@BJe>.g8?5F?AJ@0@#EB[ ??c?ړb@ b@B4o? 0?F>ړb@0@cB /'?6?˭>!u}@ b@ B|*?F2?=>^@0@~Bx8??쯭>^@ b@B??z!?r(W>?@ b@#}B]3?06? g?=h@ b@zBdI??ҽh@ b@kuB(?N4?^@0@BqB???=^@ b@kpB,??fXӾ?@ b@nB7F?-g8?LeAJ@0@kB]?v?.ۓb@ b@iBR/>u0?.@0@iB>?n(W @ b@1fB4>di?8L?j@7@BbV>vT?KV?9?7@VxB=)]>\?=?7@B,Č>Z _?.7@Bzjqv? U?-S7@VxB-0i?L?ފ7@BV+|?:_:?+7@cB A>6?.s7@BB >->x7@nB8Ldi?3>7@j&BKVwT?gV>&d7@}B^>=ߪ7@1zBA]( >vߪ7@.uB Uqv?zj&d7@krBLi?-07@xoBj:=?$x7@.mB"?>.s7@;hB5k?@1.CQ7@1fBܾ*?m?+7@BeB1>F7u@'dB>;W_u@;eB"%Ϲ>%,Yu@;gB =8}>]gYu@iBLMCK>fu@ulBMZM>vYu@.oBƧd>tYu@drBk*>Z[;u@'uBk>wԫu@'xBOujZ>ł=;u@'{Bgd>ؔu>Yu@}BZ>s>Yu@nBI*>K(>u@AʁB;žNQ5F>Zu@+Br_~)=-B@#ńBj羌wʒS?V?u@+BD>gLW?\?cB)N>E?i\?1dB).m>/ԫ\?fB CԄ>O\?LiB}U9U>S&d\?kBd>UY\?nBnԅ>SY\?qBt>T\?1tBvr>O \?'xB0uK>-> \?.{Bnd>>Y \?B~B0qdyυ>g>Y \?LB%`T>>&d \? BM[4>6>ߪ@?5Bkmj>g>;@?B/u>G>@?k~Bj{B>>ނ@?B{B }>+9dn@?'xB{(>ނ@?tBt<[>{@?qBjV>N;@?EnB !\d>ߪ@?kBI4>}x@?hBB3P>>30@?fB}t&->ICWo@?WdB?(={=m@.Cq.dB55xWfBJg] OhB ^:M:&kBclf:FľԫunB w :DBOEqB}79eqdnytB0ͯ'xB}>dnL{Bw@Ӆ>O~Bcl;>ԫAʀB[|m?&#EBB0K=?x@?ьBJ19s)?ߚ*`σBG辘g F-?ߢ{VBܾ;4?̍hBhU8M><B2u >k~BmT*Ą<,ӡ}B\,p7.:>9{B`ů]`I`5`}BT Y?־`5tg{B$_左>9–@{B{gх>ނB{Bg} }jB30fB` rDWoWdBu܍^d`<u)'{BB]4!:&X'xB_<ߪX.uBKVsTsV'dXkrBzNQXxoB{(A3%վxX.mBi 02OXjB5#.sX;hB㾱I<+XBeBjafI݊X'dB|Ly@,S¢ف;eB5yx` G,SXcB0(H=XفWdBJH6^,~ fBܰ=K4X4:?fB,J<, =<ف.dB #>i"At&.?فWdB3>ut<9?ف;eB5y>x` G:?XcB+>,!Ej@X'dBeo>h9,U @ف1fB>*m?`/@XBeB>3վF:@u)'dB5?k@16#U@X1fB)? ړb@فiB#?$5w@X;hBY*+?n)侯?@فnBIh@فzB_?O= Ϭ@X1zBKV?wTaV>*T@X}B+;?́_>]@فB)K?8>@Xj&B-?ty)?Iً@#qLBBA?"?½#rZ?@0_:Bu>'>h?]@Z#EBaҋ>$ {=u?4+@DB!>!c?g^@uIuB-f >X}W|?q5@0,VB ?hڡ;E?@`8/B=ًbpx?>@B ?Ĺu@?I٫@@ B=Zľj??@cB~G>&߾yP?h@￞YB=@X?@ )ԁB,?73?ĭ@ԁB>4%@?@뒿cB,?[%¾3"?@̍hB!Y>N<$?I@@eB[~>!Y"? Ϥ@{VBC>2$K?؛@<ǵBF7?o) ? Ϝ@*`σB2>HYh>@@-^B??[)e>@@)Bg>U`>h@*T@*+B?EXR>hVx@@eB :?k?z@{V庅B%D4?^2>^d@뒿BN@?R־:*? e@̍L!B8N?1C*N=7S@)L!B6??߲gv?S@cBb?<쾸%=5#E@│0B]?"¾;>^D@7sBs?x-=;@BM?`w?:@@`OB|?A=7@0,AʅBJ?mI? 5@`8/B{?z>9>hV8@DYBL? ga?7@uIьB+u?~q=/>>@ZAʄB_?~>A> u=@0_7Bqg?]mV>^>?H@jj&Bn>?XPC"??H@#q#EB~R?\ >?hVX@WtVxBD?i#??X@0|ьBU;?&2>?j@ .xAʂB2?`@1?r-l@0قB?->;?μ~@Wt+BŹ$?z›C?@0|0B4> >3T?؛@jjB c?*߽>]@u)}Biwg?}'x>]@@\LBj?Tf>>@B l?P65>؛@AʀB w?l:CB>?@~B0u?K>@k~Bq?lsk>]@@\B~B2u?K->@@\.{BVuj?=ľڂ=>@u)'{Bv?`?@@\'xBSl?ľY؛@u)'xBt?H@@\1tBj?Xþ>@u)'uBn?ԅK]@@\qBƧd?¾t]@u)drBd?U]@@\nBMZ?Mľw]@u).oBU?>UN*T@@\kBLM?DKþf@u)ulBC?Ԅ?@@\LiB =8?ƾZg^@u)iB&.?m/ٛ@@\fB"%?Ϲ%,^@u);gB)?M琾G?"um@@\1dB?þ;7c@u);eBD?gL7C@@\cB}?y&-HC7s@WdBB3?O>3 @fBI?;{h@hB"!\?h Ϭ@kBj?VN>@EnBt?H[{@qB{?5~r@tB}? +9g^@'xBh{?a>r@B{B}?9gq>g^@L{B?(0PQ@'xB}?9:eqg^@ytB w?ĺ>B?@EqBcl?=ľ؛@unB ^?M@kBJ?g:] T@hB5?`5h@WfB=(?4{m@7#u@.dBD^?<;>@#EBj94?m\<35?h@لB>?G;J?5#u@B*?i<>H?7s@@?مBU>t>`Y\?hVH@@?Bg>!>kmj?@@?7sBP>>/u?Ь?@?uB=i> |?2W?@?AJB2;}=~?9<@?hB~>{?G@?AJB{+[>t?ȿ@?uBNyV>j?@?7sB@>"!\?cvD@?B~>I?Wo@?مB2b3<:7?xلB) ?@)B $T?'d*+BҾ$Yw>@-^BJ>wV>ի<ƵB+*D{7?Y@eB>=Qu1W2?ʤ뒿cB99C M?)ԁBkʾJK?ԫԁB rv뾩ma?OcB& ,aB?x￞YBnFpq?<B ؄F?F@ B{_{?oE0,VB˧پDqb?ʤ`8/BJN><)z?1;DBy[&A?enuIuBʴ#=op?ZZ#EBr fS?&0_:B\)ᾠ~F>R`?իjjB~U5 _$?F#qLBq .Q>{H?zWt+B1N;+8?~0|0BEk+Ob>-?g .xAʂB#4Z*"?mMh0قBtFM>?cvTWtVxBIM눼s?;U0|ьB;]]j>o>;Ejj&Bj\o4G?;E#q#EBox(> >8:ZAʄBp4Nb3x^p ?90_7ByE=I/X>dv4DYB5gX0;>.3uIьB!j||X>.30,AʅBcJh?1`8/BxlVQK=7B*_>7@`OBhmHm=0CA│0B_' nZ)?X@7sBMYM2=WO)L!BrLZa>OcBJBI%=X`뒿B:ϳ>a̍L!B?'Xr=%>cvt@eBW+?w{V庅B Ly~>xʊ\>Z@\LBbI>Zu)}B{HSNj>Xj&B<S>ZفB 52Tb>.snBi4?aF#EB*6KN>0CQXB%!JJ=WoX'zB c26=0WzBݙHT2>xفzBJG oV;Pف'xB+b815իusBKxفkuB>:1ZفkpB*P54ھҳ^BmB'u"yفkBvҳ^فiB]4ƾ68*iB׾_(Mف1fB*Q\v=ߪX1zBX N>'dX}Bṱ>T;u)y=}BnHM>~u)bd{B:ھ2d?@\.{B,xlv?IR{B:Eo'?F ?섲#,{Be?>:;0#%Z}B)]K=(P#}Bvm'1;@\I}Bi- w+୾–~Bw闽8XSId}B7?MƼQ\?AJ@ԆBg>_}g?@7sBD>cl?@ьBv>x轃s?Ь?uBۈ>;v?,<}?Y?hB<ۮt?<@)u}BOϽ<<~?{+JhB^W{WK x?$|˿BDľ7:cl?ьB9<`?aFԆB"rw:DM?0CqB:&ͽh\?cvDBþD^j?7sB䶾< :e?@\+BGEp?ȿuB>kL߾c?X̍L!Bѥ>S?ÿއBt&>l?NڿB>+d?b@@BTս5p?Nڿ`8/Buþ%RD?+XcB\39"?W?فރB^Ѿ_#&?OفBT&e??/S¢ف+B2@>uzu?ÿuIjB*. ?攼KtW?HDBmi>w~=_?ZAJBNf>Fx?X0_cBm>0O>zk?Qj-Bc=eBz?^^#q0B3I>̓>@4r?ѾWtuB$Au=cnfs?< .x7B!0t?<0BFo>r?>WtuBٿRIz??0|Bwdžk>o?Ya?j-B&N]Bvz?m&n?#q0B;#>f?y?ZAJBN!ѽs?_o?0_cB*v=MZ??DBy=zϾph??uIjB{$Q??0,`φB1V^&g?T?`8/BuzD?y?-B⯾8IH^?iF?@@BA3þ6??hB[J־Te?T?Bݶ*??)B侼|b??އBg㾍/&?y?뒿7Bei^9J?`o?̍L!B_;>?Ya?@eL!B5f@ I?><@BW^/#UD??*7sBfU\ ?<@-AJB^=Rxa?Ѿ<@BhX=.:H?#*7sB>^Bo/?Q@eL!B.=q)HZb?]^{VTBR>1^k?뒿7B>9n#?H)BlN?m0? οhB?c=?տ-Bq?D-$K? ο0,`φB>,ke? @@\+B>Et@\?`@u)B>j9?`/@XcB0>^,??.@B?x2Գ>ٓb@cB+?b8-5>؛@|B c2?6 @;uB!?/3w@.oBT>C45)AJ@kB$ۢ>E 5!`@;hB/>ZbLP?XLiB/>L"j@XkB[?W_L瀠6#U@XkpB%?JJս7s@X'vB?hJV> um@X{B?,K>7C@XjBFt>oM9>j@X B@_g>(D?J?X B(">$[5?6?ف+B25Z>_WF? ?فBZ=CF3M4?:?#ńBr@4&+3?ٺ #ńBr!RHD?_فمB#W6? BIɾLN_>8*XcBOCž+`#>O^B_]T>W?^B{Bb? `,OcvD^PavBhJViXtB-KW?XxnBvKފXkBgG;D:!sXLiBə wwKXhBLn=`Ұk>^kBqw>uv]] ?^.mB>`ÂU @^kpB>`7C@^tB7>u]aI=hVH@^yBou>`t>`/@^B~B~,>"E]A>6?^VBT>С^>>0W?^ Bi;L,?vk¾^5BhZ%sL?CX Bl]>ÿ^nBQ]{l>h>CB78Fo >=im>J?B >lu= @zBA>Xsァ`@WtB8>Vl'y?yoBtm`:8EnB|]MG^kBcVف]fž-S^nB;Ҿ`y+^qBcno WtB^vjrkܓyoBQw]GkrBs&jxV.ȿ.wBZ}mf=zB'x(> |Bjѽ~pkuBCug}l`GptB6=e2y`VR>qB=]s~qG?pByBz;}>sk¾p1zB{ = xz>^ v>k~B$:>_y@=7?B{BH>M?<?Hx@jBz>xM?%7C@Hx@ynB?M?G/"um@Hx@tB{?ܟM?Yw=7s@Hx@'zBѮ?sM?g>7#U@Hx@B&>xM?v>j@Hx@ BJ/>M??P?Hx@^BYwܟM?|?Hx@ьBguM?Ѯ?+SHx@-BzyM?'>W?Hx@jBM?F/>iHx@{B|ݟM?YwWoHx@'vBҮsM?g.CQHx@kpB%zM?x܊Hx@kBG8M?3!sHx@LiB)=M?<?Hx@hBz=]?nk>ޤ@kB=佁_?HtGޤ@kB[\?׾)S￰ޤ@nBҾ>4_?\+ޤ@qB%[?ѽavDޤ@PavB"^?:=W?ޤ@B{B+ɾ_?{>Mޤ@Bx5"\?> ÿޤ@nB\T^?>fk¾ޤ@5B=[??8W?ޤ@ B^E>L^?>:?ޤ@VB|>\_?O>`/@ޤ@B~B?[? ^=jVH@ޤ@yB(>^?SԽ7C@ޤ@tB>[?ƹW @ޤ@kpBf>_?tCѾ?ޤ@.mBǒ=5n?ex&?c@nBatk?/ľ)8c@EnBKyVm?qԿc@BqBo?Vc@vB̀}p?r7>݊c@|B'Yl?T> cc@nBJ=Szm?>bx&?c@LB{>jm?->;?c@1}B(>2r?:<@c@'xB=>l?<#s<?c@.rB L/>kw?C˕?@usB @=E~?Y?`&@kuBq%x?@y 8@qBߒH\x?cIغ@EuBG콶}?v=}.`&@yBoȖw?v>Ǿ@B~Bh>I"{?l>P?@#}Bɩ}?pؽ 8`&@1tBoIlΪdD>[jB~BoIlΪdD>zj.{BoIlΪdD>ֲ''{B1+?9?g>m^@ @+BE>\?DC]@ @3BZ[pGak@ੰ?B*ZW~s uX[@{ @*BHD/>ܾi@`h?鐄B d}.?v>\@P @V8BX0+9o?&?BΚ=? 5???@ @΅B20?Lx?r?@;IBdxּsF@?@;IB>&H???/BV[Rpd?aH?XP @V8BT}V~= ?2it?sBlX>{aE?HGg`??BY?)?=nxW{ @*B,? :˾e`h?鐄Bp>׼8lcY @3B(.[gੰ?BeD?A۾fZ @+B0o9,<?/BX0?w><&?B͚I<s?&?B9209?&G@ @΅B*c>O?K5??;@ @΅B20?x?c;@;IBd]tּs@;IB >!}H?;ῠ?/B)5? C->k/?4T@(=#Av>N^f?MI>q_@>#A '?8*q/?4T@#AaTw2/?q_@[#A9iϚ_>9>@#A:m>ߘ?@>WN$I?~?q_@p?WNF#?mB>̓?@>WN:?lߘ?@[WN)=I?q_@WNF#Bѓ?@[WNA5>3?+s@?#OA,=$5?t3?q_@ ?#O&?XВ>.3?7@?#O>?5׾3?7@@#OQ,5{3?q_@`+#O&6В53?*s@@#O R|>&fq?=?WT6>*?8q_@?WTd> >)8@=?WT+? 18@ !WT6>>*8q_@WT R=|վ'fq? !WT&?VВ>.3???#OA,=$5?t3?= ?#O6>*?8=?WT@5>3??#OR|>&foٿ=?WT&6В53?@#O"R=|վ&foٿ !WTQ,5{3?=`+#O6>>*8=WT@?5׾3??@#OF#?lB>̓?#ވ?>WN$I??=p?WN:m>ߘ?:܀>WNF#Bғ?:܀[WN'=I?=WN:?lޘ?#ވ?[WN )5? C->i/? ?(=#Ay>N^f?NI>=>#A9iӚ_>#AaTw2/?v=[#A '?8*p/? ?#A6>#?(o?=q WTb$?)>ek?п`WT>(m?п@3?WT6#*o?=?WTb$)fk??@3?WT>>m??`WTP..?;74=JjP "?X,?yu5jP>ƽRBhu?jP>cd?=?jPT4(4w??jP0'>3&4w?5jPb$?)>ek?F?`WT>(m?F?@3?WT 6#*o?q_@?WTd$)fk?xߤ@@3?WTE>m?xߤ@`WT 6>#?o?q_@q WT"?X,?:5@5jP>ƽRBh5@?jP>cd?q_@?jPT4(4AV@?jP0'>.&4AV@5jP P..?174q_@ JjP)5?&C->t/?8:(=#Ah>`^f?H>)p[>#A '?8*p/?8:#AaTw2/?)p[[#A9iؚ_>u|#A:m>ݘ?`>WN-I?x?(p[p?WNF#?B>Γ?>WN:?lޘ?[WN&=I?)p[WNF#Bӓ?`[WN@5>3?7?#OC,=#5?t3?(p[ ?#O&?VВ>.3?j?#O>?5׾3?k@#OT,5{3?)p[`+#O&7В43?7@#O+ 1>8==?WT6>*?8(p[?WT6>>*8(p[WTd )8= !WT>'m?ޢ@3?WT 6#*o?(p[?WTb$)fk?D@3?WT>>m?D`WT6>#?(o?(p[q WTb$?)>ek?ޢ`WT>ƽQBhU?jP>cd?(p[?jPU4(4i?jP0'>3&4i5jPP..?;74)p[JjP "?X,?xU5jPVо?j/Rj@?@a2񀾩2s< L@a2 o5>< ?@a2`S ?ҽ:k?`%ycznM>[: `%QTj`F`% E!hMȾSj0, @a2BH>́xWEn@`F`%O>j/En@0, @a2 =?l(@ L@a2`S? ҽ@ `% >0` ?Cn@`F`G3>Iy}>Vj`F`;BSp?; `Q?^` ?@ `xcz?iM>> [@k?`%|?x.>*@ ?@a2=?3?4Fn@@?@a2BH́x?WSjP%@`% ロ0?` ?UjP%@`_>Q?` ?Dn@P%@`IyH3>>}>;k?`0? >` ?@k?`?Q?Fn@P%@`%>1V?>1!~\=\7? >e/>5q?䨾g/>@O>!?!׿?=I ?[`ܿC>3;!2!?`ؿ]Cm?2ؽTED 4?I~?:!~`?⛜>>ȄؽTE2*?<̾ 2!`ؿ]H[`ܿrD\DY!׿]Cm2>Q,>TEC3;!2!O>`ؿ3*<̾!2!?F>`ؿ]>H?>k?`ܿrD?FDY&?#??M7?%䨾8?/>Ͼ1V?@ ?~`囜>P,>TEC 4K~?>D ?~N<7q?>:?/>@?O>!#?I? Ck?`ܿ?(DY>>==m?1>֨>Pg?J?0NS?˙֨Ng?J?5? ??5[?ߞ?L֨}eJ?(DY\=K2>=iY>=K2=iX>S=0NSș֨>{eJ?5 ?[1Kߞ?L>1V?>;!| =^7?(>g/>T 2q?(䨾j/>)@O>$?!׿)?=)I ?[`ܿ)C>3;!2!?`ؿ)ZCm?=3ؽTE)Q 4??~?D!|)`?>>ؽTE2*?<̾ 2!`ؿ]H[`ܿrDDY%!׿]Cm2>P,>TEC3;!2!D>`ؿ3*<̾!2!?<>`ؿ)]>H?9k?`ܿ)rD?DY&?#?)?^7?(䨾5?/>)Ͼ1V?; ?|)`ϛ>P,>TE)P 4=~?>? ?~ <6q?>7?/>@?O>&#?I? >k?`ܿ?(DY>>==m?1>֨>Ng?J?0NS?˙֨Kg?J?)5? ??5[?ߞ?)L֨eJ?)&DYf=)K2>=iY>=)K2=iY>]=1NSǙ֨>}eJ?5 ?`1Kߞ?L>1V?>F!|=^7?(>j/>T 2q?(䨾l/>g@O>%?!׿򖾀g?q=gI ?[`ܿgC>3;!2!?`ؿgZCm?;3>ؽTEgQ 4?>~?O!|g`?>>ؽTE2*?<̾ 2!`ؿ]H[`ܿrDDY%!׿ZCm.3>P,>TEC3;!2!:>`ؿ3*<̾!2!?1>`ؿg]>H?4k?`ܿgrD?DY%?#?򖾀g?]7?(䨾2?/>gϾ1V?6 ?|g`>P,>TEgQ 4@~?>: ?|U <2q?*>5?/>@?O>$#?I? 9k?`ܿ?(DY>>=֨>Kg?J?0NS?ə֨Ig?J?g5? ??4[?ߞ?gL֨eJ?g&DYp=gK2>=iX>=gK2=iY>h=1NSǙ֨>eJ?4 ?f1Kߞ?L>1V?>P!|'e='^7?&>l/>'U 2q?)䨾o/>X@@O>%?!׿򖾀X@?=X@I ?[`ܿX@{>6;2!?#@ؿX@\Cm?`3fؽTEX@S 4??~?Y!|X@`?>>DؽTE'2*?K̾2!`ؿ'\H[`ܿ'rDDY%!׿򖾀'ZCmn3>P,>TE');2!0>`ؿ'H*9̾ 2!?'>@ؿX@N]>H?/k?`ܿX@rD?"DY&?#?򖾀X@?^7?(䨾0?/>X@Ͼ1V?1 ?|X@`>P,>TEX@Q 4@~?>5 ?|'b <2q?(>2?/>'@?O>&#?򖾀'I? 3k?`ܿ'?(DY>>='֨>Ig?J?'0NS?ə֨Fg?J?X@5? ??4[?ߞ?X@L֨eJ?X@(DY{=X@K2>=iY>=X@K2=iY>r='0NS˙֨>eJ?'4 ?k1Kߞ?'L>g?Xj8?}B"@@?ʾW˻e`@@g?X¾\j8?|=@@`>gXj8= &A=@@LW˻>Cg?` &A`¾g?Xj8x>B" &AgX>\j8?>B"@@b¾gXj8?>=@@W?gʾ˻Eg?`@@ ?? ?? &A6UE?L> ??@? &AW?a>˻>Dg?J? &A ??? ?@?@@6UE?L ?@@<>W?˻Fg?J?@@gT¾\j8z>= &A4? 4[?!@@Wdʾ˻>e` &Ag?W>\j8B" &AWb>˻eJ?@@=ʾW?˻>eJ? &A>1V?>e!| 6A= 6AD7?>r0> 6AM7q?䨾t0>A@O>?!׿A?{=AI ?[@ܿA>%;2!?8@ؿA\Cm?>3ؽ@TEAO 4?:~?m!|A`?ɛ>>ؽTE 6AK*?=̾2!/@ؿ 6AT]H[`ܿ 6ArDpDY!׿ 6AZCmK3>P,>TE 6A+;2!>@ؿ 6AH*?̾ 2!?>@ؿAy\>H?%k?`ܿArD?UDY?#?A?Z7?䨾+?0>AϾ1V?& ?|A`>P,>@TEAF 4O~?>+ ?| 6A,<4q?#>-?/> 6A@?O>"#? 6AI? )k?`ܿ 6A?(DX>x>= 6A=m?1>֨>Cg?J? 6A0NS?ə֨Ag?J?A5? ??4[?ߞ?ALEUE??y1Kߞ?AC[>-!?eJ?A$DJ=AK2>=iYo>=AK2=iY>= 6AeJ? 6A& ?u1Kߞ? 6AL>1V?>o!|Ao=AD7?>t0>AM7q?䨾v0>A@O>?!׿A?(=AI ?[@ܿAC>3;!2!?B@ؿA]Cm?2ؽ@TEAC 4?I~?x!|A`?䛜>>ؽ@TEA2*?<̾ 2!9@ؿA]H[@ܿArDDY!׿A]Cm2>P,>@TEA6;2!>@ؿA3*<̾!2!?>@ؿA\>H? k?@ܿArD?bDY?#?A?D7?䨾(?0>AϾ1V?! ?|A`蛜>P,>@TEAC 4K~?>& ?|AH<7q?>*?0>A@?O>#?AI? $k?`ܿA?D_>n>=A6m?w1>֨>Ag?J?A8-?-!??g?J?A0? ??4[?ߞ?ALEUE??~1Kߞ?A{Cm[>-!?eJ?A˸DP=AK2>=iPe>=AK2=iP>=AG--!eJ?A! ?z1Kߞ?AL>1V?>y!|A=AD7?>w0>AM7q?䨾y0>A@O>?!׿A?=AI ?[@ܿAC>3;!2!?L@ؿA]Cm?2 ؽ@TEAD 4?I~?!|A`?䛜>>ؽ@TEA2*?<̾ 2!D@ؿA]H[@ܿArDDY!׿A]Cm2>P,>@TEAC3;!2!>@ؿA3*<̾!2!?>@ؿA]>H?k?@ܿArD?DY?#?A?C7?䨾&?0>AϾ1V? ?|A`囜>nP,>@TEAC 4K~?>  ?|AM<7q?>(?0>A@?O>#?AI? k?@ܿA?!DV>d>=AC? [>-!>g?J?A=NS?꾻֨֨eJ?ADT=AK2>AiI[>=AK2:ia>=A;--!eJ?A- ?1Kߞ?AxL>AUE?4[?ߞ?A>1V?>!|B=BC7?>y0>BM7q?䨾{0>B@O>?!׿B?=BI ?[@ܿBC>3;!2!?W@ؿB]Cm?24ؽ@TEBD 4?I~?!|B`?⛜>>ؽ@TEB2*?<̾ 2!N@ؿB]H[@ܿBrD~DY!׿B]Cm2>kP,>@TEBC3;!2!>@ؿB3*<̾!2!?>@ؿB]>H?k?@ܿBrD?DY?#?B?C7?䨾#?0>BϾ1V? ?|B`囜>YP,>@TEBC 4K~?> ?|BN<7q?>%?0>B@?O>#?BI? k?@ܿB?(DY>Y>=B=m?1>֨>֨eJ?B(DY=BK2>=iYP>=BK2=iY>=B1NSǙ֨>eJ?B5 ?1K ߞ?BL>1V?>!|Bx=B\7? >|0>B5q?䨾~0>5B@O>!?!׿5B?2=5BI ?[@ܿ5BC>3;!2!?a@ؿ5B]Cm?2\ؽ@TE5BD 4?I~?!|5B`?㛜>>:ؽ@TEB2*?<̾ 2!X@ؿB]H[@ܿBrD\DY!׿B]Cm2>VP,>@TEBC3;!2!>@ؿB3*<̾!2!?>@ؿ5B]>H?k?@ܿ5BrD?DDY&?#?5B?K7?%䨾!?0>5BϾ1V? ?|5B`盜>EP,>@TE5BC 4K~?> ?|Be<7q?>#?0>B@?O> #?BI? k?@ܿB?(DY>O>=B֨>9g?J?B0NS?ə֨7g?J?5B5? ??4[? ߞ?5BL֨eJ?5B&DY=5BK2>=iXF>=5BK2=iY>=B1NSǙ֨>eJ?B5 ?1K ߞ?BL>1V?>!|9B&=9Bf7?>~0>9BK0q?7䨾0>QB@O>$?"׿QB?=QBI ?[@ܿQBC>3;!2!?k@ؿQBZCm?;3ؽ@TEQBE 4?M~?!zQB`?>>bؽ@TE9B2*?<̾ 2!b@ؿ9B]H[@ܿ9BrDDY%!׿9B]Cm2>BP,>@TE9BC3;!2!>@ؿ9B3*<̾!2!?ߞ>@ؿQB]>H? k?@ܿQBrD?DY&?#?QB?^7?(䨾?0>QBϾ1V?  ?zQB`Л>0P,>@TEQBP 4>~?> ?|9B <6q?> ?0>9B@?O>&#?9BI? k?@ܿ9B?(DY>E>=9B֨>7g?J?9B0NS?ə֨4g?J?QB5? ??4[? ߞ?QBL֨eJ?QB(DY=QBK2>=iY<>=QBK2=iY>=9B0NS˙֨>eJ?9B4 ?1K ߞ?9BL>=?@ABCB@DEFEGHIHJKLMNOPQRQ;Q<E=@QOQMEKHSTSUVWVXVYSYZY[\]^_^\`abacdedfghijklmnmWmXaY\mkmiagdopqrsrtqtpsuvwxwywzvzpzo{{|}~}{zyyxx        !"##$$%%&&&&''((() )!)")'('"*#*$+%+&+'*,-./0/123456789:;<=>?@ABACDEFGHGIJIKLMNOPQR,S.T0U1U3V5V7W9X;Y=Z?[A[D\F]H^H_I_L`NaPbRbScTdUeVfWfXgYgZg[g\h]h^i_i`iajbjckdkelflglhmimjmklnopqprpsptpupvpwpxyzy{y|y}y~pn~~~~~~~~~~~~~~~~~~~~~}       ! " # $ $ % &''(&)&*&+&,&-&.&/&0&1&2&3&4&5&6&7&8&9&:&;&<%<$<#;":!9 876543210/.-,+*)(=>=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl>l=m=n@oBpDqFrHsJtLuNvPwRxTyVzX{Z|\}^~`bdfhjlmmnopqrstuvwxyz{|}~      !"#$%&' ( )*+,,-./012345678 9!:";#<$=%>&?'@(A)B*C+D,D-E-F.G/H0I1J2K3L4M5N6O7P8Q9R:S;T<U=V>W?X@YAZB[C\D\E]E^F_G`HaIbJcKdLeMfNgOhPiQjRkSlTmUnVoWpXqYrZs[t\t]u^u_u`uaubucudueufuguhuiujukulumunuoupuqurustvwvxyz{|}~wvvy{}           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMMNO!P#Q%R'S)T+U-V/W1X3Y5Z7[9\;]=^?_A`CaEbGcIdKeMeNfNgOhPiQjRkSlTmUnVoWpXqYrZs[t\u]v^w_x`yazb{c|d}e}f}~}|{zyxwvutsrqponmlkjihgf~~       ! " # $ % %&'()*+,-./012345678 9!:";#<$=%=&>&?'@(A)B*C+D,E-F.G/H0I1J2K3L4M5N6O7P8Q9R:S;T<U=U>V?V@VAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTUWXWYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~XWWZ\^`bdfhjlnprtvxz|~      !"#$%&'()*+,-../01234 5 6789:;<=>? @"A$B&C(D*E,F.F/G/H0I1J2K3L4M5N6O7P8Q9R:S;T<U=V>W?X@YAZB[C\D]E^F^G^_^`]a\b[cZdYeXfWgVhUiTjSkRlQmPnOoNpMqLrKsJtIuHvGv_w_x`yazb{c|d}e~fghijklmnopqrstuvwwxy~}|{zy      ! " # $ % &'()*+,-./012345667 7!7"7#7$7%7&7'7(7)7*7+7,7-7.7/7071727374756898:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdceae_e]e[eYeWeUeSeQeOeMeKeIeGeEeCeAe?e=e;e8f9fgedhihjklmnopqrstuvwxyz{|}~ihhkmoqsuwy{}      !"#$%&''() * + , - ./0123456789:;<=>?@ A!B"C#D$E%F&G'G(H(I)IJHJKJ*)*+KLHLML,+,-MNHNON.-./OPHPQP0/01QRHRSR2123STHTUT4345UVHVWV6567WXHXYX8789YZHZ[Z:9:;[\H\]\<;<=]^H^_^>=>?_`H`a`@?@AabHbcbBABCcdHdedDCDEefHgGgFfEhihjklmlnonpmpqrsrtuvwvxyz{|}|~                                            j! i! " # $ # % & ' ( ) * ) + , + - + . / /  /  /  +  +  *  (  &  #  #  !  0  1  2  3  4  5  6  7  8  9  :  ; < j< l< = < > ; ? : @ 9 A 8 B 7 C 6 D 5 E 4 F 3 G 2 H 1 0 H I G J F K E L D M C N B O A P @ Q ? R > S = T = U lU oU V T W T X T Y S Z R [ Q [ \ ] \ ^ \ _ \ ` Q a P b O c N d M e L f K g J h I _ ` _ a i a j b k c l d m e n f o g p h p q p r p s o t n u m v l w k x j y i z { z | z } z ~ y  x w v u t s r                      | z x w u r p o V        V  W  X            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ;    X  Y  <  =  =  > > " ? " @ $ @ & @ A @ B @ C @ D ? D E D F G H G I J K J L M N N N N L K I I  H ~ H } F O E P ? P > P = P Q P R O | } | R | { S { T { U R U Q V Q W = X < X Y X Z Y [ Y ] Y Z X V W T ^ S _ S i {    [ [ \ ] ^ _ ` _ a _  _  ]  [   a  a  b  c d e f g g  g  g : h 8 h 6 h 4 i j i k i d i e h f g l d l k m k n j o j p 4 p 2 p 0 q . q , r * r ( r & r A r s q t q u p u v u w x y z { | } ~  ` b l m n o p v d l d c b a b a ` ` ^ ~ ~ | z t t s A B B C C D G J M t z t x u \ ^                                                                                       ! " ! # # $ " %  % & $ &  ' ( ' ) * + , + - ) - ( . ' . * . , - / 0 / 1 2 1 3 0 3 4 2 5 / 5 6 4 6 0 / 7 8 7 u9 u: u; u< u= 8 > 7 ? 9 @ : A ; A < B < C = D > E ? F @ G A G B H B I C J D K E L F M G M H N H O P Q R S T U V W M W N X N Y O Z Q [ S \ U ] W ] X ^ X _ Y 7Z ` [ a \ b ] b ^ 7_ b 7a ` c M c V d T e R f P g H h M h c i c j d k e l f m g n h n i k j n k m l o L o M p H q I r J s K t L t o u o v p w q x r y s z t z u z v y v x w { | { V} V~ V V V | { } ~  R T R T                                                                       !  !  "  " # " !  # $  %  %  %  $  & ' & ( ) * + , + - + . + / ) / & 0 ' 0 1 0 . / . - 1 2 ' 3 ( 3 * 3 , 2 - 4 ' 4 5 6 7 + 8 + 9 + : + ; 6 ; 4 < ' < = < : ; : 9 = > ' ? 5 ? 7 ? 8 > 9 @ ' @ A B C + D + E + F + G B G @ H ' H I H F G F E I J ' K A K C K D J E L L L M N O N L P M P M Q R S T U V U V W X W P W Y U Z T [ \ [ ] [ ^ Z ^ Y ^ P ] _ \ ` X ` V T U S a Q a P a Y U T b R M P W P Y P L W c V T c b c T U V U T L M L b c W V Y U P d P N O e O T N d N e O P X P _ \ ` \ T X ` _ \ f g f h i j k l k m k n k o i o f p g p q p n o n m q r g s h s j s l r m t g t u v w k x k y k z k { v { t | g | } | z { z y } ~ g  u  w  x ~ y g k k k k g g                                                                    !     ! " #  #  #  "  $ % $ & ' ( ) * ) + ) , ) - ' - $ . % . / . , - , + / 0 % 1 & 1 ( 1 * 0 + 2 % 2 3 4 5 ) 6 ) 7 ) 8 ) 9 4 9 2 : % : ; : 8 9 8 7 ; < % = 3 = 5 = 6 < 7 > % > ? @ A ) B ) C ) D ) E @ E > F % F G F D E D C G H % I ? I A I B H C openuniverse-1.0beta3.1.orig/3dmodels/epimetheus.bmf0000644000175000017500000007644707045144437022423 0ustar paulliupaulliu ASTEROID.JPG>>>dz???dzdzpI?$ ?wNH>xrdA@Bù?a?f>mx}ʢA8?dO8 ?!>Lm>T#v%AJ? ?>zLUs}B"AL !?B?ϖ>1 ʽto6Bf(?A!?;?G=b=Q~Bؽ@M$??~?? %'YPBv@f5D*?6{ ?.[?EdȫeB;,Aƒ *?1>sZ^?軾5XBt1<-? ?Ab?4\ԾqB* As8.?8>VY?Jؾe`BZz1?> ?&wc? |}ž*{B'A672??kb?غ`㔾uBFD@ [d8?f ?`s?.872SBKBD3AAHP?> Y?ljٷ>icLBUvAq`W??ŅY?Z-z>l?B`@oAv2^?7 ?:?|5.?*Bt*A@B_]?? &C?ȽQ#?,B@G?Bc?z?d?J.=7Z?B@.B(g?}?B>F<s?#A#@8Bjl?`?,=+3>d9{?'A!@0=B+l?>L#>q|{?ҸA@z@BYq?>RV=L~?7߄A 뽪ABGv?ߋ ?[.u> t?A$@5BZu?\>;3w/=+w?!AXf>B?e ?fJ>>mLy4A!AE n??m佸߾=G}dAk2AVGz"??e>nd&HBLetA#A85??m?AxBWAl;??C~?sav=:B3A&@?Z,?x?_b>)pBԹ`Ahm*D?Q?j?!DRZ3>MB|b@b@bM?.?b?񽎁>%]nBjAPALI?ۯ?nS?qm?PoB:M@>AJM?/?6S?y W?jBLkA2AjZ?_?3?F!=B 6?20=B/=mAv B\o? ?X>ss?-ڌA{A8BE?zM? vߔ@ i@C&?C?]J?+#b^BZA/\-?_c?-zh?p־uBŅAmJ´+1?63?mg?S<9ھ~B/A28??4|?>%3B7ئAt#F?;?\Vp?0==L>qBtAޛ@{T??S?E)i ?XBlaAA_?v$???=M?$B(]A B{hh?z?4>猋>mUs?iAIAB4B?g?=.*aKP%BAjN1!5?!?Wn?Kv>kB(A@4R@?q?w?7>"4> B͚A#Ab?O?K>%e>db?BA&B8"??>>b`'FB_[|BdA4J=?|"?c?X>]3>9RzB6JAjAQ?+ ?R?$X>9?_BAA+X?J?h?R>E?EBAB8??^{1y=f{얚A'A,@1?f?ơq=|sAeAfI¹?ͬ!?=< C,>A|"BhALu'?"?IB?(>@??aBBx)Mv-?%?20^?>kOoBU BV\1?V,?LymzqBe B@}I?,?m?ÕC?$T>i^BB;AQ?]!*?@l'?R?k>VB & B³AU?(?F{?] ?yz)?uIBBDFAX?2a$?z?>s>?@BANB\?9 !?K>>P\?.BbAB=wc??=c>N8]?aBVA B!Bң ??`fc>|AL'A(\>$> ?W'?;>x`>]]@1Bt BpC $?q)?b>3?M,GB=9B1<9)?)?/?B?kľL\BBQ+9?4??^_G?=XB`-BvB7R?3?>[O?> ;B,D"BjA+[?T+?M;>6j?% I? &Br?BzB-0m??n଼((>wh?ŞAꀚA)BU??0=Rt>5|z@@!AQD>ˎ?&,?i]>ErMBV B#mBq(?/?>SFS?4n[LB)B2?5??[?)ӽiOB3BD?5;?=?K?7:>=B2B @]N?99??AO?>yy5B).B-kAW?0?St>64?=?0Bz BAi?'?%T=Y+?A;Z?A1A?Bq?+?5ԽI>r?aA zA-BQ?0?=(3?ğ4SB Bd9"?y1? h>)P?Fj-B)B).?u>?">/1l?7s2*Bz_?B9?!f@?u>lVb?=5B-DB#\d?f.?t= ?S?AAu B?N ?=(>,z`?c'@MA‡ ?* ?Y={N-0AA:=ڣ?ͭ-?nZa=&LxAլA\~?‡ ?7?A>Sh?lBު1B moE?EI?>h?F>hBLBX3@pN?@?@>fV?>"B?>T?r>kB3BA\?&;?)>87?s^/?B#B]A3?:?+c3=+??= Ax.0B}0j?"??AD>R^?1Ae?뷫jA]EBjL0?lL?X>}m?߉$BUB豉"R6?]OL?_ >o?P+BXVB=5=?uM?o>s?V= BmTBu]O?G?i>yBh?> BFBFMAvl?+/?=-?Z?łA@AoPBr?*?ͣ>]c?CAACBs?/!?Z A>2i?/A\AIX&BGy?X?-τ>cs?@@5A.B**?{4Q?G>*t?idAWB88D?=-T?H&>)y?E>AWB?vP?uV?x=u?)>AHQB>A|Y?N?o=R[??-ACB>/Af?D?䀼>?Ƿ*?A&B,A f?W;?I=?O?fAaBA}?J?~>;f2 >}@oAa:=@?8?oД>j_)ABI5‰?H?wG=Qb?ŰAhHB29 ?P?>[s?kb5AUB3?XT?>g}?ȼA \BsDJo?X:?ﴊ=?*K?`GABmB*e ?1?sq>.qAbA22?3? >>ozZABj7?A?K"rA@?cA6BC%PZ*?SY?KZ~?7UA[Bڅ I>?E_?T߼pA~? =fɥA3v[Bt]cab?[?0;be?%Q>*OTAHBvsAf?lSU?E:Mn?HGAbTBT1aU?)h?\z?O>,AQBO@Rt? N?6;<3@?)?_Ѻ@}$)B.A ?8C??C AZ*B*, ?QN?G|GQ?9)@l=Bl?.[?"Br? C@LBG?8c?E+z?60A&SB|@5?n?rP?t2A|XBF: N?_ ?G?_Ѻ@}$)B.At=vG?c7?H?BA퀽X:?_ ?G?`GABmB*y?"?= X>wb?~y@5AiB? ?K> #>ylvAzp'AA3|?j?c|?k RU@ PBqjt?g?<0v?5̌>?C\LBIA u?l]?+&=[?ѯ?S@ABȴA+<<[6? bG)>\?-٥qAB_*?az?U?CAACB퀽X:?az?U?`GABmBIA?xB?޽&?Xl@h]!B>N?F LN?0lR(4B.&>Zb?]r?AKBhv>'|?wͽ ~?̗UĥVB廼v?epOz?'>տxTB{`@ z?v?P=k|?ȃ">տxTB{`@ z?v?q2=z?y8V>տxTB{`@퀽X:?} ?!JS?`GABmBϓ{??1o9>u?j%@}N@+C2Bl~?.?]ӛ>y?o A{+Bh>~p?ֽ{?OSBw=W9g?BŽ^)g?g>?C\LBIAdh=_?%M,JY?P?D||@Bp{A'/l]?}BŽ^)g?g>S@ABȴA'/l]?껽r>?)?S@ABȴA<LV?egy9?+?1B A: N?껽r>?)?_Ѻ@}$)B.A: N?0V$? A?_Ѻ@}$)B.A}T)?! > Pd?ZYjA1B_*?%>*v\?CAACB~?}T)?d /v>l?ZYjA1B>?|A?Zn?Gp}}[BgQ=ye?YŮh?>< 3FB65AW9g?Nt?A[>?C\LBIAW9g?W rl?P^>?C\LBIA'/l]?)uG?)?S@ABȴAZ;#?]j>p?K^1`Ab%Bļ"?8Q>@j?~y@5AiB׼X?sIR>rh?@@5A.Bļ"?sIR>rh?~y@5AiB>%?+45?$M?>1a0T5B/˜3>G?C?* )B S4>>?!&s'?6_=]| Bo;>Q?ه(gf?(Ͼi7BV%Sz>Z?a7s?P}6_DBр>Ab?D"|?;+.JBJL>Kc?3@Du?IP>>#GB"C@ʸ.?V7>s?o A{+B׼X?V7>s?@@5A.Be>?>i={]*A`CN>7?s=R >{ANbD=tT?֊E\@??F{7|.BNA2>+?wʽ>O;oZ>`ʞAb9A=-?`>AY?XQ](_A Bb>E?g*M]?s*Bݷ>>N?{f?],z=6BZ">$T?vP?Y?u!X[4Bz@A=6?xB ?UK?AA *=!??VU>_uw?.ZJMXAB>RG?%ϕe?k@6BHm>O?^y?9\ XCB%la>0Q?d`l?{˟>p>?BrA@`=ȎG?/>(?:?BAkI>'?{0vG>hA 8޺>4?=c>CtW|BlD!,P>.C=?pF?^Ÿ­BT+;>ӬD?YgB??FF‰,&BIA03=N"?:W>z]?ApB<?K, <v?HAJ BVM,l?o A{+B>|?P;%=E/i@A?G?>a-'?睉B>>#fWAP&Zֆ>@XA?L-b?ؾż95BC7q>@?ݾW?C>+71B?sbZ>U>?B 6?ˮ ??4-&BX@>GN=?䛾@K?[?BKZ>(tq^nAC½|>5,?È7>_`!GA4 ‚+>0/?4?ٌBB{>2?Ѿ4?v@3B>1?,B?{cNQB('>:?RqQ?{d4G@)B]D 4>u8?͐߾? >?uC#ˆ BtA,=+"?@Ծ’>0J?AB];?~?<>}z/@LFƒ>3?=: A/?1:=\MB`w>7?g'q3?>`Rў B;D>pa>.?K1>K ?DVjB n@B>2?U>/? 7gBKfA|K> (?A>E?UAYA>%?>%A>=h @4A b/»>!?枾2>Yl]B7k[Ak>u&?b ?-6L¼QAǤ>A(?s"?;h[Aŏ>9/?̚<(?5c¢7B6Sw>it+?Qp+>>)hq@B)>ZO>c,?K>^:?NKh AFA'>޼ ?>7H?+VAPoAOٌ=q?]]K>ro?ϐ,9ABl>*T"?7O_>g`[ržAn0><%?MPM ?cL8t‡A_>%?Obd>=I/u…AH#=]?F>b?3?iAB O> ?@);i{N@D%v>? >@h!^3A _r>?Yw<>Qo%A-@>5C?7mmR>u]At^t>??w(X3>d>E}l1A ?`L>ƨ?)r>W'.? U3A;^A;<?khn<By?KG‡@dBn>?WK[lt@LFNy> ?yI= rs}NA5&>5r?0Ӿ}>P`4J͂Apg>/?e2J>/M=JA`nY>m?9q>[:#?kUA80AD/>ot?U$!>94?QDw"AA>e?`,>W??s8AA%=I?>a? A BӒ>+a ?f7=+Dm Fģ A&x>R ?> h=:TM^žA7ŠW>?:jU>I&+zsuCA ½>>?jZ>~_@P=<?uw)>#O{?Գt@uB?>]>b>j7{0CJK)>3?-~&Lt{S>}B{>>N ܽ1n?6~>^>.6](QkT0\_*q>'?i3Tª@%J u>!?;CZ>A>e@?d> ?K=Im>e?C]*?A@8M>"v ?6>.?Ad&@koA;>>?FW6Q>=+?V$?.QAL>o?n>v8?j,`@(A e=?>$޾\>2;T?Ռ t@_Bo=3>M MRi3>v?$`nB47=>Fhu&={~?0kGB>%>7½h_8Y@ܾx'֨>>q.:o<3I;&s Fһ9 Q>OS?~UF3>M4@CaE>>8p'>8[bOGȓHL>>b6sR>+?g%xA)>>S~@< Y~痿P!Gޥ>N>߽i.;~|Co>> M<$X߇)b>)>Vy]><8ZF"" v>Ab>`nY>ZG>K]T>7LB=0?xA,A#=v>C)3>4gJ?#!B ّBL=,>oiG=9Il?SW k5B=>۽sSj= ?gjK"B<>>Eqhd>$v?oCտ!B?2>ƺ>.˼1^u5?C=dE>>tAu`‡>01>)^=O}¸6bY ڈ>@>B}2v׽Ͻp?85&1^>B><> )?¤*h.AB> >D(>>4?lf gAV,>>a'k, =4A?*MKy > V~@?2b6Ÿ A>=> .QzL?tƒmBx>>5MwEPmJg·Б>>xLH"6ʷJo>>YRqBt= ˜Vd>H>%Y\>@5{# AجL>>L/E8?oD{VzA:>@>J=zO?ya<n AK_=8>mKULؙu? `v8B2j=L(>a~?a!B;>;þ=j?BL 5)Bh>^$>>vX+»R> >ݑ-'t~{>>!M`z=H:f<$J>>%/0Ѿ5s$?s{XZAM3>j>S=.W?W¤9A0>>^_4E[?x.AdA>>[3߾q@?Šo!B =T>7ľxnؾR?& L B%>m>N=wvfH“b>>9KSLudPAs >k>><=&mdbri0(C³E>>db>`B&/$>9>س8 *52$C ֥>>|*I2>$>]hP-3] $o~Ox*y>>+e8-(/V}2X>{>t JU)>V'l,9A8=;>{厾$JV?0sיB=L>e̽ǜǾZj?q;B?@>&<>y.a}OT>>ny$xyCD6SE>_>?ξzLJ7B‡:>{> uv!@Œ,>>>6O#Xz.IfBT%Ɨ>>ywVk](%e¡zSUiAr>>CjSI`=mj6 @0>5>*۾u+1?ZCKAX >h^>eT q`?wޖA=O>O-!g?Fۦ_) B}=Eg>;vz?Z6Dg$BO>?>Mľ1;/ӫ]9 ߪ>>٬۾42o-*¥”^Y>Ő>龷VJ>iV sA x;>ݯ>JMrS>Ҡ7;tA>@w>3=oiI\qC&/=}J>u>KH 3|Uնҏ1>*F>&;gvKg.">>%ž%N-c"¿n>cv><žkuJ9=Jz/W/Bsf>tW>Udþe`>O:p$@=>Ξxz@i?5G@^:BY;;>psм8u?t{",B ?#⾜]= d?j%@}N@+C2B6>&>wn زU\svMk>>>s$A#Ӎ d$b>ˑ>۽.F9 %d ږ@>g>ֶa%>E)Ž4A`,>^r>`^KZ-> X7%A >Æ>=_?'ŸAtd=g>Id @sH?}p &AEyU=z>_k?3{ܾlc?/xoжB9?>A%R<$||V_NP(~>>g8hUl º,Ld[L!>6>MHIbv`rDf>>=U ED*x™=#>Rl{>c OM]06q>X>|v3_׾^1’ >]V>oY1}msV<^Ž37¼{ӈ^>Q>q7 f>v@r5w@]=4>yr?Xml?$PcBM?=p>KW< x?|* BtE>$L|>u={"?*S± d>#%>3pЁr=4zAš@>u4>jRH^N8>d9tA=[h>z44 !?ƿ"ACH`e?2(,Po$B >~>`T'-3? ] :) >X>(=>&B7u¿>6Y>M>j /3%sک&>'>gW/p ܋/†,Y>|>be^vq  sEm2=s>oaZ>$[U?0Ep*=Bi<:N>p&l(H1s?H B]<> igOm?GB+~͛כFOc?`ӈBn>L>r/7<[u2b@s>0>)/\.>I\>ω=/9\Li>x=x r.:={J0i;1>==p9A>\%:N@E=ݳH>E;GC?I>0^fAk[u>C*=4d>˽B-c:rT/ ¦ ?־t!=g?j%@}N@+C2BZ=߃=FC/Zy/=YF@`==.ei>QdMd(BAՇ< >Bf!>iFA|n>$Ծ熾^?`[ B"r>i?H>jr +B?eB>@뛾վ![,h?7Y9Nv?Ý>ϤY#2@tSg=8#„?;с>1v/e/ p— ¤>->&#f ;0.r_o])¼nE>c=Lwrp%x(jNLf9/=5=杒~RQtþMi?=6StB@A:Q>fwh?x0?#!B?/*>/:R>̃zz@]!OŠ:?r>a&?^/5?sX= ^oRH@B $w߽d== }$ փ!@([.h@Ђ#~%=GAtLe>?_QUTOAA\S9>[[T ?L}?l:%AݹYb>L{"UD?@&žA}?Q>;Ñg?x0?#!B,t}?r>;Ñg?H>jr +Ba?>;Ñg?`[ Bv#?<[>Vƾ0dSx@K¦ ?]-+> Ht<@m)1?r= >uH큾m@]RA d?d==97ygփ!@([.h@G?o>QUϽZ }u@4l+uTJ?o>|ǽ=frbANO ?b>O )#0xAN@ ?ݑa> ޚTF @<(  d?d===\O|$,>փ!@([.h@Va? n>6=ww|>?KA T=FWAu?~%=<\O|#,>?_QUTOAAp䏽L,>(hP>>A,DhArn?L,>(l>>A,DhAu?~%=(l>?_QUTOAArn?L,>'A,DhA1r?NuK>p=2zo5?'6..;?@&žA%{?S9>6..;?L}?l:%A1z?Yb>ս=o_?@&žA3s?V>E>lܶ[?<Az Œ BK}?>ս=o_?=6StB,t}?r>o?H>jr +B x?>~}@D9s?Y@_n6BP|?[u>o?p? 3B7 ? Z>ʾ6G5^A4 ?2o>%%E8 !A%1 ?O>CTe޾r:A$  $?=C=qIMACq)Q?;q >>t8T=AcQ€$@ d?d==2,.>ضyCփ!@([.h@ d?d==1 >M}<փ!@([.h@ݳm?("d>[>EJ?tANAT(*A1z?Yb>>D$W?@&žA1z?Yb> #>. HT?@&žAq?|&>k,b=, h=Ʌξ2i?=6StB}?Q>k5=AѴVo?x0?#!BK}?>j5=AѴVo?=6StB? >qBz-> {0! A "T ?>^X|_PBRA&VH’?+-@>f> d ǾA3/ªX(?W4>|&>^ž'A6‘]9?rU>;l>Lk ~$TAiG'D?>G>shL&AOI?U`?k-:>[>_;>*AFœArn?L,>=g|hj>>A,DhAd?`X> lf>xjG?ÝAʯ7Arn?L,>>]-T ?>A,DhArn?L,>f>`6 ?>A,DhArn?L,>i5=.W;?>A,DhA}?Q>lBr?x0?#!BCPv?}Z>r۽QPm?j AgU0B,t}?r>lBr?H>jr +B,t}?r>Zڐmr?H>jr +Bk/?>R /p8|A'£9L?>VԽQ_t%TAA*j1?(>LL>jͺn2εAE=¾v>ZK?+>T>ka:AIfa@3f?^5>|>T?A'V4A}?Q>Q!=c٥d?x0?#!Bw?>Bg>OUT_Abh=‚?oߕ>:e">Z#LX BAlb'% ?ru>t&D>slCMA.!H/y;?~"C>}>G_e!A6°QS?V>,?NaG>&A0:Y4^AfaY?d>@?\9EJ>AD8PuA[]?o>>D6?}Abk0ZA k?'>j>qER?ӢA1BJ?>?6= ~Hu&xAW iM{w?>~> .\LAs= (?lnx>1w>.MZ9 Anxb2?|c>>zpY^ONA\+2Ea!F?`>5?mHgw<Bϓ1xL;@de?>F>,H?A BSs?2D>S?bx?NA|i?Bu?'>K>e7>O IA:42~+!?d>ź> EsN[KA|:(8?cq>x?M,- B'l>?m>1?nMP0 Be'JB O?Mb>9?9-=3EBA NMA!T?C>_6?,\>NBWY|A`\?z>>>?#AN|A?}>+g>i-Qka=ApH‹."?4>;.?2YB&ª&?e>J|6?,< B?B4<*4?>O)?,5BX0l G?>B?A$\=#BU@l?u>U>܁V?rA؃k٠1Bp?>{=%s?7ȏAn6=BP|?[u>5 KǽuRs?p? 3BB.?`>q]3?݂B&]mA?%%_U*B% W?y>-?P%'?sBzyAZ_?>>cA?DB3AP|?[u>$|t=)Tp?p? 3B?>ſ;> xAW P\ ?>#?JJB%-,M?>S? 6>.BPoRNAՑZ?O>%)?8ھ.?BcAFf?>>fN?A} BG?S>>jn^`I? {CBru5fE?>S?,R >@BDh@%R?(q>AzR?#¾>S3BrdAE`?[>8?:۾Z-1?7Bb_Q=(Bi?s>~>1,ݾ[?E=u=ͯ~R AsSP )?>~P? 8ZE?T?/TEBІ ͽq@?>]?(v XB]L?>[?/]ξ~>sCB[ɩ }XA;F?>C)Z?]ξR%>VBK@ތX?>L?ٱ%>,Be;AWS?>Q[W?ۭ3>8BdABk?_>Kj>Mh?IAOVS;B#?>/ G?޾>Kx%?BB|0#;?~w>UU?,Z8QBإjiH?]>NV?!>PB2JA)O?"P>]?6%P> AEB>u]Alg?T>>uL?%w|"UBtxq$:k9?h>wm\?Dl]BSb!@Z?vi>+P?3y?Kh1B%nGQByc? V>y>Mw,wL B%NJ?>ԞU?>BVBp9KA!T?0>^?\u7>>BAa?C>R?)8EH?8 BBc'B#?>8'?uq7?FB.6ό3?_ >V?]VhfB{(bl@?%->i?>kϾY=uBaܿE?+>"ca?C>sBu'@iLJ?c>gQ?9K?:`B š IA: N?_ ?G?_Ѻ@}$)B.A퀽X:?_ ?G?`GABmB_*?az?U?CAACB퀽X:?az?U?`GABmB z?v?P=k|?ȃ">տxTB{`@ z?v?q2=z?y8V>տxTB{`@퀽X:?} ?!JS?`GABmBW9g?BŽ^)g?g>?C\LBIA'/l]?}BŽ^)g?g>S@ABȴA'/l]?껽r>?)?S@ABȴA: N?껽r>?)?_Ѻ@}$)B.A: N?0V$? A?_Ѻ@}$)B.A_*?%>*v\?CAACB~?}T)?d /v>l?ZYjA1BW9g?Nt?A[>?C\LBIAW9g?W rl?P^>?C\LBIA'/l]?)uG?)?S@ABȴAļ"?8Q>@j?~y@5AiB׼X?sIR>rh?@@5A.Bļ"?sIR>rh?~y@5AiBʸ.?V7>s?o A{+B׼X?V7>s?@@5A.Bʸ.?$e >M,l?o A{+Bʸ.?0rd^n?o A{+B ?Un߾t"Hf?j%@}N@+C2Bʸ.?Un߾t"Hf?o A{+B ?#⾜]= d?j%@}N@+C2B ?־t!=g?j%@}N@+C2B}?Q>;Ñg?x0?#!B,t}?r>;Ñg?H>jr +Ba?>;Ñg?`[ B d?d==97ygփ!@([.h@ d?d===\O|$,>փ!@([.h@u?~%=<\O|#,>?_QUTOAArn?L,>(l>>A,DhAu?~%=(l>?_QUTOAArn?L,>'A,DhA%{?S9>'6..;?@&žA%{?S9>6..;?L}?l:%A1z?Yb>ս=o_?@&žAK}?>ս=o_?=6StB,t}?r>o?H>jr +BP|?[u>o?p? 3B d?d==2,.>ضyCփ!@([.h@ d?d==1 >M}<փ!@([.h@1z?Yb>>D$W?@&žA1z?Yb> #>. HT?@&žAK}?>h=Ʌξ2i?=6StB}?Q>k5=AѴVo?x0?#!BK}?>j5=AѴVo?=6StBrn?L,>=g|hj>>A,DhArn?L,>>]-T ?>A,DhArn?L,>f>`6 ?>A,DhArn?L,>i5=.W;?>A,DhA}?Q>lBr?x0?#!B,t}?r>lBr?H>jr +B,t}?r>Zڐmr?H>jr +B}?Q>Q!=c٥d?x0?#!BP|?[u>5 KǽuRs?p? 3BP|?[u>$|t=)Tp?p? 3B       ! ! ""###$$%&&'%'&(())* ++, - ,- -! !. ." #/$/%$0'00((112233 +,-4!4.!"5#.5"5/#%0'16622)37 7+ +8,,9-89,-944:.9:4.:55;/:;5/<%;</%<0<=00=((61=6(>>>??3?@3@737A++A8AB88B9BC99D:CD9DE::E;EF;;G<FG;GH<<I=HI<IJ==J6JK6K26*L@M77NAMN7NOAAOBOCBCPDDFEFQGIRJRKJKS2S)2TL*?U@UM@NVOOVCVWCWPCPXDDXFXYFYQFGZHQZGHRIZRH[SKS\)\)U]MM^N]^MN^V^_VV_WW`PP`XRaKa[KbT*c>dU?]e^e_^_`W`fXXgYfgXYhQghYQiZhiQiRZLc>d?Uj]]kejk]kleel_lm__n`mn_no`of`fpgphgRiaaq[[rSqr[Ss\rsS\tumlovffwpvwfwxppxhxihyziizazqast\L{cd|U|jUk}l}~l~ulummnnovoxyiqzc>d>|d|jj}k}j~uuvwvxyyzrqT{Lc{d}}~~wwxwyy|||rstsT{{{ttrTbTb           *b      *              ! !!"" "# # $$%& !'"'#"#(()())*  **+++,,--..%%&&//0  0!!0'01''1##2(12#2)()34$34$45*4556**7+67*7,+8080911929:22:));3:;);<33=4<=3=547>,,>>--?.@A808BB909C:C;:;D<<E==F5EF=5F66G7FG6GH7H>7I%&J/KJ&/LJL/LAAM8MN88NBBO9NOB9PCOP9CQ;;QDDE<HR>RS>>?-S?>TI%U&IU%UK&LVAVMAMWNWONOXPXYPPZCYZPZQCQ[DD[EE\F[\EF]G\]FGRH]RG?^^.*TV_MM`W_`MW`OZaQQb[abQ]SRS^?KcJJdLcdJdeLL_Ve_L`fOfXOXgYYhZghYZhahba\i]^j.j@.@kUlKKmclmKen_hobopbpqbbq[[r\qr[ri\]sSstSt^STuIIvUuvIvwUwlUmdcdxeexnny__y``zfyz`f{Xz{f{gXg|h|ohr}ii~]}~i~s]dmxxnyn{gpqqrqt^j^wllmxmxyzyz{{g||o|opr}r}~}~~sststvwwwmxxzzj@@juvv*TuTjuuu                         !!""# # $%%  &&!''((#)&!**(#+$$++%%,  ,,)-&*."."   //'/('(01012+12+%2+,%)-&!."/((0,),)---&-&***.. / / 0$10$0&21&1$2&2)       ! ! ""###$$%&&'%'&(())* ++, - ,- -! !. ." #/$/%$0'00((112233 +,-4!4.!"5#.5"5/#%0'16622)37 7+ +8,,9-89,-944:.9:4.:55;/:;5/<%;</%<0<=00=((61=6(>>>??3?@3@737A++A8AB88B9BC99D:CD9DE::E;EF;;G<FG;GH<<I=HI<IJ==J6JK6K26*L@M77NAMN7NOAAOBOCBCPDDFEFQGIRJRKJKS2S)2TL*?U@UM@NVOOVCVWCWPCPXDDXFXYFYQFGZHQZGHRIZRH[SKS\)\)U]MM^N]^MN^V^_VV_WW`PP`XRaKa[KbT*c>dU?]e^e_^_`W`fXXgYfgXYhQghYQiZhiQiRZLc>d?Uj]]kejk]kleel_lm__n`mn_no`of`fpgphgRiaaq[[rSqr[Ss\rsS\tumlovffwpvwfwxppxhxihyziizazqast\L{cd|U|jUk}l}~l~ulummnnovoxyiqzc>d>|d|jj}k}j~uuvwvxyyzrqT{Lc{d}}~~wwxwyy|||34rstsT{{56{789tt:;<=>?@rABCDEFGHTbTIJKLb           *b      *              ! !!"" "# # $$%& !'"'#"#(()())*  **+++,,--..%%&&//0  0!!0'01''1##2(12#2)()34$34$45*4556**7+67*7,+8080911929:22:));3:;);<33=4<=3=547>,,>>--?.@A808BB909C:C;:;D<<E==F5EF=5F66G7FG6GH7H>7I%&J/KJ&/LJL/LAAM8MN88NBBO9NOB9PCOP9CQ;;QDDE<HR>RS>>?-S?>TI%U&IU%UK&LVAVMAMWNWONOXPXYPPZCYZPZQCQ[DD[EE\F[\EF]G\]FGRH]RG?^^.*TV_MM`W_`MW`OZaQQb[abQ]SRS^?KcJJdLcdJdeLL_Ve_L`fOfXOXgYYhZghYZhahba\i]^j.j@.@MUlKKmclmKen_hobopbpqbbq[[r\qr[ri\]sSstSt^STuIIvUuvIvwUwlUmdcdxeexnny__y``zfyz`f{Xz{f{gXg|h|ohr}ii~]}~i~s]dmxxnyn{gpqqrqt^j^wllmxmxyzyz{{g||o|opr}r}~}~~sststvwwwmxxzzj@@Njuvv*TuTOPQRjuSTUVWXYZ[\]^_`abcdeuufghijklmn           o             !!""# # $%%  &&!''((#)&!**(#+$$++%%,  ,,)-&*."."   //'/('(01012+12+%2+,%)-&!."/((0,),)---&-&***.. / / 0$10$0&21&1$2&2)openuniverse-1.0beta3.1.orig/3dmodels/gaspra.bmf0000644000175000017500000007624507045144437021524 0ustar paulliupaulliu GASPRA.JPG>>>???l?o?#3> |3P?-X=_ ?=?YQ>>t9??%- ?E?Zj>)Tv?:bޔ? ?|s>9F ?">O֙ilU2 @pЊi??>㼎t5D@$>Q ?@?~h>f> g~_@R{?~*?2?>>iU'p@J?kUE,,?Ow?>=q\@&>YTR5?g ??]>ب9@ _?M9?g?`U+?n_>5# A/>(Ϳ;??'1,?U ?A&3?XiU ??X?O_?a>lþaA?>Y\D??E?%4"?Q=_A?3$?'C?G{?'w?f <М>uASn=J?=H?G~ ?D? >?-$Ao??[OH??)?ċH2?cA=о?lNL?4? ?he=T? A.I? @6N?x?:>5}Q?@@BA;@Q?l?i>h*;=@k?[S@18?0@T?Τ>u>AӾAS?%@)>@Z??yd>*qy? ƨ@>*hX@]+6?P?A3?O>i$@|???+N?3?4(?: A?ө qH?? b#?!?>Ge AC?ƍ?CCM?7?>>c@?C@? @Y?x?f>䞸>αg?o@Gn?$%M@fe??;N>w?-[@?ww`@ߪd??Qh==<$?.j@A= Oh@w??st5~n$>^l|???W@Em?,'>e<~?V@dsd@{t?;?B}'=w?1?`;`@6}??_1=&p=ٮ~?W?Z<Ei?!.>4;p=j{0?h{>>]?BE>)>;px9>L?삙a#?d{?0>!>[m.N??<?ǡ?N>>Ғk(M@۳?{W /?\?>?&-@̅@&6??Ҫ>W3C?}6޾[@/@ݿ:?b?6?#@@X=ghA?m?+%?X?L9@vc@bX?8>?@% @t?YR?H?%>E?[?w@@'b@  ?j$?~ޔ>?NM}@ @rch(?$?!>]?s3!@@LF1?x)?w>*Z?־I@%o8@,=?b"?A>f? ?@/20@7ףC?""?84>'l?`=@ 1@>[8J? ?b>h?=>KE@|(@,?XZ?x?|=?"?SC?@@?@$a??f<?}Y?"o@r?'YN@Eu??g>sMy??Z?~O@{??RE<>}? Yq? z?2S@?>MB>7xx???W@E<Ч?l!>EN>vw?>Y?A^@@|2?>MB>7xx?W?Z<7Ɛ={f@@|2?L==K>4|?W?Z<bĖ@?gj?])?`= ?P`Sx99@C @nu8?*?1>(p?"-@oC@бE? X+?NT>x?F= @C@>P?)?l>j?j>i@R&3@L^? ]?-?|=na?[@@A@C?.=1??>0?5kN@ZT2@a\R"?7?wO>LKV?|.c@H@7F-?06?7g>e?<@4NN@u8?m7?x>>Rx?Y@Q@pP?M5?:%>r5r?>!@fB@?K~<?d>$=x?P`$*>i@>"?Z=Pc~-Dh ? > v>avHC?7`N?G?>4c?1|>cQ@[@E?Y?=?~>X?R>SR@i!G@D?G{g? 7?=bH/?7? @.@Y@#@A?->Z>Dq? Yq? z?2S@?->Z>Dq???W@?-?J=*?Ml?R_@!=?r1?=N%?qAt?7#@)o?:?Ul=N?  @.@@fKĈ/?J?r>dt?@tQ@+o@UR;?#R?Ѧ>.j?/=BC@@ r@ \?I?"@>)F?>»-@8]@??Qe?^H?Q){>8B?́?@TU@p]?|?*?LM=4s>>Nx?ah^?i;?K@>v?>N>Dsm|6}u? $? r=?"=F? \6?neA@{R! ?O?9=l?(1N@f@Nt?@? =0?8?z$?#8@8 !@d~?S2?F5x= ?)U?5?qx@@@ +=?&>q">p?T8?k@bY=E?_n>=q?[ n$>x@o>b+?<;>g?pM@;5m=??(x?2@_fR?P?=4a?Ӕ쾲?k2^@T$L6?ka?U>tr?v @@$NO?f?>m?ҽ8?@>H\?\? ?WR?{>dO@@R}?@Z*?,>Z|>9 z?ah^?i;?K@a<? X>̍b>s?N=́?Y@A?,>Z|>9 z? Yq? z?2S@A?=:>>Kr? Yq? z?2S@N?Q9]?>8k?p(W?yq@Bݿ%?6s?%>F&l?uː?*=@?,ip?TV?Φ>[6?5"?ܳ?m}@z?Xrս^H?Z>^?[F?@TU@p]?of;G?*>?Q??[O@ @7@?Z>^?[F?z$?#8@8 !@p)wTV?4s>G,>AOV?ܳ?m}@z?Xrս^H?5s>G,>BOV?@TU@p]?@Z*?<>r?ah^?i;?K@7<8)?hT= >uo? U>? EN@H?:9?r>tA??$s6!?d3@7 jμ>c?RsF>f?Ѵž?T{@oۿ7@?J>>sZ?z$?#8@8 !@/a;#;?>I>~Z?g? k+@h5@ͻS2?J>>sZ?5?qx@@@7@?ٶ9>?U?z$?#8@8 !@ͻS2?<>?e?5?qx@@@@Z*?<>?e?ah^?i;?K@>zL?r>W?49 b@5ȏ ?xp?s2>rk?5쵾:O?@>7i^?sC{?JS>Vj?#G?@@f?>ii?=8?@>8=h?>> @?\?>ii?=dO@@R}?\?ʊ>Q?>dO@@R}?<^?k>\B?Tk?+n> @?p)wTV?ʊ>Q?>ܳ?m}@z?\?>JiM?>dO@@R}?(r/W?&> ?E??R@$?p)wTV?>R1?y,?ܳ?m}@z?J;=(?b$>)8>Qkn?{*?lj@+>?/ >h>md;9?,S\sC{?3>k?q#G?@F=n?f>@r?RG,2@F?@f?3>k?q8?@>@f?Z>p)wTV?>G>ũW?ܳ?m}@z? =:?ǩ>a>[? 37@'@@"=.*/?>>Lj?r x@DQ@ͻS2?c>>9X?5?qx@@@ͻS2?y>I>U"s?5?qx@@@)>@;?J>IQ:?9#,m>qA@i,>X?'3D>%c?׾t=bt@(aen>dEs?}`>&e?@ƾ=g݌@HLs>N(? >_>g%`'!q@D>BX?b>$]?BҾvf @2 >g?!>;\?Ͼ @YǶK=Q?{g>y?|<;?~@Qu@Vq?=GF?;b>W>9V?M^d@_+@>#3?&>I$ ?eSC"G 6@4v/J> B?I>N?t̀f@R_>;i?P>*#d?ۨIVtP@6<\sC{?c>D@Z?#G?@\sC{?>%l?wz#G?@ =W^?ň>[?Q>dJ @ ?=\|6?v> >c?yYf6@$J@=)?zq>5>Tc?Xw0 @:J]@n=d?~>B{>4k?3r? m@>̣;??>f4J^?]>h6U?XZž@%\[==cT?3>3?+*?oі@t@' =L?f>?-B?zi@ @> 3'?4> ?tRh!@! >S[?_>cWf?>/οg"@\?>hT?hk>>9X?Ŀg[[@F@x=)?ӣ>_>M\?Sݿ@h@=5! ?w> >a?ǿ?x6u@G>?X&>>NhͿ?F >5?<3?;b6v`V@ s}>8YC?+7>CL?ܿήy@tF)7>K?&>ȭX?ᾈe@S(1>'O?ʏ>*Q?\ A@b*Cu>CZ?{>5j?~l66@7MH>6\?_L>8Ot?p3өt@X ?=-A?w,R>'?F?r@44@wڔ>'U?B>:[? ¾@@۬7d >N?>VO?4?"v«@ _?f >1H?+U>.(? G=?@+@=0?>!">Nk?!u?Be@P3>O ?`>`h=/|򃪿*?x>e?t4>@l>ҫm?:z>-?D?aܼ[j:?\R/x@@Ȇ3G>R?#> r?t>6@(x?zi>wvO?x9ԁ~?E= b$@Ԟ>V>~9?ӵ ;?,t9n@1H>g=?*L)??WDiB@3>'F?sȚ=i4:?œ.F3@o >fxL?ȟ=jb?KbOh@痿AO>O?'>+u? <~VY_@@6Y3K>L?OGD i?+t>FLb@"̍?->C?D?5W$?g@k@f>N%4?>DQ ?TD?UGZr@W@=-[,?0 >T>JBU?\<@n@>??uR$?>C6kZ@_㧙>D?y@?5$Pz@5H>xE?V?4gR@|_H]{>VH?᧾Nq?̼(d@(XM>iF?q?_?>D@˜?">-#?m"> >j[}/q@nm>#?gz<(?jZ@fO(@\M>l/?5O*m8?"-7v+f@FT;!>Z>?h&=?N߾`̘7@Ԅy>??N5o2?*=1@[0HU>@?N H?6l>L5@W?)9>{9?8zA?4?m @ @f>5?77?.?< ^@8@ >h7*? ]ߣ>6>b?:V?j@ŋ= ?O>=o?ۿR?@3>?H">gAE>Qw'0? V> )?$*4=?&ReE@(TQ>5M4?.?G-?Ka@A$>4?F4g5?uGȵY@eþHW>7?$D*?C>/&;@̙?ld>X3?k;F'?E>P"@H?ôF> ;?D??Ը> 5@U? =#E#?]>To>Ea?UPP(@:@wU=,?,L>q?qx@B>Z(?j8}K>?}#JH@wm>=5?e0?侻5 @ֿə=>%V4?7;?@>ңZ]@ @G3>Z),?1/?sP>]N|@0@8>r&?;?a<@?5wHV@n@3$> ?>>^X=%{ա'?Rv>z!? K&1:?"(25,@JK>+?O˾+?+A _r@'l>Q -?y 1?@c{@>B>+?2,?p30!~@->v ?.Ҹ>2cj?_7/@@= n?uc. ~>w?P7qY-?J@H=6?4>;>Iq?7?֐@G>2?BZ\>7hyZ0u?0Z*>? =Z>[ Z@˲>d?}`"?-}{9@Ih> "?̺-?#˷CF@VL/> '?3d@'?I*k@`=龴Zs>%?cC]"?Gz=b@>]Z>̣#?1dV.?p>*1T@? R>)?(5Sd)?6E>Ir@?+F>O#?pa3(*?gڀ>IñS@@2>7"?. ?>lO@@E@I%> ?`*?{5?AE A@=d@Q>L"?)&?3L)lR@fME>A#?:J0?s¡V@T>;?ΟX>+g?ɠ6@@`>?84a>mu?qu?Y@W=?[== ~?qb?ە@>Y>W:+`}[ڿ 6 `>f?+n?TA@u:7>tz?S>8̻Q @eH>':?/3M?)b&@V/Sh>0?ObD" ?> .@Pf^?:> ?5ͭ?Q>1GT1@;@1>X?>63?o @gRY@¶=M2?n>[ r?\>&@ >ӎ?9I<6O{&S>˦XO>L>?JoIMxblA?8>2 ?͛o“=(sy}?柡>+ ?t\>@0Z7dE?`셢>9?-c>w-?@OcP>?tR ?n @pJ>H?-XG}>ǎ>[-= @9.@>% ?j5/<^a?a8r?`b@>.?>Rt?_E ?╍@>?\/>~y??m@b>?!a_>|4/?@&> f ?þbw>f=?G+ۿx>?EdO>=-a9?B$>h>?^Y>x@>?0w?V>?QU)>>ԗ?O?k=?+}}̩?ʠu ->@=?c>~y?Ib>҆@,>$?Mžj+yLh]eR?`>kx?LrPJ%?.K{>?[[(b&U@>0?Dl1|>in?y>[y=F) 5?pE6i>u ?nsuS>^j>`?Ty?"L>T?Zu=(?1@6>?’3=\3?+:?V@a>>B?ԑCQ eu?૔@?n&@>ܴ>,05Zl&;xY$F>?Wv5?>%G{u2?3{>!?7z=X><&Z7??Ҿof? `}(ߍ@ڸ>h>7뢾Gؾ0Y{z4i>>jGN, .t>@N>!@AolNgt>i>f9+d8g*cl:>e>.~LI&*thn>_>Rw;x}>&UщB3?9>+5>/͛q7?tO@BD>k>(:c;&?y*l43@"4&>?^cW?xT@<z@վ>VW>ikn?J}@ >> >KXq\jى\a>>`ǨLV޾:=FusY޿LS>>\Qr>o&@y >h>BžiLXc?EHk 6@G=k>6>U x?*b h@s>>_S=O˽v.~w¾4[t>̏>(TߏOli>5>.ܾGؾL?\cQvLӕ>ֲ>d7,Ҏ?>>xF*3low>ј>Mwql`R=>)E>Oc>>eirRmH>;?E>2>#t,? mC8*)@3>OU>P)ʾI?+nR@=C>ca/'s?"k(v @q=>”>CPUnt?#ҿw<@*>C>H.~w[]n>>oҾfAI.c>u>¾澹N{?οV{eώ>'>j;Tl:>r>/wa뾀Y%Ga Lh>?>QI2>: xAr?EV>>]Dپu>kU? >>gxPȾ/c?UL-@,۱>z> %dY-w@>w>45;}[IϿ'u>>>.I;ݟn>#[sp>W>W>n~')>+$?=L>T8>u(e e{?|U )F@C8>>bᾣ0?7;2@;s>_>T%BL?gR> e_@=H8>}Bgs?j.H e0S@}=~O>g̈>r<v?kٚξ@>>IoуevJM>8>kRUϮXR$>f>PJKH:rh]&6d>0>j6 ?'|L扅?SC>>"jBĸF_?t|׿n@(O=>w=&H88y?L:@>z>rSX[Zv>$> <ݾG%4P[^g>M>y#*x>IH~h\T?F>s>M#?;:9\d @>͋>HǾI]7Կˉw>>Ӌ0kP=Jk)*؈>!>1/hXGZp Qr>4>R"2>F 1C>Z>>Hf F? y9Т?H>k>}8$?0k?E5>FJ>]"?w!P6%@:$>9>)w iM?Cl9>@>&(>[(ML?^6c@9=B>Y?$L;@E=>g>Z&x?ǷĿK@>>4@ߋĻ>cL5萁>U>7X~y:/QgFf>L'>29,\=eeKcE> >hѳ ړڿN>̉>̿&6?( >/#X>˽>TZ?zhW8UO@s>g>ռF#~pH $>>=G_޿>6>Q>ɇMkBL3sbq>w>{MN>Ϧj}>= ^>L>`Q޾;?{?H>&>ܾ'!$?{w?93>ꑦ>[p ү1?hFl6@>>0uA.<1f9%t>>K^a:Ƚ_A\\7>C>ʛ1#*'?kR?Y>>Φ} qM?p g%7@e\=V؛>HxwjײN? 1Y-=S@o=A8>y5n=I+3s?nw@>>7QRbc>%>/+,c!m9_o>݊>Qн#cPj]}!O> p>yHVoh8hR>t>ڝI|FJ ?a4?G, >P>bG&;?Gav'8@,+={>Ǩ`?8x%x@#>e>#5OAؾc{ɿb <{>>h?+h/=@0W_/B~>7y>9v=JB;{k2qI>oo>u'5=I2\7giAk>.D>ya5>[^'o>=k1>%u>2Z=a&?gYț`?8>X>;T ;M{^L>{> XD&eB<}˪>ِ>iD> }ZYMSxYm`vØ>FPJ>ld=6&2J$:@,1> 5<>W>zy;2V;dվrI>{I>Y|O?bF+/? >!>ی[/b8:?% "@=5>/A>5p T?+߿9k@n˗=>D>;p?ߪſ@}@9>>,_+L.9(o>رu>D>IE>';$!*Eῄ>dK>F~=n@'?% Q?1>0)p>EQ8'U (NjmX=Z>vN@>+>>% ɿ8G> (>h>`F \}>>>{ֽAoөX^]>#>\Vgf*>4 '%>=Jt>>L-Xq9?޿(@V=H>=r>>?E2ёQK@ا>ɼ>m<Tn&UJ̖>>S >I>K-4%@&bT>6>>^Baf >{7>>y!>ۓ9>I?޿=?L=3C>x>9%?9 @r=;ʩ>U> ݾW?2x6#l@0=! >H>;1m?@tw@^X=z/>>Rr;=v?bu@d>ҥ>H[=dXDQs,eq>Б>];-S.*>]eL̚x>s=4 ?<ʾjgI:1x>=5?fXSU=U)^5*>=bM>3Pic>G[hyQ?s~=IO>>yDh?`nG] ?=`o>Wo>5/(0?xJC-@i8N=7>ؽ>n)a?V;5p@_H>]>H>[Ewchd>YfW>6"=ek^4R>$>RX.>X#2 }>>g`>J@ӿ>^=>1Cq4>:ɬ<\ n>բ=uy?N5,J>8=?HJOy/>s-OpF?q]=?i>L> R!RQ4?(⾵f(@>&qs>Ʊ=oIg־:_:Sr>w=cG>`t| szj=&>=>=x ?Tf=tl+De?b<=h>86>cK?g."}\@z>g>>0X:s>>I>'Aβ4Nkx>fF>EX>Zp\Y쾀=j-4=9@=2.>uWt>T>!& ?k{
Z9>Z?p \@_=o!>3>#=l??ξMXdKs@m>Kc> =mċm)2>>=>\ qܾz>7nSþpd=3N>`1s.fА?VNƻ?/J>>)?Cy,?D=` @9c>I?~>ji+D@'=B>>L=6Qu?\i4Gq@*> >"=Q⾧pcS^&FU>ڷ>>Xž9^B>3HǎG>9j>vz>"+6>F3tx?xS:>>OCt?&p^R?pd=7ʛ>&f>А?VNw=^>j>~?Łfr?n?'>>\:"2#K? ~""v ?N>ң>U5Dl?ר<X>-2an<ھ*?#uϿ?pd=>klА?VNF(И=y>Wsa=?s>f9->ǖ>|O8?6?h?>?>n>g?rҿ5f(?R= Y>vZn?:M⃿?pd=+\>zl+А?VNMB?>g>zBy</ @y1/?pd=>srА?VN\U?И=H>n8t%?s>?pd=H>n8t%А?VNit?->F >, T ?6?h?Es?-s>pi\>GA?^?z>@r~??/J>F >, T ?Cy,?D=` @fvv?E>of>ɾ*d? U?)@r~??/J>2h>eV?Cy,?D=` @ձ>>(mR?C?6:?@`?ձ>m>0L?C?6:?@r~??/J>m>0L?Cy,?D=` @M>d? <&c@?> >lBѩ@:?kS؄*?L>&V>dLv<?UX?>{q>}tM7>~@|\*J?\U?И=>s͝?s>\U?И=%>x%,>?s>qj?=%>x%,>~?Łfr?b?Y8>{*>bQ ??@ j޶?qj?=qG>8*g>~?Łfr?qj?=P=`^>~?Łfr?it?->P=`^>6?h?_>> 8>U抾r7?s4  ?ӗ>>>V2?<T0?D7>A>}vuXҸ0@Osit?->yD>3,\56?6?h?z?>Z>˾6^?D?hۿC,>@`?ձ>!>_uBc?C?6:?@G6^>4>f)p?/!?#[IW@Ln> /Խx?=h@2Y?>>0-3@4#/)?ya>iW>zRpgFf=@]jw ;?9>> }[8>@Suq N5R?&e_>xJ>Uds-$t>#L@ f`}?&Gb?c>0=G?(@@@q?6^>>pQ?/!?#[IW@`?ձ>>pQ?C?6:?@3?>}w>F]dX?UӐ,?{ >@>ۦ 6?`@&fA?ǩ>봏>9hW>;z&n#=>Kl<&?)n@HvZ?gj? >pA=t[\?@(M.@t?> >;5a?9?c˿&:@qa ?r*>J^>&jK?y&e6?>._>AXjoDc@.N9I?m>2w>@r=\>@\ڌ,?n@?>5y>vIxm55"@]_dP?p>t>`\>@(SE? >>>&)||&>ӾÜ,?>,>*=)'@N)D@>fBϐ>=@A?S?Ԥ>`>2*?xq@7s?:]?Yb>9>N? @0Nu/@z?> F>s?2@nW@q?6^>p>Z*R?/!?#[IW@?;>!L>pJKN@pi8?>,:Z>&>N(a<>A[@X;D`5?>s>R)@h'3dٿ:?;>.б>InE7@q8jaZ??n>k̪><q&:=3@:'M?Et>'>7vD?~@W,?pU?4ָ>뻒>EUKF? @zW @V}?>td= dy)y?mE?cܾc@q?6^>5|=S|Iv?/!?#[IW@*>x>x(u?mE?cܾc@/?e>Y>4,#&=3f@ZQ%",D?>>iDX>@$'>5H?!>>d>9U>ݢ@*%ׁ?tj?8>-<d?@K.@߫q2Y@:u?g><ϻds?*?5^@n?[>E,b>žg>e2w@&?h>?6>"Ag;@Ŀ}Sk6?b>>0#(e@I /߭:?>]>QSHL@l6??u>T?M= AվJ?v>>K,?g@!$?/S?Rz>XP># e5??ɯ@ʿK@H`?->?3>tl?@a>5"Y@*>7=i<~?mE?cܾc@.,*?J">y>X>¾AK @W:?>_/? ; Aտ{*)D?>p ? J>E AI Rs?oY?>Bݔ>lQV?@צ60H@q|e?>dTU|!}?$@jc@@)?G>qc>`zi@0`1?Z>'?4nU@{"{2:? {>pl?]+A<_MƾI?~>>= ^86?}AHEB?QO?[0>i>=?5@8_@*>!=Up?mE?cܾc@@|2?!=Up?W?Z<MB>7xx???W@@|2?>MB>7xx?W?Z<4|?W?Z<Z>Dq? Yq? z?2S@?->Z>Dq???W@@Z*?,>Z|>9 z?ah^?i;?K@A?,>Z|>9 z? Yq? z?2S@A?=:>>Kr? Yq? z?2S@Xrս^H?Z>^?[F?@TU@p]?7@?Z>^?[F?z$?#8@8 !@p)wTV?4s>G,>AOV?ܳ?m}@z?Xrս^H?5s>G,>BOV?@TU@p]?@Z*?<>r?ah^?i;?K@7@?J>>sZ?z$?#8@8 !@ͻS2?J>>sZ?5?qx@@@7@?ٶ9>?U?z$?#8@8 !@ͻS2?<>?e?5?qx@@@@Z*?<>?e?ah^?i;?K@@f?>ii?=8?@>\?>ii?=dO@@R}?\?ʊ>Q?>dO@@R}?p)wTV?ʊ>Q?>ܳ?m}@z?\?>JiM?>dO@@R}?p)wTV?>R1?y,?ܳ?m}@z?\sC{?3>k?q#G?@@f?3>k?q8?@>@f?Z>p)wTV?>G>ũW?ܳ?m}@z?ͻS2?c>>9X?5?qx@@@ͻS2?y>I>U"s?5?qx@@@\sC{?c>D@Z?#G?@\sC{?>%l?wz#G?@?pd=7ʛ>&f>А?VN?pd=>klА?VN?pd=+\>zl+А?VN?pd=>srА?VN\U?И=H>n8t%?s>?pd=H>n8t%А?VNit?->F >, T ?6?h?r~??/J>F >, T ?Cy,?D=` @r~??/J>2h>eV?Cy,?D=` @`?ձ>m>0L?C?6:?@r~??/J>m>0L?Cy,?D=` @\U?И=>s͝?s>\U?И=%>x%,>?s>qj?=%>x%,>~?Łfr?qj?=qG>8*g>~?Łfr?qj?=P=`^>~?Łfr?it?->P=`^>6?h?it?->yD>3,\56?6?h?`?ձ>!>_uBc?C?6:?@q?6^>>pQ?/!?#[IW@`?ձ>>pQ?C?6:?@q?6^>p>Z*R?/!?#[IW@q?6^>5|=S|Iv?/!?#[IW@*>x>x(u?mE?cܾc@*>7=i<~?mE?cܾc@*>!=Up?mE?cܾc@@|2?!=Up?W?Z<*=>0>?**?1?212@#:;A++B,AB+BC,,C--D<CD-<D=DE==E>E?>?@2@36F8GH!H"!DIEIJEEJ?JK??K@L6M#N:NO::O;;PAOP;PBABQCCQDQRDDRIISJSTJTKJ@U3U43V#"OWPPXBXQBTYKKZ@ZU@[\FV]#]N#N^O^WOW_P_XPQ`RX`Q`aRabRRbIbSIYZKcdefd6_gXghXh`XbiSSiTjklmknopd6dFd[F]qNNq^^_Wq_^_rgstuktvwpxqy_gzhrzgh{`{a`|}~}[dH"V"}kktttp[\]qyqy_r_rzV]rrrzh{hkkpdd]]y}y}\VVyyGHHH\\\G                               !"#"#$%$%%& &&'  ''()((** !++,,"#$%--&'..)*/ /! 001G,2""3#23"#3$34$$4%%4--5&56&&6'67''7..8))9(89)(9*9/*/+!+::00;;<,<2,3=4>=3=?44?--@5?@-5@66A7@A6AB77B.B8.9C//C+C:+2D3D>3=E?E@?FA@AGBGHBBH88I9HI8IJ9CK:K0:;LL\MM<<D2N=>EO@OF@FPAPGAGIH9JCJQCQKCKR0SD<DN>NT==TEFUPPVGGVIMW<WS<NXTEYOOZFZUFU[PP\V[\P\]VV]II^J]^I^_JJ`Q_`J0a;bMWcSDdNSdDdeNeXNXfTTfEfYEYgOgZOZ[U^h_`KQ1ibjMkdSglZlmZZm[[n\mn[no\\o]o^]Ra0aL;ibjWMckSedXXpffqYpqfYqgqlgrnmnrorsoos^^shstht_h`uKuRKjvWvcWcwkdxXxpXpyqlzmzrm{tst|_|`_uaRb}j}vjvwcw~kk~ddx~dxxpypqlzlzr{rr{s|u`bivww~wyyqyqzz{t{|t|uau}vv~~|tttbb}aaaL\L}i}1i\\G1G           FF\               !88F  "" ""##$#$$%%&&  ''((G!!)")*""*##+$*+#$,+,$,%%-.-..&'(((  ))*) * +* ,+ + %,, -%%-.-.& &'  '8/0        "!"##$$%%&' &' ('( ( )() ))**$+,+,,%,-%-&%&.''.(./((0)/0(0*)*1122334162683:$:;$$;+-<&&<.<=..=//=00>*=>0>?**?1?212@#:;A++B,AB+BC,,C--D<CD-<D=DE==E>E?>?@2@36F8GH!H"!DIEIJEEJ?JK??K@465#N:NO::O;;PAOP;PBABQCCQDQRDDRIISJSTJTKJ@U3U43V#"OWPPXBXQBTYKKZ@ZU@[\FV]#]N#N^O^WOW_P_XPQ`RX`Q`aRabRRbIbSIYZK6d78d6_gXghXh`XbiSSiT9k:;k<=pd6dFd[F]qNNq^^_Wq_^_rg>t?kt@ApBqy_gzhrzgh{`{a`C}DEF}GH[dH"V"IJ}KkLkttMtpN[\]qyqy_r_rzV]rrrzh{hkkpdd]]yOP}y}\VVyyGHHH\\\G                               !"#"#$%$%%& &&'  ''()((** !++,,"#$%--&'..)*/ /! 001G,2""3#23"#3$34$$4%%4--5&56&&6'67''7..8))9(89)(9*9/*/+!+::00;;<,<2,3=4>=3=?44?--@5?@-5@66A7@A6AB77B.B8.9C//C+C:+2D3D>3=E?E@?FA@AGBGHBBH88I9HI8IJ9CK:K0:;LL\MM<<D2N=>EO@OF@FPAPGAGIH9JCJQCQKCKR0SD<DN>NT==TEFUPPVGGVIMW<WS<NXTEYOOZFZUFU[PP\V[\P\]VV]II^J]^I^_JJ`Q_`J0a;bMWcSDdNSdDdeNeXNXfTTfEfYEYgOgZOZ[U^h_`KQ1ibjMkdSglZlmZZm[[n\mn[no\\o]o^]Ra0aL;ibjWMckSedXXpffqYpqfYqgqlgrnmnrorsoos^^shstht_h`uKuRKjvWvcWcwkdxXxpXpyqlzmzrm{tst|_|`_uaRb}j}vjvwcw~kk~ddx~dxxpypqlzlzr{rr{s|u`bivww~wyyqyqzz{t{|t|uau}vv~~|tttbb}aaaL\L}i}1i\\QRSTUVWXYZ[\]^_`abcdeG1Gf           ghFF\               i88F  "" ""##$#$$%%&&  ''((G!!)")*""*##+$*+#$,+,$,%%-.-..&'(((  ))*) * +* ,+ + %,, -%%-.-.& &'  '8jkopenuniverse-1.0beta3.1.orig/3dmodels/geographos.bmf0000644000175000017500000007274707045144437022410 0ustar paulliupaulliu ASTEROID.JPG4>==dz???dzdz6=f?BS?TD>0pXM?-D@= X? F?=vSc?16f?:G?|1>t?1=Ƕ>|Z?>k? 콲>?O=ƾ>Eb?Kb>EUt?*=K~>Y?F -'>4L?>\d?aMkW ?U~?þ)UH>.3?NG?RvjǾxo?\jL>3,:?l0?)>aX?,@b?vs >kTRL?@PL=q'?a>8>KB?">&?>٭>?o>kR4?Yf>7@#?(?$?VI??@>?2?U/ھUZ?g?O| >& ?ϣ>}?6--5>> y>?߅>>fTނ=ynSv>\ ?X=@?&Žv7>D>>os?8{ e?ʞÍD)>(>v?ĊBjAZ?$b.nW>."?$py? "bl?=_?@>?K?2?W>0?6>W/=@ [@?p?&M>w,?Gz6?<=P@H@?l?D:>P>e?}<@w}a~*= t?^?E>-{ݹ/յ=M*VM?S?>LlRg>߮衁kš?:*8>>`0軷4{m{gƿ*>>i%龾 `Idz&/>q>yuyǼϨBԺZ#>X>dj?^s煾\?9Cu1ҕ>[>l?n͜\dIK?Yoe? >w?b?<n?k0??b>e?ۻ޾=l\?0߾V?z?F>O?]8EZ?s̾ ?Su?>|EWYU6}ZY7>Vi?ୂ>:@d þ/yi>"m?N>3\uCi /g33>}>_?(=Ty T?Hؾ8>->}{?i];[9<>/)f?ݾ;=lf?%־R=؝>A8}!";>&Q!v>ue>&+>3̾A:`Ҿօ=:>[CK  >o) ˾R>^>=2?v4">_È"8>J>K>\_n->[ 2;>o~>>FPʾ> 3^u[Z>;>N?"d?1"?soJŻ>h>!T?C X2? :M3>>T?;YE ?xgA>R>e*?:>$?&2GZ߽>i>):?+>^#?=sa> ?~;X4>4?h>1>tCgI?E?_s>._=As)}>bؑ%v*k?2;?+$>K>no0Ǽ=߁?>>ʁ>}S5>+>S/|Wy^%>H=E>You>E>CӾ-/>u0>#?-RQ^>->qx.}><?}-3>D?b|;x>';Q>H?/>C>Jm>ܰ?m$>Q'?!>>+eK !?S>u?UʽH>>s{p?S>z?,?E>gc?GK>X>?n?c#?_>a?Uk>c?ۊ?jpx>K ?>i8m?>?SA>ɷ>FJ:# ?x==?hC?C>JFz`>>/\5~?$*??;>=|kr>ݛ=oPU2?7?y>>Pd4>>??~>[,>b[>MMnپ>^ɺ E>ɩ>>LK>X>_\>m6ۿY?I?n`>C3J>e?dS??)ef>dƴ I>+?W?RJ? j&>L9=/>Q[?}%?]?CZW?F>l>9M?>7`?0L,?9?"Q?f>>-N/?,>K?i#?߸ ?E;n?b}>~>|]?`>}?:?à>b?5Ђ>>sؼ@DU8??#S?D=I?Nt>@/=@:?`@?:?P>Ɠ?>i=@͏>K?C?'?= ?>>Xm쿿>?>jW`?˾ p>?͂鿗>>>}0## p>>޾` >y>.> .;ާQ>{ V>غ>?r>؟e>>\Y >WWpھa>AM>Wa5aHkȖ>>=+J=40`'}C~>B>qH>Q7'+_ّ?T>з[?a`=D?.R֎O??V ?JP2??O?&?Q;?\zȾb?n?_RQ??Hk^>:[z>[u?T?a ?n+>3*Hmb>6?C$?|.>\>Zznf@:?>J?з>5>+{L@lKD?;SϾ>^|>%[-@5J>)>? L5|>[9'4>L>%";EV>^ek8 ^>oC>%klm㽄㽍3.?>t~?9==Xy?ß;X??>|?=i=-t?fczP?ty>z?>pO?ơR>?VͿ I>?H[ ?@c~ ~>οT>:? UEG?nJҾ?--пyS>Y?(-??;ZK >HD翓>&a?ɾ>Wo?p{>*?9.>]?"Iu=@?d>PE?>Rc?_Aྂ=]?q[N?>\qőm1>'@/NO?L?P>ndQxp w}\?J?>[\þ{/>h@|K?<?K>V5>M 2>@ԑK?T(>rUi(2q<>  @H?>Cm^;߷$?©b}t@x>.?z?P >*B{?׊>|†>'(?n?>d.mb?p?,5g>m+?3n?A>cŭ?e]<7E =SW>>[Qžf~پ #P>՞>ZWۏ3*>@8>*o?6L½Ph?Ǿ@ j>??urx?=e_DQ?<<*Ʈ٧> ?me?>oA?V<>(>& ?tm?LJ>e6W?7>K~-?%Y>~?m[XT>+Z#?u\?F>9)?}s9oBH=!?\+#]?P)?~>>@[E^ ?S\?y>m>?iO?3uYO >1ld> ?H۾Z?z6Ч>CeY>Q ?\k6?u3q>9>:?9F'+?$>}K?L"">>?J?=Ɠ hm? E#?e?cm?ӈ>2>f?3v=S?%Ѝ>g> ?g4vO>XwL?>Y¾K>%I] ?rQ?>Kؾ WQ>w (m? R?>%Hya?n^Ѐ?>[/?x_>W?4Τ>xP?{>u/?>L?VM^ ? J?d ?r>??aL?1? >G?V=?]> ?M?x"?B? >#$?V?LD?)?E5?av>Ž"?Y??P?!->FbxhHÐ*@:D?P??j}>Lwe,4Z >=?0S?9A?4K|">^y,Y'=q? O?o{?zQf>J>k,cC=-?>M2?jI??pAqV?SC?i-8>>?L ?P?Gc,?g?6&>UJ3?jW?&?D6b?xm8?t@>>t鿊zӽ_]\pȾj K==[>Pz6Nh=oL OqT ?[?`u? {>z>6j?Ţ>e>?y3?U^?>Z >ׄK?W$?=>7?$?Wr?02>i>1\?>-?UM?X?㾰d?m=_YEp?>b?h~`?j jP?h@>mW6c?>Y?P?])E5>?5Q=MSUT?>P>&?C|?k%"Fn?jܕ=W@M>>@v?iQڹ9?f߾el>=>1,=H$T|;D6w>>DB>:%WToy4Ax>q>5=/'8*}d&p??6v?6u>^=]`?>O>;?A!??Bm?է>ث;>oZU?h_>^N]?#??AI?fx ?ؖ>cF?w>k?PD?6$?n]Is?>F\1?[?C?HR2?#}bm?>Ue"O?l=?ԙ?H>>"?6nB/>+# >><>7'ox=;ׅ>??> RAT>}=!SnK?HdWQ?L? 0X>^۾}H?C>2WA>&`H?3dt?@!B?V;FZ>,Y?~g9o?n^ѻ? n>21L?|r?Eu_-O?c@ >@>)Iz .ʼ4=斿S٥>*>,">@|{+t> ^>r>N? ׾]Ծ%?ZXt׿^6> >6?IG(>宇^>>#Q?uעQ0'?۽]쿢>ʋ>o?@ YpC?½U¿r>?Ž^?W. ?)t.t>?Bмu?ۓ.[8?5 V > l>r3IJq <z\5>+?X=?qh?G{ M?gh6?yd>?Ŗ;?Iy=Ua??n9?ZV4? {>d?>9P>BQ?d? ?.?sh?g>> _?P?it>C^C???HRY?C? 8>@~B?Y?F.=IGo? >^ۃN ??G??1\^?@>Ok$?E?EC>n ?@~_n4>YF1Nz>տR=>n&?ie2>hX!>43?s>->pfF>a>umOK]? =?me>8>t/i>f=\hŽ?`1?=4>> q%>>> _Zu? ?*+?%?;+=Y~?]e??f>Ao?f=j?čLV>3?B? \?jQ>>qG?vJ=?B8?!?`4?˿>P ?>F4>?%F?o?)׾ھ>S?r=@YE?f>ݾIŽe?""o @^nB?>߽'???э?{P2? (0?+5>!?Nvi?>`??+bo>"?z@?T>c[ H?I?Rû=?ZL}i==ma=!;=?$x(n>%ͨX> Sk=*?Ho>ju!_#j>VagO>5 ?eK? 룾G \> g]>>?>M[%㕖=^>Ǿ>u9'o`QsR>6!?꾪!9?L=ƾ.?.f9>l?KOn>Z{Hwj>8 zB>|'?&?iFkA?ߣzL{Q?D=?v>}'@nQ?>`kۯw>f ?gM?->jf ҾE>Rᾙ +?Gq)?+>vC?x>3?U )?'?=>O?e>MH?Pؾ]?30?>NwB?b?%>??fk>$:?kk> a?վdƽq?^%7>7?@Y-]?m nw?9 +?Uk=>.pi=Q>>Kn >*w=?DΩ=<{$w4sd=msɑ>&=ѣ2?ZTjq>V~>1{/Ј?˾P/n? ɾve?R>>#?e>׼>ڂ{?Dcy?F]>=w?Ff(?h_?w=G|?>>/?P>K?^ >> )0qG-3kx>AQ?#4>(ɾ|d+d`a=?h]?m->~7Ǿݓm!a>rb>G?:a^?ƾO?鿠5={> qIjYQ~>Ő`eྫ=?cj*=X>["G< ^=в?ToR>Yߤ>gYػ=twG,=7>`t>>xUr:V?[?wmr=wѼd$j*=_?Q =7?c>Δ>7"?@*X=v?eSt>>M;K@>ϡp>m>#i\>G?M>t ?3GuA}C?`š>jFtf>^6?#[>(>)M,?wB+>Iqg&>3?b?n>5?ΰ>0ښ> ? D?9B ?ϵ,?$>¿>,?F?v>3?R0>=Ĝy ?l>|oC?#g"=eE?D>r>Ou>?FD?5$?n<ëQ?Q?њ>N?_?O?u>-?4,n?>e??U?M?g/>M?VD?HW>>ǾfzM$XG~\1xH9<>mw>>VQQhYyR׮?>~w?=|_(=]x?LSGV >c>t?W?Ti>,!l?KҟX.>?. N?>`~Q]W?N?>f۾k Ł?D?&J>0- HO?@/Cb@`D?>/p;d`B&?{9Q蕸+@&A?>8<>7+?>R޼m@>a?T-~?Ԅ~= &= V?v3>h<%z=?b]!)(=oc]2>i5Q>f"=о#WG>G;pW>0>Qw= xyc>7>J)}ͽ>y?9k|dL> y#So= mZ#>E?itnme>5EsY\? >(>.?8?F5?|*?^>1H?>>4??46?+?.?uA?@>>??R?l>m!VV%-cF?.?8 ?ND?.>>*? ^>ֶ?],??)g?l->P> >?f=د?kR?S>?jE4?y>ڝD?U??ҡO?>ʊbQkp}< =ij?O>G>m!?o ߱ -toD>>Vibm 9GڿS>>DjTѾW橾p:H>>cKh꾠; CѿŔ>Ǫ=SFp[–?!=%EyBAP>J=ީ?;>k{ >K= +Ka#>Ó@5]o\">0>:’M`>2wayrNB&L?f>HjްǾS:Wkþ?/K?->M҉YVK$??J?>KBGYZ$>󾶙W`?>}"?,Kb >pkT<?E$>i3?G+?PK%R\?Rvn>Lg?eRx?=,9_h??^i=>`?a?<O?ž"?>c_?P۾n>W?`r?>?I}D?ޚ="{?P<-caG?K?aVt?58G>(%lr?9?tM?YH?9O?2>EPO=f?o7?X4?\>\?#K>>%Z3?/?;>q:?>2L>` ?bd7˜?>u?,~?|n="=F?>:aV??>8`>.蹾rM?΂== @C?[>uo=o-j԰>n#?yA?X>7>P$>8 &9!@EF?>%\ӽU1t ?|@>>g>m5?ie> i>tɆS> U0c^P?^>15s=znkH?s? ?q|>uX<ͷ1N=k>?o?S>I}`E^?d >ve?JY?ۚxl>]pO(U= ?,?/b>?R> :?Et?is?4?q>>7j :>"Y>~_? -4?byC>fB,>?G?ge?,D?_PU?x>޾*?>͔^>JB??$iXÒ>#=;?>$>e>Fo'F>eL+>;VՏ?(qj>?ă i?о3hI&?S˿ߐ=H>X_Ƕ P> AL5P: ؠ>U?\?>l5?9F">ſ֓> M ?|w3?n>.r?_o>>K>=á>`[>>gnh0k'I?X>I[Hd>»$2p?>>)l?鲜p??`b.P>û>b?PξtZkc3?c 䌀c=~o!>+1>':'UHB>>k?~&GA?1 c0 >}N?I|T?-<\諾|?]*V>zݽ> &ؠ?ي׾þ5Tɿnh>=>l2N cv*Vzn>> !8N d6 L̿fWi>7>CzhiP}d>>^u,2 ľ7޽t??Ac ?>;??Ux=>[ @???Ɉ>sC?,?+=>q?"%9?>m>$1G ?>Y?P.>E>uѵ>,IZ@)4> ?[pX>;/>R > ?s?w$>ՙ9jC?c<%̿$>?=g?(>Ǿ/?sK=wJ>û>wO?,7JǾu >^4¿i->1>5+: q4K?>7>ARS 4a=>nI>"e JSfl!>۾Y0߇W{>=7b/>w+<=5֩ȾRm= {?OO?V4?kG? 85>`q?g>>ae??? ?S?A>zi?U\{>0>z??>>5!?><Y?(߾>|%?7dh> ?v?z>>!?6>D6L?k!?zq?>HF->s?F>=u}H?f?WA?z>> ?d0L??L)-"?k>B@>\?^?']?{?>Up=S(rPKk.GjT?O??`ch>Z=T >? =v>o!C=&o>o5BR8j>Z7o2x= .X=:8J t>bؾ7?>R?6>~3>g/?`D>dq-w>W"t *=A>Gb;?>>Na?g>b?Z5X>vI?$>b?ʘ> |?%ݭ{?>9|~C>W"t *= =>>]о>!x0KǾw=? =4?<4?!?{.>?;?&~.?4?g? .)?UP?? >I?,?w8?G?;?Oc?> X?Xq?7r+>a!?NL{>Y~R&?;s>>OO>;5(1->qZ??J>?>Q?Aҩ>>\c7@G;?>ʟ?(g? >^վ?"U9?nv>#1?,C9?>:?YH?R? ?y~?&x=@K?N#?)?LlKP>FE8\=ݿW6>>f } =UDBeпI H?m>b䈾+`D>tla 6@4>u?8+?\O>ڂ0>1=sg=I?<)?{>@F?tD9?%>P?kiAoH>@77@J>]+?r?;?>4>es(?>ɹ?&G?\5>-lm;;U>? -?9,>>S?v>'1?ȇ?Z=S> kQn>ɷ[:Vu>?Rx?>LS?3*>=js??{><>@Z->0?.@>?^ ? ??W?>>o@!f>?/>elMH[=-~!Gq>?şA>Lqa{= >=6pKobۼ/S=>igz,c>SD̕I羁>eD>GS_y*bp =ͽ@}>>Rh4u]a?=v?>5|?- >k5?>"?p ?J>ܾ'z?Q?31>Z(>Ū:Q4>MB4GХ?4?#>iI?^ ?r2?h-|[M?⹾>x?'D~>?c[>>S,) }yɾiML>!?M^ ?4l!E$>=.I!?>:?"23?%]>?]$?&>(E?|N"+u< :?{**g?;>3>|2b FE9 t׿E>7>?h\O)l:̽U >x>l?sV2.?ZRžV" Z>IJ>E羒W 8璾yWZ2@?LE?o;v?]>Y"=3k?/R?b> >~~/?p|!u>p\PrĊ-?a?M >j>doV?\W?|>7J?K>?`?h}>?2=QB>> P-=5.I>#?O9o?m=X[j?Щ>f?>S{>>{־6N# >7eg<>*q`?<}?mx|B= ?w#>>q->gWQ442n$><> =6I=&0H><ȹ>6D”#|O=6*GտP>y>[RHpGj[>3_>iZ,˾vxJMAY +0r>>՝FH RWu6>\#>;,p*g yV?9ׁ>%wB Jt3lV?V?>a >rP4g?oZ?Ps>7y'yzЅ\g+?$?;?.?k6?+ϭ>?LH?y8?&?1*?+?#-?>&??c?;Y?J+>_yiu:`A>ii&]?=?Uy#]>1=]eX6>-=?m,>h{>W?>}ee?>|m. !jL+ ?ݭ{?>~0=O0>sN/=Gƾ6 P?Z>{&#H`3/v(?lja?]>vZJw*#!Q?}>? ]>m?I{> x?ǿF?S >`3zU?>Y;L?m<?s>"?DΊ=/*?^>ؒ#?9:>c??PY=8>MA>AD? ?>c4?W,?xP;>3~@h%B? ?VZ=/Z?9?p7PH>@tD?-\ ?N5"\?)>h>\@浚>#> N?2徯ľ}B?1x̿1?E>a?bnj>"???m"J>7K>&rtVM)F>J?ˤvR>4_0%)=}[9?J?E?)>[> F?t.? ?hPM>\h>Rj?y8?|u?0+?˜ ?5g>>ܪ>?[:?_?d>mr?y=k>?~>yAW?5?1QTe ?7>>ʾ ?15?-V?*?Z@a?@a=J ?S?&QG?$>o6l߭8>.?"=>I?t)#;?@>+TZ?6Ͼ<0?? M?ָ>:>u%?0=r^?>? g$>->)>NPxG?s ? u>?X>6>m%@-^/h? g>J <>?Hw?2?S ?;8??>!` ? k>??ud??,rg>zw<_>U?>? >>;l?=?P]@lT?n?4tM?z3=>#?e>߻>e?.`>cw?@[j=a5>3?_M>>])%?H,v㶾?ѿ\H?a>`- p?]j۾ռO @?~=Me=˳~ۑ=(=>"s*}>t@I?>:ξ=?b\a@F?>ԍɾ&W(gq$?#@r?Q?shS> +A>^۾}H?C>f>? ?+qPW?!JQgʘ>n)?s"?T6? ?M>,?Q ?ǿ?,3?$?7??^C> >lo>R?45??MM?=>g>O>!G>Ż?%[6z?g >|>X aF>v)=E/?%??"-?s>??xS?S>V>'pC >[+^<pyB4?:t܉>->7j :>"Y>r?Q?Oi[?G>^۾}H?C>}t.?!3?v?C?Q>>B?z?v<=q:"HBe>YEGTvX?z=%n|oc]2>\Z? >0x4>.&>tƾo[?vX?z= p5v'>oc]2> >~?6f?=7J?Y%>t?1=lT?n?=7J?Y%>>#?e>5>.?6?k1оY?抒[?ܖ=>ZZjr>(˶>wdq\>K?y?7*7?U>GX׾ra?*?k >=6y>q>)ktl[#Z>?,h)? e>=ua>b?Ἶ+/?!׾a,>2ȏl>Ւ>:r{eܻ}.r?Q???U?M>^۾}H?C>#k>?G=4?Jʑ%A>ol|?6z?vr>8|l>X aF>v)=>3?>Z]M?8ïI??tO?KXY>F,? _C?3AV?^ħ f>Ԩ> ?TCjɤ> xc{0r/>P%_hCEX4+4>}>%9>#K?1gS?7TӖ(?؜F? >Z?0>E->Ve?*?ݭ{?>Zjľ/W"t *=*>?nC'>}ZY7>J1d?>+WN!KG V,?9M`?Fc>P(|$Ǿ۾GIA>*>"=Z+=}ZY7>u>go>\8?1"Ra>?xEїp?/>h n+w4+4>vX?z=h n+woc]2>)_?q>V~Xv=F$: -?SE?1\l>tޘ>MI#?,q=l|?6z?.}<>X aF>v)=ݭ{?>.}<>W"t *=.n >y>B[3K%m~>ھj_], o>ޣ>.]о Qdj&P> z>gKO?AK 'V?H-Č >~?6f?-`mJ?>t?1=r?Q?-`mJ?>^۾}H?C>pyB4?QJ>銥>7j :>"Y>lT?n?Kqas?N>>#?e>p?/>*+ V澭4+4>lT?n?fp?){]>>#?e>p?/>)Cs)ྭ4+4>vX?z=ߑkIoc]2>I}?SE?hlx>H>MI#?,q=r?Q?hmx>H>^۾}H?C>vX?z=r̾zWZ淾oc]2>b ~?8j>5?.)^^= .X=p?/>5?.)^^=4+4>ݭ{?>9|~C>W"t *=ݭ{?>~0=O0#?e>r?Q?shS> +A>^۾}H?C>pyB4?:t܉>->7j :>"Y>r?Q?Oi[?G>^۾}H?C>vX?z=%n|oc]2>vX?z= p5v'>oc]2> >~?6f?=7J?Y%>t?1=lT?n?=7J?Y%>>#?e>r?Q???U?M>^۾}H?C>l|?6z?vr>8|l>X aF>v)=ݭ{?>Zjľ/W"t *=*>?nC'>}ZY7>*>"=Z+=}ZY7>p?/>h n+w4+4>vX?z=h n+woc]2>l|?6z?.}<>X aF>v)=ݭ{?>.}<>W"t *= >~?6f?-`mJ?>t?1=r?Q?-`mJ?>^۾}H?C>pyB4?QJ>銥>7j :>"Y>lT?n?Kqas?N>>#?e>p?/>*+ V澭4+4>lT?n?fp?){]>>#?e>p?/>)Cs)ྭ4+4>vX?z=ߑkIoc]2>I}?SE?hlx>H>MI#?,q=r?Q?hmx>H>^۾}H?C>vX?z=r̾zWZ淾oc]2>b ~?8j>5?.)^^= .X=p?/>5?.)^^=4+4>  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEAFGHIJKLMNOPQR=STUVWXYUTZ[<;J\]^J_`abcde fgRShijklmnopqrstuvwxyz{&|}~ MNTV6 osWS<[,:-Ng_JIL9[vif" PukxQ7i kj_0643e'np '    MM] * !" #-:U$%!@&'()*+(u,-./0" 1.23(36456789:w,un; ~<xz=E+E;>S+?)@A7+8B C DEF*GHIJKLMNOc'PE*QR@STHUFVWX9YZ[\]mlm^w_`ab6cbd^%$efghOai75ljjk%5lgm`~|nopq2r3sXYXsVYXtuvtwr\x]yzZ.0{B/.|} ~w;[MLQz76`r@W?OWPQ?vu] :9\^do\e2uPjil24BbOY}vI3r&uBP|S@y ?+G|D5|WI=gm+p1,[n!ps)YsCxc?QK ceT'LM"|SJ@}WIS[STn>?@wtLN,w^c65MLonVXWbcn  c554Lo(ZS>D  mkldc4ikXW7+<<z_Q39K Czy%H<Iq"r`48_N98J-tWX$$GH:YVX.CB{!/H}w8 8:E+*AR2-]x{0TA@{'&qkXCz .{3CD/tPAE)peEDm,^_ZRhd*e+ MF;@(3&&r KJ+;74`('LZUDAC#56"]  x\e*FZTC.n;rB nl:95kq!;nm0E&E&U()p eF$\Z*P:0&&HK]A=R?>lkj48XKI6IadqsxzzyH()?y fIAT'=A6~}ykvX --WX?7wtQs*)n.,q.X 7"XR{'?fe63~ d\~gi46wwr12`a</0 zR13#%ig00GR>@!!p)',  BT01_ ,3p(dD5N&t>]mm>RzQG}~gfoda2r#__ 882;~RpoR~Mc2XUwvv!"!oqszp!q4# _wLaA'|UV`bb-qq"=st $6bI-[\NHZoo4ta``sT@}|[> gA|JOba[>QHZ[[*h]yxsri"Z(Nd5%f x<NL|'fOQ&@]KJ>j-bd IbKGE/>m8:  o\ k|//v98* Z/E0# $j>Y9zEZE 1.2.-7LO779,1ONvu,:=<S$" t`O~;kfuy\JIWYGKe=;%Hk\j9t/u>F18j ]K9UUHUOB4%%$dkPh^\JW?{!! "#CC{! >%Yc}*sG|edShvhM*dV+egxVPu=DPOh "~_^_Izpt>g!&D=Efg]hjNxI7U)1/BuUvham+B82,'1GFPBAcYatvCCG1\/1ph$$IKUF#U  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEAFGHIJKLMNOPQR=STUVWXYUTZ[<;J\]^J_`abcde fgRShijklmnopqrstuvwxyz{&|}~ MNTV6 osWS<[,:-Ng_JIL9[vif" PukxQ7i kj_0643e'np '    MM] * !" #-:U$%!@&'()*+(u,-./0" 1.23(36456789:w,un; ~<xz=E+E;>S+?)@A7+8B C DEF*GHIJKLMNOc'PE*QR@STHUFVWX9YZ[\]mlm^w_`ab6cbd^%$efghOai75ljjk%5gm`~|nopq2r3sXYXsVYXtuvtwr\x]yzZ.0{B/.|} ~w;[MLQz76`r@W?OWPQ?vu] :9\^do\e2uPjil24BbOY}vI3r&uBP|S@y ?+G|D5|WI=gm+p1,[n!ps)YsCxc?QK ceT'LM"|SJ@}WIS[STn>?@wtLN,w^c65MLonVXWbcn  c554Lo(ZS>D  mkldc4ikXW7+<<z_Q39K Czy%H<Iq"r`48_N98J-tWX$$GH:YVX.CB{!/H}w8 8:E+*AR2-]x{0TA@{'&qkXCz .{3CD/tPAE)peEDm,^_ZRhd*e+ MF;@(3&&r KJ+;74`('LZUDAC#56"]  x\e*FZTC.n;rB nl:95kq!;nm0E&E&U()p eF$\Z*P :0&&HK]A=R?>lkj48!XKI6IadqsxzzyH()?y fIAT'=A6~}ykvX --WX?7wtQs*)n.,q.X 7"XR{'?fe63~ d\~gi46wwr12`a</0 zR13#%"ig#00GR>@!!p)',  BT01_ ,3p(dD5N&t>]mm>RzQG}~$gfoda2r#__ 882;~RpoR~Mc2XUwvv!"!oqszp!q4# _wLaA'|UV`bb-qq"=st $6bI-%&[\NHZoo4'(ta``sT@}|[> gA|JOba[>QHZ[[*h]yxsri"Z(Nd5%f x<NL|'fOQ&@]KJ>j-bd IbKGE/>m8:)*o\+k|//v98*,Z/E0#-$j>Y9zEZ.E 1.2.-7LO779,1ONvu,:=<S$/" t`O~;kf0uy\JIWYGKe=;%Hk\j9t/u>F1182j ]K9UUHUOB4%%$dkPh^\JW?{!! "#CC{! >%Yc}*sG|edShvhM*dV+eg3xVPu=DPOh "~_^_Izpt>g!&D=Efg]hjNxI7U)1/BuUvham+B82,'1GFPBAcYatvCCG1\/1ph$$IKUF#45Uopenuniverse-1.0beta3.1.orig/3dmodels/hst.bmf0000644000175000017500000005637207045144437021044 0ustar paulliupaulliu  BODY_D.JPG===dz>>>dze?e?e?dz'e 2? =?]>F ݼ)G>{g{hp'H0μ)>? e,>4.)@>?]CѾ>j6ļ ;)>?~?]0 >;Լ府)>?TQ>>i6ļ'<)>?e, ?>4o<)>?ѾYC?>j'p<)?? ?]?>ӿ X><)??F>T?>oh<o<)0??_C?>>hj<'<)@??~?]?4 =>98<庡)P??T?O>fj<0;)`??h,? >h<.)p??+?MGuƳ>hi 9V?g 88< 0?T?H>gj<'<  ?l,? ?h<o< ?>YC?n< >GT?j'p< > h,?4o< >WC>i6ļ'< >~?]' =<Լ @>TLk6ļ ; >l, 4. =ѾYCr'H0μ e 2" ?]Z ݼ G>{Cng ԝg>>dze?e?e?dz=n½E}?|<@ 1ϫ=⽪NY?;<t=p?h-]=<lߛ=>m?(>{< =>$X>CVKR< ΄=J?n?<ޠ̋=9?E?d<:;Vc=.:>5?lm.?<@#;D=W.:q?R><:;Vc=9DF>G?<@#;C= :7?<ޠ̋=v-ae><\#;l=[J?_><\#;l=:?Ed><5 fh=9Ec<5 fh=.:~rSt<$l=.:>5km.<$l=uҾ3>tU?Q<v:߾r=>?|8?[<#z{=rl?<"6;0-?<^2K}==3Q??<G0z|=>`0?V-<5v=>8<pAx=mҾt4tUoR<軔P=l#>;<f=p> =oR< Իl=QҾ)g?=Q<C;t=X>g? <G;=gP\>!q:<B;ߊp=pf[>Q<:t=Yz!i˾:<:p==e#><: =sp?n^a~<:= >zy>o?;]`~><H;=>yyo<:с=_>g=< :=ҾngŽeR<:d"=bQ\Lq?;< :B=pcf>佂eRX"V?[e[< #=;>mQ<J4=^> :2v95n=ҾVG v=>y3?*h:l=p?qս>3:r=\=N?&N?:hp=V=sP}?o@Z?}=ypQX>D=!{=mԉ>o `x=>>gKU=s:W=`Ҿ?HS8@$ %=>l?.>:o=p?==29s=0=A὏|?*:ነ=⽜?QG?b d)=p=>YL@=0-b@}^ =9?Q?@ ݍ===o|Y,=p ʽ}UHv=t0?R-?16=1ҾS8?}@p=M>_KU?陬軛_=Z>lYrH=p?>⊽陬ԻC=>h?½ (C;[S=ҾG g?ܘ>G;'#=b>Z>q?pB;s=ip?f ):H=7=$Nih >p:*i=?esھ2I:)=p9o}>:={>po%@H;=Te?>BG;=N=Mi?Y ˾6M;#q=p(;o>}hgH;Ђ=_{\o?\:~=$Ҿ0 gQh:Ƃ=>hE=љ|:+u=>Zq6:p=}p?ԉf>>љL;@u=xJ? Ll=9E?4f>y?;X=$.:5?.?@g$;_l=.:>or?~};X=9?~G>*G@g$;_l= :?\ Ll=~-a?>K>}k";x=WJ*>?y?k";x=:E&4f?C lF=9?Exb>C lF=n.:>*tY8t? o=p.:5.?y? o=E?Ud:o9Y;NE>G:b>@;N Y;NO??9b>;NZE7G?9lR;NtE>Xd>:Y;NO.:kR@;NEG:?fR@;EUd:?Y;O?9?hR;ZE>7G?9?b>;tE?AXd>:?o9Y;O?-:?b>@;? Y;E?Ud:rY;˻NE>G:*;}ݻNV;˻NO??9*;@8N\E6G?9;@8NuE0Xd>:8;˻NO-:;}ݻNEG:?;}ݻEUd:?:;˻O?9?;@8\E>6G?9?*;@8wE?:Xd>:?tY;˻O?+:?*;}ݻ?V;˻dE?Wd':n7NE>FG9`NquNO?S? :6 N=E)G? :n6 NEVd>9,/NPOA:npNEGG:?n`EWd9?(/Ov?9?n6 ٿE>&G?:?6 E? Wd> :?@o7O?9?`?luE?Ud:`4ʻNE>G: ۻN7`4ʻNO??9 N[E6G?9~NrE[Xd>:`4ʻNO2:~ ۻNEG:?} ۻEUd :?`4ʻO?9?}aE>5G?9? wE?IXd>:?`4ʻO?-:? ۻ?7`4ʻ$$$$      ! ""###!"$%$&'()(*&*%+$+'+)*,-,./0102.2-3,3/31245467898:6:5;4;7;9:<=<>?@A@B>B=C<C?CABDEDFGHIHJFJEKDKGKIJLMLNOPQPRNRMSLSOSQRTUTVWXYXZVZU[T[W[YZ\]\^_`a`b^b]c\c_cabdefgfhdhihjgjekdlimjnkolomnpqprsrtrurvqvwvxuytzs{p|q|w}x}y}z}{|~~~=<dzZ?D??dzV?7?7?dz!0?>dA0`UIh=ƚ.4? 4:Ih=Ì_L?c4:[W=Ì1?nԾ U54;nF=Ё}m]_>+ U5!:=Ё}y>Fd14V:v=Ì>H0`UIh=ƚyT%4v=Ì[29G0`UIh=ƚn]_+U5b=Ё}T]_+U5|Һ`={a1nԾU55={a1nԾU5-7nF=Ё}:=(=4Y[W=ÌپG0`UIh=ƚ.4=4PIh=Ì!0HdA0`UIh=ƚ4P 3U5$bIh=Ё}4βU5OIh={a4a^bU5Ih=uE1n>U5Ė=uE1n>U5={a1n>U5-7$=Ё}\Lc>4Y7y=Ì!0>d>A0`UIh=ƚyVd1?4=Ìپ?H0`UIh=ƚJ]_+? U5b=Ё}<]_+?U5Һo={aW]_+?U56 Ǭ=uE(6`?[;|.g=o)#>Mx?P;#,;g=o)W]_>+?U5 ;Ǭ=uER]_>+?U54:o={aA]_>+? U5:=Ё}y>T%?4V:=Ì[29?G0`UIh=ƚ;=?&=>4:7y=Ì>?H0`UIh=ƚ1?n> U54;$=Ё}1?n>U5;={a1?n>U5j;=uE3?0?S;4;=o)P?`UIh=o)}_b>6;=o)x?; Ih=o)30B;以=o)1nԾU5–$=uEX]_+U56 =uE#MxG;v.+=o),>6`Q;*,;+=o)X]_>+U5 ;=uEb]_>+U54:`={a1?nԾU5;5={a1?nԾU5j;$=uE}_?b1;6;=o)x?C>);wO d>A0`UIh=ƚ!0?8d>D0?Uʥ,.4?=4?:ʥ3kL?c>4?:31?n> U5?4;:]_>+?U5?:<:Cz>Fd1?4?V:s3}>?W0?Uʥ,zT%? 4?s3=29?e0?Uʥ,r]_+?T5?b<:h]_+?U5?ҺjÛB1n>U5?B1n> U5?-7:A=<>4?Y3}پ?V0?Uʥ,.44?Pʥ3!0Ld>E0?Uʥ,4U5?$bʥ:4[Ѧ3 U5?OʥA4ߒ4U5?ʥI1nԾU5?ĖI1nԾU5?A1nԾU5?-7쩽:3L d4?Yۧ3!08dF0?Uʥ,yed14?%"3پ@0?Uʥ,\_+U5?bz:/]_+ U5?ҺZүAb]_+U5?"6 ,*IG` ;>.Pмw#>Mx;>,;PмC]_>+U5? ;,*Ic]_>y+ U5?4:ZүA]_>+U5?:z:y>T%4?V:"3r29.0?Uʥ,*=?D=4?:ۧ3>@0?Uʥ,1?nԾU5?4;쩽:1?nԾ U5?;B1?nԾU5?j;I3?0;>2;PмVʥPм}_+b9;>仆Pмx>>A;> ʥPм30?;>>vPм1n>U5?–,I:]_+?U5?6 kI#Mx?;>w.Pм>4`?ȼ;>),;PмJ]_>~+?U5? ;kI~]_>+?T5?4:jÛB1?n>U5?;B1?n>U5?j;,I}_?b>?;>4;>vPмx??%;>vO <ʥPм4?U5?a;ʥI4?72U5?8#;ʥB4?\[4 U5?_;ʥ:!0?CdD0?Uʥ,w_]P}0v==NM):=ppXZk.x=$m?Չ Sz=Ҿ>V?ZDZq|=e>\ ?C:?ӻL=>y3*?)@~[=p?>r= i+=` +7?پ'iY` tR>N'-9'` N?R>'en` m>7?'W` UR N?' ۹` 17k>'H2k` NR'8/ W` پR7' j` ?ؽS/= j` ?E(./=8/ W` ?S=/=H2l` ?r(?/=@ ޹` ?=ްS?/=W` ?n(??/=er` ?S?ؽ/=iY` ??w(/=-9?/=MP` "-?p@^"V}` a2b >^홼z6kFw@^"aa2` V>b @^W&!-` OP?Ew@^W>` a2?B9@^WP?` %->6i:>^"sa2?u` XWB9>^홼 ->y` {PKw>^T'!-` ?NPwO=TW>` ?^a2B9O=홼PP?` ?!-i:O="`a2?` ?V>B9O=X*!->` ?MP?wO=W꾳` ?]a2?z O=XPP` ?!->XpO="aa2` ?V{ O=홼?wO=" F F00       !"#$%&%#'"(!) *+,,,-+-.-// / /0.1+121304 44453627+8*8)89796:5;;%<;%;':(9)=>?@?A?BCDEDBFAFGFHFIDJKLMLJNIOHOPOQORNSLTUVWVTXSYRZQZ[Z\Z]Y^X_V`abcb`d_e^f]g\h[iQiPijhjkjlPlHlGlmknhnonpmqGqAq@qrpsothugufuvtvswrx@x>byxbxdwevfz{z|}~~|{z} BODY_B.JPG===dz>>>dze?e?e?dz'e 2?=}?]> 8˼r=G>{ p/4G<8sP?G>{ p/4K<0r=??K<0r=??? r==??T>KA0r=>? e,>C܉֓r=@>?_CѾ>_Ʋ4-r=>?~?] >b$r=>?TK>>]Ʋ@k;r=>?c, ?>@܉,n?Ѿ[C?>EA ^T?>Q<E<,n>`<@k;r=@??~?]? =>dX^<4-r=`??d,? >B<֓r=p??+?MGqƳ>K<0r=`? ?l,@<֓uPp?>i 9V?G<8sP?HIQ& uPP?ZC?Ѿ\<5-uP@?}?]?S bX^< k;yP ?j,? ?C<,nWC?M<;T?IA k,?B܉,nZC>_Ʋ@k;uP>~?]= =d$sP@>TCaƲ4-qP>l, E܉֓qP=Ѿ]COA8qPe 2X ?]C 8˼sPG>{ G<8sP" 2t-G<8sPDd          !"#$% !"#$& BODY_A.JPG===dz>>>dze?e?e?dz'e 2?? =~?]>v $ohG>{K´;<( _?G>{KŴ;<(ph?r4?Ŵ;<(ph??P@3P@3?G oh=?LT>LM(oh>? g,>xüoh@>?^CѾ>E@aoh>?~?] >2oh>?TN>>D'?d, ?>񹼰+?Ѿ_C?>LMX x^T?>ʹ;%<+>B<'aX?<@aph`??e,? >%Ŵ;<(ph`? ?j,%i 7V?´;<( _?x _P?YC?Ѿ?<@a _@?~?]?= _X< _0?T?H>@<'< _ ?h,? ?%<+< _?>ZC?ʴ;KT?LMX< _> n,?񹼨+< _>ZC>F'< _>~?]A =3 _@>THH@a _>l, xü _=Ѿ\CLM( _e 24 ~?] $ _G>{M´;<( _´;<( _Dd          !"#$% !"#$& PANELS.JPG===dz>>>dze?e?e?dz4??X1z2s = (?X1z2s =/<9H=X1z2s =><G=1z2s =><G=?1z2s =???1z2s = (3>z r?K[=><G=?3>y r?s =><G=??3!<?s =/<9H=???K[=/<9H=??K[= (?K[=??K[=???K[=><G=???K[=/<9H=?? rK[= (? rs = (bQr>Ufs =???j(?j/<9H=j><G=j><G=?j???j(>z r?i&><G=? >y r?j><G=??!<?j/<9H=???xzi&/<9H=??yzj&(?yzj&@?[zj&@??[zi&><G=???[zi&/<9H=?? rj&(? rj(ӳr>gfj?3 >y r?K[=><G=?E2wFK?K[=/<9H=? rܰ>s = ( r۰>K[= (?Ur>UfK[=??? rK[= (??F r?۰K[=><G=? r?۰s =><G= >y r?i&><G=?wFK?i&/<9H=? rܰ>j( r۰>j&(?L3q>rfj&@??<G=? r?۰j><G=F  !"!#$%&'()(*+,-./010#23 BODY_C.JPG===dz>>>dze?e?e?dz'e 2?=?]>c ZG>{y2{y2D@Z>? i,>ֱлZ@>?\CѾ>izXZ>?}?]4 >.Z>?TO>>hP?h, ?>ֱ?Ѿ]C?> D<ܿ H<[??Q>T?>2<<<[ ?? ?h,?> <<[0??]C?>>f6<@<[@??~?]?3 =>*<[P??T?J>e6 <лZp??+?MGmƳ>2i :V?2f6<@WC? 2<<8T? D< j,?ֱ\C>hP~?]9 =/xk@>TPjzXxk>i, ֱлxk=Ѿ\CD@xke 2y ~?]u xkG>{]2>>dze?e?e?dz"C?>?dX<U=p#v?!>?`< k;U=??? U=q#v?<0??^<5-U=TkZ?RkZ??B<֓U=@0?p#v??K<8U=?C?? 8˼U=!>q#v??KA8U=R>TkZ??C܉֓U==@0??_Ʋ4-U=:??b$U==!>?]Ʋ@k;U=R>R>?@܉,n<U=!>=?EA<U=>:? ^<U=>0?=?Q<<U=TkZ?R>?E<,n<U=p#v?!>`< k;U=C?>dX<U=?? U=TkZ?R>E<,n<U=>0?=Q<<U=>: ^<U=!>=EA<U=R>R>@܉,n<U==!>]Ʋ@k;U=:?b$U==@0?_Ʋ4-U=R>TkZ?C܉֓U=!>q#v?KA8U=?C? 8˼U=@0?p#v?K<8U=TkZ?RkZ?B<֓U=q#v?<0?^<5-U= @      !TOP.JPG===dz>>>dze?e?e?dz8v?? o?|ڴFw?ރ<== `>|o?|ڴFw?ރl-==/>D?|ڴFw?ރ-6D=d=C?`:?xٴFw?2<-<\0= `>|o?yٴFw?l-==v?? o?xٴFw?<==:T|o?@UFw?݃l-==C?`:?@UFw?݃2<-<\0=?:O*Fw?烄֟<<=:T.6=A0=??|o?6gFw>>l-x\<=> o?5gFw>> o?.idFw>l-x\<=:`:?.idFw>2<(O<=:`:?2FwՃ>2<(O<=??|o?2FwՃ>l-x\<=?T82<(O<=?T8֟<#<.P=::O3Fw>֟<#<.P=?T81*:99l-:8C?99l-:<ƶ=?:99l-:1*:99l-:8C??qX>I?<==::n*?STE>`8?2<(O<=:C?n*?STE>`8?2<-<\0=?C?t'P'H>X:?<ƶ=?:x'&H>`:?8[K?l-x\<=??C?v>Te?l-==?:7>t?.6=A0=?C?|>Nb>*u?-6D=d=>:'>hv>e?j8?2<(O<=::?ۚ }֟<#<.P=:C?? }֟<<=`:?C?? }2<-<\0=`:?:? }2<(O<= K  !"!#$%$&'('$)*)+,-,./012)345467openuniverse-1.0beta3.1.orig/3dmodels/hyperion.bmf0000644000175000017500000010154707045144437022076 0ustar paulliupaulliu HYPERION.JPG>>>dz???dzdz!?6/>*#>F?)x w}l< ???2 ?!y H)B*-ʯ ?n;>?ap@G+ BTPNW)ߊ?H>%W?fԽ*HBƂhˎ?v?Z?0xnf?޽T׾Ώ_BAisH F??Z?/I<B?`b‡P?>0M?MBD‡@!?;?M?ӣ=BJ.@Cƒ#? ?*G?J+B\_{#?Ew>OY?1|B20)??J?9&=iBNU?x(?z>SK?RBl ˆº%0? ?B?G<,&B>mʄY0?>VJW?b= 4B}ȧx[;?!j?i?ǩ>Ba@ v8?5>typ?V=Շ)B1d*=?!?q}?h;~&w?bzJB+XcS? ? -s?(#*>BF@ABzsX?p?EZ?˴Fde>@Bc@7BwV?J'>kb?>_+Bd%iB:\?v>(N?&x ?Bj B@d??H?TE?9B24A13Q?u! ?BVVB^Yl??'?{@?kBi.@&qCl?o>-%?& G@?B?KBes?0?|>m4Ug?l 3C>CCc?c=Bq C x?%>ۺT>0}v?~bA!PvC?K?gJ?F=Gq?B}0A )?z ?LX?Nj}=MՏBL-Am’0?/{ ?mT?>ާBqAp|9?R ?,]?ʃ>n 'BT{A vB?N6 ?;p?">ned,CAs.~L?= ?N{?;>AV=f;CzAQAL??y?\j.>|HCMATjQ?E0?}x?Gc=i>-C\A&BY??̸b?=E>BA3B_?j?J?]#ɽ?I(B2A%>B`s?#l?>t꼸l?#Q>BVBA$C ??ժ>Sq}:A3 @|Y:?E?҃>M)>s]Ax @%4z? ?x\?N(>1UkBܗAb*#?>?gD?N>RCϩBA0N)??5P?n>q*BUA۠@?Dj?'zS?]?BBؘc?=?2vF?8m$Y?%hB Az9 CZKz??B=/+]~?ʘA ?/AoC+|?J> _=F 8}?[9À C ??6"?eZ>=>B.0A+??s+S??>1B6A51??mL?> hVBA '??F:? J>1CBVAȖ/????>@ ABiBo8?/ ?3bS?i>aB[/B ]-I??$[?? /B2 B,#AT,T?V?j?C>/5>tB BBFBEl??'?S >K>?OBzAk&B4`,??A/??MogB:B;ʋ^+B?KD&?8?G<*?C?BTB:RXH? %?z2?0?]IB7]B^@>!V?X"?ΞR??=FBeB~MBT?o*?}6?`3?or"Bc0B%B'\? d ?J?>>$fBcBBJc?-%?!:?>̶!?B6BMBHv?X?G>5>7v?BVA6]CB6w?ߋ ?^>Qs=qy?BAC ??]1?>= %B]AjVÂ??hz8?j>1XB6 B@S ?%?+??0澻ɋBDB,R,?"T-?(?F#?YξvBcB|t9?-?!?{>?O~[A_B oBK ‰?y?>A>DTAA,6-??M:?>-_rB$!B͗H?j2??T?kNTBBhF@I@P?q.?J?I?MBKB AZ\?Z*?h-?.?7>TBQ?BͅBءd?s!?'?'??9BuBB Gg???\?>ϜBlBBo?=Y?D?>2K?dSdB SBC}?D?1 <^?@s@C@J>2do?[9À C@QBBg2B/)n?t ?*F>e?/?7ZvByBBs?-?_>>U`?0/B1Bp Cq? ?$>Ι>gAAo7Äi?E3?c>I? ϾLsUBBy%?>:?n>J?0,{BPBMn+y/?,Q>?] ?N?l{%BjBJ´V?z9?> `X?d B}BjB_?ng8?0?ۺR?]=/iBa BwBah?=1?>B?Z>~BB5Bqk?;c&?Z>3??BЋBwOB???m>< ?pXA(BЌ!8E?!'?(i?,?xGB?DWB5 >?I?>Fb?,iwBվBwJ?jH?pR>@kk?J [6zBPBpҖbU?C?Zȫ>.i?vnB3:BAOf?3:?>o?|@>fsBBB8 ?1!??0?'꾞BؖMBjy Î?iI?!>ß_?BEB’/+?O?>jc?mD >B.B&B3?L?F>i?&4н_BDVBO^?|E>?tU>Rq?m&BBBB͙y??q9=G>Bo?胩A+BCi?ν?J>k>p3zXi?6AF&<Ç?1?v#>[?CpARBK=$?K?‡>^?}d4BBnqC?03[? >:u?(q?}:O.;BXׯBtZ !w?8x۽ U2B]$B`WJAj]?K?PUH>u?CHuAB$BWAd?sE?l>z?/"EBBCB#Xp?f1?>>T?>Hl1B>B9BXSs?`6(?+>:?)!?E/ BBoB\t?J ?Id>s{?fL?IB9{BCr{|?y?=W>z?eAAvBC}? ?= ?@ɩAv CJ~?\?L=}?C@z@nC@QR? 쭭AmB2 F?;@?m>=~g?⇷t BHBª7?`?҂>w?HR:]B߸B!|Vk?>?Z=O?YN=Z=B\B3Bj6o?:?Q'> k?}ո>!B)JBB z?<?=v?5Y?ґAeeB* C?y?> ?I@B.0`?6R?R=l?#(7A'BA?V?iX>g?00A+Bbۢ%?S_?U->x?'ABn/a[\?[?$=d'~?0pABE Ae h?eN?$#=~?' eBBZBlo?JC?A?T9*vBBDžBv?:/?+\=W?' ?(AdBBB?Tq?q>>L]A?ڣ%AGBl%ä ? 2? =ro? Ǭ:]@B'>?9?1k>'3p?DyVA'BhIx ?I?=|w?v?>>A@B0X b?!g?>4u}?[w=ɽsAM8B(y@v?UH?ԙ=t}?J˽`nA]B^=qBv?v;?yT=v-s?ɝ>AnB7BPz?)?ۻ@4?<5?/nA/BaB|}??C-->%Ki?l}@?BC>)?=e?=!OUBlC~L?\Nc?t?} WAE'B E(?"0k?O,=f?yAԿBfl? ^?Q2=?/mjAB5Ao?&X??tA1BAu?-R?dG=~?`'6A}B|C!B{?W|@?=}?=&@xBB}?} 2?/[???@BZBٿ~?Y?1A"?F?C?C3sXmBb&C?8BJn60?y?5h|?@B^~?>L?a=xz?w,B^ZB|?F?V>x?,Ͻ2%@V BBb?x&?F92?N1?b1܋BGBa?{:v>s?l}@?BCL9?Y>z?O2BRsC#ay?{:v>s?eAAvBC ?">}?@ɩAv C#ay?">}?eAAvBCu>? >>݃iaBn5j>?f;K8?A1DCBF*c>JC?m3 {?T=GVmB& >TX?eu?Hy#{B?³)?j|q?+⽨ x?~b9B”y?JP=[~?bP<@B}?'t#}BB@W?=~?Y4;'t#}BB꽖!g?=~?Y4;ɽsAM8B(y@ ,W|@?]wb?,>&@xBB*<4?Lx@]?>F̫BYBPv;?^wb?+>AnB7B >} 2? ?@BZBPv;? AnB7B >} 2?!ֽJ???@BZBRx;',?:T3]>?/%?L0vBoB)?!ֽJ??/nA/BaBx&?u#?]A?b1܋BGB)?u#?]A?/nA/BaB ?y4"o}?@ɩAv Cq;9 ?{Չk| v?ACڻ\?y4"o}?C@z@nCڻ\?u_o뽘x?C@z@nC>d3?6Sw?UBH9>e?vٽp7v?8xB(/ӄ>Cn?=zz?tKBVeѻB4{F.>#m?/~?S7LgKB~y?o5{?_)@By?\<?p@B=W?ܫ=~?%=}BB@W?n矼>?S='t#}BB@W?킼~? 't#}BB?=L? ?A;JBX8KBл>L?킼~? B^ZB@W?@7~?q't#}BBл>L?fs?#?B^ZB˃<[B?M_Aqx?>b>BʑB`F?es?#?2%@V BBл>L?/&C4~?w=B^ZB`F?P s? j>2%@V BB ,W|@?P s?j>&@xBB ,W|@?n3k?=>&@xBB]{<)r&??c4?+?d?И5BiCa?pL ?8EV?l}@?BCa?B=>o?l}@?BC ?hְ;A}?@ɩAv C>p?Q+sz=~.s8ػ@Z=ùH>Y? >oO^B5Ó>"?8==V?mʑulBXCó>=]?`<(?Q\<9PBeA;O=0B?r\q?>c´BɆB >} 2?a X?)>?@BZB{<?A ?D?zfUB$eCY?D"?c??C3sXmBb&CY?&B??B?C3sXmBb&C > ?>>k}c>t AX;> y1?pG'Wk? B>y8?f^v?dw,NŕBWH>oB?ʋq?H8D~dB6ª>P?ӽcy??|BM †B>BZ?hp? r3ثB$M<{=)U?+Ph?=‰B%oAr>$_?_u?-97IBb|ZA>a?z?k:&†BV`à>Z?:wr{?t4"¶BbjA^=+J?+z?, >3+CB΍;B\=(7?*|Y?9N>nDhBqBȨZ=W{.?ƹ׾i@?[?)7BdBp=y#?/?*?&ƒ }B+BgX?ѿ??Bny~Bx,l> ?00۾Q2? y6=HBZ>&?ސ]?sҾO%.xBi _{>hY?RWu?JJ°Bj=rjK?0<}w?޻=|]fBn* B8>DM?0҃w?KOnJȷBbA>0?zHV>ZDA&4w>WH?G=yTm?oDP{_º@B`~€>gN?, Q?^>pt?ʽ-}PBAN+Yr9>gP?bu?Kʽu»B@=|=?ǾT`?ΐ>Lt~BnmBC=L%?j??Ac1~BRB+=?Y 2>aQ?!CB2{C>\/?aɾ΢_?푾l¬B-?{>*A?߾8^?-s¥BV)B°O>*O?d/r? -B&>UF?om?“BOvAi>B?侥b?`>¸OBfBh=&/?O/-?>!ABfB_e=e?%>9?\@B!BUR<:A?&`}rb?)AV C[0>y(%?j G0*5?]羓(\?r¼B -›->;?i7ҾHb?i<ƒHBP#u>>F?;^ܾ$b?d/qBgJ_O>>E?⾜d?Aٞ3Br@=sm3?; $4?(>BlB>"?& Ӿ*:=hXFr@L6O>)?2Kqۛ>V:j^oB@ ڕ>*?flWD?ޚ葠}kBs>ʒ9?? -^?\:.BT0;?!( A?>);#B&?%>=l5?n'iH_kB؈B=g*?0??C̢‘jBB"=M!?0>)?¶TBBv> ?9M#->rN[R3¥wA>.; >?U%kg?Z#A B- Ä6>ot3?Z?f1_BHaqы>g4? #4{A?b %ZBZxA>2?xUH?@=žZBA=?J-@S>8-?ތ]MBBr=|?  =G?ZzBBv+9=?4u '=U?=*+ABޱ>I ??D!+? ɾũƏAB0l>&?=?TƷgUBqºE>?R8 ?Ǻ)T*$BF#>')?0:8an.?Vt7^BrKLTE>e+?s*5a4?;RoatBAx1>r>&??1E-?N|>6saBFB>Q"?,6?ÿ>|PBIB}=>d%?=5I ? >`BL|B=?=g>m?kBDB&=g??@e>?-f BB[A>[? cN{yN׆ϫ4;Ú>? ?,'h]>|4&!AD}x>?65?쾥g B܆¿ >7h?CSw ? HXBwl>W&?oD'#?/=чPB~YA?>"?M?'=BMB{VAQd4=Y?򍍼VY?Of:@(gS B>V?<:۪>x>AJùI>?Ku\?*IU¯B],A6>A?mX>r>ˉBXB%>(p?CB>?EjCBxTFB6>K?";M>O ?tIp Am҃Bo3<>깾/ν;!m?&e_vC>?'j=f1AAd!g><?sWƕ> ˜?2AKի>j?S>?9NAhĪ>f?S+?@LSF¼By \>,?8`|>埱< F~AAx6=,? @E= ?&"?hB)D= ?gx+h==?}zA\Br)>">3 |lY 7>ML?+*Z/`L>O?=3=q_*3B0Ath> ?o#>A\ ÝpMA6q=>}a?4au >$_>U̕A B4,>n ?zG>l?i"A|@B>e?F3N.=M4?Z*AgBv>>+t"*y@6_;r>?AUEB;~/(:g=@I>?{lFa>.jÂQ3A‹> ?Sqo/> 0cJAb~0DH>}2?5q;>I*2>J @AhAW9>?\g>r>:Y@%B w=?m*K=>?Z԰پ B<Z>޼*Q&d?n/`L|C>>1>ԽJ)ڍU)`>MU>WQ$3s)2a$#?hܧ>H?umS=to;)@‹w>8?z<(Z^JÚſ>^>>X}(` r Kj0t>r>!<6 b%,>å?;]>A0%?L@JB/=g<>/ Y?4lJB>>A3]1I\fCh&>>80e~Ded>>ji4¾j2SOC>P>4t%l8KiL>1&>#}=>BjfA 5>>TѻQ ?$T 3BI=¶>)ͼR?uwt>OB >@>:w=\?2Kd/>k>Ц/!ewr.AqC:܎>l> w7CLYluR+ˆy>Vt>.&sqbڷa ;Vc^\>>ks~םb < ڳ.ApD>e>hc!᷾> ÂĢ A!>£>L2?¨sB=A>aB "?DϭB="7>4} K'R?3.¾WB[>>RFvL0!>m>TKQ&Ӿ,;C0r(>>}mVveOz1wM>E>Vu>Ù ]Aem/>>Oо@>mY(4B~X=:> QG B?%1B>>q\0,!ٱTU¥ ûi>{ >MXq v3:–tg>f>#)[ۂg+HqB¤Nk> ><+-E=-ib>>к>M;0>¥l€RB>H>ƣIK+?-½/ªԂBNo=>(C?t†?B>>%uXy7->d>-$fvL'><>7e&yDe†vB&Պ>F>;;6, ٽŸz$œ9B>>Ы$#A=YA;A=6~>YeJB?t8] BX>cV>߽bT1l5A>k> M̾]rX{n  -5>>6>?c}9E\7 #>>u xTi*i#=>𘾘bS?$šBoMBp>|>aAѾح¬o!&>>J'fP³ǖG>&>ʓ>{LO#ΌWS94}>ؑ>QMѳ<º!—(>>DT>笪ۡԾ.\>¬B=o> ?ح3B>>T7TꚂ+|4b‚B>eo> Д\6e=$%Aͬ<|>h׾]Ήa?>qBDC_>>zϾ)7!j{1{ŒE">>þG]Yq rT b+>T|v>k b)udvoln>e>$whb4ak›®&=>B\"q>uJ„STB"N=탺>}\WȬ>sT2?7Fzwg)A>t>mξrna~V ݼºV=h>&ҾF[8>t2[5FB;P>7>{ˆ {D&jy#;>>br>2H$t\G@>}Ye>J>Snr+k]D-b}>8>\7AmyNHBc,>G>봾oݒ^=ϝyE*OVAS=>98X?J|Bj> U>c2 U/J+Xx>>:9חEbܐp$>M>\PUY$쾴YB!)>Bn)>[c2,x00&,s¯4> >.J8zi9=o!0Šv"AQ=Y_>N?xm >4¡¼CBhQ=> ӈ}g\$>5ŻBR<*J>P=>Z{_=+1>=L12N{;6f>*=o>Ͻ@r>n(sB&=<>߆,0`!>v.KB >u>Wʚs?Ia J:p>MA3x5?/*B:;>=;m?}  C>+>(>cfD4k?i X>>]=]=2<9|W!ٞ">pU(S)= 1='ł<ˎG ?OXt==4D>=ԖEWAf=">䵼}f=w hB((<~WK>H;z-jZ>m1SOB#"3>?JG$Y?;c!e"!C6>C >|=9.'`w`^>&+=||~ЗxvJ0Xh—a>j;pX>`c>Y*—BgX>TJT ?ɦpB??(>Į=pqf@7¡4?w>>LI=|ȟ@\H9Z%= =e0~XؼhwI?b|>jkw?=c˦<C ?==m} ^9@8f=@u6> =S~=@ I*BAB">&Wo?@X7  C?B> >5MHB$AoBؚYO۟=}H>Րxz ੗AGjVJI?O۟=m=>} =੗AGjV@:,=v`=*j"=vrA2ª^^AWw>#=t+a>`AՕ؋BHR/>=@>')?kAՊB+?A>>b6APQimÿ0?Wd>^>\t;EZA( ? p>'>gpdA6xF? >3>;Z|HmANjg?2>i8>=zմNAgP#?>yX>.yz>~A M6v6JI?O۟==f}a੗AGjVJI?O۟=A>1Cz$н੗AGjVi?,=A>1Cz%нvrA2ª^^Axm?Z%=A>1Cz$нhwI?i?,==Ȕ~|=vrA2ª^^Al? >>T>w:x^>`Al.B'x?u6>=Ȕ~|=@ I*BÁr?w>=t>`AՕ؋B'x?u6>=t>@ I*BÁr?w>(=>gK >`AՕ؋BOZs?>l>[4>}B:2kB ~?ѐ>(=>gK >`c>Y*—B ~?ѐ>aU,> uc2>`c>Y*—B+?X>`U,>uc2>ɦpBx?R/>Q;>]7>kAՊB+?X>P;>]6>ɦpBd">C=Q-;?RAehUCA?>>tpBڀ™׋JI?O۟=>7yrf੗AGjVJI?O۟=HJi>CIxΰ੗AGjVf^?">K>sH$u;BBboAi?,=HJi>CIxΰvrA2ª^^Ai?,=֓d>cy~;vrA2ª^^Az=* bT?RAehUC|?B">z=* bT?@X7  CS\?"3>z=* bT?;c!e"!C}m>jpv?3AɰzC-?>>n^VAmk,9.ڏ?u>>OJ6BO ?e0Z>}3>rr3B— Q?iX5>&>ogm>B,@JI?O۟=Od>cq'੗AGjVJI?O۟=́>Wvy:ʽ੗AGjVf? g>p>%~n>#B¸o7BÁr?w>x>In >`AՕ؋B h ?l>Ⱥ>ǾNuAOZ%PR?9>Զ?b *%T'Bnד4? E>>l qټbUB֧ϺE?!wN>>\iSRhB+JbD#ŌZ?]>|u>ei~=9PBAMxk?>3>d%>m!?B9¤BÁr?w>~>8oҁ>`AՕ؋BJCe?/>t>_1 ^>QYB%UgBÁr?w>M>$gz>`AՕ؋BmK>[?RAehUCx?(>d>Oj?A=8C|?B">mK>[?@X7  C|?m>=ѻ_Rq?3AɰzC|?B">=ѻ_Rq?@X7  C<< ?ٜ>?xϾ~+LB 3pâ?r>?4b¾kBch€f]? >:?>W8 >Bœl4Bm?1>>DC.>CBB#?>/?:f0BQq?+?.>>OP_7.qB4²g…f:?px>:->bf"،BbRSP?n>9>ocD==Bө]Acf?.>z ?pAm>{1B‘oBp?lb>P>9)+"?BBnBx?R/>1O>E_?kAՊB/t?Db>ƫ>;TJ?BB :;Cx?R/>CՒ>o4 f9?kAՊBx?R/>>E$f/?kAՊB>E$f/?RAehUCދ>iT?RAehUC,#?">8?@KBh̓ĦW? >I?jξ!oB}?Q )?9>;?e/,7þx.BA¤Bhp>?>Ȋ?K?uX:\?i=X{>B¸lBk?`Ⱥ>Bb?1?nBR?\fQLoB?1G4?3>?dvI8LBe5$R? +>CS?!Ie=|B0wsAАb?>.?d ˿>SB"sµBfg?>?d+OA>8BfªB|?m>M>sB0v?3AɰzC|?m>',ֽ ~?3AɰzC;~?|>(,ֽ ~?=c˦<C|?m>EL=k۽|?3AɰzC@J>P3Լ9a}?[9À Ch?)>v5?'Sv,|9B?> ]?"RWW꾧[SB4y g+?>L3?pm"Bjދ11?M>6?} B`Z >W?ݲ>}+?}N6W>B~–X1BTR?S>d@?=A%H >Bdv…Avu?B>n'>=g?3B`T^ CZ !?A>BB?QžBC^0?6>:B?2ձBNghi#G7?f>LE?^ Bxq&:B?!&{FCBF]šSD?T>~D?ٖ#LC(Bj¶XoK?t>&,5?43= B¾Aȇ]?6>>?!">JBHc¸քBj!m?>y]?Q ?lB~: Bq? !>>PȾLT?)KBS_TrCE?0Y>4T?,Vw "rB#e²?>H? %#BNc g|V?q>R?3(y>B"8š:DBHh?5>V5???DB#KB#?> G?+ZBx 1?Б>B?Y!}J*BVR*?>vB?x2B'%Nu 3?u>"I?U#kپ5}Bw?p]´C8?M>MP?| HqBP0°%K?i> X?=ZaB4:^A^]?>لR?sE>BgoBb?~> S?cv>/pB@?~\SD?bB)B%?>:Q?DzKBb2?w>xK?0̱C9jBZ Vme =? >{`?49CB [B?>;W?a LTBUG-jW?S>\?﮾n>B7bjBh?7>K?1/{?^BWBP#?>?^?E AB+b]$?,u>M?9<+ Bava(?><6S? B~0?p>aI=?01&'B=Zw5?h>pNK?f!C~BF XPMG9?s>Lk?Ef` 8Bg#»N?>i?ȷYC>]BAM)?>u@R?' ۹BvD?J>n?gC0=BB|q`@J>2do?[9À C@Qs?l}@?BC#ay?{:v>s?eAAvBC ?">}?@ɩAv C#ay?">}?eAAvBCy?JP=[~?bP<@B꽖!g?JP=[~?bP<ɽsAM8B(y@@W?=~?Y4;'t#}BB꽖!g?=~?Y4;ɽsAM8B(y@ ,W|@?]wb?,>&@xBBPv;?^wb?+>AnB7B >} 2? ?@BZBPv;? AnB7B >} 2?!ֽJ???@BZB)?!ֽJ??/nA/BaBx&?u#?]A?b1܋BGB)?u#?]A?/nA/BaB ?y4"o}?@ɩAv Cڻ\?y4"o}?C@z@nCڻ\?u_o뽘x?C@z@nCy?o5{?_)@By?\<?p@B@W?n矼>?S='t#}BB@W?킼~? 't#}BBл>L?킼~? B^ZB@W?@7~?q't#}BBл>L?fs?#?B^ZB`F?es?#?2%@V BBл>L?/&C4~?w=B^ZB`F?P s? j>2%@V BB ,W|@?P s?j>&@xBB ,W|@?n3k?=>&@xBBx&?1\O'?S??b1܋BGBY? A6?0?C3sXmBb&Cx&? A6?0?b1܋BGBY?pL ?8EV?C3sXmBb&Ca?pL ?8EV?l}@?BCa?B=>o?l}@?BC ?hְ;A}?@ɩAv C >} 2?a X?)>?@BZBY?D"?c??C3sXmBb&CY?&B??B?C3sXmBb&CJI?O۟=m=>} =੗AGjVJI?O۟==f}a੗AGjVJI?O۟=A>1Cz$н੗AGjVi?,=A>1Cz%нvrA2ª^^Axm?Z%=A>1Cz$нhwI?i?,==Ȕ~|=vrA2ª^^A'x?u6>=Ȕ~|=@ I*BÁr?w>=t>`AՕ؋B'x?u6>=t>@ I*BÁr?w>(=>gK >`AՕ؋B ~?ѐ>(=>gK >`c>Y*—B ~?ѐ>aU,> uc2>`c>Y*—B+?X>`U,>uc2>ɦpBx?R/>Q;>]7>kAՊB+?X>P;>]6>ɦpBJI?O۟=>7yrf੗AGjVJI?O۟=HJi>CIxΰ੗AGjVi?,=HJi>CIxΰvrA2ª^^Ai?,=֓d>cy~;vrA2ª^^Az=* bT?RAehUC|?B">z=* bT?@X7  CS\?"3>z=* bT?;c!e"!CJI?O۟=Od>cq'੗AGjVJI?O۟=́>Wvy:ʽ੗AGjVÁr?w>x>In >`AՕ؋BÁr?w>~>8oҁ>`AՕ؋BÁr?w>M>$gz>`AՕ؋BmK>[?RAehUC|?B">mK>[?@X7  C|?m>=ѻ_Rq?3AɰzC|?B">=ѻ_Rq?@X7  Cx?R/>1O>E_?kAՊBx?R/>CՒ>o4 f9?kAՊBx?R/>>E$f/?kAՊB>E$f/?RAehUCދ>iT?RAehUC|?m>M>sB0v?3AɰzC|?m>',ֽ ~?3AɰzC;~?|>(,ֽ ~?=c˦<C|?m>EL=k۽|?3AɰzC@J>P3Լ9a}?[9À C     !!  " "#"#$#$$$%%&&'%'&(()))*++, --.// /"#0$'((1))12*334,55 6!-6!767!7..8/89//9"":#9:":0#0;$$;%%<';<%<('=1==2*378.8>9:?00@;?@0;A<BA;<C(AC<CD((D1D=12E**F3EF*5G G- H6-7I8IJ8J>8>J9JK99K:@B;,L5LG5GH-HM66M7MI7:K?KN??N@NO@@OBAPCBPACQDQRDDS=3T4UVWJXKXYKYZKZNKO[BC\QP\CD]SR]D=^2S^=^E2+_,_L,`aIIaJabJJbXNcOOc[BdP[dBdePe\P\fQQfRf]RE3FLgGHhMMhIh`IbiXXiYYjZijYNkcZkNcd[dleef\gmGGmHmhH`naaobopbbpijkZkqcqdc^rEs+s_+mtht`hnuaauopviiwjvwiwxjjykxyjkzqqldzlqe{ff|]{|f]}S|}]}^Sr~EE3~E3T3Wtmt`n`opvpyzkzllel{e}^r^_LgLgmnnuouowxvwxyxyzzz|{ggttttnov{{||}}r~rvs__Wss           W                !!""  #"# $%%&'&''!(()*))")+""+#,$$-,-$-././/0/0011%22 33!!4((*+5##656#66,7-,'839!!944*(6:,:7,7;--<.;<-.=/=0/>W ?34@*@A*AB**B))B+B5+5C6:;7<=.=D00E11E%E&%&E'E8'2FG FGG? 3H99@4H@95IC6C:CJ::J;;K<JK;KL<L=<M2MF2?N33NH@OAAOBOPBBP55PICQJQRJRKJLD=DS00SE8TT>NUHHV@UVH@WOOXPXYPYZPZIPIQCR[K[LK\T8G]?]^?^N?V_@@_W_`WW`O`XOZaIIaQQbRabQRb[bL[ScEc8EFdGd]G^eNeUN`fXXfYYgZfgYZhaghZhiaaibbjLLjDjkDkSDlcSUmVVn_mnV_o``ofogfhpipqiiqbqjbkrSrlSc\8esUsmUnt__toouggphupg]e^tuouvppwqvwpqxjwxqjxkxykyrkl\cszmm{nz{m{|nn|t|}tt}u}vuv~wwyxrlyrMFFdF]d]eeeszs\l]z{z{|||}}}v~v~wwyyylM{{~w\T>T~\>>>W       44W  !"#"#$%$$ && !!'''"(##)()#*)**+,+,,,%$--../ .//& !0011''"$2-33.14'541'6"46'"7(67"(8)78(8*)+9,,9%%2$92%2:-:;--;;33<..</ !!=0=!051=506>7>878?*?@**@+@9+A:2;B3B<3 5C4DC5CE44E66F>EF6FG>>H8GH>H?89I2IA2;B</<&/=D5CJEJFEH??K@K?@K9KI9IAAA::;B<B&  ==D= CD D JC C FJ JGFFHGGHHK&K&IKI&I:     !!  " "#"#$#$$$%%&&'%'&(()))*++, --/./ /"#0$'((1))12*334,55 6!-6!767!7..8/89//9"":#9:":0#0;$$;%%<';<%<('=1==2*378.8>9:?00@;?@0;A<BA;<C(AC<CD((D1D=12E**F3EF*5G G- H6-7I8IJ8J>8>J9JK99K:@B;,L5LG5GH-HM66M7MI7:K?KN??N@NO@@OBAPCBPACQDQRDDS=3T4LMWJXKXYKYZKZNKO[BC\QP\CD]SR]D=^2S^=^E2+_,_L,`aIIaJabJJbXNcOOc[BdP[dBdePe\P\fQQfRf]RE3FLgGHhMMhIh`IbiXXiYYjZijYNkcZkNcd[dleef\gmGGmHmhH`naaobopbbpijkZkqcqdc^rEs+s_+mtht`hnuaauopviiwjvwiwxjjykxyjkzqqldzlqe{ff|]{|f]}S|}]}^Sr~EE3~E3T3NOWtmt`n`opvpyzkzllel{e}^r^_LgLgmnnuouowxvwxyxyzzz|{ggttttnov{{||}}r~rvPQRSs__TUVWXYZ[\]^_`abWcdefghijklmnopqrstussvwx           W                !!""  #"# $%%&'&''!(()*))")+""+#,$$-,-$-././/0/0011%22 33!!4((*+5##656#66,7-,'839!!944*(6:,:7,7;--<.;<-.=/=0/>W ?34@*@A*AB**B))B+B5+5C6:;7<=.=D00E11E%E&%&E'E8'2FG FGG? 3H99@4H@95IC6C:CJ::J;;K<JK;KL<L=<M2MF2?N33NH@OAAOBOPBBP55PICQJQRJRKJLD=DS00SE8TT>NUHHV@UVH@WOOXPXYPYZPZIPIQCR[K[LK\T8G]?]^?^N?V_@@_W_`WW`O`XOZaIIaQQbRabQRb[bL[ScEc8EFdGd]G^eNeUN`fXXfYYgZfgYZhaghZhiaaibbjLLjDjkDkSDlcSUmVVn_mnV_o``ofogfhpipqiiqbqjbkrSrlSc\8esUsmUnt__toouggphupg]e^tuouvppwqvwpqxjwxqjxkxykyrkl\cszmm{nz{m{|nn|t|}tt}u}vuv~wwyxrlyrMFFdF]d]eeeszs\l]z{z{|||}}}v~v~wwyyylM{{~w\T>T~\>>>Wyz{|}~   44W  !"#"#$%$$ && !!'''"(##)()#*)**+,+,,,%$--../ .//& !0011''"$2-33.14'541'6"46'"7(67"(8)78(8*)+9,,9%%2$92%2:-:;--;;33<..</ !!=0=!051=506>7>878?*?@**@+@9+A:2;B3B<3 5C4DC5CE44E66F>EF6FG>>H8GH>H?89I2IA2;B</<&/=D5CJEJFEH??K@K?@K9KI9IAAA::;B<B&  ==D= CD D JC C FJJ GFFHGGHHK&K&IKI&I:openuniverse-1.0beta3.1.orig/3dmodels/ida.bmf0000644000175000017500000007504707045144437021003 0ustar paulliupaulliu ASTEROID.JPG>>>dz???dzdzXe?d?vИCUO{@ք~?T&7?">? b@\J@u 8?F>#Tݾ"G5@p+u= ?!>bm*yt5A Կ9/+a&?W2?ZV>碵=KyMAH~>B)O2$?[>_=Y'2{8A鿫+*?G>d>~GByO|Ah!b,?k?>Vgo>]k A}H??iS0?W>Ƃ>=cIAO p4?y>-?X9>]N_A99A+:?bz>;?cc>D%b*A)Gu1N7?>(&?b< B+zA4dTQN?>>*>`k ^?첧A馾@N?h>>;ASgp?KUA>&0\@9#K?>?6[Q?HA8@Q? > H>";}r?YAX7@a?N ?ul a^|?p@?s A^?_>K%s|?w A(qAY??sH>Z y?7IA>tAGc? >uź41}?@>AMSh?/>e:E}?^@i%ӴA@t ??A)› As?>~Db@?P >3CNؾY?QB6a ? >#!,R>V?>w`4)t&@ǔҲDz/?q>N=>R'm-AdK}3?*c>N>ʳ\.A'w:?v>G?HAԾ( >?a>El?j>֘AOFe=?> i?qӾYAF@??)s?'>=_A?@@?%>@*~?G">qA5> @C?N>]?=>>ˇA`gC@G?>\>?@f=J*?aAaLw@G?k>#]*?=?AT@Y?3>DS<@Tz2w?E3A_CA >U?>=yq?vAW A޴?>a융 R@V0{{ M"?L>YfhG8p[AMv#/? >+|>熾Yn'AX7?2>?p^A2A}\#>??>d^?;^AVA?#>=r?޹r=ArR=DD?2>RO?EFn ?sAl _-@[K?ߤ>>~e?AaR@N? X> J>Wu?]A@Q?̒>2=M/y?yׂAឃz@aU?>Cn<vr?HAY?@?`>eþpc@>3so_)?{> [=ˌʿu8+^A"::?*>.?뾿$AUp:%=?>LA?$WAE A?T>B?6%U,=VA,@=+D?> :?>OAO^@G?a&>>ؾ"E?޹A/@K?a>X>&!`?5AH~@$?V>u彋`m&A'2?5 >3>uᄄTTcAX{Ӆ)8?">}*>42uA"!g?$Y>ߩ+4A7 @?+*>z>?S{`= zAaA8 E? >p*>+uA>A9j@P?>=lž!l?At@%^?>>;( s?A}}[#@m?I}>#9=>rox?R@[@p?z!>=/}?.@v>A1)?X>þokBEAC^ .?R>J=Π8buAI6?>.>p*6́"AA2:?|>e;>NоyAZLqymH?ر>u>_+r??ۤAto3w@{L?'>O= x\?A @v?X>׫=+ؽ}? ?ؾ3jAv?3>,>ӴN{?:?ۿ+A K ?F>xKѾlcX@Ii[!4?.B>e><5)~A?K??>i>n7>_>m)AQ?4I?<>V=O621?CA{Ar@U?I:>snG([?&Aq@b?>۽k<߾?Jf?Z@1G²@vi?|>8(F+2M@&C$?M>hx]`AGZ=>+?0˙>e򂽜 mV DA&v)jk ;?֕>q,>/mrA cAB`P9@?M>=9e{90>A d󑂾D? &> SAeW\?)I?y>::[I?A| KkM@xN?>7佁H?tJAU#+n@дj? >vԾF7TD@gZ~/?>Iܽ5[2AAIa3?$Ă>RKYf۾NAVZHJ:?у>3a~ӽbAde0(@?:>IE~\_=, rAe(D?>lbh >9BgAO[ j?vbK?3>]H?5AF6w6@W?,>޽|-T-:?@j@]? >-~S?>@@?G>Obbp?w?>\m/xN^*VD@\C/*?)>WdzC}SA1&E7?d>O$5yPؽ,Ae ]JL=?e>p&HwuO>?0Ac\,B?v>PXog/5>AAXT%>?˜>эQ(? 1ܸt?>ӾMXJ@.- z7&?e>:6@q,&u/?uT`>z QϕAVK̚Ѯgm'>HN@FƚND?K>I7y|]^>tAI4F>SN?Y> 꽿JP?@~+i@e?;>>%=iH? 3@]@{>J?%*>>h]HdX?@8? o?Yi>=4̾i?+@:@w?G>q>ٌo?c?p|+As?89>j5m@B 2V,?;?>վfF`@8@V3?P8>Pίi_jm@[ND,N?s'>/(#,_1>@0-?wH`?T8>=CHB?b@Ds@*#?N?>>P=g@Z 4.0?>!eQ/5s@@%4<7&p?$s>ԥ>]DA??1`@}u?Õ> >#۾]?R?n@=s ?%>_N{j?`jϿ8?b_>FJx`_m@ |#?<* >kHЩ̾w{@q+YU+?;Q>.U#þB@Ya',0K?/=1Cl > F@,?ob?>-pň>@>@ s?ߗG>>N?A? ;@?Yz>Sz4ή?H579)?M> c6~ƀǾ\?߻9R?|">\t13վ|I? eA@? =߯"W]{:O@F#J?3>>߽3t?-d;16AbF ?-l>BrھK|?{Y"?s_=(F4yB?0?X=e ي? ~g?3=D]n=(>5ד?zv?h}(>%s>(>?@x?f=pue=p 4@?)>GKY˞P/> t ?Ec2>oվ:Ӿ%7OJrc3z?Ys&>[龚uԾ 8\?M<|~?Œ>@>k=I?u= :@!?>`>}뙾.{c?&CA?Z= kl8D>j[.?!<ێgFҾ}aV'2됿ى?\*<>m⾓9[V=Vh}(>;Ğ,/<(>?@>x<73>2z=|xe>_@d㼤f=;Ğ-/<p 4@QOߗG>x >e_>A? ;@х;W>=Y?d @w@Vh}(>x >e_>(>?@Vh}(>9=n#>(>?@QOߗG>K>5f)?A? ;@Œ>K>5f)?u= :@?|=ԍ;[j(Zz½3=l溾(>5ד?|==k;=`ybQ ?N\*<l溾V=d㼤f=´ҽzu+>p 4@[<=Ќ=>z =;Ҳ@½3=ôҽzv+>(>5ד?½3=H{=(>5ד?@D<>=~Լ [|?s?>wi>7 AN\*<ЮQV=>E*=W=33j)g$Œ>j>4і+?u= :@[=H/ă7?kZ@^> >F˾V?&CAN5>yžۿg?^5 AŒ> >E˾V?u= :@q?>7y'ؾ\9] ->G>պ=6=>#JqY/|N\*<룍/E#9V=X]N>k=b=ch>L>N\*<ϟ=xzV=.&>$>.>=|n;Ivu(/@=>u>{v=4I~h@Me=l>a=-ZN?b @Œ>B˂>gyP?u= :@^>e>Ήuf?&CAG'lĎ>u3÷q?( )A^>v>6g?&CAW53>x>6g?-d;16A}? >/)F>F5{?`\ AK>0><%9>_׾c̿o4z%Q4> >"=qlɳ?۩=R>f=l/o>n@b?±> + ec>C>jn>>Naƾ\Dr93&D2>]!>>C;iH["=展>*}<کC3N?.x*qYA2>g>Ͻ>uM 8|K:>׺A>r>v:}쐇e %(@m>*J>k=ru>j![N@@=j>_M=3U ?.֏ @2z=ե>⤾<-s%v?BVAW53>G>rΥr?-d;16A< >ML>)ںHz?H!- 'A->θ>I:z]zʿ䖙>,i>>%&/)bW9k>9dV>ܹ>q2sW'L>ʕ?#>`g8lgžk>ۜ>~E>jFzޘ˽տ6TT>I->> B@Z# lV> |>>$Tys2p$h>Qn>v>Zdeݤq)I*UՏH>y> 9>~w7>8/{.;@S#>A}>> Fj>& @=5>_={zI?;?A&&=>=*9<{?/`ipbAW53>->;jr?-d;16A.;Ͱ>u}>zw?\yrQAW53>I>,?t?-d;16AK >I>,?t?`\ Acѕ>> Ux>25,WEB}6z7>>P>/&Yɸ?UJ`)y@4b>(>d=:G-?$#( @#=A>a;/a[:6V!Nڂݯ>e>0 >ݸ>H**>>>Ru EDɾЭN>h>N> ueeؾtS:W7=>N>i2'>plyhzD#Z>g>E >vj>tkAE@=;r>-h<5]?o~ AS> 4>+Sz>n84SXŐsc>>G>bmV zΨ۔>[>+>Eg.K8 >I>ړ>Rھq[b81F[> >Gg=G,x>3ɽV @5Ņh`F>f>kz7zFw5h>\>\zv$c>nG@KRU>>SM?53=@ A>1}>$+<Ao'?i *@w3%>Ai>oX?jO @Ɓ=>T="?-iA2>ͷ>>ȆgAbvˑ>a>M=mQk bE>'>վ&`r;7z>>Bi\"=~h9%>Qk>>R꾎K>6_@WX>A>fܾ/?)Y_@8AC>s6>2ckZ?1'6r@o>^>OQ{w?3qAT#>;S?(+˙=ſ>#>Z>f>@zAl8G`ɿd>b>y>V xqA{4>@j>b5>UOyL>5œ>>5hVV>b5D 0N5G>6>f!IԀfY} '|>>lBp#=i{#n>t6>4z4&>[@T]>*>h5 >Ծ#Mc?0|V@f$>L0>9@Dw?Ԩ~-y A~="{> - =5c=m~?CLRTMAK >׃>CнZu?`\ A ͺ&,?׃> CнZu?s?>wi>7 AA> >l!t= Ȕ>>SO,r z@#R.>=>Ѿ.1l>v> '? >ͬbݑ>M,**n>yV>NbAHl?:_j@,GN>>y!S?V =@ƺ/>~>l,$r?)6 A=>A>_ܽ}?8u"AƟ>>)>iRȎXlK=Z_>S>S o>u[;Z&>>D>!O{=0 Mi>>Q<<~#Lғ>R>Ѿc&>[DUey>>]9;a>,v>>EyqٽĎE|G&q>>MQ|=?9rR?]>0E>&-H >8?u0`@6>>E"=iy?kA=Ÿ>dž=H?&=m+AO:=C?F=I=}??AXV>?xJ>B{64>Xk˚>>61Y>u3΍I2>>>-? ?B i1n>>\>7H:h%w>QC>MKq;U%>>_oW;>>a㾪)=mc?:οe@p 3;^?H,>"31|? ?EA[?7?پ+: <aA?Ea>,?}6o=6\O E,> t>x?pt><<{Vc(?z\>? ,?-޾??›>{?-9?=ض>H࿆x>>'F?> #oZ#?E>i? >TD?=]NU?D@=>?0g(>|?' jA(?R=RU y?>o ?YXn>h.@;dep>[?C?cN>+@f?KZ> ?*> ?|?x@hR-> ??>|X?1t@@ A ͺ&,?Q>̽v?s?>wi>7 Aj>s?D=*p>FfO@yЁ>:5?|!gq=JqY@|>v ?.? Ii@8>| ?&c6?:Rj@~l>?!SO?Fyv ?<&?N ?/`@s@)>?(ڽK> s?֛HC@5AN>?>{ɾ}G?оO>.PȄ@Iw>?.&"?sݵ@gQ>I?"=?ԏ^W5\@YyDž>F?- c{E?[e=`@P>Pu? K?NJ>O$@ѫ@Pj>8Y?JK?,=҉v@v?7>?ԂѾl*?"?:Q}@VS@®=S?_<;I>]z?3@m6A>?Z5]jUV+6@(>"?j1]3F{U@!z>5!?a;5d"6+Qݬ@dզ>!?TS>E%xPV{@u>|?jJ?َ>*r@z*>Y>n{#?[ ?¼R? 0g@ov@_=?xMP4>vs?7@ AةYE#?&=Eѽr~K@ 18>(?! ?3N7hAw[>)?!N#0?vvu!A#A(Z>#(?*j>?C&? $ *??Ii6>z@|&?BC?)>Isk@@->B+?/2ľ9;?:?F5@ݭ@a,=?M<2+>I|?C^6/@A>$?fݟLlؚ|@eE>/?G?B>POi AxMz@@>(1?\,?h4?tlA@='?+C>#i?@A@= ?6=%t>px?0@E~ A ͺ&,?>4lBv?s?>wi>7 A*h7?|=1? že5&U8@bL>('?˾_$Wi(@D>3?7+tsK<@|Œ>3?VɌQ;J5 @\4m>_|1?2:W>uZ3 A>*|4?Q >WTFCA5!>;? IA?¹:D3Ai{ax>%"9?L?=S\,AMU-Nev>;?WRuN?ş>ZHү,A@?=2a>F82?'>?>&`X8AE?|?Q?! ">d?[BAH>:;? ؾO?{>d5_Q#A5E@1>??maKuK?v?&vA@Y=u7?I|?N?pA K@ j=.?ę֮>0p?P 2k@ϸA4??Y׾9(⾺@>l*?Ͼ-2\/˵@* >Q6? 7̾wgcHL@X!>C?zvŜ`> rx{ 'A>w@?fEG>hs"-A҅y>>?ξ ,?Y2/-5AM>8zG?վ9h?=f+9FA9z >MF?$¾d?BJ>$I,?AYDF>G?܌`?}b>2A!@Y>qk&?%%MW0ڎ@)n>"7?4Un C@&>)@?|@;KdA^E>nI?G?vi,GAK>_J?ߺU7g?TgdӒLA׆>s-R?UXοq?> =LA*i>|UQ?%m?K>/aCA2>&zY=7?InF>[d?Iq"|@K@<'%?:T>gz?R&ߛ@EA??Ǵ[ླS0RKU@>H?'I ?Qr>Aė>SS?f&N{?9k=)aSAP9nG >fOW?)c?>$Q5AZ@ur>3ib?SV%s?>꙱!JAz8O=KM?Pݵ:?T,?a2wsr A}@';:L ?;#%> |? `c_@yA >@?K· vTAS.>UC?S=cld!A>vK?۲?fE$9A'>kQ?ZX?TcLAR2>OS?^IH?#REw>>hD/AH >_Z?-]?2xQRAV>_?Y.x?NXA:>}!^?ҽT~?q;lUA ]>Bc?7um?ŧ>.]AAC@1<(:?0>0e?A@Yz@<1?,껗>Bt?9@A >4?`~g=tY =@c>{?@?L>!z濕A>ɉE?N{r>Rw1x?W"A+>|R?؞m+?<2*=BAo>m? s?}0>[_WZABU)>Qp?mh?=>r0LA9Fa???޿ݰ޾&QЦ&?*F@.?R!??bVm?u@X >Fg??nv?3H - aAUw?i@A?s?F߼9Ωz?b@Ku , ?ڏ ???e ?EW-?#/bn;=fyj?J@}"lY?JJ?v;>4d¾Q,AqF  ?Dt?.Gg_}?(M{;nľQkA^,&|S?@8?v,?Wy]*A@?X}V?M=< /?,:>KA<? f?(l?r(zdA2L?${?Dq?md>P!,eAUL${?Dj_?Uԫ>P!,eAx6g?h[?w>*4?-OA<<@UL${?3Y?o>P!,eA-|?B?yP?gGJ?hν Aw@p?.VO?*;L'?=?:?>,Ay@?&|S?yP?gGJ?Wy]*A@.?>?:>eXh$@Ag@ ?_?~=S??t_AOz ?rC6?Z`,e?>r?О@IB?J?h$>?Ndc$@4A}X?U?>;?ļ {;@OAO ?a?c+>i?@^dAߠM*?xf?& >Ty?S.P@MjATDĸ??k?Pg`<}?> 6@r]lAj*eKX?/h?+kf?J>&@|`AQ?1Yo?g?O%m_?>*4?-OA<<@ur.VO?нKL?^?:?>,Ay@ur.VO?0s뽕 I?߹?:?>,Ay@-|?B?\?N`?8z@ϒ A@;}?(.?a͞>i?i@Amq?<-?se>%w?!@@+ A-|?B?a͞>i?hν Aw@;}?(.?59#>{?i@Amx?#?N=I=?vpf?Kd@A`2#?s!G>X{?vpf?Kd@A`2#?y>e=0?vpf?Kd@AR?7`Z?AZ@_Aq@1Yo?g?& U? ?*4?-OA<<@_?N?޲xM?%8?>-<{̄@_C@].,?[B*?GUӽ#o>wt@^]@y+k?A2?{4Jq>pkwV@/@gG$%?J?d> H ?[4Ȏ@n8AG%w?B?>3?Gi@7%Ao(?Z?>tY?۾m@]Ara>?[?Ze>*y?`R@oeAظzuI?MW?p5>x?X%>6@"bAX?cd???9lS?GG?Ή@L%AU@-|?B?V.->&m?hν Aw@O7r?W?ͧ?!@]g@17Ar?3?w̾}ؽ3?~bd:@@AAW?UI?=d?V>#@KA@U_|?7?|>_w?<?7AA@?S ?, hڔ>̿@?W/?1O?p>yD?g@PA^8?ؖO?[>>Mb?!h@0uWAt%E?`&M?>r?Mç<. AYA?KQ?]B?8>q?X>HAIA$@k?ۆ"?V< 7?@ S@A+?*?u>.>ad@@]h(@?D2?@\r>?G*Y@R AOk)?:?>I'?& AoTAa]?˖6?(&!?E?yA3'AG@`?RX1?P>Ih?AAA A1e?Ȕ1?^.먳>k?@=AA Ai?-+?^ f>0v?@@Acr?r?[==u~?:@? Agm? ?;ٿ.~?q9x@6@/ A?>$?=>vDe@@/.y2?iA?9=>:?]A7A7I???C>fs?-:=4A$IA9@X?P:?o< U? ?^AP9A@Z #?+?/>@?I NVQ?Ͼ3Ax9h?u&vFA@A>5-?'?p1>*'?93,|@A-@*JK?&.?A>p?n=STyA3AvH@__\?=u$? bp>kx? O3A:@mACd?$?D=q}?@"@{EA~T? ?>>EY`tA%@qe$55?1?X>v@?i TJAbA>?J,?HC>Z?UyAG"AP?O-?z>k?N>ssA /1AB@bT?*? >vG??nlA$AO@j Y?+?<?M?LWGA1A7 Axf??[2ҽ G~?^@i@Am8??l˽U<~@V-@/G4??=U>}x@8@1CV&?7?>d?OJ3-A}9@/F?"?B>Əa?ՠ5A-UAg@`?G?xEͽ =~?hA@qAf? ? grg@?04??> ?P=1yA@Еw-?-w?>?C5aA /@'7?A#?->d@?@ A]AP&O?>"?ޣ>T?W@>F^A Aa@.K?Q!?^?-W?1>AABA@W?_/?]`=Z>߀p?sysA@Ac??O%ɦ|?|@2@RAd%i?St ?谺Og}?<@;>?# A!?Wl?K>n>Eb@A@%iW@?:oAK@ ("B?֓?M ?R?#[2A -A?R?+?pV>!>5cO?HAxV@qbAfZ?}??i~?^IAhӆ@Aw??(4;>=>5w A6@V27&?>?#>ح>{fMEAb0Q@ 7F??%~1?EX6?3=A@8@J?h?SUA@,@4O?r?!?! ?' ?RA@e@U??%=z=}?Aݼ@ G Aܪ-?%?>>ySOkQ~A)]@ a:?s?v?G?"޴Au@^yy=?ƃ?6/?JW?оAz@*A?í?x9?{,?A7@)y=E??CN?I9?-1;>A@H@I@QI??W}T?; >">2A@=G@{N?J{?;B?=%?1'A@!]@C)R??>}L>'PP/ԚA@C6?d.?ɷ ?D>8%8~ArP#@mڽ=??eQ?v>u˾A/@yA?& ?ojf?P> AE_t@@u<D?` ?Ld?#>k>AQ@s?dG??Q? >l ?TA8@d@?K?+?3?9)6? Aa @{@06N?9?"C?FB$I?#Aa-@@Q?w?:>"`?ÚA "@ AVh}(>;Ğ,/<(>?@d㼤f=;Ğ-/<p 4@QOߗG>x >e_>A? ;@Vh}(>x >e_>(>?@Vh}(>9=n#>(>?@QOߗG>K>5f)?A? ;@Œ>K>5f)?u= :@½3=l溾(>5ד?N\*<l溾V=d㼤f=´ҽzu+>p 4@½3=ôҽzv+>(>5ד?½3=H{=(>5ד?d㼤f={=}=p 4@d㼤f=gϻdp 4@N\*<ЮQV=Œ>j>4і+?u= :@^> >F˾V?&CAŒ> >E˾V?u= :@N\*<룍/E#9V=N\*<ϟ=xzV=Œ>B˂>gyP?u= :@^>e>Ήuf?&CA^>v>6g?&CAW53>x>6g?-d;16AW53>G>rΥr?-d;16AW53>->;jr?-d;16AW53>I>,?t?-d;16AK >I>,?t?`\ AK >׃>CнZu?`\ A ͺ&,?׃> CнZu?s?>wi>7 A ͺ&,?Q>̽v?s?>wi>7 A ͺ&,?>4lBv?s?>wi>7 AUL${?Dj_?Uԫ>P!,eAUL${?3Y?o>P!,eA-|?B?yP?gGJ?hν Aw@?&|S?yP?gGJ?Wy]*A@1Yo?g?O%m_?>*4?-OA<<@ur.VO?нKL?^?:?>,Ay@ur.VO?0s뽕 I?߹?:?>,Ay@-|?B?\?i?i@A-|?B?a͞>i?hν Aw@;}?(.?59#>{?i@A`2#?s!G>X{?vpf?Kd@A`2#?y>e=0?vpf?Kd@A1Yo?g?& U? ?*4?-OA<<@1Yo?g?T{7hF?!?*4?-OA<<@-|?B?V.->&m?hν Aw@U_|?7?|>_w?<?7A           !!"# #!$%""%#$%&''&&(()* + +,!--,#.!!.-#%./%00/11021&23()344)*5+,665-7,,76.8--87%9..98/:%%:9/0:&)4;*4<*+==<5=+6>55>=7?66?>8@77@?89@0A:12002A&B2&BCDC4E;*F4*<F=G<=HG=>H9I@:J99JI:AJCBDKL)M3);M4FE<NF<GN>OH?O>@P??POIQ@@QPIJQARJA2RBS2BCST(T;UMEU;EVUFVEFNVHWGGWNOWHOXWPYOOYXQZPPZYJ[QQ[ZR[J2SRC\S3](3M]N^VN_^W`NN`_XaWWa`YbXXbaZcYYcb[cZRd[SeRRedfTf(gT(]gU]MVhUV^h`i_`jiak``kjbkabck[dcDLCfl]UmhnU^oh_o^_iojpikqjjqpkrqcrkcdreSsUnmhonrtq\uSSus\CuCLvTgf]wgmw]oxniyooyxipyqzpqtzrztr{zdsrrs{esdm|wn|mx|nx}|y}xyp}s~{usCvuflwg|w|}||zpz{z{~s~gfgp}}p{uvLvlff~~vvlKLLL                         ! ""! " #  # $% %&''( ))(*  *)!*+" + +,-..&/'(00/)1((10*2))21!2*!"2+3"#+$#%4 5&5'6'/6271"82287"38+93+#9$4# 4$:,&;5<&&<;6</=60>//>=1?00?>7?18@73@839@#A9#4A5B6C<=D66DC>E==ED?F>>FE7G??GH@G7@IG@9I4JA4%J.KB..BK5LB;M5<N;;NM<CN?OF?HOAP9AQPAJQ,R-5SL5MSCTNDUCCUTEVDDVUFVEOWFFWVHXOHGXIYG9PIIPYZ%RZB[KBL[OXWG\XGY\P]YQ^PJ_QJZ_%ZJ`a,b-KbK[cLd[SeLLedMeSNfMMfeTgNNgfUhTThgViUUihVjiWkVVkjXkWX\kQ_^-lKcbkmj\mkYn\\nmY]nPo]^oP_p^-ql-bqcrb[sc[dsetdfueeutgvffvughviwhjxiixwjyxmyj^pobrzc{rcs{d|sdt|v}uh~vv~}hw~xwxyxmny]onop_pZ_,aRbqbzutu}w~wynynnoRZs{|sst||tt}~}}~ooZzpprzz{r{{{qqllqRaall          K                   !! ""!##"$#%%$&&%&      ! ""!!" "#"D        "#$#$$#$%$%&%&'&''  DDK           !!"# #!$%""%#$%&''&&(()* + +,!--,#.!!.-#%./%00/11021&23()344)*5+,665-7,,76.8--87%9..98/:%%:9/0:&)4;*4<*+==<5=+6>55>=7?66?>8@77@?89@0A:12002A&B2&BCDC4E;*F4*<F=G<=HG=>H9I@:J99JI:AJCBDKL)M3);M4FE<NF<GN>OH?O>@P??POIQ@@QPIJQARJA2RBS2BCST(T;UMEU;EVUFVEFNVHWGGWNOWHOXWPYOOYXQZPPZYJ[QQ[ZR[J2SRC\S3](3M]N^VN_^W`NN`_XaWWa`YbXXbaZcYYcb[cZRd[SeRRedfTf(gT(]gU]MVhUV^h`i_`jiak``kjbkabck[dcDLCfl]UmhnU^oh_o^_iojpikqjjqpkrqcrkcdreSsUnmhonrtq\uSSus\CuCLvTgf]wgmw]oxniyooyxipyqzpqtzrztr{zdsrrs{esdm|wn|mx|nx}|y}xyp}s~{usCvuflwg|w|}||zpz{z{~s~gfgp}}p{uvLvlff~~v'()*+,-vl./01234KL56789:;<=>LL?@AB              CD           ! ""! " #  # $% %&''( ))(*  *)!*+" + +,-..&/'(00/)1((10*2))21!2*!"2+3"#+$#%4 5&5'6'/6271"82287"38+93+#9$4# 4$E,&;5<&&<;6</=60>//>=1?00?>7?18@73@839@#A9#4A5B6C<=D66DC>E==ED?F>>FE7G??GH@G7@IG@9I4JA4%J.KB..BK5LB;M5<N;;NM<CN?OF?HOAP9AQPAJQ,R-5SL5MSCTNDUCCUTEVDDVUFVEOWFFWVHXOHGXIYG9PIIPYZ%RZB[KBL[OXWG\XGY\P]YQ^PJ_QJZ_%ZJFa,b-KbK[cLd[SeLLedMeSNfMMfeTgNNgfUhTThgViUUihVjiWkVVkjXkWX\kQ_^-lKcbkmj\mkYn\\nmY]nPo]^oP_p^-ql-bqcrb[sc[dsetdfueeutgvffvughviwhjxiixwjyxmyj^pobrzc{rcs{d|sdt|v}uh~vv~}hw~xwxyxmny]onop_pZ_,aRbqbzutu}w~wynynnoRZs{|sst||tt}~}}~ooZzpprzz{r{{{qqllqRaGHIJKLMNOPQRaSllTUVW          K                   !! ""!##"$#%%$&&%&      ! ""!!" "#"D        "#$#$$#$%$%&%&'&''  DDKopenuniverse-1.0beta3.1.orig/3dmodels/janus.bmf0000644000175000017500000007724407045144437021367 0ustar paulliupaulliu JANUS.JPG>>>dz???dzdz|=??o>U+;# ?;V:zBrS'?B>BsB?N=!@mB j+?-??P?ZѢBȾ@X/? >Fc?Ž{-eBAby 5?>[m?n7ѓ`B6>A;??b>V&|?L!.Br/)>?%<?{~?= SdB^(A?ĒF?q ?P&v?Z>0>BaA@jA?>q?-j>D)6>fB@ĸAS?Z{ ?RB? > C ?(RB^A BS?u>Q?L>,>⚨BknBZ?>2?|>9?{=B,侽HBDZa?:??7>N?mB@dB`? >v><>`?TB{nBm??N"I,=.ylA>-@Nc?''?旼z0>|dALAIM??w>hw&-~ Al><?'>N>iدI%>w*`BN AĤq!??g? U>4LBAQr(? ?H?{.>_MBA\h!/?h ?0)e? >×վ_@BRA)6AK?@?Wa?P>v>B\A AO??[K?>&X>)B2?4?B1ϒA;Bg?N?4{>9l> n?8B[A7zB'f?> >n>ubd?/OBEWBz4j?>|=4H>'z?)B0>Bio??=}C>8y?إA4F@B&an?> ~o{?ypBrDO[Baq?o>S=>{?rA$zBۋv?}>O>U1>qz?dA rB v??a=3>z?}Aj@[=Bb~?c>7=\T>j|? @4Y?ܽBj??T?V`=yC@W@Ϟ½t?>RqLp=zJ@mŸJ?C?0>d$>Qq6w23B*!Ar=?r?Ot?~>dB=݅BzA9EԐc? ? >>S?=VBd{A(gB[L{? ?Qj>_W>x?n@gAMvB'(??7?`>9veٔBgAf0 .?+z ?sM?>uپ/BB,g48H??A_?sڴ>>>B:Bi6A)V??)s6?>[Q? ׊Bb-B  Bo`?"?A?Z>qhL?4dB*AOBf?Z?>>je?NG4BoAC`gB+??t2=\>eyzAA@`R?j}?>F2>}B`FBAM,u5?z%?F?)?xB>4Bl |=6BOB9t/`?c!?`{ ? +>E;?KYB,BAB?Cu? ?>"_>w? .?:W[Bp'B'(&?S#?}#?c>"ĸB8-&Be•G?Ŕ(?Vp]?$O>J5s>]B?t> ?ʈB\TB"Alc??0e>>R? gBB`s B6SB/_q?=o?>Ӌ>t?AUHAXsB?'?t>3Ж>\tqJBzAag(?M.? ?1?"6B1PBJ¥_1?ڲ0?B?/B?7B@YB/ ¾;?2?(y?J?GB `BudF?63???W)?m?=u|BGddBt@^ M?2?hF?) ?d>XBkbBA\?i+?p,?t>3?WbBX>zX?'BDBpgXB ?2-?E/>TY{1AvA(SdD?#>ci?FA?oB^B?)?M> ?9P(B4BF?^3?ǚ>:?zH}=BXB n1'?9?..>8V?Ⱦ [BMrB:xw/?]=?\>NEX?S1igBxBo9?>?K>\[? sBzBr&A?wJ?>\?d37HcMBFBM?ș=?-?W;?vR=BBeuA V?]TC??22?ɏ>ZB4yBA8\?=,:?۷?>; =?oNLBvBiBa?9,?*>TF>lJ?"CB:B;Bo?*4?cU*=1{6=?mgA'? 2$? ==&>_paA|B,2 O?zH?>5b?3fTB({BkXA.e?H5?}>6y>FW?O BxWB-7B#?T*0? r>&?O 6A_dABon?u:?M1t>2=?_I!AcByq ?xF?,>/Q?|^BB7'?"F?C>1_?! 3BȜBZQ7?P?>`?-.?A0B!B m_?G?j->6??P&BlҔBkB#B?l:^?+>le?Eh'~Bn+BƹP?S?.>'i?|Š(B2BL&A3]? =R?:>h?+!|>BxWBA5je?mC?G>A>2P?BLBj$Bt?f)?.4>$>q?ύA BiB?#S??><\?yȾAӓBz$0,?*Y?C>Ie?8z}jBBB> fN?1a?JIJ> rn?Z2ҽNA"B f@ٙY?\`?a>q? m=~ADBžCAh7p?@?Zu>>[?۬A~B.ABvu?6?AzV>l:>-g?sATBQRZB~z?V ?;>U>u?cAiAgoxBv/AwBt¼??]=$|Z@o%A~H ?3?zaAd._A9IB?5D?O>e(? =<.A筀Bx¬%?)b?oN>4;f? "ABD.?ʴi?E>_j?^`ΝABun?TJ?i^>m"?^=?TAzB)B ?L1Z?qT>n^?}徾> A2`B1v?Z?g>[e?E֞AJB_¨Fs?DW?p>J??UEA=B'A Bn?/?s>^pp컾ͧ1B¡?j?W>Fl?h(A B)Q?+v?%>l?>M A3q?:/@VB+"Awv?g?>?r?>ܞ@*fBA!q?6_?>k? {>9ABgACx?J?@>c?$S?HoA*yB~6B?K1?/>D>q?p7AB1iBG+; ?U39>{? ?A_BOc>qS=!/>{? @4Y?ܽBt ?qS=!/>{?n@gAMvB7>P=?r_> me&&fBօZ>U?$=O?a}xBnJ¶ (?u?1>Ho?щU@B[~?D>?K.>y(>$g?3>.uBnbWB;a?3lm>y?vRA)~Bt ?c=i>yx?n@gAMvB"V ?c=i>yx?cAiAgoxB&Z>?E/>XwAF>I?&'S.*?>>ࡉBpڨ>f? u?F_vwBl/%>{?Y>s?9bBmH+B;g?y>4v? f>ܞ@*fBA;+X :b%B\Am6_?y>4v? f>9ABgAKDW?>?S= ?0U?3>.uBnbWB`J?S= ?0U?HoA*yB~6Bt ?| ={%]>y?n@gAMvBM>Z}`?i|?d"HfxB.|@;+v?]>w? AdTw?Ӊ/@VB+"A;+v?-z>eTw?ԉ A "t?TG>/@VB+"A\=^g?*>s?U=>*B0^Ag?j> "t?TG>ܞ@*fBAg?Y`>3em?uZ>ܞ@*fBAd2=H!S?hE\$/?M:?1fdBRBKDW?#=MD?"?UEA=B'A B`J?G=[x?p7AB1iB"V ?V=xv>x?cAiAgoxBV;>`u?0ħ[={ێuT@a7>MD?2J ?J4)B u5>0S?aB?#FBEo|>Pl? y?B\m Bx3lC>l?Vt;0?,Bp?p惽w?N>/@VB+"A=z:]?R??hLȵB"=A`J?V<#?\D?HoA*yB~6B=u^d?#s}9nBTB+D>? ⣽T>c?3>.uBnbWBOK1?)H>wo?p7AB1iB+D>?)H>wo?3>.uBnbWB>,?A>r&BRO>J?xg)(?%8LB7Q0@>qd?\ܽv0w?_zr>v*BǦmA-=*?rrs>=3p?}JÀ$BkBOK1?#t̽/_>Mq?p7AB1iBOK1?(΄>ov?p7AB1iB>l ?;/:=z:cPA¼>M4?y~>3fƒVIB{yk(>+S?C(\I?;!3B*‹>_?_ac?A̙Bd[e>D9d?s?x$B# >>Z?7پ*^?cm}> $BA'y=W?(nN?d ?¢XB|A^=.P?xY$?n.:?fBd B"T=I?a?O?%fBw*B=/x?ܐ?TAҁBHK^<[K>)$=$/}?|-?~XBB>\T>?mͬ>Nx˜tB bG>}V?\?ۦ)i?Ɓ(ƾB(> Y?eSپ8g?r;6¼B֙/H>U X?f U?SU=]3ŒBt@ >N?y79{'?u#?ހ0.:B7AF=8?$?v>Da?iaBȟKBn>˜?P{(->v' A\t•>cI?ľ)?$LC@B$ü>UM?⾼Q?@,S\B¢Bz$>L? eT?)#m¸ǢB6ye>L?vP?=/g¨B ?40>L?L?8?>SBAR\=bB?g>>fI?+&BuBE=¦?lG>hl?BNϠA1wBqu=0?־Q2>48d? WAvjB>A?8 T;?q wB?¬>?A? g*?1;ˆBRL>/C?&=:?dlW>BMAȫ >*TD?[a?5 ?d[ BVA =ȍ/?#оb>b?~‡=BWFB^=?/Q>m;%?삾T>{bnŽBš>2,?^>+`^760B1v] >0? S>0k|TBei<˜>7?^>&$²tB8"½<>??w .P ?U>HnیBbA>2? ]>2?u•WB B>,?ȁ>SW?T8BE,BA>.>?,8?j#>ņ¢ B+Hi=O?' ӾC>Yd?X(’CA, TB(=N"?ԾjH!>Te?&3k Be&EBj>1 ?^F>HxK[A,~Ay>&?;E>STs‹ 'BSd>4+?hJ>ھ9žKB3Ď>,?U]>4(D»TBp>L1?T! ? =.դ=lBۆ=d>2?Rb@>'O>¾mB@@ZO>5?8v?1H>K¹&uBnAQĞ>H-$?+59>^A)B t5>.?e0>󸽻Ω:`BNZ4c2>kO?8+>*?N˜%Bf-A>$?^ >MI?fL²1B&B> ?w̾:U>Jxd?؉fAM5B=-n?+Ӿk8>d?q‘ؔAeBOc>5^@>b}? @4Y?ܽB:B>?{> kU)A,>~t? GD ,>awBAX?>@?1yR@>FLtA l›>&,?3)\>4&WZwByD‘x>%?oT>Mu6BzUl>%?:g׶>As>n¤3B2@M>&H ?O>N>ffBFAs=-w?,۾\B>2b?fJ<ՒADBZ{=Ŗ ?vԾ>e?>A+AytBD=?XU6=u?@߃BϺ>>;O=By*37Կ:a>G?iRD>S5 ALzS>!u!?Jd>ZTy9!B>J ?+m<{> ?BN|>?t漓>c(=pBo@H >66?>$tL?FHAqBw>Ј?j1 = 6䣓´A]Vx>q?^E>ξ,ܥA!³ێ>?pb>F`0/A >d>T?fo>Y>1VPA<@إ= ?7Aݾ=޵d?'.3 `A,VBH>03?t)= (qLo @,݇>l ?c =*wT)o@A}^>Y?H>Z*=Ah>@ ?ry=>؄Ľ“A܃>? xhg>Oͽ9߸AkA[h>?v8>?H>|g¦Az@ I>?~\]m#>>moAAl0>B?45(>_1?vABBz=E?:=y`?t>@#cB>'>/F={m{hʫ7?;f<>]>:^>=(v+DL?¿>?K/F{< ɣB8ACK4B>f?}<4c X‚!Aoa>?hBW>&U?_8Azs&Bw=?>l? T%@CKBZv|=|? ھ=ie?2MT@cvBq>i>σ=={1y>?>^KlODþMȻCnv> ?&~r_==f@jNS>a>kI2=g>œp:A>>Ijw?O °+~s>^>Kx0nѨ#U&^>X>v]hS>dfnlq?A3>֞>yIwJ=?*iBC>>{}TȽ=^?x&/?-8Bv->K>rV<ͨp?8vIBN(= >4:=Cp?si-!)]B\}=>!c?[D}B==)=;>(~~)=Hw?d`3lDUB ^!}?|kOQtB>J>q5uT2M>/ܐ†v> Q> ޾8cƜS¿6!L>>1ȧi=.B>g b}4=JV?o%n&3B>>Q6>5AZi";# ٛ>>g'uc6|UNL4>b>cc<25޾*ú\݁>>~Ds84u#29>>3Rw L? ŸS AQF&>R>/Xk\y9?بb!B=\>j{!=*Y?W\œkyiB>>F(&@>(ozT̿-tVJM>>!7ю={Yp]]z>>\b!B!fŒvx䖞>>/ט-BpmlP>>>i=T4H+>1#¼Agj>8ư>;q@JG>>»7x׆@>bk>_| ]?Zһ3B3>q>9cU-l?l{3)JCBo)=1A> *+m?CB¸TB3"=Ig>|Lt?}~FDB#>ڀ>qO~9|Tnb̠>P>Ln`SvH4>>u:YtF&?F&LBb >0>t򣆾xO?"B=>־mGg?ӽ „LmBh>>-"Wq t¹|n”>E>վR]2·wx^>>"?Fi)ŠB_i}>7G>Vu< x缤,NEW> > Gş>G#iHhAwC>[>YDþ?wȬ)&AT0>E>/ Gھk8?cJ%B=3>|if?g\934IBg>2C>*׾ x>j! ;9ݾ;8aQ>;>NC&߾0Ƙtr„>ɛ>UlHʾyž> ?+A"A~>{v>a^?X 4B(=*> $!j?`*ƒfBCMT=[>.砾lo?NgvB+p<>ĭ) 뎾"r?c./X-B>>M}ɼw"l >)>ȾKt=#$± x´}>qE>HOiߞ>0] lk>.>QA>:dw„YP@Y>>47B/>U1ci™hBA0`A>> ?§c6>`װ0-l ^^H>_>ھnȾPy 6a6>՗>OVD6K|NDQ\j>s>P ~ʗ„:²㠇>fJ>o,Q,͠؏ܺpli>(>k6>[`P@2S>=>4K?ErȃNLAo>>{g a,C?`ˆ`— B_==M><ݡb?۸LLBO>>ھ'1'0~( ½\>k`>fPKģ]4¤YvF|>h>O 6Tp=H,28O,>p>Vpt0)?FeFBѾA+F=>ݎ.ou?{¹iBkz<_>W`(n?4|QzBR;} >ύɽ/}?^FBOc>L,=-}? @4Y?ܽBm+> >Ⱦ44BDcb0hL>S>2H۾2ơuF²B0Z>54>IgWv >VDˆ@K>.a>Fо.6?DyIAG >ds>nBڙf8?D¬xA=>ǭ}׾c]X? BA @BV'=~>,bv?5rHoB'q<>gCv?3Ic]rB->>lH3@^vxspvw>t>܅ee !ª­>ןO>ξg~;.]P5f|R#d>{0>⁣~O0aB€=y>1>7{b _Z˜&VX|>4>Q1oDo='cJ~]n>?>Y=?i@"Al?>Y5콛%={~Z ?mڸ >">ĩ.O,l@½6>ą>猾?1F3`k^–>@[>Xw#;w;L݄mei$2U>}=]BJm>Z¤ @0=zV>ir<C?̶Cµj!BJ=->(V0W?QTF›QBX=8>Δwe?G+. ]B&^>(w#j?b\$OB4>~>7>2}lǿC¨5>)>(⾽!b.g7,(>9>ގ@6{E$hS*:tL> >:tWO, Bžw>>m .u5JarЂ>z>@z<-f]){>3 >wQX?(]~At>(->%@.THNqV{\cKY>' = gա׾ S`2(5>g=}>7x @o=>`w{EQ?mFA,>;qJt?]NO}WkBG> ">/n$I=w>=̎ z5+XʭJܐR >=i5\v>Ĥ |³.DA6$q?XG[xB>r|>U<kLrlp .>U>m )Y?&نs Y>Hm=l'u>r>04VW–޳@ˏ==>^2>nq`Ay?$>K=D~ S@<($J­>u=2=b $‚o<~ =hse-q>jA 7>G5c&2?Q:[uBٌ9_>9 G\c?ܮJӶ^Bx˺>z[Wo?+0#DB4?8M>>4^1@H#h±g?y=lG>&t]쾃 {@q˜?i|=&>$p%@~B=k=wd={]{U9>>[@x@tp=22=5n>b@YAM1>ӷ= [%?=?2 A%> Wto?XR@q+BT?M>7!='ep; A%,¯VG ?ӊ>=Z؟bA!W1̊ OcC=\9 >|AEA,]Bn?k=Y/p ǫ>>[@x@q8b?n=Z=ks,>AG>~Aw?p=X/p ǫ>b@YA:}?>UgiG?=?2 Ap?Z.4>I?7ŠA\ԙ}Bs? 7>UgiG?Q:[uBw?p=U=e>b@YA:}?>U=e>=?2 AtTu>,n*X?=AtHB0C%>D$۾ g?(~A:“]iB@%> uO=, =!~? @4Y?ܽB?f> B=F}xpAd ?|d>z>3[3[C2rA6>aTtͨ?*>[>L7t9>cAL>B7"? >>M}dAˢ´_:p6?\S=>/=ow AŽPRL?cC=S,>m.|AEA,]L?cC=R>|i[=AEA,]Bn?k=R>|i[=>[@x@Om?>t^>PtAnxAw?p=\a>J>b@YAw?p=_?[j?b@YAv?Tu>I$#E?=AtHBs? 7>I$#E?Q:[uBB{?%>^ZKn?XR@q+Bk?&^>`ZKn?b\$OBD?>`ZKn?+0#DB?QL>վ,=/~lA 7 0?D>y>]_G¬AB‘Kc1?>6>d憜B:>Zf4N?,==>"sA2T@L?cC=>m*RnAEA,]L?cC=42>s]{z6=AEA,]$h?>T=poZx?_Ab”qAn}l?0\v>5=(>?Ah ۨABv?Tu>2A$m"C?=AtHBͫu?>n=yKs?(~A:“]iBov?1> 2Pt?nAEFl|BB{?%>n=yKs?XR@q+Bez?>i  Oz?b\$OBB{?%> Oz?XR@q+B*?D>w>z.K[LAQt•O?>y>>5C"PAN)tVjm%?%d=>~>™Tྴ|B>? >SѤ>mY@B> ]?n6>O>]YP(>xBa 9Aif?&=>U>C?%A“" Bk?>v=; "W?BZM\Bv?Tu>"uQ' W?=AtHBͫu?>QBq7`?(~A:“]iBv?Tu>QCr7`?=AtHBw?Z>sҼpaܡy?hpABB{?%>4=󦒾t?XR@q+Bi}?>\~~y+x?#gl@-׊Bk?&^>]~y+x?b\$OB]7?Q)>UE>޾10arRA,0!ݕSK?t*>>|Ga|< J4BF ¸#@+T?F1>>Jgf5> ,B:bڅACb?:K>=KWt?, BT֖ȶB9c?f>kA> 9+*?ЕBk+ BB{?%>н=;V;%z?XR@q+B ?>>=ь6t(ϰA.8m4?s?>vk?pOB@B=? *>>K=_ FF[7BL-(@0_?Ӄ[>KO=;G; ?*Bx Bdf?>j>3 @?BphBB~k?>f6=ayx?!B:oBͫu?>0ƽq?(~A:“]iBp?г>̦U40!{?"A|m=B:z?>|>aqmݩA,d}6?o>v>eqbW+Bx ”?,>S >31r4B:N’u"?.>H(>&2 z@B,p bI›/?5jn>= ?l BU_Bd´F?xQ>?QL 0\^B Qt?GQ?r>` ?MH[>.1lBTޡAQ\?E~>A>k;?PBl-Bk?>[ =ؾV3g?bB? -8tBͫu?>-Asde?(~A:“]iBͫu?>#\wBn?(~A:“]iBPs?>^3;7+x?;vAWEIB?JK>M>;Tp&B?(y9?1u>S?jdM *uBo'C?>2?HBa "?>#?6 Ѝ RBTRT[ڊ-?k>&?ΘW{B-ZX 3?7>'?-W׃Bhusº\wL?Ӭ>'?q?}!=B@joAfW?:>"?/;>%BWQk”IBR? >82?j> Bf^b.AG^?ߛ>V>N/1?kBk^R>B3e?6>H>\bN?pAB?TbBz?>;B~?B AÕWFBi}?>Ώ= |?#gl@-׊B ?_>,BUī}A :kjj?>cA=NM-z.Aƌ?>t>5оQ?:SB?N!?Ź>/?#. oB!·#?"Ŧ> ]? eBɤ2b<(?Y>$?w&tB:$?24;?c2>? W "?UB0gABia?a(>>fξs]V?`jB/*waBf?>{jZ>+p?"FBG}BS?&>v>䰾W:hBTT'5?ȧ>wJ?ZחBQn8PE?ܚ>MB?4%Y5tBB_A@i}?>:?|VYANœ|&?س>?0(CbCBvk[^̭/?ׯ>:A?fWھ\fB„&˜P†+>?v>=c?Ǿ)o}B 1z6~D?>ʨ^?ErUB~>ˆI?TL?>'U? J}>CBC2ŽA2]?>>krNc?BUdBMY?>!?0eA?ʟBV*, >Bl?vBuBԮi? >KU>-pv?O-BāQBhl?1>p=uf{?S@BGBw?>4h=6w>e{?AlA..BĽ?}>W>q-cUB|*5?>1>bJ*#qy&BG:%?O>1/;?⾰SBaw8?>4a?p¾1+fBSI?>l?tþS2< vBLZ—VOAR?>_?x>]BGB*gV?Z>&>J? ?B,q4Bn?[>;姉<?lBTSw\B?t>e=&>zBF1\ަsZ ?G>?-IsD:yB{/ …1?>/\?L] Bj91hA?|>y?\Fk2BIҊF?@>Xeu?B#gB%0@]sL?>dpd?Ҿ<>XBP6AA g?> ]>:"5u?͐GBC`?Bk?y>lH>}?&B*eQB?>>Cj]*Bj }_? >i>ϓ agCB]+nd.?0>=W?lYBxbO5;?ʈ> Cq?r2܂OBV7M?1>y?4P:=:BA\?>iA?@K >W?#ޔBCВbB/wf?>5> o<~u?QBd;mxBxI?>i?~v? =]1s>۸BК͓B!TU?m>UP?>=?GBl|p-B2Y?j>و:?bC>y+?\B~JB>K?Y>9{?=$>ѸBuAOc>qS=!/>{? @4Y?ܽBt ?qS=!/>{?n@gAMvBt ?c=i>yx?n@gAMvB"V ?c=i>yx?cAiAgoxBg?y>4v? f>ܞ@*fBAm6_?y>4v? f>9ABgAKDW?>?S= ?0U?3>.uBnbWB`J?S= ?0U?HoA*yB~6Bt ?| ={%]>y?n@gAMvB;+v?]>w? AdTw?Ӊ/@VB+"A;+v?-z>eTw?ԉ A "t?TG>/@VB+"Ag?j> "t?TG>ܞ@*fBAg?Y`>3em?uZ>ܞ@*fBAKDW?#=MD?"?UEA=B'A B`J?G=[x?p7AB1iB"V ?V=xv>x?cAiAgoxBp惽w?N>/@VB+"A`J?V<#?\D?HoA*yB~6B+D>? ⣽T>c?3>.uBnbWBOK1?)H>wo?p7AB1iB+D>?)H>wo?3>.uBnbWBOK1?#t̽/_>Mq?p7AB1iBOK1?(΄>ov?p7AB1iBOc>5^@>b}? @4Y?ܽBOc>L,=-}? @4Y?ܽBBn?k=Y/p ǫ>>[@x@w?p=X/p ǫ>b@YA:}?>UgiG?=?2 As? 7>UgiG?Q:[uBw?p=U=e>b@YA:}?>U=e>=?2 AOc>uO=, =!~? @4Y?ܽBL?cC=S,>m.|AEA,]L?cC=R>|i[=AEA,]Bn?k=R>|i[=>[@x@w?p=\a>J>b@YAw?p=_?[j?b@YAv?Tu>I$#E?=AtHBs? 7>I$#E?Q:[uBB{?%>^ZKn?XR@q+Bk?&^>`ZKn?b\$OBD?>`ZKn?+0#DBL?cC=>m*RnAEA,]L?cC=42>s]{z6=AEA,]v?Tu>2A$m"C?=AtHBͫu?>n=yKs?(~A:“]iBB{?%>n=yKs?XR@q+Bk?&^>  Oz?b\$OBB{?%> Oz?XR@q+Bv?Tu>"uQ' W?=AtHBͫu?>QBq7`?(~A:“]iBv?Tu>QCr7`?=AtHBB{?%>4=󦒾t?XR@q+Bi}?>\~~y+x?#gl@-׊Bk?&^>]~y+x?b\$OBB{?%>н=;V;%z?XR@q+Bͫu?>0ƽq?(~A:“]iBͫu?>-Asde?(~A:“]iBͫu?>#\wBn?(~A:“]iBi}?>Ώ= |?#gl@-׊Bi}?>:1>212?? 3@(@4(:;;A.AB..B55C6BC5CD66D<E=<=F00F8>G2HH3:A;CIDDE<GJ2J?2?9 9,$@K44K:KL::LALMAANBMNABOCNOBCPIOPCIQDDQEER=QRERS=SF=FT88G>TG8&UUHHV33V@VK@IWQPWIFXTSXFXGTVYKYZKZLKL[M[\MM\NN]O]POWRQR^SXJG?,9Z[L\]N]_P_`PP`WWaR`aWa^R^bSSbXc?J[d\de\\e]_f`fg`bhXXiJhiXicJ?j,HkVlkHVmYYnZmnYZd[doeep]p_]ga`^qbqhbUlHkmVZrdrsdsodopeat^tq^cj?umknrZrvssvovpopw__wffxgwxfxyggzayzgztat{qq{h{ihi|c|jc}~mnnrvpwp{i|ilkumnnrvvvw}Ulukrr'&U&uuU}}U}'                          !!""##$$%%  && & !%'('%)')*)***+++,,&- -  './ $00%(1'*232*,4&&545&5667"!./0(%18''8))9*89)2+2:++;,:;+;4,6<<-< - 7!/ =##>$=>#>0$0?(9@*@3*3A2AB22C:BC2C;:;545D6?E((E1EF11G8FG1GH88H9H@9AIBICBCJ;;J5JD56K<DK6<L L7 7M"/NN=>O0O?0HP@@Q3PQ@3RAQR3ASIRSASCIKL<M"NT==U>TU=UO>OV?VE?GWHWXHXPHPYQQZRYZQZSRS[C[JCJ\D\KDE]FF]G]WGW^XX_P^_X_YPZ`S`[S\aK7bMMccdeVO]fWf^W_gYYhZghYh`Z`i[[jJj\JKkLakKLl7klLlb7/mNmTNnUTUeOVoEEo]op]pf]fq^^r_qr^rg_hs`.t/mnTnuUUveuvUvweeoVpqfrxghgs`siiy[[zjyz[j{\{a\b|M|cMt}/}m/~unweeooopppqpqrxrxgsgsyiz{jm~nwsysz{{aalkla}m~m~vuxxxlbl~vvwvw~yyyzzb|b}|cct}}'.t.t               %'               !"# "## $$%% %&&''  ()())!!**"+  +,+,,$%--..//''0 0( !1*)1!1"*223+33,+,!$!$##%-%&&&/'0'(4))4145115""6#56"#767#72!""##%./00 ( 0(84 8(485856533,3!,'-.-./  8 8 8 766272        ! ! " #"$%#&'(()* )* * ++$,%-.-..)*/ //0 0 1+12+2+ $#33((4.5)56))7*67)*7//00881 9$4:;-;.-6<77<//=0<=/8>1>212?? 3@(@4(:;;A.AB..B55C6BC5CD66D<E=<=F00F8>G2HH3:A;CIDDE<GJ2J?2?9 9,$@K44K:KL::LALMAANBMNABOCNOBCPIOPCIQDDQEER=QRERS=SF=FT88G>TG8&UUHHV33V@VK@IWQPWIFXTSXFXGTVYKYZKZLKL[M[\MM\NN]O]POWRQR^SXJG?,9Z[L\]N]_P_`PP`WWaR`aWa^R^bSSbXc?J[d\de\\e]_f`fg`bhXXiJhiXicJ?j,HkVlkHVmYYnZmnYZd[doeep]p_]ga`^qbqhbUlHkmVZrdrsdsodopeat^tq^cj?umknrZrvssvovpopw__wffxgwxfxyggzayzgztat{qq{h{ihi|c|jc}9:mnnrvpwp{i|i;<lkumnnrvvvw=>?@AB}CUlukrrDEFGHIJKLMN'&U&OPQRSuuTUU}}U}V'                          !!""##$$%%  && & !%'('%)')*)***+++,,&- -  './ $00%(1'*232*,4&&545&5667"!./0(%18''8))9*89)2+2:++;,:;+;4,6<<-< - 7!/ =##>$=>#>0$0?(9@*@3*3A2AB22C:BC2C;:;545D6?E((E1EF11G8FG1GH88H9H@9AIBICBCJ;;J5JD56K<DK6<L L7 7M"/NN=>O0O?0HP@@Q3PQ@3RAQR3ASIRSASCIKL<M"NT==U>TU=UO>OV?VE?GWHWXHXPHPYQQZRYZQZSRS[C[JCJ\D\KDE]FF]G]WGW^XX_P^_X_YPZ`S`[S\aK7bMMccWeVO]fWf^W_gYYhZghYh`Z`i[[jJj\JKkLakKLl7klLlb7/mNmTNnUTUeOVoEEo]op]pf]fq^^r_qr^rg_hs`.t/mnTnuUUveuvUvweeoVpqfrxghgs`siiy[[zjyz[j{\{a\b|M|cMt}/}m/~unweeooopppqpqrxrxgsgsyiz{jm~nwsysz{{aalkla}m~m~vuxxxlbl~vvwvw~yyyzzb|b}XYZ[\]|cc^t}}_`abcdefgh'.t.ijklmnopqrstuvtwxyz               {%'               !"# "## $$%% %&&''  ()())!!**"+  +,+,,$%--..//''0 0( !1*)1!1"*223+33,+,!$!$##%-%&&&/'0'(4))4145115""6#56"#767#72!""##%./00 ( 0(84 8(485856533,3!,'-.-./  8 8 8 766272openuniverse-1.0beta3.1.orig/3dmodels/ky.bmf0000644000175000017500000007734707045144437020676 0ustar paulliupaulliu ASTEROID.JPG4>==dz???dzdz~h?e?x=-?:qʋ;'W<[$;u?j]?<A}?l}>\:ĝU< ;ii??W?>p?dR>ek;Q<;=Zk>``?El^?*p=z ,kp?bždk?`?=@<Cqv=\^I?lN?]>TS.<;=lE?w@ƾsB?fv?NB^,m NF< վ;N?oA?>QG?):˾eG;@<>j$?6?q?E2?*xT)?[k <;;*7X?w?U?9>ϳB?$/<#;;=6?0b?M??f(<cf?qͺT<3.<(ǻ:79?cbl?TS?@, \? rLM; <|=y?B>?'z˜;<(>C?YZұ>>/U;;ѧ>"?rF-?G=N;z>j?'J ?W7>SNi1;U ֺ%>2)?a4g+?Ai>+?{;= F>?QEl>)Q׾T;Ζ;mһ8>$?~:q&?'\G;2V>"?l_? 9>O;|>z$?=;gK3>G5f*_b;5>H0?d>I7ѣ/E;^a'o>"?x$>T4;`X7zu?w-?uo>Xp[:~_;!g>u)?eUC>+_;wQܭ?e(?>cU:ކ;V ?4-?>!?!˾;5;4?'.?AD>?=9Xd;;B?3'(<';V1?ŵ!?{ ?>9A;Ң;;AT?(?`??\= ;;5$c`?l?ʒ?5Gu=M?<9~@;mc? ?#?_&>V?N<92;*1>6űg?$s;3E<y?U>R9>ps?>;O_J>>+᡼{?F ; &N7>q+|>[li(gG>dP>MsnW2mK4 y>%5>Tc%ݾM>bt3>>֨V_fc@a&%=>}>7n>10'Z&V3Q#>>7"=(1^ d%I6'>u?SY29>10UęG]>2G?1۾^1x>^鴺@];ZB>? fޖ9Rmfh?~>B='9}8:G릺=w% ?5H?a}>f=)w\;Xd:o" ?>K6>/TEly;|=k?L?KeQ?轭^0j<|E:-Y%?>V?BսEw9!<ٰ@ o ?v> C?U$԰B?8&C3;&D<߹ڻ ؓH?x>UH?)e:>]8<;ۻ 3:??`/>bC?%<7p'<( TԤZ?չ>5?64ZC"?.LPC??ҹA1?7J`/?5T?Z}6?VK;C_ӻ,?."?; D.;g"c?/k>#?-Z,?Nu)?@l<6?g;՟<״c?>t*?pH}>?=)?~RC9??e&;<,) >I?T?D;o8<3x?w>>?n?/;7,G<|?[>>yTGi?\:&׻R*B<`;N)>|#o&1n? qֹƻE<>̜J1 b|?$-: fN<<>0a3%Fv?{9_I<>2\>%@<}h ,QG*Z>m> /OO *=W>ڊ>7Hx*=7Ѻ99u>,>…&;=0rwF'?>U>?A5<*)y,?h>2M?P$U3GH?*!1< tjӻ 4`?e>?J#?;<R;h?~p>>3] ?zT;,+j;؞]?ha>.Z ?6&>s]>e`;L 10e;o><=m *Xa?M> >_dT ;僌uD~;ښb>{0>##M8;ɻE,T޸.O>Tw(>}Qt BػD>~=s`nο R ?t*Q:;?>= U !V(^ZIdq{vV?Q=>>P{m=+;ZM9=gj? %>=>qlZ>:2;ijTf;x?=cB>rxsp >@3u:.Z_w;>@J?,}=83q:`P>p?m>͔;Xjlp6;b(>|?W p[>!`Ri#;x[a ?yV?>d6c?žAD?rA:"< %r)>-Q?ע=$d[?)j6<: z3?>R?isQE\?4jоiQdA? Ӿa+<+Ի>`ƻ= M?)C>w?X@;: ]x?r1;&A<޳}=Ҽ>{־*A?9λQA,<=$> $,g?c'QB& 00,?H <>.>$.?!LVO&!M?kz?f?0=d>d<`:w;ΤR??9? Ʒ0?0T<I:p;|4N?l>Q?:@P ?a =Om5s? 4 >#m&=ՎfcM;:_d?Ba>-?_D_,;]p>[?>#}?A;#_QCP?g>Ka5?yWp,5 ?N?o;X<<@⼣E?$<}*? >?:v5T:D:}>3',ǹ3o>|;~!>2N>h+p;=ͻzl)@:;>q>>us2>Lu; >6 ?0G\H=s>9:Ά; [=$?-Mb<܉?:2<+>K?lY t=$JWUӻk ;|%g>e?kPӠ=R'aջO;g">?/3?^6;?(?;<5/<;PȺ^G?.?y:?x/?o&=9<=;tb:LB?.&? P?˱ ? R1H<@;> d?u+Y>BHzBR;,|Q >>X>@@fH< O` >˻>+X@Ҿ 껢>tغ>-)'q^m6* # >>I8zV&!ܻ ̻G~?4 >1>4rL?19Ve c2<ܜ4 >I_pc?19Ve c2H_pc?\:&׻R*B<1?r>;cW?-?00?2M<^; q?,I> ?=R?=;MM9ZV>Vb?~a;Hj9@<>;-?Ab?t>T ;8;j>'=?22?K!>ru< ;͝:>-?*6F{&?)>,;=B;= ?NZ*>2?ܻ ;<=t?H%' #>]>?6c;VdN?mDn[>*>M;0zU?F>qF?㾴>š)<6ɻ;ZH?b;>O?z:P>%\xD?s#el=$-TM?օ>D?W. 3>u<=:3M?Ta> *?0<1=$>?ܩX{?f[q;v_XH>l0? F(M>?=q3;R8NN>57?  G?Ys>)."m;ߺ>bqD>IkhN9VZ>z]A>k.ηN|ݺ!=L> >Id@j ONԻ.> ?ľoei>^ek'ɕ;q@ >&>?>Q\;72ݮ6N.?8s>R?8wϗ?"PP(zk;d6?J? >9>PH;տ;$Ty' ?#? h>n>XY Y;D\;Xc>*#?c[!7>fx>VYh):Ǝ:\>V?J|U(>cm>7+LV{1;,:z>ذ ?f`F>>ac:Nfn>{>HCh&>NZPU(` 8Z>>W.6F;j>5GFk"i:T2e>>cVꖾ>-T[Sǂ: l?BZ#??_>&1S?s;U&;9<<`?k ?) ?ɑ>}K?1>?dW;;< >ݼ>_9LP0[>l>2羘 7U-Y>>J>ő1ڹ ~:݋򻸻m?L?l>@?d?w;A!;8M<Ȑ;^x?E?5C>5>?w?:v5J{ A:Pm:lt}>>$c2=y.(uy?RF|?z|?F%8M<(z?j?9ʽ8i~?eQC9S԰N?;S:= <<=(0> ЁLcfx>!B(kCb-;ڕj=!^>P=>zQ 8;_s=f>(.\;[?2[?>Wi?p[[;Mu'!?D<6;$Ȧ;/O??!B??,2>jM<;ar;Cw? ??a>ZN>.W]>md?!;ǻ;*<|?5#?f>v>Ro?0Pu:;ڤ8;]<=z0?l𾺖?4?kF;<ۙ=d:?K p+?){>qל(e<<.E?T>?k )Լp< @E.:O;B?U?v?[>Zck<kc:s޹^g#=>U+5O?MDo1<; >f="_ľkeꑽZfT4*a:*H=: T<8]c/%;_ =ք=0y'@>SsZ(;v:==k{Zz)aҩy|C\z::)^>Z̆>` Ļ } >xɝ>=+U,E;y֓_?~g/%V<80oGA?2>`!i?Ҿ"&=*d<sR75P?b=AV}=:߲=_salTi ?=:>GgyI,8ja:ʼX`x>gˎ=͡H}ҽ>vZ݂ ?,>1m>a=Ѿp:F?-=Ӯ>Ik!3;9LU?/?/;?G>F?QB?^bJ>+`!w;4fGwO<$>`,<@}?򖺢ԥNcȶ鼀-u?zppgE<?h|>t>tp5(/; {?8w>>vI4+K\;0!y;?͝>>#o7;Y7]$=<} 缔,|Z"}?>0=u?$-: fN<Y>L?U7W?x1Ļ@<ԝ>V?{#S ]?D'c?ajnY?Rc=o=ξhK g?$PU&>nu?J$Fcpjhr?O>k<۵ 4T:K?>%Q?r>_`;& ?>>i\^;09>Bch]?> c>-bW;׺.`?Mrn?=u4>y?#x:4vL<.ZyF ?e:d? =ތw?n9I<͸}i>in?~I~?mLodM<}=>?mHZw?>L-,;OZ;g >ܴ(?IK?v)>| Jr;;+>X>e"=#^{ʻw$>5/>=)OU)SJvǻǤ>A>>4b_K\>22B޻h?2>5J>Y%}>.;FpϞ;oZ?!>`>ae>;:)JQ5;y%? >4> #h E;~G ?RQ=ik>^uI,\(;ȢS~tS?J>A ?)O't;w$?CD>au?yA< |fe:s?>+>#L?B;[ĻY6?}+H?J;d|{,55BaԻta<[;FAH?kx$>?M]F<~;E 8CA?Fa>0?}94<5V <+]˦-? F?g?|=ԾO6c?IǼ$ LϾ*<=;HH0??a?N>ORɾe6<};İK6>)?V>c>30;,E;+>P?^o=>2:;<]?(4>k,?K*?Q <; g?x=C.?;v<O; VAAJ<͠;4.?(?R?>cO'B? 3N?&}>] <& ^B>_>?IA?=D>v@<:Q>]CO? T?=ͻ"<L:mC?aA?*?wJ?Nܱ#p?$F=JAʯ4"97d>>#Ť9>Å1޻0 :~|y>~o>4 35;l=D ǻ>Aỳ>`a>!.IH4<19o, h=ӳ>82UIE>λ ;]=> `b ?^d<)>xS>E1dIJR0v?y2?{> ?akC:;E6"?7>g,?Mؾa%<) r>-ݺ>pYݾXNs-0] >4>`rxvH:kfs0>9>}=5"f01k7>-? `B?76-!r;(̻s`>:8?^ҾF?. ɂ-?p*?"S;TKZ? e?s>9(t?+<>d;R<+:F?d?>/k?*<~M;ZE<4?=>Rw>RξJ;LѪQ[C ?1>R>gTE;A#*>10 K>޻3;3>>ACվ >^I(묟܀;T>y>t3nomq>!>wn>>~I;=EqJ(4>>{0T`־Pg^9(XQ> Fh>`$oAc=:\Z>ϯ>|C(6>jtZ:b{>Q†>WJܭ=E@d va?>?j.?'? ?;<;+g?G?s???;3<;A^[>m-='?u?\:&׻R*B>q\#%K>L {?WLki '(;j?(A>ڂ>`R^y;X6;?FO>w7k>Hwj": 5bTp?R@?`@>xS ?a8?w;R'<<^x?E?a>?3C?:v5?3C?o;X<<^x?E? }>&?.?:v5S=!?mď>zSg`lO;͈W>[?p=n?y⹾dXC&P?4^;@$"S>X?\";@:B..<>O>2w ˰|(9bٻ)mfN?,?m2*?e|-?>d@5*?eaŸ>SWv3:<;-BA>!>3͐=TFȢ"fd>8>A2Cm)F^.nZ?x> h?NɽJ?(<ԢE(;6?>7H?? S ;>?!žF,bp<߻J:> (>y8ڂ%»vM7>ĕi> 18ȗ+e, %7J>z_>6*7=?(N2 0HI!!?.>[,4>w)j:&5:n6=>i<WF?{ûZ%S+<';=>7签`?T'―}<!= >Z߷J"bX/?1 <|;?*z>k5?0 -#j?";*4<.=mD?z=i]?sջ.u:0/<]={?N>[S?;Vz*<?, ?!]'{>Wttl:L:yqPE?0?p?F>f{d<X;Ƞ":ñ>c>1 *5D~Rp_Yܿ>n>֪!"νdDZ*SS( ?9?N?#>Jݹ<;;BH*==>.:%^c?~6{X读:ʷ0?(>3} J?] ">$kV?t,U?bu8<ѻ>c?㡱No?NE^7E\?>Xm?hKD<|ӻi}=>6˾}zI? 6?ھ{$A?AB?M;̻ƒ.^,u{>t]5'>,;$O(= )?j~[>"?c??R\;09=!Ϊ=}1~?< :@1gO<8??]?=dT<:~wi;?7?.Z`?>ӾX ?TAX+>?PDG:H;>P/?Eɾd>!V޻m;>_9?&M+!?)E ˻< F??Y?W?RWZ>&:TL)Y!$>A>hƽ;c`KAaO>y ?ٳʾf.j ٔ:y? ?C]>b>v?9S:J<+?lA?V0>43=?D}?B*P<~3=ZW?}"ֺ0hi?i?f>c;z?$-: fN<2?.N ? [?>RC< E:Lc>O>2|+jKNB-q> K??O >(Ƕ>P^1s;`G:>?u]+>TQ>I];54x?;?6>>m^?o;X<v|>f?~:<'<=;-?,27E?Q>;mh<$>[>IwK"+Xg6ZV>]>(>RN L Dy>>'.s6x,=&{ӻR+ >5>6Fw> aԻn߿;\>H>LP"h>az̋;>>yY>dy)>G !%;4=P>OdW0 ?.Z""3;>D<-;c:N?K?"?5F?;d +<^:dW?kT?mb?mN?$);XA$C;b4<j;\?C?{1? ?>x;p&<6;1u>b(?[3* ?>M:α;\i^>[\5?-z7?>; =:+z?vS>1o>FFj?:?;{?=#>l~>dg>a8:\>QPG;Yp?1L>#>Ov>rSB;??R;5/?Yf?*{E;@܎=#>7=]&>a8:\>QPG;vS>8=]'>:?;`Ę>d-?!dWE?5M73;&L!?7P?@> Z?j}K;Ј*>MҩzT.F0j>?~Ⱦ3?f( ݽ89Z>8?$f?{޾k$z:@r> [>INUe8ܗ!?Z?&dD?><ۗ;UL'?7X?#^?a>;Ǿ1$<;YP2P?qC?(?>?>a=<~<;GT?ݲA ?4>t!?R"=mS;5>. ?w=iNP>:@,p>J?` =^UBl[F;>>Y ?5Ǿw*g64߰:&:?w>?k%?@C?\w?.̅,.^y9Bͻ&?*?@?.?öž<;D{>Z?j-mdH>>wk8W?[>Y :>lRw:󀻬o?5>WF+>8eY 9}Ż_{vy?R>Se>_(7?`:ٔ<̚t?> t>%9?XP;.I $<6>>8>/A:#"?-I<=bn;L>U>Q Iԝ;ԺB;4N3?2^Z?>da?H; R6SZ^C"?=׺*7?-?ʾ 8;-<J?p,?cd?>>p4`<’v;;F M??bjd?>>b<Θ1;C ^;>%8?&c־ȶ>EH 5<3V'>kC?Ҿ#?&T<pm?>I> ,?;f <-?>)?,<0PPxDt>z=5N?:?;?u/?b>>Wm?7iV;0<^=ZsD?SA?>0[| <;>n8?d& V? =8!!*D?Lec?x=c<<;?xDt>BO>Ϡ+?> |9?4BT>M?j;C>621@2Iܻ6e&>4>1riTKrwp➻J\J?$?.'G?-?{n7>PJ>Wnnl;PG;e>N?GJ?t}O`0<l=d~}g>@3u:.Z_w;1x>>G$ǔ750jZĢ>>#*5gV Tp4">C)?mӾy>+NCg;LN> '?A~^>"d` +;2?2Ul6<(;/=4O?4V?{=>q#2<|;'3>ִL?!P_E?v=< 6;Z=h>H CU?[ѻJ: /z>J1x?@;)(<:A??Oc?>M?\̄>.V?o;X<f#f?< :@1gO<1&>?>Džp?wK+<>g<>; 9?/>_?Ճ];uY<Nf6~?*H= >};q=8]c/%;%&Q=w =lF@ˉ+;ZM9v5.>>UU)%kY?i1 J;U=>?0v-Y9?=?M!<"=/3>~-`>g rK`;@܎=#>YQ`lLl>a8:\>QPG;V?=>csXb=;j'Tfע:)><@%?Nd?z>w?|;b8<*?0=@u >|(,k: bY4 /HU>^Z(?h1?Ǹ>\+i;):p>W1=s$=2rGV8LKػ>{Q>k|?< :@1gO<' ?{Q>k|?9S:J<<?N>{?Oպ8xJK.J=}?< :@1gO<t>p$=`ɾ;k<;'P28>l9?yI\?}A&B<`ߨ>`n)>K#Ȇ~0>U' ?!>9>q?9S:J<5缢|?>W>w?fP;R ; <.8{?%0J;JA.C׾t>ΕY<5P=O>f]>T$JRՔ;' ?շ P>wy?9S:J)?Ԅ=>?; Mк'?>eH?;^͏#<>=>&LYHӽ 5ET?>Wj/?4*Е>" < Tkeh;j>q?ӥZp?^=΄H<)(ǼRF|?C'bx?ul=%8M<((?ha?T>k??mn:;?< ,7?S>M?Eu <1:l 0?T6j?u>br?2H; F<#ȫ0=PuG½+;eRǺˆ=Y?]Y?fw=~.b082?l( [>],>"z;@DM5#?u=CS~>zw?0Pu:;ڤ8<hu/?u=BS~>zw?7iV;0<@DM5#?<9=/3>"{?0Pu:;ڤ8>ʰi?fP;R ; <<`4?9>S>3b};;EJBǼRF|?ک< ?^:%8M<(%z?U?%"5:T:D!kx?9S:J<@DM5#?>g>:{?0Pu:;ڤ8<;T?N>?Ji>V1;7Ѹ-;XO>y>AAd{?4H k%;]>a?>v>.CÓ;,^>HK?AS@H?N/ҺT-< >Pr ?A r%_':׻?J>Y>6gHd ;Z{I[>pv ?qft>8m:nC%ʤ>c]>v־n3Lmٺλܜ4 >ˠq9-a?19Ve c2< ><+?m~F)5>^"WZ6=;pỤ8>'>hG_={_ nzEǼRF|?+꠾$o?->%8M<(ǼRF|?^ Wyr? %8M<(lj?^ Wyr? C9S&s?7iV;0<?xDt>B=(86??z_2 <?>>Hvp:;>V.3sQx?|?g>.=>:r?fP;R ; <<@=r>/K2?^:Q0<Բu<(>k&??x <8?V>k;@?I# D/9<6rmR"j]?ʭaq?QO1>\:ĝU< ;`U?|`?>:VU;?$-: fN<x?;?>֪>/O?o;X<<=D+@3u:.Z_w;@܎=#>D+a8:\>QPG;ܜ4 >Tq=A(RY@?19Ve c2>ʟr?fP;R ; <<ܜ4 >iQ?19Ve c2o';O;Eb`U?uCaq?e<>:\:ĝU< ;J}?{M?g7=KO??T:D%L>q[?fP;R ; <<hu/?pH>d?7iV;0<hu/?}<^>d?7iV;0d?~:<'N>g?fP;R ; <<@܎=#>ndm&>a8:\>QPG;g:5?>V?HCM?~:<'<ܜ4 >I_pc?19Ve c2H_pc?\:&׻R*B<^x?E?5C>5>?w?:v50=u?$-: fNm-='?u?\:&׻R*B<^x?E?a>?3C?:v5?3C?o;X<<^x?E? }>&?.?:v5f>c;z?$-: fN<x?;?6>>m^?o;X<<@܎=#>7=]&>a8:\>QPG;vS>8=]'>:?;vS>=5N?:?;?xDt>BO>Ϡ@3u:.Z_w;x?;?>̄>.V?o;X<f#f?< :@1gO<6~?*H= >};q=8]c/%;%&Q=w =lF@ˉ+;ZM9@܎=#>YQ`lLl>a8:\>QPG;Kػ>{Q>k|?< :@1gO<' ?{Q>k|?9S:JK.J=}?< :@1gO<' ?!>9>q?9S:J<' ?շ P>wy?9S:J<ǼRF|?C'bx?ul=%8M<(ȫ0=Pzw?0Pu:;ڤ8<hu/?u=BS~>zw?7iV;0<@DM5#?<9=/3>"{?0Pu:;ڤ8>ʰi?fP;R ; <<ǼRF|?ک< ?^:%8M<(J}?{M?ʼ`?@>T:D!kx?9S:J<@DM5#?>g>:{?0Pu:;ڤ8<ܜ4 >ˠq9-a?19Ve c2<ǼRF|?+꠾$o?->%8M<(ǼRF|?^ Wyr? %8M<(lj?^ Wyr? C9S&s?7iV;0<?xDt>B=(86??z_2 .=>:r?fP;R ; <<"j]?ʭaq?QO1>\:ĝU< ;`U?|`?>:VU;?$-: fN<x?;?>֪>/O?o;X<<=D+@3u:.Z_w;@܎=#>D+a8:\>QPG;ܜ4 >Tq=A(RY@?19Ve c2>ʟr?fP;R ; <<ܜ4 >iQ?19Ve c2<`U?uCaq?e<>:\:ĝU< ;J}?{M?g7=KO??T:D%L>q[?fP;R ; <<hu/?pH>d?7iV;0<hu/?}<^>d?7iV;0d?~:<'N>g?fP;R ; <<@܎=#>ndm&>a8:\>QPG;g:5?>V?HCM?~:<'<  !"#$%&'()*+,-.//.0123456789:;<=>?@ABCDEFGHIJKLM1N2OPQRSTUVWXYZ[\]^_`abcdefghijklmnopQPqrstqu7v8wxykzl{|}~3HJKS:r*@@"@?5)6 tomYXprbMJIMhux_*G     CD  p BE')"!e"#$%&&'()*+,-Y./(a01234567cb20.LK89:;<=>?@=A4 dfBCedDE=F AGH5$IJK<LMNNOOP<QRnoSTU>>=kVWX5Y5YtZ@@[\  ]^mXLM_`abcWdkdzefghVj+i,dzkjklm 4nopqrs+tiuvwxKy,zI*I : {|A@}~b~{ 4~E/7FJ'&dC[C#e0}}]ONPNpPs& s9,HHQp:"i]$$]&%! &!$6-9_ i"RGEx+Sp vm^Q+t 6HIw))(?D#LB0R;"unmQVkjIH[XhEBDFEuqs"!%%"+,%$v8N2NHG7v78ea)oe|E F ddG4wvGSxkLUCVhKl`^y\ve!uWa45_rqPOPtZq_^whjJ(('JooYZY3ZFV<= o'f'\]X]]XXZcb n(]-,I*;}pzlGZ55Z3ab;dk U-SQ  \cBcC /^xw E??iWX=`D*# nn>:  U_+ XRg\\q[bF =32  ql rsTiR5*0$%45W$&SR;[ |}?A,w;ca_`!vuS )+xAJFJ# !p'ac1-BF'"!\(&%I$#"RPO('7*~}ED?CB,_-02/.bbab~^*)02Kx:wufuD76-/99:cKMy-1..02=~436  <<OAdVCU;* #CCV*6$LQ#] EBfcEVAJ76lj6  HN15H!O4GA68  8e#"y^tqw5r:P<Pon  [F^QeufR"ppZhggSTgi`#xSOQ#iKKURQ""QsrgUTTT>htuZ$<UU<>YaeMLGFlj{ kDhk%}&NLL##IIHf'',iyxGLs][\[=77=us|g~.(=Y-W  NNM 9]9]]}myM^^M;y9nRx8Z)*]s`=hm9ygldW"zlnpZofe~3-y;wyxWVXzXVh+*+#H113"hlkj{kjmG mFp\[qssq,t+O%%O#F<(ihKTSg2q:9 H,{jP <$K#-x! vv . ...K$UcPOPO{ ;:Sj||~/012//[rq`D33456'~q2D7// 0/&'EE0a.~W8=5EBd/.//6 D&(;<;U _`'o}oS|[rS##-9 2W [[ epNWVUW__W%fccw.109{ !11a~onn ;& &  !"#$%&'()*+,-.//.0123456789:;<=>?@ABCDEFGHIJKLM1N2OPQRSTUVWXYZ[\]^_`abcdefghijklmnopQPqrstqu7v8wxykzl{|}~3HJ:;KS:r*@@"@?<5)6 =>tomYXprbMJI?Mhux_*G     CD  p BE')"!e"#$%&&'()*+,-Y./(a01234567cb20.LK@9:;<=ABC=A4 dfBCedDE=F AGH5$IJK<LMNNOOP<QRnoSTU>>=kVWX5Y5YtZ@@[\  ]^mXLM_`abcWdkdzefghVj+i,dzkjklm 4nopqrs+tiuvwxKy,DI*I : {|A@}~b~E{ 4~E/7FJ'FG&dC[C#e0}}]ONPNpPs& s9,HHQp:"i]$$]&%! &!$6-9_ i"RGEx+Sp vm^Q+t 6HIw))(?D#LB0R;"uHnmQVkjIH[XhIEBDFEuqs"!%%"+,%$v8N2NHG7v78ea)oeJ|E F ddG4wvGSxkKLLUCVhKl`M^Ny\ve!uWa45O_rqPOPtZq_^whjJ(('JooYZY3ZFPQRV<= o'f'\]X]]XXZcb Sn(]-,I*;}pzlTGZ55Z3ab;Udk U-SQ  \cBcC /VW^xw XE?Y?iWXZ[\=`D*# nn>:  U_+] XRg\\q[bF^=32 _ql`arsTiR5*0$%45W$&SR;[ |}?A,w;ca_`!vuS )+xAJFJ# !p'ac1-BF'"!\(&%I$#"RPO('7*~}ED?CB,_-02/.bbab~^*)02bKx:wufuD76-/99:cKMy-1..02=~436  <<OAcdVCU;* #CCVdef*6$ghLQ#] EBfcEVAJ76lj6  HN15HiO4GA68  8e#"y^tqw5r:P<Pon  [F^QeufR"ppZhggSTgi`#xSOQ#iKKURQ""QsrgUTTT>htuZ$<UU<>YaeMLGFlj{ kDhkj}kNLL##IIHf'l,iyxGLs][\[=77=us|g~.m=Y-W  NNM 9]9]]}myM^^M;y9nRx8Zno]s`=hm9ygldW"zlnpZofe~3-y;wyxWVXzXVh+*p#H113"hlkj{kjmG mFp\[qssqqt+O%%O#F<(ihKTSg2q:9 H,{jP <$K#rx! vv . ...K$UcPOPO{ ;:Sj||~stuv//[rq`Dw3xyz'~q2D{// 0/&'EE0a.~W|=5EBd/.//6 D&(;<;U _`'o}oS|[rS##-9 2W [[ epNWVUW__W%fccw.10}{ !11a~onn ;& &openuniverse-1.0beta3.1.orig/3dmodels/phobos.bmf0000644000175000017500000007704507045144437021540 0ustar paulliupaulliu PHOBOS.JPG>>>dz???dzdzx??P>B1z+q?N">ZG ??>];=}?g>$e ?O?=НL~?xU2 G?ޕ ?/:>?=ezv@V? uc?{?z-=Q=~1}@L3? w??M=n=q~HM@O>Z) ? >:'$=ۯ@[ &?+% ?s?K>V|$A?k~)??Ȗ(?x@.A'?C#?4?>i>T$=)/?L?zf?%GAG?>> C?:d>lw?vS>?A4Գ&>J?K?y^?gJ>5A{<)&@lK??bQ?3?U6A,F@la;@O3T?( ?s-?A;H?d"N?A ўe@R?hk> ;?q -"s.?LA@j?9 ?t>=l?/@ip?f@Tl?|?>qon?]@y>&A6d??4>^b?@=z@? ?q>=9o{S@i?! 1? ?yT =T}ތ@س?t S?;?T>%>zL@2w?> Z?>iG>_z@ln Wu*?1?2?Wcd>..AI@"2^?7?<@?<EY?K@7w>~@Y??An?T#=2`X?A6@6@E??ur[== }і@t?o$??,>hS>il A}@VG7?l?q?y>A<_HAD@D&/HA=@o>HI?7?y]?&I=> =A@;\ @QP?l?s5?=3?No&Ay@<`w@p? ?9rt>S^=v?GV@O?A7q?R?S>~ȼ'w?mO@>Av?>>G |v?] @8P A1??]\? >=A @aã~X?[??=ιY?, Ay@q4@pb?2?nz>1>:@a?@5@ka@~i?p?A>]>?Eh?@ s@g@{? ?W >' >z?\X_?븄?RN Ap{?>>|?j?] A-??b =\F=b~?Ľa>&Ad??=>N=p{"=e@A @ h(?#?u ?:>@5@EA@z!^/?ߤ&?l0?2>c0Aɿ@(34?w(?dC?Q?e39A{@ݰ@? n#?v?IK>Ή=$IA׫@biF?R )?UU?>>b>@M8%?c1A@8@no??>Gt1>0s?;e@*q@Ay? ?Wh>㖆Iy?&`?y ?7?P<><<{. @4y@{|@@?vI*?b-C?i%?j @Ae)@ى_N?)?8?1>ݼ"?)A@\U@$U?2(?EC?j>9G?EA1@@g[?e'?r>jX>)i?YK@$@n@M`?#?Po>7,>th?|0@쭄@.@?? =Xq&>{@OA@* u?%'?롗<4>w@S(@['?+?W1>?B>cA@G[-?[~/?&R>??wA@mކ2?n/?g ?TK?T(A@a9?2?Ѣ>>b?ys" (A@5 sF?2??[Z?*=C*A~@?{O?<1??k?p ?gxA:'@R[@Nh?)?p>zj>:c?-5@7@y@l?|?&> > j?9@N`@ @?&,?r=f>i@GA@~$?4?P>$?<@@fl(?H5?S>W>?'@OA&h@AJ3?_9?*>j?xA+#@9]@?p|E?O>^?13@^AfѾ K?d9?T>s`?z >mAQA@R?|;?>B?z>#AAf@+X? 6?^>>"G?4z@"@}@]?t2?>u>NY>4[?W@̕@@c?J,?*>h>pf?f͸@c@@t?I?P>{>S"u?\P@E@KA?P?oq>{¤u|?!?D ?.L?O> >.xj@V@@ ?9$&?,>>yty@?Ԅ@~)?!E?)>h`?Tj@J AM?pA?>`?=@ AQG@F x?ii?c`$>V>v??} @TAȎ?L8?< ?>S_$v@@rq/?"??N]<?.K @@N7?tH?>\_?X-Y @- A>W?L?%>3S?>uܺ@CAx~Y@Qd?2?>,D>BI^?v@@]@*@R??iz>8JZ>[c1@B@w?b 3? k=>hE@̅@A^!4?K?>/a?C@rAC1{B?(YQ?? L? *+@bAx J?P?C!?E??ޑ@6{Aۊ?OP?gP?SP ?P?FPA>X@Ac @^?@?M>m?E?ŷ@`@@j?n08?5>o>z|^?cw@ @@p?>=4Fzc>,ɶ?mZ ?U#>#ƽ~{/L= G?J"?lM?&=F?eT,@A៞::?,?q@APk@fg? G?=?BK? gz@!Aé@o6u?.?i9=j[>L1j?x@vT@jY@KE?^)?+G> n>(h*?Ԍ@Y !&?]?5>b?۾o@$A$RG3?GZ? Z?^U?1h@+W$AoVGE?#\?s?=[?Zؙj-@Ȑ+AT >rM?4Y? _?Z?=@X+A?\?Y?->^?>r*{@$A =@|r?>u6?}T@?=?1=?X@^@)U?=H?=j+?o=6@_@a5?Xc?MY>Fi?ᕾ]|x@>/A Eƿ@E?#2e?>hOv?>ys@#5AT P?̭a?>Cq?tB>~@1Afǖ?An?cP? !?QC?U@/ A@}?[?t =D>r?I^>R'@fAsK?~ ?=׬1>Lz?g=?: AR??p{1>v<|'k?}=cr?:]*@3A*m?]ZZ?5~D??f#?@+Ape|@y?g?*^= Z?*?%>V8*AN0@ys?KF?FS)?9?w?@@arz?:? ս?G? $e? @?@?q_ ?Qn>@w3?d]H?Z=ɒ%?AR?՞@]4?lf??-5Aߢ?Bx?U?)-`?WH?SE? Af@x?IJ??,%?>?\?@LU@A/}?+)?48>Ig?>N@@'?R?I=B?k%sk>P[Abc ?s?[dm?f׽8>nf0A; QhC? x?u5M@ @4?]eD?|v7?e1?Ӊt@ @/4+)?. >>Ge?>N@@X7<?r+=>" e?:FL@lA[?. >>Ge?I^>R'@fA'0>c?jT=F!>{ؚ;@\>'?NE>*>q`%@ڪl>61?>>:a匇(@ -.>uI?um=GB?U &𳕿[r@I>w?.Cѽ|?OVv3AxS! >qq? ds?%cҿu0AA=t?Imx?1L>rdE[3A:r?^r x?T޽T~?& =?æ7ATپ^r x?*I/~?,=?æ7ATپ9uan?*I/~?,=?-5Aߢ?ܼg?PWn?T>%>V8*AN0@9uan?PWn?T>?-5Aߢ?ܼg?B\=?@w+?%>V8*AN0@-=]?ƽ,.3?'5? 1Aj$o@G]ZZ?C\=?Aw+?@+Ape|@W༊U?5朽l7?O?SE? Af@G]ZZ?5朽l7?O?@+Ape|@03]eD? ź~7J??Ӊt@ @m7d?0A%eߘ@y@ೱ:?%<>)?k? $e? @?@ೱ:?瀢G>&j? $e? @?@/4+)?瀢G>&j?>N@@`>D_?FzEHP?qn(A᭍>6xl?e+`?X)Aw9Q>53i?o>+8*Az?ܼg?mh?c'>%>V8*AN0@Q =LV?}ϱ?$qJ?K A;@W༊U?y-?+O?SE? Af@W༊U?cg:p?|[?SE? Af@ -5M@ @W༊U?E?G?SE? Af@03]eD?_<0?O9?Ӊt@ @ 4YM?_<0?O9?lV>5M@ @/4+)?I?=O>]?>N@@>E=S ?Bk0Ͽ@ɧ^>Wc?8Xd?ܾ8$A:YJ>p>g]e?hDR3Dz?<=Ѝv-A ܼg?:MQ?a ?%>V8*AN0@fv=wA?=~6?k2?ؿj@@03]eD?a#>w:A?"?Ӊt@ @03]eD?81>U-?\7?Ӊt@ @[?ф5>#m>t?I^>R'@fA<L?eVz??2A4~ ?҄5>#m>t?g=?: A[?8U=?>n?I^>R'@fA0? >V=|?Ľa>&A4~ ? >U=|?g=?: A>%?#U=B>Xw꿿i@Vn=N?嫽O2?m6?6l#&MAg2@=1-?=rg>ha?It@@{>?/ ? =дu}Sp1?>Q?Y==}}:@tS>PT5?/{=o?XC@I>D@?=6H?jJYl@&c>K?ޕ=NW?6 F1AL/>sV?ȮQ~[?E%A҃>JX?Ƹ .k?Ai_D$A;*0u > Q?s}]JA?_u?kTsAXW@j=7?AS?JJ??B8@5@>a)?d]=C>tG =E@s>*K?kb?何4 A'N"H>)T?ZZ?R>ϸi Aze?=>?{ &?[0?…@}޶@I)=!?~ً>p?4o@A>?.=a>x8=U@`>gU9?!a0?,87@!>}B? ?MP?TAe>M?4_?ȻAnj>|>5U?Co?r=#A>S=B?%b ?7?JJ@U@=j?9Ux@@;b>T?<>fc==}D?l>(??X-U?Z,ISAʮ(>-(D?IJ3*? )?0~A@Y@>$?a=\>g/t{~Q@&>= +?ּxB>kBx@d">6?a>?) @E>0?Б??.C6@*>>x>?A F?ϷcHKA Lʼn>C?$1Z?Kv;A+¿u>7I?X;a?ڎO= "w6A. = .?羀>@?3Y@ؾ@V>Z2?)a>??y@Hǖ@ӓ1=n?">m?ư%@I@xAls>i5YAx;>E[>X>?.?S>S N,Aθ? =>;? ?V?{@v>@V{=p!?D޾ ^>_?`s@P@TxA0?=L$=]~?Ľa>&AP> =?A>. yYq&c>t h>?P=u>I%}C}=?m>.?AYQ>z]$dW@CV>"?-%m>)qqˆ@,@>}*?GZl>@V0)ָ@">[\.? ?Z`H@i>`.?22#? )@{DgW>6?+d;?J$ٖ#@2h=j"?hZ>$T?_}@@]f> "?ͩ ?>0 JZ}@ Jet>y,?J?>0R1B @$t>כa>\-?6>w? (@ݜ?M>DZ-? 0`>R?(=W¿@#@*>71(?P>0?S @l@{>"?+ʎ>G?@z@Y#@=3?ľrm= k?P?S@lY=_ ?lr=c?ՆJd*?,Ai"=Q ?Ǿh=Wi?kbw? A ۰>$?I3m>mn$i@h>[%?ZB>|D +BU@̨]>c)?S?ޑ;X9@t~mS=?3¾.=Zj?׶E.@1e@<?'iK곻z?|RAR>A>C?5/>kP{;??^X+>j?[oA>i|r@dSb>M?`!<|>e:a <Q@@ߗ>?P-_/>٥ s*#{I@s#|> ?_OF>D|O>9y@wO(|>6O#?d>Ƹi+@A@i9.w>Ze?b>ti>mB>[@@J>>d>M!?~<>c?S4@W=?OT>""?T6]>?2@(@@}=>%?0^>?_@d)l@I!>L?^`>t ?A>L{籨=ė?*z>9?mq#?>>K?G?X@z#=)?׾ 2>Zc?. re?=@IF>?T=db1=~ > >1?,)>N{? >v ?^>/>Em%?C>?V?eN4>X4ѾR DLU@ʋH ކ>,?sM>eI e@ɿt>Z?hu }>><OM'@>:d>??PE>>G.@?CN>?4Ӭ>? S1]D@8@;7>?M*dl>]X5?%?w@?=W0 ?EDp?9>l Lj>>?{[,Fv,DJ?"> ?nk=wIG?^;>Iz?V}ͼ=oǽP0@ L>m ?DH@ >?8I?pPP@`=6?ؾy=mf?%S;?@>P>Pн-=p~?J!"> ?67 j=qEu2M>v->?c'AE<'J^U>cG>?Lk\E&<^>_PP>?{$H쥽PN?ni>y?[SrǠ>?Lq?ޚ?<>9?#B-MIez?%E(m I? 2?I@> >>S|\?ndFG@.:=?PuMR>w>*ϽD w.^پVh>? r\ xRiZ9Beݗi m>=>q[┾f>kC3ؿte?L>r>G@?"59DrP@t=i> {B>33> 8y}Zd׾b>|>z@>C;ڳ$p[4>I>0^&C1Z"4U>>̟[2ྵ5.ⒿޮH>>'zaQq:CGLq>}r>oXz{Ea״@̭W>>S7Uy@>C8[f\@0G>k>2?%?/i[@0>L>I"-H??db殿 7@iw=> 5-d\?'=@w$x<>}˽9YO?g~?=kRA0?޾=nUȽq}?Ľa>&A$>> AB> &=#{ Г!n>!>kTpAϿ5G>p>}6JhM4~$g>o> Ejo0B&v> >ޗf¾[MV ;^(0Ͽz>>y>igξM? 70f@j>T>*T`8C?e[v@=d>I ce?ґo@p>,> uL48 Nxҡ>G>lSU3{۾ﷲ{!0q% >>b>./W'?T hC$ l@M&> >"&:??G@=>"ԾȽ*g?9U AW@M=>2$$l?c5D濾Ay =P># |?+ i̞ Al>/>A>=EvuIT>>յàNyd/t!Rj>">j;C*Yb,&ׯ>Rm>7JG!Ͼm!1|hI>z>@!X9rڃW-&%bc> >kYce>(M+xw?>aM>=ӽ#~?w`>>>D=2}ᑳ<0>Gu>;M79վgATʀ>=R>@Rc#nJ>n>v<ɾ ?. bg4@o">>8 a# 6?KĞ\@i>> ԍTJ?ęq@=>}⿾T1Mg?ۄ&:@>V>>=|PDXH& >L>fΡU5!zԞ>>"<2W N^Z<[)>>l;ܹ{r,1 \d=kT>gԾ{ڌY?z@>;>)<Mq,ƭٽ>`>P59/IB]?.>>R2a%oYk?B-I>(>@*$k>w9u5@4>))>5 ?Dkܑi@>~0>f־+D?xE>nj=s;`yK>@0>=Hd>?Ey=4R] >\f> gY`f6>>,&1C'uǾ?8ʏ> >Lk,*jъ>|>0x40Kh>Zێ>ڨ@&p=J? [=@>VU"¾`?V=@@>bd>>]=Ntᄹ./>㋗>"њ>QK<3>Cy>XA3BX6*y>is>9B&f2|˛ދO{JAq)> >G1!?yUpk@*S=`>6_f?Jb@YVA>>8>ǫ>"x.([Lg >>"00>[n>y;Q>{4gM+.hLHc`> \>SbHyO=Iy!v^?&>ӄ>ٸ$=?$P ƞ@S3='S>Ӟ, V?сwq@]ä5fbyu?pѿQWx A# <`>5 =|?[pҿDsA(>c>H.S\lb(>jL>c,L9U;>}7>/8>Srw> ]!X @e>>O>c3(?:ݴ2!Y@;=u>O.OZtA?ԍ}Ý@D =2J>~gAIk? hnA;l>(?=M?(<;iNP;A0?ٽΊ>{?Ľa>&Aޔ>=>\r>?J9q"v>F@z>(eQ$;sY.>H>vXqk*.X>>Y_L=VI)"?I?FR=\V>@.]#-?;2 ;@>>t>ɧAi߿+ЛtE>o>E=;ƪd  e ;>>dWGXRǘ/͛>R2>>IyA~lY0>|.>]ɾrTTʾ& (P>'=ϾiT+4 1lj@d >Ҧ>Q4OI- ?#;JA@*=4;>C΁D4)? 7h0s@\=р>#U?y _]M1@ >4H> ~-69 -C#0> =Fkk7>Wfg1;?YM"=S>f!B?hԿQ T@K=>c/Yzk[?ej6@W4B<>{=^ޜt?,iI!G A>^Gs>= }V(ϿZk>i=?o𒘾3 \>_k=Q=y)罤 r=uN?>#=eZrd>M!9D>k=,>Aڙ6!?/*@%v~޽ T?31/@~U* Pa=m?Pg^A|?>9>mk=F|-z> iɤ>;>Ty>vyw﷾'*Pz/ > >>p{>}m!-оڡ \>$>-pĽ[P]{C*vРRF>z=mbw(w&8j$k[={M=f Vs?㶿|+]P@Z?;g>OD<>ؽ i> "?:>;>QJ;+j r=s >=X<*jr/ Urm5ПW@?'>c{r`+;_??vR ==wӽ!?iC>J 9~1?ٚ;Ξ>lA_?|ܾ&Ӹ @ >*J>E}nr?>QJz/AY>-.>,%u?l>dGA0? >&A?Ͻ>Eʪ= ?(Y}po?U b>pX>,I?WB[$?2=? >Z~Y<#+ƭ(,ͩ=69h7qnw>?`9@n=fO \U ?>@.q.P@(pF8>2h62?A\?D/@@^>(vދ lS??ũ@mo>*]?A!?}BC@>툁=+͹p? 7>|&@,?>/m>W>sU? =R?e>e>} o?q eogg"?!=Uo>h\,!@ 0y6%Fzl=9 @;xQr?r|?r@.q.P@/m??+> >1ҁ4?@i%}@{?pF8>v<_?)?A\?D/@0?>{g>1ow#?|B ' ?͍>y> eַ?Q`?>-{> F҆?"ޙi?,ͩ=Ē={'>?`9@r|?r<Œ={'>`+;_??{?pF8>Y)>cAC?A\?D/@t?+}>Yc>i[_W?r?T@|?>Y)>cAC??ũ@?j@> f>ۤ Ve4@ ?L>c8>h/1z)$@* ~n#? ">$>&NX@=R pz.~@?=fL>r=۽^@O4=T?Yv=$>fs>i@ԓ2?i?,ͩ=F>i#m[>?`9@+j?=L>aw(>>@.q.P@i?,ͩ=L>aw(>?`9@l?- g>!L> Q?t@@@{?pF8>T=O1"D?A\?D/@{?pF8>L=?P?A\?D/@6H|?o>L*c>P"U?A!?}BC@|?>L*c>P"U??ũ@ ?>*9>0 >k}@ݸ.?>>]=+y@PF,m\?,>.>|_LR>ad@#Q@+j?=j>?Taz>>@.q.P@+j?=~>@?>@.q.P@ya?S>>(J"<.?P@m^@+j?=gKh>-:!%?>@.q.P@o?>1z> Ծ v`?F=@@a`s?E>D>f5*f?W@@6H|?o>:>9߾W?A!?}BC@6H|?o>i>QGqbn?A!?}BC@}? >i>PGqbn?>QJz/A~?>i>PGqbn? 7>|&@}? >;E>)}ks?>QJz/A6H|?o>;E>)}ks?A!?}BC@ ?ܸ>>hYd7=랾&qr@?1i>>-%`ך@+fCװ3?P>>+V@M#k6A?+5>>k^xRh@"Cśs?Z>^^q>(dTo?U%@v8@>A}? >}>2p?>QJz/A=?) >>>ʾf{?YB ?<>8=*˾i @?[I>fN>WUT2@r!_)?nh>@>[?4@A Q2?H>J>@Q@'%K?PI>3?dQd>0 @c?U?zT>>\<@B@3e?_>>LX?8@a;@ k?>>ߵI`?@-<@}? > >Q>u?>QJz/A\(y?0C>D>-pw??Wԯp AN~?> >Q>u?l>dGA"? >>/$ p,~h@ebX?rO>>- a-? @6@}? >>΃t?>QJz/A!_?>>O@]*?t>>6D@QͰ6?>"?\3' A"?=?>ޚ?SJK oAt{ ;@F?2>d(?<م>6AClwM?qhP?T>&?,0i>)@3@#a?-A>[L>S̾Q?@ZU@N~?>*>~սI{?l>dGAN~?>= ܼ'?l>dGA ?>A =%7ý-~|?&xNd H?>2=C|?@#L :?>\= P= 'Kq@xՇ J@?`>B;6?)W3TMAQM?>S4?L?A=@Z?Mְ>>쩾N?@{@Hf?_->ļ>l`?g@@׭h?*:>E>ꍾ:d?|@W/S@`*?î>o?`#]* An??e>gH?bu'AD#qEښF?)>u,M?\Qa>w'Ap?S?>?27? Aru@ra?>>n^?Y@jS@o?ͳ>>Q5?o?a@^mqA?>=MMqzD@۾@&?+>>/- A\5'+5?ٷ>9?3z&AxW+;?>@M?:Il8+AQWS#?> S/>ߖþh@4dh@h-?r>Os+?7-A%C?:8"0AS+A?M>5j?$ʾο=6AU;*O?>q??'-fL?S$AUWdVj@RW?bQ>2$?:2 iM?1) A q6sũ@`ma?P>t>ލ&CV_?@@}Li?>q2>-Uj?@Կ@c?z>72> sY@n# #?>Y>"ξÌQ֚ A@˵F)?>0V#?ve"A-Hl=:?>Ch? Ҿ:AՃgkI?@q>Mc?kv>e-1A{@\4#?>)7>U*2biA 繿jf1?>ye?I襾a.h?#ǾN?AQ@H)?H>k1?\[0 ,Aп`-?Kj>X?r|z8AU UZ<9?>y?`c3CEAEɿ'aJ?_>J a?,e>‘5A쾿>E!@r`?>->n?`?i@)L @h?>Y>oue?(I@U8R@Im?`>>RTm?@=G@E03?>]u?6tGXUXCAԙϐ/4+)?. >>Ge?>N@@[?. >>Ge?I^>R'@fA^r x?T޽T~?& =?æ7ATپ^r x?*I/~?,=?æ7ATپ9uan?*I/~?,=?-5Aߢ?ܼg?PWn?T>%>V8*AN0@9uan?PWn?T>?-5Aߢ?ܼg?B\=?@w+?%>V8*AN0@G]ZZ?C\=?Aw+?@+Ape|@W༊U?5朽l7?O?SE? Af@G]ZZ?5朽l7?O?@+Ape|@03]eD? ź~7J??Ӊt@ @ೱ:? ź|7J?? $e? @?@ೱ:?%<>)?k? $e? @?@ೱ:?瀢G>&j? $e? @?@/4+)?瀢G>&j?>N@@ܼg?mh?c'>%>V8*AN0@W༊U?y-?+O?SE? Af@W༊U?cg:p?|[?SE? Af@ 4YM?cg:p?|[?lV>5M@ @W༊U?E?G?SE? Af@03]eD?_<0?O9?Ӊt@ @ 4YM?_<0?O9?lV>5M@ @/4+)?I?=O>]?>N@@ܼg?:MQ?a ?%>V8*AN0@03]eD?a#>w:A?"?Ӊt@ @03]eD?81>U-?\7?Ӊt@ @[?ф5>#m>t?I^>R'@fA4~ ?҄5>#m>t?g=?: A[?8U=?>n?I^>R'@fA0? >V=|?Ľa>&A4~ ? >U=|?g=?: A0?=L$=]~?Ľa>&A0?޾=nUȽq}?Ľa>&A0?ٽΊ>{?Ľa>&A0? >&Ar|?r@.q.P@{?pF8>v<_?)?A\?D/@i?,ͩ=Ē={'>?`9@r|?r<Œ={'>`+;_??{?pF8>Y)>cAC?A\?D/@|?>Y)>cAC??ũ@i?,ͩ=F>i#m[>?`9@+j?=L>aw(>>@.q.P@i?,ͩ=L>aw(>?`9@{?pF8>T=O1"D?A\?D/@{?pF8>L=?P?A\?D/@6H|?o>L*c>P"U?A!?}BC@|?>L*c>P"U??ũ@+j?=j>?Taz>>@.q.P@+j?=~>@?>@.q.P@+j?=gKh>-:!%?>@.q.P@6H|?o>:>9߾W?A!?}BC@6H|?o>i>QGqbn?A!?}BC@}? >i>PGqbn?>QJz/A~?>i>PGqbn? 7>|&@}? >;E>)}ks?>QJz/A6H|?o>;E>)}ks?A!?}BC@}? >}>2p?>QJz/A}? > >Q>u?>QJz/AN~?> >Q>u?l>dGA}? >>΃t?>QJz/AN~?>*>~սI{?l>dGAN~?>= ܼ'?l>dGA        !!  ! " "# $#$ %$%%&&'(')( * *"&++,,-,--'').//.011 !2233*34*4"*#5$"5#$6%56$67%%7&+,-8'99:::1; ;;!4<""<5<656=77>&=>7&>+>?++@,?@+1A AB B; !C22D3CD23E4DE3EF44F<FG<<G66H=GH6H>=@I,,J-IJ,-J8'.)BK;;K!!LCKL!LMCMDCDNEENFNOFFOGOPGGPHPQHHR>>S?RS>?T@ST?TI@JU8U'89V::W11XAWX1AXBMYDYNDOZPZQPQRHU['[.'VW:B\KK]LLYMN^OZ_QS`T`ITa99aVWbXbcXXcBc\B\]KYdNNd^^eOefOOgZfgOg_Z_hQQhRRhSh`SiI`jkkaaWVLlY]lLde^_mhmnhhi`IoJioIJoUpbWlqYYrdqrYdrerseetfsteftggu_tugum_nihvoiawWwpWbxccx\xy\\y]yl]qzrr{sz{rs|t{|s|utm}n}vnnvio~U~[U~.[.0kaylqlqz{zumu}m}vvwapbxbxyqq{||uu}}}ovo~xyy{{o~.wwpwppkjkj                    ! !!!""#  #$ $ %&'&'' (!("!"#))*$$++,,,%-&%-&.''/./'/ /( (0"01""122#33 4 *%5--.&.6//7(70(1228##9)89#)393)j:4 $;+;<++<,,=%<=,%>5=>%>?55?-?@--@.@6./A76A/AB77C0BC70C11C22D83E  EEF:44GG**H$IH*H;$;J<J=<?K@@L6CM2MD28N9N39HO;OJ;=P>>P?KL@AQBBQCQRCRMCDS8SN8NT3TU3UE3:V4VG4GW*WI*IOHOXJJY=XYJ=YPPZ??ZKZLKL[6[A6j\:\]:]V:IXO^YXZ_L_[L[`AA`Q`aQaRQRbMMbDbSDScNcTNVdGdWGWeIIeX^PYPfZfgZZg_abRbhShcSeiXi^X^fPjf^fkg[l`lm`ma`anbdoWpodoqWWqeqieir^^rjjsfskfgt_tu__u[ul[nhbhvcVwdwpdqxiiyrxyirsjszkkzgztgl{mmna{nmv|c|Tc]}V}wVy~rr~s~zszttulu{nnnhvhTUUEUoqxq~ztll{l{v||T|EEwpopxxyy~zzoooyyyvvv]}}w}wj\]\]/  /0j                  !!""##$$%$%%& j ''((()) !***"+"++#%&))/'',(,' -!!.*-.!*"+"#$&) (/),/()0 /0)0- .1*1*2++2#2#$$3%3$%4&34%45&&5)5()  /,06--1.61- , , 0/ / 60 0 166 1223343544(5        !!  ! " "# $#$ %$%%&&'(')( * *"&++,,-,--'').//.011 !2233*34*4"*#5$"5#$6%56$67%%7&+,-8'99:::1; ;;!4<""<5<656=77>&=>7&>+>?++@,?@+1A AB B; !C22D3CD23E4DE3EF44F<FG<<G66H=GH6H>=@I,,J-IJ,-J8'.)BK;;K!!LCKL!LMCMDCDNEENFNOFFOGOPGGPHPQHHR>>S?RS>?T@ST?TI@JU8U'89V::W11XAWX1AXBMYDYNDOZPZQPQRHU['[.'VW:B\KK]LLYMN^OZ_QS`T`ITa99aVWbXbcXXcBc\B\]KYdNNd^^eOefOOgZfgOg_Z_hQQhRRhSh`SiI`jkkaaWVLlY]lLde^_mhmnhhi`IoJioIJoUpbWlqYYrdqrYdrerseetfsteftggu_tugum_nihvoiawWwpWbxccx\xy\\y]yl]qzrr{sz{rs|t{|s|utm}n}vnnvio~U~[U~.[.0kaylqlqz{zumu}m}vvwapbxbxyqq{||uu}}}ovo~xyy{{o78~.wwpwp9:;<=>?@ABCDEFpGHIJKLMNOPQRSTUVkjkWj                    ! !!!""#  #$ $ %&'&'' (!("!"#))*$$++,,,%-&%-&.''/./'/ /( (0"01""122#33 4 *%5--.&.6//7(70(1228##9)89#)393)j:4 $;+;<++<,,=%<=,%>5=>%>?55?-?@--@.@6./A76A/AB77C0BC70C11C22D83E  EEX:44GG**H$IH*H;$;J<J=<?K@@L6CM2MD28N9N39HO;OJ;=P>>P?KL@AQBBQCQRCRMCDS8SN8NT3TU3UE3:V4VG4GW*WI*IOHOXJJY=XYJ=YPPZ??ZKZLKL[6[A6j\:\]:]V:IXO^YXZ_L_[L[`AA`Q`aQaRQRbMMbDbSDScNcTNVdGdWGWeIIeX^PYPfZfgZZg_abRbhShcSeiXi^X^fPjf^fkg[l`lm`ma`anbdoWpodoqWWqeqieir^^rjjsfskfgt_tu__u[ul[nhbhvcVwdwpdqxiiyrxyirsjszkkzgztgl{mmna{nmv|c|Tc]}V}wVy~rr~s~zszttulu{nnnhvhTUUEUoqxq~ztll{l{v||T|EEYwpopxxyy~zzoooyyyvvv]}}w}wZj\]\[\]]^_`abcdefghijklmnopqrstu/vw/0j                  !!""##$$%$%%& j ''((()) !***"+"++#%&))/'',(,' -!!.*-.!*"+"#$&) (/),/()0 /0)0- .1*1*2++2#2#$$3%3$%4&34%45&&5)5()  /,06--1.61- , , 0/ / 60 0 166 1223343544(5openuniverse-1.0beta3.1.orig/3dmodels/prometheus.bmf0000644000175000017500000007764707045144437022451 0ustar paulliupaulliu PROMETHE.JPG>>>dz???dzdz?=>=< @ `>ֽ?u` ?s=8>)zPA}@ %?>>#!>DS^s|ZA: ?=?> ?=Lz> x@p@?p?[>FY=!xƽA@N &!?F>+e>2Y{yA5׵](?9 ?c#>9>o Bl A;+?>¨>g@=cp18Bf>"3?E>Y?3=[)rBF?Tt7?* ?9?>>BQAЁ?7?>O;?!-զB1 A;?}?Dc?A>ƍg݋BĶ@cCX;?>$s?>=_R=BK`=>??xT_?L>>x?>}BԽ@xԿ>?v>~?=?*=Br059WC??0i=?jx?&>B`@TA?<:B?>]\t?w;>gB^#0>E?>SO?O> ?OB!@ H????ʎ?yB۫@'AI?>C?L9P? :B>ؙ`?/dBT@XgA_M?>ә><8Ts?v0ZBKѾzAcO? ?8{]>( {>Jq?'DB@pAgS??03>Z=o{?Z# BG@A|R?'>2>rjoz?ܭ'BXa;&;AY?(?ձ?>`X{?ALkW?A$a?K?Q>c\q?A]@ѪAqrc?+>7ۆ> 7s?EANAXj?{?غ>sd e?`.}Ax@Abur?>'C>>p'h?< Atl>6A1?;?ǽ>"w>WRB5A"_A;?&?vT??UBP^A<"5:>? ?3L?n( ? >ANBDAA?ܚ?&?A_ ? ?LsBʴWA7" L?3I ?>S?HF?;OB.oASA\??>m<4t?As AAL?p?z?=?U3?Es9B A?*AaS??1:> ̚>h?WBtcAARɆAe??l>fj? An@xAs?, ?>wk?A @A\hu??E>|^_?x@B@_ATy??A>9. p?X@*?2AQ??`=>`p.ASOAYms$?r?pMb>>FqsBAv|,??Ue>դ>Zc.BA"]%6?4"?1??{[BAr:?$?lJ??><5^BAV+*??A?8?8?:>ndBAu9G?E?='?i>&$?AEBA6a@n? ?p߷>&,}@CT@*$2?3/#?>>EFXJBA8>D?E #?@5? ɺ>2?OFBAn&@ W?$?>>b?AlA AV]??ե>J>l?-AxWA7A4f??>b?>1j?PAq=AlA8m??Q>[tU>>$a7BAԀA?:,?5^4?A>d??HBA<; H?*?+?<>%?n2BBAH@L?#L)?R ?>\A?D&BAAR?2i-?_>P>J>]?v BAZAԞ ?O?p<5>l+A{$Ap ¤@?%?\=ĺ>PhtRAxA zn0?Q0?O>X?yyG*BB4?.?>%?AB}Bc7E9?3??(L?B>BB'49??>7?i?>?->o3BABt[sF?8? ?{?jm?J'BB"$K@9pa?t$?U>7>Wi?vزAAFwAep?Ԕ?!p> >g?{:A~AAAju?9h?g>>Bv?HAi AvAoU?i?`=۰p?O0>)@wA:|?>ք - s?@=r A1^>_=Dr?@=r A*i?_=Dr?O0>)@wA٠<>qb]>f n?sDA|*?f5?]=?]Lf BA*!4?X9?nY>\H?j &BhB\79L?ZZ5?EN?>i@?hjB,>B A_?[5?Z>@>/f?LAIAA 9z?o?5">Jt|?8@ @&A?#?D;>_'8AxA|tP?'?tB>a^AACLx"?5?, ?v,Z.A/A.?HL?=??'P*AZ%Bd~7?E?>Uf?u B+B-*=?cG?>k?5X]y B/BVv!B?E?:->s`?Jz>{BL+BFpqG?PC?#>}k>??mUB+#Br[@dL?&@?]>w?~9?$BB\E@hV?;N??>Vo>՛X?^qABSATj?*?e>>Řg?eoAAAi~?s\ ?Y=_P v??`@ALi?X?d'v>~i-@$AU^?;0?1XY?Z5@AkA~}e%?M?6)/?2J A^Bgr?(?>?>e?A_AA ?78?qX?R\PFAA?I>?6*4?:YSAAIC?CU?C3>Cx? .>A9B|IdJ?T?:M>-Z?]>S;A%04BaQ@P?M?^>n>d?aAdAP_A={?'?Zs >>m?W@4A2AF>d ?޼>Div?6@r ;?V?>$> z? IAx:BzJ`?"L?H=?O?JA BQgAsy?&"?]=>Ec?l@dAkAP ?+8?/H?mXK@AN?C?H?/b ?7RU|CAZSAls)?X [?^>I?z A+B&e03?]?Xs =4Ak?+ɾ_A7B/V?\?]<@?Z(?A,B@Gp?B?e ?wT?9AαAAh?&?:?X^)?j-yAI4?\?SBΛ)?ó<ܞA&BJ(HB?c?J/? ;Al.{A\7BW@d?PX?O2B*?A5*B4>Aj?P?KIw ?vF?Ε(AB/rAa_? @sAbGA?P?!k?vPF@Ac^]?@g?8]M?dxAJ,+BfS-?gqm?!7#t?D񅾐Ar6BZ7d?5e?sPDH?p?AB(Bz@+]y?N?現?xAA?C4@bA{Ay?98?#?@C?z@9AAQ?o?iA7t? i>E@i5B un>B9}?ZC?a/Y0?8?S?p>ZQ? @sAbGAM;@?>>cc?+}WA\Aݼ&"?f0>p>ZQ?l@dAkAK'?>·>0]?W@4A2Aݼ&"?>·>0]?l@dAkAK'?o>O_e>-r?W@4A2AB;?&@>B=B({?+ AAA޸o?o>O_e>-r?8@ @&AKs\ ?g%>ӪD{??`@A޸o?g%>ӪD{?8@ @&A_>I?B9=!}%bA@x >N:?갪?5OkʿA!>a^?j$,?:h BO>Gl?ӽA?%| B0Tv>E1u?ݷ`l?h2+B*W?d%@ 3B`r\z<&u?g?#>x*Bp0?8o?6&q?oL>E@i5B un>.r?\l?/G?Cp ?4@#Bȷ@ U\l?7V?V?4@#Bȷ@8o?7V?V?E@i5B un>0`v?ܻ]?猾G!?9?UP@A B~6Adq>Zz? 6~?|U/B, }2>fz?6"|?϶.>..Btԕލz?CI{?m;?d%@ 3B`rԕލz?$ͽV,r??ޝ>?d%@ 3B`r]<~m?H?ҿ?dL; B|Z@ U\l?b-._X??4@#Bȷ@I2V#?X#B?3AtzAZԼN?&6<7 ?9*V?C4@bA{Aܻ]?o@?J?UP@A B~6AZԼN?0{<?L?C4@bA{A1ZC?0{<?L?S?"&?'?S?.?1?W}AzڲA_#Q8?.->"&?'?V?AxA1ZC?)D>(?&?S?q2?3'?V?AxA`K<:+?Չ>^?eD?.rAA=A``ؼ,?C}>q2?3'? @sAbGA``ؼ,?>>R? @sAbGAX>DC?ʸ ?N A eɸ>2U?0Ž?~INWA9_#Q8?>?!?3-?V?AxA[<#!?W}=ί>cIf?~jdtAAK'?>Z&>+s?W@4A2A!'<˄r?\1j@2AKs\ ?j2>i{??`@A*i?i1>HCh?O0>)@wAKs\ ?i1>HCh??`@A>??>[ayzSAU>J_-??]R:spA%v>|a?i0o 2?Q7"sBTqDZ>uj?(.t^?.+B]n>/o?y ?|Fe-2B6>hAj?F#5k?™>@|+W+B0P?{=e?YqN}E?M"?–B@O4=ZL?K=q5?4?ƧAxAA< ?P=>{?Be:ATAh&>*? *>nXrbW@]>3N?H?sHqATq>\\?a?&n?ʱr>݃+B/'>5\?H2γ;?F(?(B0@1=yT?R5i|)?p:?MJB);A=@,G?=_i7 .?r2?n4A$AK=):?,&0?W3? A>oA = -?Ie?VP?f~AA.NAi?5:@YA*i?h3>9~h?O0>)@wA*i?#,>i_n?O0>)@wA]G>8?&?{M$klXARS>=S?O *~>?%EBd+>̳[?TMVgU?气%Bx#Q>^?PZ?NHoR?V?ۛgf%BBx @l= :/??I8?1AA=;?~gɽb}>n?n""*aADZAn>hG?îc-?{8MB<3>i0L?Ϭ ?D?$NB+A=2=?]̾ ?5?(rAA`=#?>aP?̊9ȀA NAB>M?5}/?}3?$GqBH@f:=?v=Ϛj~?hq@pA>&? ̽>[~jSA?A)T>"B?xxA?85 B\k͏>7 D?p0k??D'>KB`>4H?ľE:?{?Bz @/>C?>ӇL? AiA}!>c9?xᾨ>ΝI?tAzBAl|=?%tC>m?j_~.AAR= ?7BxV=Y~?Π={@`A͹>0?# ?bOYAXx>.x6?BپoQ? >Ak%YBۿ8N>&9?c>SO?A1@*g>D2? f>`/?g%AUA=&?{m ?*?VCALAߊ<?:l>4o?K`C@RA5>/?tn#?K;k2SAg>>0?1!Ǿ^ ?=?G (#AJ/@5=`(?1' ?ͽ ?[fAଗA=A?ؾ|>G?CSDR3AA>T ? %{>t@N ŠM>"?:-ti>Yo1rA>0?rN@?h(ºlA=naX>O0?w>T?JRAnk@;>"?6_?@%Ac>+?i7L?߷@7AQG.Qb>>.?8^?9$?վo>[tN?eVAw)NA}>#?'v>0.1?lpAtAI=H?3L ?-(?~زge-ADAߎ>2?1="|*\lZ?>‘><&?(־B}"?U&E>A(x>g'?"Q wq%?9?I‚GAT0 Y>!?mպ0׶>\?, A@&D<>8>ڐh?pA邴>H?@T>h ZOAh[>F?K>$Zf9?IVAȤ<>.?+־?d2A|?"c0?"b0$A :5><2!?l*;?J>T_@wAJXj>p[?<쾲I>M?[H AҫE@>?#>1?nEAA=ť?ȾE>e_?.\7@DA>>*>B]ٕ~IXۆ–M>ò?t^\=>Yuel@‰>y?A?~W!efA3+y>s?&.w>Z#?mœޅAf-V8>,?~Ex>P?4§A]A==? q>PG?u@A$=DE?2%^=j{? kn@^A]ܪ>" ?FU>q.v A秙>5?>LTpwF@Aq7>?= ?o|]yOA=>?a@O?]>L†J|Az#l>rv ?p>9S?D d’+%AF@X>7 ?+Q> ]??·AŲA.>?eh3>x@F%Pz>Q?()>1?|@HݗrH>c?'>^T?+oF@ 8Aj>J>]SN3>EF?Ή_B ?AY>ч?c؆=vE!?>>s߃xҹ̆><>νHq'NP䲿D.#r>h]?g>ɯ۠˜@>d΃>? X>>c@KoN>_e>ۑ> 'S??B{.9A_=>E> j>>#D?(`$}hA.'>2?/Sm>S;?$x?`A a=~> =(A-{?:Ih~7?ŠA0>y>VGMbF|}?_H>>7]s1%†)<>5>ljr=}]l€ؽDJ>*h>qv;N=kz>iߠx5,ri>>I.>nY?*^rB#~@>1(>$ш>UM?iߨAJAV= O>T [Z?K Eɽ AQ=\>L }ru?LKE=~A=><> k? ^DAK>MG>F?KNx/}P +>>:>-핾|q1p92w=jt>+>KW^j;\PKzŒگs>[>1'u?H`j@tmx>8>@qڽs'?c~ @.=O>B̾Gj?a¾3oze?WA낄=>T^1>v0 -{<*ڂp  f>>n[f_ F֐> >BȾ4-*S^^'>>lZ龏#3N8$>{a>_N>kyn.>L›6 j>U>oT7F?g{–R@#P>$>2 8=9U?K‰B9A})1>8>e6F7#> E?x'H A>Zx>ݾ3(Z=}f?< D?Af>>=LJs?Dl A8ʹ=>$?fd?: A֯>>.v2ܐmȎ#P1>Y>2Ћd'9·$rĝ>N>_c>hz>>$MI6:>X,ƿ Q>>25dfN?I‚.p4A=g>pr7z?T:Ap=K>bU<Ӿ i?i+4Aր>UL>J/sU$ >>/ {.MoxĹ&;E> ^>/ZK[LK-Ih>><оZ+?&b8@1>>yD?*'E>ŏAK>>aLsiK?—vA=>PYj|?Q'DhA8=y>@g%Ib?(+1A>I>bo2h/d>{T>Ex bGlX$D~>E>jʤ1eNPLT(u{4>hQ>3B$lj/h)R:8XW>.>NNQM =r#[z>@ >B?9>ipP渿 >>pZϷ.5g?2ԃ/Ap> ~>tT[,c> 6>W?Ծ \}tzG8>~>պuSL37>>Qn!F`_M "e>e>so*a?@1 @bQ>⾂LG?z92AG->7> *оtQJ?A0>ڳ>?PI?n ’ƩA#=6>=g9؋p?2fA=W)>W=z^Ay?qn'A+=&>7=;fi?lr Aڢ>>{i޽k ~zupQxٱ>>>B6ܾ;Y_}r>I>⍾Qxl*Ǥ`>X>`QaO2A ?=!20v>3ٔ>'GI>h*Hw¸uO$>^>Je?$T?Itd܂A6B>>!:? |.AS=m+>83< ?U?UA]>X>/;Dh`+4ї>]>Гf<:% ,_]>vJps>[LTܯF>>mDnP?1h^A%}=>^>RL?A=У>G>~")[?<@M}N:A=> T=#ؾAg?A 3>R>7^FRzNIT<>?>7UM ޾-`X<扡>v>xR)Ƣ5d>~>&CjĄDz.>sU>=}lvxX!'²n>hw>쳀g(&>e$a?>S>gƇ@MܾdwfvoƲ^>B`>xB4c>{)>]P`>7|YP2L¶fz>{Y>̼t3_e—$¢)}s> F>Vzx=V`,Ԭl<7>\>mEѽA2%?ª2A>2Il> QV?]aAj=bB>H>j=[꾁b?5:A>=f:>8 {Q?5SA]\=9>ˁ> AM?~X#㔑H!A5>ܵj?UeAV>>"`־2gˉ±m>P;`>y0$cZR>P>IPBjܸ>,wF-1"@-=?>S<>D>ʾkf?VEƴ$4Ah>]5>b`M Cc$p+>ON,>&qCpހ7 1 x>%>|.S,{ͺ= 1 %>0>up>V8=xE>*?FyOA~=*>^[L=QG?Jp.G˜AAˁ=DM>n= zG`?C}zRnA/=E>/>TE?,ul쳦A<ݼ>7=, V?54:XA>T>clޤVr@216) >^C>]WcP!4ܷ>(>$E>rВi2/g>=tҌT<\$n26ˆ{=zI>= Mq?bR&8}A*=9ޏ>=>a_?ΘA)Ar>z >'%9(r?RrpX1>?> Zra*ˆίi>=> ˹xC|>nv4Eǿ>k߁>JQicZ 9>1[> 3c8$)>Q{n=W=N| =C=b5>)!,R7@cM"=o&>F'>6V?Θ]]ADi=y>< s?D2AV:>=,׾tf?p  A#|>p >=#rV?e?Z[1A+0?í>Y:i׾ThR?Wc > >zdhѾԊi?Ұ;N>Q$>drkXH&<>=ݔ<;=wz+>}@4— K>a!=7>jj>ܵgp1‡N快o=p=uhz>]<Ū!?y|ŠHA n</6P?}οssn?A{;G>K='a@?FSZA?!>I(Q(M?>6=O=F!굾Ɍ#"'=}+`=>H ^?VYO&v&0@f\>_=H!%sl?pн-WA?6I>cݾfE9@3Œ[(?)=y>4po(m @;e,/ i@~;p1c>C?,.#,:=d>G ?@„?vY=5/>N> D?{?n6FA'k>3[q̾BEj?1?pA" ? >w==8@N`'}@ڶr!3?[c=G>]trf>7@{,¼p Q?p<*>^oP>C?,.# td=>[j<^ ?.@OA@,_m>=,L?b?!h(AsS>WUI>_6%n?@nlA9>I,>Ȃ s?n@>2LhAD ?ǀ><Ѿti@~B?><; V ml@ ?UY1>z=:>}eq־9AG&$`mJ?Zd=S>\CEHg?@&Կp Q?pzh̺>C?,.#p Q?p<=<;*?C?,.#k?,:==<;*?@„?_dx?d=ݳ>X+m'?.@OAކm?>9ѵ>ҳ'*?@~,A&|?{>ݳ>X+m'?{?n6FAq?T>(>[?N@JfA&|?{>.>hL?{?n6FA&|?{>n>hU&\?{?n6FA~?f\>n>hU&\?pн-WA~?f\>u>,,ƾi?pн-WA0w?L> >;UE^?G@^ǏA~?'k>u>-,ƾi?1?pA~?f\>{/>|X?pн-WA?>w=OR4z`@w#±?zw><șоi)A}/? >0g>$x ̽A?Y%v2gC?|=.n>,FP9m? LA XJ{[?>7>9+?l/Aث<1@k?,:=[ >/5?@„?p?Y=@>)5.?VX@a –+@k?,:=@>)5.?@„?p?Y=>A>VX@a –+@_dx?d=>A>.@OA~?'k>r:l>Lz]?1?pAfw?Iߪ> >IfTS?@vSvAO|?m>r:l>Lz]?b?!h(A~?'k>>þ j?1?pAy?f]d>=-7S[TA2n"?G>ׇ?>?`#ܜA(*9?*=]>Xg!>Aʣ%UP?u >>k@BL"?69gA~ ž=@p?Y=Q>B?VX@a –+@b?A>Z+>/D?bBAE>s/Ap?Y=3?>?4c/?VX@a –+@o?>>s_b?@NƖj}A։~?#|>$Ē>&'B?e?Z[1AO|?m>$Ē>&'B?b?!h(Ap ?>F=@mo A[< N_C?&>K=O^y?Ah?M0|>u=M־kh?*u6A( mAx? >N5>kKXN?؛@b&A։~?#|>y>nnD?e?Z[1A1|?S>>uо^?@nlA։~?#|>>tо^?e?Z[1A?ψ>q=Ҿ>Fh`A:(?=>+n>|fعCAi;}1y>d#n7Z>GwAoM?P.>(=IK<?̚A Žr=@/V?¥:>Η=m$?6<)?"AX@ulm?I`>V K=OU"[?vA PAs?>)=$B?\@r8vA?8ɤ>H >5j5 Akȡ8&?> >R־4eΝA{8.?!2t>]>ZfȾ=A)/|7?Z>9>2m =ABH6C?N>>UI>Al tI?܅Y>0+\>Dy?[A"Iž<@Q?fMd>>#=4/q3?^A]2@a?4Y>q=~Z?ANuiA2sg?}>=%EY?b`AmLAm?>&NEKsE?"AA`vBAI#?mb>K>[ܾeaAMz(?n>7>?vAš >=?^>>KY>AzPW?N}>8"=h0O?PAFk8>0A,j?j>!h#OsJ?dSAai0NA vk? >j>HQ?OA~CfפA ?>>pKAl= *8?r> >jj=Bir'Q5?F>>T,G),Bl7st=?܅>> Zͤ>B=uC?>>K8>Q=B.a0t?>R =T>!S?@nlA_2?o%>XV>*kT%T*Bʖ'J?6M>^>F ? B0,@nO?{>R^>% \??^BAҪU?2>Z5>ᆴ]?ȱA4%pA`?2>6>վe d?A;Atw?c>mK>os?C@AA1|?S>c=Iؾg?@nlA1|?S>ss2LhA1^>>_j?@=r Ad+?>> IC.TWB`Kٓ:?|>D>g lK= BBHڛ!B??Ff>u>T]>3B_T2fH?Ǧ>ә>??('B@n?{>VK>-Ⱦ]e?=A,+VjA1|?S>5ęs?@nlA!?۫> z5>(Ͼe AW&M|M?Լ>U>6?T?)B*՗bc2A$i?>>&Gef?6@uA{Aa?>®#>3/xŠA (?x>v7>p׋tF5AI B‚&?s>H(j>%2n`LBJBfK-?Y>>QשS7B0 /2?O>>6cJB"O6?wż>[C?/>YBj:?4>?EMM >/]B*2ۘ??hܸ>s;>Tҁ>^B-3D? >S>^>#B?3HBk֗5ADn?(>>;޽n?HAͰ"3A:?>?9?l! {BJd;C>? P>g73?4)63u=u*zBBQ A?>&'?'$?d>*wBєت jTR?\> O>¾}c?MBCqA:X?%8>R>5Wl?ەAT'*ȐA^?C>؈C>1r?ƊAڜA=f?x>U>s?OA8Aŭ.?>> fQIBOYNV2?=>5?,IrKNfBH*j7?&>$"?=}xBlvGE?>?4#?sBlj0Ȧ@M?b>!>i=h\?LEBn#ߧOA_?\>5>h㴽cz?׼AA!i?_g>M>"0Co? xAcC-Aѻ&?|>>uPB -?><>gkCEIB?3;?;g> ]?=HWGBp$o=>?O>]^??=B>$q6I?u>x>Ѿ"M?1kBo$*AeQ?(>uX>f?)BiAfV?>tW>=tds?2 B- Atc?%>}>yw?D`AzgAD?>b9?վ ?/{BKn0@ȝM?|>?|p>g?!UB]CqA1^>_=Dr?@=r A*i?_=Dr?O0>)@wA``ؼ,?f0>p>ZQ? @sAbGAݼ&"?f0>p>ZQ?l@dAkAK'?>·>0]?W@4A2Aݼ&"?>·>0]?l@dAkAK'?o>O_e>-r?W@4A2A޸o?o>O_e>-r?8@ @&AKs\ ?g%>ӪD{??`@A޸o?g%>ӪD{?8@ @&Aԕލz?6&q?pL>?d%@ 3B`r8o?6&q?oL>E@i5B un> U\l?7V?V?4@#Bȷ@8o?7V?V?E@i5B un>ԕލz?CI{?m;?d%@ 3B`rԕލz?$ͽV,r??ޝ>?d%@ 3B`r U\l?b-._X??4@#Bȷ@ U\l?&5?K/?4@#Bȷ@ U\l?r}T2?<5?4@#Bȷ@ܻ]?r}T2?<5?UP@A B~6Aܻ]?&6<7 ?8*V?UP@A B~6AZԼN?&6<7 ?9*V?C4@bA{Aܻ]?o@?J?UP@A B~6AZԼN?0{<?L?C4@bA{A1ZC?0{<?L?S?"&?'?S?"&?'?V?AxA1ZC?)D>(?&?S?q2?3'?V?AxA``ؼ,?C}>q2?3'? @sAbGA``ؼ,?>>R? @sAbGA_#Q8?>?!?3-?V?AxAK'?>Z&>+s?W@4A2AKs\ ?j2>i{??`@A*i?i1>HCh?O0>)@wAKs\ ?i1>HCh??`@A*i?h3>9~h?O0>)@wA*i?#,>i_n?O0>)@wAp Q?p<*>^oP>C?,.#p Q?pzh̺>C?,.#p Q?p<=<;*?C?,.#k?,:==<;*?@„?_dx?d=ݳ>X+m'?.@OA&|?{>ݳ>X+m'?{?n6FA&|?{>.>hL?{?n6FA&|?{>n>hU&\?{?n6FA~?f\>n>hU&\?pн-WA~?f\>u>,,ƾi?pн-WA~?'k>u>-,ƾi?1?pA~?f\>{/>|X?pн-WAk?,:=[ >/5?@„?p?Y=@>)5.?VX@a –+@k?,:=@>)5.?@„?p?Y=>A>VX@a –+@_dx?d=>A>.@OA~?'k>r:l>Lz]?1?pAO|?m>r:l>Lz]?b?!h(A~?'k>>þ j?1?pAp?Y=Q>B?VX@a –+@p?Y=3?>?4c/?VX@a –+@։~?#|>$Ē>&'B?e?Z[1AO|?m>$Ē>&'B?b?!h(A։~?#|>y>nnD?e?Z[1A1|?S>>uо^?@nlA։~?#|>>tо^?e?Z[1A1|?S>>!S?@nlA1|?S>c=Iؾg?@nlA1|?S>ss2LhA1^>>_j?@=r A1|?S>5ęs?@nlA       ! ! ""##!$$$""%%%##&&''(()*++,,- .-. / ./ /!!0$/0!$%"1*+,22-/30$4%%5##6&56#&77'+8,.9//933:09:30;$:;0;<$<4$45%67&')(=**>+>8+,?28?,2@-?@2-A.@A-.B9AB.BC94D5D656E7EF77F')GHIJK=L?8?M@MA@9N:CN9:N;N<;<O4FP'P)'=Q**R>QR*RS>>S8SL8LT?TM?MUAAVBUVAVWBBXCWXBCYNXYCNZ<ZO<4ODD[6O[D[E6P\)\G)]=Q^RR^SS_L_TLTUMYZN[`EQa^^bSb_SVcWWdXcdWXeYdeXYeZf[OEgFgPF1hh]]Q=ab^UiVicVejZZfOjfZ`kEkgEQlaambbm__nTToUnoToiUdpepjejqff`[]rQms_sn_itcoticudtucupdpvjvwjjwqqxffx`xk`rlQaymlyaysmsznn{oz{n{top|vw}q}~qq~x{ttuu|p|u}~~1h1rlyssszz{z{{||v|vw}wx~ylyyy]rrrh]]KhK                          ! !"!"#"##$$ %&  '&' ' ' (())*+*++, ,! !-"-#"#..$$%%/0&/00'&'11(2*3+,4!!5-45!-6#56-6.#.7$$878$99%9:%:;%;/%0<'<1'2))=*3>++>?,>??4,5@66@.@7.7A889/B0;B/B<0<C12D)D=)=3*?E44F5EF45F@@G7GA78H9AH89I:HI9:J;BC<1K(DL=LM==M3>N?NE?EOFOPFFQ@PQFQG@IR:RJ:JB;CK1SD2MT33T>>UNTU>NOEOVPVQPQWGGXAWXGAYHXYAHZIYZHZRIR[JJ[BB\C[\B]KC^LDL_MM_TT`UNaOUaNaVOVbQbWQXcYdcXZeRe[RS^D^fL_`T`gUgaUahVhbVWdXYiZciYieZej[[k\\]C]lKl(Km2fnLn_Log`gpaaqhpqahrbqrhbrWrdWjk[(K^sf_t`nt_to`ouggvpuvgvqpqwrrxddycxydcziyzci{ez{ie{j{|jk]\l}(}K(mS2~s^fnwrxrz{]}lS~^sftntoouuvuvqqwqwxxxyxyzy|{jk|jk]k}]mS~S~sz|stttz|~}~~~}}K}mm          HK    H     ! !"!""##  $$ %  &!%& &'!'"!(  ) () )* *+  ++$,-,-.-..%'/"/#"#00(*1++2$34,344-,.5%%6&56%6'&/7#70#08((9)89()1*91)1:+:2+2$$ 3- . 5.6;'';/;7/7<00<8<898:13434-4 - 5 655 ;66;7;;<77<91912:2) H )       ! ! ""##!$$$""%%%##&&''(()*++,,- .-. / ./ /!!0$/0!$%"1*+,22-/30$4%%5##6&56#&77'+8,.9//933:09:30;$:;0;<$<4$45%67&')(=**>+>8+,?28?,2@-?@2-A.@A-.B9AB.BC94D5D656E7EF77F')GH=>K=L?8?M@MA@9N:CN9:N;N<;<O4FP'P)'=Q**R>QR*RS>>S8SL8LT?TM?MUAAVBUVAVWBBXCWXBCYNXYCNZ<ZO<4ODD[6O[D[E6P\)\G)]=Q^RR^SS_L_TLTUMYZN[`EQa^^bSb_SVcWWdXcdWXeYdeXYeZf[OEgFgPF1hh]]Q=ab^UiVicVejZZfOjfZ`kEkgEQlaambbm__nTToUnoToiUdpepjejqff`[]rQms_sn_itcoticudtucupdpvjvwjjwqqxffx`xk`rlQaymlyaysmsznn{oz{n{top|vw}q}~qq~x{ttuu|p|u}~~?@ABCDEF1h1rlyssszz{z{{GH|IJ|v|vw}wx~ylKLMNOPQRSTUVWXYZ[yyy\]^_`]rrrh]]abKhK                          ! !"!"#"##$$ %&  '&' ' ' (())*+*++, ,! !-"-#"#..$$%%/0&/00'&'11(2*3+,4!!5-45!-6#56-6.#.7$$878$99%9:%:;%;/%0<'<1'2))=*3>++>?,>??4,5@66@.@7.7A889/B0;B/B<0<C12D)D=)=3*?E44F5EF45F@@G7GA78H9AH89I:HI9:J;BC<1K(DL=LM==M3>N?NE?EOFOPFFQ@PQFQG@IR:RJ:JB;CK1SD2MT33T>>UNTU>NOEOVPVQPQWGGXAWXGAYHXYAHZIYZHZRIR[JJ[BB\C[\B]KC^LDL_MM_TT`UNaOUaNaVOVbQbWQXcYdcXZeRe[RS^D^fL_`T`gUgaUahVhbVWdXYiZciYieZej[[k\\]C]lKl(Km2fnLn_Log`gpaaqhpqahrbqrhbrWrdWjk[(K^sf_t`nt_to`ouggvpuvgvqpqwrrxddycxydcziyzci{ez{ie{j{|jk]\l}(}K(mS2~s^fnwrxrz{]}lS~^sftntoouuvuvqqwqwxxxyxyzy|{jk|jk]k}]mS~S~sz|stttz|~}~~~c}}K}defghijklmnmopqrstuvwxyzm{|}~         HK    H     ! !"!""##  $$ %  &!%& &'!'"!(  ) () )* *+  ++$,-,-.-..%'/"/#"#00(*1++2$34,344-,.5%%6&56%6'&/7#70#08((9)89()1*91)1:+:2+2$$ 3- . 5.6;'';/;7/7<00<8<898:13434-4 - 5 655 ;66;7;;<77<91912:2) H )openuniverse-1.0beta3.1.orig/3dmodels/proteus.bmf0000644000175000017500000007624607045144437021751 0ustar paulliupaulliu PROTEUS.JPG>>>???ld?c>BHc=@>{@A^ESV?p>}CQ>B<5z?i{B}NM?>O>q׽Ay7ATcQ?Q!>(;>ErB.I=?e?>|gB1A?4?^>>LzZlBI9=>?Ԧ?u1?(|7!CA1?9y>, ?&\;Ctψ,!?>sV?CIå(??3j?(ξ(CA*?,>j?87Ǿ[)C:;.¿?.??Iu??<ڎЧ1C9AA!&3?*?7w?5I =ԃ8C@!:?a ?x?m'C>}=C]Ag#;? >Ix?;X5=FxBCg@jB??Lw?Yg%jECj5A`?NA?>Ev?d=X{LCտG??mw?Ppu>vջn`JC7AixAJ?>{?=3>Q>QCwY"s>BYKN?Z?yo?y>!Gg>.ECȮAB1MN?_9>od?=y>JCƸBH T?U>aF?}ټw!?8C /BX?D ?X?XS>6 6?FY51?V*CXQ, 0BJJ]?:?h6?[P?<63?CCH1=AC%]?Q>y+-?vU4?(CB`??%,?~.yE?8 xL?[BRNCk?x>vD>c?BgxK+CP0s?5?u>^x?Ҷ`BT@m9Ctx?? >"<}?A@?=bt BNAF!? ?W?E=yCA%%32?Q ?y?>8K4CL&B|S@?b?q?N>齬m9C?VBOe=x?*6CVA B%h??3s?.w= X?wBA$CZsm??v>T!=ep?nBeA1Cn` ? ?=s>v9@B貽A?Lý/??^?U >FCC(MB2])??ڊh?;>R`z'C3GB.?"j?u?E>bq>0C.8BV3?Eu?c=t?>1CllBc ˽ʵ5Cm^B}E??vp?r>峽=C;BAnQ??~^?}>|>5CUBBݾb? ?f#?8]>#e>#CBpB /[?6?z5?>n?oDC(BBf??j>>V?6B1BogC l?u ?5>V>g?z®B0A-Cs?F?{=> r?bB:ΕA{7Cp?U?΁>>mHBSB<$V?gs?o>>)R$BleBq3թ#??~U?z/W>C]B-(?L?&d?_>(ݩW CaB6.?!?ޤm?\>BW$CBC%,4?"?-p?:>H(CB}:?K'?Hi?s>)p(CB”C?# ?5c?>,1J#CkǩBeB`? ??c>9?CB C?i>ah M>>wn?βARȤ??&u>T>FRT+B>B +ô?R?,?>1$ 0CWBO"p$?#?RO?->޾8C5B}B?,?T?a ? =i!C7B?IJ?+?N??k >CB`B^g?@ ?3ջ>9>uUV?[BDpBC+Dm?-?l?2>~>4`?dBM8B(Cӗ?f?=h>$`BkBc8:%*?)(??Z?>v[ChlB Z4?f,?,g?>IS\!CBwXQ?6?:?(?;>|C?2BpYBV?˿4?Н)?0?e>CtBB?Z?.?j$??'?>qC BB&e?}l%?>>cP?HYBB CŌr? ?0j9>o]?XZB9<*B*Ck?F8 ?'B>mXېAA=)Kz?S#?)>?6ExBo,B E)ó?vP(?+>N/?o&^BBq$?,?:%??;tJ C}B>;/?_H8?E?A4?4C9C즒Z9?5?T?T2?;3 CB"G@?rE CzC#J?ǟ9?GSE?1T?f+>v CBLA^?+?y?X?H?B:BB)Xh? "?D*>>m_?ӽBSBCl?M`?[<2?>^?jBOBeC?? >>4f-mB-.vB =v#? 4?ߞ>.@?&&BSB%*?ŋF?}7?D@BtB(B#s}?nX?#T<>XKe?@iAM8C~?>r=h;? S+)BTBÏ?6?1>4A?!BB.!?g8D?,s>5?eBCdOy60?C??EBRC B.b?8?lw>»??{?XB@C^Bh?}+?0}= ?S?̿B0BC/u? ? ^?-O?ʓ BuBVCay?B?[,?Y?IA,B]*C ??zk? R\9 BK[~B;?&?ifM?>>S?¾MB)C8?3L?w?ѝJ?;NB'C$0+ E?"N?s"?dA?&>BE'CHi@޻Y?{C?>???Mo>xBC|lBsy_?9??>B?>B CmBdg?E5?=޴*?Z=?B4BR#B3w? 2?4N>?' F /iBeBc ?8q.?`+<?\z9B0'B%$À?G(?w(0BCGý1?-T?>uj?rB^3C2:y??!V?>`\b?v=B3C,G0tT?5]L??J?>P.B2"C>B$o?پ,?P齂?SM?idBBUC?M?Oa=]?~[:f@pyB:?΁L?p >6? 6WB$C3¬?N?l>P?1 BY)C>¹"? X?2E>9k?.ęBLM5C:k¢V?(W?x4>ʠ`?r>3B1CB4a?+I?[>M?Hk?BToC9B+@i?@?f)p;44?5?ڀB CXB[> ?S7,X>czP;A|L?|)?10a?[QABߪ(% ?>?{=* ?^nT BC À?EP6?"< >^e5?AhjBxï;?E?=&?#9 .B.!C;A[a(?d?>By?Ch; 5?fb?>^w?o{BH>C=L?d?Yj>0x?$%=_B>C A|f?T?hIG= O??jMB&)CBh?L?%롺39?(0?KXB@DCRB@t?85?b"?B?BPBTB?xr?ب=8>-.kS!BGW4?%U?(P>_?nu=7B1CXb?C`?=f?3>j'B9Cfj6Bʫp?K?FL%?Y׭Ax>CZ}l%By&k?l?І<2F}?&Aj;CZ)B*|?a?? ?c>?hk?JB.B}?(?4^nR!?=?e۽jBuC-g>dA?=) ?+:UuB COÔ>%oX?.a?&𾈻"JC1C#„>d?h#;s?y U=C,|x?%9h}?M>V@FCK^s =r?v?>"qTCCAm?&9h}?M>׭AAj;CZ)Bm?B5.sp?Xέ>׭AG?Pr<>>\$wHfBե:î>Y;?@=1?tlL,C<(>,l?}z?4"zf@C2]pH>l,x?*ؽi~?ٲ!$4EC)|x?c;Q?^V@FCK^|x?IL!x~?\i=V@FCK^Q=(`?'W??=Irt1C:BGh?8 d?_>Aj;CZ)B}^?H䖽?Sy=>b~r|.>8B?oG)>-3?<?8jT]!BC&I>1`E?.GA?[#E(C1 >qT? WsjW?p5¬i*C˜.>&`?gj??V"ԕ7C’>o?Uʌs?5-\w@C9=QUZ?/ /?Σ:?z/W%C~B}^?9N?Ǡ?J'CbyB}^?&һ?aT?J'CbyBL^< =?L=z-?K9?BBI< ?=_5"?E?L''kB-C@(?S;2?7?e۽jBuC ?:=9y*?Y>?N=2Z`BC@(?:=9y*?Y>?e۽jBuC>X*?&p=?J\$&=jB/1'4>0j?c@s?q">PRŒ>C;;A >&g?D̾i?D'p:CNeN˪=IcF?38=,?3;? CB+v=ơC?K'>#-?67?'IM~BB&"2=,? >k4.?77?@BC#m?F=?M? B3,C ?F=?M?N=2Z`BCRI> ?J<#>ad B7=>9?VT%?;tVCÞ>FUL?Ѿ/K?4^CUj>fA?ƾ 6?G1x¼CF>GV?3tY?V]< (Cq>:`?оRd?AKBr1C,RP>`?dla?=5C&A">%Z?L2Ⱦp|_?D>tn ,C~B՞<?'<7A ?zW?*BA*C#m?ٿ<`?R\N? B3,Cc>K0?ܺv ?AJNyrB'،>KV?d S?K`o%C4>J?lޢO?lU>^ŠvCpB=F??? &?ȰtC1JB#m?pH?PRY? B3,C<?\ >e?d1A :C@7#nX?pH?PRY?@iAM8C@7#nX?C0!q?@iAM8C>C0!q?0;H@C> ?yaҽ==v~@6ALÑI>#?|O3>'{`2¶e BZH=>-?g`ӎ>sMhoB'8C >?3^Y>/ gug|dB#=ba>&?v>US80Bl2A>M6?ʇ?i'XBu*>>?_N%?H QC[w>nG?؃];?@XCqW>R?0) V?N#=Z"C^Aj=α8?=5?x3?Ԗ™BDBŬ> *? de>j1kBu4#K>JVE???atx CP_©\>m;?&F?J=uîCVRg>D?$ t@V? ;g}C8A#2>??T?Ն>v CܒUBh='?q0?b#?hpGGB @Q>Z3?-6?MqbBH£{>7?Xa:?0> B&XB=nA9?Ĉx=?? 1B#BG#=-E,?QM*?7?.BvB"=?RM~>ge?4Yz B,C}>?/ܾF>'Y}GhB:p>S 7?5#.?5cB\,ra}K>9?9?P?>iCB >.?L׾'?s ?Zå1B/B]=n??ν?W?BC>v?8m=f} pq†AJ>K?=K>S73)uB(>L'?)he> h뗫B:!]b>.?)&:6B?˭f=k4BwA>?c>m⎏\BaDf]>x-,?c-?澃 #WBb€j>H(?~2J?.o6:fB½3x>%*?<44`3?dٽ=ð'BtD>,?4?>L/PB~WB=>?龃o?:?ÃOB9sCͿ=Q? W>Q?:BCVO=[B?ݓD>j?$g¼0B!C">?70>&;zB 0 >S!?9 ??=(jBϤB; [=?uhy>p?ZAa0CX>?>?l@=I|p–yKO>?R >>"OhA9>? nE9>\ N:'4vBǂ y>E?Z>3,R6 B\)2a>?S: ?=HQÞBSGAaO>Al?B?>R K:{B CBu:>w?P6>U?HDI5BwBf=?Ţ*O>C?)g.>PBmC^=y?ニ>kX? ¶6BC>p{>)R3(k=TLEEIȘ>?:=Ym+@EÞ> ?_%5K>Ï-\ÆAk G>q?n#XK=>ʝǾ_`M'B$C>c3?.c(Cm>x2?N/wEBB=)AM>v?J¤e>CU>M?H> Cz/37BU‚z>ow?`2>?]RîL/BTKN>0?0rS.@>>\3B>-8h>?9vO>E=y _NSBAUL>?udЗ>`>V^VBRcB0>8?JQ>D?\Fúx6BBo=?! !=+T?|o\A9CO)= ?i-F=c?,l gA!C|=?c;om?ˆƻW(0C>!>W=֥|z#T=J=> ?X=.9mA H>?eIJO=G8 xAm>/?q cԎb ANmAU>?Mw۱:<>}^WAl9BW>>?_UԌ>Rd&AaB!>?]?sq<(!J?|BAfC>#>N6恽2«"+ç>[?" EvT?h#x ò?AÌ->>pQ9+!t g>>T_c{t'F f~Z>?[pX@JTb>x>ySV>n`cA!n=3>j"u?RaI4,:CR>{ow=u}?(Ĵg BC>'OY=%>"n?0;H@CJ>>2ƄO,“}£*>?>C>aM 7f \Mq>&>pzAnyy3^nAL>>FUc0hz>jTݛjcB.>>QpIMZP&?9BׂݷB>q:>#=D??hag'C=u>"^4[?0 MhC>>nNlN Q?örM'&d>c>WRn!fW<_VF»K~>>pHQe8l )b>[x>gnC>>7NWýr·A>>p5ǂ!?&Ú#/)B>)>p,n.S !JI>5>h[襾TFH||Jg¹p>վ>`qZ]<UsR¨A|rR>\>[9n˾7>ҏH_|X2B'<>d>-sIMپU>9ýFBDX->@>pHȲ"?C8K즮B\?>F>dX g>usYzMè >>MwB>My}/AJ!M >>^o=_|ljv I1N>>NNS bpؽM9=P=V>Y,$M?Xr³C6>/й>#K^i P)Փ¹>¼,>>eQM^ľپ 5ÏcHR|g>D>.Uac">`TG 2Am`>#I>l08??WÊ¡B^=>G O4?1\-nB(=>_i?3hZH3CG<{>vؿs?qzx&>y8ۄow$dq,X'>>O#f -ª5>с>(Z8J>k >0cm@U:H>Y>RL>4HIB=_>g ca?By…CCP>>Z(Iڲ,zT>>9CȾЅ>*=JBğ*>3>0I>WB{ŸYB.=Ƒ>V cl 2?l:ΏBp;Dn>&P=B|?0} v =BC>]5=_=7~?0;H@C@>r>n^=>^ot˜E ?\SÇ>8>1+VʘfƟAu>8>uz7I>b$>Sb>0>W@Qp>->B1;&+B<. j>Dd>6<=6{Rf>{|<Osgc20eM'>>_ ̾2·:.>g>LBҾW q"'>Z<>6}v־/ƒ͖˶>w>e7ZDq þUć>>ICRkTkrW>>5#A>nêK7A>2>C ' ?mP>B =>־Pپ lM?0C?>臜>0!P ™ >^>N#(?˾TÊb: _>MX>x\"l] 02\AS%>s>(7p4,ý>@®uØJ|BW<>88վڪf?*]+CT>c6>ks ]<%|ç>׃>l@vIоpl{ vX>d>L^YS302J4>3ھdz8Ƞ&C+>MM>MRSU[+>>l&ö DB=>E*Nd?B~=B> 2Ҿe3? @BfBt=_h>Gk辸^Z?^nC>eY>@E=Hz=[5@Wc>:>k41)K{˒PW3T˩>>]zaEltgp4w>I>a;85jR*.>NOξBQHо>nc·>c>>!ξb`x #ԦG>d,>ȾMkn;NDZ.ûAJ>>rŽZվfgz#ւE=9?C>lʾT >2 +B?IJ=UY>䫾tA?ĔQ#B e=%1><nM?s6C(<=>T_?,V>.ꭾ n?@zz>C;>q>뾟`?I7Y6C>>Lbu?0;H@C>>i=t@BT*G‡5ˁ3M >%>[liI }LšNþ>XN>^TikZ$å T>=Yor,c(7ìAʼn>=!a3q6ߴfˆ9ë;= >]t >x2u9æ PBg4a=g>Et63,?T8BM<0>< >^_?»X C]?F>M={xyWԝ?>b=<ypB'EPÑ.>=V>$,1_쾪k'L F>>?#xjqN(2<ǽD8>P=E@2W{Q<E">֕A5H=I>>>Ὗg*n>=ªm6(`B=y{R?" ïFCXF{d=ߕ,^?1tC?>ߚ=wSV£3>>N 7e1Ugkr">=ZHw8@[ld>%wzja?JsEB7/>yM>\}\?XD G Cp?#> =|QAVb?^;>2$>ؾjd@ ]E>'>U tpfob|9Æs|H=qRB~J=yC[ARм,>4=]*?D A0LB4g>'>0|K? ޿B?>Up=W~:@W?UHe> =5H;A"ÙX?c=ÕjEzqMŚ@X@Óc¦!?"\=P fZAuGCg[ >[@S=v첅>Au8څBw=iG>=~7ʪ0? [@1'Ö.B >X>QkV?[A4GCW ?46&>Ԅ<nHA75?g==dz\EʿA4C4Hz?g>x>S? ޿BHx?_ׁ>y>;较U?s;Ah$BB?/>x>S?XD G Cx?&Ĥ>ˢ>=;7V?#xAS CG{?>-i>GFdQ?[A4GC?/>-i>GFdQ?XD G C ?>>PBQ'/#c ?e>O>?|@tA7?+=>}^>B *F RN?Ñ=s&>$x|2>;ɤ=zgG>Au8څB |?H=Ȥ=zeG>yC[Aj}y?,>&>Nm9M?D A0LBBs?8]>ީ>plG?bA!B |?=iG>&>Nm9M? [@1'Ö.B |?=iG>;Ƀ>}C? [@1'Ö.B?g>;Ƀ>}C? ޿B?g>>`Q? ޿B?/>T>׾OW?XD G C7? >>%yiQ"AbO?=>yn>cRd[B uTCÕ?0d>;[>i6W=B" z"?],>J>fožpEBy6ϊ¥+?@>o@l>u9r#[Bt@IOK^?k >>vJjn>^ZBW9:Bn?[ >.i>.v{i>Au8څBR^d?Z->Օ>^M>WfB!1ÍBn?[ >F>1o>Au8څBn?[ >ok>\>Au8څBNg?$K>&>$C=?oBW%ÔƭBj}y?,>nk>\>D A0LBn?[ >l/ >W>'-;4?D A0LB}r?>M>.Y?BJB,LK>QDl>MyZ?OA%‹3C1?u?G>>1YQ?bBZeF"Cz?LK>q>aBR?OA%‹3CG{?>q>aBR?[A4GCA?{AO>>GPBB*&? .>T>cM%ўB7ی>?9$>>5sA<}B:ØV df?K}>>i J?I> G^?=fBzúBar?>>l1Q?4BsA CG{?>>z_R?[A4GCz?LK>v>Ⱦ'-n>Ӂ3^p?+eA^h;C?7%>v>Ⱦ=Bc?@zz>C?7%>">&㽥${?@zz>Cl?!>#>Gp t69rB{t?|{>>>%JBTޑH?\E>[>ƕiM\f>n)B1nQAWS?LA>b>8_>(B,=0BG{?>_>,2G?[A4GC-?g>)==~t}A|V ?#>D>.Ug`WBD2F|D?N>Q>ʾMBY:+Be6Ô>?o@>/>)侠MJBxթ((?*Ti>J>h;*hB"ÕV-?Q>>WXWDB-m~ 6?GDD>?>XZg"0Bʺ2ï6!L>\? \>.> N>jB!踏B n?>k(>АA\?5mBDC0g?9>Ia>FW?5B"B?>>j8\B:mNkN?\p>M^>yeNN>KC eB^?7> $>-lv5?B B! ?>Sb>TlsBo<*BrPÄ<3?M>?/@骔 C0jaJ;?ps>?Mܩo!C#B?_e>)?wZ%=.DCRP(p/V?y >.K>^/a7?f,BaBc?>>BlN?@rB&XB1'?>+ ?O ;\ &C#?>s"?{߾F#0C+ó-?s>O?#*v Cܧö%TI?>)&?61>CAP?Ȝ>3?R$>CjRgBܟ[?p>#>78?oHC7(WB8.i?>)>;gZ?BpCMo? >7:>Tp 7R?yB)4CՎ1?>ѩ8?AЉ: !CIC{7?z>(@?f/D(C`$@›=?D*޽P,C2, !D?>2?:5'%=6,C<Øh@T?,>^?k6$?dCOiB?z>>M쾛DVBµV#*X+?<>)8?0о9CTG?4>YJ?6: >(:Cp#AA)N?! >1?T ?b_-CbVy[Bb?/>5>߾XH?BףּCؕ\?H>?K7?[ CbUB4w?>>ƻ b? B7m4Cz?LK>ƣ>VܾW?OA%‹3CG*?b>>Z٢XBS6:6?z>hԢ>&BbڥB:q cnAä2?>sT?پ.o.C"1|ic]a?׾/_->CE C?M>&V? I5=Ϝ@C8rO@z?LK> >uƾ`?OA%‹3C o?N>,- ?@ C8B[™(] ?>6?D"{C\TqJ&?$D>K?~n Ci05?6/?⛽>A]?4T'*C sWpM9?^ٹ>Ck?s0I^e?C2r$PM?>uG?S¾N-?G@CcdBT?0>C(?}Q+?(Ca1B@j?k>G<>5cپ.F\?BbC4&?߶>Y?a#cCVgFÍ.?>?f?eBhԾe ,Cfs,6?>p?![9C)alw=?H>io?|py?oDjNC͌͋ѿE?>:q?F=NC/͝A5%?q$>X?uIwC!Ñ-?\>Kg?68Ͼw,C":?>q?x=RAC4D8J?>Xq?.L>]NPC͟A¬3O?1&u?FC7$B+c?>?I0J?cq?K7?8o(?9CFLB2? >Fr?ԫr 8C-O$|x?%9h}?M>V@FCK^m?&9h}?M>׭AAj;CZ)Bm?B5.sp?Xέ>׭AAj;CZ)B}^?H䖽?N=2Z`BC@(?:=9y*?Y>?e۽jBuC#m?F=?M? B3,C ?F=?M?N=2Z`BC#m?ٿ<`?R\N? B3,C#m?pH?PRY? B3,C@7#nX?pH?PRY?@iAM8C@7#nX?C0!q?@iAM8C>C0!q?0;H@C#m?YD<` ?Z? B3,C>'OY=%>"n?0;H@C>]5=_=7~?0;H@C>>Lbu?0;H@C?g>x>S? ޿B?/>x>S?XD G CG{?>-i>GFdQ?[A4GC?/>-i>GFdQ?XD G C |?H=i<~=yC[An?[ >ɤ=zgG>Au8څB |?H=Ȥ=zeG>yC[Aj}y?,>&>Nm9M?D A0LB |?=iG>&>Nm9M? [@1'Ö.B |?=iG>;Ƀ>}C? [@1'Ö.B?g>;Ƀ>}C? ޿B?g>>`Q? ޿B?/>T>׾OW?XD G Cn?[ >.i>.v{i>Au8څBn?[ >F>1o>Au8څBn?[ >ok>\>Au8څBj}y?,>nk>\>D A0LBn?[ >l/ >W>'-;4?D A0LBz?LK>q>aBR?OA%‹3CG{?>q>aBR?[A4GCG{?>>z_R?[A4GCz?LK>v>Ⱦv>Ⱦ=Bc?@zz>C?7%>">&㽥${?@zz>CG{?>_>,2G?[A4GCz?LK>ƣ>VܾW?OA%‹3Cz?LK> >uƾ`?OA%‹3C    ! ! "#$$$%%&&'((  ) * )* *! !+ +, ," "---##..$//%/%'(*+!.0$$101$1//2%23%%3&&434&45(56((7 7)78))9*89)*9+9:++;,:;+,<";<,"<--<##=.<=#=0.1>/?''55@66A(@A6A7(B87;C<CD<D=</E2>E/2F3EF2F43'G5G@5AB7BH88H9HI99I::I;DJ=JK==L0KL=L10ME>FN4N4?O'GP@@QAPQ@ARBQRABRHRSHHSISTIIT;;UCTU;CVDUVCVJDLW1W>1MXEXYEEYFYNFOZ''ZGQ[RR\S[\RS]T]UTW^>^M>_`ZaGGbPabGbcPPcQcdQd[Q[e\\fSf]SUgVLhWh^W^iMMiXiYXYjNNkk_OlZlaZbdcde[em\mf\fn]]oUno]ogUVgJJpKgpJKqLpqKqhLhr^ri^jkNasbtsabudsubuedmvffvnvwnnwooxgxpgryiiyYyjYOzlu{e{|e|mem}vw~oo~x~xxppqqhqhryrO?latatstssu{u|}m}vvvwvw~~yjyzOzlt{|}|~~jjkjk{{}}O_kzzz?               ?              !"!""##$#$$$%%&' &' ('( ))* +* **!",##-$,-#-.$$.%./%%//000&12+12+3*23+34**5!45*!5"5,"6-,(77889::1;325<,<6,6=--=.=>..>/>?/?0/&@'1;2;A33B4C<5<D6D=6>E?0@&?@0@(')FF:AB34G5BG4GC5CH<HD<DI=IJ==K>JK=KE>?LMLMN)MNNF)1O;OA;?P@AQBQRBRGBCSHHSDSIDJTKKTETUEEU?UP?@V((V77WVW7W8:X1XO1YAORZGG[CZ[G[SCS\II\JP]@]V@Y^AA^Q^RQ[_S_\S\`J`TJTaUaPUWb88bc?dLFe:eX:XYO^fRRgZfgRZh[ghZh_[_`\dMLMiNNjFijNjeFekXXlYYl^lm^^mfmnffognofgohophhp_`qTqaTarPr]PdiMksXXslstlltmtnmoup_v`pv_]wVwWVkxsxyssytyzttznn{oz{n{uou|p|vp`}qv}`q~a}~q~rar]w]didekxkyxyyz{z{u~r?djijeexyu||vv}}~}~wWbWbj{{||~~wwW?{w?`?                                 !!!!"##$%$%&%&'&'''!("()""#$*%'++, ---!?(")#)$#*%%&&.'.&.+',// /  ` (( ) 0))0$0$$**.++,+,//- 0 0..,!--!!    ! ! "#$$$%%&&'((  ) * )* *! !+ +, ," "---##..$//%/%'(*+!.0$$101$1//2%23%%3&&434&45(56((7 7)78))9*89)*9+9:++;,:;+,<";<,"<--<##=.<=#=0.1>/?''55@66A(@A6A7(B87;C<CD<D=</E2>E/2F3EF2F43'G5G@5AB7BH88H9HI99I::I;DJ=JK==L0KL=L10ME>FN4N4?O'GP@@QAPQ@ARBQRABRHRSHHSISTIIT;;UCTU;CVDUVCVJDLW1W>1MXEXYEEYFYNFOZ''ZGQ[RR\S[\RS]T]UTW^>^M>_`ZaGGbPabGbcPPcQcdQd[Q[e\\fSf]SUgVLhWh^W^iMMiXiYXYjNNkk_OlZlaZbdcde[em\mf\fn]]oUno]ogUVgJJpKgpJKqLpqKqhLhr^ri^jkNasbtsabudsubuedmvffvnvwnnwooxgxpgryiiyYyjYOzlu{e{|e|mem}vw~oo~x~xxppqqhqhryrO?latatstssu{u|}m}vvvwvw~~yjyzOzlt{|}|~~jjkjk{{}}O_kz1234zz56789:;<=>?@ABCDEFGHIJK?L               ?              !"!""##$#$$$%%&' &' ('( ))* +* **!",##-$,-#-.$$.%./%%//000&12+12+3*23+34**5!45*!5"5,"6-,(7788M::1;325<,<6,6=--=.=>..>/>?/?0/&@'1;2;A33B4C<5<D6D=6>E?0@&?@0@(')FF:AB34G5BG4GC5CH<HD<DI=IJ==K>JK=KE>?LMLMN)MNNF)1O;OA;?P@AQBQRBRGBCSHHSDSIDJTKKTETUEEU?UP?@V((V77WVW7W8:X1XO1YAORZGG[CZ[G[SCS\II\JP]@]V@Y^AA^Q^RQ[_S_\S\`J`TJTaUaPUWb88bN?dLFe:eX:XYO^fRRgZfgRZh[ghZh_[_`\dMLMiNNjFijNjeFekXXlYYl^lm^^mfmnffognofgohophhp_`qTqaTarPr]PdiMksXXslstlltmtnmoup_v`pv_]wVwWVkxsxyssytyzttznn{oz{n{uou|p|vp`}qv}`q~a}~q~rar]w]didekxkyxyyz{z{u~r?djijeexyu||vv}}~}~wWbWbOj{{||~~wwW?{w?PQRSTUVWXYZ[\]^_`abcdefgh`i?              j         k          !!!!"##$%$%&%&'&'''!("()""#$*%'++, ---!?(")#)$#*%%&&.'.&.+',// /  ` (( ) 0))0$0$$**.++,+,//- 0 0..,!--!!openuniverse-1.0beta3.1.orig/3dmodels/shuttle.bmf0000644000175000017500000044514107045144437021732 0ustar paulliupaulliu dz<<~e.4A@5Uq?{?@8l?8-n>\|pA@n^zŸ?{?qZ?‡=ΙqA@cq½w? ?/X a>aOA@J F?{?M?u>$qA@jav? ?Ώ,vA@6v ?{?EiGҾ&.pAaz? ?N,C6R?w wA ;Ÿ|z?{?Y#ֽ Z?n$qA_s–Ӕ? ?oBR?  bA`-&? ?oBR?  wA ;–Ӕ? ?>&>?bA`-&D?{?1?*q-?{B>TpA@oav ? ?ua9!?Aw–Ӕ? ?ua9!?bA`-& ? ?YP?k?Aw/?{?\oO^npAd`u = ?<>:AT= ?"\D ?:Awe={?<>npAd`u& =qT2>`$p-!B[3=qT2f)?ΟA`i !1 =qT2>`$pџB h!1 =qT2ىdU>5FџB hs=qT2/0h>DZAU_&1 =ى>ىdU>5FbiA@6 &1 =ى>C>v) biA@6 s=ى><?LA@NɆ = ?C>v) :ATm? ?;? &?״="A "ƾ꾐$&AŸ?{?P#[?6b7̾$A½w? ?$t; >褢@@F?{?Z?` =߾g%A? ?#=wm>Q&*@~) ?{?Nxqq=ouypP%A:? ?5l?h|>l@DŸ|z?{?Djr?1ɾ%An–Ӕ? ?8l?iiF@`@? ?8l?i|>l@D–Ӕ? ?1>X.>iF@`@D?{?3a9?bL?=>[pf%A ? ?j@ AG/?{?6C\=;$AJ = ?S#>Hݲƛ@ 6A_= ?8!?@ AGe={?S#>Hݲ$AJ& =qT2>Ts=8{'HAQA>B 3=qT2j?-@r$A?A !1 =qT2>Ts=8{F5ARVAe !1 =qT2ȫi> B=F5ARVAe s=qT2>+$AA. &1 =ى>ȫi> B=F5AHA&1 =ى>Y=>nFF5AHAs=ى>~J?HA 4AjQ = ?Y=>nFƛ@ 6A_m? ?Z$?*>r50Uq?{?sC?-n>zUm^PŸ?{?oU?}F+Ic½w? ? N? J PF?{?Ca?(\ژ=)ia? ?p:>_+>Τ 6 ?{?B/4ea>? ?ߝR?>o@-zD?{?W<O`wc/?{?c[_oܽm?@d֍ = ?d>\噾C*=G= ?IWD ?O`wce={?d>\噾m?@d֍& =qT29_}Z Z.3=qT2%>ʟh8-`V!1 =qT29_}b l!1 =qT2gU>=b ls=qT2Z8=i>_%=U&1 =ى>gU>=R0 &1 =ى>rg>/R0 s=ى>PR? ս,00N = ?rg>/C*=Gm? ?;?`?b׾7AAޮUq?{?Z?L>Pc\jAlA Ÿ?{?Q+[?'-cjAA ½w? ?V+wM>EAAޮF?{?Z?$ >>jA8=A ? ?=i >:bYAہAܮ ?{?xIM>JANAޮD?{?9?g)?4H>>jAz>AAޮ/?{?^]j|ojAA = ?Su>4׾ZAIAܮ= ?8j}?ƾAAޮe={?Su>4׾ojAA & =qT2,>p݀|Ap&A3=qT2{i?x-ŸAzA!1 =qT2,>p݀|A $A!1 =qT2i!>A $As=qT2>d>i!>A $A&1 =ى>Y7>⽾A $As=ى>~J&n?GxA0,A = ?Y7>⽾ZAIAܮVf?W?Rվk7R>D4ܼ B*P1?߅>>,?HeWJܼ B*PVf?W?cC5%H2D=CBOVf?W?ݔ>O\?^xƳ?CBO1?߅>?G"H@ B)P1?߅>6RqlB= B)P,64>i|?߂??92t@LN@bn?i|?ˉP?>>K:z| @{B?P?B8TW?xL QjA??P?c;?*yA2x?P?%?^'?Ǿ6XȕA ?Vr,g?hA….G?P?f<:?(D0AsM?P?Ṭ>m?CgzOAcJ?P?< }?> k'An?i|?漍Z?BA`,64>i|??42 gA@LN@bD3>P?>D:oA @{B?P?{7T=W?hL FqAjA??P?>G?*AyA2x?P?%['?Ǿ`?XȕAat1?&⥕ApAPW?P?Ⱦ+ ?0r,1AhA….G?P?><>:?(/dA0AsM?P?Ṿm?ClAOAcJ?P? }?>A'Ak6q?p?F>1>s\-? ΤBYbIk?0e?x?)=P,S>@Baá'g?X?f>T:d" @{BPk6q?p?3QTz2b["2ΤBYá'g?X?ٯyc¾ yBPbIk?0e?Y?|К=ԙBa=> ?l? E>Ze.4A@5'<{??M?4>~ΙqA@cq޹> ?.:??*̧aOA@J Ç>ى>Dl?(>6&D A+;R ù>ى>b1?5?y-ok;A` ?f>^P? ;,vA@6v<{?K;>ޫ\?@&.pAazyl> ?Y=fb?>wA ;2>ى>TO>/i?:}_e~APU } ø>qT2|?>4IA txK2>qT2y"><?9B&A ǍU m>ى>`CԀt?仕 #A؊ ð&> ?ɔQO?gbA`-&cY(>ى>X@޾DT?yAP\ = ?ИC>B :AT!1 =qT2>YpџB hΑ(>qT2 &>(8 zA1ZcY(>qT2>bWZOA s!Rm>qT2VW>JEAj  m>qT2.{ͼ?NJAnô>qT2),&<5'҂Apʖ&1 =ى>ЉdU>>5FbiA@6 Ⱥ>qT23Ծo/6O;A->qT2]DCA :"Ç>qT2N2?q>'A@z2+?qT2I?l< A4?ى>?4lZ@@Uo ? ?o?F:]+A@8ú?{?tq k>dqA@wav%? ? fY?Dʼn5A"g>?{?]`y8pA@dVv?qT2JKL @Å?qT2B>N. Ax: ?qT2GC?|8/JAt: ?ى>h?+Zվ-fA'á"?ى> ]*?X ?o~E?AC@+ Â#? ?)?6m]QA>g={?zI?E`AupA@dVv›"?qT2%?=J5l@A.b@Pá"?qT2#!?SpMA (@d3?qT2?X>-+eA@Ld3?ى>t>rQsyA@@6t 4? ?m='juG+eyA?x?{?"?> qA@av#3?qT2'.('?Av߅A@HkD?qT2v>A)?$H4ðA`x@cD?qT2> <)߯A@@,}D?ى>Ϭ&}B A@g D? ?4 o6˦}'A@/P_:{?j>l_o qA@avU?qT2J ?d ?%BrA`e@ZQèU?qT2c06ZA@^èU?ى>͖QY\xQA@Z@ XV? ?1ɾKRѾqAљ?@9¶}?{?ڛ]ʾ.pA&aj{?{?c1BvαqA%cxqf? ?N:bA6:(‘?{?]a׾dh?? ==eC@ʼbiA@6 lw?ى>j^*A@`V f?ى>W7BJ_JA?Ľ f?qT20JHpDpA;?øf?qT2]b=?m>:AS?LÌnw?qT2V?q=* wB`{lw?qT2)(,PBqÉI?qT2d+̼DџB hùH?qT2 ?1JO-!B[=> ?9]?7><="A<'<{?;?"?̾$A޹> ?3)?5e2?褢@@‡>ى>e?:M>4B7@+$Aù>ى>y(?@?}ca@ۥO> ?>N@h?vQ&*@~)<{?=v?ypP%A:yl> ?<աy?A{a|>l@D2>ى>.>s?Lg *q@ ø>qT2?>ij.? ca@_ 2>qT2[K=hH?Rg @W m>ى>8Ƚ~?a.%G?O@O+ ð&> ?ܘUhf?[diF@`@cY(>ى> _?+7jԳ@@@_ = ?X>]ƛ@ 6A_!1 =qT2>=${F5ARVAe Α(>qT2>fH@@ cY(>qT2-־&?>"jԳ@@ Rm>qT2~n<9KLg?%9@ m>qT2(E?߳L%G?d@ô>qT2G] R Iv@]@ &1 =ى>Ϋi>qB=F5AHAȺ>qT2;+bþyAkM@@| >qT2n\1`*5Hp)A Ç>qT2~?>)4B7 1AG ?qT2a4+?gb>^5Gn~AY ?ى>I{?pp?{??bp=P$A?qT2;!1>IV(Z}A Å?qT2ڌ%px>fHpA4 : ?qT2&?zWA,B7{An : ?ى>e?븾t0,B7A>á"?ى>'?/eaAԇÂ#? ?7?/ꤢPdA: g={?|;?kxP$A›"?qT2w2e 1?}MлA% á"?qT2?ߘMeaAWe d3?qT27 >Y*T{ 0lA] d3?ى>'>bS{ @A4? ?9rkT? g?A2| D?qT2*׽$m^6$G?A_D? ?RBS~^|>ADoP_:{?`=pP3߾0a%AU?qT2>6?@*A èU?qT2/ۀݰUfԳ@0A% èU?ى>K.9LԭfԳ@SANHXV? ??n5 JiF@A¶}?{?? wx%AX?{?[9"Hɾ$Af? ?|aq7Ӿ@Al‘?{?dѾY?x>Zpb%A/`w? ?k<ǾǛ@fATSq?{?hƩ&>/Ǿ0&ABO? ?yi4=N>ξƛ@ 6A_‰I?ى>ufwI=wҎF5AHAlw?ى>uud(hF5A0hAf?ى>K4QoAADf?qT2mp`NApAǹ øf?qT2Q ?>r$AKAk Ìnw?qT2&:?Z>&'HAAI lw?qT2`O"Q|ѽ:DF5A0EA2 ÉI?qT2h=u L=򥐾F5ARVAe ùH?qT2R:>\ >\c'HAQA>B ý78%>e?⾞5rߵA8 Y=q>\W>i?Aā&›{=?>ag?>u#[ʾJcAH';=Ogi>D~?(ܬ A!&[z=?>s?eK4JcAH*=Ngi>~?XŸ޿4 A!6j=q>?7Aā 5={>? q$BA0q@d={>?_0$BA0qP =><?"rgApjW => ?Z2rgApjW0Vc =ʨ>?e-jxA8o<=ʨ>?9:ɍ2jxA8f=x>?R (<`APB=x>?W^<052`APRk=>O?z< A=>6?40<Ԛ2 A|K=>?F8j4 Aҿz=>?!6 AD¬=2?%?+B>H A#ʇ°=2??.=$ A# €a=@??H>O AO„=@??hH6 T3 AY=?5?j*>q/ A@ @\=?? 5?3 A@ @ʜw=((?5?j*>2/ A` @=((??Uh_ A` @d=5?_?,)> A@0=5?v~? =r@" A@,++=48?I۾aAARf.Z=48?x?m>ʳaAAbµ*=%??)?k>t+8TAA¹Y=%??5v? >8TAAB F=.H?%?־>*ƷAX4ARu=.H?; r?v>PƷAX4A`[aa> S??Z >+*ATAx> S?"i?,>rATA^s>a\?<7? ?F0A`sA¤>k\?S??sK0AsAu>c?0?C9?aAA\Du>c?-"?E?qk[A0AjS>:i?>7?#AiA7>n?­#>B? rAAPH)>p?=F?UAAݘA >r?~ =M?hLrA(A"F>8r?!=H?>Dh@ Av>.s?<66H?!YO@hA v>.s?j?Y*̾g@hAv>.s?ӕ%1I?Kq?hAv>.s?hHnj?(̾XhAv>.s?J7 j?iϾpAs>.s?|\6?Q3XhAAs>.s?|6?iupAAs>.s?j=?ˮq?pAAs>.s?}_6?g@pAAs>.s?:=?0O@hAA…^>8r?|Ez=?;Dh@ A*Vw,>r?=H?XzA(A.l¸>p?>}?XVUAAݘAO>n?}-e>y? rAxAXYk>Di?2>ck?:AiA1?_'>eapb`8 oh?4I&>=+-?f`vLx¾Mh?]I>t8p,v8pŸh?]I>q*>v8b{g?~zнi 7+n!6\&h?ub-= /n!&[%~g?>šJT8'ns43g?>5+j*>l/3ns |g?4> q$8&n]]ag?4>5h*>/.n]Uf?֟>p ׶4!8&nF4f?֟>5j*>\/.nFN{Lf?&>G29'8"n.p]f?&>T5{h*>/.n.be?u>tiG8&n"S¥!f?u>g5#j*>/2nbe?>T8*n|e?>Zd&=޾.nd? }?$׶7'n8p6\d? }?d=޾/n8^: c?m?n&&8'n/j?t_Qc?m?ndS=޾3n/j?f…=b?P"?JAECG8'n`u@gb?P"?)d=޾3n`u@~pRa?=-?k.%8'n@5a?=-?Wd=޾/n@ q@Va?w3? Rn7+n @^#a?w3?dd=޾/n @9a?5?1T=F~7+n@,a?5?`(h7>/n@`?H>?(5}>k60AMa?H>?̤\r>߾0AB`?rG?/x}{> 7B0Ax`?rG?TQ>"߾B0A€_?O?sun&C>Xv7p:PUJAc`?O?OAH>$E޾x:@UJA+dh_?0W?!]?d6(aAE_?0W?o&5?}Cݾ(aAtk _?}]?CV%?9ѴRwA6VNQ_?}]?+?_ܾRwA*b^?c?GL?I3(AfC_?c?1ྩI?޾AXD+e^?@i?_ƾk?2iA1 ^?5i?=]?j ھiA,^?n?bqy?з*{xAXr^?n?e?Ӿ*{xALH ^?p?M~?LNIݘAN^?p?eh?=оVIݘA ]?r?U施M?(A*l:^?r?D\i?L;(A"_]?3r?x?m5x A#ʇ…d?>؀q>x Aҿe?>TY4q>x Ac/f?x>',q>x`APBSf?ʨ>vq>xjxA8dFg?>Vq>xrgApjW Gg?{>p>0x$BA0q@´h?q>=:?-Aā&=> ?v(G?E><r50'<{?V$?h5>@c޹> ?0?? J P‡>ى>-X?e>Rþn+ ù>ى>q?5?FuP ?gA>^P? 6Τ 6<{?&<\??ea>yl> ?tdZb?}Y;2>ى>G>/i?rUHU? ø>qT2{ao>&>)V tT2>qT2W<?LfpǍH m>ى>RҀt?Y؊Q ð&> ?k5O?o@-zcY(>ى>7T?>8 eiH = ?Tng>C*=G!1 =qT2.'Y}b lΑ(>qT2R>(8) lcY(>qT2w) >w12wsRm>qT2-Jj- m>qT2𑙾?0@N}ô>qT2þ)<RhʖP&1 =ى>gU>=R0 Ⱥ>qT2s9"o})>qT2wK6Wp : Ç>qT2 x>q>qvZ[@z2d?qT2?o<Y ?ى>n?7eCUL ? ?VDQ?A6ZJº?{?qĈ>(va %? ?3;?&j"rg>?{?`]yo=Rd?qT2GWK, CN `A>Å?qT2iB>g7 0x: ?qT2?|Rf€C:: ?ى>Z?Yվ/~a á"?ى>8?j ?x@C@A Â#? ?Ƙ ?6Tй>g={?Bx(?`"Rd›"?qT2)$?1#.b@\á"?qT2>ŪF. (@d3?qT2@2>,+926 @rd3?ى>Č>rN'_`@6 4? ?r3Cjuwΐk?@x?{?f>C뾫E_?{?l>a?x>)a #3?qT2@('?I027 @kD?qT2d;A)?@G`x@DD?qT2]к =}[ҷ@ D? ?"to섾[ @@yP_:{?+=_o)a U?qT2>d ?J\r`e@èU?qT2MSc0( | @"èU?ى>2 PY\.on`Z@] XV? ?ʺR{~rҙ?cö}?{?׾]n6@&a?{?,+Bdq@%cf? ?NlN9Q6eÑ?{?Nľh?F}3>+@a/`w? ?Spx'N*="T2Sq?{?,wtg=MB;^JO? ?Z+xxC*=GÉI?ى>YT~7ʼ R0 lw?ى>&y^ 6z@`V#f?ى>O.W:3?,f?qT2*%KLzFA;?øf?qT2>l>_~Nb1S?tÌnw?qT2,F?r=PL0 `lw?qT2?B)c; qFÉI?qT27~̼b lùH?qT2[>uZ Z.=> ?9]?>Sʾ7AAޮ'<{?x;??'e׾cjAA ޹> ?3)?N#?\ʾEAAޮ‡>ى>qe?>HK&AA¹>ى>y(?(%:?HC*A@GqAO> ?>aZ?u-ʾ:bYAہAܮ<{?l=f?4׾{jA`7A yl> ?< l?ž)oAAܮ2>ى>.>sn?:H{MA ]A¸>qT2@>W?+qT2M=pV*?<{MA ]A m>ى>3Ƚey?cHb*tAwYA°&> ?lX?JANAޮcY(>ى>)!Y?RHHAeA = ?X>)ZAIAܮ!1 =qT2->΀j|A $AΑ(>qT2>) -)A`]AܤcY(>qT2=.־?ٴqT2<<_-,uAOA m>qT2('?qT2W].Tx-JA TAޤ&1 =ى>i!>A $AȺ>qT2;-kz$A,jAޤ>qT2[1Dv{-i A8A‡>qT2 ?_ > M{?tfGK ApjAp?{?4bxc\jA A ?qT2i;If=Jx-{xAp-i ArAޤ: ?qT2l~&?;e?j;HC&AA¡"?ى>o'?d;H;*A@տA‚#? ?K;?k.ξEA(Aܮg={?;?.=e׾c\jA A ›"?qT232@?-kz$AbA¡"?qT2?ݾ4P<{MAAd3?ى>['>Vo@GzMAA4? ?_jA;A #3?qT2 V1U6?w-JA@1AkD?qT2w>9?-,uA~AD?qT2<,׽MyHY*tAAD? ?gCgX1oA@׷AޮP_:{?H=-f׾jA;A U?qT2J>?-8AAڤ¨U?qT2Dڀ ȳx.?XHHAAXV? ?,:뾭zJξJA*Aܮ¶}?{?HhUҾ{jAhAA ?{?#<9PCjA!A f? ?laޛAAܮ‘?{?>Ѿd?9<> jA;A /`w? ?ek˽YZAP/AޮSq?{?lh=CҾojAoA O? ?|iC8nѾZAIAܮ‰I?ى>u lA $Alw?ى>~uDNdHATAf?ى>sKGxALAf?qT2q w-ŸAXAܤŒnw?qT2Ԃ:?Í=-A`RAlw?qT2O"qobE6fAp&A·>*=a[?b@ؾ7伖@P{A\e·- ?}%=O@>< =7~ W?DA:A ?4_7>s9?_W$S@[Avp1?1߃>?@;E?Ⱦy@Ф B)p1?1߃>}*,H{Ф B)÷- ?N>>!)qxDA:·- ?}%='H?v$\sƿA:¶>*=Qp'otV|r8{A\eA ?/=շZVPs8iAvA ?4_7>P`ƾkݫbЇ[Avf2?=cprN8pZV>ͻᾝplA ¤+?\LW> G>vk<>U=ph-#Ҿp A ¬'?=~<j.ξcK0Aܮœ+?nLW> :ᾝpP_A !?=6%nof_8Aܮ`+?\LW>`y?r%<>%gRWnu8׷Aޮ +?\LW>oż>gUXҾo`AA e?==2>}Juξp%*AܮK+?KLW>2?9Lup!A :?=Pa?䛾,Aܮ‡+?KLW>>jd?<>E:p;A s ?=gk?˽Y|5P/Aޮ+?\LW>h?:=Ҿ$poA p!?=d?1ξ5IAܮ+?KLW>Z?a>᾽$pA 50?=Ļ?=?j,Aޮݵ+?\LW>9|)?>>=:pQX?Xp%NAޮ+?KLW>;D>8d?}Ҿup0WA S@?==h?ξfuAܮz+?KLW>EVe?᾽o`7A ^??=X=`C?Of_ہAܮT+?\LW>KZ>>%%I>eҾpxA £7?=)V^>gξ>g=Aޮ5?VI{bGpGXHX#A?V`K?ηmGLA o?Uu?xDNHȦTA_d?UHȦ $AE?U~J?Pn?G(,AU?V>AY?8H\#eADR?U4=gy?HywYAK?V/sn?0HR ]AD?Uy(6%:?H0@GqAHA5?${4+w=<p <`#Aƒ?${p><LAo?${O"?'so<ȦTA_d?${T,?:=<Ȧ $AE?${ ?><(,AU?${j->Q?D<[#eADR?${(>'?Ӳ<AJ5?Qtu;?h f==x--p-rAޤº$? t1>A?-/*bAޤ?QtV1>T6?w-O@1Ax? t=9?Β-Nz~Aޤ±Q ?tվ9?-ІAܤ~? tQ Yj>yw-`Aޤ > t:=-`v`RAޤ¨>Qt p4yUϒ-hvh&ABX?Qtix-zAŸs\?tO)˒-ˆ@]Aܤ\U?Qt,i#<|-Mz`OA¢N? t]>.\x-O TAޤ^F? t;?͒-/*,jAޤš=?Qt[1?u{Ò-8An       Ft             !"!"#$#$%&'&%(%()*+*),),-./.0121345467879:;:<=<=>?>?@A@ABCDCBEBEFGHGFIFIJKLKMNONPQRQSTUTVWXWYZYZ[\[\]^]^_`a`_b_bcdedcfcfghihjklkmnonpqrqstutvwxyxz{|}~~!/82585         - !!" ##$$#%"&'()*)+',-./0123456789:;<=>?@ABCDEFGHIJKLMNMOKOIPGQERCRAR?S=T;U;V9WXYZWYW[V\U]T^S_R`QaPbONcdcefghijklmnopqrstuvwxyz{|}~~|zxvtrpnljhfc>LUORUR;J[irloroX           !"##"$%&'()g*)*'+%,",!- ../-0,0+1*102/3456768696:4;3;<;=;>:9?@?ABCDEFGHIJKLMNOPQRSTUVWXYZ[\@\?]?^B_D`FaHbJcLdNePfRgThViXjZk\k]l]m^n_o`paqbrcsdteufvgwhxiyjzkzl{l|m}n~opqrstuvwxyz{ ENGINE01.JPG>>>dz???dzdzP#D=?7?\n<?}A"o`O=?Vd.?TоL?[{A`ˀ0§ = ?7?\n<?R`A@§ = ?gD?}; ?R`A@¾i= ?'?Q+?A~^& =ى>gD?}; ? B`w ( & =ى>]d?=о#4F> B`w ( 3=ى> >?! D>[-!B[#D=?O?Udx>U> ANaO=?F? }c>9f>PkA{§ = ?O?Udx>6@1A§ = ?Y?Ϡ >6@1A¾i= ?/>?|>'@A^/& =ى>Y?Π>'HA%DAd& =ى>Di?;`1'HA%DAd3=ى>(K?h)au=r$A @B& =qT2Di?;`1'HAQA>B #D=?`?o룤>q@"oVO=?)Y?xSо9>tt ˀL=§ = ?`?o룤>a(ç = ?g?:5x>a(þi= ?mO?>Pak>=}S& =ى>g?:5x>SPw i & =ى>Lg?;=оSPw i 3=ى>wS?0 = Z & =qT2Lg?;=оZ Z.#D=?O?ɾz>aqALApO=?F?-徎3>bCpA&Ap§ = ?O?ɾz>pA5A*§ = ?{Y?9þWm>pA5A*¾i= ?0>?U8>HAA.& =ى>{Y?9þVm>Ap&A& =ى>Ui?ѾAp&A3=ى>VK?:D>ŸAzA& =qT2Ui?ѾAp&A§ = ? 9??R`A@ >?;>,%?wA`¶C'> ?f>+? ?bӬA@>j^S]>?j='UF ?pA`ªl> ?+;zA^>$A jPYo>?}U>SkA&3> ?Sݴ`T->nA JJbZ>?w0j>|NgAS -> ?i.$%>@A@/%>?BY5QϾ7=>?cA@Jt06„> ?Df9 > A@??gtzc&ӓ>7bA`I? ?xYxA_J??Yjt>m>-cA@KR¼#? ? c%>h>K"A"R*??`8V6#?M>-gA@3(J="? ?(7?u>CAk?B9??*پZ?Cu>(lA)73? ? ;e?"r>rA@D@H??T,n?>1qA'*WD? ?l) =P{p?>$A)\@&\??b>CZ?g>7Q?S>ُAY@ i??Vj?"?t>{{A@>bf? ?(?l?{>10A(=fȫv??+B?t>R?}AQ$dw? ? ?"AA!??O?=I?}A"o`…M? ?W?HD = ?R`A@nw?ى>j?Be>h> BjE ùH?ى>yv?ͯ<> B`w ( Ìnw?qT2V?q=* wB`{ùH?qT2 ?1JO-!B[øf?qT2]b=?m>:AS?Løf?ى>\A?3?'>Ap?s ÍU?qT2J ?d ?%BrA`e@ZQÍU?ى>{>]]?L>A,@x kD?qT2v>A)?$H4ðA`x@ckD?ى>*=Q}?%q=A?@ #3?qT2'.('?Av߅A@H#3?ى>r?_=c~A@@o Û"?qT2%?=J5l@A.b@PÛ"?ى>ݷ+=?B8<2A}@Å?qT2B>N. AxÅ?ى>vi >;\@ =5?qT2JKL @?ى>Q<箒<@һ >qT2]DCA :">ى>k@ľE=@)31J Ⱥ>qT23Ծo/6O;A-Ⱥ>ى> 06S >-AA{T ô>qT2),&<5'҂Apʖõ>ى> DSj}c]>wAX3F Rm>qT2VW>JEAj Rm>ى>c=t>AG Α(>qT2 &>(8 zA1ZΑ(>ى>>mS>2A@4k 3=qT2f)?ΟA`i & =qT2id?*=о5F>-!B[& =ى>D?¦r ? B`w ( ç = ?Q?~j>6@1A >?>]=A¶C'> ?>Xp >OOp@ҹ@S]>?K <>p6>?ʾAªl> ?龵=>w|>{>P@&\o>?u=hp͑>V6LA3> ?ዾmY>p>@ڢ@;bZ>?IWLS؟>V|PAx-> ?g=㷒>ؼJ@֤%>?FU>GдAh„> ?Uuܾǧ>E`PA??!dI.W>kv$ANL? ?'ji ;>- MA^}??;Z:>]>G0)A"0¼#? ?2U%>r>M8ATR*??])? ?|/A(="? ?Z?z?˼ΗAUB9??:?Q@?^62A3? ?ƢNG?X ?w>@`*A$H??y[ M?=?=ʾ2AWD? ?0g=?iR?U?E> A\??>%:?e? ^=00A /V? ?rT>3? ?IOp@lA i??gT*?? ?Qe>,Af? ?p|;?b>bR>6@eA`ȫv??X?qiT>ס>S>0l(AR7dw? ?y&d?==:>6@iA!??ne?e>N>U> ANa…M? ?Rl?$>6@1Anw?ى>Iu?&0>`jf>'HAA3lùH?ى>N~?|=='HA%DAdÌnw?qT2&:?Z>&'HAAI ùH?qT2R:>\ >\c'HAQA>B øf?qT2Q ?>r$AKAk øf?ى>=J? ?1>r$AnA_ÍU?qT2>6?@*A ÍU?ى>k>N?W>@MA{kD?qT2">kT? g?A2| kD?ى>=m?>~>g?A#3?qT2xU1PR?n 4A #3?ى>U/ƀb?>0WA}Û"?qT2w2e 1?}MлA% Û"?ى>(<.?Z>uMA1Å?qT2ڌ%px>fHpA4 Å?ى>xe%>˃>HIV(Z}A ?ى>@{ @>Z1pAv>qT2n\1`*5Hp)A >ى>Be۾=HA;Ⱥ>qT2;+bþyAkM@@| Ⱥ>ى>A'*At|=kMK@Lô>qT2G] R Iv@]@ õ>ى>a-&t)q<&@r Rm>qT2~n<9KLg?%9@Rm>ى>X=]~{@?2 Α(>qT2>fH@@ Α(>ى>A>;^s*=@!o@s3=qT2j?-@r$A?A & =qT2Ci?;1'HAQA>B & =ى>Y?ew>'HA%DAdç = ?+~c?qG>a( >??!, >Tw@¶C'> ??;?9>Rd >ZbS]>?Ԋ>UF><~ ªl> ?Q0>sA^I>ٌjPo>?膽 U ? `& 3> ?M=WT]a?JlbZ>?h־|0?&`S-> ?r|$? /-%>?[.#QϾ(,?bIt„> ?o?O?n ??Lxc$?݆@`? ?S<?_RF??DHs>t@?OvK|¼#? ?A%>'?:R*??6#?~'?3R3="? ?  y7?k">sl?4NB9??=ӖZ?k>@) 3? ?ii7e?>@D@H??N=,n?>30'.?WD? ?>R{p?A>Oڎ@+\@n\??>CZ?<>+xQ0`/V? ? ?^Q?^>#Wh[@> i??F9?"?]>^t>zkf? ?dH??-j>?0=F*ȫv??{)h?Ps> >#r@QLkdw? ?!r?h>Lm>[=)A#!??u?)=،>q@"oV…M? ?dy?]E =O^>a(Ínw?ى>9xy?e>lo;jE@/ùH?ى>0?<^SPw i Ìnw?qT2,F?r=PL0 `ùH?qT2[>uZ Z.øf?qT2>l>_~Nb1S?tøf?ى>M?3?k,?:#t?9ÍU?qT2>d ?J\r`e@ÍU?ى>X?]]?:<d,@ kD?qT2d;A)?@G`x@DkD?ى>P{=Q}?窲=q?@| #3?qT2@('?I027 @#3?ى>W r?)%>1`@ Û"?qT2)$?1#.b@\Û"?ى>` =?u>_2}@ Å?qT2iB>g7 0xÅ?ى>Y[ >Ҟ>  ?qT2GWK, CN `A>?ى>enQ<>!ѻye >qT2wK6Wp : >ى>W@ľ>7 )3" Ⱥ>qT2s9"o})Ⱥ>ى>c6>n`A{P ô>qT2þ)<RhʖPõ>ى>c}Hj>%X Rm>qT2-Jj-Rm>ى>>tӁ>@g Α(>qT2R>(8) lΑ(>ى>z?hS(3>$_04 3=qT2%>ʟh8-`V& =qT2lg?<оLZ Z.& =ى>g?ix>SPw i ç = ?Q?G/>pA5A* >?o ?R77b>lnACAr¶C'> ?>I]R>xAPA*S]>? <>U`) >jAAtªl> ?0µ=MhH>R qAvA.o>?=\s`'4>SUhAܘAt3> ?⋾k^8>+VApyA,bZ>?N[;a>[fAvAr-> ?F-8R>>A@A,%>?(F >cAAr„> ?UǺH>2.AA.??!d3>ncAhç(Apa>cA@~At¼#? ?cU䇼>XR>2.A@wA,R*??)L? >[fA0Ap="? ?.?H>>AմA*B9?? |Q?3>SUhAЛAt3? ?^G]?9>+VAA,H??[\e?a>jAɟArWD? ?FV=G3h?R>Y qAA.\??>4 Q? >lnA4Ar/V? ?T>JI?H>xA A* i??:U*?ӭ?S4>bCpARArf? ?};? ?8>PA@A,ȫv??IX?>Oa>aqA ,Atdw? ?k&d?D>MR>pA CA.!??re?$7>aqALAp…M? ?Rl?6>pA5A*nw?ى>:u?|U>6TD>AhRA¹H?ى>N~?%=Ap&AŒnw?qT2Ԃ:?Í=-A`RA¹H?qT2 9>bE6fAp&A¸f?qT27Q ?|k>w-ŸAXAܤ¸f?ى>oJ?}?:D>ŸAPAU?qT2J>?-8AAڤU?ى>F>IY?MD>0AAkD?qT2w>9?-,uA~AkD?ى>6=1y?TD>,uA~A#3?qT2 V1U6?w-JA@1A#3?ى>Q/¥n?w:D>JA@1A›"?qT232@?-kz$AbA›"?ى>қ(F:?_MD>cz$AbA…?qT2b%>-i ArAޤ…?ى>eC>SD>i ArA?qT2i;If=Jx-{xAp@{":D>{xApqT2[1Dv{-i A8A>ى>Be֖;MD>i A@AȺ>qT2;-kz$A,jAޤȺ>ى>A'K};SD>cz$A,jA´>qT2W].Tx-JA TAޤµ>ى>aCo:D>JA TARm>qT2<<_-,uAOARm>ى>X=NyMD>,uAOAΑ(>qT2>) -)A`]AܤΑ(>ى>fA>YKSD>)A`]A3=qT2{i?x-ŸAzA& =qT2Ui?ѾAp&A& =ى>Y?~¾՜>Ap&AO-?uY>vF? a >ݕiAr}09?ȳ=(U?ǺH>63A.³,?uY> "d?3>#ih].pZ?h>a>ݕi8~At7,?볱=ɅU?>dR>53@wA,š*?.uY>)?? >k0ApŽ~&?=c?.?H>5mDմA**? uY>X>,}Q?~3> nЛAt›f ?볱=h>G]?8>[A,n)?uY>$[pɟAr?ȳ=?^/3h?R>vA.")?uY>ڣ/ Q? >"t4Arƒ?=XR"KI?H> A*?M)?uY>T*t?4>uRArn[?볱=}; ?8>’@A,š)? uY>BX>>a>w ,At’?ȳ=_&dD>rR>KCA.+?.uY>cĽ >wLAp?= c HH>K5A*9,?.uY>wF徹3>u&Apº83?ȳ=?0>-V8>’A.q-?uY>&o 8S72b>"tCAr*\B?=aIR>@A*¦.? uY>$ pAt1E?ȳ=MhH>vvA.¶J.? uY>g=>2s`H4> nܘAtGC?볱=>^8>[pyA,=.?uY>?Q[;a>kvArl>?볱=V?-DR>6mD@A,]F?zA'?q};SD>/*,jAš=?Be?;MD>8AJ5?@{?~:D>-pSD>rA·$?ԛ(?F:?ND>/*bA?//>ťn?:D>O@1Ax? Ƚ0y?eTD>Nz~A²Q ?Q?Y?WND>ІA~?OJ}?.;D>PA#>Du|U>SD>dvhRA·>u?`NXND>`v`&ABX?CK;D>zAŸs\?WAYSD>φ@]A\U?1SV׽NyLND>EzpOA¢N?1b>Co:D>O TA¢N? t]>.\x-O TAޤ^F? t;?͒-/*,jAޤš=?Qt[1?u{Ò-8AJ5?Qtu;?h f==x--p-rAޤº$? t1>A?-/*bAޤ?QtV1>T6?w-O@1Ax? t=9?Β-Nz~Aޤ±Q ?tվ9?-ІAܤ~? tQ Yj>yw-`Aޤ > t:=-`v`RAޤ¨>Qt p4yUϒ-hvh&ABX?Qtix-zAŸs\?tO)˒-ˆ@]Aܤ\U?Qt,i#<|-Mz`OA$$$$`  !"!#$%&'()*+,-./0123456789:;<=>?>@ABCDACAEFGHIJKLMNOPQRSTUVWXYZ[\]^>A>F<H:J8L6N4P2R0T.V,X*Z(\&_` abcdefghijklmnopqrstuvwxyz{z|}~}}z}zxvtrpnljhfdb      "  " !"#$%&'()*+,-./0112345678!9#:%;'<)=+>-?/@1@2A2B3C4D5E6F7G8H9I:J;K<L=M>N?O@A ENG_BASE.JPG>>>dz???dzdzn42>P>Fw :A{832>P>Fw s :A0L=2>*?6}v=MRAt?hf;Ks\>>FwB@y>X &;Ks\>>FwNl@y>_T=s\>*?4qv=뢥)& ef;V]?8|?/%B s?hf;Ks\>7|?/%B@y>1T=w]?x?mf=v뢥@H6R=z]?x!of>v=khVX &;Ks\>(|>%=Nl@y>&;V]?(|>%=Jlsat;Ks\>>FwnA@y>ms-;Ks\>>Fw|@@y>¸a=s\>*?4pv=P!A)& 3t;V]?|?x% nAsat;Ks\>|?x%nA@y>…a=w]?x?nfvP!A@Hi[=z]?xnf>v=-AhVms-;Ks\>1|>%=|@@y>3q-;V]?1|>%=|@s?hf;Ks\>f7cDAPABX &;Ks\>f7 ,5APAB_T=s\>*?ۖf-1FAA@ef;V]?|?4 cDAPA?hf;Ks\>|?4 cDAPAB1T=w]?~x?:nFAA6R=z]?xon>N57APAX &;Ks\>|0 > ,5APAB&;V]?|0 > ,5APA{832>>Fw s :AL=A2>$I"k>nm"\AZ~=?2>xs ?@7JgA(=2>Պw? MyA}=@TS?RWZ\?'^ >_APL=LTS?Hv͟>.=AA:Q{832>+|}>%= s :A§>XTS?tZ&;?rI>߉`wA>ª>2>s@? ߉ ׈A`L>GTS?X*ľdhd?t>hAL>2>L#:U?uA/>RTS?ƫfv?>ui A>V2>%]=]Y?ل|uiA >GTS?$n>yp?ހ>Pj?hAŸ>2>O>ZL? Pj?uA/<3>ETS?Q?R?+ b>v@`wA@93> 2> V>.1?;I v@׈A`>HTS?B? ? 9,>5n@_AP>2>$?U?5n@yA}kf>STS?*wl?z>w=E@AA:Qnf>ï2>*?St>LA)F@\AX~?BTS?x3?*=a<@@ Am>2>$/?+ >up7@ :A ?ITS?x?ofSv6@ ?@̉ ?2>/I"?qzEE&@pA•?NTS?MWZ?`T^ 7n@m@@•?2>ߊ?ZxeQ7n@ @\ff&?XTS?Z&?;rI͐v@`@Uef&?S2>ot>Z͐v@ (@333?UTS?;*>hhdtj?@j@r333?J2>8#>`i?`@@?DTS?=Tv0DwiU@z@?2>].a!yi,@2L?UTS?Gnypހ@j@rL?I2>+!پ]`@œY?WTS?NR! b߉`@UY?Q2>VUwiV߉ (@lff?NTS?4Bm 8,m@@kff?2>U!ܖK @\43s?ITS?wl={˽ ?@̉63s?2>*q =q>pA?ATS?y3R*ud*s@ Am?2>kmR > s :Aif?LTS?%|>%=AA:Q?2>2?>3 :A;3s?$2>3?߮>M.#Aeiff?2>N? ?+ @ A™Y?O2>c&>5??I`@L?2>(>&R?Yqῠ@ @?2>di=_?zIyi d@(,533?2>%0,n[?B?@ hf&?Q2>-F?YM,@`@˜?2>}s !? +Qr@@ A ?A2>*z>&@.#Ae>2>48o>(]'{@ :Akf>72>]3Lj<@H6@RAt>2>?O=DKQr@gA*:3>&2>&𾽝}Oi,@xAœ>T2>PW?AL)>A2>ailZoui ȃA L>T2> 1,>o YqAL)¯> 2>>(ԾS7?I xA¥>ETS?Z&?;@rI?I@^AYL>QTS?)>hdtqῠiA,>STS?Ǫ=\v1wui`vmA˜>QTS?ގnypހ?iA,>3>LTS?lR b,@ ^AY>STS?eB9 \8,IQr@ MApf>QTS?&wlz˽%@y8AT?BTS?w3H+qa{@@ Am ?STS?xnf>3v=@ A8š?ITS?IWZg?}^ >KQr@h@jf&?WTS?Z&;?rI>L,@z@t533?ETS?)ľhd?t>?౯@@?BTS?2[v?4>6ui`0@L?ETS?n>(yp?ހ>q౯@—Y?WTS?C?R?f b>4?Iz@tfff?ITS?HB?R ?8,> h@73s?LTS?#wl?z>=M A8?ATS?z3?*=`<@ Amhf?ITS?|?V%{My8AT=LTS?>WZ?z]^ 0MAL=ITS?"v?狽{My8ATn42>.|?_% :AX &;Ks\>N5e>FwNl@y>R=s\>9I"k>`m"kS.=s\>Ss ?6A7JN%=s\>w?MЬ ~=n]?lWZ/?@^ >Ь/^VX &;Ks\>|ڻ>%=Nl@y>Sn>]?;Z&;?*sI>{.֊Un>s\>q@? {?OnJ>u]?*ľmhd?t> ?+?,TnJ>s\>#9U? @7@L5|>]?Nv?/>E?$|>u\>X]=]Y?DŽ8(@<疗>u]?n>xp?ހ>q]?+?,斗>s\>]>pL?/ q]@7@L5 >s]?:?R?? b>z>.؊ >s\>U>.1?6Iz>?l>v]?:B?h ?8,>%/^Vg>s\>.??% ~i>]?Bwl?^z>n=!@hVo>t\>*?Eu>:A) Tȥ>V]?r3?,=d<4s¥>Ls\>$/?+ >|p74@y>Žl ?w]?x?Uofqv d‹l ?s\>0I"?0uEE V?|]?WWZ?T^ %g؏U?2u\>? [xeQ%@M#&?]?Z&?;trIz>#2^[ &? t\>$t>Zz> ~Ÿ3?]?)>khdtq]aA œ3?u\>`#>ڱ`q]G'" –@?r]?=Kv]@F –@?s\>[]-a`,28M?]?nxpހ `A M?u\>"پ] G'" ͭZ?]?'R b#2^[ϭZ? t\>VƚniV~ ~¸mg?|]?KBP 8,Ьg؏¹mg?0u\>!̖KЬ0Mjt?w]?wl${˽n`dmt?s\>*j =q>nS?V]?$|m%JlsS?Ks\>*=9=Nl@y>4s?Ks\>ڤ>}>cfB@y>ult?s\>3?s߮>ꢥݱjk3s?V]?(|?>%=B srlt?z]?#wl?z>=ꢥJ>¨g?s\>/? ?,"¦g?w]?ZB?> ?8,>`i[?t\>'>5?7j7 ,[?]?5?R?M b>j7p` ®\>R?R&* ­yp?ހ>&D$r 8A?s\>[ni=_?  1 8A?p]?^v?>(4?s\>^0,F?YQ@,½&?]?[&w;?qI>Qp` …?s\>s {!?] Ê?"‡?w]?>WZv?l^ >Ê?`iD ?s\>*z>C4ޱjkD ?]?xof>!v=C4H>o>Ls\>48qo>\'Da0@y>w>V]?w3!+bDa0s`>s\>r3Lj<+H6C4@)& h>~]? wl_{Y˽C4`H>s\>lO=DÊ?N>]?wB% @8,?9"0>s\>p(}OQLJ$0>z]?ۧUR bQe*_̖>u\>PW.̖>]?nypހs\> ]iZ(7?^W{>]?Ϊ=\v2vj“I>u\>2,>oY&6>.ŽI>]?p*>_hdt&A>s\>>ȾԾSk7LJ>s]?Z&?;WrIk7d*_$.=z]?6WZ?^ @9?hf;Ks\>4|?%B@y>ms-;Ks\>N6 >Fw|@@y><[=s\>I":l>om"-AS= =s\>\s ?.A7J,AN=s\>w? MA ~=n]?;WZ{?q^ >A/^Vms-;Ks\>-|+>%=|@@y>'>]?VZ&;?mrI>+A,֊'>s\>~q@?  +A?]Q>u]?)ľhd?t>~JA?+?,`Q>s\>{#9U?~JA@7@L5ҁ>]?Pv?.>lAE?$ҁ>u\>]=]Y?ƄlA8(@<|>u]?in>xp?ހ>hA?+?,{>s\>->L?& pA@7@L5>s]?/?R?i b> A.؊ >s\>V>.1?9I A?P>v]?6B?h ?8,>\WA/^VK>s\>%?-?\WA ~+>]?Hwl?Kz>=:A@hV0>t\>*?u>GA):AT>V]?u3?5,=bLs\>$/?* >p7A@y>" ?w]?x? of1v:A@d ?s\>*I"?ꦆ}EE:Ay?|]?DWZ?f^ ]WAg؏x?2u\>?ZxeQUWA MB%?]?Z&?;rI A#2^[B%? t\>s>šZ A ~2?]?)>yhd8teA`A 2?u\>#>`iAG'" ??r]?֯=LvAlA@F ??s\>H]-alA`,28•L?]?nxpހ~JA`A ˜L?u\>"پ]~JAG'" :Y?]?Rm b+A#2^[:Y? t\>|VŚpiV+A ~ df?|]?bB5 8,Ag؏ df?0u\>!–KA0M„s?w]?wlV{˽-A`d‡s?s\>*i =q>-A¹V?V]?&|{%|@sºV?Ks\>*=+=|@@y>xz?Ks\>ڤ>}>cfnA@y>s?s\>3?߮>P!Aݱjkvz?V]?|?b>%= nAss?z]? wl?{>=P!AJ> cf?s\>4? ? ,,A" cf?w]?YB?C ?8,>,A`i}Y?t\>&> 5?9'>A ,{Y?]?0?R?; b>'>Ap` ‘K?s\>d>R?WcITA* K?r]?6n>yp?ހ>[ITAD$rs>?s\>ni=_?lA 1s>?p]?T\v?>lA(1?s\>1,n[?C A* 1?r]?)ľzhd?t>AD$r$?t\>)F?YͽA ,$?]?Z&;?rI>ͽAp` ?s\>zs !?* 텖A"‚?w]?:WZ{?^ >텖A`i4 ?s\>* {>M)Aޱjk6 ?]?xBof>v=U)AH>W4>Ls\>48o>\'A@y>_4>V]?k3O/iAଶsGy>s\>d3Ȉ<9H6L)A@)& Ly>~]?(wlz˽L)A`H>s\>-O=D셖AN>]?wB# P8,셖A9A,>s\>v(}OԽALJE,>z]?QR bԽAe*_‰o>u\>"PWA6>.‹o>]? nypހAA>s\>]iZlA(7?>]?Ԫ=[v1lAvj R>u\>2,>oYbITA6>.R>]?v*>]hdtbITAA6>s\>>žԾS'>ALJ.>s]?Z&?;UrI'>Ad*_\ =z]?6WZ?^ ,A@9at;Ks\>.|? %nA@y>X &;Ks\>Ɣ6Bd7 ,5APABR=s\>)I">1:7APA@.=s\>ws ?V&2-1eLA@A@%=s\>V>1:2?A A@=n]?EWZH?/52?A AX &;Ks\>.|g/ > 6 ,5APABSn>]?s\>r ?1:KA`ʲA@OnJ>u]?u*ľwl?R8[AATnJ>s\≯#m*?1:R8[AA@|>]?~3?Zu\>]=%/?f1:Zu]?n>x?Q@}AA斗>s\>Q>!I"?2:Q@}AA@ >s]?W?s\> V>?1:LA`ʲA@l>v]? B?Z&?8dA Ag>s\>?s>y1:8dA A@i>]?1wl?)>XMAPAo>t\>*?#>1:XMAPA>ȥ>V]?|3?I=HAPA¥>Ls\>)%/?p]b1:HAPABŽl ?w]?x?nXMAPA‹l ?s\>H"?1:XMAPA@V?|]?WZ?C{8dAUAU?2u\>ފ?WB1:8dAUA>#&?]?Z&?B LA@>A &? t\>_t>M"1:LA@>A>Ÿ3?]?*>wlQ@}A UAœ3?u\>V#>*P1:Q@}A UA<–@?r]?={3 mb]V%/41:R#I"(1:Z8[A UA<ͭZ?]?#]WZKA@>AϭZ? t\>PV"L1:KA@>A>¸mg?|]?BZ&*?AUA¹mg?0u\>$s_1:2?AUA>jt?w]?wlp*ľOΛ57APAmt?s\>m*#1:7APA@S?V]?"|0 6 ,5APAS?Ks\>*׽hl= ,5APAB4s?Ks\> ۤ>P=rcDAPABult?s\>3?W/,>V-1uFAoA@3s?V]?=|?- >cDAPArlt?z]?vl?*>uFAoA¨g?s\>?>-1eLA`A@¦g?w]? B?Z&?통eLA`A[?t\>i&>r ?-1rUA蘌A@[?]??VZ?BrUAA® >*?-1`A`͉A@­x?`A`͉A 8A?s\> ti=U48?k-1R4,3?-1exA`͉A@4?r]?-ľvl?exA`͉A»&?t\>?-1AA@½&?]?Z&B?AA…?s\>Vs %>r-1 A`A@‡?w]?WZ? A`AD ?s\>*A>X-1ՈAoA@D ?]?xan>ՈAoAo>Ls\>48si=-1ˉAPABw>V]?r3sˉAPA`>s\>H32,{-1ՈAA@h>~]?vl*ľՈAA>s\>f=-1 A8A@>]?YB[Z& A8A"0>s\>(!s ,1AoA@$0>z]?zVZAoA̖>u\>񙍾*U-1exA@;A<̖>]?anxexA@;A^W{>s\>\i48-1Z]?=}3Zu\>2,>3-1 `A@;A<ŽI>]?+>vl `A@;A>s\>>-1rUAoA@>s]?Z&?B3rUAoA$.=z]?XWZ?,B4eLA@A?hf;Ks\>|?4 cDAPAB(?#>X3?1,z-1A@(?Q>wl?*ľG4A!?Q>x3?KD4@@A!?#>48?'vi=-1@HAB&?Q>x?n>4n4oA&?#>*?t>k-1oA@–-?Q>WZ??֒0`A–-?#>s ?o%>s-10XA@²!4?Q>Z&?B?6 蘌A²!4?#>F>-?-1蘌A@!28?Q>*>vl?B~`͉A!28?#>.3,>3?-1~`͉A@<9?Q>j=p3?qֈA<9?#>qiW48?l-1qֈA@9?Q>Ӓnx?6e`͉A9?#>Ϙ*?-16e`͉A@'8?Q>VZ?ZA'8?#>&s ?-1ZA@p6?Q>BZ&?A6RXAp6?#>>m-1R`A@3?Q>_wl(>-m6ÃLoA3?#>w30,>k-1˃LoA@‹0?Q>f31=w<5JPA‹0?#>48ci,1JPABjR-?Q>xFnLAjR-?#>*N-1LA@q)?Q> WZnBR@Aq)?#>8s &4-1R@A@ҡ&?Q>~Z&\ $-1ZoA@Bz#?Q>+ľvlFe@;ABz#?#>2,3-1Fe@;A< ?Q>}3q1A ?#>%\i=48-1q1A@½N?Q>n>x~@;A¿N?#>> *V-1~@;A<¥?Q>?VZoA¥?#>(> s ,1oA@Z?Q>B?'Z&,8AZ?#>l?A-1,8A@h?#>&Is>1:>A@¿?#>* #>t1:'HA>¶?#>%/]1:쀔PABm#?#>I"1:'PA@«/?#>VN1:>UA>/:?#>Gt[1:'@>A>¶Q??#>#*71:z UA<_@?#>]=J%/?1:q(A@/??#>m>I"1:` UA<„=?#>V>P1:Q@>A>œ9?#>?$t[1:neEUA>§ 6?#>l*?#1:6=PA@f2?#>$/?]=1:E:HAB¿-?#>I"?>1:-=HA@Н)?#>?V>1:veE A@c%?#>r>1?1:Q`ʲA@‰K!?#>,#>u*?1:`A@¢w?#>F] %/?^1:qp A<1?#>I"?2:zA@l?#>.V?x1:'XʲA@h?Q>BZ&?>Al?Q> WZ?5'XʲA4?Q>3nx?z6zxA¢w?Q>=z3?5qp A‹K!?Q>.*> wl?NyU6`xAc%?Q>'Z&?B? Q`ʲAН)?Q>?WZ?R?FneE A¿-?Q>x?n>[4.=HAf2?Q>o3?E:HA§ 6?Q>wl?y*ľr嵵6=PA 9?Q>B?Y&"neEUA„=?Q>F?GWZQ@>A/??Q>n>x` UA_@?Q>js3q(A¶Q??Q>*ľ wlz UA/:?Q>Z& B|Ե'@>A¶/?Q>@WZR8H>UAm#?Q>x,n۵'PA¶?Q>v3=쀔PA¿?Q>Awl)>'HA (M t t t  !"#$!"!%&'()*+,-./0123456789:;<=>?@ABCDEFGHIHJFKDLBM@N>O<P:Q8R6S4T2U0V.W,X*Y(Z&[![ [\[]Z^Y_X`WaVbUcTdSeRfQgPhOiNjMkLlKmJn \ opqrstsusvs wuvuxyz{|}~tuy{}tt        !"#$%&'()*+,-./0123456789:9;9<=>=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_^^^\ZXV!T#R%P'N)L+J-H/F1D3B5@7=9_`abcbdefghijklmnopqrstuvwxyz{|}~cbbegikmoqsuwy{} SIDEMAPL.JPG>>>dz???dzdz; ?@s?t}ܶ?ͭAUc]?*s?=?ػ7pAAc]?*s?N-?5$!hAA; ?@s?I|\6?=˝$!AUc]?*s?B~??/4jpAA; ?@s?<?)4jAU_]?3r?x?m5Xv7p:PUJA; ?O??un+D>2q:UJAUB`?rG?/x}{> 7B0Ax; ?sG?/x{>[fB0AU`?H>?(5}>k60AM; ?^>?-5}>EpAU9a?5?1T=F~7+n@,; ?5? 7T=E1)n @U@Va?w3? Rn7+n @^; ?*w3?2߯)n@URa?=-?k.%8'n@; ?3=-?59*-n@U…=b?P"?JAECG8'n`u@; ?p"?lsɀ2,nbu@U: c?m?n&&8'n/j?t_; ??9^L3,n6j?Ud? }?$׶7'n8p6; ?6}?gG$n8Ube?>T8*n|; ?>HaD5(n Ue?u>tiG8&n"S; ?u>%0K,n` U{Lf?&>G29'8"n.p; ?'>tx5D'n. UUf?֟>p ׶4!8&nF; ?֟>i'؀v2'nPF U|g?4> q$8&n]; ?Q4>a66x'n] U%~g?>šJT8'ns43; ?<>e 6+2,ns U{g?~zнi 7+n!6; ?gi>~xн2(n! U¾Mh?]I>t8p,v8p; ?I>>p设-x Uoh?4I&>=+-?f`vLx; ?I&>`Sj͓4d`hv U¢Ei?>'A(jFT?>8 D'0fFW7 ?_'>eapb`8 ôh?q>=:?-Aā&? >Gg-ߜթ bi?= zwUDߜ! ?l=:þܕ5yh݉ ?S=㰯FxU`x!Ń ?S=la}b.(x!Ń ?X=Qr7$|b2ʖ ǃ ?X=z{.?9X ǃ ^j?ԜB=?4}^3ʖC^j?ԜB=lf޼XC; ?B=侩vv39ʖ` U; ?B=D>X` U5!>lB=jG|U;ʖxxܺ5!>lB=5Xxxܺ}>ߛB=Xm6ʖhB^Y>ߛB=R6OX`B%3B=׹ܵ 16&ʖpB%3B=@6ۨXpB%3B=8qW5^+6*pB^Y>ߛB=iP5Z6 hB%3B=蛽A6`xB^Y>ߛB=`L|z5`hB/3+=vp5yB^Y>*=4Ⱦkr5y0hB/3+=(?[I5ߜB^Y>Ћ=,[Tw5ߜB/3>){>j2U7ϖ5jFB/3qI&>gKp 5_`vB^Y>H&>`S+jج5^`vB/3I>fiyjѾmݍ5sB^Y>I>:p设.5zPB/3gi>}a$F4#n!B^Y>(gi>~uнag3"n!B/32>JR|V+'nsB^Y>>X &n sB/324>u6eb+&n]B^Y>3>_5񤡱%n ]B/3֟>Q5S3#npFB^Y>֟>5ǟ2%nFB/3 '>":5!#n.B^Y>&>md2"n@.xB/3u>VxCs*'nB^Y>u> ܕ=2"nhB/3>ggU'nB^Y>>:_&nB54&}?*@5=`+#n8B^Y>|?{ 3"n@8B/3?j൵Y+'n3j?B^Y>g?<1&n-j?B/3u"?4:_+(nbu@B^Y>K"?54'n@`u@B/38=-?Wc:6c+$n@@B^Y>=-?(~3#n@B/3/w3?"r3$n@B^Y>w3?!еw2'n@B/35?2<F(n @B^Y>5?;AT=XA#n @B/3c>?}j>T1pAB^Y>9>?85}?>Y$AB/3sG?yK_>B0AB^Y>rG?/x{>ζBp0AB/3O?q²><;p:UJAB^Y>}O?HunD>xǴo:0UJAB/30W?|b>!$0aAB^Y>0W?]A? ȴ+aAB/3]?TFK?:RwAB^Y>m]?C]%?δRpwAB/3c?q&B?:ȵ HAB^Y>c?AL?m, AB/3Zi?U]e?uƵiAB^Y>:i?+ƾsk?$UiAhB%3n? ǀ-w?*{AB^Y>n?by?Yv*{hAhB%3p?l}?w޵FIݘAB^Y>p?&N~?`LIݘAhB%3r?%?i(AB^Y>r?薽M?3(AB%3Nr? ř?ΣNj@AB^Y>.r? !x?oJjAB%3Ds?]9BI?,jAB^Y>$s?>?% j`AB'\4Ds?Rb?{$!AB^Y>$s??|$!`AB'\4Ds??}AB^Y>$s??}`AB>#s? Bg-?M6$!`A`9A>#s??tC6`A`9A.!>Ks??y5$!AXܺ.!>Ks??`4حAXܺ.!>Ks?>?G5 jAXܺ.!>Ur?kx?&ʿ5DjPAXܺ.!>r?施M?)5(AXܺ.!>Țp?M~?5YIޘAXܺ.!>n?^bty?5*{AXܺ.!>ai?ƾk?`5iAXܺ.!>c?NL?65`AXܺ/!>]??C(%?5RwAXܺ/!>0W?]?y"85&PaAXܺ/!>O?Gun D>ɸ5r:UJAXܺ/!>sG?/x{>M5B0AXܺ/!>j>?,5}>4AXܺ/!>5?{5T=4)n`@Xܺ/!>5w3?R 6=%4)n@Xܺ/!>>=-?sa4)n@Xܺ,!>q"?+2G4)n@bu@Pܺ/!>?e3)n3j?Xܺ/!>-}?I5)n@8Xܺ1!>>644,n hܺ1!>u>/w<4(nhܺ1!>'>3,n.hܺ1!>֟>N3$npFhܺ1!>?4>Db6r3(n]hܺ1!>+>^A54)nshܺ/!>gi>~xн\+-n!`ܺ,!>I>Fp设5Q}Xܺ,!>I&>|`SYjTe`xvXܺ; ?>r2U7+4lF U; ?=gT 5ߜ$Uj?/+=оԆijYyb^j?ԜB=Z|o\`C^j?ԜB=7Gt^)C; ?B=n2b54,` U,!>lB=>fU-xXܺ}>c*=4ȾkֵyH9A}>=6ST¾ߜ(:A}>R>2U7]iFج:A}>H&>q`SfjɆ]`v9A}>I>RpY设8yh9A}>fi>~wнvg!n"9A}>>4-4&nPs9A}>3>$65u3%nP]9A}>k֟>?62%nF9A}>&>w'/4%nP.9A}>lu>^)3B4%n9A}>>A;XE4%n 9A}>|?凭*c4%n89A}>\?$3&n+j?9A}>?"?_s5!3&n_u@9A}>=-?dϵ!4&n@:A}>w3?27dȂ3&n@:A}>x5?8T==Y4"n@9A}>8>?15}(>,4A:A}>rG?/x{>(W5Bp0A9A}>|O?[unC>H5n:0UJA9A}>0W?Ω]b?d5+aA9A>v]?'CF%?5RwA9A>c?:L?Hm5 A9A>9i?ƾk?Y^5iA9A>n?by? 6*{hA`9A>p? N~?=6KIݘA`9A>r?疽M?(6(A9A>-r?x?6GjA9A>#s?>?s6j`A9A,!>>~2U7hilFXܺ,!>=eT ߜXܺ; ?8,=H4Ⱦk*4y$U; ?B=aE|J-4`h$U,!>lB=oaG|ZC`xXܺ,!>+=4Ⱦk9yXܺ\NRFJ   !"#$%&'()*+,-./01234567898:8;<;=;>:>?>@=A=B=CDEFGHIJKLMNOPMOMQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !#%')+-/135799:??@ABCEGIKRMRTVXZ\^`bdfhjlnprtvxz|~ COCKPIT2.JPG>>>dz???dzdzkmQ<lm?5u=b>ҿh4SCfez;e?&Vs>l--f?CQN;m?&Vs>l-znCz?um-%UPC z?xm-P3^CRH=S~?8q<9x?za%U\C  c?xm-P3^CN5 c?zm-0ZCn=|}?d>*>$Wl?Yk3$CN5K`?;H~?#8A=XC-c?#=fz?_=>tڸC|m-nCl-߯h?C:G=lm?!b?$>>ҿ(6SCd?wx5[ۨX`Big?(=Z`TB=?wx56ʖ`Bf?(=PeõXhTBF؂?/=撄H5 [`/Big?(=撄H5Z`TBf?/=w` Xh/BH?!=֞ƒn2hBF؂?/=֞ƒ [`/Bf?=H6P5XhBݶ?q > hDBH?!=n2hBf?q >d%6zXhDB%??/>Pv¿x`Bݶ?q >P hDBf??/>T?5:Xp`B?S>C7ST6:qapB%??/>C7ST6v¿x`Bf?S>XpB?T;t>:qapBf?T;t>+P?%< XpB?>_<>qahD(-B?T;t>_<K5 L92<XhD(-B?^Ø>y:?qa`>pB?>z:>qahD(-B_?^Ø>#[MX`>pB?>\6BqaphB?^Ø>\6?qa`>pBf?>;˶$# XphBΐ?f>t6M_h\B?>t6BqaphBd?f>h5 C:(X`\B?އ> 7W:7\Bΐ?f> 7W:M_h\Be?އ>;>?=2XB}?ч?~ =U"D>B?އ>~ =7\B ?ч?%~=>B}?ч?%~=U"D>BB;?ч?̌6N~t=.>>B_#?(?zn~z[=ľhC ?ч?zn~z[=>B6?(?|c~3r=λhC:?sU`,"8pC3?sUh# CB"?iZL?.R6Ɣ{p=><>0pC?fY?ݘ7>y_>`g(h(C_f?iZL?ݘ7?y_>`,"8pC ?fY?Sy_>߷(h(C?fY?Sy_>`g(h(Cr{?fY?=w]wq>P@? h(CẀ?se?ߖ6Atv>de /C ?fY?ߖ6@tv>߷(h(C_O>fY??Z?]?>`S*C=se?uH7U?0 ?|: /C>fY?tH7U?/ ?}$S*CiU<~Dl?I/dZ>!Cfez;e?iY9t>l--f?C;'u?,SlT<?l-gC< xj?E%ahz>PCfez;e?nuH>l--f?C=z3r?UqFk?҂ǙC ˝;z?mh*=?nm-$XC0<3h?rfm+>To L2Cfez;e?ҽw:j>l--f?COI=n?FܭL>CX=v?lK>.|`f?Cfez;e?zJ:>l--f?Ci= xj?־rU>lCϜ=3r?"! ?}r8ߌC=y?n׾B{uY?>pwC;?Ֆ#fz?um-%UPCfez;e?|D>l--f?Cp(w=e?쾎l^6>lH8f?CDo=K`? ^W2=\CC^=e?e2H0->>F@_f?C.=_?K*F",:bp{C=e?.ef)˾ C>g+{h?CT=4]?s_].){}+CB>e?%s{{dC*@>/3%Uh?Cc>^]?(j~=O}2%U<C{>e?2?gv>=3>g+@t.h?C>4]?f`Ƃ>hg'),+CE#>e?4t0?~$>? h?CU$>_?#([@?e?N_?g>~Hh?Cn(>K`?U#վh?'=\cCf>e?쫆t?>~.|!h?Cl-߯h?C}=Dl?HZ,/%>&Yh C9=$lm?̖FeN?x5z6SC\=m?7W񎻄 ?$%UnC>$lm? H>?w06SCT>Dl? !2$?n}>0Y0C;J> xj?[۾U?>oCp >3h?N߀yo?H|>Tof4Cl-߯h?C=et?y8?x2CW='u?r'?@A?'%UgC1r=et?G>O7?12C >3r?ćZ? ?~rC>>n?L?>﹮@C= xj?݋]/j?>PWCl-߯h?C䁪=z?44]-)d?%UXC=y?Ŭھ1>)X??Я2CN=v?w_?2!Cl-߯h?C w𽄀#>z?xm-P3^CN5c?zm-0ZCy<'u?ۚE8*??:>?l-@gCl-߯h?C}?V]?n<Sl-hƨ:C~?4]?d=+};>ؤ+C3}?e?ݛ=W|>l--f?CK|?_?1O=Kw;a?C{Cz?K`? 4=o~"A=@謧Cy?-c??=>fz=G@ Cy?e?k>tu>'x%@`f?Cr?K`?#>h ,=t@Clr?e?n>_t>@8f?C7l?_?$(?[@ıD@8_f?C6f?4]?`?YrGA{}+CBe?e?#?g?Ⱦ=3>A{h?CV`?^]? j~?ֽE!A%U<Co`?e?'s{?2;*@>A%Uh?C> \?4]?s?⠛> yGA,+C\?e?de?)>C>A t.h?CX?_?<*F?"?y<:i@`{C>Y?e?32?~0?,>>R@ h?C%uX?K`? ?IW?q2=b@cCrX?e?>l^? 6>"@h?C\`?-c?Ǣ>v? (=b@ٸCу`?e?5>r?aL>>x%@ h?CC?e?ݛ=W|?>l-߯h?Cgc?K`?[7=Z~?1A="@CPj?_?!Q=Dw?cb;a? {C~v?4]?a=0?` >+Cn?W]?f <?bl-|:Cig?(=撄߶Z`TBRw?wx5M50?@`By?(=#6(Ӡi@`TBtp?wx5XN AhB^)r?(=oA551@hTBL}}a=GA`TB8e?wx5>0s>=AB)f?(=_>q=$`xATBMa?wx5:>du>mAwBb?(=>*n`>ASTB ]?wx5?I]H>MʩAB{s_?(=]?ART>=A1TBZ?wx5;? [>uߵApBw\?(=SC?mb4> AA`TTBW?wx5ZX??Ⱦn>McABY?(=\?ڷ>]ATBT?wx5e?"&> A"B`W?(=1f?1z=>5ҶAP0TB \T?wx5(l?LIn>AāBV?(=k?&^>~> AATBFR?wx5u?o½V>(BAqB3 T?(=jv?e-^>UAzTBP?wx5z?h{mP?>ugAlWB EQ?(={?E>|A@k\TBM?wx5~?ZQ=mxA8BZN?(=W~?aC==/A@.:TBlJ?wx5?j@\6l =`ABJ?(=?'%[.<]"A TBhG?wx5?#PB6?5~?֏ A @B |2?'=[u{?z=~5>ԪA=@PBJZ/?5Nx?4=a> A@B.?'= t?GE>{?n>oA@PB.?5@gl?>>dAAB .?'=th?>d>AFAPBo,?5x m?Ђ>_>f>\AAPB)?5j?!>2>ƷA@W4AB)?'=Kj?r™>>TA@3APBh&?5e? ->͓>ATAB%?'=ed?>}{>¬ASAPB[#?5W?6>Ja>4AsAB"?'=S?w?U>`AqAPB ?5b2?2?<$>A`AB 7 ?'=-(?31A`APB-?5 >VBd?m)=AhAB?'=k>mh?¹s=˪AAPB>4?5^>nw? <rAAB?'=ͧk>'y?yrg}?"26;UAAݘABJl?'=W=B~?Q;=A APB'?5S=H,?$vi;A'AB?'==bd?#; A0APBJ ?5?m=f?!'=c>?<APBi>wx5Fؽl~?^'=H|}?Ywx5 ?Q{?? =*{AB%M>'=cdLy?,=p"uΔAPB\>wx59 q?j=hABe>'=Xɾsj?I=fAPBK>wx5 ]uU?=XABY>'=H?W>}XAPBJ>wx59*?~3>RwABq>'=xD?C>DPuAPB]>wx5HT?pQ]> PaAB>'=t&\EM>^k>Op_APBc\>wx5e>U>l:SJAB@>'=7ig>{>pv GAPBi>wx5m@>>B0AB{(>'=eoZ9b>P>% .APB>wx5ƎrY'>>AB4>'=7s >A>\ʼ0mAPB"^>wx5vvS=o>$n@@Bv>'=uu>Hx>HѾ@@PB%8>wx5x=!V>$n@BI>'=:v+Z9>E>@PB=>wx5&|SB<=(>(n@B">'=|m =h>*`dz@PB`>wx5~<C=(nZu@B!q>'=~Ke=y=H_@PB>wx5kO<7j='nj?B>'=H*3;W;'n8Bf0>%'= <_lFLB[a>wx5:>Ud#nB[a>(=x 1#nTBHV>wx5o[y;'n`BfU>(=b,g<'M0"TB_L>wx5 ?=#n.BI>(=T~g½2= 4TBhhC>wx5?n}-T>'n@FB#>>(={m>QTBX/;>wx5)Qxt\p>"n]BK4>(=Nv(m>ؽlTB(3>wx5p E>'nsBn1+>(=Yo`>+QTB[4,>wx5i٘罥>#n"B#>(=khMU*>_4X0TBЄ#>wx5jbB >wBVw>(=¿\ǾX>>TB>>wx5M`WV{>c`pwB>(=IgEf>TB >wx518%0oX>gFBWn>(=&;kH>(7TB=wx5yrO+>ߜB_=(=lXc >;HTBVh=wx5ْϾ]rg_ >yBx,=(=߄m|>mTB=wx5GGzp=``B*=(=ns}Of=XNhTB;w=wx5(57|5"hB[=(=~5-+6]`TBCOB jѶlhDB~n[:D*˶ hDBR'*䍶NOwp`B aF4v¿x`B<5".5/1pBS;S>5:qapBD5&3Ondx< "2<01`D(-BC;><ڧ;>qahD(-Bh<<^Ø>-y4LW 01`>pB2;^Ø>h4=?qa`>pB<>K5&11phBS;>| $BqaphB V:q/h\BIΐ;f>qiT:M_h\B<އ>^?=2,B;އ>!{4`=7\Bz<ч?5O~0=z>B>{;ч?5]~=U"D>B Z<(?#56a~r=UhC=(?TOs~J!=:xhCdD,=ч?J}~= {>BLc:=އ>G=XnB==f>< P`:kh\B?=>3S.xhBI@=^Ø>N8.h>pBC@=>+fR;.`D(-B?=T;t>\=1G;.xB?=S>D]q;.xB]=?/>Qjp<܊x`BNz=q >}k/Bi=/=ѼD,>|/BDf >/=d>1!Ka>ӻ©/B>/=~0/BS>/=e¢>=/B">/=00mي>7/B?I->=qF55>BPxz/B9>=vyn=߽`[/B G>=>{8~KC=S:/BT>=Tc&2<3,O/B[a>2=dAt6>#n/B}>=D5j2=5f=O/B}>2=[}=!=\#EJ@/BA>2=y&!+> >p@@/B[>2=up>WD>{@/Bآ>2=of>0p>d4`@/Bۧ>2=zbr9>> PA/BƬ>6=EspIHX>>+A/Bۘ>6=k>>xNEA/Bc>6=qK`"->|j>Tp]A/BPE>6=EH ?eD>6tA/Bn>6=4E?>彜XA/Bt>6=;i?II=98hcA/B?>6=h$y?-=HoA/B>6=}?<}@hA/BK>6=ڝ<?@<'"HA/B>6=X8b`?< A/B)>6=?N>6=}޶r?*<$! A/B<>6=r?*<­ A/B ?6=r?*<݋X A/B?6=r?*<q? A/B.?6=r?*<@ A/B8?6=-, =?13x?~<hAA/B6:?6=>e?]C~=ӓA@A/Bδ?6=q0?,6?>JA`A/B"?6=X?uV>U>'AepA/B%?6=^g?>vy>tA?RA/B(?6=k?><>8A 2A/Bb+?2=6l?B>i>,AA/B~-?2=Fc?>o>?A@A/B.?2={m?9>Qc><ҶA@/B=1?2=+z?=>,>IAp@/B5?2=}?=e=䧻A@@/B.d:?2=~?'k=rq=|A|>/B ??=?T=yE<GA/BC?=k?c<,0;A@M/BhG?2=?*"|: A/BJ?=d?!c<A@/B:EN?=u|?=A0;/BQ?=x?P$>EAja/Bi@U?=Pq?*[j;>5iAƁ/B"W?/=b?ݾl;>Aྎ/BFY?/=*\?⾯^{>uA=/B[?/=W?1޾]>ecA[/Bf^?/=\Ax/B,a?/=`?Iy;>-Ao/BjTd?/=da>es=ņA 0/B.h?/=J>t=}fAPH/B{l?/==~sA=!5Ah/BCs?/=%_56l@`/B4z?/=}856@@h/BF؂?/=֞u [`/BH?!=n2hBU{?=636@`BUu?=h:KSz@`Bn?==~7="AhBˣi?=Nx>Hw`=TA Bce?={$>QZk=zA@ Bb?=jE ?R>A0BSj`?=B3?xF-R`>MApBs^?=%N?t>uA`ɨB[?=O?)t(>^AKBY?="FY?; >EҪA;B{V?=cl?E?>|AIBãR?=gt?C=AjfBN?=z?(HFy=ŜA{=BRJ?=Z~?Žm3?r=t1?=!=uAeQ@BR1?=pzw?O>V>A@B9.?=6d?}N>SvR>\5A@B,?={^?>.u>ѮAaABt*?= l?>K>A@AB(?=m?4>>AP2ABL%?=.i?:d>lt>@APAB"?=]?A>TR>AoABJ/?=6?//?#>{dA`ABo?=A>b?n=|ATAB?)= u>x?Qk?)= e=?;aAAB9 ?)=T^=?H'<E@ABZ:?)=/=l?ff,?V%)=6~?U%<[AB5>)=ݶ?7M%<$![AB>)=c-?9)=*P?y)=E隽9?)=r-}?<%t)=sl-x?#+=iAB_>)=AѾgh?uZ=ф`AB >)=!C?UH>IXAB: >)=#MN?uA>(PsABS>)=Hd\>Ie>館p[ABA>)=^wnǸ>g>xBABl>)=qeN>펆>h?)AB>%=MqU>>AB>%=gjY>gPe>`@Bn>%=1kA>>>|@B >%=jv 6k>}>@!@B2>%==|#>=4@Bډ>%=K=+<ؑ[BpH|>=[)%=k ^#nBS>=~ܧѽ <7 {B`D>=a*xxZ=F@B4>=P|qR/=e3fB/&>!=kx3> `wB>!=gľ^F>C^B̎>!=^sݾsq>KBv >!=4N 5Ld>!=34X/8K8>@Bu=!=XN >`JB)I=!=׾9fJ=8 B{H=!=U@u5=+b\gB=q >Uixpy=[J5DB=?/>D<j{d$={V9`B=S>*};'B=T;t>}Ϡ' B=>N޽x~-ݻKT'(-B2=^Ø>~v'X/pBY=>3<sRC+g&hBs3=f>%Θ!I$#\Bo_=އ>yst&5E=l XB$y=ч?/^y~=gBEzh=(?n ~c?=hCQ=sUfۻ# C9=sU0 x# Cs=(?挾1}\=eCɔ=ч?̽}#}=,B=އ>~D=?B=f>}}ЃͻoEc\B=>A}0sJHhB=^Ø>#K|sCLpBiب=>=Gm{K MhV(-B=T;t>6[[)yJ;MBߪ=S>vwN'Bdø=?/>⛾"s%=s` `B >=q > ٻlm8`=OrDB`=q >=[޷Y=ԻDBd=q >'>=J>S DBV>q > ?+%ت>[@\DB=>q >1Rn0 $>0YDB:>q >ľ][go >K]DB>q >dPmྃؾ=DB)/>7 >|GlW¾e= p B=A>7 >t֏<`F BR>7 >B}  D;3 B[a>s >-,ļ ~#nDBz>7 >_<:oU >N~v}=#D=hH@B>U >q4z~F>枭=ؾ/@@Br}>U >rC>[>``N@@Bs>U >f`>۩:>D @@Bs>U >[d>U\>`@@BB>U >pRt>r>\]wA@B>W >Xqr4D>x><Ϊ&A@B>W >pJr>&z>*@J@A@Bڷ>W >g㐹>5b>OpYA@B >W >P ?S?>rA@B,>W >'%[@? >hXA@BT>W >R־яg?/=lф]A@B0>W >^pĕx?*= cA@Bs>W >7o}?< 8-A@B$O>W >I6?W >O=?+v<A@B>W >+0?ё5W >?!<$!*A@B >W >Gz5?!<*A@B ?W >@1?[!z}?{!<q?*A@B*1?W >?9!<@*A@B<?W >ܠ=?<(U=I?I"H=n?6X;wAA@BZx?W >ף=w~?u:3AA@BG?W >z>(x?<06_A@1A@B>?W >V>ɏ_?9=eAA@Bf?W >j=?'?P>~A`A@B!?W >v0a?>Q>A mA@B$?W >Gl? >p>KAOA@Bo'?W >Ao?>ۂ>tA1A@B;*?U >l?`>>AA@Bk,?U >SY?">'j>cA`A@B=-?U >0Y?>A>|A@@B׷0?U >r?\>g>TA@ּ@@B4?U >sy?VR>=CA0b@@B̲9?U >ϸ|?(>EL=dA5?@Be>?7 >~?x="?fTk?ΐ: ADBJ?7 >}?FKvb<]gA BN?7 >Fw?^wwg=SA"? BWS?7 >)q?1=Aik B7W?q >Rg?Lо( >=ÅDB%e[?q >R?e=eADB]?q >{3??_r(R=$A8YDB`G`?q >??"=>cA07DBHb?q >1&?<=K/>eApDBd?q >Fq>5\cm= AXDBcg?q >d>p/S=;hA`DB;k?q >zR>+zA_=5CADBe=p?q >= a<:A`DB.w?q >r54o@hDBCw|?q >BP?`DBݶ?q > hDB%??/>C7:жv¿x`Bؚ}??/>,!J?x`B5ty??/>6S=2;\@p`BU r??/>`=>b̷<@p`Bl??/>)>jL|=I1A`BWi??/>>GuMa$= UA`BJf??/>>Cf=nA&`Bd??/>Un?Nk=uǀA``Bb??/>(?ӌ>:=A褵`B<`??/>L-?=<=-Af`B;]??/>3KL?M=}A5`BY??/>b?o =ţApO`B T??/>tm?r[=wұAhpDUu?NjZ=e A @|?t",<)A?9: A`B]C??/>?=;m;AXB>??/>E~?3=׮<|A XBX9??/>c{?;>>=<;A,e?\BC4??/>v?>#=Ar@\B10??/>qj?>>,&A@\B0d-??/>`J?94?ܺ0>A@\Bx+??/>HhU?@?db> A|A\B#)??/>l?>)>pA7A\B&??/>Vzp?l>>,bA0A\B $??/>An?>So>A7NA\B)!??/>d? >Q>A@{lA\B??/>TC?O ?>×A`A\B޽??/>i?[?%=~A@A\B ??/> ^>1w?xL=~?":0AA\B??/>N+=?;SApA\Bia ??/>3M=?{<-@A\B=??/>=?L'?0 <@A\Bn!??/>&>?, <q?A\B ??/>>6?( < XA\B>?/>?0 ?/>R??9 <$!A\BS>?/>b9?/4?/>(?u?/>Ɲ$3?X<A\B<>?/>8~1}? p?/>u:Mx?*=]|A\B>?/>۾pf?i=H[A\B*>?/>9(=?>)>XA\B>?/>gT?@>e fqA\BT>?/>jH>`>WA\BN>?/>rGT>=Zw>f=A\BҮ>?/>&s]9>|>_$A\B>?/>Dn1>~>9 A\BN>?/>8_>?U>]`@\Bϖ>?/>foac{> 8> t@\B>?/>%n>>/>d`{@\Be>?/>wxp>^ܵ=4@ @\B2>?/>$f} >j*=2\Bocy>?/>=;#.@}XB[a>?/>9`J#n`BQ>?/>7}p;;`?/>-qKŕ<PL?/>gPپR&=tI{>?/>G1^E0=`Bc>?/>7Rq=W(`B=?/>?U(5=WMf`B=?/>e(tL#P㉜=E3`B)=?/>W㾤d[=|]`B=S>þlKihB0=T;t>i"oҥ8+h)BO9=>64 rL3g(#(-B;@=^Ø>/s)enpB=>H?tw3bhB=f>|Gu$<,[\\BA=އ>̉vvju=|?TCBt=ч?fdu`hv>{@B=(?`Uwϛ >5/xC6=sU-# C웂=iZL?B<՚tl> 8 pC؝=iZL?2|Te;>_pCW =sUN,# CD=(?kϾ"vf+%>>hC=ч?޾{c|1>TOؿBs=އ> B#a= dXB=f>h_J"=4l\B=>%`/m<4sphBf=^Ø>n3_^Cyp(-B=T;t>_^d3W{8׿BK=S>G[aպ|0YB=S>OI$;ŹB=S>,-;<tB=S>GI> =_N8Br>S>!XY=(B%>S>KdjRS>oє<RBQ>S>|2$:?P"B[a>S>,L<#nB'w>S>P@T=S={TхB>S>qyZ6>au=B$>S>p_>13N>̍4?BtO>S>d|>>>ڵ`@B>S>8V>>Ԗ h@B3>S>VOLO>1>@@BϪ>S>[i>6r>) AB͒>S>{_kA>$>>!ABWk>S>z\,>>0>pE;ABo>S>FU>|>UAB۾>S>D9>u!>UCpAB9>S>K!}0?>XAB>S>(zXAB2>S>-~vLv?b-=`VxgAB>S> W}?6O=4/8֗ABV>S>? S>Tx ?nCS>wG?;;j(ȜAB>S>H8?;$!(ȜAB>S>|8?;F0ȜAB ?S>j;8?;X0ȜAB"?S>8?ޟ;q?0ȜABq3?S>9?ޟ;@0ȜAB^??S>,=L?" <O@0ȜABaH ?S>b=?L.=/?q_=I0AAB/?S>`=}?l=(-AABy?S>#k>.t?H+>KUAؖAB;?S>>R??>oxA@AB5?S>4?d?|>kA`AB] ?S>Q?>g>{GA@-kAB#?S>\\?у>$>ALAB[c&?S>Oa?b>8>AH0AB (?S>`?+>+>ݚA@[AB[3+?S>,M? ?>4A ABK,?S>8?"?>^A@Biv/?S>Y?=>*ł>ūA<@BIJ3?S>;n?>*H>߲A@B8?S>w?`>=tAS?B>?S>N|?U>=i=AG BAC?S>2?I=;tYe?i4` ABJ?S>98|?SF/L;A}BUBO?S>ls?9@<5ApBB8T?S>Xek?dȾ=A huBLZ?S>`?0?JQ=EAPғB_?S>I?=L=ABЛb?S>9#?H3E#?mR?[=-RlApKBHh?S>>Ąm4)h>JyYV>}|;AGBQs?S>[=o>< @pB]{?S>|64q@pB_~?S>$48>xB?S>:qapB?T;t>>D6{&<8>xB]{?T;t>Tx5o%ӿ6=_&< @pB&n?T;t>=}.~7 <AGB!k?T;t>y(R>/z Wޯ>(jpA}ܸ>`\;-RlApKBd?T;t>I ?W;C|ABЛb?T;t>, ?GX;eAtB_?T;t>1G?iJ L;ABLZ?T;t>E_?d)ǀDAPғB8T?;t>j?j̾'A hutBUBO?;t>r?+硾s5ApBtBJ?;t>|?3SwA}tBhG?V;t>M?pBC; ABC?8;t>~?IT=@=寿AZBj>?8;t>1x?UR>s>AP B9?8;t>Gm?>|Jw>tAdy?B3?8;t>{^?# >y>A{@B.?8;t>qD??#>A@B+?8;t>,?l ?>$A@B|)?8;t>;?E?v>5A AB%'?:;t>HG?>G?AAB-$?:;t>A?s>*?+9A@P4ABs!?:;t>6?>#?5APAB?:;t>sR)?>)?}AmABt?:;t>??[$?{lA`ABq}?:;t>U>7? ?UUA@-ABZ?:;t>5>Zb?>F9AwAB3?:;t>>v?x]>AAB ?:;t>p=|?> @@7AB} ?:;t>=~?=J@'AB^??:;t>+U=~?=O@0ȜABq3?:;t>[?=@0ȜAB"?:;t>Cݶ[?=q?0ȜAB ?:;t>[?O=X(ȜAB>:;t>s;[?=G(ȜAB>:;t>[?=$!(ȜAB>:;t>P^~?~m=j(ȜABkV>:;t>{˽}?]P=AB.>:;t>۽A|?d=OfAB\>:;t>30iw?3s@>]RX\AB~>:;t>z f?`>O<דABLg>:;t>ܾNB?z>@0YAB>:;t> ?8?@sXAB~Z>:;t>nl>ˋ,?P qABr>:;t>,a3>"/?%QVABþ>:;t>z7h>ă(?9:;t>@Q!>B?<0a"ABxx>8;t>4? 4>=?,P> AB>8;t>\I:b ?>`@B>>8;t>vjF0>!> @BG>8;t>S><ü>0'@l@BT>8;t>c{>> ^@BH>8;t>}s>7>be^B9x>8;t>~#='1=ZJB[a>V;t> &i+<#nB`7Q>;t>{|':`ջW!tB=>;t>Gow L#uQtB&>;t>q4c2ӛv(htB>T;t>W 1;ӰBe>T;t> F-1"1Qb*?!:tB=T;t>qպN pҼFB=>+NIHc(-B=^Ø>jsCHȃh0pBL=>7V3~J0=8 hBD=u>>L' j=}Ӿ\BLT=އ>7wX5Or=Tu0ۿB;=ч?D Q>`0Bo=(?Tр2>=OnC@=sUU$`>;X# C(=iZL?.R6>=%8PpC:=fY?꾹NpU>$(C=fY?)4ô>&8 XҤ(C=iZL?c;A>48>pC=sUM1P# C =(?;lB4\@>[ex֮C =ч?E#wAd*>]x B=އ> )>-%=XۇBw=f>d/&9\=Yt\B=>36<thBx=^Ø>F5=4>)؃pBv=>k{1|8(6HK(-B>>?G=B n;+P(-BG)>>)OW{ jXw?(-B'>>bNh-B]=>>Ho+P-BP>>V|"LFgO"-B?`>>c >w{X>/=la -Bl>>:l'>V+M>] -Bޒ>>Xx>ܞ>t. @$-BSM>>Fi>x>Tt@ @$-BW]>>d9Z?>>D@$-BI~>>*o`?X>PM @$-B7>>+g'? ??A$-BV>>1Ę>?HpA$-B>>+>s,?~9A$-B>>!Ʀ>4?HqPSA$-B>>`co>F3?ȳbmA$-B,>>,I ?h*?YN\A$-B>>7羣*?-?@7"A$-B\>>=BO?d>!XA$-Bu>>ti?>o {A$-BH>>u?ru>cزA$-B>>CFx?̾K> g0`A$-Bw>>&wi{?@>>j8UA$-B>>>{?;>$!8UA$-B>>46:{?;>A8UA$-B ?>4{?;>X8UA$-B)?>(۶){?x;>q?8UA$-BB?>Qض({?{;>@@UA$-BU?>鱀=z?W?>O@@UA$-B ?>B=x?$oT>s@pA$-B ?>>2t?(@>@PA$-By?>Ln>f?+>p>A)A$-B?>ŭ>oK?}6?AA$-Bհ?>J>=(? `?;2AËA$-Be?>Rj?(?zn,?GA\A$-BA$?>V?O>-?0ZAkA$-B1?>*?b>V}'?jAIPA$-B"?>5?8> ?xA@q4A$-B%?>-:?a> ?AsA$-B(?>40? ?>tA`A$-B,O+?>>$??W>4A@@$-B.?>&9??>lAr@$-Bu3?>SS?Y>O\>\Ag@$-BW9?>S#e?Uô>Tx>tA4?$-B??>s?Ћ>>,A% -BC?>&I}?> i=A@$-BeG?>?g5; A`(-BXJ?>{?45A -BYO?>r?򢾿x-A@jC-BUT?>dj?*;>]Au-BPZ?><_?1$DA(-Bg_?>G?$!λA(-Bb?>x?RCHfmAHK(-Bd?>?BKXT:C|A`ܻ(-Bf?>p><`h;5RlA (-Bh?>Bخ>pF;ZA(-Bk?>P>zN=s4~w]<A0(-Bs?>:5=[.<@`D(-BL[{?>]4 *2 ً4,2<7>`D(-B?>]<>qahD(-B?^Ø>z:?qa`>pB~?^Ø>.L컁8>h>pB%[{?^Ø> E6Ljp@`>pBXs?^Ø>K4=ƾ$/@`>pBn?^Ø>e=<~A0pBk?^Ø>N>zIUBAxXpB$h?^Ø>>;pZA@*pBf?^Ø>&>d)aソ-RlA$pBJd?^Ø>v?X1C|ApBĝb?^Ø>e?HmAЃpB!_?^Ø>mF?U!A0pBfZ?^Ø>Q^?s6fIDAH{pBT?@Ø>?;J,AwLBO?@Ø>r?4-A@ELBJ?@Ø>|? 1;AfLB!H?PØ>?8b RS< A|lBYD?PØ>o]{?9;>J=̅AѱlB9??AØ>xo?B>s=ĈA-hBV9?PØ>Zd?42>_*>tެA>lB3?PØ>W?><W>PAL@lB.?PØ>D?(?Xrg>$A@@lB*?PØ>2?f-?g>lA@lB'?PØ>:?=h#?}>9"AAlB#?PØ>6J?a` ?ݐ>)mA@AlB?PØ>J?w?Ո>\Aj2AlB?PØ>W=@??m>EKA@MAlB"?PØ>D(+?D?ږ>#8A@gAlB_?PØ>6?!?| ?"A}AlB?QØ>~>2-? ?"A5AlB?QØ>M->cq>??h7AˌAlBV ?QØ>>[R?$H>@@`mAlB ?QØ>C>z_?o>d@ ВAlB ?QØ>H% > d?9>@AlBOv?QØ>i=f?>O@௖AlBX?QØ>gɶ!Qg?RY>@دAlB 5?QØ>6Qg?X>q?دAlB<?QØ>mm6?Qg?X>!XدAlB>QØ>Y6FQg?X>A௖AlB>QØ>&25:Qg?X>$!௖AlBJ>_Ø>28f?b>j௖ApBe>_Ø>5 Uc? >@%ApB4>_Ø>@\?>0ВApB>_Ø>c}M??XmApBJ>_Ø>i̾#7?U?ˌApB>_Ø>'W(??P5ApB>_Ø>@ q? ?q)}ApB? >_Ø>T&b4 ??`>gApB>_Ø>N>>+>@TO NApB́>_Ø>I> E>_3ApBɬ>_Ø>7Gy ?:R>EoApBֱ>_Ø>]2>,?ՀRApB>_Ø>L00?d>@pBF>_Ø>@CAO ?C>`-@pBȞ>_Ø>#M+?Tx!>Ҕ@pBo>_Ø>O[B?_=6@pB!4>PØ>Vk>P8=8wlB:|v>PØ>{)E>_Ø>_<1#n@|pB-0P>OØ>T| ( x;V$PB^I=>OØ>&oPn<JbQPBZ(>OØ>=cQ|^Ø>QXd: A;>pOpBlQ>^Ø>ئI 0ڨpB>>>DKDr< lhBk>g>aKP=RI\B>އ>ioIuH=B =ч?D+>؍Bt=(?iF@ X>~(C=sUUf# C:=iZL?08}QӺ>LxpCbؼ=fY?s1u>91T(C^ɤ=se?"ھB?;p/CO=se?}־x`?~ގ/C)=fY?D پ>&?(Cl=iZL?;L 澲@>/]PhpC$>sUz# C>(?^XbWIm>9@CY>ч?wL\F:6>$RB>އ>_L`D =)xB>v>]_Ä=܆e\B8>>ߩ[O=HhB+>>[fpܾa=PPxHBu@>>6#pqd=/\HHB S>>{/ц=gHB[a>>Ztm<|=#nhB[t>>_ {:>|= <`B1>>m*4>TU=ܹԿ`B_>> pa@E>KJ=?hB/e>>xU ?<@p@hBv>>EM"?Ji<\@hBO>>108?'i=v[@hBQ>>".:??= @hBJ>>A&?=~{"AhB~e>> D0f ?c>j#AhB^>>W88%?3C>pY9AhBWO>>.?O>DpNAhB>> 3K3?l}?q)bAhB>>;3?@\?\0pAhB>>G3?uW"?OPYzAhBY>>tk[6?6w)?Ph'AhBl>>9?!,?O߾(AhBG>>FܽG:?-? XDAhBx>>pXZ:?e.?jXAhB>>f5>`;?en.?$!XAhB S>>k'D`;?`n.?`AhB?>W6M`;?Un.?X`AhB!v?>R`;?On.?~q?`AhB ?>S`;?On.?@`AhB1?>a =H;?/P.?O@`AhB_ ?>挺=Nc >E9?F&?1@PAhB?>b>Y4?_`?@AzAhB?>M>s2?? ApAhB(;?>>U4?-?"AbAhB?>?m2?q>H>A@NAhB@?>3?[)?>rUA@[8AhB"?>uC?f!?cL >6G?e ?s=zA AhBWj)?>>?}*?$@=XzA@hB),?>AR;?-?'De=lA\@hBڣ/?>L?>?ST=4A@hB4?>\?>?N=gA;@hB:?>f?B>Zh=ͭAH]>hBr??>o?>xw=A*`Bx D?>Sdz?fL>bq=EAhBhG?>?𜻡m= AhBJ?>q{?84<׃=ՖA0HBqO?>4r?u>i=A 7DHBT?>j?eʾ7-=AvHB3KZ?>;_?n#o<AhB _?>ZE?Ł"FZ<4AXhBЛb?>4?i,I?GXKu<{AIhBg?>(>`lz<kAhBh?>EL>p?{;LYA`hBG3k?>M>zXu%MBAhBn?>6=cB~l8ƻ=RARhBQs?> 2=x{@phB]{?>ٙ5^o@xhB_~?> }8>xhB?>]6BqaphBΐ?f>7=7M_h\B2~?f>:y>`\Bl{?f>Lޜ5i:@`\B t?f>w3=:(@h\BHn?f>[=I~;A@]\B|k?f>M> z <8?A(\Be7i?f>>=ep< UA\BWag?f>>0`0=$fAH\Ble?f>?X '=+wAH\Bb?f>kW?ȚI_:=uAt\B9_?g>DD?o"]=DoA\B9Z?g>V_? =[AM\B3U?I>Hk?Užo̡=DլAw|\BO?I>r?oo=AE|\B;K?I>58z?70"=޻A |\B~G?g>~?P=DA\BXD?X> w?U>E>A\B@?I>_m?>">$pA?\B[;?X>'.e?>)>쉬Ax\B5?X>Q\?>O,>kA @\Br1?Y>YN?gJ?8>lAM@\BP.?Y>/=?i$?L;J>zA@%@\B+?Y>:6?Nq+?X> A@\B5)?Y>9/?-?>A=@\B&?Y>~?&2?>xrrAA\BW"?Y>kU?Q]5?>Y\A`A\B?Y>{>v^4?)?PAA*A\B?Y>->//?>#?P A`>;+?.S-?MAGA\B4?Y>Xq> t+?F4?Pr@OA\B7?Y>>,?8? @ |SA\B' ?Y>+= (-?b;?@UA\B ?Y>K= ,?=?ʑ@UWA\B^?Y><*?ˏ>?M@XA\B?Y>*?>?`<@XA\B?Y>*?>?hm?XA\B?Y>h!#6*? >?XXA\B&>Y>J鵃*?>?լXA\B>Y>V@6*?>?`MXA\BI>h>*?'*?8>?/hXA\BQ>h>c.+?Q=?n@WA\B>h>z),?Bh>3 N+?:?SA\B>h>.N,?#i6??FOA\B>h>C-?.? GA\BÓ>h>^#0?#?p_'Ph>l3??8Gp +A\Bx>h> $4?0>`;A\BW>h>t̕3?>vs0 A\B_c>h>-&5?4>;`@\BT>h>ǻ=?Tz>ߊ @\By<>h>1,15?]>%@\BN>h>Ht?a>,]m@\BE>g>\>:>5_@\B>g>rg@>v>\BȀ>X> &po>>">0\Bӽo>g>|y{(>0>Dn:\B`>v>}sHl\BS>X>Ly9 >ߴ\BA>X>q~ >OC\B2 ->X>iʾ=+s\B,>χ>Ek"f==mծqlBZ">ч?mhK8>>{B>(?[d2¾{>(`C>sU4># C>iZL? Vh> k`˃pC=fY?cM?K80*C"=se?>|z;@H?Π'./C(?-R 3/CP`=se?B;3b>/෦/CYh=fY?5((q훕>;(Cs=fY?*5Tc>pX(CŽd=iZL?ykO>;_pC7=iZL?QazHH>KؿpCP =sU˯h# C4B>z:(?sڷ~r=ľhC,+;sU68pC;y0pC=fY?hZwV>I莰(CG=fY?3v>L](Cb F(h(C;fY?8xz>`m h(Cj:iZL?JnYǔ{p=>8pC B:sU.g:7\B~?އ> 66?=s>B ?ч?~==>Bր{?އ>+4+?=@B@t?އ>D0=uG=@B!!o?އ>=k ~V=AkB2k?އ>SH>\zam=;ABi?އ>K>bp:=PA2Bog?އ>(>`=teaAOBe?އ>Y?pY =$rA`B"Jc?އ>%?bKJu=B?h$=A@B[?އ>]?%}=lApBU?χ>j?(;ž=|Ad|lB`P?χ>q? >dA@KlBK?Ї>x?Gu? >eA lBxH?އ>{?;;4>#A`B[E?߇>fs?z_>ёY>ӗi?q\>Yn>3AcqBg4va?r>M9{>\DAڮB\8?߇>xY?>K>sAd?BuN4?߇>@L?]g?>4AM/@Bj1?߇>A9??f>{Ay@B/?߇>&?.? >tьA@B?9?{>A2@Bf*?߇>>7B?}B>yA'@Bz'?߇>ߟ>^G?]>bAU@B'#?߇>:>_&I?H ?qJDAI@B/"?߇>p>.I?ެ ?iAG ABC?߇>Ą>I? ?LAAB\?߇>sM>ٲK?M?@ЀABǿ?߇>L=CN?d?a@WABm?߇>OX=LWO?C?u@zAB ?߇><N??>@`AB$ ?߇>6N?`?@AB?߇>N?_?h?ABD?߇>prXN?d?XABk>߇>nN??,AB>߇>|87N?{?ABJ>߇>@N??2dAB>߇>ϼӁO?q?r3AB>߇>gKOO?D?~ABp%>߇>ɽ:O?5.?/oAB>߇>_!2N???oAB>߇>+epM?Y ?"00AB>߇>嶒 ^L??a$pG ABG>߇>TK?>I@@B=>߇>U׾J?P>Gex@B;>߇>VE?tu>kz"@B#>߇>o oA?µ>υ@x@B&>߇>jyz??p> a@B6>߇>$3?>Hy@B>߇>K$F?6>,~@B>߇> ^A>-f>x >Bl>>)6iH>*_>oB֧v>>rpz>S\>d\>B@h>އ>wu%>I>x,@B'^>އ>$|D8w1>䅽`BVR>Ї>,Jx@$>˻PlBRA>Ї>r >CζBlB4>ч?o@딾jG>TB+>(?ksH>ػ\C >sUd4 d# C>jZL?y\>vu`jpC>fY?NQvl?Tno*C=se? @YJ?.0ns/C\=se?Q7D^M?M3`a/C/>fY?S(S ?AZ@-Z*CY!>jZL?J_-N5C >|`RpCĸ.>sUFI# C m:>(? qDj>p=C%D>ч?Ēu9B]V>p02BwjN>ч?hx8컣t>BbW>ч?}%s->QՆ>ǫ"Bc>ɇ?Ol>h>,Q Bs>ʇ?Sd(2>r(>XBy>ʇ?HX>8>X$B=>ʇ?@a2?>XB>ʇ?3?>~>B >ʇ? @?>t ?B>ʇ?[E?E>otO?BKҝ>ʇ?*CO?}T>+e@BDo>ʇ?ž,W?>,R@@B)>ʇ?F"]?ا>G 9i@B>ʇ?Ba?>@B>ʇ? b$e?4Y>@BP>ʇ?h?> @@B^>ʇ?bj?>D@B>>ʇ?9\'k? > @Bb>ʇ?t +HBk?>i @B>ʇ?)^k?>V@B>ʇ?#r6k?D>@BS>ʇ?H6k?H>!@Br>ʇ?gxk?v>@B?ʇ?}k?]>7?@B p ?ʇ?|k?\>?@BY ?ʇ?2/@@B7|?ʇ?` <{Zk? >t@^@B?ʇ?0= k?c>-@@B?ʇ?$=oi?~>ѐ@@B?ʇ?D>e?M>@T@Bl]?ʇ?;+>9b?,8>a]@l@B8$?ʇ?{>W_?>{ A@BMq*?ʇ?t>^[?>0Aag@B,.?ʇ?>?NV?&>!LA9@Bm1?ʇ?_+>NM?>9PaA@BK04?‡? ? ?NA?2>qA2?B16?‡?C?/2?>#~A.z?B7?‡?t2?U7?P>7A>BŌ:?‡?oG?F?ݯ>5AdB B>?‡?-'S?'>)Ԩ>TБA@' B\B?‡?])[?6J>1>ҙABLF?‡? xc?\Q>q>|ABI?‡?%m?le>ʕ>l4=ABO?ч?t?~EGHk>\^A07BS?ч?m? X[>*An\BX?ч?~e?1ɾQ>?ÂBzD]?‡?nX?OH>,;A`Bsa?‡?YbPA`BRd?‡? ]?QM(#> nA B%]g?‡?K>[u>YA*BEi?ч?Zc>b->IABlk?ч?> p >9AXBAm?ч?:>y?=/%AmBxp?ч?А=b|s=loApgBYnu?ч?'=Z~C=i@>BK|?ч?aZSO~>=?>B ?ч?~>=>B_#?(?zn~{[=ľhC"}?(?Ҭ5^~7s=͟?hC3?sUzR>A|Cvl?(?>a3rQ(>&A@FCj?(?T>Re,> 5A8NCh?(?м>]j4>DACCPf?(??NND>ˀXAp֮Cc?(?H8?&'$h>:0oA,Cg_?(?S?g¡> (A6CZ?(?<`?ʾ>^A0MC.V?(?h?\إ>A0cC%R?(?n?H]r>+A (CL?(?sh?3e>;>VAC'xI?(?0]?I>>dA`C6E? (?U?5>־>A,CB? (?M?>˧>xAsC~>? (?YB?A?_>YX{ACM8]pA*¿Cip:? (??2?>>fAvC8? (? ? A?y>!h[AnѾCZ6? (?~W>M?W>LAx&>C~3? (?>fV?9w>1!9AlC?C/? (?E>B\?Έ>IA?Cq)? (?ǒ>_?>@@@C$? (?>{>c? >2@+!@C ? (?:>kg?|>!@0@CT? (?d=vj?N>1@-8@C@L? (?.=k?0>@(;@CR? (?6Y=O$l?u>!M[@@<@C? (?Ͽ@)@@Cb ? (?n6l?P>?)@@CT? (?߅l?E> ?)@@C > (?'2l?=>ľ)@@C> (?y=7#l?>?)@@C{> (?5}l?;>)@@CA> (?el?}>+K)@@C_> (?~k?&/>?d=@C6> (?@ l?w>@<@CR> (?afk?E>oşS9@Cſ> (?!i?5>oD1@C> (?8]e? >a!@Cz߫> (?a?<>w @Cӎ> (?G]?><+?C s> (?W?a>?B\?CT> (?zPO?(>S>Co > (?GF?)>aXC> (?U A@?o>opOC> (?2?>n*¿Cԁ> (?L<?@>&&CO2u> (?T>S>Ե@C7f> (?-_.>{B>@C X>(?+jg >!>C#kL>(? n9,>ݕ>2 C1D>(?\s*̜>PR@(C7>sUX:`6# C)>jZL?U`6=n>R~BpC>fY?ϨShB?/\@K*C M>se?a*Q?4U/CQ >se?W=DlR?3J/CsJ >fY?HN]>V?Z>*C0>jZL?ZV>L>ߎ|2pC?>sU4>8%# C5J>sU >(^# CW>sU>,# Ce>sU{>1`# CKr>sUvR# C|>sUgR# C>sU?Yc)# C٣>sUW"M# Cb\>sUD@Ͽ# C>sU0!# C̓>sU# C>sUh]?># C̦>sU"|># Ce>sU?# CS>sU)?# C>sU?w<3?# C>sU]9?# C>sU_>H?# C>sU' H?# C>sU>LH?# C>sUH?# C?sU>H?# Cu?sU?H?# C,?sU!c@H?# CT?sU?@6?# C$!?sUTm@/?# C $?sUB@%?# Ck'?sUSc?x>Qt@ ?# Cx+?sU_?Ԫ>q@*># CO0?sU[?h>A@# C 5?sUUW?C>! A&# CH9?sU6rQ?=>k$A# C;?sUFKH?z>a5A# C=?sUYMAE2# C@?sU!VAR# C#C?sU@_A@# Cu^F?sU>vlA@# CI?sU>yA# C<5M?sU>A0# CJP?sU4>L A`!# CVvR?sUdA@6# CuEU?sUT!AcM# C@Y?sU}>tʂAЂk# C)S]?sUexAg# Cza?sUgAЅ# C2e?sU TAH# CiCh?sUG@A# Cj?sU]`>^.A# CfWS>A4# CNn?sUFr9>A# C(p?sU;{y >&@޹# Cs?sU@w# C>/x?sUIq@h# C3?sU`,"8pC:y?iZL?g=ziF>)\2@8pC ?fY?뿶Vy\_>߷(h(Cu?iZL?Qp=3yNU>E؜@X^pCr?iZL?$>mve>@XpCOpp?iZL?aJ|>!og>@p.pCn?iZL?r>d>eA@ϰpCl?iZL?c>Z$>3ApCKj?iZL?Im?'Gj>>%A>pCg?iZL?uM/?>z7AxpCBd?iZL?tF?b> GA葕pCj`?iZL?=Q?Pq >uVABpCz\?jZL?0W?)}>BbAppCX?jZL?To[?(8>yiA7VpCIV?jZL?[?ƍ8?QiA/pCQ?jZL?[J?:p>|? bA0`pCzN?jZL?uC?=>U?WA`pCSwK?bZL?>%=?>~?:LA@pCH?bZL?z73?y>?xKAA pCŚF?bZL?ڄ!?e??ث8ApCPE?bZL?m_?$??PE1ApCCC?bZL?>3?v?6(A`pC`B?bZL?>S???kA*dpCx@?bZL?|>2I?~?K ArEpC=?bZL?䁟>O?w> @$pC_9?bZL?>S?;>@@pC!6?bZL?0j>WW?>@ؿpC+3?bZL? s!>\?p >@¿pCY0?bZL?=W`?H>wk@VpC0t.?bZL? (=*a?{>I@͵pC*?bZL? =R`?ξ>7!@pC[/"?bZL?3+R=a?>?楿pCR?bZL?&7b?>@g?楿pC ?bZL?5b?u>1>楿pC>bZL?c"b?>楿pC>bZL? 5b?>դ楿pC>fY?N^?>}$S*CBϽ>bZL?ueb?>)楿pC.1>bZL?]+qݰa?(>/楿pC>bZL?T`?> lTqpC8R>bZL?LQNa?I>`fwfpC>bZL?7G`?>'pC՝>bZL?+^?X>/Ф ¿pC>bZL?VZ?>sؿpC[>bZL?P`U?.>.pC0>bZL?MQ?>_ "pC4>bZL?iK?M>f@pC x>bZL?]׾7SB?>K*@[pC[ s>bZL?btP8?6?5MwpC;m>bZL?Ftn3??xU@pC>,g>bZL?xQb%??PLpCq^>bZL?.??Y@ɸpCơR>jZL?C(>%?/e`pCDF>jZL?P'N >7?wo08pC}:>jZL?Ts> ?w0lpC4(>fY?I`>3?jV@,*C>se?K I>lR?50w;/C>se? =>ܩR?**/C2>fY?#Ck>ǹ?O*CL<=>fY?!9 W>^?7G@*C-G>fY?&=&>f?=h*CM>fY? Y??1@7(CJQ>fY?I)??+'y(CTU>fY?]*.?(?0#(CgY>fY?TѾqd8?WV?R@(C ]>fY?@44A?yT ?7(Ca>fY?g.H?R ?\g(Cf>fY?熾yL?I ?O{*Cfj>fY?RrQ?2% ?o/i*Csl>fY?^֚V?[ ?ϳ`*C l>fY?@!lX?Ѕ?_l]*CNj>fY?u`X}X?n??k;\*Cʎh>fY?ʽW?D2?JY*Cci>fY?ㅽ$Y?ٍ?$!S*Ca>fY?A?Z?u?TS*C>fY?7-N^?m>}$S*C ?fY? 6.y,_>߷(h(C w?fY?G=Pu>-i@A(Cqt?fY?w>Tr>@P(Cr?fY?Ne>.l%נ>@z(C p?fY?K>ݼaH>1@i(CC o?fY?>Vn>d@(Cl?fY?U?P@?>5 AXҤ(C7fj?fY?B+)?g>AH(CKg?fY?k!>?00?'Ax(Cc?fY?zF?0? 4A5*C4D`?fY?K?J> ?>AШt*C]?fY?3N?x+?10EAp[]*CӪZ?fY?%N?L< ?GA0K*CnX?fY?AF?r?>?EA;*CV?fY?T>?Z5>Р?A>ApW(*C)T?fY?$8?A>2?A5A*C;Q?fY?3?>?+A*C9O?fY?w#*?K]>?"A*CM?fY?|??׊?DA7(C̵L?fY?q?Q? ?HA(CK?fY?s>(? ? 1 A (CJ?fY?>]5?r?x5Ą(CI?fY?ce>???W@j(CH?fY?l>E??@ (C>HG?fY?#?>J? ?K@@{*CM?F?fY?I_>O? ?q@i*CE?fY?>qT?I ?n_@@`*CE?fY?p=X?x?AjB@]*C̢F?fY?=+X?A?W&@\*C#G?fY?=W=>W?Go?@)Z*CʫH?fY?h=GX?a?r?S*CN?fY?%?Z?K??S*C*g?fY? ?Z?u?S*C>fY?N^?>}$S*CẀ?se?ZtvO>de /C}?se?=#/5_N?G? /CiZz?se?!0{=N?g@)/C)w?se?-=lXʫP?'_@( /Cru?se??> a5(2.?@զ/Cs?se?>*s3?@/Cq?se?Sx> X?'@/C"p?se?k ?!,~T?T@/Cm?se?7^>.(H?@/CBk?se?|>s?ZA(./COh?se?f>c\04c? A/C)Ie?se?:>fd?Aw/CƉb?se?>+/f?ACd/Cf`?se? ?H@=KW?I|AU/C\?se?[94?h /Cg_?se?2?WT>UsV?A@H/C\?se?0д?h /C}v]?se?os?Q>*SU?9VA7/C\?se?zF?h /CL[?se?N?Vpw>>T?0A&/C\?se?' s?h /CY?se?>#>uuT?!@A z/C\?se? K?h /C]X?se?>HK>T?l@O /C\?se?9 X?h /CjW?se?>v>U?@/C\?se?絺?h /CV?se?>>zS?U@/C\?se? 5?h /CGV?se?X >2>nR?B@[/C\?se?mԩ7̵?h /CV?se?7>Q?4P?B@/C\?se?Pٵ?h /CV?se?Ez>?)O?A@@p/C\?se?t[?h /CgW?se?V[>D)?vM?Aw@ k/C\?se?P?h /CoY?se?!?>?L?aCs@\/C\?se?-5?h /C^ \?se?.l>X?L?gF@D/C\?se?_*M?h /CxI^?se?=-?F*L?a)@)/C\?se??ԴJ?h /C`?se?q<?X"J?f@X/C\?se?,?h /C}c?se?=?:H??/C\?se?3~@?h /Cg?se? =?jH?\?/C\?se?:?h /Co?se?@/C\?se?Γ/?h /C?se?q(?4H?]h@/C\?se?n?h /Cb?fY?4c7U?I ?}$S*C?se?^r7 > a?|: /C\?se?\@d?h /C\?se??L?h /C:fY?Etvۂ>߷(h(CB;se?Etvڂ>de /Cu2 /C֘;fY?Ֆ!1w?%h`g(h(C;se?S Qtv?: /CZ;fY?48x?Ճz`$ h(C^9se?q$e8Itv?2 /Ce:fY?N:z>q8x?sþ(h(C6%8;se?MCa>h /Cn%;iZL?5(3y?_`8pCĚq:sU Ja?~b޿@/C,}=se?+!?0qK??j@/C N>se?3[E1?$G?,=/C>se?u?$H? [/C)>se?ze:G?I?p@X/Cy>se?ֽe?K?G)/C#>se?(?pK?D/C(>se?se?RhgC?#L?//Cj/>se?熾?*N??`/C />se?nM>zO?^/C .>se?h >wO?/C5->se?O>'O?h /Cޗ+>se?̾ >b\S?p/C'>se?/ᄋ>ɬT?_P/ /C٪ >se?xGp>IS?#/C gm?|+>A@e4C[]g? xj?AE>[ah?&>?VC[n?~Dl?.>d?>Q?C|Ry?lm?*4u= >b?>>(6SCf?m?T=;?g?>|m-nCj?'u?c=! L??l-@gCHt?et?x=N}C? "??`2C7j?z?IK=;?yG?zm-0ZCs?y?S0>4G?mM??C?S~?0=->k?xm-P3^Ct?|}?\>V> ޹x? @%U\C㶀?S~?=5sv?rm-v\C}x?|}?4d>+Vl?$@ v"C˝?z?1=y[Z?nm-$XCz?y?[(=>|M? ?XC挀?'u?!=6?2?l-gCa|?et?: >g1C"??.2CN?m?T*=Sq^>l-znC~?lm?=b?>3>h4SC|?~Dl?@%>mer> Q?C{? xj?]>/j>L?CGy?3h?>o}L|>G@ L2C-Ms? xj?ؠ>U>w@Cm?Dl? !?$E|>V@X Cgg?$lm?H??aA5z6SClb?m?7W?;p ?aA%UnCJ^?$lm?vF?e>2O?aA`06SCl[?Dl?Z?.%?>V@p0C[? xj?ț>rU?3>w@C_?n?ۭ>L?C>^@Cg?3r?q>~F?(k?a.@`vCXg?v?(L>?%o>uY?@2C\m?z?>K9d?6@%UXCp?y?B>b2/X?@PwCt?v?>`2\Fg?e.@ǙC]ku?n?&>LW>^@xCp?3r??v[?@(ߌCk?et?+?DS7?{@x2C f?'u?}r'?;QA?@%UgCab?et? z?`>8?{@12C-`?3r?д>9"?j ?@Cc !TH<0$ IZEM:     ! "#$#%&'&#()(&*+*(,-,./0/123245657898:;<;=>?>@ABACDEDFGHGIJKJLMNMOPQPRSTSUVWVSXYXZ[\[]^_^[`a`bcdcefgfchihjklkmnonpqrqnstuvuqwsxyz{zu|w}x~z*z||}}~~""../2      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTSUVWXYZ[\]^_`abcdefghijklmlnlolpjqhrfsdtbu`v^w\xZyXzV{S{Q|O}M~KIGECA?=;97531/-+)'%#!   5258~}|{zyxw v u t s rqpo      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_;8`a;>_b^c]d\e[fZgYhXiWjVkUlTmSnRoQpPqOrNsMtLuKvJwIxHyGzF{E|D}C~BA@?>=<;:9876543210/.-,+*)('&%$#"! ~}|{zyxwvutsrqponmlkjihgfedcbA>AD      !"#$%&'()*+,-./0123456789:;;<=>?@ABCDDEDFDGCHBIAJ@K?L>M=N<O;O:P9Q8R7S6T5U4V3W2X1Y0Z/[.\-],^+_*`)a(b'c&d%e$f#g"h!i jklmnopqrstuvwxyz{| } ~   GDGJ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGF     MJMP !"#$%&'()*+ , - . / 0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYYZ[\]^_`abcFcEcdbdefgfhdhEhhgiijkoknlnmmmnmomplqlrkrjsjtitgtetbsasuruqvqwpxoyPSSz{zz| }!~"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a~}|XzX[[      !"#$%&'()*+,-./01234456788a897:6;5<4<3=2>1?0@/A.B-C,D+E*F)G(H'I&J%K$L#M"N!O PQRSTUVWXYZ[\]^_`ab c d e f ghijklmnopq`rs`cqctutqtpvownxmylzk{j|i}h~gfedcba`_^]\[ZYXWVUTSRQPOONMLKJIHGFEDCBA@?>=<;:9akthvwxyz{|}~h         !"#$%$v$w&x&'&(&"$ " ()k*+,-./0123456789:::a9a8a7a6a5a4a3a2a1a0a/a.a-a,a+a;u;v;%<*+*;=>>?@ABACDEFGHIJKLMNOPQRSTUUVWXYZ[\\>]?^@DA^D^F_H`JaLbNcPdRdSeTVUeVeWfXgYhZi[j\j]_^j_j`iahbgcfde SIDEMAPR.JPG>>>dz???dzdzWI?!s?H6?˵`AB?>s??}AB?>s?H6?:ЋXABWI?!s?N^2?pDXXAB?>s?Hܶ?{q?ABWI?!s?`?Ҁpq?`AB?>s??|@ABWI?!s?S_6?t@`AB?>s?@<?qO@ABWI?!s?/9=?^apO@XAB?Hr?G=?q"bh@@ABWI?*r?Fz=?yoVh@AB?r?ޔ=n?5yA(ABWI?r?=H?A(AB?p?O=}~?fUAAݘABWI?p? >}? qUAAݘAhB?n?&4E>:5{? rAABWI?n?K,e>y?/nrApAhB?Ti?]>p?;AiABWI?7i?2>Zk?]AiAhB?c?*?-S?.ԵAPABWI?c?h"?ĠE?A AB?p\?NK?C?a4AsABWI?]\?NS??P5A`sAB? S?te?!>CATABWI? S?#i?!>PѴATAB?5H?p?%>>aƷA Y4ABWI?H?1 r?>;ƷAX4AB?%??u?>P鑴=TAAB?48?x??u>(0dAABWI?48?x?m>ЯeApAB?5?~|?'> ´ A@@BWI?5?v~? =V A@@B?.(??5Y3\XS A @BWI?(??,Gd A @B???)Ӹ6 A @BWI???r4W3 A@B?P??֕5\+3 A`BWI?)??P4R2 AB?2??!K+4^+3 A#BWI?2??MF453 A#B?>?04+^+3 ABWI?l>?ɨW3 AB?> ?%;2 ABWI?>6?,0< 3 AB?x>?F׏?5^<Ϝ`AhB?ʨ>?7;R;mxA8BWI?pʨ>?p::fxA@8xB?>?nĻugA jWBWI?> ?0EwgAjWB?{>?VKT3(BAqBWI?h{>?_)BA`qB?+q>?d<&AāBWI?q>?YYA@āB?gi>? `3 A!BWI?gi>~?Ƹ^4 A!B?Ұ?>x?]o5McA BUI?X?>s?K5NcAPB?\>\?I5}ߵABUI?D\>ˉS?-Y5~ߵAB?8P=\4?545UʩABUI?DO=)?? 05VʩAB?= ?3Wc5mAvBUI?=>^i5mAwxB?!=Q3>-l?6ABUI? =I>.8p5A`B?9B=FHS>}zU6FZAxBUI?B=1 >}K5@ZA`B?9B=e%6F ApBUI?B=36P A`B?9B=]+6?@pBUI?B=Rj5 6?@`B?9B=&6896ۨXpBUI?B=m55OX`B?%?B=LY5?@Ȝ`9A?%?B=%dXȜ`9Ae?lB=pU?@xxܺe?lB=XxxܺV>B=p;,v3?@` UV>B=c5>X` U_=B=a߳?"~^?@C_=B=!Q6C&ΦXC':X=jG56{b{?@ ǃ ':4X=jl?SO9X ǃ Y=q>\W>i?Aā&':X=${b®0 A ǃ M=B=³?~^? ACV>B=l\X2< A` Ue?lB= LiLQ; Axxܺ?%?B=RQ AȜ`9A?%?B=1 >}ݵAZAȜ`9A?%?c =>78pA`9A?%?Ӟ=b>^BmA(w`9A?%?N={)?Պ?WʩA9A?%? \>ÉS?-, ^ߵAȈ9A?%?5?>s?KOcAh`9A?%?fi>~?UʸyD A"`9A?%?q>?nǖAHā`9A?%?i{>?J_il7)BApq`9A?%?> ?46nogAjW`9A?%?\ʨ>?b::+AgxAp8`9A?%?|x>?g^<`A`9A?%?>5?<20?I+bCd A`9A?%?2??1N? A@#`9A@%?)??P4H$3 A`9A@%??? 5@ A@`9A@%?(??ğе A @9A@%?v5?v~?c= ĩ4 A@9A@%?48?x?2m>/4^AA9A@%?n%??3v?( >g5>TAA9A@%?H?* r?ದ>615ƷAX4A`9A@%? S?#i?>nW5ATA`9A?%?^\?mS??55A`sA`9A?%?c?]"?̠E?5A A`9A?%?7i?2>ak?5AiA`9A?%?n?#-e>y?b6rApA@9A?%?p?$>}?x#6UAAݘA@9A?%?r?=H?6A(A`9A?%?+r?XHz=?r6Yh@A`9A?%?"s?5=?D 6O@`A`9A?%?"s?cj[6?p6@`A`9A?%?"s??M6q?`A`9A?%?"s?bj[?W6X`A`9A?%?"s?Yj6?ڒ5`A`9Ai?Ks??-l26حAXܺi?Ks??y5XAXܺi?Ks??y5\q?AXܺi?Ks??y5w@AXܺi?Ks?(7=?a5wO@AXܺi?Ur?GHz=?ؿ5Lh@PAXܺi?r?=H?E5A(AXܺi?Țp?m>}?ĩ5UAAޘAXܺh?n?-e>y?5rAA`ܺh?ai?2>_k?D5AiA`ܺh?c?s"?E?X`5A`A`ܺh?\?]S??e5.AsA`ܺh?% S? #i?K>5A TA`ܺh?KH? r?/>(#5ƷA`Y4A`ܺh?%??=v? >646TA`A`ܺh?48?x?um> 4_A A`ܺh?5?v~? = A@`ܺh?E(??5 3 A@@`ܺh???E4; A @`ܺh?R??շv Ap`ܺh?2??u ó A#`ܺg?Լ>?5@3 Ahܺg?>6?$0?_^?::w3`xA8pܺg?8> ?6]23pgAjWpܺg?{>?_2W2"BAqpܺh?\q>?z졬AÁhܺh?gi>~? ϸ& A!hܺf?߰?>s?KqGcA xܺf?\>S?-׵xߵAxܺf?P=j)??ݦHʩApܺf?)=>^WmAvxܺf?!=>G8pÈ.Axܺf?lB=m1 >}9C3ZAxxܺV>B=0 > }n!4<ZAh UM=B=>Z|[7ZAC':X={oW)iѾ(ZA ǃ R:=e>uwg*A´< ñ=!=r+>o5[AV>"=>K8p䑬4A UV>p=o>^j4mAv UV>P=)??R4PʩA UW>\>S?.4ߵAx UW>?>s?dK4HcA UW>gi>~?TʸIa A! UW>q>?֓"AÁ UW>{>? _r3#BAq UW>8> ?Z)5_3qgAjW UW>ʨ>?::G?~4ixA8 UW>x>?;^<)3`A UW>>6?%0<J A UW>>??14خ=3 A@ UX>2??j3=4 A#UW>]??V%5X2 A@UW>??ս| A @UW>;(??uNe3 A@UW>5?v~? =e(4 A@@UW>48?x?m>+_AAUW>%??9v? >'7TA@A U\>AH?) r?㲦>kƷA@Y4AU\> S?"i?>wATAU\>~\?MS??I/AsAU\>c?a"?ʠE?]APAU\>Wi?2>`k?AiAU\>n? .e>y?rAAU\>p? >}?aUAAޘAU\>r?=H?xA(AU\>Kr?Fz=?ȔOh@@AU\>As?:=?EO@AU\>As??}@AU\>As? }\?3zrq?AU\>As?|{\6?8˝3XAU\>As??JͭAUs>.s?|6?iupAAs>.s?|\6?Q3XhAAs>.s?j=?ˮq?pAAs>.s?}_6?g@pAAs>.s?:=?0O@hAA…^>8r?|Ez=?;Dh@ A*Vw,>r?=H?XzA(A.l¸>p?>}?XVUAAݘAO>n?}-e>y? rAxAXYk>Di?2>ck?:AiA1u>c?-"?E?qk[A0Aj¤>k\?S??sK0AsAux> S?"i?,>rATA^u=.H?; r?v>PƷAX4A`[¹Y=%??5v? >8TAAB.Z=48?x?m>ʳaAAb0=5?v~? =r@" A@,=((??Uh_ A` @d\=?? 5?3 A@ @ʜ„=@??hH6 T3 A°=2??.=$ A# z=>?!6 AD=>6?40<Ԛ2 A|=x>?W^<052`APRko<=ʨ>?9:ɍ2jxA8f=> ?Z2rgApjW0Vd={>?_0$BA0qP j=q>?7Aā *=Ngi>~?XŸ޿4 A!6z=?>s?eK4JcAH+W=\>ɲS?r}ޑzߵA‚=P=2?VJQRʩAܖAz==l>bc@mAwFI9>1>[ʤmAϫ L-9 >t> ?ͯHRʩAXDϙ ý78%>e?⾞5rߵA8 Û{=?>ag?>u#[ʾJcAHQ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJIKLMNOPQRSTUTVTWRXPYNZL[I[G\E]C^A_?`=a;b9c7d5e3f1g/h-i+j)k'l%m#n!opqrstuvwx y z {|}~~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVV TAIL.JPG>>>dz???dzdz>1?߅>7R>D4ܼ B*PVf?W?_C??[XxCBP>߅>J?_]L> ȽԼ B1?߅>>,?HeWJܼ B*P>߅>C:_>F\?fԼ BbUH?W?2>4?Vu0?\xCB bUH?W?K?->fſxCB Vf?W?Rվk6RqlB= B)P>߅>E J>?$=ؼ BVf?W?cC5%H2D=CBObUH?W?C2cu?*gk>XW=CB Vf?W?ݔ>O\?^xƳ?CBObUH?W?f>?G?nM ?Z?CB >߅>l>U>;d@ؼ B1?߅>?G"H@ B)PA ?/=io#?A$@@iAvA ?4_7>s9?_W$S@[Av>1߃>7r?ޞA@̤ Bjp1?1߃>?@;E?Ⱦy@Ф B)> >摾Q>}rI? B:YC?SX?3ɒev\=?B_;J?X?}?􌱽2߽w@{B@f á'g?X?f>T:d" @{BPbIk?0e?x?)=P,S>@Bae?̿q?z?uW>,?jBRÞ5?̿q?Ts?4s>=p@jBÝ %?0e?Tt?#}>F+>T @B·>*=a[?b@ؾ7伖@P{A\e¡'g?X?ٯyc¾ yBPYC?SX?j=#)W CB> > ??  B:p1?1߃>}*,H{Ф B)>1߃>p~⻈=ӓeФ BjA ?4_7>P`ƾkݫbЇ[AvA ?/=շZVPs8iAv¶>*=Qp'otV|r8{A\e %?0e?r3zSH>ja=lF B=4_7>9Uz3>>[A]}c=/=GCv>r?Ѝ(iAߗ•!=*=A_:ZlF>X(?({A! e=}%=u>D_?տA<)=dV s>x>|u?78XA0 e=}%=>>a??A<)=>o>b?@`?8XA0}c=/=H?fph>T+?ؖ@(iAߗ•!=*=d?{>>QI@({A!=4_7>2aB?=>? +@[A]ɉ=N>>Α>?ѥ>{mp???˿`DAܙ>F'?p?K9??4:ΤBڑ8?&}? DQ?S>,B8?&}?)?jD?1>M'?B>F'?p?>Q*?i?J4?ΤBڑIj?&}?\%?4?_1VX"?B.k6q?p?F>1>s\-? ΤBYIj?&}?X&?6義(B.k6q?p?3QTz2b["2ΤBYe?̿q?fWz>yjBRbIk?0e?Y?|К=ԙBa_;J?X?4i/wEhfzB@f Þ5?̿q?fwK>,<jB%0   !"!#!$%$&$'()*+,-.-//0/+-+0)1'1&2%23242515055466789:;<<<<!<%=38364=8=:< WINGTOP.JPG>>>dz???dzdzv|S>>%k ??ʊ˜1:b¶}S>i*>߾a!E>kcs>:2?f-?[|]|:bŠ|S>F=;'*?:ʊ_zŸ0>JN=߇r?E>m_rZ|8 º->Ń9w_=V?)8 hy>%y_e5 8 ¶}S>^6=ʾ^>uanʊ辞H2” K?i*>>a!E%?k ??ƉB1kcs:2?f-?kA]|E_rkA8 #?Ń9r_ȽV?"8 DvAht%?%Is>y_eB8 ” K?^6=>^>ua@ƉB辞J2p>%>:Hςx? u{^{>F>,>#=l`|ޮ>F>-7?x=Y~Y°͚ni<%>%Gv?pg<0^hU:F>}f>Ql莟T<95->ߠe$>>91=p,ߣ!;u=B>@ ?A[>ػ͛='N>cx?k=-'@@Ӗ›JB^>K">`ʟݐweZ@>m>% ؟U<'܌>2R3#?>7r¹~=>޽*7}?=?8\wJ.=-p>40ı>?}0ݟ _=y>T#レ $??iˆ@?m=>kM#??s*hs 21 >P̫>~sz?/q+>G°xABp>%>A+>wA?;.HTP$H >_>*>J?(>>>au>VkB?!ӥ8*/>z>?i?1¸ \ °>>g;'Vx?">lTo^L>@>)uW>O:?Mhl>>0 >d?i8ƞ?>HU?!T?>o]XʞqZݳ>s?3@k>@j?UO°Ԟ >;?/?>LAE>L?J-y?$=ӏi&>@b?*UU>@>: 5(8@|>?mA͸?ޣn>#-+ A=>z(?#|?D8=. hiA6O>g+?mc>O>C$xz@A>V?^L?<>b@0RBd>ai?|?MkE=n8:B>[`l?zB?>=SByb>:y?ww?G=XBM>Z|?OO">KA?_HnBk>?P6>]?YơH()Bu>?{`?Ph©B{>?;9@|?P©Bp>?X)u|?< >Җ)B>F>O:`#=lX)>%>G<ςx? um侰{^ŽH(?F>/6?:L=Z~KGB͚‚Dy?%>O>Gv?pgѳB^O?F>f}>f>Il0B؎?5->Še?>>ț1=}Bh,ߣt~?u=B>@? ?\B[>@BȻ͛3u?'N>c>x?=B(@Ӗ£|?n^>L^?>!>BHʟݐ¢z?s|>Z?~>d> B؟jx?'܌>R3? #?>aBro?>3='7}?=BB>8\w*t?-p>z4?ı>?_Bݟ_]i?y>[#> $??SIB>#?^?]BXs21\?P̫>~=sz?q+>BxAB±_?%>C>)>A?%B8TL$•\?_>8>1>J?B >|NY?>a?U>fkB? JB8*S?z>>M??B \ :9?>;>Vx?">7QBoL?@>9?V>j:?7Bp??>0? >d?SfB0ƞ;?HU?!?[?>_]ZBPʞqZ7?s? @?>Ij?LBԞ \3?;? /??v>:>BE9*?L?+J>#y?%=RnBӏi¤0?@b?*U?Ȩ>?>2B08@ey.??nA??n>*B+ A%?z(?,> |?D8=B`iA1,?g+?m?p>O>r1!Bpz@A8$?V?ĸ?{L?>PBH0RB`?ai?>|?kE=˸An8:Bqg?[`l?zB??>ASB?:y?w>w?VG=[УAXB?Z|?OO?^>YA?ֲA_HnBj??P>H>]?㡛A@()B|??>{`?s,Ah©B>?7?|?P©B)>?zY)oҖ)B5*<>Wd?>ar}/ve?#?ޯ6CO>i*>0C>}>=d? >M݄>,u Z8=7t?=l>L0D˜ƞr“uN>朝=r{?=,xs&G*>]=D>.)e˜,Vp;N==<)?NDb¸T5*eNkB=?i*>}/?%e??#?Bޯ¯y?>=Wd?>2nB/C|=d >M݄>BuL0D]Bƞr›bL?朝=>.)e輜B,VJs?==)>?QD^BT¯y?f=C >?{?2nBDL}?%=>\ ?;FB=?B=^?}>NBkB IH  !"#$%$&$'$($)*+*,-.-/01234546472707-*$89:;<;=;>?@?A?BCDCECFGHGIGJGKLMLNLOLPLQRSRTUVUWXYZ[\]\^\_Z_X_U9R9L9G9C;?`a`bcdefeghihjhah`ecklmnopqprstsuskslpn HEATSHLD.JPG>>>dz???dzdz|S>>%k ??ʊ˜1:bŠ|S>F=;'*?:ʊ_z¶}S>i*>߾a!E>#kђ.a>ʊXZ:bŸ0>>Ҫ?LF?Z|h]:bŸ0>>kcs>:2?f-?[|]|:bŸ0>JN=߇r?E>m_rZ|8 Ÿ0>JN=W>5r_`Z|CE>&,1 ?nuQb0ɪdº->Ń9w_=V?)8 hy>%y_e5 8 ¾>@"<[)L H¶}S>^6=ʾ^>uanʊ辞H2¦NS> 5=f@i ˪CŠ|S>F=*Xjh7ʊ,z K?F=;?'*?$ƉB_| K?>%?k ??ƉB1>a!E#k?ђ:a>ƉBXZѪLF?kAh]kcs:2?f-?kA]|E_rkA8 ±?JN=W߾5r_`kA_?&,1 :uQAɪf#?Ń9r_ȽV?"8 DvAht%?%Is>y_eB8 !w%?@"<[)>LBH” K?^6=>^>ua@ƉB辞J2X,K? 5=f?iۉB˪C K?F=0X>jh7ƉB,|{>F>,>#=l`Q>pm>~[g>|ޮ>F>-7?x=Y~Y°͚;>pm>ٞ*)NӴ°>hU:F>}f>Ql莟΍:pm>i}9E ex>T<95->ߠe$>>91=p,ߣ@->W+EѺ>_¸e:֣!;u=B>@ ?A[>ػ͛H;UB>bľ^>Q8ZۛJB^>K">`ʟݐe?<-^>s`Hľr>/KxӐweZ@>m>% ؟:<|>0\mľ> >2U<'܌>2R3#?>7r±w<>1OȾzD>@5rJ.=-p>40ı>?}0ݟ _w-=>r'_>m9\^°=>̵ &2?U¨Q?=y>T#レ $??iˆ@?m=>kM#??s*hs 21¦=ƶ>| þ{lA?5Ȣ,1p>%>A+>wA?;.HTP$³=]>xEȾ~K?e8$H >_>*>J?(>£3 >u>fK?kجt>>au>VkB?!ӥ8*i>8>Y ci@?sޥa/>z>?i?1¸ \ ߼/>>D?9>xº^L>@>)uW>O:?MhBL>Y^>@!b?!¸%hp\>i>k$жTM-?jOl>>0 >d?i8ƞl->sa?hE Z?7]KY?>HU?!T?>o]XʞqZݳ>s?3@k>@j?UO°Ԟ >C?̑- 8q>OˆA >;?/?>LAE~t>?QP溾>UrA8.C&>@b?*UU>@>: 5(8@>j?2^P>H5]:@|>?mA͸?ޣn>#-+ AKe>?FGG0qjN>O-( A6O>g+?mc>O>C$xz@A:7>+?FK.>o$A>V?nnfy>60`RB>V?^L?<>b@0RB>[`l?zB?>=SB>dl?,vN ZBM>Z|?OO">KA?_HnB5>^|?r(1>SжTuBu>?{`?Ph©Bb>??ָmKAi?͗hPީB{>?;9@|?P©BQ>?9hP=~?P PީBk>?"&1n?]ơ)Bp>?R\zU>(D)Byb>:y?]C3U=<>jXBd>ai? 7ov{dg=訵8:BW>L-=?sCz2^=QB>L?Ty=Ci>wp>yĽz= >X#=>0zdq'>/M_^=>IChz=uPҹni<%>gŽwP+n<¸}^p>%>┼urR^Hp>pm>[9h/>>F>O:`#=lXŽH(?F>/6?:L=Z~KGB͚‡P?pm>*:*N+B>O?F>f}>f>Il0B؎j?pm>f}9?PE KPBh>?5->Še?>>ț1=}Bh,ߣͷ?->B+E?>EBe:֣t~?u=B>@? ?\B[>@BȻ͛w~?UB>b? ľK^>3VB(ZÛ£|?n^>L^?>!>BHʟݐ5|?-^>W`?ľr>BKxӐ¢z?s|>Z?~>d> B؟z?|>V\?nmľź>B>2jx?'܌>R3? #?>aBr x?>dO?<ȾD>tB05r*t?-p>z4?ı>?_Bݟ_t?>?q' >SB8\^i?>?&2??UBQ?]i?y>[#> $??SIB>#?^?]BXs21–d?ƶ>( ?7þIlA?ͬB,1±_?%>C>)>A?%B8TL$6_?]>x>FȾ~K?KB$•\?_>8>1>J?B >|\?u>>K?SBجpNY?>a?U>fkB? JB8*rY?8>Y ?i@?[UBaS?z>>M??B \ ”S?> ?j?BxL?@>9?V>j:?7BpL?Y^>@?"A?B%hp ??i>V$?]ѶKM-? gBO??>0? >d?SfB0ƞ;?sa?qE?e `?~ZBKY;?HU?!?[?>_]ZBPʞqZ7?s? @?>Ij?LBԞ s7?C?-?7>cLBA \3?;? /??v>:>BE3??%Q?庾>`>B0.C¤0?@b?*U?Ȩ>?>2B08@ϯ0?j?#^?W>62B]:@ey.??nA??n>*B+ A'.??6GG?*0jN><*B0 A1,?g+?m?p>O>r1!Bpz@A/,?+?F?nK.>]!BAD$?V?mn?Hfy>|B8`RB8$?V?ĸ?{L?>PBH0RBqg?[`l?zB??>ASBxs?dl?uK*A ZB?Z|?OO?^>YA?ֲA_HnB?^|?q(?>+/AжTuB|??>{`?s,Ah©B??ָ>mKAi?[sA`PީB>?7?|?P©BHp>?ﹷP=~?/X PީBj??">h'1n?㡛A)B)>?Ǜ<\zAU>o D)B?:y?)?e3U-<>SУAjXB`?ai? 7>sv{g=˸Aਵ8:B)>%>8z.3^=|AQB9*?L?T>y=OnBCi a:?wp>y>ƽza= >UB#Dy?%>g=wZ+nӳB}^q?>C>dz}=[BHҹ`?>Q=5z q'>BM92<9i*>}/ve?#?ޯ@+`>N˾q&zzb?[(6CO>i*>0C>}!'/*`_G>ar5X?%yXR+`>%q?[& >㦌ˆ56CO> Z8=7t?=l>L0D˜ƞrJrO>Q7=J(? oM㦌ˆêxG*>]=D>.)e˜,V>*>j\=.,GwwKŝˆjp;N==<)?NDb¸T†N=읧=4;/ I7g. <%=ξ ?;J˜<;=8=Ws`¸92<9B=^x>eNkB@B=Gf [8B5**=M}zGS(ˆW“uN>朝=G>q o,x&“uN>>?Nf1?,/N>c'zzb?+B =?i*>}/?%e??#?Bޯ3/L?i*>/C|.'/>*`_G>2nB9%q[& >B53/L? Z8=7t=l>L0D]Bƞro#L?Q7=J( oMBêxnU?]=D>>.)e輜B,V|pU?j\=.,>GtwK`BjJs?==)>?QD^BT¸s?읧=4>G& IcB.}?%=>\ ?;FB­}?;=8?vVC\B=?B=^?}>NBkB?B=nG? +B0B¯y?f=m=e|.2nB@DLT?*=M=}zG#$BW›bL?朝=Gq oBp&›bL?>Nf1?B?@A@BCDEFGHIJKJLMLNOPQRSTSUVWVXSXQYOZLZKZI[G[E[C\@\>\=\;]9]7]5]3]0^/^-^+^)^'^%_#_!`]^]_\`[`Z`YWXabacdefghijklmnopqrqstsuvwxyz{|}~dadfhjlnprsvxz|~ SM_ENG.JPG>>>dz???dzdz,64>i|?߂??92t@LN@b©>h|?U0Rbn?i|?ˉڷOwAb? C?ěCO?2>@ A0{B?P?B8TW?xL QjA??P?c;?*yAkA?m ?)K&I? >fAYAY….G?P?f<:?(D0A٬I?m ?$1@w?9,>MAYcJ?P?< }?> k'AL?m ?0=\{?{_*>zHAYsM?P?Ṭ>m?CgzOA¤4P?m ?tn>,*s? >7|XAYN?>r=x{?5>чA /R?>&ܯ>m?!>VwADcT?m ?>(c?>ffAYPW?P?> ?Vr,g?hA$Y?m ??%U?ƨ>KAY=T\?d>s?kY?#>WPAq2x?P?%?^'?Ǿ6XȕA©>h|?Y?0frAb,64>i|??42 gA@LN@bn?i|?漍Z?BA`'?i|?N?>׷OWBAb? C?C?c?2> BA0{B?P?{7T=W?hL FqAjA??P?>G?*AyAkA?m ?8K?&I?>1AAYat1?&⥕ApA(F?m ?AY>h?׸'>֓AAY….G?P?><>:?(/dA0A٬I?m ?'1@>w?:,>AMAYcJ?P? }?>A'AL?m ?0\{?_*> AHAYsM?P?Ṿm?ClAOA¤4P?m ?wn,*s? >`nAXAYN?>rx{?5>&AA /R?>%ܯm?!>|rAwADcT?m ?ܾ'c?>9YAAYPW?P?Ⱦ+ ?0r,1AhA$Y?m ?#U?ƨ>7>AAY=T\?d>skY?#>IAPAq2x?P?%['?Ǿ`?XȕAzf?Q=ѾG?I>4AhAKc?Q=aN? ?hCAAId? >eRrM?>7AЉAbH¾5a? >/Ԓ>q_?/>GA(AbH _?iK>6uW?b>l&EAxA0ݚ_Z?iK>GEod?g>XA!A0ݚsx?A=.<-?[>a @A"ij?X=Y?(?d.A7A6I(y?X='Ӿ>2O?@A6u?=GQh_>q?/AP׌A!|?=kj=)t==s?AAšt?=Z =_`>y?{DAAz?=ɣ=p=5~?[6rA_sA{>=>j6z?A`U@qȍ>=>>+nm{?6A@>=`>餺ey?HA @>>=v>=Xv?}A`@> X=(>=a?BOA A6> X=Ʈ> ф>X?jAЇA6D> X=Af>3>2d?<A^1A6Sgb?X=ޚ>>]?jwAA6^c?X=i\>>y^?FZAdA6¥d?X=[=f ?U?0PAIA6Gf?X=-sc?B#M?BFAxA6h?X==?9@R?Ѣ;A@A6Wa?Q=v)I??OAvA5c_?A==t;?[,?ZA0oAں]?A=Ex>Hg2?,?=fAïA\?A=n>f?7?sAx1AY?A=+>H ?՞9?APuAV>==U?fs>_/?osA?A¢C>9=?q>`6?/A-AªA>9=e)?3>je2?APA A[g>9=؊>?=P(?WmA`A > X=?=gܘQ?A 6A6 > X=) ?ߐѽΜT?A,@6{> X=? ?'Ǔ@I?=Ag@6>W=?$2?AI@6>I=ɿH?3㞍>A@@ >9=V/?q/ٶr>軯AO4@ˆ>m ?M?7W>^A@Y#>eK>a?š+> A@A0ݚrg>eK>c? ǹ,Ό>aA`A0ݚz<>>ac?Ƒ>ApUAbH>eK>#k?c)F>1A#A0ݚ0>>ͥc?7R}>AaAbH>eK>՛j?sA/AQ1A0ݚD>>Y?j9=!?AAbH^>eK>\Z?3}>_>s,A?A0ݚŸ>>ƇD?Ӳ>2?@=A;(AbH9w>gK>wG?u>>^AЙNA0ݚ>>1?B>On?Af6AbH:0>gK>g,?t ??qA aA0ݚ{>I=N? ᥽݅?tA Aqo>I=T?.fZ?8A@`@”n^? >v_?>UA:AbH™+\? >=kV?{D ?Ž`A(sAbH+Z? >*>C?(?lAAbH0 X? >>1?&{?{AkAbHU? >>#??wA8AbHI?iK>g?0?C?0r?):D?>MAqAqI?d>>v^?.>tAAqWN?iK>XL>ВH?-*>zAȼA0ݚL1Q?iK>iQm> Z?ou>aAA0ݚS?iK>|=L;Fi?>uAhA0ݚV?iK>`.j?>hAA0ݚZW?d>Rug?IL>\`_AAq‚lS?d>\n)[q? t>pApgAq–4P?d>-E v?)d>MAAq9M?d>+^>n?L> 'AxAq’K?>WR>9v?;>AeAmH?>Dw>{f?Xc:>aALA¹C?>d?BK?4>AA>c>B? 7?>ApoAqa~>c>F^?P]>Ֆ>*AZAq¹>c>^o?d>E<> >A IAq>c>w?}>A0+;AqWj>c>o? CR>Ap4,Aq¹>>"q?͕ >A-A›y>>:{?s>/>$3A0=AIm>>o*v?XU>M7>A%MAd>>;f?P>1t7>#lA ^A@3?>9oJ?5?o2>AsA ,?m ?|mS? ?d>wA|AYE>m ?3h?V>%>CeB cAY&>m ?w?C>)>B@OAY*>m ?{?5N'>_B=AY}>m ?Tm?ͮg>QB`+AYY> C?ҙl?F+>,J B)A0U> C?vz?LͽF9> BO?A0Y> C?ow?q->>>m BSTA0F> C?Wi? K><>U BkA0`?i|?J3e?>jBuAb[>i|?Np?0=hSB@[Ab°>i|?y?ә::>BpBAb²a>i|??u2gOBB)Ab¾d>i|?7?ܾy0 B @bk%> C?RT?8^ L>k%BC@0 _?iK>6>uW?b>DRxA0ݚId? >fR?tM?>EЉAbHsx?A=.?<-?I>Azf?Q=>G?I>]BhAKc?Q=a>N? ?@mQA¾5a? >1Ԓ>?q_?/>U(AbH_Z?iK>?E>rd?f>kHf!A0ݚZW?d>N>vg?EL>6!mAq‚lS?d>gn>([q? t>gT~pgAq–4P?d>%E =v?+d>Aq9M?d>+^n?M>xAq’K?>\R9v?;>|eAmH?>Iwɾ|f?Pc:>ALA¹C?>eBK?4>NA@3?>?oJ5?y2>sA ,?m ?mS ?d>|AYE>m ?9h:>%>xcAYF> C?WiJ><>  kA0`?i|?O3e]>jRpuAb²a>i|?Ou2gOE€)Ab[>i|?Np1=cSG0[Ab°>i|?y::>bpBAbU> C?vzvLͽF9>O?A0Y> C?sw->k>>STA0&>m ?wC>)>0OAYIm>>p*vXU>G7>f%MAd>>Lf >t7>L ^Aa~>c> G^]>Ֆ> ZAq>c>B%7?> poAqiGE?d>x&:D?~>qAqI?d>ɾv^?.>TAqWN?iK>RLþВH?1*>lȼA0ݚL1Q?iK>^Qm Z?pu>ΡA0ݚS?iK>9ȁhA0ݚV?iK>`>0j?>uA0ݚ”n^? >d>_?>b:AbHWa?Q= v=)I??]vAGf?X=>s=c?B#M?]TxA6h?X==?7@R?cI@A6"ij?X=Y>?(?8<7A6I(y?X=1>^>OO?CA6u?=WQ>_>q?ni=P׌A!|?=|l==fm==s?%Ašt?=hZ `>y?R_RAz?=ȣ)p=9~?2_sA{>=j6z? `U@qȍ>=U>nm{?a@>=`2fy?b @>>= v=Xv?^`@> X=*꾳=a?/ A6> X=ф>X?fKЇA6D> X==fu3>2d?^1A6Sgb?X=zޚ>]?蕂A6^c?X=p\>{^?UhdA6¥d?X=^f ?U?]IA65c_?A=ʽt;?\,?h0oA™+\? >kV?zD ?~n(sAbH+Z? >-C?(?zAbH0 X? >ُ¾1?({?fckAbHU? >#??W8AbHI?iK>k0?C?1A0ݚ:0>gK>g,| ??Q aA0ݚ9w>gK>Gu>ߜ>ЙNA0ݚ^>eK>\Z}>_> ?A0ݚ¹>c>fod><<>r IAq>c>w}> +;Aq›y>>6{cs>/> =A*>m ? {?'>#=AY}>m ?Tmͮc>#`+AYY> C?ؙlnF+>_ )A0k%> C?RT2^ L>€C@0¾d>i|?1ܾy0  @bˆ>m ?M=W>@Y#>eK>aƚ+>@A0ݚ¹>>$q͕ >w-AWj>c>o vCR>xwp4,Aq>eK>kc"F>#A0ݚ>eK>֛jAQ1A0ݚD>>Y9=!?2AbHŸ>>ևD>2?;(AbH>>1YB>]n? f6AbHV>==UUs>e/?S?AY?A=ܾE ?ܞ9?gPuA\?A=nf? 7?ǀx1Aں]?A=PxFg2?,?osïA¢C>9=p>`6?-AªA>9=e)>le2?XPA A[g>9=؊>\=P(?M`A{>I=!NU⥽΅?2U A0>>ӥcW8!}>kaAbHz<>>ac Ǒ>8pUAbHrg>eK>c)ǹ)Ό>A`A0ݚ > X=mޘQ?$ 6A6 > X=) ѽĜT?,@6qo>I=TfZ?@`@>I=ĿH3О>@@ >9=[/p/r>OO4@>W=$2?{I@6{> X=? :ǓFI?5g@6 #$x!,uY$l   !"#$%$&'&(&)%)*)+(+,+-*./01232,2-04.4567898:;:<:=>?>@>A:B:C9D9E9F7F5F.F/EGDHCICJBKAL@M@N?O?P=Q<R;RSTUTTVTWTXYZ[\]^_`abaLaMaN_O]OcPcQdRdTdYd[c]1/1GeHfIgJhKiLjbjkjljmimhngofpe313p3q,q(qrprosntmtltut's(r$'$u"uvlvkwkxbx`y^z\{Z|X|W|}|~{zyxww v"~}WVV openuniverse-1.0beta3.1.orig/3dmodels/ss5.bmf0000644000175000017500000034347107045144437020757 0ustar paulliupaulliu STATION.JPG2?2?2?dz2?2?2?dzdzt?\r?APB C`?]s?>APBo> C?r?APB1tCZ.?fs?APB C`?]s??>A9Bo> Ct?\r??A9B CZ.?es??A9B C?r?? A9B1tC%?j&o?<3BPB;C&?p?*4BPBdCjH$?o?OL,BPBTCJ$?p?-BPBC&?p??*4B9BdC%?j&o??<3B9B;CJ$?p??-B9BCjH$?o??OL,B9BTC)S?LR?3BPB!BS?S?_BPB BTR?S?BPB*B=Bn?'??_C9B/7y???ŐC9B:hAHx?{??\C9BVA?y?ϋ?WCNBMABz?3?SCNBaĨA y??2CNBaĵAz?,8?0 CNB9ABz?3??SC9BcĨA?y?ϋ??WC9BMAz?,8??0 C9B9A y???2C9BcĵAjdz?Z?D{COB>@j{?g?COBM2@Pz??cCOBAW{??ǛCOB[Aj{?g??C9BO2@kdz?Z??D{C9B>@W{???ǛC9B[APz???cC9BA\r?W>CNB`\]s?d>] CNB1r?b>UCNBds?o> CNB9]s?d>?] C9B2\r?W>?C9B_\ds?o>? C9B9r?b>?UC9Bh&o?]>CNBJ]3­p? ޳>DCNB4œo?Pn>BCNBl,ªp?ȶ>sCNB-­p? ޳>?DC9B4h&o?]>?C9BJ]3ªp?ȶ>?sC9B-œo?Pn>?BC9Bl,JR?zV3>BNB_´S?s0>BNBoS?7>vBNBI¾T?T4>1BNB´S?s0>?B9BoJR?xV3>?B9B]¾T?T4>?1B9BS?7>?vB9BG4)Q?t,>BNBƞQ?0)>MBNBG_ CR?1>[BNB˜R?H.>7BNBQ?0)>?LB9BG_4)Q?t,>?B9BИR?H.>?7B9B CR?1>?ZB9BrO?Z&>.ҼBNBp%P?Y#>{BNB9¼P?*>~BNBEQ?Ҋ'>(BNB%P?Y#>?{B9B9rO?Z&>?-ҼB9BpEQ?Ҋ'>?(B9B½P?*>?~B9B#]2?=3HoBNB.p2?$\=gqBNBMt3?=uBNB$14?,=swBNBԶp2?$\=?gqB9BM#]2?=?3HoB9B.14?,=?swB9BԶt3?=?uB9B$'?Ë=;BNB0g'? =g=BNB{(?\=BBNBìR)?E='FDBNB '? =?g=B9B'?Ë=?;B9B1gíR)?E=?'FDB9B{(?\=?BB9B?Н+=@NBl >&?X7=\@NB ,?0,=>@NBFU N?@t=@NB >&?X7=?Z@9B ?ȝ+=?@9Bl N?@t=?@9B -?(,=?<@9BFU hy?> rCNBVZz?6>CNBdĴy?>_CNB7Մz?>CNBEz?6>?C9Bbiy?>FO6?31 rC9BTZz?>Q/6?ÂC9BCĴy?>M6?5<_C9B5Մvo?>ՈCNB`6q qp?૙>åCNBZ5sB"p?P>HCNBXjq?hz>dCNBLl qp?૙>?åC9BZ5svo?>?ՈC9B`6qq?hz>?dC9BLlC"p?P>?HC9BXjvA?0=BNBW7B?=ݜBNB*EdB?$2=BNB>OC?I=BNBULB?=?ݜB9B*EvA?0=?B9BW7OC?I=?B9BULdB?$2=?B9B>{`??A=ϗBNBG??C=wޗBNB4\@?=BNB^09A?=)BNB>s??C=?wޗB9B4\{`??A=?ϗB9BG09A?=?)B9B>s@?=?B9B^Ša?p<UANB93 ?Pe< ,ANBe?<*ANBç?<@ANB  ?Pe<? ,A9BeÊa?p<?UA9B93è?<?@A9B ?<?*A9Bÿ?<6v-67>_ANB$?<5ϧ"ANBå{? i<5UbƵANBd? <oANBۘ$?< ?N6"A9B?<?ڣ5>_A9B? <䤵?LW5oA9Bۘå{? i< ?rA9Bd?< WANBm&2?@<54 ʵ˧ANB)[?p*Z=TNBb>'J=wNBs' `>T=YNB5]m>D=*2NB b>'J=?w9Bs' U>*Z=?T9Bn>D=?*29B `>T=?Y9B5]Z>HɆ=3OB$ ޳>H}=b5OBMNn>=,OBXÎȶ>p>v=1s.OB ޳>H}=?b59BM[>HɆ=?39B$Îȶ>p>v=?1s.9BNn>=?,9BXvV3>4>OB=°s0>t1>ҭOB%7>M0>p]OB/R4>Lc->>OBB²s0>t1>?ӭ9B%vV3>4>?9B=R4>Lc->??9BB7>M0>?q]9B/p,>tY;>OB,)>p~8>pOBw®1>6>QOBh.>4>,OB5G,)>p~8>?q9Bwp,>tY;>?9Bj.>4>?-9B5G®1>6>?Q9BZ&>2B>خOBXY#>g?>xOBы¸*>R=>0OB㎿Ί'>:>OB8Y#>g?>?x9BыZ&>2B>?ٮ9BXЊ'>:>?9B8¸*>R=>?09B㎿¬=D>s53WYPBho\=B`>#s53PBIq´=<>s53MPB u(=>?s53PBx \=B`>s?359BIq¬=D>&s?35WY9Bho(=>s?359Bx¸=<>[s?35M9B u˜Ë=`>EPB:;=l=>PBB=T=->PBpBE=Y>" PB~fD=k=>?9BB=˜Ë=`>?E9B:;E=Y>?" 9B~fDX=->?9BpB+=>[35 PBnP7=>ڙ5hi PB$ ,=ʺ>5`ٍZt PB 8t=>]Q69)4( PBX7=>? 9B"ȝ+=>?95 9Bl8t=>Ƶ?.m5( 9B(,=ʺ>X?f6Zt 9B }>E<RNB#z4>`<NB'>Y<ͅNBuØ><NB4>`<?9B'~>E<?R9B#zØ><?9B>Y<?ͅ9Buò>=qNBޫ>`x=sNB٭P>}=kNB'Pfz>n=mNBmޫ>`x=?s9B٭ò>=?q9Bfz>n=?m9BmP>}=?k9B'P(=%z>uOB9˜=Hw>SOB 2=t>|OB1I=&r>~OBœ=Hw>?S9B,=%z>?u9B9I=&r>?~9B 2=t>?|9B1A=,>>OBHA=+>OB„=>}>OBř”={>gOBT HA=+>?9BA=,>>?9B˜={>?g9BT ˆ=>}>?9Bř`<<>MRPB0e< >PBlPB,PB@e< >?9Bl`<<>?MR9B?,9B?9B<>PB<> PBEi<>PBn ` <*>PBR<>? 9BE<>?9Bp <*>?9BQi<>?9Bm `<>EPB0<>=zPB{ p<(>\PB{ <Ύ>Z4PB70<>?=z9Bz p<>?E9B<Ύ>?Z49B6p<(>?\9Bz dnPB^О=PBRp޵<7>PBb<>PB\О?=9BRd?n9B^<>?9B\p޵<7>?9Bbp*Z=t?PBFA'J=a?F PB7AT=?I|PBAD=[.?/ PBuA'J=a?%6?hF 9B7Ax*Z=t?:6?Yb'9BGAD=[.?ϴ<6?qE/ 9BvAT=??I|9BA@Ɇ=%?CPB=3B8}=&?(lPBtB5B=kH$?lPB,B`>v=K$?PBR.B@}=&??(l9BvB5BDɆ=%??C9B?3Bh>v=K$??9BR.B=kH$??l9B,B4>)S?1PBXBp1>S?NPBBM0>VR?XPBBMBHc->>R?@PBBr1>S??N9BB4>)S??19BXBJc->>R??@9BBM0>VR??X9BBMBpY;>T?2PBBl~8>GU?PBBB6>S?PB{AB4>AxT?^PB{Bn~8>GU??9BBBrY;>T??29BB4>@xT??^9B{B6>S??9B{AB2B>hV? PBBf?>)W?ɾPBgBP=>\U? ͿPB B:>V?wPBBf?>)W??ɾ9BgB2B>hV?? 9BB:>V??w9BBP=>\U?? Ϳ9B BD>}j?oPB)IB@`>j?rPB{B:>\\i?YzvPBB>Hj?xPBB@`>j??r9B{BD>}j??o9B)IB>Hj??x9BB:>\\i??Zzv9BB^>n?W}o?>PBC*>(n?5CPBCY>n?DPB C<>}o??>9BC^>n??W<9B-~CY>n??D9B C+>(n??5C9BC>Eu?~PB C>Lv?rPB CȺ> 2u?jPBBl C>O8v?pPB C>Lv??r9B C>Eu??~9B C>O8v??p9B CȺ> 2u??l9BBl CDg?bۛPBReBDw>jh?H,PB%sBt>Nf?ZPB}lB"r>`g?@@PBPzBFw>jh??H,9B%sB%z>g??bۛ9BReB"r>`g??@@9BPzBt>Nf??Z9B}lB*>>Th?#PBuB+>ji?,PBB=}> h?XPBB{>h?}JPB9B+>ii??,9BB+>>Th??#9BuB{>h??}J9B9B=}> h??X9BB <>rx?LPB5JC>hty?VePB|CE7>D(x?uPBC>&*y?PB$C>hty??We9B|C <>rx??M9B5JC>&*y??9B$CF7>D(x??v9BC>x?PBC>y?m>PBC>Jx?PB{C(>?y?PBׯC>y??n>9BC>x??9BC(>?y??9BׯC>Jx?? 9B{C>?y?LPBi=C>Bz?PB%rC&> y?PBDC̎>z?yPBB,C>Bz??9B%rC>?y??M9Bi=C̎>z??y9BB,C&> y??9BDCI>ldz?!h˥6bAPBVCV/>j{?c Ƿ965QB%Cy7>Pz?!"Ď[6WQBɂC>W{?MQBٺCW/>j{??59B%CI>ldz??dA9BVC>W{??M9BٺCz7>Pz??W9BɂCt? ? C :A u?7 ?@ C CYA+v??u CڵA u?? Cˈ+Av?0 ?U C,A+v???u C}3ڵA%u?Bq??W> C}3±YAv?0 ??U C}3,A u??? C}3ˈ+AAu?>_ CރmoHv?D> CރVQu?|%>Nr CރWv?d>_ CރHv?D>? C|3£Au?>?_ C|3koWv?d>?_ C|3 VQu?|%>?Nr C|3£y?w ?CZAz? ?1C\Afy? ?kCwAz? ?4C0yAz? ??1C}3‘\Ay?w ??C}3ZAz? ??4C}31yAfy? ??kC}3“wAmz?>FCރt{?8 >WCރͨyz?F/>[Cރ_Z{?>kCރ\t{?8 >?WC|3£ͨmz?>?FC|3¹{?>?kC|3²\yz?F/>?[C|3_ZPz?{7>cCރfW{?>ǛCރ\ldz?I>D{Cރ _j{?X/>CރRW{?>?ǛC|3’\Pz?{7>?cC|3fj{?X/>?C|3Rldz?I>?D{C|3 _ ?`0=8A 7 ?X =H:AH ÆP ?Е2=VA 4h ?0="=WA 8 ?X =?H:A|3H ?`0=?8A|3 4h ?0="=?WA|3 ÆP ?Е2=?VA|3 Bq?-=uh AkF Î?h?= A} ?W/=)A% 0 ?H=*A3] Î?h?=? A|3} Bq?-=?th A|3kF 0 ?H=?*A|33] ?W/=?)A|3¦% >8+=Qg D>x=ß }%>*=ۗbz d>X}=ls E>x=? |3ß >8+=?Q|3²g e>X}=?l|3s }%>*=? ۗ|3bz w ?<XA ?p5<VZA9Ü ?<XvAè ?<wAH  ?p5<?UZA~39w ?<?XA~3è ?<?wA~3H Ý ?<?WvA~3ø><<4Z8 >o<kF/><$bo><rd9 >o<? |3kù><<?4|3Z><?rd|3G/><?$b|3o7>޵<Skç><MۣÜI>d<AXY/><<5'ç><?M|3ۣ7>޵<?S|3kY/><?>5|3'ÜI>d<?A|3Xa0=n>1 ؃u9h =>>h ؃7;ؕ2=^>  ؃V@="=.>> ؃zZXh =>>?h y3¨7;a0=n>?1 y3u9@="=.>?> y3yZX2=^>?  y3V-=>e ؃ x?= > ؃EW/=^ >D ؃*P=>I| ؃u+x?= >? y3E-=>?e y3 X=>?I| y3u+W/=^ >?D y3*@+=v?Ȇ ڃ O@x=?پ ڃ@*=?x ڃXؖ@h}=a? ڃi@x=??پ x3Š@H+=v??Ȇ x3!O@h}=`?? x3i@*=??x x3Yؖ@< >-"؃uY5<>X؃d[<[>؃v0<>^*؃Xx5<>?Xy3µd[< >?-"y3uY0<>?^*y3Ux?y3Ÿv<<7q?pڃk@o@@m>t?pj;փ( C>> u?(=փ_ C^>6t?(Xփ C.>u?KZփ5 C>> u??(=x3_ Cm>t??qj;x3( C.>u??KZx35 C^>6t??)Xx3 C>%u?փi] C >+v?=7փ C^ > u?. ,փ< C>v?Wf-փ1t C >+v??>7x3 C>%u??x3k] C>v??Xf-x33t C_ > u??/ ,x3¦< Cv?Au?l@փ~ Cq?Hv?@փ C?VQu?@փ` Ca?Wv?I@փq Cq?Hv??@x3 Cv?Au??l@x3°~ Ca?Wv??H@x3q C?VQu??@x3b C >y?Wf[փC>z?U]փPC>fy?xփ}C>z?pzփF"C>z??U]x3PC >y??Wf[x3C>z??pzx3H"C>fy??xx3C7q?mz?@փXCx?t{?ʧ@փiC?yz?ZZX@փmC?{?-Z@փ}Cx?t{??ʧ@x3iC7q?mz??@x3XC?{??*Z@x3}C?yz??WZX@x3mC?Pz?oAփɂC?W{?2AփٺCZ?ldz?H\@փVCg?j{?O@փ%C?W{??1Ax3ٺC?Pz??nAx3ɂCg?j{??O@x3%CZ?ldz??F\@x3VCl$?Uk?Tru\>\,B^DcBl$?Uk?1fr<8>\,B4cBm!?4}c?.,r->HK B:ӺB!?9c? q" ~> B/XBm!?4}c?rc.r:K>GK Bu&ӺB!?9c?sr(L;^L> B $XBl$?Uk?YTrs];>[,B /cBl$?Uk?burI#P>[,B2cBhc?"?Is?;2BT$Bk?%?:r?K=|Bj٨0BUk?n$?>D?M%B6-BFc? !?{oSh>jB": BJc?z!?;>J!r B/^!BUk?n$?8>ǃ6xyr%B`D-BIc?n"?% mS_B $#BIc?n"?% mS_Bj#BFc? !?p:G>nBY~&‡ BJc?z!?D>]:Wr B $^!BUk?n$?E>u \%B2-BUk?n$?8>ryr%B /-Bhc?"?P\sb7;2B0"'T$Bk?%?7rnK=|B2٨0BJx?ܩ)?C2+aFBk?h%?# C2»#2BWy?P1)?A3?b;C2»#DB<l?`$?RT>u;WHrLgC /٨.B;l?`$?}> E rLgC`D٨.BWy?P1)?>u>VE;C6#DBk?h%??# C6#2BJx?ܩ)??C6,aFBx? (?L>4rdC`DCBx? (?^>dq:"rdC /CBy?Z)?Dl?v>C`DGBy?Z)?Cl?GŽv>C /GB P=l$?lrsZDu-B P=l$?}ä;`rs0u-B=!?qbr;r/mk!B=m!?E(r: B=m!?F2r:rt&• B=!?ULm,L;tr² $lk!B P=l$?w];]Trs² /©u-B P=l$?g0ors‰2©u-Bк>hc?趻s?^I$X&B$͵>k?Kr?30fӺB@!>Uk? M?5~?S>>-2cBi>Fc?x?n>!:B@!>Uk?_r? ?nͤ>>-\DcB2$>Jc?q?ޣn>!//Bi>Fc?Ëy?S]$!V~&ªB!>Ic?S_>. % m$d?B!>Ic?R_>j & m $² $?B2$>Jc?$r?];{&>!² $/B@!>Uk?o_r?h^q;@Ϥ>?-³ /cB@!>Uk?L?-lrX>?-Š2cBк>hc?A7\sD$-"'X&B$͵>k?Kr(402ӺBo>Jx?@.!4Fˆ2C->k?i4D2Š27*C>Wy?xeE?t >DDˆ2ZCg><l?\Hr?o;?T>4.³ /`Cf><l?q?ּ7&>3.\D`C>x?r?G>\%C\DуC>Wy?3>?k??D227*Cn>Jx??F2C>x?ir?@K5;OJ>\%C± /уCr>y?vþDl?)G± /“Cr>y?vþDl?)G\DC%>P=dr?!sP=Tre\;>-dD5Lz>=0,r2:> &:׌j5>= qt,:~>Ƌ!/\xLz>=r%rI> y&׌j5>=sr(L^L>Ƌ!· $\xŽ%>P=[Tru]>-· /5Ž%>P=r?Ȅ`-Ž25T=к>~I>s?66^a$T=$͵>7>r?nKjL0 P=?!>gC>#5\?s6#-l=i>oS>]>j?": D=0$>;ZK!r?^/h8! P=?!>8ryr?s`D#-D=!>% m?o P_>!P³ $О#D=!>$ m?. R_>!PjϞ#l=i>V$>SËy?W~&’ H=0$>&];$r?^³ $i8! P=?!>GϤp\q;n_r?s³ /#- P=?!>E!\?sŠ2#-X=к>P>\sb76."'_a$X=$͵>7>rnK2L0"Ê24F°&=->M2Ê21€<>5y< _>bÊ2C <>iGa;r?ó / B=f>aK;: r?vó /L.¼=f>&pq?v`DL. <>U1'wջ9yr?`D Bp<>Y?1M,?b6C°&=->?M261Л?"66F3Cl9vþ`DuG3ClO=vþó /uG’Uk?%>)wk=_Ap%B<-’Uk?%>ɇ56 lr%BfD-9c?i5>b3;:r1hB/w!4}c?Kz>{zxq|Bx& k 9c?h5>n>5Lr1hB $w!’Uk?%>Ӻ>V r?%B2´-’Uk?%>lr%B /´-%?P==x= u2됾,0Bp׌ˆ"?P=Ki=)uuiA$B\ !?h=X?k:t B(:n$?P=H?k-B<5n$?P=_r?=n;ͤ>-BfD5z!?@=q?ԣ:n>!B/3 !?h=|g?o> pd:t B\~&®¢n"?<=S_>% mx~#Bp¢n"?<=S_>% mx~#B $z!?@=$r?]{&>!B $3n$?P=m_r?n\qEϤ>-B /5n$?P=HL<3-B25%?P=D+=u??܏,0B2׌ˆ"?P=%=`u?􆃾A$B3"'\ܩ)?<yEB2æh%?&=5G➴n1B28P1)?`<2WTmCB2C`$?=_Hr5l;/T,.B /bo`$?=q%,.BfDbo (?lcnCB:Cܩ)?ElUGB /•Z)?2AŽDlUGBdDÉg? ?9;j=:? B!J6A?? ?Ğ=?C125??qA?!%o?Cv%>g?qA?XǛ6?7i2? B%>?D|>h<:s?"𞾨CvA,g?D|>FS~$?)< B,?D|>5&]t6,< B!J6+?qA?ԙ=C12%>g?qA?Vs B!J6%>)X?D|>P%̾:b6[rB^+)X?qA?Ҿ0siB^&>)X?D|>O>cpBѼ+)X?qA?T̾Bc?}Cd>BѼ%>)X? ?> =NF~?B^B?P=Q>5N=:VnJ6ȀtS:Q>CĞ:=-2´tS:D|> "%j>or*P=D|>B=ě6?9i2Un„*S:qA?:s?!>rg'>P=qA?FS>~$?*S:qA?5&NѢrr?-2‹'>P=qA?]=u6,S:D|>ٙ-2_*P=D|>D>sVnJ6‡*V>qA?;%>?b>[r>˜^7'>V>D|>w>4si˜^²*V>qA?>Q>cp?ͼ/'>V>D|>W>Cc?Cdͼº*V>Q>> =[=PF~˜^ހt ?H=:?P=Hjl? J6+0 ?Q:?=Þ:jl?32¼qA?Q:o?j>I"%Ti>zqA?H=:i2?ś6?8=i>+0D|>Q: 𞾟:s?H=*<~$?FS>Sþ+0D|>Q:rrMѢ65&Sþ32¼E|>H=32¼qA?H=sK>pi> J6+0D|>V>=[r>b@%>Sþ^¶qA?V>3si{>i>^¶D|>V>cpQ>>Sþм¶qA?V>Cd>Cc?W>i>м¶ ?V>PF~?^=> =jl?^¶Q>g?:k=+;VʉJ6'^BQ>?=ÞJʉ-2ºCD|>?oj>!%<RþnCD|>g?7i2ƛ6?Z,Rþ'^BqA??#>:s?.nCqA?g?*'^BqA??rr?QѢ5&-2ºCqA?g?J6'^BD|>?= Rþ-2ºCE|>g?sALRþJ6'^BqA?)X?@[r>@b3%̾$i>^²BD|>)X?6siqҾXRþ^²BqA?)X?cp?O>0i>μ²BD|>)X?CdCc?W̾TRþμ²BQ>)X?PF~h=> Xʉ^²BD= ?J:?Un¢Bc?P: ?*Ǟ:?ê$Bn?Q:qA?T!%jo?_ ;B&>H=qA?b=Ǜ67i2?Unjw7B&>Q:D|>u:s"_ ;B+H=D|>FS>~$)+P:D|>6&NѢ>rrê$B:+D=D|>]=t6,?D=qA?R>s?Un¢B&>V>D|>M%>=b?8[r¾gBq+V>qA?>1si?¾gBy&>V>D|>>RcpcXBj+V>qA?W>AcCd>cXB&>V> ?? =qNF~?¾gBa?g?Q>z;l: BBt?Q>)Ǟ C$Bt?D|>!%Iś68i2 Bfw7B,?qA?<:s">C] ;B%>g?qA?FS~$*?qA?6&rr?C$B$>g?qA?z]t6,??D|>֙=?C$B,g?D|>Is? BB,)X?qA?@%̾>b?=[r>BgBE%>)X?D|>{Ҿ3si?BgB,)X?qA?Ocp?BcXBM%>)X?D|>U̾AcCdBcXB,)X?Q>> jPF~BgBցt Q>L=:QqʉB,0 Q>R:#Ǟ:ʉ$BB|>Q:oj$!%XSþ[ ;BB|>L=8i2ƛ6f=0Sþgw7B,0pA?Q:$>:s-,i>[ ;BpA?L=*|i>gw7B,0pA?R:sr?MѢ>5&`i>$BpA?L=B,0B|>R:?L=s?A>SþB,0pA?V>B[r>Ab?5%>i>gBB|>V>5si?q>SþgBpA?V>cp?R>i>cXBB|>V>CdBcW>SþcXB Q>V>PF~_> =ʉgB ?g?:?g;kl?B&^B ???ƞkl?$BCpA??o?j!%<j>a ;BCpA?g?8i2?ƛ6QLj>iw7B&^BB|>?!𞾟:sEg?*<~$FSQþiw7B&^BB|>?rrQѢ>5&g?$BCpA?g?s?Tj>B&^BB|>)X?8[r=b?J%̾QþgBBpA?)X?1si?Ҿ<j>gBBB|>)X?cpPQþcXBBpA?)X?ICd>Ccb̾0j>cXBB ?)X?OF~?? kl?gBB>3X?tYV*=@M2B?*>P>K ׾fDǽTKhq>3X?s~ֽ}=@KE?*>j? !Ռ|8=TK#Q@(8>n ?^Di>kM2[-Ab> ?;M>JM2¥5Aq>/?{ʾ?; ?妇N2[Ap>/?,>gc/?䦇[Aj(>a?%>/]?byGA> ?վx>G\?|~A:> ?yH>Mo?Wj`~yz"A:>?On_g?Qj`Awz"A>?Q\lFu? Ae(A0>{?t"̽̾:i?߿~%;BXA5>r?ޭHLz?FADG+A>?#n/YF>Hw? ~e(A6>r?nJn>>t?F~FG+Aw?r?{m=8l#@t?j?ADG+A]?a?>̾&a?tA~%;BxGADg?{?g=g;?-?>?"BWA ?!N? >&;?t?n3A"B Aj??j(>-?7?Xߕ@"BAd ?< ? M>0?q3?WA"BbAl ?c?=>X?ۣG?j+AMUBQAzi?& ???=[E(?2AMUBAj?j?=~?9=AMUBQ@2X?u?Z?(-?M9?Ě"BAh(>a? J;?&?^"BvGA>!N?Ὰ̾M?X6}%;B A> ?foH^?|AA>Iw? F>S?,5~eA(>P?Q H>@?J~2A>Iw?FFhM?(5AcA(>Q?"wV7?FA2A~>5?,(7n>E"?/~@b> ?PSi>K>J5A>Eg?+۳; a=M2?*>P>'(m0xTM2iq1,>>4g4a@KG>~I>t4B6K±R)>C>kK3A>Z?TKl2@s?Z?AKg2@j?j?e>5xͿ=AKQ@?C>YAK3?O>?òUAK$?~I>AK³Rc?>>UfJr7YAK+< ?6>2=?MܾɠAKXk?>A35AKG& ?/,> >:.AKGk?*> I>5Xn@K[\k?*>.{>Gn0:(n@O2Z\ S>>t<p0b9OտO2G0>>aڳ;+߿O2o >b>]; X6M2R>b>̾>SX6R>p>ec/(>E(>~>"w>V7L~>(>@H>P 0~>(>V7w".A>>mMCFMARb>>M̾ᾺJ~%;Bf46>>^tHfAh>>SF>MR7>>E\x>վf >:>Sg}~v"AvX>0>6i̾'̽ ~%;BEп;>j(>X?+"B*>Eg?-\;?B= "B΁?> S>NLac?}@"Bſ>k?R%?^>S"B@> S>XèU=hG|@MUBſ*>j?Ojx?S=TMUBQ@*>Q>OɾBg?W2TMUBwq)>D>?hMUB4>~I>??6MUBR$?~I>?AMUBR-,>> 5?.}@MUBG>6>U0?̾Ţ"BX 6>>ھp-?"Z"B͡>p>Z;?cܾ"BI>b> ;?8tX6"BRn>>7̾6㦇|%;B h(>;>;˾u`a|%;B>7>վxG\|Aď:> >dHoUj`A !:> >{v}>Tg[j` !>d>)ZF>u 3&0>>_>/j߿n 6>B>8H>y"Fp)>d>l1gFc'w A5&5>B>Uї$s FAr)w?B>u={>6tD?o)^?;>ә>>]tA^?;>>|;)tAO2[1?>{>6; mAO2& ?0,>?)w .AO2Gc?>#F?%YAO2+u? S>8:?-/AM2¸ſ!N?>?;BlAO2f4[1?>?>_/mA ?7>>p> +\@ ? >>H>AoV@ !? >`>BF$kV@A !?d>%R>W#@ZoY@A5& ?b>L->ʟ¾Xk3A|%;BR0>>>D뾼V?UO߿"Bq w?B>ڵ=4}F!zZ?Ar)?d>1>F>(wS@2&M>>Su.?3Ě"B>(8>PþG>}H--MUBΙM>> M ?S[ĚMUB2X?>1=0?8j?"BG]?;>׫>;h?SdʾtA"BZ1?>`>;?ZmA"B m ?(8>>-?*j+A"BΙj?>iD>? UTߕ@MUBd ?>>;?)2WAMUB͡zi?> ?-?%1A"BG N?>7t?;? nA"Bf4/?p>6?̾7ZcA|%;BH5?~>E"?n/(7@AP?(>@?HS (@AP?(>V7?w>"$@Iw?>gM?GF>, AR!N?>S?>̾lAf4 ?>^?pH>f`AfHw?>S?!F. AAR ?>D\?xվaAAj ?:>_g?n>OA ArX{?0>2j?>r_A2п{?0>+?۳;`佾AM2*пa?^?)?|;>NAM2eAj?j?UO?>AM2Q@{i?& ?~$??/AM2A< ?d ?+C?Ҁ>ɠAKºYA{i?& ?J@?(?/AKA& ?{i?X?2?/AKAn ?c?P>L-&?j+AM2¹QA/?[1?ž ?5;{>XcAM23fAa?^?]?>>!ҙ>NAeAr?x?#@t?:l>m=V)Aޱ>?r?6>Lz?ڭH>V)A'q?6>>t?MnnV)AA'?>Hw?TF*n/t&AA?a?j(>(a?̾݃NA|%;B- ?:>Mo?H|B AA{X?>u?lF>P\t&A ?{?0>-?R;?A"B_пj?Q>HN??ՕA"B{q; ?6>\:?7>3ˠAMUBXj?Q>J>f?dAMUB|q?P>< ?lW?jAMUB ?D>?YAMUB 4q?Z??AMUBX2@>>Z??TMUB]2@{i?>7>fuH>^|>>FS*5A\ (>~>W H@HA>>EF>dM,5\ *>Q>`g>O7pT"Bwq%8>n ?}I>,>hMUB[-A>d ?"c-?>Ţ"BYAb> ?0t;? >J"B5A;>^?"a̾N>+~%;BeA@>x?6t{u=+Aα>?@>6>yH,8+A'A>6>95t}>6v+v'd>>c'wgF>q1m(?;>j(>]>]ę-% >:>oH>d"nX d>>uF1Zl(A?>p>ž 5;{ʾM2F>'8>A>o0T-2-M2̙S>>Y/Y[OտKG>'8>J.<2-Kʙ0,>>Eo0ۉ@M2G;>j(>){;-M2%>Eg?0j>%G`=?A>x?3y`H>=+>? d>?(wF1>l(A6@ > ?CoH>"Ad^@d>?uF>i[>m(~<@ > ?xgy>ఞ>"~d^@6>? +\p>Az@>[1?6e̾?}%;B1fAn>/?pܾ;?g?⦇"B[A 6>< ?rǾ-?D?Z"BdA>{i?i? ?|@NUBAN>j?k?M?SMUBCA~>5?/@HR!?-A@>l?MvF>SY?M~P@7>?^'H>R>~z@>l?SFK?MAL@?k?w{?ĔAMUB@u?3X?;?´-?E<2A"B?a?^?&?;? J>NA"BeA{?Eg? :i?-̾,n=A|%;BƁ?q?x?z?ѳHR=V)AA>???Iw?&rF>;o/>t&A:@ ? ?'4o?H>=>A Ad^@??t?QSF-]>t&AA1@ ? ?Ug?Pj>B AAd^@ ?? +\?p>>`Az@/?[1?_/?>?YcA2fA ?!N?P>;?i3AM2 A4X?u?y=^-;?T?M2Ak?j?◀>D?Q?n@KGAk?& ?AKA u? S>38?|*zP=/AKµſ5?~>M!?H>/@@l?>KY?vFMࡻ@A\ ?7>R>)H^@AÏl?>C?F>Sޡ@\ S>u?ńZ?OտKAQ>j?c(\-)3?SM2GAEg?{?`=ٳ;+??M2\A ?!N?F>k>QS?j3A A5?P?E"?n>.(7?@2AP?5?/@?H>L!?&@@P?5?0(7? nE"?(@A@Hw?l?M? vFRY?. AAL@ N? ?M?̾/>nA|%;B5A ??^?/HR>aAAz@Iw?l?S?F>H?- AN@/?[1?0>xX?6>[cA"B.fA~c?n ?JI?;?I`>YA"B[-Azi?& ?N ?-?>2A"BAZ1?/??e̾6?mA~%;B[A? ?>p +\?@AA??=> H)4o?V@Axz"A ? ?>Lj>Ug?V@zz"A??!]>USF>t?W@~e(AEg?{?fH`=>M3j??ZAw?r?R=ѳH>z?T?~GG+A??*o/>!rFIw?]@Ae(Ak(>a?;)?cM2zGA>{i?C??@M2A>d ?e(=ܾ?ŢKºYA(8>n ?Re-e>kK[-A1,>& ?H>#>@KA>c?;0A?0-K¸QA? ?R>'H>^?@Al?Iw?H?FS?⡻@AdA5?Q?N!?H/@?@A2Al?Iw?QY?vF>M?ޡ@fAn(?3x?#q?1i;>_BB^DwCn(?3x?$qux>_BB /wC)/)?Jy?qM껶>3CB2}KCĤ$?Qk?_rh҃>.B /wCĤ$?Rk? r#x9E>.B^DwC)/)?Jy?v qۭa< ?>3CB4}KCf<pS0DB<#q?i;䫾iBbD`J&><$q?<q?껸9D24ß>"=_r?gヤA.· /`Þ>"=r?x9A.dD`Ԡ>>;Gq?k,Ca>dꣻEp?WC /BJy?Ҡ>8>$q?k,C2‹CQk?>>j_r?WC /#.Qk?><>@x>$t<''q?WCfDB?p> R->r˾AI&ЁPh?p> R-衾rzB"ځPh?p>gr?衾zBI&ف?Hj>g2r?>˾AI&vPh?Hj> R-3>r?zBI&{?Hj> R-3衾r?˾A"xPh?Hj>(g2r>zB"|?p> gr衾˾A"с:q?9@ ?G1m->,WC)2UCAg?~>ܾ]0 BEP+…ZB:q?~>)IC s,WC*2…ZBg?~>7e>( BLZB:q?~>J1m?$,WCZBg?9@ ?ܾ]?7> BNVCA:q?9@ ?)I? >s?,WCTCAg?9@ ?7e(? BDP+UCA?T?,sٱ˾A?Oh?>j~xؽzB07=Oh?S?Fl]FzB??tm?еqt>m+˾AO¬;@Oh?tm?1yC{BOzBP™;@?b?6Nkuоi˾A? jo@Ph?b?lgMSvzzB? jo@???L˾Ar;z@Ph???$jV>XzzBu;z@?Y?5޶>i˾AU:LZ@Ph?"? Q̶??NzBX;Z@?p?¢ >?t+˾A(¿ @Ph?p?@3]?pyzB+« @??J38bs?˾AAWZ?Ph??f3~?ӽzBA’WZ??>")3 ~?թ=˾AAPZCPh?>ܜT3>bs?ٿ>zBAšZC?E(>mj3]?oy>˾A*]MPh?E(> 6 >?u+?zB+oM?V>DH6A?N?˾AWv|TPh?sV>6>i?zBXT?>%6fV>Xz?˾Atw|tPh?>93?zBu‰|t?a>~}3/Svz?˾A? ’iPh?a>2fоi?zB? ¥i?=$>FC2C}BO?˾AON5Oh?=$>}5qt>l+?zBP_5?[W>*h6]F?˾A~ĿOh?V>'6sٱ>zBĿ?>;5~x=˾A7=>p>`衾r ́ b=p>>rsF&Á b=p> Sr衾rÁ>Hj>fAڲr> t b=Hj>f2衾r?rq>Hj>ږS3>r?G&u b=Hj>S3r?>sF&q>p> 2r?衾G&́P=9@ ?}P?"?UaEUnCP+aCAo=~>I1m?*>V~'2yZBo=9@ ?y)I@ >sV~&2aCAP=9@ ?pbkbUnH`CAo=9@ ?G1m,V~~`CAP=~>P?"]aE>UnF|ZBP=~>|pb>kb?VnBP+{ZBo=~>)I< s?V~|zZB>[W>w*s >}Ŀd`=>kߐ~=y=7=d`=V>0i]??Ŀ>=$>xȵp>+?MD5d`==$>Ij2 ?EO?L15>a>2jоi?? ‰id`=a>37Svz?? wi>>>3?rn|td`=>z*V>Vz?q[|t>V>ܶ>i?Uo|Td`=sV> d˶?N?T½T>E(><>?~+?(SMd`=E(>jj3D]?l>'@M>>TT3>bs?ۿ>A.ZCd`=>q43 ~?z=AYC>?`3 ~?{ӽAWZ?d`=?k*2=bs?ڿAHXZ?>p?`A$2D]?l( @d`=p?Ɲ5>?~+' @>Y?Hn6?NUCLZ@d`="?6!>iU;Z@>??6*V>Vzr;z@d`=??1r;z@>b?J-Svz? jo@d`=b?pU[оi? ko@>tm?-qa?EOM¶;@d`=tm??5}p>+LǴ;@>T?-e6]??d`=S?k%6s ?>>5ߐ~7yؽ7=~>H=VaE>"?P?KDEP++09@ ?o= J1m?AA*2@_õ~>o=s?> >)IKD*2@_ô~>H=jb?bpKDL+0´~>o=#>J1mKD@_9@ ?H=kaE"~P?AAL+09@ ?H=ibb>pAAEP++09@ ?o=sD k)IAAB_S?> s[(r?{ >b=gؽ~c HT?b=?]Vg?Htm?>+p>ĵ3@O{ tm?b=EO ?33@OHb?>ilо'3g@? { b?b=vz:S23g@? H??>63vr@t{ ??b=TzFQV> 53vr@tH"?>i>-3vR@W{ "?b=N?3vR@WHp?>++>?!2G @*{ p?b=ny]?b2G @*H·?>ٿ?bs?h2D;?A{ ?b=xӽ ~?@1C;?AH·>>x= ~?@(nbA{ >b=>ubs?LjrnbAHF(>>l>D]?YR*{ F(>``=h}+?W>?85e*ˊtV>>N??a:6Q\W{ V>``=i?>y6A\Wˊ >>Vz?*V>6mA|t{ >``=?};A|tˊb>>vz?6SpkApq? { b>``=i?jо7pq? ˊ=$>>EO? ?dA=O{ =$>``=+?p>5T=OˊV>>??]Zg6(Կ{ [W>``=>sM\(6Կˊ“>>8y=ߐ~ 5`{ 9@ ?g?\aE"?P??%AAAP+'^B~>:q?'>H1m?>KD&2@vC9@ ?:q?s? >)I=%AA&2@vC9@ ?g?ibbp>%AAH'^B9@ ?:q?'G1m>&AAz>vC~>g?SaE>"P??KDD'^B~>g?kb?b>~p>KDAP+'^B~>:q?s?G )I=KDz@vC>Ph?gؽ~?cnDBV>?֩gs?y(ԿgĿAV>Ph?BJ]?l8(ԿDB=$>?Y+nl>?h9=MgĿA=$>Ph?EO ??&=KDBb>?im>J2pq? iĿAb>Ph?vz{2mpq? DB>?1:rE3eA|riĿA>Ph?TzFQV =3QA|pDBV>?iϾȬ3eA\UiĿAV>Ph?Ní3QA\SDBF(>?++>3J(iĿAF(>Ph?my]<37&DB>?ٿ?bsķ3nbAiĿA>Ph?xӽ ~:3mbADB??u= ~җ3(D;?AiĿA?Ph?ؿ>>bsz3rD;?ADBp??iy>]E;3G @(iĿAp?Ph?*+?>z2G @&DB"??N?0*2vR@UgĿA"?Ph?i?Ͼڒ wR@SDB???Tz?FQVAXݲvr@rgĿA??Ph??>:Ԧ9wr@pDBb??vz?5S>D} g@? gĿAb?Ph?i?j>Cg@? DBtm??EO? ??㫳3@MgĿAtm?Ph?X+?nl>?Ƌ3@KDBT??AJ?]??gĿAT?Ph?֩>gs?lj?DB>?g=~?]hPgĿAD=~>P?"_aE>Unh|BZBo=9@ ?H1m$V~'$B\CAo=~>)I> s?V~&$BZBH=~>pb>kb?UnKrBBZBo=~>G1m?,>V~f!;BZBH=9@ ?P?"?RaEUnJrBB[CAD=9@ ?pbibUni|BZCAo=9@ ?)I? >sV~e!;B]CA>T?*6s?رQBy?\`=>5~?hؽ—)PB`7=\`=S?i6]?F§QB?>tm?~i5qt>?m+sNUB;@\`=tm?C?yBOtNUB;@>b?{$~>iZBjo@\`=b?<vzZBjo@>??,ݘ:TaB;z@\`=??6sVXz˜TaB;z@>Y?v6Ͼi{zgB+LZ@\`="?x6;N{zgB;Z@>p?s-5 >~+NHlB @\`=p?0kd]{yOHlB @>?^SDbsnBWZ?\`=?+ ~ףӽnBWZ?>>a侳~=nBZCb=>yʳasÞ>rnBFZC>F(>A]qy>LHlBkMb=F(>' >u+?rOHlBYM>V>gζAN?yzgB|Tb=tV>޶Ͼi?r|zgBՌT>>0!YVXz?TaB|tb=>h83:?r™TaBr|t>b>+f3CS>vz?ZBib=b>-p3m>i?rZBi>=$>}u3C?}BO?sNUBY5b==$>0pt>?n+?rtNUBG5>[W>CFe]?F?QB)~Ŀb=V>&s?#>r§QBȞĿ>>~?x=)PB7=8q?~>J1m?',WC%$BZBg?9@ ?ܾ]?4> Bf|BOCA8q?9@ ?)I@ >s?,WC&$BNCAg?9@ ?7e(? BGrBBPCA8q?9@ ?J1m$>,WCb!;BOCAg?~>ܾ]7 BHrBBZB8q?~>)I@ s,WCc!;BZBg?~>7e>( Bg|BZB?[W>d,6s? >˾AQB<~Ŀh?>u_5͐~?~=zB)PB7=Nh?V>l6]?A?zBQB%Ŀ?=$>#5p>?+?˾AqNUBb5Nh?=$>3 ??EO?zBpNUBv5?b>t3j>i?˾AZBiNh?b>[3vz?zBZBi?>3x933:?˾ATaB|tNh?>$6*VVz?zBTaB|t?V>e6Ͼi?˾AyzgB|TNh?tV>6N?zBxzgBT?F(> 5>~+?˾ALHlBuMNh?F(>CzBKHlBM?>V>bsڿ>˾AnBZCNh?>?~ܯ=zBnBZC??4 ~xӽ˾AnBxWZ?h??nSbszBnB.WZ??p?7idD]l˾ALHlB @h?p?O>~+zBKHlB @?Y?;϶N˾AyzgB"LZ@h?"?ϾizBxzgB;Z@???%*VVz˾ATaB;z@h???q@:zBTaB;z@?b?,S>vz˾AZBjo@h?b?f>izBZBjo@?tm?d@ ??EO˾AqNUB;@h?tm?ȵp>?+zBpNUB;@?T?]h]??˾AQBh?h?S?'s? zBQB??>%ސ~?:yؽ˾A)PB7=8@ ?L=YaE"P?AAe|B,0²~>o=)>H1mKD%$BB_8@ ?o=s? )IAA%$BB_8@ ?L=jbb>pAAFrBB,08@ ?o=%H1m?AAa!;BB_ò~>L=ZaE>"?P?KDHrBB,0²~>L=jb?bpKDe|B,0²~>o=s?< >)IKDa!;BB_YW>> >s?/ԿQB~ >b=5y=ސ~?q#)PBIV>b=??]?õn(ԿQBI;$>>+?p>?GԵ1=qNUB~ ;$>b=EO? ??r@D=oNUBI_>>i?h>ZƖwpqZB~ _>b=vz?5S>{pqZBI>>?:-F[A|TaB~ >b=Tz?BQVoA|TaBIV>>i?ϾdV[A\yzgB~ V>b=N?oX1oA\wzgBIC(>>(+?>u2@LHlB~ C(>b=ly>]93SJHlBIµ>>ٿ>>bsZ z3mbnB~ >b=u= ~җ3*nbnBI¶?>xӽ ~:3ND;?nB~ ?b=ڿ?bs3D;?nBIo?>oy]3G @LHlB~ o?b=++>3G @JHlBI!?>N63vR@yzgB~ !?b=iϾf3vR@wzgBI??>TzFQV~v3vr@TaB~ ??b=:U83vr@TaBIa?>vz@S>~2g@ZB~ a?b=io>!)2g@ZBIsm?>EO ?? 3@qNUB~ sm?b=+p>?53@oNUBIT?>?]?e6Γ?QB~ S?b= s?NV%6r?QBI‘>>6yؽސ~?4p)PB~ ~>g?oaE>"P??KDi|B&^B8@ ?:q?)G1m>*AA'$B>vC~>:q?s?@ )I=KD'$B>vC~>g?kb?b>|p>KDJrBB(^B~>:q?->G1m?>KDg!;B>vC8@ ?g?=aE"?}P??)AAJrBB&^B8@ ?g?jbbp>*AAi|B&^B8@ ?:q?sA >)I=)AAe!;B>vCT??թgs?(Ig2ߓ?QBfĿA>Ph?gؽ~?1)PBCBT?Ph?@J]?=22?QBCBsm??X+ol>?23@sNUBfĿAsm?Ph?EO ??33@sNUBCBa??im>'3g@ZBfĿAa?Ph?vz8S>23,g@ZBCB???:63vr@TaBfĿA??Ph?TzBQV 53wr@TaBCB!??iϾ-3vR@{zgBdĿA!?Ph?N3wR@{zgBCBo??++> 2G @NHlBdĿAo?Ph?my]b2G @NHlBCB??տ>bsh2qD;?nBdĿA?Ph?wӽ ~@1D;?nBCB>?{= ~@mbnBfĿA>Ph?ٿ>>bsjtmbnBCBC(>?my>]c8NHlBfĿAC(>Ph?++?>%NHlBCBV>?N?SA\{zgBfĿAV>Ph?i?Ͼr&AA\{zgBCB>?Tz?HQVN2SA|TaBfĿA>Ph??:;AA|TaBCB_>?vz?kAopqZBfĿA_>Ph?i?l>7[pqZBCB;$>?EO? ??Ve)=sNUBfĿA;$>Ph?Y+?nl>?=sNUBCBV>?AJ?]?,(ԿQBfĿAV>Ph?֩>gs?Hbf(ԿQBCB>?g=~?я`)PBfĿA]?>>?UA|K6O?y[?v]?A>>#A1J@O?y[?඘>?H3Xt?#A|KJ@d>y[?+T??Y1J@e>y[?MeM3>Y|KK@H+>>$| p%>E|916I+>>{XE$۲G9|K45>I>nqM?0N81Z]?>t5>D ?w;UA1;g%?I>Rq><kA|KZ6>I>>76N<{N8|KZc>y[?v]??>ܾY"BJ@F+>>>?=6TBBb>y[?ݶ>PXtYTBJ@N?y[?+T?#A"BJ@N?y[?Me,K2#ATBJ@\?>$|p%> F|=UA"BB\?>{X3U?UATBGf%?I>[qM?0?A"BZG+>>5>D ?w;?7"B?2>I>hq><k?K8TBZe%?I>>7 7N<{?ATBZn>C< N! ]w12lm>C_wl =>:r.7"2 12/ô+>(n=!0<|(>K12bzÆ?t=:Ἔ|>A32-}a?:xt<쾤bCA32/ =>:@C-7?2 />DB=V<BzV>iADŽDН>@B=`=Nxv>M-229>=i >L? q&11g>h{=oI>m0n?! q&>=6>ǭ?!J?X11g>h{=rW>ʆ?ugI?!X³+>(n=u 0< |?f(>Kbz|a?:=>aCA/K?C<7=v70BA22lo$?@B=6~=-B329!?h{=:U) ?Yy B q&t?=GS¾g?cA q&11!?h{=kI>m0n?Yy BXt?=_3@I?WK?dAX11o$?DB=r5y?Wb>-B9†?t=Mr|?>%>A-0)?<{=1s?uaCBDJ?C<">m7? S.BAl0)?<Ez>!i`CB22¢Dc?=ܭ?O?ڣAXud?={fԭN?٣A q&u= =3žgm?T q&u;?>=~=3ž>l?SXuC-23;ACT>Æ2;A:|a?"2/7r=E&-24 A(n='j?(>|!0x-2” A|=>>|:<(L.2l : =>bttE&/2ż:|a?2.7?C!Bz>cÆ"DB<1)?xu1sy=c-2·"DBHB=o$?v>Px`x-2-B=t?L?i [oq&Ap{=!?m0n?gIq&© B=t?J?˭?6[oXAl{=!?tgI?ʆ?WX B(n='j?i(> |? 0xÊ A: =>a>KE&ÊȼC0s738.2'HB=b >=6 <x.2%-p{=g>) ?U(>q&¥ =>g?¾?S>\oq&l{=g>o0n?>cI>X =>\K?:I?L3>\oXHB=b >3Wb>5y?r=xŒ%-|=>>%>r|?@<(LÈk <>>u1s?{cÌCCS.p7?A"È(<>>iHEzc.2«C=;?>O?ح?=X =;?>N?ޭUf=q& =c?gm?Cž6 q&!A=c?l?7ž>~X AK?}? N># ]?BA-2RCJ?}?`>>_?BARC}a?D?r=.7"2?CA-2°C(j?xq?j"0|v(V A-2C>-o?e:<| -2–DC =>D?s쾥b? .2°C|a?D?rC<.7?2?CACp$?Wk?Vo~?`O-BhB1)?Xy?$Bz>S>i?jCB!\C1)?Xy?x=1s~u>jCB-2!\Co$?Wk?`Qxv-B/2hBt?g?i LiAq&3`B!?c?KIp0n[y Bq&Bt?g?6ƭ?#JiAX3`B!?c?mWĆ?ygI\y BXB'j?xq?a 0|?~(W AC =>D?>a? Cn>}?8l70?w,2TCd >Wk?H<6`蚽K-.2hBg>c?>U) !q&B>g?+S>¾gq&3`Bg>c?PI>>o0n!XB>g?T3>CI?VKX3`Bd >Wk?Dr=5y?VbJ-ˆhB>-o?@% DC>>Xy?h{1s?u>?Dˆ#\Cm>}?$"u7?S.?wRC>>Xy?"Ezři??D,2#\C;?>"h?I=ح?OHXϤB"h?rf=߭NHq&ϤBd?"h?( ;žgmAq&ϤBc?"h?~-ž>lAXϤB}?l># ]? N@eC12.}?m>_?>[@eC/D? =>"2?.7rC12Ӽxq?+>(|a"02?-7?CCԼWk?>Oq~?2V<*B'-Xy?ϝ>i?S>Bz=CCXy?ϝ>|u>1sx=C32¶C¸Wk?b >vPx`=*B12%-g?>Li > "B q&c?g>o0nNI>B q&¨ g?>Jͭ?6> "BXc?g>tgI͆?]W>BX xq?+>e( |? 0R=C4 A}?J?0?s748=@eC02,;AWk?o$?蚽6+*B02-Bc?!?) UªB q&¦ Bg?t?g¾/S "B q&Ac?!?o0n>RIªBX Bg?t?VKBI?e3 "BXAWk?o$?Vb5y?r*B-B-o??>%r|?%CpAXy?0)?u>1s?g{==C!DB}?J?S.?s7?C">@eC-;AXy?0)?i?FEz>=C02®!DB!h?c?ۃO?&fBXA!h?c?Nݭ_ffB q&A!h?;?>gm1žM =fB q&!h?;?>l=ž>=fBX?x=뷱|K;%>Ag";B-Î,>(n=< ~=Cg";Bdz?6<=8=7E0z>Ah";Bm0)?p7J+aCBh";BD?6< ">7?Q.z>A$Bm{a?: =;>aCA$B1Í,>(n=< ~?=C$BdzÙ<>:c;>b' $B1|a?:c<;bCAg";B1Ù<>: ;a( g";B1>6<>K_u$BmΝ>6<+N ]ug";BmΝ><;|;7G'ADi";B`D>(Q=V>RN©$BZa >DB=_tX=2|?k>L-©$B9…>=z6>=?J?,xB09?>=k=Xľ>l?O*xBu†>=q ><3L?SGB0g>$}=Ë>fľUc?!SGBbb >DB=YtX=2|l>L-h";B9:>>>>71$}=>ľ>^?!+xBd9>> >@? 7?]+xB4+>TM">6>ľV;I?L‘SGB† >$>)=.|" >j";B9c>p=о77}/}h";BW.>|;=U38y$wj";B¾.>|;=xkC>65wª$B0==.>s7Oi";B+>U>a(=)|=pi";B+C>?`ƻ*? ‘SGB+>TM"> ?ľ>mA?K+xB† >$>D=.|? >©$B9c>p=)57?/}©$BW>(Q=վD+Hh";BZ9?>= =Yľgm?OSGBub?=?O?ޣA*xBu…?x=뷱|?J;%>A$B-0)?p<8|>7?'bCB$BDM8?(Q=SS>쾒N1Bh";BZ -Bg";Bc9?=3g<@I?MASGB0b?=|N?ݣASGBu?=`<QJ?&K?NA*xB0 -B$Bc9L8?(Q=>>\*H1B$BYÇ1G?,= >7P\/Bf";BWs>?>+| >Bh";B}T?4==tk?C85Bf";Bt†1G?,=>7?}\/B$BWs>?>+|? >B$B.?>*AK?5c?Tx B*xBc0==.>F^ 7?㾝Oª$B(=,8c>3|877>k";B? Q=>(>7Ũnj";B\(=,8c>@9>޵>ª$B?+>U>{(='|?=pª$B+C> >B?> -xB€C>dj> .?ľ>D!?O-,xBͤ.N">+>̶)??h>K,xB)ڊ8=>>|?=ª$BTn Q=>Z #>7?뺓nê$B\polT'韾3cj";BC8=> >|=k";BTn.N">+>/?>KSGB'ڊ‚C>dj>7?ľ,u?O-SGBͤ¢>_> Q?ľ>E>nr.xB[ ]}=Zg>B??kg>-xB p=>/ %>#|?b=(Lê$B5E07?88(ê$B+:-<>b;>cE&ê$B:-<>a; E&k";B:Ea?Jj }V %>$|b=(Ll";B5Q.7"(l";B*`3Y>ƒ3cê$BC}=Zg>HF?w>‘SGB ¢>_>%W?ľ">nr’SGB[ ]”=>&g?ľ>T>n-xB=_>>N??|=-xBB%x(n=Ki?*{>J%x?_xê$B* A:Ea?0 V?ah\=E&ê$B0 A5<?K_쾖>(m";B 5A@B=ao$?k>3|tXxm";B-B<0)?J+<7tO>tcm";B DB">>?# >.|@Vm";BB>u.? 7?B r”SGBEe]BRM">i:?mA?ľ ”SGBBPM">i:?T;I?ľ>:.xBBC>SE??*?B-0xBVB >>?( >.|?HV¬$BB>u.?-r.xBEe]B}=!?^?tľ’SGB B=ς?J?>n6n’SGB߂Ax(n=Ki?*{>J%x0xk";B+ A=_>>O?=“SGB@%=>;j?ľ>n‘SGB=?gm?Zľ> .xBA=ς?3L?<?q n.xB݂A=?l?Zľy’SGBA}=!?Wc?iľ>Ë.xB B1|?tXxª$B-B5<? ]>+N>(ê$B 5A<0)?H'<7?;|>tcì$B DB Q=8?C+H>>në$BB Q=8?RNV>nl";BBl=Q1G?57,>l";BmBl=Q1G?}37?>«$BmBU>9U?=)|?Y(T«$BBB`j> O?"?̉>C^9 0xB!BC>SE??, -”SGBVBU>9U?='|(Tl";BBBx;=}T??t/?Pl";BHBx;=}T?%>)?P«$BHB.>W`?9=e?>«$Bo?B.>W`?_s >*?l";Bo?B>Le?=| ^nl";BB+>lW?h>ζ)P”SGBB]>jL^?E>ľ Q]”SGB@bB+>lW?>?/P0xBB>Le?=|?]n«$BB(8c>Mj?7?>2|8?}«$BB(8c>Mj?е?@?}l";BB>r?ຓ=7\ #?l";BVC>-o?b="|8 %"m";BDCXg>c?hg>B!”SGB^B]>jL^? >ľ>'W]0xB@bBXg>c?w>?HF!0xB^B> g?kT>ľ%gSGB^B]>>h?{=NuSGBȣB> g?>ľ>;j.xB^B>-o?9< ~?s!$BDC>r?}Ũ<7?,?«$BVC`>Wy?&韾>qlT?BD«$B[Ck>}?3Nv>F ]?w$BC`>Wy?ƒ쾇3Y?BDl";B[Ck>}?:87D0?wl";BC*<>? 9>a?2 $B-CDa??6<7?2??A$B-C+<>?c9b?3 l";B-CJi? q?i ~ Ak";B`C?h? ZľgmASGBȣB]>>h?=?Ot.xBȣBJi? q?&0+|?\' A$B`C?}?>>L_?u ]?u97?J+?_CB$B][C`o$?JWk?0tX1|?k-B$BgB8?r?"V>>WN?B$BWC0)?6Xy?;|>?7C'?_CBk";B\[C`o$?JWk?OtX3|k-Bk";BgB΂? g?q ;4LFASGB^B?h?qZľ>lA.xBȣB΂? g?q6>?JFA.xB^B!?c?uľ> ^Qw B/xB]Bt.?L^? B?"7\B-xBbB>?@^?+0|?" B$BFBP1G?j?'>67??.B$BB8?r?>E+H?Bl";BVCP1G?j?>47}?.Bj";BB}T?$X`?xk?C>55?#B$B?BW`?}T?D^ ?7?>JB$BBW`?}T?q?7>JBk";BBLj?1G?0|8?<7?FBi";BmB9U?J?t((|޽Bk";B&ޱB>?@^?,0| Bj";BFBSE? O?`Ż*1BSGBBi:?>lW?-ľW;IȊBSGBBi:?>lW? ľ>pAȊB-xBBSE? O? ۾B?1B-xBB O?:SE? .ľ>G!޻B,xBB9U?J?k('|?޽B$B&ޱBLj?1G?@?;>ص>FB$BmBr?N8?(??7Ũ>DCi";BWBJe?#2?|Bi";BnBlW?j:?/ݾBSGB"B O?:SE?7ľ'u޻BSGBBlW?j:?Ͷ)?hB,xB"BJe?#2?|?B$BnBr?N8?\ #?=7?⺓>DC$BXBWy?0)?plT?%> <Cj";B!DB}??Q.?7">dCh";B7AWy?0)?3Y?>ƒ> <C$B!DB}??F0?7?98=dC$B7A?|a?2 ?}VWh\=Ci";B4 A-o??(!|?*$Ch";BnAc?!?HFw8BSGB BhL^?.?%Wľ&ž$BSGBPg]BhL^?.? Qľ>E޾$B,xBNg]Bc?!?B?mg8B+xB Bg?? JVJ?&0 B+xBA-o??(!|?T*$C$BmA q?'j?)rвx?z(NrC$B A?}a?Jj ?}V?<C$B4 A-o?e>%?|?]=@%C$Bhh?;?>rOg?=eB,xBg?>;j(ž>ə> B*xBh?;?>Nhx=eBSGBh?c?gmbľ eBSGBA q?'j?+rвxz(NrCh";B Ag??L@ BSGBAh?c?ldľ>eB+xBA-o?d>%@|]=@%Ci";Big?>g(žT> BSGBc?g>oHFk?/w>8B*xB ¸e?f>W3|?=ªB$BQn¹}?>R.?7?"dC$B%}?<>a?;> C$B?<>b?0?74dCg";B%}4Xy?Н>3Y?ῃJ<Cg";BC¸e?e>R3|=ªBg";BQnr?>B #?70DCh";Bܷ9U?. U>D* |="Bh";B)ef>zBSGB$ي O?@j>l .þ!?~߻BSGB]ͤ O?@j>7þ>s?~߻B*xB]ͤ8SE?C>rR`>*?B*xB&9U?. U>I*|?="B$BJ/?>zB*xB$ي L^?;>RQľD>$BSGBR ]c?g>Bjd>8BSGB ŸL^?;>Wľ>g>$B*xBR ]r?>?7?(ĨDC$B۷4Xy?Н>kT?>R럾J<C$BCƒj?9c>׿@?snGBh";B?"X`?.>?^ ?7Bh";BM"X`?.>s?7?»B$BOƒj?9c>g|8?>-7nGB$B?j:?0N">v*ľ>;I?ɊB*xB".?>"L7?\BSGBE4!?$}=ľ^?Tx BSGBcj:?0N">j 'ľA?ɊBSGB"8SE?C> ۾uBa>BSGB&®!?c?ËnľVcPw BSGB]Bt.?L^?>>+<\BSGBbB}T?#X`?T>08}$?#Bj";B?B}T?8==N>-8?$B$Bt`j> O?8a ?og ”SGB!Bh?p>z>6-?BI&‘\9h?$^>>|yWB?² :h?$^>@><`?/>B ² :t?$^>@澳}>WyA ® :t?p>z徘9?-?yAI&\9t?$^>;`/>yA?® :h? ?z>L61-?BJ&ڵ;Ah?B ? >}WB?¹;Ah?B ?t>j<`?/>B ¹;At?z ?z3}>WyA  ;At? ?x徖9?-?yAG&;At?z ?;`S/>yA? ;Ah?p>z>6-?B"“\9h?$^>>|yWB´ :h?$^>@><`?/>B´ :t?$^>B澳}>WyA® :t?p>z徘9?-?yA"\9t?$^>;`/>yA® :h? ?z>L61-?B#ڵ;Ah?B ? >}WB¹;Ah?B ?t>j<`?/>B¹;At?z ?z3}>WyA ;At? ?x徖9?-?yA ;At?z ?;`S/>yA ;Ah? G?_>g?_zB#va@h? G?00?j00zBJ&wa@? G?__>g˾A a@?n?0000?j>˾A PA? G?0000j˾AG&€a@h?n?_>g_>zBJ&JAh?n?00?j>00?zB#JA?n?__g?˾AG&PA,0=? ?z徦6-KG&n:A,0= ?澻|yW?K?|;A,0= ?@澍<`?/K® |;A> ?B>}>W?/ ‰|;A>? ?z>9?-/G&h:A> ?>;`//?‰|;A,0=W>x徣6-LF&J:,0=2j>:|my<`?/L­ 9>j>i>~>-W?/ 9>X>z>>9?-/G&F:>j>>:`k//?9,0=? ?z徦6-K l:A,0= ?澻|yW?Kº|;A,0= ?@澍<`?/K‡|;A> ?@>}>W?.Š|;A>? ?z>9?-. i:A> ?>;`/.Š|;A,0=W>x徣6-LJ:,0=2j> 9|my<`?/L†9>j>g>~>-W?/9>X>z>>9?-/ F:>j>>:`k//9d`= G?_g_G&a@d`= G?00j>00 a@> G?_>_gG&„a@>n?00?00j>G&QA> G?00?00?j „a@d`=n?_g?_> WAd`=n?00j00?G&WA>n?_>_>g? RAp>(0=-?6zM;I&!%^>(0=yW|;?!%^>(0=/><`?C; !%^>>W}>>>; p>>-?9?z>M;G&%^>>/>;`>;? ?(0=-?6x德9AI&!z ?(0=;W:| 澗9A?!z ?(0=/>x<`?p澗9A !C ?>-W~>f>9A  ?>-?>9?z>9AI&C ?>k/>:`>9A?p>(0=-?6zM;"!%^>(0=yW|;!%^>(0=/><`?@;!%^>>W}>@>;p>>-?9?z>M;"%^>>/>;`>; ?(0=-?6x德9A"!z ?(0=;W:| 澗9A!z ?(0=/>x<`?p澗9A!C ?>-W~>f>9A ?>-?>9?z>9A"C ?>k/>:`>9Ap>>g_>_LdI&{ p>``=00j00?Td"ˊp>``=_g?_>TdI&ˊIj>``=00?j>00?tI&ˊIj>>j>00?00tI&{ p>>j0000Ld"{ Ij>``=_>g_>t"ˊIj>>g?__t"{ G?b=_g?_@"H G?b=00j00~@I&H G?>g_>_>@"{ o?>j>00?00?A"{ G?>j0000?@I&{ o?b=_>g_AI&Ho?b=00?j>00A"Ho?>g?__>AI&{ ? ?h?-6 z>18AE&B ?h?yW?|>R9A?B ?h?/<`?>>R9A B ?t?W?}>BM9A {rA? ?t?-9?z,8AG&{rA ?t?/;`M9A?{rAW>h?-J6Dy>V;h?eW?|G>6;?B3j>h?2/X<`?>6; B3j>t?W?}>;; |rAW>t?#-<9?@y[;t?/:`C;;?|rA? ?h?-6 z>18AB ?h?xW?|>R9AB ?h?/<`?>>R9AB ?t?W?}>@N9A{rA? ?t?-9?z-8A {rA ?t?/;`N9A{rAW>h?-H6Cy>V;<B3j>h?eW?|H>6;B3j>h?9/X<`?>6;B3j>t?W?}>:;}rAW>t?#-;9?@yZ;t?/:`D:;}rA G?Ph?_g_>@E&DB G?Ph?00j>00?@DB G??g__ @G&gĿAo??j>0000AG&gĿA G??j00?00 @ gĿAo?Ph?_>g?_>ADBo?Ph?00?j00?AE&DBo??g?_>_A gĿAp>?g__>Fd iĿAp>Ph?00j>00>dE&DBp>Ph?_g_>dDBIj>Ph?00?j00tDBIj>?j>0000?t iĿAp>?j00?00?HdG&iĿAIj>Ph?_>g?_tE&DBIj>?g?_>_>tG&iĿA$0=p>z徦6?-?KneB\9$0=$^>澻|>yWKeB :$0=$^>A澌<`/>KճeB :>$^>=>}W-ҳeB :>p>z>9-?-keB\9>$^>>;`?/>-eB :$0= ?zL6?1-?KmeB;A$0=C ?}>WKeB;A$0=C ?qj<`/>KԳeB;A>z ?x>4}W,ԳeB ;A> ?x>9 -?,meB;A>z ?>;`?U/>,eB ;A$0=p>z徦6?-?KGYB\9$0=$^>澻|>yWKYB :$0=$^>C澌<`/>K®YB :>$^>>>}W-YB :>p>z>9-?-DYB\9>$^>>;`?/>-޵YB :$0= ?zL6?1-?KFYB;A$0=C ? }>WKYB;A$0=C ?qj<`/>K­YB;A>z ?z>4}W,YB ;A> ?x>9 -?,FYB;A>z ?>;`?U/>,YB ;A>p>__gkeB؁b=p>00?j>00rGYB΁b=p>_>g_rneB΁b=Ij>00?j00?rneBu>Ij>0000j>keB{>p>0000?jDYBׁb=Ij>_>g?_>rGYBv>Ij>__>g?DYBz\`= G?_g_FYBa@\`= G?00j>00meBa@> G?_>_gFYBya@>o?00?00j>FYBKA> G?00?00?jmeBxa@\`=o?_g?_>meBQA\`=o?00j00?FYBPA>o?_>_>g?meBKAh?? ?z>6?-BjeB[:Ah? ?>|>yW?BeB||;Ah? ?>><`/BѳeB||;At? ?>澴}W?yAҳeB|;At?? ?z徙9-yAkeB`:At? ?;`?/yAeB|;Ah?W>x>6?-BkeB(J:h?2j> >9|>m>y<`/BҳeB9t?j>f~-W?yAҳeB9t?X>z>9-yAkeB F:t?j>:`?k/yAeB9h?? ?z>6?-BCYB[:Ah? ?>|>yW?BݵYB||;Ah? ?>><`/BYB||;At? ?>澴}W?yAYB|;At?? ?z徙9-yADYB`:At? ?;`?/yA޵YB|;Ah?W>x>6?-BDYB(J:h?2j> >9|>m>y<`/BYB9t?j>f~-W?yAYB9t?X>z>9-yADYB F:t?j>:`?k/yA޵YB9h? G?_>g?_zBjeBka@h? G?00?j00zBCYBka@? G?__>g˾AkeBta@?o?0000?j>˾AkeBIA? G?0000j˾ADYBta@h?o?_>g_>zBCYBFAh?o?00?j>00?zBjeBDA?o?__g?˾ADYBIA?p>_>_>g˾ADYB܁Nh?p>00j00zBkeBNh?p>_g?_zBDYBNh?Ij>00j>00?zBDYB?Ij>00?00?j>˾ADYB}?p>00?00j˾AkeB܁Nh?Ij>_g_>zBkeB?Ij>_>_g?˾AkeB}> ?(0=-6?z*8AieB"€ ?(0=yW?|>K9AeB"€ ?(0=/<`W?}@>P9AҳeB> ?>-9 z>/8AkeB ?>/;`?>P9AeBW>(0=-6?x];(0="=;eB"0j>(0=/y<`m=;гeB"žj>>-W?~f>;ҳeBX>>->9z>@7>k/:`?>;eB> ?(0=-6?z*8ABYB"€ ?(0=yW?|>K9AܵYB"€ ?(0=/<`W?}B>O9AYB> ?>-9 z>.8ADYB ?>/;`?>O9A޵YBW>(0=-6?x];(0="=;ܵYB"0j>(0=/y<`m=;YB"žj>>-W?~f> ;YBX>>->9z>A7>k/:`?> ;޵YBG?``=_g?_@ieB̊G?``=00j00@BYB̊G?>g_>_>@keB~ m?>j>00?00?AkeB~ G?>j0000?@DYB~ m?``=_>g_ABYB̊m?``=00?j>00AieB̊m?>g?__>ADYB~ p>>g_>_DdDYB p>b=00j00?LdieBIp>b=_g?_>LdBYBIFj>b=00?j>00?tBYBIFj>>j>00?00tDYB p>>j0000BdkeB~ Fj>b=_>g_>tieBIFj>>g?__tkeB~ p>h?-?6?z>M;meBB"^>h?yW|>>;eBB"^>h?/><`@>;ԳeBB"^>t?W}@;ӳeByrAp>t?-?9zM;leByrA"^>t?/>;`?;eByrA ?h?-?J6?=y>9AmeBBx ?h?fW|>F>9AeBBx ?h?5/>W<`>9AԳeBBx ?t?W}澢9AҳeBxrA ?t?#-?;9By9AkeBxrAx ?t?/>:`?H澢9AeBxrAp>h?-?6?z>M;FYBB"^>h?yW|>>;YBB"^>h?/><`@>;YBB"^>t?W}@;YByrAp>t?-?9zM;EYByrA"^>t?/>;`?;ߵYByrA ?h?-?J6?@y>9AFYBBy ?h?eW|>F>9AYBBy ?h?4/>W<`>9AYBBy ?t?W}澢9AYBxrA ?t?#-?;9Ay9AFYBxrAy ?t?/>:`?E澢9AYBxrAp>?g__>>dmeBfĿAp>Ph?00j>006dFYBCBp>Ph?_g_6dmeBCBFj>Ph?00?j00tmeBCBFj>?j>0000?tmeBfĿAp>?j00?00?>dFYBeĿAFj>Ph?_>g?_tFYBCBFj>?g?_>_>tFYBeĿAG?Ph?_g_>@FYBCBG?Ph?00j>00?@meBCBG??g__@FYBdĿAm??j>0000AFYBdĿAG??j00?00@meBdĿAm?Ph?_>g?_>AmeBCBm?Ph?00?j00?AFYBCBm??g?_>_AmeBdĿA6               j&NF.C ! !! !!!!,,,,z/ ;           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"# !$%&'&()(*+,-./.010203045673748494:;<=<9>9?9@1A1B1CD?E>A>BFGHIHJKLMNOPOQRSOROTMUKVHWXWYZ[\]^_^`ab^a^c\dZeWfgfhijklmnmopqmpmrksitfuvuwxyz{|}|~||zxu         !"####$#%!&'()*+,-,,.//(/*.,--0111203-4+4546372778695:5;+;<=>?@?A?B=B;BCAD@EFGHIJIKILIMINGOEPQRSTSUSVQVEVDUCT;T:W:X9Y8YYZXZ[Z\[\[]^  _"" `aabac`ccbd d d efghijklmlnlojoonmpqrrrsqtpumvkwixhxyxzwzvz{y|h}g~ffe~}}|{vuts[XWWTRPOONMMLJH$H$F%@&><+)'& ,&          !"#$%&'()*+,-./.01213.4/453267689:;<=>?@ABCDEFGHIJKLMNOPQRS76TUTVWXWYTZUZ[YX\]^_`abcdefghijklmnopqrstuvwxy\]z{z|}~}z{~      !"#"$ %%%&%'$#()(*+*,*-*.)/)0(1+234565/7.8-9,:,;<=>?@ABC9:98B7@D>E<E,E+EFDG7G5G3F+HIHJKJLJMJNIOIPHQKRSTUVUOWNXMYLZL[\]^_`abcYZYXbW`d^e\eLeKefdgWgUgSfKhihjkjljmjnioiphqkrstuvuownxmylzl{|}~yzyxw~|lkwusk                !!"#$%&' (!("()'*&*+*,)-".#.$.%./-/0/1%1&1203-343526&6+7+8,8-94:4;5;6;<:=9=>=?=@<@6A6B7C8C9D>E>F>G>H?I@IAIJHKGKLMNMOPQRSFSGSTQTUTVGVLWNXOYOZO[Q[U\V]V^W^X_Y_`_a^a]ab`c`dYeYfZfgfhehijklkmnonpqrqsqtntktisesdrcrupvowmxmymzlz{z|y|}~~~~u|u{clbj]h]g\Z[uvwxxxy}CDBAEDEFRPAPJKMP            !! "#$%$&"'#(%()')&%*+,-,.*./-/+*012324045351067898:6:;9;76<=>?>@<@A?A=<BCDEDFBGCHEHIGIFEJKJLMLNKOKPJPMQNQOPRSTUTVRVWUWSRXYZ[Z\X\][]YX^_`a`b^bcac_^defgfhdhigiedjkjlmlnkokpjpmqnqoprstutvrwsxuxywyvuz{|}|~z~}{z>=$>dz>dzdz>2J^0_B $:>^B $fzV?3>lBz&fk;?0?߾&\Bz&¸J>ht?倾/B3"'¸b> v?[x`B3"'®0=t?O"qB2¤O$ܾ.]ꂁ6nB2®{e?$>6nB /®BHe?>n]B $e?oR:>n]B/$?&\B(:|e?Q;>6nBdD=ܾ5]?P\6nB:o=UtَO"qBn_>DvIw`B0>u+z/BaC?g*B(:h0>{QW:i^0_Bp:>^Bphgd&L4B2…T%B2)orB29SkBdB29sB2¤YB2n&$ɾ]SIB2?orB:9S?%B:*dG>2?%H4B:T=?NdB:9>g6<,4_cBdD"> 6R]4BdDT9>5ۻacB /•">L]4B /…TAȾ]?|B:?B:!n?sB:Yr"fF:D؅BdDf%;X؅B /e\\;(noB /+fr:RunoBdD+*98>ָtKmZDB'A>'B(:+Żd5>1uMjB>u1BnytT?g3?BdDT?P(2?/B/oT?ܣ:?/B $¸tT?:?B />u?yB2¸8:>eyt?oB3"'>e蠅PBz&+Ż=>t?޹tZDB3"'œ?>JB $+Żu?׻YbK'B $…?'?JH;!M'Bp?>JBp+Ż彯,MR;B2?FB2 B2RdB2cB2‡m@ҾdB25?B:S?FB: oΏ>?WB;B:>-?Y9SJZĪBdDS!?U?{'߸JZĪB /R!?BJ;B /?A?4,оdB:4?B:?dB:cKT?I;a%BdD+xIT@%B /)T4ƻB /n_UA9:r BdD!ng?kϾ>;B(:Xct?V>wBgONu?/`S>'B!nD{t?~>βBni!@|+;n(dBdD4pABj:x'ZDB/Aa (ZDB $œx@,!n(dB /52|t`(|>βB2iTtW>'B3"'!nIb?'>'>;Bz&‘[5_ͨs\>wB3"'hO4n5?;B $‘&5׻4?yɥB $º7yׁ;2?yɥBp4n5?;BpG>YNPB2dB241B2‡TdB2auq'B2sB2+Ų?1B:T?dB:4]¼O? TPB:3?A;<6:BdDr7J5?4PBdD/?::B /s;J5?4PB /="?ؼ'B:r?B:*Ų?dB:x<1kDw3-FBdD <Gɼ6,FB / 'B@'(B /‡q>l(L*BdD/b>u!1B,h>Zu0|BIJ r>ޡ+thFBngOW)?=s??wB/gO(?@?'BdDr(?":=d@?wB $hO(?@?'B /s=>Yt?9eFB2hOh>U,u?4B3"'o>?t?_6|B1"'JJB2*EB2r&`r>o>/B2 @y9K?ؼ/B / @ISH?똼Q:B /IJH?3v;5*:BdDIJt/fK;h:dB /4Q(|-B? B2#JcB2(1}@BdD*ŲV,s6(?(=B(:\N u?9>B]R z{u?Q>PmB\Wt?YM>Bp5zkzT|B/IJ\1TBfD-]F>Bp\];̹6S?orBpY'j9eT|B $IJ\1TB /!Z/t9J>B25sejtPmB1"'7ThR\B1"'‰]I]R9?orB $¥Ys]R>B $\uC2 3wB2oK>{;0C2¯s]?aC /¯Z?K#yIB /›^[?#;yIBdDc4#4 B2Aoks?sB2LnNw4¥4PmB2¹<~xTcB /<9LTcBfD|kTBdD*Ej5STB /*E?w3B:?uC: 䱕>V?0<C:L]?CdD\}?(m3PmB<DT?B|B$:k t? =1hBw!NBp#k,C;8dB/]zeBfDLnl>|Blk fkN~>dBpY侕l eB $‰]zeB /Ln]rBt%A,>NB2#k$t=B1"'LZM>oM>|Bx& k 򏾋s=1hB1"'w!(el4:1>dB $Yl>|B $ k ޗ;OKWC2B2C2r&?۔>sk,C2‹Cl?xd¾k,C /‹Cl?RþWC /ބl?|):1þWCdDބCپQ$guC / I-侼\2 e B /Aoxb3oB2`al%B2´-WC2#.|l.Ƒ<d BfDAo8⾧=XseuCdD !Ҳ?,M4C:r&ޗ3?8OK4WC<B&?6?+k,CW?Kf:t B(:_>U] ;lx~#Bpk>k&\Bp_>_ lx~#B $k>k&\B $¸qt>՗I?kx:t B\~&®=s?n]B3"'=s?MA$B3"'\؅B2EB2>4c'mCB2Cj>})lUGB /•>(ldB /9Xt.4E4-B25H4s4noB2+4M`4n1B28?EB:?؅B:>**5?+&nCB:Cd>|:)lUGBdD>(ldBdD9Xt.?E-B<5H?snoB:+?M`n1B<86dq?O)wBnB-ݔDs?P| B-aB!X?W2.0 S? B8nB>/EeB/#^B>zeBbDnB>{6U:teB $»#^BUi>"=Q"B2nB>zeB /nBrjD[DB /&sB7a?g>C /:Ba?;n>>CbD:B/?x)?v#C8نB>76:"fC /B(>^;eeB /»#pBWJ> aY"eeBbD#pB\>xfCbDB?#KC8B?B8cB7?*?}QM[DB8&sBR]?>[DBbD&sB?zIB8sBM.y>R?@RB8B?]B80ʖBKmָt?*98prBB燾7t?_BBA?$;B :ޤBBJB $ªޤBV\r?NBl:Bz?9TwB/nB?=_TBbDBG?r*i|TwB $nB?=_TB /BVXrB2:Bg6tB/"'Bӹtt=prB/"'B=?U()j >B2cBB2nB(B2«ީBSB2ŒYB(> = B2‹ٱB[B2%BՇJ?']?B /cBKJ?禺S?(B /‚BʸJ?9U?(BbDB֛?PSB /cB?ƻT]B /0ʖB ?Bl;)U]BbD0ʖB?x;vJTBbDcB2:4?"(B8ީBs4?NB4nB[>?b3)?x8ϽB4cBR?F B4ٱB[4?}[B4&BVct?XƾGB2NBU74 B2B4?-@4?B /w+B:?7 `.?GB /ExB:?U;/?GB^DExBD0?8;9B /nB,(?$B@[B /%B)?dB6x+B4?8J5?B`Dx+BԳ?y3B4YB'6?@J?۪ȾGB6OBU7? 4B6Bee>6u 8>B޽B0>Zu,h>:BӺBÝ<&- X?ªB":B?9K?NBjbB?C K?ªBjBb1>r\=O'>%g?ªBu&Bjg>t?Z;>B0"'ª޽B_6>?t?o>:B."'ӺB@aN;M)?r?d=?4*Ù=/B2nBi+?wH?:B /DxBt?dK?/B /nB0@?]?ԖeB6EB?ꆖB69B?[DB6?B32?kGB6EB 4?T4B2EB?1?>/B2nB6?<9K?/B\DnBK?hc?u|U>ӉBwB> uV>2]BB;9 }0W?\B::B)?sw9]?zIBjBK>s]?\Bf:B>rޔ>%BjBT9*?eB`DEBT9 ?:B/ӺB81? Y]?zIB $–BC>.]?\B $:B!U>c?\Bu&:B%M>Et?\Z>ӉB."'wB+>IZt?#>2]B."'BTYZ¹t?:B $ӺBTIչ *?eB /EB>r?ޔ>%B2BoB2ª^BE?ϦR,nB2BB2wB́B2B݅B2‡Cb8?*uoD>B2!C?tr[?prB / B>U]?B /!C9)E?9v?WG,nB2B#4?coB2^BG_4?6B6wBC=3?2́B2B?݅B2CJ?1??B2!C?m< ]?B\D!C'?Y"tp>ZBB8 =t> BXB"М>02=?HK B:ӺBY>͉:l?(YBfB>l?HK BfӺBă>"r/n=>kBfB+ec+>,nB\DBfci)>2]B/B8>tTl?(YB $‹B>l?GK B $ӺB"R>#W?9>GK Bu&ӺB/>it?"u>ZB."'B=s?> B."'XBCd|<>2]B $B*ev,,nB /Bă>!r?8n=>kB2¿BDg4x/.B2wC&4)h3[,B2cB3 AlB2–0Bdi]4GB2°>C7 Z4_BB2wCط>"_?3CB2}KC>/*ɇl?΄B /i C5X>C7 ?Z4_BB4wC>6?9%?3CB4}KCd>4ޏ;l?3CB^D}KCx>RZQ;l?΄B\Di Cg??_<پ݅B\DC c?c^;oB\D^B, e?]^-oB /ª^Bg?@wپ݅B /‡Ct?AB#^B@t?k2BT$B{\">LB": Bl.SƾBlsB]BYk17kMfƾBj#BkkƾB $sB]Bl_ ;_ƾB $#B0>şBY~&‡ BY t2B0"'T$B!XtB1"'»#^BI3CC2B'E3@SC2+aFBX?y˾ M>;C2»#DB|*l?XJ>#C /ŒنB(l?xo>C /GB*3[eB2»#pB4$ZG# C2»#2B>4[%B2-B+E?CS4C6,aFBI?C4C8B+&?(*5?>;C6#DB)l?|:c>C`DGB(l?>#CbDنB-ճ?[4eB8#pB?&ZG4# C6#2B>?[3%B6-B>>cq?O)> @2ݔ>Ds?;|=n`!>S?V2.? :*Ŋ ???E :}\^?9ֻՐ> h*Ŋ^?+>yh_>;ھK?Ev&}\4J^?:>y´ $‡_3>پ,X? v&*Ŋ^?> ´ $*Ŋ>r?jDhBqݺj%=?D"?4!Wn 㾱0Ee?+'/]ze?^D!Wn㾞;DHe?+'´ $];{e?´ / Wnii=2p"?‹2 Wn>=n/"'`>rkD2¥BqSb>pQ.>/"' @J‹24ڪ<^i?!P‹2ε3L3ϗ‹2#s61MÌ2,2i3MrÌ2›'T‹25J141HH‹2(EO]b)<'´ /(E7aoAõ />sa;i>A`D>s'+b8?U.>M6C/"f?õ /e[6~e?i´ /oTu)r:f?i^Dodᾇ:He?`D{Y#=??!P4ε?J44?Lϗ4#s,?zMr62?4T45?/w9?m=4*ET]^D*E^m>Ըt?98>T(>4t?"_=?A>?$;?T$:CYھa?Tv&¯>J??T´ $¯V>Yr?=Eh z9ЯT?/ @=_T?!P^DεItT?´ $ @뺪tT?!P´ /εg>5t=?/"'V>Yr=E2 ӹt>t=>/"'†T‹2*ŲBƾ-=S ?^‹2 ‹2+}‹2­5‹2pNv*=2_>h1‹2eՇJ']h1´ /eHJS}_´ /„ԪɸJ"|9!U}_^DԪKT?T´ /5 <&U?J´ /4r 9:_U?J^D4:d;KT?T^D5ľ=?D ?^8[4?}8*ŲD4? 4+C?iU}42?`58rj1H8?>h18gct?X>~>)t?>JS>7:{c":fϻ85?=՟4?jfϻ-/?A;:?źl٥4?׻&5?ź´ $¥٥2 ?D`Uw&gϻn5?4?µ $gϻ'>0r? =+l޲:(:U$A?/T(@?^bD (aA?´ $†T!n(,x@?^´ /]>t>J/"'S'>0r =+2޲\>ͨse5_>0"'¹U7 4TŒ2b F>Œ2SԳy3?‹2+|2|C4‹2[ٍ4^Œ2ŽdF6y,>Œ2z4,@4µ /z:7 b.´ /GJ:;/bDIJ5-hO: ?bD*Ų<)魣&j??5bDr/D?}>6RX7? 4T6Գ?y3?8+v2?vC48]ٍ?4^6F6*?¾6|48J5`D|ee6u 8!P0Zu,hs׌ %- X":͵9KjfϼC Kj͵c1rd佑jqt@?ɶ](`DR??)/4 Kµ $gϼ<0b>fw&͵H Kµ $͵@?"N;M)µ $¹t@?_;n(µ /S=jg t?;!P0"'¯c1r?d佑2rK_6Ot? os0"'،?ՖŒ2>s_FDl>Œ2Œ2dŒ2GTŒ2GRY 5~Œ2 @j+,wHsµ /GJtdK5~µ / @:R&F?Wl>6??Ֆ6=s?6?d6I?T6HT,(?|5~6 @B;XJs`DIJtdK5~`D @<,?^`D@LK(?T`DX@S,<[(?Tµ /!<7>'dUN]w& Ls]UN]µ $ T?A¹qsµ $׌T?eչ*µ /#MEt?XZ "0"'{}r?הs2 +IZt?#9^0"'XpŒ2®0c awGO%>6nŒ2͵EŒ2|}!ЦŒ2̵5l 6J,Œ2‰-LOZŽ2# ps[µ /£YR]· /#'.H?>6n:͵#4?cXp:0ls4?CE6{}t2?sSȳ!Ц6͵ER4?J,:'V_?=:#` ;\`DYT]dD#T :w?T`DH"T:YM??Ֆ`D=sxT,??Ֆµ />sjT{6~?Tµ /G.&tMp/[͵3 tƋ!\xМf = &:׌WžΉ:lbZnþl n׌ă!r8n=Akn^+e?c+6ndD͵fc?}i)9^/-ľ%5)elbZµ $Mq?M> y&׌þl · $׌Cd?|<9^µ $*e?v,_9D84¾#>:ݺldDk 4X¾=l9DbD4g?_<>J,dD c{_;>XpdD0- e]^->Xpµ /®0g@x>J,· /‰>t?y=+']>@t?k=6^a$y\?">L>": l?,S>Eh}\Yk?&7kKf>!PjϞ#k?k>E´ $}\l??` ;_>!P³ $О#0>? ş>W~&’ W> t=6."'_a$!>Xt=+'/"']S}34Ì2 4&5"Ê24F'i5cbÊ2C|*lXHžMõ /(ldwjžó /uG ?q[3sŠ2#-3%ZG4M2Ê213ճ[4i‹2o?"66F?6rj?pb6C)l|:dž`DuG(lžM`D??n[3s6#-0? ZG4M261-ճ?[4i4o=rt?іSNa^BkD r?qfB ?mR?0>qn2B9??@b]:5B |e?>qn\DBe?SRw>D^/BsN?D^² $B{e? ;>rn³ /¬B1 ?R0>rnŠ2¬B"=dtSNa-"'¬^B.jDr q2¢BJJ>`t倾4~-"'µBJ?^lSt&dBܐ>0;^S² $dB>#1;ܦ^9`² $hB'>yzWk^9`dhB[2?u?S:dB>^SddB>u?+z4~BMM>I*7?Sˆ2‚Bsˆ2&B#3ˆ27jCr>L})(/?ˆ27CjѴs4?sŠ2¢B]ږŠ2B"?yAKe>Š2?B|4?;427jC.4?Ft4s.%BHH1?8K1?S.B1?6?27CQ)g:=]?SXDB=a?g\D9C9ۻa?g± /“9CO]?S± /‚B?>s2B?]ږ2BP??A?>2?B<'?M!M|_dB?>Jd'Bcu?fBe0>?u? ceB>u?Kf5BytT?j3:?\D?BT?w(:2?4~/B%?otm-"'—B5>UuUe-"'B>u}K2µ5BtT? 뺪?³ /?BqT?<?4~² $¶B=,LR? ˆ2:!Bˆ2B rږ2ˆ2OB7@4iŠ2ޑBSŠ2‚B>Sdz>Š20BSMt6?{}.NB6?C2B1?M?? .:!BY7:ڇJ? XD:!BSL:J?XDNOB UڸJ?± /OOBT?ˋ>21B7?ف;2dB4?n5 d٤B6&KBap< :٤BbC>Hv?TBżc}BP<> \v?sL|ߦB/{>t?ؒ~fB%@? +;n(?\D1BpA?vj:z'?/Bh8?(~1² $µB84?>t95 ² $Œ٤B UF ?r t&Œ٤BKI>hu6Hż-"'c}B7A>!v=L|ߦ-"'BC>yt(|2Bx@?, n(?³ /0BA?d (?² $—B=.8?;ˆ2 Bˆ20B幒46ˆ2‚B84iŠ2B*'Š2&B4>@}?|Š2nԱB??462B?20Bs&=V2?O^7?;2 B14D>=4?;\D B. =:?rXDnB/:?r± /nB8J54?;± / B&u>tu?s>|2nԱB?*'2&B?i2Bz?#(Y*?S\DB K7? ² $BC K?² $B[6?P6>t&Bx_)v?ɖ*>-"'ExBw![v?C 2>-"'?B =Vt?9e>2c}Bn(_;t@|³ /nԱBM)]N;@ż² $c}BW)=u?ż/c}B(@|\DnԱB:tqh>fc}BHNVMv2>?BXv{%>ExB=?*?O:BIK:?dBJs9 ? dBrˆ2&sB;ճ4rˆ2nTBZz$?4~ˆ2nBy9Kؼ?4~± /nBISH똼Q?r± /ExB߀H1v;4*?r\DExBg,?;qX>+ ?>U‰2ŒٕB?r2nTB?r2&sB\E?ר@?4~2nBdKt?4~\DnBګ?g#4 P2B$32?=4g0ŖBZ>X>?T ?>U0ٕB{X?` =Kt&-]Bo]?XK² $-]B?]? 9² $¡B]?o~̹dSdB-]?FKd-]BH??Z'?ǽK:-]B 7n>vv?I,^B`l>bHv?B\W>t?YMI,dcB?ЄMT?/ExB\1?T?>UZDٕBt?YZ9T?² $ExB *?I9T?>U² /ŒٕB!Z>2tz9JI,2cBIq> v.-"'BEu>2vQ I,-"'^BL24j4Ê2Br3ۓ4ˆ2B'?9Ê2«ކBv]b?9ó /«ކBZK ?Η± /—B[;?Η\DBv?T?r± /&sB? ;BT?r\D&sB[M?:"T?gZDŖB?8IPT?g² /ŖB8N--4‰2µ5Bn‰288pBL>u?i?‰2ܨnB?w32B?2BXi?r6?92ކBO]>9\DކB8?M--405B?n078pB>й???0ۨnB@d?qg߼t&• Bl?þ² $• B)el?3:+ľ² $wBZBfk?~ǾduBZBl?$þd B (@?H?: Bg~>v?%ѽmk!B|>Vv?<B[Bup>t?/dkB4>;8d?I,/^B>ze?ZDۨnB>* Cd?I,² $^BJ">v,*e?² /ܨnB]r>Bt'A,2kBy>Fv-"'D[B]>Yu;׽-"'lk!Bޗ8OKÉ2BB2,MFÊ2nTBI۔sa=SÉ2€DBlxd>Sò /€DBlZR>% ó / Bl|):0>% \D B>2Ba1g?ó /B\>a; c?nZD78pB!8>A|VK!d?n² /88pBH3dh%@‰2WlBÉ2.Bs‰2©u-B Ҳ?,M4F2nTBޗ3?8OK40BB&6?3>S0DB;l8X>SZDDBH?dh%4@0VlB?0.B?s0u-B=wt?5숾D^B3=u?\$X&Bq>Y?K?g!:B_>\ l$d?Bk>kb]d5BS><lb]² $¶5B0f>2k<_k $² $?B>idQ>!V~&ªB=sD^-"'B =s^$-"'X&B*'ˆ2CFˆ2C4c'?DDˆ2ZCjž})l?)G± /“Cž(l?± /7C?-Š2cBD2Š27*CDpŠ2YB?F2C?*'2CPF<>X?DD2ZCKžrU;|*l?\D7Cržc;(l?)G\DC?D227*C?>-2cB?Dp2YBKT?I;`?sXD%BvIT??s± /&BT?ƻ?]ږ³ /B_U?ù9:r ?]ږ\DBq"f?#:D>*'\DCf?R';X>*'± /Ce?N^;(>Dp³ /YBf?r:Pu>Dp\DYB                             & &         !!"#$ %  &'() &*+,-#./01234564788+9:;:<<=>?@A@BBCDCEE:FGH#I#@#JKLM#JNONP+Q+G+R+S4T4U4?4V4WXYXZX[4\+\N]^_^`:`?abcdedfBfghBgBi:i^jklkmGdGBn:o:p?qGnrsrtNuNvXwxyzrzNk{|{N{X}b~bXx^^^^f^^^bbbkfffkttttxxxx           !"#$%&'()#*#  +,+-./00(12324 5567828 9 :  ; <= =>;?@?AA:B?C CDEFGH$I$J(KLMGNGD$DOP$O(Q6R6S6T(TLUVWVX2Y6YZ[\V\2]2^2A2_2`6aDaAb_cdceAe^fcAgDghijkjlHlmnojhHpHqHLmLrLsLtuvwqwLxLZuyz{|Z|V}V~VheeeeeeeVehZVlllltttttt{{{       !"#$#%&'(  ')*+,, - . / 0 1 2  3456378799:;<2=>?@AB CDE?F?77GHG I J +KLD DKMNOP+P/Q/R/S/T/U/V/</W+X+Y7Z<W[\[]7]<^<_<`Vabcbd@defgb[@h@i@DeDjklmimDnDOopDkoqrstOuSvSwxyz{z|[}`~`x`S`[OSdzdddkkkkskswwzwzsw        !"#$%$&'())*$+ ,-./.0123-45.6789:;#<=5>?>@@#A#BCDEDF&G&H&II>JKL-M-D-&NOP#Q-NRSRT8U8V8W8C8X8Y8Z0ZK[K\0]0^0_0`0a8Rbcd>e>f>g>FhFiKjCkChC>CcClCmnopoqFqgroFoKsKtuvwvxTy_z_{_|_}_~_u_TTTnTTTvddddqqunnndnnnqquuv{{{{{{{vvvvvv  openuniverse-1.0beta3.1.orig/3dmodels/toutatis.bmf0000644000175000017500000007734707045144437022127 0ustar paulliupaulliu TOUTATIS.JPG>>>???~n?!K?y?O3_Z>w?%?;0E? ?X?n?bw>#V?x??AE?k?rtN>U?߻VB?/z?>t:QBTĢ &TWn? D>Q'Hu9K\2]^sw?P>f\/0˾IOGV>U3D>t>>vj`?AX>Oeo?hJ>|>N>Z\p?6>?΃>>:>;ji?_F>?ge?ղ>7=ZL0>aE&Ue?>:bh[>k6>wENl?V>qz(U>GQ["ǂ>C>jv?|>c9=Jh?>Y&>튾>b>Uo?>z=Z?]>E l>w> =O?q> F>w?Y?.:?_>q>x?sEU>\Z>ߔ?PK?L?l> >c?+l=>?.?9?a^=>۞?VP=[>=d>nzY?M&,z?[C>+>VlKo?_b봾J?d^>F>ymzv?F^%u.?>}Xf>B>,&y?A>`֍?mOE>>s?ȋr?=o ?XN>p>ۻ_?c>ic?AY=9?uR>;>fþ,r>?t>8hG?d9,?C>>3?(8>84?2$?N>cjN< ?iH? >->9\J>5n>P_*R?1ݾY >>b9^v>@=z0ڊX?^9.ʪ=K¹>n>q>s@$?s9/?eY?}%_?R ^W 3=M⾩O?D>ٽ=+>.7?ثA>?B\*>=9:_lL?s>?yߙ>i >2s> iW?DŽ%:>8?׿?S==d>nY)>& ; ?9<s.vr>PU*>x=,>(1=]s\>=8#?w'!=Tʽna\%r>W +Z:?MO=0B)#>so->~=bz>-1G9>t?>w?ކp>-[?v?#? t? Y>WY? $?P?is?3>hJ?i'>{p?%?;u>uJn>|u?E_ ?eKlOAԸ>?%<̨=c9i?5 ?|kQ#b>->Ѿ3=5]?>L,M>FOϾ>X?a>՟#QCM= bs%]U?ɳ>L%?q@l>Xpi-? 3?1 ?;>>d^=/?zb>)>^,q>]>,P&?M>+?i)p>(1?\b*z`?> 5e׾!m̿W?3=e۾q$#w"!`Fٿ[? >BE gܾ 1 ?\?>m{?2>A/r?Ż?Bоy@?{>t?m2aG>d?bz^>>qZ??K=;?!?QA¶>3}>T?Y ?=|"?7?:A>i?2^?Va>?>J3?]b?|κ;>/>=g?>F>N? >ljC?QE?TANĈ?\0 /C^?8?:?=E[[ ?Y>`1Z>?d>?N?(NP4?h=V2B|? ?[>"p?~Ug䎆`x?Qt?F>Z?پח pb?Nkų ?>`?_`E\B^]M?KEοD?-:?HSN>uSd9?tJ=>8pLW>nP?,aEK?P /y?cܾ4>?ԍ}kJ@rYQ|?^b3I?[] bG @w=:r?t*52?oP>@r>QLi?|>LtG?Z~?O)>w ?4@5>l?| ???>@@>|@M,>2h?QI?Zz?>m+>%>.?>v?k>a >@c>Zc{?U9=vi2x?|5>o=@?9!w?>Dkf?s>ƻ(@`>1pT?~|?B=ǜ>%?|=tr??D^^?gw?ʅz=ψ?qC"PM?>(!?|56?c>+?W>&;?eu>>,-?G??g?~}>E6?+>S>)?8?TX?>ae>?\>'?!>|?P$>G(?Q`aƾ*?FN>Q?ZJ' ?wp]/?>>qP`zq?P9gfX? ?u$-Դ>]v?>OzV?>"0 >0fc'PH?>øZ>/,_z>>#*?2=?Nie>cd?y1E??p>cf=~쁎ƭ=I 鞾w@?>x,e>nM=َm<\E?`0>|a{X.6h?Uxr?4H>}:+j ?0>3 O@~?Lo?'2?>sP>/q?::?s?h>f,a6?4t>@߽@\>_p?f!2?=7?> >> @">~l?Sd?Ł>2>(>J>֤@>ۀm?g;?QS>e?>?>@s8d:[>u?A>gBp?>ܕ+e>ƺt>>c?>۷<|]?,k ?L7>҇{>']s?>&E=gn?>aw`U?U{?e+ nW?.>_Н @a>=[?뾄5`? >A}L+?շ?x>rS?3Yv'z?ݝN<[&>E?W?a>CV?FVb?]=`1?3Ҡ?hz? >yhU(4>o-<\ͽ ?{+>CyQ?9 Kd? ?}l>f?߬ݾ}a!a9?e(kMaL?5B¾,\?>P6$/2'=U%ÒT$&*IV?d>TcҾs۾N耏lV?b(> 3Ӿ[@sd/80ᵿ~N?.>WwcU"fBur>Q?j/kn?b Gs;e9?J?=>,U?gR?NKn?]?~*?Gc?>)_u>>Iھ;?77?`?k>@iU>2>as?H.?e\?,> K>>͕?oR>xb? 9BV?e?#>0?9?>`?X=M5??]>i?H?B?H=U ??Ј>>b>Hw?<9>9j?X>\>к>O>Sr?jN=F=n?^i%>`x>:>U`?k*=rm>Ä?X:l>X!?Vu?o2>έg>(=?*D>Ț>n>H7?Ug?d>Ǡg>G)?>?97>«5?ty?I=Q>u5? =?W*=W9m?GY^R>>>#q>?y`=x m?^ሽJ>m>?(S?B=vRh55齜?ȂD_?=d0F-9 \ƾ:R'2o?HJ=j xϾ_:z ,=X?Z?AC⾰>J?gDg=5J^?j">>IX>F?t.=^?DB?/>۾G0>z?P>Q?;>0y?[ ^>;.E?7נ?> Q?g>]J?8>N57?m?>O?/n=q?rK?>>?#?w8?@> >!{kՙ>Ѿ !8?)>X>!z<> *w+k?̖>$m2#&o[3LFb?>I%8![?%5fG?@>2\?5>FO?Ѕ)"^8?N>' \?Qk>S?U;]L?i0?o)L>G@H?B?l.?Ui?!>`,gG<?4?M{%??&Xfn$>>xc g>:?N?$?>uS>uD>v$>}7??>h>n>pwY%>ys=:6i?:o?\>A>־CA>??ӷe?Wp?1څ=h?'|v?(?d?8?Rw0vJ=>?w?_?3Z??<>?Dq?o>?u/Sh?S>}|/aX?gy=|>\?ĥpH?^ ?-; >(p?>;>?>ba?>r\>?~> R?nb?gؾg=νϳ?X>;?V̾tL?m>\ ʽ<(?1?H;>9>K?U XU?! KF?lkq?@B>dżѓ"?6=?MP?,#[?J?ǾZ]>t?"?(Pg?)?W<}>s>ý??y3?g?>JgT>!a>o?>U>=>R?J\?R?>۠Ɨ>>W> >=:`?qS>zk?}>Ip?+2\>Sy5?aPS>  @M?*U?,Z?ֶ>k?u?6"?Y?Í>"ԾŌ?a E?T ?2leI>CQuZ| >}h>脿0U='? >1>\Ȍ>Sr̿/?Fd=_L>*ݿ(#?-=1">}D_>XU>>%s?-aS>p>^?>}I?z>@{?&;D!D>l?)E+Lsix> > =~?iI<>֎?55>o>>_{?(4=-0?gbh==>."? D f?ڦ]6>!:>r\z"?SF?6OG> >c@?Q پ?Nſc =c>XY>bj':>GV <>>e7y= PxmF5=sT=S>a2>#@bI0>my?>l|?$=;>Adv?>2>,u?9>)=co?C=,'aZk> ~?nVa?.p=@/ =;@q>='?nE]>޿N='=Ǫ0>HQݾ>b׿Ÿ=L>ȍll>>f<6?!8m=_>mu`[>i=1O>^u=4ˊbUae=ދzW= >x>jM`[>?zv?>x*Z>^tZBs?>}0ew?$ }?uy=91p>~@>C?Gw?$>V> +?>-? O?=y$}7Ir-ؿ>Gi<䎾i .?i=5><^>Y.>7wF>0[X>XR>FPýl}?Tֽ[5?5'8PvC;>NnZ=;x9^< [Yn?]V>RrVb=f,_g׾fj}>h?G'>v7LE@Hvz*>Y? ,V j=>Gǂ?\<dO?y*[>FQ=`Z?;V?~G=nқ K;$>?qw>S?D?>>a>pT?0z>> ?"R?>o>]?F??i>!,>D?PZ?>@>#?f=?U=P\=>|>8i="\\Ǻ>ٷ<>>r?ˆ>}b!> e?l>267>%C>g?C>@!>Q?.$ ?Uh<H>S6?>l ?5?k>^i?>Z>m60?4ӌ>3?(? E>^C?y?Y?›>0 FRS\.9`bDF&>GJ?#?]?:>s??k%O?>H?ѩ>}?P!=;>OY$?[L?>O?X >[? >?o{?>9>yo?[S?Ef?i?qWϪ>>$?iC?攀= ?U?[$?>v?F.?uD62? F>p>OIOGɾ9>/vf@ =O!?Ze> >/J>%>L>Γ,?=Dg>m>?>:>>>6T?a>fҾ ?Ej.>LH>c''?8>徱o?_r%>'>"+5h2?ټнƘr?G1$>s>ts/_5?('>% ưx?+ɾJ4>?';?W ?$_\A?o>|>?E>?njԾP?K>5#?/?i7?EY->$?5`J.>0?w ?'b?F5e7>5??2=?$K!? a?˾j>r,?K±>t(?W$?'.?ш6v*>F#?Q.?'W?tP`>٣?K?(*?!4?E?1>]>:"?1?sN]>>d]F7>FQ{'?z_>>XV.,?Mn/cN0?_>>OTWdk>6YFO}?-S?nE>F7&>HZ>=>XXm?#>xKn?l:>':q>;>,bU?@<> ׾MY?:>F6^X>N?uJ<({?&8>= ?w`>̴=~?";G2M=춏?5m?a&?'Zy?3<'g>r>?\]&ᚰ>zA?W;?y?ETX>G/??8?0CJ>>>=jhwV>2K KE?Q5>=ppөs:CKI.F7?>zj>mĖ]>4'r΍h?q> gqr9->-l0}d>l$?Ͼ0?H?fW?3>. d> ?բM? ?߽)?F?>A2B>Ɉ ?! (?Ud?_m?>>P>P2>"=>VU?o=?MZ6>j>76"?г;,?n?~`?Z2>>ͯ;@+ ?rj?_?CU徟M>o? R?X$?n?4t>1^G٩>lq> ?>6m?`l?4⼆>p?>'@dr>q?X&?2Y\B:?>l=} @7{>\?qg?e>o=>5??_>V?9[?P>A'?5?+s?>^X?@?e(?DE=%>Y0?F?>&FW?қ۽%w~?<=2d>N,E??9>f?n?SEC?K> q>xF@G>{r?ƾҹ>6c?׸>@y> 9q?ٽK~*?=?@cD=N$><@>k>7|?R>b? _<q>#\>y?J>L={?AS=&eZ,?>o?+c9?-lP>OZ?|??>/f?>cߏ?>\b?:?]3=q=x$?]>ٖ?*)A?~zOE>z=S0 ^""?R|=C5.?Zp(>Rl>i>ں>`ܼ&?w<>D5>ݽHO>7>>w:9?d.ξ{>y?35,>p>,O?Z y?Gc>=''?'>e!(#>2>Վ'>4=>>X>O>]">p=i>! ?E@F>[o>e?>̹d?w?v$4>"3>?!>?>Vg?w?$<ʶQ>Ĭ?l> >ra>>?Ef&o> -?rr̿>r%>L>_?P=+>݂w?t>?>"=Dj~ʾv=t *ȿdu>7Y>b{c?:(|?k\P?>dadЩosXU?o> ^wMp߳P3>::S? V?) ?3Z?>? >=@V?u?:> ?{>6?\?Ɋ>[02P+e?S8i?h9"H>Sr4?m [?4nd?L%Q@Q >W ۾@?Z/R?g?>ǦF>"W\;?a>]?@= p?>>Uz>?fh?'>[?7M-z?aX=+>mB?A?m? =モ>3 (½7?X9=կ 1 D=,u?_*Q>Hv?IMz?6bG?>h?ha׾pZ?%ǿ=oC?|f& >c=K'|x>Ϗ!?]?{>BX:ݾ>qM0:A⽗>Ĥ>gY?=jD?"u=_{ٿ6c>< >1>? AK?y?!?o?kC>M?('@< &?b>0?Yk>/ K:O?2 &C"?#>@G?\` H,m?澋j? >+r?3C<Ƿw?3׾$>(b>P@?2'?D/=ti9? :?_^h_?#z ?ncWƬ>csW>4d??3n3HC{>Dr͕>=H_>d8 >U64 ?*<==>G>Êþ.zV3?(.~U?5?".>@,?^? >?~Wx>&ҾprL&)?rV?)?}-*2>Ѽ3d>?=>?0Ỿ)?ؾҿ?_>4wJ?&BƾD*B?6nο8F?V?錾-Jʧ ?J?&??m[?IEH=i1>a=?z)?-{=<ڬ(jj@s>񐲾p*>=0?$?8>0?Κ|(=?yh+?}=G?d?.8<ێg?fr}Ǽ,> B=?E>4j?-x?5;%o>T?=?~?>i?:q?)`>҉}>?>?9>*>k>PTV? -㴛>;R?}>>V>qK>e?̾,)>y? >%Q?0w,?f5?]V>a?)}?;>W?ɐv?Ř=م>?J? S=6>xR>oe?k?Oi>ن>d??4ݞ>I.>*ж>=D+?>'>>2>D=_$?5?(>?05m?>D=x')? a@ׇ?+Կm>aD?,`E?b?Q>D ?>24?G>5?A??|>b?>g'?R>+=FS"?*E\h[>;>LS> d!?[?,>B>S,?>~>s!?b=K>%sq>YMn?w1?72w?n,`>ّ1?㜾Z><?8?g?MQm>}?˸#?]#>4i?);>=??zcM?ܬ=b="> mb>m&Um> o^:=e?oBn!?^x#>IXǾ >a"?4>a?S)7?3\>kN?ѿ?-$>-c?"}>5Q?8?4>d(?o?|>u_?.?z&?|>>$?h?W>g=I?թ~>?@=G >m? <?>H>}@P=MFj?P: ?2;V>H>EM? ,?#=?\?.&>>*=iI??3?qL?Sџ>͘8zY?0/>y++Ht?02?w>=?>j;K?H3>{L֠I?g=`j>[c>Ǿgq?m>bڃɾІU|.ꈿPIm?H?sFy>{B?C;p?G3?dw A.> A؎>2?Ķ5?>-Zꥈ>>Ul/?>t?5i<ܝ>w?=>@57t?1e=9@ZxT-#.ܿ0d?%>:*~ е~>)T?b-9?c>?+?AĻ=P{P?$X?Q־]>^?g%?>#8?n1pUAC9?^CPM?қD?Ie4>7/0LP?f>>90=?ژ׻s ?/5pj?T?9Z:T >g 8앾Xh|?T}?)A?Ky dN>S0 ^""?j? m?FC,?ҧT?N? l? H9 ?C>m?>i>,Q?0ݾl=8^^?ta >m>uWM>܃d].[U?בVHW?C>Ql$d@ť0d^VK?s`?Vrgx<8J?!=?b?k2Y> yǐ==\Â?>>??άH?>]f>?l?#?]>Y?g>|Yq?Q=ཝ>+B??sU?-?Y$Y8R@>ľ@t>N?kH?R>ԂWO>J?>(VsA#=WZk`7M@?/e?=h{k>S=e?@?6i?6;g<>6d=?P>M?=Qm?H=H+?;p?=?mb5?36g{>!=c .??H?Q?gɾG->L?bbV?&???bO?W{6>ci?& "FF?JTq?>'kEUx>CQQũȾ޹ ?:>|}?02ȽX=[?-O7?$>b>xa >jiH|w>o^?IZ?Џ=<3??<`?1l>%G0*.NCjw>g=}.?$=)?_tp1?b??4XD>>d2>ei?f?GS'd>1Ⱦ9n?r?g?O2Ԍ>#,?@f> >L>` u?C>3>̕>rss?'ͽfI=L?>]?6u?6>uq<g?p*>r)?x+[?(~Խt< `k?ХR?Q%뼟N! r? t3?#k?>J5Xm>1N>ɼ߾?A? t?F!ݽznE ?rnO@ f=q1?LL>f0m">to?>*>4!U?>h>a @Յ>in?[_?^?>=>B @*V>uj?B'p^?>A??W>d^> ~?j2ZI?@>eZ>\ 2*?szGf?j?ώ>p?>l?fh5>:%>އ?vk=>kW>?uY?z?ҽ>?>[m? =~B3 (½#N?n{>6qo(2buz4Q?>7nZƾZ8vqe7@?O>;sxvL8=UU)۾e=&>OC>ę )T>ds>T?w?[?nQ>y>??FF><>Q @<> b8=<&է= Bd_=ʃ7y,?1>5J>b;aK|>,ɰc?`=(?OϽ1>>^ k=̵>"yf8=WH>̂T#ܬ>8>7.>>c^?o>҇z?md8>Z>M/?v??;d?#Ϳf> F>-?w?;b:?'?0S>J 0>л=в]?߫S >G_?]w?R?zj0>N! r?䛏>9N?>XX?yqgJ>¦1?;?3A?o?t+ovY>[=.uqB>?Q%>h?(FԴ,?WE#?/\>d?Pew(@?  >}==^tZBR?xv=-i>S>վ0?1p? > MZ?7cJ> ?w?R?Tz,Md*)>r>.>H>{sCٽ5?6?ֹ>]>>fR=z>a99>-V?7? p?>?F??쾂[4\e>G Rj'G>*)]>`wɡ=;zWqw>~=_`_>@ Z ?P`?X.?(5p:>>ڻl?}f?V=jS3!Fh aPj?g[>>KϾ%E?8>[?w?t>jL(?eˌ>U? :>W9=o &Tp;?<~2X2yW;K` Y>SM?շk?O?ַ`?>fL?Ög?>$=e?ゔ>̒Q?ErO?g>OHRv>;vUy?>&q?gh`N }?Sn =(>=QdH>ȝ f=տb"=웵=Z3h|>]l+޾>} V=_FA>5h a`? =>|3?z5(ՏSN?)ܾo.?X8=0 >7QfY>`(!?Np>Z?ZP,X/?,:M/w?w>~6N$`_>@ k>~>k?7Q?;-v?3X?P<1e=d`'IfWf:T-#.ܿV=d`'HfWf:h aƼ<=>64mK=W}>t/Od>, >i(=4>o-<\ͽ @9-S?i(=4>F7&>L?˼Q?<|L@%> '~?p$=ɸ>o-<\ͽ V=^3V)<h a :>^4V)<&Tp[?x?SC,> ħ%>z?d> ra.h>Tz{ױk>p>|ؒ.UV?L ш>\=?ӏֿI?u> Q&- s> &>T=}>t/?`-r>?3^P)?O??P ?}{> zvw? >nn=A>o-<\ͽ `d>nn=A>Tz{ױ>"t?wG]?zi7xu> @ʔ>f? E?!?Ib>.???kT>[f?pt_E?{>ʴ^n ??=f>k>9?-?LB?"4?*˨C?S>I >Ej/[¾ҋǾ@/D?v>y=k*žmQeTvA?F>1_>-a\%׾4w<ӜvDkNu=?Y]>B>q><>@9-S??ni>z}>F7&>=$s?+n`V=C>Y~%A>E=O?a0> X3]!u>}V㫢KMO<ƾq5c$ e=c G< ]?~Rc5==c D=S?*=Y?v5>)X ; >4?>>1Q?>cTK?Ջ>'ƿ)>`no?vcL>$?^N?E>>t @iq?f[?_o8=fu)Ry)???o?a?V\OC=t待fdVڶ? :>a=B&T :>\'v &T P>\'v IOGV>U3y?&?wAp#x>ݽHO>@9-S?܃`hc>.4>F7&>@9-S?o>>F7&>> X>p\?>_iU?D?y>dW=G?Sɫ>03?e>ݿR>TK?8?0?L=>>L>yU?J/>Y>vٸa? E"?w?R?pisѾq N! r?F?=6Wy^l}&t'#οq(>i?q@G?,>eJN`>s?P>re?Yb? >>?>?S?h?VJ?>y>X+v?j? m?b:o:⾿+?ҧT?j? m?kʷG(?ҧT?S0 ^""?u?v25?/~ڃV=Ya!f>j? m?$4[ f>ҧT?v?j?$4[ f>KϾ%E?>O?T62?.UY>l Z?r{?Ed?q_l%#=3x?N|?+[?Hka<> `k?񍼃Ed?{yv;e>3x?T}?)A?gU~ݗ==S0 ^""?y?&?hU~ݗ==ݽHO>V=3ʒ=Q5h a񍼃Ed?uzq>3x?'2o?HJ=\r'R*z 󿰌<1e='1j4T-#.ܿ/w?w>rv\>ɟ`_>@ X[}?]>ru\=ɟWq.N>+c-m=hp'd]矾@Sg?m e$/>#,?񍼃Ed?m e$/>3x?y?&?}'ջC> >ݽHO>/w?w>pl< ˾`_>@ y?&?g~4<ݽHO> >dP{=`3>^tZB`d>dP{=`3>Tz{ױ >~5l=z\=^tZB.N>~5l=y\=p'd]矾@N|?+[?Up4 `k?w?R?Up󫬾3N! r? P>{@ijG<6ҾIOGV>U3N|?+[?k佾T> `k?'2o?HJ=`"ܾ2z m? =`"ܾ23 (½/w?w>kpў`_>@ Sg?[ke;&Fw>#,?KMO3 (½T}?)A?Ky dN>S0 ^""?j? m?FC,?ҧT?N! r? >}==^tZBw?R?Tz,MdW9=o &T񼿄5h a/w?w>~6N$`_>@ <1e=d`'IfWf:T-#.ܿV=d`'HfWf:h a >i(=4>o-<\ͽ @9-S?i(=4>F7&>p$=ɸ>o-<\ͽ V=^3V)<h a :>^4V)<&T >nn=A>o-<\ͽ `d>nn=A>Tz{ױ@9-S??ni>z}>F7&>KMO<ƾq5c$ e=c :>a=B&T :>\'v &T P>\'v IOGV>U3y?&?wAp#x>ݽHO>@9-S?܃`hc>.4>F7&>@9-S?o>>F7&>w?R?pisѾq N! r?j? m?b:o:⾿+?ҧT?j? m?kʷG(?ҧT?S0 ^""?j? m?$4[ f>ҧT?v?j?$4[ f>KϾ%E?N|?+[?Hka<> `k?񍼃Ed?{yv;e>3x?T}?)A?gU~ݗ==S0 ^""?y?&?hU~ݗ==ݽHO>V=3ʒ=Q5h a񍼃Ed?uzq>3x?'2o?HJ=\r'R*z 󿰌<1e='1j4T-#.ܿ/w?w>rv\>ɟ`_>@ X[}?]>ru\=ɟWq.N>+c-m=hp'd]矾@Sg?m e$/>#,?񍼃Ed?m e$/>3x?y?&?}'ջC> >ݽHO>/w?w>pl< ˾`_>@ y?&?g~4<ݽHO> >dP{=`3>^tZB`d>dP{=`3>Tz{ױ >~5l=z\=^tZB.N>~5l=y\=p'd]矾@N|?+[?Up4 `k?w?R?Up󫬾3N! r? P>{@ijG<6ҾIOGV>U3N|?+[?k佾T> `k?'2o?HJ=`"ܾ2z m? =`"ܾ23 (½/w?w>kpў`_>@ Sg?[ke;&Fw>#,?KMO?@@ABCDEFGHDCIJKLMNOPQRSTUVWXYZ[\]^_@`abB cdefghijMjKMklmeSnopqr32stu4 vwxyqz{|}~M` >I |M^/ Kn RQT&JmWv? YY[r2k3r     ddcfpopU !"#zp$%&'()!#*+, -5./0123456789;::(;  <H= >  4?2@H,A0B.B@CDssDEFlGH33H1IJKLMv.N3OPQ;RSTiUV'WXYB0Z0[[0/\[]!^_-`aQS%bcd3'$ReffghijkNl]m$noc\A76pqrJIstLuvirwpVWxy:z{|Yu}~IvuX  5 gwfQ1Sdl\STbazIDf (=ot>Mi<x-5g +$dRn$mpWhOVPgW";;T T`a`y+IC~ EDq,ZqQE$&-Y,;x<|>>Y,u >u g87)X* ?|yJhJji=EnZ98V(_kRT1zy/0\^n?@@  V]6I ywGDDE^NOK~z|y9 C-<FHXVGOH\?]G?\shJF*9~U {{{8l  4uLHGB A=kk8bbX#"b|@_{z+_O3H 6PCLK32Hg fhSrM9G3,-,XaajiEQPJcXJhLK~L~qpz-}9   ,*6-UP>tEQ~}Qq~ jo l@[&o /.:yLMQ]^kxQne 965^X  A,)#X.H@=-F?v.5j1*  =.F<Bkm!  M kk l J94v5<= `/[ca (57 r217<T0+y~l8k b&]&lSRnNNPOhd/Z5{q"ioojv43d"y 7 8$%\65-fGDFsuCjU1"!WPnR^!Z %(B\0+`@eigf[EC~fnfOLWg|A g 1w"butCu mb>|;|pGFJJlP<#"2m@-.N1wb&%sIRdi_-U(Phg&% #?F~M~|lNP @Fq~;xxyQmlxwz<NcAtsE*!? xQ@=*-6JR;'T U";4]?ef_+*&%e @ml A@CD3N+y#V('0!]D)oq0T&%0TOG$*)C\[W'wDBA\D ]HLvv1H#6 NRJ0eNOsshw NQfqDrVm2%&LH'{{{Ui(U)6rDw89 m]2s FlUpwa^>ceXQ}#_A''*1vI$&]UT$'%0e+tcXav v,Q"c\9Z}^]J -.'Y}Z{|a<z:Ft78Z8[x[ediZ/0 8z';(12SSe>B[86Y^au}x3?Goiz"4!)MK42Yu-ckN M/ Z- _.>B6on`b|{t#"]46dyS56YX}|` G\;*`apt7AALA_wE=>$4deWV /8UMLCEP+9,e_XWqp$479  !"#$%&'(%)*+,*-./0123456789:;<>.=?@@ABCDEFGHDCIJKLMNOPQRSUTVWXYZ[\]^_@`abB cdefghijMjKMklmeSnopqr32stu4 vwxyqz{|}~M:` >I |M^/ Kn RQT&JmWv? YY[r2k3r     ddcfpopU !"#zp$%&'()!#*+, -5./0123456789;:;(;  <H= >  4?2@H,A0B.B@CDssDEFlGH33H1IJKLMv.N3OPQ;RSTiUV'WXYB0Z0[[0/[\]!^_-`aQS%bcd3'$ReffghijkNl]m$noc\A76pqrJIstLuvirwpVWxy:z{|Yu}~I<vuX  =5 gwfQ1Sdl\STbazIDf (=ot>Mi<x-5g +$dR>n$mpWhOVPgW";;?T T`a`y+IC~ EDq,ZqQE$&-Y,;x<|>>Y,u@ >AuBC g87)X* ?|yJhJji=EDnEZ98V(_kRT1zy/0\^n?@@  V]6I ywGDDEF^NOK~z|y9 C-<FHXVGOHG\?]G?\shJF*HI9JK~ULM {{{8l  4NOuLHGB A=kk8bbX#"b|@_{z+_O3H 6PCLK32Hg fhSrPQM9G3,-,XaajiEQPJcXJhLK~L~qpz-}9 R  ,*6-USP>tEQ~}Qq~ jo l@[&o /.:yLMQ]^kxQne 965^X  A,)#XT.H@=UV-F?v.5jW1*X .=F<Bkm! YM kk l J94v5<= `Z[/ca (57 r217<T0+y~l8k b&]&lSRnNNPOhd/Z5[{q"io\]oj^v43d"y 7 8$%\65-fGDFsuCjU1"!WPnR^!Z %(B\0+`@eigf[EC~fnf_`OLWg|A g 1w"butCu mb>|;|pGFJJlP<#"a2m@-.N1wb&%sIRdi_-bU(Phg&%cd#?F~M~|lNP @Fq~;xxyQmlxwz<NcAtsE*e? xQ@=*-6JR;'T Uf;4]?ef_+*&%e @ml A@CD3N+ygV('0!]D)oq0T&%0TOGh*)C\[W'wDBA\D ]HLvv1H#6 NRJ0eNOsshw NQfqDrVm2ijLHk{{{UilUm6rDw89 m]2s FlUpwa^>ceXQ}#_A''n1vI$&]TU$'%e0otcXav vpQ"c\9Z}^]J qr'Y}Z{|a<z:Ft78Z8[x[ediZst 8z';(uvSSe>B[86Y^au}xw?Goiz"x!)MK42Yu-ckN M/ Z- _B>.6on`b|{t#"]46dySyzYX}|` G\;*`apt{AALA_wE=>$4deWV /|UMLCEP+},e_XWqp$479openuniverse-1.0beta3.1.orig/3dmodels/vesta.bmf0000644000175000017500000007754707045144437021377 0ustar paulliupaulliu ASTEROID.JPG>>>????L?>;=<:st1B-ATô&??F>P6> p+aB=WBNE'??>/=qVC*@,D!?m ?K>>hr2CB5d ?f>#>޽Oi)Cߠ:é;&??2?@< [SOC哽@(5f)???E^>S@E]Cq@BN*??4?׍ 5hCAO3=Ce(B=0B?>~?q=bCL"I??t?=^_>HZCgA6BG?p>t?U)>*C#/~BmN?1 ?Xv_?w>>ho~CezBMB?M?]>\W]?住>艁Cy;O&mBM T?wf ?@H?z=\?jjCBBV?>9?o-?.^C6oBZ?D ?!?e=/?E?)9KCzBt C_?#>@&?s|HR?y6Cn~C_d? ?>C:=uc?C3B,C~kd?>G>h(j?C^q.C}l?^?n)>ܝ\v?B}AJ\?C6k.?u?dL?{E>*tCaTB?/??^?p"ERzCUFAԖI|3?8?h?rw>7뮾(CrBte4??s?^=#ƙCAb~/C>ʕB|ӕI? B?h?Q]>>C B9Bet??>9=l}?wBk;BBrECLr?[0>i$>a$|?B&\QEC"w?A>=8]~?p >oGCWBH:v%?Y?F>ӥ>Os>C7 B  C??aj?D]>A=~CxBS@}4Q?;2?K?:>>iCgBбBVX?J?0?4>)*?xMCMBCk?ĵ?U>C)>^p?#rBBh9CHn??O7>1=~z?&Bw{oBr?Ct ?'&?>B=CvmB[AW`?`R?|3>g]>oB66B!Pæ. ?x?|>6gl>p}NB.L-B~d]?w?,>{>fvC׃B/5)??$?ã>tN%*SC.[B^ y/?3?yF?>"4hCBC7?!?[^?rq>lxCHB,™;J?!? W?a>,>UBpC[B5B`??%?w>iL?'C]BC =9?Q+?M??#NeC1 Cn\ϾB?)?u-Z??é=֚lChCO* R?)?#0? @>x?^PCvSC¥BV?#?i'?<>xM?!ICtBB\?!?$?$>A/?j2CkB. Cg?k?>>$,\?LC߰B4+.C'??O'>Jj={AhTIAi?dT?y>P0`>qBB*INM'?Y]-? ??$3Cy0 CY F,?+?%??#IC C=!1?-+?7?dz?WC C;ˆ'K?6?u6?"?_>{KCa+CE$B8*N?-/?T;?! ?2>-SCwC0rB}!?w/?>>%4I#CC C  bk?,?ޘ>>*]hCmyC,-,@?7?L?Ϥ?RCtf/CwFE?8;?G8?-?O0>HC8CFA]Me?M'?Ϙ>?=?C[BBWC2D|??=l;&~?HA}A.KC۫??W>{{>zo=BBKfK?І(?*>W>ul}B1B$t;U1?F+>e`?MBfB0Cy*^? g?}"?4oC\p.C&Bq?GD ?m>h\>w?sBɼB,>CS?=?62>;e>u s7A*5Beմ?̌?2=u>>|OG@A|ck>?fO?Xp>j>WDoBUB?T "?"=? >?*' Cy0CO <'? dD??@.?辱^C%SDC+\8?AP??(E?1DCbC, N?~J?{9?=?n>x>C,XC"BO+Y?TE?F>2??\8 C2YFCCB*m?3?> ?TOG?$B C!C}?O?ѵ==~?oAgeBxHC?;?h>*?`dKI4B&CT%?! ;?i>>]B{"CP5b@?R?r?X?OJCjCNhG?iQ??M?&1>gNCYTiC>Ao???c!>K! ?=4?B03CCMy??K= *>{?A=B(4EC6r ?@1?]>>6tmLB4C:D ?L?Z>ɡ5?^B%TCNo܏.?q,U?Q?nE?R?BfkC@ɐټR?S?>ݩP?Y>KBhC4BX=Z?N?ٶ>A??BXCtB$/x?l*?<=d>Ol?BBp9C?D?m>H$?\S77[BL?[BpCnf )?d\?>AmX?ľvB_yCۛ&`/?u^?;>^g?K4I{By~CKm9?t_?{> Qd? xB~CisJ?s^^?>ڟh?K>tvB}C8Axtf?rK?>N 6?b?rrBcNC-uBs?7?4| >0>s[?j8[BCl}&Ch?}!?P>@>O qA'|BXG?._?h;>4Y?\BCwCfY?Lc?ׇ>ic?>̿BlCZBԯd?yZ?_>~kO??^B/lCЍB?R??)>aw>%uGB@ᛉB@da08?Zf5?)>6>l`^ACHÕ ?5H? >%?Z @m BٔDC&ʕ ?s[?H1>zB?cw :A#lC^\ #?g??G>(:o?qBeC º%9?m?hp>bx?bp nwBCR?m?ei>#v?3T >fTB%QCm!As,j?g?/>a?Ž>BCpKBMq?<{M?꺅>==E?G?IBQC{B: ?0Jc =m~?JUAKCn?Y====~?HA}A.KCX;O?Y===>~?oAgeBxHC?v[@?=1>]\@A.C9u?/W?I>|S?N?AcCB0[f<{M?>RW)?AqRW)?Aq??=2?P?K AG.CF C >?g >Y#?A?K AG.CF C߃??g >Y#?A?B03CCl*?Nm>s?BBp9C=:s?2>wK%B^:C`v?Nm>s?A=B(4ECn?<~><?HA}A.KCP>`|p+?y>!ELCx?"#?=5>7>Fq?*B=Yã<?*.?ɺ>.>Kk>0B)PJ>~bY?g5+I?H9+iCN?/i? =Xf?(ܾ@?CöZ?}o?=x?QcA~lC||4?v?|߻=}?0AوC ==E]?m4ng?K> oCBd<.V?U?ϟ ?ffC7Bhg?2Uh?/>BCpKB`"/W?%}=&[?g?AcCBhg?&}=&[?g?BCpKB`"/W?l>>nI?~?AcCBx<-O? =,s@?#(?hxWCC0[f<{M?l>>nI?~?IBQC{B0[f<{M?]>.?07?IBQC{BM?4?R=t>>yd??C/Cf4?dB>tr??C/Cl*?eB>tr?BBp9C ;?A\5@{;>j{?dBDC`v?`#}>%w?A=B(4ECX;O?z2&)>)=|?oAgeBxHC`v?y2&)>)=|?A=B(4ECG>;L?F<#?¸DbLC"O%ì>]s?Ig}?D8z$ĈCZ#n^>|?ِ~?h=r(_C:v?p|?p!>0AوC bL;s?̽ALx??c>p4CҴA}5m?p|?p!>fTB%QCm!Av?Ӛ켔|?@>0AوC }5m?D ;aw?>fTB%QCm!Ahg?E ;aw?>BCpKBhg? ro?>BCpKB`"/W?=]=zS?)`?AcCBX;O?\>|?oAgeBxHC'`>- ?)>T|& B0j^>8S?;5->Q|#oB2d}>n ?>=w>(wZB| `&>]0?N=2>܁j)CQl>>?:?XX7{+Ch=m>^e?{.zg?ʀȾ C–>Zm?MzTr?MNcgXC:΁$/>vs?R1u?H:=yoC$ިC>t?[Vs?0&>d´C^p=a?6m?ŋ>eesCJgB'<?py;-qF>z?$RBԊACEC >~_?unDa?Ծ6VxCc5>MAW?-_W?j_>kC>a>7d?料Pj?kQlh§o}C:~>j\?ui?euI>0 7mCb@B7]= \?N?HIS?K AG.CF Cf4?aǼT0>v``??C/C >?aǼT0>v``?K AG.CF Cr>`L.?'ּ>BmX0CPTN>o~5?@†>c$]9CIö'>:?co֞?}TFo#C2<*|>L?M2?3¦&TCc]>f?YǾ>k?//ld§M|CkD™2o>c?Vƾ%j?s =P/uC=LHQ?񲾄[?,> x\C3̳BЮ=6K?]|G??PןORCB#r~=6D?n4ky&?-=?Ђ¹BC Cz=T/?m m>e?TU C -Cf4?>/i??C/Cf4?6s>p??C/C>\$?7$>bt|iZ¦(BL\}>8/?S#]>gkaez?COG>@?TQ ?ZOǝg6C(/&>6qV?H^f?\8 jC;‡>E? v?7b7GC>L?\͐F?2;ZC‹> K?g`?zs{ YVCRR N O>jW?/־e? >*;dCAV*>|Q?ݾ9^?,s>'A\C* UB]W=&?>>2u?”B78C^$=!?p,ӛQ>sy?6XkƼB&>CMZ>?`_EZƕԒ@m >K?Eg=!{>¤mBrbm>w)?Ԗv> h5£Bl6QÊ>#=?}?P&BK8C\p>J?4R?g òWCˆ=@? ;7?ݬ?/…!!q??8=4y#mFBdD>>.?Q>\YC`AU>sI3?%Ծ>}GkÖC,*O>+??x*??$!À?Cޮ¾>ԂF? + FP?R<' OC¥p> K?^?G> ÄUCxտO> K?X?|P>ÄRC vA>??cG?>00ԽS~?` ?ICB>?y''>+PszgB~Yî>=E2? J$? ?L+ECuBZ=*?0پ?u??h3!C:C=%?w{>c?3;B ,C]=?)_>5{?žbgB:@Cd>?0wt=jwY{¢XyBZx>"?շݎ>Sh^>BL7}>^.%? .>\NX ß9B>Ð >n8?00,? 凾I0C j>x((A?]E?/>9BCPm@BaA>@:?*=?N>=8&1CegBLp+>.?4 .6 ?> E9CMB˜=#?Ev?XxAFCm>Di(?A&O>CROD÷4B >ݰ%?N&>4{4TB ŝ>л,?j&?>PiMX*'C¥|>7?G?%?J> PU{$-C<\>rC1?HD?h>W,CWA>:?z{{=ˌwMy=+A6be>?fXqŜBP1> U?'^s>d2 iBDÃڽ>q?%}>lK*lB1 >-+?jT?gkC'|>0?F ?; vd[C>&?ժ>?IY:BC =r ?nF>SFa?IBHC(C2=?'>_q? ߼B1C>C%?O [=?^=Vx+$B>Ե@=>D&?IG?>^BB,>k"?aE2>/0>d)YBFBo4> ?]Q]>U?Xd2&qB C?=~?qi"h=0x?F4iB$6C =M ?X%^=By?`6 Bz})?Xijn?윾%=0Pr5aN_BNò>&.?X5$>8h` Bd@è]>0?Prݚ>ĤYmM B>?s]>40 {uBd>"?!] 3>h>M\B@A6B>?PX7>ұ>nÝHBʜBe>k?Ɋ2#>(?:Lh#BC2>I?5+̊>@&;TpxB->?Ȣi@>li%jB5{>??dsX'>=Btw!>?K_A>!?[wZIB[Bî > ?*="A=?*DmBVC=e ?CmY?>%ܻZtIO4AjUX>>?k=WLknK~A+>ģ? q:Q>g TxBGRoTf>E ?mݗ>g>~ãBjjA'I>?!dd>}y>Ng}VB>B=?HX?%o1A$C>!>gkMvn­ @^>a`?Uʾd?Fk=" iˡAD$x> ?^=>Jpu'BC'}>O{ ?}Y=+=H= BN8f>$ ?[w:>@]>N9ÿ/B*AR#2>,' ?nSs=R?nþBBd>D?4Wg1 5?+WUIACF>>ޥ79:q6N^QWL>r>/rb%=, À<ڇ@m>I?|f}c=èw?vA B+=V>7䇾UAc v?c>v,DӶ;cXZ!*N!>}>bBCzj?y)…N|>>6sOG=Ro?t:,L ff>*>xwлf>YTA.>>UKM|6?+'kFp B=4>B׾aq9f?.Îw*CH>{>ƾ`0k4t[HÐϼ>`>,PW6 ִ8ĥ>ֺ>P4 m n !G>>]z* F8îz0{J>>d%2>sàңBD>1>C8 J?EH"N Ch>R8>?l8.dhcDk"3{> >9yY$_=z Y¯e>6>tQ&t>֢×.šA>Q*>u>װ@9"?F5aT/BL=>)7#4m%{?MAmBCa>>;|| %i =>N\>iX߽W#b%ÒfD>>/F>U>?8n>e+=HVqZ)>>8O<;ä^_>1.>T>#U⍓Vp؜[”>bv>Yfijmz~TM>{7>^bqK^[Ų (f>>j Me>\O¬XAL4I>L>]>w^³B=>圾_ygcq?.y~4*1C =S>C3۲x?=®t>>u6Pa[O*7.>Ծ>??j ?yZù{B^ >;+>P)#\e1?PmB >>Q z M?΀6ÔN”Cz=><ξz!Pjvd?:YŒN(C >v>~qPkfG'ʃOì>>{NƽudQ}P<[>r>&z 8yE$ŽN!c>>xu?þ QÐ{U>>0PyѾҾN"bÓ=§i>>Zھ+}'lLù=CR>_>1X^fJ#`Zrf>}>[LQ>6s_A*F>k>ALM#i>.8f"WX>=Ž}[܎(ka>SC>⑾ ܕ i„CÝ>g˳>os/?H=rbB=R>wku=t?U(U"4C,,>v>K ھR1Ym& 8'>>9D2ؾX6^4É»ým>>ؕ>|T~yYH>?>RL>6%4bdJ>f>aŗ>GG/>r\ì#ATID>>/O>J".^tB!>-> (?wC:%B&L=E>zԾF(H?æпCw=;X> ۶2[?U,b CrU=>?^0x?NŽϊ|I:C!=>ẽX`Zy?)VEM4'@Cna<>p#.p{?VHCu$>v>/MkHfvD jh{ b>>4TR$ˊ5d0>ݖ>F  :< zɎ>mA>{-*7,8Kb7# Vg;>H>??,o*p;Y|SÍu3g=>оU8? Ä C>J>ǾHv0KqM*Âf>>|>M#y=eS>O>eUBvA->jH>w`&Fn?ޙ!/HMB=1>cBۏp?m /C">8>i3@+5]kn…WTÒu>o>eW2Q¹ ( 7P>3i>_4 áFЍ>qR>UHy_]#ÅnXé0d~>W_>n6J/ 0R.SíCjb!>>^>RrC[> YKOBKBn>Fj>8a-i2DS2ÂE>(yD>xFIe̟< \衤~g>6>s[^y=4e0#@ />E[>37?ΙJB+=ӈ>Q-گ8?p\%Z/Ca<=ۊ> \LY? m”>o!C@>>Ws›raÕ>P>yFӾEhK`°MÇ>&1>2[adÚ>>Ev>BzzP@4h#ß>L>{¾n1VK1±S+Oz>3o>War$by>z>3Dps'=Ѵ;wïZib6>!>Hzf }>WVkËB >H/>3N _>†c(?BŒ=U]>-y*cd4?*#AéBx=6>O?+.F?!)f,ÒCIa=MP>34A]?»E C\8=r>9J9s?UO^!o,CN<>J dJv?„P6Cb>¡)u?Np=C&(>>ƞ=:exh-Hvg>+>5M÷jÐ<^`>U >p>j•s@>˫>P==㧾~q8RH>M(>G*TLDdleH£5>9>"ŠVO羜\’tK6>= xsh4YB 7ñ, >1=)y@nr A7;Ʀ6oC¸=R=h*JrG>3)z>SBq=< >Gn=_*{>fxouĂBRA=3>4Lq=Ĥ ?Yr¾{Z÷B>^{>]8׾g.MI[>Z>M :h?j&ÿD>>6>~7o/gKªW%>0=^)ýЦhRϾKP{D?ߚ7Ps?ڵ*xp_(CW?1>Н=Jp'%?ˆ[3>V> 1]ƘmOw> =LAwz 6"@l">t#&=K%|^n=Y ̈́~vY=ƅ={Yvk>A^=>֘pY?n`hRBL,Ss81?o[fB,7+,6;? jK C<5Bd>8z*>?'<ÚCgD> Zi]?hL@(C ;O>G18눾v?VO=j1C ?%>ʏH~@b`á)Õ4>L><OI3IV %P>x=^rI?L;/? =($=z1n>AF|Ì/>Q"Xyy?ˣlA`&KHCFB?j|>=|zrViA/NÎV?0> =پzg@ÄCÀɍ&3A<ز=Ҿ/ö{кO=\̽='xTe>`A6f.A銼=+o>_Ai!xô@BA.| >t(gcJ{>o@fkhBpM->p2=K?T-YAZ;8Bi L>f<ȟ059?MRHA$I@C[>k6 w?s?MA2'Ci?C>H@>¥T7u:A<aç`?)s>ю >%%[- B 'B8x?UL>=ҕLAJt#Ï?c>'=/iǾ(=BEZr%?"M=h,>y2.A52P5(Fx=(BiÒqSv?O=Q>x =`A6f.Am~?&3Ax =Ҿ/ö{xek>4)}=^E$C?AF7U}d{y?A:+C5?>p$>ӂ t=BSՊX%?(=> u[ZBàwfаY?:=K&>jpI>^B|JASv?O=\>w8>`A6f.ASv?O=3>Nm>`A6f.Age?.p>>bS>tuBKnB{?=3>Nm>_Ai!xô@BSv?O=^V>EnK>`A6f.ACn?>F-N>.SR?HB&bêTB{?=sG,>Tb]>_Ai!xô@B{?=4>3a@>_Ai!xô@B|?.| >4>2a@>o@fkhB{{?M->K>Q!?T-YAZ;8B|?.| >K>Q!?o@fkhB{{?M->8>0c6?T-YAZ;8Bxp?xO>ۋa>A/W1?ۣYBHUBY|? L>8>0c6?MRHA$I@C>>I21^4?AF7>>I21^4?MRHA$I@C?D>ѥ#>PN6b?hL@(Cϵw?>*1>LھDc?BABl"C}?[>ѥ#>PN6b?MA2'C+Kz?0=>/>'X7o?A:+C}?[>/>'X7o?MA2'Cp`O>06ۖtt? Bk~^]7Cʵ ?U2>5X>~mƮ)BA?` E>TMM>΂+66B\SbÖ?'%>F>Mb5Bzfb?\>> a}傝BXn¦#?F=>>qľRBH1v‡[J?=>mh>5B rt@{{?M-> 8>5AŽ ?T-YAZ;8Bvo?D}>]>z+VgO?ABT,ð Ceg> E?AF7oI?>,dP[?AF7nI?>,dP[?hL@(C R>mY?AF7h~N> yZAhXX?G>3?>]{оdi6Ül?q>Ô>KgB8f"ÿ9?>>hj >BPnl1²X?ˮ >>c|>ÒB kö8B]ya?S>:>8= ?[B5LJNBvq?>4>Ⱦ.g?&B‚(C+Kz?0=>" =Ðn?A:+C ?k>$\7>!Ip&AB ŠBGþ?`>>(R$BGvÄ ?A>?#>Cz BZ .?9>^>Umx3C+^D?@&>3>qbs?>BKMcèT?Z>>Jg> CaIB)xBF\?;M:>i>T>*zBX'B;d?1z>h9>f6?BF21Be?>K>M?nBæ+ Cw?`O>0=릾p? Bk~^]7C+Kz?0=>0=릾p?A:+Cw?`O>-7t? Bk~^]7CKv?>o=7{?>Bj@¦nDC?b>-6t?Np=C[}?a>Iռ*Fu?ˣlA`&KHC?b>Iռ*Fu?Np=C"p?>&:>$&p?kB*:Cw?`O>{=bxp? Bk~^]7Cw?`O>K=Hr? Bk~^]7Cm?Գ>#>_+aQB[ ,95!?>>=.פ-V C/Ë'?m>:?>}8C7=CË ;?Y>?S蒽~5$COP´C?f^>m ?Tݫ=9(C MmzL?i>/ ?9hIM><%CdE2Bk?z>AT>Zpi`?`Buº-*C[}?a>-*=@齗}?ˣlA`&KHC,|?Y>╫=✽SX~?mAUJC?>-*=?齗}?y>!ELC@?>ϼy>m1R$rBɢUO?b>NJ>0pj^Bj=u!?E>a >3CʾQN)Cj 8"ó'/?@>n?W;aZG*1C7mʼ z5?s>R)?9_A9@Ck4nM?w>׆>'^sB88NkV&%?H>/> -*C7 k@X)?#>?du% 0C*&b>?>|2?r7VS.?G/>$DC)o0Af]P?>Hr!? ! R>=V?'m?^)CE"B^?>n?i /?mC cBqc?_>Y>4վCN?tCW1FC,?d?3k>j>!dM?CwgH C[}?a>,x=}?ˣlA`&KHC8?l>뒣>-snBys¼AÒ0?>5?zDƾ^C%GpϮh?>ڥ>ωXl?xB95€3C۹?>U>@^m!cCY٤j16%?+'>; ?BM:z6C<):íd+?Ů>b ?⾜$*OCJ¬zs}5?->alJ?j/gC-w[L?ɤs"iCiv[®'A?6Y>N?-Bʲ=djC= f%W2F?N>=A?U`>>]C=+AL?tD>>?Pz>X[CjJYBmR?!>1??KC#ϥBQZ?IA>T?"ξ.?f3C/BNkn?$>a>: -w?GB;4.D=Cy9?>f?i۾$½/yCHRc=yF?>aY?2>,DsC¤õA_U?1>d4?rHB"?'6UCn~.B;?>>}߽qBK G~,?̪>)?k֑Gg1 bCr }s?1?D>RV?"sC1pW4?>]?޾Z|wCŪҬ??ֺ>e?ྰ=K}|ChvoPc?9h>v>UNY?C( (C= ?u>v>dƸtgB=_nR?m>ء>@e~rbB{SSí!%?S>!?dKT6@CXd%K,?>I>6?6m-hC6:}$D?>2r?!>vCRl|3AH? >c?+B.>6(CmC!BM?@j>=9L?ݣ> hpCrB\?7">J?_??=CRFC7?9[>Irr?p|N^C8/Q>?*>5u?hrCGsg;&?>?.m(&Ne=MCF'ø-2?>]b?UAӽ3xGCHg7?>9:s?,н{?9 RC_H4ŽRQ?>uF? '?pCʥ)ùB?>{=h!\~?y>!ELCn?Y====~?HA}A.KCX;O?Y===>~?oAgeBxHC0[f<{M?>RW)?AqRW)?Aq?g >Y#?A?K AG.CF C߃??g >Y#?A?B03CCl*?Nm>s?BBp9C`v?Nm>s?A=B(4ECn?<~><?HA}A.KChg?2Uh?/>BCpKB`"/W?%}=&[?g?AcCBhg?&}=&[?g?BCpKB`"/W?l>>nI?~?AcCB0[f<{M?l>>nI?~?IBQC{B0[f<{M?]>.?07?IBQC{Bf4?dB>tr??C/Cl*?eB>tr?BBp9C`v?`#}>%w?A=B(4ECX;O?z2&)>)=|?oAgeBxHC`v?y2&)>)=|?A=B(4ECv?p|?p!>0AوC }5m?p|?p!>fTB%QCm!Av?Ӛ켔|?@>0AوC }5m?D ;aw?>fTB%QCm!Ahg?E ;aw?>BCpKBhg? ro?>BCpKB`"/W?=]=zS?)`?AcCBX;O?\>|?oAgeBxHC >?N?HIS?K AG.CF Cf4?aǼT0>v``??C/C >?aǼT0>v``?K AG.CF Cf4?>/i??C/Cf4?6s>p??C/CSv?O=Q>x =`A6f.Am~?&3Ax =Ҿ/ö{Sv?O=\>w8>`A6f.ASv?O=3>Nm>`A6f.A{?=3>Nm>_Ai!xô@BSv?O=^V>EnK>`A6f.A{?=sG,>Tb]>_Ai!xô@B{?=4>3a@>_Ai!xô@B|?.| >4>2a@>o@fkhB{{?M->K>Q!?T-YAZ;8B|?.| >K>Q!?o@fkhB{{?M->8>0c6?T-YAZ;8BY|? L>8>0c6?MRHA$I@C>>I21^4?AF7>>I21^4?MRHA$I@C?D>ѥ#>PN6b?hL@(C}?[>ѥ#>PN6b?MA2'C+Kz?0=>/>'X7o?A:+C}?[>/>'X7o?MA2'C{{?M-> 8>5AŽ ?T-YAZ;8Beg> E?AF7oI?>,dP[?AF7nI?>,dP[?hL@(C R>mY?AF7" =Ðn?A:+Cw?`O>0=릾p? Bk~^]7C+Kz?0=>0=릾p?A:+Cw?`O>-7t? Bk~^]7C?b>-6t?Np=C[}?a>Iռ*Fu?ˣlA`&KHC?b>Iռ*Fu?Np=Cw?`O>{=bxp? Bk~^]7Cw?`O>K=Hr? Bk~^]7C[}?a>-*=@齗}?ˣlA`&KHC?>-*=?齗}?y>!ELC[}?a>,x=}?ˣlA`&KHC?>{=h!\~?y>!ELC       ! ! " ""##$$%&'('&))  *+*+++,,!--"#..%'),/0!/00-!-1"12""2#23#3.#.44$5(&6' 7**8+78*89++/,9/+0:-:;-;1-)< =<)<7 />0>?0?:03@.@4.A(B'B6'6CC)C=)9D/DE//E>:F;;F1@G4G$4BC68D9E?>1H22H3H@3$I%I%5J(KJ5JL(LB(<M77N8MN7ND8OED?P::QFFH1QHFRG@GI$SACT=UTC=T<TM<DNOOVEEW?VWEWP?PQ:HX@XR@IYYSBZCZUCT[MM[N[\NN\OW]PP^Q]^P_YILZBU`T`[T[a\ab\bc\\dOcd\OdVVeWdeVe]W^fQQfHfXHXgRRgGG_Ig_GJhLia[ej]jk]]k^kf^lhJLmZUn``o[no`oi[apbipabpccqdpqcdreqrdrjejskktftXfuvwhmLZxUmxZxnUrsjsykkytz{|X}g{~ulhhmhonoiipipqprq{}gg_xnnouKJJlJllmxmxu{{{5KKuu                               !!"##$$%% !&"'((#$)*)**%%+ +! ,,&&"-..''//(#0$0)$*1%1+%2!-./3((3#30#04))5*45)51*16++2!62+2,&7889.-.:';:.':/:<//<3<=33>0>404?55@1?@5@61,A&AB&B7&7"C-C9-9;.=>3>?4@D6DE66F2EF62G,GA,"HCIH"9C;;J:CJ;:K<JK:KL<<M=LM<=N>>O??P@OP?PD@FG25QQ8I"8IHRCMN=NO>DSEESFGTAATBRUCCVJUVCVKJLWMKWLWXMMXNNYOOZPYZOP[DZ[P[SDS\FF]G\]FT^BB_7^_B7`_`7aI8RbUbVUVcKcWKWdXdeXXeNeYN[fSf\SbgVgcVchWhdWeiYiZYZj[]kGkTGalIIlHHmRlmHRmbmgbgncnhchoddpeopdpieiqZqjZjf[f]\k^T`mrgrngnshsohptitqiqujjvfuvjfw]vwf]wk8xaxlayzllzmz{mm{rr|ns}o}~ootp~totqquqvvwvwkk^k`_Q8x8xyl{|r|nns}s~ttuvw^__xy{|||}}~}~uuyyzyz{{{xx~~~``Q5QQ                             ! !"#$$%! !"& '('()())##***$+",, ,- -& ../'./*0$01$$212$2 2% %3!3!&/('(4))4##5*45#50*3+""-,-&6.6/./7((8478(89449512:22:%+A;&6//7/9 55 00 1 0 1:%%33++A&,&5,&-66787988 9  :3       ! ! " ""##$$%'&('&))  *+*+++,,!--"#..%'),/0!/00-!-1"12""2#23#3.#.44$5(&6' 7**8+78*89++/,9/+0:-:;-;1-)< =<)<7 />0>?0?:03@.@4.A(B'B6'6CC)C=)9D/DE//E>:F;;F1@G4G$4BC68D9E?>1H22H3H@3$I%I%5J(KJ5JL(LB(<M77N8MN7ND8OED?P::QFFH1QHFRG@GI$SACT=UTC=T<TM<DNOOVEEW?VWEWP?PQ:HX@XR@IYYSBZCZUCT[MM[N[\NN\OW]PP^Q]^P_YILZBU`T`[T[a\ab\bc\\dOcd\OdVVeWdeVe]W^fQQfHfXHXgRRgGG_Ig_GJhLia[ej]jk]]k^kf^lhJLmZUn``o[no`oi[apbipabpccqdpqcdreqrdrjejskktftXfu<=hmLZxUmxZxnUrsjsykkyt>{?X}g{@ABCDulhhmhonoiipipqprqEFGHI{J}gg_KLMNOxnnoPQRSTUVuWKJJlJllmxmxu{XYZ{{[\5KKuu                               !!"##$$%% !&"'((#$)*)**%%+ +! ,,&&"-..''//(#0$0)$*1%1+%2!-./3((3#30#04))5*45)51*16++2!62+2,&7889.-.:';:.':/:<//<3<=33>0>404?55@1?@5@61,A&AB&B7&7"C-C9-9;.=>3>?4@D6DE66F2EF62G,GA,"HCIH"9C;;J:CJ;:K<JK:KL<<M=LM<=N>>O??P@OP?PD@FG25QQ8I"8IHRCMN=NO>DSEESFGTAATBRUCCVJUVCVKJLWMKWLWXMMXNNYOOZPYZOP[DZ[P[SDS\FF]G\]FT^BB_7^_B7`_`7aI8RbUbVUVcKcWKWdXdeXXeNeYN[fSf\SbgVgcVchWhdWeiYiZYZj[]kGkTGalIIlHHmRlmHRmbmgbgncnhchoddpeopdpieiqZqjZjf[f]\k^T`mrgrngnshsohptitqiqujjvfuvjfw]vwf]wk8xaxlayzllzmz{mm{rr|ns}o}~ootp~totqquqvvwvwkk^k`_Q8x8xyl{|r|nns}s~ttuvw^__xy{|||}}~}~uuyyzyz{{{xx~~~``]^_`abcdefghijklmnoQpqrst5QQuvwxyz{|}~                             ! !"#$$%! !"& '('()())##***$+",, ,- -& ../'./*0$01$$212$2 2% %3!3!&/('(4))4##5*45#50*3+""-,-&6.6/./7((8478(89449512:22:%+A&6//7/9 55 00 1 0 1:%%33++A&,&5,&-66787988 9  :3openuniverse-1.0beta3.1.orig/fonts/0000755000175000017500000000000007116712312017152 5ustar paulliupaulliuopenuniverse-1.0beta3.1.orig/fonts/Makefile.am0000644000175000017500000000016007045425415021211 0ustar paulliupaulliu#fonts pkgdatadir = $(datadir)/@PACKAGE@/fonts pkgdata_DATA = $(wildcard *.txf) EXTRA_DIST = $(pkgdata_DATA) openuniverse-1.0beta3.1.orig/fonts/Makefile.in0000644000175000017500000001172607116712233021230 0ustar paulliupaulliu# Makefile.in generated automatically by automake 1.4 from Makefile.am # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. #fonts SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : CC = @CC@ CPP = @CPP@ CXX = @CXX@ CXXCPP = @CXXCPP@ LEX = @LEX@ MAKEINFO = @MAKEINFO@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ YACC = @YACC@ pkgdatadir = $(datadir)/@PACKAGE@/fonts pkgdata_DATA = $(wildcard *.txf) EXTRA_DIST = $(pkgdata_DATA) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = DATA = $(pkgdata_DATA) DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = gtar GZIP_ENV = --best all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps fonts/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status install-pkgdataDATA: $(pkgdata_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) @list='$(pkgdata_DATA)'; for p in $$list; do \ if test -f $(srcdir)/$$p; then \ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p"; \ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p; \ else if test -f $$p; then \ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p; \ fi; fi; \ done uninstall-pkgdataDATA: @$(NORMAL_UNINSTALL) list='$(pkgdata_DATA)'; for p in $$list; do \ rm -f $(DESTDIR)$(pkgdatadir)/$$p; \ done tags: TAGS TAGS: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = fonts distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done info-am: info: info-am dvi-am: dvi: dvi-am check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am install-exec-am: install-exec: install-exec-am install-data-am: install-pkgdataDATA install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am uninstall-am: uninstall-pkgdataDATA uninstall: uninstall-am all-am: Makefile $(DATA) all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-generic mostlyclean-am clean: clean-am distclean-am: distclean-generic clean-am distclean: distclean-am maintainer-clean-am: maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am .PHONY: uninstall-pkgdataDATA install-pkgdataDATA tags distdir info-am \ info dvi-am dvi check check-am installcheck-am installcheck \ install-exec-am install-exec install-data-am install-data install-am \ install uninstall-am uninstall all-redirect all-am all installdirs \ mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: openuniverse-1.0beta3.1.orig/fonts/courier_14b.txf0000644000175000017500000002177007045144436022031 0ustar paulliupaulliutxfxV4 Rj  / $  (  )  Q 1  )2  03  74  >5  F6  M7  T8  [9  b0  ib qd  zf  g  h i  k l  p q  t  y !  %  A B C  D E F G H &I  0J 7K AL KM TN ^O hP qR zS  T U V W X Y Z  ?  ;  @  # &  a : c e m  n  o (r 1s 9u  Av  Kw  Ux `z i+ p* x, ~" ^ .   - v~?<8xwy1lƘal11aaC2Ƙ01<lƘƌ11aa@0`f lƌ11aǍ10`L솙ƌ11lc`0`0gƜ1qaala0 `0`aal3`0`3` 11`al1K0`l 11al1K>1f̏x8;qqǝq301<000~{?3<><Ã9Ǐ?FxP8s73`111f9f s11 P330110f9 1613QY0110f5|6y0? 0|0`5̘6 PpY01 0<03Ì3c P03361 0l03Ì3c1Ì13f1 00`1f3c1cP~{?py<;yP{<~~Á~QH1f fFl 1 a< m1 |a6m 1 16<0̙3fƌ16fbxB  GC OD  WE _F fG  mH  vI ~J K  L M  N  O  P Q  R  S  T U  V W 1 X Y  Z 2 3 "4 )5 16 87 ?8 F9 M0 Tb [d bf ih oi vk yl t ? ; ! / % & #acem  norsu vw  xz:!+$,+*.^4"<.@-C g3ð߀<~73lc1fc0363lCư`f3 76a3lmc(`` 6aml(g` ǎml0l6H``ǭ 6ǎLl0l6``ǝ 66all61`3336all3ߏ`colm ay`<،08)y<3y a`f3l6ff1m(f3͆`0f3 6͌6fmc 3 x``0b`3 6͌f09P ~3 0``d`7͌f00P f3͎ xph>g66f`0f3; ̘hl6؞f06xxB  GC OD  WE _F fG  mH  vI ~J K  L M  N  O  P Q  R  S  T U  V W 1 X Y  Z 2 3 "4 )5 16 87 ?8 F9 M0 Tb [d bf ih oi vk yl t ? ; ! / % & #acem  norsu vw  xz:!+$,+*.^4"<.@-C g3ð߀<~73lc1fc0363lCư`f3 76a3lmc(`` 6aml(g` ǎml0l6H``ǭ 6ǎLl0l6``ǝ 66all61`3336all3ߏ`colm ay`<،08)y<3y a`f3l6ff1m(f3͆`0f3 6͌6fmc 3 x``0b`3 6͌f09P ~3 0``d`7͌f00P f3͎ xph>g66f`0f3; ̘hl6؞f06xx ؘl6x`06f؍; 1l ƝߘL2x06f13 g ٘pL2qcgm103 ؘ7>3̀l13`#ll̀؇,6a3f `13c#lݝla6f laccϟGa7q l a>c8qx00c7 [h~|00cl0 ̶fFx0 6fH؆|y؆ `F  f|Ɔl 6 <8pxƆl7openuniverse-1.0beta3.1.orig/fonts/times_14b.txf0000644000175000017500000002177007045144436021502 0ustar paulliupaulliutxfxV4RQ  j  ( ) @ $ $J +/ 2A 8B  CC  LD  UE  _F  hG  qH  {I K  L M N O  P R  S  T  U V ! W X Y Z (1 12 83 ?4 F5 M6 T7 [8 b9 i0 pb wd f g h i k l p q y ? # % &  t ; sac em  n$o-r4u;vDw  MxXz`:g+j*r^x,~". -;px{߿w><0h61fc111#c g 30p`" 160C11!9# # !x`c060C1!9# !Xac060&3-#!Lcc30>M#!cch060&11M!cc0x060C11c(!cc 00fCƌ11c̙cl!sc`0xy{߃w8>s" Aa6`` ~?1x; 7L` f6##Ȍ1c `8 }2po4c3όa ` 8 4C03nj`|| ? .\6Cx|3C`fp`'` 0xf3Í1afp0w&#103f3gƱcfX`~fkƀ1`vl(sy<9pnl9( /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done info-am: info: info-am dvi-am: dvi: dvi-am check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am install-exec-am: install-exec: install-exec-am install-data-am: install-pkgdataDATA install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am uninstall-am: uninstall-pkgdataDATA uninstall: uninstall-am all-am: Makefile $(DATA) all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-generic mostlyclean-am clean: clean-am distclean-am: distclean-generic clean-am distclean: distclean-am maintainer-clean-am: maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am .PHONY: uninstall-pkgdataDATA install-pkgdataDATA tags distdir info-am \ info dvi-am dvi check check-am installcheck-am installcheck \ install-exec-am install-exec install-data-am install-data install-am \ install uninstall-am uninstall all-redirect all-am all installdirs \ mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: openuniverse-1.0beta3.1.orig/textures/apl-bm2.jpg0000644000175000017500000001251707116560463021656 0ustar paulliupaulliuJFIFHHPhotoshop 3.08BIMHH8BIM x8BIM8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIM p8PIJFIFHH&File written by Adobe Photoshop 5.0Adobed            8p"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?I$RI$I%)$IJI$RI$I%?I$RI$ΟdnK11.s{&5h?]$ga?)~wWdRSԧtK{ĹkrϾ] 8 c[jJFI$$I)I$RI$tcҭ/Sni\=]5ͤ9D&ҿ$=%;7KwJ˼oc# tcSuO[? _llw3s[ECZgV~u?*K^=T $JRI$Ip$Ip$Ip$Ip$Ip$Ip$Ip$8BIM XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km&File written by Adobe Photoshop 5.0Adobed@@n  S !1Ww#78 ??З?ї?җcBj]ru@|o@ ;Hgiױ鵎Gt*Q=ӗl~iK:HK˭7JfuAlbEG!Fm~F;=hN,m~oS#k7݋G? z+RuK$L[Ӓ-&cY5VW]d9-Eaw܇},ehh@ ˠ¯&sA;]{_@sl.h;/:w9%<wKolK-ٸsɦ; M%9bPޙḾc-s~mS?",#[Ai50ѹ۷~r){i)к>V1kyqD#hW-f AIJ/'>T{~?J^$h ``{cIKr=#DIJI8<g($5IKwLAiL AIJ$SѫM"[FA6ͱlnݛ NYP_IIs˝ŌXlm\?KOo_$]Dqwac  n8-y#:?&WORSjnyE5\=R _/{Ul%ѦE2~\~?KO]v>]5> zz99Vqqsrx-<ik+mԊ6W>_?Ѥ޲m"ym2ým\ƞ?KOv= @w板%_^ַ"Ym|Zl;)i^AxkI.`W=?yqx-<o\9UkykuϿm  1PmSW鱿$T6w ,,/mu:c.-u72Yf}oϒIO~گI{vnmo~_|MTl,20okRIOA-f w=Ynl޹K%lgmU3˻{KϒIOKf.s\-ko6~G m~6 s^qz5?:ԒSG-p s\;5n[MmѩF=Wz^ֿbԒSG__g(i\ ..!$0cX*e~Y7$8BIM XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km&File written by Adobe Photoshop 5.0Adobed@    !1UV AQ"2rҔWYaR4TqB#s3S5bd&CD ?ݞy=1/v{>c3_|g̿m%V} ,ޑR1lO"И hRۙ~g̿=w{2?g3=e~xf{ݞy 1_BA/D3oUT3 }:飕e&~s@j=1/v{>c3_|g̿=w{2?g3=e~; bƧPmK#g66L™j},n``c3_|g̿=wiq [t M6(ZzEK3</O ЇӮ9VRh`-͗42?g3=e~xf{I)ƠLN5=Rgq'?lS@z< R3B41e@Yq9 j #oKI)Ơ+zPOs&~اr{38I)ƠLN59{"@򋗆) 21UFdzc_cU)>@rK,ϞOs&~اr{38I)ƠLN5=Rgq'?lS@rN^H&<}ht̮ Uiŗsd53I)ƠLN5=Rgq'?lS@9=TbjzP'(xbh?=@3+ZdfG1e5\ c)<=Rgq'?lS@9=Tbj/:EZb'"<=h`H@z4AR zg(1E*ȑb J`h[H ?"pGzO@H:iAMTʪcf\0~E ?$"e) &B) ?g瀟i8@P&:1 /T%T c2eh`/@ ~H  `1ү_/@ e'@ ~H g3h} '@CFa72|@ ?g瀟id @r@@ ~H  `1ү_/@ e'@ ~H g3h} '@CFa72|@ ?ض.EeA# AW8Y_3=G$8A@Fq3K)CHe #ts:k)+i42xcnoSd6  33]8$p6\6YŊVi]0n&8 '"6gfRC/f@T8&P` @&AD C ,DmÁt@T!0-0@3 kD@2 1 =bGHBrRh`/  S@A~PQ+/PV))0!v iG1BX?\$ܶTD8MSQSnrR(kl 6e9QSN UH  9-[$&L N}Ae加 G* h4 h@dTz-r\^HˌJQ8ui;kÄZI;?M0zĶV@Q9tk1EJ ša)HԓѬRzM2KmDK2TLm ]lQSt{VLnl" +i~@n9JƒzTZuQEP$tl7>Mxmi1$v8g1fiAF |ϖ}pt*OL-&@;$^JX. h )Y%ԯj9f˻ogـi)6R* }Hp (&BDV Cm`? cT `Chx:Z1n1@|PxͽAv`sr HB#*bG?\8~*@`!R9ɔ2lC*w|,o@I8xǻU+IVgnWsA8"PPFv[zܡ,crhapɷXɚ]1LXhǕDB'YѩC~ikGm@tZ襷~ c*jȡN1-\ !/f_Vpq(є&)-lPL,Z_9 8.A2 9nm`-dNaLg3MP b؁lဟt|CFphL%)T0L 荠7 P7 dFmdT5o)UOU+F\ UY2 $D6Qv }cqb(\bhf6"F˦&d `?1kyv|XL D ?509gh8՗K=,S^13O.yvYtLD˥j`)!c501kyv|XL Cǥj`b>=,SghϵK}zY!e509gh8՗K=,S4g YtLD˥j`)!e501kyv|XLLJ˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|˹{]|f}zo.Ye9fgש[噟^[˽lf}zo.Ye9fgש[噟^[˽lf}zo.Ye9fgש[噟^[˽lf}zo.Ye9fgש[噟^[˽lf}zo.Ye9fgש[噟^[˽lf}zo.Ye9fgש[噟^[˽lf}zo.Ye9fgש[噟^[˽lf}zo.Ye9fgש[噟^[˽lrw'>T0TGq{6 !U@ƓVi`ĥRyU&c=&2ZNK<)5Kn; HeguRee)%@>,ҚwU1ACRJr˧)BwUhI[~<(M"s咒TC&|-P%;0I )[tSʩ[vTn/Bls2O*_8 2e^QP)C:aI{ǛOl{6 !U@ƓVi`ĥRyU&c=&2ZNK<)5Kn; HeguRee)%@>,ҚwU1ACRJr˧)BwUhI[~<(M"s咒TC&|-P%;0I )[tSʩ[vTn/Bls2O*_8 2e^QP)C:aI{ǛOl{6 !U@ƓVi`ĥRyU&c=&2ZNK<)5Kn; HeguRee)%@>,ҚwU1ACRJr˧)BwUhI[~<(M"s咒TC&|-P%;0I )[tSʩ[vTn/k8 A5n=x@NJ] RUحg P!CwC4gNxVެԔ*oY3+zicl DbXcyC&a3ƌol>,Sŝ&I7)h Z\Ųio ?hy$^y0`Z5cY %,l82H[t@3de֘FT{#"e*ՎJ֖;f5i{Tθ(J" 9"Ijj^ #ŭ٥"| viudtݱWp-)*&0lvRwvć]OiIn#(H:,]'ŠSTׄz&TM~ۣw4*+ .VHlDl$M)ۦ]-8; Y wF3Y,a-q+z\E%V=9n ŪlNˆ὞Nm-?wfuz.rc6+3ޖnRlЂ/ݲWo񺈫jmػWhGu5 VY6\'!.vu r.P0jwm XJm2g,F 0}M|2eseLQ!2<C,;՝x07eM&eoM#3r3pymțc1 K o(`$&xэPx~И43P-W\ KM5; #C#Db~?T0q F,k0A xQVknx (ʃ{||Z̥UV BTzl>f-/jtP)DD@G<I-SX«v|Bص4XO9¸YV8a(JZXg3S:N(瀉%vUx.¸[f ''I-Ւv]j*o iڷk)K[w}>=%"t )MP ^cQ5nhk|$s[ E!o}B6_3hnt`7fK 0rrQMM`(}/,xGFa}D$B{#柺vWc|[`rJ%?ڳ Ktӡ _ZL on/KѺ8 )s)I~o%쏤8 )o\G0~x "Εe{K!ǻS3ş%3ƿSEnt_?GF_WrޕN$=վRDQs*sُ-ĀN0L]WS{?.GBCmk2Z{̓_Όv?ol/˨eϹ1cy#G{,Dg\>Xz(qͤFc/YǒIOx(Vݼא_jn`y9+RIO lv߃x^:J}ʓ~/I%>7rje~3kIOx#beYaKKaHwI%?8BIM XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km&File written by Adobe Photoshop 5.0Adobed@     !1Qrs4Aq"2R3SUђDT5a#$euVYBbC&6W t !1"AQaTUW2RSBb$ ?a**BJXRmiau0XSgZFJciIq%7 +XD#gN )2K!H@}IѸT@ f{}sv`cJޓT@ |[wjS{v a*`OȤSs)?ˣ&Uha2əV]nۡ7s؀d*Vڠa* 3=01oIݪ >T;@)ɀZ;RPa*H@ |[wj~p ?ʕ'v R&hH@a*<i1〱5M(Fڠa* 3=01oIݪ >T;@)ɀZ;RPaXgZDk8-RVw}No߀:q.)s\*%DhPEI9^,$_AdWmӀU Ǥ\mͦZ`,  K2p+8H D PA_u$}[WhZ2Q @}-jN6IBC))0HSH@haN c0_րNh$t -$iJnQj!d  >D ,o?rj@(H"`Ҁvv(6tj*eMy "Ѳ t-[;2ngh wu\uj^V0- [klvsύ!,% RHq܄$$TBTTJH6)d=|h3ګ9)gV^ۊJ\yG/-\mL֕6GF'C2qZV sέ`!H (m Txٖ[e3}^eS`CHNO)Tٷ[*jc)&G4`%ڼ´fp̽UԓI+kLYJJ/r[Ѐ9ɖXuaC[^M; fEf3ڟƀU` A-_];6H -=#yH% P)q̄$(p3+b4KA)SZgWs@YG>44)r*QQ y7I6%e;YkmQ%M wX oL': Tp耟tC,x& Jj-.F֥ڐ:E,P@*Rm68:-tķ/U|,NU-$nh s?rpeBB^W]hCij 52[2ͲThI j@WhL@]8BuA /-j37.wʜ( EBBGD{ķ 3ng#FpξiI[H+@Vk@s/R[еP0ëm8S,7FNrʦ$M= KmUSXô=JffQܩR,fE@5>#8PJ%|V[Sh(D }8.5 ˗%#F!%k eW#@e=z? /qń!2 [F My ѳZ6`[jSV7CdNـRVE!bn'dF5>a~X.%- hU`,ltJ)o2) M@BNN=.K҂V{@YNjj\euI@K`ywހ4㼻@3OB۔B\AmWYBń< g#FpiqE nUeq%%e*qv[d@v pڜ49,)_yn/,t`5.Cj=DQ*BVT:2rX Tp耟t+_Foi@X@hfkNjJYI))RR3S/)ٶMeoX-ZRK(i?l_;bD_{e' .W؟8W@$ɓ*JS&ЕFe~d||dU&MbꘙInHG"^rv¾2˕'N\?pVc:W*:%UhfQijPIZB2m` Tp耟jI@UVn*XSV[3J0 ]e* !_?#د~1‰g^c:5O#VV,^3Q_6qv؜;Q>=Rq{>Sov?v1j^.ϳdݳFQ0)AuA J hZHLL;?lq6ҲQWf*ݣ~pUeVqJRGҠR@ Ʒ{q~frfr5Ufb1]4MSaݘǒ64qw~.GE1cO͙䉌O K?J\TߧeԤaDmb*;#RT]1Unb"0fpI8{rU6wv)u8l1L?g#Fp?r`"fb]/M 挂 =J1&&K:`hm;I7S@OSk۱â|FqӀ}%a<绎:H%  6o Rj~@5>H6mNk\a9K#FƴNSigx&fRק*/&Ӑ,TSIT݌7hܦj鍕UN3/-4fvю=q&y# g#Fp?r`=!ԀT׷cD ]J6K{ORywu:Jl@@>lcaSk۱â|>m%{QrsUax3W۫xm\sM~}lvwY;LU\IFzsvN&_;´Z3z~9L|^9aa5y9kGK$k?89ksSH(f8c <!w?gk^6>&2|q/-oWsgYLpp>&}LNK|BD5|Ԯ_ܽ74\N1E/xOڕݯ{bq:-{Ãg#Fp?r`=!ԀT׷cD ]J6K{ORywu:Jl@@>lcaSk۱â|>m%Ė,VA3{\cTR cG6\oAwAn[ъojnW_O1'n%y:TSfGʧwoalgjwqzBzgjw{ڄ)x;pz2} R=v>djԥ:,-G3aSje)_--銓ܸto}ȱ!(\f6ooor`ž<]^\M:5C4[0g#Fp?r`=!ԀT׷cD ]J6K{ORD]Ze96$(ig 7o@ H'1g#jg=LcZSr>x>>1g#jg=LcZSr>x>>#R8jN>>Ta6Dg'Ri*Sa]'52 7d #^ݎ 1Ci/ ՆQCһ9*>Ky.*|TY*\AP)Wm[F[% y)gz*[ހ%z6_Rt"1MP)H~z!r&&Ɣ6`,YAjU &"ې %JHeIْJѻo|*)ݷHi&|֕#x%kVq\JH.I!6M֘ NtV@vxeIڦҜ6wKNxRkƒۊ sZ *֜6JJPr u*UVt$LLQa[BfZiiX?_xdSɺMe.ܽSmǩ0Bk@z Ϥ&4 kF&iCSyZWSG-ђICd>JT@H;Fh8\mOw"N^`@.bA3D̴HQj`43 )(tyrtom$^b\R0LѩbECZ\.Ť%(gAQ`׀p M$DHZ 0R؀U-C" PAMadImJA*/)$Nk p{^-zCOn N={M[j\,!Vl U*0uU 3aU@zgdœ2`K)/١qA".X 4͗SӉuդѡg Tp耜@P)9 ODLK؄v ; sØs > M=B;2̪PKEI n-w2Q7& 7N,zDKOZ`4F=se*m;i!];+/]xgo0!v@O/_p ^Z,?+RP,J{6 ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km&File written by Adobe Photoshop 5.0Adobed@ \ bQU ?ШѨҨӨԨը֨oh'n$PpU䝻귴|}A@}Vv8hN [>I۾>{G;w4oh'n$PpU䝻귴|}A@}Vv8hN [>I۾>{G;w4oh'n$PpU䝻귴|}A@}Vv8hN [>I۾>{G;w4oh'n$PpU䝻귴|}A@}Vv8hN [>I۾>{G;w4ʢʢ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜʢʢ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜʢʢ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜ:ޜʖ9)oӞ"9)oӞ"9)oӞ"9)oӞ"9)oӞ"9)oӞ"9)oӞ"9)oӞ"9)oӞ"9)oӞ"9)oӞ"9)oӞ"9)oӞ"9)oӞ"9)oӞ"9)oӞ"openuniverse-1.0beta3.1.orig/textures/apl-o04.jpg0000644000175000017500000004523207116560463021600 0ustar paulliupaulliuJFIFHH Photoshop 3.08BIMHH8BIM x8BIM8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIM ppPJFIFHH&File written by Adobe Photoshop 5.0Adobed            pp"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?8IKe;DI$n4o~INӰzH&6i1_al4~  Ƅ.$RJR$$RHđIOн)Cy4qLyGHr~_#$v$oQ撔y<|J<ҏ3$ $H<gNZ^恨8?vSѺ8_ ?!JWqM)@ )]x?I%+#(R=))I$JPK_]_%-?bײ~%?Һ8_ G@F4]j,ǩOc\F~̖*d akD΀})cD>3rA))P|"G"F#⒔I$jJDJWaj4%?Ӻo;Kҷ$[S}zV%?Jwܗo;IL=*~#M]$?&Je`m%idzթ>ղ - JgNǩXYHi$vVUsntH w @U u%0o R->Kѷ]%?g"HargZW?=뿹Kx`o+լf5ŵ{nc-[]f= i!SK$*p{?rCg@=»۹)7IO*zՀH ?|OVĵ"f3ߥ_IωZ=?O}_23dzw!dSI/[Vx>}.9INOjOvF5Li <*4qrxINgq]ʝWs8Vܺec_Jg%?էq]06^֝|^ѿoT9 r4щ+:^ލw(zOIIWimfBMF-zxW{>UINvwHʭoSackM*,_ok2׊FKI?W3w~E(O4rۃu¤=g?1zCtPA+rs*kmq$;)EmFc=O#2Omda~?վC:[ )wZyos>*gH7u<7ckۻKnZC]c~MznGg?U>ZC*AC~0vZ\ro=WڿT_z7Xcۭ Σq-X%vX ?+s1Y-幵1s2*?RӧLL΃hiv/섗?9?ho֎?TI85ip]?Wh1H-eѿ\ۺEmsiӊcU7;] )?lo[?&ޕ~EisI)XWіqML~/p YCw ?Y4]|m;m[]z>RS8BIM XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km&File written by Adobe Photoshop 5.0Adobed@    ! 1r5AQq23s4tXa"#ԕVRCSDTWB$d%U&bu'7 ?e]nTÌ a i ڀwɹjd܉ɉT̀cMACrsH0t 8Tf#DN ``,L WA!|D1 /Df , gJ"[R Q4bp΀q6I$8B*$*@l"g!4'ѵ[U >/_@k&ljo%l:yDZ6\R@AG&86r8AED3҂)RJX`8U8jݱȘ u!<2πh\0&Tn8D"F @L#e1     =]GM'|2W<ۚx ڧXC„<`K QVI1UL*@@@7bG.$OY,5+E R:!ǩPøs*ߒ0e_F˽lN}4=02Up5&Qsa!9s/>[*)UI}A~Qw8 ]T  d9 p#̀IȲACf!D rne    =]GM'|2W<\\gO82iTts&9CA9NzXC„<`K~st2D: J 21P@67ET̨kȥ9Os\>rTr}Ǐ\=T ]Ġ9 (;E?C$@@@@=]GM'|2W<  Zd"`'uf0#^@::S!Bvǰ%k?x6D*BG)YĢZ2^L"x9&YNġ"sP _i*~}9 pm:$ La [.w<"g@ BbLQ(f*DPP+s@B`0~sHԕFlɸL0@Dww 1t 9C93U* Sb%*Q)@d ;Ll%1p] \WE**8< P0O}X.?lUBBJ`&0"#ίI:ID@&ae@ ?#0LTUB8]Xcl Y=@ qȲku:8 pP/)_qE0P!P2 LdU"Zzxq˅^B,\E!͐00~Qw8 _i*~}9 ~H ]o0=. fY/@:P Cqnʧ JMҀ1 paP@U1Dp?dt*ʉM9(3 JMҀ1 paO8p@ (;T 8r@?> -a {\@7W_%U'P^t9@@ݕOn0֕ޛc(d*>M{zٺP5*,P*P#ÔS/P`8yZr~ z̛w$X f!(8JMҀ1 paO8p |9 xs)'-b4;r)NC`h@r _i*~}9 ~H ]o0=. fY/@:P Cqnʧ h K?X2,RQcg)S N^lˇ4͛CgYM2LcYd&I")uH !ȡ g>R1CFɯ{P&" zp)?1yFS~n(x4)b(M |4M/F@: ?x?OϿC$;E32"YB, #u)S I@DX*'18ŗ UPAZ!|p ?@KSʃEÓ&'] !H }yr‰'P^t9@@ݕOn0mVF1t[J>Ep(T (C -Y? ӚS2@y@MLD pd1U׽(=]GM'ʉx*p֕ޛc5FqDY^8 u+Yv2, ~s~ ~H  3QN@r Ż*`'@%⸛. ёJ)g3Y%} I!v/iUYU͐q؍AlYUFiEH8QrZ$H&DQLH@gW^3t?=]GM'ʉx*p֕ޛc5FqDY^8 u+Yv2, ~s~ ~H"UtEuȀ!Ec#b4;r%~))Jb"#@0 /g̝AzҀ Rb;8IE0Pr`P*/?6(EȢOc &f@=]GM'ʉx*p֕ޛc5FqDY^8 u+Yv2, ~s~ ~H+S d0m/K &30e( , 3QN@rzRbr0Lr ~NǡS ͟~K4n%&^?V(*tĆ(Q&P =. kn=]GM'ʉx*p2g(nV˄ZDi@(wԀS.UE@θN$y(^, nFɬzPs'l]2dň'`:ˏ.w<ع *0@\@ (;T 8r@?@DX_ڌ2uJKqTX htmn(x Wy5c7J=]GM'ʉx*p@ <+§`рrk.^@O8p!S3a~j0(P/< njQ`-Cjһt a {\@7_U׽(=]GM'ʉx*p@ <+§`рrk.^@O8p!S3a~j0(P/< njQ`-Cjһt a {\@7_U׽(=]GM'ʉx*pQ0     w TKŕS uY*ܩ H؈FP&H's'r]E#U(B@&N 7wS+ě=M4P( 2Ri2qte6&CəAd-~ 稶L3U)N r)Cn-`_i*~}9  "p2nG gތĨ |/(ܜSQ3r A4] tm^( 5bȦ|LS*l=XOC'`bz{'9bU1=]GM'ʉx*pzlY+$9PL>C(@S!J)NJR8H 2<+§`р$ t\QtU? @MS sRj6Y!1ܦ)Qh݈!S3 ?x?OϿC$6%m/K #АH:9!5 ~ _/@DO/3iEK ?؄7n*cb3 j)4e͔p&aHL &c!, TKŕSqERD$ SJFPukiRmW U]@2d0M3X)3߿:(uΡjPABw!Hu.J͘^[˙ib!ź!KTQJbPƑ0U>ighр$ ~n_nh p~FqBgߡÒ *~}9 AQoHFPnpF9㔓 B'8rs BȜf8D`8*%Nn.P0gC hhQ2L:2H >WHJPppym6`L|349dP )p_ؔ%m΀A݀KH9$0.a]A?z/4p!Sg8r@=O8p!S3@fB;HCt%_S3!]:7*bA9ńe&,@jb"QP .&IuvUM2H qb0:wGnuQE3"RUTI`( p8?)(gVLU6pIQYdix2,EQ_`@t:yrY_:QesfaJc2ŇD݀<Ӝ;IJJUb\!<' Sϓs|)s,p!v81NL&(`ME9͘>LiWc9D6) @01(s`A~Qw8p~ ]gN@ UI@eڸPJts#1S3lU cSS4@0U勄PNL%.Ô @<)`, ?     "WPL\R`Je NȢBr@pp~~t_]Y4^ҫlXG1$R  # oL_:]u]qp)JdA^ ^lL5)$<1COD ~pZLⰈ <r@ss%3BS.$+M`T!01 @/[O%>B})-XInvPJKs>}R[(-'Ғu@in>k| Ku ;]cP[O%>B})-XInvPJKs>}R[(-'Ғu@in>k| Ku ;]cP[O%>B})-XInvPJKs>}R[(-'Ғu@in>k| Ku ;]cP[O%>B})-XInvPJKs>}R[(-'Ғu@in>k| Ku ;]cP~SwZ F_)w}e|,/JV_)w}e|,/JV_)g~S>}AX(8~S(kEY|} ҆Up(kEY|} ҆Up(kEY|aPV>3Nc?aPV>3Nw}e|,/JV_)w}e|,/JV_)w}e~}AX(8~S>}AX(8 } 7uTe|,/JV_)w}e|,/JV_)w}e~}AX(8~S>n/c֫{ jPSC&n2T&Kƌ#1:k Z\v Vl%[gεsB3$|_ǭVp7U?XVUowk5ՕqK`WLf0l3QX@$ӫ\Z\ Zˣ3uU OR(s<V=j<ՏZ07!z{PucYV[ǜrc6!Sg&irvn7Ԁoɲ:oҒoT|TSͶ)\sgț,GϛXV=jۍVמH/-UAq\|bxxчN\ ].:Nٷ=NA㤕TsM@ .dY>n/c֫{JWGy5>S/ҵ礜T !7yܘ~DAlN9,A'6@ ǚ$!6@JWGRgyڔ}H3zdD\FNHPbL ;@d7Bm$T}KhuN&&vq B t5)_?wJWGu=4}`ZJɘ_Ʀ}M *63qN "O| =X(q~)J'i CQ>3OzdEF¡zr"c> Q u k]̈f[IEPE~re8D?sy%4q!(`=yѲ"Gv#aP z=9Y B`(Ct )E9WCsAp̓H&Q)C sFۏ|bþW2Ň}׍7QFaQ+1N\DhBQɺ 2>lZ!n#AE^,D69e: >tۏ|bþW2Ň}mOD8ߓ3\M:39 in@,CKzA|حUg@U/,;Ew C[W*lG,cQ l qd@IMnM59$1SL/c 4_Yy?M}`Ժ󦋗}`7΢^vuB9Y,a. "\@6Hz=H2}Vه5y]qfcevIM}`Ewu.<w -F׷EPVm6s@Kp$@C yyj{\up)5UۢgG RQ`:]|ϻ_:hZh^;m#0`:G]|ϻ++^0٨s9s*׭cfA emu 苨ru"`٥Dd sd;EԲ'^K> lBXk7xԠ2܍z 5DsQ;]A.Mܠ mשp1efR1`@a-Z0[UiO'P6ҢI6va$K\`fpmפU+!k8ەIU *ƖF8gq mץ3R1k<̓u++^0Ys9s*׭cfA emu 苨ru"`٥Dd sd;EԲ'^K> lBXk7xԠ2܍z 5DsQ;]A.Mܠ mשp1efR1`@a-Z0[UiO'P6ҢI6va$K\`fpmפU+!k8ەIU *ƖF8gq mץ3R1k<̓u++^0Ys9s*׭cfA emu 苨ru"`٥Dd sd;EԲ'^K> lBXk7xԠ2܍z 5DsQ;]A.Mܠ mשp1efR1`@a-Z0[UiO'P6ҢI6va$K\`fpmפU+!k88;^dMfZGrPz=f]ZUɞ ^rhn 9:~gرbŌ%) smZF6}v>οVN+-n1I10 %4p6v'|nZ\p٬jҊI 9*X DE4++bKVo$[vĢR'HN/Pd̶SEݶU{Oi2(x̘d X lĬ J8NK-ZH[:g%I7°50 D\#9$~uL7کNfcE=-Fl+5ATA()@grv'ms=#YR br&c\A3 2lD !GJ4of:jؕ-b.@xi 43^VO={O,ΊtX^vPWOGֆK憨}-(Aq^8KmgkdSuU|ڪڕp)[: pMvbT@ nG!,2mݩĺTArydnSy03<_ŋ,a)HfNwMZHϻNZ׽SIՀ%eQ;MҶ#&)4U\X2D"}Y?5RYް˔;5BmZQRSI7%K@\s7u覅elIyC }XJT55ZI;Epa ;ٖ}Q[i"&RV9]vv82T !ՙ:CaM~RG՟֩u[x I uvL&V( g9ѢS|U=c޽llhC[ͅf*Z?8( Pv>Ԃu㧤k?XRW5?AlZ]$ k&zAQfQ͘Hc2@3aF- M[E_M!okxq}c)倹NsK֎ WZ |ťUR@ N3@psg)vmblWnU[Rn+gYiJQ6QfM4XVuUH.O,ް `O&gرbŌ%) ýikI@iۃW:Zi:'iV:d&+ TP(@D@@UO5؞‡]k;rfMJ*ZJi&`( c8]Ь/(aYoJ]"I:GppH L9BA§{2O}+v]U?Z@ޛ+.W2cgJa$9`:'Hl)/O(Y:.oi!nn霕$ °%p0\Y4Wa֊o0j{;׭-hktSQYښSμtgJJ-SSˤqSpW*,9  c0Hl=(vbV(Q-y[<./e<NVӴѺ>gIm}XUV `E8!hs5y[{ټs ݵ|mޯXg8Ň{|LǴVYqѯKvpsT/W9( )]$ s8Fcr lc*ĭލnv/W^|IC:3's&]ld,mvmwS,NuzRh0* FM;*AK\^;Y@'D2ɱhff[z5XBrݐs68m!%MNABBp_ޠEJSR9DL 9q}hNRh5 an|&Y ` 0$@d'o AN2b/O|9"le<( %s%"~١I% ɗ hݠKNZ_zݽ2McP1d0[6Ym޵jn^Xg8Ň{|LǴVYqѯKvpsT/W9( )]$ s8Fcr lc*ĭލnv/W^|IC:3's&]ld,mvmwS,NuzRh0* FM;*AK\^;Y@'D2ɱhff[z5XBrݐs68m!%MNABBp_ޠEJSR9DL 9q}hNRh5 an|&Y ` 0$@d'o AN2b/O|9"le<( %s%"~١I% ɗ hݠKNZ_zݽ2McP1d0[6Ym޵jn^Xg8Ň{|LǴVYqѯKvpsT/W9( )]$ s8Fcr lc*ĭލnv/W^|IC:3's&]ld,mvmwS,NuzRh0* FM;*AK\^;Y@'D2ɱhff[z5XBrݐs68m!%MNABBp_ޠEJSR9DL 9q}hNRh5 an|&Y ` 0$@d'o AN2b/O|9"le<( %s%"~١I% ɗopenuniverse-1.0beta3.1.orig/textures/asteroid.jpg0000644000175000017500000004206707116560463022241 0ustar paulliupaulliuJFIFHHPhotoshop 3.08BIMHH8BIM x8BIM8BIM 8BIM' 8BIM5-8BIM8BIM@@8BIM8BIM ppPJFIFHHAdobed            pp"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?~E]HkXo+= 7k^n4[M=xp{oM@76mv6ڒS3X։k –5ap  " ~yt3ˠ[-U2iFA"IIIp*ql 9ia \s,$˝=I" i:7)u]%ԇ=礧>0czlsEC-smrkcc^'7r&]Sr{`p3cˁwnIL6Kcp,hwD"[kZ6Zk]~!s 7<:]61cdin{Ϣ7j LˏUl̯ǡ7 )z@ i} ͮwwSPc'{I>;'oѱ[bG776WFMg%sl6]kKgڥC9mEm?E )c鬴iuOkDNgrmmyn[Yg"ͶHH?wZ2Ik-n? ) ƴ8@&H[d@x$mM~Uii6Hu'nbJjYӭdpӧ75u@"{X׻Ͱu@F\ˋÐGԔeA1vKv}2Pwn҈yvE `gω)n;qI;^Pmkevw}N5lcgR׻J+-A1o}{l V p]s5nB8u{7-Gl$b1kMU]7D繏^[,0 IevTEͼjO$FWrCC mnI֖󿨪2^!$6[^[24QU9Fro&6~[e边84-[sq0Hpf$s^?I-[XT#}b}?o?b N7hܵuxfZ'\]m~oINMYk^ $4vk3oQL={}U[.@wRRX$A)[ZKɀ @L2[}67@9?ʝpQKg贷Jl[u--&YW}ZF3WemsM'06~kS( Z )jJCAxx- `;Ձ0=n\%5VZfxkc,wwE/sӷݾbJj`s$}ACK};?<^?I斃۽)ҝ丐A}r8o%RבW$Gbu5.m $:5Z\X sx1FRR&XkxhQ\;Z6ęYujѐ K[N$պZK$8q&`t*%w0\]X֫?xh& &c#Ky%1Omv7r-gI-A{v8mu8Ȑm$Nsh1]=ۉE,{M}Et=f8x/~۱Wp}Uc{Xb%MfgQkֽpd'F$n58#G 4;=OO^cs7YeOKm[OqONKXY[fӨ![~ʿtQp۾-~"Jj+\ۙ$o;z~5>w ĸ843 y.sxN~e4 Yf!57 lm<X{ZӆMnhs|8'sviTM{ϸ q>HD< U8?$ٳ$k\DhC.%^` 0>*Xi=n6Mޥc H2 6R6l,#Rdf k懐D5xGcXkZ4>Sۯ6 ;x=$kq7i6FCcM#xhk_0ulkbҭfVL齌q5l0}k|;nji!hakǙhph}RñXc=`4cE҃1eN{g)/ѻC\&'w\n3%ͫk퓴'{u4۹{~MT^'M,cIOW.81>gv+U~vv8n]U;丢;깢d-v'IO<n; mZa{IaG^1/w,ohs?t8,:&]HmS"l~ 5mw$h}$c{p$^l/ uXnNٵA\llGщ1ݹ>GN32&NvoMZJznըNp&=UCCOwJjam/jN?}hc>nc9J8BIMICC_PROFILEADBEmntrGRAYXYZ  acspMSFTnone-ADBEcprt$descqwtptXbkptlkTRCtext(c) 1999 Adobe Systems Inc.descGrayscale - Gamma 2,2XYZ QXYZ curv3AdobedC          3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?ScdYc~`֩V_ Z;t3Qűcaf`#4 /-*4jXY$NM@Vpw8ܢs M]t+oa`M$ͩyuZOj%=6C!N'Mc{ߣ w?5W/x]K[,`>##j sE#J֭y`dnckj5nmc 2qH^>a't`>#wUm:f,#RdSTp0w'|x?t5˛V1|rw}Y1Ec!Ơkƽȃw~*;E»^Vs+.-Y1_ o\d;!iG%ބ\4Ϋ[Ű; NKeYc^'ۦ+qs| hN cu !.aZ znh.d@L{#8spA&Nӿi7]<ʍM|GGJUYֈtč[,}w[S@N y\Yj|nrWOZ8MuxW/^aȪ:,I5GjOvqv -}4 F[Hh_K R`&DXC`V.k}&JHsM!i'hݨ?EC;wڍI moyh:<{:DiݧP}׃Gߔm!?M$P6ڏvkPp nC$ U+ )Q3~Ҭ:6KNPvu[mgAMV[{<\:#^-qc{7&!i?7kߋVbH5^f!sMUdC0>h#(c5u 5ѣ-1/a:|Ů^ l;!}k#dӵ֙~Pnt1^yy=vp?mth|Uge#sj}umeCG?++(0TK6 k${AI?onYlqi\Hpn呓 s]Y$pZQhy<KkkHÕ]:ɟTY|sCibeUA,,r;Hy:Ѹ5kLqugd=y.Y'@,n &oDH$ \VӎC?&|Hhtk-Dz` ?zUlncl]_Ƹ`Ѥ@V+ƃ?tBA'S1E*u;6M`{\{7N71ۇ٨"8L}*p@.3ה;0G#Ӓ[qFCG_ս6ws^u?A2HW4d7 b?y 5ӿQ.kt6?o,ְXvVq1.tF>^L:@_IP3jisw<~lh|QWca.gjist%ϙ'@]Y١̝ѺIM,`$JǍq"{iO06G1:(TXZwD5uuaȒ#p%T7G P{_$tuW+-{KZ#|4^kN^$ض1! #D5MΞ'Xѵ9#ch a@=1:)W8[kg 4y xAviYKCs4vjN^֯S9өqVȹTQ2ˬL21'+ 7q1Ow,܊ϩ!]u`9DZg{s ?gwAe LA$k@pОf *9@,ywCtTRDA'DvknCDlOX;D'@Voh!{)prs59U\&t Wh~0OY}`jU]sw8E;Z59H~)9 AbH{O8}+6ZFēZ]|S A UKc"z ՙeGEY7]1;BUm}ŻǙQhɬ侲Kv4yԶm>v!*dn=(5 ]rtrc,΍2g]@!y>]]UPsO ˋlw*.sDAQLִy{kxњZ FOhXnf7O5U- _'ϲ{D >\8cPDiav  r >U0iYpcl@@5x@GDP&;-^^nc'ᢹԯP ,NդO9A6Gk l@$g^M~h_y7#VSǢP`xJ`]a@۬rLqV;{bWG',LrO\il`xO-ܖ`'}X`[%`gO4׸8zOI ` nI׶D6YܫUXS-ԍ#7A @-:b4U nj%D&bwrKK. ôFw뭑n"g~ӹebC is#IBnPZwn{Z $4F֐"whu Zxq-բKXA5?"/x.qpm@7Fg:kkn )N!΃_4ph"$ fc;HSc>1gKd~P64?SdW7y7|tf쫖kMacU[U6slb?8(Z\rCyVbj#[xYu{/?y,77 I`{e,d>o̍?_Է=F641U:eOUjv۶̟ySHTMԟM{Hqp{L߸ZuU{6Z=ϊup {(6a o߲uKL*WX7dv*a"!@jSY5ǹ۫wHVX;qG Pέ5L㏷P縙Bah%j4-0m@C$}{Ӓ+ɴ^xYlk,&K\Nu.c5pOv <q@伷 8ݨдy~=2XA S\3I$G2ZȃNʓ=0r#Q pl6tw+}',6L2G'h=_ղ gvQopÁ<`r>p>f'#Q'AcZF"'E?8 [lvmӝGoʬz!n_@ջƱ{Cޫ uJC'FsL 4FH:U:4>I.%R he4jI^4oWC@ }_h F^^ <=aPߥw{fF5\6Pjns֝hR̠Y\\7Z,ǀc4Wі5|GY=B~TkPrِ$[r|X\8cq>wVѯ1?ܯa~wֱd "9eۄV!{2#A^q l-->iV&I!k(nD^ ?F 4(אq+,: HW@-;b_!2`xheEA%ύG;qq $75֐@p'y;!v53OC.0{rduZI쪺̝nta;cIaћf- !c1}N9tջRdWs?lXwlna]YE4$Bӝzoֲ9Fx WkmdDRNA%kN⧻BKwmh v[]ևs6?56N rc+\Z8D֏ʵcjfS5.-o ݴrc}C  OtZٵŮ I8w{oPMuvD'M<v60[ i@.vZuf\Rx8{% aAhXӜ$Y\5!fqs KU>{_Z浭ܝە `qwN[ qpaO3^" h DǻaTIg@ d.ZC|:洐ʱ#T)P˹ֵ՟;=,p砵s15*96t׷e(QSfu:6Л˟uD (>`D52yic\*0vK@ЪS#a$ݔlkw:5:~FM{!u &I׀]ƄN qk5OȨ\AhKt8=c;qOwVw MFN,58㠅cՐdv׺ 6AcV4Orˇ M ?4)ÈI-Ciy#5&c;soKT+nh!-`\jOa5A2ܢ [.&s>[]$kk߾'s{> nۼ; lc({h 0=ǍAN8^%Vz =ӷ{b?cS$K;\ţ#=VFpJG\s΃kӍyXNذj%ͷs#g cVHì!=Ӽ8wCmE&N >MjY:FQg`9oP\ñA24J,v 5^E D|?uVΠ6?KFy)d%_ӱi Dj=U'=c bH$kV _'<`#bA#'/YYmvM|39i 8F57=|5{ HI=D$iƠ }Tm 7SUkpMadqaG^k7mdY[p-վ(n~?5C kzl G(>!9k3'eqa;Xvټ6=ef*c#(uί<mNs&::Oa胈O}ɜE9AmL\ >GRI'ܟҲ .V;$ʬ]TdG}ӣL*< v2v1no珣3xC܁c{2:\_А8>I:$Ds'Zk͇l UI%1?BnD`7Sk]:'RtE~r G6Ʒ|liO?rXf1_jGkX݈rM􏴏Qˁkmav;`FHpI]&XƤ#SV0;EmQ=.pp..?Ln[ KO?i <4ydew;|ZH%Yt}D2-}9l1I5$u@l## '2Gvl K x-7hld{L&env>ӯceq[lGTi-v7J㷒gp'Vqhc;@${@wզ8Rm%΂  BmsLPO/Fh~A^cgDϏvAΓ5hVv $ }9Z6[, %C=Zxh 1.A}F x7n_>~GTdž6FQn8*;wXKD!}dxJp<[~ݨ` "\9ȫ9j^b66V{0OxP'XqѠ'_{KAƚ"!6jF"!C$& \^cÍڡCnsXCA$}5n DGÄkkkin2gΪgpy?Us4cR]wW Nւ&?$af:~)Dldn&F2` :k>0t>l@n=w:״k.x$ШY{9sGgu$D@TPnO5IRϝ5%3jkdD);nC6hxBHΐmٓ +0yD F}|/C. &c.eUYow ߝeFG#є5 Faiq;LL? !k`qa&=^-~o1Y5ԩȝ4Uly=7wXuFzOO.Ȏ@QŮI<ʓX\NI܉iߝ@:;5( jGݳZ@u-+ر;H"t>nG,lyZ+Lvyy&IQ$/WjdtP̀;xʛ[ϖJ^ٍI'S6;ɟ[DZdZCƣ*d:=9Nf: ƿM5ƃD*.X3_} `hwH:)>OY,wm]y*ѹOѝa#~*o'0[ǟQ@l3-ư ۏ<Utb:hĂOݷr:\׶F@.h ehw *q|'AikMHoKN-WRI$G쮧1=-Į/q"XX&> }(j diư]-t<4{\߹w:~_c4nj5 |l3N׸3x<|W/tI ӵp|#Ĺ@% .3徭-x.\U*=>S c󆅚~H5køȫSl1cteO)+1Z譜H ,mVTk[//s&4I?[l>6:kXF-tK!??ITL'n/ jwW聯oOԶ4FV x(:: bDemZ֝<5 \$'MV_P,lH=ܹ1hZ=Zjk^d4X䛜LFkIOx{Iyl?-%ϭc rgwDdI4O2V4M}?s̺A8*==~&i}hqҏޅ;N5nK\O$oUeDXۼ'P{~AZMf}G85_&M:clnP, "`k5[᠟%`1z@5N#Y2̏su'i2I+\nGw~A\Z7%bKHoOڂh 5=^*_g {]t\d@%~mڜ::vHچ:kkZ%;HkwB=q g"QpQp~u]N,;C;[ZU46!Vs\HqVi6=۵.q;_hKßOdYhݺB^dkʭ/i +Wr=myȘ}KƳVӚ:t1k[5~; 6?0fO)5=8 ;LǴliZ^[؉ꐮ4rʇP 7j?*|:?U4 : !x{`rwOU~[Qkkdeb.i=G+X61fIv.2I2k#;zHk :H:OڍVA0lg8q,k{AGnH0XͿh7t_ɘ*&M'{0Ȭ;pa 6[~Xz:}7"ʀSO9eH_?~7/ /{$<_XOKM3{K5FkM N;jGɨy7ãdjIG}O @4Ȇkp7÷I-c![ (:( vv+pѱwrҫi;Cu,l 5Jp*;Ik=;$>ms<7QkƞRu;nY9=openuniverse-1.0beta3.1.orig/textures/body_a.jpg0000644000175000017500000001105607116560463021656 0ustar paulliupaulliuJFIFnFile written by Adobe Photoshop 5.0 CREATOR: XV Version 3.10a Rev: 12/29/94 Quality = 90, Smoothing = 0 C     C   @" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?H~jr8GᦵiH2,Bq-ɞMF7[+^l)ǦbfS~t䟽ۏμǀ7wSΓEj89r0 ?l_[`gBA gɗkn5?Rí92}N&2 4ټO 5ScК$8zr)%b;g YHGP?G}) gºlJ/\]gU { Zߋ1Y48PV&GCq|agLU̬$F>@$khx/w=oY|7 ƍpa(v^I5cmV?q~ ,~k-^B?i{?T}av_1xz]V`6/!Lt fa-kb &e8%ypA&*B}H>թo~˓rqki%!,Ld[sJQ~? Sk('"qd\ui zl=K%=O|ĽQo YU5ϣm}b|υzK-r?/Z;+cᮋkE?vsZKrzץ4{d{-GvmőYS[ѐI~*N>_inGz8S7γx* h/>zD=cvw(4K$מ9SZдp3h_OGanF)I"džӃXghdr u#G(=uuf< ҹ{CHgmڬ9RډPFO8\qi<jEϏឳ}sn7uTx!}r6@pL,@^i, aycP]sw{S[TW6iH. nMeWW*,IZ5kN ci']Z^i%*yӀn08|U ֖GxޤbH.VF8Y(qsҴ%j$($p*FsR1 V>"x$OtGp2l7.GZ-y% <{e03QM;GZ&6䎼WBf"OR:5g >y?kq I6Ɇy9=vb݁s]"n2F# ?Z#cjF _p#Ͱrqmn#e[qVRDH,5ػٚ3 a#Mm kA>Ƕ0|+rhAoޒ'd1*LcSiX/`ƻ!1s٫n%O|»B,YHxvbOjφmz7Sk̮ "xarZnryE$a6`#*}Ffr$TsH!ۏSZSyTlRX#zjr6 r~Qvy!/@cAZ62K|U:vY7πby=MH5Yq?Z:,g>՗ld,JT&xYZ)z&<#wg["+Unzn[l1.E85є /8=)ӢF??񠱼)$~9ϯ䪌Wxɏu Ȥ~" kF1:v+5Ѐг#pӧ l[ucԚɲR6x/E pz)O]1/0[?9ǏµSM/ ncdݽFM ֝ *ނČduf##(xgDsk+42,67qpp3XKں oA}`Tk6L F~qdI7\k>;?c*88W^+V#He fw95 rn}2H]I-b+D!N9C~򁔌g#8#5-9tU?uxvfc`8.jVQݙ^eUWk<'yfRۛ9-g<Śd*3$WH rQZjIV=3Ҥ KMV5C28] "^8#5n >\rG#"sE2j12BdnC+rO ޡU g>3+Gȭ)4y%\4yhp>aAǷLW3m6xusW|/خj3SJ`"rҨ SXIV TF:@I".SI~k?Pt/cSJ ԌZǺ~]4걳:5Fzqdޗ:aSN>7RB nyk2}NyfnQk `yẊjveg =O^m x5ׇGNVn?lW/$Gh\1 S=? ` G#1y51cn&?a_v:ee I_BOd|y b]@9,'_X~_ـ:LJA>3a+۴5' 4y{O{TAVCg ^0<6ςqנ~ŸXo y y5WZ􇴹}>F$H2^; ^§cN1$9@ ~*A2BNrīdX;h=Nǟ@QOFŁqlU^}?aSOopenuniverse-1.0beta3.1.orig/textures/body_b.jpg0000644000175000017500000000656007116560463021663 0ustar paulliupaulliuJFIFnFile written by Adobe Photoshop 5.0 CREATOR: XV Version 3.10a Rev: 12/29/94 Quality = 90, Smoothing = 0 C     C   @" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?F+UυRI]x?֭*[/{h?qʤ|#U馌m#ީF5nKfRq7_Wi4oQO}??~?UFz=*3ɭcVf Ec@>1텘'>H=~?rw;Z? < 9?^|H{-uqS}??rGG K语|6f\gP~#WԎvǿtרԾE{5#e<]Fxt^)LAv#?K/|&( ;TBuY˩}ȺI~?P59~\*=^[NF𾰛Pt?oze>8[#D7>xma,R9nw,egc?4_̿7j-P!={שZʘ<Ѽ]h#I#UTHlg+?hGN&bjʄOHjE"֯JP`p}~u9<Fʁ }}.W1!\nxBH/+X,8Ϯ*g5uo<_f!Tz5.N9i|;KxA]<'#ڛJx\$ o]sw Wj>+JfAn?%sw^%LwH+xzR#7#dr}*02k%׾%|+/o9U@N _}o9\RW}K$.E#P}kB qֺ?0jp{7L:%phאM=?D82˴xŬ*1֢:ztfa{Iϧg_(&cl2&-n?]$yI'U'>HjeעR<]Gk,\ioe\ B}U_#9 rzp1Q'pFK nbxf]2>C XOAT/v "b2Yp%Q?Z͸|fǫr8ػO/Ҁ rH4κBHNIeym7 %FSHךr~tC q UU`AZl;,`!ylݣcg9 toL#sXp[h> %|v2A@^ٔ\`MaA8J+Cu$? hw:BMr3OOZܹ=1\fk3 (]I?6ZEh5]Ưo)ԣWk֭$i$?-R1QN:u#NxVcdWxF %FǏoWG#~Y:x?yYG >?Xۮ# k< W?\H)Gx߄8&OU/SV/E}bѧӞ)6:I&)+- ZPeA_:Ev,+[kZh~ޫGwWcj s) @of p%?ϭ|\0co B5]2b\cHV/ :y552$dҦRwuW,' y⻽<0"$FsWiEy70'uG,UYfIp ~F^qj,yv{~_~}d>+<\9|{L IHnN-G,4~TvQ#6l4}W?yOkʖ]h*zoel>>ㆴG)?yXV'VоW[^u9UǪ5" eg\UZ޲Q . b*1o, 2zӅM&=X7֜T,C_1t+rr^_+HH̜`m5>ƺV] b*1eH,d9+*( f/MW7tj9f}!b:f ,\v;e3]=Kxʵӥd|[*NTz~WňOzL5^ {VDgVVlkJI7Z#-uh_y}k+>ObryXz~\ zUjϮ ƃ׼ t?:~q?ݮ|lsv6FG`>)c׬x?yG>]{E+WuMaG'GEby&Ƽijުju]~ʰ,߳rdoÑN!8|.W7s94Sb"??sJxʹGoopenuniverse-1.0beta3.1.orig/textures/body_d.jpg0000644000175000017500000000456007116560463021663 0ustar paulliupaulliuJFIFnFile written by Adobe Photoshop 5.0 CREATOR: XV Version 3.10a Rev: 12/29/94 Quality = 90, Smoothing = 0 C     C    " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?k;DHqQ7M] Γwݞs9t||X6G/#}\l(柋Of Ig3.O+.W?趿u?n?l7T2L;HtBg:+f<9ֱ/2exH@u?u|{窱u~cuZaԎ~_x+C3cw 올w~f[}7]QcGSHx5.In܀5iG7+Ƌ}R-<$Jvs53DJ<9vq,?vwl@ƨ^i's??u0<)V6ҬO}OiJ]ǟBV֢ 1鶮CWu9x\um&<]!\&g~kTm/\4m߹?)\kfmm23Y]Hn{r ^_F/5"z}VEy?XFQ~'Xn7,Z{[O+JS薟UKs?ZVY}d"Umr}[WZP}4!"*qm_\;oDž8oVRia7C)C7_A[*K|^oMlܗF>j?U9|PӼfO~!ƪJ'4I5R*openuniverse-1.0beta3.1.orig/textures/bottom.jpg0000644000175000017500000000551407116560464021730 0ustar paulliupaulliuJFIFnFile written by Adobe Photoshop 5.0 CREATOR: XV Version 3.10a Rev: 12/29/94 Quality = 95, Smoothing = 0 C     C  @@" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ecFY, H!D$7E^U@=/\y&YD>Iܬ8*AЂ חoS"MB%4mr OL^;Oǩ%mQ˂!7(˻R Kڻ2֬υe3>xb}ܷqsO#{u,}Nb!#81޾vk YCFv'{›q:|V ZUc!Jp\N@&֛D2.q!wW2_$LPPp1m瞃OZ֍Vm7mYʀIHRR8cj3)b|9湝{T/ w>Z#c&0`mA! 9=Ny睷M$1.}:CW]z1~'+tmD;l ʢb *̠*7k]C$ʅe l Uu1k:6qcu I r.A $PHrGYM񖅦A$H[Et6!F #Ӗ ;[5 o$2p~"z?5F"u&ZDEž e ?* x\/۬!)Us2: (#.t^x|KN?N츰he/ ex!)EFJ0f6_k^-K{y1(Tǐx_Y'żxDd9U;ѧwJI_2;\U#@>b#i[)cƶ4涶2PF`pW*(8eqR;┓jqr[ 8z~|ߊnuX[le/n [O/%0潋ě Oqq-r! M_U `g9}fd5Kb( '.Oʣ' 8[͜az%CA&Aw^ MSҠծ Qy^ʑ(G72  kHu%O><0GuK{yq3k,c!CTI%čby'Xa85&6 m2#k]lƌ*Ip鶷dG#GYa0_yV)0Js!U#9ʰ9 z^+NV6C<|ԡRqbEzܱ9Yvw<|Qo.Q7,q AVw+e.75IU'61շzkռFntjq:|9Tb&&qj# ZajA*|0q+ا571Ǩ i7]"FN9PF ?*IxIΧpI'<{:/9j(uc2F=CD`Oo詹6v= JejwMl{[hퟙQe` ZH{ՊYX $9p4؂A*GIƼS$b>[d{CXӨl9yُ\y[>Ԁms=79rC@x԰GZ9LRP3Iun0>, :,ݲs$jѯ(R5:CFIt~k?:( Z׺lszH]{Vs+)ϰ ZfIUl@ƑI55/ѫEn7{Ё1P5ne{ZKj")dk`~~՝ﭡcL woU[ SkǻD ib O IۜL/OTK6ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)KmAdobed         !1AQ"aq2BRb#rᢲ3C$Ss4TcDEt%5!1AQaq ?8]msW;;meo*׷LrP~gt9gpu`gPQ_m*vK a?7}v}q"3\~”XJv_ @MT?MxWPhwG=iQAGjGNrkѓܨX4|;9?~ [P?gDov>ݠkov-+g@3<o8;}{UR 3Se lw!ѩ?M |{ `4UqAfX?n.w}?@m٬'h`+C+h}Y?_? |4o>ɠϭ4)GN~ڛ.%Njs;ڟt~XPnw93A@&Wڋ@  r&QAya'.{84`T=l5xvc{i#`GiF;ؾr~|d"jGC@XS3~Ziʺoh 6l\lh7v%tn+E#fv*ȦF d>w4 @DX9Vu`\kG|٦RܯԵWfeSY dw.>jŵ 3^p {?)i{'~0Qq =$>+ OҾ'U?۫gH?7S3*>8L ߏRNyPL]eO s =yqq:qBgh7Wq`ҋ,?_0QW@z?(߼LMwmzk;h֟S l2zTa]k܎3|&C]L=?uMhw_ <CFaؿCL'sl=Ui魜 ff">OM3OMustW7)\sMڳX?i鯿~m }m4#gnZR_kc Ѫ{f]Oi?`f:'Rn# WLŮrf~k<; L?@vs_DvbP?dȰ S>^U]t+G#?sڐh %iv}U^gi -Y&}ϗS4ՎX~JFǥ}{4(Xc|c|)d V~ᤣeo!̱hhv23?A= 5_iR N T ! Too[w2;%MU0jے17#"F_ߢ#@1_p: l2> 4خ|zhlzίjMO^,pߡ+hy Ջ|h 43?LM}^&SF,íN\|?ٵ5%Ճ$L-飭]H6 ں )eWSY% @ ʏ5|G"x?jhs?E |jo;;TGm4Q3fuԡzA_N gj / kZ+lk#ưis''\ hg<:: b~Tǥ~ilg)?N@QȱzEg#_7^soPI?qC]W0,dөTljq謅bQmf>>A?Vk8?`Nw{_w xM N6pưnQ~)~N\!P>WamCw vy; E~{fa{u>,7ԫf-o{,9U;ZsӹcvP4| nEj)E\{f}9o"]__rQI: v>?J/ TM~܏<<8YعuL~K:MxWHPA@9)A>q\7CMr*d'Ė]K\gUtF,HQ 7cvh^"~C@ {OuVjTGaȦe^x݌(P\^zʃǥPK9K+۠ f>x題?`NEUFǣFت:h5܎&m>V?1m@~^uV*̞%)=[k&Uۚس$"SECxG ww6T ȕX>a;^Lݧ:mX[rHKE]s7~oz_zis&!Ȉ:S}b[>P"L,ߨ GZ?{lƊ71Ry@gBh3&m]R$.e&D*6 d@͠T\Z=j|O2}lYoq@O5՘&6A~i>i J?t~ўRK!Rf2u@jpI%Afg }է.}a]> u [ D Udj2 ԫdr{/2GDhkH5w`+=^`]T0YA{: @!-= UdllxRG:[z ,4Rְ)tV2rry*D]Du| .Ωi`M>*G4Fn |3gQI`;r`d4\׍nȿ'ig#fmu,W]7_A{z<9 8+ҿ4B?Ĭ͖|woO Du$pRx/#R7R5P?ik/+呕SGOT&{T܋:Y?<}"u^#53U8%?ȍ/^a|u,[hQ"f5z;RHkg5a?TGjQkSr:O]Oioo]|L/'$hT%n?zޛ?2k`??ƚ+ lq]j,yT߿W|JEy#ci$x=ve2/ps:ϭ'wnjC'ՑeGAjx:`wBW usmdyfug&˸ejfoĄti֋gYCƘ'ee\׈?$F&S4+#~M!vq#_V^,GvNw7V+?gMLW.c2aՁKإu13Z= c- 脮סGi7hǶ·*R_9w1*bgΫΪ'P:QyEޅP}OnY=um]q,.I<}M>k3ֽFS^zA%%Xq{gal%lUm+|cVPSƄMήWQQ+b9j {kzZP: !cC | ^E ~& nWm= fPwv`QIm*rt;wu n!ZeY-KZC U/{1a`5'RJj6X؛U]Gߨ=+̜WXcW Y0V_ե~^ب>5B򾦾A;rA20VĶJueAŘRl*-R]v &t vy'``ϏWEKi_&Z>|Gq{v +Շ/cVPv\JM$:NT#o ^Ur-k3 5Q3xhWk̪ \vf #Jp˦tIeؘ}ѩT\9Z^zzi"ne/C~mTWdܛm {+`bz3 &kVY!Ib }P`] k}ony|yN{kJ0z~ EnVcQS&|HX]AӑUxTD~P5p9u5 P[Qh@4;9*.yOTŁI*Y#@=ψ~A[C6+JY!b΀r_p!GC '@8E%R6*'LMu3/66B"ky5>8 pt5&mkuS$?M7~[0N Z+c#+!c#aiW[=\| 8RG3cXfcnOPƈcv[!km?@~Ug[|=[9$#W*;( 'LM. ÷VQ}Ӷ_Cbuz~144eƑ4ƅ%p% t\~)ѮgdLmRmʡ+Ejc\|j..P^˟ꏒjAԳ$ A-#@ G-n`[^ѕu<@#DGq)rt0N6'y $H0>'LgkV?O0W/eTL nCcmALЍd{>3{0D?tΨhu5ߓQiڍh"@,^G^A#vƪ`DǰC֊`|HB'U_墁V^ڴ@K@UTYʋ͞e ' czH6m2y^FEk5P W ˪Uk1`<=Ǘ)R}RRt ;3?R soHL{L$f?b!j15ռ.S7Elk6({}U dxޜՔ+Uo>D)?!w[kt<ZbOoً8r DT4{6MP~F\ n8M'Sj-UP⤃b4\$:~aJYm`b>bt XֈqĂ3Уd{QaR~@utU?P0+a۠Rz'@7~쳖,OItGr%V@+jcuh?[󻕁iuyz6I=0zy-yX_Րe.[yZ@qjTb\fnjnn2g o[*;EkN($$Д"(x)1ANE;{{8cüxP\n5ZMl\p~;^F ՞V㗴es:jS.m6]WuЄFX9i`g3uX&ci'ꫢZFosK=Xq~D)]$\g8u?$cg_W-_gc^YJjo# Ү>_pk$4Fm%g z-0m,>uD6F{t!~k{vO=٫<@Ͷ׋U]3:f"TP?|Tێ?ljw\^U8GyK70z>F8jY*bSyGN{&*+?v9XG"ҧ8voJ{=a<#Vvb3-۫乎L5*wd?i;shX퟉:~ĭuļIU%qmTOW~_FIsIj06VƋ&1'S/C[ڷGʾK/S@i'c(NEOW;_iJÎMϑ;TҵKԵD+"dgUSnoQ]keJ@m kZWr*iBC|k6{f̘, !^D@lPmt* x0 6=ƷhLXey(WAZDt@1DZ.UW`1 (pudX^d8N禍%C meB>0f (P'݉5cBT?(Յ8Xn a锞ZBL}.98l%}&b>!&*4pRC15զ1#~%5q4Z3e:1f]_@$bu+Q"0ۓ!T`LuP,&=Oݠ⤰卿n/dp#! ?bt4?E9UG^~Qzڱ.נcfEB^¾\ E|Vk%[Q:5J÷ܯ-?X? GcZ=8^ν6T/5p9udϤ#@tнP2qT%=ӎZ+.F=uiGSr70!4\lK^1aW-~, ?IhuQ[*E|÷)Z.E M G-/r= V|TW-LU@e3: lcR맗@k Ϝ%gm@G;='Dfb7KAs[X:jvܷ˙奀 QYu^U1(gh5Ak^Z,AO٨ۅYafK'X"A41E{̻ j9;BfOhUCUi$/%}$vɜR  =5Gvz~w'k3eUO.ώu#d  c4h:5Miz h >œU5gʐӀSʦCdt]f!l*Yֳ OU_s彶~毹rRz# 5ظU%ΣۤsqˡScظPEilRv Aմ26ֈRxht6S֕ې1$lg:Ԩ톔nWtUXy饦X`;agU.+,]KtvE~ت! 8]FWr[m*.n5⤅>~ve>]ZPu!j~C~Uue?2;]VX$rA\lMIvGk=P5qBOӝ8_yQdR#V?x(bdP |j3w*Ag@3WG66/l! H)kԱ?OԍeȀ-`YxգTkսtn娍3vARJIuu@*|:!ɲH*GER>OǸ) 5./'IiAɢKŘ *K3,@?Ԇ&|!,2/EĽO[;082yEa=42Zk$e%W܏xl;*ͰpRU't_{RAlkPsۣ5PRݳ#7 >=; dk :=8mLKP)ǰsjQƼ%W!L!"Hۘ#0CO%aP-n[UqSh2]Ii?3 ꇰ({v f\ 0:+oBfy}t.}@ؾ"6Pƪ\AŨ#]beԏ]4ъACfoPOsL˰ɪⲦՁ: 1ږ)*KJ&3JYƒWFk5Y͂+=&%zRKx} `q}OmSk9}n{'n0^㪇;w׏cbƍᠶˢU$]((7J |=b+@:!<;MAFS]κȦXPmh^hPKUah~I]HٚJRV'q/]չz>Doq/(VyNmA+PG#ܖ_Yj+Yow_ta?>:hn[~>0v J<)cMTDPB6d['CI bdq##>DuXZI`ni߈u=Ac~UV#9۩#U]l ީ1]ZTo'ob5Qj ")$ pTbtA,ۓ]=I`>>GRe-k ̱ ?#p9PH|ִkHM@,`A@'s¢0 1j [Awp6VGt M<  YZIOE ]vPE;50~MH8r؂64Z!8i }B^ebw,༌Ѣ6[}j'_|$ƚdb_Z1GFYczEx4dQE9?3XZd|e"qo7Qt,oᵈ?vcZ+tU ]>i[lVÏ:BMVqU+>;â隳WRfɠ'ĝKS^{w8ꮀIv?Ӎ]ՑJ\xYbºp4"}jl"5t}c*7$6ZCՠJWtFh?3K=fĩ`:,h ZV+,kd}zbI:qU2W;i+%ɐ"P )ey[CXIf?g7Vb~#s :۹rKQ-1H?bfZI $MւRkfgda_mCE@z8 \.Se^<<6=u1ܭ܍6]AJb'|LSvF%vZVxXnc1^5%hO pU:Q{ZUbGu0d0cw:ՍCw*AEvY»[B5v?/,KI[`|Ϩn3* Yl3K<ņZ1_m+-uy="<~: qy{Ib9~]B2.U q) RG6W`6{rZIݩn55c%_,:<5=X9O(I.$75tß2FUW]&vԟ#ʴ| c: E*['oեLɍ}Kj5 6p۸#Yh,l_ !*x`Woµ>*OMogs+LxAaiMH9(a!lGu=Ut~6f5-XeȖ> >5"'iJځ v?Ϡ'>ՐqJE'ٴ*dVʫMqsw %v㯳۲i,Sbt~՞0}Yd^M}{/$l >I1{{f9jyMkžūZFrhaz¨@Ҡ~j"ܐxi}ٹ)MAOhs ǵ%{wYX?+zտըn#7sՐAnev~eJoW@208]IB(yGj׽d8 *]Zw!DŸPt Y]XWZP Jꉶf_W8%.AdDնwHj<}SKA"ǭEvIv*u3t˫80JP OZ :ܗ{XLp#91uQG`?1Cc{Rرn\t﹢Y>FҦ>[MU_[رn ]Ky+UEh]% ODu1f)On  #'f7Oh2T+vDH-: ӓP3mܠ~_,?RA0ERYI lSL&tXu/qq"rId*, 7]vrC pwE f=g9~NRcbʪXl%]XNߏpO}0|>ܭYݗ^xbM?W'j(xTkW@Vr<@Qpǯs'E`o٥ +[USRxE_j­bflޛ)(RGuQb/US`JoLW9{^J`~D;rwB"WU \l$NE@?Gu h/bvj=(Jv>CJ)hK P#bP ;u+bȦUTۻlV"~Mu-Wo*X$yPSB^ `?p"~֧I^S._2C\$cSuv Y}Cà3r*ac$8:R*cɱR':K-K R[֣BEum5)Z8hy }rwp7CBǮqJ @uY,Nځu nB<ߎO'q$0"A?aJ\rlQɶ&t#pt0de6c2.q056ݪc9ضj$vX~ ?xgRf1dbNP+  QPz0teSՅ;ڰZRC` ziGi)2g -Ze.e#Ӭ<ړxe]&Hj%+us #%zkC*+ +#Ej^X=#@mE0j%G*}'A' kς8@o»2ƥ*̺QG ꗥ=xڪ@>;hW$X_3_-{~f"j-pc. $h~k^;A39*zTxKoj g9<ֶc iDɾV>+G9 mvŶ a,}@.o.Z(JQ  eU^=k~+]jXRV i[Ib?RFa%D{jŊ" y-_G\ mnZX:IE嶒اLuQjbSŠՙ3v<|=Z[fgo^~b Ab`|=fUøl\GV5)̿%SxV~ S EWraSh1ϨxjX Gwݕn(?s 0aJqTD0:z"SM&\t6y2`GT`h>T(ۈT JC}D~-"c~Pom215u)@W>F.ퟝL\\u#Smɳ}1?nrífD}U'q6\>ޟ8\Mhg8"֫ݾRS/!.Z(5WϞ\M:ߏWy8P+\u.tATw"Ź9 d+8Id`dP9r3 `J xvDA>#K~Hey!ŗj+;uVhֿG/s=UPAB},I /[TkkX3T7 “!bb6ev+kk0Dq>$-m?det_b)wS Rz:.ᦘJǎ0SOaaڨŠ9~}tЍx>?hM4<`Y$;rL21Mtj%0i&E A_iHZ roZYGư 9 fUzr/*XS(jVK"vKo[[Mx@BU.Kn1ӠTwuZB&%A?t{{-8_/"Gqs wݫ A"vV>>Q d=һhK}e] )cr /[1j @ Q#)Yv @O&dՄbR ig7bC3ʞF L#K5bEn%ƅ,A !zVTGd's(\+`W Wq+F55J$.ꦲ%ֲ$5-҈bd~58$4cYߗF)qʥ! ?ͧ=}/P>Z7 Z̖opB@eP%zzJ2R> mwYXsNv{akUQcbn |Wߨ{Vuu ULݭF>kOa^'4jSČhB1 @0Ӽ~z_걹ISUcOݢ6msg% 5LFu!_joj &?Zeh?Ww)[uY"r]h+w`[c\آX2:!}h ,&DGg+V~wn+cLn:k_}Xd f1fHw71?')ۮھo̵uUp :多;kʦcڏT&H/-@zp}^ie1\zs0 k%RTOP:a-CD3bLn:Ϳo'yM8lrô??TjE})**ǵ kZV+n O!ԣ>]4- , #O9iCT+aU}\խ}'wırj$#+@=|u*Y;@ f'ҁZ+skhlje!:[?_]ܲlT"IBA;V>C ArP|Kâ׸_ZkQ#pUaZ[?s.PENo ˎͦ#j<(~L5B\ިЄ47V@Iug؜!eզ ';$jjeڀaX)QʭnQr#VQ zy%5fx}߇VPN}6*lSB-Ϥ(v\\v!qMB'[jX]W}x[j{=М8>˫mk,cUZ)\CB)@YCc16<]TVLqs{F~0ƬcP(K/OK; ۻXZ_ =oV/% ^Kuw;'䜊Uk?WHvܾU~` s^%UK;&KC%99"jz˅ Ɋ yPãqoh!-_ 64"K/S]gAP4h5Օu ߟIԺi݅'- lZΥ]hp#u7jv ӑA,mې-'N_h?'g#vrV 899X5#@*BG쪒Ih9ưgKqy VFB *7RxY~m&,@q}F] >rLhXac`æM?TܵجPn7:mΥ1wgN![G >4KYe@Ḟ:U,>蓷Ld}Y 6>S}y } A}QS"V~歹ܸn" 1[ePķ.< 1ffuŘV-(?W* 0|UK), AɮߟuN  5ۋ 3!7}>>cRW~ϱ} EjDz5tXLwKV@h{Ub௘I3i\iV(ޖc ^jě(ubn܀#cEڑ'7'0 @b۫F?PPd#vBɞ2Ǡ_ \ ^bnK?ث~vCܯ6V?7c9mQZΘ;s)eVyuWr_ Y a NNtNwlQ؅,7ohԮejٸY0b5m)C_&ƣsi 3TOѪf_mu"($4 m~$Lk.V}0zWBzdzA3+bj[i.I29"DzۖB_ec @~}uQO~P aǀ=P~ԣUCd׏fC^!#bDn:)fmJS]+le0S1:w{N^LLje>S>ȽN oKE*?^|CeX-jWe^NL#-~O{#tyUR("PvOv MLq?-ժWd^[1dp`c=uQ;ufaY#$ɴF,tm"H1VM%MkrYn#}Ov浪ˆ>"!j?99~<(>SHSu=V`L|LRPn+@*6mXS@,*]v,g3Cj)X0Mp >b#pW nn6/ʄ<}>;X'9!؊"`y(f-v=cRPYu)s;yAnfA7cS*V$#*KM?vVhU[ ȁ %cfۍt`zƯdzVVܳ8:PTn`i"'2[&QFvaD x<#4A׾ֈԳA0&?9j+w:\~;7;j셮ʪt]<%ؿnq?aro$<ь9>SJ84ز> T#!>!d6R*ELbO~*bwؼ*f@'m02m:Ƶ2=@< dn ~Κb{b@bgvw*vZ ~Ӫ60@~ `a WQʓuŧ0C^PykQmǦ-k@.k) 0v_3Ŗ[|˙|d#'mNJ&m-sI :K5_5ob94m8}!J6vi ra ϲ =!H23,gX$K)>cKΌՙ dp ̩?50snv.ymbבm D/2WG .ۖZA#Ӥȳy@|5IEb0RK ̓ճ^vŴT7ڻI?)Gb>&KcewRXqYGW"v}x\ƬsjʠR:z6Y^=WqjmÅJhu~؆!HfѪnĠ g,7m\5ZlmtMd&*:"v#0/VRn\%v2oVJ𩄖f_j6_fUV՞+U (fY墧Zb3b=u/I~~-IJH UŪg(IH zlx r.rs@nQXǚ er)VamѭJ4E#%IcD&qŵAſ O/=c$촛Il$q/%T|b:hF9BDqmL7XンA2?gs5'F ET G۶oC5nĕN;M5*ǸYg:ּnf5I{\`v[(z]/bIu)j$ɘ1Jƥ؀È3Tq >00Vj0NA_k+֤>|mE^LVFwҧ(C?m:ejhcbO*7AXtb._O˻UnX uDزmdL#ҩ49UT-A.Ł&7[ !$m|5Mbm}lH51`*{AhaD뢅k-Hmcj\.T1ZNHwIe!̵$OQ.ALuF~HfB8ݧάG6mRFF x#D}Y,R"=Jy!W omZixV9ne*̡a!b |>n֕:['5]k0^%ž ;q#]yɱq:U]J7>$#~cr6$* q܍?%Jmj<#?jij RaIdE]gB5YbYbȃבmoc\Qbз@vb9/~.:h.&k0T1;O@W]]4} P\ I "vzhRxܙ-j+v C[Omӫ1R1YR[Q x25}k B%D7ONHp! L^Ǩm ݐOa3ޝOL0r}et4 }3y4-q*[YP >zt)ef n(S!6٤ۨc"iZ >>ԃwESV.QBʋ#'}[k7l?kW_KXߘVY;'n%Y sfRG $'szζ?7mgEǫ%1غp=VWt 9ӣ$"{mm (9oTLspgHu%Q=֮ I'AzkR]]r© PX'h旞HPAU?Wl+4(Ger%t/ 0l\տ!BNRxsgZPZ 2P뗓v+i*)iO%1աC*T؂ĠT5wlͣݮ"!W bdV3l;n m;3ߗd{o'*\V&#:"%Vk)i}ho.{9VÍ.9l~?.FS&f`hLu;/}b0 Ax;3)SCٗЎ0`^}0߅mUl [mJg#ӊLmU?XL{4Hߊ邈+ԊB b䚀DzCk#rmA̒JQYGm sW@ ``N?ңcc2{|(\d3z"1 gۃVw;hë*뮰fyr C'.Rle*V$(eJ\}r>P6>?W-FazT wS2!J#Ll M 띈P!væ}brR:o٢lkj `xU0XԦ/fP 0c$DcwtD̚rnTO]Pdv׏TkLY0Z0 QI1?n|t#9Uܨx3.6'Sy4Q,iuUJ UGCR>=L Ӑ@>ӟ!J+}w^ > #E+c>=!:xǞ&R>9D fcڈݷ2G`*f%CuԤ>Up$G-x }X4 ̕"B1Ϊ>}eIŢx ~5qP;Y)`uΊȊ0 vi*}FSPJHjyPW5+T_Qmi.dYTUE1R`(a(gۅ<};'=bȏ9f=WT%ܴ R:Qazd[IR w?K/Ҡ/v*d>*C+^J=f8Xߚ3,犃6]g-w ZU H`OA7;&:dS뱁`ì#jܲl>@t FM *!L<V!Jꦃ^EHa2H ,%O]05(lUz=l 0?DJA.qWlEHܶ;,$ -ݼZ7Ln'`遚]*ΔI6 m`KY.'"QAâ\'c_kILd\ zՈD˻`C xՅ_}i*@LA؈: -*zʪ`)nOduj&%M*I`. -)R`0CFt~ޚ:bMJ9?*U;xmbM/8/ԛjl,|x˭+%-OTRF72{0Ik"nZjİ5W102[ :jP\s@&Io6k+*3ƊVM\@5#KBI1@ڌ,=8G$jdq7驸9w,CB"dNʧGY;.'yT/ =jU(q3fu, -JB,Vlk80\XAkG0Ͳ tz@loRǢpύm*D G!$(''o>:h]b(@:ƶjg*nF 3 N;6r7$| CU5V$ϫ?f4ɕVOSFneZѷݭ.k c3 G@ N1 D~3jcFukeM馘Yt3#v1րs2|utxbTq(RpE``!-No+e"w2vfEkj/v1j,V8!S$ubg&'I HtXu '.*+ DSB6OϨ)h>Ѽ~]m܂<Ն"w R-x~>Φ.d$n>z9]d3U; 9t5R]QbF1liج$M^C'h!x ԵpA$Hjr9R$xdRɻ۪˽$ib33ڎI:3=e[c῞!Z&\rF`Ai #Xle_mGRԉEu]cq|X̑Yd5zY8̍J*i1 nX6s6ZqR-ng5_a#h%,6'%aO}NP'%)^KԾn35N"ЗZ"DOMOKR[T2cQ/c;Dv4 lw/%8`N㒃=5h]נ-e 66@cjȄ7f}MU{-YPZc#?s{XUe襷olPVfekrM{pkOQjJ3%r1-gaG"d) ɯaҰ\3hcւZ7&;pYtBet{6Sƙ6ۏ.tm60ϨJx:K#u@S{;ZY"c&.zW7!Yш u1Ĩ܄(p-A;q0,SPkW+I$Gք(3)t~VSm-r+YtUU9nvXbX+ yc|kz$/SJVʩ]C\:I;>%(;k"?<,RH+˦qU,o?ٕ*b@K+1 OEx[vxN,+Aȏv:ܨb]u 8 #mH_VYUP8e[V񝺶_aʖbA&2=RڃXH`n}cZ]YV G%o:X&nC> FF|ty <~fDI]R]ą"X^h- YQHQnrMTұxDㅌ3>`|DiQ-$3ެ;OTQa%YeJv'NVn`Waz!]hr! :tuVFɷpyV1cIPç [1@3i߉~㪘MSH=V{*wAS#JDr'a*kPݹSyH:2͹֛-%A]]H^=5dhsˬ&gJndry2~E;[%vYB]'Ⱦ>:. w2 hh9=!,Shfj ."e~YDЖ:',q` tU<z5YAU7%d-e]u 2G#%-1y#`I|~L;Q x-bU7 /tXbTui7'ƴizDxE,QzB:Bx$U I+}sr\|L9m 1#Oր|BXm?ҁY)-KA&5ež6tN:+Ϻ1$>zbƋxЅ7רut'J{:<']hSNJ0gȉۮ bMˋcd%<DG:`1HC ăǎF*>YO b~ `v<˯FvD"wOuLZf]U .ٸ% |Y&X>xA1i&4U["n,b6;6Om5VbB%^mlp5l[ WR޴BJ^`Lte)F9P0j,Z>-u:#qu ?3ƒmut=$u՛_e+;o2S=Q}*=Ln~z=]6hQ'Y*W Єr;mj2vdTdV̌Öc =J:@ܙ:HU=k\ʰ݃>B2=܋9p$.^j2%-Yl?St}36*̒נyAf; 㠲?Q0FN>Zc7k. R7)SuR}.ik lYA?Rȅ,} >'iȭ{S]WXl/.ouS`y"W.ɵS@;!vj"cP!z~(J7bd<[I+, ^Z!`wTɈ&b<4 UUgQ7PX єq]hz xo?H>(MUp`T Pdmd^t>EMYUB'VjRVԖ -3R#7%[ IU {eb{ZUQ Hj*)ۉS B?֯XzYGDXI\~0-Vk)_~X _3PjثV;|uTU4/QcGSǧhjBHɔHqJo>XےJC~a`zI`H8TYJbfGC`^VHKx<+{P``~# T\6dPn1Aڨ3ܬ zI VVJ|qgYg]bS,:1] |5/ouVju7: 7qTEp |cr~ͪIrAyx[,S巄zYDȟUݺȶ*}@35T,x( r=:xN\ZCRr~1 G@ ?uP qߊ#:.[nT_u*BU\B+I`hIP"`;Li|]WQ=.|>Z*vJ"2G:u- žNv,P8C/ĒaY.x.!^ExFHJ8,US# v\z*{j9z1#mS}#+!-um5a9JA OO|uXE@6zPv ,X2&٠-7ncU}ΡhvvIW 5Ӛ+KDv֨D15D>j ~Ac5!T2O3f#Ў?V% 6dH lb( 6cDëJ>D N`wT-OWXFmqr@ 2:KVSˇR!-UeDL@qW* 7LwqW WhSXq@jZ (#ncDMm3F>3RfDHBzi"ǠJKVyEU͞emPN%GϪ3"Z!pbc~eYkoZH}Q>|<ᔊjaЀcOl-r !g[f[g^I[(PVJ'R_';/apz19<@bKK&aD)$)tW=qHŤk,{Xۆ`NQcZG\3jȉ99,dDێeiNjz:ꏆPIOWL#/UOA5EfBe?öf ܫ9 ۩=%C]*2'$bGƴ "cL H~m{LԳ}j [mzYqeخU}"!Yk$+ISZe}B2C(gPˎ@hrym1XcY ~~_'T#aGiung<J0f keːZI mOz%ɖB ~_֤8qP]A{S7+VP1@}Φ5!_{&vS61pGz՟bq$2SPUȨY> y]P;1q-Fd }ƥ ߍ{ZrP"$IHS(x]>IR[QI?H֤PU+" % U"!DuW )-E a+`w=q+4vR]I`*o#]zKcC :ώJyA?>o [vf@Zk-gPW;V#$o:G†LF-ev0vo5h :P#ue\r+wG祈ڳ2W$}$ti騢U0#$ 7ߩPpcĘdFgSn\{;cq4l8 Ȍ &z:kA]OXHMYBvSyuW0)Z,>*6 |@65x[bCouZIab;I#@?!{8?L<ƭWQ(mcAGs娠{uKG"7'55|7J WPQ2#΢I`= uZmܨ^$ASjq؊C<#whp9>9ԣ<;YU09 kdz?JX ǯ b5mJד'u~mŨ H,ۂfǓ80G?$ef9ڲ#UW]O=^ PBqبb>{Z'[CrR,$ӾЇ`ܷ=<7 m Gzz)引OYJ^MFU?[`՟aA],AX]3R LUq;x55?wmE"˚[R2 L'`U#n8Zhyrڀ}+` $K~@s'Vr oFV}@4YX-MkH%SV6L@*,*I-0}@ot8  qR)k]K*,,> G9%y#v:{w9jѰA V<AC*^k=Eˆ @98UCl uRz!rr+eRQn: hc }%Ȗۑ݁wϯ|O7XO +OhR? =.ue K ;=M0esS GHS ˰Z$fwZ1ߑ}v\k#jkYۙڧ@㨠7J04s%kO@ܪ16 X5/.GBGX54J^տ Z) tяA: Smi YhLYf! J 3ii,#mSbA,0A k_ZTP=NTLiX{>eO|Ǭ2˱68bA|6uW,,="·Օ)Lueɍ}UO38,1=vXR`$  -=fgjca_AcPOXtiVҤu0b+Zч9U黇~ɶũưNVwﮒ²)5X$Ώ]DK;mg}fFٲg$uKP[!3o'8 )Y <$\#KӉ?/= 6_h% Ad3=~TzI :۩hb̌U۬2I`XԘvcs'RНiPL~]@1{uY\yqHԍ: 1r큾cGtXg"웴nا .As=:۴WWA$O|~JͶ8b=:u&\_Q}s5ܶL&[n~ZiٛK36FJ1%]H<6iϷeF+d||b|5۬,&'s/VqW.A;zZV[@k?ĵ@? K R{Ҷ)Jg?BLNUۛks**ta d Js[ V%-]bveYl>z xX82_ oԫ1IXI b+Go5>VUof+w'H}TYgNq@O$dYJf<}Bc5ullW2GE lBAYىF|i;} ϧ{HYV)S=DƬKLX/,dt*?W/emcVӐ<#Oy[y*x7pr{Lfz`v~=m!}bD}gȪ].V\]q<c}(۬˿? v'IR?d +әd %@dNz!o&Wx ֻH$NASlQG#9$OM7 $PDϫ7IrqW)*}[$vS۵)!Vǩ=tN5*.nLL9f{VBHGk=,X4(3uPL*+D$C-UztSXH 3}#STg)k0 rtٙy6UMax?NcVd ?uR)aXB֮RVVƐLDscVIj z-Z@ VcgR#sS7Z9:!,A iэNUI P$),K5>MB^ʂ+ϜL7H x_qk:1M(T|k-/S,"m+Z~h2o2yWJO$x:>oi)x=a^)A6 AFR؆ueBŽ ׈-eͅ =N4p<Q:T/33^j 2Pr=² ;Ӣv8Z=,DIt .QY}@_5UD,3MfާoƬVGTQ$ 1c\B$ ZV`cE?ڭ"KUdJQ{vQjBސ6zqm;tqڢ7&};Wh w*H2wn3LDLUbJqzT1vuAc;@1UM;XUms zEђ|J6#a.Ưt߮.H]jkmbwGwԪ(-WtzrH٘Ħuv7:i|F% |}?fVEZڬkB+}[#d.q͎j@/-UvۏvEW-Y-#ڊK* ߬ 't*CQWȶ+\)x@u"J*;ƀ79T܍Pf -\;Ocu)Sv>zEz p@u4Tm ŘZHHu4RKє.(G#MH3uy;hæ" /RqEqwfcacQJ<(F T7`D諸g%)fQjCN_s%z|D_IKBGY@ 3ÏIkfƐIFUu`гCc+c#A ˼̈DV2>;~\#BvR:mt:/tV =v1bwG2&5w+`f`c&<{a3T\G]s3dpuLo'v5Bk"7*݊S XX9h;:},iWl$ֵu~'*-5_{~/*0TndhԊF^FI [#*~ cIVG3]t4 y #K?R= en_->r{dҲIT!xQrwȫ8zWb$ρNjX 'JzCDѦD ס DFB=уG.M)%v;Be0 `H+6mEunc#N_j iOAG=>0 |5vȷ3jopj`kz YGS1h + )h6VI@!]V<@jT#aI>s*4OHi@܀z|ﮛJZ;0AgC مFU[M.N)7("㤁65>T5+GIدuUQy2o0QE^6 >:8ʧ(cv# ITp:jD%r[6DHV}vԒTQ]YhEf Թ'Yd[ZAn+#ɟB%;kQ 'DHGC%{"p0HfRP=&Lң1I+I>;ƨd\EZ'rېvP}Bd\y"'ᩁKq7"n!I1||u'v71-k O]+&lЪ;:q)ΊI)k!X*WS OqFm *nGMjZyKZ91,]4 e)jQIku5ojD7Q9VǥO8D~LҢItsev5x wi㦩޲=ooX6U `8q hY-FlND<DzZ["̢.L#ԢvTƮKA_,rjT[] Z1G UK9vCg!A 984ovVJgHRX[U+  o( Y`m(s7chW KvWvՙu ùte"&mv{MkZM:Lj)Uq AXD##QC-ZGُ߬]^yնTP -g :ԨFoub"R<Kdك S. @:$k`%:[q&Hu`>+9CtJR8u aCF2Sy~8MuЉ. l11e8r HRՠϜuPwk:WL)!yH.h-{Wh폕[o  WXlpM zcZY+µ^D"#}DRGy(Xu%D?lƻjwDX܆i%wFv2vȡR3B}Ab~E{ә~`UX$FFDz `$Տ]]V @ܰ߮t-ZcnWdC#/96b'kʏp-uTt$YY>(W!;kWGQ5;qK aI;3=XB]X!7AeaVD$SncՏNQF{H; ~Z` `Wa,,no3مEaβ}oO1=%$'3 ??%*螾{fvUXH&{Xn$ aVvڤñSᤡ򭲪 qc`&>:"Sː2Oe>cSE'Ո Fx?ҸɉU*]˒۰,7 ~LjmY% GU7{K|\pܒ|Dkq*>MTmTV$5d8S^:zXV{I_cRB4; Ǘ]TV (lI?թG+{[I5IK xOyoORRYuđd~ :0jm=;l29$eN( [׈B $lS-#FǬdzy6kHdς4 0Tot$1-5UA+OAK+ =Obw+D\CTŸ[ [ T>'`h|c:ʡBRPbzꡓxS , $73oL5 /N6t`CrGfZv E6YXzFVD]7#EM,y<)漑_Ō=W(ŽZ #'F@>,X&~ TG/!TjP)>>QСvة,YB8Џ{ X`#᠞͘zl"=G٠ɵ/HZx`y'窀uO=-Q(IN`S]wD71j}׷o՞z}"tР kX1b`;XŔz]%z[b"bIWWLp޸!'bD 20zRNّUlF(eFw L}j$ TtK?%X::h̦ҪLy:--uZ̰?i`NeSuQ"d:Ț,@tTjU=K 0P/GH6S/.HH]t+ǺV d`kҡߗVCVlD$'oZw\K5A3gJEuyEwk;zzzBqH{8^?Q 8?p.g/Wy@@:bpkRBmŢ)cc[f_+H7.u543+"GŷkIkk"N,=*>v;E5%~5:YLXs3}pAv\:ݨ% %$xIԝ.[XdU2#r֑;'2 3q}MqԞ`VT $JumGC c57M5rqC cmkE[ughՐD1MZ!(T ɘu`_&GQfJU zVcbw$~c}d(Vd2"6~tv.Cq^F$I'U\K)kǴch(6`"Ɣ+zGY3͙HKRB 1O g{AB2a} |W+)bD@0~0Zi+tcG=eLx U1UvA:Q{茮ۨ|[qڀ,$mjPH^FLҤS:* VI~x,kZGwX-5VEU)bҬ W}2uZ8 =zkIyl yqP60H.a,SGyI"3Ag/}Ct@]c%1$ S;s\UFmSuLSb77U=P#kHc@@x[ )6'|:4篐}0 m:A81Ž{JERn:m wyNNRH0 ρ]y7+$?ͫVE G/X+ڱ@c*gʵ5 0|f^`_j'R~3A\! ;#jZE_gb'R#R(:vP"DբcӏGx3Ӵϖm|G\w+,~1tVDEʵVk;m=NԬ@*T< }0+*[NrgQg7 -YKŚU(΢d"Q'MREN< =<烬"Ud1]7; LO;ǹ͋TyUA;6Vx;n+^!z}3=ZhW8<1-w3đ-cUP|J) [o5X,ȕT'ԜrwK[iZ ʃmYZxU^-R'W=UReGuYw_~.becԫGKޫa̓*:ي㜠@o=f< i%oyª $펇( ́Oh`r[ 5I`x t? wX\]<>.&ĥKJ[| LhL%opz4 fɨ݈uz6ҋ~{;N) !dSgդIPCo֌ٴS:TGx'Ձįq@\g$ivҥFP;?WCWbx'A1MUu&X.۷bzu5$8,Io5ҫk[>o=cQFL|g^!: 1S vs5WަaĪ;~:NNzܩIZAk@;|Adt㥶V1283(^|c*R|v̌jIr"#٬Q2CY_m\ȭ!bwcΚ/ALe#* kiaLv|CU -C'(PF򺚸*_9 u=:F,OA6 z٫"׽+y$ 3ά4F0稰"=Q%gӦ!*pk=(7ߦu ID>޶ қw-BIY9iB{= ^Zu;L#xYxk6cbce2:2j`cY]Y #ZX֋朗؂!wR$cw'f?Lp7ݱ/^࿕IPmzӦw2洀-ק_tv˫r0`6:CY j3l J2OvېibNE76],NYT/Ycgv;-jo<ն=yU#"X>SiR-A zhGjGE q;؝aoHWじx< íFipx5F[ݫU/-Crib2*C`#PIhH竨Y* dFrOQ:j1on&9&bZl8rFPfD+"bՖT1D@ yt1ᾒ,Cf1[I>1^J ݫ`K.,*GS4@4D@ՆI IB93gL|.Wq]L],韉_W X:k潊UՎ1YtL ҵ zn#RX?٩)vG9R%;Vܛ\y-j(,`YSqPsԉT_=_S+L Ȃ Ysa^%b͹) [[rEo?WHAzZ+wBח#cZ,r)X 8|Di,[ZIJb N8{N^8q'JX8$ήb}/w @UA,vMj-jr2@ΨZc^ Bݣdc%l)OZ)$3l\Bh>kQoI#Lp1rؾQdRVD(ŞG˦ۏ/V%XKm3ZekJpuuTㅐ-S d$u7m,Vovd@oN6ڨp@A*=D@*/Ewfds HoH#;)V'#C$-1]9"Au|˒(`j ׬-R-(%T/1f#V,\^$3mZ|hHVBfH-a.qCI978<@*W s~'9mo>$/3 Lq" Nvk, $|X:{d4 >'TVY=7;jg\MK.DZ=L^|#Y'cYY7R},۟ rhz+!|tn6-̪H @dUg<'o$XAֳ>#h V]7ZDIXIWqƳ h-"Ά>s;$f+0"U ]A= ܯ7?l\" E=ۚXT6;5(8US϶=z:UX^%,'\zDB1Hk־zOMhN(sE2}cΒ9%2֤f,ڡ24׵nOi9MLk<Z<FMokO!,԰蔋[6y(::^ /=+3ր8s; uGښܕOWѥWʶc:z~døfV3B|QaNEWS*BN㈃R4W([:p-*]&Ƨv_ֵu]YZո-i%ج lS/.k'uo1}Z)BМ^%ON1Hhȶe%c᪍awz'ǯMgZ~kxyk@~xj#J)41=1]Y蜀Ր;(}USk1)d#[aN<$y=Xr6_,z_}FRű`( kH#eTƄ>Acq58j5G@:0K9#Hꓼz cYmf=Fx 9.{GL$1 KhB۞Ƨ`_GU5@ E- _)^E>ɫebh緆bq0 na+οH "AkaT֞?Yv:XSH݁bkX2*D guodbjĺn b QcP"qa#` dSaB2&4_1 9 AL~b($w| ?![/Ÿ#}O/콕ʭJ IgAjjڥ^FYSOT#ga[U 2bLȟ;@`T<?6)cj 0^B6x=r⼈0}FIj3mȅ"wA9cT 'PTNu<|kh7Zؒ=y:_֥չT tRg[(ի[["VBR0}(ܘ"I>:acə2GY-Tyđ_ @XDJ\ZXÝPGmh9fۈ29Mv{p'zm,ƶNwn$)62A"c.8I?ltn_mP/GQM\ݧڮr6}&Z`}0NA|mwp0^d<5Uk-7!3: y.@%f`wُil&?Vn6|= `aI'UUEx$g%~l YߞK80gΦ u  .b,́"FcYPj_A߫ZzϔڱΎ܆S:֠9=(K3LJs뵗d|4Ɔ$X9zmPE6dv;3iQ_Hp@ Ǯ^LT+05Aqt><P~γ";mI} HF42(c~bm5:.`U%XĉsOu L܉mAbG`M7?%PDLYɩ:=`NkxƐImꦨcgVzmxEWN^接ymϦkd7g̓; t1c˩mjD-[,OuBmD1hPđ-gH&FPf$4V {(į"Y?|G*l^O;,T@Q>$4UZfS۽xpWxk=#[߳MkW+ !.ղJ}$ԑX*mm 'YH2cVw,G@̍嵬 !+v!3z_voP)Ck'rY#NqKجy1O']QTW-w)A?O ۥuR7+Lu X=Ancnth]r<`o1Ӕyk {s첂?BWZ5,嫉ФQWP9m'`;77.+3a>:֔Z6`AͬeOo5dN5Ei5nm[n:ыXW y-,ŴH!v+:b"c^D+HIIz:D4ycLJ[)`bv$ߩUʞ+zUPȩ@j 2L1F*DH:̊e ]87ZeԽ2;W%}AIL) ᶳb.n]5f<$HrZ݈ՙB|f>>z"ilvKa2`|,C؝,B,( jX_I~u# UՑa<7Q׬x*rEL}LʨUM;?*7#ITj&1S\p?W:,cN6~,>I%.we5 kxi4pϜq *IZz{ 5pv;B$/;1<#@=1,ޗj.Gs83 @>N2qZI4Vp$1=d56Djaam1ƵP0~<,7A +D@#rRRbXrY.||O@edV}f`zoڙ3  yma˫Z=mZH.ʣo0 {h#YXL|<7ZhP?\DOTa*(Xm{klBGp{8;E.[9U"ZzU{ (P'̑n]P-RhYf Q%r"YyG?ntX(0&v\}QYM5ԙ4U+E+ Lcm@kǹXe_Q7/UOҬc$"7k?KmVdٜ=c5Bʍ <#cܩ"Iak'Lu(_XTX|!}fz, F驆Z0L]td2ަ$&ҠZU{q |gQְo(Y`:O:Q,B? jD7 ֑B.!s U#ăϧ36`oV=u~f]KJ C5 wzo`V q!A/W?R ʼoxm&˸ vBAqmO[ת/uK@m]|La 7?&Ŭ=$,ώZ R,&@P#l~t*Rh$³/tXl)o%f94U + OJN9j5aP8*d`7[Q_qJ.hb񪢤~ՠqbr3D"6bǤj ֪.zDASAK/`}@Ztj nKx中P7"XYs}7V)E^K&jco?eXY q%k<\F{h4eU6Hx  RXɝŠ㵪~ B3`( ؕea(YjVBsreǎC ],YR3|fdr!m?T?s#dinGey T5RԥP`ajQb+,.زYQ᫒n31#?kQ(d DYmM$yƩ[LeGA*]37Y <׏ekp7k=T)g5ɍ.'H5ʦmڻ[#7ˉ9 d3?T!m^۟TTX%l=|> U~F1>? >O(RʡbX6Zؽl{5V6RGIR{'R O*IeTYܪ袕kA_~J)ϵ1+1"~^z=ʹ 骓 OC5o& h%Fpj-Gq6>ska]Bmv; d ȠWCZ#RcJ ʲKAi@ ә[2p}5 [WB\ 9u$Dϸm^Jdt"k9eV=D1&Y^OXX.>2$MXƛ=zȽwQT U!l6@30w-e"}l 6ӿզEROG.NA])h0:o 5VA w$ j)=JkΕzD$A+E|A[!Yn?qlJ֨ctH$H0w;.VדGXFώAkM9:-$h1 Y9H%*HHQ7RUuc=+.\FxyG rqrg}YO|@Un9nXrK1q>혥_;A[3`g܉4 [m1&&Sb"eOOjUsWCOOP0)Qsf5 ^ڰ;^^Un]D)1HŢk;3o=\5KǪNvkX$YN!jה+琢孊[|w ((|:uҦhg'ڵ:%{*zu Ljd>iExñ2ow5;u.q+ZA;V]!ReH2fn"؊곕fU`1 ̿qȲ@4> MX')a'́=zJ+;bx!L@WA"EH>:L^~פV!}E;Jln{cڭr4}8惪ST+U@YǖGTZ0cf[Eyq9n%d:=t+vQBHVaDKI GP `>@U1RKh/'V9>e>E1V8:7%BWa6+C$)#bOf{պJ5H@u[Z|:˸=8$O:69Q{(70l:xo`ITꈈ :ic~i(䗯 6$iێ.Je}p<?JOӦ55>B8CIT6VRQ"<7Qv8>4 'xۮt^2+J&#YFs ݎTTT-)mZ'~luГ%`);pv u{cY3H6Vl`yՈ\Q@~ѪW X@?ߩ(v $@a԰=tLsəXĒ4н,PՐ@Xy5"?zXeB$HT1}Jl?fb{eһq(6¹=|ӍY\+d$kHMwpLavgS'HֆoY#mfŀU fUXɞhxyb[Ҳ`r>KRo; /qnR,meDUaw"I$)FP R9+{06A#c: kU9VbN6SCWʭ j))fUe )gj2;j_oXJ?W@>K- 6<7H  `tFk+@T:TRO#q#nAuA28PYtZ6C_eKq=]jZl;&NX zٹ0z2<5ApMlE({VdLI.l65%TZ|> jv \Lr](#3+Ɍ3xv5hpā3Kحn̨o 頯;bVI7aBy` u PeXE ߠR'Y 0%ha[b>zY~rʹ)_n@>Ekmv(sJ뾁 U,0O#hh$^Y?=LO(Wⶹ?[^l}QA ̒Z )U~;,`x"7Nk)APwӿ]]Ʋd nD fc%@&zk45yKV,CGOQ FR,``<ԱOw jĒINbiX6cV:L +fOVGl۝J؟>wFlUS&&wAr Xz|5+Ȓjqx}{k*[e*R#>>CAIk)g5' hhYoyC4UK/]GfH~!B$(RGQN˞ljCS$+ w?B$[\J$~ 6&YH>[mE;Sj'ib }|?+QT@Ww5M TU9ܬzHf%7KG穀KVNCN<|M3nm^ B8¥`"~o3uA@!a:KIi=u /ܰH.<kRc[?@7Adܫ'g5Sv]T c'oTNr-;։`2hukxTa׉H'we+r xPӈ9dOB<+2 >3穀Y@o]#7XAfAayX{Vj"_XyBC)8ĭDLtǎy$ Hϑҡ[XFn5\ v՞okrkZщst+X `Nc_1plYT{w;u4S툂d|cqP[1j<,yAvuu> .G̎礦KiwYV@bI1'徝@ɵb0Hf"OML4pͮ+m3nB#ϸǯ!"7ֵn"L{xȉ>xi)o4ԋMJz:~-2W'16Lș>$VA(;زchᎳb[`Sj ʦ}[j1 2 uP彴݄kYumD#-B02|F[mTPON ƫۮn0l0z`b+Hexm:) A[79`G#][=RABaOKǼjoj\զY:apHbdbV:mPeMC> 3(W-Gxŀw.]%ruz~=䨟m8QA$#}i,ʖ"聠co= rU_):x4 2BcAbڢ |ڪuUQrW]z[jBeAR`b% [ia7KW_)v`o?öRp^Ddrt%`mgt>;0H<1||o_C'ñ$o^ֹX :@@'4MLe_@xhXGK1ׯ9|g}c@M? o>6{6c55m)!Ny {~Nj.SO?? 3sl\D+V Ç2:hq[2V 9tۗME C` @[-fg? SE{<.+O`5 *nU[k|`(l6+$D? 02xjp8Coo$,cEHqI)|Q( Շ~,ƿ9[=iz[GO=Ykx<@:Pke&dXr z:[^ۑ}.1@'QHg[}iTWr<fP'=t!ZҜrH"<~NZ1OPf>^$j-pFg 7Q|t ɟ-X _Z`y@m4]wP -XkcuBl)aNo;.NFRVedτ >&Lokww{7nXalᓑ:q[K#0%4CwF!;<@|uV }4s2N`ϻG5eLgL݄?n5n*-ILdzȉQO~m mx ?}¦QdND(6ڟ5C4G&֔/j@ԝx|uhzrx o7M8l*pwPZV#ڬ@Z:;t;ԧ;j ގW܈7\ND;]d`&b΀L轹9ˣLq|uk䩹mQoᾘ0F禦5} bLj;^ qn ZHlwbAOSMĶDPOę05?2UbUuf4GkaXʆ& HYlRL>^-4.2GH\F\Q|R5]TIm;'bՕa"TXłd5#siyH#L5Qnɾ 5xYo#$Wv[)ՕHg%KX)LL7+Q ,̩$U_ja[JRK'iv(jeưv$ f5%Bϓ]Au2|:u,!AD ~> YDv?=j;B:UDvxWNlWhvROQT?ڢ̏s,V_]ӺztRoXZ1`nʥH*9[XF:F䃍F0tILRHDG@ r22, 7@2ʇkpWBRWc֪lHs,VF%gbDA: Wi/w`V:tYljB\ :m=kR~>JrΟ,_BPNel&:j8Ki|VǶqEQjNnt:֫vtv99m bgpqZlV!$0T# L-qI?fbCtߧ@Vlz)o *c40@'p"4STcZYؓRvwhi`J[nGBtǴ (>3h‚$$7-I}4"r& 鶥U.뇂՝e]i$(fC[{@a:'dӳzR}PRoPհ,bdXNc`!jIN$Q`vDRlW_ U u&#cŤe]PЫOĔC񷆦Z1ǩۘ2gZjVޡCC LhU북kJSbNje\lLj~>\{ vaݿ58$uR~ QPD4 x VFjB⭁ P"##:Ey)JR0~ H RF#K3o|Ym^wJ(ψ-n~&\>68z}_E׻ىX,yIֺU>ёEi2;t#\gR1s_p OPH[h?r둁RBVo. #?SZRd bm`دnR*N_ij.ܷ3pVƩ8&^# t;Z8v27Qk$Vzn(cd5 2]P)u'oXԯ*ǭ\*)G{m̒'p|֥$7pO^3hdTMhSlV#a,i>mUP"@0guq/kha])8"7Se+oBg2>Jզ2c;gFzJwe^*IatZdn O&f843{H}?zi`o\< PWqAgv rcazoVŎUuxvWX{X% box[\qXx)UGs2AܟۦtD~N(4$uf~m=8J^>Oi`v*TSR Z?#mHH:Ae~@=vT8q=KjY?S!ΆHcUɥi<ǽv'h +D'(oͦ^DG&K l~Ev, xP6܌Hp4WPNn9| Q]< N>#æ+5℈R 1ƨ㌔rJޞG%)_ rpz ]W=0Az{qȽŠcʪ+$-'}*Yd#&cXk a*8t谇;`2d}os5Jt pI-GAmd}\Gz(e,Ӻg3S!uS 5% 26\eGjqP+ᾀǨqxO]}xB=V#L Y߶¥O)堁.AU ʆFEHbb#Y8V^Y5)w:+a~JګtmTll [L_/Y=Rf~J}(]j"mWq=j>m8}7 T0s! -R[?7}T)3PcvQQs9,t ۪p.-^.2QkV~0z-*Kxb.,V#=GcB#5w h61d PXf8,v3Y.7JCK2dGSq*BRTOCZil$@:; Ya3(5'R`]`E $&L}ڕSKsB@eiV֡kF>cgMI.jT[m]CUϙ߮2I N"z@^2{{ϸz6jL2BP |I@G szD;|4C,uƢ]} ndڟ?nl1?~^GKG`nA7F܃uj,-"y<뾊V:EN. 稬gEXPU|kA){,àΠ+eL]ek IhRS稊&Juy6yj%$O.kk r:>{23/[G;ik=7=d&NhEkƒ"@ L|@L2X[= 1Q:pۈ}A; %Kx!OuL[ݩ}Y k24 y OݮфF?6n@DKkQ(h`v|Lamp O3צ[E Lqfvi}Ͱ2tml<ŸSABw$krx-g*XVVx̏z-bi]ԇa'q&Xl63cS;A'Gu4ihL@ק4G le('iOW 77kG"3P(D'`}S̛G9}@gn&7gVO&G U$3# gְ/w=v=%[_0>}gE7We ?2VLyH~MX[XQ؞oiDVqY  c>ُuy&u&IoMS8X=q mKW @Յ a>ZJX^'kUN 9hL]jbl&xᩃ̐[qb$ ? j%'^ibT'[ZXJiN${wիwM͋v:Z ZZvդ0KTNZljv-ưH}'[y]c`iL6uȘ"::#Y}q"Ȗ#4tC#XOln`ujiqⰥI\QF?8ZEf0zPՠǴJAa'54QTT)\ٻ2CG3= [ 0:FcܧWL8-Z$ X,jSw> )r- u]IqRDj1R*dCX.:U-u xu'Xh{)P2,8(4<[8SŖe||DVPatG{d_@Knzj J%M zoЭBP30<PM}:4 [e:ªEhBۑvMW8Vji=Zv΂Guʩ .~/w^LXckƧ{kV[b ~}t]F33rj2U@q, 0 N=w67fz A[3A @ѷt YEYVOj8n$DGӠQ6TGG@ۊp59.h7F܍ ՑPZC)^%b'h(evêı,kG@NnT_1;=3oypCPhr0"6,hn'ߤh9i' 3 徃8v!X32 .C ǟXM ccG;&XnDYĔIߏHA1oddup l}?nUqQd/jj C; fB=Ι =T®] pn&=^i<Ѹ;co: Tv\ksZ|cLzǷʉ IȈvu`I#<' k2# >Z)&L |~=uE0*`"䏄~Mj>喲[k,&G]QnK텩}-aBN)C]vf SNnEP!Oy|d)4{YobI3 ϓkx+TubaxIX;[I-A"7tfлg˷j0=[}3.q\%F uH&n+g2ܗ}:f=WjʣzeuG̯ʚcG֌7zߺdk4ԜǸ(ؘQ]xY+A>܇mF8JwU2Yinxjspl c7N_5JT\7( 1)-jGWn}5ZFӑ#`rO-fj~`]B )Cu>}o5tw D,XKny*?9Sm#mjx!Ub{K-V9&nF:u}bp@V:Fړй<^lxOm9t ܻ^5]]ư-u(940# ʭ Dq:ʊYGłf`AmqCeIߠE9$1,:6ҚEY0IDzu,~uc"Zx !m׍S 0`3f.+v.P6'k5e*4X}?f.a>۲jv#-tFFBL2Lh>)h~=oT9L A$jQ[5V,YN %jA-J=qd:֡[jT0Hb|$o|65vxS۬^%T)W6x&dymKՌ,ñD"ZuLԡT%Ùcߔjbgv] t?f="bXw? YY+F<ĎPa*Y@^$|5zU [͘b^$&gs;x.sퟓ6eC!Lcwj#K}\D|Pc)eGy; 6<د;ȀG@KZT0֖ͫY/cB,C4#r b%Y]}qD;Nb@:j\&JXWooRPxTcKS ]Mtf32Edu6Tqa ?`}Kl˺T\If4其z8)tY KW"xOXPPIrc0+ۣ3o+ڲk %[5':괗'Z'm/|*,dJk+-8gyz5 d1.QK!mD`qPfbXe:̏jH;/eMa`EhDxk_15׋}"ӑW:.nKvΧ|M(6$~kNw ;rU\Km9LFȺjUEܠ:묉D,XcmxmU? !I;I|Fa ͙S u L}CK֍t " x#9tYGwRXԠ&fd҇*=]Z ʨ hܢu71ʳk*=ڶ܆|vԫ5])P#{ CFA2e-Z{RT}'e"XQO`0؏i+V똬ք/K"aĩOҺi-uKoQ&@:V \] $G饾#sYw<zo+'oM֚ILQa$vIo;t֙ VVc#CE]chnR򼑀]~ 'b#: .EuN#ďQt cIt c k;&z_6A㰁RY@a; lXA3 #DZ~ـ 븃Z4VX0c0&Lt UX ̰WQ!&f4pힺ2BM̅tIk"?e -OEC,ldk-Gִ|sjZo,vZD5"zr =IN 놬ăR q|:HԊWRyH>:JzfqYcm? It\1:X݊[jk\O&Pq35_kat;mģn\0BSkz5IrVQKx}^Ws\JxT@k ˢke XۀvV ݻ;QqQuef0IfC;[e] 3n]z|}DlW䒇hđH Oo') ,mutr dh.aFO>VU}C͘xH֬Wn6S+ʴgA6/E8bǬd" #DLQ zPljRLj՞כs\128T ]g (rʕ*l&bN_;`|Vm9èyMDNO۬b>I]& ŷ~[,kU;:]VSo˧t<9L#ĝYD_ʱpx5p \2TN*lBwյ4͸ym݁ߛ85C}U>۩7?-(Q2sY:زS''`Y"N`"]v))uJi]]}岗Tl9(q=k_f{]ʊ5ӎè$IJ\gmwq/^.^%ux0? eccs@a0 \K붞JxlÉ)CPSA`|R,1/'>Ӫ a swgx#bvBJH8juGV,` LJZ^ñVNHjiLmjILZu{ՍY$/jX?w8ډ[XBs"@)ߌo dY\q;E乡B T:~-dfgG3q;ߧTe >P"-Wy[ UF|.Z^&,#hW,kr>;t#{  }.wu֢SE]^Zt]gzkbeC\Đt[JGŖI?eG% P6z3MB. k8=Xkr3]d7tэBdžj% NkHS_SfAS5kЌѱi"GgAٯc֏ne2!L˶I| 逫mIK#ǯ0@bGF..oYA!T/٪6^MgHQ"z 8)BI);:fB7 $MH;c# c~kQ ah>pF/ڣf-;Z[+G'Whoe+&AkX,v<Ix@ɑ xZaXX67yos181֌V4I}~wN%}+3iR~ H'%A K媃_U=I, ]$@ <}pip#X|th$R ds?T ٔl \D ,hԿF (Π]x <A>b>&O4q+mC E@A%VEU;O(:ƃ8*n-;eی׺<~c_A"=W^C('ߛ+ `ؐ#jeAYYU׉ fۍ ?2G2DP-T>6Pw .z_;,YԒ<'a٧@+ dJjGoH㦁tH,@ Af;@= @4^B=.:f%n,aeb-؄>y4DHKVMown%PzZ b"ρ$Fmþc  Ƙ7Y7sԝ *#37(} *8S _Yz>ɡqAw`fsh\r&T<D=5;?iţ#srѿ]([Q_嘇^%Z%DooTr'~~L4Jj17d{jjtیuՈVgKI Pz|ur[/5:)ܘZͦE77o8<6KӐja;cVW @ Z]#1֠Yl?ytZ=+\ՂX}&K0zїCv1F=~P#XW,$טlbkS۶UF kG) |uS~iĮJ0)r{XldM6ۀH$J8& }z+[鎖=gԙ-kD2%`U{x\zHC1އYQ\J HJrkƵG孫Ԗ:1LVȱv>;vϸۊ)8,5'-i i, )Cİ?:je-mbdƋ]Sk,0GbuY4NN},>G\ۉbN+[{!a'ȓZ f=l~"~Z7Ũ-M ] Iب0L12me{[ >z;4K@¶ڪT|tDKقE?GJ߅gZ ,gȞ=tJ\͌3ːZay032B:in0zG!qčt0{.~%AZ2kTa B = 41ҐbU}Q;rZ+! zTI5c6RT)Wp~mt_fufWI<*Tʑɉ;4N?e4AM0D -XVLJO_!cYqadūLR oa-B#N ;b5(ZQ86xXǧkc Y>gWOnXIrv&Hh M)8*::]ڿPY6?=M w\osEp4 T3Wݛ .qr'Ra -H&@+^9皱Fu}^@W"9#&x@J' 1.#*N0'ߗ|6%Tl&@Xcv0uDsɍ, >MZA$17[v܍JS tpbiB Lt:DWa~.պ~誎J+yob [1ǁ:=imCK" 2 ofiel;3 kZPC}P!}+gځR0v"&<:)2+uV+ }o>Zn&AɮV^J/-ʼJMYZш]2I<&5lMa3,Tz귈qbvg*?g}[ZmOH0>j3Zb[Nk8hBuޏ[1*v aǮi=Hu` FP=iK6SX(,z^].[H jJ䲫 ,mZy=J xk-KI(Q@p? v3G"PUH:im^AvMF3eK}XbN=ٕ=L$OB|є=,KGRЦUuE#کmrTV?zQ%;l'h. dbQ% :ͬ}e73 TQ]M8eBjr}<@R~2VceRD3uك-89uԬ;l.Y q LhE_E!u%0:^ӱ^_o_qc?=pYٓgm6+RR)uۏYapĹRY3E~-,Z=З5$b7<}ZHrKZI|V n7WlLaXv4Pvb !nuPrh@MLf#<58Ljz*(oՏXZ#;*iYkTIMgnAYf!}8mm}j lY쮅qjفgUN5UJ""i5E,DAoNUW?=;LEVż{/0|ԱGpE> O%Ց5kv7P.I 1NQ{=n ZһnԩcoqrZHvb+ wm:ed .6;}\Grd2)YPGny E52xn1dz_$,b`5+0" D#*:AN|%⤎'_2v6lH%#h?i֭F+B-.94zQSL"I_>=a䷪WbDハ\ S1T ##b˸*ᬦAYrga5*-zI.ŁXGooå j$WJ xRf}s*6#-A,KĿ"^_sJazcm>Zd{X b#D\ercu4Δq81<A6ƥT篑gf+1w2C>Zn5<HG op>}4{۞@l/Nhk=):W%jcEAv_%A2NDhf-3jS,GԤۍQ,%VT;O܌ ZFw1=G(&-b-II;mYoZ$hazfU}mJȵ36Ydyu$i)zgL|1N ~\ LꏪWq ųx}Ey@lvGs>nWfw7I+=M98#CT][ּ|,E*3Ih1OR+ܣĒnG5q:B33;gr5%#VH[|8BJϥVEc>Jp U-MlA]rGY:8'ӵ`ij6i8z35, a$QmD/!=LU3r(+Vv / )^b pΦ /?fQ>1AEʬ13>hXWbAb&xζ.v9˵_[7:wJw'>Z>^ީq2R_ bfZ%ge=+XTm#& H\9WN]ūWQ ]5LyAV3)eð\9)d2 s751 +2CKtKwQʵ.)`-Is:kQAԖ5:;I`IƵ RRUA |6LM'*j@@*?v.(U%Kxo_TҜUz =n$9Gqd4J :(ytUo?zoq ;"5d2qhbz}Z&괜?Ԭ'h~v#btdA߯":K.Lt*Ö8X&E#m#?P'mJo ߍ_#s+a,?ե?M}U Ugor=uiwp rm^`J L'A&),Gڪ@~S6Jg[MԸ_KA O~AkT1[Lr x.>RSCf30;xj|΂̒cD[.qh-^X 4DG:䙍QkpW!*j3Q^=>֐la:<`-^!He3;eI]C#ytSUc :o|K9V$ܨ'S BluԎymkr1,m5RXb o?-\M1-` gᥫ p~HǗOڦ1pɴ::dm=਒"9OMLarCԣ,Vo\TlEd,i?SJ NLd7~-L,7VOx'T^^jx: ̚p$o~:T_0"d-vBm pb 51ty8nL T QRe>&N1W\wlv%]U8\T@>@@֭ Q]H@>kqRK$ym'sjJb ZE j=pYh(~nFa ;nWp?Hd6#B8K %u-@)ht TՐ*|#~:wzTZ%B'3ٯ+!$ǦOX?pT(16b6\.@ ?XĒ`FNkvW)F\X)TjȶGP#Ps%X:+&!:!|ܶU+>I>:+~:lm Fco:lcxq w)JIQQ,LMHs OL\7FGkꓷ'YHbaݏd]2caSsrU@d&x*hRbH?tia{ҼⅥ\x/=c+dF5؎M|'żgI|iOwlF-2= A#ٍ~w<(JV,Mj 㮻8KotHbgE½ RKcuc?Ԕ gL`@Ů-]m56my:-dC{Xҵ,:q;m w%wlԁl k98aҕ Q` ]91--(8{zC@HCJofɬEbWpz>q!\fEuHU#<5`C"1f#bj]_ʋ c`Zܤr-Pl+Ձ]y9l#uśqU %AnEIQ7(,m"$DLq"'ǠՍ,ArrjÈe | KHT[N+%"ml z SNkDYWqC#ڼO=TR6-objn^/$ȼS&C" PM&`?gu$2x5*M΅aNdOݭ3KZ%ͨIPv1u] %;/=#$2lUmmiN6(@}VB+sg#G-$A+}z` @~Z9ob {K94ǧ uQR$sV&Wvص |<-mݶO$qVcZჩII孡2*gWxj6YVR qmZxרk65X~>C6/ZPrm5@]5QʫpZ8IWWX̌ &Pl/->c(W/cxݨvUh:iZ>*v鶀-C_)0VZ&v۠40}X*m XOO_`ع-Zby/80cRQ{G, L-1t\ HFZA]"coߥE Ò32t'LWIڍfU]@'֗9+NffG`uWКQz&%XxGU afEJeuu14Hc@ @#ghjA X؏ުq(+g=ֱIe ^`VAHNmh OKLzӫٍsTc2vx4Ԑyr;O`KRC.HY[ G_I IXy_s>}L2+~'ajuA4>B†ǸZ2CMsP$#UYԶbP!^dm=Xo?=Xqb7O!bD1-pD%TW8Vr]ܧu;H$V*Vř^@Z`$<:*]dsY: ߧĵ^QQ!`wDƨHC%@QP2NlD'~tYXZIz GX$]fFFY q|y}: ֶ?*Wb:gf$V#@{CN@Yʉ碋]Y $oz ypq#`  "[ U󝊑Z .%5 x#z'UkINY7I=#E5NY`""> H 0ŏ^: c2mU>#E5Qۮ9x-C+x.MW2Ro4IZ7^<U_ Jm T⺗0 $}p#HG-;h H-*6hzܣ/ Θ OpGmȂGv1iyjW'F>U`i5H@0,>?Yzl,Q]РTտC?w5h/$;IP}+b?V+w /ٙˋU?*ZAAcmH:X׍/VZ Cj.ŲAa'v&S9FZy"+'RF{7wO `wk[SϦޗxϧLkLq,&|?Ns.qK#9.%͌ow@?PuZdĩ ]vly&%W:Mb8܎fpۚm:}B} D+ Tgǯ I٪,oI </>`C|>=PzP0vO[-T29tPt@=9Ԡx;Q<(wQ,lc Ǥ@EUcyN}TT^f9c0OYv5eK 1\rA̴IGFR؇,J> c㾃MNAĖ%v? 5AB:9n%xT&O7Y0\`IBA&U㠪}$*}eԝl[%m~d!y#ҁ"e ,B@$/tXK6%xԂ @ i~`xz#qڣnJSҡ+`Ya>|o+ʒ뢌钝eJψ Q!k cmV`Ty `ۊ-gȭI5čJ,լR)2 ud46eճpA?=ǹ,zYŔl|6~[qh IB̼t4-l-Ij-!XHbLC'TvP8H '(# Φ _jfeַ0 e=Nk7ŏK;! $фz4[72T L7J|ͫܙ9]DᆬTFV}s}d#ũia(qb1'cϑb.qsL d 79RI!)yήjF+Yh v@?LN)c,95r쓿R}8u k1+=@ DOH]0yV `w`jSAX ,*͆.MfIJV d=]L_אm,K)haT{+N E~2$::sԦS=5gSbR+;\|b6ĀNVcYoG9lu%NIcf -WzȪ=[ؓL|[OnՃ,T~*" ŕ 9;TjjFDgLjՕ¼y)*Y %?V4VYU_!&|uWQ/Zܬ"V Ѭpd ?\Ja,qt6]m+](I $c4O=X}rrcY14^lY3V .::rsoצ.`wQQFAR[;ut\SUidVmfCCj؝oz p[fIзSL 5tA,H&8GIj:fcn_in CG9;/ `~z[묘A%Vpz|5 R] vxH rv'mɬ-I`=vNGv.jɌ9cA-OB b-"xY(:ֿ*PaKnFxR+xxDzîU^pkyEah5}9Yu܉OќZ=Y{M(UVlxuKVDǣ$3~mqPsD"toRE3k"H筲zT[xxgTmױc0^3=5q5ls%F6颿57e*B@ |AcjO jP;m2Z+JǎG;MxOa'T[x"So'֦T̍YElURA? ftc!mĝk>F;WJZG (1$D4RאAy$1Ly,FLM\nB\*RO-HcYڹ (#~g}-U>~F`H?T: kx@=Nq*}5WԊS2 A^n|Oۦnܒv1O8PTN*|F碹cs< 3'XaY<LߪDz)SCF=P_Y^o\Aԟ-ˡp !{|7tH)U5#u:9 ZDzzE2930uC w#N#~P;VP$Vm2~3nB)e}LJ@mLA}c Hz;L-Gc.6# 'mbEKUZ69>Qʻp~;`>Fug+ *+q9ʺ]Oo,*N;VKZ"g2No u }-zI$vԢb S0#-<ܮכRv'? R׌/\0AV9ۻ&]-t&$Zs4ZYZ$_jjmt+ 1ydž"Gr#a teKFs{Ht~ɊU},Jk?Foxו~ZuW29w5*]:=vtY22 #V"Ŕ>#p312qF=.Y*DAZ1fڮ@MMƷ;u(Jg~JHgY_}}ϫPaSȭm }+!tEtc؉ƻȀP@",ݮCDyotJ.%8ٗ(r;?O㬇01ߚ_a% d:oYV\ŕ>[hB7YWD~?.>33ǯidKMA1*2WI45C?P5bWan` ;T %IOQՈ̍2(W&`i~&h??)کb@'Ν"D#馏Sۿ@cc`_fX2 5Q΢֘ϊn($'Eq/jӍSeCYI!@GL]b ''hiZ!@20d>_a ʪj|r hAJ"'cd!jl0#a۲9x/"!@;e5vǽk@kӉflk*̞=] !7vx+x/ 1]d8ews{2ZVV'L), I#qۮ"bb m.}v h- p4KZeW4qSAuՖ؆u$ ߏNPwGjSUVI)j4 }k>;){ \40C&Fv'V%XT"? RgHU!ZT%~zg In55ׂ(!x#n_ˋ ЀwrKleƨjL ՟eJOLWEZYO. rHU2Ea_juU\2e'+u!8/+ ?O]t}Trbۀvu9I;yyr2pz,?ay֢8GKTTuƋx]Bc38h1;#z1q0 9K۩~?ԉkq0wk\@͸ÚKOҭNd@vK^Bo͏9.cŏ47ba.$kP*%Xή5[w!*uNG ٔ6Cщpa o}) q޻Pn}QUUeՙu]yVFDKqriLd㐯qo,_jN|7 JEY;J;&lZ dw3al|\~m)"WRfI?qy8T)Ȳ9V mfdlf{nT ?RꑲR%r"djPj\-^d 3 Q A}?٧j2<66$Gg41IudKl u=rXRUX xkc?>1?nUSU#7Yz̵-N,o3/:JQVQD3'jcp\g䮉*̧eDZ궢'~aku-P X|d|测J2#(gbF73֥bmL.dqF? Ib5bH` 3"[t_}d0nEXD}zjYϴʕk+NmCҌ)P|O:PZU.T"1n,IcFqM;nZ_M8*اRUb`!E3DЗ?Pv>@Mb>N%_< j(Aթnf˾!Z"IyNqk[Ux[v y6./F 9 2Z>ZdMK=v'c'U pSF1mu_ Dyje1[k+ X?f8UaZvO;M${U]wjk_qˈ'E ?+T- pqQ5H:2cI zn6U=ʉ#|ztͯT÷ ۡ{fHHjJ#eP*>Ӂab 4OTU^e0JDW'Iˤ+j8 Cǐ6㮔o*їX<>5 2idV7kӘ#J".%6ۭ|ANM:VxUahIm2*eeAj~^Yt=$t5l yJ}>~]f~ yEΥU:%(QВO۩[C!- GVGOzA?3!ciJ̈&:[~L+6zt3v&1H#և KgnzhApu1*rB=+xj`I/:+5-bf#8Yo%XPFW*Z9+?s F]@ cc!'; ZT]>z lkKx2dh_5'g&EWYXJ$=\zƁ0jȢl~VlN _91@4ةR*:hz&ߠcǷʘ2G1Hۮx|3,$X-r$1\A{U *r{GrZ*mmX/@+8ٙI}:aYVķBl:jyԌǡg# D,V3e4[2$7 )]^=0P} `=򸅲fzHIZ)| Ε u#Ec@#RY{oH,AF0~k} ~Q=P;]}](nL (+Z[<'Y?M[EJVi ;xk)nPȹ&TNT$aˡyX :E`QWV5 %ڷVW?Xj|S/+JPo-R6;q]x$|z210 2b'ȏ-^G\Nj֣GuTc2 #ċjNd|2;BhF3:ֳXOu5 (ѷ_ /+Ip eC5O 笮9vא*nQL'1*ʲ},%P۾ܔ_p$e, md_E- G :{1$^P IXnBdXm5%w:ڱWJoU>C 3՚yjΓ͠Ԝڮ)$55OS,5 ;HL M0\.ˋi @"G=6SQ~ߖk{`*8˞_%^ŬSue Ȕoձ0=FLG[Y\v }L v;@J6I=bWscL jy(SQgf{+Fw]Al'kb6Y챫5 10GjdljU^[vP@*.T+wZ.+MnP*Qq|b՗b5A.,"մD﷫Hbp#֠Oms x}ɂd+ۅȽC2pjGP"L+FK|S~75-@j*`OAeӐGPc ٰՁکQMV2ΖHV%yX{EB%n7>ZwBئ0\bztW[Ȳӯ_ᣌTd`Ro1NKVO ;S#rC`Z (^\~>@h¾n*YUH:[e+XEcĉt5;EbT>AiR-NTUaiB,ƥfuvW-R+уe`3_7׸R?&+Vzu3i!i;;MR߫"%`d56GdRȀ[ Ϟш[xEYJ9(:nh} \UyI|Ԟ)!=Ӹ=Dlc}CEaXD@o? rC+9)cj崒`H4 E#gT}RqfR9Q5Y߈&TGYPZHFda3㪃ه`FgnLX$ TyZcJrbVH|w:)6Y`$Fe! Ձh* cb>t cqçh:)~ͼ΃Wv1ȍ;Q2`c Wk& >:rTݣ&6fzlBsۍO_д{|L |/Ar۲$y qm!DEPT{jna1VzΪcT+RGI'gB u=gS@SZl`~'q-- _K\CH-ЮF]X}x2dN ;?u ̉Y.l%O-WF(ܘnĩY9!XS3[%#gegS,ѹWcXhzN56 oTPkrpVkV"2}5J_NUmREHā'OoZN%9X5!kSØꜬ{gຼ*(>Uqȃ'TfV7͵9^4ݻ,wG'pwg.S25igo I J373H$'}>M?epF S^۵*@J*'㾹Z`}'dA$,z+J=LLw`gڜ,&HT(kn$NjFǙϳ*?DbV >ؖ5&Vʡ w2Jy =:Uj,VG=q|?YStevUhm}|}SiY VbVQ}w O4&7{ߙp?Ē .1g]9b1b5do|G$=N\1*oY/W774  5c *Mj1r禡ZZM־  9U89[v~ӮvlM .k ?/ՕTn!a|OZJ1oT2Lu4?cmG@}ܓ? dkG0,WJIxc?OddPnaOq:<ژ1 ~Ϟ [   Uv2Oۨ"Tߒ #ch5uj>*V Go=vƢ~O &cqM r };k4ג^ޙ9 ]  XJf3U+2c3m60W~[)o-ZaJ, 0Hc֤n<Oݫy NEu]ٽ ow mf(ƄHI#2>?WJԶ[yu ؞~55ZTP& )dR d =!zPOcmā+A$:>ʩPS#r[%o  ˫`G8 uS8xWSO`xXW%)H< d5gXdVn}(2H}@2ֻl޳Ā|)E|h.MM<Ņq$ְ҃cDwJEk KauM=~ ]Tx}VJ!|@}?jXG-2c? DL232W @Hzv~S|ir +n>MLG oɷF0>>:Mٕ GGNi.FJ+k/Σ4L^ڹlov(iߐXJc:]W |#S om mD:^OhTf>?EQ8щla!ɞF+;ȗzkOnk+ƵN)e!TInFk igQA[ؑZ@hcTu2˺En1$ƈ=Uyؖ:WUu`@130,5i@1"#yA2=DP,r@|Um 2ZJ=Z~n:[[_5##qt wŹMrGL :0 mE7cXOQ|Sug*MLnDfa`Ҩ/Oč렧i_N2Vb:J'T#qn5 L F_{T+VW{B2~Wk V$ :h'p oDfuoqk`A}z7 g4[.g(Bun]tY[-eCUˮ1u`'"Zb䧉jq@#}ވp a A~GA6̖l;LOJuqm9AY1 ?Tbvvan Z~|&Ww!uwdZ-P9t,"ǵ,[N1}#Wij0\'N:ʎ>AOcVsЁ<̲"[c;r !k'o0bwrF-Nc 2<]ފ,\Ps 5eDtk@CmZ;;k6ySEw,I<YLC>MA<&T>Sx⊞qkX#c\;mxfTXi䱀bLφK0gVfEo32[͈l$kxSJGBLYb|kSYCW夀}Yw% ˒ !їCJȈD񍵾PiƤW*xm y Qs3:ֶ(` nVXOoT3e!̵zߐQ-x:Ǿ֪iRtol~Ur;5e`|:Hߨ2q- o~{uYfy\ZV:LîDkT^_*CJZ*VO/šEݚȆb#&6lXcZCPh1㬵 |&xnNEUՊz 3[W+`p1-NƳ`[76{VʯoX63lQ(% K`>"i 곦0UׅB,!{9u">:s/g?~F@#Mc}Y%ֻ+1b$lt:]\ښ˘Y`PTO"H:IMnVU ZV{wJV'b 1y9|!NB::hڜ<$"#ďǖ{*ZI4ؾ0zM`}vPzJ ˫w E@ 9gEj,8Q*$z۰=k ܍̳1,jgD@u+*\3:n7Z׋?`ڳzLcەy\x>Hߣugk;?ҮXYWklC ܪN+&bCvԵdg`cdeZB:7:S#;%G(F؎;;-TVP<6 ue5űi#:OD2qZ͌Az S3 RdxkpT-fO Y.`6-V؏MFcI V^kb;r?әO <Ƀ=g_3q,= k66]m(-drZj)'f(Kl~Zkv(`0P=tAgMv%D0b7XX-Q+pL^+[% u8!ŵFu3ȒL)?:T}s}ȤnW~?-1岒fܹН|Lo̚q*P"~{αy;Uuzcr֕Kjr |7˴(V }5GؘXE*L9IӮ.] aW$N(շ"6 3;j3Z)@]5$n'IlxS|Ek&8] >ͩ&Kԗ_T7J̨&%e}tY}e ܸA<#uG,&`')ٸcڜ*##A'W! zm OS tT`I3eR0 #i3L[m_7Cń)#Vmw(82G/1֥E}ic/A,1zM,07O?w%M_l]^$g r+ESW jTm(w ۳{-ȁ~0|brg~&&zk6i{Yk{#L%=֌EOS!X_n֙OKWqTV" o)2ude-?v5R>5c&Rk_Tu/Xx%qVWH|Muo8/BڕTeBv5yX.4 zNgH^/ekS݌A2:P\o'éQŹ^HUVR,uPi˴QdPT%8ٖ>MTTMx w lk mV%y$qFK $Vx~WnE BzAFFQ$IvOֵ>휩Is[tO9Z6*A>[Zr'<D:1{puG߶Tƭhऐ_a>r~z?%}D|OUnT UV@&FFV2}NAMU-qWSȡ;)cS}PF/QP-`GC笏&63y"`x _+r=˃AEBX=NeS=uB>Ze:^7%n8=[H'%VdexᣟDLkX[UYYU(ORzDN;}%>{Ubvx =?nz֙+ 6(ܘ%GQ`K2@#2zo6 gt(@q #Ws5&v?Q(tv-]t1)ɬ`8&E-~,mOa+6jfVI-LL=ou±9㩋~["gsŗb,#T5FE.7.R}:E4aݖD >ZhRJ=۠@$(JvZ{ѡH?Km h Zuyyhƭwi LG@ڷX#ۖ"NU|JHG">?@BꞍN ލKą*6Vxj-Y7#аgr07,4N޽E1-O1@k) CL!|>f L TpzG1uLEny(UVQ"1Ճg.*1Z-.ZZ/2$A794-^ k $ӎtSG} (زAE'x |6?Rk,j Aj,D&|4GY}, K1zFZo8olaS\[@, ~Vg-yKn V'%F8~*]OAj=h? !?æƷM95;$u"`]UvXmpZ7хvHTyxxF@tW %DqG^ =Adn|6#@y=mbřSH:̈́S^^@bө"Bv:/pɭ幍1_d%ʬWTc멞96cY^M,a luo'.vZ["# >qu?7,IX!rJOtV^cAPQ9}wɸ-+:\QƟb+ ct㕶?8)Ý6æ; )B/_x1;u,eʙ")B=IabgUzy8$=OiG~8w sU }a TǠl|`;)mU^GxAw|1<u~ՔZ@4xi=7e n&n<\ Ł(tImwneHeL: ߌVႁ2d):ٖXo3[d73;봟@q2F3"\B`I/h#Tb%{w-L*/BO|tE˘*,f Pu*$fZ.x;>]46ႼҵdrH~fSgD]|Oz^GN=J9qlKE'mor7j1pȑ)Fiuk3paau'֍|+r x'뮼!YC.G//[Y*kޑ'N :E& G_\G*`QTHXi?W_W*aCrc. 3O \-dIm+`QaU, PN#V&+.0NFǪD'}fͭn#ƢƠavY~\M2qWEv''鶧B8q P5X@๰P)k9 13u,ʼnZ; تlNA>oը^[ůˇ;W2,zj}Ξ(>^SGpt;=:+; q*1OӨW翗-h< 9b\+n Ot#@ԬV:fAJoORXOo&m0Bk6E:hHk8>-e$f`O㢇j*UB|Ny*]>Z)\\,ۿQqQ3 ;ֵ0ϸ+ɾ#G4cG8MhjER`1:u@l7@>?U R$ qWic(ac,*/1ᐁTO I:C\kbUQ@itCuPQlHܙ#$+Ңj@ybƤܞi AaZ r;xǫ:UXC)q 3t|~MZ?c KSd{lyID-n 3TF >K~ZX^*rHuT^Wɴ'hvu\HPRv? rn2ٹhΐ"ːD7 [U2y$h8lׂOMth5NKqW`;JWqmxt֡P< ^E5R,60Tyh4uN@; lN~K۪]j퇵Uej?hc&%*`b|953NGr.@pDŏA11hK(j=2I;ϩkbPa3`}9NjZ_ԝқVT.BHr(g1ԝzii,I8&gy4=踊C>Pgu*^yl3X&@=L5(ǵ@+3n!W$#T!]e(ALt:Ut7c@?DGuNSiVB#)Uѿ#c."W|щ[$~!:1㻢b{eY4D0$$U-zvƪsw#P^]ueXq2V,MnuSvƳc1V 8-[kZjάBxQOIGJ;)/H Hw]g}]-u>9x®(4Ud%mkXol\Bz~_Oro&ud4SI'onITK5~5Pǁu%}Ա ~`wLd[->ڝ:Wc]=w'@}ٲj" lWZ{w$ FV1;[^+YD#Zk 2BX=^ň;VSVPJHI3JVWy/@r9:O=ZGN9%Xǂ5"byoM9W>$φZۿXccDYG(| '~Dy VV5wb&KX'`iݮj>Ő4/׮ZS2JVÈC7aîKԷ9]LSn@@~wZlP6&A'g+}H;1;vj\[V O c.N,JS34Cܲm,C$b3:PK2y0ʗ-̖*4|I dnj!Z(VW*74ZzIC t bߕ X, Ƣْ8_ML}S&DJ VkqvRFmuaacb<7-@Tk,$P-$wb'RYEhyL}z54cro\1O7>eArr;lwW}+ lw9N91#.تu~z6U(B6 'iZ@efΊkk$&5, qɤ3b6KzU ar%IQa:<'M[MHd27F!LlzHԵp{>-YMk'Oc jjfP8-[h2,6X!D;,蟖 Ղ N'٩/8N`Oذ;mRWּF=Z n$xߦ;c{;mMK4ՒCNP$DzyiNj/7{uY s> 0&w\iS,=g7\5%x=dyN4۰AҎdZE ń<ĀGMIG"Rǧl|Ʈp(@=evSmQU1]0@Q1c}jr#RlU[ )껝$j(U ˝D<ꔵƕf0:먉U<bU6L:hTYoRLo."EiLq (fcRkyj uPʺ=[JA&`*aڻrj$@3 #q8lxP(SR X>v0kT*ézc]GfTmOj.Rqd*Z3MW!j,NVcnAR6b[Hq<~Ѡn,EzqZ܃OIܲETl{Pj%TW?ŠUq?n9$ӿ_Z Ut3pT!zǹ䙰XIojj-g&Xmb?@O0LAQ1b-hP7=&!uDeCG"/E=mEQ IGOzuD?~ĀX}Q'@#C$DSχAY%;J.o3tjVnP}NIFnݑnMق]'ozKde[ކq ĆnP?P vC0džfȃc-x9$rRp1$4GNG,ù) O ҧ㢖5&UKl@th]W%._;-"XgEEA9&9:[π #c1㨺^rDw:+]>5蕀X!Yy!UjzqYu Y{S*a&N_iפ Pz#moR⚽u&y-ƬT)F<W`n #m[61zULA OƢhGq[R@a3u0{--TA?Vul7 VZ֑3n,ޟW!C*`GAƦLWZzrzGA~]nmuV󎚺1uY^(XPf J*Mg*+OMZ4+JvJ=&t2Jr xRtŨMAT L7I;躙uYmUD$oNBq>PA YZIm},xGw*S cÚ0 ~16 XCX x6Pqo̊kIں R]-J~>:IR$^m1Yy1 tYϠqcXr񬯐` D?a¦d'&$َ137Z܏WvjYe}?ug)iaµP (n[ʀ=;uۮ2%1R?S "zۑ]e y|bKU8~_ˠnO/Qyr;0n,XUUp*jǸNޮ#;ooJ zC@b\L lˋdV 1{ Ǧ$p GVΈwws$@Nm[ b<ƵƝUe/2zN|7Svjb& kT=vUk*1iڻKL|5Ŕ:作 P=:yf7Q ]ӧ~V\V # U'!z>Ԩu4eVcxu4 |ږL0NFj.[]mXv _',ԁ:5+ũ?k*USGHc%yxz:13Rʼnm׳K4Žo.I=>dkHc.iw4|'D"p qtC>=WS7wę>Q]k%0f#q?11C*M]{qrH$k9׉jl< li+1WCc52` wRfeoCoOy@[6N"HO@1[tۦSܻTx&w`V"Z#kv ,xi>(U5g+uuM]DbG;tcݲ[uaN49=_3竅:섲j%`Q0?Y'I#hѡԾ4E Baj-@S~-!ArU0Rg2#KkǬ4Qtu13ЮUH'O)'[1q{kL{A34K7% OAԵaMgnCX$cRB,겊G>|@kitzvU[<vAԏ1r5V||t y*4@=ZF -'lN ,wjRb`YZ?5Ϲ` ,jZT'˷!)Mc6 NՋnV9$࠘'EfUqXٞ8Xf' VmD@eWu!c('ˎ*HW)Jne$&^) ҙ!RA[ ^D~=( \P;BtRl+CC%H#mUJnLH&mxWc ryom^H8/0v|g}/B `K>(%,nq ʷDԃj(UyEJw19Kj(7'y {s/&g,v{/)5XXg`#upסェۈ^_?Bci~} 9& "EÐo2>˶Po|> b(eeXpd*?M9崔vzAhŬ*:-c  ZDf5NKXSAT|~A9Eڭg/uzUVxqo1F2Υ 7c^<-Qp7PcyRp8u]cYWnͰ#fX+ o; !(%Z mQf"IȱeY57 o%=cjNnMW7*(a[̑~I˲r,%5bmHfcJ*w@#m]0զ0!=M[nT+  :xЭXbU&$ΪkxdY[P%x0s]5#~t\3pWA#9/XC?ՖǖoeGPa!V7:2Zܫs PYy3غs+> ň:W3k6EWlj#?=LYkyAqښZf"MU/1)jJݏ>ۛ)GM-Y@V붴ӸaV ,aўNbYleX,}6I؋GǨ?;[c+T-i|HVrЯ.resʡ\`T0cls/ >R5:MT̹!jqfiΛ6`-#0_QP,3U r#K(iTV-AuJI_WOHˆibH#m[1.5Z=^ 3uWZK+'Vu-\1Wc|V|,KI(TztbmWn`1'mV5|QRk_wW~ERei5ȩ߬n~6JnF"IgTH;@ a{D'}AY ,q?F{+a3':p|:Tty4/2巀}5'ŤXz;O^Tcgig( [pZH]x{d sʹ ְRf;udQ|^*&J^$zoHcIiP QXH#ȍgs,km V Ye9rvKr}s8J{`GW'}4ʟvr kusVBfajE;l64ATl[RӒx*n:{l^Wm&=?=s.0=Ȭ7O᫔֝&`J$2ϬӞKC( J{[n\gOڨJ(eZX ?n^Dzcp9XJ#5,Q\b^+I"|ѳjknkկ=jWCpQY@jvRDzA|txXTl Z&rK='q&o P*~Gs;ja{YHB AZ:W[-F =v0vtŌ[&8zBym6~B>_/ֿ lIS$ u)C} ]Bs;1_:yUP<^Ru$Z}Bx0B' Qk;71:1=x>O@J= /ꎽI@MTZnA5h*)?Ŷ 1Wr5G&oKH2R-ZyG+,àu}I iHخȪG|c`A_HE?h^ȋnǐ= (irW\50zt}J9AV,=_ìEq 5vj$RNJV;GR[TH%ZOL|F̮5SC{M5fh#{ӈdٔ :q ֲ(eE%uE rYPUrF*,6z%h+uFxE_YHϨU8`#SNꈔ[yǤAɄne$#sL-pDDӋ0=H?Fg9(k%L⤂z!¯뭗5PVH0`/H1۪Lx ;Ƕ튜e*"KDl܃I7 %t[)Ml[ |4%g&y^l`QZ[Uic};4F8y{Cn_oVzI;PL KHJ꧗h~ jccXy0jU,nWSitpcxwYuMkC SE ZbʏQX}@Τ5\V@ZӫQZ+-UTψfNwOUg$Ʀ.uِ/ubǻ]>MJ#sZx>8Lh ?in`gaʐ(؎r-M1:Tގ2OS Nz"R|x4b:7]KS N.6i '֓]Ȃ!12TrWr>Q1_Y2Yu2Ŏaof@bx46ńb]IBAcF$|N'M {aۿf@T }LFvP9)dt0鿁#|5r͏jmؓ~W@eCq:& #Dkf_" "GA]j#72鞊6PuH#$|w$ DجV q"7A cݙb/_.EKmD[YOXքg|r l xyuF^@&yFOT.@PM帰x'my9&AwƊP 1&tC{.;g@W-:hzxDIGJ,&zuh*=lܓ*irP0 zt3 4i{3 xӏmtze1~55Jf=vFĝk9hUw Xs|u$K]zP ~T;:ֳExfT5ܿmuCXdVٕ\-Xo_+~;Vgo?3|ԡ]Z0ߧ5VA[2zJȬŽ X$5p4I c7<ĞW _+]0qm;M|4T'y:ƪqߒe0#Pp@ZD=OY6( ۧϮaۗf/]J8# s囑ZetR+8*vV? HeyOYvlZT!TV-u"<Ȅ3/`[bH;qQy>mPw:'B UB<>tX9F;}r*A^>m*gP^<D7 ,kRǢjtEYen\ h'eYS[Z72gAN|NmD\Aaf#mC1Y$ BbeYx0[|E)z*h,dLlΈ͔FL}A+ &w>gA\iYA+wK^B~OA!{Veޯlt ?./8YjU$A A ulF1JW n>:խB/ fh]rja%6c ̋נbm5mԱd5v2A?#P}VXW)iI$?yb7qÁK%=l 2#m"7YhO}C᾵X2<݇ecv@H; rWO2I Ah7LSLlz~YWٜ "r]iGu0-]T,1vZ72`X6g x)bm˥7c-]G푑uMX<\-݋|ؽTkJez#5^Xߧ*6=pZ IOA@"p|jW_ܷ?HjZ>ld I%HQe7:,[š@ ͫhOgl,RX}=}:N?GlUk]8jAHYCNRq[!xe>{ҩfGlk!ꚫUudܡSAr oՆKH۔^:3Eyv#X{\5h).لsRrlx . 1XS8*-S[]QAF!\JTtԪ\B% }"jԄ@0v~[FqEùq:UX äcˌ 5+诌lLyxCO*6PuI=pz VO٨6~_"`~TÝKnuk&UGu MRX NjCs`QR :;RԻ惹-ž9Z]H`q *8L~@* 3 j>XI"Nb|Ʃ%.%#ԠtE;Pk?P*EG`̓#j@7yAKCb}Dy9^.CIhX%ZH1 7+1߯ ݮj{JЯ{ɤ[SGYhD 4Tekw.1̆v;|:=@Xj\Q0~[Tj]< ~rN/9@g 봀v Mmӑ_3$hcb CX*A٩V'd]*nzj.RB[O꘣[NJ 2UlR51 ;*2n5T|2vu n# ՓE21U9/_ usŗ׷ZkTH8sKPOVI6\}.`ZɃMKûPjL[)-tҽ\AJǫMzY׋nt3V>"E\[_Tq%5e*k1@=wD|qmkZHK;.#&LF6Ngumc*3HRm5- xhgVefe#51N8i~1ZG;)h! 'L\x!z8l 6?N`Ggk ]QK}_hJݽDCVZCLGCA$FT .voB&7-% HyFǭi>3;}W` UJͪN@*=*DG:j1ڰKd9:?h(G.W,*‚7Zdׂ2vY\3:vle'+ &FI5?-f~^G}fe>: %LWHkx^\\{+pQ:rl0URw ơ#Qe`Vb:[FTG/%,IWmM;#>[hC{:\hU;9E]X}[->;k8VTj?IC#f-ٝLÏa wArc$NcA:/dzn_yL{@N/rh`6pfbka#;N۸Bx"6``n#堫rp8:=ƪij5ԩOzc{yoQn|4++T3~"[h+ ޷Q y)n=aBǨS*~ZYP 㒎/q.$@>#ߨxE-x5QRh"v -* iRa ;hbxݣ.Y6 }J篏uU36q/ؼUwD&Iԡ 򞖀n$x +~x4&'?-|}K]5C4wWA~톧ɧ.U߱}@PQ'L53'ef)>$Mx԰J{>x@&)vCuWO>|mz)}fw.N3ب7BIryLH۩QNFU}Tq2"/ V Ǐ v0*@nGn zhJG;=ŭOR<)WRTOj| "Zv˖Sɠv:#ޝjOvsxı<~(|evZA*~ ~Xlvv_~:bn]j9~-n5M^qøXM=l"AIf7h/`,Xm;΃t+7''`HPNuI g>3&fv>=tĠSX>rt hbU@;6áP̬8:h* mMСڻ@_`aw>|?ŤvVE4ho,e@X5h"}G^t*6A/0aѧbG.Rv`|zץrl N?D/#=B^?9|Gʪ;>aw*(ۼlh@46]Pǐ(g5-ő3 \8ω?.д>Plol2*oQ_/.\>}Oݾ%#j'FGG'Mݪ;|LVߛ 3 L}q?;{vTDƱڷZ>vHXprܾ:b!IKLKcE~UNrɈ-堫]P~'W-L3 þj{AUV5xt܆W[sKfY}5{LP#-0c38w Ԋ쨪=Ļ :5&s5! #sYnhN&.zۄCOu1G&waSz.)xXFCD,*Rto9KrD)n!)ؘ#@V"Y59B+OV,jJz EE vt$h+*`tёv9D; /HHP'55۱-db |^Ja yG(]Dxwvf8x?wQ^.5\ YOP ,"Zz٠ ’JVR l$t?-,6%>P[#AgYH-K|,jQZMՙUF@~$`qnc: hU_xՕvB0$[*ũʛáBɎ46]Tk9)z/@¶oi% ^b!P0gfu`WNFe# 1A}@Y% 3㤃kp6B{U@ƈt?t [h/iVo&?V oMu-O?!ݥF+b+] Ŝ&_NR쥬 }[w:>{Naܧ$Wg+:SAUkž^$OukXzD?v %y0PQBsK`@<\Ʊuyj)Oboj)a&Djh ʣf>LS8=WF%X,vCq34cG/rPvq-fdmxxݟޒJ*zS%Bǟ@Zגv'|{;7 2IiaFĀ;te_IfMăoPԁoZڶ(ftAz ݲǸ]x}Pm~쁶?E{f D^ShR"oigOp'A=5um۱Z&ă#}%RmߠvVgF7}^X˯Wg;;cU Զ+t>~->yǤ3lbY6[*P}63mM{ms;Hǔ%bGc*0tEcraMSf_lS@p,bD:m3SM5/ <؃ۓ7Aßsc\ư܎<1 ZݷaהWV v:Gq;/S6cN%֩cP*wu ߧ{={ogCŠ}lu*?ֹoKP.56R 4P_5XRǷ'|c(bFrDO1uO6c=xA0,8"4YWS?ROߦrӮ߳}Ul>]@w? _}q]ա|$d}ky.W}MG:fH`CwCGFAO.>sC+S)ZُIw o|߆8k8SlgmՇ2{eՙmDX3GDq-7njbXPZ6];xꮬ5^AiYjhxSpZX'zluXj_q`x ɴa+b9 --]jȍ#]^]yQ%k#,+bH, /SŢNeku1+Z >mY~ _5bx8oANvzYukULAS@G-kب5lVpmV]qڌ°v ʨy-$śҺ`tOYY.(Y(mG;C\g2;84rr/R[=, aT$K~kTa'rG+RMmOf:,bfP2Crpug\b @K^k([iUؔQڡ;V>Bc/t_ߏP}cj_ꡂl]wt{Uzu*dt{YڷP )c? AޤjubƒS~ۿV[ZEQjB:$|t ~,]kefs$;|i 멢]eeڴOziB6w` Mn~R5(j 84dHi>s: `c:؟] /OhIF*n ?B˾+=j%fA6ʷ@'?xW?3.;%g'J!ˡ,OOۡOy6Ṙ( ٠Xĵ?}lt>Q_Qz ҡGyQqb hsYklgb|POҟ1q̜eT$^="[r=Rxoj`9n  P̗ @J1*=J@~"}e"=b "~'QQ @2:j I[]*>rIӪ'd }rLt^!x1hߧ]@=YKe Ih bNH-\ =Nv^/YW %? \h6MCGMA+)PdBjY*H'eVIux\tf╨9~Rgh~ϒ;]V@$oV;l!a8Z?v.r%ncnwӖ}%R'uđ?- v`IQ$yo7_n=TG)ߐ=:j.5(jX ?u#>NWYv1$L7 6lr&^g>;u]{͊[̐@`u\4'G>ӦWmBNŏH!;gjMcm bo9D"ؠ.`<>WSUk̡xek1#ӤJh[xkqbGp)`9Mn̻1m ~8aljdqfk[hŔhP~%G[AGOk6/׏2oTAO#GrLkjJ9`YOj-䔗OGg\|~nrjcěA=`45.z~Ӌr8MJopk I*""3:%I'Xm70GQ@eP~Y;!֭[-X=>2qpCtLlZQMNXVm3*Tt?}Y0 Դ(T$Nր [dO[w>@AD#uu)ⵍ`FjcUc^x?6ǪRєy> דh)ϲqQl#,yQB\u`Vcm +eg}ä)X5#)GۣAgoŨ-cbmVw]qGB*AzrV&sv6A9pK=V lW5ԐG>Uvf%k[-VDle{'(èl4\zr0##Duz}K 9{V}=5;Fw%V':^seS^(ͩGpn=Qqj^ M嫋-Ɏ9bT3zL4<{krjnVnwrwՑ2N[i[$#llcO竂-en$,b|z9Bq;5a\^8(&RޖS_-j3P`  V>D@^_"6ۊb8GA;q>iWp~dIP /e3T)1'vs55mgf]q>IjKIbğb@h;` ի[fDmjEk1v;C@;{#)\etn6r`!UG](ƻ) A,QbkEyUk*ЧN~Fh;X:|u7L`nFYǘ@lߒGT2:h2,l@h9uu\_̂cI0QPePŢX2_vb .6N#ݽeX:($ƁWwyrT嶕]9*nlh$8'PMFQ\x馊 0 ,V,vjĭcdCӌXHnYt~ԏCq062'An !?ӹ@,!$]tRk#M|?r8ڰ:A_#P nGFV|o۠'chv\i QeRMhT*99Kt NV?~ _wHšf:nyYaAg,r jyMj؟i|;]녏›iJcxOݤ U@J`fʌu؀~LiW5 t#L:2*!#𞇗OägZMCL]ԲLL|W*nbn(S&7 Ϩ-ɛӿ6$4A&aA'~up%u kI#I龠t{^X`#OhX@^J3Bkjԑ'`gvN9]bU`wLȥDi;xTZq1ВH*J"+H'GI6o);1|̍ ݇h %TlbOZU]v@!U5X]iEDa0Y }"tܘr197գ'Ȓx)`a*"o't1fZ-u"$~z)Nr8_Ix`5D2KDķV6ʬ,HOh8X}<TwvsYjMV H G-ߦp/p2C@B[`LImH|V2b㬆'oȫVF/0 p$6{W Hn@;,jb9Xt+TI2===1-lУrOvwjȪ]n%TJ>z+xӖ-zUJr˶_w.QF@ƘgfSEvq =Q_;^[kbU[b'SP @|CpORze٦#ݭ+/&N0]k^!pPjvjT ~Y vXq+w #L-@=m㒀|QqE5R?p[Ru!ɧI&6nehd$GƨO#/'QҳzƠTTTՑ5ܫqk%E#4{X78OnfFpڶi#(ğT?٫{ε `-*;-.-)DVN<e6;[*<{e92I>P$;}:Ϳ~AHbc5ꕲ vɽmN|չo JjeKɠ+^ J(`W@l[],|H]'_AK'ʊs=qP!'@U7^XO"TA .3^$L`X: c8Xm4rH*pc$#B:@5"vjس?,2կqmzNtnZP rGęg6UUw@n6!VE5Y= >#AۻEg$<| eG],bX@'݉Z>qhr)!w~/Ï 𷎃PZ>~𯴂Sh;VG卌~ı\A9m<.(81@+O-VԬxKxb-Ӭ+o[[!%G ̘KEzrݠ[;om7jQ4U[sGj5 'qgL1=@>@bC>DFhu@,1?ۨqU/тfy\w'@`9G(Zp50 CוAʥ$,G ٩ʦ:,xvFEV1(}F ;?-m~J$}DqR!6?cjI𕞱򟆂=HD:ѣbHB̯-XT9b-H}_:Aľאfun|@y c_PC_"P})~ P/g6`i3OۤNaq쨠בD̼BDmeSd =#~! @˸М^,ǢLhٗ"a'"c5lI$uv2{+#YNF5cew`*>R0{sVh`yDj.&SL x n!SP Ƃ?`)ݑ]Ue6(KTV0s'@ƵXD! )t *J$L@?:_7\j\+Fں(q!A猷OXFU-BӬhMᘜu"2$1gg[@<Y٬nᇎ );Boť3((ėAg45%MdYW H ꂒZ6PTF`ܗhAVpw%);"5c5p"纀#BCU: z|EWZAh_=1 YGޠoj;bavO5>L6>: կ(b?T(+<2l S5[%Xϋrv?dlY|f46b<`vR˘~_iM]>j_ٰ1mqf% mܭ`~á:K!ܞzg:cWZǨJ!!.۟*rH KR Y rX:fG p*yFK0X]1M_2̦K+edA(}OZ%lNFmçlM=-7$VNS(``{Kzx&~+svލ[?mSXQNq2]8 Wb~-ʦ[6>QS(<~-5YJ b*yR<)z곒]H %Ym/60=4g~1: W%,J4PBhiݵ [Wh<ǏZ]@wj0wPAP>gAOb%?աe3ŒQ "g4x apSy$oc3QM|*'}% c% ~]4ǪdF64*[Q*yh%URشY{GcsX=Yv=,*[G!-281'5Ok5,pƑcw^1VQ1W) Oȁ|T3W5UۍA@I wr[y2G<[@LG)_vT:Nf^/;)ĀKIHcppG$62"4@0?*_B*7;mi˨˳>Ow2D3wmP^0=ŃgMEQ2Fj) cu4qj~ {6*8!ăᴓnE׊"H= wmMdnʒI6-,Hf$0|H ՟s.D~#a@!H/3w@'ͺG-ߡ-i#)nBۏx@*d\ҹ*vm5m5H}$'cpV2AF,l Fn9kR 朣nW[t7"6OS8^+:+ ZPe O#]ʮ|EڛK?TeVUnk >=mr^EEW5⡷+7TDt,RbޤzUJ@$Kr@F>mߘ59)=[{]BR)l &jGh'{ZQTn\ookG'0_ҳ>=#ĝL|ݶy!vܙS'tCCQ\JL%XhVv BN-٠n-|}*V8n?h1+4@hjC),~4PY B4 )W)s157SM;5cAi6c诏q.6آoa1MWW łsם;QXތI]M:WB +%]"OP+;-*ʿ-P_SHUe {kW[}2r&'tm֖ Joÿʥ?9V!@}#6bvCeuB{mݲTWjDVwSTTl\|ۏ CND_ vWꉐ4V rk5CݯdYoi)m}q3t_a_Ki*1߿?zjRBۚ)õ31UHiM_$ۍ;XaT%N $ae<=|RƯY.+f-{oSWT?/j+b|cA<]8rdb'ϴd??زlzyN!E@ꤪ@ñ\I κ6-Tuq= qw18y#H+n!O1? 쿰]@W0j ?lҴ-x DU`Z"+O(bְ?INL.UԑDy QcYWl(`I(~[YaAlv_a[`;1GAxv,Bt*]EH5&LharmYƪeUfi]nU82F$_!喙=Sj  &#VT1N\o'ppDOtЦoXF?j; /?҆/D Ʊ]YM >R$j@ے A$dNF 2=l}3!;j,햪 +#jq)#($7 SC^uh *'Qͨ9F%% }X@e8%o%CA6l HG ' rVrKc~tܮl -Y٠vca#iҁ_2gݩhL 3F6<v jISpV\;;(!]TLP&%WXjO`{ ,~XS2:}"uS}aHPIvqFu`̵O'è1W+o {zyj`pzXh˰)x #ejr1{bqos9 :Ycw%ɭYJA@!zS- YL> Ϫ< / -˩nhޯBt7gŸdq> }!YPAI70Ն 6 00V&B?˪j?.Åu^»xny/ulֵXIlLOMG?8jkjU*1ȬOXMsgPCFޘ}FRag&rO*C|'D7.[ ?٨6 8#'_ݠ) @aI=yL~Ѫ(ՏXPhqꨪ!_*NShEkW+菛XtV)7Wh WT&!̀|WdK1Wȟ?WVҤ!芧tmm_^#Tf͍DnՍ?x -5ӱuuU:f+죓IA{:)#eS&Ah/Xxj=VK6|8Y\6\Bd4y*j5s*j$0 -$/q W;2,d>RfεЬB>;PU [y#85dw(])=zi+wlJnŒozyj_ֲcsUa1iFB *;'X34)K9vBPw6TQxjOl3)>b5FMI;l8OߠIk-5I]-Pc: [Й<Q#p#wƿBdz׌bRByvUBVA)]Cr5{ |3*T Pf_LX9n@_Q{UE}L;!~knBk&9?'t`pz O?ꂥV%#nU ;Nk-}d[H$"qbH WA)j[(GUܐBw:U5PםMYĨ9}ʪXIjbRA`}EΦ y4֜mn$UY  ۍ4_O}^89q 'uo{M3K7|@3\ \JWJoeҿ%|{;7명(5Ae\h%ˁPKH:(WvDh3e)cBt&cmQc)}Iesh= $}DwoT#ctd\!&8A{fg:+Cnye<~q+OW"4FUV ǜ.@C,2@e;8'f';1hlɽ. U#q q̿+T,Fޯ_w+C)D/8:Y%f,z`qQ09BZҮM}$FWm[>,y7-1+x澐 gOJ&Nj/`^:hȟUFn061j&\#kW. 9t NM/5;ԲGP`4²݌Nݧ<qp%aD3mZm|Y~L鯜4T'iߗAN޵j+&O/A'Jbco50t'#x'~tdq޵'yInITɍPX+(mh o{ȹ@k@tH,~jUƗT%fZ?:W|2PVKJ dM\m¾%Wːu, X #6 z}iOE8&;|S [ 0rFJyoFҪATTǣ]CSD|wOH }?8"`82$P5DUZЌ@i@N.q;AFkTUEnxumt4Z0G/S֓Pe6@6W[1s_y~T'P=K7.F @`k[j!1v|I {1>kQg錚Jc[}g )DጤB$>_ =GS&fXhf (+nêh$۠e,VR~AmCiZqr o]YcoLiuqj6 +:c!Ԡb4J^^FA aPiG 2LhCܒA0N xRՅE'$Aȕ (9[Zxq3V=< I9p ܭW$A^V{X~ ?A3=S${>WﺳPVXB\HPt 0r``" X: GqGj^2W`=zϰVr<4 5KcT(N0٠ŘQ 3]m` }2vLh13lG, ;O3v*nAmlcD9fviVEңEXp# FX徠a;kX$Q?C(z:~6^S?QN{N( { 'PeL&Gb2 ˻+W S MW Pǒ󟥧_i)ֽYAv}C}uP !?P(ʗ\@"T)@ԓ@w +ݺi#Uy&:`]ڔag?+ f#POAh5Y|(v'O.?Ά=TB#%,UJp*YUwC`YZq>Q6fZ}ƙƄ=12(㧃vVuM)#ܶQUQK)Vz⇶%dC ŵ>(9Ks(i0r֙wYN5YWCUaoWZlCd07vrWYE. Z|OWL]o{yRJ&9%S2"Jt/2܌*p*nzu,]-NM֭jGE DM}۫[*}Ce뾘5ԮO%WO|]SBcR[l\G$u٠14\Ҁ>?L1gk])%|~A7j&ojWP}>vxe)^޶ UzFg#c6 c櫢ݭ^bSyl/dWVc ;º!{}u*^31Ǒ&xyrZ[]ԐQt̹nT>L#U]hǯlg*dq XNf{EI_nv l5J"Q;u@? mgVOWp(IDQ `n 4!nIt)-[W}/n^!@vVsWsUt 4 62t `q'Eo%w*g샯2K]܅Q~'@J)kuh>8@ M8B33߃]Ӌtj ل*b-Xm 5LQIW&T-cշ_UHtN/ӭ"OǶePoM1ͷVC[T%&>\jLNk^ xM0OAVZRnc)F?AikG@qd=t>-#N2Uv#48w0]6+{C/lL|4\*[ >j<%{j}.1pWټj邵xfwQ xM1`MWw4-gmM0Cn L @y𓦘w1A1tښa^ZdJh_xf.L|@WTw@Et 'YW}7?v4LC7*u#OY+-Sã YF=VݱlϪ T>cNڣP%׀nc:*QEh^+xS'@_m@ * vks>c}}jX}Pqt?P>ۨ9]VIi&<㖀v-g&~톃 6RUU,h3eXͪ0w<p?o+KC9_NJW,YAd?@$:d`}b'.[sɪUb'4&, $X s'ZA3t62}>''4`~?.dJQ|afߍ:8rKh7ܮXa@|MLI\y ٝiU+?s4c+e__$PשǀchWťfO: =UK/.Fn=B,n93&:ʝh\U[B8+ꯝy T +PU NjV_]}/xGLZ{᳕Yȷ kpl:!q]A=E.-V;2Pc_cUq5m:!{CnAahb6ȒՁ%b3*ljs$|6m\ڴ%5njԪRdpM+}ʕIk!۱2qƎ^G$tvpfZxDD@csޠ́!tZƴH~ F;*&R7^cvDTvOA~,uUcRMkzVݏg te% -題ucRT6먘%= ʮĈ""418Ij:Ͽ۬!^}&ugUZQ[O'@KYieH! _W+i#W1Wp/+vœs>D }Of̲eBi)ɳ 2w%CL**6{5Wm Q>LgT;Khrp颹VR_gf>CYikqq8}ARH>eIǫ}4*NN[J7^=?Jh8ʔ{# /6{σ99E+WmP>/A:dLd~C?P!L~ ^[T|'@vܦB~?܂th{/ȃ@+] y`O޾:(vKN)H$6P4o,c΃6οELW}ޚ a-oyGh0ݘ m3,54m{fR F e+/iuc@7YjI*`֔}[䤟{*@P~<ݠů(#8շIֿݠ詗eݠequ-^6ZGIz'ciĤm/顊T)K xWiGAO'pA i2Q (FR4]4%(?5ur%_4JFnw/Y?醾kGsCCg L4K#醂k'*醾oiQ`<G( 43)PGƲhivǩOn,3>?iФ϶zEۡt̪yֵ3/m4&x7h=#Κ1kGOor j>tk]g#i-!?kjj&d\ ۭjXh+?,tnget Y?t8A('?٠UpfN$npdⶑ'-;mVjj?jvw1DA\Q.nQR$yO?GЀAaA.= ǐ+ұ'ǒmS(:vvLOA{?ͫ: іzH:GWmRO1_dheR|S:xga6F32uIROSۧG^w Zoڞ O L0t~[+TXe"hyMQcŁ[}/HNвudZ5XCn>*٨k51*J d ާM >d|IE֓~U/j`۷觎yWHgt\ZAϫ*?ig?+j cb͔YV5Y:lq;Oc@s0=G?dJMSCY)ULJCA, lɟC\~پ8?O9'g|H ;'crਟt]D.VI>|+ aC+:>!ۿM''*OInAVď&a;*# 2Z~?qtbʯ74>Rqn(>&L\;&[S"yL8܋>~ʟw(aS*R~*L4e() >45OKTPTS,Z}Cڣ~ _ Go)yUbWQμy>D) Q _:h#>-s}x;1,>&x6>g-ց>,AY-!.openuniverse-1.0beta3.1.orig/textures/castalia.jpg0000644000175000017500000004136607116560464022212 0ustar paulliupaulliuJFIFHH Photoshop 3.08BIMxHH(EG(HH(d'`8BIMHH8BIM x8BIM8BIM 8BIM' 8BIM5-8BIM8BIM@@8BIM8BIM qppP UJFIFHHAdobed            pp"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?n8j^;z;K۴гsG:ǸIOJ]*pwL9 ԬNhs`xZ^G `9}la va"Aci C7aԁ̕C#}h<B-mb?G+sL4!%4/h$\h]vUKn{cXcJDqgP/CcItC4iL[5䒚]/;h7k^5XUWY?I>(yyƶIT:ۜN))'sR\]U bCuhyekϨ8'RdJA wLMW7@.!5|%5s64U6` ,{ BYDܒlll:v[melC7A+I?кT[^ 9IO?ꙻ.g]R;8Z>yNOS`!`xjޖ ̞C`}.ɍoP N{lԱy$Rhh.F{\MvFA>ks}I?,[vHzJ[~xC27.&>%XٓRe.ޡճS >+>]' ZymviYmN3rOj(I6m s2 h;5c<ư;`7>_CYa%چÇIO\>\VQumlan[cӧZ'N~OJhMYč#\@Cd\}a{{ܻ,hX<$9@H3ҫu~GU{݁"4]R.On4|ƪYDL|>Z\OOPu8 :$Zʆhz漷tG%5 +Oh-%%7:d]_KCA?zqOw'YRSn6 Żg-ޅ .7CUju|qv#,hl;Jڳ"[G7 ]ti<>&V]{⒑a< +m[?鬒5k>. Ubx9H)纰;yԷCakʷ0EZ>>tF;_s{6UCX^Ȓ>@>:Pjkq%9Ea#R>+D ʈߓe!_GlSy\Dwhf#AװWn'O*]+З<ΒSS՝mHe!tOzpʲ*úGtJJԳj{:@K0aVn9Ο|gn?t\%;躬mZ|V&:DILX2oI$HHc<賺#KLY&|v NU6"D,KX 0]/cr,yhoj^uTE6]!4\_OxBJeyMM3_Z'YǦAw"6]ޝhDj,vf]4N4HPr.#չP6?v(A t0Mo1v )[Hh'04fCO2<kZt#~9 B-ո @0]9dpfoah2SC*7 wuy#]|7wOs_#褧mBiPxt 1anJiH{. ~Dƛ ;IW[۫dIN?Wy ~?^?hĘ́] 3k\8/=mEkY]Y1>LH$o^ cjÆ@<\VN,㞋2:H*"^W[3*&Dž ]ř^}l x^G9Mj2Y/!~'3b™2 4K9;xɔϞ +lj%{y3xW$ۖ$O ait#׍puq[ބ}ԋIᇸq7N.;'G +N`<+r?ȉ rMFT4 76cCX}3M#>IpЕ,AbE闁OD!&1nYOEbt/Q1TF -WЭ{yոtCByѽr ]Sw.+B#[X>TP{J_ʂ~mɤe{ξalt)h&Y#F'RMAyRG֐~ʑ_\Wfq1W@ 62#Xp 4%zw,Xa?M4~K#LH̓´>o".o:5.7Y WFZYY؛L)`uҹxI@Ji.Y܆ ׷>7i: yeݑFG".''&#zǂhަ֬@оdȗ\d3ּY̳`f ["XȋoKci7 $_ެ^"E1AU6'Q88@$oj(r#߃w5;wVwO o ͤ@Ynխ1aԥ7ݞT,_,G+K}j0UMXEK8ﻚ(LnzJcō<0*ʴ#ś'~addqvUboɏ :~I)F4/$LI'+,zXtm@*A~vT` hSo6(i:&(*IpVL@e%;r7Ε7qꎤUTǵǎI ȰRBը nf*;K##qɻ|ЏY;t1eLt!"By 3=Z;tщSN^ϝ`ۡXsI-I QbȧdocqŊ7Сjvy]c(_R} '`Orq#ڱ|5w=_l {U86_(b3H $1Cڊ;'gՐ_S_p.&آ+6vYtNV278ǓIEm_ӈ+jev6WQя| ܤ#H# [̚ޢ|R0a@geى*\f5dJ _&5VCKߒ! b S#Y0rT: ߅S WPO󯜬x`ʁ*/Ҷ06DJ)EŒȷ :~4'L$ȁ1h؞ [iO6f,ЫܚOJ\fڨwgǟj'S(r}PBZ,18j"4XlJMTO✰soTwcGA{ ́A9р`HhJhNc;ʺIiQJ:6tUmmzd`3g9 Jy)2Ȳiy*8F+*?'|d&N4.W4[Vп$•}ٸ"-o ^5=wj.?AJd~!rX+^+J5^691~P^wh0B\}khtȈ6H7G)]9O{x \< 6cIYSśLJ*lLV+VN⩘2aυP֛ϐ,c<91Y5)7c.$6>xە"Ćh' ##oODwvV=:>3Xi,uQfVML7~) Xr!xm6<_ѣ?>mS'ra/ d4~ő83\mDt>^\aJ4<2{Q 'B7U/hs6] Q}CTcp2uO>"-j Cb'fPGcL#Cvڦ [/Ry5eG]aFBDGǙ6߲ob)enݤR@sDmB4lE;6wcr8"ozfVʼ8[o:K`Զibw󶟭c͐ȍd#Z٤yqK*VÜzsn2$|oƻ67h ^5%^q!%RB1m/RS9ύAUgԿ퍢Xh-o 2op4{ eX }D$D}okY6@KufB_ US[.=β6>ldɓ#ɭL̤ߘ;zcmܻr4r~qwU:Txކ\ yAX^,(Lt[{Ó\C){hGrFǃ'l3ܰ2؛U0Gl(-:R/H睎^ʵpkx g:AK[F&7Ost.AQ5n6B0Xc,p>Qkze:Ӷ3]~.'PXfӈe mW~TL?oF;a|7UߗԙxΒx\y mF2ުHw-au<Yfm%bhP=hK #tV4yԎ<*jߧ/HY@>VcE-L>;鵴*7 *Vo=dhX6y']~rʂj1DT錋P̪yJ-}ޙΫl~4Vʚ%SyRv9ZP}*x`!u {ȻS(i_̮u$ e+ *pNTl> $Fm<=iKa4WQ^2t~L،0H*uqS=gDV_Իd[_ jSԶHܐ&'KX[  Ǐ:sm,7<n9e\AU)iqtiQxnW' o~/f_?/cYc 5׼ lcmjBk{T ̌f˓:הwzc:ҳߏ*{%lX̜ EW;3:#|)/YY'F]єq$,TxO;ǻ3w,30502?Dk7E 2ߨ{Pgf RU$sAcA0ufG[G!KDxW#67.9'IBH>&w[p,^7s[νV=Y1]:n"\97su:A>њ2`Ҽw2bO* 1=Sw4YKחnn>t {{UM+n}-\Iü#۰:K{z!{/NU#O沂*! 6YPh\ 325<)Ƴ"~1;n'օX<Юѐ_b8ԑK(8SÃ)kϟC#mh02cO*M$R>$L , 8{_7l$f>+k"YWӍk6cO؉Þ޿BvbrmQ]kmӷ$зhQT]giŃ ~_(whSeЀ_ՋIط8:6ܡ#M֛#]]k@<,4-_}jkބdA, Y< y4)7"OO[0#$w"YwFe=OR opJ?L`jMUnEԎ4Э|ּfa:s3spޒ'TՇ;Y1uү{~O:2~_[ɦB@ŋOP-@XH̗&^ɱ23ɆSB}3A_?J Dh!V v[/W:I{|]\Q G'v& b^9n l~WXύ')o`jPv+*@x vlO.VP : 7p2b~d~:c 77P(ަ{i jX&&IaoK-TWhYSmËu^/ڬRcg Éqf>@R;ɀGIT+_ ;?ȹm9CR E>5Iv jE&3&U8?/$Yl ՃJ <-6ɢkisczwm;>U߻h#*sSبwLflg!՗鑘s,V|Xݻ4irzP?qfF`$o>|dRGͶBZ"-izme]RoSo 11ylbE¨ҶpvԲDx^T=iP]7ҥ"dTn [5[bP޾߻h㾩Dž6.%ߦUHe'j rf>TXyۍ/|gI$ީx˻cO!FXؓb~+_;_3jBnQHF4X5,m~%޽6$ҩNߒ8nAPn0 x$ǵTn?wiy["I>w<Zql9M` )P{eM& +^ą ^nN6j"W(|1/Y$(qBQ6)8z-#a4Ee?򮝣!#qZ7 NM5p0+Aw3ˋSѳ>0oUOn2j@W]<āHogC3$C_ӢwH}qfknf`˥kڜ]c*J.X_pp@Ps"6ͅs<`3^yWԨ佚,d +Jk{>^0#)wvLaf[$r$o%PBiJPGƩɖ0B1_N5SlFIvE<5<8q1RtcȓƼZxR"0(K~H&ChNE"l7@CFY,ɔ^Q~˕,Jݪ^4t~pʄY/j@wȍ+L?{#|L^N:FDcR{]ΑH41Jq`ˍP HX>wup¸yi{'kTx_sC]qJϙ4'„ +*Ļ64vkcj|񺆑Z*CF#Y{XaC{b=t%^ea+GըUW'5^͑}82Яp4Pkҥt-u~.O+?eym6q{ vy N80M~?L,|^YnܿVpZ/UPY. rz[u,PdR45͏m\kYB§e v_1|X2J7&ɐ:3ONT!4Y-kQCNUF`}uZ[alڷr yHM܀h `>єLb-qo!TmmmJt|؂ěRXV|t{4KHXz.S"Oa1[D*NlR?umXVeɏ" 0UӱAM mI>7M dn+ɏ3 /ʿ֠w2UMKm`OܽrPű5sG+֖ #d8eR0<%|1)Hqr]:QŠ'--q~5cJ Gԁʹ1q^|b38Z><NT)8,|̬arx^pO#h#[;*cN]E?zƄ˗"2usqfI$ dv$H}YSmx0auֱ_Һ7} .Udw-q|/QW1T3*RwAg$ c4g>|Mj)cih942J]팹0(%I4q†2}Ll 2|͉T _lwy]r|#RgLֱ! tRukn8"1vň-&N&V!TeK>v:O"Y U pŒ&Tw>cYٯq|Uj(+5| po ^X(x:-lKx֔{q/44nl[;M L%N1=fEi/ajT2tt䃧Hֹ "!OWSDSxqוU[>Nc(>?$w%T6=Cn> )ۄ LnCI4V+6FuytF<؟loۓT*אh#H ݍa-V'߅¸^ V9*a {?:N 7&}CX;WTSIJxxj\+#[\y^ȃb,R?v |v$`KIUr[CFJPI<裵6~MfwTL Ѣ >5.">ڀ lLβ8zFwI\#O&X:xцӈq&f,-3[[E;)2[R_>"F7n6ڲHh $|t5:YTr\0؝6rK9 %|eg |r#֭w5ٳeoCIifY'W,i4ZrıkbҊ(q:!SQx(TmI$8[_thIrgw0ȓ#T>DžN2͚H' {+.œt+o?jdv­c+>f0͝8S{Wo`d/S[urX2 q507y3[ܣ~rV/Έ:l,~..ToeָvXݭOK4Iw#,b4_lڰFʪ"ၠu$\yb.<)3.lI^T PcLi)sFpqՉ cqZ]ʗV7,Y$'VZ23dF+(qXoqHwd`x[Z{ɟ\2vP^;odS '4l<[$ uK|z`Uұ+X%Y#bY 5Cs2r`!m'LJ]4ԽrZ=i0a'CdĐ|} 3E4Ti6=11!Byd];Dr|%b8zV8>2n:;!FI4֚YdDv6FCFqRA7Po{Wv.Y57xW'T/aJN>, ^zЇʙ]H'ˍeb+inkChsb1Uzm84iTehZgÊdɛ1Bdֶ2Dǃlbku]sO \*?*'b#NQVS~tb}( |NCa~ zغw-SzJ|$.O{,r`~w8u'_4ߝ"AsHuX]Mʽ5KnY׮2I9Up_޳J`:A(@5! sD)*aDn rftZ&Scd4f$?vJ`31G>6m.*XG:il=ҹI#I'|}kK~C$8ڰ!fG[225Ԧ;g˗xR2I y V\R+H*bG%I`MEF#C65;[ CHSKϱI`ځk~ņFÒ`ҳ)(y/mlQlۈWEdS4d@scY4P,~<\,n 4&ˁ>"pvWq.?ֻj&X& >aQjldi%>5de$)2iZlquEY'h{.x8zډN7a׌eص Ö|Iݿ SbF5̳IF:}zwƥ &da#׷\ x[&2f]1_oֳdQn)(#Ve˸d{(\_7ҭ4y`2D8mhӲoc<`~6(Uq@Qc򦁓wFUG\~#uMo;1Z-uRx(P%TFO^5q$/kAG.i#m9$$)뜡gvehl(@'3<ڹ `V3ɒ?_jAsUI.wscR r VHvRXϺH?Y7@;8 ̤--F$Xpx{%[$* l(z~5#-`?z3&Δ\J݇m$c]y7dr2,aHm?L`VL1~s9Hno!?)jĽ>]TiSf[9Nf^Lg]&G*2s& ^| p["0XgIdr#>PI?UZK#T?)NJ_s+;m\EQ<%HGt0qןXnc<Bj9.mS=0Li{X?EVM#`^bH~~F@8ܠP+0pr;^ BX Q(>=Y!#XI )!J?*ؙ02ιQNEs1iOƺDq*:d$4iHޕRH$1i~\AHj}<JRɸ58r= Zx?j+$Q45fdc4F&;vp(eϸUKyxsoy1v\8+Q3n >\ ?tgFc=Z$B$C4JIp|c;qϷ %ŭrݑR+BD4,,#]Eۜ9p8zQa$8+y|3T#zͼʔ;@ ́- cȬ{kQ9<& &gsg9뚹j[헓j-DjNZGn6[]פ6e;ػ98Ji JMh QlHZ1*AjAn$KsHǃ͇Q/4A##AsxK)Zb8JE3&dyw3°=J;<2|2I?[;èEM3Eg"B9*AVs88#NoȬgR0c*cm㎞lK?$%\ўycTC;}DI*.B|vG1ViR=g󪓒7R؜|\ -G˗lЇg-2}V|W2eO}8ҹ-`Pf@+F>O8fj!~h3rY$M<cVF 0cE:K_5xm$?Jf?s?A8fdI+!]I+[Iz vL!H;r@R8dQ-Ďe`o~6Wf%vlrjXsX#$9 z9M":q#)K.İw( g O>ZR20 ӡcXW1D F`/{ pkA 8bBO^ltSD2ܲCn)!3< /krht̜=@+qʨ8!U#8OaU[!B^#G^=FjMfO5Sslِr@~ZQy1@$`7o$}}) i%L<*Acn E|t̍@ݏ8}K4- - H֧[ly}xN#FO ~U9n%o%q׭kKa zWьQJz~12=\\4mncRSշޙ̺GRzL͖zn,݋Ƈ5;kK~kһSޙV<4ms쭕}^CF]F`*$W~O )Vmx7Y7 FXݹ 7:/H {6[e_.;:EC!K.R׸1cX׷ozU?SƩdYlqqh.sKumm["뾬dޙ)c_h,k\k(~+ޒ S֜rC*˩{/{}F]yTCV9ڭd`c a~6L]ux86+ʫgFXkA㜬NU 66>k]}G?Ck=F~^u?ovo-[~{$̟8MȽMyl27;ke?}%:3َΦ02qk_[lss=7n/8׍*^걽-뾯?w?WU_pCm;k}^gmW2+d`4Wf>.[1.&;"ϧg?XSj6fEd:N] VolGD <ޝI݅N?22*cccwe6z{/~{*,>[HʷٟZwZ_걂zx~fQeGV3Ƈ[h[Ss.ui)&ekrXokCYg_oNhۨ`em2naiqMMhu]w蠿,Ca,?FGoSΕf}x[Hn e.2 [\Z}YRX#8`nK)cjuCmlux~׻_ ̬zV:=_*TtzvYMkÈ~[-ߣIOf=7Y`cMZZo׫min0ۊZV8n mu{~_vdK60͏O_~}L~Mm9R['FobJyкK6*,4֏{oq}v~x>EkВ t](F4hѣF*4ThѢ)F5̦k#'oHvV u^rhz2 2SQאg)%E㾟A(R :FO:Jk: kpшghXK&kѢi떸OkoU>#KF  s5Qu ү7M4nIՙzm%MVZRva ZlGM:7S7ۄq H)iE)$r+0!]~:{fIJb qfcdq'G%b|b!5ލ4SFB[n,@?rn* k{4;kzҺQ\C"].ievA>~:aH+ `[mi G]4̤= 5:#ݘ7ԕ;q->W}vEuu-p*4 }j#{g t5#)Ѝ'mF{x%ea` ?ۮ&46i?ӈ?}`;ďQk1rX~gUۿ-rk{ {o1w"Ղٱx/- S]y<&xc ]Hp,Sz-+o;?r(4#e`u1gu,"*in|tn%]%w;M=?VW\ SNowAL^zQ@\mt [Cր~9>FGJ?ZNCk:떎Z9kG\<׆07:3u﯆F%y5$wF#9(* ?]G^’5ȒڃJ*ʺL.iʍ @MEN#߫C ]N٥ 895'Rv9J=J[+UC-Ƥ" G_w5qDejh*tG)уm=)Ƈx84R<xV=@q]"7 ߦs4>:"P=b]NY$6v#V {ԬYX@_-v.(=*VC#I$55iz9uŭZFVo T2 zjF4hѣF^2(a;ę8nF?٦]d#@>vURƾ:\7UF<nc;WOSSq7$iٞXuFʲjdIdWKZ#ȨPNE<) ~Z5rOsS+ YccE KSI-zb,xkج-A:c/G>55͜O k@Z M<|dAs]JtԽ RКp1XR^\vW3k*յ[~!39/jȬAR+ nvRw/r]2x$)7 ?M6\-0ꁕaEr]h)O!^+ aS*VI]'C3[gZz7CI\;3lMC!t FOhhZkp^Ih社>&&@OU J: Y˟PtRvE( ݺb, ymֵJKš)(G@:Wj9"HSUy tĥ_2YzuFRʆ|E4`(rĀO?{ ܓRi7FK+oQS`Y1BOߑu^|FٙA0:!; \tq+F!S_ &F,FJ[bF{.Z8d-XjO t&pԤ9)/?Ri O@*}HwKC'MʷPu"FPJrFccmOVڽE62# d'ruo֤ hx=9kYORGZ j4m*5R74Se?z! ˗k;g$jƛxkH;[]ibNlw* &GY|`>{AJI9T#H46Tie, =7NMmBHcu yPmaKԝ6R^ME, CQᥖP<.fAQPi N$W? !c-ܷQCw/KW.7>52̑(-w؜mp ZM#S* 56-~Od4FghHyEEV犸4G\[+QnG9uAj-hr SZ8e@=km{^ YS_Y'e5d$O멼uW^]z߂G kpš|6(A肞? JG 8RҡOQQ?Z4iO햷7YRXn%:҆Uײ?Ҹf%+yoop&7@fD2TAڃV,U/ zIMJ Jߦ E;JŪՆZxĖ@I]x(ѩnrJV=x?ۨkȠaۨl/aYueSW*nU-!5_(tѻ-T155af/܈;kNq!gi0UA?jMF7nntn ][pvWjl@ucAeKQQJDݖTBQwաF_ tfe?z`ݨCT 'qlJ/+J][;KzF€Ǹ $!:ȖfhejP!n"Fvڪ}4>4~`"x d5E<c B+ˉ3[0kJx#Ks?MG(O4 e?0$ЍG:GhE5?Zh˘iˡSb++;uc\a^-_%j)&=7NT/Rhǩ5`\U4؏-Ydb(׏ 4>Omcj/qyvF]hI:;(1C:mP#{aͶޚc6h05Ӗ6=؋{N@sVg`1aR:E|&PŃN2R(ֱT5 YC yL<:+ Q=7~w^9j{a Mڨ\.d9owtGe R+%>o-V?G 4= ʭ~@XwyCFOPed;qY}`jW'=rqL#W_YLn^гHdSIuo&{p#EVo68JˌK;@棐 wQ r*v7􊑭5U I ~ JɒV_c M&w#s+9]/ҿ<֬Dž+ P==#ƻԝZ USo;nB|hs, ,7u7i2K 䬜HwvL'8m@>sn ֭5ck+jii{xAMQYJ9JZ6`mB5'pgKymUVȑsuU3ZZNb8vMMEt/>5ĭ0qQ]!7Z$Y_u tV޶+·tuhdVcS[_v+V>Q[D ,@Ԃ W703_p~R?u>S1 (FT">4#W6u3Hg5c`|ɷۻfGcl@ftsǷvaVwAAq9_fA~UcPrlb>f7Q H)pX7̓$ۑ+Խ^ \-`H?jO{0mKT{P|GY|wv!DZ|'*w|v[\.\0d_}xخԕnX4,8č@鸫zCzci/u@x5DO"*w>B?e~H1Hf UQP{'%^AoxHE7az:`m FczYLv:][d"e1YUփqOe)Q¾(wZec[^5Ѡs4oE>F@V %[f%ܫCԀt $+#_X$7"է*uok" "ZaKJ)|<7YjXW1jLFUm:d߈YMxtDQs#ru߷!/)El$_ZIGr 3UQRRQ(~oiHB*|N^kqU0mp:xoz=Ղ+HE޵}Q%[ { CڄV/ lAuq,}Pn#]FrNf2{Io.c55q+IlȊrb"k{GIylJ߬!*0IIv P*CO,5XqQՀ[!pWY1ol)Ջh77h$Wҙ;-l&ccMU"cldXzT;1S= W*c]jF%*@%wWm39ހ55N`ō K d%ha;]u]sQʭ^g=7k)ʐҲNO,u>/qӗh}"zmŽL 0u%1\q]tЬ$[[~$F8`g!Hz=3_ʷॢ5-ügV:bI=`Cֻ;d\rvP6xb,n=.AՃ ҷۊˌl>&yJY`fu\,}DދYr©$u-}BaS;KLơWVW k3xhlk퀠{= kZGl=hlR*Y`iҚr_Kb PN*NO'  MED9b^7ӌJ;l 2l'@}]W^eۏ ߚB9]όXVN2沖D7I:MUkB0ɐk}\=D;vxAr WLb~nGRe;c[ydz 5wgHb+QBw%M#(._?x]N5bkFէ[IbbF*/SC$4X-d:W|"/Âk|uo]A='WV(ԏu {,'f[T܇ /?gJPf#NKU](7?SP_*ȩb)CMDX\\\$LF*V{K -nK'j?MJ~3=ɆfXc1l„Cl"N]%IW#@P{V9uv8zx\52$6466Z>ZQrl7%KZw9{r[8(ĸ-T!H^Yp\o~A/i9aGT\fE%s#%MEqe4FVgOE}Qգ?wgv[}ٺSrRNt*5 f<{'BR#O=\D77pGf2Z ,joᲉ$f1_}W.{4,mU9PWv먳m<}HajSjSWbzUI@*R?zP1`T֟aѻ}w1OS-!7Jx;3niOGWΚo34gPWPOc@C2RF6YIJ}H,[q3#`Ej|Nv}kA&'US4wQU޺ ZP^Pk-I%~UuF^fxa0†Y(*>^lonn ZyG`\dnpȪKW_Iv6/~8}2MٌXg^-Jq=;nG,]kvVEo~DQ_--+ۛ6zVn%ϒxTH>TDL5'Q9XJ2ļJ+@G{ l?l(oю|~sy$r'h/[ο.)&Fz$HTw$76 h|Y};Rq^\d&Ou\"4L~*X,ȥcM18<+iHOME[\A-Z1JF1.GLՇ$#$uŴxmsHM9rҗ{I&h摹pT?n}.2Lu1=8%tr` (j;߻ShoZXB=[mڝkRoLpHYd(5vkw|f Dl |+]\mpLUʷ0}Xu>p,V?:x8¦rDYK> )u3cZ±Ner8jIK6)I?]c;$p " 窎S -ođΣQqulvr^[HCCPda+v1uHޠ׃SY/yKmF.#ͫG4zk7As5ݫul3-+AFӾ^߹NrxZ! E $AOHvZv"KR@J)?[qcSw\Ysw9LYAGξ~H |kOeibRuԎ\W :\2Dpи>jZcc$IJ6y*V%RX ~D{zSZ&'Rډws$sSГ7hvX<@ר v7&=Cis_ kB40 @@.terYH)"iqDQQʤjN+PAqq/b,t*+PHr|y>6a%H솱z}}ň7W0Vy*3 S3Eu^·m9e5No>!n"岲@e[/_ֽo糡 ЂjJUO u9pȖ;XڇgX;SO?2aPXQ?]e+g?TTTϷ!%y2?RWݙxԬ*v>{{}Wz>F;B\T?iUEI/e1%c 6>յY t+TM/n)qUӬ%ü\lF^׶,*E$JK{Ś))uva}.|֠|u:Cma@Y~RQ70 鮞E@M+]#pa Pݣ$2&E+p9OY"VZu f6TcwEIو=8q$#/\ir+,e/*3"V xSݛI@FGMuB۞2?<5}r}6 woڭZrOqyon10f5Q Z1NZ8澐'wNCZbqyR@\~*E;4kyak"1y:ɸMʹhѹHIM>5 Y#9z)Zhgq9 cųBƟ.I :(R Y=^xg_\VƟ.!tQKx#}ْ2yX$P*F$)M%^_T77*i<tq7$exn! _NKJ{[噿rSe=ypU֚ NC5i.jA]fדf%QEyEZpwt(E۟jdr IȋK{qrF;"Pu:?)ܖx,dp.TUG%YrY+,-UR*YM6+`4̷ 7' ]pn}0/FԕܑĐI E5,~>ZnƻSM^>/O%MMH)3[7Pt H hG"|J_Jϊ ᵶh8%aҽY̢kɤq-}*kS7, WG!W~5Ot+A8>"/ 5['H{Jxt&h{ 8doYߓ 'Np y˅y#GQ.,+ȖE(Xӏ" /;dȡ+"4O%#ɻY.\\kGԃԑ?L C yHŋO^P5?.ሢc퐂xzaru/w=+_3"AUGo 1wr}l(jk.,se Nb 0aZg`aYa -O|("/o gr@h|5{r׶ibk 7OI?'#[ܧ[ 8Ì,2(ӛΝyeUjwbփmI]δ WXv5ԡl|h=|Mo#}ݸYcYm~9nEiZjJ$AU$u5g[ٌR&BS-P0TS/ZlSҿW|Zm=(GuiB:~!v$Al픸}~`*+~ophonކ4OCG"HuQB5M$r $ PҧX~b;/itrCƤx)_O`\}7ʫ_%=ZV+' ;xTN-Jji :Z\8r pa8ĉ tI; Zg/YżH?k/a+Ɩ e &#sk&3)y"S$>}RKgW| *"I7<=Į^ڒM4 u?Ml؜GoAׄÓK%9\~w2$UT|E  HCQ@$ZInFv'eրe_dfQ똂P)ضvيلD7 SJ/No='%(6Tuf-.-#dFzq-ekHK|uD2%S53 ⠊Z?){,xD)6 ?Xk\{nS2Դ_^ -or? |%sgtسV)VO'vusi,{ufGP:G &tf,|:uwM7UK:2gFhKb,fYVA -/qcGզ6*=N =O͝p*1(> :k'e!4-˓ Pq+__&bd^j ((mFZ{&?,S_JڍF+7y}+O6~ouoqgT; KӷMs]t$jLZFZ$B:wYKj"yxu{abK%K} @cAxgo#ibhU+x_EivgWnIV?}=A/=î.lv= q Yֻjwk̘ӃX1JWJ.mY:fbha$ٹ H'e_G:G幸*;ݠFu ÑcI$[}\\_E[~ Ap56ASVښkd|4)(9#t5,=^'Sl2V/d]i[pf>͒\\?iW*64;j}}op-g>u:ܾ2cSZ~]U,{\c֮D$?W}k$Aq0>ui`l.akK?*>oݩakkkm_h F~@]φF3֪(ValTrCS/{?26ϋ4v2 |ROHle2{HmC-0/=V8cR?o㪿gxO&*Y-/8CfʠEf ʥ|~*3APM}5֦ydrVEfpn.oLI=Ve}\[cl^UPc!D|xUK!,G7T\$P]C?{,f -.fz϶;fMY^fs#|@أuWmLV NJ1Q_qMiyˮ9 +<.bEIxa ~Wy6/ ?50\rPx_HPL$wufGE/p)> y2lN\q hfHo܄U# A4L+AOcBBjf*ɑEMެFGn`$wk*F;S\^&nG4c*Kq{}{ŗQ7V5sk9.O(q%igg I`6: H]HеjF1)ni5ziR"J?]\&5_Hh}FV6luZgC0#K|6d&`uRZ+[xeGIrA93*_:Q; <ˌIsL$PO{7]]A$A6CkP_J~^n1ou%3qGh "LRtU?_FglٛY@!f{AkL.jmj鏺$3Y7Ux{l.UbOy=iopuqԷpAec[_# s,wERB:~wc%҆@SAo.q֖ݩ\5,C ۪4䦴'o=R;Ӿg[Haܽ+.gŖ $Xr`8&|5nGim؍yQZ~6klZ÷r;?2|N݉'aj)0of{L ]Ԗ4?rJX^xtg4LNK;PoKs#0*ɻ}t}cIE#&!__VNJ9T22V& 0T̋qjQSIvsqh1>۸7:6ܫONAf H`'+&6~'Gq,ȣb74ϰ2ra#&:G9XqU⼪z.J8^`zwl~!fl ,t/MA،s}7xH4z6玤,;wef.\/D? US6m 2oȏW˷X{1 -Uj)SU~;swyq)ʕ}'Q_;󵌖8ZX/p|wOcl#WEmtom1L`!(+>1|ULXn)퓼0+˫vo)2+woddCasX@bL58"TzNxkז{gRH x@jkkm\:%s킲A+/ժ_ʸm_{VU{b#HGؘȣkh]nW]$.u-ipc@̢6>䋶q7{F tzֺCgt'حԱ,VYf(F2)/#P Nv>*_wDV?ԯ*ŧX=7B$~-ω;q,N5N{2| 'b{0Pc] :**Pev-Xo;g k~-mVKy_ߊH}B&Rbڿ=z'–1HE+twyR+_8{&iD:݄ұml-ܻsZP -ڗ+O #!@Rv?Wu2Yc+؜l@8=*-KfyX%-'OXk'h#m?K[Ms3Vcn(3I0"U~\&O}PҐH>.}5nMn|h5Odaq}vvLdX%%ؚOtaoHjq5$C}le{R4 ~GsU6ى[3H9{A //)vGhioc{OUyM9L.:"O$l "~+v5=][\sfEH k:e/xʙM BB]f.⺾hIͰ#sgPÚUN.)pؘR˻L/>ވ*O"ߜ"K{ 76f *ATCь˾nJ\|2F]{DCt+(>C#J'h&)-ucuq,96ȭ,EGt]2`09ٓr4^Eg5#PA,Jk=H:Queq|,Gţ1b0Xn?:t]uw#+sbM3==qF@'x xY0ɐswV2 Q?l!_I ~i&7~7:-58,col"a{)a6);61Έdx_uOWWo(AxG-QN¾`ԫ1 H+܆W܇Ce<2Jd?K=gi=+$D Ɯjx_ue{yswxܮ$TFf'_*ck5jSZb۷maEDmDaKK'_IuȱKveNGn<_v1$9; Sj[,bqJރ&D>+;z$0-ڐdoJʞ^Zm+̡ǜo,qzg&?ZZߤ-Dm/ll_DgebkSRq蔳]~]iV`p|{|ke`aWcGTǽ,#筡q@88J-t1B0@d}w=z1yߖ߲Ff2q``pi8^ӚD8|#1z~ŏ%j`vIdQE9k:~cs!Xǰy;85nMu*Ưpw#-:UA ]wYxܲ:Y*x;r5k-G9 kkޔڑ:Z*1;.sae` YÏZbq2{Vkꂿ*R'i'][.я9ME9,丒xL2ؖ5?Oi󏿵^Y5ʎ&ԝͱi,RK ORT5%XkH.$+TFAZ%0O,5K5ge#rZΊhxFG'lqȔ oVSȶ1ZdjJ6a v?.~{8p~"'iD7N}̓׋sM2l.8Mt%TW~?g5k37ܱ*q@}Z;;sw-IPif`W|kfO ezZ+w%V*lp:|u1]dZHIe*\27*jn$w91%3QWsBjQX}ۂ,E,Tl_إ8,ЇpL|WL9cG-b$V>𳿆,b,r܈  ~K,7(op ֵ@\e|‰yHi igܖ mwȍs3 r}GAS?p |REnjфP@TY.ffYwrI 12C;nJ{ԚҪ gSqRύc^t~@ ֣(zo75~$]n_HkF"Ko5[;R֩IB3q ܽ%ۙr@hNހNs=Y [䬐z-%;p*Ѱf!kaJioC1Z9bYGЫSqǮ?X ^j/k$`Ņ 9}*ߴ٤KY-Ԁv?_Oށ)~5u V Fa})5cPh(<γCm[Vؤd߸.om $ !u\a{"(q*Sr&u>|uovf;+|BpSa̝\bg6Ckx: m 7)]qf|m#s3nJrS~K)g=FK$m S7VZW&;̽K'!%)(Cvgos rhPᢵ[x"倯q%2cIA E(אH&(]%wu uswwys"[;kFaqE}?*p>N]a \#3R7W_ov:K;ڤ2zsJ~c0px >/Yt{򍌒K$bQ Osz'V՚8%Kh%c׈j[{t㱖 g v̼xIѼk{Ckj")nWYg}eCnz|Jȧ tw- /m;i"e5S0\ixm^|-,s%ʊ6-e?㱖]g_(H?yXs 71w*hP2=͎YG hr^u]f\<R+@5``?!cǛx@?`E~V4?{woRe-@-DtԾ#F^k+ɭD6H x>'_@a0WXaP쎼.AS]GX7PAfRwَv[ E>@u[`1>,w֖,ztnx>0vgq.i22MZX5.v^݉aݪZ~M={ܡݢ0tVzU6?sA%rY,by£W=3fo;|}畼TFyrEhբYUځk@9|ځvGn-Zyfl3)BAZ VqjoVV@!Ȅ ,տnh2A{"ƃ8@cӍn<$exܽFE-nL#iTrV髏}A8 %sĊ vwe!nb&<>trѪ'Ytd"uqgrt`LXI{yrS IdMQ n\MXd^K+XьGQBn WI~ĩӡoP_Jey.#5" %hթ[øxMo@fFr]?q8~S){sV ]69؂5:'16t=۹ AdnF#'Ź$FMh}i0.#r#u;_܃:J_nLX\]~2Ԓ4WzOg}ϔ+qleV]Jk?ݓR3nfh[yh,gu 8|t^.O򹷽_mT47d`6ݻ&]ƭ+Xk?)nspIMn# TUPvgg䁚;jDHG]+Wվ swsݍ핬|&RD0(zTW[h>oyk5 ܬb$FxV|)'}Hk*((kXI;W[lAY%-B]ZҲ?On⮡lܗVF7{1pm[aD h_Ie v7mr8Q'xф|,7Wur~n:_ 9Vq wKMO-9qcnն:gĄu[oIo丐L d @ПOy^7$qu"'%RP7A׺0a6Sh^e--;K)fJ XO?on;@-4yF;-LZPh*Osic,cAiw H*Y\e?Y^,a[➘Է%#t ›ii@`I)Os=I2nw݌"3]i.i(o{[`d~#ₕg_PB+6+6iKiv鯟wY =TY$mp;='s n\rXbWZ~|׀]ApZZ*9rm^Hndy>>^[ȔF$J!G=ޗS^=ջ[dU@h[^tIZf^FHw'k;i+q<Ńأ.Tu4~nl`DYOj97PhAMJZ{ݮ1?mH@$(Kn]G9N'5ldO`bj W\MZc kW<%75$,($i^O:Ao'/\.M^9NIq4ZD9P]Xw0;٬& [OVK{tX)q3DnOKeep:dƿwE({jRAc][*CH9PJȊinZUK{Դ̼[w؊kݮydd_y}jczrڶPZGсPPn|uR{rű"'+_VkHuEEĐ5B7 +vAvx֧5ay|A=ѸK6G_hҸ~qeB[r!v# 7ڪ2uSOj $?m1ҧW˧͘{;QQl,R:JrUb\_A+^He(jvZSk۫HGme>:؏mrZeIT#h*HNoYqlyFcQ.nmCn^8*:f1d w[kf' ̪i 4[,Qn2xʸeK.׵<3<3XA1f?I>8Zwv-ik--P=#vxѥJwMֶfKbd?܋jݠˋD"oaMNLm0 XnvƍF D|˭G;BɖX.dT[Q :r@ԗzeI"3pz.X팧[߈l1%y19 *wNEјҢZac;ؿ9wq$Dzլ߽ﮆOco` sl^I#HM:ߗ;)c#&uD:w{]o F[,(XAR?YZ,}=I rV=iʾY7u31ZڿqYN.]cuv']=7$^)!6~gXmz[h0x[.^PbrC oͦd`;u2//xKˋ)`E&rhDKzHЪ27F]G +q,~# /ꝯQ PPI+ďYAls,n"n-G5@h-%6GDj* W#寧݄w3#Pի!zVYN*Z|YmL26J+N+P־w~8D1+tkĘ~C,)H"sy55d!zנ騛_MA(Din"$UԤ81XO;+ram&rl{V9*dy]NGYD3rr#ǏmK[v$̹9^z OӬ+2Ɨ9HG)dhsoSTYXHqe-&`)<~E~5gٷ]Ipl &%#`(hJCE$ N'hY^B~W-ɬOZb/,-d{QOZ;pƭͦy͌6 HO2D<ʎ*u!xwܹx#-^gdz6>=F`HGSw}"{i(愡ܕEc`6lw؛n緂9l.Igjn$2]،&Z#\FȶAG?j/=? WotD1[9n'[_aͽnLTq@pUnwu7q;Ie,7 >]e9l~\ORnmNE?oQ/NjKUyxuVQڭK$iZLd&mE&x iݥkE]آ|hj7xD+0vvJb.̋u=N OI如AoEOvag{q"ۀIJٶ>⦞.f1I{jzt5[+[~݉)bSnUx&#ơ>Sﱻ(#bSKe]ς©r,GXluO`UmV;fij_p*O48?~RH]huMg{z׶3q3XXb35o{/;@W w޹^'um$F6BeLdcNK,Az72\]7zaUgj~.+hF"xM-Ռ *Ikܖ?yLVI7+ە=J[._6X bw]PG9&BO._Vw$sD,:0r1},ټlZ^8Ue^Lx[Xh&C7;'Ƭd?\^3~=#vkE.*O#=?oѰAUR3 LgJ{}߷Nr+vHȚqӫ,9yqiaO0'-) ۹;iY߉c@u3-u]˖"dE*t4 %qG{}ſ0yE(TU7]I٠jP҅v4.@iR:Wcɇ$2 ;QO< F^'[B' LWMMq~[p;YT"SmTސY^pi&*)B)U5[#{6#dG'63/ۗwwPkyуF ~m[& ;,~zD1= ðh׋7կx ":*Ÿ=y QZnͫI{rbE]ߩ:!|KJ^{+rڌ)}Bvվ+7c/nL"KJ$ HYxC)o=kfc \ހXhiE4^~6ycg_:6W8|WU| v*[EoqȍWתF?n屓%:ZT+b?Nr2|ph!é$bzꗔ{6 J)K),](10^FWV ~?g&4Jrg}^1lsܖ1ZXDabhɡbǣkZ{-iV*Ń*]]F7{{qF+YoaۯN%ZkiOx~։*5ۃ5ݷ N{ y(3RDuob),YZQJ~v _1E^.5SW_9W6I{ L]g9׎_9,eۙ$d}aBs~dIo283iŎ 7ݗY}Ԓ̓Ǻ/N^UqŶ sW#ښkr ԮO ~D_W-CEo.N[#qn?feBLxTZ;%B*Jǔ~FڳM a79G"c+\]zJ.|y5|]Y$9x1-=qzM=ht/n#Bv *}:=u \(9'7qZdc/)?7- lNA )_zx~Rk?ꬤRk;X Y{|̾+jUOlK&%UU1v]X;f su PԢ3ГU;/&3YjBq@Y]Fvߊ;ssEcZE zu ˾h)@Ltu99K{h .ƈb{|&af/{f{l'2tޛyꕀd/<&W2:Ze:ƶ]0PkV^O\^.j[kXxE *B"Xu )LC4BgJ5bu572WBHm,_#ܖIcJcD vrYgrwGybm-2\0KfJ7!%С~ouF+$0?w 8-HTe֛*(-aݽ"KKY^B;RU+/hvݐ^\=C@mr,LVu7?ӎD2rۘ_^*a`Q"d;䔡Mf8,~h0Tѓ1/]Li؅2{#a|K柅)c5Oub3v$zyJJ+֔Ԟsmd7LF(j [~>A^UESNkX~C!)7?>k&m,ǿ`,tpvW]h-)׮ZMl¥d+LA0ȭ}W]{ߵsey%ٵ'Aݗ6ص{i8~jK[KlN}*/GayC r4sR|Ӧd#cr{[ I%7 v2G"-U>#gcו>mH"d/ViےA 8Ln0s02Pzj4ό,26%gWQJя}MNJkˋaggtΒs%bE Q9aw1X.&,@jS$,*[nY1:},)r1YDY. U M:H1$2]:Z/Ev q;+$ 9M2j>VBA{aoǩQYEE *դַS:OiCH6fɞ80f݄'? Sfԉlbd$d\m@D0􍼈9lf.c/^|2=Ő I ϭ&/>D}wno-(D Y |˫fB0>c),p6fr=)2$50QS5\Iۋ '}=haN/.(vx唎UH *U^"< e`iȇ;CŠ)c$lr]4nܞMLiF/ɻ*)붢Wwvw8"wq YdV+?_67nXG< ^ۿH"I>G]JnM8o"Uk \O\\c^N@i+ ׈#d(vۋ=7oPT b5$>}ޝ8%)Y$HyF]>Ksi{q7/N,EJ[Uv2quxoV6`wh/-$K+8Bk|u;zg1w׿ym[k'ׯmh;uڶ8@KeJQ4Gn!}sZD-UXםbƾm[[[+ sX W$/(]o/_Z$U#eq/%͔V$Km0GھaqY'+(UTW N#Y2܋UAÙ;笆{w(-噢hڬӌJ(>oQ{xk qKH%ڣ<?J5{[XwḩOqQ?.rx mleR9So7^kyJY eB(;4l}'0305v%$I3[ơU G@+OrB@k CV31hʞ )1-$l|u`Y Kۼ\JF=[uhZ[=pC"F`X5nvO29ٮ~=H)(ez1KpB}<2vOˮ;KaP.y5(_Pfs`^[{TImCcZ5|~:w?Zhvi@hzc?e'rbXUTX٪mefH_z.ES^_˪bk8%q $05U~R{K_+)0T{|Q:Nn{Tgh܎8}SpoU>k7v&/v![9ނn۾gڮЅ#m~ie~;ؼBZܵܓHIܭ#*ͦ/x+\߸{v?J}pYph24+!$+IEk屰d>Uu'g>#?->:{t94(nUXPW;$5ռIȊ:SSZb@K͈B i/;xҊn'$+kGk߼^u^&Ic|PZkKh-hS`(O_,Ҕ[{Uj0?E2FnDT_8m,fIƫAMm~2m P\S|`1*M4yKIT3U1e+ܗ,94ӢԬ!j;37+Fɢkj)fWbޚ-ߺC7ڿuRQVa՛Rq='ĀKERfC/Vڹ^v}-PdzPWnᩎrvԂVȄ> Q.!-݉a1L֌j]];xI pݼROIU"^"4aRX? x2 e&15+JWI^\,ouoX#SO㧙q/mskqf?B.;Z=í$c*QXչ l mSgmdbmqjNUھz{d}KdƯ"2"7td~:bVi%<{dn|]d}ޘBؘv*1%N4'ZxfQ({iT J9>5` #;!encMժzjLl%!#`\TxiG=S;x횚IsV7Ƿ%8iVfF Jҟ RᶚI[@ \; 3y6v6&R2z^,}y>\nV8pEJ$_?_գEa.!jH.zb8Z5j/s'eʤT[1u|}Ƽ+%WmCzȫ$~BH)+rkı߈xEzRGD1BLK`:O.'jine\eY,]՘#)$I<4ibTRk~uڤI,v5Oj SX.M9M;HWկ3Ghbͱ0Bܢn 3jc8˶;gt'J]gM8y-)>PY> *R%*O?xlRڬ/ ֽ~ b6Jʚkk Ŷ[SSV*ȿ0Q#5x\X륤[J$aAR6PT#㨼i>YmaBUrv ֺsE*ѷVqO;E 5D'jy `fћj0՛(ux~EcrZDSş[VOEڑ\!/2VN#,Pr{S%-eY["JHhˎ5QDwY \۬VB$KڰYhe턨-ROxo6xo mx/+haVkC^cHU?7/M~37㮜}F~Njla⸅^.7Weut-&Y RUysMVe$e`%rI-xӏ ?mR VBiC G) ]#գns{3q"݃WkT.(,k7={=y}YNJ1 (;\͸8b@15i+oݍDcpe`#Cnu/mF4? 96Џ3 F܏AVvmN4./;. z?vqݑ3RO@Zow^5l^[/S3L8v;X bq4dFӐ'kyfRe0-C˗Z/u!o}եŠ02:"زGmy{| =TaY>cuv>v8#}XA oMSpr_@Ԫz'Z)q֓_16V^/4!dR_վ˶V4㧥I(ZC,^ޱ O1'tqY.]6FFӧw.OLʗ 51չ!^;x&!9S׶d%̍ӟTC\#IKwy?"nŠjvg!oQD]JvՏLӂ~ufjՒ۝-[< Q,Pxr ׾@8@&q%\'ҝɑkom\r`į'Tr`q٣-se>ڤyɉuHly0MڀW;e) J FX區x.G05K:(# fsWO?ܬXȬ}F T§UK{I{:b8J6*T񉇰!+6q,$ TZ1j_Ǹ.w`^ey,nJ:ӫi!h{Ԅ_^ĩ#{(CoӭDzoo%Kݍ"YxIl⨦>ȬB_|gi]V!ZP/ l^^ۉSbKS5)ŏVO{ ,~642/J^M&W/1cPk*~윃A`eaYU+RoIug)8K;尵wO28mͭ&Ȝ^.Or(Mo=u3Bn;5&?[֟u)1=UOB*Hw!b.F9sQ<1#HU╢~,.Z=qfu⭳0ݦ^!۲uAUSft;{ܙ´J"uvx_I=-_ %mݲFݚ!HP _^yO,PAu ÞqŎ:I-⦪^~ ]{Qg,=k__Ձ|Jҥ_njU0:|ױ ?DN`҂ras5}(. {%_zJO& Cy8$HOQ*V'1= ͋-Vqj6g#tTI=Rno] xU*,9-[jKww!@MٙM7?H׏ #^QrZnܷyHV}4472qgeJqm'-` wӘ5˾,~!qcd X^:q[;$̗YK8aF4 ڇRdWk`ڍ>|T.񶺹5ճEŢiB6hOk'X>EH'>ze͍B%z7$2J_=\`|r2ze2KUTj,^ ԗx{d ;xWDQ]>ֲq `P)_]4gdZY3ġXP*DKiRȪxU|C:𽟀DCwLJxru*TuKv# V)=2Ԩ߬ϸ$Ή-黥GR?kI|g-&BTXP+^KOmҜVXoJG?Vxlv2V˹P*]Un'8Kvٸ:66[=aw;% yr-SSS%s%^f<[޻׍&HEܑvR+K"#\߬+ehy c]k]t1!\tDw+Pe(s3pm-$80fP@e>]h ŴXHod)եf"WW_WXk'"{ӷH%ƧQϞgyINBK<8?IF^j#i998PLjD!f5*H*:(׸klV|sVg}(6b-u6"=NfDS3|>Y.;w "QJG:M@ǁ^zHIBon2QK -5"<~55F[!Y,qDaz]%e,_R/WY_ 21_ҬEhi):apy谸' cec=eo˼Cϋpw\_<B)Y SIlc{uOH֞߳X~ONN{;Ou w1 4ycTsP5>zo=}i 2̊}xʴKM+_9|yy-gX`8ry 5$v_,ab&$>!&7=s ClnKh Zux+t[ʮ2q#t/ǯ:q܍{=ŐdmGi3kwrvAXJS#[Y\{hgg(He=AX8U5Ouyܘ< }۷&)#oG^ y [[$M49-%vST-s vx6lEWm}u/mD|#By Q}zIqq.9{ hH_qn]Ydโ5<#+kN?[sY b?Js̤,TpXOXr4&[ˎd%;'p~`|ԖOinR镶Ep=S4p H$Mk]SLfC=G=Ɏ_jKpSr8>Z7dObb0h +D[tlH^iX7a]|{mJ3x^7'}^C/sVhY_nMц]yqcWFuht بL9g%&)2IR+b`}qZULݜ⺶e^P\A M]K/vLXF3DE/e[1W۸h&p+<k~ļk8VU9#)lVnp&n`ܛ*8B<>U>eurMar@ #n+[rY@{~h-$e7 X5)M`\y3$\ũ篡{Wtن_m =zx׮2߄aB2+MQ"ʼnT]T=.`<7Q&XoJj)V?gmw4=)Ħۭ5b[ģ!_S۷]>*^Ŏ [HY_yNTըmXEFOho~;'\TN)m+i}L{+Kg.& Tk_KA̷-R]pSs'wzx$KmC3jːk~-Y)8..HO4=U[:Yd' ܱF;F+!}aykQlwf`XKmġ.duk7fޭQ(-ge12ofV,TusƸ-4L(UW~%z[s{I 1P~.- qp`@?]i3iqy vB9~82wf3XI pvn:;Wύ 5Ѣ:}>m;k(ֿh,Qv߈tK>ظ9QpDtxnj3 ,$_8VPƫ…>߻WeYdRQm㲸b][;O ;Pm%V k>չʼ7jȏH4l<5Te;,5lZE- Cp&kjח7S"OÓ*M@7fG6FŘBZ骿b{׈܂FPG*xR?Z-IڊF,QJ2*n{1QSw9ķS)M-y55_~f>%X-S]caw|mni%/# x6=w%͜᱐0DjOCSjs i;H<qNWz¥p!-ysE'IZWmL^Ry!7΃}6l\=Jp"S՟L{6(].dP7ekfiA]?FgxtT1jTU5__3Z{Y()O~Dm0&c.2)or;_T哐[V>ɥ(؀(3Nɏ:hc)=‹D17[ [tCU hR,~iիdwxlI,OdQb`U餻qJXkjB^cjc!q49;/{#LHҸK @Xc=}(..1SvFmF'dG**$ jٍfnHAݵsiY\ۮ{2KU:|֮?&ⱑwmc⁤47]Z W2*U<5ZI9 P-SWmbq47vۙnLd*O-+e?}&%+{kb[T+0%=KjJ)7\f.\4ܒ8dQ6ߖpaۑ1笲)HѫOu_g̾Ni9CR/:N2G4J~w3,E:$Cͽ;TY㵎)-_k+]w Vo?B S|GVVrYۭd6ToO:K!Ϲ0ة { sc |jsi;LeJ)84%iqm+g ]XE."*=E~s\H>?W=B߷aF[ _> ^;e`۹-n1xI+Դ~ڑapCYAŵ!0@YkڙۓEkpaۖ2vс#}ud'YjEdzQ&wv'䜎> `2RׯЌKssY1#e{{zuzLcn1Ys3xSn-_6d֙K@E! Z몗>صfa2uHcOjNܷl"$֩Pd0/Vߔ#;MenyT%Kb{ni# BrW(x'<ݘWd)A#mG_d$G>:\.=%jvoI:crS HS:A6;UdI GU?FP3}ZzJ(X{;cXfWhۦe %z-̗w eGk^L=]ku{`%*B4SԬuM om!~[Wc #-| 4:y^췭2 +l5WK-ee=MJѷժ\X@z»ơ1d.hcJC3%|5G5k+lS'G[1aGXlJ@kyc"9' Qѫ_kKئ- V-GK{f9-.czǁ[ι( oUVZb~" Yo#?EŻ58;% 'e9x:ZvǵȎHNv%K2*Tjw[F15b,@J0iFk<3 m yj}oyvWq;pehPnd&]Z;L_-$l8'(xkDAq7I=ܳO4iAgt4Bx5wmI ѰaQB:l\opZf$acH|9o;k{k$rF+R;~e<>Uc:stqJ,72ז7 ̖GVM?l/kݘiV "Ut.K;F~*\P'zhfKdIɉQA>#Q)jAOZV2yJE,fǁ3{ ),̩1Bi=ɉؿ#cf(4^#MMK!oXUf:?"ܖXM<~Ĥ_UF |8?:\,Xml{֖yYHsN~lScgkx乷 3}UMO| =$VH"Jl|x|R$2{;I#qYP>]_{S\WCZXV)m{{ǷCI3wS-A6[yq῎ nGT4]kf8( k%~)I}_# ;,_*<@]gg}=ՌAK ~?U۹Ki綾wxHV أBB"]AN:n5@WzK[+"G|ufzj'o+\L7ԏ(J|%ԗHx$ć#HZ[⡆Ksrbcji&fk{S%gO8MN~zw46֐B~aGS(c]dfS)k<ĪWխr[.׸X20Fb $|j[K8mV).k$9Aެl%&Y5Q>M f[=kWi8 Pt]9^%$7=6nx\m]Fv5Ե݊aG@[xO TT*5(vOLXc%-{wHvB3-?Xd-"WQ8Jg+eԕSe}Z?tq>|~]gvGkЃetO!3Q%㬃k;&t`wUZ|:jثܴt omD 5@iRŴ?}+# - zzji;8MxaWХwSӥ֨qwy܁mBUͻ}R1B6?NqV*+(,1%]|qU4dm8"# *O{x"9̳$eC:-$/ F"F:y]j-Ohh*G_V1"YNvN)Vxy8v'Ui㪟~a{b+{w %22Z,ŕ7V)( @o{v;1qe7*#&jUjڇ~ɞQv҆xb 9F|t+e5bhHUckaR nG9 ^8lIOkF,o@e ڪ?>'몞ǓF-*G**6jRU,||$FH.^2 5ܑYgW J+7_y_4FȀ2 ^Guʯc~V;@ F26GZXotmlUOfVtoJC̓36 g8ʀAbKDh;%-йӢsVh:z=j-kq4LnUg{Jzߏ);1+XQ{o.31Ke|6v573Ec[|/{^WNܱg#=)[K~p! l@4ͫ'g.;y'k"+acR(Og6Ao.2_s`z(> wK)~ۍ^٤amQQl:Ka[w>joڭx Y?)j`몖Cѻ(WBkq2LЎ4T SMjd..} ˫8ۏM=tXB'W^W޽!p:(W̧jYYyRY<:C.n!3Z㳑DY~9(;%A;xS^ݜp-sum˧} {g$7?oۊ8FvF'Ŷ;) F%& ]~;\H.!( saI)]k;n/e [xyr2 $H\1Im TswqJqxN⹹kkYggSA@zq:ާofu%LW,ƣ~՚+AnU@|ȧMY76^pU3 w<vS'-qu/U9FOjܦ oDϳ|1OW yeȭc !f?JMY.3a{edڴhbeE&ުwYB EXS$=A^de#qϝYnn. 8+3v81YN }ۅ`v;\G%\I}O`q[ :euH>6xU5i$]֤j|AKn%Zq\6r;o>;[ۨ)ežݮ-xpai*/Ci_}.ОQ3 ܐ7宬 EIᐋ *`zWZlw_rvTR|unw]X]]\kЕ Ѱ`בS rRB@4)O=s;$Ž5CȌiRv"s'sZf.mGzP|M5N8%Oe{KyaP Xy`-%0LieVqft5"ȐI鑫 %Οe#‰?j S\js3KF)&xjx7XuqRdۊnѱ-|i`[Cl^y˼Sgt[YWr~af*MqiV?wD%ySY?Vj휘6sk,7^t_U^U"wu92k3GjiEi5}ǧU/{$Ày]-`\GjCNKy.[(RPH >+xpWVvHVV{,B\M(WS+n1,@V P5]yWB],x-*IVKgkKI:Ӌt]ݏm\͂Cm bvFՂխb_A$GQAj* Wv\۬̌l-2BQpkM{q0wrQ>. DR(>F'x=ە0S q,^1#QÃ45SKS,pmǧi!*\\5.h >Mqָ$^85̧bצgr͙K"'27#_c4Pp.{(3[H{5Z;I-0Zq-@1y9rs+nD^oԌWqmn2^Jj)=2g58!JG]Y]6[AuH.)Pt]i97V39hJ-Rm_M9.6{<]Ѩ$b$#a2m\B_ykls--ܑ7g0]}5T n]J=ˏ;д~ٍ#s_;丷/b1S 'f{N!FM}&p~o_T⻲ K_Y+H$lGMu~% V^zo7/j4,죑 b}o8I21>xUǮ+n:;Ϲ`:q$Dy~Gi||Jri=J@|o6_#G$veW?Wn0 LRF6%{"*EԤXw.hfةI4}<с' Al1ڴ{ip Zgf #Y7J]#U5㻑/"$Uj19.Hl.*&pjI- iM6Ѯq'J#V;'ٽq}ˏl|[_FӬ€{Ë:(o-.gWRr8ٛU|p`kT_?s1{bӷLy ˼e̷n)B7_3o(i;<[AYYUD22|X٫Js6x60<ڡ8T^6+eVo;%we=jg;&* 11@qm2'cD%>R]i=)#ŽF sRT.&񐚓YW+k w/?OG8V6Ҧ֓W7iW7g_[crwEm~V ql{jzeҿgXVlIofKIjT-5j˴[$"w+xOXYK+%%>-nUe$U?v͖{m9ɆAn(u^uE{SN.maI]RҺN uIȌH uڿ?S9D ufNjGbϹ{VKv;|㧽WvmʥMk .+7 O꥕ymlls*ՈV"U45#|}J!B_}[|gpϙ9iYIJêO}$XGAd CG~4'u3{z׼ܴ,VdT,,5L_7(,#diTC/i.6:xm'"<4zb ~TkCxU*Oi&VL-bKϗy z5sL8屼ʆCāI}N# )Ig%ergEw"#H :=eq{UxWahPgĖ29F܌Y[?M1 kVd̊҄*wֹy p46J'q yՍ.=۵3I ͿV?/|8K( S,l|+]}:qieiy, mOҎd'N[{;+$}ˉ Pi՚;& 0#mi7hI+de$aڗBؘ@mȟTnZ;M#2Qۭ4ۺs>[iK X<}k([cEH w>:²ﻮ;/p$I4rH<ƔunY I*sުnN0Xeon]XҫQ~+ f;kf@#FnK8Z#0WkƏc$JqPEi^;)mk a-plFCTˆG!Pr<啄XN!Cs*{&T^>df&Fnk{+;R$I 5jZaOPq#Y²%@Dg-טu[+c2{EVA qGS|9+jjDX`b #vC$!ݶBf&DV&%z/ 5#1lmeZn۠i7@񤊣r^YЯ'"KЈGcjǠ)=uvťUnXj04sf1DԆoat^blMyhC ixƨȂ(6On ri1mB vnJ x~C:{o۸rRWr"\,fsN@ljSoM"heT M<*^`jǺ38̳ՄI>U ևRܵ> 1!{K-ە8+ Q cWke[|65 ~j?O$.ҥnY$(!pU%Un:j)SGHe[Y::;MX5bi(ǯ=PoOaclڴaaIINE֑ 2XHN"!:u%}n{/kYLRq5UMk,cI +Q4qnH#_ܤn 5QI?EFv2(RA5Ħ+.T W k Қ]0?NpH7ZkD0ȎwR e1Qer6wUBF2.LPx}ZKkh+HN I8%MQuզ[Xw$k.ԧ-9K\uF 8[*U`(u'te3Y6Е!7,VN0ח=Ři %-;?z`r( 11ژoM-V;u=V/unhZJȩ(o: kV %C9\n}z/y$+,Ѫኯ5n aIg 5Sk~3o Il UҙfQiFea= ~Mu7eY\?rbR)+cI8 )V]]o4] =CzKuTV[rj+n)eMb%ykYT t'۬Dii+SO=-{i 'Tυ7([.Zhc-&zkOTG7[E`րH|4'[야qqI@I|P\ÛhMH-'(m~%ͪ{/uxhG> R5TwE0 Lj:mγoug8;+nnfhg}:7d-WVL WvX>'jə.LeY`䌲GPU˭gOvrKm'1^'Ro* KYDB.zU&Ťe/#\R,`8>w̖WVmNc1IahUZymB٬A=W(hs-,}NEݕ+K9kU,%9{?mdI1qK QWz 5B)\]"ܨ5̠#.K:?/4c,CH'QOwI`{Yй]JjÜ壿S/ڷ۸m/"S (ԧ{7p \̐T3U$_ ]\gU٢-:Sn /`r[dIO'`6Tb>fO%^h܎v ZJ:f1MwE)`_r0]5g'ޒ o  J8j -Vhץ6nSvb@Չo&2[,jFʂ>Yd7:+{r?'R@šZ\ii|<UgҜV+"K)̎x e.$5jNRhsX9nRYb zŻj IJc)bB8 ҟS...3oɝX ȧn*G/6#/I6.S+W[h_sZr+LG@>jkZˏ0#}<#R+E>KWlj{)g8}VI+@/Z.Los6llAf'&|&Qi3nVHmnd첡۟Mnw-ݷoZZc]&{5 7&+!YyH]=HwV+\ r`ETa͈c#C)2;QZzi?cqK1mܹAIgc\u+ m%eUTK_G㼵{/z9!Po+>ܝL8o£p[_:;/vgSIƐ M(+6yoIڂ BQܵ -Mլ?`l!6ȅC1e8VlKIomk6Wܸz">'/s4p^Z?.1nwRp+(Fq+HҫJzu}u鬯#- g Z[)r+nqHpE*8Uy|u]Ә}&!&P?N+.6cI`3I9 /4SӬ  F()c^KZUv`ܶ m^.-du OOKZHmd9ݡ j~ͥnKqx,%3X--9W6OZ^w[-&z&tMnlN)$j)(8WVə#$ kR+ E|T.EMiI?tH,ij~;3/m;Ȧ99p t{m/B!q+ ICVDR16ܴb]n+IHЎ-S}(Hy}jWhwjc/閴X-GxvGVmLpu]X(SG5SUm=J$cYŀ iy[;.=VIjOͦqs3K4뭿%h(hE AJ;yiE~e5i_c\Zɥ2EK{ H N7]ވBL\JJ_#H0ʢL ^A/-)+-Ÿk12h|T;*,cm4˻,.kdԂ6gbwuJk,cx$cUv[4\exrRMzSOl]ueoj]ֲZ=䶶fEJOoj.1_PJ>濮g,WpMKeGȄBdlwVr[╯Mk;qa:C(oy ُӨ@m#Y?jz|~o#x.x*RVGj`%䭦eJ.ToƗwFK4u"P8 2$x1ͮr纮7{#'Sr%6$B| +u}@+ 4MPPFyV6G,F/oj@YOAߏ,;9سVd1oBY>JH;ֽĮ.GV'Y!Ɯzzi-b!_mY`7q, 5~?0Y]+U5i^3Q[/^0v|:۵=!{Y=2!o!+Ƥ ,M*vV ws~Wk[f{.}5?'&V[UX׋ _]<|ym ox z5ӯ5uk5rWR\KhBQ'ZO33=8%K~'ᩮ涱82Z {0'U PwlԂga+|L3RI!꯸O{sy%Xً%ui4%yabC?vnL79y3đFP~/բOʱ"*T"WXn:Lc]$ހ'Rzuh㲞ma kQ O8KO޴܆ku&(=7wh}GyڻQyͮ)$AkpdX2ոI<|F{r}Zƫ̠PBe s 1FaWsnjb op5SZSV+^ⰵf9[2xmGjmf,-d pEJ1yj!vYOU8d,ԄU$5c F[En sar"w%nD9B;qfi^_Rn)]݉?KIQP߀!뻛b)C;!˾܎6X5"h(H5GO?~&.-2d+r O At͕)q-kc&IyJ_u%g=VHom*/3r>n mSwȋCYRUO]m%qgv䀺,.W&mHg{/zŠKAZӮ}?G{b:)?߸$2 fylYy85Q]+sdl=26RJvv 4yYUVI@KR2*htlcbnK!-jFdz I6[l¬=eM WSK xxZ%:=Nn奷{d5ɢ#ʞ^5՛M7u}:{`(%7ӗd֦;dR*7 Ij̀\^beI)#o~]W2ٸxAK# TP9 hm)di|FnǼ y xO,*L:riPjYT4Ǽ?&go]m2=ń/ R(~c]%go ߻%:Ơ,}2oKnX+kH-uRRZfY&A !YE z; ֟o7is?R_CQJ94+7,`PXt3ܒهGpm2:!Q2lhˇ -os I \}+v̱ɝShk"-|̋g/2R0V1~?աe5 CqK}䑋:E͹(B>R_@?{gbH]9Sg ~i/ on:xAz#Ī>K'/[u^\e)w[I`Xj?[. $)2)X/뫇?Yָ^ඎ\ >/:qɵV ݨ ̥M~`hTӗӨ.쵷vٕC/)ךC+;VK> ^ܳ@%s="[nHL׀f!n֚?edQeO ggاB-Ad]eAme w>)'a]W]9<+$n&QE>>#ž:b{#CN9 &7 v mg#̠~h(.@yk1Lwٯz2_m7aI4JWU^ Y=D`Wo -՟׎E2#s;>jXӈ4QSJwӉ5y|4'.$RL֤J 9t֛=鉳\4B <TݕzwrXdo$ͱfP LCoj9d/% ~/Spx:4 OrJKN=~UvwxgYIL4eaӑy}:v[rY={r*Tu56=KDWwJ2x[n [{,aP>R`Zi/;&R[rR,|Ţ;o;F7ӧ}ö)c"ݽ@ȤqN:v6k@-!A_JYʃ#C|D*lGWK,]ZU vWK#:u+<2m#9rI:"GϨԷ^Od1lmPC5y_vj㠸c@DZ{TW~gdY$ǰ( W }FOzJoW.⵵uiUjjzM:Pخ#!ݽxO.ʔZl51ݻg|"7FA駙k,lN7 +TU |5H&k"nX(^ Sx.!%DA'N,?$/,s@h$It.Lo6&hY,'E/54nnמ's'(x кMG2j ~2L6bBpo1Hk>~ {%9bUzփ[.EmlsT^0ʤ#RjjG:tA[UaKZJ˻e<9])KϋlGmk<^0̓fW<[s?`YJJJH `7TL_h2I$&W+iS Y i %Gek+QhXںevȐkq.J i#`ۥ_*'h)ejӈXI\F8Y$Γ \{3:1|.,lwyI,G9fLJ+#~O=7[+)üeiWz R 58\Y,J K lڪ7k—suu 3ENܛG_Fu r6i.8qߋx5\,".K!zT!S/qmex͋Z(DݘUMʹ7Ҧ_>B,z,St mlc֞]W,Q4`Ȯ~ZęIe#؊*k܍x)u%f%[ƪjM;g- Zrmyirp}łMʠJXwo9EXan>U'XSփR˝䲸p [P.. k3RREwr4(N%c>,<E5g%."zv;{[%RM?A:#sHxo*ҚI-r{4o)*lQjW9㴜pcef x?Mdf2ya/DqH*a=}*+e[ŕen#yR oǡf6]\qMjۊ}mb[h&b} P:g߲ޔo㾷o?$P.'?:4nFH޼C?y12neVy225j=Z\Jqo J{ɍ?=ewVXQn,PN9#ƤU׬{j/۬w 31%ڎ 1Xvwizc㕎U9qt1Sը$IKc7$%kPOɧq&[ %ﺞOb+ӭߩyj#@mE1 (C-M`3HVNLQ½UR]ezdάp}VʷMURuw8lw6 A&^+"#j#0g"Ul.dfpZ+M[9&#9IZqg=+Қ,8"kz'W?2꩑m؍>Zߙe/)MF."39?8_?-L6* R4krV$ZQjs⻂K˻m`n3i -kayv _hZ4@SՓo1F#C8؅%JOɹ`gL0(@R2E:4laCqx.%&'6ȿ+0:d2mSmX_^QQcZlkSX.^Yq0kjW+/eMo5#IMZ-SOrկ ߸FNH-x?.YتёB:R!nb;uMkZNRI[p#4mQRWZdD GN%p㣸YH 8`㜕 j6'.ĮojRUS]i3 ;H}8;x38,Y&`r 857姶A%j^ $*QYN۱4G-7 i%zlU+_q\]on鹪FsFO{eoio"K)܊܏j-xr@ITѹAY/܈b<R#uY L("P۝ʱ`ol.y{ [ Tu&{7stԴeCo,eG0WqI외)VػhԂ\$t"sݽw6?=K )DH#J2joaCCq9qaЃF1xx2} WAj-cVQqrjH jFXFW$ Lrw>z'so;&D$mcEs7Y!!i(A"ǟM;˛jrl8+ȚQŴ߲GQi<Fw?'g3y~ x6(TiiEb Ѯѣ%@PjW,sAƼ9b8Ԁ́+ Tz;׺aes QAfX=ﶞNP >[ktR۞ *=[j?ik+qron5d ǻ%nheDY`P"ufŽŗ>oPV*ڼy-.8+-F@H,xTQYvg}>Q4F2('շ{!wa=$ s"s!cU;G_{J />AwWlYކʔwEBWVJڵGF=N8{p՝FBaUٿ:0)[%z FP v̒Os$eoCON̗c̜X{Q󧥙S=Y-mPO$aPE<:Mw=œ\WE3X{J-~wiۘ+q1b@I 5Ne#ߵǤc++ #9ܟ+ukx݂'T w21MelOWCȎrZɍh'eYe6e5e4޺+}b-۴Wj@W`:$QyPD!!QFVSLo-b'&z% hFOXvvv:Y,oa5rrӮ={ym +y|U[+'hYmݠ.n\XyZcˊfKY$oehĠ d.>oc}R إ$RJݟHϷ ⯣IR]jy FeyG$F9UژϏOέ鼹e񦸸+9BAOHf14$RzOjЃKqGjreF2r,V>ʾZbH#m^S)o_ܧUK}$<[5l񦲞^HHda!~>M4X v&[8(]X0-VකYdʲ"&=?>/awe o{23nR[> 18 \y>˅0xǪs6@孬9eD1ڦ`t )9#侑OHwύ{^:87n(NM!zWZ/ah'dk`ԣQKj;G/4G:3Yxլc#ڒ|9<:/2|:; 9{{YbbBA-k\GԹ^a ;PWYZ% mOl3gmwodI0آ̂b we;-^EHW*QM|:l6Ghِ^=kjՍL \;}mGE~iĝ۷ZI ,rZ1U[uQV^+I.Se|aHVYF:;fw?{g]r3nܷծ7 u5; ==1ޕ=K/lXG4U{ *w%qϔk8RKY[ ߸kǹ\J ac,IpԃWNż^P_{Kq4%}LO&#;U JRKfQW 7ߐ;c B /-הr X٘%,29+o'g|E߷2\-Ze>s'n 9*P+Ҵէ;&Oi2[,~tXӠ߰;>fcHϢ&o Î϶8\|GnLO7cԚme،M;K[O]iKݱum8$%@6vG|a0ܥ۬j/Un.n`qRpvc mփW'qao,c%w*77k[-2D;1Vk]XMe:n AC~CٶrvYU3,,)àֽɭf9Ջ iX²Jݖ>֠ 5C [ms#<;)P .~l3pZoىEUNR(lf12bd yzS m^oQTGFʺ8T^A-Ů\,R{Ze_JHz"-zA'o:!.u&)"riNq ؊jÊܺIoCWIz˫ `Cu(pZ2wTzFrKŎQ,gU=縹kX."rvazE!+v5؛xuM٭C ԯJwc05+nk^e bkz5N·ig dxmo!*REnڅVO$]?V)}yYߘ;['$C>'U qln(>X~) i% *BJ]ek >'mƒgm DҐUHZzGޝ\_m%+GQ[K/1WSpx%/+3o?jOX_G*G V0YUE/LmffO9٘|uvDwwhQ=eJ?ߴXEO$ Iij0._6qq`E nvaOJe>; [7`P¿*)J~4~C䵃!ݷv%43j~ڡa{&1H8WH'yg-!$7N_O.w.~AHԆb};m)q.>XVI$rqZ91klO[lEvoH%wrMa9;,ݣ *qap6SB^6)&4 $ƪ~+ZL#i툭|ŵn_3j7;giyV OP?MuV֢͂ewe2 suޭy #cI*6ʦ1Ȯ+;wy{,ڷ0@[2{Ec J͟238"ܶ_ƀ߷.6-)ye;]cVoM UOq_OQ%XKw`,d])S 2L\OPwWR/429MO%_*|5~܂Ne# 9&;Cyqխ3~5ี|Ӫм>q*QFۗV~>T;WHa{O]ajz,3G"yzzg.#K\5݌Pn-`7 'Mf=}&/'k Bͅ>NLG}{i$2ڐ7膴8ڼ#"eʼ+AE]OkҶ iփ۝wkf-`%"aߙ_{㻾|]%~PzVڤwuy["=R>>Z䲚[+q.[WyJ='Qf|Ut\oZx$3񕔅 ɿn^\/O(/ssW cfUCrI*y+{rrk?o ju!i{g ",& 9GV%tׂh"PQb@w=tMQ]ekU#n%Ҭp)N-ǤIb++jm,qkHV z"D7pܘՑ{=qlaW AT+%߈`TзL.i-!3}Z뱆B;HP޴S㥲6r6Іw}Jȿs#iwc41RPo2Z {ܷ;nյ2Kn?Q$妸,tB/\ݛtr`\TtR=R]TCm+&_!O ;=дkY-1RmTu;0S&%'"v`G-qoqb$idp+X i1=0H8SG-DweŠf wq4|)r]y@ܿ;{8o> j"Zy%2^_\6wccmMM_gʬ5}/q2ɟg+#,3GQ :kkNf!r7t1عrWIC,̯+Pwyl[Y_He+$nqV O[]*o52n5T|ūhvm͊cgdWuh@M ^mm7T2fָ*G*7$v2[%~-6>x)oo}eTN4tJV$h7Ƽ6 ZGZbn?!i)/֞ݓ17*H_K2 GdC8sihD'A چV;Mq[({Z[`(p/dF*ܥp;#x j/lu< fdYAE.ck&OD e@+O);_?jag<+k%>A$L#d vm61幐|!CFC!]wOq,L"⊃ OqwzdfaY2D.BMSe xڞ䰟3V߈@Է @K-y:-vvxlՔ[ k 9޲InOք"OY'oǑnqr\Cn hS"uocUp(Inzy?W¾:kY&$w4,t2Z`yg(5eia֭ \MRBKkjcbjHx>!2^BHCAȧfZ~[;z ^,ְ8)$-}?i{vإ,LD$:9Jm|T{ۺ,-pXۈ],u ~2 Wru~qmV6wqwtN$ZZ]YXLְ—N$bV# 4uN=_<ֳȦmA;ңMZdXrH&r Xy%WS0wrKc&;sZN ]YV$zNp.F2@L2)LS;3f[\8v-4a-]X^/1䵹pj%G&̺(.3}"-#$ 3 Y[t*$[oa_{ݯcnzU"+KȩIK,\*&7inZgK2Mh㕨Hdfr̫(3,."!"{Wۍ_ɭ+#vSݙ. \|&18nf5YYSZ%;6c? 6JFV{"N]o_@¬"9{bռI7pxWq6? ik! uq)?k7̌ӣ@ fA׻Ik"[zRy+BC,5WҟkLhvF )paJ^z,jRB.}Q _-LepWiX{CSDT/,yT)zc\<fOQZYI#+QDJ= @%kdEͼǗ'(zھ[< 썥5Yco]gy웅^k,˳|Oj#^MLVk @Ao-Hg{bY*Ą(\_W]pi"bAOMCGje"YP-Qh?vX"kɃW #]?k2߾KUY\G.Ojob+Gn6iCJl]tqv^)1*OwP_;!V"VS£mjreyǺe{xy ,*aEr+ %O?]2{.PI$T<ŋ‹)(!Ϙw)g8VEnkU!S:86(g19 l]"J }ZR4Rȅ@ T܏ qnURq5r<,Vԍ?E;']nŠRKthևO-gqt3چ W~mZg}\}w S@O&+xۙrX}$u5ۙӆ1fEap}rUL΃PQ;;3[Na#r:jȿ2q,xy T`vL]눸I>D#悜+dٔ{Uu^m;6ָ8j( 0>{s̀ ^

GeVa7l>O눕~ܝƴ (_h]2xɂp6r {YOEF'%/ͨ+p޷( H۹Sc}8K)VeҙΧ5&+'/kTOa$km?@7bLf4+3ȸڡ(@DC@A_T{ĝKxcNWh|5'2]Í/25BOy\x^b~'Y+AyNnn¶!ў;Y[WW<|Kj;'?m}ͲڼH> / }9*@HOmscr5`oZixETO/Kl s)pPzMgn.mPHE'q$vszD W ~2s_0pa%#Vs +=uuz;51ic [iSZuE?K}.xSԪBگإ1y62md`whkpdbKmo3/Hс џ]fߓ{aܗ8vH7Z 69=^Ԟ?{Wc+99ZB}/ RHYfˏʱ!D"Af휭|}J馕Lqo 'yUZ{'&2X$^c/FͫVgX {kWT/ξ⏝~TnqV7Sqx5z#jWǭq#$qJjHۭ2(te8>q,~[xSU|B&;f0VN^dZ_HAkbx?^s;~i|dgoqYO |F YnoT1ִul-P=^y/:2]o~E#}tqv1-?pjݗV 9{ᅭ6)!+#<Ê+5骿#BZK=;;15n++ƨ@% u+9ʏq$ҫ=Y*$ҿ_ChneEhZckAN#WFR"P~twڜ8uu,/7K+ÌA]$=w_n3]kx ݸS]k%/bc$Y(4mu++@\J)p* שի6w,e-Oͭp'7(ƀPwM7~p rA>:;s\QiI=ár+SOg&X#=H.~8q<&caz?IXb_,ǒ]9zzK9༵lM*>R@%MWUk< !D c|i4I4r{5(&ҵj+O$wJ(ju;lrbw[f)&nBēG(^"߯զV͙ˋ[#MuiNXu"ϕw1GH"QB!;wq.g\V9CiklV U(V3Ǐ7eڭ;zxLLp`w7EOn"h*ugOV0=bkn$sJڠ=Zc+d^%dQа񮯷ҋ%{Kp_Ez%a_6ח=] R3(byyk )5Ŝig*:&]TͬL xu}DennL}b)˭k u;Y崐^\*^{a>N"Hk5:kviGqܲfd9StM+ٟ+V(1R~`#_G[^E:u(PTN.CD}\+BU>bo.OV2SkXВ^67 p+Ũ}4 ˚cEE1F_n*6:of2V?h}2 |F?|"!09ICZk_#Co#rR"EwPQd0Qcb$,I?]VkF2#ZSr:1w4iFB:/(K/5;;ؤ4WrJGfଂC_P`7_ۦ8PJ'&e tظ5~{=C0w28w&'2X4!B֒W~-`f-mmY}nFJtCP_d5 |*AوK  :|5wfI2W%GKZp:cb "q*G`{k`T5Iˬ egIXZoyX5w׶=$ǔon#CSv^Uֺ~E\yOGQ^'ZEe%ɉ=3g0VUܐMU?OY/t21r.] ]R⢿.ڔ0^{BO+ ܮ[4SQ+na2 &p)λ*uxH3J\ii4O<i:yq1<6F@ޮmP=0*5 ?R?Mr:ۤFPrAwYPBQs!5X#$ oڟ6mʷrsZr72ˎT"YB}--]l L jk|qkH _zPۊVk5Lc4omj-ĸ˗Kyc bb w+h%td@1%} ~/dO] `ԁ#V0O"J=5ڹ8X &v4;{U^ݥ>o~sP\NvU :r[ kk?Ȭ|7@3e&L)@i=rkX_T~eZg{HOpG^'SH?S8eVF{Vlk<\#H~&gx6肰RޓW\v?mT<ޑUMϨa#5Ijt;?Y;nb2 fZСY" 4M$ R'f]?nͻ9Uɶ #Ɵ)3 ,L2 2Xgo4,$[=I+EoWiUXNDe>+u(-n-c[©f#]B^w>Dmm,[+ {fӺ;coɼ@8I2׋~31d#]GY7(c8uޞ5\Y\\h G'Ti6ݓrvu[SƥA&}$W'74T؂ q`E^ 1&8H,'¾]8HBJ묓a3NbZ}aGUOh;!nsV k\ߥ|zކFN\9tMBgibIor:7_t# >1, | du`#@I#?pծqS43ĒgYEVjO{%xncr՝FX,/#%\DjV@<q`.)Ho%TR$]M~?ln>Yaȣ܂ZGsrݙ]2v>/9CGsP9~? `)-2 lܴ^Dq#U?ט76ഉHBh8ۊOˡ$׮4,MAm(Y3WxBblW>G`oڌ+xb2FOSujWn߰9X^_*J*WZ̍ijZӍT+ tb9`UzDƠM[VW/2E$kX|kjc~7 F{!i zֱ9zv_S6׻ۼ~mn#ojCVAGՃ8ﷲv!d$zXu]tm"ăy)#L- w-V7̬N[%=>jwWQwzPՃ?0g}`I=`;Gܖ]ь)X#Hѷ ]s#E%xP:Nl)\Kor,-@_nk af3Nj{V?<-#xiaWEBmu u&5ȁ%hΠ+\r]NY9$j oHEΥ!i Bkž֋Rf kG*7&04Klpv$0KtDCǜ M_SjB%\׷Ҩ_`1pè]eHR8 Haٞ]apdm,dHXIz `T׾KLc2A uG7 iy`R,aEFMGQu/wعiHZ2]HHa_F8bˋ U`?=»h˦r mSiMz}>zrݐI[oeRdV=EYlv`xef%e#SSid wVPG-hJ>>V;Vdu{-IԴ},G-Kln,VXgCPK fk+c&xYGk" ]Y#rdX9 h*|:շ,%B{H h-m8=kyo+xֺvj3"Hc٩ᪧs~3 ZJǜ`|>ᱷV7+p(`jD`Υjݭ0]^>/($6iCt*؈t Yہ0:?"`oHp~CBQ?<\F?p+&>Y+sǔv >jS|up[<ՓsB,g{[& IjL]=-}Z_ǒmm\n]v Z<M[SpуISSS#ޗٴcc" !JPo&>Ϻ7S- HTiMgMs+W؊xu1gD7p̴-5jۯ5YKnPK{Ktl3 gsٳܷVdzN]aԳ}J$U)'X˻,4 fNZdΑiA_/1ߗG(c-g"J׈}9uo2!yO7c]Τ;淴qw!Sz^6mnv֘,ZIvS_7cd{$J "0fjٛn泟uteI*1@}Ԯw1t{1$wwl9vUWn-jD5ġ).$ڲq%߱ZdL,H ݞG饻N/HG{VkQ ʒO-[[\h]{OMA23ץ<[_t)^GbN+Z1Z׋F9rSCUS[.f $Bv!u9,W`G*,o!EQI9 nJ9qkT)Ĵ(wU1ꮋ6B搳f5"`i鯧M^$nS@a:{cw=2FHX܊$O*ޟ$*J7TS?߮gJ.le+0'wՆ_-d&/p̖Rv 'ӿS8Hrؑwc>]r6۟62 ё4ȕ+9ߩ*Uoc7'i;+=V`dvd+ua81qe9.oW1-*̴SYc}ܑR8YQ%=q3(~i/WVmU;b nr'bc_RB}O#kM-dlFy8khEkj1H*ٟJN,}u$סwr5'[Xz{(λ">GFႸ+z`<#Y'N{:g#H~bWӤ=׶a$I2e:?_C~ 6.U6ЈI\ͫ5c({jbSmfؼWyd3VP}q!E%EIYkudg'ko#12u_[ Y$ԓ`KSiJمEk$QzkOɷ ,}{BHZdmWRX5gHk5 6ڀ -^Ks2뒑)k9^ÄY4/\?5 }e"bP($Svӌ8]qRCq0:nq0حw"C,piE^mŕ}CW1,n,[_f<'ܘI"9i&7c"iDbIs.w [Hb6fFWwcKm8rW}!ѣڏ~9|}ܒ1BE7%Ԙ%>aڢr@M*>*n@tx͹^MCƿ3j{{%;f?HCb{w7'sIsl>u'[~Ngm%+m!QMdˬGnq73PJ YE<)1/)ea4xjKe/:e.OQɩQSm'TWƴ}CWyl^C/f{c6(*>H"sJ>bL+czw%o/ J$mV7vNllawX6Jy|u^nݽg"ԑ08=x$֫ :5ݪ|5pw bb mmkvvyĄJںѻ%vqːU"uܘ%-ɝ{qʦI}?Nf.EݼbdV{ ARz۲Gh% `zS>?\y3k61PV%]-u;1BR?˫egxc[j rF#aABx{u/.oSTriz_8d޷pc9Ok͛V>m6rGH<̖fF?g%>oZvq\$gZ+l @W~?*m/,KJ1ZwtR+q I !zvd~%_r+jZɌHE/@`??omn.3n@+un[xnh(FQ\Z[H^$]6k2E2E>QYc@5} ҝ<= Z} 7~mxGp(&@Hi4I%N A#$qTT&z g[ NOK }K8vilʴOV<ҫi paZևzSRHb&Q(wZ.ܗjC/{x̱ºqp|}>ki<Ӌ,`abCG&@69UŭZZ\;z;;J uy3A`*_^v-4"D@@MKaR-u46lHG-y$iLy8 ,OmPv[WT;tf*!F# %:Wfg{{EE^0}PcZ[UL 4V5uglQYuO1|ڹl8U"7K-Krڜuw Gk;E3Īm_3me 36 wEˠY)i7 i]n^I:e{Iu9&4:+]Wuݐ Q ?6cӶݸ32k"V_7`!maQvߕ:jy CAcϓ7Ŷ㬫}+ 0TBT_~ߊx`1KoC)ɉssᬦ[I FFgZw?S|u9ٖ_ewZ5Y@?FSY;Ӻ;؇bj𰨫 :svqUe]^⑯?sZPL{V/@lQVr }E:ʸy#<ċ'#`QP=8/ǽdŖi,;'W#O$mk8w&rdkJoԉo hcƦ5nT!;nx'GI D,TXVe9j V&:Ԕ؏ ӹ`SD|5:<*WDyt #Yև`* *]'wm 8uW+mpTR8$|~#UcE2GԏOMZ,"~^Kɥɣc-*?].u7 m5ZvFP)HGnaRf&{e&-@ xE}I#P7[ٲJ~g/KA*Xx;POm^Cn"IuU2X+U;RiԮ?%|h)RLD٨c>c*W>{&勜Bvbh}dpgGI_qra媕Ԑgi%&H骗mc1{&Tc2MV?ӯ¬5*d qt!e``CxQC,飳"s6ѡ7Y;\B i%y;CS؜v%l~D)yU[codwY,5zq&2c UմFk$Э{wP6i;g˕[v-ؚO*]9S.+uC<|Y^(>j? g_%#A\ jI^`zj^DZ\ksq`UH1c}iN׭Ȣm} v(8̵_qe]1̄Pƀx-j\_@"Y)J?Njߝ}2i/Z󡫑x,cGI:xɥJ< e&J` 4Sv8aLEm]!عԎ^ּ[-WY3!B;d_'ퟧ'1b~ RVسӢj䝝Mia 8H~﷽SMm|6hywAn24TW*qjSFk+5խ(*npPx\2ŔZ>Ѽx(&p g$(5$ƍ]HZl2j#1㕹jRiflϵ94Ue@ uk9noW)-FaZuHZ!C'Xƻ|>Hdž!$iR:=L35UaNDi$\v1;RkH@mXE):\g{GV`K#XfBmQr߄gٲKlίm!X?RC>VO}سy1]g9LI{-.q*'iJRB rǬ⳺H%KhM5b>+]{?$ƭ͓|ą} PK4ҧᅫxD)h,9Af^w'U QQ^_/+_?Hp9Ċh q6;Ycַ 7~CQ=w،ԯ^K_6-I!D> RvNv=Ǧxl]ĉU^~Ä;qBAg$C2-GCR܏ͨGomyY?ԅOJ]߭ΫR5$rR֡[%;ʺ,*^c ݓ.J~n8;o8> ; Ô)pYD7+Rx?6WVϜeXarXQѶJ/X^Fg C. [Ɖ*q53L?N d{Y‚G?lG5ٿwcqx3J c$&JU㾑sԾ{3; HعI񦬶23mV(G7b6b:iclܯ.O_:e0%.IdH䅐a׎]vs6[A$H;)`4w0~q=~F]XgnZpMThf,"S%ChnZZ`ĸK&cpWVhuGsca51{tR`Z(Y,X QVRZֈ몦[29+f]YX/qWoMpuC^J[$z VVVŝܴ{xDR8A#i-XVhޣu-u{])ʸʢ$CaH%`Ae&u!KP XފH_Cgmq V[ezW׷u=㸧" Տٝŝ7&%;1YBrzH?oMZF򀗐xP@=j9VB/"$ipxAMZ3g6C3L'џO'`lp\!*:yjm۫s`'mPR';6bVycfglC0@5.,[VJ)\ J}$ߘ1ɁC28@e|ɦ/fYoaYInqUI ;,2'ņrXf.IF ]ht;|Z1U>4v幆Df=0RvӋ}q|8i,Xdv?u^D>@?臩MnS|gŋ),eR}!@Eړ<]Iins\ےWoG%<՞X i8xpf6$.}*N㻳qs eu !Aܝab_H#%voomGըUBڼVZkW2(vޚgE QWr)O^n]3;UYMto ЩRجp$i0aĠ݇?gˤc6_{S~vKh5GBSm}@"Q߇o=3^lv=n=;޺,lm]e!+ua?oN{۲1=iE}5iBAIF8{l;7-Z}Ļ馤,3vob I@ұf*eZ֭ 1hO6*n\z! 7uT닋fxmf@k!sVYPKF=R0zn~N佶sxZcB ~ϧ~][1+l<[xD 8nKCOܝȐb.ʜN˲1 V;7j,I)̖p;-Avꩣ}\tb>rk:偽2!sP<oVrK96iVK[E8AN)ok$z{q!8+oN|_Vù[fUG<ܨݽmgs5hPnOkW]KHWe^_;xIqI%* (vfgFXڕ# Aݬ*L1AΘrߒ#i[[W X],R"JďV8g.q24S嶶b%X&[![ݽ'PPF~#+!z[Py庖ו{QZ[w łXIxgi/ϳ$Г}ZQv֗x޲l$9) .{yTBJDi1ںie[# %RTjnBKHpdrd6&*-IK7-d"II*8?g{˹"$66qriRHQ_om-JYb4{y_HVxݱ6=nk̑FŚV~h{~L'ne3zx3yxa#&^Kf2̒s'ڿ","h-jR.!UC[VK3i[ $ODa6?f|W ZY%巎i!6]c٫#LOkwDZ$^뜔W6ED?*^* 6jwPɄi@]DSRT"[''Fhn4hȤZvKݹk%$RGĨTm\c'Z&5?S㪞{am}v,H9}T=u%1v"'o2(~;js>;1q C<:[J|||m#I%gtmaM`_5d%I/64B rmk)es,U0pIA=e浸,lhN>Nƙi-eK}/m&@lqչ#Km8z%< ZO%Oz?qXX@@Bx?ZW:v]氶c);BO_ U7lo;>K$P=ą~TMJf\w}r-cńdM QJד9>^Hw3ɿv|S](;h.9Y+o Pz:o.AaeqX&Ü6⻨ȐhG_Ҽ#*<|cUN3?ZQ9 'm!<}CIi$8csGA^Eq!j*b5QԂloG0xk ŝAEyHW4 (5\N,m j ?˫~Sc kSSxu'pEE*6-ʌ >wb[0b~`T0V+n-W.EC[f)=ОzrU ۩+K+Ȅ#vѣP=4CG )moby;[I[ִ4ۖY\۵~`~g(<X[qi}}`9{,-S-e:b."-#/:W?%Sm{j;>\+#tJqeE?!xhG՚ ˯07w8Knƒ}֮65IgpageHTFoYi[=7WW˨={/e/KWJ^[CKwCq'E_&ڂkeQcq |ӫ+,D,cF/:j8>*A%TҔ3lӨ~NեZLgP]>ֿ$m'i4J}LP-GJEI' z ޾CgVl%t xoZ~ncqYȎekrRPa1m,E0>Z6-ZlM]H5 +,@1ows2-+!K1H}^;RqÐAu~UTP@Tjoxk r4o0݃p "֡4yJ1aꪊ< 8!b:arNm 5Y&[l<]Gy 3G#o/U20%x@ 2@yjܝ PIB7@[r67vs=Ո@֋.@Qՙo{%GZaF/Dzs۸ZZ%AX:"#QpVިV&cZUZ5johE<$;榙[Z5d`D+lԆBDͥ1Y:~?}V}"[N@mV' jQ̱$ H5 Z_. [fmq:Z+8pBPuWs"^ms<,H*ԯ[qkcs T {7][ dXa(تIz滋/Iv4.PD':7.-f(,+5dem-J(̱ҜXQ +9[2,*,uX,{yW,E:{u仧E¼i^C;W5uKh>2O,tlueS{bLj;ZۨTW j4/jGbJ V2ךUA15Y٩ ʧ]:[z7 q.iJקFKhHhejo,s3Gx}#VRIaZ6æoUjV V$zӔ$whѱܧtg!2HZJ 1|~I똽٣;72H$*ET|/~٠Mr64^Ƌ4 ;|: IUR}˜HYh Xyhm"<1Hwco#OP V?(<4) 8͞k=k;[JG2@fQLaX\M|K29.\ӫ{'V8K ]UXch͢(NMxB[_x8)֨VZT| ]Spx* kBVF)^[u[T*ϲ1uܗ&YaH"Y#Y*닛 ] IT=+ۋ,D2ɳ:m7v7g4y#UᩩHҧ)hWU{h<J7F'j|uPѶ̾;EI- Y IDFGPj[ћ{bX Gة/汱el."txI~6~OɻʷNh^*|k%YN@C' 6ȈPi{qǑ8Rb^5z'; ՏAmD%HOR~.A sBh U5r[w:\)EbE 4be0If7-[kf4Q$> gϑ7!Zq=|u6赨]I{1 m ih֢îdžw _{AZj4D N'̍1ECsJTSǒ#^Mװ%ʖF ՌW2Kyn541( cZw[ơ#,yPdڍ pdH:)g==LkBԪھ 42߸b"ckȓ&L#綝<ֈ=lAv< 9gDʡXSZ. %땸 $V!}Py~K[BZ]=9 P=~6Xu bXTb<|F!n4vpWz(-Pu5F@SJ73sYHR:8DzK|,yn67+QҠ~\EnհCB'%jU^禙L,7d~rczy/1;Pj|d&@j`|4 FG´aRԆC"haWj2$~T^巻BX):.IFbGIi!AU5cK餚 R~C''}0A$Fe?|\L F/cƞ?V;vEp} dmw [Wm1ҕ̀oE*z0>.n+}勣 =q57m$+ҒmMdbKp*2daXNM{V2OqEUbhšdy-.Q?Z9`f[LmZd)+tݣV@ P(:eqrJM%$(bzme{r˓ 3LGwD`zݭX/qZ|˥ٌȸ)&Hvѱ i4--,_nMmQ]:];H%V.^6nS!5MMEɚ3#}dp7r 8^t0)" *5= Aga ^:dPY ~׃@mп{ٱ^f jr_kNs <=@;!޲.7Ӥ3Nxm%B^)x<}'!/lc3a7)p>4Hfζ7hFÓ0nj|2$!ԩTSTL^aÊFr^B _Vp__^ J`<[My$H5W^U|Xgffnַ{0CuBv~#usWHk<jC[jom[CnMo;n2JmegsF V>msovGxik ԲLR<4^_X؉sYEMHfB HգSXغ"\_cdJ9||u\$$TDz-=+MFvyϏȩu ԅ4yW# m0(j|+ˆa)W!5c^&įDdـW'Vw WQKq#I;`;]?[ֺ ~PFh", E*EN8 v&2+\lTr zkFamm(}{ T]HfbmstSV7Ķ`]$ -ml-;%? Uu*m @!@맖&Yh`]jNSW6l@ *)O]BT#kLE4B8? ^b45i6SB,tR\ycb(9 ?)PkK]@xËBVƒU̮2hc J*SPOV#q4jjzxR,E}3F>ԇ?֛u\X\HD9.G j//lԸXb(IR]:[1seњA0EҷVvi~1SFdjN e#{P} _պ.ڛxOjʼnj%5?g$ʾ1 <-o} F1񑶍ź*q?Qy㛜^M"41);:7Zm_šp-SYHal|馒;:`IiIDb0?={0.҇ԍFe FZ Mq9xb%RO:U4 [U#Td`=էLeI}xP?Uz]yL#JxSZoee鏻ۚ?L|9ں7PܴdpT1vy]6H!0X֦~sWX̉awmI 9 Fm̂;䍤Z`JQGSXF(btcF]hX-2༈z55q=1+ 2A: Il86w]GzWבD<<4#NJ t:tP6+>r#B [Fp朌}hOAIsHP :}ā"%J5  BH`|{/7EŔ%m%K?G^<{榃[zjfù2 Aq+㨞r6%duRY8XTu'*6 -~ K[pq?GP4ǵ'Ũ~XӶ픺rJ7c<<}5]Kib)qGT%F{ErC7uՔp5F(=MR:%vG޴Myn!h>#S 66a$u:v1iJ4|t:)V{m~#mGxgۊ)Bꋘhg&ҋ1,>Qd Cv$?HM~ks+T*4+,hFATaNDqD&D77n;y7lE"XAJc_Է5?d*UF&owSB c5+֕㾕^AN+nЊj>5'KGm*t5 ҚK۩NV[ROS{%ܼkBZ5]<(57gnYU>:p{wO*?߯إ3e"bOFRr^'c]`"wsks',=U򮺲@5" kUaQ#z/GQQE:4l+xF┧~šQd>?uxh$tcܘ'Hj&Xdyqou}K{7/pxkƍzSVk<j T9|GNݜW( |h isa9W1ڛT,):M 8Pv1ƬCG$4fܤ%E 1ϣJԠZg_\ƪ6Ȩ?IxcT|jtAG& :!㮚dGVYf ,i ul}uH_ҚOtʗ vؚHw"Gȟ(ޟvmA,Qm3P:xx%zGI+W]X+DN?xтhGR)T=xd^rr LVz 廉92F4>GSs LsFwR!p躅;c9c4#4YDVݘ7X$Wlk2;reއXxP N_5VH/.{WzWZ!0(XF+R YK  hzm]C[٭j@馓es$M?3'"ƼHeq}1S~Jg$HKmAU$zomy홠T|Zټs,z%}D|4ub1&JC4/8\4k8GFs$dQO/Lc@kR6^ώU(6Fb>cMqmK7/OlZ4j2k"RhAM7SYoYXoˎlk{xݓa֣һg)o4Se |^lD l% j!(Y|$R6<ӕ3G쪳I!켷fI\ tcQ.죖%٘zI:o-x8]M<@DDXBĴI= Foq 8T^,?]{q̋'Z)xwzRK %G򨯫j AyE$^~Zz#9_~Z3 lص4,oGӳnˆ=-cӮYo.q@$B "z>: BcNKkoBF@TS3׏jKr.-QHc~͢$-uS,(wUFyt`Ns_=DMIt9> SrW QU`-'" m#ȨE][qpSWOJ Dk'WWQiYP'9mքojc >$_eV@ -әbUB]T҈Y8CQKYdS(߮WsBF}}.vaeDƩ_ E]XmD4jA͆2w#JGk4P G4|q7!ĝD|ƛ< Y~jEB^#QHCƧ\\A(F_~׏n%Z#51qKnd~5+btUnW§Iӭ1qBA'mOxY,pV|YnI%@:p+_|x (OTږ٤.B7T;`<(4FEh|/Ou!ĉbi$BTlAԺ[@|ST#Q ВYs_N?]C-/&^idƤr iG$/lGT:;.G. 9nAj*<>ݚā5:Hd; j"ܻ *|j k{ke4i`V>Z+n'ktZZ:{f_j۴gTڨw. InnJO2ᶳ!-r&f%H#ç]r۹WUu#ܨJ~cwWW)kgw%d% ^ҸǬ,Wv@`0Xo$qP}H~$^ I$- 0, 'j:Kw䔰]5nlOzPd"WQwر"|@`)u?]qGBԟPiͦ$EUzӘqnC vۮ8djV:>ұSbAM?k}< (Rž']o4 ȯ\ӱ P?i?eH*u  Z|o *졝Jc;O߸`cH>z B(ZtqPAK?HS fQuNKycv.m bhV֢XH2-T$&in.:iӄbP?ߧX1 'dr@2pHJo//)X&ZKTEwg渉C2XZWiP߯MXVcx^4>`rSxm SNwm"nAMvV79XM"(7?ᮡGА鶤`ެIn8OBۘCJp]D7G!#P@x{i'ܗ(jJN8||R4RKQnz c mZiU ~Ԑٻ"]][zԀ|O몹 ơJ*GMJo͕)z}*%) 2xh"(4wQ]C.#Ջ N$VQ5?㧺]J+{wRQOeρlK% )*]5Z^"="oUank3*HBEm<gE*4R_5w9WR<>Z3.[sQ@F>z/ow:N.rV,pD8GH\do=JXFvؒuHKt>JcdEz\XSH(]靝Fޭ4M)p'v |6Gm'G$WM&7li,Vn]ܜz4BLtHڨ{xo-[m`!qo(dxi_vЈmu5l4pVm4CyLPySOf?nCPS}1Gc~ѾYhD?*ͽBBǦ@EION{{H$uDQB`VZB{[Y+ ESӿF9T-{nȀ]jN]K Pomsq lF},RTJ8I*WAC@fx qf {J:MX1YhDetԑ,|Lߪ4v㌪RMEO )B5qhΤ2Uz{QXTf*\yj:KvXAYɭe)\)mH]0ƛ:k7% w:ktzym#쨖EEB7VK_ԣSj ~Bq 3KXFu)%H4lz]$Jk~`59 Ei4)0EQ I tљĮOA5駸Je^UR5ӛϵʹƼPQM}:uO*yjoql Jקb; pO~|kj8T㶕K ziRI;4A#(.A |4 9&ce_`9z?ݧuz+tĝ3;Uzf@+DG zb`5hKqԄeSStu_ףIW]J +mZi3?(޺Q*A+Ee#M]41s52IG@>:NH&BrbP_ E3(i*=N*-`푿QD?(*:mHߥ4[.54ȍqm%Ŵ[fN:cciiPzc,(#}?C"FһҺKRj_㮤؆۵ORm. Tol {#E25>z+Ey,W^OҐb= |.!yJi1z>~y(3J|4=ZiH.扊4`*9k!4/4CUwA4Z ON3.@+;*C0D#.S7]+_Q|<ΫGu=BSBT!tW V1LBF;ڒy=u$I II{mWdrU٤L*t_Eqgs#OZ XWm)4|"BE>: i5%MM~:FX&<LL;GM4w1+! >G QtE,1srGF {YmUS~,FMm,IU d6!q?86nNG]"vknqpXjU6sjNN5a NjR[Xe^, 6)bnq@I%А.joFpJ |ɒs)'L2"o:ВcOiQt}35y9bpI + ,cĤiwַRz5͌,cǿΣryNFܽ PA׏51\go [E[67,uCy1Ӧn3XXC\DME<+穹2wW#۹VIG>Ol#D*v' ~TNҧ |+ (kƺ2PY|dA"nG먿:U^,_=(;6KoO nu!8bIL zyT ,[o*6OW]-UOWv5Izix쥭 #1#\?kPwe語"TykŎ4UΚB{pǒ7ŽRCnNXƅ}~4FtAPt[(>I|qh| 7M(T =9u(yTxpEA=4h"uP #Ǯ)Y\W檪h4xm<٦Xf"j37‘NݫD`Rv44JVL$u]K+eG%Z<|$/t)\, )b:p, g}:ѣ\JЫ@\EioxSo-G" $O-GQwx* L+SID89ڠ-:+δ m4*(:f$JֳhGR+>:y~ACt$%w$Ѝ1":Q[IC~N'N2ƩCI%a56poFU>~:B+8)<_Hk~OD{)-==x>0@<*24*G*G&QIH8|vPb O=c144=H nt MS JipI 5 AC4p_ة"@xr"PJ&\CKkҶi'jVTuލ5"sAt-dc]NiW`7 55rkM 5]y\2-CZn*5;ge#[:w#tJc CWq l@}$QgP6w8ؠhSP=kܹ@z/yHWګa3Fqq* vMslm#N5̉OrXGRh65i4L$S]с-/$\|4(cyQјaUcC…w~K BOG]%lXW SH|5ݮ*9xW^*IAͷ^$!cU҄(EGmkms%ԃLƐ+txB*qoKEgoxm4hѠ 鹖Fp(BJԊ-{ ={ ^m] E&t7oҺTbT"鮹+5a㡑Q#鬸wnK4Ms.0i]bF^$i>]DKkZ4hѣA$&Ml@#Mr7Akx*+Z=>oM êѣ^2#u넄͈JhA]s롩Mu4DG뾑NxNޟ璊ʂBZ%hZ4v$U5_DGIPoMMqkH4/vj&hiv>t"yh5T1E6UkR>Bzl|N. B7FL1~%dIxpY;IhZP|`'11 !zT*z=pld%B;4UP q<|ЁJa阂 Q rj@>LB Il¬V+R0bfO&l47@ѣFAJid&9(FR#Q#\{ek0a+NB5V>ym}$nۉ`@FdWQq&N1VO龣f4Ega{:q* F= 4ZWt1 q"Ki(O-{km:7;z:v$'SM7k!Hc2+'6l rx(;i]]0{ƝJkUjNA,Q*~H[k H?7:kᣐ䇜{mR7ɢcNq78eG"5`PSzd,ۏD&r;r=)U M, /jO"#(DJC()翎n{vK{c E]ݨƖԡzY~ Gܖ:qUšk4hѣF4hѣF *) *׺(+_4h-5j:'\zt"y;yC(@Kť)غP!P&p z-t5Iۦ{ȯ6?U\6KWT([]!Y:&1ȸRƚ\-Q  ? : -S7"?Z4kM[4ЙI:~H|(EuoY(|4^J̃trAz׍* Z@H Rt}Jm¨wp#r~Oi",Bn|M?f5b<<4YK1UcFC+>i"ؐ@"@T\49N7dT=w.ޢ6V92~w:{mu"/;p`(Ӊ-..ᦟo1VH^|4p^&x:ZA ( [f?B;v<-ʹ2NxG-"':HO*=0-tjvbz ixJлKodu HE ReZJ:56#RL9hjҾԔ '-*o;tױ]t'MF6I!wm:1ܷh m}q'WshIE [sMz]y:F4hѣF4hѮZ@AM4J<νXQxt|?A S],F4hѠE@ 4hѣF4hѣF5+ykkZWI5_3H"h4w>~ϽBӈMuJj 4D#ktajDm$p?ð+Mb f _S66hJikMWF4hS/qjƧ]CÎLzNt*Fi}RvM#w3hM;kA˟0zFCN[zq?^tiד;.Ƨᦲr5.`?Wmu/PʫcN@K8I6c 6ڏ3LKseIAb(kx<tזB oi`i@8gr=<6wlhƧkn)a78+@>:Q;~hQ1ƠSO!72޿MvZ;ǯSI:E*dm}%I$~?:IB)MֺJ[(>k&<!a^Ɵ p,]i)Osz3)ڕ҈DR5¼C*#)` L 6\h򿨝ґr4(5;SN!)EP|Ot*$jֽv^*C'!BvN+E: r 5#jk4hѣF4hѯ |5!]F@ƀ: ]^o4;}*H鶼VE4@M4hѣF4hѣFѣF4hѣF4k Z҇kƍXt^Pk(4hѣF4hѣFtפ\b=TMyF@5;u~ہQZ%$S[hMV5 SM8Ny-CjDR\j i1MEYI^xi[F@A^Nc חp?Pۖ)cK>']eUZ҂+j7_7tIהk@(<,9iWq뇼M+S(+>5ZtImУnş׆*ƔGӘR5>_9t \}^7rzʦC :^'R6mq7sV F:j.L*O_RvsZT0;P>:@NzSsJѣF5ϸzF4hHujPnkT>u3AthѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣFxkik'Ÿx$'bZRThiIUM O]8?뮕FUyx7I3U?1)qOSFS |ƼHcF,z^VZPiY?(].l?@ Oi6P5H;UU5n(:VwU0N75|tZJ~bk\9I'0: SK.D`>^f_=t4Z4h&(Ukkn !'JLe #v6h( jUiO-Ȳ~BP:Q"+vc:F4hѣF4h\= ]H=<F4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣ\,-`Ď(+_xJ$k#(?MxYgHXB)祽|5艆FS(@wf Bs 15qЅQZ@MN0mNT; E .cvj)ѣFhѣF4hѣF4hѣF4hѣF4h@;⢠F4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣFxO^O xyPc)?IkG䓆 k.WO^QK lEu0: I3Uud"%!b*(t٬}\Sxhj"a/hʦ>?M*^֌ (WZx.4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4h:Fk FB B-Mu?h hO&:GII]е`ע%e؎xkĎU59"44hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣAF4hѣF(|^q_-GM{AF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4k9#56WR uQEF*4ThQEF*4ThQEF*4TyQ碣EG=z*֩cb^Y fOOImwFI/#.F3 ?nXC3&ܻlURZ֋_a `Xoo=\6Hm鹹 2*Ʒec]T1oIZ!50~avOݾ7P7tuWeOmoik+9ۛC+h1VlҶgc'_~ѷ*a<%"ֶ=PjK[",h6} g?X0GW>>S_Yi QwkUzm~_\.H0$&].}: ]uUdW΢ߥ=WU^~駜r{M՟cgh1SVbU 4b1*mݷ(>3a W:P=C "L4@} ~LT$L2d~KFP<OdBD98L$Q1yms;봲r7ܖuJ_{2)i-okwj{?m./=1Ԏ] cjm 힥9{k}_x&RYʮYTQs*kFzUK}y'VY94ۙ~C=RY3k1s鯶Udz1l]C%N=/#e{2uv,v]WЮOՏ[2εmX5:Y;ֺOPCUk;6̊oֻ}[:;[Y46C[u1^h8QcmkL8uOFUv2=jpoGxϩW3z_c-_kcccel~#jOzqUu,f_Q"~ˏe姾:б~Ku rOQ͸&:leVC?,YY33>:eY.`>~CgmdB,>N5\;9<7OFuWWqȾz- wne ,˿Kb.Oպ%!ެ@wzJIG>S-S~=6bI.~D88oJ׾{_g1V vnNNoR4[K3_}lv,^~z/RIOx7ED~//??O?9OsnUOdc]S=/R@*]<Tj̫+9/el#mM˟~W^S^I~`hpu*wkkOYVi[ƒA"@znYW}_aKsMF?]%k礓? U06~3Xqlθn2g7zkeՇFl*N6>MWPi_m^0Jut%F,S8BIM XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km&File written by Adobe Photoshop 5.0Adobed@    !1A" Qa2# qBRb$3C%!1AQaq"2B#rCR3S ?Ǔ#\uZ E_]F%z%ӟxU.E?ThDT-?4_Nc9KfUu=ȝ ➉+~Mna(kMލ4zՋ02U MA+6Wa]5ȦJ zA"dX]0"ʕ3>ph*XԦ52&bqKSOTnUc+r-.=J4`Mt>U$n]2ГR?}Y{ɸqR|SDG (}q/3qm?z;"6Jmuȸ| HF:Їt"1xbr`*t ZjG h0;@:V?FD1Tyv^).w'l4OQZ:\TWRDhoEՄu-(,W H)C knmb$ݗ@eJ1ҟV欀~?}n׼z|AXOR#*=YXjZ2z+ȼbc_%t0>;\CmkTaM:^6D "x3!A-9?Ss,%3L0^DGbOGf=5P/l.9,w<\Ϋ9*H-+h GxEn̹OXm81rK~i$Փ TaK(`Mt_PȨTMXNZ[b"7[o+4.:-o(=P?wV"䧳un+QbHȋ*:LTi9,RI. WݠupB+ 8\1c#X*H$Z.]T@L%VkH]o>:a[ !KwY"71*Z tBA*p٬VwP{WZFш!ECo15F@ubi5; l ^h1x%ÏcƄ \!bZcZT6|;ЍN]"VKk8若sN٢~R5fSW+k?mݰc;] -U }UxCr˧w6[d!xp `v'wR}4V,W,jDx+4:!̸@LHw"V)޹j8=rUkKnwpg]wȧҡ:Nڮ$+n vV[2Ͷ3(֟Bm=*FGmo ZElhkܭh)Esk^)z"ӠEB`TvmK|;;[ф( *w' bMM&'B*Tu=t 4P JpTU@&€ҝ4RUr:/шY4koim5*+R>?l0t $op$hŢtbuTW$t>A)G#ˋ[dvIr~iZu0!Ր\qpd$4 #n5я㫐eAxq2Mlncr*Br$( "CPSj._ry[lV2q!fFhI4>E/[mƋW%طmܸkЗ½Mɾ>o}t"\} SU4CO㡜\U\MQk Kۓfi )z)% ɱIȸ]BMJRO tbȍ:[}l߰~\*isIdP[QF1#5SM+MPIU)Vq*rFaŻ$JBح^Ajz Д^HlsH(7.ՋR5)mE9dMݺ:|I1J7P$wH@Π |tXɂlIovG5d`US_Ӱt1$] mjJmuw&R p:U[)e\۳5>4Yɑ4&2)%2w62B XH>:dܷ8ˋ[@ZZ|8rU%Y$C߷e۠R$cJ=u' ߺȮN92.>tmO@Jh ;-´Xnc1E (mKAFIU0|r^qYo17{3].'C b k XWF-)/9:Y/*cX$8?L[vuu eq]ÔY@G}BdFT$jNqȱ^M"G AS+NOHDwJFXˋS,I3%"S`8 OAnă!Lc\\=:@HmC5SV?rYW.jQ8?,V998@GBFG HPMCrny$+-H&zMtR/jE9j)[|VR5RzĚvbY/k^ԖsqƹZɈ0Iβ}]èbt3i0 4}o}ynxdq(ni\zzzB?ڔ侶>5ϮDuYVMhjQ%%7pVEx?6r~XyQcUŽ~?=YO5Q's'xaqot~oW"XsY!3VZI)ȣ] _ACuh"m-bd$Ҿ+]U2%2%$o#$jQxbS7C.< jl^k^$ -NP"'mVṉv'U86m9A"ZXeY&KhLf%%TzzK٥ TgǛs[e3##ET0*䎪47}ZP*vAr,r#=122øẖĨ+J [PRb+U[*V3&/x uF) ,e$A#{K<ԉ8fEr>EGC1HTcxaiQ"!Qʴ}VG:&:C K,3`VG;\*Ӈ݄yזYK@"0'ЈV,W%biq'P+[EP4-Y~UrG,U@ ĺq$8 &,*-'QH=u"*#bfX.F} ?(bY {^| [nIs/sGŤd.11!u{"qvmfeo!\;\Ӆ񼅿UK 83Nm٭-.!&\ לwap `YrnWL|wO5p^%3y+ˮ%l}.l>唎kcL;V'fY.24Nh>F#/yF:ۑ"?riAwM`eH]cIy\"[& +='9xZyAhvuȰT4 $o9$rp?c`B)tn$[;hqVu$T󌚩\r⍔$i`YA@9ԡ$E#Eltv$R 15í=AԜCQSroQFjI4"Ɖ{o`E,T__gAcN%nl/ӒѲTO`ꔖIUV9I dF)cR34bX*;`E:-J1ve'mʢݯnZ'"@P*FtPbp&9")C*ʭ 0*htÌ JAb/9o>|] y^F\ÉNVuC=LT\E2T˖6dz[ڡQV<Ô)~ +dSD'=REJ g;Oa ?B }M:njE c+<>6s~:[>S,d6Gqq-]~6]eؔEN7nCݹ QY:谮a|Ǽߕ&>y1v|.8leKԾN\{4 T0Wefwq,cpm>LI53TkrK }MqgڷFqgy#qŊz{i8}۶r$L͕5!Oِ^1]z_]V=WƸ.B'ʉl $ɬR9fQ/O\jZqd@#u_Ӣ NF{TlhkҺ+̄,1[-d,~ԄdIJ :e&D4(xU=AMdTkq}a&eg4FUڂIO_M *ȤomsSN $TJPT?:QY<Z3:o''`B2FIdf҆Qd@U;"Cv֪A jFDaE{=Uj~W4mSA ڊ&LW׼~t-fiӦW AflEX'hĊ0m #ym-sCm؅\}6ybGuiY7T'͗A+&#?㼙K9o;WwkotosX[-M5Vlcf6.m{MXx|35c^ ǹW?<},[p>34S´ZZsdŷcg+<k^m9ox ⼮pXnqsr5&s$A߫EZDB k_]h{L?hj\9<͖e^Ys40@ mƬatjY[G-nq謒փU9ёdqx&dEKq4)7HEQʡz=i1T(-'|wx;5b&J1VNew,k~uMgLy,>r2fLy8mS>>/wO{Wϙ{8Yk8mNi1 `[Dڡ}~yđr7? <~*O}߸fNǖ8n{(+K:̫n}<-#;;S۸$W]<} ab~^.,$Y2()BiOSJ ;.O&dB/>f!g)op-n[UAH5r qƔEY}O'ۯV[<hbR=P.CNMQ#O#=B}xj?ɼ|}w iAKz6tÌ@4os1k>$u8vNt iDA\uVxWfWU?#HqK_}Ż!wDa}x 9u/>me| գrʀ g~SY }\G^b/#~u\>p?-|ȼ[8?-x̜rnhd_ ly Buo&F٘:?:oV)>F9vP`c9aB-(UM I֍Cn!6д.18_Q >%8-bev~Pnvd 7gx݈bۅՅ1n܆[퉊!KU%xĎ\T5w@ 0~23S]xc&}خ(AC өD̜E3+mMVidPTC kAeXVq%m,@nq@6NS";#^TUng %e-%(!rwT` sww3Et#;n" ~5T ևӁsJHw0}@h~mH-nI=׍cnTK'*ń}FdBsF[,qw1)k z5OTXzLDjA~C@KlFxrBG O\5wOWqyEM6b]a,}%QAMX`RMRg3t#^+ێE rD4&LyuU);}לmxq'1݌DuIԐXP냹[1żr'Z/r6Mcuރ+is{wN7O4SQ aCEeL%K&xYڼ˸}\t5ONٝY M< qhZ ˉɰQU:ҵ\,4 K"ӳ[' vKԗN td{3D4#ЛL,̟$]"9$)i֝kFJ2;% 2+-6nJסC-T\!X?eb}[rfZ$e ݲ3B3S(?4.]%K L *ZmlUƉY.Hǵ2c+N *Ou$}iF`ҙY{Mхb4RSR.V;ݻ}!cUî-M@di$V )Q;-;ϻnܿ \:24`/fI#2^ PMv֧9%qJb5MnMfI5ʘ>¨5VJ.Hl9%pƊHL3PQ^D_UbX]UJap=}$KXK-{ v޴@ QCk٥ kJ-R*+tD|Q̖V5@!it uD>HnM}NqӮS`(9xn$Uc!U5Xp`zZQׇv_$$ Q-AEƭ 0v +\*K|Ǡ_ʚ ]˥.mD-~+_ZV8uq-),P^TՉt WVC )(j*PWARdQQ$"3b!O$Q Z?{HHxL0ZZH4Zքjث2 sǕ<M,/4MUxǦApRr ˡ_VWs~%9n'bTIfŎByPsqxutbGk꽝I菱\#LF֊<Ǩ8rF@%I$Y;ʩ"i]wB0 M!Y,n4ȖB( Jޠ5V/<q__VG;^M|-@&:昗 ,<\9G?"t_-[9#LxbJ,Ǝ.=. |}f:kJ`̙|!C @>QRU$֯v?f#1OtnO"N=];;Wjv|@[!.Ϧ`j_z~boy󭤼c!<,6_Juvܽaӡ(α .uV]ao n勬`F, I4VbPVKew6E#kGZHbP2H\DR@ ̛kfR%N()Jh2UM lέ?a(CG$"iXOݖ+_MӠqT$styİqOqlϐ>y{U`%$O쀶ܺED6(.x1 }͍#&`D2I,RZp.]Z@BъȀ7E}`ª˘n"m}dJѣUY$H_ЇF& ӏ)A>E QZUH BIST8ƕ)ThٚGUfeQTn?~:蓁djMajUOB:pTMI#H[+FRB3 tсWTfhef#5pH7nVGSh) 7TdLң;Ƞ-*Rj:%21'o%m-ä\C'MeZU]Gǯ٪1@Oyrcx_|<6x1o"Z)R/ΕҬD,ə)C.;x[,Lmw1KV= d& +* y.Cډnk;he[(׸ػwiԒ-9x?c鹾8{IwGioܑ.GHBCA<,#?od{V@ܧG?7O|wpL|gŷ 1u>$~輖w}!.><*^b\|yQi,C`MCn؇;a0K.Ħdc3ǛtGool,9SlZAF 6} cA๥fVssI"IE+Ez? 27M+v{a&E[ S3F)麅Wx>{-xnċ7:lcJA5iSCSp<~kGlj=>9y!G^m"ZFxy9$ٍB]߾`lw<. t#SWKƞOqOś$1cОĀ6 n Uz:1;8~wh$CF+֧@ .‘\%l/1YT)>(rݳ.Zl!\@tCW%v2tiq"קjjM FpaeĤDKbnф}#y[*+Z]4-~j&XL,l(ao<[~efV Ъ!u.E{Ȼ4KՖm J*E*i]1J0/-6q ymFP2 5Oc [,=@IlZU\r%hɸ$;I+f Le`Jh@mOڕ5[iCFų1qF*Ʈv>$G /I4owwUZ׮ YчR0ڭXCbQ#9EB>PzZ^ITm4FIUhٙOODʨ.R3dwc'_UV#PP%.F>#Q M6'th2L SIo(JDcH$#U}}uL" !k4YYdbhz ,[5;+LXaeHeZ]vMDƴ^uj *Q={eݏz9V91c+]7 t7 :c5OE? ֗P%aL)*zP+AMKcXfpNA-^A׹??ü6n֘CtfO(~+Vw_=x=S͜6x_q\`~2qTmCI ЍzKG*B=dՉ:nS`_6Ŗ ޣ-VyT|f#=yJ_wޭm;55An B|{8/"y}w?ߓ+x9MNh%~/ ~:Y[nF}wa2cnuh8IQ]N1pLieo^Y]v uj}cvC+k?v8"l[{M2ܷʷ|+PJAYHj@Y3quWĻI{v[.vyNʼs"YC/xc,4X"K4;kS/^tMnv@FC_)uqb)F1TʒF[!i擏A>;,!=YD hЛw#B!D3kf=:}YPky%7Erega4[|e8-{VxaJtrD|kR~EAхI&xiSc3}V$#]YD 6BbE:!"ySl" a]S餺!%$CusҴ )rwSUܬuW CPÖcIT _C}ghI3~*7щKx-d5q^\G@end1F#0(?1*&Uɏm}=r\:Œ&N`'F"p)u8GY aUE 'X=ϾcbB&@rI6Pb G$r۫xȝT7#PV69D%"<}uLbȗPJy/f=~g|ʾ+I?|_,9uUx! ~:_NvlFӘށPzxhsȷrDt+ {ofy{qa?gܯZkB`um7xH]Pv̋x|kVY.̀}N)xo>SwO~=_#y}Ny8==E ;0V׋>u = |a`ܲ'.deGG\"464 \"+nvDK*zիD*#H#%HU:SH;ү)}>̜<87Ո_QBRA5ݥ ZJ!q  _[Wsc{IqYIp[=U: {.׃{2EP_ûj$g&+߼*˹=I/2M o,;|v9-W7ЅU,^hIݼNÜncȐ#X'-Sya-;<4-䖧9ֻk''.3!,V>pU\#YUNV69{`[㷉D\H#+V OB&Qr xmŽ̊mV)_m< #AcEZt馄f Gd)wg"RucqX!∙! 4k}QPn$ՖKR~#K4Ka$ÔQAh)zzi.cCsy$2;m)oo[pӇլF̂SU+a- 3cǷwӡ4(ϽMv#U{Guo9 • PdQP:V췳_۳O0^;<n,>a8!$bzJk'4/+`zK/=/0㼳%?5|qs|m0ֶ6sEl\"4 ҴҬ\ə1@Nmȇ?G>|k?S_y$g0rv8Dl>r-r+nnnh=)^COl}C&ueUٗYZy3C-ɹ*ps^AǼd;q&3oW{=͎ue6VC̴Mʹyx^w+2zV(|ۋ=gbAy{X$JzBh"˛h"M27SwbCrjKN~,$b]t̞~\^<ɼG1Q;7g;ONk;:$q^v;L0;O(F4i'WX8PȹnR4f+¾ʼż5LoW7qr~z6 uRC%ZEc?nݕ˲/9L|wo2 u>;Y{xg{ ?gEO5C q wY%A"bTl\Ch։8 gm9GŹ̤q?3arȈVW\Yo6@? k>ؼ3ڎ_X;/?/sWmf2-Td]7uV~2Ԋ.\[#ތ]jNJ?x-~ܻy$]^9^ n侶gHy<δ3{nE ƀ[X9ܲB> J>=y [ nʜr9YHW?!̲D؋X^II F2-My[_M m<]M8v\&Fp|J/=?ll{nx!#x;0\.85'-@.nX Ns@Nzȿe\ IqE7\uckH&E9Uis }K;Yd.]q{K' Ӭ4&ݝGGjVױ9p1v/zɞdR^\pnl СGԷŠ ^_gl q8VX1֗kheZjvӑs,YVl@JA-\'m>f_[fc_!y.?1RU\[*E'ip V-w |agؿ#sr>Re&dKǞUխpVPDUp< S\b<9$ybvHB{FNW/jڮL6Hip|^ϵ)~eh_gdX汗ZI c 2(iO?bDu12mdDmTx #x UT.Rh(Qzf[13Bv܉$'6~ۃ%ݳƳ_^R o 6X۪}f\=_q vN(/r~S&^ xr eE$ c-wY{B"L|}[rp@mxּ7㛻<7X_Al^_ #LjFDI>1ZNNכA"sQ|{%E\;W#> ̜$˘RD&NբՂ˳øB囱2=] #v]~G?{oI͘>cv]A7(#:w2TxY@4γeBK08kj,L_ƹqI3\g&y+<C #?%nMpƚo?>P5ͳ\ q;)Bb~#?QAS5n;`^frD|X-R<Y}lL|sMVB$ԝF } oojܛ R7z u:4 D/T+ۺ{`ݸ7:JM]R0/4%w-iU)3d̑f*81NK1p8 {#T"שmԔ5h+Շ7>;c9m5#[A*]=F QM7&cRV]S.0y}+y/&*[)۩ ,т=:kj#"I'-[Y~kXƷ6V<>^|"{7mfRX4M>qGi/Tw<1}X] _K^˒ eyTܧ-k͟+^G]G")]Ck%wGC_]]ϧA9#⻒I$ω[cgc/$2/9EnR̯Ցȃ Z>7J_ C ʳ9.{ı9'yYrXCouqg$6xRkqҜܷgRUm}yt,<8SJ}J`GR,Nӡ:یQU訽I.mV T/K1mQFLuQz}{{u|s39FNvIbaH*Z lH![> \d.uO +ym8s_r3e] k[th, j!nP֎V_oӷx\:)gV+IV[X`)׺.RAԮtEz׸o|>OAۏsnn /8| JOȏݪ^#d$$AdN/7( f=Ko=9>=/|W)+Zh"IʼnQ2ĊڻL)9=XiE ,[sTO?xIn"2jYQTp7\ ;{gyi=fV r/.%C\|cq#v&D;RDy[3nr<5ˬ|weIIX(0El F]wkeHl h5?~@Zoz>6)m2Il4ߋ'A^(ݶǻi^\Eue5ܶ<v/?~M] LL5EB枚n&8epx|NxE~\伇93NacH \/xh]VEVw@HnGP@ JzkA.~T^:mh9p",uu%SxLVwc,YC#WgTV㫉s 3/-;Lb/hJ)ROFC'T" NyV';]{2Jʴt ]HJև8 FG' ƈ(O}5#EJdmV=i롓RR]z8qn-@ƧtEY!"Oix*07ldJ hdЪKorpgx3/ u&:)JWuޓD> 5: i;hB jP"5YW03RVudBIE 2Gjl\%|39MW 4Jr4&ġrimE{"9cTRX]V5Ɂ,=.UǼM8WMfg`lD2u2*-E(AEU;!)]rF\BUi#CzVY{BM>GJŽ_bPM\3,{cw&8\s~+3O!!ȯr/"+15E-}\W wL|ׄҺ~FiİDdCPzcb ;ŀq aoI;u ׫ſjQN){qٛ! i r(м-Wp*~ZYu xq\ Pe6X~zm`}&ω hHl^cI<q8 Ϭ7Q; 񪓼er1q{rKqbz+)To@ MF?sԼ TʵĜW龢+Kn"AXDjCMfJkm.&HC{-wvG=:ʾHx-Р5T|ƒ55A* gwOC0$OšW*Dv$Z)X* Bhk\6kLT'@ERFj!1_openuniverse-1.0beta3.1.orig/textures/cyclo.jpg0000644000175000017500000003561707116560464021544 0ustar paulliupaulliuJFIF%%DPhotoshop 3.08BIM% % 8BIM x8BIM8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIM ppPJFIFHHAdobed            pp"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?ǽ<鷿ޓ%2J_{xo2I)}~$ޖ$?z[LJ_{xo2I)}c߽M7|Jdn)I$ϩSůu ҷTѻx_ai}gDMJB"ɧ}F}[Cu~~W;kW*>Wu]?myՎo׷O0?puatŝ#ۭvzfceq~+~E˞O17?,1^;c\:u}')s+nv8mn1(&jFN \=?MxE+fSSheNh-p~VfoY9U0NGMss7~) ] xx/ϳ 7cK\]$﵂i.g:u/E[H Ϣ;HK?+S[K98͒jOw|z(-LHXRv}6Bdm?7|Jdn)}^GߘӚ/}䝸z~vUUv]332kC2zUX6A!j'>1?QgRW CN6-nx'_m]sk%h=#.Քä5 ťf6#[@7f?_#Vڨi&'kݷkk]gMf%l.ak@t'[oVtUͭk,*ߘͿ^1*TN\2>Q}cE2mƸYMgck}x#~.uwc][3+';mu*XK[2p"mͶw>gتs}X]e\n6zƶYke5Uq!.+L| zq^Mxcg[ʣ q~ϹC*}>rE[+u 3EC斈OM3$Ç4C56}BH490H{=GG讹p5mw.F}bf{6^92pdǖP|CuGXfb;i8Tf?f/[qk$H`tΓsi}8F&X[oC ]~x"Mly)޺?7|Jd|l,a\[]U'tQH?Yr%̜և~wV7.DDb.Ff:/LǓ]Tac<o]oʇ־SGRwIͭNU[ }-b18Ɓ] pw7[aZ=³"sNO֙~Fuu<61/2Cniyf=[?EVAsUniu?E5 }7ٱY̜\ΔߔW7dƱ1-: KhZgS6U_ޡ';7sEhz( (Hp'Qf65qc Ⱦymo, WOLXv/BAnc[K߯W?V:K7u)|b323]ߘ7憲mLcCXW[[Vߡ[P ̋ɖ5'd,>{I.aHY#3ak֍^tʼn>t,--KbŦl̀`KHƗ8w +.ZWWIkAK|/k=k?~hj1ey.ȱ56u3Yg,Hk}~ǯu}ۿmv+vV]\e2P2ճF"oC_@r,'$ /,Skk1vH8nؼ?}q+8?5IslmZ[e~{d65O ^Zs=5v< a5I!4 '%xƏG5 6tnY_QqO.+_TztLֲqZ[|^C@υ~`nO9Yٌ-7~L\v[лw[;\lf6uhO~6OwsG@Q~c;^Cia=wnK;dTQÚVr6r*ojAz]VMQ~/mW~j}OgQl-{˝g=4@qQ61" }+7V \l#foN?ծ~sIsڳw{) "SM]u+o8.3Zgׇ?Ez8͏wPh-e.)kgNϦ߈LMl?7|Jdn)Kꨫu\29ny q/ѿ# g bv/+rm#X15.V^74W(zW_EUa~ok3s?L;1׏`b 9q!QtC}UX˿`[NP5y3Uc*IJ7t!pǸ *qe"t׵Ahf]',1' /&Ykn׌z.<>]EFɇ ٗoDZ?rJY$Kct)d-$O~?OܒI>?rJY;>~!-'c쒟8BIM XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)KmAdobed@         !1AQђSs4 "#aq2B3RCb!1AQa"q2BR#3 ?$x}+@"Gs>x=ψ$|>#@"Gs>x=ψ$|>#@"Gs>x=ψ$|>#@"Gs>4yWSi"CM{IY>SE k]6jۊ_rҷ T!,IVz6zP#2'jZK$2|:NW1ے*L+w#nHp > EѪu5bd?1ҠYpWtރ:`ڗƎ(nrR&Ӝ,;B-^\;pX m/-]ͼݤ8U.Es8ԥ!)bGMZCNĪU5YY77]p[ g*UPR $ Pkz" 'a:gj/ wO *J*%gl~({VMqnNB JR2%e_rs3ĿZ3BI4N(j:kh]T*o;5pxYF z mR))G+:Q{=`G>}@ӠYpWt-"ݕ02nL?6Ǿ^a#ҸHܑv@w(HYًۖe9ߙ3 wWN ``fa28kR\4($u4FIMX\br.ὸܗuu5v=ei!,A!H@ԝ\V#HybجVC_eaqe)Jzl GTZǎyZ#yyaak&H )HŸ jt']ȂN湕~y¾e-pv[qlkrMmjSn;>Tj n@>Rפvr_y݌O}-P]pXXC}KU@ځfmNGyJ%kFee/nX; Ot y#8˼ -yݝwmWI۬eI*4 V,:Z㫫FlK7Z#Swi*;KdjכԶaq~ze}W!& }DFԠYpWtT-s_-`[dJļHHPK -@6[b}z*~_j3gp֛`T8c{-TC'jF(G[+nR~*}q˂iP' ){Dkt(ԭOzk$eqkjPKciHJ *(9ע Iͽ(RU;"ݢidR$7! im)PXP%=kٮ|Oݟ)3d"[osnour{JH'fǖOM^wsxPϚ]k wx^]O>X!c@ښhMAU2tGHaJ}ǖ~McYFnf㩲 S_vސt%rMц BU%J &Mk*Y'vDzA`mliidlu ea+Jb޲Ce;St4HmȈ[H+BY=:jJв|*m^;ʒP)#LT׿mfor:q۬,{1W&3U`_lRim .WrXUkC"uvf1=?v%p.0YC#kt\tŠ?_Ia]wsѽQ97fK\ݵut§^(+S߻t9VX09GxV`"Hu{-(JRT iW%]R%cX֔UY]Yp=E;M\(^df(+pnSpN sv,{~crq֝9JbqpПJOu=4](ۓ>LZ; *G@}z:mJuOKQ@4*(PC8Foc.2u^:ä$Tzրv{vv/0\Wq^g7ٲU/mJK?=EnmY3 ͕=[s7*Ɂ5]% *-)5;6%@PO^+T9ȿwbZ*ʔIQu$MuנgTI.;I-]&mO$oxn+ROH_o”o;&':Յ施ݿ"78g+rƘ.8N.Qph OQz'-HX`ڈąڥE-$RW-%JV6Tq͹usZ4̇l4f㨭q;;RVT17F߻AyM6ySk-fJ{t"-$ JڶTec/r-U^;}4ɞcr-Yq+\.]SlGAmS52'! ~ mdWN[㭷?rÓm1qK2ȅdѾթIUDÐ1xkd,rȭ^q = زˀɏ :wu{}/MM+Z99kh:Ҡf\dv;~#*X\u i\ h&Ah?oݗay|C;\wLI :6z+),d8 \?j..yyLv[ yUreNViZjDZUzB.\5oŐ9e~vFQ{c fDW;#bT; i@SPhi1/EP7WC+*HD!FJjTzR"G tUu6[2 7bjJ{NdHDžfQ:r˚_4䛋F"2)6{]j6b4v 1E@}:}EChpOhҠYpWt+6.v#% FdEx+ ni[npIYPI'aYtuy#?|KO(HlQ7+:M{Hծf7OSMNm9}t_#H_+\LSZbNiƞᡍSped*ƿ<{Iq_j;KA<=a[VW;cwd6(()JzI%R<-IyN|\ r?'4^.e>'#)(ZҀӧJ:>bdxk3{pµM %`ːV*u"u$ش9 oP.̛)\",( JH&fWv䒕IQɓ3qɰmV{zʞb\[zڪJT!EWD$^q7˯sa]|"qhpຝXrjRr.ʋbLS{G>}@ӠYpWt `^|IxU&B@f-Hke)!jGhw:'rh;6VzNncYpSrT POC-~$ݾOPBCMK[Ba(6-Tqv˅Y+qxN!ݎ/SkÝi邝Mim~BY[t+$g$[v{v!B+w/(ݣRk!]Ĝ_hdy`׼kڋ.g)`CKqN*4Ji@ zZ_&ٹZs5vȖ̃Lsۄu] B͏ꄔB&{BJpfYR;b5{|nI.Ӈ\Eoa%a * 6cFCe~UB%>sŶ\/ҦAqiYg,߇cۑmM(o`5IŅe ^rj),4& }DFԠYpWt h >A)S]_y URnDzǒ{rPߍ!|JR(P.B%XZQ W&9Ogxn_yaxT :ɒVFEZȎ+_㧭m܎2g⛤"ܺx\uL+îkc%W^+[D;%s6ٚOLgZxK׮j6A@ERѠ?ՠYpWt h@4 h@hpOh֠xa+O O@Gs>xy!τ|>O@Gs>xy!τ|>O@Gs>xy!τ|>O@Gs>4x́py܍ސk2 Ww[IMVuz+5yV*m_)}Vw7CC^#ʃ𛭕R!RJmq[APjc.-J#MIL]Mo"t? сݴWƺ̟s-jzL۟mŶ5?>c}rJyXYRD¼\#fA >>:% $0PAld˾E@7蒟YP#ky N4- 'ku^W Xlf&I>QςHnc)3չ!#J.}˷׆Y}'kV1+~KʖT n w5U[]@eIIrpZok.wK}o*2 I6YG>YΰF:?= l "}Lin֤U׍XIӰ9&Ylz/El8k}mw;Z04Ak򞒐R$V?/Z}lyݮ奏{ϨvW:4Cpk^,$I>׹DIMvg̩vuuCONݿD,@l$m-?GoIJƂw BWfWk:g(<.6{yeP3g܇:\V]6\Ͻߚ[g묯]M.VCPZwm7~^ݣ۳8W-.ݓ/ hX/~wY+&Z7~0>6vcQ:jnL{U11Uv =^۽5%6q+eR샩mgֆ[25=*5uZx}Ms)/#e)sscL=A o%w+YldXsA eA#<& ʲtƫg}V1JzCS'l~0c,m VRq Xwls2杻3r:Yz+ vc]p:۱%?Q.]:vmvHoL@ɳ%ۜ K<?vð%5ey-usXxpkWzY[̻G}+Z?,~Xa[jt{\ q iW&eYS*Ǯ?w'/R\wfSkqY[D\eM 3!%[F5 i}u\܍o{?WbmokkA$XWpuCOr3q:n$5`>4Us^.sʯMEC~{WnE9m CX*nήM;) cX,u?S6eFC^ JIs^u1AyXۅW{K}c=G2]AX]rs-ַx/$E8םw2=09<:;qYsKvְkC-bF5bΰx/p as趺*Ƚ_+iťmvJ )鶚{mulmp7zc+[E[>իr=3 p .?lcޫX1,;Imoq}FYIO)iaf[$5v'J+,hn߱o֢eOqp IWP?SXZŹπq#et!ts ?br̋o"7zl}v>`%*5zlGٮ2jo9Oa]KiPQIts55RSq1NulKF37eWn~@s,-`yo[eW2jǣeϪX~7 Tkr^խc\`Ĕ4WHh.h0]йM-kZ 5Ǻp_A[럡v]KmQnNx zZed:kߧoDV1H8Z6W5ޖ#8g~% 9tt܍[T4$B7z^;R^Ic襣%\˙`~K\Q^6$"|;| Cj}o57IO쭖%ve9n5mi$hd<::|?Aϲy$Sb}bM}>ֽ[06n]]]8QH]ܷֆ7Q{N]N+ -UQeȮE6cc:zuUZꎻ\ޥp,c\pxO$ #qnCg"ݎ٩l6kUuwt͵q{,ooheط>WLeXkּ8?[I՛wMn;2/gY[nRSpsA5ธmk;mrTm2  ?ͽݳo3s*ʲkm0]~8nolIL,Ӹ9Zyߣy?rV7uHySma7rmDt)!??Y, Ɲ~R?i`%Iru{@ 7RS)#Iqx} 5 9SL%@RS_̚N\W Aou<#?NƱk\v߷ݮWo;1F@ѣRRvn"tO &6s-#rYTdFS+djHKheeɬ9CA_I)+tlp7 a-s\^fGI_F/1i̥2?ZZWE9t̊nkIs}OcZJf̆cpD?V~.;Ko1FLTtc?Um=>v?K)úwLGENWt _IW}'Mͅ}\  '$sm:wDF۽ޅ,'M);ƍt N}\ieN8BIMICC_PROFILEADBEmntrGRAYXYZ  ;4acspMSFTnone-ADBEcprt$descqwtptXbkptlkTRCtext(c) 1999 Adobe Systems Inc.descGrayscale - Gamma 2,2XYZ QXYZ curv3AdobedC  ^ !1AQaq"2B#Rb3r$ђCS4%s ?*I#]yk{F5 R1ԫxIiDbs1UC"s驠=EH eonԂ!;U@|5-՝=;Hn#t=O]~8E7142] hTx<"6Sj4Փ4,_ n QQB;Tn5qDAB]AP}6Z@H{u]wۙZ+|HE"꧟Iwi1xZfn:. *]ʊ$u%kt1qs=PsNꥬlU^T襍:Zl SJkclakxԅøP)&;kXR73zNk*St;} oA[rK~~'RF^:pUMAY 鴤UXׯ婷Xu7,KݐPm0P+)/Ȭ :n?QQ_1'SUO_E pI^OjHY6JEDK;0z;-1yzU,;swTEpWi7x̸Y3|{'~Dz;+.Ggq$vXجrp{<{>u "NAql/urq2DAb knxr|T MGQWf"T^2+؞0;ңғ E\{ .c!$ Sd zMr#ғq'6p /RZZ^D/~GMT$5')fE;c;Q+kQ#R-oPG0Y >x4@KDrӱP42@W6_^I ?/,ƪY`TP ip .g7kD+$$ʸuEٿldF(洛aWǾ9qIn$OTWkxٶ_5a=ZSwwq5Gg21,<φjH(WPWh'Xm-,>FEaBFޝҺqoq>^*ȣ km$2( (N=:-ƽss4zp5X*|TwnY-@3WH:V_\udsҕwp O13~WtDy+BB $MqV}Պ 3nbESJ6,W=rhVX!}zy u[2O-HXN#Z~뮱Z;$e CZI$gЭQv~9}.>v**Jַ*VJJ | ?mQ}%{;d08ʽ@ƿ[EI R«#+UA'Tw6VWE;|ƹZ&Am|^;6W{ * ? zZAQAaoH[J#]$ #mG8cx25|_u~GRZD=*:0[P)k)cS6NJ=F٭#"VY\G]; r|LO\,s2IDB|4.#a,e Ej:tClB%T|#wKe"֞5𮭱i=b{$>@x 8谜38Y/N#G5bFU ҧænÌ<8}DB-<P4F=XzWJx9Wy7K5鉚ZPFSf,vVB]Gn7Xd^5#JPw ?f8m-|B#qj?LՖ Ȗ +Q"vV^-0i(-"T1`P+jYf8/&4R/tGӼW.H3[#PB:"@F?0y0ECDVkOWX-".@ťV(h~Z4=vF*~UՌwj!D 'P^F8mFr~)e3]Uk;jdz@i livUni𦮣XEe`*]N޾u?VKk=h‚Bv?|5'߮J+| lG(p2O5k"3+%@&5^/iTzvjZmqߥؾ#2MEN@IiYaPm@^^ Zt> lZsYGH T >`֘lE\;9VTLn6Ռ^C, 2(*߳ۛ؆J-,`[X-w8bZ-:nNWIcوL35(h*F}SK\d{C2uutd~o?6gTI""C C8xrR<>>I!tRêozVM"7ZyfYyP =Uegun>"UHwhԓ@+O<1Ϝd"jX P:^圏d,RV98#wS ilf2vxy5C)aVYJ/=~*H\0bA\EለquH.M@k֌2 e0 1HRt+8sX%Z:} T~:ZGWӞ/KPSպ[Lڂ(:v˿sa㓬mR9AMOx>QCA^]2.*޻W@+79ǹD $?I{k'to>bx7SKeV'r5 =58=iedfD7aZ۳ZcZ1=Iվ?'2ܘ=(՗ԂJᨓdnWymrc |;h1'(m G V(HNMo#a)DVHaYSk; mV'Yd$BADv.F)P(|@|70Ǖ [DKZ0ZugK"[ Zn^Rswe-yot>X)i_Kk7qz"PC-9aSE g |R G:rK!Gj*5P q8Mۧr(+ܫ ) гN"2(Uj2R0j>:+}} jYRQY=4Ƕ|Ct WLkҤVY@dVXHc4AN׌UͅBU'y)nnXwJjqMr./M>f'Rf0(MN6#zaki; 6z ||Ohm2ێLbAb{W\}ŹRHOQAc􎣶gp[)i NvKi(ReOJd}y BdG=)d5U|4V.nLa?Uv.7}%ߡ$1aOQ7Cv rAOҺ f%_ ,wSׄnIF1=_c ⵎQhT0qhEmb*vfw=4B-m+UP~UnccO#OhzSI"ьaā{Sq#70R7FᩗV(-nYWЄRk2[,ŽVNETAO1[N.V&塼?{YaZ4qBʣiWy)ŷӐY?P~co7w3F1@Ќd`%p I(H5"ӕ[\qUJuDvjJ+dm+2'mВ%[ƽF|h̡g65B7n?3i6[^dV xĂE2΂`@|MVI;zq,+ 1(àe՟A%v&U<|om YZ7CU_QS5\}pH~Y4=MH^ZC7w/#ħJ碃hJuڼY{i$b9IV^P1є 4ge`]SRFmhu>铌5{GTjT|1-Az3kiSL#RF{P8/|]ҳB+ /y.{ q;ᇍzW᢯l\0-bo.[Րzadn ?5cccʵь M}|C|,)Y`; 'CB}g/'е$=(?AEL}&4[y?ZZQqdIPB+ :ʝ]w =PAvT1Z|5!4PWyڮkJwG,-cV%"faNt>h&k3$3DGYP@twѽJmI4v$hOM8oA3v գ+m=v]r+[|`C"40%u`Zv vےiH[ztx3\rLK/VFc|wN ouwgzݹWwgkwx 9-0WO +bc@:]j?lR὾k,Yc#0ԌV8e`6.⻁ |[1[n[$ UBZvkv{yAE`Ɵڋ%o\?Y$ZzI=k Ŏ>6{ynR]Qhߍܶp )z3E g Pn4;5^1yXex׵צp|҉ -+k={iApBN@5# \,f ;r2[]٤B,qNϏ0y\}H YEBt`A~-7r~7ɯ`Is>3w4Fз4?4sLQ@][=D3ݏZ\-.ʋ梽<Ӌڕm3 'Ibd`xAOV[N\̂ud'_وʹa֚_JQb;~O=yk6O1 ZWʺK91,E a"S,SC]1qלÜ]r$^$nRF' <}ݵ@6p ;k?pLi&G*T~u_PrlB謰I+2׿|r+k[`vliI@Ar_.v8LP7qu3(䪫4KFE!(or٭lƤM$h_`*iAۮW|+qgz}Ei ց(*<`RH4 "q1.O)0S*1eiA5c$dSu^A4բGW!]iԏ}r,ef+& /A|EuI>1 {eB6Nq)l&p}NCۿ-09ߺsds-ݜq}!Ă8C )>I%ݠUW#'І(ȢOY`-d-Wiކ59aAMPuBzү'ɭ&+xMOis60[Y j@&Wְ"q K07 {cx"Y#; M'$c4BKrƪߚ+;d!k{C@p!`@(buGъ{'8;Ð,:6ݲ5صIY{V8Vqoo)qPDFбX*wX-,I $jV&Y.`fr vF?@vܜũOVHd^R\uokƬBc$ݺhylm"Y䑕U;lio_;Ph Ӧ}%IC(A VmyfSsnqq Th jȬG|d27.4:]>G^>%ɋ\axh&ȇ*p݋m1Z\/ tw>åuCk-jR%~ GqB% oU}rE%Ɵ:un`j+a5] A,rqBHJE[p<mRa5FU?E<E-O|ȥVwV {/>Z/m$Qא{B#8_rlr*TB+˗{|Ù2̥-ƳJC qҨI=$)@Q3v4 OIcel㸲gp{ZZg4sw)<{aW㭣Xk_V!fZ0B[5k,_-W7ۼ[w#mu s]\)D[Mp+]lp99s2Bs]ߺsk35*wV*=Ȱ?j/^Cض (6+.]I} 26Dɠ;:Z|5SN7,qn `gO4XenqmmVn hG-fv6Q}?w NvIw#zo7W@<ӓ${ L?kXT(Nկ{)9.p;bx]IP-o t,yo{3IP&oMRQY?O/#@.jy 7j ]t%}kFGy#tȍ(HۈLsm ʑQ0Z='MP**jI7y1SZTo9yI1_|>KI) H+kC={?nv.75dK9N*+!WY>&ggVW%yv_Lu琸5ߡdZ/:/PE;0饽Ârlm.ay-vH`́|Ս 8새_3<>ԋ\Eun.RX-zA~ъ7bEss-5ZF ?@\^q,N>Qw-҂:9#rl+ r2v{Cxov]Πʧ_KI{bIb\dq[QkDnƚBrV)ΞKՖ9S7#lInZhݬ0`8U&CWI jtLֶv𳏻uR\tNAUIb1&fBc߮ޚij?-'\c.Hb]h&VKrv};my#㣯wߘc}s~EV˂na,3L= iAno\pn;y'wĽPAZjaW.(,sFۼLר˸I #[^}X܇L,mkY]cQ+4O_,vw:z:k$KE^5(ї>Kfct rH=Ў;Osvk Ȥ TVBH4Л2{ k mɶxV^enfbIc33+ܓh0|7!]J ^EJcꀟ#]Xp,K\}ݟHX}4+>O~)&ey8V(a.x=be|~Jz_:蟓vG%ZPF1Xv8JY r@*-Iy!#Ƃ>IXcQ$鵈\]ŕKIcUBN#l|wNzO_Г^32,3?suxrPqBC5ΫFw۞Uu>z s'lQq{m5f/?c{UQ& vJ({I?];w߹wKmN Yie>_k Y3i8 lIadjWGf ps"L2`g$nk^S{ɶk7"Ovi&rXT[hO:C u-(hj\sx;/Lذ1Uc!Ƿ@ђc][OJF i ePۤA 0!.³wAkXTH*uo=ifyn.%"֢k]yXNr,7t\+w,>h/o9`ѻ74 y!ݸk2..7b(wOֺ7?%wTQP_㦷"Ⱁ_qoփ촆 ~Pԫbr=FuRMGQ%5Ŧ`7{v N3@VcWPhu(Q֦\)usJ+{[TejþE:k=f31B9.CCPzS53C- \B[ivBdOKRBnn]IvUb/{UA@'s^z՞{}o/kr|S7&} ?\hzw?\q!,22g]r_*kx6(~1`)FѦ].?&M#300mbTu諌c{YB ˌp,2RzoX5_d)ܘS 2ǰ2ާQXTbZ$Yn_tiRX=N14WAU+)*i{dvꑴ̀Pi?kpA3qԓ^V*kqE ihߠ3r-Vu%x7)uO=w2ZXܼK-d]?S|75/jg5ƹy$*Ӷ Ok5r\Z,KVM`לNM9q%Hnw$ѩ]h+E1Zf{1UmpʪG'mB PӜ@}96ө=J~05Y$17Gӯ{r.<ϓ.>ɝr?i̟J ᳋ju~/R YvLH:W+4ф ȭVQŕ!ij%`KS,__&=h8"a⅀' CK,=#M§֑+_Oox,a;h?Q~I6;'`h!Q1#kKi=@r^q֌"nז:(rʸ sf{ևa{i-Y =ͯ>a&0\epsː;B2((<:j$=bsnNAR嚵'êSJ YTY-!!f+~).F ;ԿacMc1[fB6S\Y"3۸-ǩJZSh?cSz2oV@{+SʍX%Hv@A im,.fZ:Ph.1X/CsME륏5L]V27t#)emau[,ysI+_O_ Ƹ[<U&z`g#7SFҬz=7)}gxחWW%Lij}jOQxƏhl>Z$Ynrs pE,raռ?Fω4We ĹU_dZSҚWya&5hJ>+S9_Ho5$A@ ӿMs sfxbI:Y"yHg'f>D;m=!L`Y.A#Kxm+{ٙ.ػD<_rx;phy)%"N6ƺYZ#r\:YSRlEؖKL)T:Ԛ:+t!7(Lrߨ4-U墌-}Rd٨1,Td&~tk"QZ|AhM6$^쁺K;-up[u3}S䎔4-[KL4޻@?q{oee|6W9 Zc7%`N29EoDk{j+*oO:&/[{iw4cbi@C"u{Gȯc7g`'xڜ]ۯ몎g1)Ƒ.[kQA"Y}b=t6ln= /Ơo&E<ӡQxnVd|7˺S' U!WP -=ƴ:A$f]Vt[V-{~GLKknUu+N!|Oa\`qSq+) .V;%7BNLdxgprB U*{yL+]Ôs!"iiMq []2;y> qnJ$Y.kS#+Vj%b-v 9M@:zֽ*vy $2eL.jȠ<:J62_ iɱo/ E(:TPt:4Ɔ%Lwzxп*k,ժ hG{JUT_$o`owZiRfyyqz|4a*4(5: K^i(-z)r^d14oQ!9,y $wy?ZSkInZQG#fow&%4}W u5/I5̱d}@ftndZWFr\nPR~}. Z$#kP,{ZCyw4:2(fh,XČو=@ddZq, uc N낺\SJ7Fz[$QFEىh'-c^r1d) *52IͰ}ʅ]YEiZ 4=KMcW)6WETl $¹f95Ò~oi]:j.wis<ףaT?rLOw#%dn8!.x 4m%Y"z@LµUe奦%f~e4)іn$wREE+ek73%\*)Jö|"Gt71ž5YwP=;p?mr4f8佱 }V1&uvZu{r܇]d QHUż*ln?p=:y+Z`G7K ;˦ceLV2 |ԻŤ{e ˹|^C]Ptҷʙ z u *Mi{H64Q<M]u5vΖ;: ~4 ‰"ֶ~NXZkR]kqqzlZzQM0)=a-ɦkML׮kÜ'HY6At>D+ܛ> MƧU4Ex$J%Ge,)ay ue2( {,zw I6>s_#(zxЗ!swv&9l|]C.n*~]+sy"]I#. NY]]h*n hTHŲBUd(TD2o6wWYhfXI7 Ѳ 2 |ǗU1[ e vRJtorYI-kvoϦog!Si{wl$-ЍΌ|C3ɺ{Yq.Cb6UH/_cdͪQV5n"<6jzxc5Weeyu7mȄjK>R$h v 5dٯ!YR6jokS b>"L3\As+DFR(Ox+r%t-c`d ,%]|W9.OSpjT4粝/+ 3fKutAkyI=4m,ԞLoNe`zkW. WE*WU6CRW 4%IExAl/id#{-2,>5Yi೑)w&UF;0Mhw6"ܨ~nUY_͔@Y]I_Ϟ9]3Y.(3);0Tq[w^4f3ѥ'Δ:sGOZGNu0,z+9xd[hK: \uFkkȄ^2OB{ROf$搸||4j@kk][HDc~ut&O^p!@TwR'K엲o3J/,=ͣH7zq%GpP)__we>yRUIeښ(nBxN|^;ݷ)=U4<OӛG_{-.OMϾedz9,Vk<fm孧d8ognd'KS+Sq5El63z>iO,W G cgUnܨ6@+i?|Yw&^!#ȭ(2Z O r3[vdٚf;V~-nZ׷HD@NH4ni3E[ɻq˹yWw~'\}e Z: uTEZA$+dŧ3FZ(#4Zc TFҕB;(O]9o5Kt Fk+%+,{~`cU٘,ja?Z7O4J!0hAz ±(Ipa]zNᆡ_&ŗ4 |{- ;T bKsۡ כm^2}rGcoҹ6+FF]G!␊T4(*$dKv֦Z!4F@2FĆO1M>@erSy-Bhs:Wz8ԽOݗUEw,Q&DjBhXJST{aiFe ԳBOZ/ŭ`um!S'_? o'``% Wc N^p]B0P`ںL\eݦCso5Ը$G%>'xt7]ϐ&$Kh??r~;}&rқ* 1-s.jMh+WiۇBn͛bHܤP]1=s35wƓAh4juc_-=8gYy.궕{_vՇY/[Ə$DhGVîx{6䜛7[7vS($Wᆟpz-)Z} $2-Vsym %f$tbWKcEZt l5̬HQNj ȭB#Cf]fK1{D b֪O׵A?#exZdPmz,I4&ǹfQ>Z |u³b^u={1kvC{жSfiR5vAQ&y0 z! D ^|s!(vcՈH5X>}b=֕Yhcb mqT0C## +* 5FZZ.[y-(BVGzu5MH^[K$A$%V>=5;8RHX q &_"7MZI-#6>\36@j2tW8[r@'ʚ6֑*ͽhWnPtQxC,#{N4LA=@յYfū8pƇJ0zH]㷟]OXd /B)æ-3j WƢDHdvrm5AK"2P*Hn'FIqqkl-+0 d@ bƺ\(EKhARd7Vܯi{s*Z]d,H:Otڴeihŭ_BR$)o弞"-)Wu|WC9kHjnVoTUiEu _DN {Ƭ1ۻkIPU No=7ʝYzhqҵu;{Tjbj_ gзxm |$#-8TFtNykoL,R$ga=;{mܰyn:53] "CVEkO YDbi,~A|t1X n#<DxkQKSFf[Ol}3!f4TQ%/|2Zre%f1~'[p'{$k'8]81fkK3TT*GҳݛsYm,K<޽j,|H ;6+@zW_vR[4#M{ 1<{jrF(!vGwPc^^`AoI_ $=1w Q\Wxn15QM=Ej0i]7 O[DځcBzv՚r )3,NH{ºmTGVWfCt ZEk$a%į. O[L[LqA1 ^s]; $\9 gnji񮎰VP=: 2vms(JכM"Ѧ1i+;O WQmb ֑%ZE+Acxhz<ճ(R WW9+iBD-]MDiRjH5zkn#/oM ۳k Zm%X==]qH74@;;̵4_#sWse8vn1u 2 sdoȭC$PZLD-e[D n:_W%1$qO ܲz׶M-`}V:Gz!-`d0&"_ V uBm'HL& oR ;t%:cFk,iQB 5bi6Kcd;]I6s9"[c8n ʭW!Q.cGlȀr[]fie}fHUB@ A#9mw6%YHq A_KUUkyn"e$t>O,?p}L:.3 aD tuBtSwv ᜒǑV r&׷Iשה]zEBu܄߶y_(vcg،hC6g iM$P+0/G7'6clZ@M)cCڍO g&:3B# -B;=hFpܝNަr.3+hrdsRجvƵ( gbǷSq^mJZw,U㡨Mʤv3'E'Cqr&K96N\շҟ^OEXفF_8v7;(R:k~2Y FSM|.H~4}'9(@:6Vfd?.b"7NM?x%պ5D@GY*OJW3e ^Y([ᩖcPǼAm@]Þ$? p>@pXIV{WPϸr`HE(t]b!{XFBC?mFlⷌkִ=ZI¨PG8pp=Jc9tn1V1 vUf<ZFy=k&s61"Cc?zMsUu [AzQRTrN_ߌYOؤﭹ;vg IдEX70xZzE> ukKK.;FdDj>Fp:n\Mf-#Bin6-Bj"%.7ZE]&յ;?P[%yQZIHaFY$'gO^8ԦH:4%ʴ/bSU,yy0P!U Rdy!r=$tOZY^CuopU' $0 s]&LI< O2{ #G4ڑFyEUsޒH~ZScҥU ;`GPTvF>llO*#o^Z]V[]n%u)e1T=ϭ\U8H`9ii6Bd\@3N-cOU\o5ڴ6m_9@W{7+p&Þ#ŅΏd,"bbmŵX82ԶxGWM7DIT_6 6-{,ETYgKmsSҵK[{xaxʢF@aјʫ0U[mNjVϗ%F$C*/o9/.&M=_]tj{Ls_vGJҬrSm <) 4Aoe\[fAYWsm)#vss[9"{G ]#gU~/X(>Z͏֯뵉nV22$ζNHA*juK_6R#q813l.weks-ʁV8U:keo K%EcsgG#e~5دhB֤7a'fA2Eu:ms]0kWV4qD)Z⮵;-6oE9"}Vx7[BqV;?/ƺ?t[(@d ;IeWCGj:{׃t>"rT!RHe# Vl.U%:kƺȈIgڠ$Jt-D u9;vO&襰M\FO|άR7&O+?CW:)CLb;n]ӛXzuqg5aIV0H- Xܼ`Y , I$S+vjK'byo"KFҨAFaGr/֧դ-k-9涶6VԌ X#Y$Er"a쎧sW$Xow6ߏJ\Pm>7k AÖHP 9|߫][5eYv`9B2W[ S >[i fM)|+s֪vk!Y,[ǰ!UFi$txʴC^P~%_k+jVϡkSY^}+=dE%ITZΣ_^3Gui/i+Ht.@p[b!TJsg*5go*Oc\J`pp?wC(4?RKΡqSs՛.LGrŦ}E@DVPKmpG89`-6mir.-YvbkUP $qx"8&VVo5n!\mH{IrA‡j[D@~d|z<'Ȇ IUTQ٫ϨUɨ@fY&\arsp{n˩[-2i=Eu q/="xccվ)M̤ŔHDu KpM =*E&efvW9ٷ?DnIXJ6Ҹ{W)ʌ}+>4驨xe|vE2Jqw/\𯍵>\GeqfI.An8>N70,O! Y{wsr>^nktxpdL@V_<eikP`o~ȚPom p,`%kGӯItҬȱr(>c fk\} KJT_kZ\Dd;ȌRFvwj&Vҹ C7C-F~t^wF'Bw3Upes yIZIR|gr`Ao$VTSִ (~SlS*23pkosl4?/o\wp2PSY|ҦK31So#uGTyjm4ct-b$Ec#BPO9XMW{E2[BV< #I {^;tڝ徖!( @ұn5˻HbcGb_鋫iFgh獕9 cAیw>wV#p#<X}{taݤ5kuǤjKI:ƫk$qNự@$3z5yL̍T9l[7Oz× ˼ d[[ sRV4Y$0c''~1vddw=jHZlL-@G""NQ*{5M^R6F]>LC3*# #\fKm<5 }B+&K9rO=`2ȫ)^ƱxRn_O?La NN|13૷ɣjX^\H`7OoH4ɵ B(.V;m[[tA .xG 7WF-mAG"Gnd۳kY \ B&ARNt\>a,\ÇYlu_2FfX̤5}c\S'2(m-BylNs `vourjz1J 4E- v{ ڵ|KWK-,%r s3.7~"!kR(8)^FF+u-aacilM9%T,w0q0js 89;Ѳ010;]OD+i4w"r!pTvsdu[_> mafx.]̈ dž@L l>^>1_o}ͬ;fw^D(?6ZM3NecC֟sHs Dz7|;z$堅86ȯDp1ds@my/Ikegj.қM+?"E+hAh.5}B+l,wK(JiŸ1F0dS?ot4C@lwUY,l3)-K6l5+/yuX{p}&H 8@*pHb6xVkwz䋧ftE2ѽc`dž]Xh ]1Il"#RSG}d[ vp3BF`@r$6Tv Qgwq1+["0WpxE[:+E{++ O8p=?{c]"gt,y!_0 0NU\x[Cu#2s Ba =Ժ]R̒Gl7>0b޵.w]\4R #UyJúcx֭jַt%? Bpc*8NmA ȋdy@g889s]'~0.+#\Gt)$%P Nd U9\s׃|4\}CSrC$y ̃n>p5z%֟<]!288=u>~3G,rW>vDr}H=?ϡivv][(V.1W,k}j[ёR&1fηs qNxӥK\ {FUV$d%~ktzt(^pmԟǶ3dtM6r6BO W-B[:eχmF&Aa)*`CĖڴ:}k6Ny.U1ǜ !*@_KxZNc7i"q8yPⰐYrT˶4^_irx!$za+Y>ٶIf4T0gK_ﴟ6( #ŢU.cIȢy ֞'|MM:mZ\4Gx֭"No6u L]+AsV-b#Jw y1BXX ^ƯZqg,th˽Q v#v6-{ÞRjKyF vC̅Pq/ĺ]څ>fg'KX` q_ 5E׵[;@C6],`ˀ21/^\i6# $)~Q2#;/º^0d]NDA4DCjG GʡrJ~&kZvoe86c*rĐO^G>Ea8uF7q<w~ng~@Cvgi[vW /sְ与 [M$Gݺ=ojji^N8mre/`x=zv M>E_@)=`vU53[+§I cu[g$wfn=k^Ы/fwҡKCs^իa69 -4s3HSbT(IգgRG8'Zﭡ uӎ;{mXm>BJ)ǎbI?7jږsN,vB*ǒͰ^`UPYÀ%_ja p"u $K,C;#;I*T,Zpc]Š2d6왞6,Lȡrs)EyJx~&юtF,5Yo4WMc4j!IZlY|#%Kc^|IW.mH:^l%ĐgI ci6ͧa-efL"W"*o+26틻ZÓ\M5C!wrʡK+#€qOOK[_>xbEƆ wr{3Z6y,6.0`~P9rz#|dzij&dF[ˉ#WoI>lmf(Q$:s~=>@fu3s'nȭsݳ\׈M\ b~Tm`q+6hʁ$PBcHN::Q^V h2vUGN3ВlZj7Z4צF[YLd۷8N}3U|djPڂ|"#ls6ΤO~zbn&1'Iێ]}N v@DOǿZ|8hwѬ_h% g]|55۴3DJVo5IC]ࢀvuMȪfG\T2i2 M5|;q$HO+C%ʍnbN6o|stBHG yF0  {m<'0:r=)1ڼ㖵:Vb.,,R czq7 Ӽ?K0 3v%񯗰r>zMv!kfo5{f y2>2HJ$SlB,=oBIy¦hE$EկҮdY4HE7S%"$+nhέ-&u{[YZ"G1I5*L%9v[:$}Rݦ3۴w6M;M0E2>c]H"g̚ͅ^Z2+;[D] ۄFRErȡ jZ]Kji!Ԇ>%ЉaXݭ4 :m'(K=W^iwԑB@}diL<#"uw=m On.nkBUuٹ)k-ZWnNZ)# "VOFFPռWvY$%\d8KMDOsspWf*<㎧9m~\\\;5PEݼYե/[HGD$&*i[0}3?mJYɉ%Okb%739?V!o%X0$C 4~HTyD csZ\[>f;UMn rAOU o>]KgKkA ;c ״;fPAO~4q?p9008?p;@縦ǜҠrF@_lyIr$ c$[j:l}͵QG$FUVhV) H.+>Ś4șeMpEpiPao533[<o6_Av,noV]]ycYLKk^ח:6]ߪMK}K(\PtPUbR;z r95ڳdr- #ۦ~i3C ֶb0#U'`OVbm\qUob<.AZ~qӎ*稩D$T{wnOJ|f6~ lv#4[9JRH##ZPOiqQHƼG׬/>“}p;KrM=}GZxxgMY,X[I?f1+"語frs"`_Otm/ER7ټ-j$ݒp1+8> n贘-˶> Z e31.Nz5RZpʒ%hy[eI0DV;FNE$Cmuc-cbh YHUs bsmx0A4%7 2D\ o;T'IڕֳtxAc_oӟS#=G"ĖwdZ.#-Ť׶0!,AozEuw0$HeD:|^iѦnQ]2A $K$ t~\6p\9p*GQJ$JqaOI֧_60!;5fp px'уö0) n8_~>4Dg4B\q@ ! m$sHɄ$ sM]' v(;Nz}iv?9VfCʶޜRġ QMopenuniverse-1.0beta3.1.orig/textures/earth.jpg0000644000175000017500000122533407116560464021534 0ustar paulliupaulliuJFIFHH Photoshop 3.08BIMHH8BIM x8BIM8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIM :p8PI JFIFHHAdobed            8p"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?p՜2J,zDZ j?ֱ4;(h^dli@)جc}sc4Ʊ~ 65cV>%ͭm.׵I߳7j1Ϭֹ` w6VlCsglw+?QqH_jn|v=ۑ^)4*~kbnV32vbcZֺej<Ikk[U5_qM&øjdcw) IVGS`7ᇑE^[_}okzp\C 6|ŇS]cp h<~W*״-hh^sݼ;?FS!ˤXIٲ*$'o FKc@Z6ZH\wmQDF000p-2W/kYv]u[^{Hٌ L1wZ.n<5Zjww6겿fKin]=c 8.ۧ==n[V5CLk{Fw=5:շ9ܚ m/'ͿG̱E1={*ʽ{O"y$g^oI%3 k:vS"}-<&?wo:@6vƽkݡ&Ca&4zgWUw]#w}p{H^һUǴZ7w>(}p>AkY?ߡ `wXr5ˉ$ȭ:i1'm!F7d*K $j^q*;.0CKi~~ξZ@&ZK4r{]LZƃX4CpI20R-JOߣ$:&;mTI8hٻ,>Zc!j?1VI AlIJN}m಻dDsc[ꑲs~W bP4mڿ^F;<[&/YDX\ ~iO3^q>PoЭchg^ULcG^I)XnVtbZCgt:=eW_ọk,_Wk^7]_:um1maZO';N~=J<i#7ݺׅF{Sgƺq {ZS#d_q#a|ju~O48 Nowm'@[ұ^6 Ii5~ts[ǥAͩZv~ bw~Kt>{:'D~?MgsgHˬbLsD蹘’D+^8BIM XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)KmAdobed@            !1AQ"aq2BRb#r3񒢲C$Scs4%DTU!1AQaq"2BRbr’3 ?qG";E$\0׳,d0DxtELJ8<;n?Ի\`LP A߭3p9"W,-ר5o-lNuwUMgSg xĥF.=b Qȴ$ yݿ1Fs4O-rẊi63r-ěo/%C1es~'G>m5^|6.F罬5WìבY:s{0铛\vyc܀fަOEX>d#%Zǡ ZI0 y9w -m{i۪B`/U/'f}R5TSk՗j=#/Njv L9KT-a}5u&s_2eR@aVfMc9yfĚufQG!xnAjkdO`eÈC3Mo&^U< (7MH™ ^T Id(̈΀p;j $[\U\3lXBggk(3&<eR?h.$}ٮ.PZ{)c'3 ]woOur@ƒ ( z ǐj0뮧.dR{&xAւRú+JAm=#߯Z .BMVYkʠX _A#(-Yck=$ɮaoT5Xz 2pOvT6VY_64+⸿N$JQ}ȳ$MAIr ت?af }?T@.ul Bj,OS콪PdN@b\57AGM4i]B!R,y%RT f%Ɗx'Cq=/rHvUQBYEA<>5u"K:ځDc[wH;l:ZIaS/ISN Jb57GAC4^*Lmv(* '\j{=iZ AzPXgLAQ ;ZfQkyH `zZu}}tӦAA'SP^$ EPZe[[ hN[0@ Tj#A@-R1f0>}3l\x6ȕ.\ۯmc\=E9,Ft QSoUĒM@{*=YCF/*,v${Fɑ4Ud ;eȹо!ƪ2 !--ﬗQ/*:IN^F!t=QO4˹m 5=kAyf:[Ļ$Vrn:VJ=UV!ktȠ\`A2a9HˠeeTG3rK~E%@Ǚa`UUUg8 9녚2O r^߲A98 Y5KZ#4u&WY\+ImKS䓵]/Amv.}X<=u?W)oK+܌\It vn瓷(fe jpοԏQ!Fӧ@M~_L;R=Z鸼z>G[ԓ=s 蜱Szr֟uzK=aQ(Q}õE7ddR/OVt1<{F붌\v[QYv/ *%Dr7zv,hl#7Y^EH?ۺ?H\}h2ܩfV{bpBk .0m_k/Tnȼ[?@zϸ\xmSPHzw 7X{e9#|rȶsRVݲ!ݪ2+ldxv +n˲HKo-GCŠhDRh\`h^t3uA'mA$I">=*$MJˌűz \ Z6:-AxU\dmv>t]-RhԄ&J}&0۵^ճe.8xzO+u 최n1;n7lQӶ­\IlQ*`5 }- gȒQr|POy6ң.xʦ~LD M~&V_ ~ek(Sڪ$"G=˵Jl?*k2/ 6{:w2#%ȥ=/vVKݣfb-՚+58R?.;+uMIpącY<3v{o֫`c5;cWv=cl*66_Kϛd:tޭn}q3?/.khHȑ$vǧTc.c$:i֭@*xĦtU1$G 4ݕage'H%mP1zKe&IY|AA*OMqyFZRćШl ? "F,4rmSZ%Y@$mNUm q9\߅Fuzq9(#xe@FZ.iK$ﺟ>Bnf${i;c.˒-Ub=fk`z߯,t; cħhGmL9+[?T&C̃GYhd8]tt(NKڝ~Aē{uX2u IADfV']t YPYeWFj ґ}{2u`GɑloUUjL\jӼn`o{GzD{u;i\kp#bȽ^TU$N^MjE0}H*N(BUS̆MA,Eh,T7';0(ƀgzuւF;k5JsҹdIq~ 2Nc  oZ3 K44bkPR-:oEF٠=NSYNu"QO1-\ij FIHkn,B{[*NZ/W,l,}Sute~R&׭[Sef`w+D*ہViCB=d]m.l?*Yo}fw߰N\}5Zu"G}k"J'6ݯ[bRYU HeG{* E~* XXVC' E=ASnu+.U| QfH9vwidm@U:j1ކݽ&/5j/N8*ݗB-Q#a行  M`X:j U]}+f,Xdvo~޴(n mL -31+6S 5.Ɖ 2nuTj.@b {j2nU6^u.*@7JR-o,w^ނƑφ悦S~uY<"{-XeD ʐ}qR|$Et›A{>nZ,{nh-RūEBarl:_`m"2>j\>[\ :1EM2 \ ڪƀݵ*KqaTO(#٥ͻ]u\^$ܑPkAFtӧZU#m4:qkXb *CxRͧ#ehOUu]UA7:Ԋ};+5Y~}ӲەНOrz{iQ\[*{`{P2/n Vhd\ K4bvn =T5Z (. V-oJ #? PcT@҂h;mz 7Fí2B->h"dI,(,k3i\ho-@$RW$7'VTvŐ%!mt;`=JA聯zW䳉mڔi\%i߲UU_қ* n.P õyXGrjJ ,"݆ G""S^7oZxFV ē%cqhK/{Vg?F16u?WQ4>cof$3hí ;uLv]4ѭn&?Ƞhݮ=5_MDk:t"ak֘fP|ݯ>#6|Vq1n{ufύ䅷5in &⌒er [6Z!˜88Gx, *Ua ֚1Dqx9:e?麫Li!ꫥJ/y|euv߶Yx4K2rAnm}o' a ~&Y&k\ʺ";V2c#b=nNZKc!eGUV ]{;/TDrDBhtnch!K[+i~Z\FMݠ,H Nv3(Ѓt;@Sf[:TYoY˞TK }դ3Mc*2&c5EBŵBqB%h$ɒ#-~۫^jղ=Tnƫx}DVixm+l+dDV67X.Lwʲq?8OEgP˞3aFiVy-JFG1BA>ڍv_,j/]wS/Q{o6˷M<~;TlbRzEݔ`/vzjpqQ hԋV}R&V<2%gPϢ;Cdlu-Zy,~]"+ys$H278 D)E`D QFiyEHA=jz  Nŋf _k$x#쾵׉B^2Bة`c|e@7umSd3Z^ݝoR 'Gz[O,EJܶ 99XΆ${tjPVgoeW=|b㌓~*;ҙ\Tmm̬Mx}ȅNN%(s+Ij+:v7=M\{0aI,%R:osǺ; ,aYTkMf9Kn2t b׭M(b'jCۨc 3!"+ēu \!5n;X SڪJzkF/˥B~e73pSNQMbwwnT%~4eKwVǾ̥X5 ay15r(6qbr <)++ o#:pN_OjmgWtd.FF*%U$e3mjpEnDBuxDNIںԁUU|E7J sAbIRO^,(HOzWrAi};\n$,vkmk.[)րB٬XZB0)17Mf$m~j{nz{6:{(- s~Q\ҕӼǗum~j;ҫX $^Hԏwm;X6ï(wPtT*K u-(tdf;qYkb :1 d/njmMLȒom/fM.#z0̢ {A{3 ,l(=mhvF0Z sh3(@ m6o}U AGGP]p "r XֵY㰰 *j#lQaXRF;+^avf:J%7$ۺGU ܟo$Q/|Ww hI]-sJ^秿P\/`/74xM0/&Cp4Fƥ g(3)!D=, 7AM~j WK85Y%("YSvߧZ̀:hNuYPڨ9$hη7UҢJ|cOgZ|"2z\ TQC¬ʣ;&M6=([I=}!kķ{oAHRtQӾ\O^VUc"AO5m܁AkQAkިPΦ^a=`w]Ҭ -7oR؃uöûn7=UU7xwt+6kT-КW}CvUQM!VQkuެ-i]FqkV\j؃~5eT{\~څΠQEp"onDO^(d B47*FH^(A @p/Ё+^ڪ7}p ˂z,ZZ%Nc3oaYl2F`'5(bwtAbrتzZ$0=֠xm[/7M^Pa~e[6eWZ/x R{I^ԵSrqm*5?b5֝ FtwUBGV] OM+9uyhd/Rɰ־t_MMk׭,ŭ`|2# Nu;=?v Ohܬ<"FSYDCfwHMߠ:3O ^UFiT!sں#Zx1..>of?Tٯx$7X.WՒ>ShC¦7?_")׭g2/|k~1'߶{cbM@v֫ٯN7-tZdcgJ ]#-o9*iJY%@DH@{{U&}9?7+}2'Ѽvb*߶V/ظ2^mk$Q3h&ڋZ cXmp798Uo=Ȗ:mWovv ?/$ Y"VwgS <#[hjF֭7K4evUQ{iֺ",@.G{}]BPdOhT !\h~c2Fa`OsFjUl;66nR*39`D6K? ntݓU6@'OenoC&׎@vp5Ͻ=82]t[Z}ӵn6XK܁:_|YBvcmt`ǒh؁IDwSl$~|;U\w)2]O֝)HK'D;WtkeDܞ΢QLq։Bl7m{Tdb74#Xv_Z u`p)1o "C:{i/qk?ް$[tQo[STܛ:tȰz:^u Ql>Ll]A?x=k;a{YzޘFC4kMm9@(tבֿ0I^El@=iٴꕑWZg֙$}\\mJ@&&Vbޭڔy}jP* FouF޼KbQX64{_KF}L*zk=R:166CjeqYm0x82@6uSF|Tq6ҍ|xdF_i7j;D|cnfEtbO}:ǽUzmU6uF ?`FN؃Pi|,}ihI]/jwՑnbu'Gw$E,m]t7R{)[ %&~9{dbƌTn{:6kAUTualkAkQzNv <뮝 Z_ǻ^VFsp;?}dLDAZԶ@dqԟg[ 7+N`;uJY-Y #(2*2 wKh/homD_ {WQN? qB\m P~j ˴{(F/`~ APP@xAZr=Ƴ~WM_6ikUX}βְ/`f:_ؓnPZŊNE^؟e?䪌mFz, -U,koj m;^P+Z]mY n;*k;.uλ ߥC׳{4kp(. aB+U4]W:%kh1k]U^z]{^ > hpОUwtuV^&*+ h4[@vap{!u'%{ v.?v%\S`L eB\3,L齗Ex%^7,Aκ`tLqȒetRNi ƁZfޘ& *k}|f?<}*'Eq[*Grܽ Y}͍6 ^Slv,D̅.M-WG3E#ɹH656N@ Y٥e2HWNtqFɺ1<\^5#Y ۷J^Όpp=XowZ_7w\qYEb}*{д`w=-op.qs$qzk;$>B#Ά[-fm|rprD؁TU>a7 7^6H8i0,z+ZD|Zywط:wxS6l!0PZ]НƩ']nӧE;>B?ƁOKܛ}(%4/Ic;[+?6i~sj'RNc-Mٖra1Ԫ{eTȍa(2~["<_msp;ǷS NW[ 8^p=߲ه\JW(`t> x͙Q{kuߠZն~ Hw1oS-R'wTHGk{'-~1%I>a/PRv W!mu5{75.w Veƃ]s̮8c#TuQ[J]}f%B1^KܢD@v0T(=?v vdg0I0$oy,,=תp>LpeI>bo߶¢=<|uQQ-^VΥm53..Tc= ◐SYyF:W.›0dHUĨF#r(lIլ*4\3'80@7*jp桼f-/`C~6?z$`9@ s#fDf5 .EZZdkbamw-ʻV]Nb2%.#>f[dS|NA5j6#G߭;< ~꛾ -;G|'jC"6dh@Ef`OںUqS&\Y h.( A^˜[*hcDڷfFFau"ƦUQc`F#aڗSmp%B1as7# i k,mRuME-R82J/*EMSjF/㧷J]#=˓U`xKt:}[9~4F(}W"0GOmZl#fbLh%Uo)`6ܕfHH>u';3&2w Zf yYzf30x0;{-<;eYϿ_Rg8ʍHYz /q}EM艙Q֜ynZE&q޿?|XPH`MY_?"t-|/nwRY]=JY9v)KldDNn8JᾞY/VY^۪j}/9QKꉘ,ؘX*[U>><l8Ǡ9Nm:lص`v eҰc_G?isgC%2M_ĭDqݪDJ\Ӣ:\#FMJ-sqhg+x9(|@~aW9.U uܪC( _R=I$\t.]em{wRV<-Hմ{؏´2>Acm;yTZ[|Lfk}L㾡df$ /` fKaYoH,65}VmD|©`(MA6k _TȻ=Km_e%W>ysede:"ٽ.+.Vya*BRJ/n,g_H<_C=M{{}@uQS끔 ǣ:zX󒲀 [ c*ͮ.t \QUU1eM}T ћu:z o}Oڇڋ,<p)=YqZvj2VAqxȿ{E3xAM-i2.vcQ#]Sa9a539M 4제iOIk+왐v-T ..{Y>Zo.|m7$὿i3ىݴWCΝ)SkX;ՠfKp/kV|;%AbtJXlȐ=xML7e@P{.lN\gar Mh#f`5}2$|NKm59/qݯ⵿)Q|$kyOh""?pgeY3SVW۷{Z9|vȠ۵GzO+6qc]A+> Ua-wC_3bvp~`GZ&SB@TX܌<Ɛ{}NZ}I!n b̐ Ox6'JxJ(W(dqc _CUޥi&\wvSԸ,Pz*ōX\T8JI b4į0}UBkI=$6B5T1ZשUpeb@ zzTW^+Do'ú͠v{"e{0F]ADI&)}[{}T EU& uX,][q1B:UW҃!e*amUUP/N 5$[߲[`,{@wߩ=-ŃF7y59NYCv4nvd\ޝ#h{:f2Hř?Ta*_#YX ?NSp>q3Lfi2[oZ?wЙRYsN9=fEۭELtNxWa["4+9}YYVJ3 `-v͔׶e[p\@rx96`ïY o7d&f#Āj>wg^_9g.U۸T'%")!VPHd#K7Zmsp۫< I%RKFˏo"[am:?(r>󰶫#_K.륓_}Vf_az3sw )W>tgi.8ow3u'iIy'TxP'f榊|@uڣMGMz{\p-U#p^[C:Jso}4|$x=i!}LE-B{gt6LP:iT}1*d?ۭOwU> dBT\|/_\ɟf|Kb,;hOvDc`_` {o*892g%=z~i`θ3 ץS}'c]Xx^Œ6=i٭r4n`1yOn dhp{mmza:.;4cٸt/Sď B7#޴א lMiNr#2NA,AEU;C)r=I7X"CazV9xa ?kVa{DovGK$('M}i!3>֟3Dn5tP:+O'Wu"؃}*v#, ±9ɀxuwW>+Y<6#q6ֽshChJoێYC,'06:{)52kH%5Ufֶn-b"і6M럽Sh<"g@l_TzH٣&Y+%وKt, * kAttmjV"bm.u,F@+^i{i/$"[^}d*6.m[QyXm*6l0% R{:mk$y .|DwVbv㧄V#0"_o,!\dcЃ=K[+ABv:U7Z;LOTEIX.뱌zn޻"T8U׿aOKfr em5&zM{z/P5{X}*ng5)lzjȃPX{Nn<ܜ,*A5j>JM0*tnҢV"А,A"{;j1F)|+'V-;*N=2DdU豺5j阿E;m6sd݀JϷ)?ޱ7ߪW#\Zl6ٮTHӰ۶`EnK3=ħȠ[2UMRg~FGsFdRk@ZAܽ>j y62W[ꬋ+OqBNԠ}}0ebW(؁I}R[ާoeHywѾ;G$('Y{p+Ju{Y[ c>pXtWr?w"ns(64T^PredHv9sdVQpT![INAݵyl,ƣ:T0ʙ FN? UmJI n^,~a m;.U=\HJ)խBm?((䪝F[2GT*DfU.B1O*K"cWڃ$*O_V+Zsk+%b眡{( 5Sw0q[ʂ#f=OؽO=L{<7αO>BDۇq6%OpdvS78tVx_P߭GPI9EQ,Vm7+`0/\댧eAʹ;,;Qn8LY'aЁ o8Ϫ3M=Gr06$q3nOIVI< ^Q#|<$͎2k#Ř~WҦ23ϕTN3o 0]ovV¹W9}S/#ft<ΞtcDvk++Ug)W Ӝo9 ,bK}HU@b?7uvQ _ޝrs'2Uclkh~ʙ+iX\j4~3<>ti_ -6ic8o7>|!t<оѾVi&țM *UˬI!?2%+5W=puzwr2~9$B7ďwȾcىی򏖶Vss/|lҳNU2á B1TєrP9cEI;KG45We]s|IzKӞ̓ dKIN/!"{wR݌Dׅ?$664DYSYm:[C_30I3??Z%th#&وcK[ Կ8۹0,9B8yc|'yu59Y0$ N"MS2OPb&/!T7̊vc4ϻfZqQx>~D8U!7Lql"fUjj{iϩ~\q\FNl4B |lhiui|#!ܬ–|% Eb~P?PB.ɎGY,2ֿ[dËx-ʩ 2͛ݝ`t)dq_ T0pω ]UCtޘ~#gUՊ/anOќ Io+qp-RTnc&>0R!g?sHuMmxvG7tr|~7 KdA!$@sWkDg՝2G/ʛq _KER'lE("l\aLye x.Knu&*W՟CXq'Xf`E)!%I*J'E12syD HXcr ԰{][9i4tw}b+4˕97X\nbGFE2DQf~ڬ1^^;I \\yg*̪FyvL5lGA>hbF{3ueB*'`ųK ձFumhknb4}NK?X&vz',IfG}'Bo֠E.ŋwIB)Av(5 IAy<|xsv)_[R*PX<{vG;4\[}HgHi%soLwS@{mS=˚vȬMg-v)O/h~n[e0X<_?V;[Ry'inS6b ,}qZ㢖=_-s<@S?([7ԟMbQab4;X}-VŻ_W~EN>zd~^²Zw|V=(o w_RFQ{Z?Տ wF(zv>hYI4X)$5mkfrVf,_aESwOQ38W T~_?zL9C9$ _it϶(kR%_or}Ze %6ʺ&oݪf !fUs=S޸wMO.勇I3=?8Y9?Ov0\^)VTRq4-M4Q:43UtVo6Lqrl i* |KO|X}9;]>n>M@$)T&fY}["t="Ϫ,_U}SA,/sH5~{y_V!ypa{}Ql&P}L'\7*Ht??taO_' ='ݥ6Mwo'VwOxF 5ZO|j%N3;"ʋÜؾ!Bۀ_ՏlEޱ' `g!Gd59W}jnjzSwW7`11N˻O=ߩfk GlE,~p(GdhZqRQ ^*;Q>t`fԷ=c}HK)_8 ۶ffzs[HA-2[sye{CiS`gACo8fO^>Fe=h?}m3[<_b<tB45=I^7% ,|^TǪJrq1]K ~ʾݽKՓX,tS.ݳlVO$C%M+>ljIVU? ˏx`vrj+&4`: m=kVjO d́b3u5]-WycO (1IqUk\}ڬ(,7M9^`TeӿJέ֏]p(d.箂wkd6#[(S1D],,Nۿ g{cꧧ9[ '_gZ>~,o)ǩ">Nu!w?>XSnGa6 >x{{;kɵ\{ZwV؊k4@LIn|5Yj-|6d 9ʬMJknތenۨ4N4N[Zei Fw@EyC)7Ъ3W7?WouJLc1`AĵmՊ>qi4dzoUokfhy `MmڈߵմUE\{;ʾ˨lːmMؑf):e")=MkknW'M /LrHBSh=mMbKb&PDe/A EuoRի_>EdFnҬ]z{bb`_.?HHT$YQ1>'jd^ v혧 jl'/uF[iO`[n?ڛ4fۛ0P²Σm&be㱧^QaNޝccF3^ ޑn3b"֚Q?Gz}4_ER ?!7 ^b!4#BznٸڹD/9((țuVȅKuS@ %(E/oZ-pI8Y>651D$^j;S%0 ϕͭ'x@{:U9NP!ŗIHHö@GZM1)ڐ/[Kj]Q\\UeicR"O2*~cU#Iuҵ(I=m=Qqђ֫-sq_EF͜ 15bKiް@/"Y؁oHy \NQ|>/[UAOR*;U9h,)o-_xg@ ξ!TEAPۉ$J*im?md,y067<_+V]uG#%n 2}v{!:+Nhʥo=HW huJĖ%7XvʣeI#AyGBF`L܉f@=߇1IM*0?d΢"S*K{Ya*IÆHR/6?Jl/x6jI7H[R[@vс]ר֌y'Botbjxc45 <@4ǎv5d+c 1"m?}c~&/9uInPT!? vo5Oj۰UL:LiC&+҇!DN]|bMȌNE(4J4/HV?PVNSO,hjA#Ύqh%[ S~G4>V6#s Zr~^P:G2=vI;5yV?Kn2oJ<\W fa|RO~Ou6VYWQ;3[_$Z1 Qb?9$ae\@ecAah튶xyHahr.;fꢸޫᲉUTe6+(17ز'8ra]H;Ԇ t_&Ts hVY1c ,Ȭ,P|o57SRd1i{xOUVzvυnZuW?Uw&$E[vS,oqX!&Y#`|x^8 WV֒-Sg+LD.Wif1+kyS%- R  ɏ(b},Wš^iKvP Ϣ_*Rz ~5" r 6=2ˑ_yjݲ/ү<6lhgo%)[{JvC,N?Nc o2#DуF#mVNY"D]LeP,۟oJ"2f$Ȉ1 ڭ5cDp4|\_ʖ3e3kxn-Ңs~&N K'#nhrd3KX,WT~?ϧ^&2E:ed$Z/ DmlLřV \8_M#acaذDž# GBf GJ`V1.Ѽ#7J / E$ҙ('ÐZHÃkq~ A#Adq*Ge~ $Iƶ"17W7/d`mck1;L۟opf7%cwys oV"&٫!f/Y]xtrkE&fڏt1H%R Jݝ{ztM󎜣ܹ?X}0XW3I"svSa⼇}s,dLH$qR_Խk%.n 3[eqOཅD >o/-`,`y  [P[M0IL gʾ@E?Ag`_zlcȫ&H~{{S?2zmtkG% n 6f}O$_z ϓ3( h*q*dsY9/ƒnr'ȖOI:P( @{()wPV@@P(Gc śTe(0VF> XP,(.Vd) PZT1> (%q\$+4PF?eJ@P($cC&ɧHp Me_0gBc"5oei}[YQjlXQJ>VYxe喈v)[*'='MkCbd>m@֢MST5otڢܯV"Ų8'KT~7uO|RtS+ɏ3S+0?E euo/J'ֽ_Mr78{$E)$A{uxR}ZKGed7"W^`n+ y%SEVȌ`*s-PݱE<2.Ͽ a_NBL=[f,{NZ~"YXu-Rb1J["<,?_jysv*GUh$iJLD؍[4HX|UD ZHV\'C*iFm: Ota8AqxET.OyyF%HEv@_Hz.튘R]{j !<|܋Zo!b<Ҥjc{z#7E@[1.YH4n/՟jmbʗ1ߥOukRUh3g:kN3m8Nwf?PSvk~ųcXĔC)?Ֆo%㙝m.8ܚWdwh(6=Z1<]}=ǧUS";K{mM6ޫu]j Ռg\LDg~T%2! UcHȲ0;HP_ӔK]MlO":{ 8Z}?!rVok^ +c2XjE{S(y1X/P.OgoI=O,Ou6Zz'cؓ0ۦƹ-WžDͅ3R0JF+;lHFdƗd)]Qz\Ņhîo߯Jr2vN*A%SUcqSe;,CekxGOuوupKVLˮֱϰ66+V\?4 ..;X3d2 riK3\'nFV)S$e ehG ' ᴞ[6_D.hy\mHJ{}נՖA\|iD`mA AL{QGj0yp8../ɹ .ONZ\|h51_hWy{'+ F`t\)}ȥY!#F8Z)b}Ή|Ya}\+~O'Fa1e1ɇ%K*g/Q5"rܷ %V|̖ J_e+v76j橄[,+@pI:k~%{*f';^4Q0ȏL(% Ww+ kYc}g\gY@h.7>ٛrl{p2c3)t2"f2<61nUuՖ`+K\9EHY!tPڴmQc9?֜MŅ)w-"eHOIb]kϖ[/]d}3&n.&BxrA›*'K%@K~XARB qX8(H[qd c>Cw!'>r^9Nd?o$\E?+\!z?~dI?3V"RۃkpfYbz+̇,|G 9le.$KUl^T'+Fɏ)9$MpJFOn lSӿx^g1hqQnYoդ98r.K)Etuc&6nʉ:Tr7`C(Iy)(hrr%f]B)~k__dG#U|[ҮSe(m{~+VU-{Rz|)399E@,Da9k QqGd%Hv#獣Dw}^DoYʌ|I*SF˄_zeS;e8skCEݒeBa4n8aoF^XpN 8|.| H?Ъe24wьy3גG{G-Fn?yipܗ8VY0Ֆ) ;1mfQkTɄA>};y+7])U?B_7h0GQ]ߺSdB~};\FXƇ˘l~QeTX=w`h26~DIV"mƬox&c5|3㱦ǓKe6܊nup)]_LM?Ѽ'$R O  ׼ 5}5İ:svHHПFʶ=kv8qMcA7Ԓo$֒,8UR%UP@ (-AQAAAZPR:(+jƕ\j GAbbmFp+fҍ5rw֍]׽'AQu?樖D, 7gpkiTwYxYMAյ춵}wɾ_!(8L3D.zmR_2cELH^oF#&"Lrz5,x=BEB&އX,rOui.zx_!$ 튪 ,J/[/`$snZw]T h @P( @P( O1 ۷73Bl=kV؞gb# R&9CkbaTO7>\V,X7]tz_/'=x#/MMc>_JZLr\Fucm gw5Hy#gc`?.}4artdoQ y=0m:vTyњPE420ikeSG|ky$mĎk\uV d>LY-}®͊\\^\RrN,,#xY/_uqlLYpDşXՈW^9,Y3 I+hHwPCP -Z@P(aY*~`bwБAo/Z'`<=E첵a<_fuDfm,āF i,p"HC{~ձP9~=YJcbήTAa/>ʦ[x {IkWO~e*ʅ%ʉ_8I0*{Jӱ QٵoCRk}(>c gA BU5ܗ#鬼c>V3wZ&MR[y!LiIk{ QlCD[c"e$m۶e7I_*i?h.%]>M\21a4>d;$;rT) ݴS\V3R]̱ŅMߥMuȹ>`k_Ru~xS88sM@f]Rݼ2÷Y< qh_nղNf"e&^;FcmBK)cjb+[iVMȿVHUf`ўy ݳuM_ 5h̸ߴ"%&}\T_̊C N}[i09YH5Q*Bpd6ST]3A8P ax$eq$V3ǏTw68F,Hiٔ2M鼒7T]՚oou~Od^/!w|^T}ZMꖙed c sc>ںH ߵp֠FHXdF+}{,*l)BEAMl1$hYe7@emn] %]{79@'kmXԩ& a Y.1P+Mݿb[u+bw|JݪcF?NqS4Cu6^ݲ;TTT2ң6Ń{ltN7p =̭!@jp8D2)$ZUz / AEgvύۯլQq;4qf쨻l/#xwkfhb6TPRom?JmJ&H {Iv@Ŵ^߳SH!w$ [i4ExKd;ynfaZ}J%gU"An{ia*P2 d_MǸ\^EH@cYZq$Y,HS%nNG--,B]}-RdQPC 4Kn+@Jd PbIr.w52-Q_rz 5*1\VͻN&un}0+qq 9nS, O bAgo[겡c2"#+`6WXQƺjZe+uU?®jt#9Y!$3"im`6sI29q'b5' _X.x\1z2ó=W,lNāU*`i./39 (|bFiUxN[8F )*4vR3ݵT#sXBfE TG,в8]4l12Zr$0 ei7h[tN|Vc˗cfH f Ե㲣01~Cԅr@/Q.Kg>"~Cw& 2gM$]O5lrGZzs9bWxm¨7'+&AڶT۪mpO/-=?q1#l.Iqڰm+ow_1ɁzO!T6t8̛mb P0}-ީ ~W-<K~-y`$we9ѕco ^TùnJy^IUPZ4Ɂ+#Ň4؈Չd`.+0^[GTz34aM*2h" kU1Jō$ҙIVnZ!nq>*^m5_Nr/7gv4r*݀fK!yLS_ӌ~Y8hDE2ygHB&EzӮ_I`RpSˍC*YʋFqӏrzӪfe1lLL.edI$O;Kf?SFayHc cF%DGYUoejkkiS yG 5&:?aϕr|/\}<~+4:05o&(:6᭕ZLZoFܳ+:Jܺ|>c+{WUz?>}p11`| kR:վqO\U{,KjG 9X\R,F8۸>WxJ\(,<@AWol:^c7Ea#g4P_!$p+\y*'>Ixh99AgH:4I^s[}nIL:H gi'U.\3Q>S\3ͮGy>K oֻ:}*o^QBߩ1cnx1;Ɵq Iq͍fo1oiFNk>6v_`|qgfʅ[oe:Mϖj"M}u 4?scƁ!#e߳Ez;~<XvZ%"NP@z môZFh"Oac{Ԑ;~*k`_Sc>??si!"!{U{#+QoS<{)޶OP&+?ϊb^@sXjoaw=6{ 6".n=QQwza5 ^g|g. {tSvJvkRfN?%H6s*_P4mNɊyr8;Gqsݝ6okZp[0M}wUK.;40bòW*Xn}utI7~Ë9995`ڃKx[*o䣓`<̎-j hKw]+Y==8gXc/!`P` fEj!t7h-P( @P( @P(.I&܄ڂkr2FQS#O}THu]&J&G7f_N_ Mռg0c22mB{zW6XlX5[4Is6b׳ڠU.4ܩypT,{կkmbO rحV2F vo֬mO|5ge=ZkKiҵfP(&ւ @P( @P( @P( @P( @P( @P(k0IVWN&P]R EDʹIkaZMdgnY 3$TA@P\d'uNG]yތ3A'~)*|wDOc* #Wiߞ碧 xy 4lѼCٶ\m,_?N3K+ qm}>SLdzfVMJ7F }iqrs+謶aajs*yX}@:[X}h3!Kml/9ΖM{}[O ǏPXzbPyq`:dv_M-Tİdo MD3p:VC]4)f<ƢhBkۥzأ_xu[hxqHkq?mDUЯ61Ƥ ߾xJI[T[cqr(Y݄.;͌lE+=iܺNG9IRnEOM^k' fM.~eM ͒(6A`wGv}i1 йk16V}]g+ ):;pz|5[;;Հ#Vm6spvMq+e!l%W@GD&4 I6ۺ)h{*g( [rcwQ,AR-Ecu9,|w jFmnݔb,a[{kηTJHGk\.mz(1r$D eD u#'cye^-kuHTiLo`@Bt'CS W^E f}Y+nk߇|7-&~) Q&RwddKa7=Ƌ`nڎF&)26Ium": pzK$$,f;?طtuWD$K8nn6Uuc膇a;dO JL2H Rʄ3,ڮ*e|?-w9.#%0m.;+yK%HKxIްLYǗ +԰x6he|R/Yfb)D=9?Wȶ䕲"ˌFH"TFEMCƷWFP9O쵪ú0$sJlQ.:mpY6WsQ/)/2_$j弩/{(:۱i9N4XYx8#; Nnݻ~ s>#g±_28k9!\dǾo&ޤj-eq;75CfF V hʂ'~%- vXd y^q8\g #jy@˕b-ox{ki"跩C }A>D LgN&xKx4{TXNd>r"=<ᕚl i Ŭuٹ|3UBW9#fɑ2E˾f:EEMI'VV心<#2zg*Jbh0d}=E:  dG+:JC2%[]5۹]_G}v-7\dE<_|QZ2m 麫º|G_K}C 4XH ;w_?nvSW@H|xfB1y SF>$[YYOvo0_K&Ky﯊8voY.VLg;䣃I22[6c0W5LJ@ooUI~vc}Y^glxCd2.wf1R=,9VRz>gryo J*QsfXlVV]Sp^L|MMД5$֢H|䤃#͝66De`  pP@U2MZWvfk𚥉 r7x_/0fWrrg&{ .R瘽{IrO?|h$ZL|vF윞~[cbj5ȐM/}k ڴ9'?&^9K< RȊO-H]c>'쾾u//9^O3Λd3f;I,ՙuɇ2% #ƖWh"F}MɛeRQۨ=OzN!dƏUyv/ԄUueò~af=MI>R'1)jcYW}./WFG+xIydVƁb?{s],m6B=TNFHX$AX$ٗz*OރQ0RGI^QBVu?R0O.lQdPVZ)&oMqRWs4oE@!6pue/Z1&-]ȸPSx"sz˂BbX-*7Fn> FλT3F>Ǒw,TjnsRIGN_uN55|s1o f)R6"U?7TnvT }]ӨY1$XI)$u ~6>f Smr 5]`y V2 Ư"2H%΄p{0-;R*qQuTuҩVb˓y=X +|efٌDJfS'hL*v\/a6 ${:s˾dɅVcfɈN,oiFIڝz3od`;Z."4Gz_ y{͎6[^^Bn_,.;71́ms܇9 Bcdƀ"Kv><RMWƸ!~IY6c rЗe=@=z0jQb $ zʪTP( @P( @P( 66" Hf"[ôPs$k_k( ˴+ԋj@P( @P( @P( 2#b-{KR9'÷wZko|'!)BuU!/)DAӮz[;jt~7_lI.&Gn [?r&ҶTP( 26`A[@uP\:"{={6nKf#m+-5cÌ|Pc*b mgDzv MֺGJNIHx+Tϔmmb+=/n\oY-ȡQZk<ھ"`b<@MQkۗrlJh [>X,<";CҴoun_dAǥZyeEƺhNvl ܟTM-[jO$ń65ArnAԎҾR ;wM{ԇ2-Ep~É$ey cmnUsGLY}h Fbs{w| V.UB`|'p__b{粒uĔ1H=}5P*vOajfؼ2uT}_jrޢe ʊl}mߍW 5F{;=ԗ?.,/p0^nwXeFyck\ƊMzV7%}umuy>ռzg'󭬰(WXe˴c)G-\i ,| o$(=GUҫu2}iky|ǒ֙2u}.:n?ѾlI4rhek6:j3`#,|)=ŋ(~If9<}$!n=wu e0V>CX71#K%}ݭg1V9 oZԼ*2S.m\M*zϑwzΕ~ȔsrU~Gzɽsd-h|QcQۄ" hFu:\%E.{5L“pRGOt[(eLR 6e4*?(D :w)Zwj*٣qj /I:׹flJn}5s%acıWY.@7&jP,Yuw#2 7uXmpjx'7}6RdK3&l6׾Y.beK H ( nkzʌg7m7{ZB%BVBs…mL{mB^Z zúkW[ȱL#E=6_7%J%t$~Qہ2ȈAC=ʴJE͜2-C9PqV(P(t %o؍ l* ;{oQa ,,ڡvYؕe(#Emޛ|"ݪvjEI)o@KyRr h%G~=?*2P !:mMځ=@thM,˵@'{nè/ƑX|֐;6sqNZeUH>-_+8E7o}MUd <ff-$di5[#jU- ɍ{'DN.:,"{FHfR(1qd-͹i'"y\Q& ;M"S4!<ҭ& r~  9Qi Ru0v,dmx]N&Tf41˧/[%gٶaP6y).3cX cč6D87+^c9ۺ;x:^l@rFFȬnwA&8uFOMy<Õ>C^d/ (?OZϳiCxpe{ wm'v|?Uxsq=&h7œ_2#Ğ%nZx+~V>^ ($[oږ]~^_=pHQwnS!a;_rط]$o[ˣRM2oGȔ]ψ#@ڦFv~SG&'~̰3Cpt .^)r/X7 /|]3Ƴ'tQ+{4ڛuj?Dn+ȅ! 17 ~}j-=!=IF!XL~& Mm›Y˝}an})3C3ٱm& *m7ѬsDOd#LAZ}bˁM/,mXU<XD؝(A Fe`G? T]1$ Ht@ڐ(d^1Im@7jz{*q`4$~sq֠Hz \Č6`27QacEVř<*%@2:u=1Uܤ-/#Z,!b iXwƂš`:ZT`w}$bGmz  nVbBF쩼|{JUudPS?Q%W"*FOLФo6#A-S7 ooV=ueqÆ9TVSU⾮qɓʆ$bA'#=:,d\f,·V*$؋lzƠcP( @P( @P( @P( @P( @P( @P(<>"I҂ðv66Y럇Oaqxv$ u7÷߆Im$漝EĆQڿaMvۢy.Gsyx4 $[mEuۯ+巧 L%O,m۩7YٝYJpk-4]N_i+j$s-$øWF ( @P(*P,l54HxlMAc||M-MOx! %3xUgke"OX[T>QDrOcAof1a}{_jҏyY0&.ЁA`5?I}7\0[[[\8W|Y<'en;Cg}bˏùQ瓺Q)=^6nX;m6+8'v*{XE\Ȭlg[ /i KBt6mem.,a6,:iH\ʡAKMdQ{/`ȌkPEY,FYDFv( WLiS6\TԞTYYW`Y ^ȋ,I,TS7[^ڎ' n@ WȏbTb췰 >fdA fH^?YږJbW K jH[VJy7UݝEtKʉĂUN Xݶ(FB/[ AoP |tTCDi/}Yum#oި60LT^ePKT"0pIu7S#K#CՉ*Ύnm?F -J6'2l|.ǒHmG6ѹTZ JOB<.C67V ۀe;p ,̟5qXT g)"ﺢP3|rmُ!x~glX \ l2IYvm򄇣I"E:E'"h!frk`Ùyc3c>.a|${n 9m]L͟BXrB̓ ,cQ]bm.7D.L?_U"6<:,/,HN% _̌w|ikӣ#a-{{{k^#j 6"ۼvoORyY$&D:*JVMpoNN OxYl7Ҽu{F/X#Y~WXV}U~NJpQ\te{8%X>%j wg$|;VQx~'+ 1LtUC#IY?obnOKr8A#"SFe/avᧈ',.S~z"oUqˌ!FTR%{$*؆7r(Szn|gU0qr3TunZwN=QʡәW2/4 w`>%Xc^kQ"Pz*w_uj2]ν*1Yai_>'mY4P\} YbWfd2ߛ[X{\nL{De.Z\X1tXkMۅľ&jwLT'7KQQvFWd$^'xQ u ^߃$w#^&XF;\S-Lc :kճVT]]ZImz8d\`b}֦LHs|B-åBA-4V'R@A[=at~ZOKȞ =]ֲp܃ͥgOe|tFWIQuqer OME[|+ae.;SC mmTͥ,G PRAđT;Xk;-5kcʠǡ^Y~U 0ə&͂O زte\ޢΔ~RںN/5BC` CO_&z8K !-nό=A#*8e`ONwU{b~g᫔P3ӿhVx/Rj8uu)J{L~wLw:u{v)Ç>el/䭮?˳k>7Of6;K~CcY*nOi}k4sn;ʞn"u7Ύb@!SVGyHlF_gZuV3^u/cq} 5it 7T;˶N72%Wƚ=4 }ѵSxmiee|q!.m%@=X},c$rH*.ie#Fg&$b_毝X6eYw <71uoLg pr: }nmL+oY $So XXw.o5f6Qe,p*XuBNrٵIwo[}A'%vpTbŝݺ5}z#X2r#ŊĴ^v egqM$qpqmtVB{#=n^IJLL+$rHdb:sY;'lA&fFskhXڦV!RF $ $*}ě[iٞv8oS$yo;_VUv>f7krÿ\MˈH1oe$nֽb+s!s%rŁ7盛6kO8H(t;ĢG< \m9!&N^4Ql q.Ƞ)<[^mի_Qp#q+ EZhZFuhY&OYuަm]%ç\O&=>LSσ YO<ݢ M#}pҬ9eL: dxm`[>SWɧjg,x)gzgTxKŹ2ܺŸU+,SYmjo'Z ;Jm*|%~!/-3ތ1O<2Yca9ƺ,FO{8=[w9/JTyEXDl_ 6 k6ic}S,S4rIem xmel'^L ?z#'!kWŽ>+_]_?zyL\\Z #þ?x֏B^ސ\lVp+# &GRFCpJDNHœƞ8UEFtI`KoY++ixv5Z]3/# 1a9F2dKb) [m͊RɫYmz'>K18蹜ᵈĈX7xvvTGѐ~),,?!57ރs+#7ua1>9 ώB]- Pu Lz湏_ӓ?#/e]clSsJ/uax[ Keqfg/ fgu(7%@WpE/Uh=73x@b-˕a|i+ e Ȳaƃ.bDfb2H.FRM;ǑWm[[Qf\W\iy$4RbX_9de[lo*tnQ>otޒy ?RGA5ys_N]̡q9du޵eK0祁hrU_TvlEJ+/Ӓ@iH믲8]&$,{n kU>&N˭V"qˉ%cq֓*e6n+˷֫$Oeb el^B)v j6VF=1=14ʧZHY?78.pNtS< u^3"<سA<۵rUVdf uvuN+Ǹc7!//eg"I=-xamW]pd9^~ ѰYlΦH.e]| хa*m7kYY/R4ZbX_ Uo+`=/qk0F;/ۯh (/0yEj [t]o' WO{V;k'NZٛ+#"z& ’`y͒wm"kJ,\vkYW^?2n)=秺nߢfbkmvWS}/b>* ~YgNr4`bˠK 9wfM󾛛8_3ZǍ\S;빃А8qZ=>r5ͅ6 an ^hi&:Lz{6&RIsh 'e]Xnݺƚ헧K|#.վON 'ODomU;ma~ _h͜;?ú_/SCבyo鶹H[-^[ Ǎ|*WJ~FzճZcɒ%.UZiesnާX8gAO!AK^C8zG`w2Ji7ڠHr"qMx|{_Q?R57=%;cBfeۦ!؟YOͥ*8֮G}5? _/Z/62?Zd6.k+<:ەkrn[+uȢg"E$YH?̨i8@C#XwnoOQ|erB3D /muɆ6yR5 n֫wi#.Wx|rFrV٨YqBm!Tw4cPvYWV=Kf+(*nR-Wi&v߯|6KdI´ Y2b^c߷mL)f[LR9K .,z ?jêǣШɛ&.~'n\8NcrB] NK v5FӿԟNMRM1 ʻ~`Wݚҧok>NZLTX&2qofKD,$Gq$S_#4K7vէh:P]@P( F(&‚FoƿF"*&"Ր ƇSLvR9\D!d1+$. u磯_YT}Y91b<z;m_]Zѝ}Z8Y3KSlMmSx|uf}<Ȳx1&˽x *)]㨳 KgzbrLvfI^O8+ u@t5Ǣ9bɞ|3&r' 12-ё{Y=7Q9yВ,+}muT6Y^l~&hyrAtq3ؒȷO2ꃏOܞ+fĕcMz+-^" lq1q|Hو2e>% UTT +_>/z)L2&!\!-5x>óu֭+uSO8&a#BrF+ƻc'V6kxn[S s+VI6^e'E Aʦc_QnĞο&V<؞8Fq1O,,nfwRZǷڭU[.ę\7'#T|!;;!˹.C;\МN'`3PR hc#F /V}-l,83prfKG,E Ag^Ru!Lž!alldu/ۆm[5kP(%r9jHȯk:*/) YO%؄ށު(E{/Y&ֶ+#ÆnAȈ:~lxngy9||6%S'cZ(p{jZEi?@}ˆRXn10Z?sdEI jLImn׶#Zvԍ/$Cښmr7#"1"k_#"V7j ?uÑ4j"kS:(>.G77:qSTt]P/,L|f9-qIxY0Uzc|,7!cbLرh;hn;^8?Ԝ"$N" Iap^+ Kx=?Nc#ʬ#5c?ּì17yu>iHJc]fJ@P(PSj /om @P( @P( ւj>~&h=34K1e0;Y6'YNj/'Ȑ48px2&;[vg|ϟf&L\. z@$pz/ #!XMX #zy<9_M3/FfIP5pJg6۸+zttd E0r2Po_j΅#0{[QW|a7WL t6}me%v/{}5qmF^*\fTǜKz륫K̻CoJ ]{"e7r 2Egm5Ofte|R&iGgAp茵xd w]j ,m\u7o3dgd:ܵuʬH3jhհ(17] e02*;5D-Q" %#j+-k=F'd66?}LBň%t59h.G 0mr9%axЗES.sde$%k l:&ڵly KtI?ԱԖ#_^gX.&]ڌ+6L[De|}LH,G͋=-VDaY4_<_wUq -bw]: Xq$a>^VO-B}a|fCڷ"r*g'BpWkvu\[?E ſ/W]bx!=Mso $tO!gbEZMO5&즧+G|0c(X} -FD@ 7+bgf OmELf_&wE:UKpٔ`׿P+i ,bI l{Gg(c;j/wkygf2r,k:UoYe${9 P>eR( oq_k;37Xu쩟]>,+m6j( @P('㲢b$l:Sph>%{8}@@~0-؁գo];n[rϧY}Eqy:CW6Z/ޯ,u}??27huGf ^iշ_m?/J؞귓d|s4 /f4qZ#|kA+7{7RT@P\I!)' 2$L/kUN&L,> BCP:i\[٧_^[6g!Gm< ONKvџɃ.ދ~ͦ{k<صW#U䐪[A\ejsQjevyrʎhx2C&=G4t:MNQైܦE&ĝP-~Sïy)|On~muɝ&,(:f,ӷug^3peY#$ 4pʁb0P~ڼ>f-7 njy3~k[ۭ5mvz&8r=v& @"̮o`J{j/#㧺Ȋ kX羽M>ӝḘ\ /؎Ѻ= $*-/S?+fzS.N%Og>OowKi%Xlñ՚ esR1Yf%ۣv^xoKq-_G(\~? }ҸMud76: ofߕ}`g)}n(@->?~3AN;[ r.v}g'D/'d {=cmYzYb ۺ9RlO8`^6$9}MY&8AxO(cBAU_o?l͖emHɯyuډ5i}V4vA:G @3ׅ6[rџEsxf[~VZz_(رH̡v`ۓxۻVwLg {o3/M"YcӤDKHĶv=w[鏣7Ծ7) 'VvPufU~+xj'=ܾFWLĈ:j_h_,NUX~~[N9<;G |UӵXw:N>Ά898rs[<J:KJa/>zb.b7Ct|_qL7)B0Fh9Z4ҟ0W#Zvgs''fv ;)C&#hCSqTOYYf܌"' G_j0Z=[lfw!ϋ-3qd\$Y7,m0#{p_'1Mrы+24R;Ԇ?*'oJ7=ǓIhɎ~>I>Y$eWK_F# VMƕxߗ9#eHm䳌!̉7_hIW[g^l5/|# 2n1r$S>Xr~o./Yd+"6*_pڦ|C xtK{RoCq@q#`BnoV;7,k/~} ;y?:+&s,U+|VYdftiNCx̆Xd:Ȍ[ Gi.z8pRA021V; rn*mmkL! ,LO\ۉ28/:c{6+G'߅>?S Y l#AE[QGWI6zy3'VD,V"6u;z !cK쵵_M=X:k\0#}#t7E4Y[^]j틤>n{˛icqKE6* ;A@ kP~5F͕QXmLqe`:j]AQuȅ>9 |LMH/Ů|Hj6Nk蟥xYdƊʶ|2ͿJ`64qDmۋ ݤUOq?2O'hـltH'kmgk=}.4(uoܿ5@@P( @P( @P( װ&ڛ |xXYNF|m}vYYaJry9l*/Tz݆ՉoF=8mz?Oo9+ǟȯTdmˎeV5ܙw\|žlxGzU#™lxcHdIci#FWV[)v,vۖ\8̨bfk>g;FO@O]*1/ ̍*#:kp1[v(ֿSqWʲ6&»ǏheZZy&}cm|~F2ÙeҼ{t,n9En!#;ZOuWN0qSGfAu>xY¸`Y .+N?tbJڙ j( @7.uZL$M[쩗(@Pn-kRDXq~4 ~s#k9: Pֺen2ea밹 Moӯ^wzZGɄǠk*c`!$ȡ$$u-vD0"zMb$fZe 8lc#jȡ϶b3";fNgI/EU-s8'#o ho{Tg*ۖ9r#"{TH:CZ_pb!v֦yZH|@.1^{ EZ5lD3['K/ 9v}k9ܰ\H+tpHEo.4lFȻGFmZl]W(1qo)7.k;ZHDce'ʯ:\i[-hl72$kP4" ;s剰u,EuNSeuK-#N[Uż۳UB 6.&6, '"F9z7%?p%_A'}dFQ> S߭ZD LdZmnIWCFMh=}n/85gnpI+_p V1l)-֑h\Psbm9Eʰs5 }e 10$u03 H?L!@wC:T*DuC$vuOetxfcG5t*(:]ϯ+,$'^* Ϭ_9%/Qѯ;hޑXˆV tO=og}6վ.r1qPFnNY,m oeleb3C&:Įomm IOM iKDpmqln 4d"ߐ M]{6G_;#|/슣mD~1o߱~;GJ_>}_r W# nok|֪-Wm⿫_B.F "*3!{~4UĚ\y#0ARy^ꏧc-n, 37?6GzW9|Y񳔁2[n뭊m}e잗 )G2v/ tkvK8e)!Km&@bie_Z̥h #Ƈ)he~K dYΝ4)vtgnkZ벘V|Rr,i"@LJ !KM br@1wq <7[ʪ[ZUWUmV&ZDAcn)"VfLɕn_?SnB<;٫l!op8 g#Z/cmW[CUTɖɏ\;ŏ"?.˒l88y˗}#E'%8ӎI#E$9 )|31j]ghL>@N&3ڲ#T'qen'};V?U(Ңefkm wnDUtNScp!>uݑ#/ƥRO$`c6lPOm2@`N{Mʵ s󐜱;ǼnanַfHKk#fs_٨ e9DȌf6L-`VveV/%4j&>YL9"`0c<9qfW X,W ~0fU +}DFpm&і ٺZZkj~'*G!w_$*5yA(Nt#]VVڟfjV_c#9KXv |^Vqܦ^և/2yl(_{k#<_]~+'{0CXšx:>-HeV[^EDReWUn(`p3Y2ɡ/ץSsЈ5fd\hHՎló}Y襭OyTƢ\ɑ(PvmEc[d6G Ŷyn4}/ W7zg7^GyrʼnPJYn, F [T*;k2\s^d)d>/a"):]gUlOsIX1raBG`D& ܊N7x#Kf<ޣݞܖ=)0 ܧғha?n!NVdt-V(}Z|_9MI02>&x $gY[>=yӓp-17PXbɕoQj\k~-FbʑǕdSi`#p>%_0ZLC֞)we=|0qaXCK*-]/5_FI>78 $vmQկuFq1Fw db@woZ/ׄ|)Ǟr>r1d!0嬑b {ouMя4~*z#9|hb')o=Kx\.)#,Q<*V۞rL!W>eqe@yƲlŪ.jeyZQ_.JrR$*$x}Zi2jϠs+PꍳM˿vU,{/AoGeqXqc1i`E_P/qK_O LE[0_UrK x/^I?_REۥy98OUoT8><ٳϳ$1k00)Uș3Z4P.ݴNIl,DLs.~KF%5r¤V]}YrebbqKi)a2y0E Ug;IYamߥtFz/Ԝ?NW29qT4`[YOX-ʫv)K=9|uf$r9dPY) }@woqrgŗ\YT(VB\ F 6x<`nKsl0CeIe Ǿ>377Uq?'#X#VYUv_LL|z{<A "c(H$OOesmN[^rs1qBbQ}$  T~ޜlj 8Ĭί1$om#ڣZⳢkOJE$׿jFu{lӥ뢡 bctZT[}"›mh*!A*ZX[cHd]9^5;"ԯ\nNeXnõL:ԗ5gM&NrlVq"-u"fY[qDwS_ty.L9RO5J+Qŷ++tyo-r\)Un ŧïOdMy vo},?{ 1VORAִ8JֹHQ8r;iT1ņ۰~ej( :u7"*M3G$]ߦkrjo&߮jdOk'-@&Πp ΂&gNLo`ۭڶ_ 8㴂/kygC򱘅E++㱬"՘ 7>-O,%l &^z\r|7'c7wJ7_“HvطFO֘u/5OE=oL]0C`!I߁ҩ#=8W Qd> WV GmYm^ w"k9;|&.|I ߯_sưpH0fox?GFxq*-o\y{5״W ^;R&[@~*ui5g ǵi6$-yv)afzlc> =?&U16r ޛnm\knjd oi7VDȹٝweic[# LI.\%K0$qI}:Wl):&t#26.Ca~G*/yWn"{2D\dk Ey ~0 HƄ7wMZqԍ> H3bTD|K);WWW7&۶HHFC2$ګ3’&(jʶtaSTkH@:k[)*T0dm$Z7?Jg8#*p-0F(ZYu)Vlđ5iUʉ O7eWi!MNYJbKR]N[i*GO(w}6DdzkWQ.y)*"m^ZY m?Z䳥½'*QX AlE/kהMpgxc4 u,4ri _ ax^QBW7fNmL-#flL.іHH7Iץ^ 7+5Y{;n/UR$ryEfݰ;OeQ6ɎSgXndnӭE*$Ab6T<︰h/m{,*N˓EQPruceE& gV/7@`N|_E*)jEXLpPt`?}ݵS rH՚ /-k{6)h4bXmپ"/Xћ1\Ua^)*1XY$-{oPIW#!YXY .}-WVa$d= t`9nrdh+ۜ\؋[>K&x[WD(u0HuGH uHpMjݣhwmmVYGWwczQpCog0ViJ?T H걆bU ?:[~vߡܹ An(E7lZkϲfXyRG s#7aPž_=ܬyXzl {*/vGyXsrCh; f={]0r 7!l.>pGm?yn?çFVGR .P|;xZ~Vl~ e#L|hA[|?}-]y,CFT,homRd'f0YM6V *Y+RpS-1سPQB+kleNgMxl%q*f;KNIW_' ׿f޽Hn7 ؉U$RKnK9oυPZbS|d HKI5 ~Z$fi5Is"nfqͨ9%Dogrp^OS|o+2&89?;" ݒ3mmH=O?peaui!2.L;m˿%*ff֌?M]zˉ|S lBM'[|qzugњLqo`qy`LJʡOl lྌ|E1@ˋ)d@%XCcDgz~˔ȡqBU-uj0r((  RAD ؞8YD @P( @P( Pw^[zTٹlJM>oX5K['lNL3 W"tY l7`m,b+]i#qM!A'!ql,16.T< llUޥ~\^ ^Ŧ.>VcܡMglKNBFi!;]rKޢ"ֽ ( ?Zc,,FWxOۭ CEG0{uraq2t+]u+fcQb<@v]fI|\oM7vu'w\vg|{E驐m]~ϲZy 7릿ik>FlC[P5'{Y9s[/vwuK.l%vbYyqg4z{6MtRHjO6'7Od5!BMugfh}5kXВ6SoTeBARAfOZHD[#,:U&GBo=uV%Iac*7{.maVy]@Z %'R!!9k YLJ 4,ePﹻve xbR.б C#㥾lkRգӲ)cIA6?V)q#2Tb QUѶ|NmCt~4fdcml*{Zd! u9g65<΃8+-M-W+q@6X]QShpx?T7)H6~QH=FɆ92B3  *EIMͮ,OK((ŐR;:wT饎zkR2$j:k>߻Z*0{k;P,^T@$f= :u;,Tkv@*-2ظFJ\ENi<ȜSkVK!՘ =}&GsNpÕc[ 7{V#{/pN=gMXcfQDL(m$tl2)0(Eu uciG"Õ<:-޵G=/(X[yeaG kt0wH9$ 1e@]t'sHojrNWf\lXm#cЊ\uj2[}TXݎCm1FڞŤ6O2لE+ıKnJ駅}Y0|x 'q1+3kڠҦk’MBT$j/-BKR`*Mh2t%FqkV1w!6U.g INS_V׵eDˈ'@ЋYfx_aL~*dt Yq:;;,:-!ƻّAUԨo4V#+Mnf-~ui)EM{mI)X9@7CkةVe&[L\qO֕l.X#= uԕ7F $_׵LbU$.mNՓ͌H-ߨݣTԮFw rH ͝D FUn~~2t[ WeԫxťN ,1!-kvRS гFňVU6[ v[J /|<1G0Pv,|#NU.Ѿ==ybX$ʉ4A,SNM0Dz kݯ,Ȁ3hOy+aU]^;]]s>_ɋ7\͓; *+J(7kl=ٽG [O7:28x"")%&xnLU~hFl\r2Rv\[p"]7˷y܄2Kkl)f!Q]WZn%@ "Qtu_Ҳml_ә^ˍ1ʀf6{M?sQ6n+^n^\\m:[aO)1 +{o?W W<ۦ=kU GI9Tpvo!Q H۵/N0/ Aj.z׷'la].<6q*rFٙn,;9P<Zl1Õ%6_`"_ܪ7[䜼]}-cHcߞ5fϏu$b1edD{6]Aɲk?}4. aSH[uj9 y!+: Vr sݭZmNșW:9Hb۷7+cprY+7mo}` ZowLOOÑcq#:DsjPP( @P( @}7鬮ac1YͲή'\_/gշL#{ bh5@CqGQ|^/3o۶]z.yVR<,%CQtzw-w5F3 å`?uN{wFHLjŇW-55[V2DYHo.kV!]]?߳m2#`07]]=ə@P%=՞-l煦a~V/"yl@vMa ^d ri }uۆx&콃oh>խɖFZRI 7u׼֒S}h =A7W{I7 5_gmgܜfq;::w5|{4]J' ^mx|,\)"A6YWC(}y.P͔@Pé:D:4[-Mo$ʴ48JD/3I[!pc?i*Cwݶ6&./Sq!'MQzaGwZJTi$]qzIs΂5VrZNᆪ* ߻7A7!U'ViLI08 U:TY''f7 SYr9\K3*q.%oN#}ݷ'+6)"qmDG0tSj-lҒdfa5Ox\+%4pGm0a"NSVE,!InL.Y}+g)a*b%Of\,cԑkiSЪBN{)ye6c$zwvTNFvFFA}D C[m[)lai!qf>V|˃!_٥GUNM%ȹS{j$Flcy0I2݁wkVb̅vy&XX)QqQ #潿JΠ#ﱭ?Y(n}N9]&_5ic Ȍv1IԥcXw[ QXWf])j8J#slZ0y, ¶ަt\͏wAxe@P(P'S)EZ{)eM;M*' f!$Q-fW$tiFU醒)cpݛOM;{Gr8XntoTc,xS]8umVDs}Yե\0U'QHj4_akUZR-URS~uJ϶{k:wYy\okQl0<`䉙@nl,ۘ#BAB5ӻKiDȔ7&j'{;6 /^Sqַ o)eg7{+1X9RcChܶwnn-miц[Vۀ)gb4Y")!!܀ ei/T5w)qJ "GoGHTmʵke2x]Ʉž9~ xlŻ4j4g8c/+ƿ 1k6ֲ_br|~CU*E6`uyt_'^~~x9|I31"Ƭ ,(Œl N޼"z\_YLzS8M|1 XX,1,HD]GO~ddqM9,yrG"'75nG󃶺>fp73*I*ʢ CL~jxw/k 1^.~C,䓩tI6TP(粎6vG+X|YOT7+B,Y7]}1tix@?ӮG!>6 |Y_ cct6ٵV:ukcIu7a𲑡W,}]ZbAZE"AT_qoSj0VH11&O*ъ,FJ8_F5Y_SԞɂT;DdmG65TP( @P()A< y,"]U]tU:{j땥i)P4im17;wv~ŮcYwMΒ97=IBͽMUg6D†9\s*URīnkYvS$=eDЮjiRkV6lfC?5KrzՕ( @P( @(3ÊxfnOamV|f&Ս!F#B}JױÃnK0E:eVp@A[tn.~XkSѸ vw`$bG?iwͯ"1ϖT6PI RvEK~QxV~Q 6bx=R'Fi\jMz29~|e8':ri:^?vEv5~q1]:\U3Q0"7I RlOuӸֳl˝wg3 Fֱ1'0.M]ҦEl6CrA7D{*dϴ~+SqZcLIvsick""wOw}amU&KooJ YR5MM(ny.6S%C΍"6l-5mS+["_Q3Ls& 6Yp Dᄃ% V9R@A"㼊NS!Up]ؓ~eEKmmR[#Ur9LsH:"ܰV(o(Sjy }l,ӬCtcnvPs w{iЩ1:ۨi2n5 򵣄ႎ*9Bb@O~{/Wl0 G*reg&scz;*sF$k{ڣ&rLnzŇJvB%dJqniRbF\qVa~ȉyۡ(F*їԬʧrڠ<{H׿EW!|Le+7)kc458lE\ӮUTֈohH65L\.۔k޵(GbFT)m: Qdv*䋍4[ScdkIqaAN0T'fVHU,nM${-kEruNb2\Ga4Xȗ:jsC'm_ڋ'}<èg)5/jC+FlLi`-,kMv=Qϧ χ+~N:fh 7ץ.G @P(eacv_O,f+  ~ęt<"HYk^]9$'//;i~UnvyJepO+E {Xw[]Sg,V+1V}J_66)^f>œv ?ïwL#6SnB[kWsecgk(MVԳ__Y8Kq! /%Lj؏R{m[~yyi'OfJ˓(&}hBocaMgk⾬H8hCcbB71Cx̎oxj.kϣ˛>yf'Y,(T_6+nQytRc,qș΂h!_.1uIgmYLYěngYR ,ݩrʷ=Hx~[U5ELNѭT)>" VZ~.&M )7X.eVM{fkj%[N]'(d>[I.l@w* %f? ץ;,K\) tpF+=SX>Pޗ  Xw? -]#hbQwUE5%kIRro|W]iZ9O43*1= ﱱ}W䥄a<.ܗWu#%ʫ+B|eҢZx4p!4PpX^SپZӶYǒ_wm˶ZעOfjxyx.l|d,U)w[GtI9U7;$EhD˛8Ջ EDSrwZV@P( @P()@4 ( lI1l `m~è5` @P(;M&?xj\ rYkn}t嶾+~G3bee4t$[m~ŧ=ki'˷~z_kC/%JE2wz;uqw٣xoNLoCp^,5d:.Ǝk{tW[jfrXxbR/7{/\\s؞fX|R ,or;*q"g)Ya ԩ\uWk"h_tq=R2 PnN/qҫo7X緲7 [mAT6v7UUЫنQ'u_r&\y4uP zteSoNLo[mUXmVFm7KiUahʖ c@;5-4دC2ck[hG[Zu.Kv)٧A.Ĭbo54PL}IZTvBAsí[)8 +:JUb VfM(KX]Ia,Ȳ|bv{TȶRqFQ)&F&#`AV^C *p5ԛ~UL.vP *oDm#Zj @",Y:ҖBssOu}J*CivM ^TVXZuL:!ȊI>ʷjdc&QqOhՍBU=-Ļm/q#3Ԟ45%[{ }TﰲSmȸ Ubc0AS*%6+uBA~Ѩ5+2;#'P;~Ε\,a >`=[N8GX;fQ$pe(xtQƙn/~Ρ*s ېmm5Ӭ,ݽ)nQ%X-}:VnlF!na.6.B(V=,c7]w>&YHleFP}0.f; X 5lU{E$! ߍvcۭ(+)}mL*$P@C =_Xck"O}M[ e!* S{~:*4/ꢈyE'[܁ʴq.u:ُ*YI : Qfe_h:[wr8YcFI^iT!LۥyNxK8fA6Tn=u$oQL/roNRď/iYvmY*R15bQͮ%RH[l:=]&W/&;$ h{1~'[Xy>K`,H=1 @P: P(G+Bےױt"ǭ> Hr! X[vUsse,^[$FCmbM=n54tIrB i -wsqqG^Y22ɋO)[h^QvNI $>!(6Q`tomfdk42(=zOmC\\eDɦ7#ijs3Nh!FGri93rM*J`罣tB\"Zx2٤nCɷy9| (IٖX(t#}8yYa2r3*쌛4fv7 vvǧrO|S\Fv\j ] _zdUɇ)qs1}XXSsX~|fzw˂dd &dI2|'lcnSY٤fB1cduߍ19I^X6ؾ{Uy@z.4ECT.%b$$Jؙ7WDQ,1t]|3xUJ> 4F(Wz779;2Ry|lc%`:˵ڧkk=~ĸr9)(˵vu>!.VRpV> :Q˹uG<<`elL{~+ݡ:$Kk[(Q=Lەp@7ԋw?MNrp<ܖ u6*+V}So D,B:%[OqRdIa3dZ#k}/q֢j;NPtoNr[Hq\F#mFuԒ>{jDX LD.NEǺ0#xX/k8fWJjMM6ֺ=9jaYS^R;m-^_Z1I[ ˥hSXo嵞kO+.ds6Ң輹 fAjonUK&+^KX 7avE-LM.EqT~": u 2uAQc?pק&pʙ2njgٹ+Y f=5WHfWE@6l<]',9NA:0V?(e=Q]> )$auKnm.۶57k@P( ϒ+XT&L&ܳq43VO,^4㼺|!G\ȥ;h mnŇF^Dz bdC Q)uwV8Qu8eKF1T}%C_?t5\1`6' $X4Xؙ-Fw-GJq1ʹB#$R~ !m-\V\ vG)g7%\fbmgU"x/gҥ~!ɗ ܌MJ<5tl1W*7n[R*ŝ{nU@P( @P( @P()AIB uuDʐP#@znyqs# EbR=w\4ӫJ7v),'N"j%w?[v+p/Pⓑi_8o lRB0 m^3|뿨9"Ø6]>&[s#N'! ]cdG1(C'v }3F8Ui*w+~ؤݭʋ#,m4elظ9HT{milU^SYfi٥6$)Rk{Q[(:NId13cWWZKG8!,.u.2 Ol;{}kw\q Uǂr $ﵫ+䖒g;)v_S6rÏe#0fHw5ˇ|,m6Br:WEm]v# XVOۡo ޣCǜ3voڮP[DxJmr۴~`zxos6 O#B\29SQFKXާ-Emt4؁H@c)f,Tc{)_<6kscnʅVC;3J6NRbĊ%}(>v%i*X׈e $ vEfē7sZKlvORjV' QWOXn:tR̢FߏEIav$F߲Y*l]ol ܦēej(Ȁnw*@YKeJ#Z DXC$O){[ꊍ9wb/{ծ 9kw@6pœ+ S. 8)ܜWV'y.aÉHaqk:ͪ-d:2ǠSJ vS+eiUb S[i0'V18BNL+N?U$g: \O;i0DHs9t kӮưڮͺ\3_&iW~ҷaI dX>1:wj^Ӝu_mX1,ap57i~8Lk0d3(7bdU?mm^Ⱦ5N6yPGϛ\7UDxK)e*ڮ̬XzfdfJ#Bf܌A r^GJ#bVwX59u rȭ.4P$ 24ׅ$qDid2U^mEϪ|8>8\Sq3SROMUvoZOws޼}Mr$i.awo-^_.bF,I*#[jK^_5 VzARlݵNNXsxţaѣ$TٔCy\#d@_/1(X,(Gu, fn"[HfKpbXX"M"USEvՇn%]Hbw*&FdI%x^QiNKt8  EYWBA1$ɽ0[7k^p_\ϋ+ ;H& 39ŕW> +FԞ=1dfD/$l"x[۶$uѬ!cؖR[.n6LwA#<(Abmk Z^9>)LaeZkvozS&Pc&Cf mo{VT+XUo,H *A,}!ka)c5 SjN.h++Z2 #M(Vn мq_@4ve I,hKhAvU!3>\ ;|Dٺǥ7=P$XXMBu}ҵZ\mbt ;.;?嶆o4cR=XFX[΍IE2i&E1c+wXH~!gBw6WO_g5z0XK-;mKVg֬DH >fX{]?mc~?r,}/"[qtYgpk:;XgLW&\w}˰xSНK5-SˎWH*ږ l-$LglXPd"V ::o붧<}'BY10E} }^--qf>F>J<1` 2;vx|!kwY+6~\.cȌdlOE̘)9dw Gi.l̻7K9yR47Yb)M}I?W ^P( @PI9s[6,z ^M}&kq[k,K^Q]Nᮞ*;l6dGXeaU /yxEyrYz#Otm19HBMSk^=ik!,fVǹzjЭ?&:cvWw8ĆLx&xJȪ Pvc((t#\\^P5QYW[)o7}[ǯ}0s\+2t h[CB|AXB@TsM1˃1@P( @PfȓA$lziu*1dcU3`7:* M_&qH@ZܕQX6MŇo6Z$R\A7( @P( @P( @P( 6@h)P(p\k^Mse}}2rw%[#pǘf- p(U[b*m3n[﨟To@b'뱛'H&FGp[DWd9ak!5kLX`TW kn_UN&^pm#nDXRBnIYɚY~xEco u*_VI1*T xp]5ƍU$X_iW2."S۶^gpcǐF>-g^D3ceOdQh5g)9[<Ev|߅\RdaQm}=z|&w#Ğّ$rc$QhWoiծlL;)=Cnq)~[+qęQۆ\_.ӺǷѽő82O?+k]^uE '??n&ޞ0c@s{w?mck+U" 4eu[iԓ#6{jMj\/+g;GkYXXoߍe[H >5B1ڮotI3̋uVZ׿}L0[y-V)Kiͺ¨, e8dpIQx(<m:TȲ)9 *{eiXF>"n Nl@wRt׾윲$E%aɕ;_te (k:vTeKr,0:_EMW&Ḯs#CS.|v>a]G*b̌lEUgnخK1+!7]t>Yqc)@&,7&ݮT0 Oe$[EȿNڼBLgYJ$]Q+'6,coƬ@մL`;FVF\ԟV\Gԋ\[rE :ơ JnTJQ#lXo5\u/Lpc IڭFC(Ȍd{+6v!Im_gj9XnmDLuc;jH6"'ڴYXGk+%\m z,nkX2u+2CvZ$r7[*Yku:$V 0 m+)`y*xٷ:Zfd+eS$RwmvѶdB|::zR& ۮXX 5?aSmnz}~z B` 麟Jr?rILpRE@ eE!"H5bj\mYˑbQ(m1.NA}mM,JZoO%@Б1RhCT/W aVl^.x^jrd#mζCS3rovZ}(E}E3PfRōJ-fPX~Eejh0rgsr ";u)5 uՎOPF,[?m[k=ɻ⭹mܷxޥ<$';&WlEIM$P+/-K`Țs Iqߵ{Dɏ$oQwxX6;BzIwH̯C;x}lډE!v$wŸJDNS!¾ds]^ewۻJH|K>(gY$ GRo{57식GM*-,NۯJs "ˏ°lͭr[Fcߺb,`ɗ)NrܛMtRL,k*^,pEDm>9`C'%/P;7/U| <#eƣr{oi,'* aOgLbV&WoP W,rȖXqAȟS"]w\?VeqmI@}A6C`ETh*-E?mNDXb2˶݌nm67ҧ[^H%l ZaTi@B{oI4\h&S8$qܧ_NIS+h4+: >Tik ᔝ# | K]BmضcJVP de `qb7~ w3H2.j;qx~A?1ˤp.&quuMRou\-r 2=4tէm=N4f];+ٕ@P( A2'KٗCc\_}7k4|aqi$vk^ݥ⺵yܑo'Q0Ѽg gET^q`6m7 nSb͎-㐠|?ݰ|@_9$_,}eaG khA;O?)k3լ82I..rlHt?")zpӞ&e."Ղ1Pt"N;O wdfK>34,fQEV;;~Zy,h fYWA@P(ףsʓ+1&Uaoѯom5E_[Py3R5ⲋE"|ǗAZI;QD;DbYW"tnåyI|w꼩ka#kkX_ݟme|_h!b3y?tR@'[׿7,r`$[ oIpK+3I%G@4p^k'N[Mzڲ #$b̳ZIӠUtmv:0p׽ӴכծmD#ďa" /mHnX7| $Y hkkvYQL+я+\X)٭ԁdY.=+0CZtVV̌|`Jd fj;+Y'汊x˨vS5UcLGla}7㼟QT"lIV6c>[S٥6 tcE%G}`Fjah=扵PYjZ<͎Bk:2Dat" cs21{,u+l Ǩ :FVʓ3\t_Aw eDYYTUː/awUa#5]jr^Vlx'SM{id)Ȳw맿6PXGZ* r9]({v츫U]*]>`:_ケO;,ABd+u'S/ݖʄug06Ss Pl4YݕN? " @u<[47,N;ҧ Qrt:ekX?˿[} |CE_vH0"VrѶnڼZ1":t5+1miV蔈 N}Rp(Rt=Yc8NNMH_I R1Ji S8 I#uN`mіkQmRaDD騷hE6Q f_X&޶֧*g8@̷UAڦUlp10E=ze{b+=­Iuc}Zzq[1obuYڮ0>{mn?Q\CE ,-IW|t"x*'\:؃V;GxJNS6,m}tY&