From tony-x@lownds.com Mon Oct 2 01:47:56 2000 From: tony-x@lownds.com (Tony Lownds) Date: Sun, 1 Oct 2000 17:47:56 -0700 Subject: [Pythonmac-SIG] Re: Python on Mac OS X w/shared modules [long] Message-ID: <200010020048.e920mvP04507@localhost> On Saturday, September 30, 2000, at 12:57 AM, Martin v. Loewis wrote: > It then appears that you are not linking with libgcc. Aha! Ok, another patch for configure is below. If after working on this = I get an automatically built, fully working python with shared modules = I'll try to move the changes into configure.in...=20 The build process goes quite smoothly, including building shared = modules. The resulting python.x binary runs (I'm using --with-suffix=3D.x)= but make test and make install have a few problems! I've detailed the problems below, hopefully others can try this out and = get further than me with less workarounds. I'd be willing to give an ssh = account to a knowledgable body really eager to help (email me). A = temporary tarball of the resulting python install is at = http://tony.lownds.com/macosx/; un-tar using the command-line: su tar zxvf python2.0b2_macosx.tar.gz -C / rehash Ok, back to the problems: make test bombs at test_fcntl due to a strange bug caused by building on = a case-insensitive filesystem: test_fcntl dyld: ./python.x multiple definitions of symbol _initfcntl Modules/fcntlmodule.so definition of _initfcntl Modules/FCNTLmodule.so definition of _initfcntl This error ends the process and no more tests are performed. Continuing = the tests (by commenting out import fcntl) gets me through the tests = with a few more issues: test test_format failed -- Writing: "'%#.117x' % (1,) =3D=3D = '0x00000000000000000000000000000000000000000000000000000000000000000000000= 00000000000000000000000000000000000000000001' !=3D = '0x00000000000000000000000000000000000000000000000000000000000000000000000= 0000000000000000000000000000000000000000000001'", expected: '' test_largefile on HFS+ takes many minutes and sucks tons of resources = but eventually works. Then the tests run again! Ouch! test test_pty skipped -- Loaded module does not contain symbol = _initFCNTL test_re Segfaults due to low statcksize, running "limit stacksize 8192" = then=20 "./python.x Lib/test/regrtest.py test_re" makes the test pass. make install has more problems: - it skips installing the shared library, because it checks for the = wrong extension (this is from the output of make install): if test -f libpython2.0.so; then \ ./install-sh -c -m 644 libpython2.0.so /usr/local/lib; \ else true; \ fi The shared library is libpython2.0.dylib=20 workaround: cp libpython2.0.dylib /usr/local/lib - generating the Lib/plat-darwin1.2 directory fails because the = Lib/plat-generic script references python not python$(EXE) export PATH; PATH=3D"`pwd`:$PATH"; \ export PYTHONPATH; PYTHONPATH=3D"`pwd`/Lib"; \ cd ./Lib/plat-darwin1.2; ./regen python ../../Tools/scripts/h2py.py /usr/include/fcntl.h ./regen: permission denied: python [3] . . . workaround: edit Lib/plat-generic to reference python.x=20 The rest of make install runs smoothly; but then trying python somewhere = outside the build tree gives: [localhost:~] root# python.x Could not find platform independent libraries Could not find platform dependent libraries Consider setting $PYTHONHOME to [:] 'import site' failed; use -v for traceback Python 2.0b2 (#3, Oct 1 2000, 17:07:08)=20 [GCC 2.7.2.1] on darwin1.2 Type "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path ['', '/usr/local/lib/', '/usr/local/lib/plat-darwin1.2', = '/usr/local/lib/lib-tk', '/usr/local/lib/lib-dynload'] >>> sys.prefix '/usr/local' >>> sys.exec_prefix '/usr/local' >>>=20 Wierd - the prefix is *right* but the path is not. Looking in = Modules/getpath.c reveals that WITH_NEXT_FRAMEWORK is screwing it up: #ifdef WITH_NEXT_FRAMEWORK pythonModule =3D = NSModuleForSymbol(NSLookupAndBindSymbol("_Py_Initialize")); /* Use dylib functions to find out where the framework was loaded = from */ buf =3D NSLibraryNameForModule(pythonModule); if (buf !=3D NULL) { /* We're in a framework. */ strcpy(progpath, buf); /* Frameworks have support for versioning */ strcpy(lib_python, "lib"); } else { /* If we're not in a framework, fall back to the old way (even though NSNameOfModule() probably does the same thing.) = */ #endif Basically, it finds the path P where libpython2.0.dylib is loaded from, = and assumes P/../lib is the standard library location. Maybe the = semantics of NSLibraryNameForModule have changed between Next and Darwin = - I think a clean fix of this problem would require changes to the code = above.=20 workaround: [localhost:/usr/local/bin] root# cat > python #!/bin/sh PYTHONHOME=3D/usr/local/lib/python2.0 \ PYTHONPATH=3D/usr/local/lib/python2.0:$PYTHONPATH \ /usr/local/bin/python.x $* [localhost:/usr/local/bin] root# chmod +x python -Tony Lownds *** Python-2.0b2/configure Tue Sep 26 09:57:37 2000 --- configure Sun Oct 1 13:27:51 2000 *************** *** 596,601 **** --- 596,608 ---- sed -e 's/://' -e 's/\./_/'` && \ ac_sys_system=3Dnext && ac_sys_release=3D$4 =20 + if test -z "$ac_sys_release" + then + set X `hostinfo | egrep 'Darwin Kernel.*:' | \ + sed -e 's/://'` && \ + ac_sys_system=3Ddarwin && = ac_sys_release=3D$5 + fi +=20 MACHDEP=3D"$ac_sys_system$ac_sys_release" fi fi *************** *** 2583,2588 **** --- 2590,2598 ---- # Minor variations in building a framework between NextStep versions 4 = and 5 =20 case $ac_sys_system/$ac_sys_release in + darwin/1.2) + ns_undef_sym=3D'_environ' + LIBTOOL_CRUFT=3D"-lcc_dynamic -arch_only ppc -U $ns_undef_sym" ;; next/4*) ns_undef_sym=3D'__environ' LIBTOOL_CRUFT=3D"-U $ns_undef_sym" ;; *************** *** 2666,2672 **** hp*|HP*) LDSHARED=3D"ld -b";; OSF*) LDSHARED=3D"ld -shared -expect_unresolved \"*\"";; DYNIX/ptx*) LDSHARED=3D"ld -G";; ! next/*)=20 if test "$ns_dyld" then LDSHARED=3D'$(CC) $(LDFLAGS) -bundle -prebind' else LDSHARED=3D'$(CC) $(CFLAGS) -nostdlib -r'; --- 2676,2682 ---- hp*|HP*) LDSHARED=3D"ld -b";; OSF*) LDSHARED=3D"ld -shared -expect_unresolved \"*\"";; DYNIX/ptx*) LDSHARED=3D"ld -G";; ! darwin/*|next/*) if test "$ns_dyld" then LDSHARED=3D'$(CC) $(LDFLAGS) -bundle -prebind' else LDSHARED=3D'$(CC) $(CFLAGS) -nostdlib -r'; *************** *** 2741,2746 **** --- 2751,2758 ---- # crt1.o) gets erroneously defined as common, which breaks = dynamic # loading of any modules which reference it in System.framework next/4*|next/5*) LINKFORSHARED=3D"-u __dummy -framework System" = ;; + # darwin doesn't like __dummy + darwin/*) LINKFORSHARED=3D"-framework System" ;; =20 SCO_SV*) LINKFORSHARED=3D"-Bdynamic -dy -Wl,-Bexport";; ReliantUNIX*) LINKFORSHARED=3D"-W1 -Blargedynsym";; FreeBSD*|NetBSD*)=20 *************** *** 3882,3888 **** AIX*) DYNLOADFILE=3D"dynload_aix.o";; BeOS*) DYNLOADFILE=3D"dynload_beos.o";; hp*|HP*) DYNLOADFILE=3D"dynload_hpux.o";; ! next/*) DYNLOADFILE=3D"dynload_next.o";; *) # use dynload_shlib.c and dlopen() if we have it; otherwise stub # out any dynamic loading --- 3894,3900 ---- AIX*) DYNLOADFILE=3D"dynload_aix.o";; BeOS*) DYNLOADFILE=3D"dynload_beos.o";; hp*|HP*) DYNLOADFILE=3D"dynload_hpux.o";; ! darwin/*|next/*) DYNLOADFILE=3D"dynload_next.o";; *) # use dynload_shlib.c and dlopen() if we have it; otherwise stub # out any dynamic loading *************** *** 5461,5467 **** # check for --with-libm=3D... =20 case $ac_sys_system in ! next) ;; BeOS) ;; *) LIBM=3D-lm esac --- 5473,5479 ---- # check for --with-libm=3D... =20 case $ac_sys_system in ! darwin|next) ;; BeOS) ;; *) LIBM=3D-lm esac From martin@loewis.home.cs.tu-berlin.de Mon Oct 2 08:35:08 2000 From: martin@loewis.home.cs.tu-berlin.de (Martin v. Loewis) Date: Mon, 2 Oct 2000 09:35:08 +0200 Subject: [Pythonmac-SIG] Re: Python on Mac OS X w/shared modules [long] In-Reply-To: <200010020048.e920mvP04507@localhost> (message from Tony Lownds on Sun, 1 Oct 2000 17:47:56 -0700) References: <200010020048.e920mvP04507@localhost> Message-ID: <200010020735.JAA01194@loewis.home.cs.tu-berlin.de> > test_fcntl > dyld: ./python.x multiple definitions of symbol _initfcntl > Modules/fcntlmodule.so definition of _initfcntl > Modules/FCNTLmodule.so definition of _initfcntl Where did FCNTLmodule.so come from? I don't have source for it in my tree, and a module with that name is not built on Linux. > test test_format failed -- Writing: "'%#.117x' % (1,) == '0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001' != '0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001'", expected: '' Must be a glitch in 2.0b2. The first string is only 117 characters long; in the current test suite, it is 119 characters. > make install has more problems: > - it skips installing the shared library, because it checks for the wrong extension (this is from the output of make install): > > if test -f libpython2.0.so; then \ > ./install-sh -c -m 644 libpython2.0.so /usr/local/lib; \ > else true; \ > fi Can somebody please summarize the meaning of file name extensions on MacOS? Is it essential that the file has a .dylib extension? Is it also necessary to use the .so extension for some other purpose? configure.in defines a @SO@ variable, which (I guess) gets the value of "so" on MacOS X. That should be corrected in the Makefile. The fragment if test -f libpython$(VERSION).so; then \ $(INSTALL_DATA) libpython$(VERSION).so $(LIBDIR); \ else true; \ fi should probably read if test -f libpython$(VERSION).$(LDEXT); then \ $(INSTALL_DATA) libpython$(VERSION).$(LDEXT) $(LIBDIR); \ else true; \ fi where LDEXT is set to so on every system but MacOS... See below, though. > Basically, it finds the path P where libpython2.0.dylib is loaded > from, and assumes P/../lib is the standard library location. Maybe > the semantics of NSLibraryNameForModule have changed between Next > and Darwin - I think a clean fix of this problem would require > changes to the code above. Perhaps you have installed libpython20.dylib into the wrong location? It somehow assumes that the "framework" (whatever that is) is capable of dealing with multiple versions, and finding them in different locations. It's strange, though, that they assume the library will be in "lib". Even if libpython2.0.dylib was in /usr/local/lib/python2.0, that would mean that that the LANDMARK would need to be in /usr/local/lib/python2.0/lib/string.py. Perhaps the python.framework was intended to contain the Python lib as well? Otherwise, I'd say that the WITH_NEXT_FRAMEWORK part looks quite broken - you may consider not using it, after all, and arrange to achieve its desirable effects by some other means. Regards, Martin From tom@othermedia.com Mon Oct 2 10:35:17 2000 From: tom@othermedia.com (tom smith) Date: Mon, 02 Oct 2000 10:35:17 +0100 Subject: [Pythonmac-SIG] Re: Python on Mac OS X w/shared modules [long] In-Reply-To: <200010020735.JAA01194@loewis.home.cs.tu-berlin.de> Message-ID: I too have bought a book on unix and am tring to install python on osx. When someone manages it, will they post a binary for those like me who are enjoying but nevertheless struggling with the command-line. thanks tom From TattooMabonzoK. Mon Oct 2 15:48:35 2000 From: TattooMabonzoK. (TattooMabonzoK.) Date: Mon, 2 Oct 2000 16:48:35 +0200 Subject: [Pythonmac-SIG] MiniAEFrame.py masking TypeErrors in AE handlers (2.0b1) Message-ID: <20001002144844.13F261CDA8@dinsdale.python.org> Yo, I've run into an inconvenience which I've never had before. I'm not sure = if this is due to something that changed in PythonMac 2.0b1. I'm getting the following stacktrace: --- cut Traceback (most recent call last):=0D File = "DD_Dev_Apps:root:cgi-bin:py:PythonProxyApplet.py", line 60, in __init__=0D= self.mainloop()=0D File "DD_Dev_Apps:Python = 2.0b1:Mac:Lib:lib-toolbox:MiniAEFrame.py", line 55, in mainloop=0D = self.dooneevent(mask, timeout)=0D File "DD_Dev_Apps:Python = 2.0b1:Mac:Lib:lib-toolbox:MiniAEFrame.py", line 63, in dooneevent=0D = self.lowlevelhandler(event)=0D File "DD_Dev_Apps:Python = 2.0b1:Mac:Lib:lib-toolbox:MiniAEFrame.py", line 72, in lowlevelhandler=0D= AE.AEProcessAppleEvent(event)=0D File "DD_Dev_Apps:Python = 2.0b1:Mac:Lib:lib-toolbox:MiniAEFrame.py", line 150, in callback_wrapper=0D= raise TypeError, ('AppleEvent handler misses formal keyword = argument', _function, name)=0DTypeError: ('AppleEvent handler misses = formal keyword argument', , )=0D --- cut The problem is that the TypeError exception was thrown due to a bug of = mine within some code executing in the handler, so the message is quite = misleading (ie there are no missing formal keyword argument). In effect, = the except clause @ line 150 in MiniAEFrame.py is masking TypeError bugs = in the AE handler code. =46rom the docs: "raise_stmt: "raise" [expression ["," expression ["," expression]]] [snip] If a third object is present, and it is not None, it should be a = traceback object (see section 3.2), and it is substituted instead of the = current location as the place where the exception occurred. This is = useful to re-raise an exception transparently in an except clause. " Thus, I'd suggest adding sys.exc_traceback as the third argument to the = raise statement (as possibly in other places with similar context?). Besides, as you can see from the stacktrace, due to the subtle rules of = conversion of Python objects to string (repr vs. str), the user gets to = see the 'type' of the exception object instead of the more useful error = message (e.g. 'no arguments expected').=20 =20 Thus, I'd suggest using instead of (or even better, = str(sys.exc_value)) as the second of the arguments tuple for the class = instanciation and maybe also change the error message I'm not sure how this was handled (no pun) in PythonMac 1.5.2c1 but I've = not encountered this problem with it (It may be that I've never had a = type error bug in a similar context in 1.5.2c1 but that would be amazing = :-). TIA =3D tmk =3D= From sdm7g@virginia.edu Mon Oct 2 17:48:38 2000 From: sdm7g@virginia.edu (Steven D. Majewski) Date: Mon, 2 Oct 2000 12:48:38 -0400 (EDT) Subject: [Pythonmac-SIG] Re: Python on Mac OS X w/shared modules [long] In-Reply-To: <200010020735.JAA01194@loewis.home.cs.tu-berlin.de> Message-ID: On Mon, 2 Oct 2000, Martin v. Loewis wrote: > > Perhaps you have installed libpython20.dylib into the wrong location? > It somehow assumes that the "framework" (whatever that is) is capable > of dealing with multiple versions, and finding them in different > locations. Well, I'm still trying to sort out all of this next/macosx terminology myself, but yes, I think frameworks handle multiple versioning of libraries, fat binaries ( ppc and intel ), and other things. They are also used to bundle up other program resources in one place -- some of the same sort of stuff that used to go in Mac Resouce forks in application files, and they also hold the include files for the library. ( I was unable to find mach-o/dyld.h files using 'find /usr/include... but I knew the compiler was finding it somewhere -- then I looked in the System Framework and found it! ) Applications are to executables what Frameworks are to shared libs: you can have a simple unix-style executable, or you can bundle up fat binaries, libraries, etc. into an application bundle. If you stuck all the python library files into a Python.app bundle, you could move the app around and all the resources would go with it -- not install process would be necessary to put everything in it's place. ---| Steven D. Majewski (804-982-0831) |--- ---| Department of Molecular Physiology and Biological Physics |--- ---| University of Virginia Health Sciences Center |--- ---| P.O. Box 10011 Charlottesville, VA 22906-0011 |--- "All operating systems want to be unix, All programming languages want to be lisp." From tony@metanet.com Mon Oct 2 18:14:42 2000 From: tony@metanet.com (Tony Lownds) Date: Mon, 02 Oct 2000 10:14:42 -0700 Subject: [Pythonmac-SIG] Re: Python on Mac OS X w/shared modules [long] In-Reply-To: <200010020735.JAA01194@loewis.home.cs.tu-berlin.de> References: <200010020048.e920mvP04507@localhost> <200010020048.e920mvP04507@localhost> Message-ID: <4.3.1.0.20001002085925.01900168@adam12.metanet.com> At 09:35 AM 10/2/2000 +0200, you wrote: > > test_fcntl > > dyld: ./python.x multiple definitions of symbol _initfcntl > > Modules/fcntlmodule.so definition of _initfcntl > > Modules/FCNTLmodule.so definition of _initfcntl > >Where did FCNTLmodule.so come from? I don't have source for it in my >tree, and a module with that name is not built on Linux. Its actually loading fcntlmodule.so - I'm running Mac OS X on a case-insensitive filesystem, HFS+... > > make install has more problems: > > - it skips installing the shared library, because it checks for the > wrong extension (this is from the output of make install): > > > > if test -f libpython2.0.so; then \ > > ./install-sh -c -m 644 libpython2.0.so /usr/local/lib; \ > > else true; \ > > fi > >Can somebody please summarize the meaning of file name extensions on MacOS? On Mac OS X, they mean as much as on Unix.... >Is it essential that the file has a .dylib extension? No, the shared modules are still named .so! >Is it also necessary to use the .so extension for some other purpose? >configure.in defines a @SO@ variable, which (I guess) gets the value >of "so" on MacOS X. Yep, it is set to .so; some of the other shared libraries not in frameworks that I found were .dylib so I guess .dylib is better. > > Basically, it finds the path P where libpython2.0.dylib is loaded > > from, and assumes P/../lib is the standard library location. Maybe > > the semantics of NSLibraryNameForModule have changed between Next > > and Darwin - I think a clean fix of this problem would require > > changes to the code above. > >Perhaps you have installed libpython20.dylib into the wrong location? >It somehow assumes that the "framework" (whatever that is) is capable >of dealing with multiple versions, and finding them in different >locations. I checked for extraneous libpython2.0.dylib files; I only have the one installed by the Makefile. After a few days of playing with Mac OS X, that seems to be exactly what they are for. They are directories in /System/Library/Frameworks/ with this structure: XXX.framework/XXX -> Versions/Current/XXX XXX.framework/Versions/ XXX.framework/Versions/Current -> YYY XXX.framework/Versions/YYY/ XXX.framework/Versions/YYY/XXX XXX.framework/Versions/YYY/ The actual shared library is named, e.g. Python, and YYY would be e.g. 2.0; Mac OS X system libraries have versions like "A", "B" So far I haven't had any luck making a "Python" framework - it can be found at link time with the -framework option to ld but not at run time. >It's strange, though, that they assume the library will be in "lib". >Even if libpython2.0.dylib was in /usr/local/lib/python2.0, that would >mean that that the LANDMARK would need to be in >/usr/local/lib/python2.0/lib/string.py. Perhaps the python.framework >was intended to contain the Python lib as well? That seems to be the idea; with header files in there as well. >Otherwise, I'd say that the WITH_NEXT_FRAMEWORK part looks quite >broken - you may consider not using it, after all, and arrange to >achieve its desirable effects by some other means. Quite right - the best option may be to allow for --with-next-framework (the configure option) w/o WITH_NEXT_FRAMEWORK (the #define). Thanks for your insights, -Tony Lownds From tony@metanet.com Mon Oct 2 18:19:30 2000 From: tony@metanet.com (Tony Lownds) Date: Mon, 02 Oct 2000 10:19:30 -0700 Subject: [Pythonmac-SIG] Re: Python on Mac OS X w/shared modules [long] In-Reply-To: References: <200010020735.JAA01194@loewis.home.cs.tu-berlin.de> Message-ID: <4.3.1.0.20001002101555.018b7900@adam12.metanet.com> Hi Tom, I've compiled joe and Python and have them posted at: http://tony.lownds.com/macosx/ Download the files to disk, don't use UnStuffIt Go to the terminal su (enter root password) tar -zxvf ~tom/Documents/python2.0b2_macosx.tar.gz -C / rehash python Good luck, -Tony At 10:35 AM 10/2/2000 +0100, you wrote: >I too have bought a book on unix and am tring to install python on osx. > >When someone manages it, will they post a binary for those like me who are >enjoying but nevertheless struggling with the command-line. > >thanks > >tom > > >_______________________________________________ >Pythonmac-SIG maillist - Pythonmac-SIG@python.org >http://www.python.org/mailman/listinfo/pythonmac-sig From nick@src.uchicago.edu Mon Oct 2 19:12:14 2000 From: nick@src.uchicago.edu (Nick Collier) Date: Mon, 02 Oct 2000 13:12:14 -0500 Subject: [Pythonmac-SIG] pyxml binaries for Mac Message-ID: <39D8CFFE.548DAC54@src.uchicago.edu> Hi, Is there somewhere I can get pyxml binaries for a Mac. thanks, Nick -- Nick Collier Social Science Research Computing University of Chicago http://repast.sourceforge.net From martin@loewis.home.cs.tu-berlin.de Mon Oct 2 22:18:02 2000 From: martin@loewis.home.cs.tu-berlin.de (Martin v. Loewis) Date: Mon, 2 Oct 2000 23:18:02 +0200 Subject: [Pythonmac-SIG] Re: Python on Mac OS X w/shared modules [long] In-Reply-To: <4.3.1.0.20001002085925.01900168@adam12.metanet.com> (message from Tony Lownds on Mon, 02 Oct 2000 10:14:42 -0700) References: <200010020048.e920mvP04507@localhost> <200010020048.e920mvP04507@localhost> <4.3.1.0.20001002085925.01900168@adam12.metanet.com> Message-ID: <200010022118.XAA00974@loewis.home.cs.tu-berlin.de> > Quite right - the best option may be to allow for --with-next-framework > (the configure option) w/o WITH_NEXT_FRAMEWORK (the #define). Guido favours killing the entire --with-next-framework code - NeXT would officially not be supported anymore. If this is reworked, I'd prefer if configure would automatically detect that it is running on MacOS, and arrange compilation procedure as required. In any case, with the 2.0 final release so short ahead, it seems unlikely that MacOS X will be fully supported (including shared modules) - unless somebody comes up with a patch really quick. Regards, Martin From vincem@en.com Tue Oct 3 02:43:38 2000 From: vincem@en.com (Vincent Marchetti) Date: Mon, 2 Oct 2000 21:43:38 -0400 Subject: [Pythonmac-SIG] AppleScript Guru Wanted Message-ID: Recently, Jack Jensen posed two problems with scripting Mac applications through OSA: >Hi folks, >I just ran into a problem with MacPython OSA support. Two problems, >actually: >1. The CodeWarrior suite declares both a property "project document" >and a class "project document". As you wil understand this does not >work well, as these both end up in the same namespace, and both with >the same name "project_document". Is it legal OSA to have properties >and classes with the same name? If it is: can anyone think of a >workaround for MacPython? > I at first replied that I had problems with apps I had written, in which I shared names between AppleEvent classes and properties. It appears that the scripting interface to CodeWarrior has this sharing as Jack explains above. I have since checked, and it appears that the interface to CodeWarrior DOESN'T WORK!. That is, when I try in AppleScript (via the Script Debugger) to try this script: tell application "CodeWarrior IDE 4.0" get project document of target 1 of front document end tell No result is returned, no result and no error. However, when the property "project document" is explicitly specified, as in: tell application "CodeWarrior IDE 4.0" get =ABproperty PrjD=BB of target 1 of front document end tell the appropriate object reference is returned. I think it's fair to say that such name sharing is not supported in AppleScript, and it doesn't seem to make sense to jump hoops in a Python scripting system to allow it. I have also looked back at my own apps that tried to share names, and I saw that I had to do some kludgy things in the Apple Event handling to decode the events sent by AppleScript. >2. Aepack does not handle passing classes as arguments. If anyone >feels like fixing this: please be my guest. The symptom is that if you >do "xxx.make(new=3Dclassname)" it should pass >aetypes.Type(classname.wantd). Hmm, maybe if this is fixed the >previous problem isn't a problem anymore.... Oh sigh, my brain always >turns inside out when I try to reason about OSA:-( > >Any help is appreceated, I at first replied that I just use xxx.make(new =3D classname.want) but I now realize that this assumes that the receiving application is clever enough to convert the 4 character 'want' string to an Apple Event type, and apps written using the Metrowerks PowerPlant framework are this clever. However, a better solution is to add the following choice to the long list of choices in the pack function from module aepack: def pack(x, forcetype =3D None): ... t =3D type(x) ... # add this to correctly pack class specifications if t =3D=3D ClassType and issubclass(x, aetypes.ObjectSpecifier): # issubclass Python builtin function return aetypes.Type(x.want).__aepack__() # end of class specification packing ... This change allows the syntax Jack suggests above. Vince Marchetti From tony@metanet.com Tue Oct 3 19:46:05 2000 From: tony@metanet.com (Tony Lownds) Date: Tue, 03 Oct 2000 11:46:05 -0700 Subject: [Pythonmac-SIG] Re: Python on Mac OS X w/shared modules In-Reply-To: <200010022118.XAA00974@loewis.home.cs.tu-berlin.de> References: <4.3.1.0.20001002085925.01900168@adam12.metanet.com> <200010020048.e920mvP04507@localhost> <200010020048.e920mvP04507@localhost> <4.3.1.0.20001002085925.01900168@adam12.metanet.com> Message-ID: <4.3.1.0.20001003112613.0189dc58@adam12.metanet.com> At 11:18 PM 10/2/2000 +0200, you wrote: > > Quite right - the best option may be to allow for --with-next-framework > > (the configure option) w/o WITH_NEXT_FRAMEWORK (the #define). > >Guido favours killing the entire --with-next-framework code - NeXT >would officially not be supported anymore. If this is reworked, I'd >prefer if configure would automatically detect that it is running on >MacOS, and arrange compilation procedure as required. I don't think killing the code is good. I think it just needs someone with more Next/Mac OS X knowledge to make it really useful code. Automatic detection would be great! But I'm not sure exactly where to add it. So far, I've made a patch that a) fixes the platform recognition code in configure (and configure.in) to recognize Mac OS X as "darwin/1.2" b) made it so that just specifying --with-dyld= will make working shared modules (basically, adds "-undefined suppress" to ld step) c) fixes Makefile.in and regen so that Lib/plat-generic/regen works with the --with-suffix= option Basically if you do make install and there is no Lib/plat-darwin1.2, that directly is made using the Lib/plat-generic/regen script. But, this script invokes python as "python" not "python$EXE" These changes to configure are pretty straightforward because they just modify existing steps of the configure process. Its at http://tony.lownds.com/macosx/ page. >In any case, with the 2.0 final release so short ahead, it seems >unlikely that MacOS X will be fully supported (including shared >modules) - unless somebody comes up with a patch really quick. Mac OS X is in beta anyway... How do you think the FCNTL.py / fcntlmodule.so problem can be solved? -Tony From jacobkm@cats.ucsc.edu Wed Oct 4 00:09:47 2000 From: jacobkm@cats.ucsc.edu (Jacob Kaplan-Moss) Date: Tue, 03 Oct 2000 16:09:47 -0700 Subject: [Pythonmac-SIG] Some Questions... Message-ID: Hello PythonMac-Sig! I've been using MacPython for about a year now, and I've run into some questions: 1) Are there other people out there doing serial port communication? If so, what are you using? I'm currently using the ctb module, which I suppose works, but doesn't provide everything I want to do. 2) I know that Jack mentioned a while ago that he had used the Qt module to grab frames from a movie file. I want to do something a little different: grab frames (or posibly movies) from a video digitizer. I have the code from the QuickTime SDK to do this in C, but I wonder if it can be done in Python with the Qt module. If so, has anyone done this? 3) Also, has anyone used QuickTime's MIDI interface? Is this exported through the Qt module? (I guess what I'm really asking for is some documentation for the Qt module. I've read the postings about the new MacPython documentation effort, but it's been quiet on that front for a while now...) 4) Does anyone have or know of any examples of applications using the FrameWork and W modules (besides the IDE)? I've decided to use FrameWork/W instead of Tkinter (because of the extreme instability of Tkinter); but I'm having a hard time getting started. Thanks in advance! Jacob Kaplan-Moss From martin@loewis.home.cs.tu-berlin.de Wed Oct 4 07:38:27 2000 From: martin@loewis.home.cs.tu-berlin.de (Martin v. Loewis) Date: Wed, 4 Oct 2000 08:38:27 +0200 Subject: [Pythonmac-SIG] Re: Python on Mac OS X w/shared modules In-Reply-To: <4.3.1.0.20001003112613.0189dc58@adam12.metanet.com> (message from Tony Lownds on Tue, 03 Oct 2000 11:46:05 -0700) References: <4.3.1.0.20001002085925.01900168@adam12.metanet.com> <200010020048.e920mvP04507@localhost> <200010020048.e920mvP04507@localhost> <4.3.1.0.20001002085925.01900168@adam12.metanet.com> <4.3.1.0.20001003112613.0189dc58@adam12.metanet.com> Message-ID: <200010040638.IAA00904@loewis.home.cs.tu-berlin.de> > I don't think killing the code is good. I think it just needs > someone with more Next/Mac OS X knowledge to make it really useful > code. Since nobody stepped forward in the past few years, perhaps no such person exists (anymore)? Unmaintained code is not a problem as long as it is not in the way. Now, it appears that the code is in the way, so it needs to be fixed or removed. > a) fixes the platform recognition code in configure (and configure.in) to > recognize Mac OS X as "darwin/1.2" I'm confused. I thought that darwin was the name of a free BSD personality on top of MacOS X, and that the "official" MacOS X tools are different from the Darwin ones. Is that the case? and do the official tools behave like the Darwin tools for building Python. > b) made it so that just specifying --with-dyld= will make working shared > modules (basically, adds "-undefined suppress" to ld step) In bug report 115641 (http://sourceforge.net/bugs/?func=detailbug&bug_id=115641&group_id=5470) the reporter claims that this will result in undefined symbols __eprintf and _environ when libtools is invoked. Can you see what his error was? How did you address this problem? [It appears that he simultaneously build with --with-next-framework and added -undefined suppress - maybe that was the error] > These changes to configure are pretty straightforward because they just > modify existing steps of the configure process. Its at > http://tony.lownds.com/macosx/ page. These patches look pretty good to me(*) - especially as they apparently don't interfere with any other configuration, so they can only improve things. Would you like to submit them to sourceforge.net:/projects/python? > How do you think the FCNTL.py / fcntlmodule.so problem can be solved? Why isn't that a problem on MacOS 8? Let me guess: it does not provide fcntl. If so, you could provide this as a work-around: disable fcntl. Or else, rename it to _fcntl, provide an fcntl.py, and live with the fact that you can't also import FCNTL. Or, fcntl.py could check whether its __name__ is 'FCNTL' and import something else instead. Such changes would affect other ports - so they'd fall in the "hack" category... On the case-insensitive case-preserving variants of DOS file systems (i.e. VFAT), opening a module involves reading the directory to see if the case on disk is the same as the expected case, see import.c:case_check. So if HFS is also case-preserving, a similar approach might work. Regards, Martin From etienne@alias.it Wed Oct 4 09:47:30 2000 From: etienne@alias.it (Etienne Antoniutti Di Muro) Date: Wed, 04 Oct 2000 10:47:30 +0200 Subject: [Pythonmac-SIG] '.pyc' and pathnames References: <20001003160150.EB4421D13E@dinsdale.python.org> Message-ID: <39DAEEA1.C467167B@alias.it> Dear list members, I am distributing a C++ application with embedded python modules. I'm using PythonCore from Python1.5.2c2src distribution. I do distribute: 1- the C++ binary 2- PythonCore 3- Python essential modules + my embedded modules (.pyc only -not plain .py - compiled on a developping-Mac ). During debugging and Python error tracebacks I notice that Pythno refers to modules using pathnames coming from the specific filesystem of the developping-Mac (i.e: "MyMacintosh HD: [.....] : My_path_to_the_embedded_modules:my_embedded_module.py") But if no bug is found and the c++ application doesn't get corrupted and terminates correctly, everything works fine. If I do debugging on a user-Mac (different from the one I compiled to .pyc the embedded modules) tracebacks report the same pathnames. This makes much sense, but shoud I warn about that?? Python1.5.2c1 pyc files are machine dependent?? thanks in advance etienne -- it's time to leave this town it's time to steal away let's go get lost anywhere in the U.S.A. (RHCP) From sdm7g@virginia.edu Wed Oct 4 18:03:16 2000 From: sdm7g@virginia.edu (Steven D. Majewski) Date: Wed, 4 Oct 2000 13:03:16 -0400 (EDT) Subject: [Pythonmac-SIG] Darwin vs. OSX (was: Python on Mac OS X w/shared modules) In-Reply-To: <200010040638.IAA00904@loewis.home.cs.tu-berlin.de> Message-ID: On Wed, 4 Oct 2000, Martin v. Loewis wrote: > > > a) fixes the platform recognition code in configure (and configure.in) to > > recognize Mac OS X as "darwin/1.2" > > I'm confused. I thought that darwin was the name of a free BSD > personality on top of MacOS X, and that the "official" MacOS X tools > are different from the Darwin ones. Is that the case? and do the > official tools behave like the Darwin tools for building Python. > You're holding the organization chart upside down! ;-) Darwin is the bottom layer: a BSD unix on top of the Mach 3.0 kernel with some Apple enhancements (including the port of case insensitive Mac HFS+ filesystem, along with some really nice stuff too! :-). OSX is a layer on top of Darwin: graphics libraries and a nice non-X11 based desktop so you don't ever have to use a unix command line. There are free Darwin development tools -- gnu based with a lot of Apple mods -- which will work on either Darwin or the full OSX. But it doesn't have all of the nifty Next-like graphical development tools -- ProjectBuilder, et.al. or all of the higher level Mac environment libraries. There is a MacOSX beta developer kit that is going to be available free online, but is now only sent to regi$tered developers, which contains both all of the gnu/unix development environment plus all of the apple specific development tools. With the shared libraries working, it ought to be possible to build one Python executable with dynamic libraries for both environments: i.e. users running "vanilla" Darwin are probably running X11,Gtk,Tk, etc. ODX users will have the Mac libraries. ( There's a commercial rootless X under Mac OSX server, and eventually, I expect XFree86 to be modified so you can have X11 and MacOS graphics environment.) ---| Steven D. Majewski (804-982-0831) |--- ---| Department of Molecular Physiology and Biological Physics |--- ---| University of Virginia Health Sciences Center |--- ---| P.O. Box 10011 Charlottesville, VA 22906-0011 |--- "All operating systems want to be unix, All programming languages want to be lisp." From sdm7g@virginia.edu Wed Oct 4 18:10:57 2000 From: sdm7g@virginia.edu (Steven D. Majewski) Date: Wed, 4 Oct 2000 13:10:57 -0400 (EDT) Subject: [Pythonmac-SIG] Re: Python on Mac OS X w/shared modules In-Reply-To: <4.3.1.0.20001003112613.0189dc58@adam12.metanet.com> Message-ID: On Tue, 3 Oct 2000, Tony Lownds wrote: > > How do you think the FCNTL.py / fcntlmodule.so problem can be solved? > Sorry I didn't reply right away -- I was thinking about this, but there's no magic solution. The short term solution is to rename one of the modules for OSX. We should probably take this part of the discussion to the main python list, as the next question is whether FCNTL/fcntl should be left non-portable, or should be changed on all platforms -- which would probably break code. I've been rolling around some ideas on how to cover over the incompatabilities, but so far nothing that isn't ugly or wouldn't require changes to the module-lookup method that would likely be just as controversial as renaming FCNTL. ---| Steven D. Majewski (804-982-0831) |--- ---| Department of Molecular Physiology and Biological Physics |--- ---| University of Virginia Health Sciences Center |--- ---| P.O. Box 10011 Charlottesville, VA 22906-0011 |--- "All operating systems want to be unix, All programming languages want to be lisp." From tony@metanet.com Wed Oct 4 21:37:24 2000 From: tony@metanet.com (Tony Lownds) Date: Wed, 04 Oct 2000 13:37:24 -0700 Subject: [Pythonmac-SIG] Darwin vs. OSX (was: Python on Mac OS X w/shared modules) In-Reply-To: References: <200010040638.IAA00904@loewis.home.cs.tu-berlin.de> Message-ID: <4.3.1.0.20001004132704.01787f20@adam12.metanet.com> At 01:03 PM 10/4/2000 -0400, Steven D. Majewski wrote: >On Wed, 4 Oct 2000, Martin v. Loewis wrote: > > > > > > a) fixes the platform recognition code in configure (and > configure.in) to > > > recognize Mac OS X as "darwin/1.2" > > > > I'm confused. I thought that darwin was the name of a free BSD > > personality on top of MacOS X, and that the "official" MacOS X tools > > are different from the Darwin ones. Is that the case? and do the > > official tools behave like the Darwin tools for building Python. > > > ... >There are free Darwin development tools -- gnu based with a lot of >Apple mods -- which will work on either Darwin or the full OSX. >But it doesn't have all of the nifty Next-like graphical development >tools -- ProjectBuilder, et.al. or all of the higher level Mac >environment libraries. The gnu Darwin development tools will be used by the higher-level ProjectBuilder et.al. so the official tools should act the same. I made Mac OS X recognizable as "darwin/1.2" because thats what hostinfo says. >There is a MacOSX beta developer kit that is going to be available >free online, but is now only sent to regi$tered developers, which >contains both all of the gnu/unix development environment plus all >of the apple specific development tools. Should be available by the middle of the month! >With the shared libraries working, it ought to be possible to build >one Python executable with dynamic libraries for both environments: >i.e. users running "vanilla" Darwin are probably running X11,Gtk,Tk, >etc. ODX users will have the Mac libraries. ( There's a commercial >rootless X under Mac OSX server, and eventually, I expect XFree86 >to be modified so you can have X11 and MacOS graphics environment.) I think it will be really challenging to integrate the two different ports; the pretty trivial generic UNIX to Darwin conversion and the decidedly non-trivial Carbonized MacPython In the scenario you describe above there could be two totally different but valid _tkinter.so files to load! Actually I don't think the Tk people have done a lot of work on Mac OS X yet, so that may not be an issue for a while... -Tony From tony@metanet.com Wed Oct 4 22:35:55 2000 From: tony@metanet.com (Tony Lownds) Date: Wed, 04 Oct 2000 14:35:55 -0700 Subject: [Pythonmac-SIG] Re: Python on Mac OS X w/shared modules In-Reply-To: <200010040638.IAA00904@loewis.home.cs.tu-berlin.de> References: <4.3.1.0.20001003112613.0189dc58@adam12.metanet.com> <4.3.1.0.20001002085925.01900168@adam12.metanet.com> <200010020048.e920mvP04507@localhost> <200010020048.e920mvP04507@localhost> <4.3.1.0.20001002085925.01900168@adam12.metanet.com> <4.3.1.0.20001003112613.0189dc58@adam12.metanet.com> Message-ID: <4.3.1.0.20001004133927.017a6388@adam12.metanet.com> > > > b) made it so that just specifying --with-dyld= will make working shared > > modules (basically, adds "-undefined suppress" to ld step) > >In bug report 115641 >(http://sourceforge.net/bugs/?func=detailbug&bug_id=115641&group_id=5470) >the reporter claims that this will result in undefined symbols >__eprintf and _environ when libtools is invoked. Can you see what his >error was? How did you address this problem? His error is caused by the fact that the system is recognized by configure as "next/" without my patch; I have found out that if it was recognized as "next/5" then --with-next framework will compile almost correctly, and will take care of the __eprintf and _environ symbols I never got errors on the "restFP" and "saveFP" symbols. I addressed it by making the system recognizable as something sane, and using the same LIBTOOL_CRUFT and LDSHARED as next/5 When I get back to my Mac I can get some more details for you... essentially _environ should be left undefined (via ld's -U option), ___eprintf is found using -lcc_dynamic > These changes to configure are pretty straightforward because they just > > modify existing steps of the configure process. Its at > > http://tony.lownds.com/macosx/ page. > >These patches look pretty good to me(*) - especially as they >apparently don't interfere with any other configuration, so they can >only improve things. Would you like to submit them to >sourceforge.net:/projects/python? Let me add some stuff to make --with-next-framework build correctly as well. > > How do you think the FCNTL.py / fcntlmodule.so problem can be solved? ... >On the case-insensitive case-preserving variants of DOS file systems >(i.e. VFAT), opening a module involves reading the directory to see if >the case on disk is the same as the expected case, see >import.c:case_check. So if HFS is also case-preserving, a similar >approach might work. HFS+ is case-preserving. As long as fcntlmodule.so can't be imported *again* as FCNTLmodule.so, thereby causing a crash! The check_case stuff uses the Win32 api, but something like that will be necessary! -Tony From ABartley@bigpond.com Wed Oct 4 22:55:44 2000 From: ABartley@bigpond.com (Adam) Date: Thu, 05 Oct 2000 08:55:44 +1100 Subject: [Pythonmac-SIG] Restart confliect Message-ID: <39DBA75D.AB3534E@bigpond.com> Has anyone else had problems with restarting their Mac when Python is on an external drive? On my system (8.1 and LinuxPPC launched by BootX) I have Python on an external drive and it works fine, but... The machine cold boots fine, but on restart it freezes on the happy mac. No such problem if it is on my boot drive. I assume the problem is ith the fact that Python Core is an alias in the extensions folder and the machine is trying, unsuccesfully at that stage, to find the original. Any thoughts on a work around would be appreciated. Cheers, Adam From cbarker@jps.net Thu Oct 5 01:18:01 2000 From: cbarker@jps.net (Chris Barker) Date: Wed, 04 Oct 2000 17:18:01 -0700 Subject: [Pythonmac-SIG] MacPython Docs References: <20000905215101.6E0CDD71FD@oratrix.oratrix.nl> Message-ID: <39DBC8B9.5247AD21@jps.net> Hi all, I've taken it upon my slef to edit the "Official" MacPython docs. They were pretty out of date. I want to get a version in to the Python docs people by next monday, so that it will be included as part of the official 2.0 release. I was hoping to have them in much better shape by now, but we all have other things to do. I do want to submit something, so that at least what is there isn't actually incorrect. What I have done so far is: Gone through the docs and removed any obsolete stuff. Re-structured the docs to have multiple chapters. I tried enclosing a PDF of the current version, and a zip file of the LaTeX source, so you can read and even edit some of it if you like. My message got bounced because it is too big. If you want a copy of either of these, ask and I'll send them to you directly. They may come through soon anyway. -The First Chapter: "Python on the Mac" has been written mostly by Bob Savage, and is VERY rough. We're going to try to clean it up , but if it's not in reasonable shape my the end of the week, I'll leave it out of this release. -The Third Chapter: "UnDocumented Modules" is far too long, but so be it. If you want to add documentation of anything in there, PLEASE DO, even if it is just a one liner for some of them that don't even have that. Please send me any stuff you want to add. PythonDoc LaTeX form is preferable, but I'll take plain text too, it's not that big a deal for me to format it. Thanks, -Chris -- Christopher Barker, Ph.D. cbarker@jps.net --- --- --- http://www.jps.net/cbarker -----@@ -----@@ -----@@ ------@@@ ------@@@ ------@@@ Water Resources Engineering ------ @ ------ @ ------ @ Coastal and Fluvial Hydrodynamics ------- --------- -------- ------------------------------------------------------------------------ ------------------------------------------------------------------------ From martin@loewis.home.cs.tu-berlin.de Thu Oct 5 02:46:01 2000 From: martin@loewis.home.cs.tu-berlin.de (Martin v. Loewis) Date: Thu, 5 Oct 2000 03:46:01 +0200 Subject: [Pythonmac-SIG] Re: Python on Mac OS X w/shared modules In-Reply-To: <4.3.1.0.20001004133927.017a6388@adam12.metanet.com> (message from Tony Lownds on Wed, 04 Oct 2000 14:35:55 -0700) References: <4.3.1.0.20001003112613.0189dc58@adam12.metanet.com> <4.3.1.0.20001002085925.01900168@adam12.metanet.com> <200010020048.e920mvP04507@localhost> <200010020048.e920mvP04507@localhost> <4.3.1.0.20001002085925.01900168@adam12.metanet.com> <4.3.1.0.20001003112613.0189dc58@adam12.metanet.com> <4.3.1.0.20001004133927.017a6388@adam12.metanet.com> Message-ID: <200010050146.DAA00827@loewis.home.cs.tu-berlin.de> > His error is caused by the fact that the system is recognized by configure > as "next/" without my patch; I have found out that if it was recognized as > "next/5" then --with-next framework will compile almost correctly, and will > take care of the __eprintf and _environ symbols Ah, -lcc_dynamic. > When I get back to my Mac I can get some more details for you... > essentially _environ should be left undefined (via ld's -U option), > ___eprintf is found using -lcc_dynamic Sounds good. > Let me add some stuff to make --with-next-framework build correctly > as well. What exactly is that going to do? Will that make a "real" framework? I could not even figure out how 'make install' is supposed to work in the framework case. > HFS+ is case-preserving. As long as fcntlmodule.so can't be imported > *again* as FCNTLmodule.so, thereby causing a crash! The check_case stuff > uses the Win32 api, but something like that will be necessary! Yes, I only meant that as an example. The ugly part is that you have to read the entire directory to find out what the original spelling of the file is, unless there is some smarter API. Regards, Martin From frederic.quin@free.fr Thu Oct 5 10:23:26 2000 From: frederic.quin@free.fr (Frederic Quin) Date: Thu, 05 Oct 2000 11:23:26 +0200 Subject: [Pythonmac-SIG] In a python method, I want to convert a XML string into a dictionary... Message-ID: <39DC488E.EAB91D03@free.fr> Hi all, I would like to create a python method which take a parameter xml_string and return a dictionary containing all tags, values and attributes. I know that it exists some modules for xml conversions but I don't know very much how to use them. I am novice in Python so it's a little bite difficult for me to understand the codes... Thanks Fred From kjray@ix.netcom.com Thu Oct 5 16:27:13 2000 From: kjray@ix.netcom.com (kjray) Date: Thu, 5 Oct 2000 08:27:13 -0700 Subject: [Pythonmac-SIG] Re: Python on Mac OS X Message-ID: <200010051519.LAA05988@maynard.mail.mindspring.net> >> a) fixes the platform recognition code in configure (and configure.in) to >> recognize Mac OS X as "darwin/1.2" > >I'm confused. I thought that darwin was the name of a free BSD >personality on top of MacOS X, and that the "official" MacOS X tools >are different from the Darwin ones. Is that the case? and do the >official tools behave like the Darwin tools for building Python. Darwin , is the MacOS X operating system 'core', which includes, if I'm not mistaken, the mach kernal, bsd unix code, and sources to various libraries and tools. 'gcc' and is used for compiler. MacOS X (at least for developers) includes all of Darwin including 'gcc', and has additional libraries (NextStep/OpenStep/YellowBox/Cocoa) and tools (InterfaceBuilder, ProjectBuilder). >So if HFS is also case-preserving, MacOS X's HFS+ file-system is case-preserving. This is an interesting paper about making how Apple makes Unix and Mac apps play nicely in the same file system: . From sdm7g@virginia.edu Thu Oct 5 17:20:58 2000 From: sdm7g@virginia.edu (Steven D. Majewski) Date: Thu, 5 Oct 2000 12:20:58 -0400 (EDT) Subject: [Pythonmac-SIG] Re: Python on Mac OS X w/shared modules In-Reply-To: <4.3.1.0.20001004133927.017a6388@adam12.metanet.com> Message-ID: Nice work, Tony! Re: dylib Using you patches I was able to build shared library support. I added the -lcc_dynamic to the libtool command in the main Makefile. "-undefined ignore" gave errors on building. Looking at the compiler docs, it's supposed to be either "warning" or "suppress" , not "ignore" . I used "warning" as I wanted to see what was giving the errors, just in case. Probably ought to be "suppress" in the final when everything works. This also needed to be changed in the Modules/Makefile. ( or better yet, in Makefile.pre -- it got clobbered in the Makefile when I did a 'make clean' to test if I could really do it all from scratch! ) Re: FCNTL/fcntl I think I misunderstood the exact problem the first time around. It seemed it normally does distinguish the two files in the non-shared lib version. Import always checks the builtin-module list first, so it only goes to the filesystem for FCNTL. I moved the fcntlmodule line in Modules/Setup above the '*shared*' marker, and it seems to manage to import both, as long as I got rid of the fcntlmodule.so from the previous build. ( Is this what you were saying all along ? If it is, it wasn't clear until I actually tried poking it myself. ) There is still an invalid argument error generated by fcntl_test -- I'll see if I can find the cause of this. Re: Install This the the remaining problem -- the install is still seriously broken. ( NO solution from me yet -- I started tring to figure out where and how it all gets set, but I haven't figured it out yet. I'll reread your old messages now that I have a bit more context to understand what you're talking about. ) Re: Other Modules I don't recall if Jack ever ran a Carbon dater over the sources. I unpacked the Mac Python sources into another directory. After I get the line endings converted ( it looks like OSX has a dual line ending convention, depending on which tools (or maybe libraries) you're using! The unix compilers and tools don't like the mac CR-ending lines, but TextEdit and some other tools can handle both. ) I'm going to see what it takes to compile and load a couple of the Mac specific modules as shared libs. ---| Steven D. Majewski (804-982-0831) |--- ---| Department of Molecular Physiology and Biological Physics |--- ---| University of Virginia Health Sciences Center |--- ---| P.O. Box 10011 Charlottesville, VA 22906-0011 |--- "All operating systems want to be unix, All programming languages want to be lisp." From sdm7g@virginia.edu Thu Oct 5 17:51:52 2000 From: sdm7g@virginia.edu (Steven D. Majewski) Date: Thu, 5 Oct 2000 12:51:52 -0400 (EDT) Subject: [Pythonmac-SIG] test_fcntl.py (was: Python on Mac OS X w/shared modules) In-Reply-To: Message-ID: The failing test in test_fcntl.py is simple: There is a platform specific switch, and 'darwin1.2' is falling thru the default. Adding it in with the other bsd's where it belongs fixes the test failure. < if sys.platform in ( 'netbsd1', 'freebsd2', ... > if sys.platform in ( 'netbsd1', 'darwin1.2' , ---| Steven D. Majewski (804-982-0831) |--- ---| Department of Molecular Physiology and Biological Physics |--- ---| University of Virginia Health Sciences Center |--- ---| P.O. Box 10011 Charlottesville, VA 22906-0011 |--- "All operating systems want to be unix, All programming languages want to be lisp." From sdm7g@virginia.edu Thu Oct 5 21:06:17 2000 From: sdm7g@virginia.edu (Steven D. Majewski) Date: Thu, 5 Oct 2000 16:06:17 -0400 (EDT) Subject: [Pythonmac-SIG] Re: Python on Mac OS X w/shared modules In-Reply-To: <200010051939.VAA00987@loewis.home.cs.tu-berlin.de> Message-ID: On Thu, 5 Oct 2000, Martin v. Loewis wrote: > > I moved the fcntlmodule line in Modules/Setup above the '*shared*' > > marker, and it seems to manage to import both, as long as I got rid > > of the fcntlmodule.so from the previous build. ( Is this what you > > were saying all along ? If it is, it wasn't clear until I actually > > tried poking it myself. ) > > That would certainly solve the problem for fcntl. It would still be > good if the general problem is solved. Please note that DOS/Win raises > an exception if the case on disk doesn't match the case in the import > statement - that's still better than crashing, I guess. Yeah -- I agree a better general and permanent solution would be nice! And the Mac OS<9 version also raises an exception. It's probably all in code that's disabled for unix, so it may just be a matter of figuring out how to turn it back on in the compile. But I think the main priority is to get a stable and installable version (with dylib) out there so folks can start porting all the Carbon (old Mac), Cocoa (next NextStep) and X11 libs. I'm sure none of that porting work will be able to make it in time for Python 2.0 release, but maybe some of the build fixes can make the cut. Do you know when they will stop taking bug fixes ? ---| Steven D. Majewski (804-982-0831) |--- ---| Department of Molecular Physiology and Biological Physics |--- ---| University of Virginia Health Sciences Center |--- ---| P.O. Box 10011 Charlottesville, VA 22906-0011 |--- "All operating systems want to be unix, All programming languages want to be lisp." From bobsavage@mac.com Thu Oct 5 23:13:07 2000 From: bobsavage@mac.com (Bob Savage) Date: Thu, 5 Oct 2000 15:13:07 -0700 Subject: [Pythonmac-SIG] "Official" Mac python Docs Project In-Reply-To: <39C7DCB1.C544CB6E@jps.net> Message-ID: This is a multi-part message in MIME format. ------=_NextPart_000_000B_01C02EDE.C43CA4E0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Chris, here's the "finished" version (meaning I probably won't be able to get any more done this week). ** Areas that still need work ** \subsubsection{Alpha} \subsubsection{Pepper} \subsection{Debugger} \subsection{Module Browser} \subsection{Profiler} \subsection{The ``Scripts'' menu} \subsection{BuildApplet} \subsection{BuildApplication} \section{CGI on the Mac with Python} Of these the only ones I have any real experience with are the Module Browser and the Debugger. I'll probably need help with the other areas, so I'm sending this to the list as well in hopes that someone will volunteer to write something about the missing bits. All, if someone has time to read this and thinks I am in error about something, or can contribute something about CGIs or whatever, please let me know so I can get the changes in to Chris by Friday night (so he has some time to assemble things before sending them in before the big release). thx, Bob ------=_NextPart_000_000B_01C02EDE.C43CA4E0 Content-Type: application/octet-stream; name="PythonOnTheMac.tex" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="PythonOnTheMac.tex" \chapter{Python on the Mac} \sectionauthor{Bob Savage}{bobsavage@mac.com} \label{PythonOnTheMac} Using Python on the Macintosh can seem like something completely = different than using it on a Unix-like or Windows system. Most of the Python documentation, both the ``official'' documentation and published books, = describe only how Python is used on these systems, causing confusion for the new user of MacPython. This chapter gives a brief introduction to the specifics of using Python on a Macintosh. \section{Getting MacPython} \label{getting} The most recent release version as well as possible newer experimental = versions are best found at the MacPython page maintained by Jack Jansen: = \url{http://www.cwi.nl/~jack/macpython.html} \section{Installation} \label{installation} Please refer to the README included with your distribution for the most up-to-date instructions. \section{Entering the interactive Interpreter} \label{invoke interpreter} The interactive interpreter that you will see used in Python = documentation is started by double-clicking the \program{PythonInterpreter} icon, which looks = like a 16 ton weight falling. You should see the version information and the ``>>>'' = prompt. Use it exactly as described in the standard documentation. \section{How to run a Python script} There are several ways to run a script that you or someone else has = written in Python; two common ways to run a Python script are 'drag and drop' and 'double = clicking'. Other ways include running it from within the IDE (see Section = \ref{IDE}), or launching via AppleScript. \subsection{Drag and drop} One of the easiest ways to launch a Python script is via ``Drag and Drop''. This is just like launching a text file in the Finder by = ``dragging'' it over your word processor's icon and ``dropping'' it there. Make sure that you = use an icon referring to the \program{PythonInterpreter}, not the \program{IDE} or = \program{Idle} icons which have different behaviour which is described below. Some things that might've gone wrong: \begin{itemize} \item A window flashes after dropping the script onto the \program{PythonInterpreter}, but then disappears. Most likely this is a configuration issue; your \program{PythonInterpreter} is setup to exit immediately upon completion, but your script assumes that if it prints something that text will stick around for a while. To fix this, see = Section \ref{Defaults}. \item After dropping the script onto the \program{PythonInterpreter}, a = window appeared which said: ``File contains \verb+\r+ characters (incorrect line endings?)''. That = script probably originated on a Unix or Windows machine. You will need to change the line endings to the standard Mac usage. One way to do this is to open the file in \program{BBedit} \url{http://www.barebones.com/products/bbedit_lite.html} which can easily change the line endings between Mac, DOS, and Unix styles. \item When you waved the script icon over the \program{PythonInterpreter}, the \program{PythonInterpreter} icon did not hilite. Most likely the Creator code and document type is unset (or set incorrectly) -- This often happens when a file originates on a = non-Mac computer. see Section \ref{CreatorCode} for more details. \end{itemize} \subsection{Set Creator and Double Click} \label{CreatorCode} If the script that you want to launch has the appropriate Creator Code and File Type you can simply double-click on the script to launch it. To be ``double-clickable'' a file needs to be of type 'TEXT', with a = creator code of 'Pyth'. Setting the creator code and filetype can be done with the IDE -- see = sections \ref{IDEwrite} and \ref{IDEapplet}, with an editor with a Python mode (\program{BBEdit}) -- see section = \ref{scripting with BBedit}, or with assorted other Mac utilities, but a script (``fixfiletypes.py'') = has been included in the MacPython distribution, making it possible to set the proper Type and Creator = Codes with Python. The ``fixfiletypes.py'' script will change the file type and creator = codes for the indicated directory. To use ``fixfiletypes.py'': \begin{enumerate} \item Locate it in the ``scripts'' folder of the ``Mac'' folder of the = PythonMac distribution. \item Put all of the scripts that you want to fix in a folder with = nothing else in it. \item Double-click on the fixfiletypes.py icon. \item Navigate into the folder of files you want to fix, and press the = ``Select current folder'' button. \item There is no step five! \end{enumerate} \section{Simulating command line arguments (\member{sys.argv}) } \label{argv} There are multiple ways to simulate command-line arguments with = PythonMac. =20 \begin{enumerate} \item via Interpreter options \begin{itemize} % nestable? I hope so! \item Hold the option-key down when launching your script. This will = bring up a dialog box of=20 Python Interpreter options. \item Click ``Set Unix-style command line..'' button.=20 \item Type the arguments into the ``Argument'' field. \item Click ``OK'' \item Click ``Run''. \end{itemize} % end \item via drag and drop If you save the script as an applet (see Section \ref{IDEapplet}), you = can also simulate some command-line arguments via ``Drag-and-Drop''. \end{enumerate} \section{How to create a Python script} Since Python scripts are really text files, they can be created in any = way that text files can be created, but some special tools also exist with extra features. \subsection{In an editor} You can create a text file with any word processing program such as = \program{MSWord} or \program{AppleWorks} but you need to make sure that the file is saved as ``ASCII'' or ``plain = text''. \subsubsection{Editors with Python modes} Several text editors have additional features that add functionality = when you are creating a Python script. These can include coloring Python keywords to make your code easier to = read, module browsing, or a built-in debugger. \subsubsection{Alpha} % **NEED INFO HERE** =20 \subsubsection{BBedit} \label{scripting with BBedit} If you use \program{BBEdit} to create your scripts you will want to tell = it about the Python creator code so that you can simply double click on the saved file to launch it. \begin{itemize} \item Launch \program{BBEdit}. \item Select ``Preferences'' from the ``Edit'' menu. \item Select ``File Types'' from the scrolling list. \item click on the ``Add...'' button and navigate to = \program{PythonInterpreter} in the main directory of the MacPython distribution; click ``open''. \item Click on the ``Save'' button in the Preferences panel. \end{itemize} % Are there additional BBedit Python-specific features? I'm not aware of = any. =20 \subsubsection{IDE} You can use the \program{Python IDE} supplied in the MacPython = Distribution to create longer Python scripts=20 -- see Section \ref{IDEwrite} for details. =20 \subsection{IDLE} Idle is an IDE for Python that was written in Python, using TKInter. You = should be able to use it on a Mac by following the standard documentation, but see Section \ref{TKInter} for guidance = on using TKInter with MacPython. \subsubsection{Pepper} % **NEED INFO HERE** =20 \section{The IDE\label{IDE}} % begin main IDE section The \program{Python IDE} (Integrated Development Environment) is a = separate application that acts as a text editor for your Python code, a class browser, a graphical debugger, and more. \subsection{Using the ``Python Interactive'' window} Use this window like you would the \program{PythonInterpreter}, except that you cannot use the ``Drag and drop'' method above. Instead, dropping a script onto the \program{Python IDE} icon will open the file = in a seperate script window (which you can then execute manually -- see Section = \ref{IDEexecution}). \subsection{Writing a Python Script} \label{IDEwrite} In addition to using the \program{Python IDE} interactively, you can = also type out a complete Python program, saving it incrementally, and execute it or smaller selections of it. You can create a new script, open a previously saved script, and save = your currently open script by selecting the appropriate item in the ``File'' menu. Dropping a Python = script onto the \program{Python IDE} will open it for editting. If you try to open a script with the \program{Python IDE} but either = can't locate it from the ``Open''=20 dialog box, or you get an error message like ``Can't open file of type = ...'' see Section \ref{CreatorCode} When the \program{Python IDE} saves a script, it uses the creator code = settings which are available by clicking on the small black triangle on the top right of the document = window, and selecting ``save options''. The default is to save the file with the = \program{Python IDE} as the creator, this means that you can open the file for editing by simply double-clicking = on its icon. You might want to change this behaviour so that it will be opened by the = \program{PythonInterpreter}, and run. To do this simply choose ``Python Interpreter'' from the ``save options''. Note = that these options are associated with the \emph{file} not the application. \subsection{Executing a script from within the IDE} \label{IDEexecution} You can run the script in the frontmost window of the \program{Python = IDE} by hitting the run all button. You should be aware, however that if you use the Python convention \verbatim{if __name__ =3D=3D ``__main__'':} % Hopefully this is the = correct way to do this the script will \emph{not} be ``__main'' by default. To get that = behaviour you must select the ``Run as __main__'' option from the small black triangle on the top = right of the document window. Note that this option is associated with the \emph{file} not the = application. It \emph{will} stay active after a save, however; to shut this feature off simply select it again. =20 \subsection{``Save as'' versus ``Save as Applet''} \label{IDEapplet} When you are done writing your Python script you have the option of = saving it as an ``applet'' (by selecting ``Save as applet'' from the ``File'' menu). This has a significant = advantage in that you can drop files or folders onto it, to pass them to the applet the way command-line users = would type them onto the command-line to pass them as arguments to the script. However, you should make sure = to save the applet as a seperate file, do not overwrite the script you are writing, because you will not be = able to edit it again. Accessing the items passed to the applet via ``drag-and-drop'' is done = using the standard \member{sys.argv} mechanism. See the general documentation for more % need to link to the = appropriate place in non-Mac docs Note that saving a script as an applet will not make it runnable on a = system without a Python installation. \subsection{Debugger} % **NEED INFO HERE** =20 \subsection{Module Browser} % **NEED INFO HERE** =20 \subsection{Profiler} % **NEED INFO HERE** % end IDE \subsection{The ``Scripts'' menu} % **NEED INFO HERE** =20 \section{Configuring} The MacPython distribution comes with \program{EditPythonPrefs}, an = applet which will help you to customize the MacPython environment for your working habits. =20 \subsection{EditPythonPrefs\label{EditPythonPrefs}} \program{EditPythonPrefs} gives you the capability to configure Python = to behave the way you want it to. There are two ways to use \program{EditPythonPrefs}, you can use it to = set the preferences in general, or you can drop a particular Python engine onto it to customize only = that version. The latter can be handy if, for example, you want to have a second copy of the = \program{PythonInterpreter} that keeps the output window open on a normal exit even though you prefer to normally not work = that way. To change the default preferences, simply double-click on = \program{EditPythonPrefs}. To change the preferences only for one copy of the Interpreter, drop the icon for that copy onto = \program{EditPythonPrefs}. You can also use \program{EditPythonPrefs} in this fashion to set the = preferences of the \program{Python IDE} and any applets you create -- see Sections \ref{BuildApplet} and = \ref{IDEapplet}. \subsection{Adding modules to the Python Path (\member{sys.path})} \label{Python Path} When executing an \keyword{import} statement, Python looks for modules = in places defined by the \member{sys.path} To edit the \member{sys.path} on a Mac, launch = \program{EditPythonPrefs}, and enter them into the largish field at the top (one per line). Since MacPython defines a main Python directory, the easiest thing is to = add folders to search within the main Python directory. To add a folder of scripts that = you created called ``My Folder'' located in the main Python Folder, enter \verbatim{$(PYTHON):My Folder} onto a = new line. To add the Desktop under OS 9 or below, add = \verbatim{StartupDriveName:Desktop Folder} on a new line. \subsection{Default startup options} \label{Defaults} % I'm assuming that there exists some other documentation on the % rest of the options so I only go over a couple here. The ``Default startup options...'' button in the = \program{EditPythonPrefs} dialog box gives you many options=20 including the ability to keep the ``Output'' window open after the = script terminates, and the ability to enter interactive mode after the termination of the run script. The latter can = be very helpful if you want to examine the objects that were created during your script. \section{Nifty Tools} There are many other tools included with the MacPython distribution. In = addition to those discussed here, make sure to check the ``Mac'' directory. \subsection{BuildApplet} \label{BuildApplet} % **NEED INFO HERE** \subsection{BuildApplication} % **NEED INFO HERE** =20 \section{TKInter on the Mac} \label{TKInter} TKinter is installed by default with the MacPython distribution, but you = will need to add the ``lib-tk'' folder to the Python Path see Section \ref{Python Path}. Also, it is important = that you do not try to launch TK from within the \program{Python IDE} because the two event loops will collide = -- always run a script which uses TKInter with the \program{PythonInterpreter} instead -- see Section = \ref{invoke interpreter}. =20 \section{CGI on the Mac with Python\label{CGI}} **NEED INFO HERE** \section{Mac OS X} At the time of this writing Mac OS X had just been released as a Public = Beta. Efforts are under way to bring MacPython to Mac OS X. The MacPython release \version{1.5.2c1} runs = quite well within the ``Classic'' environment. A ``Carbon'' port of the MacPython code is being prepared for release, = and several people have made a command line version available to the ``Darwin'' layer (which is accessible via = Terminal.app). ------=_NextPart_000_000B_01C02EDE.C43CA4E0-- From sdm7g@virginia.edu Thu Oct 5 23:13:09 2000 From: sdm7g@virginia.edu (Steven D. Majewski) Date: Thu, 5 Oct 2000 18:13:09 -0400 (EDT) Subject: [Pythonmac-SIG] Re: Python on Mac OS X w/shared modules In-Reply-To: <200010052119.XAA01478@loewis.home.cs.tu-berlin.de> Message-ID: On Thu, 5 Oct 2000, Martin v. Loewis wrote: > Last I heard, the "general" checkin procedure will be suspended the > coming Monday; patches that are not in by then won't be in Python 2. > Only critical bug fixes will be accepted for another week, at the > choice of the release manager. With Tony's patches and the changes I posted earlier, AND dropping the --with-next-framework, it seems to build AND install properly with dynamically loadable shared library modules. The python library isn't packages into a Framework -- eventually we will want this I think -- but that's not necessary for the dynamic modules to work. So I think there's a chance we can package that up and submit it in time for 2.0 final! ---| Steven D. Majewski (804-982-0831) |--- ---| Department of Molecular Physiology and Biological Physics |--- ---| University of Virginia Health Sciences Center |--- ---| P.O. Box 10011 Charlottesville, VA 22906-0011 |--- "All operating systems want to be unix, All programming languages want to be lisp." From bsavage@stanford.edu Thu Oct 5 23:17:27 2000 From: bsavage@stanford.edu (Bob Savage) Date: Thu, 5 Oct 2000 15:17:27 -0700 Subject: [Pythonmac-SIG] DOH! ("Official" Mac python Docs Project) Message-ID: This is a multi-part message in MIME format. ------=_NextPart_000_0000_01C02EDF.5EFD09C0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit DOH! I sent this letter off then closed the LaTex editor to find that I hadn't saved the final changes. :( Here is the real final version, Bob -- Chris, here's the "finished" version (meaning I probably won't be able to get any more done this week). ** Areas that still need work ** \subsubsection{Alpha} \subsubsection{Pepper} \subsection{Debugger} \subsection{Module Browser} \subsection{Profiler} \subsection{The ``Scripts'' menu} \subsection{BuildApplet} \subsection{BuildApplication} \section{CGI on the Mac with Python} Of these the only ones I have any real experience with are the Module Browser and the Debugger. I'll probably need help with the other areas, so I'm sending this to the list as well in hopes that someone will volunteer to write something about the missing bits. All, if someone has time to read this and thinks I am in error about something, or can contribute something about CGIs or whatever, please let me know so I can get the changes in to Chris by Friday night (so he has some time to assemble things before sending them in before the big release). thx, Bob ------=_NextPart_000_0000_01C02EDF.5EFD09C0 Content-Type: application/octet-stream; name="PythonOnTheMac.tex" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="PythonOnTheMac.tex" \chapter{Python on the Mac} \sectionauthor{Bob Savage}{bobsavage@mac.com} \label{PythonOnTheMac} Using Python on the Macintosh can seem like something completely = different than using it on a Unix-like or Windows system. Most of the Python documentation, both the ``official'' documentation and published books, = describe only how Python is used on these systems, causing confusion for the new user of MacPython. This chapter gives a brief introduction to the specifics of using Python on a Macintosh. \section{Getting MacPython} \label{getting} The most recent release version as well as possible newer experimental = versions are best found at the MacPython page maintained by Jack Jansen: = \url{http://www.cwi.nl/~jack/macpython.html} \section{Installation} \label{installation} Please refer to the README included with your distribution for the most up-to-date instructions. \section{Entering the interactive Interpreter} \label{invoke interpreter} The interactive interpreter that you will see used in Python = documentation is started by double-clicking the \program{PythonInterpreter} icon, which looks = like a 16 ton weight falling. You should see the version information and the ``>>>'' = prompt. Use it exactly as described in the standard documentation. \section{How to run a Python script} There are several ways to run a script that you or someone else has = written in Python; two common ways to run a Python script are 'drag and drop' and 'double = clicking'. Other ways include running it from within the IDE (see Section = \ref{IDE}), or launching via AppleScript. \subsection{Drag and drop} One of the easiest ways to launch a Python script is via ``Drag and Drop''. This is just like launching a text file in the Finder by = ``dragging'' it over your word processor's icon and ``dropping'' it there. Make sure that you = use an icon referring to the \program{PythonInterpreter}, not the \program{IDE} or = \program{Idle} icons which have different behaviour which is described below. Some things that might've gone wrong: \begin{itemize} \item A window flashes after dropping the script onto the \program{PythonInterpreter}, but then disappears. Most likely this is a configuration issue; your \program{PythonInterpreter} is setup to exit immediately upon completion, but your script assumes that if it prints something that text will stick around for a while. To fix this, see = Section \ref{Defaults}. \item After dropping the script onto the \program{PythonInterpreter}, a = window appeared which said: ``File contains \verb+\r+ characters (incorrect line endings?)''. That = script probably originated on a Unix or Windows machine. You will need to change the line endings to the standard Mac usage. One way to do this is to open the file in \program{BBedit} \url{http://www.barebones.com/products/bbedit_lite.html} which can easily change the line endings between Mac, DOS, and Unix styles. \item When you waved the script icon over the \program{PythonInterpreter}, the \program{PythonInterpreter} icon did not hilite. Most likely the Creator code and document type is unset (or set incorrectly) -- This often happens when a file originates on a = non-Mac computer. see Section \ref{CreatorCode} for more details. \end{itemize} \subsection{Set Creator and Double Click} \label{CreatorCode} If the script that you want to launch has the appropriate Creator Code and File Type you can simply double-click on the script to launch it. To be ``double-clickable'' a file needs to be of type 'TEXT', with a = creator code of 'Pyth'. Setting the creator code and filetype can be done with the IDE -- see = sections \ref{IDEwrite} and \ref{IDEapplet}, with an editor with a Python mode (\program{BBEdit}) -- see section = \ref{scripting with BBedit}, or with assorted other Mac utilities, but a script (``fixfiletypes.py'') = has been included in the MacPython distribution, making it possible to set the proper Type and Creator = Codes with Python. The ``fixfiletypes.py'' script will change the file type and creator = codes for the indicated directory. To use ``fixfiletypes.py'': \begin{enumerate} \item Locate it in the ``scripts'' folder of the ``Mac'' folder of the = PythonMac distribution. \item Put all of the scripts that you want to fix in a folder with = nothing else in it. \item Double-click on the fixfiletypes.py icon. \item Navigate into the folder of files you want to fix, and press the = ``Select current folder'' button. \item There is no step five! \end{enumerate} \section{Simulating command line arguments (\member{sys.argv}) } \label{argv} There are multiple ways to simulate command-line arguments with = PythonMac. =20 \begin{enumerate} \item via Interpreter options \begin{itemize} % nestable? I hope so! \item Hold the option-key down when launching your script. This will = bring up a dialog box of=20 Python Interpreter options. \item Click ``Set Unix-style command line..'' button.=20 \item Type the arguments into the ``Argument'' field. \item Click ``OK'' \item Click ``Run''. \end{itemize} % end \item via drag and drop If you save the script as an applet (see Section \ref{IDEapplet}), you = can also simulate some command-line arguments via ``Drag-and-Drop''. \end{enumerate} \section{How to create a Python script} Since Python scripts are really text files, they can be created in any = way that text files can be created, but some special tools also exist with extra features. \subsection{In an editor} You can create a text file with any word processing program such as = \program{MSWord} or \program{AppleWorks} but you need to make sure that the file is saved as ``ASCII'' or ``plain = text''. \subsubsection{Editors with Python modes} Several text editors have additional features that add functionality = when you are creating a Python script. These can include coloring Python keywords to make your code easier to = read, module browsing, or a built-in debugger. \subsubsection{Alpha} % **NEED INFO HERE** =20 \subsubsection{BBedit} \label{scripting with BBedit} If you use \program{BBEdit} to create your scripts you will want to tell = it about the Python creator code so that you can simply double click on the saved file to launch it. \begin{itemize} \item Launch \program{BBEdit}. \item Select ``Preferences'' from the ``Edit'' menu. \item Select ``File Types'' from the scrolling list. \item click on the ``Add...'' button and navigate to = \program{PythonInterpreter} in the main directory of the MacPython distribution; click ``open''. \item Click on the ``Save'' button in the Preferences panel. \end{itemize} % Are there additional BBedit Python-specific features? I'm not aware of = any. =20 \subsubsection{IDE} You can use the \program{Python IDE} supplied in the MacPython = Distribution to create longer Python scripts=20 -- see Section \ref{IDEwrite} for details. =20 \subsection{IDLE} Idle is an IDE for Python that was written in Python, using TKInter. You = should be able to use it on a Mac by following the standard documentation, but see Section \ref{TKInter} for guidance = on using TKInter with MacPython. \subsubsection{Pepper} % **NEED INFO HERE** =20 \section{The IDE\label{IDE}} % begin main IDE section The \program{Python IDE} (Integrated Development Environment) is a = separate application that acts as a text editor for your Python code, a class browser, a graphical debugger, and more. \subsection{Using the ``Python Interactive'' window} Use this window like you would the \program{PythonInterpreter}, except that you cannot use the ``Drag and drop'' method above. Instead, dropping a script onto the \program{Python IDE} icon will open the file = in a seperate script window (which you can then execute manually -- see Section = \ref{IDEexecution}). \subsection{Writing a Python Script} \label{IDEwrite} In addition to using the \program{Python IDE} interactively, you can = also type out a complete Python program, saving it incrementally, and execute it or smaller selections of it. You can create a new script, open a previously saved script, and save = your currently open script by selecting the appropriate item in the ``File'' menu. Dropping a Python = script onto the \program{Python IDE} will open it for editting. If you try to open a script with the \program{Python IDE} but either = can't locate it from the ``Open''=20 dialog box, or you get an error message like ``Can't open file of type = ...'' see Section \ref{CreatorCode} When the \program{Python IDE} saves a script, it uses the creator code = settings which are available by clicking on the small black triangle on the top right of the document = window, and selecting ``save options''. The default is to save the file with the = \program{Python IDE} as the creator, this means that you can open the file for editing by simply double-clicking = on its icon. You might want to change this behaviour so that it will be opened by the = \program{PythonInterpreter}, and run. To do this simply choose ``Python Interpreter'' from the ``save options''. Note = that these options are associated with the \emph{file} not the application. \subsection{Executing a script from within the IDE} \label{IDEexecution} You can run the script in the frontmost window of the \program{Python = IDE} by hitting the run all button. You should be aware, however that if you use the Python convention \begin{verbatim}if __name__ =3D=3D "__main__":}\end{verbatim} the script will \emph{not} be ``__main__'' by default. To get that = behaviour you must select the ``Run as __main__'' option from the small black triangle on the top = right of the document window. Note that this option is associated with the \emph{file} not the = application. It \emph{will} stay active after a save, however; to shut this feature off simply select it again. =20 \subsection{``Save as'' versus ``Save as Applet''} \label{IDEapplet} When you are done writing your Python script you have the option of = saving it as an ``applet'' (by selecting ``Save as applet'' from the ``File'' menu). This has a significant = advantage in that you can drop files or folders onto it, to pass them to the applet the way command-line users = would type them onto the command-line to pass them as arguments to the script. However, you should make sure = to save the applet as a seperate file, do not overwrite the script you are writing, because you will not be = able to edit it again. Accessing the items passed to the applet via ``drag-and-drop'' is done = using the standard \member{sys.argv} mechanism. See the general documentation for more % need to link to the = appropriate place in non-Mac docs Note that saving a script as an applet will not make it runnable on a = system without a Python installation. \subsection{Debugger} % **NEED INFO HERE** =20 \subsection{Module Browser} % **NEED INFO HERE** =20 \subsection{Profiler} % **NEED INFO HERE** % end IDE \subsection{The ``Scripts'' menu} % **NEED INFO HERE** =20 \section{Configuring} The MacPython distribution comes with \program{EditPythonPrefs}, an = applet which will help you to customize the MacPython environment for your working habits. =20 \subsection{EditPythonPrefs\label{EditPythonPrefs}} \program{EditPythonPrefs} gives you the capability to configure Python = to behave the way you want it to. There are two ways to use \program{EditPythonPrefs}, you can use it to = set the preferences in general, or you can drop a particular Python engine onto it to customize only = that version. The latter can be handy if, for example, you want to have a second copy of the = \program{PythonInterpreter} that keeps the output window open on a normal exit even though you prefer to normally not work = that way. To change the default preferences, simply double-click on = \program{EditPythonPrefs}. To change the preferences only for one copy of the Interpreter, drop the icon for that copy onto = \program{EditPythonPrefs}. You can also use \program{EditPythonPrefs} in this fashion to set the = preferences of the \program{Python IDE} and any applets you create -- see Sections \ref{BuildApplet} and = \ref{IDEapplet}. \subsection{Adding modules to the Python Path (\member{sys.path})} \label{Python Path} When executing an \keyword{import} statement, Python looks for modules = in places defined by the \member{sys.path} To edit the \member{sys.path} on a Mac, launch = \program{EditPythonPrefs}, and enter them into the largish field at the top (one per line). Since MacPython defines a main Python directory, the easiest thing is to = add folders to search within the main Python directory. To add a folder of scripts that = you created called ``My Folder'' located in the main Python Folder, enter \begin{verbatim}$(PYTHON):My = Folder\end{verbatim} onto a new line. To add the Desktop under OS 9 or below, add = \begin{verbatim}StartupDriveName:Desktop Folder\end{verbatim} on a new = line. \subsection{Default startup options} \label{Defaults} % I'm assuming that there exists some other documentation on the % rest of the options so I only go over a couple here. The ``Default startup options...'' button in the = \program{EditPythonPrefs} dialog box gives you many options=20 including the ability to keep the ``Output'' window open after the = script terminates, and the ability to enter interactive mode after the termination of the run script. The latter can = be very helpful if you want to examine the objects that were created during your script. \section{Nifty Tools} There are many other tools included with the MacPython distribution. In = addition to those discussed here, make sure to check the ``Mac'' directory. \subsection{BuildApplet} \label{BuildApplet} % **NEED INFO HERE** \subsection{BuildApplication} % **NEED INFO HERE** =20 \section{TKInter on the Mac} \label{TKInter} TKinter is installed by default with the MacPython distribution, but you = will need to add the ``lib-tk'' folder to the Python Path see Section \ref{Python Path}. Also, it is important = that you do not try to launch TK from within the \program{Python IDE} because the two event loops will collide = -- always run a script which uses TKInter with the \program{PythonInterpreter} instead -- see Section = \ref{invoke interpreter}. =20 \section{CGI on the Mac with Python\label{CGI}} **NEED INFO HERE** \section{Mac OS X} At the time of this writing Mac OS X had just been released as a Public = Beta. Efforts are under way to bring MacPython to Mac OS X. The MacPython release \version{1.5.2c1} runs = quite well within the ``Classic'' environment. A ``Carbon'' port of the MacPython code is being prepared for release, = and several people have made a command line version available to the ``Darwin'' layer (which is accessible via = Terminal.app). ------=_NextPart_000_0000_01C02EDF.5EFD09C0-- From martin@loewis.home.cs.tu-berlin.de Thu Oct 5 22:19:07 2000 From: martin@loewis.home.cs.tu-berlin.de (Martin v. Loewis) Date: Thu, 5 Oct 2000 23:19:07 +0200 Subject: [Pythonmac-SIG] Re: Python on Mac OS X w/shared modules In-Reply-To: (sdm7g@virginia.edu) References: Message-ID: <200010052119.XAA01478@loewis.home.cs.tu-berlin.de> > I'm sure none of that porting work will be able to make it in time > for Python 2.0 release, but maybe some of the build fixes can make > the cut. Do you know when they will stop taking bug fixes ? Last I heard, the "general" checkin procedure will be suspended the coming Monday; patches that are not in by then won't be in Python 2. Only critical bug fixes will be accepted for another week, at the choice of the release manager. Regards, Martin From erik@t-a-n-k.com Sun Oct 8 19:24:02 2000 From: erik@t-a-n-k.com (Erik Svensson) Date: Sun, 8 Oct 2000 20:24:02 +0200 Subject: [Pythonmac-SIG] strptime... Message-ID: <200010081820.UAA19466@diesel.t-a-n-k.com> Hello folks! This might be a stupid question but I need strptime. It's not available in the module. Where do I find it? cheers erik svensson Fusage AB From cbarker@jps.net Wed Oct 4 01:13:27 2000 From: cbarker@jps.net (Chris Barker) Date: Tue, 03 Oct 2000 17:13:27 -0700 Subject: [Pythonmac-SIG] MacPython docs. References: Message-ID: <39DA7627.DB89F903@jps.net> This is a multi-part message in MIME format. --------------C45300532BD5169C318532AD Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi all, I've taken it upon my slef to edit the "Official" MacPython docs. They were pretty out of date. I want to get a version in to the Python docs people by next monday, so that it will be included as part of the official 2.0 release. I was hoping to have them in much better shape by now, but we all have other things to do. I do want to submit something, so that at least what is there isn't actually incorrect. What I have done so far is: Gone through the docs and removed any obsolete stuff. Re-structured the docs to have multiple chapters. I've enclosed a PDF of the current version, and a zip file of the LaTeX source, so you can read and even edit some of it if you like. -The First Chapter: "Python on the Mac" has been written mostly by Bob Savage, and is VERY rough. We're going to try to clean it up , but if it's not in reasonable shape my the end of the week, I'll leave it out of this release. -The Third Chapter: "UnDocumented Modules" is far too long, but so be it. If you want to add documentation of anything in there, PLEASE DO, even if it is just a one liner for some of them that don't even have that. Please send me any stuff you want to add. PythonDoc LaTeX form is preferable, but I'll take plain text too, it's not that big a deal for me to format it. Thanks, -Chris -- Christopher Barker, Ph.D. cbarker@jps.net --- --- --- http://www.jps.net/cbarker -----@@ -----@@ -----@@ ------@@@ ------@@@ ------@@@ Water Resources Engineering ------ @ ------ @ ------ @ Coastal and Fluvial Hydrodynamics ------- --------- -------- ------------------------------------------------------------------------ ------------------------------------------------------------------------ --------------C45300532BD5169C318532AD Content-Type: application/x-zip-compressed; name="MacDocs.zip" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="MacDocs.zip" UEsDBAoAAAAAAFBTQykAAAAAAAAAAAAAAAAEABUAbWFjL1VUCQADyBbaOTtw2jlVeAQA9AFk AFBLAwQUAAAACACmfjIpQoAQTFUIAACFFgAADgAVAG1hYy9saWJjdGIudGV4VVQJAAPXnMY5 EnTaOVV4BAD0AWQAnVjvj9y2Ef3Ov4IIYGSv2F0nRVAU982+OIGBOA5iI27RLQpKonbZk0iB pPZus1D/9r4Z6ufdpnbXgG0tRXEe38y8GXIXdB6Ns+dd7Yq20uc8Zp3cbDZCDn/e2qh9qXIt o5PxoOWdq+vWmlzRh0F+dK6Sr91jJ8Su0HmlvO7XylpTRWM7XhQL7ppKxdL5+vxO5Z3oTYaT dU0w4TwaCp+xtJXyva1O/RRr0xbEO2XVXntpggxt0zgfdbEFKvHxgKFkTDbeHU0BE0o2ykej KmmebhDoMObCQVwAkJH9u9Z7bWN1WktHSCYUckARMRdWvBYTGJAZZa1O0rooMy3VUZlKZYBl rFRVRZblL6d4wDpH7QMZ3YqdsYV+PF/Gsp7QdsPMceQSgRl5alzyKWxyYqb3xp4LFRV4yruz 9t7hxUcwox9z3fB8r0zQBXYv+TXB1LaYvrqwTl5/j2cYp6HKWARbfQcSlyOvYrSd+KFS+yAR K+yQ3VH5c35QQFt14HTf1mBfujK9rTUYK86/alWsbvDeFmIY++RN1DSYfn8ZTDb+5v27Tryx xcaVm1qHAHZkiRcM6oJJ+dTkl5g6OBf0nzrxm6paxKTXsfUWtGancbk7nvOF69UfooptwIqv TQwUVURQ4EGpLhtIn/wvA2Vr82RgDNju3IlfeTG5y12hz9920pTPk3YIOUrK8eO1/F17Jx1m +weEUW94NHPB8N27n/VDd7aqxtfB/K5DJ+68VhFJJPMpjF32bzzJNhi7ZzSzd5SRklZAeFBA 0WO3TcGVlmSU8i+b2DbIyb05aiuztiyRzjyBfU/8gNm14AfXxjUZid6RkkzP/ELFiEAl45Tg CJJpAO+34lUF6bFg6qhJSxoVGHii9GdndZfCbQbxwUAnvA5tFbGoKHSp6HEO8zmfYhfabJD6 Wda/Z7qC3MEvujpPZG0SkR2+/QEASJtmTPbJBIJVlFHdkxMYYzS1xsamHAUF8kjBLZCsaVub b5lnUqDSWOTKGuspmxxG67HX6pro8q3lYoDf8AjZ3o7BUes60543+I8J2z/POcBmKr/vxFsK SJJ+nsl1QUdarseUIpCs2gXlJspwcG1VyMZBSAV/QWzy5lXOGgi4SpK3ECmjIq2WIScSizdb ySWIXVczXUs++6gdaH1w/l4o1MX84J11baDYeDDxkLjp9yc9mIZmopAQGBpGYrcNzC7p0nVz wM6ivk3RhLQJVA0yfXLguD7JFr7wUAlbjGnzxIgA/HwoetJqVKfe4lb+3bVU56QqjlwT1F4Z G4YknO9D0CeTrFO0JPR9xM5cKmZ+Jlae+/l9o9FaDBEn6CdSjPJq75iQcS7IUyZ5DCQ7QFsG KxIDRDAu8UwzqE5rcJNVJhyw3QHpCOqzQH8yIS6gfgIaJkGRLsBZS7hb+SG6ZsJcQiOWiEWP uI8rYpWim1uRPpfKtiLwwdU6tSJXAE+R3p1POljXiVf8U64eDmCa8aQXZNpCMkjUbyQHGIfz YncEkXcyluZEC1XPoSpdAfGuQnEcqV0DxwMKAw0u6sJWfhpB0xSCTHDXKdh5PhGI2PPVSazM Vm93FEpjUuC5aSNNKquWAmEtdcy3N7uUmEr2ENCUiIvRdQnCwNoChTA1SpRRJIyFCbnyMwBX UEQ9SneuNNUmKN1ajlFEbxIgvO3QE0Qd1uTAFiWq+oMkOaij5kJFFJTe1TLlTOrOplato0Ax +SEFppZJ/y0RGodWcC3mQ9wLkvn5ILeDENC+2VDyz6k63+6YNKrBwtM+qFzQiH7esq0XK47d 3RVccm/X4WBTPiET0eBqZDa9TxxgTsel6xkxqIkZzgOfze0pXmhtEB94g6l0XdwRVrbiCQGo s9SLgVYuP1CzB4CMJJZsfGBRrkwql6gelhOdDKqxNifRJrVZ9HekLVzfdF+++mwOHBW25coL 33NwDaavYD51qbO2cybSU39LNvsA6Sv6atY7rVNmUkiE7uYzrd9QCVUeWxwSF21gi+AXq6Bh ZGgLUocKNbtZy5mVtCy1HcQB9eS0NW+yYXnCzs3RsvBcwdCPOqKzK81+RlK/KAZbr3quPKtJ OfZZS1+yK4MWl77i4yzP2hQa5bbgBi9rqdSDIxQfdBYG/+FkTQxRSuLYbUpzlbZ/mDYE+534 oOMfb2jsKYY9LDD3gCpdxk10G2/2h9i3VJWiLDimAxh6WVqs8TrX2F2u+wpLSQBhRiodTUHh sMSA5XGWwDpUiy3l2LBtOmgFg27sJFVDlGF5QUUZqQRDlbkfAvXrTLWF/O6v33zzdTdcRGD+ 4Kl+m7MD3FhIR8cPJ9HhGJHaaTc0wTT5CzIVGuUR9LSZFPujQ2kzA8fYJCiHvEQITu5aukOh 3q+/D5Ar/O3bUAyHFr1DCGhKqtPNNWWeD8EU2L/g6EOdNuFAGvqh/KJgVm6fBNcN5f9pcPPV wOA6wr6VfEbQnst/6h7Hkj9XGGqjsLChy6kVeQ0yXdFLPgbA1xAHhkVyyFc8uQK850dQ8CZY /nXvi+SEXtVXfaXka41J4ftrAjmMhBsWc9Fru2YPX0Hr2yKd5H/E+XPyrOKala7Dhj003pED nU/tfn884q6Oa8YYUfu2UmihrgDzilghNPzw1BnzY8R4dUE9PwX97EZm7Cqv6pQg1Ek9SbGX DeSbR8VHtFQNk/5RZzOpzv9v8DU6l3vuzfbxQAJHNwQyo1Eu//3xdBAgcHJi3YB0UWqbOI4X gm8xIVwxhfsQRH13R+tPMnUJPl0mtONdzGIXL168kD85OFv+pryhG5xwK3kUMqdvWUIf+fdH /bdNreABfyu/qlW+xYv/vEw3mv/63uXhJf55iRcvv+L5b2yBlf4LUEsDBBQAAAAIALFRQyn7 0oDS0hAAAFMwAAAUABUAbWFjL2xpYmZyYW1ld29yay50ZXhVVAkAA74T2jkTdNo5VXgEAPQB ZAC1Wm1vK7ex/s5fQRQIbKOykrRACxygH07T9PYATU8Q5zYtroNTapeSWK+W6pJrWRH2v99n ZshdrmzHjoGeD4ksccl5feaZ4d4GW0Xn29Ptztd9Y09/7szO/uC7u0FfX18rnf99aKPtDNbe W232+8ZVhp7Ta1p/oPVKqdvaVo3pbNorRNPWpquHYlfseLtvTFz7bnf6xlSDSieHY+v3wYXT iyct6ajvt1Y/IbN8oyvfRuPaoCFOCDbouDVRR7+xcWs7ve/8vauxvRo31RBIm1a74nSIhz99 2JZyLDUdjR02eHRnO7XqXVMHeraUdnXUVWfxud3o0K9mcvh723V0/r3pnO+D2kEsjz38Ggus Xhlamh5Z0FedxX5ut2/szra8J61b9y07zzQuHtXBQPR6qT/K7rRotkBXENGvo4VwVte+tRpy ZhFqt17jmDbqxt7bBse6pV3CZHoLJ5JJodpdgH200QGb46vamcZv9MG1tT/wL6r17XV2uz4Y CB21C7r1Ube2siGY7kibjiYgPSpPmkWrcXIbFR+IE5bPehk7huiaRmOXo9711VaTD69de82O wTkLOKSm3VXtq56sJn6pbag6t4J9fdsc+fidD5GM6zsIHudGk20gvoJ642JoDT83emfaFuFE oQW/LvXXD2bnWlEq+L6rYOKO/7L4BToGRWG28x2MZxGhTZBwWvum8QdyGbIHj+7YKCR10Huc aGvyFWmDmPz2iGhpYc9D2HS+32uz8n2UQyNcuInbwGI3budEbQ6tx4Z8p25XduPa0396LwsH Njm28ZBl7xH+Tz9JLuBYhn8NyR700ffk2RWi/o7SyLO8lImdb67XWEOGgsmOego2QAGiYjme 8MOw4ExE7sIZlV3onnLBFPFJUYXNbWtWjf28doH+r2GrPiSfG9q33wTduc02UmA21tzDuops hOig7yKSXIx/IIFZ12fMxE7J2m4NhbMyKxgJW7Cf6FgGjjW00ZerXgJCh63vm7q9iJxx0MBV fROvFvyrcvEi5BwK/Z7ij8yKCHI7BNeoC69Ldvw8et+sTFc+wElnHxzCpI1LdWvbunToS1hZ 2zViNgiijHGYsyC8I1yXKKHvKH+G0/sJ6YbToN4DWFb/RiWBcfewb4FRY27PIPTGAuUshQTD rpKs3HOGJhBMmCgugowGloMW/O3p0ycYKX76dHk1aKQATkOkEdxaBmK72wPvEi7VTtIZSEEm NRwqmmx4cHGbcVsiKFlvVPQJ1b/Bsj+a7gW1aTMcQdLDQ2kVPvWhR7ocGRBF4FqtBIYQ6N0r zx9O2BtR5GJjb/1e0OoErAK6d8OzgonqS/2/e5hZqhM+UN7uUWo4XW8rX9tRx1EVMpE1HcE/ 1yN9i7px4vMHQgvenYyrgFaOt7388prqWH0la0U0faBaNm0rCZJ215fJze+UETiDLa5eaZIP 0e6GE236hF1wTBerPi5QAxukT3UHI33F5s/x4PB8MpqEnOk2vQCwKSUG8ojf2A6KH+P/8KGl LfL5qcrc2ePKU1XMwiiJxixRjmM5ffwWMUOfUQA4WmMpmSKJrl29EAnafreyEtWAPJZ2dAI0 7zuGzzWgPebcgAiMiVx4ESyV72qU3Q9AX2tqSkURkCE2hVQsxSNOYZrgCeBM0n4JsohdWfKQ HW0bIZr4rg8JbRrv71C++BRJbJ2qbPR7KrRqElM0P6dh6akWmCYVqRBNhFFsNgnri9qTMJ8u BvA3u0dYWdL2KzyR8/Ys/jPerN0DPVm7HcpStAQ76ehgY0iFDvaFebBmxwBKwAaKMkZXYF6X C/mT/nhFrN/YvelM9J0EO3K9pigK+WstdZdSJxv2VbB2068EWSSF4HHbFDkCCsuKkKVryWhZ ontYsRMt+WuWKnun7dWEfZ2NfdeSyV+U5gc2x3CCUrBRlgOpqC9RtRBLIVxlm8mx38rKHAUl Fc9x69Vh6yrJoRRYVIPaTSoymccKXQWxADk5Qtse6NnAIvFV+PwnLujPK5Dln7PnV2wsC0H1 2jrQX3XcLvTWEsUZ1HdsW2wvAXwpHrLrCD4lWO33+SOzovzHysfod8PVoGJPVTD0oIyU7RS/ Y43gSEr2wecNuqNWswicmyIFWzGn7IHo+YoA0Ww2wPyEXyhGe3EGpeA9tR5p38TYTQvwj1TA mQsZahE8wNPuxW9b34yeol4DIlqAwV/8ARjWLUrnkghqKz8gFcEbA0mU6DiECO4nK7qgREAg 00U68kir/Hqd9n7ZM8CAg4nVFikdPDODGxtTtwCw0/I96QEj0sLX7Wm6zh9esSfcTisfb6pu kba5wS8om/7IGRH0LefwqUiWa0mWgPqo3j/KoQD2e2/PmGIianDfjpoGT+1qyRrldxbp/4ot fzztzJ0l0sPUnTT8ODWF5PtUEdbMUFqLEBKS75izdPNqgJ1tavhkVcJBBBPavT4SA7ZUH0+J mg3JXoV4L4u8gVeo2Yr2IT4rMU7ucjrSwkwKUutJH0l+NZNfv2+AL62hwUODtnPWIOcyVPtP fPxUf6Z+0sKXviO0/te/eNHFBdag4d6gv3qDqjvjWhTo/XCamNTOhLuSVx2Mi8NAPSPBu/CX jMD0fOIVtI1QL2qgYB4E9yMXKnQ33PULLn2Do4Zpr3BHuMPbSadJ045pOrFQ/BDLkx9KdIja CZ5clE9RP8jAwtFKTWoux2XhyHxUfwFVuXRg633nVwBIofBGbzycAD+Zq6X+YesATp1xNB8R NcB71gO3qw8ujnYhg4xDDJVaOcT3NCwhKkb9PxjKO7GcADvtt/z0H4A0xYATnpYGJZOxeW/o EaUP55477GgXxriFtgbKwDKiFZG4lVUp5GrbzpuuPJ2KyFes7QgcuTwSlJGmyS1UYAXKGcml vuGwPM/RdWc28hvKALAXv73n1utr3mCRNuKYpp527FWnEmFjxfxUb2xrO9MsmGOJ5hIKaFJS V5GSUAz35UBIMnFdWGjdg5vLtMnWLJYs/WKQsDi4QM28ZcYqoFdy54MJKQZGOZP+8xHGVWoC ybMAMRwVvDT2/b42eeoldgl9tVXiDu7JEl1McZrNoBt3JwLdoIA+0GwgTGVxORLa29zE06D1 483yL6wqG5ujJ8lPQJ7qs2slkZCbn7KHB5phuZj6EHIawrvKkIdqCWdSmND8r1WuXVNrblMc rtMQoLZFJxO3wIqNELE0zHI0SLumZ9TMmW9BLhOOkI+NOpx8i0o+sElmIC29P4XZT7bj2g8f AoGn0ZLifSBqSySlkIpBil3KJCda3tqKDjIHArehvVgf6hhNWlKiy0zP1CTTiYXh0S23zF5S YlDumXvjuB8rZZAQPc+XFGBh7J+o2qppUMWFinGapqecoT1XKiLFPLnp0/hwoWmmxUcFmtpw 61soisNaPoXiQYQJPX4UJJQA4cJNaU2sKnaExBQX6pKCXiOZJvERbcA5JM4fj9Po50kDkURo uJBWUBTZLFD5OIRJfCoAJJ+fFe1pws0D4cp2dHOgclIWMdAclwmpeKvac/qkhzPfTVmLXTk3 Vc7qhNG+oYz+HDGp703T2yf6ol8U61wKiIl8Dx7lWoITnnH2bcsIkIhDLjqU9myiNGBpiZ4A PqCVo9H7jhrk+BZBQE2qLY3FqgTjMkmmiNPxuIdJ6Gew7hzrVWoSxwFhGojn+Z/cBSQsXFPX k4cD/LicQdSqr2C+nA0pu4uxhEqXPbVcXQjEp/Ys0dpc3XNgSENfsuIDhUtO1QRqU7vIZYHm FW80nFRK0SgpxoAFma3pEJRJ8aLAT1F73k9K4EovNq/gwG2Y+jiW7jSFkV0TXe6w1z2lZtrt kq4+SryehiSzRncccbb3vrm39dV4D2UTg1fM4Kn7w3MTJ2AqUQiuLx8NyqTsX73FuA4WOjdp Gree8VPGWiT0WI3PodaqFnzhemQPKdEvEWSEBhRxNM/iOw7u0PIk9HnpZ/2ZGPK8NZMgK7uy tO4NDdktaDcetg84lQZSp8u0lzxw9bQ9Zc2PJ4/+6udaHvp9HBIs9U30aWzK3CN9f+0oDVVu xZjNIrcGrh1jlSzaHbr8op2LiRtoZgcpAxfrsttP41EZucy6w9dFTta0anywP6dqTU33cYxl AAzdbHI0t0kcxZss9VfP6MQ/z5TSFZqStt8XOigeNv5C6dMBwrDP5kQLRH3lg4gIs+eU4OH8 GajJBvU8j7nTpETmupmukYEPpmXvcclhcPjQorx9hwh9bZtdiE9XXdCeL5yHU+MrovmAObd2 COTH5YUX2rE8pMe51SkHV0+M9ZWs913NpRPgk8IUMMid+NUiz+4nAUY21ZmD0IRfrqIQs+E0 c8eo2ft21hpwN1FGuiHvVBbywT3fWbRVh+L310nDswR6zYHlyJ9mxi2Oy78D78S/wsby8/oP f9BfDlfUKICI5bXq2bVfDKgP0o1QbrWb1NKsfQWqvUWoNhSu+GGhuON7ATu/ksvRMMPQDKHp 5jTMoJSQ9OyplxEVAR8SPUD2IrbUU2ziudnX/Lgx0vHVlihcbh3Td4vp1ZtX/9uTNKMLv6X4 Z9vz9wPlQto8MTD5Y2APQ4ZUGRVfROrvQdbu8l0WU3S6+TZNZ01NE1KgPQ0E2jwReNFJNxVN eGz9pJNC+vGRk86eyk6iM5/x31gIRv8psNwuXzE95575QT8miVamC+UEjAZID8UI7Jd6iZ4/ DtPt4yWnDL1vcbzS4DvuJ3pzSS7/gbuRXzOZRDnDMMUlaH1M/HWccI0XqXqF6n8lT0275GE4 Rbri1w363TT7kDbuofjyt7/5/e9+/1ogP7fjxsbxZG55eNT7T+rF+hD5PQa+IR0r7FJ/iGcj HKPlcqK83HgY0tDvOKCMbtz9+MZBmuSNN9GpoSj0v1zZeEAEq5nSpbKw2T8Tq5uNkf6Gejcw IFvHIxmwEShKRMMWFxT5nSMqpPdogulChcuTIWbdSUa80aCpqS/C86nxBrFZkmeUhLIXLVi7 sWLhNDdoGpWpyWNPEUEhy6RqNLfiG8UfN/g03sWfOHypCzOgKHz0oG4oMJzwdQrszBBHusK1 f3xdj2boMgOmvWQyoFY5ZC4eLniMlf46XuTrLzpyGJv39PP1BcVW+nzNa+UPEOjir1//erYp /lrqP/tOnS2mY0SnZHN5NzH134fJomPEvtmyprFFlplV2NH7GvR/8/CWgkK5xFvQ/80DmEn/ 4BpHr9JMvHVrm31qgZqqp2tScWEoLkLQIe9+Ps4k3/g9lDFkMzSViMQP8FQlvSOgL+makz5d 8UK50JRf+KZTfspZmESjFx9cTOKlFwfSBX6+N+jKlH+jS2Yki0eRE8NC8QzFOJ3fGvi85D4l YnE+j1ewK7odoJcJx8GD/iDXZP6JlmWROyt6E6m1enq5higM38Mk5H2zkj/TcYjIg/oGooVS pTRxyGYfg18/AjMaKDt6kUa5My3da7n3EzL/V8mXkNtC3zlSnXsLoVidaa3Wrguw3zSjTrmU 5oap6EjsEnsjFpdgZbIyZwpBPxO2dNfxIlUrRzvnEwmZ1jyeS8ye+W9z6fKwPJqg+KtHYsW1 r3zDYsEgxN//6a8f/4f6W3lDl/miq4VMyCbp/ksen15gCTTT4D7z0QDjlWE4lxtBSHMYjkD6 MEbPh+J1LhaLfh15ukAlAQe9TeFbATbiJB33gvyiq9/QG9qrHmDY5nuzxyJ+9tln+q/UYOu/ m87RqCu80/wtjRXf8UsvD/z39/Yf1ztDQ5d3+ldoW3/F337d1lg///f/UEsDBBQAAAAIAAmI QynMm0/zRgEAAGICAAAPABUAbWFjL01hY01vZHMudGV4VVQJAAMSc9o5E3TaOVV4BAD0AWQA XZHPbsIwDMbvfQoLidv2Atym0Z2GNkS17cAlTQyNcJIqcSkM8e5z2v1hzaXxr58/2V+2ulEt Y7yslH49cxM8rILpCNOWVI2UuYB0vRZFUTUIu0AUeuv34EYdqIgQPJ1BHZWVJsolsGil9w6U N4PEBN059IwGGoy4KIotBa1otOHcJ8j6tuML2Vpzfb0pndK7NAFWT0CYKkLiEGhKU4uomwns 7C3YReWwD/HwT2W9VShBzOdzeM6zw5uKNk+eFjBQWQYXQIrxNNQVftw7lSTgBczGfHOas+Fn 6Y20/Z5vz/cQjdjl8F42UMn8dThJzDzefr5CREy10oeUs4WGuQUdHAx7T91YNm67OonMETyU 8MgES9pDeWR4crA2sO6sPiyj6mHNY1FZh7CR96vKqV+FJy6NZUiIsixD3/fgMH728tYe/lYt vgBQSwMEFAAAAAgAwXgyKdP/lRFNAQAAawIAABAAFQBtYWMvTWFjTW9kcy50ZXh+VVQJAAPJ kcY5+nLaOVV4BAD0AWQAXVG7bsMwDNz9FUSAbO0PeCsad2rQBjHaDllkiY6FUJIh0XHSIP9e 2u4jtRaJp+OBd9zpRrWM8bJW2noOqYFti9rWVsM6mI4w7UhVSANBgHS9ZllWNgh1IAq99Xtw Ew9URAiezqCOykoTDSWwcKX3DpQ3I8UE3Tn0jAYajJhn2Y6CVjTJ8NAnkPVtxxeylebqelM6 pes0A6yeAWHOCIlDoDmaWkTdzMDO3gJ1VA77EA//WNZbhRLEcrmE52F2eFPRDpOnHEZUzGAO pBhPY13ix71TSZLOYfF65ib4Ic3F+Fl4I22/51vzPUQjckN4L1soZf4qnCRmnl4/tyBCpkrp QxqyhYa5BR0cjL7naiyO265KQnMEDwU8MsGK9lAcGZ4cbAxsOqsPq6h62PBUlNYhbGV/ZTHX K/HEhbEMCVHMMvR9Dw7jZy+79vBnNfsCUEsDBBQAAAAIAEFSQyl02TL7IwsAAFwiAAAQABUA bWFjL2xpYm1hY2ZzLnRleFVUCQADyRTaORJ02jlVeAQA9AFkALVaa28bNxb9zl9BFAhiA5KA tvsA/M1I6t0Am8SIvS+sii01w5G4niEHJMeKKui/732Q85DlRE7RAAUsiXOf5557L6fLoIto nN0vG1d2td43qqjCQc7ncyHzv38ob1wXZGVqLcMuRN3IoP2jKXQ4CLEsdVErr5OEVWfqaOwh iQIxy7ZWsXK+2b9XxUEkVWFnXRtM2N91bet8lHBC3tzdtbqYybjR8ro2Ksj3yqq19rPBnPRv 2Xq39qrZV8aW2h+kwvM6zKSyJQm4i/CX8qW8QcNbVTyApAVYLO43Jkg2Q4KYR1PqIFUB/gQZ HegsjI0ubJI9cgOCamPXI8NENuxZQ75ih1ji8c/7QdnE4UP+fRqGwbb+wEQ8ePfPjbb6UXup ZNVZSq+E0DY6blwp9WdwKIJxcvmo/B5zChb7dddoG9E/E0T+KAtl5UpLZ+G/Cn7zWuMJuw5X S3nx/SWpqGsU3yofjaoH+0Sr4saqRs/kxQ9w0kKgdnHX6j0H9SDd6n9gCj588SOK+nEeuxYi tCxcqfcXZN+2/KSrD11zmAn6DGrevT3M2HiUfrgE84OEBBberHQpDSgqTNTRREDjOxsguaK3 CuzGMIXDQl6nh1qOUPXlvImUN4qJqoPDwFSu47Me8ik+fLz/6QrEMrDAxnFNWTAaQHfdRTc3 DQIebAWseQ3VUWiRlRFGClXXAT2hR+XWxI38oB7vUtHx76BxudJrY/eYZvTlkEPLaRVvvFZR fyH0WHLoaYAvTWXAInwQoKltOUg9oeeT2mZVpYrqDFVr86gtKfNqK/GhXvvyzf4gQvRdETuv h6+PBCkELRwD+C2kpBLGKlbG1jvZBQ1IFKaSO9dBvT4CYlcRfgOfThg1aHNcKVbHrfMP57lO Jfm85/zztztOODzHXcnuit/T3Zt3tnKH/eCn/FV7Nwec1KCrV0SnksvnBFEHVz9qihTRVkJs +l5SjWEUCI/ykwbjbXiGI6qA+M0MYULlauThRBJc1SXyxBYLVY6fwZBSanTosGutxWn4Jlm9 bHrOdxozMJHXOuCZIKCwMc14luhkYsn4YVROfXWL+c5eGwKMqIwPURI/yAuHNLM1QZ8sjqOC JpEmBl1XArR5ip8uL89ITSaiv+jImVk6YkhV71HjTC4Wi8NB3ELIsEWgNkCjZ5JCxCbS/OUX 1wLwjW27SPa8fi1K6BAO4PwxSax3M6pX5NRWQfPtWuREoFUv/zAvNsqrIoJscge1U3uuTWOi yG6GwQQUU2ycgxhV3jULqBo99ECfQfSkPkSKHmYK0larNZhdmkIhIkC8GrlZuAbwR+QNX7FD An13HfXLQtc4KZwR6FswsY19mFv6OAR7JsfhvgOfYchC95fZo+NUXQDEV2AFxNVtAwUWjjO3 76QSrAGqwBQbSBf07RV6EABgO+QN9jK6lpt99u4FmLntJs5A1fTulLpSUGIvQA4E9AR0eAog 8X31JseYLIf5L+tmXsgG9MMO5NjgyGJ+TRgaKZQ4WkzxI57HjzwfP+IUfuQ34Qey/tZ40Ov8 blylKTjPB9o6Ox8FG0iCjAdjkrTXr3Pqpfx37i9Yl8RHlBw2Pp0HHAHxwNhSm+IBXXZ8oJdd dN6DJWKsAZAanT0joVPAijMAm/rFlzMlAHEdjfzzlCznz4E61Br3gFHIE/tDmWq2KVE/pR4b NyMNGnfLOeHZb0jMBvFOU3bPa5Jjh8zFblH/759fTPtOAPzUJbcfEA3OcQuwI3NmkPmJedwg 5EWv0mowDA/pzybEmUBUrjeXC/mugq9HlROIrhOIk7TMKAFjQM6JlPcBKTADL6CuthiXgcdc WKx1LLYlMlgqM5ynXdQcQkCrp1oiBKcV9M+LPx5Tv7Lr47F9pQG9BhsKPcuwXMOG5GFZKZyN 3tUB4Jj+BL+srmc80692MG8hoAWuRTR1Q0QB/x4q+/GcOfkGoJXhQtPHjNE8kwWNUwfxNwfI AwLqdywqG+RsVYNZHNvAYYAt5uOdfLDI7moFhDFDCENJB0JN9Aq2yDQBQPFXoM/iusBCEmLI jL7SoJoeEC9BK49mpSNgYn9k3IhTRaaeMhRnxrsTNfmzkFAJlDESmJyFCHYhkW3/BEKGfy9x IILOXjo406NwPP2Np75HcNDiYsgqAGKGhjyaD89IzQfNc/x7KM5G1TdAOTewy97C1gr9K+2u OJEylciGz/WMoiZTPuWHh79c2Tz4Y12lpIumA/pcjdctGvJphc4aF/2oTy0Jh/2t2qHMIi8a 4mjRILXUaVxidwocfsPrnMA+BgBH0o+BhsQxFPoBNeU9b/15ocBZisq5bxrp6oQeen/95ubu cGYtXLdtTX3R2QOjwvlcA7z7DAe4YMfoSw9IRMEIWCCCWrU4Y9TL+RrH7EjvU1fEMnSrfFOW roRYTpDLWq107gDz9O1h8L/RzUp7EvQffvTntDjeT1bCFGM5EY/1baJa1bwcIucSGzlJ28DY 6jCjI4aSXOQCGGkfWYQXQVOLVPhvD/l9D3qq0zE4M0NRsxiuXIAnT+wkYrINjrR+zRKq4CMz Tt8JyefvhHhNHPfTr9krv8neTCOTcQBn4PHNAN/hPQO9U8aZIFgBtd7xMDu+tgPHwVusjGEy GG4QRG7IXtfUr1ihiomThoXSxL55qxUs4F3U3xiFRKaT+4JMnLzaTr03YXzjdK42mHzfcOHf Q/6OkHKKMGgjgKNj/L5Q592RziSat7Rh8PudtOOGly9i+o508vIlI4k3D1RmadSDI5PbgZe7 nwyoUNRo0n1Gfkb3o6o7aOfcDCH/Cb4k42LMz2MnLl8enrc4RU3CwwyQpj68ua5qxxsZT8nJ Mq9T5aSICUobjd0gcoa9Dnp1MXxF+Vyp4qFr+fNvAlWyu/C9Nv6DFZQ0I+ZYZ8uOjPqSPbTC sqdC+X4h6Dv5UUzwLQ0QRIejPWXTNDSvedwDYOAUtzvwwp5yc9IkmfA+TnskEcBXWiQ9eLpD JnCxaNgnnC+P+mOAakNfDKYfkgpTf6EFPueVDY2JmXi4e6b3NuHMXplMS1eUJ/g+X172DNyT N1MfXvHlSZcGv56Y+Xe8ys17HF6G9aU0JnCetw3uYP2eO5obIAxDx6Oc8qp5+moCBkCKxLgb Tm6vRVoR0XTGHIgrO5/ZhdcGjCQu0r2/3NJgjBf9GE83U7Tbwywha61KlMH3feANzfx8UCFe DeCPRqrx9eWZ1ZUSBaTAjIVbgrjGq0hg5QovUxM34f27BGhDLHDC6PdReJJk4OOwkr5M7d+5 aPfcZKcg+QFQwr+PYAHG5LWdrRoaPLEmRbX/8gfcy0Ru9k8wlPt4wtkp04e1mlCUL2dg0cBk tQ5mzBXzN6/tNW7B1rRdTeQncmFJFZ5967GQf8XVcyZVRZ1Q0aWWWLIhKUa47WN7pCP5p1RE +FsCqg7DFRoPNhssJFr2+QKCSSnXsyTEhBZmYpOZYZ22UeT3JRc6cwxz4zB+n36Hg9VD8N9l ITkIi+PtADFzTHzU7sbEd6f105eUw6vTq/SOkkxX/ZXz8ftKvEUR3GPzC3pdl1CoWtnF6QUE rft5/yYvXvfPTCy0YJ1qa6cY8ol4GpCeyKYJ6LcJvgH6Ciw5jR1IaGE6dwA2vv/TfIXYhnpf 470HPoBfpI5vLN8IsziJbbHUFa260DmeLLnpLe5kzz3TYFpscdcV1/KWahwqOnMnVJrJqczW vwbrYFFHO0zsL25eGKQyZba/hMzvg+jF0gWXbQrO5Snhr169kmh6Tf/rB7bXcCXpW4iFvpJI BJ/p873+17xRAfJ7Jb9rVPEdffuTLeH8/wFQSwMEFAAAAAgAwlJDKclQkAadCAAA9BUAABAA FQBtYWMvbGlibWFjaWMudGV4VVQJAAO8Fdo5EnTaOVV4BAD0AWQArVhNbyO5Eb3zV/AysA3I yiWXOIdg4p0NDOxgBjObIEAUYKluSs2YIntJtmVB6P+eV0Wy1dJodh0ggmGoqWKxPl69KvYq 6iYZ746rnW8Hq4+mGeX9/b2Q9fO+aXSMMnn55JIOTif56N3GbEchVq1urAq67F0PxibjRlIC BaveqrTxYXf8qLBQTogH5/to4vG7ipfQLH7uTJR5h+yDfzGtjlJNW6DRuORjN20WefPKuFa/ Hi9tlb1qntVWL8S+M00nY/IBCvugNzpoB7USlp4swZHboHZRxgHSCqYoY6VqW+yKC9HqjRps kp3f6Z7USp2apXxvo19cuiMb75IyDuY7qa1a+6CSlhEm+w309r1xWxwf/G7mVhO0go1/SIde QwN5D7dhozZbJzfGaqd2WujXpF1EAuGLHaI0jgKuKKUSf53f07YUlItwlPdFebs2ToXDAn41 xiwEbL9byq8GYSALPn2Vf1rINEsAvil2I3iLSDptJZ3eTq4uKWEIZJa0fn9v9QukGr+DOBmT NYkTzLZ20OMK8V8brOWslVWZczSlPXVarlU0jbgMbQHEZnCMYmVNOiylZPCcrDh54XwSrW+G nYaidiHXQ2LtWIspcB6QE1oJfgCUcXgV59VeARQaNkShXDsX5IDAecSAViOeCDYEKnr+jFAr K/G0ejyO8v3nJ+Tl0p2FjD7vTtCuAuL7WJG4w5k3kzE5wQ0AtdZiiMiE2VxmzGnd6jZnRs7L u4gAw+wgHbjSr43umQh0CD6McloAalsRD7u1t6YpXpJXylrJsgWd36AexsH2dmj0nwF2Ldgx PwSAjPa3GkVhI+xbrfXW4ODXBnqasVggPkwWBGXIRXzjnwjl2epvnFqKlXbtpEq8yfmNt8AK ki9BZpHKtJ0Q9TCZx79lA58ex+PK9xlxx4iCVGkI+rS0kDhqHMUjFbGmujc1Ok2Ojl//B8S7 lGTepCBXzx/vmw4wa7ChsoCgEFdkNkMIhEcQBzKSkXBbCWlFksebz4fU3Yx3pZB26iBADCgt qvAIziJdT4+RSCgR6rMh1X65elGBo6XCNoOfLBOnisrH5HJdGnAWIbZB5bLByNVaE1V1CGVl EnUoWN0MltB68IPcK6orL7fMuDMqJi5UsjUbXpqiRvTFdFXyfMrJlCZKXM6SVfjaDcGOR/yb J6dDNpCdFclawOCIso6aJVuV1FwUfoU0X8Cx36o6UwZGJzvHI/8//4HYvOR0PNLDoqZ4rrSy +5laStV8d9aOtEU9oTXzzy+/xM6H1Awp3tww/SO3YK3OtxO9MT/RGdTLYhPMmpOGDJfQTnFE Da3isK5zAhjpE2M3Usw5AVQPBdBRduoFgK9tLeN+oxo42jH6YI5fUzvMVoECROmqjIhodr09 MCAyxioU/3XzEbLvs+jNv0c020iFw+hU6Lti78NzXHD1ooDctlR3jmuljAykIeSyoRgWgiy8 8Oz8HlFcg9QlTjYePZUwQaGvyr170SFl7bmuUTJPjyJoYDhO7AxPFXJh/RZVapEJKkqskzrg KgwN1fxSfhmco1BBnbjCVLkXWI8Wszfg3DCAkmXScRpSsFMlaU2ETWBl8awPmcReFMqT2RKh DdRM6Gx0Ul2KkhVyxmBs1IFSF8VZk0F4njJkKnN6zX2UQ1UHjMn13E3JQ5OwCg957hGVISr+ cnKfHj/16tdB/4ANo8z1sDepy41V7YsmZC9FxEbv1jpwiYKZEvo12jcCWPCYVcMrHpmoEAgW PCL08Bqm53gI7l4TeODgX3Wc5ozW5EkiHObY/R7QKWen9lFq7EFMbJRX3shHn4mF2IitedFO /v3LTwuJXU1XoAveb855n7LcU88yHHmBLdeonA8o4wLAE5tOl/Kv860ojYMKMvmHm3FBYc/t owFg8ESznMXsQ3ZloqkrbU2aiSLrxgwG1MzOzrNXHenaxVV9xiFDpi0MNIvd1Xj+H0j7R4yd 1J1hAbfFfZ5hXba8AA0iGchZr+x9NKSK1Yr6JOs8+J0U8N6sjZ+xdzwb4FBF1uxyHlGLKjQd z4OE1ql60DeVhDgmA2DgmWub5m23FQlXARCati0TKY9fhAxSt+884D+TqMaylvvJB+PEpbFc UXXGzQSUg3HSS9GbwEIoPBmI+RM3SCbUFyqjM0DAwilGBZIlEmLCxgVM3giNixb85WRx7Uso fFR4nc5zvbF1vGMxIZ8rhuKoW4FxXgPn8E1NLZomegitagfG0c0mLn/8+hWt+vZuRLQi5rLc OVipoLmci0G/grJr+zmzi0LONkNS0UyYBsSgkOYt24kWRNe+cZEzRpw3lgDXEaE8IrvpYmlj 1TbWrdMVsv4KU3j6mO2/WNoZRJtPLCrIaha449hRFZ1ZSR5RoLN7ZVW4gQi96GR9VW4+A1Oo c2s4866IiivjspyJz72/pv1ywkavmkA5Z1qUJ6m6B4PldxB0cYBlUm1ITev3znqFe+y2xCTH mHmtDhJrtDEZAQyzOVCyESiG0/yGjkLKt3PBXQr3c4YO0XTx6JSv6s8ExumngmzwMds4i0fN ZN3b49abu2OGc27P556LWtrYw/poUMSt4QpAqtqZMqLIVMJGXs90X8Kp7v749PFDbuOlp2c3 ZuRZ8fbteVjgn99OFf/zUP6bfJJfsXBDzLQyR9sM6XStPgc036Ov9Y7p6HKLKhgymSs3Q2AU ddr2ON21ZZicBoZs260p18dSIwx4MzX+v+BDXX/ebu5+l5zKVM23ifziqb70yIktPPzGXFy/ 4vyNo0jvzogvyY45UZ9CUbk5XtIzD6C/z9A4nebMKUDc/fLbN44jriU0OrfC8zx6KjZ+4aQ5 9FTA9KKOWizfITjifBuZXu5kOWFwj8gNFQkd+pavzb8OaJr2KnbfvXsnf/L0EukfoBOq2Pgg eRWDuX7AoIj+zs8/63/e71QE3h5k4pUProVs/fwXUEsDBBQAAAAIAJJEYibo0jBuLQcAANoQ AAAQABUAbWFjL2xpYm1hY29zLnRleFVUCQADkxPcNhJ02jlVeAQA9AFkAI1XTY/bNhC981fw uAvY/gG9pUnRBmiboJuiF18oirLYpUiVpLxxDf33vhlSsvajbYxkYVPUzPDNmzfDYzI62+Cv xyG0kzPXX5T+9DDL/X4v5PJ5p7VJSeYg+am0Pps4RoO/sjMqT9GkWYhja7RT0VRLzWRdtn6u JmHuODqVuxAHWppFdZkuPozJputLN2k02nZWv+nvAIfiS2+TLFbkGMPZtiZJ9W9musnzWZWz +QKjMvdGfL7kPviti51Mk+6lSrIPT7TnmX9zNj67EMbVXBLKt7zP2UdzkL8nI59s7qUGFgch fg3Z8GOtRpvhPCl6TYaOV2v4Xg1mhwUcCP+UxJccotXKCRWz7ZTOsHVszMn6q/mqcVI9X3+I McS54IBFM7Jl/IjKJtNK/CggnIw3UWUsGXol7aRBiIRnDINYj1JQuYEaygYZeO+g9H5FsyaP D81I5hBcE74WtBAvciS/4IAqnqYBoOFU0ax4nghLCkXq0Bp5RxaOulVZXT894FizPCs3mXtJ 4CqZzdc8KSfp2NGOWwBvVg7i4TI0wSE6gjNJcE0q5+SjD09+s7GE0prOeiBSmCBThisVW1HP vlQETl0wm4/RdClj2frWfN08OIij8e2aljVPhGtJ1IPJPxBzfoIPZ+J87esX8dFXTJCgZ0xj klV6PlmcImitEvPXXaTujX7kAzIj005M3hHvW/CrcTgWc/C4pPb6gDfoPJ9VVEO6u58P8g/a weledslLmIRWXo4qEQure3axryHfNude5RJaQ+x25NV2yFh5QRCRz8o6iqdwgdeJn2QfuxV9 Qzx84KWMVvupD5NrJeCYohc++P3fJgZykVdbPUw0xni8RbBABaj6TbsrnH1CGdSd9ZH1J6GD hzJN4MFdc+FYsLoxCu3ggkVFBEfV7FtIwaj0ozqhSgl164kv2tyjKt8TxzZIP881oOZchCkD 0dtx4UQ7oyIXz3IYfuMgYSJTSAuUyxP51FsqS29YJVw0qr3IZBhT5QXzsbJxJd9bdCQyFCbM 12MYiyxe2wAC3n5CJM55UOlxs3TrCm9+GpOCtsptjTCpz8/W/s/K6WKNa2f+oEI6KAGwfiXG pWi4UDYwAbiDPJ5VvH6snmdRZcsUUQ9dBmPuUPhof8G3kMPOBcWQj4TB/UtXonLReE5d/5pU RYHkHz0s5ziBJhwCQzqjOqZkkmCLcRqzvNNhGBDtvg3wxtXMHAxUSy0SXI9QMzBDAZ1LzJUt Atjfhtex3HRhUTcyIu+iaaN6glgMAfFoKOUjd8oEgqLn4VtRejWOeMZ9ilpF1velfjmkJcez 6Jw6yZM9A9by3lJ+pB26V5yzIOPk+fULy+4pKk+NaLDeDmhveJrtgCoj5JZ2vMaNk5hTDBN1 AfwvAVR6LNmTIxLETxaqzc+swcNqr0ERF3so3Heo27UgS1NYOLpjd2gRanI3QZhiJKS5NRVE qjjxSulIWznlVp6n0dWRgIwE0Ii3p9rB0uI1HcB1my33OXa89EzoLGnMJsPU8D0L/e7GHiwS dSj18SL+mjA5ICkFpVVe33/+nTZS2rycxtIk5YvNDF8dkbaQ/a+yFNFj/ZtB3ll8pk5yK5gI +7FduD1zPhZ4t92GqxoiHsUYcOIG2l53rW0olEI8UuFd0yUdUm4hsvOi13eNqjMQnQL1Nlp6 b6JFqjPMp231yfRmRXXhKS2BAO4TSWRJQBsE7NgoeZZ4JjdcQpkaYa/OmCTCQM2j1De4aQOj L0pc+1JsLBlqVI2lcRRk/NhR95UqZzOMTDlqqS8IxdPYq65ADSD3SNGpF//Zh8gBN+wT3iAz y8z4DZn9EeaovTzkiNiR3Bh9mMVvXACciX8Z0soEuhn2SvL59W/wm3BrSP18xdBv2zrrrnjw YUburGVfTb7AsIAgMBjsbpVHbZ81sU6OH37+9CMImcIUIVRLi2hlcylqUjweJPV3ShcbUpKH kGWqLRHQpedc+lMJQxTnlVZbPQD9MKrQEMPJgBZSIkhwDScddN+cppgRGBMcX1ls0Qf7t6rH L3NFZ2MiOpwrGdHMWukRIDiRBNJiPE2Oy9D+Dah/MM10QqrnKwbphLFHblt6aP7EvRG9+UNE 762FidLZOxCTCICXacJnxFYDhGn9MbN6isVkeVat3rAFXD5krtgd6jVLGk0NhmCA0VAjpJxR L+GyoBgWz7d7FyqXgK79G6ZeVBSHCISQQsNXtu8oNz6IN47Ddx3QOX0/nUqPwhDIYy/b5Hpl PuhIyYNfDA6XhII+yI+5vIFUtNT9lPU4BYlYS07CSB0IxFxEcMmZ+PacwYaP3Xyly8+zdMGE QbI+jaYU6sp5uH8kpwoMohn93au7WiJbKi1qK/hWv7f+BuBNcMg/XyyoMZZk1v6IA9OgTk72 BKJIBuKYrU4lr3bN9Xrn6HjQZSO4kTPDIo0xlHnc0JvsjGht12HV6zfg+QdQSwMEFAAAAAgA +FJDKQ3emb5cBQAA7w4AABUAFQBtYWMvbGlibWFjb3N0b29scy50ZXhVVAkAAyMW2jkSdNo5 VXgEAPQBZADNV02P2zYQvfNXzCXoLuA10OvekkWDBmiLoEmbovCFlkYWG4kUSMobx9B/7xuS srXJOjHQS/e04sd8vHnzht4ErqJx9rjpXT12fOx15UJ0rgsT3d3dKZr/HpzdszVsKybvxmgs B2qcp8Z0TL22Zhg7LbYmpTY1V532XIyGqG2tfT0tzcP0ZsAN2OiPv+pqUiWGcLBuCCYcr3e5 hk/1vjWBsgmqnI3a2EDB9enrsqG7pSHlLMWWCfEYG11o12KX6Tl4iquam2RPrjWu69yjsTtq RpuADfeIbLPlnbFHWas5VNOxcsNhOgZfragOceMGOaq744oqzzryoGP7ZBXno+k5TNOkHvCR IdjstRcrE0WXP2BtWpNELAcCVdrSlikMXJnGcE06KDFuNYwRENjA8GHg4+t373BmIrf9B4wI a3rTZIvngCYCvtbZu8/snTq5o34MUZxomi0Tyj3jUbMP1LGuBRWEiWUFEFCDBDiBJSXpmkxD lisOQfvDmlIaPcfW1QKAQcC1jlqMK8/Bjb4SD/5jcpcKjUrAHxkrpMr2b5Jx51ckea6o6fQu 3CYjM8DdIQWbDmJhJZUFWlUJEMa3uvo4DpRKQDeouB67KHBEp6Q2cr+/XdMDoHA9GRAuSNX6 nm0MyYSs0eCCOWVtXcx51SAZ4JYYSlZG7pDujM68ct6AQLoTAB9bU7VpNe8PzogPE1Q2tkqG T/vCg7XasK3P/LvAyOiZz6yc1O9cjT6YPQOglKXOtJNz1Hgk+jwBC4tRcDUTAHFa5hqpLu4I LGcahdaNXX2ZrVck0X9MKS9zeEjUSpEnamTMzl4TeoWap8jW9MrFFgpzQDhqGQ5d1TzfjzS6 sWoZgpiCfM9dl/slBxlbHTOhtwaldU3ZuFsSO8CCRFT4rRCPBHMWyHOSrRxrtd0J/rM4fK0N 28MJbcmuCbIlF4wICUIsJYpfhuvIc+31Y2ruLDxC94s4SBtnHF798frdm7+npLHbsWlgLZjP OYlN5WrOUrmiued+hCLs9PYQZ1KfbCn1m0OlE3YS3OCdSImgN9PxCQkkyJB65YyAsUquvhwG EXZXjdK/ecLQzzI+Vqe7s2Y9GjBlM8v9TMGb2wntKGABh4rNXm/RRK3eo7ctdAE4my18bBlr Bk2P5TKrxPpahsaXozkH/9xsThMK+e687sux6YdQ0vhpnzQINGff6Iq/NZ6XLr4/nz94PQyp uzFUi+JfHcblkX2a0KmUO+gPvT1gClgqtuGwSqUF8QQzNaMP6ONBTu1Nnfi8YGki/iEJr+kR kFQ2t/RjSUMt0kgxp5A3cvvT8bwA8E9JlIE2u1DqJTojNZdoWxY/SAZi5ihAfdVyDPYIIfEc Gbvu6WgWnbokME8eJU+I8R9eJZ3Gv62woONnRMlRPpCFJR1a0wepUV4XBz1rVLDmAa2JJGwx 0PG9AshdmakhlQG081Hm1WlIYNHhppQF8M39t9xQJpusnPdAghZGr1Ddtx6V+0Z+g+zPU+5G 77Q05UIeU5FooZHqiwLdZnlddDUYXyMHxJiGd+BOulrmzSzDkuoYZFhm1ZIQ5OWQHg12ESFa KT982Y5XTvScq6hniLXxzya9nOyi+pm05xrLmbxY3nzFVpkkhVGYAHH0Nr1bZlBepmFcSLuc tClTy4905eOkd3u+JhU59z9PJXTMw3R8nn5jfPrjIzFGLqzkaXwQQuEHCBoNj5JxGJwXQY1X eMVzWZrtkl+IGURe8nUea5hU5YIMTzlbvF6TXzvG2j3a613NN77rS7148YJ+cdJJf2pvMFE5 3FNahejxPWQo8qf0/Z7/ws+6AM29p5hWfrI1zv4LUEsDBBQAAAAIAJJEYibKSRaTTQQAAKML AAAUABUAbWFjL2xpYm1hY3NwZWVjaC50ZXhVVAkAA5QT3DYSdNo5VXgEAPQBZACtVk1v4zYU vPNXvGMM2Ea3x962QRHsoW2wSRco6j1Q0pPFXYoUSMpeQdB/75CiYsfrdIOgucTmx8z7mDf0 znMZlDXjrrVVr3lsZek75rKZaLPZCFr+PpjArpYlU7AUGqbfZalMsL6hh3QeC0bu2U1C7Cou tXScIYte6aDMdIYN3F2nZaita0cgTSLz+8HYzis/vppvC0Lx2ChPMwJ1zh5UxZ6kIfValLXY KVPxt/HltPKBi3snxElIre1RmT0Nto+EmsMFaR8QD3WNk579lv7GOcNckaQDO48+kK1FvPKc hfhbYJP2b5aD75BfRT9TIw9MBbOhwD5wtULSAgE42tUK1f9tueonqq2ugIaqIy5UDDEerfu6 pUdQ5vJVFqUzNohcR6p7rUmWJft0AUlSzTL0DudsTVeiHThsoZhArRwEoBAeyYNUWhYgUCZh oCh0P4QGqeSU/BbSKXivzFj3pkQLy2l8v9ybxkk8IsMFSWkVhhcCOCsXirQmfMApcW+P7O5v 19eu+AaCrUirwkk3rLb0kZGioV1pKx5/msg6MX9+N23Fjk11CvJK2J/mlGLQGShy3kQ9gm31 1G7TtwXYr6bxChpckF8fgoPoptEHqPSvpLAI5tMy7Q7SpS3qffwetyquZa8DHawqeS0kpq5s nDW293qIaoA2ZGFdiEM00Dy0uClTS4Gs0MDYVHgH1Fc720IuykbNIbZkKGeh3awmdP1gSxnm Nv8wr197P1zU7lSpHE7ZSGNYeypweE1+gPrbzRGSfQXBre1N+BTT9y/yVKqu2bHJdfInDb+C 4I7DB1MlhmkE5hOHhPMNYeh4nDfJFl/gwWkoE88SQWpcvHmFzffFYtwJhf5MIB4uhQBZjwlp Y5dVMZ/K36m0JkhlshZ86VQXZvOJThSPbuP4QgVl72IF9JAsAYNNnfVexTmOXpBdATCddLJl aM+fo8RQOSTjRMgKDRpvDmehEK40tlqdKjgvpDz/SUF/jqW8QwHgwc87tU+Ly+wk2F9O8xrr 2UrNa1rGNi3VHBdF9M55fZM3DPfhaebOovivyP7g4+2swrPQJKCOyyjn7SXdZQRR2VygK3Rn zb1AuezyPAmbPAln7X7/An96ofzyPvk4otknPB1VaMhrtW9iu1vrWESdOKvj5JsXR3udHqLn yL3HewKHUR1qnWiiMOT8HHoIhYJqIbJ7zXgJo7Z4tpecCnUqIPoI7CT24M0iveWO8asBPg3x eguYo4yjb+fLIG7BROn1Oz26fnmSj7Atkd7LqN3qS4/XpLCh2V7t8fMKfp6zfsTTkp32IUgX 5hd98dU93NDkgr5SSd+xBNtFMcX/VMii0G/HwuDcxzpezE2e6VzjPD658Ggm+kS1tvBqs990 FkXMjvTWjJ6iSIRILf8susb/9kw/Qhcx0buMnl+JJJ+b1CVpool3sIxWGQz76oI7pS6W1On/ SX0OK0ZxSvw8tB+n/y9QSwMEFAAAAAgAdIdDKZdFD84xCAAArhsAABEAFQBtYWMvVW5kb2Nt b2RzLnRleFVUCQAD63LaORN02jlVeAQA9AFkAJ1Z308jORJ+77/CWmm0IEF4Xc3TcTOwizTM MAd7nLRZsY7bSfvobvfZ7oQsyv9+X5XdoQNNkgkvdDr2V1/9cLmqMlaFbIJ2z7/XuVVtpeug c3Ft87bUflzKiS6fr6XCC79aZdnYaxWMrZ+v6uCwiD+ssrTQ0Eusuiu0qCKEMLUIhfEiyRHS adFY68ql6Ak8MlMhg5BleTwSV1OxtG22ML4QwQplAWsmbdDrHZLECos99ZL+hUL7tcgT0ZRa 4vNMB4jPgm1VIRYmFB/FuHXlc7MMha1PAeb/EZ9H1s1Wo556UPnbLYTbcmKfOuAVKQb6pIIU HugQ3ekZCvBvnJ2bXEMqVJ1KRe+tmEtnbOsFg2YJVHtWVDZNaZSclJqUSGggW5Yi11NTk6S6 rSawHITdMNvMTv4Lnl5MreNdnQAfHDzSOojNtSrBMxeTJS9JUk9gsTyzjXZsQh8lTcC4gtGS M6QXlYag3CfbiihwJL7hg9tj+7StVVzA7u/0Gomvlp3ch2is94b0x9Lxp+dVxJSltwTc/zZq L44UECZSPfqMPGGnQdewEmyPddUxqyga6SSU0C5xtEpJD3nYuiTc3Eyn8GXNEdIBm7ppA2+3 baDHSUurEFHaN1oZ2oz4PAdeZyBavNY2K+ScHDZWNtfPDw+IsIeHFbnF1DO4xCvEMT3CJIaO woyjOaI4Dc/V2VyWLcUwA8O/Ms9NYOIJoOHYxwHhOHQaBMnPwWZjZYIOJpQax9NTHCLiEIrW F6vsiEO/CKH5eHaW67kuyQcjij89UrY6C1oVTTvxZ5VU1v9C/34ZFaEqV8cCPLypDCIqW1j3 6PmoYG06LedJEfEbWJekIDG/S6fnujs9m5vGMSaezy9W4vT0VJwTE3ExJ4Mgo6QATot8ALJ0 +YqWZ0KMm1IGCKnopGJ1OoXL2jbeeMpO8fzR8aP464N3Z2E1zOdTFfl8slVja9LqWtZypt0W UtizQYo+7+Q0IGCYUCg7RpRfy334YMsBVnojYJDP53IW+XzGgbCzPejQjgPovMYfZHMxD5EN O3cPMrThADKv4Ae5XKbQubR7MbmsDiGyCT7I44vxySj0tAcT3nAAl034QS7Xum4jF3ragwtv OIDLJvwgl+95ZPK9Nerxs5OLNzQmrSmDqVe09AAOa+AdOeZ76BG5M5XeYo/vB3lmjbyDyb+Q mJkKHmzrlO5MyBcQ53O9LR3T/gPobZc2yPRWOdlErvy4RyjFLQfQeyVgmE+dounWtiC/B5v6 oJjagBfvkLlLl+idfgoXKBi20Lj74Qv0BXRQ9kL6oKP4GmV1vGrHKMdmKMGe15tRqkCm4ipx C72I9oMM7+Om7FbrVOOnQmexWIwq7f5eQFTNZQ7jn62oQDE1wcdeQk5Q8pG9M8ZC0ZijfRiB x6DO98gRrDEecrvYw/u04wDvb+KT+3tdyriXtXI65+ks/6ZL1HZdM0Gq/pNWsGdifXvpjK7z bQe7h7mb9jaBJy/PaHSiscEA5eXUaf23Xg1p1CwfXEoRUaXXTP9olt2CP3us+/t20x4UrabV 1JS6K7lQRV86OePydp21kqJbzNeh7CaxVQQdua4M7HihmZYdA+46kR/QpJBov0k4NhYU1FIh 9ht0y1Sc//UXTD/7+WfRmYpa0SCUrKlt8tyJVtFJ2s3ix9iQGJ+1PjaVb5zKnXo14ZYVDVJT tjP0bOv22FLLDOmlzvSTVm2gnnc0YH8EBjoa61Isx078Ir55394vu/axeE0bQ+ywTWxDKWgr GidEgQwmqI/zPR/0uCkbpME+9WNg72g89SmffJXzW+3mhkYH1Ofu0Jn27Va4DzpHqDBHtPa3 CeoScdVJ21CWadH8hVVd4FKkY/7S3XP4cdNLucqj4xbnN1c0AeCmnwBE9lbKCRrrwO1rf25A ExrS38xiQHWUEZxolFyg0DVBZNzPp8skykm9OIUbi2QkngmdCDMdwqRDlMm5REtLw4XYUJPP VIEAHnKSUeiXk5M4S9dIpYikqZn1bzZ2/TgyeqYdR8erLS5MqHteDD8iMnsx2msV3hgwVb2v QTK2o+xCJiUbD+u9ZoPTTeMwyk8iLBvNyUI5LYN1GdGr9YK/fS/+Q1gO5/nNcKdlB6b12hNk V6jcp1CWjqurrzp4JcH72+35y7TvXSZrrN1c9hKUvSXJSX6xuZlcNQTAjslwsOzC82AI7tDS m3IJr2Afh/bE4VtgcSKeGXSzAnXSaMhUN+bpWjaJ+aa9yJfx6zQT3GamTZz9bTUkJHuHHJmI TLWxXqTATXO99LJvJdyH2vuuyJoaXSJ/4FarkcL4MuT5Y9GbhMZBNI5CyMiENJ1ztlqfrZur L3BahSJtMMQbntPpWnXt1haz9dceGOxxqk1Ae4jrrT1Q3P9aowNdhLbsNQJzEye3PuRUW8eR 6hYiGyi7mcTZrM5PtgnLhilunpVHrRvaaGw39zU0UI4COAkSZG48CC3TLXSEGB34hq/BSGHB lTsCLlh0EoV2fBdRmuToXDdI1BzFQL1hHxyjngumjOTckggikcZwy4hlTeNYyFz/aBCJQvwJ /YayKIwqRGNNzaP2dDPP9XqojSLO07WRgj/yHIlfrY0T519/vxKJXLrhcysWMu5IusYJdpYQ 6ZcbpHvpi6HYv+86JeqoXn60gFNjaxAEV48NVSTrSRpN7++te9x2ed7vk1MOlco/YvVUWCQg qlq4BkZfq2uPRIo0m37lWPv06vMFd2ovfx8+fBBfLKof8W/pDLnOfxT8FiLQtEIJ/cSf7/R/ TivqQd1H8RPuvJ/47UWdY/3/AVBLAwQUAAAACADgezIpJ+xlTSIEAABVCgAAEAAVAG1hYy9s aWJtYWN1aS50ZXhVVAkAA6SXxjkSdNo5VXgEAPQBZADtVk1vGzcQvfNXDAIYsoH1wi2Qiy+F Exs91LGNxkgbRAVE7Y60rLikyuFKERb73zv82JWMuGguvVUXWyPyzZs3X5wTVl5Z089bW3ca +ztJh1sltV3TAJeXlwLGzztJqoIPslLGW2qgzqeEmNdYaekwQ5CXppauHl6AMdB8q6VfWdf2 jDKI7JIOxm5JUf8PDkr2IJ4bhFcpJhtU1nipDAHZFoFUu2VjBgB2KTwDTNAlwI3W4GznlUGC Ru4QpAG7DVpIDVvpZIseHcx30vWqHmCvfCP2jaoaONgOqnB8h86pGiGA394//gwOyXauQugI 6+A3/pR4FCAJtDVrwX+DWXlswXTtEh1xAI4vb62pS/iICTJjBZgaOTxN5b8rUeMqxhQAVlZr u1dmDavOxDzTNYs5X+JamT7YaqRq6D8gkVzjwKlzg7gJUCxCoh0Dj2htOgUev/qkSzheQBKF GtvpGpYspBetJQ8/vn0LVcNKVj5EGEIvQBHjEhfCATnS95w2Z3WwOvSdM6zavkET/AnW0EGl VbUhWCwef5nNSjFHUx+JvxLKDW0+eschD/3W2Xbr52NS+yJoIzvtB46RNjGm6MNbUGbbeZBA 8S7spO6QyRo2nYpRprgT8iBUkjl9HfUpom0qpXhhdAzSrSHfUkZ5BhXR11QriUAZ6zP9T7HW oq4w6bo8eCQRJGVKY3KPwZ9fDFlQOkEFNJwJlph9zStbY/9gDXIYhl0QHgVhhxVqzRn6LsGf JNHehob/TyS/VxvkYYG+sfVJfgtY8v2pOmNVchHuTeizZcf0Pf2fr9fy9Rnpwb6Pd4b+rw4p kHk9aU88lJgF5+TFNJgmwHiblTI1E3I8ujgtnicNaLmMpMRicUCazQruYmNns3h0sUikuanh 1xh5DvGHIWrLN4psuYoWYWy8mGyX+VgCKSFMxcw6C5kKigeQ5QBYf9Eo74Oo+WfO6ggfrqsp bTyyzDrMobGyRmHEN6XRtazNd2j+5OyahaR30g39UWivPA/sU+Fb+ZVpn1iihgN/xG2amqk7 kNcmhTqOsC9yIwNn19q0vpbS5R6IzqYWSN2Sqmyax3A+SrhY/GbdJhR2Wc5mF0WCSOwGli6u 0yQwV3laABObIKUNC9jjhChycq+uhotMKIUGp4R8w2inGyKu2LFnI7rgiHhzEuoVb/GQ9mlx 2OWf/JjhZc6IewtpYFCRXRP68+g30h4ujouL5wQc47GrF/6CgkUovAwTWSegQPk1nBhKhonH U3kykOA3Unyl7BSpJee+M17pVGSJ/BRMUqHiZ1To6rj1TynFKOVJF+WuK+HLw+Pz3TXwIITa 5ndAOiTSEa7x8N756Q/xTeGKs7MzuLcVj8FP0inJFOkaojUU3TWHw8HF78/4+2UriWvsGt60 snoTrXem5vN/A1BLAwQUAAAACAAPU0MphELecK4EAABkCgAAEQAVAG1hYy9saWJtaW5pYWUu dGV4VVQJAANOFto5E3TaOVV4BAD0AWQAhVbBjts2EL3zKwYBgk2CtXrpaXsy0m0RoGkKOG0a VMWGlsY2sxIpkJS9hqB/zxtSWjvGYrMHQ0uRb2beezNUGbiKxtmhbF3dNzy8N9Ysb3/zuuWR FouFovnvQ8eWVpU3XTR2S0tf7UzE6d4zBfZ79hT6rnM+jkqVNVeN9jyhhqhtrX09focP7LJr dNw43w7vdTWqKYtwtK4LJgyrDEjRka4i6UDaPpvIqw+r5espHfXqy5dl1zVMt3u2MVxdvS6Q mvq4Y8px6MmqO+/2pmbEoo2sHJy/J+QosTXwTKWFMhV3OlKFxU1vE4k/zk+Vxtb8MDyzZVTn NVyTKbggzxWbPQO9lvQqDkGl0nJlE+rZyljQu5zcmqkPXJOxVDn7dU71YOJOlZ43EwOp9k+o dJTFELGcQU8vCBRkIRtnkdRSqlX8oFuERaKRTHiMVSLNLY4Ofx3jztm3v79bNXrPYzEJ8CTz kyo1b4wF/xH7Nq5p3EFIgp9C4HADgHLNW2OHtAKhqnFY3q4SX+MwqmXeSkmfHfKFoejEDdUm dDpWu4I+u96fS0ph5/qmVqFfzxAoaXp0W0ZCPjFHbORZleldLuIEI0zNrx7pK843TKHLFpCu Hu7uABDv7l69Bgdpac6k0k2TeHhmq1hz7ZDUxFChSrb1GTtPEXaZ8iVvqLt1aChggz6Q4FqQ ZtaQJ1vnufJo3cfMUzo794duTDyKMYPipETjXDcPjSy3Tv3asu2vJWQL9Ra1i8n4Z/b+hVzi P8HAhki0k9prgogYFgKVjQcvRvadZ/wKyk8oaGVc/1CovwNv+obMho6XPjhogQUQ7ExTqY8W S9XVDqayLqppWsD+gdxBGsvW7hCuiWP1hBKqhLnmoTtD0of1VywFKhu95mbQnLt/4fL6eJIw a57A/puP/z8Yi8ZsGs3Z7miD7IVriscOv2Kjta7uR/Uu70yD6qwnpnMFlXvtp8NjYj0tCMqY aAazagO6FtVOe8xkSX61pLfJObL/I7aig4PZWh2dBxFl5Woert7g72oEP01d4SoISuC0dDfX BX3aYSJqaqUx00g85QYrTvOvTsJ2WkyHyEl4hZsG+HUKnoSci5WDxu7dPfCzEGfk/YDQR8KG u6zBNb15c3/QfhtG9fkyijwjg+R4yVAY+dUg6TgpKzfDxvgQqXPB5F5Qj3UUJBMxOfqiuNnV OH7PR1xEePTbvhXXX+dGlHg/n6lxol5OWYAJvGcmfoheP+JcsJgD3Uxi3SUHTAbIK99Z4EJv dab3+RkdozfoFgaUkfu0NnkQ+OOJrJPS6rS/yLcE2rb3lva66UHQ1KjT2ANgB/4n3lU5Txl0 T3SuCUV6K7gyKyWrIG7S4qauOT5liT9d5Dz+RAtO1QbXpu8bzIwgdy8mYBtO2Ve995J6ZqA4 H1J02Jlqh9bCxW2dXWBK2Gg2BiI9LVhQ6StjFjiFx4ghIxesLOm1XLRSSr5s5SUMFdJYxrTK dCm0NnsPqGkSOm/gdIkgVjCSPW4VfBjouvYcphsbXzt9+kbx3LAODAlevnxJfzi4m/7R3kj0 cENpFTc13xC+3fgh/f+R/120OqCeG3rR6upFWr21cJT6BlBLAwQUAAAACABHiEMpjAtQ6kkD AAAlBwAACwAVAG1hYy9tYWMudGV4VVQJAAOFc9o5EXTaOVV4BAD0AWQAlVXdi9w2EH/3XzEE lkC5uNDXPvUhIYE7GtptKdR9kKXxWjlZcqVRdo3x/94Z2evsXkJLDT6wVvPx+5i5xgSdB/Sk nUppHpTPyi1V1ZAlh/OT0tZTSD082jaqOMFTMNlhkivWj5nmNliHcXSKUA4H9YzWG7zA/hyA 0Dlo1mMKoDRxFTfBOVpCoB4rePEcoLbmAh3nXnMOwbxIK3fqGpQ3kgGG0hisl1SCM9esq0Nj Tz5E/Mj9dSEOP3kfSJENXrBxw1XT4sn6+crDFUPBLz/brqfBVY3u1UgYv5vfxeAJnhTxV+NU i27u5GhZqqazOy86jFO0p75kXGuoNlFk8HLig3TqqTr2NoHb2I3YYUSvGU5RAq5tJfg4UR/8 6wR4IfSJESRgRIW9XaYa4ANB6kN2BlqEnNAwJaCD/5S9FtxwttSXqEYz+wXnn3X9Pbcgby1o /5rXarvqv1z7Wh7g3Fvdf2msEvITsQwqmh2IqNJm6+gNV6dpxFRXK9QNGLuN4xO0KlkNzz6c HZoTgmpDpiLo1oJT/pTVCRnaO4arfGW9KMk5GHNk1VdY7Ks14gES4jcAUiZ57wEeM4Vo2fI/ fiOC1ZD3PmKngi1QhoVFG5RlNSRBz4pjIlCZL7O7J+CQNHli2Rmn0JL4upePvzPfFB0FmvUy EQ8lyUYRsyudGLjvivWXd+vqrbiBR+NUcr8dWjTyVd0w+MGzU8eI/HcBg0lH2zLzfTiXYTQG PJ5vbbVTWUnO7R5KarAkdgqcnaUYR2e1WiGwpbmPO4uTah2Gjr1HxSjXyVhz/+yPPbJxa8LL IjuCG95mbDNBTgKLr2zNyDDfJOBNlK7Bx6+CN+y/Y1wxhQ5+3Uz61bLZ98kWtO24eu+Ye/j3 anwB0ojadqzrFr5H/+Z5WIYX8eWwTBCzukdUByi/5hNvx1eHdW3Iar0E76blFYwJswlv0H+2 vHPWzaAisgfLQv2U2XsUJM0z4giP6oh//PD++PTIbrNIYHIUUoXshl2MZx0GtpuZFx5MHUMq czC9jig5eFdeM39WLouetTT5sq/qPte66b0acJlXaOxBPlmqg3jkNm5liMnh6jWHLVcpbuP+ X8X/KHVXp5TaahT/3vwb+PL8A1BLAwQUAAAACABmiEMpluEsxmoGAACKEQAAEgAVAG1hYy9Q eXRob25Nb2RzLnRleFVUCQADwHPaOcBz2jlVeAQA9AFkAKVXTY/bNhC981fMJcgGsNVLT3sL ArQIkDRFN2gOdQ+UNLbYpUiBpOxVDf/3zpCUJUteNGgXu2trKA7n873hrmpkF9CdP8sKfkfn lTUe7B6egjS1dDX8OoTGGvhs616j32lZoj4nIcn85SLEzmMVaOP5owmO3osPJBdfG+UhnwC1 rfoWTfAQGgS/0N8m/bQmA7Tq0ARo5BFFrfZ7dLQNSiSBsg7obdbQykqZYH1TzCzYJT1nWrzA drsVMP58bDuNfL4M0cc9aWI14w7rL9kI9qjGSkuHea3slQ7KXKJaUrnrtAykoOWwXURW4Qdj O6/8+fuPKq5RSs+gxq0pSrZDR0rMAfzgA7ZQY4em5nDsexNdllqFQXTOHlWNNZTDbXiz3tnR O4d7H+hZkaIXlhQUnQDKixJ9AFlV6D2pCo2z/aF5xXR42HnZdmey2LogaOFdwb4guau1PbHR o40eKJYgj1JR+bCXnMHJ6Qd4QjqiUgGDChr/KIoftCr5r2hCq//M9QafVOmkG+A3jDVR4YVj K2oMpJkOKW0f2FyP09HvHsVufDhXTa3cw7vLZi7T1uNCVvfdQrKvKRdmITxgqE71Qqg94vNS pnxYn9w+r2V3TnEol2eQ87JdGu3atTqqg7AUDaZaiHqjlYk2w0x6cpSQKJxLpQ4eu+W7Ve/y 4XNpjftOhmZxGpqjcnbpJTpnl9bv75hPMS+tDUervyPurXxGsssvxJ1061Cxpdmzm0i39riK dBTeUZzykqTUgDCLetRciPfaW6r/SvfcrSq1Ob5U2PFrsLt+TQGh3vzFBkywyK8GRfrBYeid ie2+TnZstr22ETi2nSWUhKPUPfoNaPVMjah11JOlZI4gHEs9VojUxFcAmXpYmdegoI9wYckP rPqAjEYHJ1vPUG1pj8vwRWQgDRgb4GTd8wjkdHYBX2PXkuXzdmV9ellUUbiuyyhe1WWS4j3x Mb98m6e0gjFXT5ZiRFwYRtv4GwOZByKACqGxuibO3EBJuHNSFNbRtwKE+GLo1bpWCaWvgeSk X6GQvC3xoKjUabVGX13OL5zGSyxH5prIDte9KfGZQqnUKCnMQ5Fo2K5157NtpOakAiO5wxub cgHILrJK/Zj0qr9Ht+k8b3tXMai7Z1KTxXtFWefAKSKqH7dE8U5WTPIVgVUguuO1MHRYiB1p nrwTo78ttiW65DH3zCXRIP0SaCgubfLmLfHt21mZjHwfdc403NWaYeYi3hvAtgsD1CoxphsK JjyuxXJWvG1PrE7NmPYxCVN8nOI0eUHF722MN3dGxb3k+6phKz/8/BFyxbfMeg/EZo/ANHum JabFtb3i/swSk347t5DbX56AF2jiMapjIznZ175cjytj716uKsUb+GB7XbO/cYIjl2+HmFTD ca5KPe2buCE2qjTDKVW+qUkVJ4kIzSnaQopyac0wQyeeLlaT0b86wwPRzTzkb3M/DUhpY67H CZOK5G8er/JgQ9posOE5hZI5TBOO9GK5czUdJTFpikMHFwodKP7HsJLH4Kv9Swv+4xQ1x01D Wa3kaqph8R0+Vl6WSyL7i1hjOTd0NGkugVT5O7SvPOPDYvtJ6iU74wtVEZ88Hy9KP5o4V1mS N+PIczNhKJfFFLaf+HIQ6WYWsnm4lqGGum/bASrbGwIvmgqCFzcxLmBRjJM6xlsC/Exsm7Ff uBoJUZwwmGDlWufzKo6zxoodi3uoQGsREeCGlfN1YLywvHZf4c2rJsx7yV2KHPntI1rP8eTr rKXi+VMAuJP0MPGPvOvGHTiW7nC8ECfevruhc+JLaZ1PGPGYyTWeU9m2ZQtpRqXRYrL6OhPl hlMxiY4X4SR51tA6w1MB3xqmrIwloqFlY280b4jLRkrIVBBvU9NkFDOwp6GP7kjuEJtYZHza 91QKEdYSPoCvnOpCMpHecb0x1MpEO/v5MptRIhoRE8YOWMoFvO8I4wJQNfM3VUWo2KSDrqgw muDHwUTE0ZOxOtLzeJWWQ7xIx3OgdvKwJY+3tbPE+fXIrdcTxezEV3iLf97AJ0vh/WZd7R8B 4rWKmqmDdE2CdDGCOJJDvvxAvO5AvKVwIQfgmwjQYLxUl64YkO4UkC8REC8DMI3/MA73kMZ5 yAP8Uts0rE+5jJOqTv8xfXT5Iz0eu/yBS3VxPIucn8k1M/SIuTCiLERchYiQkCBx5SjVfI69 +AdQSwMEFAAAAAgAJ4kyKQ2iQ6K8CAAACBQAABYAFQBtYWMvUHl0aG9uT25UaGVNYWMudGV4 VVQJAAOqrsY5EnTaOVV4BAD0AWQAjVjvb9s4Ev3Ov4JY4OCk67jf2w97SezeGtcmQe1ebwED F0qiLV4kUSCpOL7A//u9GVKOLRfdBfrDlsjhzJs3b4Ze5aVqg3avD7tQ2kbiTyi1/KLyvVh5 nQdjG9XhlXu9sZlcqGe10fvXzGaeP/69VvkktzVWVyrTVbJz3yxLzUbEN2+ajTwzb5pgfSmN l0p6W+ttqYIszHqtnW6C1C+tdkY3uZbBio5tmED7lfzWmJeryjxpaZ38bprCbr30Ox90PZFf rMeyNR8TDxWFzbsaRhUFM5aZDSW/fny067XJjapGI4lFcKUpZNtllfGlLrDQPvmxLLTPncm0 sE21k6Xd9sHA985jXQzK6+SDn8hliXe5amSm5bN2O5nbZh2DQDR0dqO3tNmRq0AjWvwIO7Qx pkRuzLMmeDIAsZYAzNmi44z0Vnyrc4MQPJnpBkCrN5gnQhyy+TpvfFBVxWgc0mZOHoqHSisE 5DTSgcMYrq+z6+mXGfzIq65A2FsDHHe2c0ibD0CoY9fWSAotr5EI0bVXwV4VKmhJJ7jovp8c ufM7AMUJriOPk/cEeBv2YmHpAFmqZ0004acwDqbQYxxEzLGNlrqCt6XycutMCBq5aZKtjwSU w3b89RrJUJXcqp3vzzQB6dpaZKiucfLxq4E7gkyMCqc2zJPC2XbEn0aFBWe0zCuTPyEHo4m8 p0OjsYQXWWwSi8Xa2ZrxM7Ee5tOZvPBay0UERa6A/Cue7i/HFGaluiYvafezUfK6bSu9YJ8Y yC7rsZweO7cX90AmlQLSaTQqo48vWhyGSJSmEx4fe0tiSmGOEqXx578drHDxvTmlZNAvQa4N QMh22E0gbQiJERctUBdMlK11KDBnc+29dSMYzImocJj22LY97OGkTaScR4A+ocq1G4vK5sQl 5v6ADVsF2YiZw747sIqfmqpCsYGuqEY6TTCnXSxFNrSCQxun6iRd8wa11zqNf/d9JduuKqiW abnKQwcOsed2zWWYDERfCKZYTDg05bdWBz6iPioKhdIKl1RlwFrUjNAvqkZeJdH5EFStCt2L JnToKdhWXqQCo4XJPvJl8ydCbk3bmKlRDiAB94urf18CkluiJ4NdwoXeaoQxpWJMr8fMTNsF QEUywFBxQUOwJKo80MKY5LcE/wU0BR0xkfMgfcmIlqYylE1LD7YJvtALJ2vrMVWZXww5MA67 lvjxWQe5sT3Lj12UFzgt1y1lq9qdEgxrRc94zmPz597zyksU3AKaQ0LdbHx0uTabMowgURtK ydbZZvNBrDKNCnhFfLX5n4bO0if5B3Lq1ZZ1i03IdaXQBtWaBL/38JjfvWvizKMxBUqvSMRI g1Wrkfgi9UCqUcQdUt0qQT3IbDrHGo9HvtMfo37/NGq0Vh26ljKhX0wQpq51YVCFMN61sATl BG9Tb+1CNJm8Vzil1gknkBOOtqi94MUbAvyO69QHZqizHUhKfUTJLTiCPC8tsv8Sg+mbkjgR y1lhQnT/AV/9npTxADkDS2w6x/VnwXM5cIU77buK1JP68ZZHDnINtPQQ1A9g1yciJyAOKHUv V6iI7NeV+5WauYNkaOfFBVqBdQ5eIznUtJqCSPTbJekruQlPMpUB141Nwpac5X6Rep04zEDH 4w/GMICpx9IRGX8jc6Ne+RAovGg2Ub/oaJGO7osWctUUCtoMuUDdYa5DCyMuqx0tKeyBRvhm W83SIbgeoUA3NyBEuKJaFqvOVa9lCO2H9++32+0kAyMzeO1pSHzfxgnGv88y2vIf2jIpQ13t E5oofUGSAwwGLvdoQRnCVsMDuDqW0/sFJyni4cOu0v6Q+e9UGrE1PJ/0jFjzLFoI46cE+Cui AHy0Fw1yFgVtWIBa3jqtArKVW8g59+c0krKM8SDZoMpI2gX9fyBKtbuUV1dXUm1Aq3HMwoEl xMa3MqJAiTeYaUkkFfyhGYSqs2O1SMyQ797N7xazr0v5eb5YyvtPGOw+z/41u1vKW4x4y/uv 8vZ+OlvI67up+DT/PJPLPx7w9ffZ19m7d5hQ9HlIaf5AbioUBlVubR11LFRDhYSskLw3KTwZ WRYIt7dFyEzjLMXNai/m65/2+tQaaPDj1twCG+gLjQi9zVv4J8gwF+iS4CYL1GO8gXDtZJze rnh6O+2KR0dgTBTHU33BUm/STYLmN0oTjXB+OMLFfiqOprb4hNo/VQGcjF/7CaEmSC8OrLu5 IW3DJAhyxIU0PAW6eHCGuWYDMQ8THrdXkvvKW9la7w2hSR0WOFP0jMUxOD6eHs+OCh6nCB6Z MXrHCa8keQgGrW+jQ8Cz1JD6YTmquG1GqAJdtWyArz51l5c/mPdzckGfj/wn5Jg3byD1r97e zvj5if+MnT9fel21pTp/HJXr/PmDRrugE4/8XsY8p/sSJXYv/vY23fVpV5mNXZkWC7E81w96 sZcXJCN4Snmc4l5S2ZYFYdY8G0wQ9Pky3Y41fME6AXqDo7F9M9zoK1jg+/k7kYnKj3twOo4q FCKJ6wmIIzKHdkFyoCROb6G6GGYLnXWbDT8FO6h2BxeLb4cp8PGxj4JkEB7gkoqJKvZEvu7r KFOpS/JVgWuWR74/7bj6hWY2cSh11Bspa+d1P+meXMBGkvTPFoT7M5SXLrdaFWNxmKXUWcen amXd5qGjb2eyb2dHiKedKZSL2KPIq5Wu2/IVvu3jAKZfdA6VBRWaOG4mMWBBvByA+R131OhZ gnLxI+7P2ORJBD+4Ng42fUF/RRQ3McmDl4+PC75Ie6CG0vSdl4dH8VIZRqPBngdnCZehqWki zOAxsf2XGI3/BZlputMauk0jKKIaRns6vqUqGw51g03XBY0EVPMIOlZ9enNn1mGHqdFWfrDn pjNVEYM9r/uFqTv6DQRG6fcAYhnPHsptuF17yHKt60y7V7/zEzx+3l/KfT/sI96aidOP+3SX HsRw9Obkp4TYI48s/NjrVP/HsS7/yRV08tPdEeT/mB+9OdbKhDEWANf/A1BLAwQUAAAACAA7 hy4poUMoCGUCAAD0BAAAFwAVAG1hYy9QeXRob25PblRoZU1hYy50ZXh+VVQJAAMBZsE5PnDa OVV4BAD0AWQAhVRNb9swDL37VxAFim5Amx/QnZK1wAqsW4Gm2w49VJbomKssGvpIahT576Nk Z82SDQNyMfnIx/dI5VG3qo/oX++G2LID+cUW4VbpbfVoVY12ynx1yxZLuHoI5FZwVEAucmiB AigI3OGmVREMNQ16dBHwpUdP6DRC5CqVHhRzvYIHRy8Xlp4R2MN3coY3AcIQInYzuOUgsKbQ jKSVYZ06aaoisTuHmmNb0k9P3DSkSdmzMxCQjOIM9Km2FFo0AuTncA4Gg/ZUY8XODtDyZidG Zk9BcKOogNMMYQbLVnJaOagR1ugH0OyaUYSoydwON7nY51HFjbHjB+mTC0eTYUVrzPbUYkQD Yphnk3QWsesSetQkEkJukw6MVm82z6pK9pGniOJDGP3ZY9qQtXnWDBCpKWb1Ayy4hnu1Vius qseAhfr1xoWorC1m/t46/RGsqls1SLvCEVpO1sDPJHsR0CBkk/9Kx6QsTLXoZ3ssn8TmyOBT 1jFpymvo4zajUr0DXnm1KnsznvuD3D1G0B5VlDspEJbdikpL+vkAenN1vT2mL8X4nwluZEQH aEhodqm37HWJh1H11KZjualj6Nz2rToOLxa593H8Dnt5I/tT5x2PQuYBuqTlebmGQQXoOQQS 7Xvgj3KStEpejuZAUB55nPTOYxMOsnNj8p2JhmQnFVPmCzVxgCWzPaxZJLJm3vcW/6LjnrqU L0eaau66vChLTlz3q/JsA7x77LCr5W9HHthMwuvte/gXA+nfR3h6egqfWcuJfVOelMgPl1Ci eQGXIKT4Ur6X+OOiU/J4/SWcdEqflOi1M4L/BVBLAwQUAAAACACMU0MpegaGuDgIAADBGwAA EgAVAG1hYy9VbmRvY21vZHMudGV4flVUCQADNxfaOeNy2jlVeAQA9AFkAJ1Z31PjOBJ+91+h 2qqphSoIr1vzdNwM7FI1zDAHe1zVZotVbCXWYUs+SU7IUvnf7+uWHBwwSSa84Djq7q9/qrsz zkvZBOWefzeFzdtamaAKcS1zbYL1pbhtVK6nOhfXtmgr5ceVnKjqGQfwwq9WWTb2Kg/amucr ExwO8YdVlg5qeolTd6USdWQhtBGh1F4k0UI6JRprXbUUPQxHeipkELKqjkfiaiqWts0WGpCC FbkFWz1pg1pTSBIrLGjMkv6FUvm1yBPRVEri80wFiM+CbfNSLHQoP4px66rnZhlKa07BzP8j Po+sm61GPfWg8rdbCLfVxD51jFekGOCTClJ4cIfoTs9QAn/j7FwXClKh6lTm9N6KuXTatl4w 0ywxVZ4VlU1T6VxOKkVKJG4AW1WiUFNtSJJp6wksB2E3jDazk/8CpxdT65iqE+CDg0daB7GF yivgLMRkyUeS1BNYrMhsoxyb0EdJEyCuYbTkDOlFrSCo8Mm2IgociW/44PYgn7YmjwfY/Z1e I/HVspP7LBrrvSb9cXT86XkVecrKW2Lc/zZqL45ycJjI/NFn5Ak7DcrASrA9ztXHrKJopJNQ QrmE0ea59JAH0iXxLfR0Cl8ajpCOsTZNG5jctoEeJy2dQkQpT6lBxIjPc/DrDESH19pmpZyT w8a5LdTzwwMi7OFhRW7RZgaX+BxxTI8wiaZUmHE0Ry5OwXMmm8uqpRhmxvCvLAodGHhi0HDs I0E4Dp0CQPJzsNk410EFHSqF9PQUh+vUXmVHHPplCM3Hs7NCzVVFPhhR/KlRbuuzoPKyaSf+ rJa59b/Qv19GZair1bEADq9rjYjKFtY9ek4VnE3Zcp4UEb8BdUUKEvK7lD3XXfZsEo1jTDyf X6zE6empOCck4mJOBkFFSQGcDvkAztIVKzqeCTFuKhkgpKZMxemUhUtjG689VaeYf5R+FH99 5l0urIbxfKojnk+2bqwhra6lkTPltoACzQYo+rwT04CAYUCh6hBRfa32wQOSA6z0RsAgns/V LOL5jISwsz3gEMUBcF7zH0RzMQ8RDTt3DzBEcACYV+wHsVym0Lm0eyG5rA8Bssl8EMcX7ZNR 6GkPJExwAJZN9oNYrpVpIxZ62gMLExyAZZP9IJbvRUTyvdX542cnF29gTFpdBW1WdPQADGvG O2rM99ADcqdrtcUe3w/yzJrzDiT/QmFmKHiwrctVZ0K+gLieq23lmOgPgLdd2iDS29zJJmLl xz1CKZIcAO+VgGE8JkXTrW1NsQ8ac1BMbbAX74C5S5fonXoKF2gYtsC4++EL9IXpoOyF9EFF 8QZtdbxqx2jHZmjBntfEaFUgM+cucQu8yO0HEd5HouxWqdTjp0ZnsViMauX+XkCU4TaH+Z+t qEHRhtjHWUJO0PKRvTPmhaaxwPgwAo5Bne9RI1hjPBR2sYf3ieIA72/yJ/f3ppRxr2oVlOcp l39TFXq7bpggVf9JJ9gzsb+9dFqZYlti93juhr1N4MnLMwadaGwgQHs5dUr9rVZDGjXLB5dK RFTpNdI/mmV34M8e6j7dbtiDovNpPdWV6loudNGXTs64vV1XraToFvN1XHaD2CqCUq5rAztc GKZlh4CnTtQHDCkk2m8CjoMFBbXMEfsNpmVqzv/6C6af/fyz6ExFo2gQuTQ0NnmeROvoJOVm 8WMcSLTPWh+HyjdO5Um9nvDIigGpqdoZZrb1eGxpZIb0SmXqSeVtoJl3NGB/BAYmGutSLMdJ /CK+ed/eL1T7WNwQYYgTto5jKAVtTeuEKJCZCZrjfM8HPWy5DVKDLv8xZu9oPPWpnnyV81vl 5ppWBzTn7tCZ6HYr3Gc6R6gwRoz2t4nVJeKqk7ahLMOi/QurusClSGn+Mt1z+PHQS7XKY+IW 5zdXtAHgoZ8YiOytlBMM1oHH1/7egDY0pL+exYDqICM4MSi5QKGrg8h4nk+XSZSTZnEKNxbJ nHgndCL0dIgnJVEm5xIjLS0X4kBNPstLBPCQk3SOeTk5iau0QSlFJE31rH+zsevHEdEzURwd r7a4MHHd82L4EZHZi9Feq/DGgKnrfc0kYzvKLmRSsfGw3ms0yG5ah1F9EmHZKC4WuVMyWJcR PKMW/O178R/CcrjOb4Y7HTuwrBtPLLtG5T6FsnTcXX1VwecSuL/dnr9s+95Fsua1G8tegrK3 ILnILzaJyVVDDNgxGRLLLjwvhuAOJb2ulvAK6Di0Jw7fghcX4pnGNCvQJ42GTHWjn65lk5Bv 2ot8Gb9OO8FtZtrks7+thoRk74AjE5GpNs6LFLhpr5de9q2E+1B53zVZU60q1A/cagYljC9D 3j+WvU1oXEQjFUJGJqTtnLP1Ordurr7AaTWatMEQb3hPp0zejVtbzNY/e2Cwx602MdpDXO/s geL+12oV6CK0VW8QmOu4ufWhoN46rlS3ANngshtJ3M2q4mSbsGwY4mauPCrVEKG23d5X00I5 CuAiSCwL7QFomW6hI8TowDd8DUYIC+7cEXDBYpIoleO7iMokR+d6QKLhKAbqDfvgGP1c0FUE 55YEEIU0hltGKA2tYyFz/aNBBArxJ/QbyqLUeSkaqw2v2tPNPFfrpTaaOE/XRgr+iHMkfrU2 bpx//f1KJHDphi+sWMhIkXSNG+wscaRfblDupS+HYv++m5Roonr50QJOjaNBENw9NtSRrDdp tL2/t+5x2+V5v09NOVQq/4jVU2GRGFHXwj0w5lplPAopymz6lWPt06vPFzypvfx9+PBBfLHo fsS/pdPkOv9R8FuIwNAKJdQTf75T/zmtaQZ1H8VPuPN+4rcXpsD5/wNQSwMEFAAAAAgALnYy Kb/eJ/RrBgAAiREAABMAFQBtYWMvUHl0aG9uTW9kcy50ZXh+VVQJAAPojcY5j3PaOVV4BAD0 AWQApVdNb9w2EL3zV8wliAPY6qUn34IALQIkTVEHzaHbAyXNrlhTpEBSu1YX+u+dIamVVlqj QWvY3tVQnC/OvDfcVY3sArrzZ1nB7+i8ssaD3cNTkKaWroZfh9BYA59t3Wv0Oy1L1OckJJkf RyF2HqtAG88fTXD0Xnwg+ddGecgGoLZV36IJHkKD4Ffq26Se1mSAVh2aAI08oqjVfo+OtkGJ JFDWAb3NGlpZKROsb4qFA7uk50yLIzw8PAiYfj62nUa2L0MMcU+aWM20w/oxO8EB1Vhp6TCv lb3SQZkxqiWVu07LQApaztoosgo/GNt55c/fb6ogWylL6RnUtDVlyXboSIk5gB98wBZq7NDU nI59b2LIUqswiM7Zo6qxhnK4Tm/WuzC9c7j3gZ4VKXphSUHZCaC8KNEHkFWF3pOq0DjbH5pX XIe7nZdtdyaPrQuCFt4VHAtSuFrbEzs9+eiBcgnyKBVVD0fJJzgHfQdPSCYqFTCooPGPovhB q5L/iia0+s9cbvBJlU66AX7DWBMVjpxbUWMgzWSktH1gdz3Opt89it30cK6aWrm7d+P9Uqat x5Ws7ruVZF/TWZiV8IChOtUrofaIz2uZ8mFruX3eym5YcSjXNih42a6ddu1WHdVBWIsGU61E vdHKRJ9hIT05OpAoXEqlDh679btV77LxpbTGfSdDs7KG5qicXUeJztm19/sb7lPOS2vD0erv yHsrn5H88itxJ902Vexpjuwq0609bjIdhTcUp3NJUmpAWGQ9ai7Ee+0t1X+le+5WldocXyrs +DXYXb6mhFBv/mIDJljkV4Mi/eAw9M7Edt8edmy2vbYROB46SygJR6l79Peg1TM1otZRT5aS O4JwLPVYIVITXwBk7mFlXoOCPsKFpTiw6gMyGh2cbD1DtaU9LsMXkYE0YGyAk3XPE5CT7QK+ xq4lz5ftyvr0uqiicFuXUbypyyTFW+Jjfvn6nNIKxrN6spQjosIw+cbfGMg8EAFUCI3VNVHm PZSEOydFaZ1iK0CIL4ZerWuVUPqSSD70CxRStCUeFJU6rdboq/H8wsc4xnJkronscNmbDj5T KJUaHQrzUCQa9mvb+ewbqTmpwEju8MqnXACyi6xSPya96u8pbLLnbe8qBnX3TGqyeK/o1Dlx iojqxweieCcrJvmKwCoQ3fFaGDosxI40z9GJKd4W2xJdiph7Zkw0SL8EGopLm6J5S3z7dlEm E99HnQsNN7VmmBnFewPYdmGAWiXGdEPBhMe1WC6Kt+2J1akZ0z4mYcqPU3xMXlDxexvzzZ1R cS/5vmrYyw8/f4Rc8S2z3h2x2SMwzZ5piWlx66+4PbPEQ7+eWyjsL0/ACzTxGNWxk3zYl77c jitT744XleINfLC9rjneOMBRyNdDTKrhOFelnvZN3BAbVZrhlCrf1KSKD4kIzSnaQopyaS0w QyeeLjaT0b8GU4yrechfn/08IKWNuR5nTCpSvHm8yoMNaaPBhucUOsxhnnCkF+udm+koiUlT HDq4UMig+B/DSh6DL/6vPfiPU9QSNw2daiU3Uw2Lb/Cx8rJcE9lfxBrruaGjSXMNpMrfoH3l GR9W209Sr9kZX6iK2PJyvCj95OJSZUnRTCPP1YShXBZT2n7iy0Gkm0XKlulapxrqvm0HqGxv CLxoKgheXOW4gFUxzuoYbwnwM7HdT/3C1UiI4oTBBCuXOl9WcZw1NuxY3EIFWouIAFesnK8D 04XltfsKb940Yd5L4VLmKG4f0XqJJ18XLRXtzwngTtLDzD/yZhg34Fi6w3EkTrx+957sxJfS OluY8JjJNdqpbNuyhzSj0mgxe32ZiXLDqXiIjhfhJHnW0DrDUwHfGqasjCWioWVjrzTfE5dN lJCpIN6m5skonsCehj66I7lDbGKR8WnfUylEWEv4AL5yqgvJRXrH9cZQKxPt7JfL7EaJaEQ8 MA7A0lnA+44wLgBVM39TVYSK+2ToggqTC34aTEQcPRmrIz1PV2k5xIt0tAO1k4cHivihdpY4 v5649WJRLCy+wlv88wY+WUrvN+tq/wgQr1XUTB2kaxKkixHEkRzy5QfidQfiLYULOQDfRIAG 47W6dMWAdKeAfImAeBmAefyHabiHNM5DHuDX2uZhfT7LOKnq9B/TR5c/0uOxyx+4VhfHs8j5 mVwzQ0+YCxPKQsRViAgJCRI3gVLN59yLfwBQSwECFgMKAAAAAABQU0MpAAAAAAAAAAAAAAAA BAANAAAAAAAAABAA7UEAAAAAbWFjL1VUBQADyBbaOVV4AABQSwECFgMUAAAACACmfjIpQoAQ TFUIAACFFgAADgANAAAAAAABAAAApIE3AAAAbWFjL2xpYmN0Yi50ZXhVVAUAA9ecxjlVeAAA UEsBAhYDFAAAAAgAsVFDKfvSgNLSEAAAUzAAABQADQAAAAAAAQAAAKSBzQgAAG1hYy9saWJm cmFtZXdvcmsudGV4VVQFAAO+E9o5VXgAAFBLAQIWAxQAAAAIAAmIQynMm0/zRgEAAGICAAAP AA0AAAAAAAEAAACkgeYZAABtYWMvTWFjTW9kcy50ZXhVVAUAAxJz2jlVeAAAUEsBAhYDFAAA AAgAwXgyKdP/lRFNAQAAawIAABAADQAAAAAAAQAAAKSBbhsAAG1hYy9NYWNNb2RzLnRleH5V VAUAA8mRxjlVeAAAUEsBAhYDFAAAAAgAQVJDKXTZMvsjCwAAXCIAABAADQAAAAAAAQAAAKSB /hwAAG1hYy9saWJtYWNmcy50ZXhVVAUAA8kU2jlVeAAAUEsBAhYDFAAAAAgAwlJDKclQkAad CAAA9BUAABAADQAAAAAAAQAAAKSBZCgAAG1hYy9saWJtYWNpYy50ZXhVVAUAA7wV2jlVeAAA UEsBAhYDFAAAAAgAkkRiJujSMG4tBwAA2hAAABAADQAAAAAAAQAAAKSBRDEAAG1hYy9saWJt YWNvcy50ZXhVVAUAA5MT3DZVeAAAUEsBAhYDFAAAAAgA+FJDKQ3emb5cBQAA7w4AABUADQAA AAAAAQAAAKSBtDgAAG1hYy9saWJtYWNvc3Rvb2xzLnRleFVUBQADIxbaOVV4AABQSwECFgMU AAAACACSRGImykkWk00EAACjCwAAFAANAAAAAAABAAAApIFYPgAAbWFjL2xpYm1hY3NwZWVj aC50ZXhVVAUAA5QT3DZVeAAAUEsBAhYDFAAAAAgAdIdDKZdFD84xCAAArhsAABEADQAAAAAA AQAAAKSB7EIAAG1hYy9VbmRvY21vZHMudGV4VVQFAAPrcto5VXgAAFBLAQIWAxQAAAAIAOB7 Mikn7GVNIgQAAFUKAAAQAA0AAAAAAAEAAACkgWFLAABtYWMvbGlibWFjdWkudGV4VVQFAAOk l8Y5VXgAAFBLAQIWAxQAAAAIAA9TQymEQt5wrgQAAGQKAAARAA0AAAAAAAEAAACkgcZPAABt YWMvbGlibWluaWFlLnRleFVUBQADThbaOVV4AABQSwECFgMUAAAACABHiEMpjAtQ6kkDAAAl BwAACwANAAAAAAABAAAApIG4VAAAbWFjL21hYy50ZXhVVAUAA4Vz2jlVeAAAUEsBAhYDFAAA AAgAZohDKZbhLMZqBgAAihEAABIADQAAAAAAAQAAAKSBP1gAAG1hYy9QeXRob25Nb2RzLnRl eFVUBQADwHPaOVV4AABQSwECFgMUAAAACAAniTIpDaJDorwIAAAIFAAAFgANAAAAAAABAAAA pIHuXgAAbWFjL1B5dGhvbk9uVGhlTWFjLnRleFVUBQADqq7GOVV4AABQSwECFgMUAAAACAA7 hy4poUMoCGUCAAD0BAAAFwANAAAAAAABAAAApIHzZwAAbWFjL1B5dGhvbk9uVGhlTWFjLnRl eH5VVAUAAwFmwTlVeAAAUEsBAhYDFAAAAAgAjFNDKXoGhrg4CAAAwRsAABIADQAAAAAAAQAA AKSBomoAAG1hYy9VbmRvY21vZHMudGV4flVUBQADNxfaOVV4AABQSwECFgMUAAAACAAudjIp v94n9GsGAACJEQAAEwANAAAAAAABAAAApIEfcwAAbWFjL1B5dGhvbk1vZHMudGV4flVUBQAD 6I3GOVV4AABQSwUGAAAAABMAEwCgBQAA0HkAAAAA --------------C45300532BD5169C318532AD Content-Type: application/pdf; name="mac.pdf" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="mac.pdf" JVBERi0xLjIKMyAwIG9iaiA8PAovTGVuZ3RoIDQgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2Rl Cj4+CnN0cmVhbQp42k1RwU7rMBC85yt8tCW8eNd2HL/TE3qAhEAgyA1xSBv3EdE2VdIi8fes 60ggH+Jdz8zOZFEYPigCiYARYgxivavM0v3gm+ZuTcLVFgwGYRhTiymJTYULCgOC9Si0t+Ca mAWu2uryhmpBDkITRLs5Q9v+VT5062F/HOd3pSk08n5YTQqN7CalrZFfpfsw9qdtmtVbe8cy gScAoc8yeRY1tWAY+KzMks9pm7o5FSqBWSHgQm1+UTUZ8FFodPzu/Zl6exr6sRA/FXnZ7Uvx PM7zaZdFhLYNYGQeIUQsE2+U83JK/ZIByvdfSfKhyMik0MuL0r+blDcSlir1w3GcFn9RIKv6 s7+G53AiTa6G4Ok86CUdjmm3Svx3iDWQLsqFjDGLO7DkOJS1zC6hrtLjIe0L8Onr+D7u77vV XODOgMmrQgvRlTDXetcN2z/FkTWi4X3X2ZCN4AMuezuovJ4spvtxPf/9qWGc/mdydd1W39tj j2JlbmRzdHJlYW0KZW5kb2JqCjQgMCBvYmoKMzY5CmVuZG9iagoyIDAgb2JqIDw8Ci9UeXBl IC9QYWdlCi9Db250ZW50cyAzIDAgUgovUmVzb3VyY2VzIDEgMCBSCi9NZWRpYUJveCBbMCAw IDYxMS45OTggNzkxLjk5N10KL1BhcmVudCA4IDAgUgo+PiBlbmRvYmoKMSAwIG9iaiA8PAov Rm9udCA8PCAvRjI2IDUgMCBSIC9GMjcgNiAwIFIgL0YyOCA1IDAgUiAvRjI5IDcgMCBSIC9G MzAgNSAwIFIgPj4KL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0KPj4gZW5kb2JqCjExIDAgb2Jq IDw8Ci9MZW5ndGggMTIgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42o1a S3PjNhKuyt7mV/i2VNWI5ltkbrJMj7mrh5eUZjK12QMl0TYzEqklqXGcv5H84O0XSEqWNykf CHQ3Go1GN9D4ZPPKgD/zamRdjUxDN2z3arP/cLP8cH1nW1eBHnj21fKRhJbbf2s34eIhnOuT xWwwtFxDW4bxLIGmE2jj+S3TJov5bbSMFvOE+3eLmBsPX5f3izm3Ld0Y/Gf5jysv0B3Xvxqa ph64bm+Ot0OEClMli1U8CZk6jSbhPJHOeOC62qc4DGfhfMmkz2GcRAsZaOKcsDK7W9nQHemG 4V4NrZHu+iOywNQHQ9eA1T3n9fksuNKBY5zNQnLAWmfNS5YVTLzJFoes0Dflnpk/G67xOxP/ gLb5kcWe04FlaN/z4on7acHi5ePAcrUfNpmQG/6aniFeSKu0KZ9S7Llg1MjRvg9MV8uKY/aR nGta4Fz7xLlJWjQwwnY9bbIDBWCD7ZvaZMy0wGW7bN8CO7ZIdLXmOWNuVGxztOl7vj2mO2aW FfMW1cD0tae0yH9Lm7wskGrwkqf5JivqLKNFs3S62WR1TUtGJTKVp5UwV/WS1xnTj0rEAyPA x7goQ9bj0Xrq8rF5GZjgnkr8lIv36/JYKd+hkfhd50VavbL7Hstqrxy+laGNbHda1+UmT5tM GNtyc9xn4DlemaVWRp7BXsJmmGgGLVMnW4ftDkC8WbwDlgRXclz/km1wU21Da0r5kkJsZNW+ 5iabB41NCf5HC4QBASKDcqFwcHH74bV5JmOtQJMdYMb4qcoyXA3Gn+2cDALvZ+tXbj9VECui WG3he2GFIQWbUJTFMMMY/HWzg72jWKGQxJCyHK0qcate013zOnwEK4jsarSBZbXbDl/ybcaq dspk2wjIPUisskNVbo8bNTAt0t3rb0p7k9WNMA5ZxfuLo8CB1xSmoGmb14dd+sqMw3EN0+xe B56rfTwJLl7VAebjuDJhZFbJgnDiprc45ssivtXoVuDBTE2VrzG3j00mRN5LkO4FOnaPqsEB AI3kNLCBku7KApuWxDOQKNaRVaAhr3/NUG5XNQSSWHXAfaG0zraX/PBcoo6XrNNU4RFIoy0w mY4m01HGu11IQbuNQxDo4hAYFLTwrbImzQtKNRDJZZjock4cITMqT5iueKIb1vOE+yeecPqe 4AGy4dsLPqCscLtMeD/BbUlw5QQbLMa12pat7dNvfKKR3zImnm41svhGIKvzXbreiSClAbDb bKQenbXATWWu3wc+JHnCxCj5g6nrtM5rtMzy2xsW6bPxP8OEm/MFj4nDhzgcvk11PnETvPQC Gy4cE847uedtB26AGL8j7cvABOvHcTyeL6Mw+cjU8CdQmpyJRrOHaRTe6ky9+XqiADziakJa 3LFI+NMYhoSi8wadtloyC6yHmFwyZxrNouGFXTyznG5gr1dxuMofSEZ/IEkqG0+7jZLJdBxR xUP0r0wnh731C0tx9eOduOWrsO6YNQvjS8ZO7sei8iaaRjTIG7E+z9fuouWcHIrEO0Vlm6Dx MAgsmG3ggU+iyWo6jlnyYRU/LKiS6ela3ovVqiv8FQv6bCkQhONDCXa3xBku2a1WKkXZl2g6 5Va7RdiJ5ndxNP+kair2JXDvo1gKyf4ShBtHn+6Xyfu556jcUzsamFpyPyYDAqtnAHRuQuZP o/HNNGTaEouYhaJTzSccchVQ2VAkkKr7MOYuuCpOWISchcruZQZ0Vt8pwMMNe+cuFVcE4KFJ dKuiaoqxCp5IHsJJxD0Q4Q2kmjsJ/4UFyAoGAJ/Jt2jjeMYFK4d1N2a6SIQyTpgy5i7E8mo6 IG/wgDtmrxLYr0v3w2xxG919BSafI5TdcI5AuizjSJK05ZJX6Njre+Xj6VDyARJuwzj6PDBt t82rz2GrJw7BNJ8uIhwUflaHWnQnam6HF2rGz1ESSohxBhqyVRhz4JSoTTcIzN4074ed+/bB 0N50bq/iYpUv+W4ndeaxKfdwMW3S3U7uFyz8oEptZOjxoArOlD8gDrcaVt/03qiydPMsRe7j WRWrash+idvVkHrrmW4d3sk6bNvq1oGd3jps29Tq5xQXgpy1SDxxIcH3Kt3pxH3lL5f50MgL sA0u24YlTLq+SUIprLL6ANVxfaqAr0xo7NKB6UHJRR1c+Ak3ach/fd4k3eXD9zIOSsUix6cQ Jmtbv275RQYvIXDa33Iq1X3WaPk2mYClKxHbCqpm1w4dw9fmUOS1OqhAgWFSrPs912KnHyIg Ja5Fzjpj0hb5W6bRcwENg+1vhK8qn7fpWWU7erjUz/kBC1+PvYLV0lNWbHgYlcDgKluDCqgp oCoC6Y/ixIqH/VLmtPftFhfNkUoW4LUvX+y0pY+p3nZA7ConiDFfxRhIdDEGUp0j3i5kW2Y1 v1mKkh5ONj9SmHbAzKmlmLNteVM5UlufPHSAWaXbbJ9Cuc48qiMVXeZI92q6XEal3G0HM7VW byunnTMrtmXFRFt0Oxgk+7LJLj408FVDeRtIdQ+RWGfVd3CNoj7yV7kR98bohHH7PSp8oQNB Vm1ZHHeTdheDEjJtLOoIZejCPTs0/B5AnVx7g9DvrcsC9aD8gzu78qmsZea3xSpN0Fw4ep+b 5vDj9fXLywuZdKDnIKqFgTUiJdekWH9u9nLC7VM5GNfqRKzVqzzdbMpq2+Im5HtXWQ+NLiAE naFgUaPVuSrPF2i9ZGsZCHnx/mE/UjUGvZPxdOBlgCH0ooaXTVE3kL9sGficA8A6efQBWdAN Sx1d2Kh7QAJp83rVPg5KMT9qGVUybS2D1+WRsQI+MZHVKm4BBVMBClYfUHjnZFR3SvMnF5su wFoPMjQNS3ft4AoeVnpg+lzRzuPoBMxD6OQimEcwWx/MewvcmdZIdxwXGiPdsxyaQD02ETEy dY8bdM7Ad0+pTfDThfcVkGsFyRDgVCrgSbjiQRqv8Ko+JENTydy40L+j/ULvjjjX63tt6Fnt Sej+/8OvKZ8yjB9wzgiuvrx55lb7vh7JkrHBWTPyODTguys3AmeNXE2Jc3CMENhr8LpuuKfi si/xWO52jAK0vGOR//dIQYoXID6j64YvMGDmW2jmPyhzES37VrACmTyt5XsJcAAH7zLE0X7E EwkW5geublnXpmEifmYbI1VrOad3J3R57Q4WE3XJLfICfMt1CzVA77FiZNaic92hW/xXGYtn ryAdPLLgLzsEGj2XQU+5rC9x6rK3i1zF0x+R/CFcfjAFhrdc3fQhpB0PttLxEYs39MC5MnTX IZFvgs0bVz4kgtfH5uVsfd7udPYf2q+Didd9753PCKU1WITKcS4hqlnst78AXMh0OA11xzdP DvrJF0n0hzCeRUnS/RyQwHsGrqFB4GrLHoLe/nygHtlhfCnnTUP36PeCLucncv5W+dMzJ47j 6q7ng9NsEtiwItPpKbL0kQdnkxL52TDdt9PJgcgLN4PAZAuHAsQHgSsQfgIl/HPT3kSzFIIA 6/qaanM4yyYQndVR8ObxHhKl2qZ7Gb1UF9acEnwHm1frDFeO1UuBFidHMNTGKjq3ck25sL+u dXoU9sshx+XLwkFMnXLW8dqLS2o/JO3Lbf7YJ/Bd4ZzDmaJSUtA9h+EdtxvIzxHUcAaiA+mR bkanD9tB53CsDmV9rgdPvPLYyMBM2Gc/CsjxoVBs31d3PhX33gnSyXy5/qlFlfRIS9e9Vwzz NicxRlJQguYbYaeHQ5ZWTOdC39ekgKexOd3YqLo4m3YElzad5Cem/Nl0xfZCbSW74Y1OK2HP 68YCrzXVE1PhWx8Ph7KS+AX5k51Cz41U0QDCYiW1MtEPlTKTqF6Abz8hQOAsIUCgSwgcVV1C v/AEsU2La33btPmRCV+uAJFF1y1Q0q0c1jAD46umerXYgvLnzSuTwTl4CbRi/NuCfRrg/AOW Ke9H05YqwLTOIh1ZbWASG16t+Q8bQiR87aXKmyYTIw9VfnGh3W51T/IujZNlNLln9AR/iJkJ DHIfqhYcl/fMg9ppGSPUs5pxodfHK/GHH4LBoHGG0AoxWt7zsDj8NCYMzjY6QMwmaC5hib+E /kngRPPJdHXLC4AuG4F0xn6589aikYAzwISr4AIUirrmMlyw0HZG/hJ+C1/EhZYXEkaAQRvh zM7LNgTke15GUfGySV5GAuKI+FU4oq3wWFvhsTRDi9thL5rfRnE4WbK0Ep4s5pc8Ssie0SF7 KPoG2UMi6wm6SS9KfVFgb7IAz8jUHeYnTvC1O4qlxYx1MlpoCxaM31VCqB3weBpBkAkCf7sI xk997YG1wo7RdgUB2BMqGNXnvQvQb8wk0yeCpgcCRAfkqmUsTPzlW3TNw0/T6FM4pwdF4Lez noC1gUS1gOOLVSJztnNdAjnHcZRwFOPzZbU8BRDV/zhE8p8GYN88VHa7bXb1ocaV+q+F9v8j whjiZjZm652gh05GqnjqY6a6quX+B0bHwlNlbmRzdHJlYW0KZW5kb2JqCjEyIDAgb2JqCjMz MjQKZW5kb2JqCjEwIDAgb2JqIDw8Ci9UeXBlIC9QYWdlCi9Db250ZW50cyAxMSAwIFIKL1Jl c291cmNlcyA5IDAgUgovTWVkaWFCb3ggWzAgMCA2MTEuOTk4IDc5MS45OTddCi9QYXJlbnQg OCAwIFIKL0Fubm90cyBbIDE0IDAgUiBdCj4+IGVuZG9iagoxNCAwIG9iaiA8PAovVHlwZSAv QW5ub3QKL0JvcmRlciBbMCAwIDBdCi9SZWN0IFs5Ny4xODUgMjQ2LjUxNyAyMzMuMTM5IDI1 NS4wNDJdCi9TIC9VUkkgL1VSSSAoaHR0cDovL2hkbC5oYW5kbGUubmV0LzE4OTUuMjIvMTAx MikKPj4gZW5kb2JqCjkgMCBvYmogPDwKL0ZvbnQgPDwgL0YzMiAxMyAwIFIgL0YzMyA3IDAg UiAvRjMwIDUgMCBSIC9GMTQgMTUgMCBSID4+Ci9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdCj4+ IGVuZG9iagoxOCAwIG9iaiA8PAovTGVuZ3RoIDE5IDAgUgovRmlsdGVyIC9GbGF0ZURlY29k ZQo+PgpzdHJlYW0KeNptVE2P0zAQvfdX9IYjURM7cdKIE0i7EggkhHJDHJzE2xhSu9iOlv57 xhn3i1Z72PF48p7nzZuydQ5/bM23NS2rcl3ykm4Lvu73q4/t6t0zhA1tqmLdviyV7fCDfOh8 cLIP2c/2M1QUl4oNZ2KB2fCaim29lLej9tmGc04m3Tnpjnhw6kU5ZXqFx700s5wwHmw/75UJ y2cF+XYMozVvMlGRlFEZE+RvUMZraxL4i3UYhDFBfpW9NsH6kWabImfkU8C8H+08DRh3qXb2 KmW0QY7eml+z6QMw4MWrDmNsGVTYMEYbIZb2Ih0KUV6EYCWtKpH0wvcDiMjJF5AgPh5lgMT3 KENW1GSR4k5RlnMIeUJ6i9+8jrofMbyWCo7YOwQ+SDNIF3sqmyvh4QouMOgynpNZT2Gj0+vC 8aA8XZqEFmta8RqC+F9cjbLg7DyuAiCk9/CGdNFJr3sMfxubcUFeJzXsVCrt7BzwdnlqDE7y xHiSZjfLnYKJCZD8OUoV5xrvZKrRBka9P5HDhJ0d5jSnBdhe44JkRbElXqkL7d24bid6fhAY rs2EIHOwTgPh3XSqgm6bMg3nfbYpWf6YgHMq6vo/P0T82/FDqgbbLtI+sEJDC0ggiFN7qaP3 IwpqCd+OejcqHzArZ+BxOhzxiJQ18UcTYHuXKcWqaIcYeEA0KV2TPzPgxO062aERdJuXN0I9 ayOn6ZhVAp3JLv47rzPEYE8dwAQP1gTASnFq6Slu9KDN7sanjDztOzVc8omD3ezVJxOUO6CS ED1Qr2loWZ6oBuV7pzuV1mZEo6YebOIfEr9R59v8/qcHv1g0KlgOfqgemulm86748jOfim3i vuqAqdNeWujZJYzDYdK9vIxm9dSu/gFMlJPcZW5kc3RyZWFtCmVuZG9iagoxOSAwIG9iago2 NjMKZW5kb2JqCjE3IDAgb2JqIDw8Ci9UeXBlIC9QYWdlCi9Db250ZW50cyAxOCAwIFIKL1Jl c291cmNlcyAxNiAwIFIKL01lZGlhQm94IFswIDAgNjExLjk5OCA3OTEuOTk3XQovUGFyZW50 IDggMCBSCj4+IGVuZG9iagoxNiAwIG9iaiA8PAovRm9udCA8PCAvRjMyIDEzIDAgUiAvRjMz IDcgMCBSIC9GMzQgMjAgMCBSID4+Ci9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdCj4+IGVuZG9i agoyMyAwIG9iaiA8PAovTGVuZ3RoIDI0IDAgUgovRmlsdGVyIC9GbGF0ZURlY29kZQo+Pgpz dHJlYW0KeNoDAAAAAAFlbmRzdHJlYW0KZW5kb2JqCjI0IDAgb2JqCjgKZW5kb2JqCjIyIDAg b2JqIDw8Ci9UeXBlIC9QYWdlCi9Db250ZW50cyAyMyAwIFIKL1Jlc291cmNlcyAyMSAwIFIK L01lZGlhQm94IFswIDAgNjExLjk5OCA3OTEuOTk3XQovUGFyZW50IDggMCBSCj4+IGVuZG9i agoyMSAwIG9iaiA8PAovUHJvY1NldCBbIC9QREYgXQo+PiBlbmRvYmoKNDIgMCBvYmogPDwK L0xlbmd0aCA0MyAwIFIKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnja7VvLctvK Ea3y0l/BXciqaDLvx9L2lXOdlOVbERMvkiwgcCghJgEEAG3rS+7vpgEMKJLAACIsO5bEcrlI ieDgcc50nz7dIhMM/8iEY4akIhPJMGKMT8L1y9fzl396S+WEcqS0msyX1aHzxT+nbz5czM8v 5pezf8//8vJ8/pK4Rc4YI9UqZwTDG2LKZTAyfIKR4NVBn+plGZ0YZCTbXZXM4GsYT3+7LW6S eHZGBZ42r8WNrd+8D8LDsxqBuCp/KE/mfvdp+ymTCs4t6497zn14K5xrhBWDWyHICOG/E9ax GirvhcHlvovzIlitgiKCOzk4hcJIwbc91y3hpsTuVXecB83OBDywh37hxnyvpX/eyyWKyg4a KIUo1iNZQB0Lfk1mVEy/OCon9Wu2cdwO6pct7bmZ5mEWpcXhxRDGEDXGy3QkNT8x5ujrBORV B/KESWT02ADA+qAPMxsU9lj0OUPKj75GhOofjP7jhL3Cm7bxFoAzVSPx5g7veZOo3v1yfngK iRHX3oBvEBX8BOCPvs4q7rfZIA0k57FkEI4Mb5L4xfUmi+LrVu7nCEvqj+RkX7H8uEj+LIlR cYA9bO6XjgMX0bK4rUPCfKZB0SarvMUGyBfUywaBtD6x4edigzySDapJD399Fxc2u39xQ7BA DPOepCFPSeOBrtMDPCEcCTk2DugmF/z5XQ/q1ZsvUXFTK0CnBlsKkPTrfyLkSf8fKQQ78BYG MXjMZxTwJuooD4M6DwMw3bUx3ieLzcrm7c0NBZ0/8DO4EGXEgHUhHtS6oKiqhOBDdfchFchg 5o4Iiyt3xM7XKUhb2hzxu1PAZaRbzgjUOKHdL4C23H+TrNebOAorgySvyd+kyfqI18nXwxuk 1CAite+xcbhX81T3QRWj2pBTxhEhalR2oogOQL4OwmXeBp1RxJTeB/0fM0LINMiiZJPXv3mx cljnt3lh1+69zT5HYceO0AQRpnuKXK5PIa4igWoHLg1yAKTiuH3PBkgQhW0GQGbkXOwz4FUI uOb7+70KBbEtmk0PZVELecER48YvgrE46Zy+66yymfFns1Gk4AOkgDz34fJ+kaGLF/XXq7dR SZE0s7U6hjSwtEGxydohgkKuIf6kKZGg7ImHCLh9OSW4nQWoRBL24zisxXAWSPKiqV/3V5GQ RKTcBxy2+Yzj6ecZEVMbRzZuVECWbIooto4Ly8QBvk0U6yCO0k1304RCrYy1t9ujkJbqcaFf g9l2oKjSgJ0eCaYcAHMZxQub+dDUiHK+j2ZpbNYH7mhQBrKPNfH/RblihzQUiMtmsT/MhJg6 4F+laYP4uSNJke8Eg610PKSAwKCajT8AbOvl70+B72lM+nghIMSxsepeDW/yPLU2vGkDCeel Wh+v8SHIA55J7mrby3p591EcXNek2UMYCNiUsm2AKVRlj7POrSFlHVudIK7GCjc9AOl5kN/+ EgWr5PqeW/11kEdhGzv4cXG3zB5euHRIeoIy4eRZibcaaN4GGgBWmI4s08wA0G+zYG0/Jtmn I/ZuEBZR2aGsA7BrSUJgdiW5S9HlwjO4pS/lTncnOKzIuVD+ilw+WWPKC/VeRX60CYOHhHcU R6/OK8Tvt6k/pNaheVm1l8umVJ2Gs/AmKmxYim3Xf4bivKKD86nzTZomWdGWYhClOeuRYko9 kl1fg6jb80yYIAbiZYwVyJwV+Pd4kYSbNYgbu+h3A4lGinqfJ2NQyBE2NMhkOuxAhrCho5jI diaZigyuO+ycZBKI+He/+f9VZM+rf1WzuE0ADfF3XOOKbUeYdir1smi4Sr66Ws3DZQhWgmp/ q8LoEyXGTyzRcmKpw+uBNCwIGbnThwzAq020WhxR//9qV2mTQmqa7Bb8pc4sF6yqwKJOPEHs IuTbLLLxoq0zIdBQKvysUo/N+qm2LMUPWvyzQdcuvW1OyDTothK3coYWSmrEjJ5kdrK8026w V9me9arap8xsnmyysEOKQK3OCNkS43AiCgpSyfvMHHMyfR+oue1h2rd0t9mgZxgu18to1cEL zhFj7NAwXNhm/wfXpWKqf/pbw64qSLhQchgaQDxpqnqoRPRzcIXpw7rCbNBIXAehzbIky+9X dO7oiPPt1/b7QBRxqfzunmH0FBN6G0GlOuja6d/QCWL3MQ6XedzRCtKIiQNlcBHMKJ5+vmya wPVQdLBqT8YRrpAkwm8sMEJP/eBvIsX4qWc2aD1GYVLaDvciRVePuG4X2XQFQcblg7IzmGTt 8xKOkW7OW571X1hg+N8a7KdwoBG8Z8QAq6cTYLxJgRuEJRlZFZrhYFAUt4O4H9oIEilC/Snc SH2qGX+QjUBJr41wtIs05GfGeWbXSTFcQVQh4WMWpNvaMsiSTVM4XtgiD4PUScUPl696XQoK wY9x4Z85Ifop/EmND9Bv6SQCpEODgr9FX98HaQNVC1eNEamGWX24bn2CeiE3PXv1HxsWbSRZ aUD0WJDb+fonpBO8uHKChB4r9MjQNGCa2aXNynGO4X5ia+AVSpGfKcA/8XKfPHC5T9igs1QO PZcMOXHjp6XId+LGkOv4301kizCJ86TLEFIcUXqQ5uMkPvsc5dHVdoS4WCQbVyHAm3TTbkoS SASkZzrQSPI8RKQ3OxCDiBqd9Yccv48dmR5xeWADfSwnA6PFtS3yg2S/Ozb0x7s+gSv9tn88 kzR6YNlRCkqMsNFdUxH7haDu0wzadTSemPpzw0ZQ8TOJKODOJQTX8mm1vX9iSoNlclY+KG7u noRuP4moWf9/HI7pXGVuZHN0cmVhbQplbmRvYmoKNDMgMCBvYmoKMjA3MwplbmRvYmoKNDEg MCBvYmogPDwKL1R5cGUgL1BhZ2UKL0NvbnRlbnRzIDQyIDAgUgovUmVzb3VyY2VzIDQwIDAg UgovTWVkaWFCb3ggWzAgMCA2MTEuOTk4IDc5MS45OTddCi9QYXJlbnQgOCAwIFIKL0Fubm90 cyBbIDQ0IDAgUiA0NSAwIFIgNDYgMCBSIDQ3IDAgUiA0OCAwIFIgNDkgMCBSIDUwIDAgUiA1 MSAwIFIgNTIgMCBSIDUzIDAgUiA1NCAwIFIgNTYgMCBSIDU3IDAgUiA1OCAwIFIgNTkgMCBS IDYwIDAgUiA2MSAwIFIgNjIgMCBSIDYzIDAgUiA2NCAwIFIgNjUgMCBSIDY2IDAgUiA2NyAw IFIgNjggMCBSIDY5IDAgUiA3MCAwIFIgNzEgMCBSIDcyIDAgUiA3MyAwIFIgNzQgMCBSIDc1 IDAgUiA3NiAwIFIgNzcgMCBSIDc4IDAgUiA3OSAwIFIgODAgMCBSIF0KPj4gZW5kb2JqCjQ0 IDAgb2JqIDw8Ci9UeXBlIC9Bbm5vdAovQm9yZGVyIFswIDAgMF0KL1JlY3QgWzcyIDUyNi42 ODggMTY3LjQ3MSA1MzUuNThdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8IC9TIC9Hb1RvIC9EIChw YWdlMDAxKSA+Pgo+PiBlbmRvYmoKNDUgMCBvYmogPDwKL1R5cGUgL0Fubm90Ci9Cb3JkZXIg WzAgMCAwXQovUmVjdCBbODYuOTQ0IDUxNi42NDYgMTU3LjY3NyA1MjMuNTU1XQovU3VidHlw ZSAvTGluawovQSA8PCAvUyAvR29UbyAvRCAocGFnZTAwMSkgPj4KPj4gZW5kb2JqCjQ2IDAg b2JqIDw8Ci9UeXBlIC9Bbm5vdAovQm9yZGVyIFswIDAgMF0KL1JlY3QgWzg2Ljk0NCA1MDIu NjQ4IDIyMC4yNDIgNTExLjZdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8IC9TIC9Hb1RvIC9EIChw YWdlMDAxKSA+Pgo+PiBlbmRvYmoKNDcgMCBvYmogPDwKL1R5cGUgL0Fubm90Ci9Cb3JkZXIg WzAgMCAwXQovUmVjdCBbODYuOTQ0IDQ5MC42OTMgMjMwLjc0MyA0OTkuNjQ0XQovU3VidHlw ZSAvTGluawovQSA8PCAvUyAvR29UbyAvRCAocGFnZTAwMikgPj4KPj4gZW5kb2JqCjQ4IDAg b2JqIDw8Ci9UeXBlIC9Bbm5vdAovQm9yZGVyIFswIDAgMF0KL1JlY3QgWzg2Ljk0NCA0ODAu NzggMTQ3LjQyNiA0ODcuNjg5XQovU3VidHlwZSAvTGluawovQSA8PCAvUyAvR29UbyAvRCAo cGFnZTAwMikgPj4KPj4gZW5kb2JqCjQ5IDAgb2JqIDw8Ci9UeXBlIC9Bbm5vdAovQm9yZGVy IFswIDAgMF0KL1JlY3QgWzg2Ljk0NCA0NjYuNzgzIDE2MS4wMDUgNDc1LjczNF0KL1N1YnR5 cGUgL0xpbmsKL0EgPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMDMpID4+Cj4+IGVuZG9iago1MCAw IG9iaiA8PAovVHlwZSAvQW5ub3QKL0JvcmRlciBbMCAwIDBdCi9SZWN0IFs4Ni45NDQgNDU0 LjgyOCAxNTguMjY2IDQ2My43NzldCi9TdWJ0eXBlIC9MaW5rCi9BIDw8IC9TIC9Hb1RvIC9E IChwYWdlMDAzKSA+Pgo+PiBlbmRvYmoKNTEgMCBvYmogPDwKL1R5cGUgL0Fubm90Ci9Cb3Jk ZXIgWzAgMCAwXQovUmVjdCBbODYuOTQ0IDQ0NC44OSAxOTIuMjQ4IDQ1MS44MjRdCi9TdWJ0 eXBlIC9MaW5rCi9BIDw8IC9TIC9Hb1RvIC9EIChwYWdlMDAzKSA+Pgo+PiBlbmRvYmoKNTIg MCBvYmogPDwKL1R5cGUgL0Fubm90Ci9Cb3JkZXIgWzAgMCAwXQovUmVjdCBbODYuOTQ0IDQz MC45MTggMjI4LjI0MiA0MzkuODY5XQovU3VidHlwZSAvTGluawovQSA8PCAvUyAvR29UbyAv RCAocGFnZTAwMykgPj4KPj4gZW5kb2JqCjUzIDAgb2JqIDw8Ci9UeXBlIC9Bbm5vdAovQm9y ZGVyIFswIDAgMF0KL1JlY3QgWzcyIDQwOS4xMjkgMTc1LjIyMiA0MTguMDIxXQovU3VidHlw ZSAvTGluawovQSA8PCAvUyAvR29UbyAvRCAocGFnZTAwNSkgPj4KPj4gZW5kb2JqCjU0IDAg b2JqIDw8Ci9UeXBlIC9Bbm5vdAovQm9yZGVyIFswIDAgMF0KL1JlY3QgWzg2Ljk0NCAzOTku MDYyIDMxNi4xMTIgNDA1Ljk5Nl0KL1N1YnR5cGUgL0xpbmsKL0EgPDwgL1MgL0dvVG8gL0Qg KHBhZ2UwMDUpID4+Cj4+IGVuZG9iago1NiAwIG9iaiA8PAovVHlwZSAvQW5ub3QKL0JvcmRl ciBbMCAwIDBdCi9SZWN0IFs4Ni45NDQgMzg1LjA5IDI2OC4wODIgMzk0LjA0MV0KL1N1YnR5 cGUgL0xpbmsKL0EgPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMDcpID4+Cj4+IGVuZG9iago1NyAw IG9iaiA8PAovVHlwZSAvQW5ub3QKL0JvcmRlciBbMCAwIDBdCi9SZWN0IFs4Ni45NDQgMzcz LjEzNCAyNDEuMjkzIDM4Mi4wODZdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8IC9TIC9Hb1RvIC9E IChwYWdlMDA5KSA+Pgo+PiBlbmRvYmoKNTggMCBvYmogPDwKL1R5cGUgL0Fubm90Ci9Cb3Jk ZXIgWzAgMCAwXQovUmVjdCBbODYuOTQ0IDM2MS4xNzkgMzA3LjA2NSAzNzAuMTMxXQovU3Vi dHlwZSAvTGluawovQSA8PCAvUyAvR29UbyAvRCAocGFnZTAxMCkgPj4KPj4gZW5kb2JqCjU5 IDAgb2JqIDw8Ci9UeXBlIC9Bbm5vdAovQm9yZGVyIFswIDAgMF0KL1JlY3QgWzg2Ljk0NCAz NDkuMjI0IDM1OC4wMjUgMzU4LjE3NV0KL1N1YnR5cGUgL0xpbmsKL0EgPDwgL1MgL0dvVG8g L0QgKHBhZ2UwMTIpID4+Cj4+IGVuZG9iago2MCAwIG9iaiA8PAovVHlwZSAvQW5ub3QKL0Jv cmRlciBbMCAwIDBdCi9SZWN0IFs4Ni45NDQgMzM3LjI2OSAzMzcuMTczIDM0Ni4yOV0KL1N1 YnR5cGUgL0xpbmsKL0EgPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMTIpID4+Cj4+IGVuZG9iago2 MSAwIG9iaiA8PAovVHlwZSAvQW5ub3QKL0JvcmRlciBbMCAwIDBdCi9SZWN0IFs4Ni45NDQg MzI1LjMxNCAzNTUuNTA0IDMzNC4yNjVdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8IC9TIC9Hb1Rv IC9EIChwYWdlMDEzKSA+Pgo+PiBlbmRvYmoKNjIgMCBvYmogPDwKL1R5cGUgL0Fubm90Ci9C b3JkZXIgWzAgMCAwXQovUmVjdCBbODYuOTQ0IDMxMy4zNTkgMjkxLjUwNCAzMjIuMzFdCi9T dWJ0eXBlIC9MaW5rCi9BIDw8IC9TIC9Hb1RvIC9EIChwYWdlMDE0KSA+Pgo+PiBlbmRvYmoK NjMgMCBvYmogPDwKL1R5cGUgL0Fubm90Ci9Cb3JkZXIgWzAgMCAwXQovUmVjdCBbODYuOTQ0 IDMwMS40MDQgMzE2LjQwMSAzMTAuMzU1XQovU3VidHlwZSAvTGluawovQSA8PCAvUyAvR29U byAvRCAocGFnZTAxNCkgPj4KPj4gZW5kb2JqCjY0IDAgb2JqIDw8Ci9UeXBlIC9Bbm5vdAov Qm9yZGVyIFswIDAgMF0KL1JlY3QgWzg2Ljk0NCAyODkuNDQ5IDM2NS40ODYgMjk4LjRdCi9T dWJ0eXBlIC9MaW5rCi9BIDw8IC9TIC9Hb1RvIC9EIChwYWdlMDE4KSA+Pgo+PiBlbmRvYmoK NjUgMCBvYmogPDwKL1R5cGUgL0Fubm90Ci9Cb3JkZXIgWzAgMCAwXQovUmVjdCBbNzIgMjY5 LjUwMyAxOTAuNzIzIDI3Ni41NTJdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8IC9TIC9Hb1RvIC9E IChwYWdlMDE5KSA+Pgo+PiBlbmRvYmoKNjYgMCBvYmogPDwKL1R5cGUgL0Fubm90Ci9Cb3Jk ZXIgWzAgMCAwXQovUmVjdCBbODYuOTQ0IDI1Ny41MTMgMTYyLjEwMSAyNjQuNTI3XQovU3Vi dHlwZSAvTGluawovQSA8PCAvUyAvR29UbyAvRCAocGFnZTAxOSkgPj4KPj4gZW5kb2JqCjY3 IDAgb2JqIDw8Ci9UeXBlIC9Bbm5vdAovQm9yZGVyIFswIDAgMF0KL1JlY3QgWzg2Ljk0NCAy NDUuNTU4IDIxMi40NzIgMjUyLjU3Ml0KL1N1YnR5cGUgL0xpbmsKL0EgPDwgL1MgL0dvVG8g L0QgKHBhZ2UwMTkpID4+Cj4+IGVuZG9iago2OCAwIG9iaiA8PAovVHlwZSAvQW5ub3QKL0Jv cmRlciBbMCAwIDBdCi9SZWN0IFs4Ni45NDQgMjMxLjY2NSAzNjIuMTY5IDI0MC42MTddCi9T dWJ0eXBlIC9MaW5rCi9BIDw8IC9TIC9Hb1RvIC9EIChwYWdlMDIwKSA+Pgo+PiBlbmRvYmoK NjkgMCBvYmogPDwKL1R5cGUgL0Fubm90Ci9Cb3JkZXIgWzAgMCAwXQovUmVjdCBbODYuOTQ0 IDIyMC4zMzMgMTkzLjY0MyAyMjguNjYyXQovU3VidHlwZSAvTGluawovQSA8PCAvUyAvR29U byAvRCAocGFnZTAyMCkgPj4KPj4gZW5kb2JqCjcwIDAgb2JqIDw8Ci9UeXBlIC9Bbm5vdAov Qm9yZGVyIFswIDAgMF0KL1JlY3QgWzg2Ljk0NCAyMDcuNzU1IDMwNS43NzEgMjE2LjcwNl0K L1N1YnR5cGUgL0xpbmsKL0EgPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMjApID4+Cj4+IGVuZG9i ago3MSAwIG9iaiA8PAovVHlwZSAvQW5ub3QKL0JvcmRlciBbMCAwIDBdCi9SZWN0IFs4Ni45 NDQgMTk3LjgxOCAyMzkuNDExIDIwNC43NTFdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8IC9TIC9H b1RvIC9EIChwYWdlMDIwKSA+Pgo+PiBlbmRvYmoKNzIgMCBvYmogPDwKL1R5cGUgL0Fubm90 Ci9Cb3JkZXIgWzAgMCAwXQovUmVjdCBbODYuOTQ0IDE4NS44NjIgMjM0LjU1OSAxOTIuNzk2 XQovU3VidHlwZSAvTGluawovQSA8PCAvUyAvR29UbyAvRCAocGFnZTAyMCkgPj4KPj4gZW5k b2JqCjczIDAgb2JqIDw8Ci9UeXBlIC9Bbm5vdAovQm9yZGVyIFswIDAgMF0KL1JlY3QgWzg2 Ljk0NCAxNzEuODkgMzI3Ljg5OCAxODAuODQxXQovU3VidHlwZSAvTGluawovQSA8PCAvUyAv R29UbyAvRCAocGFnZTAyMCkgPj4KPj4gZW5kb2JqCjc0IDAgb2JqIDw8Ci9UeXBlIC9Bbm5v dAovQm9yZGVyIFswIDAgMF0KL1JlY3QgWzg2Ljk0NCAxNjAuNTU3IDE2My42NTYgMTY4Ljg4 Nl0KL1N1YnR5cGUgL0xpbmsKL0EgPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMjEpID4+Cj4+IGVu ZG9iago3NSAwIG9iaiA8PAovVHlwZSAvQW5ub3QKL0JvcmRlciBbMCAwIDBdCi9SZWN0IFs4 Ni45NDQgMTQ3Ljk4IDMzOC4yODkgMTU2LjkzMV0KL1N1YnR5cGUgL0xpbmsKL0EgPDwgL1Mg L0dvVG8gL0QgKHBhZ2UwMjEpID4+Cj4+IGVuZG9iago3NiAwIG9iaiA8PAovVHlwZSAvQW5u b3QKL0JvcmRlciBbMCAwIDBdCi9SZWN0IFs4Ni45NDQgMTM2LjAyNCAzMTkuMjExIDE0NC45 NzZdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8IC9TIC9Hb1RvIC9EIChwYWdlMDIxKSA+Pgo+PiBl bmRvYmoKNzcgMCBvYmogPDwKL1R5cGUgL0Fubm90Ci9Cb3JkZXIgWzAgMCAwXQovUmVjdCBb ODYuOTQ0IDEyNC42OTIgMTkzLjU0NCAxMzMuMDIxXQovU3VidHlwZSAvTGluawovQSA8PCAv UyAvR29UbyAvRCAocGFnZTAyMSkgPj4KPj4gZW5kb2JqCjc4IDAgb2JqIDw8Ci9UeXBlIC9B bm5vdAovQm9yZGVyIFswIDAgMF0KL1JlY3QgWzg2Ljk0NCAxMTIuNzM3IDE5My41NDQgMTIx LjA2NV0KL1N1YnR5cGUgL0xpbmsKL0EgPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMjEpID4+Cj4+ IGVuZG9iago3OSAwIG9iaiA8PAovVHlwZSAvQW5ub3QKL0JvcmRlciBbMCAwIDBdCi9SZWN0 IFs4Ni45NDQgMTAwLjE1OSAyOTkuMTU2IDEwOS4xMV0KL1N1YnR5cGUgL0xpbmsKL0EgPDwg L1MgL0dvVG8gL0QgKHBhZ2UwMjEpID4+Cj4+IGVuZG9iago4MCAwIG9iaiA8PAovVHlwZSAv QW5ub3QKL0JvcmRlciBbMCAwIDBdCi9SZWN0IFs4Ni45NDQgODguMjA0IDMzNS4yMSA5Ny4x NTVdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8IC9TIC9Hb1RvIC9EIChwYWdlMDIxKSA+Pgo+PiBl bmRvYmoKNDAgMCBvYmogPDwKL0ZvbnQgPDwgL0YyNiA1IDAgUiAvRjMyIDEzIDAgUiAvRjMz IDcgMCBSIC9GMzcgNTUgMCBSIC9GMzggNSAwIFIgPj4KL1Byb2NTZXQgWyAvUERGIC9UZXh0 IF0KPj4gZW5kb2JqCjg0IDAgb2JqIDw8Ci9MZW5ndGggODUgMCBSCi9GaWx0ZXIgL0ZsYXRl RGVjb2RlCj4+CnN0cmVhbQp42pWPuwoCQQxF+/mKlFpszEwmM5NWUFCwm06s3BVkfYAg+Pmu q+uCD0TShFw498QCNWMhOoiWkFhgvTeE6oFQfJvWZpzNaMoOFDUw5E17zuVysDiW5101LJzQ YHYoq8twledmko19cEVRKDTrjfq41c+UNaE4vcdfSxy/UgsvqXUtnEW16S/nj57OI0v65umZ McT4y1M6au8X2CMJ+BBRteFj8zKcKth8+CX4gETSd6T3ju2267gC1S9cdmVuZHN0cmVhbQpl bmRvYmoKODUgMCBvYmoKMTg4CmVuZG9iago4MyAwIG9iaiA8PAovVHlwZSAvUGFnZQovQ29u dGVudHMgODQgMCBSCi9SZXNvdXJjZXMgODIgMCBSCi9NZWRpYUJveCBbMCAwIDYxMS45OTgg NzkxLjk5N10KL1BhcmVudCA4IDAgUgovQW5ub3RzIFsgODYgMCBSIDg3IDAgUiBdCj4+IGVu ZG9iago4NiAwIG9iaiA8PAovVHlwZSAvQW5ub3QKL0JvcmRlciBbMCAwIDBdCi9SZWN0IFs3 MiA3MDkuODk1IDEzMS41MDYgNzE2Ljg5OV0KL1N1YnR5cGUgL0xpbmsKL0EgPDwgL1MgL0dv VG8gL0QgKHBhZ2UwMjMpID4+Cj4+IGVuZG9iago4NyAwIG9iaiA8PAovVHlwZSAvQW5ub3QK L0JvcmRlciBbMCAwIDBdCi9SZWN0IFs3MiA2ODcuOTc4IDk2LjM1OCA2OTQuOTgxXQovU3Vi dHlwZSAvTGluawovQSA8PCAvUyAvR29UbyAvRCAocGFnZTAyNSkgPj4KPj4gZW5kb2JqCjgy IDAgb2JqIDw8Ci9Gb250IDw8IC9GMzIgMTMgMCBSIC9GMzggNSAwIFIgPj4KL1Byb2NTZXQg WyAvUERGIC9UZXh0IF0KPj4gZW5kb2JqCjkyIDAgb2JqIDw8Ci9MZW5ndGggOTMgMCBSCi9G aWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42qVZX4/buBEHtm956VfwW2wg1oqUREnp wyF3u8GlaC6Hyx7aotcHWaJtdmVJEKVz9nMkH7gznKEsr33XpsUCK3JIDofz90c6lYtUhEEY JYtYpUGeZ4sQ/qtFrxfbF2IRwp9YxLkMojxdKPjGYlEeXnz78OL2bZQt8iBX0eJh6yY+VP9Y fvf9mx8f7n9a/fPhz7dv43gh4iCKFc4QKkhEtFjLKFChdJM//HCPE1/cP7xYxzJ0e6yjOJCJ /D1x1iLJgxCmZnmQRvEkj1QLGQdpls4F+vFp2LfNai3TbOm/w15T431RkqRRdDrKWioRRBL4 J1mgROLY/GxNs1utoyiZOGKbvoo4IgE4mmZo7Z66xtJ4QV3bHvRKJsvjvhiIUpktEra61w2T 9Eoky0+d7o1uSmY7tMRnPIlhhnMReIufG/NpXZvHlQiXvLjtacZfV3G4NE3VrqRaHlky+2QH fQhQDaCxtRBBntCR37cWtpBRtGy3+JWsNyBMSgVi1ZbjAYQvBtM2r5Cmlpt22NNMXiKXn1t3 0JvSFPUXGoOVlgaLpiJSN25qY/e6IvqmbR8t86y0LXuzYQnapn6iOfvWafRSMGOJNlpd+UVX jgkSWmQae13YADQTZsuHveMA9LJAlnGy3PDEX9FEun/i4bbZsmFwEtoKyXR0IDTaSxijBXVP LafV2LkMif0n7Kewbtp3X3SDn74zyIV2trSyoJENeMqWmuB7fVuNJdriUprLw9tOl+bGmSEJ SSL4+sNAc1JonFP4AK2gz+TqAUd7Mot22CbKA5lHbhsRiNVahGG4fNfYoahr5yyXoQerJIR9 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 p2oKCcrlT7WmVzn3s0IUQxqI88U6lkGSzn/luNSpdL9ugCMGUIJ+70cO4dn/GylRq0hlbmRz dHJlYW0KZW5kb2JqCjkzIDAgb2JqCjI1MDUKZW5kb2JqCjkxIDAgb2JqIDw8Ci9UeXBlIC9Q YWdlCi9Db250ZW50cyA5MiAwIFIKL1Jlc291cmNlcyA5MCAwIFIKL01lZGlhQm94IFswIDAg NjExLjk5OCA3OTEuOTk3XQovUGFyZW50IDk2IDAgUgovQW5ub3RzIFsgOTUgMCBSIF0KPj4g ZW5kb2JqCjk1IDAgb2JqIDw8Ci9UeXBlIC9Bbm5vdAovQm9yZGVyIFswIDAgMF0KL1JlY3Qg WzIwNC40MTIgOTQuNDg1IDQwOS44MSAxMDMuNDM2XQovUyAvVVJJIC9VUkkgKGh0dHA6Ly93 d3cuYmFyZWJvbmVzLmNvbS9wcm9kdWN0cy9iYmVkaXRccHJvdGVjdCBcdW5oYm94IFx2b2lk YkB4IFxrZXJuIC4wNmVtXHZib3gge1xocnVsZSB3aWR0aC41NWVtfXt9bGl0ZS5odG1sKQo+ PiBlbmRvYmoKMjUgMCBvYmogPDwKL0QgWzkxIDAgUiAvWFlaIDcyIDc0NC45MDQgbnVsbF0K Pj4gZW5kb2JqCjg4IDAgb2JqIDw8Ci9EIFs5MSAwIFIgL1hZWiA3MiA1NTcuNTIxIG51bGxd Cj4+IGVuZG9iago4OSAwIG9iaiA8PAovRCBbOTEgMCBSIC9YWVogNzIgNDU4LjM1NSBudWxs XQo+PiBlbmRvYmoKOTAgMCBvYmogPDwKL0ZvbnQgPDwgL0YzOCA1IDAgUiAvRjQ0IDk0IDAg UiAvRjI2IDUgMCBSIC9GMzMgNyAwIFIgL0Y0NSA1IDAgUiAvRjQ2IDUgMCBSIC9GMzIgMTMg MCBSIC9GMTQgMTUgMCBSIC9GMzcgNTUgMCBSIC9GMzAgNSAwIFIgPj4KL1Byb2NTZXQgWyAv UERGIC9UZXh0IF0KPj4gZW5kb2JqCjEwMSAwIG9iaiA8PAovTGVuZ3RoIDEwMiAwIFIKL0Zp bHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjapVdLj9s2EAZ63Ev/gm+VF7Ei6q1TsZv1 Ii7ywq7Tomh7kCXaEiKLgkTvdn9HgubvdoYztKV4cygKA+ZwOCSHM988JGYe/MQsjd0sDGeJ 8FwviGbF/uJ6ffHyVoSzzM3iYLbeGsF1+Yfz4/yv9S8vb4PgtISEz8u/VbKdL/xYOE/qQMTj XHhOPvc952EuIkcSV1dMDEVfd5roulBmt+8oFCX5/rSBrvZPV4tYuCLO+PIPT7pS7arVsAfu 7OA/dSTOznROUtfPIt73Am8Iv3ND5qZZ8t8vSL3RPvsu4ZRKDkS1ih9d1U2tpTtfBGHovFWD xsNmMPNcP0pnCyHcLIrMOU39Ce+VzRNIez4ZEYlXvcy16nEinEKVzM7bkohSFYe9bDVve+pY oB5oPLSD1LT7Ty/y6CTfYSbItYXqe1no5gnWBTG/8iW7vG7BhAFopis6UYBt1CbfWEUJA3zZ oPYSBNudeag3eaFBTRClzg7Ng4Tazv3I2R4nZszBehUiAyeF2ncHdELooSuDNHL6elfpn+eL OIicy8vVu/vl3Tz2nDVteLO6N1TivL8lzt3yzfLX5Ttef3W3vJoLIUAe/Pv+jrnvb5b3RF69 uyHidvVmOXlFbF6x/v0DivqR57xe3i0vL4m+l5IIAj8QR7/5YcZ+Q/YAlq4NZGCykY1CEzzS dGvEgdirnsVLqfO6GVxCYRjPrEG3MzjYzbwY4eSKNDHaCdd3/flCeB6qhChM0pEmSUq4QeJG HTYYuY1kqaYucP7pHPCeuSsIM3PHChzlC0aoL4JTmBtmrolLSUJYgLRWQNFykx/aoiJehfCZ HJl3ALKur3MtaeX0BpyQNVHOvAZYt3XDrPU89RwTBcg/alHkLWtb7zvELjJLsEEjFwU8/RNx FEtxwvgGwseXJjE9BMbjQ4CuNcZ6mjlrEyzIonuB2EgaS9Uy9Vhr3kfvThJndbMkzlcaBikt YWEDE+GGmNfSYHTEVdc18t7oZ9b80ZpVQZY14yAZr9JACfCZR+/J2kFm8sd5GvUTNw1skbi+ XsIl5xAKhBvFgoUwz7wwisChrEgA0BwG1WtZEp+zAC68zQviHTQm1FoOaGYvdlaa+MbYeEIz KOJ0ahjqjcEE8DVzTdJDYgSSwMYEsE8oAy6ibJjqmLGV0MKQkUz8HDipR5kbZMHEcvWWgphA CERuw7qioomJkhYsuy85jdR7SaljJ7U+yrGTSETR2B8sg2IPKBNyqv0JcxyzKtl032jDNfiJ c86hqGyaiWYC4z3m4A8yqKgBJ5iA08trU8cfKXlQMEC+RgNyQslpOKoMNMQP7I4cDKLzhIZp BgDjp/YmV/Bdq9YmLxoZyISy9HuJammkBtpi8T5VaG98zJjHreS4q6YDD43YfOL1tWR0f7Pw YQ4WlF1n24UzC3pu4NsUHfKr1hVbCqP+2aSbuBlrtH62gUndOJz0L1iq4+fPi0I3jMJTBHrY 66ALd31ugg533kgsRwSMRnXcV8DCssUS/FD3qkUmdwroyoEEchoGCTYwEDBMSEp1kVPmQgZB 1CwV2u4cnxA5pNTfLGZTFtJbSwCCewq6JHC9LJwE3ThEsOy+mERY0UCW4eLbU+0dsL0QzlQO jNJVoHpjyzDF+m537EWMcFueCrb7PKQn1Tk8QvrjQEGNwWNx8HkMzWMrCpaqH1BT+cVCuS05 +L5XqskUHwf0QyRs74aZweyllgNXbNtJM27RbAI5NKXd/xz6Ih/I5P836AGWJuP0Qnba3miA YtMVsqCStoqZh9PLmPh80+c7WqTWGHgl9BBfiMS2VJUEGh+KEXyITFCTb0afJaa6oAcGLfPS JPvYHNaRz6CZR5iE0akhAFq1JguGITsUWFTOgeCvBKAe66YhKdVJ5h3lfzAFC9ZqXrHXHKMK F8eXjv2JcwzsRwBuRaJoPLL/6HsvBEh6ImUHYINy5iIRu6lvXaTxw89YLozg0yecFjnynLFb cdBc3/Z5e8ibhkvLP7b1leO2FxogTCMmbC6W64sFZEz8VF3EUQR6pLMwhvyXgZ5QWNNZL2fb C8FftSdZlPGD43fttBqQ/r5RPgigNbZtyqsq77TklhhUWMS+PykMNCan2MQehBX9F87EAFtl bmRzdHJlYW0KZW5kb2JqCjEwMiAwIG9iagoxNTkxCmVuZG9iagoxMDAgMCBvYmogPDwKL1R5 cGUgL1BhZ2UKL0NvbnRlbnRzIDEwMSAwIFIKL1Jlc291cmNlcyA5OSAwIFIKL01lZGlhQm94 IFswIDAgNjExLjk5OCA3OTEuOTk3XQovUGFyZW50IDk2IDAgUgo+PiBlbmRvYmoKMjYgMCBv YmogPDwKL0QgWzEwMCAwIFIgL1hZWiA3MiA3NDQuOTA0IG51bGxdCj4+IGVuZG9iago5NyAw IG9iaiA8PAovRCBbMTAwIDAgUiAvWFlaIDE1OC45MDggMzgyLjgyNCBudWxsXQo+PiBlbmRv YmoKOTkgMCBvYmogPDwKL0ZvbnQgPDwgL0YxNCAxNSAwIFIgL0YzMyA3IDAgUiAvRjMyIDEz IDAgUiAvRjQ2IDUgMCBSIC9GNDUgNSAwIFIgL0YzOCA1IDAgUiAvRjM0IDIwIDAgUiA+Pgov UHJvY1NldCBbIC9QREYgL1RleHQgXQo+PiBlbmRvYmoKMTA2IDAgb2JqIDw8Ci9MZW5ndGgg MTA3IDAgUgovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNqNVMtum0AUlbL0V7CE BdN5MAMs48St3CqVJSNl0XZBAGMkHhYPp/6O+oN7YR6OHTuKLMFlfM+5d865M8TC8COWTy2f YIQZt5JqNo9mX756wiIEhZxb0WbKitJfNkEeoo5LMMb2cwsBt4u+qHPHpX5gx/K1OvTbppbx OlFZu975E30HGpcKxDxq6JiiW/x1GLazZHjH173hmBY2bVPJ6LXot4Uq1W8zGSwfF2e1iKnl qVpPTTqUKnveNg6Qv3ZZe6NDrlD/1rFDsb13KLcVOO6OMpCLbTd08vtqrnzf73Zl1h9vFBOq 2Kpt7sqLlk4b8VXWY/Yylhny/Gb3gUqNtDzHN57o9qusdgjwjBxgPbcIGAMTMFnvMowY9RWj VuOhqe/yQTGBYxJ5PjQuDVFIA41ERHudFr2cklWbbbqrm+Rm0O7T1IxENTnXfaJPLeTPYtMf JDhyCIjVNGX3iW6F6XY+FGUqXZM4FliQKZiGjT2EE2xdVJOOZXya4qSpqrhOxw/fLotaj0Ob DyB7r6biN+ZYsfsndiJ8RNTZ6w4dAtD+fQ+ejwKq04CIqBR2SnEppsgTAQQUCcHVJh2Xwwb3 xXjS+E1fyKiLmCD0EpK2cS4jucdpqdldEdgl0AFnYJOHSGBsMjYbmYsE1IML5LbHQoH1MYh+ LOseTsCkZHN5HzzFid4JYygknkLrk/HwbfkB0twzZ5cb8M0W0QwoBecgcmB5YFUYBhb0B882 szYzom7XMWv8lzJzu56PEDYz77iC0mtnC/hH+UKVy3QH/wHtC21tZW5kc3RyZWFtCmVuZG9i agoxMDcgMCBvYmoKNTk0CmVuZG9iagoxMDUgMCBvYmogPDwKL1R5cGUgL1BhZ2UKL0NvbnRl bnRzIDEwNiAwIFIKL1Jlc291cmNlcyAxMDQgMCBSCi9NZWRpYUJveCBbMCAwIDYxMS45OTgg NzkxLjk5N10KL1BhcmVudCA5NiAwIFIKPj4gZW5kb2JqCjI3IDAgb2JqIDw8Ci9EIFsxMDUg MCBSIC9YWVogNzIgNzQ0LjkwNCBudWxsXQo+PiBlbmRvYmoKOTggMCBvYmogPDwKL0QgWzEw NSAwIFIgL1hZWiAxOTYuMjYgNDkxLjczIG51bGxdCj4+IGVuZG9iagoxMDMgMCBvYmogPDwK L0QgWzEwNSAwIFIgL1hZWiAyODQuODk0IDIzOS43NjcgbnVsbF0KPj4gZW5kb2JqCjEwNCAw IG9iaiA8PAovRm9udCA8PCAvRjQ2IDUgMCBSIC9GNDUgNSAwIFIgL0YzOCA1IDAgUiAvRjM3 IDU1IDAgUiAvRjMzIDcgMCBSID4+Ci9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdCj4+IGVuZG9i agoxMTEgMCBvYmogPDwKL0xlbmd0aCAxMTIgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+ CnN0cmVhbQp42jM3UjA10TMwM1cwMTPXs7S0UDDQMwaSRakKaVyGCgZAaKhgbqRgYqRnaGik kJzL5RTCpe9mbKFgqWdpZqwQkgZWE5ISrWGiGRvixeUawgUAzeoRcGVuZHN0cmVhbQplbmRv YmoKMTEyIDAgb2JqCjg2CmVuZG9iagoxMTAgMCBvYmogPDwKL1R5cGUgL1BhZ2UKL0NvbnRl bnRzIDExMSAwIFIKL1Jlc291cmNlcyAxMDkgMCBSCi9NZWRpYUJveCBbMCAwIDYxMS45OTgg NzkxLjk5N10KL1BhcmVudCA5NiAwIFIKPj4gZW5kb2JqCjEwOCAwIG9iaiA8PAovRCBbMTEw IDAgUiAvWFlaIDcyIDc0NC45MDQgbnVsbF0KPj4gZW5kb2JqCjEwOSAwIG9iaiA8PAovRm9u dCA8PCAvRjM4IDUgMCBSID4+Ci9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdCj4+IGVuZG9iagox MjcgMCBvYmogPDwKL0xlbmd0aCAxMjggMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0 cmVhbQp42sVZ227kNhIFJm/+Cr1FHUSMeJW0b23HRhJg4mDcyDzs7gOtZruVUUsNXeaS39gF 8rsp3tRSS7ZnFh4sBrDYFFmsOjzFOtQkJEhwjGLKAyYSlGVpEMNfETQq2F3gIIZ/OGAZQTRL AgFPhoP8cHG5ufjhhqZBhjJBg83ODNxs/xle/bT+bXP9ZvXvzS8/3DAWYIYoE3oEtBjOgohQ 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 dCA5NiAwIFIKL0Fubm90cyBbIDEyOSAwIFIgMTMxIDAgUiAxMzIgMCBSIDEzMyAwIFIgMTM0 IDAgUiAxMzUgMCBSIDEzNiAwIFIgMTM3IDAgUiAxMzggMCBSIDEzOSAwIFIgXQo+PiBlbmRv YmoKMTI5IDAgb2JqIDw8Ci9UeXBlIC9Bbm5vdAovQm9yZGVyIFswIDAgMF0KL1JlY3QgWzc3 Ljk3NyA1MjMuMjg0IDk1LjkxIDUzNS4yMzldCi9TdWJ0eXBlIC9MaW5rCi9BIDw8IC9TIC9H b1RvIC9EIChsYWJlbC1tb2R1bGUtY3RiKSA+Pgo+PiBlbmRvYmoKMTMxIDAgb2JqIDw8Ci9U eXBlIC9Bbm5vdAovQm9yZGVyIFswIDAgMF0KL1JlY3QgWzc3Ljk3NyA1MTEuMzI5IDEwNy44 NjUgNTIzLjI4NF0KL1N1YnR5cGUgL0xpbmsKL0EgPDwgL1MgL0dvVG8gL0QgKGxhYmVsLW1v ZHVsZS1tYWNmcykgPj4KPj4gZW5kb2JqCjEzMiAwIG9iaiA8PAovVHlwZSAvQW5ub3QKL0Jv cmRlciBbMCAwIDBdCi9SZWN0IFs3Ny45NzcgNDk5LjM3MyA4OS45MzIgNTExLjMyOV0KL1N1 YnR5cGUgL0xpbmsKL0EgPDwgL1MgL0dvVG8gL0QgKGxhYmVsLW1vZHVsZS1pYykgPj4KPj4g ZW5kb2JqCjEzMyAwIG9iaiA8PAovVHlwZSAvQW5ub3QKL0JvcmRlciBbMCAwIDBdCi9SZWN0 IFs3Ny45NzcgNDg3LjQxOCAxMDcuODY1IDQ5OS4zNzNdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8 IC9TIC9Hb1RvIC9EIChsYWJlbC1tb2R1bGUtTWFjT1MpID4+Cj4+IGVuZG9iagoxMzQgMCBv YmogPDwKL1R5cGUgL0Fubm90Ci9Cb3JkZXIgWzAgMCAwXQovUmVjdCBbNzcuOTc3IDQ3NS40 NjMgMTM3Ljc1MyA0ODcuNDE4XQovU3VidHlwZSAvTGluawovQSA8PCAvUyAvR29UbyAvRCAo bGFiZWwtbW9kdWxlLW1hY29zdG9vbHMpID4+Cj4+IGVuZG9iagoxMzUgMCBvYmogPDwKL1R5 cGUgL0Fubm90Ci9Cb3JkZXIgWzAgMCAwXQovUmVjdCBbNzcuOTc3IDQ2My41MDggMTQzLjcz IDQ3NS40NjNdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8IC9TIC9Hb1RvIC9EIChsYWJlbC1tb2R1 bGUtZmluZGVydG9vbHMpID4+Cj4+IGVuZG9iagoxMzYgMCBvYmogPDwKL1R5cGUgL0Fubm90 Ci9Cb3JkZXIgWzAgMCAwXQovUmVjdCBbNzcuOTc3IDQ1MS41NTMgMTMxLjc3NSA0NjMuNTA4 XQovU3VidHlwZSAvTGluawovQSA8PCAvUyAvR29UbyAvRCAobGFiZWwtbW9kdWxlLW1hY3Nw ZWVjaCkgPj4KPj4gZW5kb2JqCjEzNyAwIG9iaiA8PAovVHlwZSAvQW5ub3QKL0JvcmRlciBb MCAwIDBdCi9SZWN0IFs3Ny45NzcgNDM5LjU5OCAxNDMuNzMgNDUxLjU1M10KL1N1YnR5cGUg L0xpbmsKL0EgPDwgL1MgL0dvVG8gL0QgKGxhYmVsLW1vZHVsZS1FYXN5RGlhbG9ncykgPj4K Pj4gZW5kb2JqCjEzOCAwIG9iaiA8PAovVHlwZSAvQW5ub3QKL0JvcmRlciBbMCAwIDBdCi9S ZWN0IFs3Ny45NzcgNDI3LjY0MyAxMzEuNzc1IDQzOS41OThdCi9TdWJ0eXBlIC9MaW5rCi9B IDw8IC9TIC9Hb1RvIC9EIChsYWJlbC1tb2R1bGUtRnJhbWVXb3JrKSA+Pgo+PiBlbmRvYmoK MTM5IDAgb2JqIDw8Ci9UeXBlIC9Bbm5vdAovQm9yZGVyIFswIDAgMF0KL1JlY3QgWzc3Ljk3 NyA0MTUuNjg4IDE0My43MyA0MjcuNjQzXQovU3VidHlwZSAvTGluawovQSA8PCAvUyAvR29U byAvRCAobGFiZWwtbW9kdWxlLU1pbmlBRUZyYW1lKSA+Pgo+PiBlbmRvYmoKMjggMCBvYmog PDwKL0QgWzEyNiAwIFIgL1hZWiA3MiA3NDQuOTA0IG51bGxdCj4+IGVuZG9iagoxMTMgMCBv YmogPDwKL0QgWzEyNiAwIFIgL1hZWiA1MzkuOTk4IDYwMi42NzYgbnVsbF0KPj4gZW5kb2Jq CjExNCAwIG9iaiA8PAovRCBbMTI2IDAgUiAvWFlaIDcyIDM3Mi4yMSBudWxsXQo+PiBlbmRv YmoKMTI1IDAgb2JqIDw8Ci9Gb250IDw8IC9GMzggNSAwIFIgL0Y0NCA5NCAwIFIgL0YyNiA1 IDAgUiAvRjMzIDcgMCBSIC9GNDkgMTMwIDAgUiAvRjMyIDEzIDAgUiAvRjQ1IDUgMCBSIC9G NTAgNTUgMCBSIC9GMzQgMjAgMCBSIC9GMzcgNTUgMCBSID4+Ci9Qcm9jU2V0IFsgL1BERiAv VGV4dCBdCj4+IGVuZG9iagoxNDMgMCBvYmogPDwKL0xlbmd0aCAxNDQgMCBSCi9GaWx0ZXIg L0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42r1a3Y8btxEH4jf/FfcWqTgxy+V+5s114yBBHQf2 AUbR9oFaUdLW0lJY7vqg/PWd4ZD7IVF3lxooDFhcfgyHM/ObGQ6P30Xwj9/l8V3OIxaJ9K46 vv7rw+sf3iXZHeesTNO7h62d9bD55yJmnPHlikdRtHirm0ZVXa2b5SrOi8WH9X/g0yz//fDr D++EuCtZmQlavIoTJpLSkni35OlCt7AmSxfycMBGtqimxGDgqLq93hga7Payo+5OflnyaKHc ardXMu7F05SlPHbsdvVR6b67ZknELB9myXbJi8WuP6qmu0fKJVC2G39dxshj7/bTW0cpHykV CcsGSit+vRWHCRF3E2pDlOpmo75r6k7hfnkEx5VN3ezcIcfj7pUXz/Eomw31tn1jpQxiLXKW ADcrryk8s4ZZaYRLTgeFEmXEFMh/qhKesyymJRWoYS2rL9fMg97KKJvR/2W7XIkclYKHETnq 6rhWLbWpL1sY1blpmgYkfU4kir0aTth6erK5Fi/PoZl4+f6mGxVgEk6SCi9ht6/Z6/6woV1O um46ahI7mWdn2zfO6CyPVaVOndXDhGUDHQfH79RUnAqinKVlOhPRv6I0ItXlydyy4VtbmMAU zoBmIRYPVpAxUH+sLRxg0nG0c/iSvntOK3W03JIBMfDxiKt1+8WtN+em2re60b05nJdgQmh2 RQQbdnuiNLI7sQVrJuOxWoBS3Sgyr7Uie0VLgyVqQ+3+ZHkL2d8Upkg4BcU6rXbqx6BaE+6B s0WPIbJo0SppdINWlpbABDqTs0Zk4ODxTP09wKs1HSCGlAlD9oDYGA5oZw5nwqHaka36tgUF H87UDcNgtF9xK2usOMMeGRSYiXLxjyVHafc0W7aOmtx8rQ3IhcyEDkPizMjt7GTdGNReki56 M4hzqi0cpN0MDVo5YIMUhg3wcROVBMC+GlCMkCeZfzipANpiwUovcTTia8WB0vIi6F0nZARE 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 OrZVOFy0qX3OQqKCEZ9E09dRnh152RtHioQZiwtmEpIa9K/duL2M2ee2VHBCAXaT5QcON322 d/Vt3QTyiOsKSMmSbCg5WJ39JZAuYT3Gp0vAO4q5M2Op291wbGHbXn08YADVweIcgDaP5tf8 Xzah/PqyOBe2YrDhcv5m/3M9vmDeRLEcPAKEFj/oXnVtAjLNzE6tRnwCetN04Wou4zuoRbB7 gPcvxKMMXBoxuz8ha7v+ILFsnGWLFyYXb9AwbhRD8ufRDgSLi2cRS/DyDXJSsb58n70OEPik V3gbwifN2wyA3kXqi2m3KmADreeeOpKcFUPyHRRglrI84zM7+6gwL3+5BF//9PAawJalkJlB GEwwvGEOxwT836q77Wvu/qQIZ+FoLIY/KRLF9C8AiHiGWIaICq5bnij/yYtFjE/rcbx4L6vf z2An7k+M3utNf6BbGDLyXwyZlXZlbmRzdHJlYW0KZW5kb2JqCjE0NCAwIG9iagoyOTEzCmVu ZG9iagoxNDIgMCBvYmogPDwKL1R5cGUgL1BhZ2UKL0NvbnRlbnRzIDE0MyAwIFIKL1Jlc291 cmNlcyAxNDEgMCBSCi9NZWRpYUJveCBbMCAwIDYxMS45OTggNzkxLjk5N10KL1BhcmVudCA5 NiAwIFIKPj4gZW5kb2JqCjE0MCAwIG9iaiA8PAovRCBbMTQyIDAgUiAvWFlaIDcyIDc0NC45 MDQgbnVsbF0KPj4gZW5kb2JqCjEyNCAwIG9iaiA8PAovRCBbMTQyIDAgUiAvWFlaIDIxOC4x ODUgNzEwLjAzNSBudWxsXQo+PiBlbmRvYmoKMTQxIDAgb2JqIDw8Ci9Gb250IDw8IC9GNDYg NSAwIFIgL0YzMyA3IDAgUiAvRjM0IDIwIDAgUiAvRjM3IDU1IDAgUiAvRjQ5IDEzMCAwIFIg L0YzOCA1IDAgUiA+PgovUHJvY1NldCBbIC9QREYgL1RleHQgXQo+PiBlbmRvYmoKMTQ3IDAg b2JqIDw8Ci9MZW5ndGggMTQ4IDAgUgovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0K eNqtWl9v4zYSB3Jv+yny6ABrVhKpP+zbdtsc9oDbLjbBHQ69PigyHetWlgxJXjf9Gi3Qr3sz nCElxXLs7RYBImpIUfN/fkM5vA7gL7zWidBBcp2GgQhkfF1sX313/+qbWymvtdCJvL5f24X3 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 /+gnJuMdoHHBw4A/9wuT9NkvTPBrfxItUifv/wGK87j+ZW5kc3RyZWFtCmVuZG9iagoxNDgg MCBvYmoKMjg5NQplbmRvYmoKMTQ2IDAgb2JqIDw8Ci9UeXBlIC9QYWdlCi9Db250ZW50cyAx NDcgMCBSCi9SZXNvdXJjZXMgMTQ1IDAgUgovTWVkaWFCb3ggWzAgMCA2MTEuOTk4IDc5MS45 OTddCi9QYXJlbnQgMTQ5IDAgUgo+PiBlbmRvYmoKMjkgMCBvYmogPDwKL0QgWzE0NiAwIFIg L1hZWiA3MiA3NDQuOTA0IG51bGxdCj4+IGVuZG9iagoxMTUgMCBvYmogPDwKL0QgWzE0NiAw IFIgL1hZWiA3MiA2MTUuODI2IG51bGxdCj4+IGVuZG9iagoxNDUgMCBvYmogPDwKL0ZvbnQg PDwgL0YzMyA3IDAgUiAvRjQ5IDEzMCAwIFIgL0YzNyA1NSAwIFIgL0YzNCAyMCAwIFIgL0Y0 NSA1IDAgUiAvRjUwIDU1IDAgUiAvRjMyIDEzIDAgUiAvRjUxIDcgMCBSIC9GMzggNSAwIFIg Pj4KL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0KPj4gZW5kb2JqCjE1NSAwIG9iaiA8PAovTGVu Z3RoIDE1NiAwIFIKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjaxVlJj+M2FgZq bvUrfJSBNiMuosRjTSce9GC600jVLcmBlumy0rJkaGlP/Y7kB+dx02LJS2cwM/BBFEmRj9/b vkfjRQg/vBAciZAvYhyikEaL9PD495fH79aULgQSnC5edmbiy/bn4FPZqOWKxjRo9rLRLRbU jayarHi1/aes2dtW/VY36mDnxCjyn7nv21pVdiyVhe1K97J4dcPPjSy2strat3WWKzt5o/Zy ScLga1a21fmObnEW/P6qClXJ3K1bFk1V5vUfy19f/gkHWWGMRBSZA7mx5YpEYXCUhcrf2Tas VanNm305yC/mgIQJGMhq25vK3H2YFeUR9muyJYmCr0scBQrpzb5bM9GDCJ8boFc4RpzY/ddZ sV2X+RbAMPNp3M+PBIrjyCH/SxiFbgobTEEiTtyME0i8pHGgljgM3ClO+yzV4uzde2pnSNDi ZLuEoJDgfjvspgzMYIUJQQlPRhD+q0xhPY0JpUFZKNfY2afRiW78Xh9Vmsn8D/u6M4eu/SRt TLr1UaY/Ptvml6LUcJ7cHLkp20Yfg/KgbtO9brFA1mfbNJWs906E6mzsc6V2oNUi9dJaIZZR FKAptgwLhDGZoDtFxc8comKMhIdu80gE26z+4rpK+6yVrFLQzGTnhKEwjruNnQqnGxOOCBVu 3mRDtgKHqmTaaEcz+zWVtWLd1srYvdl3mKx32dshB4rp9qLmRscI/ImK4Fk1xt8nchPOUCK4 E2hia0PJYwCsmyghGAyk1166YiFBlIwtrZfMgQjPjfKWrXfaOn/cuWdjn9vSrA/eW5SuS2lM /53VjT4UOMxPqmmrwnm2nHoHhiiZCHHTG73avtrT74r2MF2MEkRiv9aMAbgz2/FtVmXbOYEQ Z/yquyaIcR8dmvaYzwYlGoYI01FQ+qROT3km649ZkR1kvq7Kw7rN88+y2c/IwTGigt0NzBFW KeRhJgBRgYigNwJQglEcjc3Cqg40lySgOfM4WMldnz6LbZab31Ta2LYLOtA6llnRuBnGrsyo so3XQVB3mzzkSgciEXduo7dsa7fcxn1pfOzB2KSWoh5JuGtzJ54HBAyRERa82PwCA/CcJizn 3iFE2txlp5MO+PJt7BfWH5w5F/b55IAAPzBHdt7ffyTtoyiLVecf3aQHZz9GINAoM/K8eHkg kwITsDhGOopUUzuIMeL8dkCFuMZin4mAB8w4CDhjzO+KkJiRLs4U45hRbhqZFT5o7MDMu9xv G3XHQjRmh3Lb5mpGmBg8yAvz8WlJw+D9+nkqDMUo8e4464k8QaGInCuyjh88HY95BvE3K4uZ rA1hgNO7SUIXlMsZwkEgjYnr/iegSaKZ/K8h4g45FgVyILMZsSxND43zEgwZUy39S7mdgZiE cMyYXjwEnT+Eju2hcDYKW+/aIu1FqrqQrwV2nevnZ3Bb2+6iBYwPHEafs7RZitAE+BB1ePCx hw4w8OrmPrQP6SBlCCex+RbyAsLLFQ7DsJck9nGrnhoN+CJQMs6tKraykTOIeNrZ66zz2kpq zzm5NKk/v+QLPTDCieM4Zd1mjdzkqvd7R6brehJgSk2rJ+jU7+yy3beZCSXpbRJtnUQaYB5/ eHkEgopoBPqAVcDZONg+04kWMlSyqNRi94hd0bPSEYT1E33VMwb3VspiMUqGnDm84DYshHgZ z2etIcguKxj43J4Wt50vPlQXjJ3OVJ1W2cYHMV+xTNVm4p1W252VyQBUCyIkPASZ9yKioZ9x DUpDQ2YjT9LFxis4EopCzK7iONURA7J1Pz85bX9Su09zrI1RFBN+J2s7yurD9zMHZYiy5M41 5m2OYBTF4tuI38CKhsZx1YqG5nafFWEBtD5JRr7pueQF35moJcILrDHi55nr55kKDepjr7YH b1ajBTBFkfD++euMDLBCcj3jRVAW0zHhfN9xK2HzBu+5VST6tBGNeJav/CKPK+8UIMYKEFYB phzK3KJWA6YCS4IPu7NarzzqOAqEd4IRpRThaILS8IgAVxyJ3m7B6hpfAPqq8lipWhVNL75J fxR0KPA4tXi2rYlp5qOZZ1yVyke3JOPs4Bg5GJ5j2D5jnLJajSu66dJyU5d529x78XJW49xB rC7YB9foxRfso6PUfUGi+3qIhrRCDIDwd0wP+b1J8B+qeW+J1Mvbce56hyKe8NvniRIUJ7cz 1ZjF+YLDsjhhSLudr2W5GHzu1NXztx7teoQf0keMsb8ra2bXZgIxym4UpeBBGMLMEDSQ+f+C WGcM6w/FrrwddS8lWgKOfTnROqu2ewyywiibDK5M/QGK7v4m677sWN9fs4w7z3m9LHqYXQM2 ivGNCwnGEQ+jG6q//9znccCNfNUhU+atcmHh/FJCq6SeK5siSHB8eshhdRAiEg7pka+SJ8rV CMzqxVHoMwP83twK/zcMkBFjgAx35AZ6fIEJnftKuc6/ldJHV2JjrZ0ywhOGKuUSnJuMfSVL rJe6mhHrEslkJsb0dUD2kJ6NOemMM0PXRqZf2qPt3Lqb0O5Cx5aL/4GXP98N8j2XAka+/q8D ON5ZDxxG//UCB9rO/oGgw+CIxc/GSs2ikxl/ER5zaHjM3+n6nZwhDeMWXzHAV3TwQ8tAKki/ noF0BXHcFb7izAL0kpUbyIqRMGR4CQTdvUXBi7coaII3H4C9TC/s2rq7YOocPjt4RwZbLdvX fdm6kPH5rdl/23UBcdcFnoDGSfDj//q2YBLJnnqGU6m0rLauwr9wV1BDGuzuCrJxjgG/LNsq 9TnR71TJoj5kzZQ7Da4YjlX5Cmy2Rv31QAJkngCGcYSikCwYBwILhezcBUE3N4kRA4bX/S+a TMvaBAyVhDwJ3u/l0SZ40AMBo+OE6D+1rF5t90dzj9iV138CBnqV7WVuZHN0cmVhbQplbmRv YmoKMTU2IDAgb2JqCjIxNTcKZW5kb2JqCjE1NCAwIG9iaiA8PAovVHlwZSAvUGFnZQovQ29u dGVudHMgMTU1IDAgUgovUmVzb3VyY2VzIDE1MyAwIFIKL01lZGlhQm94IFswIDAgNjExLjk5 OCA3OTEuOTk3XQovUGFyZW50IDE0OSAwIFIKPj4gZW5kb2JqCjE1MiAwIG9iaiA8PAovRCBb MTU0IDAgUiAvWFlaIDcyIDc0NC45MDQgbnVsbF0KPj4gZW5kb2JqCjE1MCAwIG9iaiA8PAov RCBbMTU0IDAgUiAvWFlaIDE5Ny41ODcgNTExLjM5MyBudWxsXQo+PiBlbmRvYmoKMTUxIDAg b2JqIDw8Ci9EIFsxNTQgMCBSIC9YWVogMTgzLjYyMyAxMTAuOTI2IG51bGxdCj4+IGVuZG9i agoxNTMgMCBvYmogPDwKL0ZvbnQgPDwgL0YzMyA3IDAgUiAvRjQ5IDEzMCAwIFIgL0YzNyA1 NSAwIFIgL0YzNCAyMCAwIFIgL0Y0NiA1IDAgUiAvRjUxIDcgMCBSIC9GMzggNSAwIFIgPj4K L1Byb2NTZXQgWyAvUERGIC9UZXh0IF0KPj4gZW5kb2JqCjE2MCAwIG9iaiA8PAovTGVuZ3Ro IDE2MSAwIFIKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjapVlLb+S4EQY8t/kV vo0amOaIemtzcox1MkE2O4i9p80eaIndrUQtCaK0jn9J/m6qWEW11C0/JoEBN1WkivX8qkjJ ax/+5HUaXKfSF34YXxfHj398+PjlLsqvc5En4fXDzi56KH/1/q5NW/+uN789/OXLXZieFkRS ZFHIq/7hxz4tieW1jEQYJbgmFnma8pJfmUU0YyHSafqq1isMZCjiPOAlv60IMeMAMkheEZ5W bKNE+Mn1VkqRx/FMpY2MPb3ZBjL3hgMPVF0pI2Cc597X3dokDjPvaSN9jx5yr+i1GnTJi5io 6KfXtRqqTRB7p/2yE6fce25HGphDO9bMpFPGLDbPrHle5AjrWvp9OlTFgYbVQG9WqFDo+6D2 MPYNWggMNrcHbZIl3t39facLGu/angbTLIkAg66tGlI4i2lnIKqm5AH9fFB7GlRNWRUgcsPP TwcNLM+Z37BJYNg+/lMXA3GvBqPrHb84GR0ejm1ZXWneshz7iT1ynKuYWBWNVr01TOx7Xd8W 2lirAEPrZqCSJDAgNWFQtho3i3KvaQciaTT5vyvDj4+bwPfG4YxBpwbeqdaqJMHgYex4XUu/ 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 ixR7xgZPRFlqe6goy+hO2qYTUgtKJ5yY7sekHwTU4yPZGYLZIFohWdHj4uyL9OlATtxL5oI1 BymDY8s3gSxb19XV6Th1BqTozHl3uXZDnYauq/+E11WfVgALr7EXN/l2a+4DIvwIo55Zx+bD qG2/hE+mPWpa4JT4emt4iq63DBnNd0aDlR11ASsn4TgXkR+/lmCB8KNgOgJvoJjuuSCfHJA4 B6z3DpfXbGEUAtslOFGjJCo4cmAVLNZuqv1I+IEL5NO3wUhC0cN2+AA5jPEdRa68RZIsGUQB XR4DAWrhbqyJZqsh/NK3QpikL2G24QAy3axLvDokwuIUgzPc18OUop8SWILydpUNj48/PnyE GErgbJYn2XWUAKjlkNkihP+9vt59lPzZGFfhbBBOn42hqF58Nobzprg0ahCITIbnrswWWJkG 8f9w3Eyns54v08TLnVL/BeaXCBhlbmRzdHJlYW0KZW5kb2JqCjE2MSAwIG9iagoyNjI2CmVu ZG9iagoxNTkgMCBvYmogPDwKL1R5cGUgL1BhZ2UKL0NvbnRlbnRzIDE2MCAwIFIKL1Jlc291 cmNlcyAxNTggMCBSCi9NZWRpYUJveCBbMCAwIDYxMS45OTggNzkxLjk5N10KL1BhcmVudCAx NDkgMCBSCj4+IGVuZG9iagozMCAwIG9iaiA8PAovRCBbMTU5IDAgUiAvWFlaIDcyIDc0NC45 MDQgbnVsbF0KPj4gZW5kb2JqCjE1NyAwIG9iaiA8PAovRCBbMTU5IDAgUiAvWFlaIDE4NC42 MDQgNTM5LjI4OSBudWxsXQo+PiBlbmRvYmoKMTE2IDAgb2JqIDw8Ci9EIFsxNTkgMCBSIC9Y WVogNzIgMzE0LjI0NiBudWxsXQo+PiBlbmRvYmoKMTU4IDAgb2JqIDw8Ci9Gb250IDw8IC9G NDkgMTMwIDAgUiAvRjM3IDU1IDAgUiAvRjUxIDcgMCBSIC9GMzQgMjAgMCBSIC9GMzMgNyAw IFIgL0Y0NiA1IDAgUiAvRjQ1IDUgMCBSIC9GNTAgNTUgMCBSIC9GMzggNSAwIFIgPj4KL1By b2NTZXQgWyAvUERGIC9UZXh0IF0KPj4gZW5kb2JqCjE2NCAwIG9iaiA8PAovTGVuZ3RoIDE2 NSAwIFIKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnja7Vpfj9y2EQfcN3+Ke/Me 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 dHnhMiOXc+9OHccYLA6W9ZFVoynGA5XZqbYr8cdTtgpN1OTq/CrFGNjpy8Jl9SuwPQK7wLty XDz/I/xbqZwDFkyT2Nfg8RzLlaRQGfkkS0I2kC3yPHsHZNQ4fx3O7qc8j062Hr0kAtMfzDA7 d2WWVtRPARdy3K7jaoYOOiqnmwwrLkeDEqeex/mNruuk/4HrOn8+N1E+6AWRUuyHbBx3YYl2 cb7s00oZ2Vy9YaapUJFy8YJuwlBUYacPfe35mLXCBUbZ7NMKFymYpxP7VK9ANsuBZiLUB43J UOz8xex4l/QYT4qFL1u2xJoVF68TsF23s2NpV/mYcJb1QtlkCWDmzvbHyNjWTIrvnfhWbe/C uPON88tVjhxaTe44me4w3LrK37Ewg2P4p1OVv6+9MBvPIhGd9ADqAAgXZZIvUymOWeFspFTg N51HfGvyd9+vkFM6CEfo/k+6h/VFzqmB5psM8KTvbdOebKPcACeWlCZA7+4aOmDjTrC7OM/L r29ejqdSCWhMlqRXKtFBhpoDuUt61ZVXu5eCrwlPY3EMJHfjReF0eVFYhAhUY4CqX+0BYjge ItjOJIqQWXcPx/Ju73GMXP0LfJlndWVuZHN0cmVhbQplbmRvYmoKMTY1IDAgb2JqCjMyMjUK ZW5kb2JqCjE2MyAwIG9iaiA8PAovVHlwZSAvUGFnZQovQ29udGVudHMgMTY0IDAgUgovUmVz b3VyY2VzIDE2MiAwIFIKL01lZGlhQm94IFswIDAgNjExLjk5OCA3OTEuOTk3XQovUGFyZW50 IDE0OSAwIFIKPj4gZW5kb2JqCjMxIDAgb2JqIDw8Ci9EIFsxNjMgMCBSIC9YWVogNzIgNzQ0 LjkwNCBudWxsXQo+PiBlbmRvYmoKMTE3IDAgb2JqIDw8Ci9EIFsxNjMgMCBSIC9YWVogNzIg NzMuNjYgbnVsbF0KPj4gZW5kb2JqCjE2MiAwIG9iaiA8PAovRm9udCA8PCAvRjMzIDcgMCBS IC9GNDkgMTMwIDAgUiAvRjM3IDU1IDAgUiAvRjM0IDIwIDAgUiAvRjUxIDcgMCBSIC9GNDYg NSAwIFIgL0Y0NSA1IDAgUiAvRjUwIDU1IDAgUiAvRjM4IDUgMCBSID4+Ci9Qcm9jU2V0IFsg L1BERiAvVGV4dCBdCj4+IGVuZG9iagoxNjkgMCBvYmogPDwKL0xlbmd0aCAxNzAgMCBSCi9G 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 tu/UbjqAX1u59sjBDl589E6QEUsU7YGuOFfArSwIky9DyvTuH6paQxgF5FNx5oCyW95niOCT N1RpkER+jfpdb8CtJGLAPLKAOSqA4nA7C38tzakV5ScHunCFHj4N0DJiOaxV9RCaUoeHrUrP KydFkKaJf2VEt8KwiC3tVjRUBIkDFOfS9Dx2BsK00lqcVqBub6I6zR2Tvc2wiRn3851UBEdg aNoLh+AwAhb8iLWzSHiHbmtUbNmcaszDmCdaC4K7RCeafRUhophTOmyZ0y6i6HrnA53T4OaZ ihNaszo0smrDfj5W4J74Ffwk4w9Q8eJV5Z5md5qGnrAMHPItw0x2nwAgCYi9wzfTgYYsT+Zm xVy5rRW+tsSrXDn66PLMqnceCQRga7rLAIlfQADDu8UtA+IXXW0VcJJNZ32XqxPr+bb02QAL rsJOZ/eN/w9vBPS7fv8/5wH4CcDavUQShFn5RR7o5PIgn1I+W+0J//MfMjnMgUXhaff92cBE Kddv2LhGeXwCpXyiloFUUgPZibTYvDJ3qRkEsq/9L0TMnF4tqA7yxC05OMqLObbmGrcNM+UO y4p6UvDt1h+jEp/O4j1VGqZjBpFwW85FgecowclHfs5BIJO1V3MNa+Jnq7azj2sMkgFV1dhU BmcFy7w6KrT6xSkgz3bFRK5FoyE9j0Vvbf3mHJUFik7ywktZFqbdaF+uwWnAKdrD7K7i0/Dm +4c3Id6Xg+VmxV2SgU0hghEI+N+ru/2biD+4w1k4GovrB3fF7Qd3cZAEq1VFEVl4hZJ9mlP4 EKir/P9FyO7X/FneFQV2H15hs+FbEITf7T0JJMn3AjMgUJIB4mKRJJsosrv9N6x1pJhlbmRz dHJlYW0KZW5kb2JqCjE3MCAwIG9iagozMzY5CmVuZG9iagoxNjggMCBvYmogPDwKL1R5cGUg L1BhZ2UKL0NvbnRlbnRzIDE2OSAwIFIKL1Jlc291cmNlcyAxNjcgMCBSCi9NZWRpYUJveCBb MCAwIDYxMS45OTggNzkxLjk5N10KL1BhcmVudCAxNDkgMCBSCj4+IGVuZG9iagoxNjYgMCBv YmogPDwKL0QgWzE2OCAwIFIgL1hZWiA3MiA3NDQuOTA0IG51bGxdCj4+IGVuZG9iagoxNjcg MCBvYmogPDwKL0ZvbnQgPDwgL0YzMyA3IDAgUiAvRjQ5IDEzMCAwIFIgL0YzNyA1NSAwIFIg L0YzNCAyMCAwIFIgL0Y1MSA3IDAgUiAvRjM4IDUgMCBSID4+Ci9Qcm9jU2V0IFsgL1BERiAv VGV4dCBdCj4+IGVuZG9iagoxNzMgMCBvYmogPDwKL0xlbmd0aCAxNzQgMCBSCi9GaWx0ZXIg L0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42s1aW4/buBUGpm/5FfO2NrDWihdR0r4lQYKmwC4W zRQFut0HWabHaqwLJDmB94/07/Yc8pCiLHtmsmmBIkBMkUfkIfmd71w07D6Gf+w+5fdpnEeS y/uyfvXm4dUP72Vyz2QkpLp/2Buph92vKx4l698e/vLD+yQORoWMeJaSSF2U7TC27XGwkrN5 8jiKVUKS/15veJqt3rbNmserz2uerHRT6abUdqBvT2PV6ME+7dciXrW9fbg7kkxdNFV3OhZj BbOY9YS4z6NcCVxuwzgsnfB7kI1ykZhlHw4VTpnEq7rdncxE0C7bZiyqhkaGtsZ+mWP/WqJ2 LNQORALt4GlvNIMGaLaZKWV63e94oGl/KsqqGdvhEKHWcCAblkaKOw017SWd9gLjecZvHHK4 acUjrpQTDLa403deX6uIUfx4bPHov1TNo9Vtf2pKVH34kW4wD040iyMuM1JXmjXKtjsv9eUi yhlp8c84iUlCThJJlKcZSQz9WqSr8nvSdBgJZiwAD8+iJHcn8OtyPhmlqUMhTVSaaXUx6q4Y D1fmlGnE+VfOCdsdq1oP16ZTERc5yf+23uQ5/L+8yhh2zqezYdeQC5olikGDRXlicfG27dYs Xp3XGxErYwNLfeNIsHx+qMvZQeEskSQ1tstpQMM0d9P425hNwaIsdpYcrTcSjBFx61QbbKss GtvY0tDQ6bK60zt8SlYFieHtNEXt3kJjwt/3Hz+COPVt/6XLcaClPuyXSnMF2Ewc5q5dfbgB mQBpuS1WtHDTNpvfdX/lRGQWMfnkiWykYJEEywuvrD6B6IarzBwAV+mqsI9ux9TZ7Gy3tUvo Abvc6X6wvUdd7Kx5wgjcl/21ohnY9QBM5NgGZ+tppOxx/zvbW+1tZ6NLPQxFf16rBG9OKG5v DgdrPR5aegGAXmnSYFeMhWcq3J4y2zN6C2CPXg/tqUduxCdgw0+25QUso2LrroGN2WbVgGRN mgsuDVEYpQEBwLpgcULK1XjuNDX/VDwOxmLms7cdzlEcj2c7jzkbHDCTwRC9DnRY3ZXeW/jd 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 ZW5kb2JqCjE3MiAwIG9iaiA8PAovVHlwZSAvUGFnZQovQ29udGVudHMgMTczIDAgUgovUmVz b3VyY2VzIDE3MSAwIFIKL01lZGlhQm94IFswIDAgNjExLjk5OCA3OTEuOTk3XQovUGFyZW50 IDE0OSAwIFIKPj4gZW5kb2JqCjMyIDAgb2JqIDw8Ci9EIFsxNzIgMCBSIC9YWVogNzIgNzQ0 LjkwNCBudWxsXQo+PiBlbmRvYmoKMTE4IDAgb2JqIDw8Ci9EIFsxNzIgMCBSIC9YWVogNzIg Njk2LjEyMiBudWxsXQo+PiBlbmRvYmoKMTE5IDAgb2JqIDw8Ci9EIFsxNzIgMCBSIC9YWVog NzIgMzU5LjEzNCBudWxsXQo+PiBlbmRvYmoKMTcxIDAgb2JqIDw8Ci9Gb250IDw8IC9GNDUg NSAwIFIgL0Y1MCA1NSAwIFIgL0YzMyA3IDAgUiAvRjM3IDU1IDAgUiAvRjQ5IDEzMCAwIFIg L0YzNCAyMCAwIFIgL0Y1MSA3IDAgUiAvRjUzIDEzIDAgUiAvRjM4IDUgMCBSID4+Ci9Qcm9j U2V0IFsgL1BERiAvVGV4dCBdCj4+IGVuZG9iagoxNzkgMCBvYmogPDwKL0xlbmd0aCAxODAg MCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42q1YbY/jNBCW4Nv+in4jla6+ OLGdhG9wAnRIwIpbTkKAhNu623BpUiXuLf0l/F3GnnGbNNlr4U6nvbjOZDwvz7yZz2L4x2dZ Mst4zOJUzla7u68f7l5+K4pZwQqVzh42nuhh/VvUbQ923TzV8z8evn/5bZqdKUTG8oSofo9l DH+cqNIz1SJJWMHFbME5K6T01A/zLI5MVc0XiYwjuzW4+Kxem5b2GnzuTbtp2h3+0DU8RRE1 LdBVR9xE+eaJjJ5q3Gk2F3x3erUta8NQOCFnXLBUKJROsCJWs0VasKRIvXQJy5BSxj3KVLAk z0hd4NjtjVltJ1jmnAkZCP8BCbI8el1bUGSegg4rg1teQ/fc0sYPelXWtum2+PMN8qdXtX4E 04yNy7lkmQDrJhkrUoXW3ZYdfJcm0a5ZHyqD633bzLmM3pdrQ2+9OeFZonA8CAdbXjj33NJG X7iUn4Xzr1A4EUcv5guR8UhXFTqkrB+R5tgchowrYz90QhIdrPVYcJJvW92ZzrsPzNoH0q9z DmJ75oWMamPWuNL4eO80Nm1XNjVueGjAE0+FxUkRWAdF/A/jPv3bmvr8scP4iCOnA2t/sooS /L3V8ySm83FnaQx9Yk1nzdpHi/9d0j4YiQ7/kzwdz3LwNMKvECwuFMHqmyBZN8aESFkuBRF+ gQw3TbVG/MwWIgWoyIEZIcTmi5S7kHHQSePCO8rtPDlcNO07Bq4tYsCWwfcBWo5m3ThIuVXd WFz00Ib0m4ML99SDbGU6og+naP/SkRltD21g59yFYtFJwV2O9OQu9+JorJMwL6LXJMFOHy9k WpoJBJGfAK26rPSyopRRUi7RIUkBPHFxf7TbhhJRDw1dyC6DFLrgGVMJnvTV+3DCKJPKlGVF fkMqzVleJBOptHPRlMtLbcqqtC5N5gKRnwfkw8YJ+Xkf+fDiEvk5Ih8Q/sKBKY3C7onVPUa7 ae9fvbj1lG6rWx+t8KIql61uj07pqSD/2QAkJupPUjAVF2S1eGyunAkVjNq04++h+GXh8wlr S1ZkIY1POHeRFSyT5GHhqd5SYhhXSs5ykV73L1eQxDNSXvWVHxY0x8JlbecpsCilEhlfJDxA aH3YLUNNHdXFk3M8vtE5Uk4qG8pkT1v4Wr97Y1uX5EcaKyhLsq8xkYihfYN7OvuMf0Rx5jFl MZkxmQ2bi1+ocghFmsKi64vZk0FBrY/FSIjeCTxlSRwUOXRY0fqs1wZL56FyMSgyF35g63Jl XuBv3R3r1bZt6ubQQdOiFBjYJzCq08BDL5vWhnXtfHjEb7vgIX+itrjyqQ3VKn1+AsoliaNX tnTReCo9sLdpmx3m/gyMHmcDc+3bcio4EoCsDO7pufp59OYx40VwF+RPEZMpVto+kyAXPFF+ 3c+TXx+644Q8KXSRVyMoZkWhppLHEPhTUXE2dRGttrquTdXhm6XTwgmlpOtwPPERSvhu8QTl 7cZoedUcavvWwaK7IVqeQbuIIY9k/0+/dblxuNiY1tQ2lC9CKik6qoVXdUMZvjP2db32yn10 JgDRJzJBxjjo+8FMoAAg+bOm0fh4O+dJ4VUm4yz/MiuLa98EYRIlswxS6EhqLmFkUHwkd3oh t7qoIWoWZHTWjDlLEwgAGC84jBc0fzDI5zyOncD5SRYYBH7y8k40fbF3TAqe8oVoUk3y8qqp rS4HkAEtYSpYteXeYuXo4UZfGIVhM/WarFYGrofWAStMZb7pcoujocW+6boS+ytRnOa70AwO 4LvXrd4ZyOLdNVGebblEAOZ3pl6b9pO2XJMh92jOw+uo0J4k/nIC25ACpRK3tTEnjO50BfVl xCwF4hPg+I28NsZxCyP2eiKEYyZPk/5igi0Mv0KoS761OdgPdBQwJ+fFII/8aJ5eYead8Bd0 W5m87i+Io1wV1/JAbXzHOm6Dwvl4z9DLDqH0yzAkTSJxGNvhamEY2gmFdn/APx97e5B/BdSq OLOB9ZmN6kkP69NE3uFvnMcVxWHmq59+h1vYKxHhU2mJd1eVj1uMb+XGv9bgyqWTtqEzoUeZ aH9TkbAkLf5LM5Fl0JgFpLqimwmasYfa4ETL4buLuogaSrpxkBwcaHBjB51auUfAc1IcEhpl Gx75LkuGmwlHAsmItsod5j8Z3VdGd0QAyY5W1KMB6erkCtjelxYBlpASsNdqS1x1S1/7i5jW VPBmja8wTYMITRDBz+P63Isk8G5iZgqCnG/SdqQmpWW8a8DB9nTvApg/w5wsGAMGwhB8cavR 467Xfx06OnHZ2O3Vadij4MH8bW9IzdMdQ3ZtdrjSMAjJFB9mijdWtyHe3RTRC/mQ5nvNNaUU jJdbhybb7D9Fc6vO3NDmermsbhcDCuO9x+QnvNSdLIvUFlBdD2FwWSLPLTf117obpOvPGxgh 6sfFvikDL+rK/sO4erPKH25QnRLO/ROM+EWNmkRdzpQajvhvQot0boCeM5SzKBrKa333zcMd hJWSICDUdaEygAgIylL4vzWzzR2ny35H5d5Cqxku+9N8fNnv6tMEPBOW83T66rvPRbpOJv/I m+9s8uYbPJmIPOJpUPtfTTth8GVuZHN0cmVhbQplbmRvYmoKMTgwIDAgb2JqCjE5MjgKZW5k b2JqCjE3OCAwIG9iaiA8PAovVHlwZSAvUGFnZQovQ29udGVudHMgMTc5IDAgUgovUmVzb3Vy Y2VzIDE3NyAwIFIKL01lZGlhQm94IFswIDAgNjExLjk5OCA3OTEuOTk3XQovUGFyZW50IDE4 MSAwIFIKPj4gZW5kb2JqCjMzIDAgb2JqIDw8Ci9EIFsxNzggMCBSIC9YWVogNzIgNzQ0Ljkw NCBudWxsXQo+PiBlbmRvYmoKMTIwIDAgb2JqIDw8Ci9EIFsxNzggMCBSIC9YWVogNzIgNjQ1 LjI4MyBudWxsXQo+PiBlbmRvYmoKMTc1IDAgb2JqIDw8Ci9EIFsxNzggMCBSIC9YWVogNzIg MzUwLjE5NCBudWxsXQo+PiBlbmRvYmoKMTc2IDAgb2JqIDw8Ci9EIFsxNzggMCBSIC9YWVog NzIgMjMyLjQ5OSBudWxsXQo+PiBlbmRvYmoKMTc3IDAgb2JqIDw8Ci9Gb250IDw8IC9GNDkg MTMwIDAgUiAvRjM3IDU1IDAgUiAvRjMzIDcgMCBSIC9GNDUgNSAwIFIgL0Y1MCA1NSAwIFIg L0YzMCA1IDAgUiAvRjM0IDIwIDAgUiAvRjQ2IDUgMCBSIC9GMzggNSAwIFIgPj4KL1Byb2NT ZXQgWyAvUERGIC9UZXh0IF0KPj4gZW5kb2JqCjE4NCAwIG9iaiA8PAovTGVuZ3RoIDE4NSAw IFIKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnja3Vptj9u4EQZ63/Ir9qMNrHmi KOrlvhR5u0PbuyS4LHAo0nyQZXqtriy5opxkf0cC9O92hjOkJVub7LVAURTBxtRwxJfhM88M ScmrCP7Jqyy+ymQkIqWvqv2TZzdPvv8xKa4KUaTq6mbrlG427xY/meHXcjDL9zd//v5HlZ0U EinyRLHW3yIdwZ9kNXVSW8lUFPDeSkpRaO3bXK5iHS2GnaGCPRhT7ajcY3euhK0eh8H0ZVsZ C7KkWBxMT5X7uj0OxnXqnrvtWZvVrmxb09BDafmXfr7ryqFub+nh0NXtQK23x/0aOtB6IWgq Y5OAhiiiFKaSiTSmqbx9tHlYJTmpaFFkGWv0S6kXsw1JUDs1M2dhlYtcJhMLv32khR8ymp+9 vpKJUEk6mb4qRIRdQz+xyElTRyNNlYg49zN7Wdr7F3XZdLd2ptEiFykgkVT/CWPI8sWz0tYV FX8pK1ibzu7ocTNuZ4oyFcPkCxhkBnAjI9zs5swJa5cXD41t3GYKLWlW3HebY4MmisFEXTuU dYuAiuXCdnuW23p/IB0ZBuoqtl1PUrIySMK0xHKlomjxtGmoou+OgEvDbe/KJcg+IDT4xbKl mu4w1F1b8luHsi/3BvzkEmOrXItUFRNw1JvLyQITpNqvw8d6QIOnyeLjrq64eN8dqVC5QaR6 0eHAaHR9X28MVdMkofDi59c/Uak3tjv2FcuP1myoRIY5vaPZbtf4kJHPQm3TOU+Fai8JfdSD 2VOJPJfrq66HPg9du0EDawX+4KAAZqB5js1xchE/SO3XDAobA4vdWOcQYJ6x7z+EryKPH4Wv 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 2W3bQW+yMCjA/BkVqt7wLTRK7XEdjIG1ZAysubxnw3oivL7ujpbUmLqp1rk+CMldcXQlt6y9 za+DC06CTG9cfh/nC3efifktJfmxP8WEKn/1VDb1wNpuDUqwNF1wxIvXpyFzAzPv+SNbqOu2 g+HimrvZ4FEAVbakPZm1U6m3KNrCuN0lPogahwnqvTmbJic9wrhBpnRCpwrglnbjEArlcIui CjppUHTSDz8WZuLVwk2Vwh1Iuwn0cvla27UrO0AXwH38grPWPWsP/Gu9OgtaU+GBVs96frAz F6/Kn/vj+E9ZEzyNjNEOM7ZwM6/5XCjccCZfZYAsbCG+xgCpiKaXE7AntxBIGiryBNzcYJdx dMEd5N6ZV3W78pEAUwBFQdnp8FwlIKRyWzDPeygyturrtSMVaLhrm/uzl/iQDEoA8a6HhRlI F+G5Cp5/5vgn3KYao3ESaT5igLDslgwLuPL4S46XJdwZlgAtwAMNi/E7i55zjcG/Uw4YnfN4 8fJTua9bc9aWv6HGctdPKpHTMPSXuPbo6JniMwqo2nc9vxWus10vvL5nJHB21YyxtHTvy4g/ d8ASoAwNb+npALN08R/XrqVfGpl0nzu8uQdy4nPMljjb3vbd8cDtrzs8c568Bbsd094OO+6B TA2Fpt7XtN5cA1x3eUwCuxapJihd+Yspqhkv7TyAXSrLLbgrdvctTuIiPYTlUcoS42DpKwUt w/dEIJ4bWgb7C/k4/1HR+NQbG+QQCb3U3EXpF4s16DsNUHBsAYI1hJk7KmKw40o/8IquoVff nbKjeOH7AJAiqO5JOqVaGO+TlzdPADopxvo0v0rwixn0eNgK5le9udo+kfyxGWphbazCx2Yq v/zYTCa4olrGi+e78jDQzWsOaRTANY7HOHIfB7mswvqR/AusjCTGZW5kc3RyZWFtCmVuZG9i agoxODUgMCBvYmoKMzEzNwplbmRvYmoKMTgzIDAgb2JqIDw8Ci9UeXBlIC9QYWdlCi9Db250 ZW50cyAxODQgMCBSCi9SZXNvdXJjZXMgMTgyIDAgUgovTWVkaWFCb3ggWzAgMCA2MTEuOTk4 IDc5MS45OTddCi9QYXJlbnQgMTgxIDAgUgo+PiBlbmRvYmoKMzQgMCBvYmogPDwKL0QgWzE4 MyAwIFIgL1hZWiA3MiA3NDQuOTA0IG51bGxdCj4+IGVuZG9iagoxMjEgMCBvYmogPDwKL0Qg WzE4MyAwIFIgL1hZWiA3MiA2MTUuOTM0IG51bGxdCj4+IGVuZG9iagoxMjIgMCBvYmogPDwK L0QgWzE4MyAwIFIgL1hZWiA3MiAyMTIuNTE0IG51bGxdCj4+IGVuZG9iagoxODIgMCBvYmog PDwKL0ZvbnQgPDwgL0Y0OSAxMzAgMCBSIC9GMzcgNTUgMCBSIC9GMzMgNyAwIFIgL0YzNCAy MCAwIFIgL0Y0NSA1IDAgUiAvRjUwIDU1IDAgUiAvRjUxIDcgMCBSIC9GMzggNSAwIFIgPj4K L1Byb2NTZXQgWyAvUERGIC9UZXh0IF0KPj4gZW5kb2JqCjE5MCAwIG9iaiA8PAovTGVuZ3Ro IDE5MSAwIFIKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjazVnNjuO4EQb2OE/R t7GBMUcUJVHa22ySRSZAsEGmgzls9kBbdFtpWTQkano6L5LXTRWLlPXX7kaSQ+CDJapYLNbv VyS/i+DH74qMFVF2J3nEIpHeHc7vfrp/9/FnIe4KVmTi7v7oCO/LXzeXWh10x7a/3f8JCOSV QERMZJ7oq/88mp+yQub+84ftLubp5mhafMg2VdNZ1Rw0jsfxpu90RxSK/srquI2BXre6sTT0 tOXRRj3TfGtoUDdqX+uPZdXhP42dddMHbk1JD/akLM281P2D/9pWDyfPvGrov9ZqG0ebb1Xz ECZqmtfqzuIe73YiY0LkdzvOWZGmbntVY9XBsu1OxNnm3k1Js82TVo/4lG4uBig6ejbHpSZ5 JFkcS6+sn1t11l9N+7iiU1g7EZ5OtZpY+t3BkpWlkZPyqzWGPqh9Z1uQkUYP5nwm3aS4d6vb o9PuwUv+9yiN9qiI3k5XSDfdyfR12bzf8nzjFcIzwVI5UcjeMYqCHX849LUFpvwDDQd2EQj8 fotcA7mqDWo+KTZdf7mYNpB5gnPVVGdV04vfwcvsDqaxrak/WmPqvWpv8G1Ms9NbsPf3qrPg cox2FicuSoCEpQXtDK27tJ9kRR6/yXxxXni6syn7OuhJ/9DoLuzGDx5NXRtU3xO5Iwh/7JuD rUzT/UjMk+LKfCcTFksOdpAsixO3xqfLpa4OCqcspc5SJtPgTGhytNBS6F0SsTyZ2vcTxIvI +cbs/6HRqUQeQYRcIEhAeU5aHHE7QTLwt0utraZhdRUKQkZG8eaL9oR7jTuG0KFXly/wQdHM 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 0vxmaoTwvAee6BrW+RUJ+uKtmIOJ7tInHDefTfhgYFa7dlcWTTzrrB41nrjTzfGyDkomo/wN ZokB7cYTu/ziY62tyiGmhrvM0C4ipD3SPx02w3YbHQBOuM5Gqmagaq+XKKPjAO7soReHM4EH 6nHeEUFCayt/2avX2n/O4qGYhLuP5bE29j7xAOOX4QCNG4sclLvGwwPEA4APyKjf7evwI2gd zx12SRYDO6gPCceOpIBeSbICu9Dl0cOIGB0wH93W5cuzB3TulZIKth2Qy/yGN5/c8KZZ8JV/ UUR8xgt2ul+31Td0XU0fpvhaSmjSHdlZozlcTsa4BQ/C05o4yviGp0EF/wZEcbtwZW5kc3Ry ZWFtCmVuZG9iagoxOTEgMCBvYmoKMjcwOAplbmRvYmoKMTg5IDAgb2JqIDw8Ci9UeXBlIC9Q YWdlCi9Db250ZW50cyAxOTAgMCBSCi9SZXNvdXJjZXMgMTg4IDAgUgovTWVkaWFCb3ggWzAg MCA2MTEuOTk4IDc5MS45OTddCi9QYXJlbnQgMTgxIDAgUgo+PiBlbmRvYmoKMTg3IDAgb2Jq IDw8Ci9EIFsxODkgMCBSIC9YWVogNzIgNzQ0LjkwNCBudWxsXQo+PiBlbmRvYmoKMTg2IDAg b2JqIDw8Ci9EIFsxODkgMCBSIC9YWVogMjE2LjE4OSAxNDkuNTM3IG51bGxdCj4+IGVuZG9i agoxODggMCBvYmogPDwKL0ZvbnQgPDwgL0YzMyA3IDAgUiAvRjM3IDU1IDAgUiAvRjQ5IDEz MCAwIFIgL0YzNCAyMCAwIFIgL0Y1MSA3IDAgUiAvRjQ2IDUgMCBSIC9GMzggNSAwIFIgPj4K L1Byb2NTZXQgWyAvUERGIC9UZXh0IF0KPj4gZW5kb2JqCjE5NiAwIG9iaiA8PAovTGVuZ3Ro IDE5NyAwIFIKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnjarVrbjuS2EQXyuF8x j92Am+ZFEiW/2c4aSQDDRryAHxw/aCT2tLJqqSOpdzz+jeSDU8Uq6tLS9NhxsJgVxWuRrKpz qtTqQcI/9ZAlIpPJg1VSSBM/FOd3X3149/k3xjxkIkvMw4ej7/ih/Gn33ae9ineu66rS7Q9x mu2GU9VT6eyGU1tybUvPzg3XrsFyusu5yeEUvwz01g9d1TxRuXR90VWP4/tLe+2olF8udVXk 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 +OOOdPbjjpR/3JHS6vT7DKpYJYaV0dHuh8H/ZoHm499h+DQwFueZi0PFC1QbmzKYf4nmny8F wPh6WwCOyfilwcc6OCPx7iDC+tOiAVIf6eS1H4Jk0IiRnbU+sn0VnL3SzTre+7QIujzgCb4R OSQbvwYJUV3nHc1T1fsEyULZ+FSToKSUcFx0ueTdmH9d/MBmI7aQsdAyXjjKom77LU+ZzaKj O8EYnFSqFziwVD+dhd8WGSmn3WcZfyDksBjep4+iUBnAxrcAFy2ADpC5wbtPQcobXgf1fiuY jovTkLmVr6CrgUA58NVJQSB8F1pT2JS+rh40mHu9pRteqDvKkQLttLfKQcfjkTYCbn3z64Ki dnlzvdzRg36AQPj3U1cTAWalvyG+xI9YIpH2N0WYeAr07XZ9D3EmrE3eRGQ75rDK4cRu9uSq p9PAL+e8aHuvD5M3mZMpwOsoM/cBW6XSJ602ERuN6/iqfY4gUnHSh/ZbckroxiRijlEWvwND otUv/ULIBJVtM4JQzh9kite+0+EnVMrO0afpT3n9d+SDWx7WZukYAY95ypRoi9HCmPQhSiwA TLqdqOSuUSQ0HO5oCelaB1Tiv/Uqvfv6lF/oHAGuNRJRrRFHxq9NUP1tW14hAAgy/RdyY4aR ZW5kc3RyZWFtCmVuZG9iagoxOTcgMCBvYmoKMzQxNgplbmRvYmoKMTk1IDAgb2JqIDw8Ci9U eXBlIC9QYWdlCi9Db250ZW50cyAxOTYgMCBSCi9SZXNvdXJjZXMgMTk0IDAgUgovTWVkaWFC b3ggWzAgMCA2MTEuOTk4IDc5MS45OTddCi9QYXJlbnQgMTgxIDAgUgo+PiBlbmRvYmoKMTkz IDAgb2JqIDw8Ci9EIFsxOTUgMCBSIC9YWVogNzIgNzQ0LjkwNCBudWxsXQo+PiBlbmRvYmoK MTkyIDAgb2JqIDw8Ci9EIFsxOTUgMCBSIC9YWVogMjAwLjA1IDIxMS40NDggbnVsbF0KPj4g ZW5kb2JqCjE5NCAwIG9iaiA8PAovRm9udCA8PCAvRjMzIDcgMCBSIC9GMzcgNTUgMCBSIC9G NDkgMTMwIDAgUiAvRjUxIDcgMCBSIC9GMzQgMjAgMCBSIC9GNDYgNSAwIFIgL0YzOCA1IDAg UiA+PgovUHJvY1NldCBbIC9QREYgL1RleHQgXQo+PiBlbmRvYmoKMjA0IDAgb2JqIDw8Ci9M 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 aWFCb3ggWzAgMCA2MTEuOTk4IDc5MS45OTddCi9QYXJlbnQgMTgxIDAgUgo+PiBlbmRvYmoK MjAxIDAgb2JqIDw8Ci9EIFsyMDMgMCBSIC9YWVogNzIgNzQ0LjkwNCBudWxsXQo+PiBlbmRv YmoKMTk4IDAgb2JqIDw8Ci9EIFsyMDMgMCBSIC9YWVogMjM4LjU4IDU4MC44MjMgbnVsbF0K Pj4gZW5kb2JqCjE5OSAwIG9iaiA8PAovRCBbMjAzIDAgUiAvWFlaIDIzNy4yNTMgNDkyLjcw NyBudWxsXQo+PiBlbmRvYmoKMjAyIDAgb2JqIDw8Ci9Gb250IDw8IC9GNDkgMTMwIDAgUiAv RjM3IDU1IDAgUiAvRjM0IDIwIDAgUiAvRjMzIDcgMCBSIC9GNDYgNSAwIFIgL0Y1MSA3IDAg UiAvRjM4IDUgMCBSID4+Ci9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdCj4+IGVuZG9iagoyMDkg MCBvYmogPDwKL0xlbmd0aCAyMTAgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVh bQp42tVZ3Y7buhEGcpmn8N2xg2NFJEVJPL3a5ufgFE1TIFsERdsLWabXOitLhiRnzz5JX7cz nKF+LK2T22aBmKaG1HA48803Y7EK4U+sErlKRBiESq/y0+s/379++zGKV0IERuvV/cFJ3e// tZaBCfRmK8IwXL8vsrJ++FpU+3oj9Ppps5VJuv68+93mXbv5z/1f3n5UamUCEyvaYiujQEXG bcSLN1G4dhtI2kCH65o3cF+O2UaK9Tfc39JMd+TBoS5LWldUDzR1st2x3vPSnW2LvW39qrrl dfWBdUsG3WQCB0sUH9Id6Wl+ApUGSscsxGr+QmJwql5sq8BuSprVViRBLDWJn2218F4VGMEb /jvUIUtEg4QGvVKWaDYqWeOp5hsJE6Twpn4nMdcerZ+GCWjFtwqS7xqbddeG3burofHTcDmx Xv/Mlm/qE4wiM6x5/9fPv9KosW19aXLr13dHGvVajw4nI3A5k7xwPPXC8YINWDhc3y/pS7fC b+S7b7u6sXtSuFi4BAGGCYW//NaWh+BpSYkoASVEr8T83iMdB3Es+d4jJwfWA8HXH+5fCxlo rVbbRLhPHUSJWYWBMumqsavDa8GhKFIIQ9nL9eFoxqFEShSdPR2Lbn6kSARppH7YsXAfvluL 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 aD0jQjhEHf0esVCmg8Z9ZZ3Zrq7LNsC1FlvhN6of4asn72b0i8Nw1tYf5FwyPydTKeyFmAmY /612P8UoxcWIVNK1FXgy84O2PvmRbYDNtiQK7BDqkVNLj/h63GaWBPJL05BiMEuuFhAtvyLr vMOxyHkL/BUuHH6Fg72qutoCDa264pVjgCA0hp05Dkxd2/j60IRTVPNTlgaO+uKgwA4eSmQ7 18lTIfdKpRHU0jPc0huvAuz2fX8TUgFhRk5luE8IW9im8fp4MbKbQcQrHgqCT4L8SAlwUf82 YCflwoF37KfZft/YdtxkpGmuki/crXc+UtqstcHQWhBUQwC7QvKmVxHkToPd1KXegReWQNa1 GCAgnUOASLFbqoVcvztm585zeInpDFjUpyzn2spNf3Kdxdar9T/ve7ynZW5kc3RyZWFtCmVu ZG9iagoyMTAgMCBvYmoKMjYzMgplbmRvYmoKMjA4IDAgb2JqIDw8Ci9UeXBlIC9QYWdlCi9D b250ZW50cyAyMDkgMCBSCi9SZXNvdXJjZXMgMjA3IDAgUgovTWVkaWFCb3ggWzAgMCA2MTEu OTk4IDc5MS45OTddCi9QYXJlbnQgMTgxIDAgUgovQW5ub3RzIFsgMjExIDAgUiBdCj4+IGVu ZG9iagoyMTEgMCBvYmogPDwKL1R5cGUgL0Fubm90Ci9Cb3JkZXIgWzAgMCAwXQovUmVjdCBb NDc0LjcxNyA1NDUuMTg2IDUyOC41MTUgNTU0LjEzN10KL1N1YnR5cGUgL0xpbmsKL0EgPDwg L1MgL0dvVG8gL0QgKGxhYmVsLW1vZHVsZS1GcmFtZVdvcmspID4+Cj4+IGVuZG9iagozNSAw IG9iaiA8PAovRCBbMjA4IDAgUiAvWFlaIDcyIDc0NC45MDQgbnVsbF0KPj4gZW5kb2JqCjIw MCAwIG9iaiA8PAovRCBbMjA4IDAgUiAvWFlaIDIzMy45MyA3MTAuMDM1IG51bGxdCj4+IGVu ZG9iagoxMjMgMCBvYmogPDwKL0QgWzIwOCAwIFIgL1hZWiA3MiA1NzMuNzMgbnVsbF0KPj4g ZW5kb2JqCjIwNiAwIG9iaiA8PAovRCBbMjA4IDAgUiAvWFlaIDIxNS41NzkgMzY0LjY0MiBu dWxsXQo+PiBlbmRvYmoKMjA3IDAgb2JqIDw8Ci9Gb250IDw8IC9GNDYgNSAwIFIgL0YzMyA3 IDAgUiAvRjM3IDU1IDAgUiAvRjQ5IDEzMCAwIFIgL0YzNCAyMCAwIFIgL0Y0NSA1IDAgUiAv RjUwIDU1IDAgUiAvRjMyIDEzIDAgUiAvRjM4IDUgMCBSID4+Ci9Qcm9jU2V0IFsgL1BERiAv VGV4dCBdCj4+IGVuZG9iagoyMjUgMCBvYmogPDwKL0xlbmd0aCAyMjYgMCBSCi9GaWx0ZXIg L0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42pVXS2/jNhAGesyv0FEGKoYUKUraU9M8sFs03Ufd U9uDLNGxGkkU9Eg2v6R/tzMkJSuxEbsIEFLD4XzzHjoOvZhRQnnkCRmTNE08Cv+l1ylve8E8 Cn/ME2lIeBp7ElbBvLy++Hl9cXnHEy8lqeTeemsY18Wf/vXHqy/r22+rv9e/XN4J4TFBuJDI ETBCWeIFISeShoZ5/fHb7S2yXtyuLwIRUoMScEHCKHxPoSAMQRoH3iQlMRezSqH0QkHiJF7q 9EdT6HysVTOoYhWEceLf62KsVO+0jF5pmaaESy+QnIiIm/ucsFXAKKX+p2bo4Go+lLqxlzlf +gCEkxR8aYzbKQAT3K8dGHwIv2wscdiVjpLvsnZQnSVnnbLUVuuuerHEV9rD9180ouXW8mWD u1hVQGZkFXCa+J+2lvqiR8v2XPY7B6wdrAZbys0qpP44qNdAmbHPkPSE06xY5L+8Jg471Sv0 A5rOGEkjaUx3Fv8IXBH120plvbL7BzXYjfEDrIMec6NZCjoOuw9TNsyRlpSwMALxlEOMTKQh IQRkRSQMz6NLRuolEAi5DHy74tR/GXa6CcC0/qf9N9Hdw1soCHwsId0MhKNNwvlhppNj2RPy lFDKIYdTEqZT+oQufe6z/PPvNgMHrauNRn2+W0K9TMl3swpThIvE5orZ2KVH3+IGw4PrnHj4 Mewyd9x2GmP5VBbufgmp1W1XjPpZPrNruz6twgiQSj26A2eD5UEbvqMw1UPmSSpM5hmd2rYq 82xTqQleLZWy++eyquyuUMGrPLLG/tAgo4yNhTLxm7HeYKUgyRgJtC8mno62+UflQ28Pttpx Wmj51hY46YcOannslLtSqLwCrxb2dPNiqe5+PNkLaQ1tCirC8elWdaZinBRnFUpwwGUNNXDM wKmqOYMKw+vgylqBQUVvicZKJpwOSDAmgrMjcPZnIHeOvlSCiUkJ2BklQK5R4hBQ+NuxyRc3 sTKRf4a0ETOQ3P9ND+62lR9Z5OBIF3AywxRagO770uQCfpnah/XaLlZV3GVVr+1uo967OMU8 TFLTDHNQZpPljw7NNlHY6O2g3JXMyes0SKuxVWIYoSZNGM1R1mXge9X1b9XSeZ71YAygvBwJ onFwHPkF9GRIsC0UaDNYkvElrHOSxtJ276YdHYtNI9jocZiJti1P4rCRCiqhyFqVl6iFa/Uy kf6ViUO8zJul1GVw4XOXoeQnU7KOc26D0GlTHNCMRYSK1IuIiFMPZ3Lipq+UMIqj9zhc22Qx PBTiBef8ZIgPGym05lmHhMDMpYeCYahLmhw7mSA5JwnMCbqHOtKzoeDLxjR+LxAiIhxb9SKU hepzGIrIE3BwLtRAiQWWQLl3K5b4D2Y+9vbUOhnOOgVNpLFE22Sq0Yw/EbI9l21IeK8oysHk kz2wqK0dushgxrYFVZbSKcgD25kSbERuTIi9idCS4CUknaGfmt62d+CGjg0dXsMD4GC2BNOt pRMwQQ/GsBDAkEjzfEvZ/5rCu2FoP1xegjqcWveoCpvGCsY/wTmhMB1JruvLQeW7dtz0l3WW 6z7BJSG7oa7e6oPvP5acP6yxYOyDA4OAa1/WJTR7+/GMw093j/001KU3OQSHOmRfRCPzMGX4 tLRDfX4VXnU2Lewg/wgBr0wG4dcWjTaY8LFeMai+t5N/8Rg1w17CayKcQUKrEaiy14hDmQju TLu6PaIzi4mUqeP41+JcGVeb7a0NA2ayqYVIkpCFDpvN2PwU9nV9Jva1rlvdzD66z5rsATLg EHxvuDgJPlRH0CFWCUh5g47v9uoINrzyeRIdYEensG+qhzOxb6Bh64dT0Hufy1PQt0/DmdBz lM83PD6FfnduxO9M4p8O+N7y5BT2r2V/zHQewg/L6DW6YT1EjqFfRcmB1ekp5HvVjGciAys2 k/F8dEaPwMNwYpNHvxZn+vzrWOY43x9vOvOax/3z/Pt638YoKEDl4gf2wTQNOf7SR14YyaF8 /zc/SyeM/wCjrCOqZW5kc3RyZWFtCmVuZG9iagoyMjYgMCBvYmoKMTUwMQplbmRvYmoKMjI0 IDAgb2JqIDw8Ci9UeXBlIC9QYWdlCi9Db250ZW50cyAyMjUgMCBSCi9SZXNvdXJjZXMgMjIz IDAgUgovTWVkaWFCb3ggWzAgMCA2MTEuOTk4IDc5MS45OTddCi9QYXJlbnQgMjI5IDAgUgov QW5ub3RzIFsgMjI3IDAgUiAyMjggMCBSIF0KPj4gZW5kb2JqCjIyNyAwIG9iaiA8PAovVHlw ZSAvQW5ub3QKL0JvcmRlciBbMCAwIDBdCi9SZWN0IFsyMTEuMjM1IDQ5Ny4xNzYgMzExLjAw MyA1MDYuMTI3XQovUyAvVVJJIC9VUkkgKHB5dGhvbi1kb2NzQHB5dGhvbi5vcmcpCj4+IGVu ZG9iagoyMjggMCBvYmogPDwKL1R5cGUgL0Fubm90Ci9Cb3JkZXIgWzAgMCAwXQovUmVjdCBb NzUuMzE3IDM1OC41MDQgMjk2LjUwNSAzNjcuMTY3XQovUyAvVVJJIC9VUkkgKGh0dHA6Ly9k ZXZlbG9wZXIuYXBwbGUuY29tL3RlY2hwdWJzL21hY29zOC9tYWM4Lmh0bWwpCj4+IGVuZG9i agozNiAwIG9iaiA8PAovRCBbMjI0IDAgUiAvWFlaIDcyIDc0NC45MDQgbnVsbF0KPj4gZW5k b2JqCjExMyAwIG9iaiA8PAovRCBbMjI0IDAgUiAvWFlaIDUzOS45OTggNjAyLjY3NiBudWxs XQo+PiBlbmRvYmoKMjEyIDAgb2JqIDw8Ci9EIFsyMjQgMCBSIC9YWVogNzIgNTI4LjY3NSBu dWxsXQo+PiBlbmRvYmoKMjEzIDAgb2JqIDw8Ci9EIFsyMjQgMCBSIC9YWVogNzIgMjkwLjYy NyBudWxsXQo+PiBlbmRvYmoKMjE0IDAgb2JqIDw8Ci9EIFsyMjQgMCBSIC9YWVogNzIgMjY0 LjExOCBudWxsXQo+PiBlbmRvYmoKMjE1IDAgb2JqIDw8Ci9EIFsyMjQgMCBSIC9YWVogNzIg MjM3Ljc3NiBudWxsXQo+PiBlbmRvYmoKMjE2IDAgb2JqIDw8Ci9EIFsyMjQgMCBSIC9YWVog NzIgMjExLjQzNSBudWxsXQo+PiBlbmRvYmoKMjE3IDAgb2JqIDw8Ci9EIFsyMjQgMCBSIC9Y WVogNzIgMTg1LjA5MyBudWxsXQo+PiBlbmRvYmoKMjE4IDAgb2JqIDw8Ci9EIFsyMjQgMCBS IC9YWVogNzIgMTU4Ljc1MSBudWxsXQo+PiBlbmRvYmoKMjE5IDAgb2JqIDw8Ci9EIFsyMjQg MCBSIC9YWVogNzIgMTMyLjQxIG51bGxdCj4+IGVuZG9iagoyMjAgMCBvYmogPDwKL0QgWzIy NCAwIFIgL1hZWiA3MiAxMDYuMDY4IG51bGxdCj4+IGVuZG9iagoyMjEgMCBvYmogPDwKL0Qg WzIyNCAwIFIgL1hZWiA3MiA4MC43MzcgbnVsbF0KPj4gZW5kb2JqCjIyMyAwIG9iaiA8PAov Rm9udCA8PCAvRjM4IDUgMCBSIC9GNDQgOTQgMCBSIC9GMjYgNSAwIFIgL0Y0NSA1IDAgUiAv RjMzIDcgMCBSIC9GMzAgNSAwIFIgL0YzNyA1NSAwIFIgL0YzNCAyMCAwIFIgL0Y0NiA1IDAg UiAvRjU1IDU1IDAgUiA+PgovUHJvY1NldCBbIC9QREYgL1RleHQgXQo+PiBlbmRvYmoKMjQ2 IDAgb2JqIDw8Ci9MZW5ndGggMjQ3IDAgUgovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJl YW0KeNqNV9tu3DYQBfLor9CjBEQ0L7rmLTFsxAXSNvUWeWj7QEvcXSG6QdJm4/5GC/R3O9SQ WmktZBeGzYuGc+M5MzRzKPwwJ+ZOzCihInSy6ubD5ub2IYgcxkgahs5mO0pt8j9cQThhzPtr 89PtA3w5CQQhYakR+jygwEIDi0kUWYn/PJ/Hifv5UGQep+7XTVEpfcbxI06SMHV8HhER8JNN fsHmb6pfMcoDkoCWhVGQbA5dpnD1SdZypzpcyDrHyUeYlajR8WOdF25cYieXxAWXnrJOtitO iZSwJFk6BbIeoy7IL7wa7ScBEXHyOiXBJfsQzXUpeWoONvKF5UXkM8vhBcub+ysBsPEYXL/y BHW/D/d5MayAYJbx6ILdo+wHdWXG66b237dtaeTDeCYfC0JTYYPxUu6qk3tnuoOYCGu/U20p M1Wp2kgK4aQkjYQW9DmF1EcMJnChQYp3pNQ7LXpzv7lhhoucEh4Ix2dhRCj4BYSkJA0cSsJg FPmKBBXUSUB5NOfnfhjad7e3x+PRi6hLKtX9ffRY6MpO1SRrqltcQZpuz80yEZKY6ai1QbNp Tc3isKa2jWZNSN2ihmklh6KpcUM+N4cBp8Ne4eSLl9DRLiyD1D0W+U4NZCWfEHYI88jxRTDe 2nT78YXb/1LUV+IdJPNGJ+L4CvRwGvTrCxrzOlFAUCJ4ZJyxzKczSfCWJ7Gx83woynxomrJf 0ZmCyihcevRRla2tQlWTH0pTnraaGo358EFrHTE7nNWrBy8IXZCCkApV56ZwMQ20UDsvSMoC 43xwyfn2xULDZ1SQEJjgpwkJeOLEJIFsA+ATp1POdsKOnwJ26EnO9pCFETqxxBTg16mJNfGn zGAQ4DzTqscghAkivBREtq22RblmIwKxc0DcNblaZFLX4t3I45WeYS4IGR7PGA7Rh1zXrZik 0Em1gbu5H3MaBYBLW2KK3gOAgUkcJgCkKRBIDrgLJVp1/SD19Y4bxmkQeujQWatGw0JPkH0g IDPgfitrjfmXot7h53+yLUSauLt/cW0vpieeH4Sp+2gsZ7JGNa3sejWprvCCMBB/ZBwSBGEJ pIfyM+pXUzGo3poSYUV06Ho89CrH0vD8gjsT2otsVluGBkeI57mojWJZljhpy8OuMJKYxR6V 2mMShx5yUJrDSiflu/6jssMgn0tFVlBDAYAp4antgtElAFbQCLqu6dYqQMJIEMZLCH6S2S9P OL2fnVvgizGgWRAYgEVrduYQg/7Bp7aXNYMs6t5mr9ZIMkU6V2/qQqfYJGuq7JVBDK6shzpn 2qJVlWvArJROYx7zZokbX5G3bV+v6IO2EIlgmbSfpX4+fnvSpRMK5bciGy8cvmSAibUUJjDl 7DyDk8V5+kRCKBdT+mqbPxa5R3jZYb1msbs91JnNHnxDxuoPe/COud9GaOEOEhKEelmZrfe/ PuKW7M9kRr9w70nTXnb5Q1Gaj2N8mkxcuM86CQdjFDo9ShQVNApdFUZiaaeLYY+UNZH5tktC fCaTxW7GNUjrmFEoB4KH7mPVNt0wVg8eQqMZcDwWyL7IPn9w23T+EIrAsG/y3hyqzaaJbTwP btkjvXqLuootjj/yy6g0Iwp64KgsSk1j3G7Gm9X8nUX7AnXOQjzbQx35EeUtdJNL0C2yplXX QvcRLmb0wa1tO79r6jc7nM5fkouHwGsXOAPEprZrag/+pCGFX7byBhUU5ixa4P90r6/oEnB4 gQYr4Z3zxKbAgAFgfwIDLBAMMEGoFuVg32pzaykDRfFVgSxtjgAC7RIHZFzXI2BG8yMlOddt pse9Mf+YeljZ1GvhBsfefnszQgkODy+tCQPbF0yyTsmhMf8ucUguj9kCaVMthV7F8cEJC1CJ NXN8ZUXw4A+BjgGFvgC9NIjgcuCJtfbQmmQZvOTE6aUF01cvdE51246FcO/2sh3s+1IAnyMI 53d4BGeHqULoHmRapnHsf1EuGeBlbmRzdHJlYW0KZW5kb2JqCjI0NyAwIG9iagoxNDc1CmVu ZG9iagoyNDUgMCBvYmogPDwKL1R5cGUgL1BhZ2UKL0NvbnRlbnRzIDI0NiAwIFIKL1Jlc291 cmNlcyAyNDQgMCBSCi9NZWRpYUJveCBbMCAwIDYxMS45OTggNzkxLjk5N10KL1BhcmVudCAy MjkgMCBSCi9Bbm5vdHMgWyAyNDggMCBSIF0KPj4gZW5kb2JqCjI0OCAwIG9iaiA8PAovVHlw ZSAvQW5ub3QKL0JvcmRlciBbMCAwIDBdCi9SZWN0IFs5Mi4yNDMgNTUxLjgyMSAyMjcuOTU2 IDU2MC43NzJdCi9TIC9VUkkgL1VSSSAoaHR0cDovL3d3dy5tZXJ6d2FyZW4uY29tL3dhc3Rl LykKPj4gZW5kb2JqCjM3IDAgb2JqIDw8Ci9EIFsyNDUgMCBSIC9YWVogNzIgNzQ0LjkwNCBu dWxsXQo+PiBlbmRvYmoKMjIyIDAgb2JqIDw8Ci9EIFsyNDUgMCBSIC9YWVogNzIgNzAxLjY2 IG51bGxdCj4+IGVuZG9iagoyMzAgMCBvYmogPDwKL0QgWzI0NSAwIFIgL1hZWiA3MiA2NzQu MzA4IG51bGxdCj4+IGVuZG9iagoyMzEgMCBvYmogPDwKL0QgWzI0NSAwIFIgL1hZWiA3MiA2 NDcuOTY3IG51bGxdCj4+IGVuZG9iagoyMzIgMCBvYmogPDwKL0QgWzI0NSAwIFIgL1hZWiA3 MiA2MjEuNjI1IG51bGxdCj4+IGVuZG9iagoyMzMgMCBvYmogPDwKL0QgWzI0NSAwIFIgL1hZ WiA3MiA1OTcuNzQ2IG51bGxdCj4+IGVuZG9iagoyMzQgMCBvYmogPDwKL0QgWzI0NSAwIFIg L1hZWiA3MiA1NjkuMTA5IG51bGxdCj4+IGVuZG9iagoyMzUgMCBvYmogPDwKL0QgWzI0NSAw IFIgL1hZWiA3MiA1MTAuNDA2IG51bGxdCj4+IGVuZG9iagoyMzYgMCBvYmogPDwKL0QgWzI0 NSAwIFIgL1hZWiA3MiA0NzYuMTYxIG51bGxdCj4+IGVuZG9iagoyMzcgMCBvYmogPDwKL0Qg WzI0NSAwIFIgL1hZWiA3MiA0NDMuMDMgbnVsbF0KPj4gZW5kb2JqCjIzOCAwIG9iaiA8PAov RCBbMjQ1IDAgUiAvWFlaIDcyIDQwOC4xMzQgbnVsbF0KPj4gZW5kb2JqCjIzOSAwIG9iaiA8 PAovRCBbMjQ1IDAgUiAvWFlaIDcyIDMzMS45MDYgbnVsbF0KPj4gZW5kb2JqCjI0MCAwIG9i aiA8PAovRCBbMjQ1IDAgUiAvWFlaIDcyIDI2NC42NzcgbnVsbF0KPj4gZW5kb2JqCjI0MSAw IG9iaiA8PAovRCBbMjQ1IDAgUiAvWFlaIDcyIDE3MC41ODMgbnVsbF0KPj4gZW5kb2JqCjI0 NCAwIG9iaiA8PAovRm9udCA8PCAvRjQ2IDUgMCBSIC9GNTUgNTUgMCBSIC9GNTcgMTMgMCBS IC9GMzMgNyAwIFIgL0YzMCA1IDAgUiAvRjQ1IDUgMCBSIC9GNTAgNTUgMCBSIC9GMzcgNTUg MCBSIC9GMzggNSAwIFIgPj4KL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0KPj4gZW5kb2JqCjI1 NiAwIG9iaiA8PAovTGVuZ3RoIDI1NyAwIFIKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3Ry ZWFtCnjapVZLb+M2EAZ6zK/QUQbWXD71OHbRZJGi2waoixzaHhiJjtWVJZeU1utf0r/boYay pViFFygCROPhcF7fPMgiCn8sSnmU0pxkOYuK/d2Hzd37B6kiJomQSbTZDlKb8vdYkHz15+bH 9w+KTk6FJDxLg8heF113QqmZDqVIImSQ+scLROssJzln0VqAYiaDCUYXbEhOeCLC7cZZs287 s2Al5SRTZyNrnmbxs10xGuvDwVhkaNv2TYn0z6ZzhT4Y/PXLr98jsW/LvjYODYg0Aj/BOuhf M6YIYyICMZILteCPEBdxRUkmx9RUbrUWVMYaP0cbfBJUnH3yB93OIHFxzosMznn26FwQ1l1Q Udftiqv4GE5ObR9EWvwa7ar6hMLOjNZAzCL1YsN9Y6cXxejwa+WPv6yYik2DAIb4ICskV5iM 3tZkARgKKOeE52JEmd1C+an6+kkfnkOWrjV6JLIsuwH2diVo3IYfqBLp9uUvU3SLEKuMMMUC xMl/OTPFOaNE0bHuPLCAAc+YzxzP6MUusNAu8o9Vt5sIsvjp1O3aBg8vgiyg7LlTlIeLRWFc oD1eXmYoIM/4ztSlQ97LCVmN3huyWkvK48egXNcuXNxpFxoT45niujfg2qBNUbQE3wKclTTU hO3mh3poMpnHW9vur/PMIL0cJk5A+/Gn67RySiQf66Ha61fjlmprzWRKUhggb0qM3yqxgzVb Y01TjK0+U5tnJEnFfGIxSYeawJF1tiRuWhqA9fb+pyV5y9LffWU6wMW19dKAZBSy/qZpmrZZ f6lc9bLiNK7DLHRd2fZd6JW+OwC90CoyJ0qKWatcOzCFNJUkpUmwPyvmPMeRxfMMSwgYn303 G3NALrhUhYPg0UBXDR5r/DlE0W+93u0wBYDnGw2jAbmycodan6rmNdwP/D+oou23XMD+ys85 GvAKgU1b5lg1JcYHA5RzCLdrX6GNwCtomnfAFGB9i4fOdEgMQwHzxqfdIkmWjKvkvqw6nBVP MPCy+FxWs1RTkiTjxoXgGOrvm66qkcQVAURn/V7gOEI8wxpdIjU0L3oI6W+Q9GnyX8iMfvEV MygZ9hYomSMAafOhQsR6jHBXFbtQ5bkiSrBZ2g5t1fjM88QXiCfSkHLgOO2V48ApkXWuBaD9 jvXysN8CZygl/x01TFBJVEz8buPxx7Yt8eZ2KAGQ+/jbIxIH275avXejnmEUg2QZNB+HlfPW Xiias/uVvfZWj1+UKqx2u29anurWFHhean1OVJ682ZdVCRXpFnYl5guIT7rw2X6Hvz70VT1O hSZItuNK3S64xaUkueTB7AMk0jy39vN1ufrWIhmd793NzixsDjjP+DzS2TYmMhlH3PEcoN9I 1iDRu6F4gDI+tq+dadzkdeNfSX5xDZNF4UK97kjJ4BWTBzuPP9x7kbv7zR2glcBrN+Mykgm4 moMvRMB/a6LtHQtvbi8Fp2man9/cIrtonzy5yXUGODxzmVh4ck9VCNgqQs22ioB2k+mYOs5G l/8FQOgXmGVuZHN0cmVhbQplbmRvYmoKMjU3IDAgb2JqCjExMzcKZW5kb2JqCjI1NSAwIG9i aiA8PAovVHlwZSAvUGFnZQovQ29udGVudHMgMjU2IDAgUgovUmVzb3VyY2VzIDI1NCAwIFIK L01lZGlhQm94IFswIDAgNjExLjk5OCA3OTEuOTk3XQovUGFyZW50IDIyOSAwIFIKPj4gZW5k b2JqCjM4IDAgb2JqIDw8Ci9EIFsyNTUgMCBSIC9YWVogNzIgNzQ0LjkwNCBudWxsXQo+PiBl bmRvYmoKMjQyIDAgb2JqIDw8Ci9EIFsyNTUgMCBSIC9YWVogNzIgNjk3LjM3IG51bGxdCj4+ IGVuZG9iagoyNDMgMCBvYmogPDwKL0QgWzI1NSAwIFIgL1hZWiA3MiA2NjIuNjc1IG51bGxd Cj4+IGVuZG9iagoyNDkgMCBvYmogPDwKL0QgWzI1NSAwIFIgL1hZWiA3MiA1ODMuNDkxIG51 bGxdCj4+IGVuZG9iagoyNTAgMCBvYmogPDwKL0QgWzI1NSAwIFIgL1hZWiA3MiA1MDUuMDg5 IG51bGxdCj4+IGVuZG9iagoyNTEgMCBvYmogPDwKL0QgWzI1NSAwIFIgL1hZWiA3MiA0NzEu MTc2IG51bGxdCj4+IGVuZG9iagoyNTIgMCBvYmogPDwKL0QgWzI1NSAwIFIgL1hZWiA3MiA0 MzYuNDgxIG51bGxdCj4+IGVuZG9iagoyNTMgMCBvYmogPDwKL0QgWzI1NSAwIFIgL1hZWiA3 MiAzNDUuMTQxIG51bGxdCj4+IGVuZG9iagoyNTQgMCBvYmogPDwKL0ZvbnQgPDwgL0Y0NSA1 IDAgUiAvRjUwIDU1IDAgUiAvRjM3IDU1IDAgUiAvRjMzIDcgMCBSIC9GMzIgMTMgMCBSIC9G MzggNSAwIFIgPj4KL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0KPj4gZW5kb2JqCjI2MSAwIG9i aiA8PAovTGVuZ3RoIDI2MiAwIFIKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnja MzdSMDXRMzAzVzAxM9eztLRQMNAzBpJFqQppXIYKBkBoqGBupGBipGdoaKSQnMvlFMKl72Zs oWCpZ2lmrBCSBlYTkhKtYWSkGRvixeUawgUA3zcRoGVuZHN0cmVhbQplbmRvYmoKMjYyIDAg b2JqCjg3CmVuZG9iagoyNjAgMCBvYmogPDwKL1R5cGUgL1BhZ2UKL0NvbnRlbnRzIDI2MSAw IFIKL1Jlc291cmNlcyAyNTkgMCBSCi9NZWRpYUJveCBbMCAwIDYxMS45OTggNzkxLjk5N10K L1BhcmVudCAyMjkgMCBSCj4+IGVuZG9iagoyNTggMCBvYmogPDwKL0QgWzI2MCAwIFIgL1hZ WiA3MiA3NDQuOTA0IG51bGxdCj4+IGVuZG9iagoyNTkgMCBvYmogPDwKL0ZvbnQgPDwgL0Yz OCA1IDAgUiA+PgovUHJvY1NldCBbIC9QREYgL1RleHQgXQo+PiBlbmRvYmoKMjY1IDAgb2Jq IDw8Ci9MZW5ndGggMjY2IDAgUgovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeNqt V1tvmzAYfc+v4LGVhosv2OaxXYjUqWnXJlMmTXugxGnREsiAbOu/n8GOaoIzHC3KQx44nOPv fDcDvUD+oIdDCDBCHpX/EaReuhndzEdXE0Q9RADjzJuvWuh8+e1i+jD+chdf+ojxi9v7cfz1 8vv809WEhB4kABPaYOXDqGX0owAQRtoXrxUQMy8CEcWK05cvsUg9jzUAvwOgPFAYauUPUjQM LmBkU9RIHzUh8BZ/c1SQK8XnXbZe1kWxrvrKYQQYO1BGgU1ZI32EQCS1GvzHgVDT1WaVrUVf lUDACbarmmy+Bu7DbkU3p/nX4dvbZ/Cl9bOFkMkgUZcwtPEpXOd89dqN70iCNaOR4PGAzeP1 y9kUVWLjAcU4qd7GWbIuXiwlRUPAwoPkQmIxTwNN8+Jf9ZnNmwyEssrypSiPdIc1FOQWyuTM dTopk41YFOUPSxNjGQ23O37QxAppGnQ7YFCWusXhGEaWFluR9ylxCDh1GkQaadbr3UAMd1ll qSuEJYFLWSmgadp0QHCTpKIsi7JyS5Z19u1zZZgnaVcWShQBzg8omYVR43qMJ6ajw7nPhsE5 TdKHmdspYeB8zKL61wqjDk2qgQe81VaI9NWxqbBznur6zdFV6OiqyHcn1XDXU1XCLR9VfFme XcftVHEcfNzSG5CHgHLoEc6lC4r5fqA58qoUm6K23QsY4MhuT7cjFdDsyM8Dop+zP9NkuyiT 7VaUfWXGAAu4Q2Y00MzMthQrUYo8FY4rxEpsWSHbtoRG8XzkwxBg3NSuhHEZeijvm5EXACwr rxTeagT1JdeXzRMawP0lt2uMOk4pqmJXpo6JCOyH5r1D169F3nhyzA3ikmGNbAo3oKquHgdS /Lg8sqmo68btDofH2o3P6oyF7+cuE3Va5FVhuxMzCBiGLtZopFn9T0PfAE+22myvS9hl52qk efmfDWRjlspec9sCyHELzPLlWYJ4920+5Ns8Pq0GLF9rtKO4GLBtYdlEIGIuo0nhTMN+J5Vt zP5PDhZZfkoO2uGFaASIbGKfYElEmUeofKFZrv35BTkDpGl8QuTKQsYA4/0BhvBe4y+R5qcD ZW5kc3RyZWFtCmVuZG9iagoyNjYgMCBvYmoKODEzCmVuZG9iagoyNjQgMCBvYmogPDwKL1R5 cGUgL1BhZ2UKL0NvbnRlbnRzIDI2NSAwIFIKL1Jlc291cmNlcyAyNjMgMCBSCi9NZWRpYUJv eCBbMCAwIDYxMS45OTggNzkxLjk5N10KL1BhcmVudCAyMjkgMCBSCj4+IGVuZG9iagozOSAw IG9iaiA8PAovRCBbMjY0IDAgUiAvWFlaIDcyIDc0NC45MDQgbnVsbF0KPj4gZW5kb2JqCjI2 MyAwIG9iaiA8PAovRm9udCA8PCAvRjI2IDUgMCBSIC9GNDUgNSAwIFIgL0YzNyA1NSAwIFIg L0YzMyA3IDAgUiAvRjM4IDUgMCBSID4+Ci9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdCj4+IGVu ZG9iagoyNzAgMCBvYmogPDwKL0xlbmd0aCAyNzEgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2Rl Cj4+CnN0cmVhbQp42jM3UjA10TMwM1cwMTPXs7S0UDDQMwaSRakKaVyGCgZAaKhgbqRgYqRn aGikkJzL5RTCpe9mbKFgqWdpZqwQkgZWE5ISrWFkohkb4sXlGsIFAN9JEaJlbmRzdHJlYW0K ZW5kb2JqCjI3MSAwIG9iago4NwplbmRvYmoKMjY5IDAgb2JqIDw8Ci9UeXBlIC9QYWdlCi9D b250ZW50cyAyNzAgMCBSCi9SZXNvdXJjZXMgMjY4IDAgUgovTWVkaWFCb3ggWzAgMCA2MTEu OTk4IDc5MS45OTddCi9QYXJlbnQgMjI5IDAgUgo+PiBlbmRvYmoKMjY3IDAgb2JqIDw8Ci9E IFsyNjkgMCBSIC9YWVogNzIgNzQ0LjkwNCBudWxsXQo+PiBlbmRvYmoKMjY4IDAgb2JqIDw8 Ci9Gb250IDw8IC9GMzggNSAwIFIgPj4KL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0KPj4gZW5k b2JqCjI3NCAwIG9iaiA8PAovTGVuZ3RoIDI3NSAwIFIKL0ZpbHRlciAvRmxhdGVEZWNvZGUK Pj4Kc3RyZWFtCnjazVpbb6M4FJb2sb+Cx3Q18eAr8NimiTQrzcxK6e7s9cEBp0ElOAtOZ7u/ fg04GUgIkECjUVUpDfb5zrHP5TuHQsvWP9AijABELUYRQA6z/PXN/ePN+xliFiLAcR3rcZmv fAz+HH349DD97fbvx5/ezwi1IAGYsOz5GHsoEzL2bC2E5Gvnr+uFjNJs9c308UYvgYBRbI2h TYHNiEUBcTzLBthzrURYyxtoNBpjlwHolJbulMKO5QGP4bJO/2xD9ZdNbf0LC9Uw/rYKuwBT ZpZmy8L4doyoPVrLYBuJ4vMs4Wvx5da1RzJ5zuS8K76HrM5WQgDREGOEge2hXPCdAa6oN9Z7 tIH584VMGpTUErH+u1lJXy1KqrFjxLERM4YQeJTmwrjvi00DMtXHD2FvZCOmjHw3PUbTB0JI +TJSxeOAJ0EZs4Aq9qJvex0HOMQxe6FXo4R2QejhAyXmInkRyYWGfwzj8G6ae8fuAIg3gm4m rt7oKOSp2ctj/qSRiT16t/vGD2Ml05WR4+Ri7KqAzSYS05dbSEciVunOD9Hug1vvaFUBoc9V KOPTt+7a+qS8S4IiM5/WnL2RWHG9fegzHehMP0MQUOacjnuzeb+wKeo3XK3i4l5OGMl0RmJt kb/m/jItObdbbxvSqha2sQPbxoU1u4cnbbP3S5qsUttNJFryBBnAJH02mLGq46TPP/M0/SqT oKfjTHn6+hDySD6lZbch3dxG6zFXSRg/NdysCxAhw2lh5B1o8btIP8kJj30RnVbFcwHE8HxV sliuU8XIq8bRq9bhJUsHbxXRrOPVvPAw4osmD+10NdpD040Q/qqsA+52MXwgHao1jdbV+R16 qc7ft9T5+0Tw50HrvNOtzt//Mpt/+ONC+qPvQ6ZKarJWvhBUg2zElZEX2zAK8s0dUvC59d41 e5FdowwkNrBh1T3ut+lrTzJ45J1ZrOJa0mtOQzsIcwsHmLQ4iM+jaMH952sysR1mz1LZRIaO yws6KC/+cr0Mtaj2mBjWRxACtls9j8lKylRclxMXtMHPkX8cJDHQbolhEjXa+nadh38m8JeM KYdxIG8RHX01Sgi1kkFNQ9Zq9fo7aD789Z1S8YVZqP2ya3Kxv57EKrou4gNX/LqIs4g/pdPP Hy/MY+2olfRVRO7k4yfxtScx7xi/5MDcueJqm9YkDcoAcr3zQS3oUQB1KSOuZjieUxgo1+tt bDpH08I+5lRRRgv5r8n2lRZ2L8+uHpWMY+FnYk41wrStifXlpm8V/yEORHIppxkAvxenyvBV IgZobjvqUFOwJ3Ibq19l6Iu+bUdnul/Tckw0oVYyubBwHbbCXsfSpRbHgMgGBJUBF7fIHmny q8ZV6FMlBOvOjpr9dcHvYUBpdcwwqUvmR4r0rWNVUpt1oE6l6Xk4yWkN6Q1qSwBigNhwgGGF EVS+oQex2D7NVdKX0nL/87xML2C3alA0818yttJQFPIh9sWj59opWyGxchLR0xVc5GhG4VSU 0KTNjMMQofpbXcIw0iqcHochCgHB+3VNMzGua8kLV+ckw25c0jk16/NOGJfN+tz9s9ZRH200 y1/x5I1fW1TbEQawex3LZKxErPwobOo5j6Lj8kuDNgHIvpptiYxWTa+cHK0NgoNYlr9VI9cw LMhTWj5mvOaUUecSpLPPFQwMlVg3XltOp92zr62uYmkPwKja+tdb1fuFwUYTvESk4X9icH9k 34djbjdBY/I/mtacFW1HE198MPGdtgz0SrP9DpPoS2dbte8KYFZrvWrwTJOkji3rKosdbwg2 ZCSVMUUPzA4jgGEBQ7+lH6jBm76oExyLvC0NhxVXnLW44kw7fafXv1m9hEMwcyOofFbLcN94 v2U8oI7xkJ3JTEZapZb8iAY4DiOogv8hXsqBX+g63SZH+Zjswijp0jhXAoUZyCAZqBH0ujWC s7cY9Lqtg96Dk84Zj2Y7HWZ0vStA+eWz/rDz2yY6AgnWgVHNabP5fCP8lrKKLvHMnAEg5gGS dc1IY1PILMIcrYNb+28frgNIRiYQzbgC/EYH3GM6gOgO43+hPHYtZW5kc3RyZWFtCmVuZG9i agoyNzUgMCBvYmoKMTU0MQplbmRvYmoKMjczIDAgb2JqIDw8Ci9UeXBlIC9QYWdlCi9Db250 ZW50cyAyNzQgMCBSCi9SZXNvdXJjZXMgMjcyIDAgUgovTWVkaWFCb3ggWzAgMCA2MTEuOTk4 IDc5MS45OTddCi9QYXJlbnQgMjc2IDAgUgo+PiBlbmRvYmoKODEgMCBvYmogPDwKL0QgWzI3 MyAwIFIgL1hZWiA3MiA3NDQuOTA0IG51bGxdCj4+IGVuZG9iagoyNzIgMCBvYmogPDwKL0Zv bnQgPDwgL0YyNiA1IDAgUiAvRjQ1IDUgMCBSIC9GMzcgNTUgMCBSIC9GMzMgNyAwIFIgL0Yz MiAxMyAwIFIgL0YzOCA1IDAgUiA+PgovUHJvY1NldCBbIC9QREYgL1RleHQgXQo+PiBlbmRv YmoKMjgwIDAgb2JqIDw8Ci9MZW5ndGggMjgxIDAgUgovRmlsdGVyIC9GbGF0ZURlY29kZQo+ PgpzdHJlYW0KeNrFWltzmzgUnuljfoUf45m1ioQA8dimSZudpknjzPZhdx8ULDtsAbFCTpN/ v+LmgC1ADvZmOp1pUjjn41y/cyQ4sdQfOPHQxLN8gBGeBPHJx7uT9xfYmUAMbOxO7pbFU3eL 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 IDAgUgovTWVkaWFCb3ggWzAgMCA2MTEuOTk4IDc5MS45OTddCi9QYXJlbnQgMjc2IDAgUgo+ PiBlbmRvYmoKMjc3IDAgb2JqIDw8Ci9EIFsyNzkgMCBSIC9YWVogNzIgNzQ0LjkwNCBudWxs XQo+PiBlbmRvYmoKMjc4IDAgb2JqIDw8Ci9Gb250IDw8IC9GNDUgNSAwIFIgL0YzNyA1NSAw IFIgL0YzMyA3IDAgUiAvRjMyIDEzIDAgUiAvRjM4IDUgMCBSID4+Ci9Qcm9jU2V0IFsgL1BE RiAvVGV4dCBdCj4+IGVuZG9iagoyODUgMCBvYmogPDwKL0xlbmd0aCAyODYgMCBSCi9GaWx0 ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp42s1YUW+bMBCW9phfwWMitZ5tDIbXbc3WSdWq hTYP2x4IOA0rwZExTffvZwhJITWQhEydokQJse8+7u777jAyoHohg2KDIgigaRnBcvDBG7wf m9RwgWubhjcvFnnhj+GErXzhSy5+QguqNxr98r6qpebLUtsBmJByfb4sSkaX2ILDJQ+zmG2+ j4W/ZNORA4dcPOZ2LtR14g6RVRqs+L4sLV4iBFzLKuymTPpC8HWQibQNjOsAZKJTwKjrWjCl xSqYCZMfeTKPHnoGJZCzine7KxL2zrlgeUq8PyvWMxJLP5inFQzOwQH45EuWttw/Bti2z+C9 NLTn/eqJJfKLn4QxaykGBAlA0O1AceMH3ybVKkAaGFtTezjG18mcv1kUxjwOWV9m7runhxFS ub+NZLA44uafRlgxLgpKx3z2mwWyBMHkgofVJJgHR+G7qsRmFJYNsOOcioJoUJQW99RJKjIG G1725GQUVBHALkbaWwRrX6Xjv9DHdJHJkK+TnsR4l6jqlpzH6QmFkcaMrZoBEAJM9fsUAFgD oDRXq8wkfO0WQ0Bw1W0qlYj5Iqw63zjb7MUveykFlGwrGTfVBd1T6hXzHydSRElLs3IgQK7b rRPpirGC8bvurUtGae0VCo89yyO06ni10OtUgXmr9In/wMSIwOHFTvujRPJ00XJDsE60Veyn LapnQWAidFLLUdKy2VzDXyuQcRSzZp2G2p2fVaOIYta3TR7SJ7RdsoRxm701DJmlPfPWPbBp M8hbhMh0gGmdtUuWFmsQstkNS7KOLun2nOGJZSClg8R+aZMqB9gE0MWFYU9fsgRQd/P/laYq CCDE7qGYtFUxsdKqum5LngULFvaMlSpTntZaRx4o3DRO1Gs1H+w1vcMGBB470Lu61JSWqqm5 60jN3SpsH7MOoU8DuC4CZYXvNBA8jme+aCExyp9oHVqBMc3FPkpCPsLWcN1EI6qL0tZYNUz3 HWG6ZyKNeNK/eBpbbSPJiIMKo9MOiFNN/wfEds4xlOienBwFEdXlaO2nUlPgJgYmdf7VcJSn E+E6kKmK/tvPaNO8Ptc9uXXUzK4h2boAMeNZErYQTCUTUXrOs57SYi0eImqTmmLWPuFoZXDl DRQTbMtSlhyD2BS4rsoVMNWnYMZ8gMqzsXxV/q+qgt3ZmPP6bOxaPR6MTDh8LoY3orioVKJM Pd16/AsvAdk9ZW5kc3RyZWFtCmVuZG9iagoyODYgMCBvYmoKOTAxCmVuZG9iagoyODQgMCBv YmogPDwKL1R5cGUgL1BhZ2UKL0NvbnRlbnRzIDI4NSAwIFIKL1Jlc291cmNlcyAyODMgMCBS Ci9NZWRpYUJveCBbMCAwIDYxMS45OTggNzkxLjk5N10KL1BhcmVudCAyNzYgMCBSCj4+IGVu ZG9iagoyODIgMCBvYmogPDwKL0QgWzI4NCAwIFIgL1hZWiA3MiA3NDQuOTA0IG51bGxdCj4+ IGVuZG9iagoyODMgMCBvYmogPDwKL0ZvbnQgPDwgL0YzNyA1NSAwIFIgL0YzMyA3IDAgUiAv RjMyIDEzIDAgUiAvRjQ1IDUgMCBSIC9GMzggNSAwIFIgPj4KL1Byb2NTZXQgWyAvUERGIC9U ZXh0IF0KPj4gZW5kb2JqCjI4NyAwIG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAwMSkgPj4K ZW5kb2JqCjI4OSAwIG9iagooMSBQeXRob24gb24gdGhlIE1hYykKZW5kb2JqCjI5MCAwIG9i ago8PCAvUyAvR29UbyAvRCAocGFnZTAwMSkgPj4KZW5kb2JqCjI5MiAwIG9iagooMS4xIElu c3RhbGxhdGlvbikKZW5kb2JqCjI5MyAwIG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAwMSkg Pj4KZW5kb2JqCjI5NSAwIG9iagooMS4yIEhvdyB0byBydW4gYSBQeXRob24gc2NyaXB0KQpl bmRvYmoKMjk2IDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdlMDAxKSA+PgplbmRvYmoKMjk4 IDAgb2JqCigxLjIuMSBEcmFnIGFuZCBkcm9wKQplbmRvYmoKMjk5IDAgb2JqCjw8IC9TIC9H b1RvIC9EIChwYWdlMDAyKSA+PgplbmRvYmoKMzAxIDAgb2JqCigxLjIuMiBTZXQgQ3JlYXRv ciBhbmQgRG91YmxlIENsaWNrKQplbmRvYmoKMzAyIDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChw YWdlMDAyKSA+PgplbmRvYmoKMzA0IDAgb2JqCigxLjMgSG93IHRvIGNyZWF0ZSBhIFB5dGhv biBzY3JpcHQpCmVuZG9iagozMDUgMCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMDIpID4+ CmVuZG9iagozMDcgMCBvYmoKKDEuMy4xIEluIGFuIGVkaXRvcikKZW5kb2JqCjMwOCAwIG9i ago8PCAvUyAvR29UbyAvRCAocGFnZTAwMikgPj4KZW5kb2JqCjMxMCAwIG9iagooRWRpdG9y cyB3aXRoIFB5dGhvbiBtb2RlcykKZW5kb2JqCjMxMSAwIG9iago8PCAvUyAvR29UbyAvRCAo cGFnZTAwMikgPj4KZW5kb2JqCjMxMyAwIG9iagooQWxwaGEpCmVuZG9iagozMTQgMCBvYmoK PDwgL1MgL0dvVG8gL0QgKHBhZ2UwMDIpID4+CmVuZG9iagozMTYgMCBvYmoKKEJCZWRpdCkK ZW5kb2JqCjMxNyAwIG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAwMikgPj4KZW5kb2JqCjMx OSAwIG9iagooUGVwcGVyKQplbmRvYmoKMzIwIDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdl MDAyKSA+PgplbmRvYmoKMzIyIDAgb2JqCigxLjQgVGhlIElERSkKZW5kb2JqCjMyMyAwIG9i ago8PCAvUyAvR29UbyAvRCAocGFnZTAwMikgPj4KZW5kb2JqCjMyNSAwIG9iagooMS40LjEg VXNpbmcgdGhlIGBgUHl0aG9uIEludGVyYWN0aXZlJycgd2luZG93KQplbmRvYmoKMzI2IDAg b2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdlMDAzKSA+PgplbmRvYmoKMzI4IDAgb2JqCigxLjQu MiBXcml0aW5nIGEgUHl0aG9uIFNjcmlwdCkKZW5kb2JqCjMyOSAwIG9iago8PCAvUyAvR29U byAvRCAocGFnZTAwMykgPj4KZW5kb2JqCjMzMSAwIG9iagooMS40LjMgRXhlY3V0aW5nIGEg c2NyaXB0IGZyb20gd2l0aGluIHRoZSBJREUpCmVuZG9iagozMzIgMCBvYmoKPDwgL1MgL0dv VG8gL0QgKHBhZ2UwMDMpID4+CmVuZG9iagozMzQgMCBvYmoKKDEuNC40IE1vZHVsZSBCcm93 c2VyKQplbmRvYmoKMzM1IDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdlMDAzKSA+PgplbmRv YmoKMzM3IDAgb2JqCigxLjQuNSBgYFNhdmUgYXMnJyB2ZXJzdXMgYGBTYXZlIGFzIEFwcGxl dCcnKQplbmRvYmoKMzM4IDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdlMDAzKSA+PgplbmRv YmoKMzQwIDAgb2JqCigxLjQuNiBQcm9maWxlcikKZW5kb2JqCjM0MSAwIG9iago8PCAvUyAv R29UbyAvRCAocGFnZTAwMykgPj4KZW5kb2JqCjM0MyAwIG9iagooMS40LjcgRGVidWdnZXIp CmVuZG9iagozNDQgMCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMDMpID4+CmVuZG9iagoz NDYgMCBvYmoKKDEuNC44IFRoZSAiU2NyaXB0cyIgbWVudSkKZW5kb2JqCjM0NyAwIG9iago8 PCAvUyAvR29UbyAvRCAocGFnZTAwMykgPj4KZW5kb2JqCjM0OSAwIG9iagooMS41IENvbmZp Z3VyaW5nKQplbmRvYmoKMzUwIDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdlMDAzKSA+Pgpl bmRvYmoKMzUyIDAgb2JqCigxLjUuMSBFZGl0UHl0aG9uUHJlZnMpCmVuZG9iagozNTMgMCBv YmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMDMpID4+CmVuZG9iagozNTUgMCBvYmoKKDEuNS4y IEFkZGluZyBtb2R1bGVzKQplbmRvYmoKMzU2IDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdl MDAzKSA+PgplbmRvYmoKMzU4IDAgb2JqCigxLjYgTmlmdHkgVG9vbHMpCmVuZG9iagozNTkg MCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMDMpID4+CmVuZG9iagozNjEgMCBvYmoKKDEu Ni4xIEJ1aWxkQXBwbGV0KQplbmRvYmoKMzYyIDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdl MDAzKSA+PgplbmRvYmoKMzY0IDAgb2JqCihTaW11bGF0aW5nIGNvbW1hbmQgbGluZSBhcmd1 bWVudHMgKHN5cy5hcmd2KSApCmVuZG9iagozNjUgMCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBh Z2UwMDMpID4+CmVuZG9iagozNjcgMCBvYmoKKDEuNi4yIEJ1aWxkQXBwbGljYXRpb24pCmVu ZG9iagozNjggMCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMDMpID4+CmVuZG9iagozNzAg MCBvYmoKKDEuNyBUS0ludGVyIG9uIHRoZSBNYWMpCmVuZG9iagozNzEgMCBvYmoKPDwgL1Mg L0dvVG8gL0QgKHBhZ2UwMDMpID4+CmVuZG9iagozNzMgMCBvYmoKKDEuOCBDR0kgb24gdGhl IE1hYyB3aXRoIFB5dGhvbikKZW5kb2JqCjM3NCAwIG9iago8PCAvUyAvR29UbyAvRCAocGFn ZTAwNSkgPj4KZW5kb2JqCjM3NiAwIG9iagooMiBNYWNQeXRob24gTW9kdWxlcykKZW5kb2Jq CjM3NyAwIG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAwNSkgPj4KZW5kb2JqCjM3OSAwIG9i agooMi4xIGN0YiAtLS0gSW50ZXJmYWNlIHRvIHRoZSBDb21tdW5pY2F0aW9ucyBUb29sIEJv eCkKZW5kb2JqCjM4MCAwIG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAwNikgPj4KZW5kb2Jq CjM4MiAwIG9iagooMi4xLjEgQ29ubmVjdGlvbiBPYmplY3RzICkKZW5kb2JqCjM4MyAwIG9i ago8PCAvUyAvR29UbyAvRCAocGFnZTAwNykgPj4KZW5kb2JqCjM4NSAwIG9iagooMi4yIG1h Y2ZzIC0tLSBWYXJpb3VzIGZpbGUgc3lzdGVtIHNlcnZpY2VzKQplbmRvYmoKMzg2IDAgb2Jq Cjw8IC9TIC9Hb1RvIC9EIChwYWdlMDA4KSA+PgplbmRvYmoKMzg4IDAgb2JqCigyLjIuMSBG U1NwZWMgb2JqZWN0cyApCmVuZG9iagozODkgMCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2Uw MDgpID4+CmVuZG9iagozOTEgMCBvYmoKKDIuMi4yIEFsaWFzIE9iamVjdHMgKQplbmRvYmoK MzkyIDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdlMDA5KSA+PgplbmRvYmoKMzk0IDAgb2Jq CigyLjIuMyBGSW5mbyBPYmplY3RzICkKZW5kb2JqCjM5NSAwIG9iago8PCAvUyAvR29UbyAv RCAocGFnZTAwOSkgPj4KZW5kb2JqCjM5NyAwIG9iagooMi4zIGljIC0tLSBBY2Nlc3MgdG8g SW50ZXJuZXQgQ29uZmlnKQplbmRvYmoKMzk4IDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdl MDEwKSA+PgplbmRvYmoKNDAwIDAgb2JqCigyLjMuMSBJQyBPYmplY3RzKQplbmRvYmoKNDAx IDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdlMDEwKSA+PgplbmRvYmoKNDAzIDAgb2JqCigy LjQgTWFjT1MgLS0tIEFjY2VzcyB0byBNYWNPUyBpbnRlcnByZXRlciBmZWF0dXJlcykKZW5k b2JqCjQwNCAwIG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAxMikgPj4KZW5kb2JqCjQwNiAw IG9iagooMi41IG1hY29zdG9vbHMgLS0tIENvbnZlbmllbmNlIHJvdXRpbmVzIGZvciBmaWxl IG1hbmlwdWxhdGlvbikKZW5kb2JqCjQwNyAwIG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAx MikgPj4KZW5kb2JqCjQwOSAwIG9iagooMi42IGZpbmRlcnRvb2xzIC0tLSBUaGUgZmluZGVy J3MgQXBwbGUgRXZlbnRzIGludGVyZmFjZSkKZW5kb2JqCjQxMCAwIG9iago8PCAvUyAvR29U byAvRCAocGFnZTAxMykgPj4KZW5kb2JqCjQxMiAwIG9iagooMi43IG1hY3NwZWVjaCAtLS0g SW50ZXJmYWNlIHRvIHRoZSBNYWNpbnRvc2ggU3BlZWNoIE1hbmFnZXIpCmVuZG9iago0MTMg MCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMTMpID4+CmVuZG9iago0MTUgMCBvYmoKKDIu Ny4xIFZvaWNlIE9iamVjdHMpCmVuZG9iago0MTYgMCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBh Z2UwMTMpID4+CmVuZG9iago0MTggMCBvYmoKKDIuNy4yIFNwZWVjaCBDaGFubmVsIE9iamVj dHMpCmVuZG9iago0MTkgMCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMTQpID4+CmVuZG9i ago0MjEgMCBvYmoKKDIuOCBFYXN5RGlhbG9ncyAtLS0gQmFzaWMgTWFjaW50b3NoIGRpYWxv Z3MpCmVuZG9iago0MjIgMCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMTQpID4+CmVuZG9i ago0MjQgMCBvYmoKKDIuOSBGcmFtZVdvcmsgLS0tIEludGVyYWN0aXZlIGFwcGxpY2F0aW9u IGZyYW1ld29yaykKZW5kb2JqCjQyNSAwIG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAxNSkg Pj4KZW5kb2JqCjQyNyAwIG9iagooMi45LjEgQXBwbGljYXRpb24gT2JqZWN0cyApCmVuZG9i ago0MjggMCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMTYpID4+CmVuZG9iago0MzAgMCBv YmoKKDIuOS4yIFdpbmRvdyBPYmplY3RzICkKZW5kb2JqCjQzMSAwIG9iago8PCAvUyAvR29U byAvRCAocGFnZTAxNykgPj4KZW5kb2JqCjQzMyAwIG9iagooMi45LjMgQ29udHJvbHNXaW5k b3cgT2JqZWN0ICkKZW5kb2JqCjQzNCAwIG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAxNykg Pj4KZW5kb2JqCjQzNiAwIG9iagooMi45LjQgU2Nyb2xsZWRXaW5kb3cgT2JqZWN0ICkKZW5k b2JqCjQzNyAwIG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAxOCkgPj4KZW5kb2JqCjQzOSAw IG9iagooMi45LjUgRGlhbG9nV2luZG93IE9iamVjdHMgKQplbmRvYmoKNDQwIDAgb2JqCjw8 IC9TIC9Hb1RvIC9EIChwYWdlMDE4KSA+PgplbmRvYmoKNDQyIDAgb2JqCigyLjEwIE1pbmlB RUZyYW1lIC0tLSBPcGVuIFNjcmlwdGluZyBBcmNoaXRlY3R1cmUgc2VydmVyIHN1cHBvcnQp CmVuZG9iago0NDMgMCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMTgpID4+CmVuZG9iago0 NDUgMCBvYmoKKDIuMTAuMSBBRVNlcnZlciBPYmplY3RzICkKZW5kb2JqCjQ0NiAwIG9iago8 PCAvUyAvR29UbyAvRCAocGFnZTAxOSkgPj4KZW5kb2JqCjQ0OCAwIG9iagooMyBVbmRvY3Vt ZW50ZWQgTW9kdWxlcykKZW5kb2JqCjQ0OSAwIG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAx OSkgPj4KZW5kb2JqCjQ1MSAwIG9iagooMy4xIEludHJvZHVjdGlvbikKZW5kb2JqCjQ1MiAw IG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAxOSkgPj4KZW5kb2JqCjQ1NCAwIG9iagooMy4y IE1hY09TIHRvb2xib3ggbW9kdWxlcykKZW5kb2JqCjQ1NSAwIG9iago8PCAvUyAvR29UbyAv RCAocGFnZTAxOSkgPj4KZW5kb2JqCjQ1NyAwIG9iagooMy4yLjEgQXJndW1lbnQgSGFuZGxp bmcgZm9yIFRvb2xib3ggTW9kdWxlcykKZW5kb2JqCjQ1OCAwIG9iago8PCAvUyAvR29UbyAv RCAocGFnZTAxOSkgPj4KZW5kb2JqCjQ2MCAwIG9iagooMy4yLjIgQUUgLS0tIEFwcGxlIEV2 ZW50cykKZW5kb2JqCjQ2MSAwIG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAxOSkgPj4KZW5k b2JqCjQ2MyAwIG9iagooMy4yLjMgQ20gLS0tIENvbXBvbmVudCBNYW5hZ2VyKQplbmRvYmoK NDY0IDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdlMDE5KSA+PgplbmRvYmoKNDY2IDAgb2Jq CigzLjIuNCBDdGwgLS0tIENvbnRyb2wgTWFuYWdlcikKZW5kb2JqCjQ2NyAwIG9iago8PCAv UyAvR29UbyAvRCAocGFnZTAxOSkgPj4KZW5kb2JqCjQ2OSAwIG9iagooMy4yLjUgRGxnIC0t LSBEaWFsb2cgTWFuYWdlcikKZW5kb2JqCjQ3MCAwIG9iago8PCAvUyAvR29UbyAvRCAocGFn ZTAxOSkgPj4KZW5kb2JqCjQ3MiAwIG9iagooMy4yLjYgRXZ0IC0tLSBFdmVudCBNYW5hZ2Vy KQplbmRvYmoKNDczIDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdlMDE5KSA+PgplbmRvYmoK NDc1IDAgb2JqCigzLjIuNyBGbSAtLS0gRm9udCBNYW5hZ2VyKQplbmRvYmoKNDc2IDAgb2Jq Cjw8IC9TIC9Hb1RvIC9EIChwYWdlMDE5KSA+PgplbmRvYmoKNDc4IDAgb2JqCigzLjIuOCBM aXN0IC0tLSBMaXN0IE1hbmFnZXIpCmVuZG9iago0NzkgMCBvYmoKPDwgL1MgL0dvVG8gL0Qg KHBhZ2UwMTkpID4+CmVuZG9iago0ODEgMCBvYmoKKDMuMi45IE1lbnUgLS0tIE1lbnUgTWFu YWdlcikKZW5kb2JqCjQ4MiAwIG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAxOSkgPj4KZW5k b2JqCjQ4NCAwIG9iagooMy4yLjEwIFFkIC0tLSBRdWlja0RyYXcpCmVuZG9iago0ODUgMCBv YmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMjApID4+CmVuZG9iago0ODcgMCBvYmoKKDMuMi4x MSBRdCAtLS0gUXVpY2tUaW1lKQplbmRvYmoKNDg4IDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChw YWdlMDIwKSA+PgplbmRvYmoKNDkwIDAgb2JqCigzLjIuMTIgUmVzIC0tLSBSZXNvdXJjZSBN YW5hZ2VyIGFuZCBIYW5kbGVzKQplbmRvYmoKNDkxIDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChw YWdlMDIwKSA+PgplbmRvYmoKNDkzIDAgb2JqCigzLjIuMTMgU2NyYXAgLS0tIFNjcmFwIE1h bmFnZXIpCmVuZG9iago0OTQgMCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMjApID4+CmVu ZG9iago0OTYgMCBvYmoKKDMuMi4xNCBTbmQgLS0tIFNvdW5kIE1hbmFnZXIpCmVuZG9iago0 OTcgMCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMjApID4+CmVuZG9iago0OTkgMCBvYmoK KDMuMi4xNSBURSAtLS0gVGV4dEVkaXQpCmVuZG9iago1MDAgMCBvYmoKPDwgL1MgL0dvVG8g L0QgKHBhZ2UwMjApID4+CmVuZG9iago1MDIgMCBvYmoKKDMuMi4xNiB3YXN0ZSAtLS0gbm9u LUFwcGxlIFRleHRFZGl0IHJlcGxhY2VtZW50KQplbmRvYmoKNTAzIDAgb2JqCjw8IC9TIC9H b1RvIC9EIChwYWdlMDIwKSA+PgplbmRvYmoKNTA1IDAgb2JqCigzLjIuMTcgV2luIC0tLSBX aW5kb3cgTWFuYWdlcikKZW5kb2JqCjUwNiAwIG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAy MCkgPj4KZW5kb2JqCjUwOCAwIG9iagooMy4zIGJ1aWxkdG9vbHMgLS0tIEhlbHBlciBtb2R1 bGUgZm9yIEJ1aWxkQXBwbGV0IGFuZCBGcmllbmRzKQplbmRvYmoKNTA5IDAgb2JqCjw8IC9T IC9Hb1RvIC9EIChwYWdlMDIwKSA+PgplbmRvYmoKNTExIDAgb2JqCigzLjQgcHlccHJvdGVj dCBcdW5oYm94IFx2b2lkYkB4IFxrZXJuIC4wNmVtXHZib3gge1xocnVsZSB3aWR0aC41NWVt fXJlc291cmNlIC0tLSApCmVuZG9iago1MTIgMCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2Uw MjApID4+CmVuZG9iago1MTQgMCBvYmoKKDMuNSBjZm1maWxlIC0tLSBDb2RlIEZyYWdtZW50 IFJlc291cmNlIG1vZHVsZSApCmVuZG9iago1MTUgMCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBh Z2UwMjApID4+CmVuZG9iago1MTcgMCBvYmoKKDMuNiBtYWNlcnJvcnMgLS0tIE1hY09TIEVy cm9ycykKZW5kb2JqCjUxOCAwIG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAyMCkgPj4KZW5k b2JqCjUyMCAwIG9iagooMy43IG1hY2ZzbiAtLS0gTmF2U2VydmljZXMgY2FsbHMpCmVuZG9i ago1MjEgMCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMjApID4+CmVuZG9iago1MjMgMCBv YmoKKDMuOCBpY29wZW4gLS0tIEludGVybmV0IENvbmZpZyByZXBsYWNlbWVudCBmb3Igb3Bl bigpKQplbmRvYmoKNTI0IDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdlMDIxKSA+PgplbmRv YmoKNTI2IDAgb2JqCigzLjkgbWFjdHR5IC0tLSApCmVuZG9iago1MjcgMCBvYmoKPDwgL1Mg L0dvVG8gL0QgKHBhZ2UwMjEpID4+CmVuZG9iago1MjkgMCBvYmoKKDMuMTAgbnNyZW1vdGUg LS0tIFdyYXBwZXIgYXJvdW5kIE5ldHNjYXBlIE9TQSBtb2R1bGVzKQplbmRvYmoKNTMwIDAg b2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdlMDIxKSA+PgplbmRvYmoKNTMyIDAgb2JqCigzLjEx IFBpeE1hcFdyYXBwZXIgLS0tIFdyYXBwZXIgZm9yIFBpeE1hcCBvYmplY3RzKQplbmRvYmoK NTMzIDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdlMDIxKSA+PgplbmRvYmoKNTM1IDAgb2Jq CigzLjEyIHByZWZlcmVuY2VzIC0tLSApCmVuZG9iago1MzYgMCBvYmoKPDwgL1MgL0dvVG8g L0QgKHBhZ2UwMjEpID4+CmVuZG9iago1MzggMCBvYmoKKDMuMTMgcHl0aG9ucHJlZnMgLS0t ICkKZW5kb2JqCjUzOSAwIG9iago8PCAvUyAvR29UbyAvRCAocGFnZTAyMSkgPj4KZW5kb2Jq CjU0MSAwIG9iagooMy4xNCBxdWlldGNvbnNvbGUgLS0tIG5vbi12aXNpYmxlIHN0ZG91dCBv dXRwdXQpCmVuZG9iago1NDIgMCBvYmoKPDwgL1MgL0dvVG8gL0QgKHBhZ2UwMjEpID4+CmVu ZG9iago1NDQgMCBvYmoKKDMuMTUgVyAtLS0gV2lkZ2V0cyBmb3IgdGhlIE1hYywgQnVpbHQg b24gdG9wIG9mIEZyYW1lV29yaykKZW5kb2JqCjU0NSAwIG9iago8PCAvUyAvR29UbyAvRCAo cGFnZTAyMykgPj4KZW5kb2JqCjU0NyAwIG9iagooTW9kdWxlIEluZGV4KQplbmRvYmoKNTQ4 IDAgb2JqCjw8IC9TIC9Hb1RvIC9EIChwYWdlMDI1KSA+PgplbmRvYmoKNTUwIDAgb2JqCihJ bmRleCkKZW5kb2JqCjU1MSAwIG9iaiA8PAovVHlwZSAvRW5jb2RpbmcKL0RpZmZlcmVuY2Vz IFsgMC8ubm90ZGVmIDEvZG90YWNjZW50L2ZpL2ZsL2ZyYWN0aW9uL2h1bmdhcnVtbGF1dC9M c2xhc2gvbHNsYXNoL29nb25lay9yaW5nIDEwLy5ub3RkZWYgMTEvYnJldmUvbWludXMgMTMv Lm5vdGRlZiAxNC9aY2Fyb24vemNhcm9uL2Nhcm9uL2RvdGxlc3NpL2RvdGxlc3NqL2ZmL2Zm aS9mZmwgMjIvLm5vdGRlZiAzMC9ncmF2ZS9xdW90ZXNpbmdsZS9zcGFjZS9leGNsYW0vcXVv dGVkYmwvbnVtYmVyc2lnbi9kb2xsYXIvcGVyY2VudC9hbXBlcnNhbmQvcXVvdGVyaWdodC9w YXJlbmxlZnQvcGFyZW5yaWdodC9hc3Rlcmlzay9wbHVzL2NvbW1hL2h5cGhlbi9wZXJpb2Qv c2xhc2gvemVyby9vbmUvdHdvL3RocmVlL2ZvdXIvZml2ZS9zaXgvc2V2ZW4vZWlnaHQvbmlu ZS9jb2xvbi9zZW1pY29sb24vbGVzcy9lcXVhbC9ncmVhdGVyL3F1ZXN0aW9uL2F0L0EvQi9D L0QvRS9GL0cvSC9JL0ovSy9ML00vTi9PL1AvUS9SL1MvVC9VL1YvVy9YL1kvWi9icmFja2V0 bGVmdC9iYWNrc2xhc2gvYnJhY2tldHJpZ2h0L2FzY2lpY2lyY3VtL3VuZGVyc2NvcmUvcXVv dGVsZWZ0L2EvYi9jL2QvZS9mL2cvaC9pL2ovay9sL20vbi9vL3AvcS9yL3MvdC91L3Yvdy94 L3kvei9icmFjZWxlZnQvYmFyL2JyYWNlcmlnaHQvYXNjaWl0aWxkZSAxMjcvLm5vdGRlZiAx MzAvcXVvdGVzaW5nbGJhc2UvZmxvcmluL3F1b3RlZGJsYmFzZS9lbGxpcHNpcy9kYWdnZXIv ZGFnZ2VyZGJsL2NpcmN1bWZsZXgvcGVydGhvdXNhbmQvU2Nhcm9uL2d1aWxzaW5nbGxlZnQv T0UgMTQxLy5ub3RkZWYgMTQ3L3F1b3RlZGJsbGVmdC9xdW90ZWRibHJpZ2h0L2J1bGxldC9l bmRhc2gvZW1kYXNoL3RpbGRlL3RyYWRlbWFyay9zY2Fyb24vZ3VpbHNpbmdscmlnaHQvb2Ug MTU3Ly5ub3RkZWYgMTU5L1lkaWVyZXNpcyAxNjAvLm5vdGRlZiAxNjEvZXhjbGFtZG93bi9j ZW50L3N0ZXJsaW5nL2N1cnJlbmN5L3llbi9icm9rZW5iYXIvc2VjdGlvbi9kaWVyZXNpcy9j b3B5cmlnaHQvb3JkZmVtaW5pbmUvZ3VpbGxlbW90bGVmdC9sb2dpY2Fsbm90L2h5cGhlbi9y ZWdpc3RlcmVkL21hY3Jvbi9kZWdyZWUvcGx1c21pbnVzL3R3b3N1cGVyaW9yL3RocmVlc3Vw ZXJpb3IvYWN1dGUvbXUvcGFyYWdyYXBoL3BlcmlvZGNlbnRlcmVkL2NlZGlsbGEvb25lc3Vw ZXJpb3Ivb3JkbWFzY3VsaW5lL2d1aWxsZW1vdHJpZ2h0L29uZXF1YXJ0ZXIvb25laGFsZi90 aHJlZXF1YXJ0ZXJzL3F1ZXN0aW9uZG93bi9BZ3JhdmUvQWFjdXRlL0FjaXJjdW1mbGV4L0F0 aWxkZS9BZGllcmVzaXMvQXJpbmcvQUUvQ2NlZGlsbGEvRWdyYXZlL0VhY3V0ZS9FY2lyY3Vt ZmxleC9FZGllcmVzaXMvSWdyYXZlL0lhY3V0ZS9JY2lyY3VtZmxleC9JZGllcmVzaXMvRXRo L050aWxkZS9PZ3JhdmUvT2FjdXRlL09jaXJjdW1mbGV4L090aWxkZS9PZGllcmVzaXMvbXVs dGlwbHkvT3NsYXNoL1VncmF2ZS9VYWN1dGUvVWNpcmN1bWZsZXgvVWRpZXJlc2lzL1lhY3V0 ZS9UaG9ybi9nZXJtYW5kYmxzL2FncmF2ZS9hYWN1dGUvYWNpcmN1bWZsZXgvYXRpbGRlL2Fk aWVyZXNpcy9hcmluZy9hZS9jY2VkaWxsYS9lZ3JhdmUvZWFjdXRlL2VjaXJjdW1mbGV4L2Vk aWVyZXNpcy9pZ3JhdmUvaWFjdXRlL2ljaXJjdW1mbGV4L2lkaWVyZXNpcy9ldGgvbnRpbGRl L29ncmF2ZS9vYWN1dGUvb2NpcmN1bWZsZXgvb3RpbGRlL29kaWVyZXNpcy9kaXZpZGUvb3Ns YXNoL3VncmF2ZS91YWN1dGUvdWNpcmN1bWZsZXgvdWRpZXJlc2lzL3lhY3V0ZS90aG9ybi95 ZGllcmVzaXNdCj4+IGVuZG9iagoxMzAgMCBvYmogPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUg L1R5cGUxCi9FbmNvZGluZyA1NTEgMCBSCi9CYXNlRm9udCAvQ291cmllci1Cb2xkCj4+IGVu ZG9iago5NCAwIG9iaiA8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL0VuY29kaW5n IDU1MSAwIFIKL0Jhc2VGb250IC9IZWx2ZXRpY2EtQm9sZAo+PiBlbmRvYmoKNTUgMCBvYmog PDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9FbmNvZGluZyA1NTEgMCBSCi9CYXNl Rm9udCAvQ291cmllcgo+PiBlbmRvYmoKMjAgMCBvYmogPDwKL1R5cGUgL0ZvbnQKL1N1YnR5 cGUgL1R5cGUxCi9FbmNvZGluZyA1NTEgMCBSCi9CYXNlRm9udCAvVGltZXMtSXRhbGljCj4+ IGVuZG9iagoxNSAwIG9iaiA8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL0ZpcnN0 Q2hhciAwCi9MYXN0Q2hhciAxMjcKL1dpZHRocyA1NTIgMCBSCi9CYXNlRm9udCA1NTggMCBS Ci9Gb250RGVzY3JpcHRvciA1NTkgMCBSCj4+IGVuZG9iago1NTIgMCBvYmoKWyA3NzggMjc4 IDc3OCA1MDAgNzc4IDUwMCA3NzggNzc4IDc3OCA3NzggNzc4IDc3OCA3NzggMTAwMCA1MDAg NTAwIDc3OCA3NzggNzc4IDc3OCA3NzggNzc4IDc3OCA3NzggNzc4IDc3OCA3NzggNzc4IDEw MDAgMTAwMCA3NzggNzc4IDEwMDAgMTAwMCA1MDAgNTAwIDEwMDAgMTAwMCAxMDAwIDc3OCAx MDAwIDEwMDAgNjExIDYxMSAxMDAwIDEwMDAgMTAwMCA3NzggMjc1IDEwMDAgNjY3IDY2NyA4 ODkgODg5IDAgMCA1NTYgNTU2IDY2NyA1MDAgNzIyIDcyMiA3NzggNzc4IDYxMSA3OTggNjU3 IDUyNyA3NzEgNTI4IDcxOSA1OTUgODQ0IDU0NCA2NzggNzYyIDY5MCAxMjAxIDgyMCA3OTYg Njk2IDgxNyA4NDcgNjA2IDU0NSA2MjYgNjEzIDk4OCA3MTMgNjY4IDcyNSA2NjcgNjY3IDY2 NyA2NjcgNjY3IDYxMSA2MTEgNDQ0IDQ0NCA0NDQgNDQ0IDUwMCA1MDAgMzg5IDM4OSAyNzgg NTAwIDUwMCA2MTEgNTAwIDI3OCA4MzMgNzUwIDgzMyA0MTcgNjY3IDY2NyA3NzggNzc4IDQ0 NCA0NDQgNDQ0IDYxMSA3NzggNzc4IDc3OCA3NzggXQplbmRvYmoKNTUzIDAgb2JqIDw8Ci9M ZW5ndGggNTU0IDAgUgovTGVuZ3RoMSA1NTUgMCBSCi9MZW5ndGgyIDU1NiAwIFIKL0xlbmd0 aDMgNTU3IDAgUgo+PgpzdHJlYW0KJSFQUy1BZG9iZUZvbnQtMS4xOiBDTVNZMTAgMS4wCiUl Q3JlYXRpb25EYXRlOiAxOTkxIEF1ZyAxNSAwNzoyMDo1NwolIENvcHlyaWdodCAoQykgMTk5 NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K MTEgZGljdCBiZWdpbgovRm9udEluZm8gNyBkaWN0IGR1cCBiZWdpbgovdmVyc2lvbiAoMS4w KSByZWFkb25seSBkZWYKL05vdGljZSAoQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1h dGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkKSByZWFkb25seSBkZWYK L0Z1bGxOYW1lIChDTVNZMTApIHJlYWRvbmx5IGRlZgovRmFtaWx5TmFtZSAoQ29tcHV0ZXIg TW9kZXJuKSByZWFkb25seSBkZWYKL1dlaWdodCAoTWVkaXVtKSByZWFkb25seSBkZWYKL0l0 YWxpY0FuZ2xlIC0xNC4wMzUgZGVmCi9pc0ZpeGVkUGl0Y2ggZmFsc2UgZGVmCmVuZCByZWFk b25seSBkZWYKL0ZvbnROYW1lIC9RQkFBQUErQ01TWTEwIGRlZgovUGFpbnRUeXBlIDAgZGVm Ci9Gb250VHlwZSAxIGRlZgovRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVh ZG9ubHkgZGVmCi9FbmNvZGluZyAyNTYgYXJyYXkKMCAxIDI1NSB7MSBpbmRleCBleGNoIC8u bm90ZGVmIHB1dH0gZm9yCmR1cCAxMyAvY2lyY2xlY29weXJ0IHB1dApkdXAgMTUgL2J1bGxl dCBwdXQKcmVhZG9ubHkgZGVmCi9Gb250QkJveHstMjkgLTk2MCAxMTE2IDc3NX1yZWFkb25s eSBkZWYKL1VuaXF1ZUlEIDUwMDA4MjAgZGVmCmN1cnJlbnRkaWN0IGVuZApjdXJyZW50Zmls ZSBlZXhlYwrZ1m9jO4Rql7aGqX5Fo9CqBS8J+cit6dkHwFi4fptpZH1TNZ5RIWd0pOqh4rWO wxdr0RhKYzuVE3K0GY1OjF70ohOstYqgpliQgDW/LthTF3mDipYN/isn6knDcVaYnIXiGzq/ cuOaiSMs2fQjf8gMnmToQlqjvvfe1gsSKlKSKiIaN9moB90BFhd53efTH/K4f5fHPWPuzdpM SVAXc0aKJ9FmPgti9GH25ApdZnbR0StR5kHB1Ojidxhk/BBPjL9beOwdiCKHJfHEU6Z49Yp+ G3vXynAHF9KI642h9XxPCQq/HULF3dDDhMfiL4+AR74dTBzI4zNo+xrIK06WFGcw3jMCsua4 Gctq5FWxrzGH/+gHGqV++KZha5y3lB1E7Hpxp7s991UXjX0uS7aYWe+ku8ML1rsVMRM/1NlD j/mfCU7MBooyTXW19pa4aI7rLxfl7TTM1tBHpOOAbQAREiZ2GKiIlfwPLp7wZK8By8QpEyVc ienQvhog88Aur3WaCOH/CYEUSuKro1VO9hMICaHuZmy24QlpmYXl3dmze+tuNzK+IkkhQcSo f3yEdr8V4SeUEc+/LTB+kxTu570gTSAwQudZE0D/FCceKf3Fo8O/aSoKETBcSuM/Qvuy+ukE edNU6dODJ2rgOvVbKj40pH60hNybEF4HwhVDkLQx9sW8kwq8LOgCcxkfGlWKKlTJsxiKOjg2 /dBET4eIIM8247GShYVFYAoURWeGPiF9l9DiPdFhCdHx8wF8JQyhDOCb/24eaqYQ4TywU2Cx Py4hKDpV+eFKtz5qh+Fn7Bu27O1BEQpN+ADaanWaCONhhCrc4y0DTwphfgTiG5zVOC9WtEQJ 4ZplnbMmg8uth4oSgnfZM5xf6r9rJhhgTadosRkZmDrh6bOfwcvOeSxwAgcspUDSyjJRYuWz UHNVTJcba2GoVKPP0G1VnlO7BwLuXzzCc28KlusotbynMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAowMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw CjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAKMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAowMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCjAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MAowMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwCmNsZWFydG9tYXJrCmVuZHN0cmVhbQplbmRvYmoKNTU0IDAgb2JqCjIw NTYKZW5kb2JqCjU1NSAwIG9iago3OTcKZW5kb2JqCjU1NiAwIG9iago3MjcKZW5kb2JqCjU1 NyAwIG9iago1MzIKZW5kb2JqCjU1OCAwIG9iagovUUJBQUFBK0NNU1kxMAplbmRvYmoKNTU5 IDAgb2JqIDw8Ci9Bc2NlbnQgNzUwCi9DYXBIZWlnaHQgNjgzCi9EZXNjZW50IDAKL0ZvbnRO YW1lIDU1OCAwIFIKL0l0YWxpY0FuZ2xlIC0xNAovU3RlbVYgODUKL1hIZWlnaHQgNDMxCi9G b250QkJveCBbIC0yOSAtOTYwIDExMTYgNzc1IF0KL0ZsYWdzIDQKL0NoYXJTZXQgKC9jaXJj bGVjb3B5cnQvYnVsbGV0KQovRm9udEZpbGUgNTUzIDAgUgo+PiBlbmRvYmoKMTMgMCBvYmog PDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9FbmNvZGluZyA1NTEgMCBSCi9CYXNl Rm9udCAvVGltZXMtQm9sZAo+PiBlbmRvYmoKNyAwIG9iaiA8PAovVHlwZSAvRm9udAovU3Vi dHlwZSAvVHlwZTEKL0VuY29kaW5nIDU1MSAwIFIKL0Jhc2VGb250IC9UaW1lcy1Sb21hbgo+ PiBlbmRvYmoKNiAwIG9iaiA8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL0VuY29k aW5nIDU1MSAwIFIKL0Jhc2VGb250IC9IZWx2ZXRpY2EtT2JsaXF1ZQo+PiBlbmRvYmoKNSAw IG9iaiA8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL0VuY29kaW5nIDU1MSAwIFIK L0Jhc2VGb250IC9IZWx2ZXRpY2EKPj4gZW5kb2JqCjggMCBvYmogPDwKL1R5cGUgL1BhZ2Vz Ci9Db3VudCA2Ci9QYXJlbnQgNTYwIDAgUgovS2lkcyBbMiAwIFIgMTAgMCBSIDE3IDAgUiAy MiAwIFIgNDEgMCBSIDgzIDAgUl0KPj4gZW5kb2JqCjk2IDAgb2JqIDw8Ci9UeXBlIC9QYWdl cwovQ291bnQgNgovUGFyZW50IDU2MCAwIFIKL0tpZHMgWzkxIDAgUiAxMDAgMCBSIDEwNSAw IFIgMTEwIDAgUiAxMjYgMCBSIDE0MiAwIFJdCj4+IGVuZG9iagoxNDkgMCBvYmogPDwKL1R5 cGUgL1BhZ2VzCi9Db3VudCA2Ci9QYXJlbnQgNTYwIDAgUgovS2lkcyBbMTQ2IDAgUiAxNTQg MCBSIDE1OSAwIFIgMTYzIDAgUiAxNjggMCBSIDE3MiAwIFJdCj4+IGVuZG9iagoxODEgMCBv YmogPDwKL1R5cGUgL1BhZ2VzCi9Db3VudCA2Ci9QYXJlbnQgNTYwIDAgUgovS2lkcyBbMTc4 IDAgUiAxODMgMCBSIDE4OSAwIFIgMTk1IDAgUiAyMDMgMCBSIDIwOCAwIFJdCj4+IGVuZG9i agoyMjkgMCBvYmogPDwKL1R5cGUgL1BhZ2VzCi9Db3VudCA2Ci9QYXJlbnQgNTYwIDAgUgov S2lkcyBbMjI0IDAgUiAyNDUgMCBSIDI1NSAwIFIgMjYwIDAgUiAyNjQgMCBSIDI2OSAwIFJd Cj4+IGVuZG9iagoyNzYgMCBvYmogPDwKL1R5cGUgL1BhZ2VzCi9Db3VudCAzCi9QYXJlbnQg NTYwIDAgUgovS2lkcyBbMjczIDAgUiAyNzkgMCBSIDI4NCAwIFJdCj4+IGVuZG9iago1NjAg MCBvYmogPDwKL1R5cGUgL1BhZ2VzCi9Db3VudCAzMwovS2lkcyBbOCAwIFIgOTYgMCBSIDE0 OSAwIFIgMTgxIDAgUiAyMjkgMCBSIDI3NiAwIFJdCj4+IGVuZG9iago1NjEgMCBvYmogPDwK L1R5cGUgL091dGxpbmVzCi9GaXJzdCAyODggMCBSCi9MYXN0IDU0OSAwIFIKL0NvdW50IDUK Pj4gZW5kb2JqCjU0OSAwIG9iaiA8PAovVGl0bGUgNTUwIDAgUgovQSA1NDggMCBSCi9QYXJl bnQgNTYxIDAgUgovUHJldiA1NDYgMCBSCj4+IGVuZG9iago1NDYgMCBvYmogPDwKL1RpdGxl IDU0NyAwIFIKL0EgNTQ1IDAgUgovUGFyZW50IDU2MSAwIFIKL1ByZXYgNDQ3IDAgUgovTmV4 dCA1NDkgMCBSCj4+IGVuZG9iago1NDMgMCBvYmogPDwKL1RpdGxlIDU0NCAwIFIKL0EgNTQy IDAgUgovUGFyZW50IDQ0NyAwIFIKL1ByZXYgNTQwIDAgUgo+PiBlbmRvYmoKNTQwIDAgb2Jq IDw8Ci9UaXRsZSA1NDEgMCBSCi9BIDUzOSAwIFIKL1BhcmVudCA0NDcgMCBSCi9QcmV2IDUz NyAwIFIKL05leHQgNTQzIDAgUgo+PiBlbmRvYmoKNTM3IDAgb2JqIDw8Ci9UaXRsZSA1Mzgg MCBSCi9BIDUzNiAwIFIKL1BhcmVudCA0NDcgMCBSCi9QcmV2IDUzNCAwIFIKL05leHQgNTQw IDAgUgo+PiBlbmRvYmoKNTM0IDAgb2JqIDw8Ci9UaXRsZSA1MzUgMCBSCi9BIDUzMyAwIFIK L1BhcmVudCA0NDcgMCBSCi9QcmV2IDUzMSAwIFIKL05leHQgNTM3IDAgUgo+PiBlbmRvYmoK NTMxIDAgb2JqIDw8Ci9UaXRsZSA1MzIgMCBSCi9BIDUzMCAwIFIKL1BhcmVudCA0NDcgMCBS Ci9QcmV2IDUyOCAwIFIKL05leHQgNTM0IDAgUgo+PiBlbmRvYmoKNTI4IDAgb2JqIDw8Ci9U aXRsZSA1MjkgMCBSCi9BIDUyNyAwIFIKL1BhcmVudCA0NDcgMCBSCi9QcmV2IDUyNSAwIFIK L05leHQgNTMxIDAgUgo+PiBlbmRvYmoKNTI1IDAgb2JqIDw8Ci9UaXRsZSA1MjYgMCBSCi9B IDUyNCAwIFIKL1BhcmVudCA0NDcgMCBSCi9QcmV2IDUyMiAwIFIKL05leHQgNTI4IDAgUgo+ PiBlbmRvYmoKNTIyIDAgb2JqIDw8Ci9UaXRsZSA1MjMgMCBSCi9BIDUyMSAwIFIKL1BhcmVu dCA0NDcgMCBSCi9QcmV2IDUxOSAwIFIKL05leHQgNTI1IDAgUgo+PiBlbmRvYmoKNTE5IDAg b2JqIDw8Ci9UaXRsZSA1MjAgMCBSCi9BIDUxOCAwIFIKL1BhcmVudCA0NDcgMCBSCi9QcmV2 IDUxNiAwIFIKL05leHQgNTIyIDAgUgo+PiBlbmRvYmoKNTE2IDAgb2JqIDw8Ci9UaXRsZSA1 MTcgMCBSCi9BIDUxNSAwIFIKL1BhcmVudCA0NDcgMCBSCi9QcmV2IDUxMyAwIFIKL05leHQg NTE5IDAgUgo+PiBlbmRvYmoKNTEzIDAgb2JqIDw8Ci9UaXRsZSA1MTQgMCBSCi9BIDUxMiAw IFIKL1BhcmVudCA0NDcgMCBSCi9QcmV2IDUxMCAwIFIKL05leHQgNTE2IDAgUgo+PiBlbmRv YmoKNTEwIDAgb2JqIDw8Ci9UaXRsZSA1MTEgMCBSCi9BIDUwOSAwIFIKL1BhcmVudCA0NDcg MCBSCi9QcmV2IDUwNyAwIFIKL05leHQgNTEzIDAgUgo+PiBlbmRvYmoKNTA3IDAgb2JqIDw8 Ci9UaXRsZSA1MDggMCBSCi9BIDUwNiAwIFIKL1BhcmVudCA0NDcgMCBSCi9QcmV2IDQ1MyAw IFIKL05leHQgNTEwIDAgUgo+PiBlbmRvYmoKNTA0IDAgb2JqIDw8Ci9UaXRsZSA1MDUgMCBS Ci9BIDUwMyAwIFIKL1BhcmVudCA0NTMgMCBSCi9QcmV2IDUwMSAwIFIKPj4gZW5kb2JqCjUw MSAwIG9iaiA8PAovVGl0bGUgNTAyIDAgUgovQSA1MDAgMCBSCi9QYXJlbnQgNDUzIDAgUgov UHJldiA0OTggMCBSCi9OZXh0IDUwNCAwIFIKPj4gZW5kb2JqCjQ5OCAwIG9iaiA8PAovVGl0 bGUgNDk5IDAgUgovQSA0OTcgMCBSCi9QYXJlbnQgNDUzIDAgUgovUHJldiA0OTUgMCBSCi9O ZXh0IDUwMSAwIFIKPj4gZW5kb2JqCjQ5NSAwIG9iaiA8PAovVGl0bGUgNDk2IDAgUgovQSA0 OTQgMCBSCi9QYXJlbnQgNDUzIDAgUgovUHJldiA0OTIgMCBSCi9OZXh0IDQ5OCAwIFIKPj4g ZW5kb2JqCjQ5MiAwIG9iaiA8PAovVGl0bGUgNDkzIDAgUgovQSA0OTEgMCBSCi9QYXJlbnQg NDUzIDAgUgovUHJldiA0ODkgMCBSCi9OZXh0IDQ5NSAwIFIKPj4gZW5kb2JqCjQ4OSAwIG9i aiA8PAovVGl0bGUgNDkwIDAgUgovQSA0ODggMCBSCi9QYXJlbnQgNDUzIDAgUgovUHJldiA0 ODYgMCBSCi9OZXh0IDQ5MiAwIFIKPj4gZW5kb2JqCjQ4NiAwIG9iaiA8PAovVGl0bGUgNDg3 IDAgUgovQSA0ODUgMCBSCi9QYXJlbnQgNDUzIDAgUgovUHJldiA0ODMgMCBSCi9OZXh0IDQ4 OSAwIFIKPj4gZW5kb2JqCjQ4MyAwIG9iaiA8PAovVGl0bGUgNDg0IDAgUgovQSA0ODIgMCBS Ci9QYXJlbnQgNDUzIDAgUgovUHJldiA0ODAgMCBSCi9OZXh0IDQ4NiAwIFIKPj4gZW5kb2Jq CjQ4MCAwIG9iaiA8PAovVGl0bGUgNDgxIDAgUgovQSA0NzkgMCBSCi9QYXJlbnQgNDUzIDAg UgovUHJldiA0NzcgMCBSCi9OZXh0IDQ4MyAwIFIKPj4gZW5kb2JqCjQ3NyAwIG9iaiA8PAov VGl0bGUgNDc4IDAgUgovQSA0NzYgMCBSCi9QYXJlbnQgNDUzIDAgUgovUHJldiA0NzQgMCBS Ci9OZXh0IDQ4MCAwIFIKPj4gZW5kb2JqCjQ3NCAwIG9iaiA8PAovVGl0bGUgNDc1IDAgUgov QSA0NzMgMCBSCi9QYXJlbnQgNDUzIDAgUgovUHJldiA0NzEgMCBSCi9OZXh0IDQ3NyAwIFIK Pj4gZW5kb2JqCjQ3MSAwIG9iaiA8PAovVGl0bGUgNDcyIDAgUgovQSA0NzAgMCBSCi9QYXJl bnQgNDUzIDAgUgovUHJldiA0NjggMCBSCi9OZXh0IDQ3NCAwIFIKPj4gZW5kb2JqCjQ2OCAw IG9iaiA8PAovVGl0bGUgNDY5IDAgUgovQSA0NjcgMCBSCi9QYXJlbnQgNDUzIDAgUgovUHJl diA0NjUgMCBSCi9OZXh0IDQ3MSAwIFIKPj4gZW5kb2JqCjQ2NSAwIG9iaiA8PAovVGl0bGUg NDY2IDAgUgovQSA0NjQgMCBSCi9QYXJlbnQgNDUzIDAgUgovUHJldiA0NjIgMCBSCi9OZXh0 IDQ2OCAwIFIKPj4gZW5kb2JqCjQ2MiAwIG9iaiA8PAovVGl0bGUgNDYzIDAgUgovQSA0NjEg MCBSCi9QYXJlbnQgNDUzIDAgUgovUHJldiA0NTkgMCBSCi9OZXh0IDQ2NSAwIFIKPj4gZW5k b2JqCjQ1OSAwIG9iaiA8PAovVGl0bGUgNDYwIDAgUgovQSA0NTggMCBSCi9QYXJlbnQgNDUz IDAgUgovUHJldiA0NTYgMCBSCi9OZXh0IDQ2MiAwIFIKPj4gZW5kb2JqCjQ1NiAwIG9iaiA8 PAovVGl0bGUgNDU3IDAgUgovQSA0NTUgMCBSCi9QYXJlbnQgNDUzIDAgUgovTmV4dCA0NTkg MCBSCj4+IGVuZG9iago0NTMgMCBvYmogPDwKL1RpdGxlIDQ1NCAwIFIKL0EgNDUyIDAgUgov UGFyZW50IDQ0NyAwIFIKL1ByZXYgNDUwIDAgUgovTmV4dCA1MDcgMCBSCi9GaXJzdCA0NTYg MCBSCi9MYXN0IDUwNCAwIFIKL0NvdW50IC0xNwo+PiBlbmRvYmoKNDUwIDAgb2JqIDw8Ci9U aXRsZSA0NTEgMCBSCi9BIDQ0OSAwIFIKL1BhcmVudCA0NDcgMCBSCi9OZXh0IDQ1MyAwIFIK Pj4gZW5kb2JqCjQ0NyAwIG9iaiA8PAovVGl0bGUgNDQ4IDAgUgovQSA0NDYgMCBSCi9QYXJl bnQgNTYxIDAgUgovUHJldiAzNzUgMCBSCi9OZXh0IDU0NiAwIFIKL0ZpcnN0IDQ1MCAwIFIK L0xhc3QgNTQzIDAgUgovQ291bnQgLTE1Cj4+IGVuZG9iago0NDQgMCBvYmogPDwKL1RpdGxl IDQ0NSAwIFIKL0EgNDQzIDAgUgovUGFyZW50IDQ0MSAwIFIKPj4gZW5kb2JqCjQ0MSAwIG9i aiA8PAovVGl0bGUgNDQyIDAgUgovQSA0NDAgMCBSCi9QYXJlbnQgMzc1IDAgUgovUHJldiA0 MjMgMCBSCi9GaXJzdCA0NDQgMCBSCi9MYXN0IDQ0NCAwIFIKL0NvdW50IC0xCj4+IGVuZG9i ago0MzggMCBvYmogPDwKL1RpdGxlIDQzOSAwIFIKL0EgNDM3IDAgUgovUGFyZW50IDQyMyAw IFIKL1ByZXYgNDM1IDAgUgo+PiBlbmRvYmoKNDM1IDAgb2JqIDw8Ci9UaXRsZSA0MzYgMCBS Ci9BIDQzNCAwIFIKL1BhcmVudCA0MjMgMCBSCi9QcmV2IDQzMiAwIFIKL05leHQgNDM4IDAg Ugo+PiBlbmRvYmoKNDMyIDAgb2JqIDw8Ci9UaXRsZSA0MzMgMCBSCi9BIDQzMSAwIFIKL1Bh cmVudCA0MjMgMCBSCi9QcmV2IDQyOSAwIFIKL05leHQgNDM1IDAgUgo+PiBlbmRvYmoKNDI5 IDAgb2JqIDw8Ci9UaXRsZSA0MzAgMCBSCi9BIDQyOCAwIFIKL1BhcmVudCA0MjMgMCBSCi9Q cmV2IDQyNiAwIFIKL05leHQgNDMyIDAgUgo+PiBlbmRvYmoKNDI2IDAgb2JqIDw8Ci9UaXRs ZSA0MjcgMCBSCi9BIDQyNSAwIFIKL1BhcmVudCA0MjMgMCBSCi9OZXh0IDQyOSAwIFIKPj4g ZW5kb2JqCjQyMyAwIG9iaiA8PAovVGl0bGUgNDI0IDAgUgovQSA0MjIgMCBSCi9QYXJlbnQg Mzc1IDAgUgovUHJldiA0MjAgMCBSCi9OZXh0IDQ0MSAwIFIKL0ZpcnN0IDQyNiAwIFIKL0xh c3QgNDM4IDAgUgovQ291bnQgLTUKPj4gZW5kb2JqCjQyMCAwIG9iaiA8PAovVGl0bGUgNDIx IDAgUgovQSA0MTkgMCBSCi9QYXJlbnQgMzc1IDAgUgovUHJldiA0MTEgMCBSCi9OZXh0IDQy MyAwIFIKPj4gZW5kb2JqCjQxNyAwIG9iaiA8PAovVGl0bGUgNDE4IDAgUgovQSA0MTYgMCBS Ci9QYXJlbnQgNDExIDAgUgovUHJldiA0MTQgMCBSCj4+IGVuZG9iago0MTQgMCBvYmogPDwK L1RpdGxlIDQxNSAwIFIKL0EgNDEzIDAgUgovUGFyZW50IDQxMSAwIFIKL05leHQgNDE3IDAg Ugo+PiBlbmRvYmoKNDExIDAgb2JqIDw8Ci9UaXRsZSA0MTIgMCBSCi9BIDQxMCAwIFIKL1Bh cmVudCAzNzUgMCBSCi9QcmV2IDQwOCAwIFIKL05leHQgNDIwIDAgUgovRmlyc3QgNDE0IDAg UgovTGFzdCA0MTcgMCBSCi9Db3VudCAtMgo+PiBlbmRvYmoKNDA4IDAgb2JqIDw8Ci9UaXRs ZSA0MDkgMCBSCi9BIDQwNyAwIFIKL1BhcmVudCAzNzUgMCBSCi9QcmV2IDQwNSAwIFIKL05l eHQgNDExIDAgUgo+PiBlbmRvYmoKNDA1IDAgb2JqIDw8Ci9UaXRsZSA0MDYgMCBSCi9BIDQw NCAwIFIKL1BhcmVudCAzNzUgMCBSCi9QcmV2IDQwMiAwIFIKL05leHQgNDA4IDAgUgo+PiBl bmRvYmoKNDAyIDAgb2JqIDw8Ci9UaXRsZSA0MDMgMCBSCi9BIDQwMSAwIFIKL1BhcmVudCAz NzUgMCBSCi9QcmV2IDM5NiAwIFIKL05leHQgNDA1IDAgUgo+PiBlbmRvYmoKMzk5IDAgb2Jq IDw8Ci9UaXRsZSA0MDAgMCBSCi9BIDM5OCAwIFIKL1BhcmVudCAzOTYgMCBSCj4+IGVuZG9i agozOTYgMCBvYmogPDwKL1RpdGxlIDM5NyAwIFIKL0EgMzk1IDAgUgovUGFyZW50IDM3NSAw IFIKL1ByZXYgMzg0IDAgUgovTmV4dCA0MDIgMCBSCi9GaXJzdCAzOTkgMCBSCi9MYXN0IDM5 OSAwIFIKL0NvdW50IC0xCj4+IGVuZG9iagozOTMgMCBvYmogPDwKL1RpdGxlIDM5NCAwIFIK L0EgMzkyIDAgUgovUGFyZW50IDM4NCAwIFIKL1ByZXYgMzkwIDAgUgo+PiBlbmRvYmoKMzkw IDAgb2JqIDw8Ci9UaXRsZSAzOTEgMCBSCi9BIDM4OSAwIFIKL1BhcmVudCAzODQgMCBSCi9Q cmV2IDM4NyAwIFIKL05leHQgMzkzIDAgUgo+PiBlbmRvYmoKMzg3IDAgb2JqIDw8Ci9UaXRs ZSAzODggMCBSCi9BIDM4NiAwIFIKL1BhcmVudCAzODQgMCBSCi9OZXh0IDM5MCAwIFIKPj4g ZW5kb2JqCjM4NCAwIG9iaiA8PAovVGl0bGUgMzg1IDAgUgovQSAzODMgMCBSCi9QYXJlbnQg Mzc1IDAgUgovUHJldiAzNzggMCBSCi9OZXh0IDM5NiAwIFIKL0ZpcnN0IDM4NyAwIFIKL0xh c3QgMzkzIDAgUgovQ291bnQgLTMKPj4gZW5kb2JqCjM4MSAwIG9iaiA8PAovVGl0bGUgMzgy IDAgUgovQSAzODAgMCBSCi9QYXJlbnQgMzc4IDAgUgo+PiBlbmRvYmoKMzc4IDAgb2JqIDw8 Ci9UaXRsZSAzNzkgMCBSCi9BIDM3NyAwIFIKL1BhcmVudCAzNzUgMCBSCi9OZXh0IDM4NCAw IFIKL0ZpcnN0IDM4MSAwIFIKL0xhc3QgMzgxIDAgUgovQ291bnQgLTEKPj4gZW5kb2JqCjM3 NSAwIG9iaiA8PAovVGl0bGUgMzc2IDAgUgovQSAzNzQgMCBSCi9QYXJlbnQgNTYxIDAgUgov UHJldiAyODggMCBSCi9OZXh0IDQ0NyAwIFIKL0ZpcnN0IDM3OCAwIFIKL0xhc3QgNDQxIDAg UgovQ291bnQgLTEwCj4+IGVuZG9iagozNzIgMCBvYmogPDwKL1RpdGxlIDM3MyAwIFIKL0Eg MzcxIDAgUgovUGFyZW50IDI4OCAwIFIKL1ByZXYgMzY5IDAgUgo+PiBlbmRvYmoKMzY5IDAg b2JqIDw8Ci9UaXRsZSAzNzAgMCBSCi9BIDM2OCAwIFIKL1BhcmVudCAyODggMCBSCi9QcmV2 IDM1NyAwIFIKL05leHQgMzcyIDAgUgo+PiBlbmRvYmoKMzY2IDAgb2JqIDw8Ci9UaXRsZSAz NjcgMCBSCi9BIDM2NSAwIFIKL1BhcmVudCAzNTcgMCBSCi9QcmV2IDM2MCAwIFIKPj4gZW5k b2JqCjM2MyAwIG9iaiA8PAovVGl0bGUgMzY0IDAgUgovQSAzNjIgMCBSCi9QYXJlbnQgMzYw IDAgUgo+PiBlbmRvYmoKMzYwIDAgb2JqIDw8Ci9UaXRsZSAzNjEgMCBSCi9BIDM1OSAwIFIK L1BhcmVudCAzNTcgMCBSCi9OZXh0IDM2NiAwIFIKL0ZpcnN0IDM2MyAwIFIKL0xhc3QgMzYz IDAgUgovQ291bnQgLTEKPj4gZW5kb2JqCjM1NyAwIG9iaiA8PAovVGl0bGUgMzU4IDAgUgov QSAzNTYgMCBSCi9QYXJlbnQgMjg4IDAgUgovUHJldiAzNDggMCBSCi9OZXh0IDM2OSAwIFIK L0ZpcnN0IDM2MCAwIFIKL0xhc3QgMzY2IDAgUgovQ291bnQgLTIKPj4gZW5kb2JqCjM1NCAw IG9iaiA8PAovVGl0bGUgMzU1IDAgUgovQSAzNTMgMCBSCi9QYXJlbnQgMzQ4IDAgUgovUHJl diAzNTEgMCBSCj4+IGVuZG9iagozNTEgMCBvYmogPDwKL1RpdGxlIDM1MiAwIFIKL0EgMzUw IDAgUgovUGFyZW50IDM0OCAwIFIKL05leHQgMzU0IDAgUgo+PiBlbmRvYmoKMzQ4IDAgb2Jq IDw8Ci9UaXRsZSAzNDkgMCBSCi9BIDM0NyAwIFIKL1BhcmVudCAyODggMCBSCi9QcmV2IDMy MSAwIFIKL05leHQgMzU3IDAgUgovRmlyc3QgMzUxIDAgUgovTGFzdCAzNTQgMCBSCi9Db3Vu dCAtMgo+PiBlbmRvYmoKMzQ1IDAgb2JqIDw8Ci9UaXRsZSAzNDYgMCBSCi9BIDM0NCAwIFIK L1BhcmVudCAzMjEgMCBSCi9QcmV2IDM0MiAwIFIKPj4gZW5kb2JqCjM0MiAwIG9iaiA8PAov VGl0bGUgMzQzIDAgUgovQSAzNDEgMCBSCi9QYXJlbnQgMzIxIDAgUgovUHJldiAzMzkgMCBS Ci9OZXh0IDM0NSAwIFIKPj4gZW5kb2JqCjMzOSAwIG9iaiA8PAovVGl0bGUgMzQwIDAgUgov QSAzMzggMCBSCi9QYXJlbnQgMzIxIDAgUgovUHJldiAzMzYgMCBSCi9OZXh0IDM0MiAwIFIK Pj4gZW5kb2JqCjMzNiAwIG9iaiA8PAovVGl0bGUgMzM3IDAgUgovQSAzMzUgMCBSCi9QYXJl bnQgMzIxIDAgUgovUHJldiAzMzMgMCBSCi9OZXh0IDMzOSAwIFIKPj4gZW5kb2JqCjMzMyAw IG9iaiA8PAovVGl0bGUgMzM0IDAgUgovQSAzMzIgMCBSCi9QYXJlbnQgMzIxIDAgUgovUHJl diAzMzAgMCBSCi9OZXh0IDMzNiAwIFIKPj4gZW5kb2JqCjMzMCAwIG9iaiA8PAovVGl0bGUg MzMxIDAgUgovQSAzMjkgMCBSCi9QYXJlbnQgMzIxIDAgUgovUHJldiAzMjcgMCBSCi9OZXh0 IDMzMyAwIFIKPj4gZW5kb2JqCjMyNyAwIG9iaiA8PAovVGl0bGUgMzI4IDAgUgovQSAzMjYg MCBSCi9QYXJlbnQgMzIxIDAgUgovUHJldiAzMjQgMCBSCi9OZXh0IDMzMCAwIFIKPj4gZW5k b2JqCjMyNCAwIG9iaiA8PAovVGl0bGUgMzI1IDAgUgovQSAzMjMgMCBSCi9QYXJlbnQgMzIx IDAgUgovTmV4dCAzMjcgMCBSCj4+IGVuZG9iagozMjEgMCBvYmogPDwKL1RpdGxlIDMyMiAw IFIKL0EgMzIwIDAgUgovUGFyZW50IDI4OCAwIFIKL1ByZXYgMzAzIDAgUgovTmV4dCAzNDgg MCBSCi9GaXJzdCAzMjQgMCBSCi9MYXN0IDM0NSAwIFIKL0NvdW50IC04Cj4+IGVuZG9iagoz MTggMCBvYmogPDwKL1RpdGxlIDMxOSAwIFIKL0EgMzE3IDAgUgovUGFyZW50IDMwNiAwIFIK L1ByZXYgMzE1IDAgUgo+PiBlbmRvYmoKMzE1IDAgb2JqIDw8Ci9UaXRsZSAzMTYgMCBSCi9B IDMxNCAwIFIKL1BhcmVudCAzMDYgMCBSCi9QcmV2IDMxMiAwIFIKL05leHQgMzE4IDAgUgo+ PiBlbmRvYmoKMzEyIDAgb2JqIDw8Ci9UaXRsZSAzMTMgMCBSCi9BIDMxMSAwIFIKL1BhcmVu dCAzMDYgMCBSCi9QcmV2IDMwOSAwIFIKL05leHQgMzE1IDAgUgo+PiBlbmRvYmoKMzA5IDAg b2JqIDw8Ci9UaXRsZSAzMTAgMCBSCi9BIDMwOCAwIFIKL1BhcmVudCAzMDYgMCBSCi9OZXh0 IDMxMiAwIFIKPj4gZW5kb2JqCjMwNiAwIG9iaiA8PAovVGl0bGUgMzA3IDAgUgovQSAzMDUg MCBSCi9QYXJlbnQgMzAzIDAgUgovRmlyc3QgMzA5IDAgUgovTGFzdCAzMTggMCBSCi9Db3Vu dCAtNAo+PiBlbmRvYmoKMzAzIDAgb2JqIDw8Ci9UaXRsZSAzMDQgMCBSCi9BIDMwMiAwIFIK L1BhcmVudCAyODggMCBSCi9QcmV2IDI5NCAwIFIKL05leHQgMzIxIDAgUgovRmlyc3QgMzA2 IDAgUgovTGFzdCAzMDYgMCBSCi9Db3VudCAtMQo+PiBlbmRvYmoKMzAwIDAgb2JqIDw8Ci9U aXRsZSAzMDEgMCBSCi9BIDI5OSAwIFIKL1BhcmVudCAyOTQgMCBSCi9QcmV2IDI5NyAwIFIK Pj4gZW5kb2JqCjI5NyAwIG9iaiA8PAovVGl0bGUgMjk4IDAgUgovQSAyOTYgMCBSCi9QYXJl bnQgMjk0IDAgUgovTmV4dCAzMDAgMCBSCj4+IGVuZG9iagoyOTQgMCBvYmogPDwKL1RpdGxl IDI5NSAwIFIKL0EgMjkzIDAgUgovUGFyZW50IDI4OCAwIFIKL1ByZXYgMjkxIDAgUgovTmV4 dCAzMDMgMCBSCi9GaXJzdCAyOTcgMCBSCi9MYXN0IDMwMCAwIFIKL0NvdW50IC0yCj4+IGVu ZG9iagoyOTEgMCBvYmogPDwKL1RpdGxlIDI5MiAwIFIKL0EgMjkwIDAgUgovUGFyZW50IDI4 OCAwIFIKL05leHQgMjk0IDAgUgo+PiBlbmRvYmoKMjg4IDAgb2JqIDw8Ci9UaXRsZSAyODkg MCBSCi9BIDI4NyAwIFIKL1BhcmVudCA1NjEgMCBSCi9OZXh0IDM3NSAwIFIKL0ZpcnN0IDI5 MSAwIFIKL0xhc3QgMzcyIDAgUgovQ291bnQgLTgKPj4gZW5kb2JqCjU2MiAwIG9iaiA8PAov TmFtZXMgWyhsYWJlbC1DR0kpIDEwMyAwIFIgKGxhYmVsLUVkaXRQeXRob25QcmVmcykgOTgg MCBSIChsYWJlbC1JREUpIDk3IDAgUiAobGFiZWwtTWFjTW9kcykgMTEzIDAgUiAobGFiZWwt UHl0aG9uT25UaGVNYWMpIDg4IDAgUiAobGFiZWwtYWVzZXJ2ZXItb2JqZWN0cykgMjA2IDAg UiAobGFiZWwtYWxpYXMtb2JqZWN0cykgMTUxIDAgUiAobGFiZWwtYXBwbGljYXRpb24tb2Jq ZWN0cykgMTg2IDAgUiAobGFiZWwtY29ubmVjdGlvbi1vYmplY3QpIDEyNCAwIFIgKGxhYmVs LWNvbnRyb2xzd2luZG93LW9iamVjdCkgMTk4IDAgUiAobGFiZWwtZGlhbG9nd2luZG93LW9i amVjdHMpIDIwMCAwIFIgKGxhYmVsLWZpbmZvLW9iamVjdHMpIDE1NyAwIFIgKGxhYmVsLWZz c3BlYy1vYmplY3RzKSAxNTAgMCBSIChsYWJlbC1pbnN0YWxsYXRpb24pIDg5IDAgUiAobGFi ZWwtaW50cm8pIDIxMiAwIFIgKGxhYmVsLW1vZHVsZS1BRSkgMjEzIDAgUiAobGFiZWwtbW9k dWxlLUNtKSAyMTQgMCBSIChsYWJlbC1tb2R1bGUtQ3RsKSAyMTUgMCBSIChsYWJlbC1tb2R1 bGUtRGxnKSAyMTYgMCBSIChsYWJlbC1tb2R1bGUtRWFzeURpYWxvZ3MpIDEyMSAwIFIgKGxh YmVsLW1vZHVsZS1FdnQpIDIxNyAwIFIgKGxhYmVsLW1vZHVsZS1GbSkgMjE4IDAgUiAobGFi ZWwtbW9kdWxlLUZyYW1lV29yaykgMTIyIDAgUiAobGFiZWwtbW9kdWxlLUxpc3QpIDIxOSAw IFIgKGxhYmVsLW1vZHVsZS1NYWNPUykgMTE3IDAgUiAobGFiZWwtbW9kdWxlLU1lbnUpIDIy MCAwIFIgKGxhYmVsLW1vZHVsZS1NaW5pQUVGcmFtZSkgMTIzIDAgUiAobGFiZWwtbW9kdWxl LVBpeE1hcFdyYXBwZXIpIDI0OSAwIFIgKGxhYmVsLW1vZHVsZS1RZCkgMjIxIDAgUiAobGFi ZWwtbW9kdWxlLVF0KSAyMjIgMCBSIChsYWJlbC1tb2R1bGUtUmVzKSAyMzAgMCBSIChsYWJl bC1tb2R1bGUtU2NyYXApIDIzMSAwIFIgKGxhYmVsLW1vZHVsZS1TbmQpIDIzMiAwIFIgKGxh YmVsLW1vZHVsZS1URSkgMjMzIDAgUiAobGFiZWwtbW9kdWxlLVcpIDI1MyAwIFIgKGxhYmVs LW1vZHVsZS1XaW4pIDIzNSAwIFIgKGxhYmVsLW1vZHVsZS1idWlsZHRvb2xzKSAyMzYgMCBS IChsYWJlbC1tb2R1bGUtY2ZtZmlsZSkgMjM4IDAgUiAobGFiZWwtbW9kdWxlLWN0YikgMTE0 IDAgUiAobGFiZWwtbW9kdWxlLWZpbmRlcnRvb2xzKSAxMTkgMCBSIChsYWJlbC1tb2R1bGUt aWMpIDExNiAwIFIgKGxhYmVsLW1vZHVsZS1pY29wZW4pIDI0MSAwIFIgKGxhYmVsLW1vZHVs ZS1tYWNlcnJvcnMpIDIzOSAwIFIgKGxhYmVsLW1vZHVsZS1tYWNmcykgMTE1IDAgUiAobGFi ZWwtbW9kdWxlLW1hY2ZzbikgMjQwIDAgUiAobGFiZWwtbW9kdWxlLW1hY29zdG9vbHMpIDEx OCAwIFIgKGxhYmVsLW1vZHVsZS1tYWNzcGVlY2gpIDEyMCAwIFIgKGxhYmVsLW1vZHVsZS1t YWN0dHkpIDI0MiAwIFIgKGxhYmVsLW1vZHVsZS1uc3JlbW90ZSkgMjQzIDAgUiAobGFiZWwt bW9kdWxlLXByZWZlcmVuY2VzKSAyNTAgMCBSIChsYWJlbC1tb2R1bGUtcHlyZXNvdXJjZSkg MjM3IDAgUiAobGFiZWwtbW9kdWxlLXB5dGhvbnByZWZzKSAyNTEgMCBSIChsYWJlbC1tb2R1 bGUtcXVpZXRjb25zb2xlKSAyNTIgMCBSIChsYWJlbC1tb2R1bGUtd2FzdGUpIDIzNCAwIFIg KGxhYmVsLXNjcm9sbGVkd2luZG93LW9iamVjdCkgMTk5IDAgUiAobGFiZWwtc3BlZWNoLWNo YW5uZWwtb2JqZWN0cykgMTc2IDAgUiAobGFiZWwtdm9pY2Utb2JqZWN0cykgMTc1IDAgUiAo bGFiZWwtd2luZG93LW9iamVjdHMpIDE5MiAwIFIgKHBhZ2UwMDEpIDI1IDAgUiAocGFnZTAw MikgMjYgMCBSIChwYWdlMDAzKSAyNyAwIFIgKHBhZ2UwMDQpIDEwOCAwIFIgKHBhZ2UwMDUp IDI4IDAgUiAocGFnZTAwNikgMTQwIDAgUiAocGFnZTAwNykgMjkgMCBSIChwYWdlMDA4KSAx NTIgMCBSIChwYWdlMDA5KSAzMCAwIFIgKHBhZ2UwMTApIDMxIDAgUiAocGFnZTAxMSkgMTY2 IDAgUiAocGFnZTAxMikgMzIgMCBSIChwYWdlMDEzKSAzMyAwIFIgKHBhZ2UwMTQpIDM0IDAg UiAocGFnZTAxNSkgMTg3IDAgUiAocGFnZTAxNikgMTkzIDAgUiAocGFnZTAxNykgMjAxIDAg UiAocGFnZTAxOCkgMzUgMCBSIChwYWdlMDE5KSAzNiAwIFIgKHBhZ2UwMjApIDM3IDAgUiAo cGFnZTAyMSkgMzggMCBSIChwYWdlMDIyKSAyNTggMCBSIChwYWdlMDIzKSAzOSAwIFIgKHBh Z2UwMjQpIDI2NyAwIFIgKHBhZ2UwMjUpIDgxIDAgUiAocGFnZTAyNikgMjc3IDAgUiAocGFn ZTAyNykgMjgyIDAgUl0KL0xpbWl0cyBbKGxhYmVsLUNHSSkgKHBhZ2UwMjcpXQo+PiBlbmRv YmoKNTYzIDAgb2JqIDw8Ci9LaWRzIFs1NjIgMCBSXQo+PiBlbmRvYmoKNTY0IDAgb2JqIDw8 Ci9EZXN0cyA1NjMgMCBSCj4+IGVuZG9iago1NjUgMCBvYmogPDwKL1R5cGUgL0NhdGFsb2cK L1BhZ2VzIDU2MCAwIFIKL091dGxpbmVzIDU2MSAwIFIKL05hbWVzIDU2NCAwIFIKL1BhZ2VN b2RlIC9Vc2VPdXRsaW5lcwo+PiBlbmRvYmoKNTY2IDAgb2JqIDw8CiAvQXV0aG9yIChHdWlk byB2YW4gUm9zc3VtLCAgRnJlZCBMLiBEcmFrZSwgSnIuLCBlZGl0b3IpIC9UaXRsZSAoTWFj aW50b3NoIExpYnJhcnkgTW9kdWxlcykgCi9DcmVhdG9yIChUZVgpCi9Qcm9kdWNlciAocGRm VGVYLTAuMTNkKQovQ3JlYXRpb25EYXRlIChEOjIwMDAxMDAzMTcwNDAwKQo+PiBlbmRvYmoK eHJlZgowIDU2NwowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDA1ODIgMDAwMDAgbiAKMDAw MDAwMDQ3MCAwMDAwMCBuIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDA0NTEgMDAwMDAg biAKMDAwMDA5NzE5NyAwMDAwMCBuIAowMDAwMDk3MTAxIDAwMDAwIG4gCjAwMDAwOTcwMTEg MDAwMDAgbiAKMDAwMDA5NzI4NSAwMDAwMCBuIAowMDAwMDA0Mzg3IDAwMDAwIG4gCjAwMDAw MDQxMTQgMDAwMDAgbiAKMDAwMDAwMDY5NCAwMDAwMCBuIAowMDAwMDA0MDkzIDAwMDAwIG4g CjAwMDAwOTY5MjEgMDAwMDAgbiAKMDAwMDAwNDI0NyAwMDAwMCBuIAowMDAwMDkzNzUyIDAw MDAwIG4gCjAwMDAwMDUzNjMgMDAwMDAgbiAKMDAwMDAwNTI0OCAwMDAwMCBuIAowMDAwMDA0 NDkwIDAwMDAwIG4gCjAwMDAwMDUyMjggMDAwMDAgbiAKMDAwMDA5MzY2MCAwMDAwMCBuIAow MDAwMDA1NjcyIDAwMDAwIG4gCjAwMDAwMDU1NTcgMDAwMDAgbiAKMDAwMDAwNTQ1NiAwMDAw MCBuIAowMDAwMDA1NTM5IDAwMDAwIG4gCjAwMDAwMTY5NjUgMDAwMDAgbiAKMDAwMDAxOTEx MCAwMDAwMCBuIAowMDAwMDIwMTc2IDAwMDAwIG4gCjAwMDAwMjQ1NjEgMDAwMDAgbiAKMDAw MDAzMTQwNCAwMDAwMCBuIAowMDAwMDM3MjIzIDAwMDAwIG4gCjAwMDAwNDEwMDUgMDAwMDAg biAKMDAwMDA0Nzg2MyAwMDAwMCBuIAowMDAwMDUwMzQ0IDAwMDAwIG4gCjAwMDAwNTQwOTAg MDAwMDAgbiAKMDAwMDA2NzY1OCAwMDAwMCBuIAowMDAwMDcwMDk0IDAwMDAwIG4gCjAwMDAw NzI4MDUgMDAwMDAgbiAKMDAwMDA3NTExOCAwMDAwMCBuIAowMDAwMDc3MTYyIDAwMDAwIG4g CjAwMDAwMTMxMjggMDAwMDAgbiAKMDAwMDAwNzg4MSAwMDAwMCBuIAowMDAwMDA1NzEyIDAw MDAwIG4gCjAwMDAwMDc4NjAgMDAwMDAgbiAKMDAwMDAwODI2MCAwMDAwMCBuIAowMDAwMDA4 MzkxIDAwMDAwIG4gCjAwMDAwMDg1MjcgMDAwMDAgbiAKMDAwMDAwODY2MSAwMDAwMCBuIAow MDAwMDA4Nzk3IDAwMDAwIG4gCjAwMDAwMDg5MzIgMDAwMDAgbiAKMDAwMDAwOTA2OCAwMDAw MCBuIAowMDAwMDA5MjA0IDAwMDAwIG4gCjAwMDAwMDkzMzkgMDAwMDAgbiAKMDAwMDAwOTQ3 NSAwMDAwMCBuIAowMDAwMDA5NjA3IDAwMDAwIG4gCjAwMDAwOTM1NzMgMDAwMDAgbiAKMDAw MDAwOTc0MyAwMDAwMCBuIAowMDAwMDA5ODc4IDAwMDAwIG4gCjAwMDAwMTAwMTQgMDAwMDAg biAKMDAwMDAxMDE1MCAwMDAwMCBuIAowMDAwMDEwMjg2IDAwMDAwIG4gCjAwMDAwMTA0MjEg MDAwMDAgbiAKMDAwMDAxMDU1NyAwMDAwMCBuIAowMDAwMDEwNjkyIDAwMDAwIG4gCjAwMDAw MTA4MjggMDAwMDAgbiAKMDAwMDAxMDk2MiAwMDAwMCBuIAowMDAwMDExMDk0IDAwMDAwIG4g CjAwMDAwMTEyMzAgMDAwMDAgbiAKMDAwMDAxMTM2NiAwMDAwMCBuIAowMDAwMDExNTAyIDAw MDAwIG4gCjAwMDAwMTE2MzggMDAwMDAgbiAKMDAwMDAxMTc3NCAwMDAwMCBuIAowMDAwMDEx OTEwIDAwMDAwIG4gCjAwMDAwMTIwNDYgMDAwMDAgbiAKMDAwMDAxMjE4MSAwMDAwMCBuIAow MDAwMDEyMzE3IDAwMDAwIG4gCjAwMDAwMTI0NTIgMDAwMDAgbiAKMDAwMDAxMjU4OCAwMDAw MCBuIAowMDAwMDEyNzI0IDAwMDAwIG4gCjAwMDAwMTI4NjAgMDAwMDAgbiAKMDAwMDAxMjk5 NSAwMDAwMCBuIAowMDAwMDc5NTI0IDAwMDAwIG4gCjAwMDAwMTM5MzAgMDAwMDAgbiAKMDAw MDAxMzUyNiAwMDAwMCBuIAowMDAwMDEzMjQzIDAwMDAwIG4gCjAwMDAwMTM1MDYgMDAwMDAg biAKMDAwMDAxMzY2NyAwMDAwMCBuIAowMDAwMDEzNzk5IDAwMDAwIG4gCjAwMDAwMTcwMjAg MDAwMDAgbiAKMDAwMDAxNzA3NSAwMDAwMCBuIAowMDAwMDE3MTMwIDAwMDAwIG4gCjAwMDAw MTY2MTIgMDAwMDAgbiAKMDAwMDAxNDAxMSAwMDAwMCBuIAowMDAwMDE2NTkxIDAwMDAwIG4g CjAwMDAwOTM0NzkgMDAwMDAgbiAKMDAwMDAxNjc0NyAwMDAwMCBuIAowMDAwMDk3MzkzIDAw MDAwIG4gCjAwMDAwMTkxNjYgMDAwMDAgbiAKMDAwMDAyMDIzMiAwMDAwMCBuIAowMDAwMDE5 MjI3IDAwMDAwIG4gCjAwMDAwMTg5OTIgMDAwMDAgbiAKMDAwMDAxNzMwMiAwMDAwMCBuIAow MDAwMDE4OTcwIDAwMDAwIG4gCjAwMDAwMjAyOTEgMDAwMDAgbiAKMDAwMDAyMDM1MyAwMDAw MCBuIAowMDAwMDIwMDU3IDAwMDAwIG4gCjAwMDAwMTkzNjUgMDAwMDAgbiAKMDAwMDAyMDAz NiAwMDAwMCBuIAowMDAwMDIwNzcwIDAwMDAwIG4gCjAwMDAwMjA4MjcgMDAwMDAgbiAKMDAw MDAyMDY1MSAwMDAwMCBuIAowMDAwMDIwNDY4IDAwMDAwIG4gCjAwMDAwMjA2MzEgMDAwMDAg biAKMDAwMDA3MDE1MCAwMDAwMCBuIAowMDAwMDI0Njc5IDAwMDAwIG4gCjAwMDAwMzE0NjAg MDAwMDAgbiAKMDAwMDAzNzM0MSAwMDAwMCBuIAowMDAwMDQxMDYxIDAwMDAwIG4gCjAwMDAw NDc5MTkgMDAwMDAgbiAKMDAwMDA0Nzk3NiAwMDAwMCBuIAowMDAwMDUwNDAwIDAwMDAwIG4g CjAwMDAwNTQxNDYgMDAwMDAgbiAKMDAwMDA1NDIwMyAwMDAwMCBuIAowMDAwMDY3Nzc1IDAw MDAwIG4gCjAwMDAwMjgwOTkgMDAwMDAgbiAKMDAwMDAyNDczNSAwMDAwMCBuIAowMDAwMDIy ODUwIDAwMDAwIG4gCjAwMDAwMjA4OTcgMDAwMDAgbiAKMDAwMDAyMjgyOCAwMDAwMCBuIAow MDAwMDIzMDYxIDAwMDAwIG4gCjAwMDAwOTMzODYgMDAwMDAgbiAKMDAwMDAyMzIwNSAwMDAw MCBuIAowMDAwMDIzMzUzIDAwMDAwIG4gCjAwMDAwMjM0OTcgMDAwMDAgbiAKMDAwMDAyMzY0 NSAwMDAwMCBuIAowMDAwMDIzNzk4IDAwMDAwIG4gCjAwMDAwMjM5NTEgMDAwMDAgbiAKMDAw MDAyNDEwMyAwMDAwMCBuIAowMDAwMDI0MjU2IDAwMDAwIG4gCjAwMDAwMjQ0MDggMDAwMDAg biAKMDAwMDAyODA0MiAwMDAwMCBuIAowMDAwMDI4MTYxIDAwMDAwIG4gCjAwMDAwMjc5MjMg MDAwMDAgbiAKMDAwMDAyNDkxMSAwMDAwMCBuIAowMDAwMDI3OTAxIDAwMDAwIG4gCjAwMDAw MzE1MTcgMDAwMDAgbiAKMDAwMDAzMTI4NCAwMDAwMCBuIAowMDAwMDI4MjkwIDAwMDAwIG4g CjAwMDAwMzEyNjIgMDAwMDAgbiAKMDAwMDA5NzUwOCAwMDAwMCBuIAowMDAwMDM0MTE0IDAw MDAwIG4gCjAwMDAwMzQxNzYgMDAwMDAgbiAKMDAwMDAzNDA1NyAwMDAwMCBuIAowMDAwMDM0 MjM4IDAwMDAwIG4gCjAwMDAwMzM5MzcgMDAwMDAgbiAKMDAwMDAzMTY4MSAwMDAwMCBuIAow MDAwMDMzOTE1IDAwMDAwIG4gCjAwMDAwMzcyNzkgMDAwMDAgbiAKMDAwMDAzNzM5OCAwMDAw MCBuIAowMDAwMDM3MTAzIDAwMDAwIG4gCjAwMDAwMzQzNzggMDAwMDAgbiAKMDAwMDAzNzA4 MSAwMDAwMCBuIAowMDAwMDQxMTE2IDAwMDAwIG4gCjAwMDAwNDA4ODUgMDAwMDAgbiAKMDAw MDAzNzU2MSAwMDAwMCBuIAowMDAwMDQwODYzIDAwMDAwIG4gCjAwMDAwNDQ4NjcgMDAwMDAg biAKMDAwMDA0NDkyNCAwMDAwMCBuIAowMDAwMDQ0NzQ3IDAwMDAwIG4gCjAwMDAwNDEyNzkg MDAwMDAgbiAKMDAwMDA0NDcyNSAwMDAwMCBuIAowMDAwMDQ4MDMzIDAwMDAwIG4gCjAwMDAw NDc3NDMgMDAwMDAgbiAKMDAwMDA0NTA1MyAwMDAwMCBuIAowMDAwMDQ3NzIxIDAwMDAwIG4g CjAwMDAwNTA0NTcgMDAwMDAgbiAKMDAwMDA1MDUxNCAwMDAwMCBuIAowMDAwMDUwNTcxIDAw MDAwIG4gCjAwMDAwNTAyMjQgMDAwMDAgbiAKMDAwMDA0ODE5NyAwMDAwMCBuIAowMDAwMDUw MjAyIDAwMDAwIG4gCjAwMDAwOTc2MjUgMDAwMDAgbiAKMDAwMDA1NDI2MCAwMDAwMCBuIAow MDAwMDUzOTcwIDAwMDAwIG4gCjAwMDAwNTA3MzQgMDAwMDAgbiAKMDAwMDA1Mzk0OCAwMDAw MCBuIAowMDAwMDU3Mzk2IDAwMDAwIG4gCjAwMDAwNTczMzkgMDAwMDAgbiAKMDAwMDA1NzQ1 OCAwMDAwMCBuIAowMDAwMDU3MjE5IDAwMDAwIG4gCjAwMDAwNTQ0MTIgMDAwMDAgbiAKMDAw MDA1NzE5NyAwMDAwMCBuIAowMDAwMDYxMjkwIDAwMDAwIG4gCjAwMDAwNjEyMzMgMDAwMDAg biAKMDAwMDA2MTM1MSAwMDAwMCBuIAowMDAwMDYxMTEzIDAwMDAwIG4gCjAwMDAwNTc1OTgg MDAwMDAgbiAKMDAwMDA2MTA5MSAwMDAwMCBuIAowMDAwMDY0MzcxIDAwMDAwIG4gCjAwMDAw NjQ0MzIgMDAwMDAgbiAKMDAwMDA2NzcxNCAwMDAwMCBuIAowMDAwMDY0MzE0IDAwMDAwIG4g CjAwMDAwNjQ0OTQgMDAwMDAgbiAKMDAwMDA2NDE5NCAwMDAwMCBuIAowMDAwMDYxNDkxIDAw MDAwIG4gCjAwMDAwNjQxNzIgMDAwMDAgbiAKMDAwMDA2NzgzMSAwMDAwMCBuIAowMDAwMDY3 ODkzIDAwMDAwIG4gCjAwMDAwNjczNjUgMDAwMDAgbiAKMDAwMDA2NDYzNCAwMDAwMCBuIAow MDAwMDY3MzQzIDAwMDAwIG4gCjAwMDAwNjc1MDUgMDAwMDAgbiAKMDAwMDA3MDIxMiAwMDAw MCBuIAowMDAwMDcwMjY5IDAwMDAwIG4gCjAwMDAwNzAzMjYgMDAwMDAgbiAKMDAwMDA3MDM4 MyAwMDAwMCBuIAowMDAwMDcwNDQwIDAwMDAwIG4gCjAwMDAwNzA0OTcgMDAwMDAgbiAKMDAw MDA3MDU1NCAwMDAwMCBuIAowMDAwMDcwNjExIDAwMDAwIG4gCjAwMDAwNzA2NjcgMDAwMDAg biAKMDAwMDA3MDcyNCAwMDAwMCBuIAowMDAwMDcyODYxIDAwMDAwIG4gCjAwMDAwNzA3ODAg MDAwMDAgbiAKMDAwMDA2OTY1NyAwMDAwMCBuIAowMDAwMDY4MDU3IDAwMDAwIG4gCjAwMDAw Njk2MzUgMDAwMDAgbiAKMDAwMDA2OTgwNSAwMDAwMCBuIAowMDAwMDY5OTM1IDAwMDAwIG4g CjAwMDAwOTc3NDIgMDAwMDAgbiAKMDAwMDA3MjkxNyAwMDAwMCBuIAowMDAwMDcyOTc0IDAw MDAwIG4gCjAwMDAwNzMwMzEgMDAwMDAgbiAKMDAwMDA3MzA4OCAwMDAwMCBuIAowMDAwMDcz MTQ1IDAwMDAwIG4gCjAwMDAwNzMyMDIgMDAwMDAgbiAKMDAwMDA3MzI1OSAwMDAwMCBuIAow MDAwMDczMzE2IDAwMDAwIG4gCjAwMDAwNzMzNzIgMDAwMDAgbiAKMDAwMDA3MzQyOSAwMDAw MCBuIAowMDAwMDczNDg2IDAwMDAwIG4gCjAwMDAwNzM1NDMgMDAwMDAgbiAKMDAwMDA3NTE3 NCAwMDAwMCBuIAowMDAwMDc1MjMwIDAwMDAwIG4gCjAwMDAwNzM2MDAgMDAwMDAgbiAKMDAw MDA3MjUyNyAwMDAwMCBuIAowMDAwMDcwOTUzIDAwMDAwIG4gCjAwMDAwNzI1MDUgMDAwMDAg biAKMDAwMDA3MjY2NyAwMDAwMCBuIAowMDAwMDc1Mjg3IDAwMDAwIG4gCjAwMDAwNzUzNDQg MDAwMDAgbiAKMDAwMDA3NTQwMSAwMDAwMCBuIAowMDAwMDc1NDU4IDAwMDAwIG4gCjAwMDAw NzU1MTUgMDAwMDAgbiAKMDAwMDA3NTU3MiAwMDAwMCBuIAowMDAwMDc0OTk4IDAwMDAwIG4g CjAwMDAwNzM3NjIgMDAwMDAgbiAKMDAwMDA3NDk3NiAwMDAwMCBuIAowMDAwMDc2MDA0IDAw MDAwIG4gCjAwMDAwNzYwNjEgMDAwMDAgbiAKMDAwMDA3NTg4NCAwMDAwMCBuIAowMDAwMDc1 NzAwIDAwMDAwIG4gCjAwMDAwNzU4NjQgMDAwMDAgbiAKMDAwMDA3NzIxOCAwMDAwMCBuIAow MDAwMDc3MDQyIDAwMDAwIG4gCjAwMDAwNzYxMzEgMDAwMDAgbiAKMDAwMDA3NzAyMSAwMDAw MCBuIAowMDAwMDc3NjM3IDAwMDAwIG4gCjAwMDAwNzc2OTQgMDAwMDAgbiAKMDAwMDA3NzUx NyAwMDAwMCBuIAowMDAwMDc3MzMzIDAwMDAwIG4gCjAwMDAwNzc0OTcgMDAwMDAgbiAKMDAw MDA3OTU4MCAwMDAwMCBuIAowMDAwMDc5NDA0IDAwMDAwIG4gCjAwMDAwNzc3NjQgMDAwMDAg biAKMDAwMDA3OTM4MiAwMDAwMCBuIAowMDAwMDk3ODU5IDAwMDAwIG4gCjAwMDAwODE3NjUg MDAwMDAgbiAKMDAwMDA4MTgyMiAwMDAwMCBuIAowMDAwMDgxNjQ1IDAwMDAwIG4gCjAwMDAw Nzk3MDcgMDAwMDAgbiAKMDAwMDA4MTYyMyAwMDAwMCBuIAowMDAwMDgzMDU3IDAwMDAwIG4g CjAwMDAwODMxMTQgMDAwMDAgbiAKMDAwMDA4MjkzNyAwMDAwMCBuIAowMDAwMDgxOTM4IDAw MDAwIG4gCjAwMDAwODI5MTYgMDAwMDAgbiAKMDAwMDA4MzIzMCAwMDAwMCBuIAowMDAwMTA2 MzU2IDAwMDAwIG4gCjAwMDAwODMyNzUgMDAwMDAgbiAKMDAwMDA4MzMxNCAwMDAwMCBuIAow MDAwMTA2Mjc3IDAwMDAwIG4gCjAwMDAwODMzNTkgMDAwMDAgbiAKMDAwMDA4MzM5NSAwMDAw MCBuIAowMDAwMTA2MTQ1IDAwMDAwIG4gCjAwMDAwODM0NDAgMDAwMDAgbiAKMDAwMDA4MzQ5 MCAwMDAwMCBuIAowMDAwMTA2MDY2IDAwMDAwIG4gCjAwMDAwODM1MzUgMDAwMDAgbiAKMDAw MDA4MzU3NCAwMDAwMCBuIAowMDAwMTA1OTg3IDAwMDAwIG4gCjAwMDAwODM2MTkgMDAwMDAg biAKMDAwMDA4MzY3MyAwMDAwMCBuIAowMDAwMTA1ODU1IDAwMDAwIG4gCjAwMDAwODM3MTgg MDAwMDAgbiAKMDAwMDA4Mzc3MSAwMDAwMCBuIAowMDAwMTA1NzUxIDAwMDAwIG4gCjAwMDAw ODM4MTYgMDAwMDAgbiAKMDAwMDA4Mzg1NCAwMDAwMCBuIAowMDAwMTA1NjcyIDAwMDAwIG4g CjAwMDAwODM4OTkgMDAwMDAgbiAKMDAwMDA4Mzk0NCAwMDAwMCBuIAowMDAwMTA1NTc5IDAw MDAwIG4gCjAwMDAwODM5ODkgMDAwMDAgbiAKMDAwMDA4NDAxNCAwMDAwMCBuIAowMDAwMTA1 NDg2IDAwMDAwIG4gCjAwMDAwODQwNTkgMDAwMDAgbiAKMDAwMDA4NDA4NSAwMDAwMCBuIAow MDAwMTA1NDA3IDAwMDAwIG4gCjAwMDAwODQxMzAgMDAwMDAgbiAKMDAwMDA4NDE1NiAwMDAw MCBuIAowMDAwMTA1Mjc1IDAwMDAwIG4gCjAwMDAwODQyMDEgMDAwMDAgbiAKMDAwMDA4NDIz MiAwMDAwMCBuIAowMDAwMTA1MTk2IDAwMDAwIG4gCjAwMDAwODQyNzcgMDAwMDAgbiAKMDAw MDA4NDM0MiAwMDAwMCBuIAowMDAwMTA1MTAzIDAwMDAwIG4gCjAwMDAwODQzODcgMDAwMDAg biAKMDAwMDA4NDQzNiAwMDAwMCBuIAowMDAwMTA1MDEwIDAwMDAwIG4gCjAwMDAwODQ0ODEg MDAwMDAgbiAKMDAwMDA4NDU0NSAwMDAwMCBuIAowMDAwMTA0OTE3IDAwMDAwIG4gCjAwMDAw ODQ1OTAgMDAwMDAgbiAKMDAwMDA4NDYzMCAwMDAwMCBuIAowMDAwMTA0ODI0IDAwMDAwIG4g CjAwMDAwODQ2NzUgMDAwMDAgbiAKMDAwMDA4NDczOCAwMDAwMCBuIAowMDAwMTA0NzMxIDAw MDAwIG4gCjAwMDAwODQ3ODMgMDAwMDAgbiAKMDAwMDA4NDgxNyAwMDAwMCBuIAowMDAwMTA0 NjM4IDAwMDAwIG4gCjAwMDAwODQ4NjIgMDAwMDAgbiAKMDAwMDA4NDg5NiAwMDAwMCBuIAow MDAwMTA0NTU5IDAwMDAwIG4gCjAwMDAwODQ5NDEgMDAwMDAgbiAKMDAwMDA4NDk4NSAwMDAw MCBuIAowMDAwMTA0NDI3IDAwMDAwIG4gCjAwMDAwODUwMzAgMDAwMDAgbiAKMDAwMDA4NTA2 NSAwMDAwMCBuIAowMDAwMTA0MzQ4IDAwMDAwIG4gCjAwMDAwODUxMTAgMDAwMDAgbiAKMDAw MDA4NTE1MSAwMDAwMCBuIAowMDAwMTA0MjY5IDAwMDAwIG4gCjAwMDAwODUxOTYgMDAwMDAg biAKMDAwMDA4NTIzNiAwMDAwMCBuIAowMDAwMTA0MTM3IDAwMDAwIG4gCjAwMDAwODUyODEg MDAwMDAgbiAKMDAwMDA4NTMxNiAwMDAwMCBuIAowMDAwMTA0MDE5IDAwMDAwIG4gCjAwMDAw ODUzNjEgMDAwMDAgbiAKMDAwMDA4NTM5OCAwMDAwMCBuIAowMDAwMTAzOTU0IDAwMDAwIG4g CjAwMDAwODU0NDMgMDAwMDAgbiAKMDAwMDA4NTUwOCAwMDAwMCBuIAowMDAwMTAzODc1IDAw MDAwIG4gCjAwMDAwODU1NTMgMDAwMDAgbiAKMDAwMDA4NTU5NSAwMDAwMCBuIAowMDAwMTAz NzgyIDAwMDAwIG4gCjAwMDAwODU2NDAgMDAwMDAgbiAKMDAwMDA4NTY4MiAwMDAwMCBuIAow MDAwMTAzNzAzIDAwMDAwIG4gCjAwMDAwODU3MjcgMDAwMDAgbiAKMDAwMDA4NTc3NyAwMDAw MCBuIAowMDAwMTAzNTcwIDAwMDAwIG4gCjAwMDAwODU4MjIgMDAwMDAgbiAKMDAwMDA4NTg2 MSAwMDAwMCBuIAowMDAwMTAzNDUyIDAwMDAwIG4gCjAwMDAwODU5MDYgMDAwMDAgbiAKMDAw MDA4NTk3OCAwMDAwMCBuIAowMDAwMTAzMzg3IDAwMDAwIG4gCjAwMDAwODYwMjMgMDAwMDAg biAKMDAwMDA4NjA2OCAwMDAwMCBuIAowMDAwMTAzMjU1IDAwMDAwIG4gCjAwMDAwODYxMTMg MDAwMDAgbiAKMDAwMDA4NjE3NSAwMDAwMCBuIAowMDAwMTAzMTc2IDAwMDAwIG4gCjAwMDAw ODYyMjAgMDAwMDAgbiAKMDAwMDA4NjI2MSAwMDAwMCBuIAowMDAwMTAzMDgzIDAwMDAwIG4g CjAwMDAwODYzMDYgMDAwMDAgbiAKMDAwMDA4NjM0NiAwMDAwMCBuIAowMDAwMTAzMDA0IDAw MDAwIG4gCjAwMDAwODYzOTEgMDAwMDAgbiAKMDAwMDA4NjQzMSAwMDAwMCBuIAowMDAwMTAy ODcyIDAwMDAwIG4gCjAwMDAwODY0NzYgMDAwMDAgbiAKMDAwMDA4NjUzMiAwMDAwMCBuIAow MDAwMTAyODA3IDAwMDAwIG4gCjAwMDAwODY1NzcgMDAwMDAgbiAKMDAwMDA4NjYxMyAwMDAw MCBuIAowMDAwMTAyNzE0IDAwMDAwIG4gCjAwMDAwODY2NTggMDAwMDAgbiAKMDAwMDA4Njcy OCAwMDAwMCBuIAowMDAwMTAyNjIxIDAwMDAwIG4gCjAwMDAwODY3NzMgMDAwMDAgbiAKMDAw MDA4Njg1NCAwMDAwMCBuIAowMDAwMTAyNTI4IDAwMDAwIG4gCjAwMDAwODY4OTkgMDAwMDAg biAKMDAwMDA4Njk3NCAwMDAwMCBuIAowMDAwMTAyMzk2IDAwMDAwIG4gCjAwMDAwODcwMTkg MDAwMDAgbiAKMDAwMDA4NzA5OCAwMDAwMCBuIAowMDAwMTAyMzE3IDAwMDAwIG4gCjAwMDAw ODcxNDMgMDAwMDAgbiAKMDAwMDA4NzE4MiAwMDAwMCBuIAowMDAwMTAyMjM4IDAwMDAwIG4g CjAwMDAwODcyMjcgMDAwMDAgbiAKMDAwMDA4NzI3NSAwMDAwMCBuIAowMDAwMTAyMTQ1IDAw MDAwIG4gCjAwMDAwODczMjAgMDAwMDAgbiAKMDAwMDA4NzM4MyAwMDAwMCBuIAowMDAwMTAy MDEzIDAwMDAwIG4gCjAwMDAwODc0MjggMDAwMDAgbiAKMDAwMDA4NzQ5OSAwMDAwMCBuIAow MDAwMTAxOTM0IDAwMDAwIG4gCjAwMDAwODc1NDQgMDAwMDAgbiAKMDAwMDA4NzU5MCAwMDAw MCBuIAowMDAwMTAxODQxIDAwMDAwIG4gCjAwMDAwODc2MzUgMDAwMDAgbiAKMDAwMDA4NzY3 NiAwMDAwMCBuIAowMDAwMTAxNzQ4IDAwMDAwIG4gCjAwMDAwODc3MjEgMDAwMDAgbiAKMDAw MDA4Nzc2OSAwMDAwMCBuIAowMDAwMTAxNjU1IDAwMDAwIG4gCjAwMDAwODc4MTQgMDAwMDAg biAKMDAwMDA4Nzg2MiAwMDAwMCBuIAowMDAwMTAxNTc2IDAwMDAwIG4gCjAwMDAwODc5MDcg MDAwMDAgbiAKMDAwMDA4Nzk1NCAwMDAwMCBuIAowMDAwMTAxNDU4IDAwMDAwIG4gCjAwMDAw ODc5OTkgMDAwMDAgbiAKMDAwMDA4ODA4MiAwMDAwMCBuIAowMDAwMTAxMzkzIDAwMDAwIG4g CjAwMDAwODgxMjcgMDAwMDAgbiAKMDAwMDA4ODE3MSAwMDAwMCBuIAowMDAwMTAxMjYwIDAw MDAwIG4gCjAwMDAwODgyMTYgMDAwMDAgbiAKMDAwMDA4ODI1OCAwMDAwMCBuIAowMDAwMTAx MTgxIDAwMDAwIG4gCjAwMDAwODgzMDMgMDAwMDAgbiAKMDAwMDA4ODMzOSAwMDAwMCBuIAow MDAwMTAxMDQ4IDAwMDAwIG4gCjAwMDAwODgzODQgMDAwMDAgbiAKMDAwMDA4ODQyOSAwMDAw MCBuIAowMDAwMTAwOTY5IDAwMDAwIG4gCjAwMDAwODg0NzQgMDAwMDAgbiAKMDAwMDA4ODUz NyAwMDAwMCBuIAowMDAwMTAwODc2IDAwMDAwIG4gCjAwMDAwODg1ODIgMDAwMDAgbiAKMDAw MDA4ODYyNyAwMDAwMCBuIAowMDAwMTAwNzgzIDAwMDAwIG4gCjAwMDAwODg2NzIgMDAwMDAg biAKMDAwMDA4ODcyMiAwMDAwMCBuIAowMDAwMTAwNjkwIDAwMDAwIG4gCjAwMDAwODg3Njcg MDAwMDAgbiAKMDAwMDA4ODgxNiAwMDAwMCBuIAowMDAwMTAwNTk3IDAwMDAwIG4gCjAwMDAw ODg4NjEgMDAwMDAgbiAKMDAwMDA4ODkwOSAwMDAwMCBuIAowMDAwMTAwNTA0IDAwMDAwIG4g CjAwMDAwODg5NTQgMDAwMDAgbiAKMDAwMDA4OTAwMSAwMDAwMCBuIAowMDAwMTAwNDExIDAw MDAwIG4gCjAwMDAwODkwNDYgMDAwMDAgbiAKMDAwMDA4OTA5MSAwMDAwMCBuIAowMDAwMTAw MzE4IDAwMDAwIG4gCjAwMDAwODkxMzYgMDAwMDAgbiAKMDAwMDA4OTE4MyAwMDAwMCBuIAow MDAwMTAwMjI1IDAwMDAwIG4gCjAwMDAwODkyMjggMDAwMDAgbiAKMDAwMDA4OTI3NSAwMDAw MCBuIAowMDAwMTAwMTMyIDAwMDAwIG4gCjAwMDAwODkzMjAgMDAwMDAgbiAKMDAwMDA4OTM2 MyAwMDAwMCBuIAowMDAwMTAwMDM5IDAwMDAwIG4gCjAwMDAwODk0MDggMDAwMDAgbiAKMDAw MDA4OTQ1MSAwMDAwMCBuIAowMDAwMDk5OTQ2IDAwMDAwIG4gCjAwMDAwODk0OTYgMDAwMDAg biAKMDAwMDA4OTU1OSAwMDAwMCBuIAowMDAwMDk5ODUzIDAwMDAwIG4gCjAwMDAwODk2MDQg MDAwMDAgbiAKMDAwMDA4OTY1NCAwMDAwMCBuIAowMDAwMDk5NzYwIDAwMDAwIG4gCjAwMDAw ODk2OTkgMDAwMDAgbiAKMDAwMDA4OTc0NyAwMDAwMCBuIAowMDAwMDk5NjY3IDAwMDAwIG4g CjAwMDAwODk3OTIgMDAwMDAgbiAKMDAwMDA4OTgzNCAwMDAwMCBuIAowMDAwMDk5NTc0IDAw MDAwIG4gCjAwMDAwODk4NzkgMDAwMDAgbiAKMDAwMDA4OTk0NiAwMDAwMCBuIAowMDAwMDk5 NDk1IDAwMDAwIG4gCjAwMDAwODk5OTEgMDAwMDAgbiAKMDAwMDA5MDA0MCAwMDAwMCBuIAow MDAwMDk5NDAyIDAwMDAwIG4gCjAwMDAwOTAwODUgMDAwMDAgbiAKMDAwMDA5MDE2NSAwMDAw MCBuIAowMDAwMDk5MzA5IDAwMDAwIG4gCjAwMDAwOTAyMTAgMDAwMDAgbiAKMDAwMDA5MDMx MSAwMDAwMCBuIAowMDAwMDk5MjE2IDAwMDAwIG4gCjAwMDAwOTAzNTYgMDAwMDAgbiAKMDAw MDA5MDQyMiAwMDAwMCBuIAowMDAwMDk5MTIzIDAwMDAwIG4gCjAwMDAwOTA0NjcgMDAwMDAg biAKMDAwMDA5MDUxNyAwMDAwMCBuIAowMDAwMDk5MDMwIDAwMDAwIG4gCjAwMDAwOTA1NjIg MDAwMDAgbiAKMDAwMDA5MDYxNCAwMDAwMCBuIAowMDAwMDk4OTM3IDAwMDAwIG4gCjAwMDAw OTA2NTkgMDAwMDAgbiAKMDAwMDA5MDczMiAwMDAwMCBuIAowMDAwMDk4ODQ0IDAwMDAwIG4g CjAwMDAwOTA3NzcgMDAwMDAgbiAKMDAwMDA5MDgxMiAwMDAwMCBuIAowMDAwMDk4NzUxIDAw MDAwIG4gCjAwMDAwOTA4NTcgMDAwMDAgbiAKMDAwMDA5MDkzMCAwMDAwMCBuIAowMDAwMDk4 NjU4IDAwMDAwIG4gCjAwMDAwOTA5NzUgMDAwMDAgbiAKMDAwMDA5MTA0NCAwMDAwMCBuIAow MDAwMDk4NTY1IDAwMDAwIG4gCjAwMDAwOTEwODkgMDAwMDAgbiAKMDAwMDA5MTEzMCAwMDAw MCBuIAowMDAwMDk4NDcyIDAwMDAwIG4gCjAwMDAwOTExNzUgMDAwMDAgbiAKMDAwMDA5MTIx NiAwMDAwMCBuIAowMDAwMDk4Mzc5IDAwMDAwIG4gCjAwMDAwOTEyNjEgMDAwMDAgbiAKMDAw MDA5MTMyOCAwMDAwMCBuIAowMDAwMDk4MzAwIDAwMDAwIG4gCjAwMDAwOTEzNzMgMDAwMDAg biAKMDAwMDA5MTQ1MCAwMDAwMCBuIAowMDAwMDk4MjA3IDAwMDAwIG4gCjAwMDAwOTE0OTUg MDAwMDAgbiAKMDAwMDA5MTUyNyAwMDAwMCBuIAowMDAwMDk4MTI4IDAwMDAwIG4gCjAwMDAw OTE1NzIgMDAwMDAgbiAKMDAwMDA5MTU5NyAwMDAwMCBuIAowMDAwMDkzODg3IDAwMDAwIG4g CjAwMDAwOTQ0MzEgMDAwMDAgbiAKMDAwMDA5NjU5NCAwMDAwMCBuIAowMDAwMDk2NjE2IDAw MDAwIG4gCjAwMDAwOTY2MzcgMDAwMDAgbiAKMDAwMDA5NjY1OCAwMDAwMCBuIAowMDAwMDk2 Njc5IDAwMDAwIG4gCjAwMDAwOTY3MTEgMDAwMDAgbiAKMDAwMDA5Nzk1MiAwMDAwMCBuIAow MDAwMDk4MDUxIDAwMDAwIG4gCjAwMDAxMDY0NzQgMDAwMDAgbiAKMDAwMDEwODc1OSAwMDAw MCBuIAowMDAwMTA4Nzk4IDAwMDAwIG4gCjAwMDAxMDg4MzYgMDAwMDAgbiAKMDAwMDEwODk0 NSAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDU2NwovUm9vdCA1NjUgMCBSCi9JbmZvIDU2 NiAwIFIKPj4Kc3RhcnR4cmVmCjEwOTEzNAolJUVPRgo= --------------C45300532BD5169C318532AD-- From jack@oratrix.nl Tue Oct 10 14:42:43 2000 From: jack@oratrix.nl (Jack Jansen) Date: Tue, 10 Oct 2000 15:42:43 +0200 Subject: [Pythonmac-SIG] strptime... In-Reply-To: Message by Erik Svensson , Sun, 8 Oct 2000 20:24:02 +0200 , <200010081820.UAA19466@diesel.t-a-n-k.com> Message-ID: <20001010134340.587AE303181@snelboot.oratrix.nl> > This might be a stupid question but I need strptime. It's not available in > the module. Where do I find it? time only exports strptime if it's available in the C library. It may be there for CW Pro 6, but I wouldn't count on it. If you can point me to a publicly available and distributable strptime C routine I'll gladly incorporate it in MacPython. -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm From just@letterror.com Tue Oct 10 16:47:00 2000 From: just@letterror.com (Just van Rossum) Date: Tue, 10 Oct 2000 16:47:00 +0100 Subject: [Pythonmac-SIG] Re: [Stackless] Stackless Python 1.2 + Continuations 0.9 In-Reply-To: <39E2F080.86ED1DA3@appliedbiometrics.com> Message-ID: In response to the new release of Stackless Python (see http://www.stackless.com/), here's a new stackless binary for MacPython 1.5.2: http://starship.python.net/~just/MacStacklessPython.sit.hqx (The archive contains a replacement for the PythonCore shared library) Just From sdm7g@virginia.edu Tue Oct 10 17:54:53 2000 From: sdm7g@virginia.edu (Steven D. Majewski) Date: Tue, 10 Oct 2000 12:54:53 -0400 (EDT) Subject: [Pythonmac-SIG] Darwin build of Python-2.0c1 Message-ID: The "What's new in Python-2.0" on : mentions initial support for static builds on Darwin/MacOSX. It does in fact now build and install right out of the box, using "configure --with-dyld --with-suffix=.x" Dynamic library support also work almost out of the box -- you just have to uncomment the "#*shared*" line in Modules/Setup. ( *DON'T* use --with-next-framework ! just edit Modules/Setup and run make again. ) cryptmodule will build if you uncomment it. bsddb & threading get added automatically by Setup.config. readline, zlib, and pyexpat all build if you have those libraries and you edit the locations in Setup. 'make test' results after fixes below: ... test_xmllib test_zipfile test_zlib 86 tests OK. 2 tests failed: test_format test_largefile 18 tests skipped: test_al test_audioop test_cd test_cl test_dbm test_dl test_gdbm test_gl test_imageop test_imgfile test_linuxaudiodev test_nis test_poll test_rgbimg test_sunaudiodev test_timing test_winreg test_winsound Remaing gotcha's: [1] Move the line for fcntlmodule above the *shared* marker. You can't build fcntlmodule as shared -- HFS+ filesystem is case blind, and you'll get a confusion resolving both FCNTL and fcntl as the same file if fcntlmodule.so is build. Keeping it built-in to the python exec. avoids this. [2] The platform specific header files ( FCNTL.py, TERMIOS.py, SOCKET.py ...) for Darwin aren't shipped pre-built in the distribution, and they aren't built until the "make install" phase, so those tests will be skipped on 'make test' done before install. [3] test/test_fcntl.py will still fail unless you add "Darwin1.2" among the BSD's: *** old.test_fcntl.py Tue Oct 10 12:18:33 2000 --- test_fcntl.py Tue Oct 10 12:21:00 2000 *************** *** 16,22 **** if verbose: print 'Status from fnctl with O_NONBLOCK: ', rv ! if sys.platform in ('netbsd1', 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5', 'bsdos2', 'bsdos3', 'bsdos4', 'openbsd', 'openbsd2'): --- 16,22 ---- if verbose: print 'Status from fnctl with O_NONBLOCK: ', rv ! if sys.platform in ('netbsd1', 'Darwin1.2', 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5', 'bsdos2', 'bsdos3', 'bsdos4', 'openbsd', 'openbsd2'): ---| Steven D. Majewski (804-982-0831) |--- ---| Department of Molecular Physiology and Biological Physics |--- ---| University of Virginia Health Sciences Center |--- ---| P.O. Box 10011 Charlottesville, VA 22906-0011 |--- "All operating systems want to be unix, All programming languages want to be lisp." From matt@webtimepromo.com Tue Oct 10 20:02:28 2000 From: matt@webtimepromo.com (Matthew Barre) Date: Tue, 10 Oct 2000 12:02:28 -0700 Subject: [Pythonmac-SIG] macos x binaries Message-ID: <000d01c032ec$a2c0f840$0100a8c0@tyler.net> I have been eagerly looking for an installable Python for Mac OS X Public Beta. I tried searching python.org and looking through the archives of this list, but I either missed it or didn't find it :) Can anyone point me somewhere? Matt From tony@metanet.com Tue Oct 10 18:39:02 2000 From: tony@metanet.com (Tony Lownds) Date: Tue, 10 Oct 2000 10:39:02 -0700 Subject: [Pythonmac-SIG] Darwin build of Python-2.0c1 In-Reply-To: Message-ID: <4.3.1.0.20001010102638.02162008@adam12.metanet.com> > >( *DON'T* use --with-next-framework ! just edit Modules/Setup and > run make again. ) I know that you can't get a working install if you build with --with-next-framework - did you experience other issues? >Remaing gotcha's: > >[3] test/test_fcntl.py will still fail unless you add "Darwin1.2" >among the BSD's: I think you should post that patch to python.sourceforge.net! also: [4] make install should be able to rename python.x to python This is advertised in configure --help as "--program-transform-name" but it isn't supported in the Makefile -Tony Lownds From sdm7g@virginia.edu Tue Oct 10 21:07:09 2000 From: sdm7g@virginia.edu (Steven D. Majewski) Date: Tue, 10 Oct 2000 16:07:09 -0400 (EDT) Subject: [Pythonmac-SIG] Darwin build of Python-2.0c1 In-Reply-To: <4.3.1.0.20001010102638.02162008@adam12.metanet.com> Message-ID: On Tue, 10 Oct 2000, Tony Lownds wrote: > >( *DON'T* use --with-next-framework ! just edit Modules/Setup and > > run make again. ) > > I know that you can't get a working install if you build with > --with-next-framework - did you experience other issues? No -- it went remarkably smoothly. With your initial patches, I still had to pass some environment variables to get thru the linking. I really did a configure --with-dyld --with-suffix=.x make right out of the box -- then copied my old editied Modules/Setup file and it built with dynamic modules. I was getting very frustrated trying to figure out how to 'fix' your fixes on the previous release: some things that were patched didn't seem to take (like the -lcc_dynamic for example ) - maybe they were patched in the wrong place. However, despite all my efforts to start clean, almost every make seemed to work differently. Reflecting on this, I realize that make and configure are the ultimate context dependent tools -- obviously by design -- that's what they are there for -- but it takes only a slight change in the environment to make a problem irreproducible! I hope the ease of installation means that somebody who really understands make and configure took a hack at cleaning it up before the release. ( I'm assuming that if I do a 'make clean' and configure and build again, I'll actually get back to the same place this time! ) Remaing gotcha's: > > > >[3] test/test_fcntl.py will still fail unless you add "Darwin1.2" > >among the BSD's: > > I think you should post that patch to python.sourceforge.net! > I tried, but right after I downloaded the new distribution, it seemed temporarily unreachable. ( Maybe it was overwhelmed with a million new python downloads this morning! ;-) I'll give it another try. > also: > > [4] make install should be able to rename python.x to python > This is advertised in configure --help as "--program-transform-name" but it > isn't supported in the Makefile That would be nice -- I've been manually renaming it so I don't have to remember to add the .x ! Now : Has anyone ported Tk to Darwin yet ? Now that shared libs are working, maybe we can set up a public to-do list and try to get some parallel processing done in porting and doing new modules. Do you know anything about the last status of the objc bindings ? I downloaded a copy: ( I think it claimed to be 0.55 ) the make file was set up for linking with gnustep. I tried to manually compile a couple of files, and ran into some errors right away. Having no other experience yet with NextStep/OpenStep/GnuStep/Cocoa under any of it's names, I'm probably going to leave that aside for now and see if I can port either some Mac/Carbon modules or some X11 based modules first. ---| Steven D. Majewski (804-982-0831) |--- ---| Department of Molecular Physiology and Biological Physics |--- ---| University of Virginia Health Sciences Center |--- ---| P.O. Box 10011 Charlottesville, VA 22906-0011 |--- "All operating systems want to be unix, All programming languages want to be lisp." From johannh@uclink.berkeley.edu Tue Oct 10 22:21:36 2000 From: johannh@uclink.berkeley.edu (Johann Hibschman) Date: Tue, 10 Oct 2000 14:21:36 -0700 Subject: [Pythonmac-SIG] Darwin build of Python-2.0c1 Message-ID: <200010102121.e9ALLaT31815@uclink4.berkeley.edu> On Tuesday, October 10, 2000, at 01:07 PM, Steven D. Majewski wrote: > I was getting very frustrated trying to figure out how to 'fix' > your fixes on the previous release: some things that were patched > didn't seem to take (like the -lcc_dynamic for example ) - maybe they > were patched in the wrong place. However, despite all my efforts > to start clean, almost every make seemed to work differently. > Reflecting on this, I realize that make and configure are the ultimate > context dependent tools -- obviously by design -- that's what they are > there for -- but it takes only a slight change in the environment to > make a problem irreproducible! Oh, gosh, that reminds me! Tony, I tried your patches to get 2.0b2 to compile, and I ran into a few problems. My set of compiler tools didn't recognize "-undefined ignore". It wanted "-undefined suppress" instead. After that switch, it worked fine. Has anyone else run into this? I guess I should try 2.0c1 now. Also, I had to resort to a bit of hackery to get Numeric-17.0 to compile, but now I'm uncertain whether it's just my set of compilation tools, which I "borrowed" from the Darwin 1.0.2 distribution. --J From tony@metanet.com Tue Oct 10 22:36:35 2000 From: tony@metanet.com (Tony Lownds) Date: Tue, 10 Oct 2000 14:36:35 -0700 Subject: [Pythonmac-SIG] Darwin build of Python-2.0c1 In-Reply-To: <200010102121.e9ALLaT31815@uclink4.berkeley.edu> Message-ID: <4.3.1.0.20001010143219.02212580@adam12.metanet.com> >Oh, gosh, that reminds me! > >Tony, I tried your patches to get 2.0b2 to compile, and I ran into a few >problems. > >My set of compiler tools didn't recognize "-undefined ignore". It wanted >"-undefined suppress" instead. > >After that switch, it worked fine. Has anyone else run into this? >I guess I should try 2.0c1 now. Thanks, the patch that went into 2.0c1 does use -undefined suppress >After that switch, it worked fine. Has anyone else run into this? >I guess I should try 2.0c1 now. > >Also, I had to resort to a bit of hackery to get Numeric-17.0 to compile, >but now I'm uncertain whether it's just my set of compilation tools, which >I "borrowed" from the Darwin 1.0.2 distribution. I have the "borrowed" toolset too. I'm looking forward to downloadable development tools! I'm sure it will be substantially the same set of stuff as is in the Darwin CVS tree, plus thier higher level tools. -Tony Lownds From tony@metanet.com Wed Oct 11 02:56:19 2000 From: tony@metanet.com (Tony Lownds) Date: Tue, 10 Oct 2000 18:56:19 -0700 Subject: [Pythonmac-SIG] Darwin build of Python-2.0c1 In-Reply-To: References: <4.3.1.0.20001010102638.02162008@adam12.metanet.com> Message-ID: <4.3.1.0.20001010184901.021328b8@adam12.metanet.com> > >Now that shared libs are working, maybe we can set up a public >to-do list and try to get some parallel processing done in porting >and doing new modules. Great idea! I set up a wiki at http://tony.lownds.com/macosx/wiki/ - the only thing left to do is actually post a todo list. I'll do that soon, in the meantime, feel free to sign on and do the wiki thing to it. -Tony Lownds From bobsavage@mac.com Wed Oct 11 06:07:19 2000 From: bobsavage@mac.com (Bob Savage) Date: Tue, 10 Oct 2000 22:07:19 -0700 Subject: [Pythonmac-SIG] strptime... In-Reply-To: <20001010134340.587AE303181@snelboot.oratrix.nl> Message-ID: > This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. --MS_Mac_OE_3054060439_77099_MIME_Part Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit Here is a python version of strptime --MS_Mac_OE_3054060439_77099_MIME_Part Content-type: multipart/appledouble; boundary="MS_Mac_OE_3054060436_74781_MIME_Part" --MS_Mac_OE_3054060436_74781_MIME_Part Content-type: application/applefile; name="strptime.py" Content-transfer-encoding: base64 Content-disposition: attachment AAUWBwACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAJAAAAPgAAACAAAAADAAAAXgAAAAsAAAAC AAAAaQAAAf5URVhUUHl0aAEA/////wAAAAAAAAAAAAAAAAAAAAAAAHN0cnB0aW1lLnB5AAAB AAAAAbwAAAC8AAAAQpWH2q+YbNlPDmRuqrpoopwMelIFJFo88J7PV0TnODjhxQadhTgC2L0E lm0Wbn65fQOglrhMv9jmdElsC9LRLh5h5FHpi5PDEq46+EjLqVjxSxTu8DhB5F4CppWUlPvT rKcGhyrEZhETTHnbgpiwkQhknz1JnmH26AXX5zEPMB9MuFAmuMiycz4HBvyD0NXVJPDZ+2q6 aZUTjmDK2xdcSkiAIsnS4VJajcUq0sIFYy3+2iPnTHdAzRpcWqhSW44yv7Rya1vfWh/xPeLm HGsX5N5BYo7+3blE0KitmN3DvfhLqMOwanoAs7Ln2NEaHyjMIwAAALh7cwcAAAB0YWJzaXpl KAIAAABpCAAAAGkBAAAAcwwAAABmb250c2V0dGluZ3MoBAAAAHMGAAAATW9uYWNvaQAAAABp CQAAACgDAAAAaQAAAABpAAAAAGkAAAAAcwwAAAB3aW5kb3dib3VuZHMoBAAAAGkkAAAAaSwA AABprgIAAGn8AgAAcwsAAABydW5fYXNfbWFpbmkAAAAAcwkAAABzZWxlY3Rpb24oAgAAAGm0 AgAAabQCAAAwAAABAAAAAbwAAAC8AAAAQgW33UwfOAAAABwAMgAAUHlXUwAAAAoAgAAAAAAA AAXAFPAPd2luZG93IHNldHRpbmdz --MS_Mac_OE_3054060436_74781_MIME_Part Content-type: text/plain; name="strptime.py"; x-mac-creator="50797468"; x-mac-type="54455854" Content-disposition: attachment Content-transfer-encoding: base64 IiIiIHN0cnB0aW1lIHZlcnNpb24gMS4zLCBUaW1lLXN0YW1wOiA8OTYvMDkvMjMgMjE6MjI6 MjQgZmxvZ25hdD4NICAgICAgICAgICAgICAgVGhlIHJldmVyc2Ugb2Ygc3RyZnRpbWUuDQ0g ICAgQ29weXJpZ2h0IChDKSAxOTk2IEFuZHkgRXNraWxzc29uLCBmbG9nbmF0QGZ1a3QuaGst ci5zZQ0NICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgdW5yZXN0cmljdGVkIHJlZGlzdHJp YnV0aW9uIGlzIGFsbG93ZWQgdW5kZXIgdGhlDSAgICB0ZXJtcyBvZiB0aGUgR1BMLiAgRm9y IGZ1bGwgZGV0YWlscyBvZiB0aGUgbGljZW5zZSBjb25kaXRpb25zIG9mIHRoaXMNICAgIHNv ZnR3YXJlLCBzZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLg0NICAgIEFuZCBo ZXJlIGNvbWVzIHRoZSBkb2N1bWVudGF0aW9uOg0NICAgIFRocm93IGEgc3RyaW5nIGFuZCBh IGZvcm1hdCBzcGVjaWZpY2F0aW9uIGF0IHN0cnB0aW1lIGFuZCBpZiBldmVyeXRoaW5nDSAg ICBpcyBvayB5b3Ugd2lsbCBnZXQgYSB0dXBsZSBjb250YWluaW5nIDkgaXRlbXMgdGhhdCBh cmUgY29tcGF0aWJsZSB3aXRoDSAgICBweXRob25zIHRpbWUtbW9kdWxlLg0NICAgIGludGVy ZmFjZToNICAgICAgIHN0cnB0aW1lKGlucHV0c3RyaW5nLCBmb3JtYXRzdHJpbmcpDQ0gICAg ICAgTGl0dGxlIGVycm9yY2hlY2tpbmcuLi4gc28geW91J2QgYmV0dGVyIGtub3cgd2hhdCB5 b3UgYXJlIGRvaW5nLg0NICAgIGV4YW1wbGU6DSAgICAgICBmcm9tIHN0cnB0aW1lIGltcG9y dCAqDSAgICAgICBta3RpbWUoc3RycHRpbWUoIjI2LzYgMTk3MyIsICIlZC8lbSAlWSIpKQ0N ICAgIEFuZCB2b2lsYSB5b3UgaGF2ZSB0aGUgc2Vjb25kIHdoZW4gdGhlIGF1dGhvciBvZiB0 aGlzIGZ1bmN0aW9uIHdhcyBib3JuLg0NICAgIFRoZSBzdXBwb3J0ZWQgZm9ybWF0IGlkZW50 aWZpZXJzIGFyZToNICAgICAgICAlYSB3ZWVrZGF5IGluIHNob3J0IHRleHQtZm9ybSwgZS5n LiBNb24NCSVBIHdlZWtkYXkgaW4gbG9uZyB0ZXh0LWZvcm0sIGUuZy4gTW9uZGF5DQklYiBt b250aCBpbiBzaG9ydCB0ZXh0LWZvcm0sIGUuZy4gSnVsDQklQiBtb250aCBpbiBsb25nIHRl eHQtZm9ybSBlLmcuIEp1bHkNCSVjIHRoZSBmb3JtYXQgc3BlY2lmaWVkIGJ5IERhdGVBbmRU aW1lUmVwcmVzZW50YXRpb24NCSVkIHRoZSBkYXkgaW4gbW9udGggaW4gbnVtZXJpYyBmb3Jt LCBlLmcuIDI0DQklSCBob3VyIGluIDI0IGhvdXIgZm9ybQ0JJWoganVsaWFuIGRheSAoZGF5 IG9mIHllYXIpDQklbSBtb250aCBpbiBudW1lcmljIGZvcm1hdA0JJU0gbWludXRlDQklUyBz ZWNvbmQNCSVUIFRpbWUgaW4gJyVIOiVNOiVTJy1mb3JtYXQNCSV3IHdlZWtkYXksIDA9bW9u ZGF5DQkleCBkYXRlIGluIGZvcm1hdCByZXByZXNlbnRlZCBieSBEYXRlUmVwcmVzZW50YXRp b24NCSVYIHRpbWUgaW4gZm9ybWF0IHJlcHJlc2VudGVkIGJ5IFRpbWVSZXByZXNlbnRhdGlv bg0JJXkgeWVhciBpbiBzaG9ydCBmb3JtDQklWSB5ZWFyIGluIGxvbmcgZm9ybQ0JJSUgJS1z aWduDQ0gICAgSSBoYXZlIGRvbmUgc29tZSB0aGlua2luZyBoZXJlICgqUkVBTExZKikgYW5k IGl0IGlzIHBvc3NpYmxlIHRvIGNvbmZpZ3VyZQ0gICAgdGhpcyBtb2R1bGUgc28gaXQgdXNl cyBvdGhlciBsYW5ndWFnZXMgYnkgYWRkaW5nIHRoZWlyIG5hbWVzIHRvIHRoZQ0gICAgZGlj dGlvbmFyaWVzIGZpcnN0IGluIHRoZSBmaWxlLCBhbmQgc2V0dGluZyB0aGUgdmFyaWFibGUg TEFOR1VBR0UuDQ0gICAgRm9yIHlvdXIgZXhlcmNpc2UgSSBoYXZlIGluc2VydGVkIHRoZSBz d2VkaXNoIG5hbWVzIDstKQ0NICAgIFRoZSBsZmluZCwgbmFtZSwgY29tcGxleCwgbnVtYmVy cyBhbmQgcGFyc2UgZnVuY3Rpb25zIGFyZSBmb3IgaW50ZXJuYWwNICAgIHVzZSwgY2FsbGVk IGJ5IHN0cnB0aW1lLg0NICAgIFVoLi4gb2ggeWVhaC4uIGlmIHlvdSB3YW50IHRvIGdldCBp biB0b3VjaCB3aXRoIG1lLi4gSSBhbSByZWFjaGFibGUNICAgIGF0IGZsb2duYXRAZnVrdC5o ay1yLnNlLCB0aGUgbmV3ZXN0IHZlcnNpb24gb2YgdGhpcyBmaWxlIGNhbiBwcm9iYWJseQ0g ICAgYmUgZm91bmQgc29tZXdoZXJlIGNsb3NlIHRvIGh0dHA6Ly93d3cuZnVrdC5oay1yLnNl L35mbG9nbmF0DQ0gICAgSWYgeW91IGxpa2UgaXQsIHNlbmQgYSBwb3N0Y2FyZCB0byBBbmR5 IEVza2lsc3Nvbg0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBL5G1u 5HJzdi4gM2IyMjgNCQkJCSAgICAgICBTLTIyNiA0NiBMdW5kDQkJCQkgICAgICAgU3dlZGVu DQ0gICAgVWhtIGJlIGdlbnRsZSB3aXRoIHRoZSBidWctcmVwb3J0cywgaXRzIHRoZSBmaXJz dCB0aW1lIGZvciBtZSA7LSkNDSAgICAiIiINDWltcG9ydCBzdHJpbmcNDUxvbmdEYXlOYW1l cz17ICdFbmdsaXNoJyA6IFsgJ01vbmRheScsICdUdWVzZGF5JywgJ1dlZG5lc2RheScsDQkJ CSAgICAgJ1RodXJzZGF5JywgJ0ZyaWRheScsICdTYXR1cmRheScsICdTdW5kYXknXSwNCSAg ICAgICAnU3dlZGlzaCcgOiBbICdN5W5kYWcnLCAnVGlzZGFnJywgJ09uc2RhZycsICdUb3Jz ZGFnJywNCQkJICAgICAnRnJlZGFnJywgJ0z2cmRhZycsICdT9m5kYWcnXX0NU2hvcnREYXlO YW1lcz17ICdFbmdsaXNoJyA6IFsgJ01vbicsICdUdWUnLCAnV2VkJywgJ1RodScsICdGcmkn LCAnU2F0JywgJ1N1biddLA0JCSdTd2VkaXNoJyA6IFsgJ03lbicsICdUaXMnLCAnT25zJywg J1RvcicsICdGcmUnLCAnTPZyJywgJ1P2biddfQ0NTG9uZ01vbnRoTmFtZXM9eyAnRW5nbGlz aCcgOiBbJ25vbmUnLCAnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcs DQkJCSAgICAgICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXIn LA0JCQkgICAgICAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddLA0JCSAnU3dl ZGlzaCcgOiBbJ25vbmUnLCAnSmFudWFyaScsICdGZWJydWFyaScsICdNYXJzJywgJ0Fwcmls JywNCQkJICAgICAgJ01haicsICdKdW5pJywgJ0p1bGknLCAnQXVndXN0aScsJ1NlcHRlbWJl cicsDQkJCSAgICAgICdPa3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfQ1TaG9y dE1vbnRoTmFtZXM9eyAnRW5nbGlzaCcgOiBbJ25vbmUnLCAnSmFuJywgJ0ZlYicsICdNYXIn LCAnQXByJywgJ01heScsICdKdW4nLA0JCQkgICAgICAgJ0p1bCcsICdBdWcnLCAnU2VwJywg J09jdCcsICdOb3YnLCAnRGVjJ10sDQkJICAnU3dlZGlzaCcgOiBbJ25vbmUnLCAnSmFuJywg J0ZlYicsICdNYXInLCAnQXByJywgJ01haicsICdKdW4nLA0JCQkgICAgICAgJ0p1bCcsICdB dWcnLCAnU2VwJywgJ09rdCcsICdOb3YnLCAnRGVjJ119DURhdGVBbmRUaW1lUmVwcmVzZW50 YXRpb249eyAnRW5nbGlzaCcgOiAnJWEgJWIgJWQgJUg6JW06JVMgJVknLA0JCQkgICAgJ1N3 ZWRpc2gnIDogJyVhICVkICViICVZICVIOiVtOiVTJyB9DQ1EYXRlUmVwcmVzZW50YXRpb24g PSB7ICdFbmdsaXNoJyA6ICclbS8lZC8leScsDQkJICAgICAgICdTd2VkaXNoJyA6ICclZC8l bS8leSd9DQ1UaW1lUmVwcmVzZW50YXRpb24gPSB7ICdFbmdsaXNoJyA6ICclSDolTTolUycs DQkJICAgICAgICdTd2VkaXNoJyA6ICclSDolTTolUyd9DQ1MQU5HVUFHRT0nRW5nbGlzaCcN DUJhZEZvcm1hdHRlcj0nQW4gaWxsZWdhbCBmb3JtYXR0ZXIgd2FzIGdpdmVuJw0NI0NoZWNr IGlmIHN0cmluZiBiZWdpbnMgd2l0aCBzdWJzdHINZGVmIGxmaW5kKHN0ciwgc3Vic3RyKToN ICAgcmV0dXJuIHN0cmluZy5sb3dlcihzdHJbOmxlbihzdWJzdHIpXSk9PXN0cmluZy5sb3dl cihzdWJzdHIpDQ0jYXRvbXMgY29uc2lzdGluZyBvZiBvdGhlciBhdG9tcw1kZWYgY29tcGxl eChzdHIsIGZvcm1hdCwgYmFzZSk6DSAgIGNvZGU9Zm9ybWF0WzoxXQ0gICBpZiBjb2RlPT0n Yyc6IA0gICAgICBzdHJpbmc9RGF0ZUFuZFRpbWVSZXByZXNlbnRhdGlvbltMQU5HVUFHRV0N ICAgZWxpZiBjb2RlPT0nVCc6DSAgICAgIHN0cmluZz0nJUg6JU06JVMnDSAgIGVsaWYgY29k ZT09J3gnOg0gICAgICBzdHJpbmc9RGF0ZVJlcHJlc2VudGF0aW9uW0xBTkdVQUdFXQ0gICBl bGlmIGNvZGU9PSdYJzoNICAgICAgc3RyaW5nPVRpbWVSZXByZXNlbnRhdGlvbltMQU5HVUFH RV0NDSAgIHJldHVybiBwYXJzZShzdHIsIHN0cmluZywgYmFzZSkNDSNzdHJpbmcgYmFzZWQg bmFtZXMNZGVmIG5hbWVzKHN0ciwgZm9ybWF0LCBiYXNlKToNICAgY29kZT1mb3JtYXRbOjFd DSAgIGlmIGNvZGU9PSdhJzoNICAgICAgc2VsZWN0aW9uPVNob3J0RGF5TmFtZXNbTEFOR1VB R0VdDSAgICAgIHJlc3VsdD0nd2Vla2QnDSAgIGVsaWYgY29kZT09J0EnOg0gICAgICBzZWxl Y3Rpb249TG9uZ0RheU5hbWVzW0xBTkdVQUdFXQ0gICAgICByZXN1bHQ9J3dlZWtkJw0gICBl bGlmIGNvZGU9PSdiJzoNICAgICAgc2VsZWN0aW9uPVNob3J0TW9udGhOYW1lc1tMQU5HVUFH RV0NICAgICAgcmVzdWx0PSdtb250aCcNICAgZWxpZiBjb2RlPT0nQic6DSAgICAgIHNlbGVj dGlvbj1Mb25nTW9udGhOYW1lc1tMQU5HVUFHRV0NICAgICAgcmVzdWx0PSdtb250aCcNICAg DSAgIG1hdGNoPU5vbmUNICAgZm9yIGkgaW4gc2VsZWN0aW9uOg0gICAgICBpZiBsZmluZChz dHIsIGkpOg0JIG1hdGNoPWkNCSBicmVhaw0NICAgYmFzZVtyZXN1bHRdPXNlbGVjdGlvbi5p bmRleChtYXRjaCkNICAgcmV0dXJuIGxlbihtYXRjaCkNDSNudW1lcmljIHN0dWZmDWRlZiBu dW1lcmljKHN0ciwgZm9ybWF0LCBiYXNlKToNICAgY29kZT1mb3JtYXRbOjFdDSAgIGlmIGNv ZGU9PSdkJzogcmVzdWx0PSdkYXknDSAgIGVsaWYgY29kZT09J0gnOiByZXN1bHQ9J2hvdXIn DSAgIGVsaWYgY29kZT09J2onOiByZXN1bHQ9J2p1bGlhbmQnDSAgIGVsaWYgY29kZT09J20n OiByZXN1bHQ9J21vbnRoJw0gICBlbGlmIGNvZGU9PSdNJzogcmVzdWx0PSdtaW4nDSAgIGVs aWYgY29kZT09J1MnOiByZXN1bHQ9J3NlYycNICAgZWxpZiBjb2RlPT0ndyc6IHJlc3VsdD0n d2Vla2QnDSAgIGVsaWYgY29kZT09J3knOiByZXN1bHQ9J3Nob3J0WWVhcicNICAgZWxpZiBj b2RlPT0nWSc6IHJlc3VsdD0neWVhcicNDSAgIGk9MA0gICB3aGlsZSBzdHJbaV0gaW4gc3Ry aW5nLndoaXRlc3BhY2U6IGk9aSsxDSAgIGo9aQ0gICBpZiBsZW4oZm9ybWF0KT4xOg0gICAg ICB3aGlsZSBub3Qgc3RyW2pdIGluIHN0cmluZy53aGl0ZXNwYWNlIGFuZCBzdHJbal0hPWZv cm1hdFsxXTogaj1qKzENICAgZWxzZToNICAgICAgdHJ5Og0JIHdoaWxlIG5vdCBzdHJbal0g aW4gc3RyaW5nLndoaXRlc3BhY2U6IGo9aisxDSAgICAgIGV4Y2VwdCBJbmRleEVycm9yOg0J IHBhc3MNDSAgICMgaG1tIGNvdWxkIGNoZWNrIGV4Y2VwdGlvbiBoZXJlLCBidXQgd2hhdCBj b3VsZCBJIGFkZD8NICAgYmFzZVtyZXN1bHRdPXN0cmluZy5hdG9pKHN0cltpOmpdKQ0gICAN ICAgcmV0dXJuIGoNDXBhcnNlRnVucz17ICdhJzpuYW1lcywgJ0EnOm5hbWVzLCAnYic6bmFt ZXMsICdCJzpuYW1lcywgJ2MnOmNvbXBsZXgsICdkJzpudW1lcmljLA0JICAgICdIJzpudW1l cmljLCAnaic6bnVtZXJpYywgJ20nOm51bWVyaWMsICdNJzpudW1lcmljLCAnUyc6bnVtZXJp YywNCSAgICAnVCc6Y29tcGxleCwgJ3cnOm51bWVyaWMsICd4Jzpjb21wbGV4LCAneSc6bnVt ZXJpYywgJ1knOm51bWVyaWN9DQ0jIFdlbGwgc3BsaXQgdXAgaW4gYXRvbXMsIHJlYXNvbiB0 byB3aHkgdGhpcyBpcyBzZXBhcmF0ZWQgZnJvbSBhdHJwdGltZQ0jIGlzIHRvIGJlIGFibGUg dG8gcmVwYXJzZSBjb21wbGV4IGF0b21zDWRlZiBwYXJzZShzdHIsIGZvcm1hdCwgYmFzZSk6 DSAgIGF0b21zPXN0cmluZy5zcGxpdChmb3JtYXQsICclJykNICAgY2hhckNvdW50ZXI9MA0g ICBhdG9tQ291bnRlcj0wDQ0gICAjIEhleSBJIGFtIGxhYXp5IGFuZCB0aGluayB0aGF0IHRo ZSBmb3JtYXQgaXMgZXhhY3RseSB3aGF0IHRoZSBzdHJpbmcgaXMhDSAgIGNoYXJDb3VudGVy PWNoYXJDb3VudGVyK2xlbihhdG9tc1thdG9tQ291bnRlcl0pDSAgIGF0b21Db3VudGVyPWF0 b21Db3VudGVyKzENDSAgIHdoaWxlIGF0b21Db3VudGVyIDwgbGVuKGF0b21zKSBhbmQgY2hh ckNvdW50ZXIgPCBsZW4oc3RyKToNICAgICAgYXRvbT1hdG9tc1thdG9tQ291bnRlcl0NDSAg ICAgIGlmIGF0b209PScnOiAjIGVzY2FwZWQNCSBjaGFyQ291bnRlcj1jaGFyQ291bnRlcisx DQkgYXRvbUNvdW50ZXI9YXRvbUNvdW50ZXIrMQ0JIGNoYXJDb3VudGVyPWNoYXJDb3VudGVy K2xlbihhdG9tc1thdG9tQ291bnRlcl0pDSAgICAgIGVsc2U6DQkgdHJ5Og0JICAgIHBhcnNl ZnVuY3Rpb249cGFyc2VGdW5zW2F0b21bOjFdXQ0JIGV4Y2VwdCBLZXlFcnJvcjoNCSAgICBy YWlzZSBCYWRGb3JtYXR0ZXIsIGF0b21bOjFdDQkgZ3JhYmJlZD1hcHBseShwYXJzZWZ1bmN0 aW9uLCAoc3RyW2NoYXJDb3VudGVyOl0sIGF0b20sIGJhc2UpKQ0JIGNoYXJDb3VudGVyPWNo YXJDb3VudGVyK2dyYWJiZWQrbGVuKGF0b20pLTENDSAgICAgIGF0b21Db3VudGVyPWF0b21D b3VudGVyKzENDSAgIHJldHVybiBjaGFyQ291bnRlcg0NIyBPayBoZXJlIHdlIGdvLCB0YWRh YWEgLS0+IFNUUlBUSU1FIDwtLSBhdCBsYXN0Li4NZGVmIHN0cnB0aW1lKHN0ciwgZm9ybWF0 KToNICAgIiIiQ29udmVydHMgc3RyIHNwZWNpZmllZCBieSBmb3JtYXQgdG8gdHVwbGUgdXNl YWJsZSBieSB0aGUgdGltZSBtb2R1bGUiIiINICAgcmV0dXJuVGltZT17fQ0gICByZXR1cm5U aW1lWyd5ZWFyJ109MA0gICByZXR1cm5UaW1lWydzaG9ydFllYXInXT1Ob25lDSAgIHJldHVy blRpbWVbJ21vbnRoJ109MA0gICByZXR1cm5UaW1lWydkYXknXT0wDSAgIHJldHVyblRpbWVb J2hvdXInXT0wDSAgIHJldHVyblRpbWVbJ21pbiddPTANICAgcmV0dXJuVGltZVsnc2VjJ109 MA0gICByZXR1cm5UaW1lWyd3ZWVrZCddPTANICAgcmV0dXJuVGltZVsnanVsaWFuZCddPTAN ICAgcmV0dXJuVGltZVsnZHN0J109MA0NICAgcGFyc2Uoc3RyLCBmb3JtYXQsIHJldHVyblRp bWUpDQ0gICBpZiByZXR1cm5UaW1lWydzaG9ydFllYXInXSE9Tm9uZToNICAgICAgcmV0dXJu VGltZVsneWVhciddPXJldHVyblRpbWVbJ3Nob3J0WWVhciddKzE5MDANDSAgIHJldHVybiAo cmV0dXJuVGltZVsneWVhciddLCByZXR1cm5UaW1lWydtb250aCddLCByZXR1cm5UaW1lWydk YXknXSwNCSAgIHJldHVyblRpbWVbJ2hvdXInXSwgcmV0dXJuVGltZVsnbWluJ10sIHJldHVy blRpbWVbJ3NlYyddLA0JICAgcmV0dXJuVGltZVsnd2Vla2QnXSwgcmV0dXJuVGltZVsnanVs aWFuZCddLCByZXR1cm5UaW1lWydkc3QnXSkNDSMganVzdCBmb3IgbXkgY29udmVuaWVuY2UN ZGVmIHN0cnBkZWJ1ZygpOg0gICBpbXBvcnQgcGRiDSAgIHBkYi5ydW4oJ3N0cnB0aW1lKCIl IFR1ZSAzIEZlYiIsICIlJSAlYSAlZCAlYiIpJykNDWRlZiB0ZXN0KCk6DSAgIGZyb20gdGlt ZSBpbXBvcnQgKg0gICBhPWFzY3RpbWUobG9jYWx0aW1lKHRpbWUoKSkpDSAgIHByaW50IGEN ICAgYj1zdHJwdGltZShhLCAnJWEgJWIgJWQgJUg6JU06JVMgJVknKQ0gICBwcmludCBhc2N0 aW1lKGIpDSAgIHByaW50IHN0cnB0aW1lKCIlJSAlIFR1ZSAzIEZlYiIsICIlJSUlICUlICVh ICVkICViIikNICAgcHJpbnQgc3RycHRpbWUoJ1RodSwgMTIgU2VwIDE5OTYgMTk6NDI6MDYg R01UJywgJyVhLCAlZCAlYiAlWSAlVCBHTVQnKQ0gICBwcmludCBzdHJwdGltZSgnVGh1LCAx MiBTZXAgMTk5NiAxOTo0MjowNiBHTVQnLCAnJWEsICVkICViICVZICVUJykNICAgcHJpbnQg c3RycHRpbWUoJ1RodSwgMTIgU2VwIDE5OTYgMTk6NDI6MDYnLCAnJWEsICVkICViICVZICVU JykNICAgDWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6DSAgIHRlc3QoKQ0NDQ== --MS_Mac_OE_3054060436_74781_MIME_Part-- --MS_Mac_OE_3054060439_77099_MIME_Part-- From nick@src.uchicago.edu Wed Oct 11 16:16:12 2000 From: nick@src.uchicago.edu (Nick Collier) Date: Wed, 11 Oct 2000 10:16:12 -0500 Subject: [Pythonmac-SIG] QuickDraw Message-ID: <39E4843C.66E0FBAF@src.uchicago.edu> Hi, Are there any tutorial, examples, etc. of working with QuickDraw and W out there. Specifically, I'd like to be able to set up a full screen window (i.e. no title bar, no menu, no frame, etc.) and then draw some lines in it. thanks, Nick -- Nick Collier Social Science Research Computing University of Chicago http://repast.sourceforge.net From nick@src.uchicago.edu Wed Oct 11 23:59:07 2000 From: nick@src.uchicago.edu (Nick Collier) Date: Wed, 11 Oct 2000 17:59:07 -0500 Subject: [Pythonmac-SIG] Qd questions Message-ID: <39E4F0BB.BBFC80E1@src.uchicago.edu> Hi, I'm trying to use Qd to draw in a window of my own creation, but I'm think I'm missing something basic here. I start an interactive interpreter under the Python IDE and do the following: w = Window((300, 300), "hello") w.open() So far so good, a window appears. I then do: Qd.SetPort(w.wid) Qd.MoveTo(10, 10) Qd.LineTo(150, 150) And the line appears in the interpreter window not in the "hello" window. I've also tried doing Qd.SetPort(w.wid.GetWindowPort()) w.SetPort() and then the line draw, but the result is the same. It looks like Qd is not drawing to the correct GrafPort. I also ran the above code as a script as the result was the same. So, how do I this? On a related note, how can I use Win.NewCWindow to create a visible window on the screen? Do I need to wrap it somehow? Details are very much appreciated. thanks, Nick -- Nick Collier Social Science Research Computing University of Chicago http://repast.sourceforge.net From sdm7g@virginia.edu Thu Oct 12 18:02:56 2000 From: sdm7g@virginia.edu (Steven D. Majewski) Date: Thu, 12 Oct 2000 13:02:56 -0400 (EDT) Subject: [Pythonmac-SIG] Darwin build of Python-2.0c1 In-Reply-To: <4.3.1.0.20001010184901.021328b8@adam12.metanet.com> Message-ID: On Tue, 10 Oct 2000, Tony Lownds wrote: > > Great idea! I set up a wiki at http://tony.lownds.com/macosx/wiki/ - the > only thing left to do is actually post a todo list. I'll do that soon, in > the meantime, feel free to sign on and do the wiki thing to it. > Tony: Is there a way that I could upload a pre-built binaries tar-file there ? ( Or maybe I should try to figure out how to reactivate my idle Starship account! ) I can provide the builds if someone has a place to make the available. Other good news: tck.8.3.2 and tk.8.3.2 build except for an error on the final link command. Redoing the command without the "-lc" seemed to work. With the Tk libraries and headers installed in the usual /usr/local places, uncommenting the right lines built Tkinter without a hitch. It runs under X11 in the public beta ( Logging in as ">console" gets you to a bare console from which you can type "startx" , assuming you've got it in your path. There is a binary distribution of X11R6 and lesstif you can find from www.darwinfo.com . ) -- it should run under the free Darwin+X11, and from the OSX desktop, it gives a message that there's no $DISPLAY and doesn't crash or do anything nasty! Not so good: I could not get GL to build yet. WxWindows can't guess the system, and when you tell it, it doesn't like the answer. I'm trying to formulate a convincing lie based on some sort of BSD version. ( building the unix/X11 version, not the Mac one. ) gtk reportedly should work on Darwin, but I had problems building glib. There are some name and location differences for the Carbon headers on OSX vs. the Codewarrior mac headers. There are a bunch of the sort where Windows.h has been renamed MacWindows.h, but Codewarrior keeps both for backwards compatability, while OSX has only MacWindows.h in the Carbon framework. ( multiply this by a half dozen similar cases. ) I've downloaded the carbon dater and a copy of the Universal interfaces to see what I can see. ---| Steven D. Majewski (804-982-0831) |--- ---| Department of Molecular Physiology and Biological Physics |--- ---| University of Virginia Health Sciences Center |--- ---| P.O. Box 10011 Charlottesville, VA 22906-0011 |--- "All operating systems want to be unix, All programming languages want to be lisp." From tom@othermedia.com Thu Oct 12 20:49:19 2000 From: tom@othermedia.com (tom smith) Date: Thu, 12 Oct 2000 20:49:19 +0100 Subject: [Pythonmac-SIG] Gadfly and mac Message-ID: hi, I've got the gadfly database going on my mac, but I needed to use the EditPythonPrefs utility and run some of the scripts in the python folder. There is a slight problem, along the lines of, I have to open and run Gadfly.py before import gadfly will import without erroring. It says.. call of non function (type module) ..yet gadfly appears in the modules window. any ideas? tom p.s I'm using python 2 From jack@oratrix.nl Thu Oct 12 21:27:17 2000 From: jack@oratrix.nl (Jack Jansen) Date: Thu, 12 Oct 2000 22:27:17 +0200 Subject: [Pythonmac-SIG] Python on on a second drive Message-ID: <20001012202722.CE1DA104729@oratrix.oratrix.nl> There's a bug report on the sourceforge site that having Python on a second drive causes problems with warm restarts (they don't proceed past the happy mac state). Actually the problem may be only with removable drives, the bug report isn't very clear, and it is anonymous so I can't ask the original submitter. The submitter seems to think that the problem is with PythonCore being an alias to an external drive. I can hardly imagine this, but I can't test it as I don't have a second drive.If someone could give this a try that would be helpful. Also, if it indeed turns out to be a problem i think a workaround may be to set the "File has no INIT" flags on the alias file, so if that could be tested too I'd be very happy... -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | ++++ see http://www.xs4all.nl/~tank/ ++++ From slk@sei.cmu.edu Thu Oct 12 22:57:08 2000 From: slk@sei.cmu.edu (Suresh L Konda) Date: Thu, 12 Oct 2000 17:57:08 -0400 Subject: [Pythonmac-SIG] Porting assistance. Message-ID: <39E633B4.7E395D60@sei.cmu.edu> Hi all, I am porting a "pure" python app (a server actually) from unix to the Mac and find myself considerably lost. Specifically, the original app relied completely on a select() based eventloop to deal with all io including console io, socket io, file io, pipe io etc. When I ported to the NT, I was forced to create a tcp-based "console" since stdin etc. are not selectable on that platform but the rest worked fine. With the Mac, I seem to be in trouble with conflicting eventloops -- at least my select based eventloop and some other eventloop(s?). From what I can figure out (after doing the dumb thing of a "straight" port of the unix version including the select() based console), select() does get the io read-ready on stdin and appropritely writes to stdout. However, after that, things go blank (literally) on me leading me to believe that there is some other eventhandler that I should be calling (or registering my select() based eventloop with it). There were some tantalizing comments in the SIG archives regarding interleaving WaitNextEvent() and select() but, I am afraid, I remain lost. A couple of other issues that I need to deal with: currently the server uses os.system(), os.popen(), and the like to get other applications to do work for it. Are there any equivalents or workarounds on the Mac for these? Also, how does one pass arguments to another application? Any and all assistance would be most appreciated. Thanks in advance. Suresh From jack@oratrix.nl Thu Oct 12 23:03:57 2000 From: jack@oratrix.nl (Jack Jansen) Date: Fri, 13 Oct 2000 00:03:57 +0200 Subject: [Pythonmac-SIG] MacPython 2.0c1 available Message-ID: <20001012220402.ABE8D104729@oratrix.oratrix.nl> MacPython 2.0c1 is available, both as binary installer and in source form. You can find it through http://www.cwi.nl/~jac/macpython.html. If people give it a testdrive please let me know whether it works, and, in the unlikely event it doesn't:-) what the problems are. Thanks, -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | ++++ see http://www.xs4all.nl/~tank/ ++++ From bobsavage@mac.com Thu Oct 12 23:51:52 2000 From: bobsavage@mac.com (Bob Savage) Date: Thu, 12 Oct 2000 15:51:52 -0700 Subject: [Pythonmac-SIG] MacPython 2.0c1 available Message-ID: <200010122251.PAA10922@smtp.Stanford.EDU> On Thursday, October 12, 2000, at 03:03 PM, Jack Jansen wrote: > please let me know whether it works, and, in the unlikely event it=20 > doesn't:-) what the problems are.=20 Well, this probably isn't much of a priority at this point, but I had = two problems. [1] I loaded v. 2.0c1 on a Mac OS X machine and the IDE launched fine = under Classic, except the very first time there was a huge version of = the icon that was on top of everything except the menubar (it was even = on top of title bars for items that were dragged "under" it after the = fact. When I quit the IDE the huge icon *faded* away -- very weird. I = tried to duplicate this but wasn't successful. This was cosmetic and it = went away so I don't think it is a big problem. [2] I tried installing the Sherlock sites (or whatever one is supposed = to call those files) and I was able to make them appear as a channel in = the Mac OS X Sherlock, but when I searched using them they did not work. = "Python FAQ" always says there is a network error (the only site to give = such error and it always gives it), and the other two always return no = items. I even searched for "python" figuring that would hit on = *something* but it didn't. (Again, to be clear, I tried the other = channels, like alta vista, and that worked fine, then switched back and = got nothing). Probably not a high priority, but I thought I would let = people know. Bob Savage= From jack@oratrix.nl Fri Oct 13 09:20:59 2000 From: jack@oratrix.nl (Jack Jansen) Date: Fri, 13 Oct 2000 10:20:59 +0200 Subject: [Pythonmac-SIG] Porting assistance. In-Reply-To: Message by Suresh L Konda , Thu, 12 Oct 2000 17:57:08 -0400 , <39E633B4.7E395D60@sei.cmu.edu> Message-ID: <20001013082059.80970303181@snelboot.oratrix.nl> > With the Mac, I seem to be in trouble with conflicting eventloops -- at > least my select based eventloop and some other eventloop(s?). From what > I can figure out (after doing the dumb thing of a "straight" port of the > unix version including the select() based console), select() does get > the io read-ready on stdin and appropritely writes to stdout. However, > after that, things go blank (literally) on me leading me to believe that > there is some other eventhandler that I should be calling (or > registering my select() based eventloop with it). This should all work, if your original program was a pure unix program. The WaitNextEvent comments you can safely ignore unless your program has a Mac GUI (using WaitNextEvent) in which case you may have to be aware of the interaction between WaitNextEvent and select(). Could you elaborate on what you mean by "things go blank (literally)"? What is happening, and what had you expected to happen? -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm From fgranger@altern.org Fri Oct 13 11:08:23 2000 From: fgranger@altern.org (Francois Granger) Date: Fri, 13 Oct 2000 12:08:23 +0200 Subject: [Pythonmac-SIG] MacPython 2.0c1 available In-Reply-To: <20001012220402.ABE8D104729@oratrix.oratrix.nl> Message-ID: on 13/10/00 0:03, Jack Jansen at jack@oratrix.nl wrote: > MacPython 2.0c1 is available, both as binary installer and in source > form. You can find it through > http://www.cwi.nl/~jac/macpython.html. This one works better. http://www.cwi.nl/~jack/macpython.html --=20 Fran=E7ois Granger fgranger@altern.org From fgranger@altern.org Fri Oct 13 11:59:13 2000 From: fgranger@altern.org (Francois Granger) Date: Fri, 13 Oct 2000 12:59:13 +0200 Subject: [Pythonmac-SIG] Python on on a second drive In-Reply-To: <20001012202722.CE1DA104729@oratrix.oratrix.nl> Message-ID: on 12/10/00 22:27, Jack Jansen at jack@oratrix.nl wrote: > There's a bug report on the sourceforge site that having Python on a > second drive causes problems with warm restarts (they don't proceed > past the happy mac state). Actually the problem may be only with > removable drives, the bug report isn't very clear, and it is anonymous > so I can't ask the original submitter. I can't install on a removable just now. But I installed 2.0c1 on another partition than the startup one and everything went smooth. I checked that the alias of PythonCore works properly. I inspected it with Resedit. I have another issue. If I launch EditPythonPref and I click on set $(PYTHON) home folder. I select the folder I want. I clicks "Choose". The windows of EditPython Prefs is grayed and I can't click OK. Up to now the only way arount is "cmd-opt-esc". --=20 Fran=E7ois Granger fgranger@altern.org From joanca@typerware.com Fri Oct 13 13:06:04 2000 From: joanca@typerware.com (JoanCarles p Casas=?ISO-8859-1?Q?=edn?=) Date: Fri, 13 Oct 2000 14:06:04 +0200 Subject: [Pythonmac-SIG] Python on on a second drive Message-ID: <20001013120343.1880E1CCFA@dinsdale.python.org> At 12/10/00 22:27 Jack Jansen wrote: >There's a bug report on the sourceforge site that having Python on a >second drive causes problems with warm restarts (they don't proceed >past the happy mac state). Actually the problem may be only with >removable drives, the bug report isn't very clear, and it is anonymous >so I can't ask the original submitter. > >The submitter seems to think that the problem is with PythonCore being >an alias to an external drive. I can hardly imagine this, but I can't >test it as I don't have a second drive.If someone could give this a >try that would be helpful. Also, if it indeed turns out to be a >problem i think a workaround may be to set the "File has no INIT" >flags on the alias file, so if that could be tested too I'd be very >happy... I've been working with Python (though not hardly) in a second drive for quite time and never happened something like that. The only strange thing that happened and happens is that with my last machine (G4, with MacOS 9.0.4) I've to launch 'Configure Python' each session I want to work with an app with Python embedded. Otherwise it can't find "PythonCore". This was reported by me (and some other guy) to the list, but we could never have other solution than having 'Configure Python' as a StartUp Item... Now I've tried to set the (finder) flag to "File has no INIT" (with ResEdit), once restarted the same happened, and both flags (No init, and inited) were checked in the alias file. I don't know if this is what you meant. I'm off of being an expert. But *never* had the problem with the "happy mac" locked and always (as far as I remember) had Python in a second drive. Hope this helps, at least a bit. Cheers, -> jc, tw=AE From jack@oratrix.nl Fri Oct 13 15:07:28 2000 From: jack@oratrix.nl (Jack Jansen) Date: Fri, 13 Oct 2000 16:07:28 +0200 Subject: [Pythonmac-SIG] Python on on a second drive In-Reply-To: Message by JoanCarles p Casas=?ISO-8859-1?Q?=edn?= , Fri, 13 Oct 2000 14:06:04 +0200 , <20001013120343.1880E1CCFA@dinsdale.python.org> Message-ID: <20001013140729.788DD31C49C@snelboot.oratrix.nl> > I've been working with Python (though not hardly) in a second drive for= = > quite time and never happened something like that. The only strange thi= ng = > that happened and happens is that with my last machine (G4, with MacOS= = > 9.0.4) I've to launch 'Configure Python' each session I want to work wi= th = > an app with Python embedded. Otherwise it can't find "PythonCore". This= = > was reported by me (and some other guy) to the list, but we could never= = > have other solution than having 'Configure Python' as a StartUp Item...= Ah... Now we're getting somewhere! At least: we're getting somewhere with= your = problem. My guess is that because the PythonCore alias points to another = disk, = and that disk is not mounted yet when MacOS starts looking for INITs in t= he = Extension folder it will somehow break the alias (probably while trying t= o = resolve it). > Now I've tried to set the (finder) flag to "File has no INIT" (with = > ResEdit), once restarted the same happened, and both flags (No init, an= d = > inited) were checked in the alias file. I don't know if this is what yo= u = > meant. I'm off of being an expert. Hmm, yet another good idea out the window. Does anyone else know of MacOS problems with aliases in the Extensions fo= lder? = I do notice that PythonCore is the only alias I have in the extension fol= der = on my machine, so maybe it isn't a good idea to have aliases there in the= = first place? -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++= Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig = ++++ www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.= htm = From jack@oratrix.nl Fri Oct 13 15:21:21 2000 From: jack@oratrix.nl (Jack Jansen) Date: Fri, 13 Oct 2000 16:21:21 +0200 Subject: [Pythonmac-SIG] Python on on a second drive In-Reply-To: Message by Francois Granger , Fri, 13 Oct 2000 12:59:13 +0200 , Message-ID: <20001013142122.5ED7C31C49C@snelboot.oratrix.nl> > I have another issue. If I launch EditPythonPref and I click on set > $(PYTHON) home folder. I select the folder I want. I clicks "Choose". T= he > windows of EditPython Prefs is grayed and I can't click OK. Up to now t= he > only way arount is "cmd-opt-esc". Ah yes, I ran into this problem in another situation just before I went o= n = holiday. Now if only I can remember what the solution was again.... :-) -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++= Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig = ++++ www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.= htm = From jwblist@olympus.net Fri Oct 13 16:03:22 2000 From: jwblist@olympus.net (John W Baxter) Date: Fri, 13 Oct 2000 08:03:22 -0700 Subject: [Pythonmac-SIG] Python on on a second drive In-Reply-To: <20001013140729.788DD31C49C@snelboot.oratrix.nl> References: <20001013140729.788DD31C49C@snelboot.oratrix.nl> Message-ID: At 16:07 +0200 10/13/00, Jack Jansen wrote: >Does anyone else know of MacOS problems with aliases in the Extensions folder? >I do notice that PythonCore is the only alias I have in the extension folder >on my machine, so maybe it isn't a good idea to have aliases there in the >first place? I'm dubious about an alias to a file on a late-mounting drive in the Extensions folder. It might be worth trying this hack: put the virtual memory file on the same late-mounting drive: I believe that converts the drive to an early-mounting one. No time here today, but perhaps over the weekend (which will be my opportunity to download 2.0c1 as well). Someone else can probably get you the answer sooner. It sounds as if the PythonCore alias points to something that isn't "extension-like". In that case, perhaps you could provide an alternate but well known location, such as ...:System Folder:Preferences:MacPython:PythonCore (probably for post 2.0). --John -- John Baxter jwblist@olympus.net Port Ludlow, WA, USA From tom@othermedia.com Fri Oct 13 15:39:29 2000 From: tom@othermedia.com (tom smith) Date: Fri, 13 Oct 2000 15:39:29 +0100 Subject: [Pythonmac-SIG] Re: greyed dialog Message-ID: on 13/10/00 11:59 am, Francois Granger at fgranger@altern.org wrote: > I clicks "Choose". The > windows of EditPython Prefs is grayed and I can't click OK. Up to now the > only way arount is "cmd-opt-esc". I get this too. I suspect Navigation Services... Anyone else got CGISlave to work? tom From joanca@typerware.com Fri Oct 13 16:26:26 2000 From: joanca@typerware.com (JoanCarles p Casas=?ISO-8859-1?Q?=edn?=) Date: Fri, 13 Oct 2000 17:26:26 +0200 Subject: [Pythonmac-SIG] Python on on a second drive Message-ID: <20001013152405.97BD21CC6E@dinsdale.python.org> At 13/10/00 16:07 Jack Jansen wrote: >> I've been working with Python (though not hardly) in a second drive for >> quite time and never happened something like that. The only strange thin= g >> that happened and happens is that with my last machine (G4, with MacOS >> 9.0.4) I've to launch 'Configure Python' each session I want to work wit= h >> an app with Python embedded. Otherwise it can't find "PythonCore". This >> was reported by me (and some other guy) to the list, but we could never >> have other solution than having 'Configure Python' as a StartUp Item... > >Ah... Now we're getting somewhere! At least: we're getting somewhere with >your >problem. My guess is that because the PythonCore alias points to another >disk, >and that disk is not mounted yet when MacOS starts looking for INITs in th= e >Extension folder it will somehow break the alias (probably while trying to= >resolve it). THAT'S IT! I made a rough arrangement but worked. I've copied the PythonCore extension to my startup disk (from the second drive with all the Python stuff). Made an alias from it, renamed to "PythonCore 1.5.2c1", put it in the extensions folder and now (after, of course, restart) the application with Python embedded launches with no problems. Great! -> jc, tw=AE From jack@oratrix.nl Fri Oct 13 16:55:08 2000 From: jack@oratrix.nl (Jack Jansen) Date: Fri, 13 Oct 2000 17:55:08 +0200 Subject: [Pythonmac-SIG] Python on on a second drive In-Reply-To: Message by John W Baxter , Fri, 13 Oct 2000 08:03:22 -0700 , Message-ID: <20001013155509.7870831C49C@snelboot.oratrix.nl> > It sounds as if the PythonCore alias points to something that isn't > "extension-like". In that case, perhaps you could provide an alternate but > well known location, such as > ...:System Folder:Preferences:MacPython:PythonCore (probably for post 2.0). Correct. But: putting it somewhere else than in Extensions isn't going to work (as far as I know), because Extensions is the only place that is searched for libraries. Let me quickly explain the reason for putting the alias there in the first place. Maybe someone here has a bright idea for organizing things differently so we don't need it. PythonInterpreter (and the Applet main program code, which is actually the same code) is a tiny executable which is linked against the PythonCore shared library. The code is also little more than a single subroutine call (to the "real" main program, which lives in PythonCore). We want PythonInterpreter to be tiny, because it will be included in each and every applet you have. The reason to have an alias to PythonCore in Extensions is that this allows applets to live anywhere on your disk. When you use a shared library the operating system searches for that shared library in two places: the application folder (i.e. the folder from where you double-clicked the applet) and the Extensions folder. The reason to have an _alias_ there (as opposed to the real PythonCore library) is that this is about the only way that you can have two Python installations on the same disk. Because the application folder is searched before the Extensions folder I can have both 1.5.2 and 2.0 on my machine. Whenever I run PythonInterpreter from the 1.5.2 folder it'll pick up the 1.5.2 PythonCore from that folder. Whenever I run PythonInterpreter from the 2.0 folder it'll pick up the 2.0 PythonCore from that folder. Whenver I run an applet that is in neither folder it'll go to the extensions folder and use the PythonCore from there (which will be whichever one was installed last, I think). -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm From jack@oratrix.nl Fri Oct 13 16:59:14 2000 From: jack@oratrix.nl (Jack Jansen) Date: Fri, 13 Oct 2000 17:59:14 +0200 Subject: [Pythonmac-SIG] Python on on a second drive In-Reply-To: Message by JoanCarles p Casas=?ISO-8859-1?Q?=edn?= , Fri, 13 Oct 2000 17:26:26 +0200 , <20001013152439.028A3104729@oratrix.oratrix.nl> Message-ID: <20001013155914.B577B31C49C@snelboot.oratrix.nl> Okay. So it seems that applets will not work correctly if Python is installed on a drive different than the boot drive. I could try detecting this situation in the installer or ConfigurePython, and offering to copy PythonCore to the extension folder (in stead of creating the alias). Is that a good idea? -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm From kjray@ix.netcom.com Fri Oct 13 18:22:10 2000 From: kjray@ix.netcom.com (kjray) Date: Fri, 13 Oct 2000 10:22:10 -0700 Subject: [Pythonmac-SIG] Re: shared libs in extension folder Message-ID: <200010131714.NAA03801@maynard.mail.mindspring.net> >The reason to have an _alias_ there (as opposed to the real PythonCore >library) is that this is about the only way that you can have two Python >installations on the same disk. Because the application folder is searched >before the Extensions folder I can have both 1.5.2 and 2.0 on my machine. >Whenever I run PythonInterpreter from the 1.5.2 folder it'll pick up the >1.5.2 Dynamic (shared) libraries on the Mac have internal version numbers and names that are independant of the file name (and vers resource). There should be _no_ problem in having different versions of a shared library in the Extensions folder at the same time. To avoid the DLL hell that Windows suffers, you have to use the versioning features that Apple put into its dynamic-library architecture. It is slightly confusing, but you should be using it. Please read the documentation and what I have to say later in this message: quoting the documentation: "To take a simple example, suppose that an application uses a single import library. When the application is created, it is linked with some version of that library. .... The version of the import library used at link time is called the definition version of the library (because it supplies the definitions of exported symbols, not the actual implementation of routines and initialization of variables)." "The essential requirement is that the implementation version of an import library used at run time be compatible with the definition version used at link time. The two versions do not need to be identical, but they must satisfy the same programming interface. (The implementation can be a superset of the definition library.)" "Every import library contains three version numbers: the current version number, the oldest supported definition version number, and the oldest supported implementation version number. The two latter version numbers are included to provide a way for the Code Fragment Manager to determine whether a given definition version is compatible with a given implementation version, if the current versions of the library and the definition version used to link the application are not identical." " IMPORTANT The current version number must always be greater than or equal to both the oldest supported definition version number and the oldest supported implementation version number." ------ If you're building a PythonCore 2.0 PPC shared library in CodeWarrior that is _incompatible_ with Python 1.x, go to the Project Settings / Linker / PPC PEF pane... the "Version Info" in that pane is NOT the 'vers' resource -- it allows you to specify the library (code-fragment) version information. The "Fragment Name" should be the shared-library-name excluding version-number, trademark symbols and other frills. Call it "PythonCore". "Current Version" (a single number) is the version of this library... say, "200" "Old Definition" (a single number) is the oldest supported lib-definition supported by this library. If this library is incompatible with Python 1.x, then use the same number "200". "Old Implementation" (a single number) is the oldest support implementation supported by this library. If this library is incompatible with Python 1.x, then use the sane number "200". If you're building a PythonCore 1.5.2 shared library, and it is _compatible_ with applications that were built against a hypothetical PythonCore 1.4 and later, then your PPC PEF info would be: "Fragment Name" == "PythonCore". "Current Version" == "152" "Old Definition" == "140" "Old Implementation" == "140" The hypothetical 1.4.0 PythonCore could also live in the extensions folder with the 1.5.2 PythonCore and the 2.0 PythonCore. Obviously the file names would have to be different. Since the file names are _not_ used by run-time linking, they can be anything, perhaps "Python Core 1.5.2", "PythonCore 1.4.0" and "PythonCore2". Apps built against 2.0 would runtime-link with the 2.0 library because that is the only one it is version-compatible with. Apps built against 1.5.2 would runtime-link with the 1.5.2 PythonCore, because the 2.0 PythonCore doesn't have version-compatbility, but the 1.5.2 PythonCore does. Apps built against 1.4.0 would runtime-link with 1.5.2 PythonCore, because it is more recent, but its version info claims compatibility with 1.4.0. From joanca@typerware.com Fri Oct 13 18:39:02 2000 From: joanca@typerware.com (JoanCarles p Casas=?ISO-8859-1?Q?=edn?=) Date: Fri, 13 Oct 2000 19:39:02 +0200 Subject: [Pythonmac-SIG] Python on on a second drive Message-ID: <20001013173640.778DB1CE11@dinsdale.python.org> At 13/10/00 17:59 Jack Jansen wrote: >Okay. So it seems that applets will not work correctly if Python is >installed >on a drive different than the boot drive. > >I could try detecting this situation in the installer or ConfigurePython, >and >offering to copy PythonCore to the extension folder (in stead of creating >the >alias). > >Is that a good idea? Hmm, it's looks like... -> jc, tw=AE From jwblist@olympus.net Fri Oct 13 21:34:47 2000 From: jwblist@olympus.net (John W Baxter) Date: Fri, 13 Oct 2000 13:34:47 -0700 Subject: [Pythonmac-SIG] Python on on a second drive In-Reply-To: <20001013155914.B577B31C49C@snelboot.oratrix.nl> References: <20001013155914.B577B31C49C@snelboot.oratrix.nl> Message-ID: At 17:59 +0200 10/13/00, Jack Jansen wrote: >Okay. So it seems that applets will not work correctly if Python is installed >on a drive different than the boot drive. > >I could try detecting this situation in the installer or ConfigurePython, and >offering to copy PythonCore to the extension folder (in stead of creating the >alias). > >Is that a good idea? Well, except for those whose two boot drives are used more "evenly" than my two (here, one is for those little emergencies when the Mac destroys a volume). Tricking up the installer would produce something that works when the user boots from the "right" drive. (But that problem already exists.) (And by "drive" here in this discussion, I think we all mean "partition"...mine really are two drives (now).) The two boot drive case is probably best solved by installing on both. Since the file at issue is a shared library, I agree you are "stuck" with the Extensions folder. I'll try to find time to play over the weekend. --John -- John Baxter jwblist@olympus.net Port Ludlow, WA, USA From jack@oratrix.nl Fri Oct 13 23:13:18 2000 From: jack@oratrix.nl (Jack Jansen) Date: Sat, 14 Oct 2000 00:13:18 +0200 Subject: [Pythonmac-SIG] Re: shared libs in extension folder In-Reply-To: Message by kjray , Fri, 13 Oct 2000 10:22:10 -0700 , <200010131714.NAA03801@maynard.mail.mindspring.net> Message-ID: <20001013221323.70AC8104729@oratrix.oratrix.nl> That is indeed more-or-less what I do *IF* (biiiiiiig if) I don't forget it. And, about half the time I do a distribution I forget it. As for the 2.0c1 distribution. Grmpf. The number I use for the fragment version, by the way, is sys.hexversion. That's a nice ever-increasing value. -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm From tom@othermedia.com Fri Oct 13 17:32:41 2000 From: tom@othermedia.com (tom smith) Date: Fri, 13 Oct 2000 17:32:41 +0100 Subject: [Pythonmac-SIG] clearing the output window in code? Message-ID: hi because at the moment I'm dealing with big blocks of text, I'd like to be able to clear the output window before splurging my stuff at it... I tried, import PyConsole PyConsole.PyConsole.clearbuffer() ..but it needs a given instance of PyConsole...anyone know which class I could request this from, thanks tom From jack@oratrix.nl Fri Oct 13 23:37:49 2000 From: jack@oratrix.nl (Jack Jansen) Date: Sat, 14 Oct 2000 00:37:49 +0200 Subject: [Pythonmac-SIG] EditPythonPrefs problem fixed Message-ID: <20001013223754.46F6E104729@oratrix.oratrix.nl> Ok, I fixed the EditPythonPrefs problem. Or, fixed, worked-around more likely. The problem is that modal appearance dialogs need to get their activate event iafter they've been overlayed by another dialog (and this dialog has subsequently gone again) to re-enable their buttons. But: the activate event is quietly eaten by the MacPython mainloop event handling code. The workaround is to call MacOS.SchedParams(1,0) before posting a modal dialog that may be overlayed. But if anyone has a better solution: please let me know... -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | ++++ see http://www.xs4all.nl/~tank/ ++++ From jwblist@olympus.net Sat Oct 14 04:14:08 2000 From: jwblist@olympus.net (John W Baxter) Date: Fri, 13 Oct 2000 20:14:08 -0700 Subject: [Pythonmac-SIG] ReadMe in 2.0c1 installer Message-ID: About a quarter of the way down, there is a reference to "if you have recently installed another copy of 2.0b1...". I don't know enough about the preference file format issue to know what might need to be adjusted there, but it feels wrong "as is". And my private query about whether it's time to adjust www.python.org URLs to www.pythonlabs.com URLs applies in the ReadMe as well. (And yes, I read the ReadMe through to the end...so it has happened at least once this year.) --John -- John Baxter jwblist@olympus.net Port Ludlow, WA, USA From wtbridgman@Radix.Net Sun Oct 15 20:08:18 2000 From: wtbridgman@Radix.Net (W.T. Bridgman) Date: Sun, 15 Oct 2000 15:08:18 -0400 Subject: [Pythonmac-SIG] MacPython 2.0c1 available In-Reply-To: <20001012220402.ABE8D104729@oratrix.oratrix.nl> Message-ID: Jack, I've installed MacPython 2.0c1 on my PB G3 running MacOS 9.0.4. I usually run set to enter interactive mode at script completion but setting this in EditPythonPrefs seems to generate a bunch of text on modules imported (as if I had import trace active) and usually doesn't enter the interactive mode on completion. I tried setting the output window option to 'Always' open but it seems to make no difference. I experimented with a few other combinations with no success. Suggestions? Thanks, Tom >MacPython 2.0c1 is available, both as binary installer and in source >form. You can find it through >http://www.cwi.nl/~jac/macpython.html. If people give it a testdrive >please let me know whether it works, and, in the unlikely event it >doesn't:-) what the problems are. > >Thanks, >-- >Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ >Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ >www.oratrix.nl/~jack | ++++ see http://www.xs4all.nl/~tank/ ++++ > >_______________________________________________ >Pythonmac-SIG maillist - Pythonmac-SIG@python.org >http://www.python.org/mailman/listinfo/pythonmac-sig From Tony.Vignaux@vuw.ac.nz Mon Oct 16 08:57:33 2000 From: Tony.Vignaux@vuw.ac.nz (Tony Vignaux) Date: Mon, 16 Oct 2000 20:57:33 +1300 Subject: [Pythonmac-SIG] MacPython20c1 Message-ID: As requested, I am reporting on success with installing MacPython20c1, loading on 1) PowerMac 6100/60 MacOS 8.5.1 2) PowerBook 1400cs MacOS 8.6 I have loaded and used Piddle with this version. However, Python cannot see the LinearAlgebra module of Numeric. Do I have to do something special to get it to load this module? I got the impression that it would be loaded with the rest of Numeric. >>> from Numeric import * >>> from LinearAlgebra import * Traceback (most recent call last): File "", line 1, in ? ImportError: No module named LinearAlgebra >>> Tony Vignaux Prof G A (Tony) Vignaux email:Tony.Vignaux@mcs.vuw.ac.nz Statistics and Operations Research, MCS, Ph: +64(4)463 5276 Victoria University, PO Box 600,Wellington. Fax: +64(4)463 5045 New Zealand Home:+64(4)934 7851 www: http://www.mcs.vuw.ac.nz/~vignaux Mobile +64 21 89 7851 From paulm@avacadcam.com Mon Oct 16 10:59:05 2000 From: paulm@avacadcam.com (Paul Miller) Date: Mon, 16 Oct 2000 10:59:05 +0100 Subject: [Pythonmac-SIG] MacPython 2.0c1 and LinearAlgebra/Matrix Message-ID: I am having problems using Numeric with Python 2.0c1: import LinearAlgebra and import Matrix both report that the modules are missing. Both of these worked with 2.0b1. Is this a bug, or have I just missed something? Paul Miller From slk@sei.cmu.edu Mon Oct 16 17:25:26 2000 From: slk@sei.cmu.edu (Suresh L Konda) Date: Mon, 16 Oct 2000 12:25:26 -0400 Subject: [Pythonmac-SIG] Process-to-Process Communication Toolbox support in Python. Message-ID: <39EB2BF6.4948FDF5@sei.cmu.edu> Hello, Does Python v 1.5.2c1 have support for PPC (Apple's IPC!) toolbox? If so, could some kind soul send me a pointer (or even better, example code) of how to use it to let two processes communicate? Many thanks. Suresh From erik@letterror.com Mon Oct 16 21:11:43 2000 From: erik@letterror.com (Erik van Blokland) Date: Mon, 16 Oct 2000 21:11:43 +0100 Subject: [Pythonmac-SIG] Process-to-Process Communication Toolbox support in Python. Message-ID: <200010161917.VAA03218@leidschenveen.denhaag.dataweb.net> Suresh L Konda, 10/16/00 17:25: > Does Python v 1.5.2c1 have support for PPC (Apple's IPC!) toolbox? If >so, could some kind >soul send me a pointer (or even better, example code) of how to use it >to let two processes communicate? Many thanks. When I looked into this to get a handle on the way appleevents are sent to other machines, the PPC did not seem to be supported, unfortunately. But I don't have x-ray python source-seeing eyes. Erik From tom@othermedia.com Mon Oct 16 21:03:24 2000 From: tom@othermedia.com (tom smith) Date: Mon, 16 Oct 2000 21:03:24 +0100 Subject: [Pythonmac-SIG] Python on on a second drive In-Reply-To: Message-ID: on 13/10/00 9:34 pm, John W Baxter at jwblist@olympus.net wrote: > Since the file at issue is a shared library, I agree you are "stuck" with > the Extensions folder. I'll try to find time to play over the weekend. I tried adding PythonCore to my extensions folder, removing the original, and CGISlave still complains about corrupt preferences. Any more ideas? cheers tom From rfinn@opnet.com Mon Oct 16 23:56:32 2000 From: rfinn@opnet.com (Russell Finn) Date: Mon, 16 Oct 2000 18:56:32 -0400 Subject: [Pythonmac-SIG] 2.0c1 -- EditPythonPrefs Balloon Help Message-ID: This is probably not a showstopper, but you asked that problems be reported as soon as possible... The balloon help in the "Default startup options..." dialog box in EditPythonPrefs is all messed up -- most controls show the wrong balloon help message. (I imagine this is easy to fix, but not critical.) -- Russell S. Finn Principal Software Engineer OPNET Technologies, Inc. Phone: (202) 364-4700 x2401 Fax: (202) 364-6182 Email: rfinn@opnet.com From jack@oratrix.nl Tue Oct 17 09:14:11 2000 From: jack@oratrix.nl (Jack Jansen) Date: Tue, 17 Oct 2000 10:14:11 +0200 Subject: [Pythonmac-SIG] Process-to-Process Communication Toolbox support in Python. In-Reply-To: Message by Erik van Blokland , Mon, 16 Oct 2000 21:11:43 +0100 , <200010161917.VAA03218@leidschenveen.denhaag.dataweb.net> Message-ID: <20001017081411.AF5B231C49C@snelboot.oratrix.nl> PPC toolbox is indeed unsupported in Python. It also probably isn't worth investing time in it, as it will disappear with MacOSX. -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm From Jhst463@aol.com Tue Oct 17 22:34:12 2000 From: Jhst463@aol.com (Jhst463@aol.com) Date: Tue, 17 Oct 2000 17:34:12 EDT Subject: [Pythonmac-SIG] help for a MacPython begginer Message-ID: <5a.bef0da3.271e1fd4@aol.com> I've recently taken up Python scripting, and've read "Python Tutorial" by Guido himself but still I've no idea about what to do in Python other than write Fibonacci functions. I'm very well acquainted AppleScript and hope learning Python can act as a bridge between AppleScript(high-level langs) & C/C++/Obj-C(low-level langs). Here's my laundry list of questions: What is the difference between the "Modules" & "Lib" folders? Are modules required to reside in the *modules* folder? Is it safe to make full use of the Mac's superior file system inside Python?(scripts & modules w/ 31 chars?, 8-Bit characters(both for file names & inside the code itself?)) May aliases(of scripts, modules, shared libraries) be used? Is there a limit on how deep files can be nested? What is the purpose of the following directories from version 2.0? Lib Tools Extensions Include Mac Modules Scripts Is there any Mac-specific tutorials available, preferably in PS, PDF or HTML? Thanks in Advance Jonathan H. Mast Jhst463@aol.com From cbarker@jps.net Tue Oct 17 23:37:07 2000 From: cbarker@jps.net (Chris Barker) Date: Tue, 17 Oct 2000 15:37:07 -0700 Subject: [Pythonmac-SIG] "Official docs" and 2.0 release References: Message-ID: <39ECD493.7B42C462@jps.net> Hi all, I just checked and the newly edited version of the MacPython Docs made it into the 2.0 release. see: http://www.pythonlabs.com/doc/manuals/python2.0/mac/mac.html for the HTML version. It is an improvement over the not-edited-for-five-years version, but it still has a long way to go to be the doc that MacPython deserves. I started working on it because I need it, so when I figure out more about MacPython, I will add to it, but I'll only be able to add what I know, which isn't much. Please everyone take a look at it and send me any additions/updates, etc. NOte that there is a chapter called MacOS Toolbox Modules which is just a list, and needs some documentation, as well as the "Undocumented Modules" chapter. Please help me fill it in!!! -Chris -- Christopher Barker, Ph.D. cbarker@jps.net --- --- --- http://www.jps.net/cbarker -----@@ -----@@ -----@@ ------@@@ ------@@@ ------@@@ Water Resources Engineering ------ @ ------ @ ------ @ Coastal and Fluvial Hydrodynamics ------- --------- -------- ------------------------------------------------------------------------ ------------------------------------------------------------------------ From dgoodger@bigfoot.com Wed Oct 18 03:01:52 2000 From: dgoodger@bigfoot.com (David Goodger) Date: Tue, 17 Oct 2000 22:01:52 -0400 Subject: [Pythonmac-SIG] 2.0c1 stdio window options Message-ID: The new EditPythonPrefs gives the following options: Keep stdio window open on: o Always o Unseen output o Error exit o Never Perhaps I'm dense, but I don't understand what "Unseen output" means. Can anyone explain, and perhaps come up with a better phrase? It's a small nit, but I would change the option to: Keep stdio window open: o Always o On unseen output (or something better ;) o On error exit o Never It scans better. Looking forward to 2.0final! -- David Goodger dgoodger@bigfoot.com Open-source projects: - The Go Tools Project: http://gotools.sourceforge.net (more to come!) From jwblist@olympus.net Wed Oct 18 06:44:00 2000 From: jwblist@olympus.net (John W Baxter) Date: Tue, 17 Oct 2000 22:44:00 -0700 Subject: [Pythonmac-SIG] help for a MacPython begginer In-Reply-To: <5a.bef0da3.271e1fd4@aol.com> References: <5a.bef0da3.271e1fd4@aol.com> Message-ID: At 17:34 -0400 10/17/00, Jhst463@aol.com wrote: > Is it safe to make full use of the Mac's superior file system >inside > Python?(scripts & modules w/ 31 chars? Yes, if... And by the way, 31 characters is hardly "superior" for file name limits...it was shockingly short back in the mid 1980s when HFS came out [in the prior file system, the published file name limit was 128 and the actual limit was 253 (but only on a volume with a one-character name)]. , 8-Bit characters(both for >file names & inside the code itself?)) Yes for file names, if.... No for identifiers (hmmm, I take that back...it does seem to work, which I think is a bug, since the language spec is rather clear on what an identifier can have in it). This seems to get an "if..." as well (along with "and if the seeming bug is never fixed"). Identifiers (also referred to as names) are described by the following lexical definitions: identifier: (letter|"_") (letter|digit|"_")* letter: lowercase | uppercase lowercase: "a"..."z" uppercase: "A"..."Z" digit: "0"..."9" Identifiers are unlimited in length. Case is significant. The "if..." stuff above fills out to "if you never will move the code to other platforms". Ever. (And I make no guarantees about the effect of putting an ASCII NUL (hex 00) character into a file name...there could be a C-style string in the code somewhere. But you wouldn't do that anyhow, would you.) --John -- John Baxter jwblist@olympus.net Port Ludlow, WA, USA From irvinee@yahoo.com.au Wed Oct 18 09:46:08 2000 From: irvinee@yahoo.com.au (=?iso-8859-1?q?Edward=20Irvine?=) Date: Wed, 18 Oct 2000 19:46:08 +1100 (EST) Subject: [Pythonmac-SIG] Tkinter on Mac OS9 Message-ID: <20001018084608.25874.qmail@web3903.mail.yahoo.com> Hi all, I'm looking for some hints as to how to get Tkinter on Macs to work. I've downloaded and installed python 1.52, and tcl/tk 8.3 (from www.scriptics.org). But what now? Idle can't find _tkinter (which is presumably called by Tkinter.py, which Idle *can* find*. I'm brand new to this list, so sorry if this is a FAQ (but I've looked there). I teach computing at a large high school and a number of my more gifted students are pretty keen on Python. They can get Tkinter and Pmw working on their PCs at home, but it is pretty important that they can get it to work on our school iMacs. _____________________________________________________________________________ http://clubs.yahoo.com.au - Yahoo! Clubs - Join a club or build your own! From kantel@mpiwg-berlin.mpg.de Wed Oct 18 09:59:59 2000 From: kantel@mpiwg-berlin.mpg.de (=?iso-8859-1?Q?J=F6rg?= Kantel) Date: Wed, 18 Oct 2000 10:59:59 +0200 Subject: [Pythonmac-SIG] Tkinter on Mac OS9 In-Reply-To: <20001018084608.25874.qmail@web3903.mail.yahoo.com> References: <20001018084608.25874.qmail@web3903.mail.yahoo.com> Message-ID: >Hi all, > >I'm looking for some hints as to how to get >Tkinter on Macs to work. > You will find everything you need here: HTH J"org -- -- -------------------------------------------------------------------------- J"org Kantel Max-Planck-Institute for the History of Science Computer-Department kantel@mpiwg-berlin.mpg.de joerg@kantel.de Wilhelmstr. 44 http://www.mpiwg-berlin.mpg.de/staff/kantel/kantel.html D-10117 Berlin fon:+4930-22667-220 mobil:+0170-9023970 fax:+4930-22667-299 -------------------------------------------------------------------------- From jack@oratrix.nl Wed Oct 18 10:47:49 2000 From: jack@oratrix.nl (Jack Jansen) Date: Wed, 18 Oct 2000 11:47:49 +0200 Subject: [Pythonmac-SIG] 2.0c1 stdio window options In-Reply-To: Message by David Goodger , Tue, 17 Oct 2000 22:01:52 -0400 , Message-ID: <20001018094749.7512531C49C@snelboot.oratrix.nl> > The new EditPythonPrefs gives the following options: > > Keep stdio window open on: > o Always o Unseen output > o Error exit o Never > > Perhaps I'm dense, but I don't understand what "Unseen output" means. It means "if the last operation to the window was a write, not a read". If this is the case there's a good chance the user hasn't had a chance to look at it, so we don't want to close the console window. I'm open to suggestions as to other wording... > It's a small nit, but I would change the option to: > > Keep stdio window open: > o Always o On unseen output (or something better ;) > o On error exit o Never Ok, good idea. -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm From amundsen@exelixis.com Wed Oct 18 20:47:06 2000 From: amundsen@exelixis.com (Craig Amundsen) Date: Wed, 18 Oct 2000 12:47:06 -0700 Subject: [Pythonmac-SIG] stackless/uthreads/continuation Message-ID: <007301c0393c$3203ba60$c0101dac@exelixis.com> Hello - I've been wanting to mess around with microthreads for a while now, so = when Just made a Mac version of Stackless available (Thanks!) I went and grabbed = it and uthread.py. I'm having a spot of trouble getting into the microtheads, = though. One of the first lines of code in uthread.py is 'import continuation'. I've = searched around a bit and can't locate anything called continuation on my machine, or = any promising files on the net to use either. Does anyone have any suggestions how I = might continue? TIA, - Craig From just@letterror.com Thu Oct 19 09:35:06 2000 From: just@letterror.com (Just van Rossum) Date: Thu, 19 Oct 2000 09:35:06 +0100 Subject: [Pythonmac-SIG] stackless/uthreads/continuation In-Reply-To: <007301c0393c$3203ba60$c0101dac@exelixis.com> Message-ID: At 12:47 PM -0700 18-10-2000, Craig Amundsen wrote: >Hello - > >I've been wanting to mess around with microthreads for a while now, so >when Just >made a Mac version of Stackless available (Thanks!) I went and grabbed it and >uthread.py. I'm having a spot of trouble getting into the microtheads, >though. One >of the first lines of code in uthread.py is 'import continuation'. I've >searched around >a bit and can't locate anything called continuation on my machine, or any >promising >files on the net to use either. Does anyone have any suggestions how I >might continue? The continuation module is a builtin module, that lives inside the stackless PythonCore. It sounds like stackless hasn't been installed properly yet. Maybe my instructions weren't complete: you'll probably have to run the ConfigurePython applet afterwards. If you start the interpreter or the IDE, the Python version number should be 1.5.42+. Just From azeldis@wesleyan.edu Thu Oct 19 17:53:23 2000 From: azeldis@wesleyan.edu (Andrew Zeldis) Date: Thu, 19 Oct 2000 12:53:23 -0400 Subject: [Pythonmac-SIG] Building Python 2.0 modules on OSX PB (MySQLdb) Message-ID: <20001019165323.DB9181CC02@dinsdale.python.org> Well much to my shock Python 2.0 built beautifully, with (I think) = shared libraries using --with-dyld. However I'm having some problems = making the MySQLdb module. I know next to nothing about development on Unix, but by messing with = options in the setup script I was able to get the module to build. The = version for 2.0 is build using a new setup.py script: > python setup.py build I believe it gets to the linking phase, where the command: cc -bundle -undefined suppress build/temp.darwin-1.2-Power = Macintosh-2.0/_mysqlmodule.o -R/usr/local/lib/mysql -lmysqlclient -lz -o = build/lib.darwin-1.2-Power Macintosh-2.0/_mysqlmodule.so fails: cc: unrecognized option `-R/usr/local/lib/mysql' I guessed that -R is the runtime_library_dir, so I tried commenting out = "runtime_library_dirs" uncommenting "library dirs" in the build script; = it built and installed but failed on use: dyld: python multiple definitions of symbol _strtol /System/Library/Frameworks/System.framework/Versions/B/System(strtol.o) = definition of _strtol /usr/local/lib/python2.0/site-packages/_mysqlmodule.so definition of = _strtol No doubt this would be easily solved by someone who understood the = intricacies of OSX's linker and loader... From jack@oratrix.nl Thu Oct 19 21:01:57 2000 From: jack@oratrix.nl (Jack Jansen) Date: Thu, 19 Oct 2000 22:01:57 +0200 Subject: [Pythonmac-SIG] Re: Python for Mac OS X public beta In-Reply-To: Message by David Hart , Thu, 19 Oct 2000 06:25:20 -0700 , Message-ID: <20001019200202.924A61301D2@oratrix.oratrix.nl> Folks, as the developer tools aren't available on MacOSX for mere mortals (you either have to be an apple developer to get them, or go out and find the Darwin tools and load those) could one of the people who was involved with getting Python to run on OSX whip up a binary distribution? If needed I can provide ftpspace to put it, but I don't have the time to put this thing together... -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm From tom@othermedia.com Wed Oct 18 15:45:01 2000 From: tom@othermedia.com (tom smith) Date: Wed, 18 Oct 2000 15:45:01 +0100 Subject: [Pythonmac-SIG] Tkinter on Mac OS9 Message-ID: on 18/10/00 9:59 am, J=F6rg Kantel at kantel@mpiwg-berlin.mpg.de wrote: >> Hi all, >>=20 >> I'm looking for some hints as to how to get >> Tkinter on Macs to work. >>=20 >=20 > You will find everything you need here: > Not quite everything :-) on 18/10/00 9:46 am, Edward Irvine at irvinee@yahoo.com.au wrote: > Tkinter on Macs to work. yeah, I had this problem...try these .... Quit the IDE and the interpreter if they are running. Check that you actually installed it, the default is not to install it. Re install with the "custom" option. Do'h! Trash the preferences in the folder "python" in your system folder's preferences folder. Use the EditPythonPrefs has the line... $(PYTHON):Lib:lib-tk....what's worth pointing out here is that although the field looks like it's clickable, it's actually a field where you type.... bad bad interface!!....especially since you have to use the arrow keys to move around....oh, and don't think about clicking any of those buttons unless you want to crash :-) Run ConfigurePython. I think this sets the PYTHONPATH thingy. run the IDE, type "import sys" and then "sys.path" to see if the path to th= e Tk stuff is there. ...at the interactive prompt, type "import Tkinter" and see if it errors. If it is, drop any tk example files on the interpreter, don't try to run em through the IDE.=20 give the interpreter more memory ( I think it needs loads 20MB?!) As a last and desperate resort I try trashing any .pyc files I can find the= n running through it all again....after a bit of mucking about I got it going... hope this helps tom From jack@oratrix.nl Thu Oct 19 22:40:03 2000 From: jack@oratrix.nl (Jack Jansen) Date: Thu, 19 Oct 2000 23:40:03 +0200 Subject: [Pythonmac-SIG] MacPython 2.0c1 and LinearAlgebra/Matrix In-Reply-To: Message by Paul Miller , Mon, 16 Oct 2000 10:59:05 +0100 , Message-ID: <20001019214008.6CDEC1301D2@oratrix.oratrix.nl> Recently, Paul Miller said: > I am having problems using Numeric with Python 2.0c1: > > import LinearAlgebra > > and > > import Matrix > > both report that the modules are missing. Both of these worked with 2.0b1. > > Is this a bug, or have I just missed something? No, this is a bug. And a difficult one to fix:-( Let me explain, maybe someone has a simple solution. The Numerical people have gone over to distutils completely, but unfortunately distutils doesn't work on the Mac yet. Actually it could work, because some of us have put quite some effort into it over the last couple of weeks, but the distutils crowd chose to exclude the Mac stuff for the 2.0 release. This is sort-of understandable, and I might even grudglingly agree with them (grudgingly, because I spent hours to get things working just vefore I left on holidays only to find that nothing had happened with the code when I returned two weeks later:-( ), but it leaves the Numeric/MacPython combo is a sad state. The old method of simply adding Numeric:Lib to sys.path doesn't work anymore, and the new distutils method doesn't work yet. I could manually revert my sourcetree to the old state before the distribution, but maybe someone has a better idea? -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm From jwblist@olympus.net Fri Oct 20 01:57:38 2000 From: jwblist@olympus.net (John W Baxter) Date: Thu, 19 Oct 2000 17:57:38 -0700 Subject: [Pythonmac-SIG] Re: Python for Mac OS X public beta In-Reply-To: <20001019200202.924A61301D2@oratrix.oratrix.nl> References: <20001019200202.924A61301D2@oratrix.oratrix.nl> Message-ID: At 22:01 +0200 10/19/00, Jack Jansen wrote: >Folks, >as the developer tools aren't available on MacOSX for mere mortals >(you either have to be an apple developer to get them, or go out and >find the Darwin tools and load those) could one of the people who was >involved with getting Python to run on OSX whip up a binary >distribution? But the level of "developerness" needed is very low: the no cost online developer status is enough (it also carries license agreement(s) which should be read before plunging on. Once one has the online developer status, the tools are just a 70 meg download away (and a slightly troubled install: don't let Stuffit Expander near the downloaded archive...use command line gzip and tar instead (I forget--not having done it--whether the z flag to tar works in the version in Mac OS X). > >If needed I can provide ftpspace to put it, but I don't have the time >to put this thing together... None of my mumblings above creates any extra time for Jack, so it doesn't solve the problem. --John (no Mac OS X capable machine) -- John Baxter jwblist@olympus.net Port Ludlow, WA, USA From cdamundsen@earthlink.net Fri Oct 20 04:42:37 2000 From: cdamundsen@earthlink.net (Craig Amundsen) Date: Thu, 19 Oct 2000 20:42:37 -0700 Subject: [Pythonmac-SIG] Re: stackless/uthreads/continuation In-Reply-To: References: Message-ID: Hi - > The continuation module is a builtin module, that lives inside the > stackless PythonCore. It sounds like stackless hasn't been installed > properly yet. Maybe my instructions weren't complete: you'll probably have > to run the ConfigurePython applet afterwards. If you start the interpreter > or the IDE, the Python version number should be 1.5.42+. Thanks for the information. I will stop looking for the module. The new core does report the proper version number. I figured out my problem with uthread.py. The interpreter complained about '\r characters when I tried to import uthread. Replacing them with '\n' solved all my problems. Now the examples work as advertised. - Craig From paulm@avacadcam.com Fri Oct 20 14:00:57 2000 From: paulm@avacadcam.com (Paul Miller) Date: Fri, 20 Oct 2000 14:00:57 +0100 Subject: [Pythonmac-SIG] MacPython 2.0c1 and LinearAlgebra/Matrix In-Reply-To: <20001019214008.6CDEC1301D2@oratrix.oratrix.nl> Message-ID: I think you can work around the problem by adding to sys.path: $(PYTHON):Extensions:Numerical:Packages:LALITE:Lib allows import Matrix and LinearAlgebra to work (well it seems to fix the stuff I'm using it for). sys.path now looks like: ['Working Disk:Python 2.0c1:Mac:Tools:IDE', 'Working Disk:Python 2.0c1:', 'working disk:python 2.0c1', 'working disk:python 2.0c1:mac:plugins', 'working disk:python 2.0c1:mac:lib', 'working disk:python 2.0c1:mac:lib:lib-toolbox', 'working disk:python 2.0c1:mac:lib:lib-scriptpackages', 'working disk:python 2.0c1:lib', 'working disk:python 2.0c1:extensions:img:mac', 'working disk:python 2.0c1:extensions:img:lib', 'working disk:python 2.0c1:extensions:numerical:lib', 'working disk:python 2.0c1:extensions:imaging:pil', 'working disk:python 2.0c1:lib:lib-tk', 'working disk:python 2.0c1:lib:site-packages', 'working disk:python 2.0c1:extensions:numerical:packages:lalite:lib'] Presumably you need similar additions for the other sub-folders in Numeric:Packages Paul Miller > From: Jack Jansen > Date: Thu, 19 Oct 2000 23:40:03 +0200 > To: Paul Miller > Cc: pythonmac-sig@python.org > Subject: Re: [Pythonmac-SIG] MacPython 2.0c1 and LinearAlgebra/Matrix > > > Recently, Paul Miller said: >> I am having problems using Numeric with Python 2.0c1: >> >> import LinearAlgebra >> >> and >> >> import Matrix >> >> both report that the modules are missing. Both of these worked with 2.0b1. >> >> Is this a bug, or have I just missed something? > > No, this is a bug. And a difficult one to fix:-( > > Let me explain, maybe someone has a simple solution. The Numerical > people have gone over to distutils completely, but unfortunately > distutils doesn't work on the Mac yet. Actually it could work, because > some of us have put quite some effort into it over the last couple of > weeks, but the distutils crowd chose to exclude the Mac stuff for the > 2.0 release. This is sort-of understandable, and I might even > grudglingly agree with them (grudgingly, because I spent hours to get > things working just vefore I left on holidays only to find that > nothing had happened with the code when I returned two weeks later:-( > ), but it leaves the Numeric/MacPython combo is a sad state. The old > method of simply adding Numeric:Lib to sys.path doesn't work anymore, > and the new distutils method doesn't work yet. > > I could manually revert my sourcetree to the old state before the > distribution, but maybe someone has a better idea? > -- > Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ > Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ > www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm From jack@oratrix.nl Fri Oct 20 15:32:03 2000 From: jack@oratrix.nl (Jack Jansen) Date: Fri, 20 Oct 2000 16:32:03 +0200 Subject: [Pythonmac-SIG] MacPython 2.0c1 and LinearAlgebra/Matrix In-Reply-To: Message by Paul Miller , Fri, 20 Oct 2000 14:00:57 +0100 , Message-ID: <20001020143204.4C4C031C49C@snelboot.oratrix.nl> > I think you can work around the problem by adding to sys.path: > > $(PYTHON):Extensions:Numerical:Packages:LALITE:Lib > > allows import Matrix and LinearAlgebra to work (well it seems to fix the > stuff I'm using it for). Yep, it works for those two, but not for RNG and some of the others. I've taken the plunge and added a Numerical:Lib:Packages to the distribution (and to sys.path) and put a readme in there explaining that these files are copies and the reason for them being there. I don't think I'll be doing a 2.0c2 distribution, I'll just go straight to 2.0 final, but that does mean that I would like some of the Numerically-inclined people here to try it quickly and let me know if the solution doesn't work. I'll probably announce 2.0 to the SIG first, and then wait a day for feedback before I put it on the website and make a more general announcement. By the way: does anyone have good suggestions for places where we could send the announcement, aside from comp.lang.python.announce? -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm From sdm7g@virginia.edu Fri Oct 20 16:31:22 2000 From: sdm7g@virginia.edu (Steven D. Majewski) Date: Fri, 20 Oct 2000 11:31:22 -0400 (EDT) Subject: [Pythonmac-SIG] Re: Python for Mac OS X public beta In-Reply-To: <20001019200202.924A61301D2@oratrix.oratrix.nl> Message-ID: On Thu, 19 Oct 2000, Jack Jansen wrote: > Folks, > as the developer tools aren't available on MacOSX for mere mortals > (you either have to be an apple developer to get them, or go out and > find the Darwin tools and load those) could one of the people who was > involved with getting Python to run on OSX whip up a binary > distribution? > > If needed I can provide ftpspace to put it, but I don't have the time > to put this thing together... If you've got somewhere for me to upload it, I've got 2.0c1 for OSX with expat, Tkinter and pygtk support. I would have done it for 2.0 final by now, but I haven't been able to connect to pythonlabs.com since yesterday. I assume the best format would be a tar file of /usr/local/bin/python* and /usr/local/lib/python2.0/* -- I could do it relative from /usr/local, but I'm not sure how python gets the base directory -- is it done at runtime or install time? ( i.e. If you install it somewhere other than /usr/local, will it still have the correct python paths? ) I could also just tar up the distribution directory with binaries ready for a "make install", but Python, expat, tcl/tk and pygtk ( and Gtk ) are all in separate directories. The tkinter and gtk python modules are dynamically loadable, but they are statically linked (I think) to the tk & gtk libs, so perhaps those don't have to be separately installed. Is there a volunteer to test whatever distribution I build to check whether everthing necessary to run is indeed included ? ---| Steven D. Majewski (804-982-0831) |--- ---| Department of Molecular Physiology and Biological Physics |--- ---| University of Virginia Health Sciences Center |--- ---| P.O. Box 10011 Charlottesville, VA 22906-0011 |--- "All operating systems want to be unix, All programming languages want to be lisp." From stephenm@humongous.com Fri Oct 20 17:14:52 2000 From: stephenm@humongous.com (Magladry, Stephen) Date: Fri, 20 Oct 2000 09:14:52 -0700 Subject: [Pythonmac-SIG] stackless Python Message-ID: <3124AB5C4D11D31187DC005004185D1B4CD3FC@BIGPIG> I noticed when there is a request for Stackless Python people are routed to a replacement library and not source. That leads me to believe that in order to get source and compile it, all one needs to do is download the source from stackless.com and port it to the Mac. Any big tricks or gotcha's worth mentioning? On another related note, on the stackless.com web site, there is a mention of Current Ports. Right now there is mention on Windows 98, Solaris and Palm III. Maybe we should inform them that a Mac version of it exists also to increase exposure. That's all for now, Stephen Magladry From jack@oratrix.nl Mon Oct 23 09:29:32 2000 From: jack@oratrix.nl (Jack Jansen) Date: Mon, 23 Oct 2000 10:29:32 +0200 Subject: [Pythonmac-SIG] 2.0 final installer available - please test Message-ID: <20001023082933.6A4C731C49C@snelboot.oratrix.nl> Folks, the 2.0 final installer is available in ftp://ftp.cwi.nl/pub/jack/python/mac , please try it. I'll wait announcing it until I've had a couple of reports that it looks good. -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | ++++ see http://www.xs4all.nl/~tank/ ++++ From tom@othermedia.com Mon Oct 23 14:55:57 2000 From: tom@othermedia.com (tom smith) Date: Mon, 23 Oct 2000 14:55:57 +0100 Subject: [Pythonmac-SIG] 2.0 final installer available - please test In-Reply-To: <20001023082933.6A4C731C49C@snelboot.oratrix.nl> Message-ID: I'm trying to get a web page and found that most of the time I only get a chuck of the page.... I need to use a repeat loop but don't know how, this code never comes back... import urllib the_url = 'http://www.wwevents.com/eventdisplay.asp?MONTH=11&YEAR=2000&COUNTRYNO=112' u = urllib.urlopen(the_url) newdata = "" while data != 0: data = u.read() newdata = newdata + data print "." print newdata ...any ideas? thanks tom From owen@astro.washington.edu Mon Oct 23 17:46:04 2000 From: owen@astro.washington.edu (Russell E Owen) Date: Mon, 23 Oct 2000 09:46:04 -0700 Subject: [Pythonmac-SIG] 2.0 final works for me In-Reply-To: <20001023082933.6A4C731C49C@snelboot.oratrix.nl> References: <20001023082933.6A4C731C49C@snelboot.oratrix.nl> Message-ID: The Mac 2.0 final installation went flawlessly on my machine and everything I have tried works great. Tkinter works right out of the box (yaay!). I have not tried NumPy. The automatic testing matched your predictions. The summary: 77 tests OK. 3 tests failed: test_longexp test_sha test_zlib 27 tests skipped: test_al test_bsddb test_cd test_cl test_crypt test_dbm test_dl test_fcntl test_fork1 test_gc test_gl test_grp test_imgfile test_largefile test_linuxaudiodev test_mmap test_nis test_openpty test_poll test_popen2 test_pty test_pwd test_signal test_sunaudiodev test_timing test_winreg test_winsound >>> Also, in 2.0 final I can again put aliases to folders of Python code in with Python and the code is found. (This didn't seem to work with one of the pre-releases, though perhaps I was doing something wrong). That's great. Thank you very much for all your hard work on 2.0. -- Russell >Folks, the 2.0 final installer is available in >ftp://ftp.cwi.nl/pub/jack/python/mac , please try it. I'll wait >announcing it until I've had a couple of reports that it looks good. >-- >Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ >Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ >www.oratrix.nl/~jack | ++++ see http://www.xs4all.nl/~tank/ ++++ From tony@metanet.com Mon Oct 23 18:54:44 2000 From: tony@metanet.com (Tony Lownds) Date: Mon, 23 Oct 2000 10:54:44 -0700 Subject: [Pythonmac-SIG] Re: Python for Mac OS X public beta In-Reply-To: <20001019200202.924A61301D2@oratrix.oratrix.nl> References: Message-ID: <4.3.1.0.20001023105008.027e6f70@adam12.metanet.com> At 10:01 PM 10/19/2000 +0200, Jack Jansen wrote: >Folks, >as the developer tools aren't available on MacOSX for mere mortals >(you either have to be an apple developer to get them, or go out and >find the Darwin tools and load those) could one of the people who was >involved with getting Python to run on OSX whip up a binary >distribution? I whipped one up; get it at http://tony.lownds.com/macosx/ For some reason the package version (which users can double-click to install) reports the size while installing at 0 bytes; does anybody know why that would be? In any case please consider the package version an "alpha". -Tony From jwblist@olympus.net Mon Oct 23 22:07:30 2000 From: jwblist@olympus.net (John W Baxter) Date: Mon, 23 Oct 2000 14:07:30 -0700 Subject: [Pythonmac-SIG] 2.0 final installer available - please test Message-ID: At 10:29 +0200 10/23/00, Jack Jansen wrote: >Folks, the 2.0 final installer is available in >ftp://ftp.cwi.nl/pub/jack/python/mac , please try it. I'll wait >announcing it until I've had a couple of reports that it looks good. Installed OK here on my Mac 8100/80 running Mac OS 9.0.4 (a not entirely sane version for me to run on the 8100 ;-)). But...the installer appeared to hang in the Finishing... stage. I noticed that the hand of the watch was advancing now and then, and heard an occasional disk hit, and I had some of my morning routine to take care of, so I left it alone. The installer did finish, after about 7 minutes (estimate, might be 2 minutes high or 4 minutes low). Something NOT to do: While running the tests (two crashed for memory, which I hadn't increased, as expected), I tried to have the File Sharing control strip module start file sharing, so I could move the installer to my 7300/180. The popup menu popped up and stayed up...the mouse button indicator showed the mouse to be down...testing stopped. Force quit quit the control strip, and testing resumed and ran to completion. Note that on the 8100 I use a Kensington trackball with recent (maybe even current) software. Test is now running on the 7300, where the install went fine (no long pause noted in Finishing...). The exptected three tests failed on the 7300, even though I had increased memory to 24,000 preferred, 16,000 minimum (the minimum did not come into play). I don't have anything useful to try quickly against the new version beyond the testing. --John -- John Baxter jwblist@olympus.net Port Ludlow, WA, USA From jhrsn@pitt.edu Mon Oct 23 22:47:05 2000 From: jhrsn@pitt.edu (Jim Harrison) Date: Mon, 23 Oct 2000 17:47:05 -0400 Subject: [Pythonmac-SIG] 2.0 final installer available - please test In-Reply-To: <20001023082933.6A4C731C49C@snelboot.oratrix.nl> Message-ID: on 10/23/00 4:29 AM, Jack Jansen at jack@oratrix.nl wrote: > Folks, the 2.0 final installer is available in > ftp://ftp.cwi.nl/pub/jack/python/mac , please try it. I'll wait > announcing it until I've had a couple of reports that it looks good. I did have some problems installing on a PB G3/266 with System 8.6 and a number of extensions including Kaleidoscope. The install got to the "Finishing Installation" placard normally, then the watch spun slowly for about 30 seconds and stopped with the machine frozen except for mouse movement. After a few more minutes of nothing, cmd-opt-esc yielded a "Quit from Finder" dialog which was recoverable only with a hardware reboot. This was repeatable. After reboot, the installed python appeared to have all the top level components and both the interpreter and the IDE ran, at least superficially (I didn't have time to really exercise them). The folder contained 1812 items according to the Finder. Installing with extensions off was successful, though the "Finishing Installation" placard stayed up with the watch spinning and a lot of HD activity for about 3 minutes. The installed python was superficially functional and the folder contained 1768 items. A reinstallation with extensions off was similar, but the python folder contained 1776 items. Hope this is useful. Jim Harrison Univ. of Pittsburgh From stephenm@humongous.com Tue Oct 24 00:02:18 2000 From: stephenm@humongous.com (Magladry, Stephen) Date: Mon, 23 Oct 2000 16:02:18 -0700 Subject: [Pythonmac-SIG] questions about building.html Message-ID: <3124AB5C4D11D31187DC005004185D1B4CD404@BIGPIG> I am using building.html to build a version of Python. I have some question. First of all ftp.smli.com site appears to be dead. The only place I was able to find any versions of the mactclk-full was at ftp://ftp.scriptics.com/pub/tcl/mac/ . In the Building.html document, there is reference to version 8.0p2. The oldest version I find on the ftp side is version 8.0.3. I don't think that shouldn't be a big problem. But I try to integrate the tclmods. There are two files, tclMacNodify.c and tclSelectNotify.c. The tclSelectNotify.c file is no where to be found in the source I downloaded. Could someone tell me were I might find version 8.0p2 or tell me how to rectify the tclmods, that would be much appreciated. Thanks, Stephen Magladry From stephenm@humongous.com Tue Oct 24 00:33:58 2000 From: stephenm@humongous.com (Magladry, Stephen) Date: Mon, 23 Oct 2000 16:33:58 -0700 Subject: [Pythonmac-SIG] question about compile errors with pcc*TKLibrary Message-ID: <3124AB5C4D11D31187DC005004185D1B4CD407@BIGPIG> Hello, Me again. In trying to compile the ppc*TKLibrary versions 8.0.3, 8.0.5, or 8.2.1, and I run into some errors compiling tkBitmap.c. First of all, the compiler complains about #including bmp files. Secondly, there appears to be some errors around Tk_DefineBitmap with undefined variables. Each call to Tk_DefineBitmap has an undefined variable for the "bits" variable and the "width" variable. Anyone with suggestions or know what I am doing wrong? Thanks, Stephen Magladry From owen@astro.washington.edu Tue Oct 24 00:47:25 2000 From: owen@astro.washington.edu (Russell E Owen) Date: Mon, 23 Oct 2000 16:47:25 -0700 Subject: [Pythonmac-SIG] 2.0 final works for me (followup) In-Reply-To: References: <20001023082933.6A4C731C49C@snelboot.oratrix.nl> Message-ID: I wrote: >Also, in 2.0 final I can again put aliases to folders of Python code >in with Python and the code is found. (This didn't seem to work with >one of the pre-releases, though perhaps I was doing something >wrong). That's great. Unfortunately, I was wrong about this. I used to put my own common code into a folder, stick an alias to that folder into Python's root folder, and set the path via EditPythonPrefs accordingly. Now that doesn't work. Replacing the alias with the folder of actual code does work. Not a big deal, but mysterious. A few other things have cropped up: My Tk/networking code no longer works. The connection is made and my code can still write data, but received data doesn't update the appropriate widgets. I'm hoping this is something I'm overlooking, rather than a bug. FYI: Pmw still cannot be put into the Extensions folder, though it can be put into Lib. I first saw this problem in 1.5.2c1. (I know others have seen it. The symptom is that if you put Pmw into Extensions and update the path info via EditPythonPrefs, Python cannot find the module. Move the Pmw folder from Extensions to Lib and update the path for that and everything works.) -- Russell From joerg@kantel.de Tue Oct 24 07:32:31 2000 From: joerg@kantel.de (=?iso-8859-1?Q?J=F6rg?= Kantel) Date: Tue, 24 Oct 2000 08:32:31 +0200 Subject: [Pythonmac-SIG] 2.0 final installer available - please test In-Reply-To: References: Message-ID: >on 10/23/00 4:29 AM, Jack Jansen at jack@oratrix.nl wrote: > >> Folks, the 2.0 final installer is available in >> ftp://ftp.cwi.nl/pub/jack/python/mac , please try it. I'll wait >> announcing it until I've had a couple of reports that it looks good. > >I did have some problems installing on a PB G3/266 with System 8.6 and a >number of extensions including Kaleidoscope. The install got to the >"Finishing Installation" placard normally, then the watch spun slowly for >about 30 seconds and stopped with the machine frozen except for mouse >movement. After a few more minutes of nothing, cmd-opt-esc yielded a "Quit I run in a similar error but after putting my old Python 1.5c2 in the trash, everything worked fine. It seems that the installer tries to start the "nearest" Python Interpreter for finishing and that's in some cases the old one... But that's only my suggestion. HTH J"org -- http://www.kantel.de/ # http://homepage.mac.com/jkantel/homepage.html joerg@kantel.de # jkantel@mac.com http://rollbergnews.editthispage.com/ - your almost daily news ;o) http://DerSchockwellenreiter.editthispage.com - ein Weblog http://www.die-herforder.de - linke Politik online - nur im Internet From jack@oratrix.nl Tue Oct 24 10:11:09 2000 From: jack@oratrix.nl (Jack Jansen) Date: Tue, 24 Oct 2000 11:11:09 +0200 Subject: [Pythonmac-SIG] 2.0 Installer Message-ID: <20001024091109.42CE331C49C@snelboot.oratrix.nl> Folks, the one problem with the installer is the incredibly long time it takes to finish up. On my iMac it's acceptable (about a minute) some people here have reported a half-an-hour wait. Does anyone else have experience with Installer Vise? Any idea what could be happening here? Anything I can do about it? As another measurement point: I do know that the CodeWarrior installer, which also installs tens of thousands of files, also takes forever to finish. So maybe it can't be helped... -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | ++++ see http://www.xs4all.nl/~tank/ ++++ From paulm@avacadcam.com Tue Oct 24 10:51:36 2000 From: paulm@avacadcam.com (Paul Miller) Date: Tue, 24 Oct 2000 10:51:36 +0100 Subject: [Pythonmac-SIG] 2.0 final installer available - please test In-Reply-To: <20001023082933.6A4C731C49C@snelboot.oratrix.nl> Message-ID: Works fine for me. I'm using Numeric (but not any of the Statistical or FFT routines), Scientific and GnuPlot. Paul Miller > From: Jack Jansen > Date: Mon, 23 Oct 2000 10:29:32 +0200 > To: pythonmac-sig@python.org > Subject: [Pythonmac-SIG] 2.0 final installer available - please test > > Folks, the 2.0 final installer is available in > ftp://ftp.cwi.nl/pub/jack/python/mac , please try it. I'll wait > announcing it until I've had a couple of reports that it looks good. > -- > Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ > Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ > www.oratrix.nl/~jack | ++++ see http://www.xs4all.nl/~tank/ ++++ > > > > > > _______________________________________________ > Pythonmac-SIG maillist - Pythonmac-SIG@python.org > http://www.python.org/mailman/listinfo/pythonmac-sig From lmeyn@mail.arc.nasa.gov Tue Oct 24 17:43:29 2000 From: lmeyn@mail.arc.nasa.gov (Larry Meyn) Date: Tue, 24 Oct 2000 09:43:29 -0700 Subject: [Pythonmac-SIG] 2.0 final works for me (followup) In-Reply-To: References: <20001023082933.6A4C731C49C@snelboot.oratrix.nl> Message-ID: Russell wrote: >>Also, in 2.0 final I can again put aliases to folders of Python code in with Python and the code is found. (This didn't seem to work with one of the pre-releases, though perhaps I was doing something wrong). That's great. > >Unfortunately, I was wrong about this. I used to put my own common code into a folder, stick an alias to that folder into Python's root folder, and set the path via EditPythonPrefs accordingly. Now that doesn't work. Replacing the alias with the folder of actual code does work. Not a big deal, but mysterious. > >-- Russell the inability to use a folder aliases has been a problem for every version after 1.5.2c1. I mentioned it awhile back, but no seemed to understand why. --Larry -- ------------------------------------------------------------------ Larry Meyn Aerospace Operations Modeling Office M/S 210-10 Phone: (650) 604-5038 NASA Ames Research Center FAX: (650) 604-0222 Moffett Field, CA 94035-1000 email: lmeyn@mail.arc.nasa.gov ------------------------------------------------------------------ From pecora@anvil.nrl.navy.mil Tue Oct 24 20:17:01 2000 From: pecora@anvil.nrl.navy.mil (Louis M. Pecora) Date: Tue, 24 Oct 2000 15:17:01 -0400 Subject: [Pythonmac-SIG] 2.0 final installer available - please test In-Reply-To: References: <20001023082933.6A4C731C49C@snelboot.oratrix.nl> Message-ID: >Works fine for me. >I'm using Numeric (but not any of the Statistical or FFT routines), >Scientific and GnuPlot. > >Paul Miller I remember reading somewhere that Numeric and other packages like Matrix or LinearAlgebra (not sure about those names) didn't work well on the Mac and some things needed to be rewritten, but weren't by the Python coders (for lack of a better name). Sounds like Numeric works. Anyone know what that deal was about? Cheers, Lou Pecora From jacobkm@cats.ucsc.edu Tue Oct 24 21:01:52 2000 From: jacobkm@cats.ucsc.edu (Jacob Kaplan-Moss) Date: Tue, 24 Oct 2000 13:01:52 -0700 Subject: [Pythonmac-SIG] MacPython 2.0 Final Message-ID: My experiences with MacPython 2.0: Installation: Installed on a G4/450. Installation took about sixty seconds, and then ConfigurePython ran for maybe another thirty. Installed on a G3/400. Installation took about two minutes, and ConfigurePython took almost fifteen, but finished successfully. Installed on a PowerComputing PowerCenter Pro 240 on an external hard drive. Installation took a minute of two, and ConfigurePython thought for about a minute before it told me that I was installing on a external drive, and asked me if I wanted PythonCore in the Extensions folder. I said yes, and it did its thing for about two more minutes, and then quit. All three installations work great. Numeric works, Tkinter "works" just as well as it did before. PythonCGISlave's problem with corrupt prefs seems to be solved. However, BuildCGIApplet bombs every time I use it with the following traceback: Traceback (most recent call last): File "1gb External HD:Jacobs Stuff Master: Programming:Python 2.0:Mac:Tools:CGI:BuildCGIApplet.py", line 76, in ? main() File "1gb External HD:Jacobs Stuff Master: Programming:Python 2.0:Mac:Tools:CGI:BuildCGIApplet.py", line 21, in main buildcgiapplet() File "1gb External HD:Jacobs Stuff Master: Programming:Python 2.0:Mac:Tools:CGI:BuildCGIApplet.py", line 54, in buildcgiapplet buildone(template, wrapper, filename, dstfilename) File "1gb External HD:Jacobs Stuff Master: Programming:Python 2.0:Mac:Tools:CGI:BuildCGIApplet.py", line 70, in buildone py_resource.frompyfile(src, "CGI_MAIN", preload=1) File "1gb external hd:jacobs stuff master: programming:python 2.0:mac:lib:py_resource.py", line 68, in frompyfile return frompycfile(file, name, preload=preload, ispackage=ispackage) File "1gb external hd:jacobs stuff master: programming:python 2.0:mac:lib:py_resource.py", line 59, in frompycfile writemodule(name, id, data, preload=preload, ispackage=ispackage) File "1gb external hd:jacobs stuff master: programming:python 2.0:mac:lib:py_resource.py", line 44, in writemodule res.AddResource(type, id, name) Mac OS Error: (-61, 'write permissions error') The resulting applet seems to work, however. All in all, a great job. Thanks a lot! Jacob Kaplan-Moss From Tony.Vignaux@MCS.VUW.AC.NZ Tue Oct 24 22:03:34 2000 From: Tony.Vignaux@MCS.VUW.AC.NZ (Tony Vignaux) Date: Wed, 25 Oct 2000 10:03:34 +1300 Subject: [Pythonmac-SIG] Re: 2.0 final installer - no problems In-Reply-To: <20001024160132.418041CF77@dinsdale.python.org> References: <20001024160132.418041CF77@dinsdale.python.org> Message-ID: For what it is worth, I had no problems installing Python 2.0 (and no long installation delays, either). (MacOS 8.6 on a 7220/200 Power Mac) Linear Algebra is recognised. Prof G A (Tony) Vignaux email:Tony.Vignaux@mcs.vuw.ac.nz Statistics and Operations Research, MCS, Ph: +64(4)463 5276 Victoria University, PO Box 600,Wellington. Fax: +64(4)463 5045 New Zealand Home:+64(4)934 7851 www: http://www.mcs.vuw.ac.nz/~vignaux Mobile +64 21 89 7851 From jack@oratrix.nl Wed Oct 25 10:44:27 2000 From: jack@oratrix.nl (Jack Jansen) Date: Wed, 25 Oct 2000 11:44:27 +0200 Subject: [Pythonmac-SIG] 2.0 final installer available - please test In-Reply-To: Message by "Louis M. Pecora" , Tue, 24 Oct 2000 15:17:01 -0400 , Message-ID: <20001025094427.D80B731C49C@snelboot.oratrix.nl> > I remember reading somewhere that Numeric and other packages like Matrix or LinearAlgebra (not sure about those names) didn't work well on the Mac and some things needed to be rewritten, but weren't by the Python coders (for lack of a better name). Sounds like Numeric works. Anyone know what that deal was about? The problem was lack of time on my side. But as noone stepped in I sighed and made the time:-) -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm From tom@othermedia.com Fri Oct 27 14:02:54 2000 From: tom@othermedia.com (tom smith) Date: Fri, 27 Oct 2000 14:02:54 +0100 Subject: [Pythonmac-SIG] Interpreter/applet error In-Reply-To: <20001024091109.42CE331C49C@snelboot.oratrix.nl> Message-ID: hi when I have the "keep the stdout window" set to always in the ConfigurePythonPrefs app....any applets, or .py files dropped on the interpreter are un-quittable. I have to command-cntrl-delete my way out of them.... is this right? thanks tom From bhicks@rma.edu Fri Oct 27 16:08:58 2000 From: bhicks@rma.edu (Hicks) Date: Fri, 27 Oct 2000 11:08:58 -0400 Subject: [Pythonmac-SIG] Syntax higlighting Message-ID: I am new to MacPython...does the IDE have syntax highlighting? If it does how do I turn mine on? Bob From owen@astro.washington.edu Fri Oct 27 16:30:38 2000 From: owen@astro.washington.edu (Russell E Owen) Date: Fri, 27 Oct 2000 08:30:38 -0700 Subject: [Pythonmac-SIG] Interpreter/applet error In-Reply-To: References: Message-ID: Here's a long shot...there is a known problem with Tk scripts doing this, but it is actually caused by a different preference -- the one to return to the interpreter when the script is finished. (This problem existed in 1.5.2c1; I have not tested it in 2.0). -- Russell >when I have the "keep the stdout window" set to always in the >ConfigurePythonPrefs app....any applets, or .py files dropped on the >interpreter are un-quittable. I have to command-cntrl-delete my way out of >them.... is this right? From owen@astro.washington.edu Fri Oct 27 16:32:32 2000 From: owen@astro.washington.edu (Russell E Owen) Date: Fri, 27 Oct 2000 08:32:32 -0700 Subject: [Pythonmac-SIG] Syntax higlighting In-Reply-To: References: Message-ID: >I am new to MacPython...does the IDE have syntax highlighting? If it does >how do I turn mine on? Look through the Mac:Contrib:IDE Mods folder. It contains an extension for this. I have not tested it. -- Russell From fgranger@altern.org Fri Oct 27 19:24:31 2000 From: fgranger@altern.org (Francois Granger) Date: Fri, 27 Oct 2000 20:24:31 +0200 Subject: [Pythonmac-SIG] Syntax higlighting In-Reply-To: References: Message-ID: At 8:32 -0700 27/10/00, in message Re: [Pythonmac-SIG] Syntax higlighting, Russell E Owen wrote: >>I am new to MacPython...does the IDE have syntax highlighting? If it does >>how do I turn mine on? > >Look through the Mac:Contrib:IDE Mods folder. It contains an >extension for this. I have not tested it. Not available in 2.0 final. I used the patches from : in 1.5.x I tested them on 2.0 beta with mixed results. But lastly it did not worked. -- "Computers are like horses; they can sense fear and will act based on that. Or, look at it like this. If you have a premonition of danger, maybe you're right." - Adam Engst From chrisl@fone.net Fri Oct 27 20:39:08 2000 From: chrisl@fone.net (Chris Lumsargis) Date: Fri, 27 Oct 2000 13:39:08 -0600 Subject: [Pythonmac-SIG] Syntax higlighting References: Message-ID: <000e01c0404d$95736100$0101a8c0@chrisl> I use vim for the macintosh. It has nice syntax highlighting for python as well as many other languages. Chris Lumsargis ----- Original Message ----- From: Francois Granger To: Sent: Friday, October 27, 2000 12:24 PM Subject: Re: [Pythonmac-SIG] Syntax higlighting > At 8:32 -0700 27/10/00, in message Re: [Pythonmac-SIG] Syntax > higlighting, Russell E Owen wrote: > >>I am new to MacPython...does the IDE have syntax highlighting? If it does > >>how do I turn mine on? > > > >Look through the Mac:Contrib:IDE Mods folder. It contains an > >extension for this. I have not tested it. > > Not available in 2.0 final. > > I used the patches from : > in 1.5.x > > I tested them on 2.0 beta with mixed results. But lastly it did not worked. > > -- > "Computers are like horses; they can sense fear and will act based on > that. Or, look at it like this. If you have a premonition of danger, > maybe you're right." - Adam Engst > > _______________________________________________ > Pythonmac-SIG maillist - Pythonmac-SIG@python.org > http://www.python.org/mailman/listinfo/pythonmac-sig From fgranger@altern.org Fri Oct 27 20:56:11 2000 From: fgranger@altern.org (Francois Granger) Date: Fri, 27 Oct 2000 21:56:11 +0200 Subject: [Pythonmac-SIG] Syntax higlighting In-Reply-To: <000e01c0404d$95736100$0101a8c0@chrisl> References: <000e01c0404d$95736100$0101a8c0@chrisl> Message-ID: At 13:39 -0600 27/10/00, in message Re: [Pythonmac-SIG] Syntax higlighting, Chris Lumsargis wrote: >I use vim for the macintosh. It has nice syntax highlighting for python as >well as many other languages. On that matter, have a look to Pepper. It is new and nice. I don't regret paying the shareware fee. http://www.hekkelman.com -- "Computers are like horses; they can sense fear and will act based on that. Or, look at it like this. If you have a premonition of danger, maybe you're right." - Adam Engst From pecora@anvil.nrl.navy.mil Fri Oct 27 22:39:37 2000 From: pecora@anvil.nrl.navy.mil (Louis M. Pecora) Date: Fri, 27 Oct 2000 17:39:37 -0400 Subject: [Pythonmac-SIG] Syntax higlighting In-Reply-To: References: Message-ID: >>I am new to MacPython...does the IDE have syntax highlighting? If it does >>how do I turn mine on? > >Look through the Mac:Contrib:IDE Mods folder. It contains an >extension for this. I have not tested it. I originally said, no. I stand corrected and informed. Thanks. Cheers, Lou Pecora From fgranger@altern.org Fri Oct 27 22:49:25 2000 From: fgranger@altern.org (Francois Granger) Date: Fri, 27 Oct 2000 23:49:25 +0200 Subject: [Pythonmac-SIG] (no subject) Message-ID: I am participating in the translation of Python docs to french. I works on Mac (at home). Since this doc is to be delivered in iso-8859-1, grabbing from other scripts, I came with a simple script wich translate my Mac charset to 8859. def macTo88591(s): t="" for c in s: if entitydefs.has_key(c): t=t + entitydefs[c] else: t=t+c return t The entitydefs is a hacked version of """HTML character entity references.""" with Mac char replacing html entities as keys. On the professional side, I receive html files translated to french. They are coded in html entity. I need to translate them to UTF-8. I currently use Tidy to do this, but I need to do some manual modifications after it. I looked throught the new features of Python 2 but I did not found an easy way to do something similar to what I did with this 8859 modification. Any idea or bigginning of solution ? -- "Computers are like horses; they can sense fear and will act based on that. Or, look at it like this. If you have a premonition of danger, maybe you're right." - Adam Engst From slk@sei.cmu.edu Sun Oct 29 17:55:51 2000 From: slk@sei.cmu.edu (Suresh L Konda) Date: Sun, 29 Oct 2000 12:55:51 -0500 Subject: [Pythonmac-SIG] Help with using aete and Adobe Illustrator 9 Message-ID: <39FC64A7.12D91E23@sei.cmu.edu> Hi, I followed the directions in the Mac/Demo directory and built a python package for Illustrator's scripting plugin using gensuitemodule.py. Again following the directions, I tried to get Illustrator to respond to apple events sent from python and failed. Basically, I am able to tell Illustrator to open a file but none of the rest of the commands are being handled. Here is an (edited) interpreter session (the lines starting with "arguments" are print statement outputs I added): >>> import macostools; >>> import Illustrator9 >>> import macfs >>> sfss=macfs.FSSpec("HD:Desktop Folder:illustrator-1") >>> dfss=macfs.FSSpec("HD:Desktop Folder:ill-1.pdf") >>> iob=Illustrator9.Illustrator9(signature='ART5', start=1) >>> tgt=iob.open(sfss) >>> iob.save(sfss, _in=dfss, as='pdf') arguments pre: {'as': 'pdf', '_in': FSSpec((-1, 16, 'ill-1.pdf'))} arguments post: {'fltp': 'pdf', 'kfil': FSSpec((-1, 16, 'ill-1.pdf')), '----': FSSpec((-1, 16, 'illustrator-1'))} arguments post 2: {'fltp': 'e193', 'kfil': FSSpec((-1, 16, 'ill-1.pdf')), '----': FSSpec((-1, 16, 'illustrator-1'))} Traceback (most recent call last): File "", line 1, in ? File "HD:Applications:Python 2.0c1:Mac:Lib:lib-scriptpackages:Illustrator9:Core_Suite.py", line 220, in save aetools.Error: (-1708, 'the AppleEvent was not handled by any handler', None) >>> iob.close(sfss, saving='no') Traceback (most recent call last): File "", line 1, in ? File "HD:Applications:Python 2.0c1:Mac:Lib:lib-scriptpackages:Illustrator9:Core_Suite.py", line 188, in close aetools.Error: (-1708, 'the AppleEvent was not handled by any handler', None) Any suggestions as to what I am doing wrong? Thanks in advance. Suresh From fgranger@mail.dotcom.fr Sun Oct 29 18:26:04 2000 From: fgranger@mail.dotcom.fr (=?iso-8859-1?Q?Fran=E7ois?= Granger) Date: Sun, 29 Oct 2000 19:26:04 +0100 Subject: [Pythonmac-SIG] Small issue Message-ID: If I change the preference for file creator in "EditPythonPrefs" to "Pepr" code for the Pepper editor, the files created have the creator of BBedit. This is not a big issue, just annoying. -- "Computers are like horses; they can sense fear and will act based on that. Or, look at it like this. If you have a premonition of danger, maybe you're right." - Adam Engst From jack@oratrix.nl Mon Oct 30 10:03:24 2000 From: jack@oratrix.nl (Jack Jansen) Date: Mon, 30 Oct 2000 11:03:24 +0100 Subject: [Pythonmac-SIG] Help with using aete and Adobe Illustrator 9 In-Reply-To: Message by Suresh L Konda , Sun, 29 Oct 2000 12:55:51 -0500 , <39FC64A7.12D91E23@sei.cmu.edu> Message-ID: <20001030100324.B4CDD31C49C@snelboot.oratrix.nl> > [...] Basically, I am > able to tell Illustrator to open > a file but none of the rest of the commands are being handled. > >>> import macostools; > >>> import Illustrator9 > >>> import macfs > >>> sfss=macfs.FSSpec("HD:Desktop Folder:illustrator-1") > >>> dfss=macfs.FSSpec("HD:Desktop Folder:ill-1.pdf") > >>> iob=Illustrator9.Illustrator9(signature='ART5', start=1) > >>> tgt=iob.open(sfss) > >>> iob.save(sfss, _in=dfss, as='pdf') My guess is that you should pass tgt as the direct object to the save call. -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm From cbarker@jps.net Mon Oct 30 18:09:07 2000 From: cbarker@jps.net (Chris Barker) Date: Mon, 30 Oct 2000 10:09:07 -0800 Subject: [Pythonmac-SIG] Editors for MacPython References: <000e01c0404d$95736100$0101a8c0@chrisl> Message-ID: <39FDB943.363C4533@jps.net> Francois Granger wrote: > >I use vim for the macintosh. It has nice syntax highlighting for python as > >well as many other languages. > > On that matter, have a look to Pepper. It is new and nice. I don't > regret paying the shareware fee. > > http://www.hekkelman.com I have put an unwritten section of the Python docs, that I would love to fill in, about editors to use for Python on the Mac. It would be great if I could get a little write up of each of the editors that folks are using for Python. The list I am aware of now is: The IDE (a whole separate section, but it needs to be written also) BBEdit Pepper Alpha Vim Emacs? What I would like is the following info (don't worry about form, I'll deal with that) Where to get it (and cost). What special Python Features does it have? What other (non Python specific) features does it have that make it a good choice? How to use it with Python. If you use one if these editors, please write somehting up for me!!! Note: the MacPython Docs are still very much a work in progress, please consider conributing in any other way as well. -Chris cbarker@jps.net -- Christopher Barker, Ph.D. cbarker@jps.net --- --- --- http://www.jps.net/cbarker -----@@ -----@@ -----@@ ------@@@ ------@@@ ------@@@ Water Resources Engineering ------ @ ------ @ ------ @ Coastal and Fluvial Hydrodynamics ------- --------- -------- ------------------------------------------------------------------------ ------------------------------------------------------------------------ From cbarker@jps.net Mon Oct 30 18:10:38 2000 From: cbarker@jps.net (Chris Barker) Date: Mon, 30 Oct 2000 10:10:38 -0800 Subject: [Pythonmac-SIG] Pepper and Python References: <000e01c0404d$95736100$0101a8c0@chrisl> Message-ID: <39FDB99E.1A091D72@jps.net> Francois Granger wrote: > On that matter, have a look to Pepper. It is new and nice. I don't > regret paying the shareware fee. > > http://www.hekkelman.com Is there a way to run a Python script from Pepper? (with a keystroke or something) -Chris -- Christopher Barker, Ph.D. cbarker@jps.net --- --- --- http://www.jps.net/cbarker -----@@ -----@@ -----@@ ------@@@ ------@@@ ------@@@ Water Resources Engineering ------ @ ------ @ ------ @ Coastal and Fluvial Hydrodynamics ------- --------- -------- ------------------------------------------------------------------------ ------------------------------------------------------------------------ From sdm7g@virginia.edu Tue Oct 31 00:07:06 2000 From: sdm7g@virginia.edu (Steven D. Majewski) Date: Mon, 30 Oct 2000 19:07:06 -0500 (EST) Subject: [Pythonmac-SIG] API_MAC_CARBON Message-ID: Jack: I noticed some of the "#if !TARGET_API_MAC_CARBON" in the sources. What exactly is the state of Carbonization of MacPython ? Is you build environment out-of-the-box Codewarrior ? ( and what version? 5? ) or are you using one of the later Universal Interfaces on top of CW's headers. Have you looked at all at the question of supporting the new carbon event model ? I'm guessing that to really work, SIOUX, GUSI and Tk would also need to support the new event model. I don't think there's been much new work done on Tk for Mac, so I doubt that there's any help there. What about GUSI ? ---| Steven D. Majewski (804-982-0831) |--- ---| Department of Molecular Physiology and Biological Physics |--- ---| University of Virginia Health Sciences Center |--- ---| P.O. Box 10011 Charlottesville, VA 22906-0011 |--- "All operating systems want to be unix, All programming languages want to be lisp." From jack@oratrix.nl Tue Oct 31 09:51:44 2000 From: jack@oratrix.nl (Jack Jansen) Date: Tue, 31 Oct 2000 10:51:44 +0100 Subject: [Pythonmac-SIG] Re: API_MAC_CARBON In-Reply-To: Message by "Steven D. Majewski" , Mon, 30 Oct 2000 19:07:06 -0500 (EST) , Message-ID: <20001031095144.F1E0631C49C@snelboot.oratrix.nl> > > > Jack: > I noticed some of the "#if !TARGET_API_MAC_CARBON" in the sources. > What exactly is the state of Carbonization of MacPython ? I have a Carbonized MacPython sort-of working. But: there is no GUSI for carbon yet, so it doesn't have sockets/select/threads, so that makes it rather useless. As soon as GUSI is Carbon-compatible we should have a working Carbon-Python. > Is you build environment out-of-the-box Codewarrior ? > ( and what version? 5? ) or are you using one of the > later Universal Interfaces on top of CW's headers. The 2.0 distribution is build with standard CW Pro 5.3. If you want to do Carbon development you'll need CW Pro 6. And I've only done carbon work with the Pro 6 beta release (my full copy still hasn't arrived). > Have you looked at all at the question of supporting the new > carbon event model ? > I'm guessing that to really work, SIOUX, GUSI and Tk would > also need to support the new event model. I don't think there's > been much new work done on Tk for Mac, so I doubt that there's > any help there. What about GUSI ? Things are slow with GUSI at the moment. And while a few people (including myself) have volunteered to help out it is rather difficult due to the GUSI source code structure (Matthias uses some sort of tangle/weave structure with homegrown tools). -- Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++ Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++ www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm From p.agapow@ic.ac.uk Tue Oct 31 18:20:31 2000 From: p.agapow@ic.ac.uk (Paul-Michael Agapow) Date: Tue, 31 Oct 2000 18:20:31 +0000 Subject: [Pythonmac-SIG] Editors for MacPython In-Reply-To: <39FDB943.363C4533@jps.net> References: <000e01c0404d$95736100$0101a8c0@chrisl> <39FDB943.363C4533@jps.net> Message-ID: >Francois Granger wrote: >> On that matter, have a look to Pepper. It is new and nice. I don't >> regret paying the shareware fee. >> >> http://www.hekkelman.com Make this another vote for Pepper, with the following advice to those who might have tried it before. I had a look at it when it first came out and it seemed to be very unstable. But that's no longer the case and the improvement in features and appearance over the last few months has been impressive. It would be nice if one could open a file in the Python interpeter / IDE from Pepper. As there is an SDK for extensions, all it requires is someone with a little bit of time ... p -- Paul-Michael Agapow (p.agapow@ic.ac.uk), Biology, Imperial College "Pikachu's special power is that he is monophyletic with lagomorphs ..." From fgranger@altern.org Tue Oct 31 19:36:36 2000 From: fgranger@altern.org (Francois Granger) Date: Tue, 31 Oct 2000 20:36:36 +0100 Subject: [Pythonmac-SIG] Editors for MacPython In-Reply-To: References: <000e01c0404d$95736100$0101a8c0@chrisl> <39FDB943.363C4533@jps.net> Message-ID: At 18:20 +0000 31/10/00, in message Re: [Pythonmac-SIG] Editors for MacPython, Paul-Michael Agapow wrote: > >It would be nice if one could open a file in the Python interpeter / >IDE from Pepper. As there is an SDK for extensions, all it requires >is someone with a little bit of time ... And the needed programming knowledge ;-) -- "Computers are like horses; they can sense fear and will act based on that. Or, look at it like this. If you have a premonition of danger, maybe you're right." - Adam Engst From sdm7g@virginia.edu Tue Oct 31 23:09:08 2000 From: sdm7g@virginia.edu (Steven D. Majewski) Date: Tue, 31 Oct 2000 18:09:08 -0500 (EST) Subject: [Pythonmac-SIG] Re: API_MAC_CARBON In-Reply-To: <20001031095144.F1E0631C49C@snelboot.oratrix.nl> Message-ID: On Tue, 31 Oct 2000, Jack Jansen wrote: > > I have a Carbonized MacPython sort-of working. But: there is no GUSI for > carbon yet, so it doesn't have sockets/select/threads, so that makes it rather > useless. As soon as GUSI is Carbon-compatible we should have a working > Carbon-Python. > Well -- if the MacOS Plugin Modules are Carbon, then they should also work for MacOSX Python. The would need to be recompiled to mach-o format for the current MacOSX python to load them. An alternative appears to be to add the CFM import code from MacPython to the OSX version so that it could import CFM modules. Re: the new event model: This seems very promising, however, it's not at all well documented. See: Or look directly at the CarbonEvents.h file from the Universal Interfaces - it seems to have at least one procedure that isn't in the html version of the API docs. The new event model doesn't use WaitNextEvent. It registers handlers for events and handles the default cases. You call RunApplicationEventLoop or RunCurrentEventLoop. It's sort of like a mini-framework in C. ( And it should work on OS8 or 9 with CarbonLib. ) ---| Steven D. Majewski (804-982-0831) |--- ---| Department of Molecular Physiology and Biological Physics |--- ---| University of Virginia Health Sciences Center |--- ---| P.O. Box 10011 Charlottesville, VA 22906-0011 |--- "All operating systems want to be unix, All programming languages want to be lisp."