changeset 7:807dfe9c366c trunk

[svn] Load openjdk/jdk7/b19 into jdk/trunk.
author xiomara
date Fri, 31 Aug 2007 00:44:13 +0000
parents 5937f8212f93
children 37f131a4a8e7
files control/make/Makefile control/make/jprt.properties hotspot/agent/make/Makefile hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java hotspot/build/linux/Makefile hotspot/build/linux/jdk_version hotspot/build/linux/makefiles/buildtree.make hotspot/build/linux/makefiles/defs.make hotspot/build/linux/makefiles/launcher.make hotspot/build/linux/makefiles/sa.make hotspot/build/linux/makefiles/vm.make hotspot/build/solaris/Makefile hotspot/build/solaris/jdk_version hotspot/build/solaris/makefiles/buildtree.make hotspot/build/solaris/makefiles/defs.make hotspot/build/solaris/makefiles/launcher.make hotspot/build/solaris/makefiles/sa.make hotspot/build/solaris/makefiles/vm.make hotspot/build/windows/build.bat hotspot/build/windows/build.make hotspot/build/windows/jdk_version hotspot/build/windows/makefiles/compile.make hotspot/build/windows/makefiles/defs.make hotspot/build/windows/makefiles/sa.make hotspot/build/windows/makefiles/vm.make hotspot/build/windows/projectfiles/common/Makefile hotspot/make/Makefile hotspot/make/defs.make hotspot/make/hotspot_version hotspot/make/jprt.gmk hotspot/make/jprt.properties hotspot/src/os/linux/vm/vmError_linux.cpp hotspot/src/os/solaris/vm/os_solaris.cpp hotspot/src/os/solaris/vm/vmError_solaris.cpp hotspot/src/os/win32/vm/os_win32.cpp hotspot/src/os/win32/vm/version.rc hotspot/src/os/win32/vm/vmError_win32.cpp hotspot/src/share/vm/c1/c1_LinearScan.cpp hotspot/src/share/vm/c1/c1_LinearScan.hpp hotspot/src/share/vm/ci/ciType.cpp hotspot/src/share/vm/classfile/javaClasses.cpp hotspot/src/share/vm/classfile/systemDictionary.cpp hotspot/src/share/vm/classfile/systemDictionary.hpp hotspot/src/share/vm/memory/referenceProcessor.cpp hotspot/src/share/vm/memory/universe.cpp hotspot/src/share/vm/memory/universe.hpp hotspot/src/share/vm/oops/klassKlass.cpp hotspot/src/share/vm/oops/oop.hpp hotspot/src/share/vm/oops/oop.inline2.hpp hotspot/src/share/vm/opto/block.hpp hotspot/src/share/vm/opto/callGenerator.cpp hotspot/src/share/vm/opto/gcm.cpp hotspot/src/share/vm/opto/graphKit.cpp hotspot/src/share/vm/opto/graphKit.hpp hotspot/src/share/vm/opto/parse.hpp hotspot/src/share/vm/opto/parse2.cpp hotspot/src/share/vm/opto/parseHelper.cpp hotspot/src/share/vm/prims/jvm.cpp hotspot/src/share/vm/prims/jvm.h hotspot/src/share/vm/prims/jvmtiEnv.cpp hotspot/src/share/vm/prims/jvmtiEnvBase.hpp hotspot/src/share/vm/runtime/globals.hpp hotspot/src/share/vm/runtime/java.hpp hotspot/src/share/vm/runtime/reflection.cpp hotspot/src/share/vm/runtime/safepoint.cpp hotspot/src/share/vm/runtime/safepoint.hpp hotspot/src/share/vm/runtime/vmStructs.cpp hotspot/src/share/vm/runtime/vm_version.cpp hotspot/src/share/vm/runtime/vm_version.hpp j2se/make/common/Defs-solaris.gmk j2se/make/common/Defs.gmk j2se/make/common/Sanity.gmk j2se/make/common/shared/Defs-linux.gmk j2se/make/common/shared/Defs-solaris.gmk j2se/make/common/shared/Defs-windows.gmk j2se/make/common/shared/Defs.gmk j2se/make/common/shared/Sanity-Settings.gmk j2se/make/common/shared/Sanity.gmk j2se/make/java/awt/Makefile j2se/make/jdk_generic_profile.sh j2se/make/sun/awt/FILES_export_unix.gmk j2se/make/sun/awt/FILES_export_windows.gmk j2se/make/sun/awt/Makefile j2se/make/sun/awt/make.depend j2se/make/sun/awt/mapfile-vers j2se/make/sun/awt/mapfile-vers-linux j2se/make/sun/awt/mawt.gmk j2se/make/sun/javac/javac/FILES_java.gmk j2se/make/sun/xawt/Makefile j2se/make/sun/xawt/mapfile-vers j2se/src/share/classes/com/sun/corba/se/impl/activation/CommandHandler.java j2se/src/share/classes/com/sun/javadoc/AnnotationDesc.java j2se/src/share/classes/com/sun/javadoc/AnnotationTypeDoc.java j2se/src/share/classes/com/sun/javadoc/AnnotationTypeElementDoc.java j2se/src/share/classes/com/sun/javadoc/AnnotationValue.java j2se/src/share/classes/com/sun/javadoc/ParameterizedType.java j2se/src/share/classes/com/sun/javadoc/TypeVariable.java j2se/src/share/classes/com/sun/javadoc/WildcardType.java j2se/src/share/classes/com/sun/mirror/apt/AnnotationProcessor.java j2se/src/share/classes/com/sun/mirror/apt/AnnotationProcessorEnvironment.java j2se/src/share/classes/com/sun/mirror/apt/AnnotationProcessorFactory.java j2se/src/share/classes/com/sun/mirror/apt/AnnotationProcessorListener.java j2se/src/share/classes/com/sun/mirror/apt/Filer.java j2se/src/share/classes/com/sun/mirror/apt/Messager.java j2se/src/share/classes/com/sun/mirror/apt/RoundCompleteEvent.java j2se/src/share/classes/com/sun/mirror/apt/RoundCompleteListener.java j2se/src/share/classes/com/sun/mirror/apt/RoundState.java j2se/src/share/classes/com/sun/mirror/declaration/AnnotationMirror.java j2se/src/share/classes/com/sun/mirror/declaration/AnnotationTypeDeclaration.java j2se/src/share/classes/com/sun/mirror/declaration/AnnotationTypeElementDeclaration.java j2se/src/share/classes/com/sun/mirror/declaration/AnnotationValue.java j2se/src/share/classes/com/sun/mirror/declaration/ClassDeclaration.java j2se/src/share/classes/com/sun/mirror/declaration/ConstructorDeclaration.java j2se/src/share/classes/com/sun/mirror/declaration/Declaration.java j2se/src/share/classes/com/sun/mirror/declaration/EnumConstantDeclaration.java j2se/src/share/classes/com/sun/mirror/declaration/EnumDeclaration.java j2se/src/share/classes/com/sun/mirror/declaration/ExecutableDeclaration.java j2se/src/share/classes/com/sun/mirror/declaration/FieldDeclaration.java j2se/src/share/classes/com/sun/mirror/declaration/InterfaceDeclaration.java j2se/src/share/classes/com/sun/mirror/declaration/MemberDeclaration.java j2se/src/share/classes/com/sun/mirror/declaration/MethodDeclaration.java j2se/src/share/classes/com/sun/mirror/declaration/PackageDeclaration.java j2se/src/share/classes/com/sun/mirror/declaration/ParameterDeclaration.java j2se/src/share/classes/com/sun/mirror/declaration/TypeDeclaration.java j2se/src/share/classes/com/sun/mirror/declaration/TypeParameterDeclaration.java j2se/src/share/classes/com/sun/mirror/type/AnnotationType.java j2se/src/share/classes/com/sun/mirror/type/ArrayType.java j2se/src/share/classes/com/sun/mirror/type/ClassType.java j2se/src/share/classes/com/sun/mirror/type/DeclaredType.java j2se/src/share/classes/com/sun/mirror/type/EnumType.java j2se/src/share/classes/com/sun/mirror/type/InterfaceType.java j2se/src/share/classes/com/sun/mirror/type/PrimitiveType.java j2se/src/share/classes/com/sun/mirror/type/ReferenceType.java j2se/src/share/classes/com/sun/mirror/type/TypeMirror.java j2se/src/share/classes/com/sun/mirror/type/TypeVariable.java j2se/src/share/classes/com/sun/mirror/type/VoidType.java j2se/src/share/classes/com/sun/mirror/type/WildcardType.java j2se/src/share/classes/com/sun/mirror/util/DeclarationFilter.java j2se/src/share/classes/com/sun/mirror/util/DeclarationScanner.java j2se/src/share/classes/com/sun/mirror/util/DeclarationVisitor.java j2se/src/share/classes/com/sun/mirror/util/DeclarationVisitors.java j2se/src/share/classes/com/sun/mirror/util/Declarations.java j2se/src/share/classes/com/sun/mirror/util/SimpleDeclarationVisitor.java j2se/src/share/classes/com/sun/mirror/util/SimpleTypeVisitor.java j2se/src/share/classes/com/sun/mirror/util/SourceOrderDeclScanner.java j2se/src/share/classes/com/sun/mirror/util/SourcePosition.java j2se/src/share/classes/com/sun/mirror/util/TypeVisitor.java j2se/src/share/classes/com/sun/mirror/util/Types.java j2se/src/share/classes/com/sun/tools/corba/se/idl/first.set j2se/src/share/classes/com/sun/tools/corba/se/idl/follow.set j2se/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties j2se/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_ja.properties j2se/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_zh_CN.properties j2se/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets.properties j2se/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_ja.properties j2se/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_zh_CN.properties j2se/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/CodeTaglet.java j2se/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LiteralTaglet.java j2se/src/share/classes/com/sun/tools/example/debug/tty/MessageOutput.java j2se/src/share/classes/com/sun/tools/example/doc/index.html j2se/src/share/classes/com/sun/tools/example/doc/javadt.html j2se/src/share/classes/com/sun/tools/example/doc/jdb.html j2se/src/share/classes/com/sun/tools/example/doc/trace.html j2se/src/share/classes/com/sun/tools/example/trace/EventThread.java j2se/src/share/classes/com/sun/tools/example/trace/StreamRedirectThread.java j2se/src/share/classes/com/sun/tools/example/trace/Trace.java j2se/src/share/classes/com/sun/tools/javac/Launcher.java j2se/src/share/classes/com/sun/tools/javac/Main.java j2se/src/share/classes/com/sun/tools/javac/Server.java j2se/src/share/classes/com/sun/tools/javac/api/JavacTool.java j2se/src/share/classes/com/sun/tools/javac/api/WrappingJavaFileManager.java j2se/src/share/classes/com/sun/tools/javac/code/Attribute.java j2se/src/share/classes/com/sun/tools/javac/code/BoundKind.java j2se/src/share/classes/com/sun/tools/javac/code/Flags.java j2se/src/share/classes/com/sun/tools/javac/code/Kinds.java j2se/src/share/classes/com/sun/tools/javac/code/Lint.java j2se/src/share/classes/com/sun/tools/javac/code/Scope.java j2se/src/share/classes/com/sun/tools/javac/code/Source.java j2se/src/share/classes/com/sun/tools/javac/code/Symbol.java j2se/src/share/classes/com/sun/tools/javac/code/Symtab.java j2se/src/share/classes/com/sun/tools/javac/code/Type.java j2se/src/share/classes/com/sun/tools/javac/code/TypeTags.java j2se/src/share/classes/com/sun/tools/javac/code/Types.java j2se/src/share/classes/com/sun/tools/javac/comp/Annotate.java j2se/src/share/classes/com/sun/tools/javac/comp/Attr.java j2se/src/share/classes/com/sun/tools/javac/comp/AttrContext.java j2se/src/share/classes/com/sun/tools/javac/comp/AttrContextEnv.java j2se/src/share/classes/com/sun/tools/javac/comp/Check.java j2se/src/share/classes/com/sun/tools/javac/comp/ConstFold.java j2se/src/share/classes/com/sun/tools/javac/comp/Enter.java j2se/src/share/classes/com/sun/tools/javac/comp/Env.java j2se/src/share/classes/com/sun/tools/javac/comp/Flow.java j2se/src/share/classes/com/sun/tools/javac/comp/Infer.java j2se/src/share/classes/com/sun/tools/javac/comp/Lower.java j2se/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java j2se/src/share/classes/com/sun/tools/javac/comp/Resolve.java j2se/src/share/classes/com/sun/tools/javac/comp/Todo.java j2se/src/share/classes/com/sun/tools/javac/comp/TransTypes.java j2se/src/share/classes/com/sun/tools/javac/jvm/ByteCodes.java j2se/src/share/classes/com/sun/tools/javac/jvm/CRTFlags.java j2se/src/share/classes/com/sun/tools/javac/jvm/CRTable.java j2se/src/share/classes/com/sun/tools/javac/jvm/ClassFile.java j2se/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java j2se/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java j2se/src/share/classes/com/sun/tools/javac/jvm/Code.java j2se/src/share/classes/com/sun/tools/javac/jvm/Gen.java j2se/src/share/classes/com/sun/tools/javac/jvm/Items.java j2se/src/share/classes/com/sun/tools/javac/jvm/Pool.java j2se/src/share/classes/com/sun/tools/javac/jvm/Target.java j2se/src/share/classes/com/sun/tools/javac/jvm/UninitializedType.java j2se/src/share/classes/com/sun/tools/javac/main/CommandLine.java j2se/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java j2se/src/share/classes/com/sun/tools/javac/main/JavacOption.java j2se/src/share/classes/com/sun/tools/javac/main/Main.java j2se/src/share/classes/com/sun/tools/javac/main/OptionName.java j2se/src/share/classes/com/sun/tools/javac/main/RecognizedOptions.java j2se/src/share/classes/com/sun/tools/javac/model/FilteredMemberList.java j2se/src/share/classes/com/sun/tools/javac/model/JavacElements.java j2se/src/share/classes/com/sun/tools/javac/model/JavacSourcePosition.java j2se/src/share/classes/com/sun/tools/javac/model/JavacTypes.java j2se/src/share/classes/com/sun/tools/javac/parser/EndPosParser.java j2se/src/share/classes/com/sun/tools/javac/parser/Keywords.java j2se/src/share/classes/com/sun/tools/javac/parser/Lexer.java j2se/src/share/classes/com/sun/tools/javac/parser/Parser.java j2se/src/share/classes/com/sun/tools/javac/parser/Scanner.java j2se/src/share/classes/com/sun/tools/javac/parser/Token.java j2se/src/share/classes/com/sun/tools/javac/processing/AnnotationProcessingError.java j2se/src/share/classes/com/sun/tools/javac/processing/JavacFiler.java j2se/src/share/classes/com/sun/tools/javac/processing/JavacMessager.java j2se/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java j2se/src/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java j2se/src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java j2se/src/share/classes/com/sun/tools/javac/tree/JCTree.java j2se/src/share/classes/com/sun/tools/javac/tree/Pretty.java j2se/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java j2se/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java j2se/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java j2se/src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java j2se/src/share/classes/com/sun/tools/javac/util/Abort.java j2se/src/share/classes/com/sun/tools/javac/util/BaseFileObject.java j2se/src/share/classes/com/sun/tools/javac/util/Bits.java j2se/src/share/classes/com/sun/tools/javac/util/ByteBuffer.java j2se/src/share/classes/com/sun/tools/javac/util/ClientCodeException.java j2se/src/share/classes/com/sun/tools/javac/util/Constants.java j2se/src/share/classes/com/sun/tools/javac/util/Context.java j2se/src/share/classes/com/sun/tools/javac/util/Convert.java j2se/src/share/classes/com/sun/tools/javac/util/DiagnosticFormatter.java j2se/src/share/classes/com/sun/tools/javac/util/FatalError.java j2se/src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java j2se/src/share/classes/com/sun/tools/javac/util/JavacFileManager.java j2se/src/share/classes/com/sun/tools/javac/util/LayoutCharacters.java j2se/src/share/classes/com/sun/tools/javac/util/List.java j2se/src/share/classes/com/sun/tools/javac/util/ListBuffer.java j2se/src/share/classes/com/sun/tools/javac/util/Log.java j2se/src/share/classes/com/sun/tools/javac/util/MandatoryWarningHandler.java j2se/src/share/classes/com/sun/tools/javac/util/Messages.java j2se/src/share/classes/com/sun/tools/javac/util/Name.java j2se/src/share/classes/com/sun/tools/javac/util/Old199.java j2se/src/share/classes/com/sun/tools/javac/util/Options.java j2se/src/share/classes/com/sun/tools/javac/util/Pair.java j2se/src/share/classes/com/sun/tools/javac/util/Paths.java j2se/src/share/classes/com/sun/tools/javac/util/Position.java j2se/src/share/classes/com/sun/tools/javac/util/PropagatedException.java j2se/src/share/classes/com/sun/tools/javac/util/Version.java j2se/src/share/classes/com/sun/tools/javac/util/Warner.java j2se/src/share/classes/com/sun/tools/javac/zip/ZipFileIndex.java j2se/src/share/classes/com/sun/tools/javadoc/AbstractTypeImpl.java j2se/src/share/classes/com/sun/tools/javadoc/AnnotationDescImpl.java j2se/src/share/classes/com/sun/tools/javadoc/AnnotationTypeDocImpl.java j2se/src/share/classes/com/sun/tools/javadoc/AnnotationTypeElementDocImpl.java j2se/src/share/classes/com/sun/tools/javadoc/AnnotationValueImpl.java j2se/src/share/classes/com/sun/tools/javadoc/JavadocClassReader.java j2se/src/share/classes/com/sun/tools/javadoc/ModifierFilter.java j2se/src/share/classes/com/sun/tools/javadoc/ParameterizedTypeImpl.java j2se/src/share/classes/com/sun/tools/javadoc/TypeVariableImpl.java j2se/src/share/classes/com/sun/tools/javadoc/WildcardTypeImpl.java j2se/src/share/classes/java/awt/AttributeValue.java j2se/src/share/classes/java/awt/Component.java j2se/src/share/classes/java/awt/Container.java j2se/src/share/classes/java/awt/Cursor.java j2se/src/share/classes/java/awt/Dialog.java j2se/src/share/classes/java/awt/EventDispatchThread.java j2se/src/share/classes/java/awt/EventQueue.java j2se/src/share/classes/java/awt/KeyboardFocusManager.java j2se/src/share/classes/java/awt/Toolkit.java j2se/src/share/classes/java/awt/Window.java j2se/src/share/classes/java/awt/event/MouseWheelEvent.java j2se/src/share/classes/java/awt/peer/ComponentPeer.java j2se/src/share/classes/java/lang/String.java j2se/src/share/classes/java/lang/Thread.java j2se/src/share/classes/java/lang/ThreadGroup.java j2se/src/share/classes/java/net/HttpURLConnection.java j2se/src/share/classes/java/net/InetAddress.java j2se/src/share/classes/java/net/ProxySelector.java j2se/src/share/classes/java/net/doc-files/net-properties.html j2se/src/share/classes/java/net/package.html j2se/src/share/classes/java/security/AccessControlContext.java j2se/src/share/classes/java/util/Collections.java j2se/src/share/classes/java/util/EnumSet.java j2se/src/share/classes/java/util/concurrent/ExecutorCompletionService.java j2se/src/share/classes/javax/annotation/processing/AbstractProcessor.java j2se/src/share/classes/javax/annotation/processing/Completion.java j2se/src/share/classes/javax/annotation/processing/Completions.java j2se/src/share/classes/javax/annotation/processing/Filer.java j2se/src/share/classes/javax/annotation/processing/FilerException.java j2se/src/share/classes/javax/annotation/processing/Messager.java j2se/src/share/classes/javax/annotation/processing/ProcessingEnvironment.java j2se/src/share/classes/javax/annotation/processing/Processor.java j2se/src/share/classes/javax/annotation/processing/RoundEnvironment.java j2se/src/share/classes/javax/annotation/processing/SupportedAnnotationTypes.java j2se/src/share/classes/javax/annotation/processing/SupportedOptions.java j2se/src/share/classes/javax/annotation/processing/SupportedSourceVersion.java j2se/src/share/classes/javax/annotation/processing/package-info.java j2se/src/share/classes/javax/lang/model/SourceVersion.java j2se/src/share/classes/javax/lang/model/element/AnnotationMirror.java j2se/src/share/classes/javax/lang/model/element/AnnotationValue.java j2se/src/share/classes/javax/lang/model/element/AnnotationValueVisitor.java j2se/src/share/classes/javax/lang/model/element/Element.java j2se/src/share/classes/javax/lang/model/element/ElementKind.java j2se/src/share/classes/javax/lang/model/element/ElementVisitor.java j2se/src/share/classes/javax/lang/model/element/ExecutableElement.java j2se/src/share/classes/javax/lang/model/element/Modifier.java j2se/src/share/classes/javax/lang/model/element/Name.java j2se/src/share/classes/javax/lang/model/element/NestingKind.java j2se/src/share/classes/javax/lang/model/element/PackageElement.java j2se/src/share/classes/javax/lang/model/element/TypeElement.java j2se/src/share/classes/javax/lang/model/element/TypeParameterElement.java j2se/src/share/classes/javax/lang/model/element/UnknownAnnotationValueException.java j2se/src/share/classes/javax/lang/model/element/UnknownElementException.java j2se/src/share/classes/javax/lang/model/element/VariableElement.java j2se/src/share/classes/javax/lang/model/element/package-info.java j2se/src/share/classes/javax/lang/model/package-info.java j2se/src/share/classes/javax/lang/model/type/ArrayType.java j2se/src/share/classes/javax/lang/model/type/DeclaredType.java j2se/src/share/classes/javax/lang/model/type/ErrorType.java j2se/src/share/classes/javax/lang/model/type/ExecutableType.java j2se/src/share/classes/javax/lang/model/type/MirroredTypeException.java j2se/src/share/classes/javax/lang/model/type/MirroredTypesException.java j2se/src/share/classes/javax/lang/model/type/NoType.java j2se/src/share/classes/javax/lang/model/type/NullType.java j2se/src/share/classes/javax/lang/model/type/PrimitiveType.java j2se/src/share/classes/javax/lang/model/type/ReferenceType.java j2se/src/share/classes/javax/lang/model/type/TypeKind.java j2se/src/share/classes/javax/lang/model/type/TypeMirror.java j2se/src/share/classes/javax/lang/model/type/TypeVariable.java j2se/src/share/classes/javax/lang/model/type/TypeVisitor.java j2se/src/share/classes/javax/lang/model/type/UnknownTypeException.java j2se/src/share/classes/javax/lang/model/type/WildcardType.java j2se/src/share/classes/javax/lang/model/type/package-info.java j2se/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor6.java j2se/src/share/classes/javax/lang/model/util/AbstractElementVisitor6.java j2se/src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java j2se/src/share/classes/javax/lang/model/util/ElementFilter.java j2se/src/share/classes/javax/lang/model/util/ElementKindVisitor6.java j2se/src/share/classes/javax/lang/model/util/ElementScanner6.java j2se/src/share/classes/javax/lang/model/util/Elements.java j2se/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor6.java j2se/src/share/classes/javax/lang/model/util/SimpleElementVisitor6.java j2se/src/share/classes/javax/lang/model/util/SimpleTypeVisitor6.java j2se/src/share/classes/javax/lang/model/util/TypeKindVisitor6.java j2se/src/share/classes/javax/lang/model/util/Types.java j2se/src/share/classes/javax/lang/model/util/package-info.java j2se/src/share/classes/javax/xml/stream/EventFilter.java j2se/src/share/classes/javax/xml/stream/FactoryConfigurationError.java j2se/src/share/classes/javax/xml/stream/Location.java j2se/src/share/classes/javax/xml/stream/StreamFilter.java j2se/src/share/classes/javax/xml/stream/XMLEventFactory.java j2se/src/share/classes/javax/xml/stream/XMLEventReader.java j2se/src/share/classes/javax/xml/stream/XMLEventWriter.java j2se/src/share/classes/javax/xml/stream/XMLInputFactory.java j2se/src/share/classes/javax/xml/stream/XMLOutputFactory.java j2se/src/share/classes/javax/xml/stream/XMLReporter.java j2se/src/share/classes/javax/xml/stream/XMLResolver.java j2se/src/share/classes/javax/xml/stream/XMLStreamConstants.java j2se/src/share/classes/javax/xml/stream/XMLStreamException.java j2se/src/share/classes/javax/xml/stream/XMLStreamReader.java j2se/src/share/classes/javax/xml/stream/XMLStreamWriter.java j2se/src/share/classes/javax/xml/stream/events/Attribute.java j2se/src/share/classes/javax/xml/stream/events/Characters.java j2se/src/share/classes/javax/xml/stream/events/Comment.java j2se/src/share/classes/javax/xml/stream/events/DTD.java j2se/src/share/classes/javax/xml/stream/events/EndDocument.java j2se/src/share/classes/javax/xml/stream/events/EndElement.java j2se/src/share/classes/javax/xml/stream/events/EntityDeclaration.java j2se/src/share/classes/javax/xml/stream/events/EntityReference.java j2se/src/share/classes/javax/xml/stream/events/Namespace.java j2se/src/share/classes/javax/xml/stream/events/NotationDeclaration.java j2se/src/share/classes/javax/xml/stream/events/ProcessingInstruction.java j2se/src/share/classes/javax/xml/stream/events/StartDocument.java j2se/src/share/classes/javax/xml/stream/events/StartElement.java j2se/src/share/classes/javax/xml/stream/events/XMLEvent.java j2se/src/share/classes/javax/xml/stream/util/EventReaderDelegate.java j2se/src/share/classes/javax/xml/stream/util/StreamReaderDelegate.java j2se/src/share/classes/javax/xml/stream/util/XMLEventAllocator.java j2se/src/share/classes/javax/xml/stream/util/XMLEventConsumer.java j2se/src/share/classes/sun/awt/DebugHelper.java.m4 j2se/src/share/classes/sun/awt/DebugHelperImpl.java j2se/src/share/classes/sun/awt/DebugSettings.java j2se/src/share/classes/sun/awt/NullComponentPeer.java j2se/src/share/classes/sun/awt/ScrollPaneWheelScroller.java j2se/src/share/classes/sun/awt/SunDisplayChanger.java j2se/src/share/classes/sun/awt/SunGraphicsCallback.java j2se/src/share/classes/sun/awt/SunToolkit.java j2se/src/share/classes/sun/awt/datatransfer/DataTransferer.java j2se/src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java j2se/src/share/classes/sun/management/snmp/jvminstr/README j2se/src/share/classes/sun/net/www/protocol/http/NegotiateAuthentication.java j2se/src/share/classes/sun/security/jgss/GSSUtil.java j2se/src/share/classes/sun/security/jgss/krb5/Krb5Context.java j2se/src/share/classes/sun/security/jgss/krb5/Krb5Util.java j2se/src/share/classes/sun/security/jgss/wrapper/NativeGSSFactory.java j2se/src/share/classes/sun/security/provider/PolicyFile.java j2se/src/share/demo/jvmti/hprof/jvm.hprof.txt j2se/src/share/demo/jvmti/hprof/manual.html j2se/src/share/demo/jvmti/index.html j2se/src/share/native/sun/awt/debug/debug_trace.c j2se/src/share/native/sun/java2d/pipe/Region.c j2se/src/share/native/sun/java2d/pipe/Region.h j2se/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java j2se/src/solaris/classes/sun/awt/X11/XChoicePeer.java j2se/src/solaris/classes/sun/awt/X11/XComponentPeer.java j2se/src/solaris/classes/sun/awt/X11/XEmbedChildProxyPeer.java j2se/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java j2se/src/solaris/classes/sun/awt/X11/XlibUtil.java j2se/src/solaris/classes/sun/awt/X11/XlibWrapper.java j2se/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java j2se/src/solaris/classes/sun/awt/motif/MComponentPeer.java j2se/src/solaris/classes/sun/awt/motif/MScrollPanePeer.java j2se/src/solaris/classes/sun/awt/motif/MToolkit.java j2se/src/solaris/native/java/net/Inet4AddressImpl.c j2se/src/solaris/native/java/net/Inet6AddressImpl.c j2se/src/solaris/native/sun/awt/splashscreen/splashscreen_sys.c j2se/src/solaris/native/sun/awt/utility/rect.h j2se/src/solaris/native/sun/java2d/x11/X11SurfaceData.c j2se/src/solaris/native/sun/xawt/XlibWrapper.c j2se/src/windows/classes/sun/awt/windows/WComponentPeer.java j2se/src/windows/classes/sun/awt/windows/WScrollPanePeer.java j2se/src/windows/classes/sun/awt/windows/WToolkit.java j2se/src/windows/classes/sun/awt/windows/WWindowPeer.java j2se/src/windows/native/java/net/Inet4AddressImpl.c j2se/src/windows/native/java/net/Inet6AddressImpl.c j2se/src/windows/native/sun/awt/utility/rect.h j2se/src/windows/native/sun/windows/awt_Component.cpp j2se/src/windows/native/sun/windows/awt_Component.h j2se/src/windows/native/sun/windows/awt_Toolkit.cpp j2se/src/windows/native/sun/windows/awt_Toolkit.h j2se/src/windows/native/sun/windows/awt_TrayIcon.cpp j2se/test/Makefile j2se/test/com/sun/javadoc/AccessAsciiArt/AccessAsciiArt.java j2se/test/com/sun/javadoc/JavascriptWinTitle/JavascriptWinTitle.java j2se/test/com/sun/javadoc/MetaTag/MetaTag.java j2se/test/com/sun/javadoc/PackagesHeader/PackagesHeader.java j2se/test/com/sun/javadoc/_template/Template.java j2se/test/com/sun/javadoc/_template/TemplateComplete.java j2se/test/com/sun/javadoc/dupThrowsTags/TestDupThrowsTags.java j2se/test/com/sun/javadoc/testAbsLinkPath/TestAbsLinkPath.java j2se/test/com/sun/javadoc/testAnnotationTypes/TestAnnotationTypes.java j2se/test/com/sun/javadoc/testBackSlashInLink/TestBackSlashInLink.java j2se/test/com/sun/javadoc/testBadSourceFile/TestBadSourceFile.java j2se/test/com/sun/javadoc/testBaseClass/TestBaseClass.java j2se/test/com/sun/javadoc/testBreakIterator/TestBreakIterator.java j2se/test/com/sun/javadoc/testCRLineSeparator/TestCRLineSeparator.java j2se/test/com/sun/javadoc/testClassCrossReferences/TestClassCrossReferences.java j2se/test/com/sun/javadoc/testClassTree/TestClassTree.java j2se/test/com/sun/javadoc/testCmndLineClass/TestCmndLineClass.java j2se/test/com/sun/javadoc/testConstantValuesPage/TestConstantValuesPage.java j2se/test/com/sun/javadoc/testConstructorIndent/TestConstructorIndent.java j2se/test/com/sun/javadoc/testDeprecatedDocs/TestDeprecatedDocs.java j2se/test/com/sun/javadoc/testDocErrorReporter/TestDocErrorReporter.java j2se/test/com/sun/javadoc/testDocFileDir/TestDocFileDir.java j2se/test/com/sun/javadoc/testDocRootInlineTag/TestDocRootInlineTag.java j2se/test/com/sun/javadoc/testDupParamWarn/TestDupParamWarn.java j2se/test/com/sun/javadoc/testEmptyClass/TestEmptyClass.java j2se/test/com/sun/javadoc/testEnclosingClass/TestEnclosingClass.java j2se/test/com/sun/javadoc/testEncoding/TestEncoding.java j2se/test/com/sun/javadoc/testExternalOverridenMethod/TestExternalOverridenMethod.java j2se/test/com/sun/javadoc/testGroupOption/TestGroupOption.java j2se/test/com/sun/javadoc/testHeadings/TestHeadings.java j2se/test/com/sun/javadoc/testHelpOption/TestHelpOption.java j2se/test/com/sun/javadoc/testHiddenMembers/TestHiddenMembers.java j2se/test/com/sun/javadoc/testHref/TestHref.java j2se/test/com/sun/javadoc/testHrefInDocComment/TestHrefInDocComment.java j2se/test/com/sun/javadoc/testHtmlComments/TestHtmlComments.java j2se/test/com/sun/javadoc/testIndex/TestIndex.java j2se/test/com/sun/javadoc/testInlineLinkLabel/TestInlineLinkLabel.java j2se/test/com/sun/javadoc/testInterface/TestInterface.java j2se/test/com/sun/javadoc/testJavascript/TestJavascript.java j2se/test/com/sun/javadoc/testLeadingSpaces/LeadingSpaces.java j2se/test/com/sun/javadoc/testLegacyTaglet/TestLegacyTaglet.java j2se/test/com/sun/javadoc/testLinkOption/TestBadLinkOption.java j2se/test/com/sun/javadoc/testLinkOption/TestLinkOption.java j2se/test/com/sun/javadoc/testLinkOption/TestNewLineInLink.java j2se/test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java j2se/test/com/sun/javadoc/testLinkToSerialForm/TestLinkToSerialForm.java j2se/test/com/sun/javadoc/testMemberInheritence/TestMemberInheritence.java j2se/test/com/sun/javadoc/testMemberSummary/TestMemberSummary.java j2se/test/com/sun/javadoc/testModifier/TestModifier.java j2se/test/com/sun/javadoc/testNavagation/TestNavagation.java j2se/test/com/sun/javadoc/testNestedInlineTag/TestNestedInlineTag.java j2se/test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java j2se/test/com/sun/javadoc/testNoPackagesFile/TestNoPackagesFile.java j2se/test/com/sun/javadoc/testNotifications/TestNotifications.java j2se/test/com/sun/javadoc/testOverridenMethods/TestMultiInheritence.java j2se/test/com/sun/javadoc/testOverridenMethods/TestOverridenMethodDocCopy.java j2se/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethods.java j2se/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java j2se/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPrivateFlag.java j2se/test/com/sun/javadoc/testPackagePage/TestPackagePage.java j2se/test/com/sun/javadoc/testParamTaglet/TestParamTaglet.java j2se/test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java j2se/test/com/sun/javadoc/testRecurseSubPackages/TestRecurseSubPackages.java j2se/test/com/sun/javadoc/testRelativeLinks/TestRelativeLinks.java j2se/test/com/sun/javadoc/testReturnTag/TestReturnTag.java j2se/test/com/sun/javadoc/testSerialVersionUID/TestSerialVersionUID.java j2se/test/com/sun/javadoc/testSerializedForm/TestSerializedForm.java j2se/test/com/sun/javadoc/testSimpleTag/TestSimpleTag.java j2se/test/com/sun/javadoc/testSimpleTagExclude/TestSimpleTagExclude.java j2se/test/com/sun/javadoc/testStylesheet/TestStylesheet.java j2se/test/com/sun/javadoc/testSummaryHeading/TestSummaryHeading.java j2se/test/com/sun/javadoc/testSuperclassInSerialForm/TestSuperClassInSerialForm.java j2se/test/com/sun/javadoc/testSupplementary/TestSupplementary.java j2se/test/com/sun/javadoc/testTagHolderMethod/TestTagHolderMethod.java j2se/test/com/sun/javadoc/testTagInheritence/TestTagInheritence.java j2se/test/com/sun/javadoc/testTagMisuse/TestTagMisuse.java j2se/test/com/sun/javadoc/testTaglets/TestTaglets.java j2se/test/com/sun/javadoc/testThrowsHead/TestThrowsHead.java j2se/test/com/sun/javadoc/testThrowsInheritence/TestThrowsTagInheritence.java j2se/test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java j2se/test/com/sun/javadoc/testTitleInHref/TestTitleInHref.java j2se/test/com/sun/javadoc/testTopOption/TestTopOption.java j2se/test/com/sun/javadoc/testTypeParams/TestTypeParameters.java j2se/test/com/sun/javadoc/testUnnamedPackage/TestUnnamedPackage.java j2se/test/com/sun/javadoc/testUseOption/TestUseOption.java j2se/test/com/sun/javadoc/testValueTag/TestValueTag.java j2se/test/com/sun/javadoc/testWarnBadParamNames/TestWarnBadParamNames.java j2se/test/com/sun/javadoc/testWarnings/TestWarnings.java j2se/test/com/sun/management/UnixOperatingSystemMXBean/GetMaxFileDescriptorCount.sh j2se/test/com/sun/management/UnixOperatingSystemMXBean/GetOpenFileDescriptorCount.sh j2se/test/java/awt/Mixing/LWPopupMenu.java j2se/test/java/awt/Mixing/MixingOnDialog.java j2se/test/java/awt/Mixing/OpaqueTest.java j2se/test/java/awt/Mixing/OverlappingButtons.java j2se/test/java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java j2se/test/java/awt/TrayIcon/DragEventSource/DragEventSource.java j2se/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java j2se/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java j2se/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html j2se/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.java j2se/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html j2se/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.java j2se/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java j2se/test/java/awt/regtesthelpers/Util.java j2se/test/java/lang/String/Supplementary.java j2se/test/java/lang/ref/SoftReference/Pin.java j2se/test/java/security/Security/signedfirst/Dyn.sh j2se/test/java/security/Security/signedfirst/Static.sh j2se/test/java/util/Arrays/Correct.java j2se/test/java/util/Collections/CheckedIdentityMap.java j2se/test/java/util/Collections/CheckedNull.java j2se/test/javax/management/ImplementationVersion/ImplVersionCommand.java j2se/test/javax/management/ImplementationVersion/ImplVersionReader.java j2se/test/javax/management/monitor/MBeanServerBuilderImpl.java j2se/test/javax/management/monitor/MBeanServerForwarderInvocationHandler.java j2se/test/javax/management/remote/mandatory/version/ImplVersionCommand.java j2se/test/javax/management/remote/mandatory/version/ImplVersionReader.java j2se/test/sun/net/www/http/ChunkedInputStream/test.txt j2se/test/sun/security/provider/PolicyFile/getinstance/getinstance.sh j2se/test/sun/security/x509/AVA/AVAEqualsHashCode.java j2se/test/sun/security/x509/AVA/EmptyValue.java j2se/test/sun/security/x509/X500Name/AllAttribs.java j2se/test/sun/security/x509/X500Name/DerValueConstructor.java j2se/test/sun/security/x509/X500Name/NullX500Name.java j2se/test/tools/apt/Basics/Aggregate.java j2se/test/tools/apt/Basics/ClassAnnotations.java j2se/test/tools/apt/Basics/FreshnessApf.java j2se/test/tools/apt/Basics/GenClass.java j2se/test/tools/apt/Basics/Indirect.java j2se/test/tools/apt/Basics/Lacuna.java j2se/test/tools/apt/Basics/MethodAnnotations.java j2se/test/tools/apt/Basics/Milk.java j2se/test/tools/apt/Basics/MisMatch.java j2se/test/tools/apt/Basics/Misc.java j2se/test/tools/apt/Basics/MyMarker.java j2se/test/tools/apt/Basics/MySimple.java j2se/test/tools/apt/Basics/NestedClassAnnotations.java j2se/test/tools/apt/Basics/NullAPF.java j2se/test/tools/apt/Basics/ParameterAnnotations.java j2se/test/tools/apt/Basics/StaticFieldAnnotations.java j2se/test/tools/apt/Basics/StaticMethodAnnotations.java j2se/test/tools/apt/Basics/TestGetPackageApf.java j2se/test/tools/apt/Basics/TestGetTypeDeclarationApf.java j2se/test/tools/apt/Basics/annot/AnnotMarker.java j2se/test/tools/apt/Basics/annot/AnnotShangri_la.java j2se/test/tools/apt/Basics/annot/AnnotSimple.java j2se/test/tools/apt/Basics/annot/annot2/AnnotMarker2.java j2se/test/tools/apt/Basics/annot/annot2/AnnotSimple2.java j2se/test/tools/apt/Basics/apt.sh j2se/test/tools/apt/Basics/com.sun.mirror.apt.AnnotationProcessorFactory j2se/test/tools/apt/Basics/foo/bar/Baz.java j2se/test/tools/apt/Basics/foo/bar/Quux.java j2se/test/tools/apt/Basics/golden.txt j2se/test/tools/apt/Basics/goldenAggregate.txt j2se/test/tools/apt/Basics/p1/p2.java j2se/test/tools/apt/Basics/p1/p2/C1.java j2se/test/tools/apt/Basics/print.sh j2se/test/tools/apt/Compile/ClassDeclApf.java j2se/test/tools/apt/Compile/ClassDeclApf2.java j2se/test/tools/apt/Compile/Dummy1.java j2se/test/tools/apt/Compile/ErrorAPF.java j2se/test/tools/apt/Compile/HelloAnnotation.java j2se/test/tools/apt/Compile/HelloWorld.java j2se/test/tools/apt/Compile/Round1Apf.java j2se/test/tools/apt/Compile/Round2Apf.java j2se/test/tools/apt/Compile/Round3Apf.java j2se/test/tools/apt/Compile/Round4Apf.java j2se/test/tools/apt/Compile/Rounds.java j2se/test/tools/apt/Compile/StaticApf.java j2se/test/tools/apt/Compile/WarnAPF.java j2se/test/tools/apt/Compile/WrappedStaticApf.java j2se/test/tools/apt/Compile/compile.sh j2se/test/tools/apt/Compile/golden.txt j2se/test/tools/apt/Compile/goldenFactory.txt j2se/test/tools/apt/Compile/goldenWarn.txt j2se/test/tools/apt/Compile/servicesRound1 j2se/test/tools/apt/Compile/servicesRound2 j2se/test/tools/apt/Compile/servicesRound3 j2se/test/tools/apt/Compile/servicesRound4 j2se/test/tools/apt/Compile/servicesStaticApf j2se/test/tools/apt/Compile/src/AhOneClass.java j2se/test/tools/apt/Compile/src/AndAhTwoClass.java j2se/test/tools/apt/Compile/src/Round1Class.java j2se/test/tools/apt/Discovery/Dee.java j2se/test/tools/apt/Discovery/Dum.java j2se/test/tools/apt/Discovery/Empty.java j2se/test/tools/apt/Discovery/PhantomTouch.java j2se/test/tools/apt/Discovery/PhantomUpdate.java j2se/test/tools/apt/Discovery/Touch.java j2se/test/tools/apt/Discovery/discovery.sh j2se/test/tools/apt/Discovery/servicesBadTouch j2se/test/tools/apt/Discovery/servicesPhantomTouch j2se/test/tools/apt/Discovery/servicesTouch j2se/test/tools/apt/Discovery/servicesTweedle j2se/test/tools/apt/Misc/Marked.java j2se/test/tools/apt/Misc/Marker.java j2se/test/tools/apt/Misc/Misc.java j2se/test/tools/apt/Misc/misc.sh j2se/test/tools/apt/Misc/servicesMisc j2se/test/tools/apt/Options/Marked.java j2se/test/tools/apt/Options/Marker.java j2se/test/tools/apt/Options/OptionChecker.java j2se/test/tools/apt/Options/options.sh j2se/test/tools/apt/Options/servicesOptions j2se/test/tools/apt/Scanners/Counter.java j2se/test/tools/apt/Scanners/MemberOrderApf.java j2se/test/tools/apt/Scanners/Order.java j2se/test/tools/apt/Scanners/Scanner.java j2se/test/tools/apt/Scanners/TestEnum.java j2se/test/tools/apt/Scanners/VisitOrder.java j2se/test/tools/apt/Scanners/scanner.sh j2se/test/tools/apt/Scanners/servicesScanner j2se/test/tools/apt/lib/Ignore.java j2se/test/tools/apt/lib/Test.java j2se/test/tools/apt/lib/TestProcessor.java j2se/test/tools/apt/lib/TestProcessorFactory.java j2se/test/tools/apt/lib/Tester.java j2se/test/tools/apt/mirror/declaration/AnnoMirror.java j2se/test/tools/apt/mirror/declaration/AnnoTypeDecl.java j2se/test/tools/apt/mirror/declaration/AnnoTypeElemDecl.java j2se/test/tools/apt/mirror/declaration/AnnoVal.java j2se/test/tools/apt/mirror/declaration/ClassDecl.java j2se/test/tools/apt/mirror/declaration/ConstExpr.java j2se/test/tools/apt/mirror/declaration/ConstructorDecl.java j2se/test/tools/apt/mirror/declaration/EnumDecl.java j2se/test/tools/apt/mirror/declaration/FieldDecl.java j2se/test/tools/apt/mirror/declaration/GetAnno.java j2se/test/tools/apt/mirror/declaration/InterfaceDecl.java j2se/test/tools/apt/mirror/declaration/MethodDecl.java j2se/test/tools/apt/mirror/declaration/PackageDecl.java j2se/test/tools/apt/mirror/declaration/ParameterDecl.java j2se/test/tools/apt/mirror/declaration/pkg1/AClass.java j2se/test/tools/apt/mirror/declaration/pkg1/AnAnnoType.java j2se/test/tools/apt/mirror/declaration/pkg1/AnEnum.java j2se/test/tools/apt/mirror/declaration/pkg1/AnInterface.java j2se/test/tools/apt/mirror/declaration/pkg1/package-info.java j2se/test/tools/apt/mirror/declaration/pkg1/pkg2/AnInterface.java j2se/test/tools/apt/mirror/declaration/pkg1/pkg2/package.html j2se/test/tools/apt/mirror/type/AnnoTyp.java j2se/test/tools/apt/mirror/type/ArrayTyp.java j2se/test/tools/apt/mirror/type/ClassTyp.java j2se/test/tools/apt/mirror/type/EnumTyp.java j2se/test/tools/apt/mirror/type/InterfaceTyp.java j2se/test/tools/apt/mirror/type/PrimitiveTyp.java j2se/test/tools/apt/mirror/type/TypeVar.java j2se/test/tools/apt/mirror/type/WildcardTyp.java j2se/test/tools/apt/mirror/util/Overrides.java j2se/test/tools/apt/mirror/util/TypeCreation.java j2se/test/tools/apt/verifyVariables.sh j2se/test/tools/javac/4980495/static/Test.java j2se/test/tools/javac/4980495/std/Test.java j2se/test/tools/javac/5005368.java j2se/test/tools/javac/5045412/Bar.java j2se/test/tools/javac/6257443/T6257443.java j2se/test/tools/javac/6330920/T6330920.java j2se/test/tools/javac/6330997/T6330997.java j2se/test/tools/javac/6341866/T6341866.java j2se/test/tools/javac/6342411/T6342411.java j2se/test/tools/javac/6394683/T6394683.java j2se/test/tools/javac/6400383/T6400383.java j2se/test/tools/javac/6402516/CheckClass.java j2se/test/tools/javac/6402516/CheckIsAccessible.java j2se/test/tools/javac/6402516/CheckLocalElements.java j2se/test/tools/javac/6402516/CheckMethod.java j2se/test/tools/javac/6410653/T6410653.java j2se/test/tools/javac/6440583/T6440583.java j2se/test/tools/javac/6457284/T6457284.java j2se/test/tools/javac/6464451/BigFinally.java j2se/test/tools/javac/6464451/DeepNestedFinally.java j2se/test/tools/javac/6464451/ManyExitsInTry.java j2se/test/tools/javac/6491592/T6491592.java j2se/test/tools/javac/6520152/T6520152.java j2se/test/tools/javac/6547131/T.java j2se/test/tools/javac/AbstractOverride.java j2se/test/tools/javac/AccessMethods/AccessMethodsLHS.java j2se/test/tools/javac/AccessMethods/BitwiseAssignment.java j2se/test/tools/javac/AccessMethods/ChainedAssignment.java j2se/test/tools/javac/AccessMethods/ConstructorAccess.java j2se/test/tools/javac/AccessMethods/InternalHandshake.java j2se/test/tools/javac/AccessMethods/LateAddition.java j2se/test/tools/javac/AccessMethods/UplevelPrivateConstants.java j2se/test/tools/javac/AddReferenceThis.java j2se/test/tools/javac/Ambig3.java j2se/test/tools/javac/AnonClsInIntf.java j2se/test/tools/javac/AnonInnerException_1.java j2se/test/tools/javac/AnonInnerException_2.java j2se/test/tools/javac/AnonInnerException_3.java j2se/test/tools/javac/AnonStaticMember_1.java j2se/test/tools/javac/AnonStaticMember_2.java j2se/test/tools/javac/AnonStaticMember_3.java j2se/test/tools/javac/AnonymousConstructorExceptions.java j2se/test/tools/javac/AnonymousNull.java j2se/test/tools/javac/AnonymousProtect/AnonymousProtect.java j2se/test/tools/javac/AnonymousType.java j2se/test/tools/javac/ArrayCast.java j2se/test/tools/javac/ArrayCloneCodeGen.java j2se/test/tools/javac/BadAnnotation.java j2se/test/tools/javac/BadBreak.java j2se/test/tools/javac/BadCovar.java j2se/test/tools/javac/BadHexConstant.java j2se/test/tools/javac/BadOptimization/DeadCode1.java j2se/test/tools/javac/BadOptimization/DeadCode2.java j2se/test/tools/javac/BadOptimization/DeadCode3.java j2se/test/tools/javac/BadOptimization/DeadCode4.java j2se/test/tools/javac/BadOptimization/DeadCode5.java j2se/test/tools/javac/BadOptimization/DeadCode6.java j2se/test/tools/javac/BadOptimization/Switch1.java j2se/test/tools/javac/BadOptimization/Switch2.java j2se/test/tools/javac/BoolArray.java j2se/test/tools/javac/BoundClassError.java j2se/test/tools/javac/BreakAcrossClass.java j2se/test/tools/javac/Capture.java j2se/test/tools/javac/CaptureInSubtype.java j2se/test/tools/javac/CascadedInnerNewInstance.java j2se/test/tools/javac/CastInterface2Array.java j2se/test/tools/javac/ClassCycle/ClassCycle1a.java j2se/test/tools/javac/ClassCycle/ClassCycle1b.java j2se/test/tools/javac/ClassCycle/ClassCycle2a.java j2se/test/tools/javac/ClassCycle/ClassCycle2b.java j2se/test/tools/javac/ClassCycle/ClassCycle3a.java j2se/test/tools/javac/ClassCycle/ClassCycle3b.java j2se/test/tools/javac/ClassFileModifiers/ClassModifiers.java j2se/test/tools/javac/ClassFileModifiers/MemberModifiers.java j2se/test/tools/javac/ClassIsAbstract.java j2se/test/tools/javac/ClassLit.java j2se/test/tools/javac/ClassLiterals/ClassLiteralHelperContext.java j2se/test/tools/javac/ClassLiterals/InitializeOuter.java j2se/test/tools/javac/ClassLiterals/InitializeTarget.java j2se/test/tools/javac/ClassLiterals/InnerClassLiterals.java j2se/test/tools/javac/ClassLiterals/LiteralInterfaceImpl.java j2se/test/tools/javac/ClassLiterals/LiteralInterface_1.java j2se/test/tools/javac/ClassLiterals/LiteralInterface_2.java j2se/test/tools/javac/ClassLiterals/LiteralInterface_3.java j2se/test/tools/javac/ClassLiterals/evalinit/ClassLiteralEvalInit.java j2se/test/tools/javac/ClassLiterals/evalinit/java/lang/Integer.java j2se/test/tools/javac/ClassLiterals/p1/C.java j2se/test/tools/javac/ClassLiterals/p1/SuperClass.java j2se/test/tools/javac/ClassModifiers/InterfaceAndInnerClsCtor.java j2se/test/tools/javac/ClassPathTest/ClassPathTest.sh j2se/test/tools/javac/ClassPathTest/ClassPathTest1.java j2se/test/tools/javac/ClassPathTest/ClassPathTest2.java j2se/test/tools/javac/ClassPathTest/ClassPathTest3.java j2se/test/tools/javac/ClassPathTest/bar/pkg/ClassPathTestAux2.java j2se/test/tools/javac/ClassPathTest/foo/pkg/ClassPathTestAux1.java j2se/test/tools/javac/ClassPathTest/pkg/ClassPathTestAux3.java j2se/test/tools/javac/ClassToTypeParm.java j2se/test/tools/javac/CloneableProblem.java j2se/test/tools/javac/Closure1.java j2se/test/tools/javac/Closure2.java j2se/test/tools/javac/Closure3.java j2se/test/tools/javac/Closure4.java j2se/test/tools/javac/Closure5.java j2se/test/tools/javac/Closure6.java j2se/test/tools/javac/CompoundBox.java j2se/test/tools/javac/ConditionalArgTypes_1.java j2se/test/tools/javac/ConditionalArgTypes_2.java j2se/test/tools/javac/ConditionalClass.java j2se/test/tools/javac/ConditionalInline.java j2se/test/tools/javac/ConditionalWithVoid.java j2se/test/tools/javac/ConstBoolAppend.java j2se/test/tools/javac/ConstCharAppend.java j2se/test/tools/javac/ConstantValues/ConstValInit.java j2se/test/tools/javac/ConstantValues/ConstValInlining.java j2se/test/tools/javac/CyclicInheritance.java j2se/test/tools/javac/CyclicInheritance2.java j2se/test/tools/javac/CyclicInheritance4.java j2se/test/tools/javac/CyclicInheritance6/Main.java j2se/test/tools/javac/CyclicScoping/CyclicScoping_1.java j2se/test/tools/javac/CyclicScoping/CyclicScoping_2.java j2se/test/tools/javac/DeadInnerClass.java j2se/test/tools/javac/DeclarationStatementInline.java j2se/test/tools/javac/DeepStringConcat.java j2se/test/tools/javac/DefiniteAssignment/ConstantInfiniteWhile.java j2se/test/tools/javac/DefiniteAssignment/DABlock.java j2se/test/tools/javac/DefiniteAssignment/DALoop1.java j2se/test/tools/javac/DefiniteAssignment/DASwitch.java j2se/test/tools/javac/DefiniteAssignment/DUAssert.java j2se/test/tools/javac/DefiniteAssignment/DUBeforeDefined1.java j2se/test/tools/javac/DefiniteAssignment/DUBeforeDefined2.java j2se/test/tools/javac/DefiniteAssignment/DUParam1.java j2se/test/tools/javac/DefiniteAssignment/DUParam2.java j2se/test/tools/javac/DefiniteAssignment/DUSwitch.java j2se/test/tools/javac/DefiniteAssignment/DUSwitch2.java j2se/test/tools/javac/DefiniteAssignment/DUTry.java j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterIf_1.java j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterIf_2.java j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterThis_1.java j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterThis_2.java j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterTry1.java j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterTry2.java j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterTry3.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_1.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_10.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_11.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_12.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_13.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_14.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_15.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_16.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_2.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_3.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_4.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_5.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_6.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_7.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_8.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_9.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignCond.java j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignConstantBoolean.java j2se/test/tools/javac/DefiniteAssignment/DefAssignNestedArg.java j2se/test/tools/javac/DefiniteAssignment/T4704365.java j2se/test/tools/javac/DefiniteAssignment/T4717164.java j2se/test/tools/javac/DefiniteAssignment/T4717165.java j2se/test/tools/javac/DefiniteAssignment/T4718134.java j2se/test/tools/javac/DefiniteAssignment/T4718142.java j2se/test/tools/javac/DefiniteAssignment/T4718142a.java j2se/test/tools/javac/DefiniteAssignment/T4718708.java j2se/test/tools/javac/DefiniteAssignment/T4720379.java j2se/test/tools/javac/DefiniteAssignment/T4720751.java j2se/test/tools/javac/DefiniteAssignment/T4721062a.java j2se/test/tools/javac/DefiniteAssignment/T4721062b.java j2se/test/tools/javac/DefiniteAssignment/T4721076.java j2se/test/tools/javac/DefiniteAssignment/T4721998.java j2se/test/tools/javac/DefiniteAssignment/T4725725.java j2se/test/tools/javac/DefiniteAssignment/ThrowBeforeTryFinally.java j2se/test/tools/javac/DefiniteAssignment/UncaughtException.java j2se/test/tools/javac/DepParam.java j2se/test/tools/javac/Digits.java j2se/test/tools/javac/DivByZero.java j2se/test/tools/javac/DuplicateClass.java j2se/test/tools/javac/DuplicateClass2.java j2se/test/tools/javac/DuplicateImport.java j2se/test/tools/javac/EOI.java j2se/test/tools/javac/EarlyAssert.java j2se/test/tools/javac/EmptyArray.java j2se/test/tools/javac/EmptyBreak.java j2se/test/tools/javac/EmptyDocComments.java j2se/test/tools/javac/EmptySwitch.java j2se/test/tools/javac/EnclosingAccessCheck.java j2se/test/tools/javac/Enum1.java j2se/test/tools/javac/ExceptionalFinally.java j2se/test/tools/javac/ExceptionalFinally2.java j2se/test/tools/javac/ExprQualifiedType.java j2se/test/tools/javac/ExtDirs/ExtDirs.sh j2se/test/tools/javac/ExtendArray.java j2se/test/tools/javac/ExtendsAccess/ExtendsAccess.java j2se/test/tools/javac/ExtendsAccess/p/ExtendsAccess.java j2se/test/tools/javac/ExtendsScope.java j2se/test/tools/javac/ExtraneousEquals.java j2se/test/tools/javac/FaultySignature.java j2se/test/tools/javac/FinalInitializer.java j2se/test/tools/javac/FinalInitializer_2.java j2se/test/tools/javac/FinalIntConcatenation.java j2se/test/tools/javac/FinalThisReference.java j2se/test/tools/javac/FinallyWarn.java j2se/test/tools/javac/FlatnameClash.java j2se/test/tools/javac/FlatnameClash2.java j2se/test/tools/javac/FloatingPointChanges/BadConstructorModifiers.java j2se/test/tools/javac/FloatingPointChanges/Test.java j2se/test/tools/javac/FoldConditional.java j2se/test/tools/javac/ForwardReference/ForwardReference_2.java j2se/test/tools/javac/ForwardReference/ForwardReference_4.java j2se/test/tools/javac/ForwardReference/ForwardReference_5.java j2se/test/tools/javac/ForwardReference/UseBeforeDeclaration.java j2se/test/tools/javac/GoodCovar.java j2se/test/tools/javac/HexFloatLiterals.java j2se/test/tools/javac/HexThree.java j2se/test/tools/javac/HiddenAbstractMethod/Test j2se/test/tools/javac/IllDefinedOrderOfInit.java j2se/test/tools/javac/IllegalAnnotation.java j2se/test/tools/javac/IllegallyOptimizedException.java j2se/test/tools/javac/ImplicitToString.java j2se/test/tools/javac/ImportCycle/Dummy.java j2se/test/tools/javac/ImportCycle/foo/Bottom.java j2se/test/tools/javac/ImportCycle/foo/Bottom2.java j2se/test/tools/javac/ImportCycle/foo/Middle.java j2se/test/tools/javac/ImportCycle/foo/Middle2.java j2se/test/tools/javac/ImportCycle/foo/Top.java j2se/test/tools/javac/ImportCycle/foo/Top2.java j2se/test/tools/javac/ImportPackagePrivateInner/Dummy.java j2se/test/tools/javac/ImportPackagePrivateInner/foo/Accessee.java j2se/test/tools/javac/ImportPackagePrivateInner/foo/Accessor.java j2se/test/tools/javac/ImportUnnamed/Dummy.java j2se/test/tools/javac/InconsistentInheritedSignature.java j2se/test/tools/javac/InconsistentStack.java j2se/test/tools/javac/Increment.java j2se/test/tools/javac/InheritedPrivateImpl.java j2se/test/tools/javac/InitializerCompletion_1.java j2se/test/tools/javac/InitializerCompletion_2.java j2se/test/tools/javac/InitializerCompletion_3.java j2se/test/tools/javac/InitializerCompletion_4.java j2se/test/tools/javac/InnerClassesAttribute/Test.java j2se/test/tools/javac/InnerMemberRegression.java j2se/test/tools/javac/InnerMethSig.java j2se/test/tools/javac/InnerNamedConstant_1.java j2se/test/tools/javac/InnerNamedConstant_2.java j2se/test/tools/javac/InnerTruth.java j2se/test/tools/javac/InstanceInitException_1.java j2se/test/tools/javac/InstanceInitException_2.java j2se/test/tools/javac/InterfaceAssert.java j2se/test/tools/javac/InterfaceFieldParsing_1.java j2se/test/tools/javac/InterfaceInInner.java j2se/test/tools/javac/InterfaceMemberClassModifiers.java j2se/test/tools/javac/InterfaceObjectIncompatibility.java j2se/test/tools/javac/InterfaceObjectInheritance.java j2se/test/tools/javac/InterfaceOverrideCheck.java j2se/test/tools/javac/InterfaceOverrideObject.java j2se/test/tools/javac/InvalidIntfCast.java j2se/test/tools/javac/JsrRet.java j2se/test/tools/javac/LabelHiding_1.java j2se/test/tools/javac/LabeledDeclaration.java j2se/test/tools/javac/LocalClasses_1.java j2se/test/tools/javac/LocalClasses_2.java j2se/test/tools/javac/ManyMembers2.java j2se/test/tools/javac/MemberTypeInheritance.java j2se/test/tools/javac/MissingInclude.java j2se/test/tools/javac/NameClash/One.java j2se/test/tools/javac/NameCollision.java j2se/test/tools/javac/NameCollision2.java j2se/test/tools/javac/NestedDuplicateLabels.java j2se/test/tools/javac/NestedFinallyReturn.java j2se/test/tools/javac/NestedInnerClassNames.java j2se/test/tools/javac/NewGeneric.java j2se/test/tools/javac/NoClass.java j2se/test/tools/javac/NoNoClassDefFoundErrorError.java j2se/test/tools/javac/NonAmbiguousField/Test j2se/test/tools/javac/NonStaticFieldExpr1.java j2se/test/tools/javac/NonStaticFieldExpr2.java j2se/test/tools/javac/NonStaticFieldExpr3.java j2se/test/tools/javac/NonStaticFieldExpr4c.java j2se/test/tools/javac/NonStaticFinalVar.java j2se/test/tools/javac/Null2DArray.java j2se/test/tools/javac/NullQualifiedNew.java j2se/test/tools/javac/NullQualifiedNew2.java j2se/test/tools/javac/NullQualifiedSuper1.java j2se/test/tools/javac/NullQualifiedSuper2.java j2se/test/tools/javac/NullStaticQualifier.java j2se/test/tools/javac/Object1.java j2se/test/tools/javac/Object2.java j2se/test/tools/javac/ObjectIncompatibleInterface.java j2se/test/tools/javac/ObjectMethodRefFromInterface.java j2se/test/tools/javac/OuterParameter_1.java j2se/test/tools/javac/OverrideChecks/InconsistentReturn.java j2se/test/tools/javac/OverrideChecks/InterfaceImplements.java j2se/test/tools/javac/OverrideChecks/InterfaceOverride.java j2se/test/tools/javac/OverrideChecks/Private.java j2se/test/tools/javac/OverrideChecks/StaticOverride.java j2se/test/tools/javac/OverrideChecks/T4720356a.java j2se/test/tools/javac/OverrideChecks/T4720359a.java j2se/test/tools/javac/OverrideChecks/T4721069.java j2se/test/tools/javac/OverrideChecks/T6326485.java j2se/test/tools/javac/OverrideChecks/T6399361.java j2se/test/tools/javac/OverrideChecks/ThrowsConflict.java j2se/test/tools/javac/OverridePosition.java j2se/test/tools/javac/PackageClassAmbiguity/Bad.java j2se/test/tools/javac/PackageClassClash/PackageClassClash.java j2se/test/tools/javac/Parens1.java j2se/test/tools/javac/Parens2.java j2se/test/tools/javac/Parens3.java j2se/test/tools/javac/Parens4.java j2se/test/tools/javac/ParseConditional.java j2se/test/tools/javac/Paths/CompileClose.java j2se/test/tools/javac/Paths/Diagnostics.sh j2se/test/tools/javac/Paths/Help.sh j2se/test/tools/javac/Paths/MineField.sh j2se/test/tools/javac/Paths/Util.sh j2se/test/tools/javac/Paths/wcMineField.sh j2se/test/tools/javac/PrivateLocalConstructor.java j2se/test/tools/javac/PrivateUplevelConstant.java j2se/test/tools/javac/ProtectedInnerClass/ProtectedInnerClass.sh j2se/test/tools/javac/ProtectedInnerClass/ProtectedInnerClass_2.java j2se/test/tools/javac/ProtectedInnerClass/p1/ProtectedInnerClass1.java j2se/test/tools/javac/ProtectedInnerClass/p2/ProtectedInnerClass2.java j2se/test/tools/javac/ProtectedInnerClass/p2/ProtectedInnerClass3.java j2se/test/tools/javac/QualifiedAccess/QualifiedAccess_1.java j2se/test/tools/javac/QualifiedAccess/QualifiedAccess_2.java j2se/test/tools/javac/QualifiedAccess/QualifiedAccess_3.java j2se/test/tools/javac/QualifiedAccess/QualifiedAccess_4.java j2se/test/tools/javac/QualifiedAccess/pack1/P1.java j2se/test/tools/javac/QualifiedAccess/pack1/P2.java j2se/test/tools/javac/QualifiedConstant.java j2se/test/tools/javac/QualifiedNew.java j2se/test/tools/javac/QualifiedNewScope.java j2se/test/tools/javac/QualifiedOuterThis.java j2se/test/tools/javac/QualifiedOuterThis2.java j2se/test/tools/javac/QualifiedThisAndSuper_1.java j2se/test/tools/javac/QualifiedThisAndSuper_2.java j2se/test/tools/javac/QualifiedThisAndSuper_3.java j2se/test/tools/javac/QualifiedThisExactMatch.java j2se/test/tools/javac/RawCrash.java j2se/test/tools/javac/ReturnAfterIfThenElse.java j2se/test/tools/javac/SerialWarn.java j2se/test/tools/javac/ShiftExpressionTest.java j2se/test/tools/javac/Source5.java j2se/test/tools/javac/StandaloneQualifiedSuper.java j2se/test/tools/javac/StaticBlockScope.java j2se/test/tools/javac/StoreClass.java j2se/test/tools/javac/StrictAbstract.java j2se/test/tools/javac/StringAppendAccessMethodOnLHS.java j2se/test/tools/javac/StringConversion.java j2se/test/tools/javac/SuperField.java j2se/test/tools/javac/SuperMeth.java j2se/test/tools/javac/SuperMethodResolve.java j2se/test/tools/javac/SuperNew.java j2se/test/tools/javac/SuperNew2.java j2se/test/tools/javac/SuperNew3.java j2se/test/tools/javac/SuperNew4.java j2se/test/tools/javac/SuperclassConstructorException.java j2se/test/tools/javac/SwitchFence.java j2se/test/tools/javac/SwitchScope.java j2se/test/tools/javac/SynchronizedClass.java j2se/test/tools/javac/SynthName1.java j2se/test/tools/javac/SynthName2.java j2se/test/tools/javac/T4093617/T4093617.java j2se/test/tools/javac/T4848619/T4848619a.java j2se/test/tools/javac/T4848619/T4848619b.java j2se/test/tools/javac/T4906100.java j2se/test/tools/javac/T4994049/DeprecatedNOT.java j2se/test/tools/javac/T4994049/DeprecatedYES.java j2se/test/tools/javac/T4994049/T4994049.java j2se/test/tools/javac/T5003235/T5003235a.java j2se/test/tools/javac/T5003235/T5003235b.java j2se/test/tools/javac/T5003235/T5003235c.java j2se/test/tools/javac/T5024091/T5024091.java j2se/test/tools/javac/T5048776.java j2se/test/tools/javac/T5090006/T5090006.java j2se/test/tools/javac/T5092545.java j2se/test/tools/javac/T5105890.java j2se/test/tools/javac/T6180021/AbstractSub.java j2se/test/tools/javac/T6180021/Sub.java j2se/test/tools/javac/T6214885.java j2se/test/tools/javac/T6224167.java j2se/test/tools/javac/T6227617.java j2se/test/tools/javac/T6230128.java j2se/test/tools/javac/T6231246/T6231246.java j2se/test/tools/javac/T6231847.java j2se/test/tools/javac/T6232928.java j2se/test/tools/javac/T6234077.java j2se/test/tools/javac/T6238612.java j2se/test/tools/javac/T6241723.java j2se/test/tools/javac/T6245591.java j2se/test/tools/javac/T6247324.java j2se/test/tools/javac/T6265400.java j2se/test/tools/javac/T6266772.java j2se/test/tools/javac/T6306967.java j2se/test/tools/javac/T6341023.java j2se/test/tools/javac/T6356217/T6356217.java j2se/test/tools/javac/T6358024.java j2se/test/tools/javac/T6358166.java j2se/test/tools/javac/T6358168.java j2se/test/tools/javac/T6361619.java j2se/test/tools/javac/T6366196.java j2se/test/tools/javac/T6370653.java j2se/test/tools/javac/T6379327.java j2se/test/tools/javac/T6394563.java j2se/test/tools/javac/T6395974.java j2se/test/tools/javac/T6397286.java j2se/test/tools/javac/T6404756.java j2se/test/tools/javac/T6406771.java j2se/test/tools/javac/T6407066.java j2se/test/tools/javac/T6407257.java j2se/test/tools/javac/T6410706.java j2se/test/tools/javac/T6413876.java j2se/test/tools/javac/T6423583.java j2se/test/tools/javac/T6435291/T6435291.java j2se/test/tools/javac/ThrowNull.java j2se/test/tools/javac/ThrowsIntersection_1.java j2se/test/tools/javac/ThrowsIntersection_2.java j2se/test/tools/javac/ThrowsIntersection_3.java j2se/test/tools/javac/ThrowsIntersection_4.java j2se/test/tools/javac/TryInInstanceInit.java j2se/test/tools/javac/UncaughtOverflow.java j2se/test/tools/javac/UncaughtOverflow2.java j2se/test/tools/javac/UnreachableVar.java j2se/test/tools/javac/UnterminatedLineComment.java j2se/test/tools/javac/UplevelFromAnonInSuperCall.java j2se/test/tools/javac/UseEnum.java j2se/test/tools/javac/VarDeclarationWithAssignment.java j2se/test/tools/javac/Verify.java j2se/test/tools/javac/VerifyDA.java j2se/test/tools/javac/VerifyVersionAnnotations.java j2se/test/tools/javac/VoidArray.java j2se/test/tools/javac/abstract/T1.java j2se/test/tools/javac/abstract/T4717181a.java j2se/test/tools/javac/abstract/T4717181b.java j2se/test/tools/javac/abstract/U1.java j2se/test/tools/javac/accessVirtualInner/Main.java j2se/test/tools/javac/annotations/6214965/T6214965.java j2se/test/tools/javac/annotations/6359949/T6359949.java j2se/test/tools/javac/annotations/6359949/T6359949a.java j2se/test/tools/javac/annotations/6365854/T6365854.java j2se/test/tools/javac/annotations/default/A.java j2se/test/tools/javac/annotations/neg/AnnComma.java j2se/test/tools/javac/annotations/neg/ArrayLit.java j2se/test/tools/javac/annotations/neg/Constant.java j2se/test/tools/javac/annotations/neg/Cycle1.java j2se/test/tools/javac/annotations/neg/Cycle2.java j2se/test/tools/javac/annotations/neg/Cycle3.java j2se/test/tools/javac/annotations/neg/Dep.java j2se/test/tools/javac/annotations/neg/Dup.java j2se/test/tools/javac/annotations/neg/DupTarget.java j2se/test/tools/javac/annotations/neg/MemberOver.java j2se/test/tools/javac/annotations/neg/MixedSource.java j2se/test/tools/javac/annotations/neg/NoAnnotationMethods.java j2se/test/tools/javac/annotations/neg/NoObjectMethods.java j2se/test/tools/javac/annotations/neg/ObjectMembers.java j2se/test/tools/javac/annotations/neg/OverrideNo.java j2se/test/tools/javac/annotations/neg/Package.java j2se/test/tools/javac/annotations/neg/Recovery.java j2se/test/tools/javac/annotations/neg/Recovery1.java j2se/test/tools/javac/annotations/neg/Scope.java j2se/test/tools/javac/annotations/neg/Syntax1.java j2se/test/tools/javac/annotations/neg/WrongTarget.java j2se/test/tools/javac/annotations/neg/WrongTarget2.java j2se/test/tools/javac/annotations/neg/WrongValue.java j2se/test/tools/javac/annotations/neg/Z1.java j2se/test/tools/javac/annotations/neg/Z10.java j2se/test/tools/javac/annotations/neg/Z11.java j2se/test/tools/javac/annotations/neg/Z12.java j2se/test/tools/javac/annotations/neg/Z13.java j2se/test/tools/javac/annotations/neg/Z14.java j2se/test/tools/javac/annotations/neg/Z15.java j2se/test/tools/javac/annotations/neg/Z16.java j2se/test/tools/javac/annotations/neg/Z2.java j2se/test/tools/javac/annotations/neg/Z3.java j2se/test/tools/javac/annotations/neg/Z4.java j2se/test/tools/javac/annotations/neg/Z5.java j2se/test/tools/javac/annotations/neg/Z8.java j2se/test/tools/javac/annotations/neg/Z9.java j2se/test/tools/javac/annotations/pos/AnnotationMethods.java j2se/test/tools/javac/annotations/pos/AnnoteElideBraces.java j2se/test/tools/javac/annotations/pos/ClassA.java j2se/test/tools/javac/annotations/pos/Dep.java j2se/test/tools/javac/annotations/pos/Enum1.java j2se/test/tools/javac/annotations/pos/Local.java j2se/test/tools/javac/annotations/pos/Members.java j2se/test/tools/javac/annotations/pos/NType.java j2se/test/tools/javac/annotations/pos/OverrideCheck.java j2se/test/tools/javac/annotations/pos/OverrideOK.java j2se/test/tools/javac/annotations/pos/Parameter.java j2se/test/tools/javac/annotations/pos/Primitives.java j2se/test/tools/javac/annotations/pos/RightTarget.java j2se/test/tools/javac/annotations/pos/Z1.java j2se/test/tools/javac/annotations/pos/Z2.java j2se/test/tools/javac/annotations/pos/Z3.java j2se/test/tools/javac/annotations/pos/Z4.java j2se/test/tools/javac/annotations/pos/package-info.java j2se/test/tools/javac/api/6400303/T6400303.java j2se/test/tools/javac/api/6410643/T6410643.java j2se/test/tools/javac/api/6411310/T6411310.java j2se/test/tools/javac/api/6411333/T6411333.java j2se/test/tools/javac/api/6412656/T6412656.java j2se/test/tools/javac/api/6415780/T6415780.java j2se/test/tools/javac/api/6418694/T6418694.java j2se/test/tools/javac/api/6420409/T6420409.java j2se/test/tools/javac/api/6420464/T6420464.java j2se/test/tools/javac/api/6421111/T6421111.java j2se/test/tools/javac/api/6421756/T6421756.java j2se/test/tools/javac/api/6422215/T6422215.java j2se/test/tools/javac/api/6422327/T6422327.java j2se/test/tools/javac/api/6423003/T6423003.java j2se/test/tools/javac/api/6431257/T6431257.java j2se/test/tools/javac/api/6431435/T6431435.java j2se/test/tools/javac/api/6437349/T6437349.java j2se/test/tools/javac/api/6437999/T6437999.java j2se/test/tools/javac/api/6440333/T6440333.java j2se/test/tools/javac/api/6440528/T6440528.java j2se/test/tools/javac/api/6452876/T6452876.java j2se/test/tools/javac/api/6468404/T6468404.java j2se/test/tools/javac/api/6471599/Main.java j2se/test/tools/javac/api/Sibling.java j2se/test/tools/javac/api/T6257235.java j2se/test/tools/javac/api/T6258271.java j2se/test/tools/javac/api/T6265137.java j2se/test/tools/javac/api/T6306137.java j2se/test/tools/javac/api/T6345974.java j2se/test/tools/javac/api/T6357331.java j2se/test/tools/javac/api/T6358786.java j2se/test/tools/javac/api/T6358955.java j2se/test/tools/javac/api/T6392782.java j2se/test/tools/javac/api/T6395981.java j2se/test/tools/javac/api/T6397104.java j2se/test/tools/javac/api/T6400205.java j2se/test/tools/javac/api/T6400207.java j2se/test/tools/javac/api/T6407011.java j2se/test/tools/javac/api/T6412669.java j2se/test/tools/javac/api/T6431879.java j2se/test/tools/javac/api/TestEvalExpression.java j2se/test/tools/javac/api/TestGetTree.java j2se/test/tools/javac/api/TestJavacTask.java j2se/test/tools/javac/api/TestJavacTaskScanner.java j2se/test/tools/javac/api/TestOperators.java j2se/test/tools/javac/api/TestResolveIdent.java j2se/test/tools/javac/api/evalexpr/ByteArrayClassLoader.java j2se/test/tools/javac/api/evalexpr/CompileFromString.java j2se/test/tools/javac/api/evalexpr/MemoryFileManager.java j2se/test/tools/javac/api/guide/Test.java j2se/test/tools/javac/apt.sh j2se/test/tools/javac/assert/Attach.java j2se/test/tools/javac/assert/DU1.java j2se/test/tools/javac/assert/DU2.java j2se/test/tools/javac/assert/Position.java j2se/test/tools/javac/binaryCompat/T1.java j2se/test/tools/javac/boxing/BoxedForeach.java j2se/test/tools/javac/boxing/Boxing1.java j2se/test/tools/javac/boxing/Boxing2.java j2se/test/tools/javac/boxing/Boxing4.java j2se/test/tools/javac/boxing/BoxingCaching.java j2se/test/tools/javac/boxing/NoBoxingBool.java j2se/test/tools/javac/boxing/NoBoxingByte.java j2se/test/tools/javac/boxing/NoBoxingChar.java j2se/test/tools/javac/boxing/NoBoxingDouble.java j2se/test/tools/javac/boxing/NoBoxingFloat.java j2se/test/tools/javac/boxing/NoBoxingInt.java j2se/test/tools/javac/boxing/NoBoxingLong.java j2se/test/tools/javac/boxing/NoBoxingShort.java j2se/test/tools/javac/boxing/T5082929.java j2se/test/tools/javac/boxing/T6348760.java j2se/test/tools/javac/boxing/T6369051.java j2se/test/tools/javac/capture/Capture1.java j2se/test/tools/javac/capture/Capture2.java j2se/test/tools/javac/capture/Capture3.java j2se/test/tools/javac/capture/Capture4.java j2se/test/tools/javac/capture/Capture5.java j2se/test/tools/javac/capture/Martin.java j2se/test/tools/javac/cast/4916620/T4916620.java j2se/test/tools/javac/cast/5034609/T5034609.java j2se/test/tools/javac/cast/5043020/T5043020.java j2se/test/tools/javac/cast/5064736/T5064736.java j2se/test/tools/javac/cast/5065215/T5065215.java j2se/test/tools/javac/cast/6211853/T6211853.java j2se/test/tools/javac/cast/6219964/T6219964.java j2se/test/tools/javac/cast/6256789/T6256789.java j2se/test/tools/javac/cast/6286112/T6286112.java j2se/test/tools/javac/cast/6295056/T6295056.java j2se/test/tools/javac/cast/6302214/T6302214.java j2se/test/tools/javac/cast/6302214/T6302214a.java j2se/test/tools/javac/cast/6302956/T6302956.java j2se/test/tools/javac/cast/6358534/T6358534.java j2se/test/tools/javac/cast/BoxedArray.java j2se/test/tools/javac/cast/forum/T654170.java j2se/test/tools/javac/code/ArrayClone.java j2se/test/tools/javac/completion/C.java j2se/test/tools/javac/conditional/Conditional.java j2se/test/tools/javac/constDebug/ConstDebug.java j2se/test/tools/javac/crossPackageImpl/CrossPackageImplA.java j2se/test/tools/javac/depDocComment/DeprecatedDocComment.java j2se/test/tools/javac/depDocComment/SuppressDeprecation.java j2se/test/tools/javac/depOverrides/annotation/Test3.java j2se/test/tools/javac/depOverrides/doccomment/Test3.java j2se/test/tools/javac/enum/6350057/T6350057.java j2se/test/tools/javac/enum/6384542/T6384542.java j2se/test/tools/javac/enum/6384542/T6384542a.java j2se/test/tools/javac/enum/6424358/T6424358.java j2se/test/tools/javac/enum/AbstractEmptyEnum.java j2se/test/tools/javac/enum/AbstractEnum1.java j2se/test/tools/javac/enum/DA1.java j2se/test/tools/javac/enum/DA2.java j2se/test/tools/javac/enum/DA3.java j2se/test/tools/javac/enum/Def.java j2se/test/tools/javac/enum/Enum1.java j2se/test/tools/javac/enum/Enum2.java j2se/test/tools/javac/enum/Enum3.java j2se/test/tools/javac/enum/EnumImplicitPrivateConstructor.java j2se/test/tools/javac/enum/EnumInit.java j2se/test/tools/javac/enum/EnumPrivateConstructor.java j2se/test/tools/javac/enum/EnumProtectedConstructor.java j2se/test/tools/javac/enum/EnumPublicConstructor.java j2se/test/tools/javac/enum/EnumSwitch1.java j2se/test/tools/javac/enum/EnumSwitch2.java j2se/test/tools/javac/enum/EnumSwitch3.java j2se/test/tools/javac/enum/EnumSwitch4.java j2se/test/tools/javac/enum/ExplicitlyAbstractEnum1.java j2se/test/tools/javac/enum/ExplicitlyAbstractEnum2.java j2se/test/tools/javac/enum/ExplicitlyFinalEnum1.java j2se/test/tools/javac/enum/ExplicitlyFinalEnum2.java j2se/test/tools/javac/enum/FauxEnum1.java j2se/test/tools/javac/enum/FauxEnum2.java j2se/test/tools/javac/enum/FauxEnum3.java j2se/test/tools/javac/enum/FauxSpecialEnum1.java j2se/test/tools/javac/enum/FauxSpecialEnum2.java j2se/test/tools/javac/enum/LocalEnum.java j2se/test/tools/javac/enum/NestedEnum.java j2se/test/tools/javac/enum/NoFinal.java j2se/test/tools/javac/enum/NoFinal2.java j2se/test/tools/javac/enum/NoFinal3.java j2se/test/tools/javac/enum/NoFinal4.java j2se/test/tools/javac/enum/NoFinal5.java j2se/test/tools/javac/enum/OkFinal.java j2se/test/tools/javac/enum/SynthValues.java j2se/test/tools/javac/enum/T5075242.java j2se/test/tools/javac/enum/T5081785.java j2se/test/tools/javac/enum/TrailingComma.java j2se/test/tools/javac/enum/UserValue.java j2se/test/tools/javac/enum/ValueOf.java j2se/test/tools/javac/enum/enumSwitch/EnumSwitch.java j2se/test/tools/javac/enum/forwardRef/T6425594.java j2se/test/tools/javac/enum/forwardRef/TestEnum1.java j2se/test/tools/javac/enum/forwardRef/TestEnum2.java j2se/test/tools/javac/enum/forwardRef/TestEnum3.java j2se/test/tools/javac/enum/forwardRef/TestEnum4.java j2se/test/tools/javac/enum/forwardRef/TestEnum5.java j2se/test/tools/javac/enum/forwardRef/TestEnum6.java j2se/test/tools/javac/expression/NullAppend.java j2se/test/tools/javac/expression/NullAppend2.java j2se/test/tools/javac/expression/ObjectAppend.java j2se/test/tools/javac/falseCycle/FalseCycle.java j2se/test/tools/javac/falseCycle/FalseCycleBase.java j2se/test/tools/javac/fatalErrors/NoJavaLang.java j2se/test/tools/javac/foreach/Foreach.java j2se/test/tools/javac/foreach/GenericIterator.java j2se/test/tools/javac/foreach/IntersectIterator.java j2se/test/tools/javac/foreach/ListOfListTest.java j2se/test/tools/javac/foreach/SpecIterable.java j2se/test/tools/javac/foreach/StaticBlock.java j2se/test/tools/javac/foreach/SuperfluousAbstract.java j2se/test/tools/javac/generics/5066774/T5066774.java j2se/test/tools/javac/generics/5086027/T5086027.java j2se/test/tools/javac/generics/5086027/T5086027pos.java j2se/test/tools/javac/generics/6192945/Method.java j2se/test/tools/javac/generics/6192945/T6192945.java j2se/test/tools/javac/generics/6207386/T6207386.java j2se/test/tools/javac/generics/6207386/Test.java j2se/test/tools/javac/generics/6213818/T6213818.java j2se/test/tools/javac/generics/6218229/T6218229.java j2se/test/tools/javac/generics/6227936/Orig.java j2se/test/tools/javac/generics/6227936/T6227936.java j2se/test/tools/javac/generics/6245699/T6245699.java j2se/test/tools/javac/generics/6245699/T6245699a.java j2se/test/tools/javac/generics/6245699/T6245699b.java j2se/test/tools/javac/generics/6245699/T6245699c.java j2se/test/tools/javac/generics/6268476/T6268476.java j2se/test/tools/javac/generics/6292765/T6292765.java j2se/test/tools/javac/generics/6332204/T6332204.java j2se/test/tools/javac/generics/6332204/T6346876.java j2se/test/tools/javac/generics/6356636/T6356636.java j2se/test/tools/javac/generics/6359951/T6359951.java j2se/test/tools/javac/generics/6372782/T6372782.java j2se/test/tools/javac/generics/6413682/T6413682.java j2se/test/tools/javac/generics/6413682/TestPos.java j2se/test/tools/javac/generics/6495506/T6495506.java j2se/test/tools/javac/generics/ArrayClone.java j2se/test/tools/javac/generics/ArrayTypearg.java j2se/test/tools/javac/generics/BridgeClash.java j2se/test/tools/javac/generics/BridgeOrder.java j2se/test/tools/javac/generics/BridgeRestype.java j2se/test/tools/javac/generics/CastCrash.java j2se/test/tools/javac/generics/Casting.java j2se/test/tools/javac/generics/Casting2.java j2se/test/tools/javac/generics/Casting3.java j2se/test/tools/javac/generics/Casting4.java j2se/test/tools/javac/generics/CatchTyparam.java j2se/test/tools/javac/generics/Conditional.java j2se/test/tools/javac/generics/Covar2.java j2se/test/tools/javac/generics/Covar3.java j2se/test/tools/javac/generics/Covar4.java j2se/test/tools/javac/generics/Crash01.java j2se/test/tools/javac/generics/Crash02.java j2se/test/tools/javac/generics/CyclicInheritance3.java j2se/test/tools/javac/generics/CyclicInheritance5.java j2se/test/tools/javac/generics/ErasureClashCrash.java j2se/test/tools/javac/generics/ExtendedRaw1.java j2se/test/tools/javac/generics/ExtendedRaw2.java j2se/test/tools/javac/generics/ExtendedRaw3.java j2se/test/tools/javac/generics/ExtendedRaw4.java j2se/test/tools/javac/generics/FinalBridge.java j2se/test/tools/javac/generics/GenLit1.java j2se/test/tools/javac/generics/GenLit2.java j2se/test/tools/javac/generics/GenericAnonCtor.java j2se/test/tools/javac/generics/GenericMerge.java j2se/test/tools/javac/generics/GenericOverride.java j2se/test/tools/javac/generics/GenericThrowable.java j2se/test/tools/javac/generics/GetClass.java j2se/test/tools/javac/generics/GetClass2.java j2se/test/tools/javac/generics/InheritanceConflict.java j2se/test/tools/javac/generics/InheritanceConflict2.java j2se/test/tools/javac/generics/InheritanceConflict3.java j2se/test/tools/javac/generics/InnerInterface1.java j2se/test/tools/javac/generics/InnerInterface2.java j2se/test/tools/javac/generics/InstanceOf1.java j2se/test/tools/javac/generics/InstanceOf2.java j2se/test/tools/javac/generics/InstanceOf3.java j2se/test/tools/javac/generics/InterfaceCast1.java j2se/test/tools/javac/generics/LoadOrder.java j2se/test/tools/javac/generics/MissingBridge.java j2se/test/tools/javac/generics/MissingCast.java j2se/test/tools/javac/generics/Multibound1.java j2se/test/tools/javac/generics/MultipleInheritance.java j2se/test/tools/javac/generics/NameOrder.java j2se/test/tools/javac/generics/Nonlinear.java j2se/test/tools/javac/generics/ParametricException.java j2se/test/tools/javac/generics/ParenVerify.java j2se/test/tools/javac/generics/PermuteBound.java j2se/test/tools/javac/generics/PrimitiveClass.java j2se/test/tools/javac/generics/PrimitiveVariant.java j2se/test/tools/javac/generics/RawClient.java j2se/test/tools/javac/generics/RefEqual.java j2se/test/tools/javac/generics/ReverseOrder.java j2se/test/tools/javac/generics/SelfImplement.java j2se/test/tools/javac/generics/SilentUnchecked.java j2se/test/tools/javac/generics/SuperTypeargs.java j2se/test/tools/javac/generics/T4661029.java j2se/test/tools/javac/generics/T4683314.java j2se/test/tools/javac/generics/T4684378.java j2se/test/tools/javac/generics/T4695348.java j2se/test/tools/javac/generics/T4695415.java j2se/test/tools/javac/generics/T4695847.java j2se/test/tools/javac/generics/T4711570.java j2se/test/tools/javac/generics/T4711572.java j2se/test/tools/javac/generics/T4711694.java j2se/test/tools/javac/generics/T4738171.java j2se/test/tools/javac/generics/T4739399.java j2se/test/tools/javac/generics/T4757416.java j2se/test/tools/javac/generics/T4784207a.java j2se/test/tools/javac/generics/T4784219.java j2se/test/tools/javac/generics/T5011073.java j2se/test/tools/javac/generics/T5094318.java j2se/test/tools/javac/generics/T6391995.java j2se/test/tools/javac/generics/TyparamLit.java j2se/test/tools/javac/generics/TyparamStaticScope.java j2se/test/tools/javac/generics/TyparamStaticScope2.java j2se/test/tools/javac/generics/UncheckedArray.java j2se/test/tools/javac/generics/UncheckedConstructor.java j2se/test/tools/javac/generics/UncheckedCovariance.java j2se/test/tools/javac/generics/UnsoundInference.java j2se/test/tools/javac/generics/Varargs.java j2se/test/tools/javac/generics/Varargs2.java j2se/test/tools/javac/generics/WrongNew.java j2se/test/tools/javac/generics/abstract/T4717181c.java j2se/test/tools/javac/generics/bridge1/D.java j2se/test/tools/javac/generics/classreader/HArrayMethod.java j2se/test/tools/javac/generics/compat/CovariantCompat1.java j2se/test/tools/javac/generics/compat/OverrideBridge1.java j2se/test/tools/javac/generics/compat/VisibleBridge.java j2se/test/tools/javac/generics/forwardSeparateBound/ForwardSeparateBound1.java j2se/test/tools/javac/generics/forwardSeparateBound/ForwardSeparateBound2.java j2se/test/tools/javac/generics/genericAbstract/A.java j2se/test/tools/javac/generics/inference/4941882/T4941882.java j2se/test/tools/javac/generics/inference/4942040/T4942040.java j2se/test/tools/javac/generics/inference/4954546/T4954546.java j2se/test/tools/javac/generics/inference/4972073/T4972073.java j2se/test/tools/javac/generics/inference/4972073/T4972073a.java j2se/test/tools/javac/generics/inference/4972073/T4972073b.java j2se/test/tools/javac/generics/inference/5003431/T5003431.java j2se/test/tools/javac/generics/inference/5021635/T5021635.java j2se/test/tools/javac/generics/inference/5021635/T6299211.java j2se/test/tools/javac/generics/inference/5034571/T5034571.java j2se/test/tools/javac/generics/inference/5042462/T5042462.java j2se/test/tools/javac/generics/inference/5044646/T5044646.java j2se/test/tools/javac/generics/inference/5049523/T5049523.java j2se/test/tools/javac/generics/inference/5070671/T5070671.java j2se/test/tools/javac/generics/inference/5073060/GenericsAndPackages.java j2se/test/tools/javac/generics/inference/5073060/Neg.java j2se/test/tools/javac/generics/inference/5073060/T5073060.java j2se/test/tools/javac/generics/inference/5073060/T5073060a.java j2se/test/tools/javac/generics/inference/5080917/T5080917.java j2se/test/tools/javac/generics/inference/5081782/Neg.java j2se/test/tools/javac/generics/inference/5081782/Pos.java j2se/test/tools/javac/generics/inference/6215213/T6215213.java j2se/test/tools/javac/generics/inference/6222762/T6222762.java j2se/test/tools/javac/generics/inference/6240565/T6240565.java j2se/test/tools/javac/generics/inference/6273455/T6273455.java j2se/test/tools/javac/generics/inference/6278587/T6278587.java j2se/test/tools/javac/generics/inference/6278587/T6278587Neg.java j2se/test/tools/javac/generics/inference/6302954/T6456971.java j2se/test/tools/javac/generics/inference/6302954/T6476073.java j2se/test/tools/javac/generics/inference/6302954/X.java j2se/test/tools/javac/generics/inference/6356673/Test.java j2se/test/tools/javac/generics/inference/6359106/T6359106.java j2se/test/tools/javac/generics/inference/6365166/NewTest.java j2se/test/tools/javac/generics/inference/6468384/T6468384.java j2se/test/tools/javac/generics/odersky/BadTest.java j2se/test/tools/javac/generics/odersky/BadTest2.java j2se/test/tools/javac/generics/odersky/BadTest3.java j2se/test/tools/javac/generics/odersky/BadTest4.java j2se/test/tools/javac/generics/odersky/Test.java j2se/test/tools/javac/generics/odersky/Test2.java j2se/test/tools/javac/generics/odersky/Test3.java j2se/test/tools/javac/generics/odersky/Test4.java j2se/test/tools/javac/generics/parametricException/J.java j2se/test/tools/javac/generics/rare/Rare1.java j2se/test/tools/javac/generics/rare/Rare10.java j2se/test/tools/javac/generics/rare/Rare11.java j2se/test/tools/javac/generics/rare/Rare2.java j2se/test/tools/javac/generics/rare/Rare3.java j2se/test/tools/javac/generics/rare/Rare4.java j2se/test/tools/javac/generics/rare/Rare5.java j2se/test/tools/javac/generics/rare/Rare6.java j2se/test/tools/javac/generics/rare/Rare7.java j2se/test/tools/javac/generics/rare/Rare9.java j2se/test/tools/javac/generics/rawOverride/AttributeSet.java j2se/test/tools/javac/generics/rawOverride/Fail1.java j2se/test/tools/javac/generics/rawOverride/T6178365.java j2se/test/tools/javac/generics/rawOverride/Warn1.java j2se/test/tools/javac/generics/rawOverride/Warn2.java j2se/test/tools/javac/generics/rawSeparate/RetroLexer.java j2se/test/tools/javac/generics/syntax/6318240/Bar.java j2se/test/tools/javac/generics/syntax/6318240/BarNeg1.java j2se/test/tools/javac/generics/syntax/6318240/BarNeg1a.java j2se/test/tools/javac/generics/syntax/6318240/BarNeg2.java j2se/test/tools/javac/generics/syntax/6318240/BarNeg2a.java j2se/test/tools/javac/generics/syntax/6318240/Foo.java j2se/test/tools/javac/generics/typeargs/Basic.java j2se/test/tools/javac/generics/typeargs/Metharg1.java j2se/test/tools/javac/generics/typeargs/Metharg2.java j2se/test/tools/javac/generics/typeargs/Newarg1.java j2se/test/tools/javac/generics/typeargs/Newarg2.java j2se/test/tools/javac/generics/typeargs/Superarg1.java j2se/test/tools/javac/generics/typeargs/ThisArg.java j2se/test/tools/javac/generics/typevars/4856983/T4856983.java j2se/test/tools/javac/generics/typevars/4856983/T4856983a.java j2se/test/tools/javac/generics/typevars/4856983/T4856983b.java j2se/test/tools/javac/generics/typevars/5060485/Compatibility.java j2se/test/tools/javac/generics/typevars/5060485/Method.java j2se/test/tools/javac/generics/typevars/5060485/Neg1.java j2se/test/tools/javac/generics/typevars/5060485/Neg2.java j2se/test/tools/javac/generics/typevars/5060485/Pos.java j2se/test/tools/javac/generics/typevars/5060485/T5060485.java j2se/test/tools/javac/generics/typevars/5061359/T5061359.java j2se/test/tools/javac/generics/typevars/5061359/T5061359a.java j2se/test/tools/javac/generics/typevars/5061359/T5061359b.java j2se/test/tools/javac/generics/typevars/6182630/T6182630.java j2se/test/tools/javac/generics/typevars/6199146/T6199146.java j2se/test/tools/javac/generics/typevars/6486430/T6486430.java j2se/test/tools/javac/generics/typevars/6486430/T6486430a.java j2se/test/tools/javac/generics/wildcards/6320612/T6320612.java j2se/test/tools/javac/generics/wildcards/6330931/T6330931.java j2se/test/tools/javac/generics/wildcards/6437894/T6437894.java j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes1.java j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes2.java j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes3.java j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes4.java j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes5.java j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes6.java j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes7.java j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes8.java j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes9.java j2se/test/tools/javac/generics/wildcards/AssignmentSameType1.java j2se/test/tools/javac/generics/wildcards/AssignmentSameType2.java j2se/test/tools/javac/generics/wildcards/AssignmentSameType3.java j2se/test/tools/javac/generics/wildcards/AssignmentSameType4.java j2se/test/tools/javac/generics/wildcards/AssignmentSameType5.java j2se/test/tools/javac/generics/wildcards/AssignmentSameType6.java j2se/test/tools/javac/generics/wildcards/AssignmentSameType7.java j2se/test/tools/javac/generics/wildcards/AssignmentSameType8.java j2se/test/tools/javac/generics/wildcards/BoundBug.java j2se/test/tools/javac/generics/wildcards/ContraArg.java j2se/test/tools/javac/generics/wildcards/T5097548.java j2se/test/tools/javac/generics/wildcards/T5097548b.java j2se/test/tools/javac/generics/wildcards/UnboundArray.java j2se/test/tools/javac/generics/wildcards/neg/AmbiguousCast.java j2se/test/tools/javac/generics/wildcards/neg/Capture.java j2se/test/tools/javac/generics/wildcards/neg/CastFail1.java j2se/test/tools/javac/generics/wildcards/neg/CastFail10.java j2se/test/tools/javac/generics/wildcards/neg/CastFail11.java j2se/test/tools/javac/generics/wildcards/neg/CastFail12.java j2se/test/tools/javac/generics/wildcards/neg/CastFail13.java j2se/test/tools/javac/generics/wildcards/neg/CastFail14.java j2se/test/tools/javac/generics/wildcards/neg/CastFail15.java j2se/test/tools/javac/generics/wildcards/neg/CastFail16.java j2se/test/tools/javac/generics/wildcards/neg/CastFail17.java j2se/test/tools/javac/generics/wildcards/neg/CastFail18.java j2se/test/tools/javac/generics/wildcards/neg/CastFail19.java j2se/test/tools/javac/generics/wildcards/neg/CastFail2.java j2se/test/tools/javac/generics/wildcards/neg/CastFail20.java j2se/test/tools/javac/generics/wildcards/neg/CastFail21.java j2se/test/tools/javac/generics/wildcards/neg/CastFail3.java j2se/test/tools/javac/generics/wildcards/neg/CastFail4.java j2se/test/tools/javac/generics/wildcards/neg/CastFail5.java j2se/test/tools/javac/generics/wildcards/neg/CastFail6.java j2se/test/tools/javac/generics/wildcards/neg/CastFail7.java j2se/test/tools/javac/generics/wildcards/neg/CastFail8.java j2se/test/tools/javac/generics/wildcards/neg/CastFail9.java j2se/test/tools/javac/generics/wildcards/neg/CastWarn10.java j2se/test/tools/javac/generics/wildcards/neg/CastWarn11.java j2se/test/tools/javac/generics/wildcards/neg/CastWarn12.java j2se/test/tools/javac/generics/wildcards/neg/CastWarn13.java j2se/test/tools/javac/generics/wildcards/neg/CastWarn14.java j2se/test/tools/javac/generics/wildcards/neg/CastWarn2.java j2se/test/tools/javac/generics/wildcards/neg/CastWarn3.java j2se/test/tools/javac/generics/wildcards/neg/CastWarn4.java j2se/test/tools/javac/generics/wildcards/neg/CastWarn5.java j2se/test/tools/javac/generics/wildcards/neg/CastWarn6.java j2se/test/tools/javac/generics/wildcards/neg/CastWarn7.java j2se/test/tools/javac/generics/wildcards/neg/CastWarn8.java j2se/test/tools/javac/generics/wildcards/neg/CastWarn9.java j2se/test/tools/javac/generics/wildcards/neg/ParamCast.java j2se/test/tools/javac/generics/wildcards/neg/Readonly.java j2se/test/tools/javac/generics/wildcards/neg/Unbounded.java j2se/test/tools/javac/generics/wildcards/pos/AmbiguousCast2.java j2se/test/tools/javac/generics/wildcards/pos/BoundsCollision.java j2se/test/tools/javac/generics/wildcards/pos/Capture.java j2se/test/tools/javac/generics/wildcards/pos/CastTest.java j2se/test/tools/javac/generics/wildcards/pos/InstanceOf.java j2se/test/tools/javac/generics/wildcards/pos/ParamCast.java j2se/test/tools/javac/generics/wildcards/pos/RvalConversion.java j2se/test/tools/javac/generics/wildcards/pos/UncheckedCast1.java j2se/test/tools/javac/implicitThis/NewBeforeOuterConstructed.java j2se/test/tools/javac/implicitThis/NewBeforeOuterConstructed2.java j2se/test/tools/javac/implicitThis/NewBeforeOuterConstructed3.java j2se/test/tools/javac/implicitThis/WhichImplicitThis1.java j2se/test/tools/javac/implicitThis/WhichImplicitThis10.java j2se/test/tools/javac/implicitThis/WhichImplicitThis11.java j2se/test/tools/javac/implicitThis/WhichImplicitThis2.java j2se/test/tools/javac/implicitThis/WhichImplicitThis3.java j2se/test/tools/javac/implicitThis/WhichImplicitThis4.java j2se/test/tools/javac/implicitThis/WhichImplicitThis5.java j2se/test/tools/javac/implicitThis/WhichImplicitThis6.java j2se/test/tools/javac/implicitThis/WhichImplicitThis7.java j2se/test/tools/javac/implicitThis/WhichImplicitThis9.java j2se/test/tools/javac/importChecks/ImportCanonical1.java j2se/test/tools/javac/importChecks/ImportIsFullyQualified.java j2se/test/tools/javac/importChecks/ImportOfOwnClass.java j2se/test/tools/javac/importChecks/InvalidImportsNoClasses.java j2se/test/tools/javac/importContext/anonPackage/Foo.java j2se/test/tools/javac/importContext/anonPackage/bar/Baz.java j2se/test/tools/javac/importContext/namedPackage/Dummy.java j2se/test/tools/javac/importContext/namedPackage/bar/Baz.java j2se/test/tools/javac/importContext/namedPackage/foo/Foo.java j2se/test/tools/javac/importscope/A.java j2se/test/tools/javac/incompatibleNoninherited/A.java j2se/test/tools/javac/inheritAccess/PvtMbrsNotInherit1.java j2se/test/tools/javac/inheritedAccess/MethodReferenceQualification_1.java j2se/test/tools/javac/inheritedAccess/P1/priv.java j2se/test/tools/javac/inheritedAccess/P1/pub.java j2se/test/tools/javac/innerClassFile/Driver.java j2se/test/tools/javac/javazip/Test.sh j2se/test/tools/javac/jvm/6397652/T6397652.java j2se/test/tools/javac/limits/ArrayDims1.java j2se/test/tools/javac/limits/ArrayDims2.java j2se/test/tools/javac/limits/ArrayDims3.java j2se/test/tools/javac/limits/ArrayDims4.java j2se/test/tools/javac/limits/ArrayDims5.java j2se/test/tools/javac/limits/CodeSize.java j2se/test/tools/javac/limits/FinallyNesting.java j2se/test/tools/javac/limits/LongName.java j2se/test/tools/javac/limits/NumArgs1.java j2se/test/tools/javac/limits/NumArgs2.java j2se/test/tools/javac/limits/NumArgs3.java j2se/test/tools/javac/limits/NumArgs4.java j2se/test/tools/javac/limits/PoolSize1.java j2se/test/tools/javac/limits/PoolSize2.java j2se/test/tools/javac/limits/StringLength.java j2se/test/tools/javac/links/T.java j2se/test/tools/javac/lint/Deprecation.java j2se/test/tools/javac/lint/FallThrough.java j2se/test/tools/javac/lint/NoWarn.java j2se/test/tools/javac/lint/Unchecked.java j2se/test/tools/javac/mandatoryWarnings/deprecated/A.java j2se/test/tools/javac/mandatoryWarnings/deprecated/B.java j2se/test/tools/javac/mandatoryWarnings/unchecked/A.java j2se/test/tools/javac/mandatoryWarnings/unchecked/B.java j2se/test/tools/javac/miranda/4686148/Test.java j2se/test/tools/javac/miranda/4686811/Tryit.java j2se/test/tools/javac/miranda/4711056/T1.java j2se/test/tools/javac/miranda/T4279316a.java j2se/test/tools/javac/miranda/T4279316b.java j2se/test/tools/javac/miranda/T4279316c.java j2se/test/tools/javac/miranda/T4279316d.java j2se/test/tools/javac/miranda/T4528315.java j2se/test/tools/javac/miranda/T4666866.java j2se/test/tools/javac/miranda/T4711325.java j2se/test/tools/javac/missingClass/A.java j2se/test/tools/javac/missingSuperRecovery/MissingSuperRecovery.java j2se/test/tools/javac/mixedTarget/CompatibleAbstracts1.java j2se/test/tools/javac/mixedTarget/ExtendCovariant1.java j2se/test/tools/javac/mixedTarget/ExtendCovariant2.java j2se/test/tools/javac/nested/4903103/T4903103.java j2se/test/tools/javac/nested/5009484/X.java j2se/test/tools/javac/nested/5009484/Y.java j2se/test/tools/javac/newlines/Newlines.sh j2se/test/tools/javac/overload/T4494762.java j2se/test/tools/javac/overload/T4723909.java j2se/test/tools/javac/overload/T4743490.java j2se/test/tools/javac/overload/T5090220.java j2se/test/tools/javac/overrridecrash/B.java j2se/test/tools/javac/p1/AS.java j2se/test/tools/javac/p1/BS.java j2se/test/tools/javac/p1/CS.java j2se/test/tools/javac/packone/Mediator.java j2se/test/tools/javac/packone/Secret.java j2se/test/tools/javac/positions/T6253161.java j2se/test/tools/javac/positions/T6253161a.java j2se/test/tools/javac/positions/T6264029.java j2se/test/tools/javac/positions/T6402077.java j2se/test/tools/javac/positions/T6404194.java j2se/test/tools/javac/processing/6348193/T6348193.java j2se/test/tools/javac/processing/6348499/T6348499.java j2se/test/tools/javac/processing/6350124/T6350124.java j2se/test/tools/javac/processing/6359313/T6359313.java j2se/test/tools/javac/processing/6365040/T6365040.java j2se/test/tools/javac/processing/6378728/T6378728.java j2se/test/tools/javac/processing/6413690/T6413690.java j2se/test/tools/javac/processing/6414633/T6414633.java j2se/test/tools/javac/processing/6430209/T6430209.java j2se/test/tools/javac/processing/T6439826.java j2se/test/tools/javac/processing/Xprint.java j2se/test/tools/javac/processing/completion/TestCompletions.java j2se/test/tools/javac/processing/environment/TestSourceVersion.java j2se/test/tools/javac/processing/environment/round/TestElementsAnnotatedWith.java j2se/test/tools/javac/processing/errors/TestFatalityOfParseErrors.java j2se/test/tools/javac/processing/errors/TestOptionSyntaxErrors.java j2se/test/tools/javac/processing/errors/TestReturnCode.java j2se/test/tools/javac/processing/filer/TestFilerConstraints.java j2se/test/tools/javac/processing/filer/TestGetResource.java j2se/test/tools/javac/processing/filer/TestPackageInfo.java j2se/test/tools/javac/processing/messager/6362067/T6362067.java j2se/test/tools/javac/processing/messager/MessagerBasics.java j2se/test/tools/javac/processing/model/6194785/T6194785.java j2se/test/tools/javac/processing/model/6341534/T6341534.java j2se/test/tools/javac/processing/model/element/TestElement.java j2se/test/tools/javac/processing/model/element/TestNames.java j2se/test/tools/javac/processing/model/element/TestPackageElement.java j2se/test/tools/javac/processing/model/element/TypeParamBounds.java j2se/test/tools/javac/processing/model/testgetallmembers/Main.java j2se/test/tools/javac/processing/model/type/MirroredTypeEx/OverEager.java j2se/test/tools/javac/processing/model/type/NoTypes.java j2se/test/tools/javac/processing/model/type/TestTypeKind.java j2se/test/tools/javac/processing/model/util/BinaryName.java j2se/test/tools/javac/processing/model/util/GetTypeElemBadArg.java j2se/test/tools/javac/processing/model/util/NoSupers.java j2se/test/tools/javac/processing/model/util/OverridesSpecEx.java j2se/test/tools/javac/processing/model/util/TypesBadArg.java j2se/test/tools/javac/processing/model/util/deprecation/TestDeprecation.java j2se/test/tools/javac/processing/model/util/directSupersOfErr/DirectSupersOfErr.java j2se/test/tools/javac/processing/model/util/elements/TestGetPackageOf.java j2se/test/tools/javac/processing/model/util/filter/TestIterables.java j2se/test/tools/javac/processing/warnings/TestSourceVersionWarnings.java j2se/test/tools/javac/proprietary/WarnClass.java j2se/test/tools/javac/proprietary/WarnImport.java j2se/test/tools/javac/proprietary/WarnMethod.java j2se/test/tools/javac/proprietary/WarnStaticImport.java j2se/test/tools/javac/proprietary/WarnVariable.java j2se/test/tools/javac/proprietary/WarnWildcard.java j2se/test/tools/javac/protectedAccess/ProtectedAccess_1.java j2se/test/tools/javac/protectedAccess/ProtectedAccess_2.java j2se/test/tools/javac/protectedAccess/ProtectedAccess_3.java j2se/test/tools/javac/protectedAccess/ProtectedMemberAccess1.java j2se/test/tools/javac/protectedAccess/ProtectedMemberAccess2.java j2se/test/tools/javac/protectedAccess/ProtectedMemberAccess3.java j2se/test/tools/javac/protectedAccess/ProtectedMemberAccess4.java j2se/test/tools/javac/protectedAccess/ProtectedMemberAccess5/Main.java j2se/test/tools/javac/protectedAccess/p/SuperClass.java j2se/test/tools/javac/protectedAccess/pkg/SuperClass.java j2se/test/tools/javac/protectedInner/AnonInnerClass.java j2se/test/tools/javac/protectedInner/InnerClass.java j2se/test/tools/javac/protectedInner/Outerclass.java j2se/test/tools/javac/rawDiags/Error.java j2se/test/tools/javac/rawDiags/Warning.java j2se/test/tools/javac/scope/6225935/Estatico4.java j2se/test/tools/javac/scope/6225935/StaticImportAccess.java j2se/test/tools/javac/scope/6225935/T6214959.java j2se/test/tools/javac/scope/6225935/T6225935.java j2se/test/tools/javac/scope/6225935/T6381787.java j2se/test/tools/javac/scope/6225935/Test.java j2se/test/tools/javac/scope/6392998/T6392998.java j2se/test/tools/javac/sourcePath/SourcePath.java j2se/test/tools/javac/sourcePath2/SourcePath2.java j2se/test/tools/javac/stackmap/T4955930.java j2se/test/tools/javac/stackmap/UninitThis.java j2se/test/tools/javac/staticImport/Ambig1.java j2se/test/tools/javac/staticImport/ImportInherit.java j2se/test/tools/javac/staticImport/ImportPrivate.java j2se/test/tools/javac/staticImport/PrivateStaticImport.java j2se/test/tools/javac/staticImport/Shadow.java j2se/test/tools/javac/staticImport/StaticImport.java j2se/test/tools/javac/staticImport/StaticImport2.java j2se/test/tools/javac/staticQualifiedNew/StaticQualifiedNew.java j2se/test/tools/javac/staticQualifiedNew/p2/X.java j2se/test/tools/javac/unicode/FirstChar.java j2se/test/tools/javac/unicode/NonasciiDigit.java j2se/test/tools/javac/unicode/NonasciiDigit2.java j2se/test/tools/javac/unicode/SubChar.java j2se/test/tools/javac/unicode/SupplementaryJavaID1.java j2se/test/tools/javac/unicode/SupplementaryJavaID2.java j2se/test/tools/javac/unicode/SupplementaryJavaID3.java j2se/test/tools/javac/unicode/SupplementaryJavaID4.java j2se/test/tools/javac/unicode/SupplementaryJavaID5.java j2se/test/tools/javac/unicode/SupplementaryJavaID6.java j2se/test/tools/javac/unicode/SupplementaryJavaID6.sh j2se/test/tools/javac/unicode/TripleQuote.java j2se/test/tools/javac/unicode/UnicodeCommentDelimiter.java j2se/test/tools/javac/unicode/UnicodeNewline.java j2se/test/tools/javac/unicode/UnicodeUnicode.java j2se/test/tools/javac/unicode/Unmappable.java j2se/test/tools/javac/unit/T6198196.java j2se/test/tools/javac/unit/util/convert/EnclosingCandidates.java j2se/test/tools/javac/unit/util/list/AbstractList.java j2se/test/tools/javac/unit/util/list/FromArray.java j2se/test/tools/javac/util/filemanager/TestName.java j2se/test/tools/javac/util/list/TList.java j2se/test/tools/javac/varargs/Anon.java j2se/test/tools/javac/varargs/BadSyntax2.java j2se/test/tools/javac/varargs/Varargs1.java j2se/test/tools/javac/varargs/VarargsOverride.java j2se/test/tools/javac/varargs/Warn1.java j2se/test/tools/javac/varargs/Warn2.java j2se/test/tools/javac/varargs/warning/Warn1.java j2se/test/tools/javac/varargs/warning/Warn2.java j2se/test/tools/javac/varargs/warning/Warn3.java j2se/test/tools/javac/versions/CheckClassFileVersion.java j2se/test/tools/javac/versions/check.sh j2se/test/tools/javac/warnings/Deprecation.java j2se/test/tools/javac/warnings/DivZero.java j2se/test/tools/javac/warnings/FallThrough.java j2se/test/tools/javac/warnings/Unchecked.java j2se/test/tools/javadoc/BooleanConst.java j2se/test/tools/javadoc/BreakIteratorWarning.java j2se/test/tools/javadoc/FlagsTooEarly.java j2se/test/tools/javadoc/InlineTagsWithBraces.java j2se/test/tools/javadoc/LangVers.java j2se/test/tools/javadoc/MethodLinks.java j2se/test/tools/javadoc/NoStar.java j2se/test/tools/javadoc/T4994049/T4994049.java j2se/test/tools/javadoc/XWerror.java j2se/test/tools/javadoc/annotations/annotateMethodsFields/Main.java j2se/test/tools/javadoc/annotations/annotatePackage/Main.java j2se/test/tools/javadoc/annotations/annotateParams/Main.java j2se/test/tools/javadoc/annotations/badVals/Main.java j2se/test/tools/javadoc/annotations/defaults/Main.java j2se/test/tools/javadoc/annotations/elementTypes/Main.java j2se/test/tools/javadoc/annotations/shortcuts/Main.java j2se/test/tools/javadoc/badSuper/BadSuper.java j2se/test/tools/javadoc/completionFailure/CompletionFailure.java j2se/test/tools/javadoc/dupOk/DupOk.java j2se/test/tools/javadoc/enum/docComments/Main.java j2se/test/tools/javadoc/enum/enumType/Main.java j2se/test/tools/javadoc/generics/genericClass/Main.java j2se/test/tools/javadoc/generics/genericInnerAndOuter/Main.java j2se/test/tools/javadoc/generics/genericInterface/Main.java j2se/test/tools/javadoc/generics/genericMethod/Main.java j2se/test/tools/javadoc/generics/genericSuper/Main.java j2se/test/tools/javadoc/generics/supertypes/Main.java j2se/test/tools/javadoc/generics/throwsGeneric/Main.java j2se/test/tools/javadoc/generics/tparamCycle/Main.java j2se/test/tools/javadoc/generics/tparamTagOnMethod/Main.java j2se/test/tools/javadoc/generics/tparamTagOnType/Main.java j2se/test/tools/javadoc/generics/wildcards/Main.java j2se/test/tools/javadoc/imports/MissingImport.java j2se/test/tools/javadoc/lib/Tester.java j2se/test/tools/javadoc/nestedClass/NestedClass.java j2se/test/tools/javadoc/outputRedirect/OutputRedirect.sh j2se/test/tools/javadoc/sourceOnly/SourceOnly.sh j2se/test/tools/javadoc/subpackageIgnore/SubpackageIgnore.java j2se/test/tools/javadoc/varArgs/Main.java j2se/test/tools/javah/6257087/foo.java j2se/test/tools/javah/6257087/foo.sh j2se/test/tools/javah/6257087/foo_bar.h j2se/test/tools/javah/ConstMacroTest.sh j2se/test/tools/javah/MissingParamClassException.java j2se/test/tools/javah/MissingParamClassTest.sh j2se/test/tools/javah/ParamClassTest.java j2se/test/tools/javah/ReadOldClass.sh j2se/test/tools/javah/SubClassConsts.java j2se/test/tools/javah/SubClassConsts.out j2se/test/tools/javah/SubClassConsts.win j2se/test/tools/javah/SuperClassConsts.java j2se/test/tools/javap/ExtPath.java j2se/test/tools/javap/NotPackagePrivateInterface.java j2se/test/tools/javap/PublicInterfaceTest.sh j2se/test/tools/javap/pathsep.sh j2se/test/tools/javap/stackmap/T6271292.java j2se/test/tools/javap/stackmap/T6271292.out j2se/test/tools/javap/stackmap/T6271292.sh
diffstat 1912 files changed, 19942 insertions(+), 4728 deletions(-) [+]
line wrap: on
line diff
--- a/control/make/Makefile	Fri Aug 17 01:47:29 2007 +0000
+++ b/control/make/Makefile	Fri Aug 31 00:44:13 2007 +0000
@@ -333,10 +333,37 @@
 # Source and binary plug bundling
 ################################################################
 ifeq ($(BUNDLE_RULES_AVAILABLE), true)
+  
   include $(BUNDLE_RULES)
+
+# If we have bundle rules, we have a chance here to do a complete cycle
+#   build, of closed and open build.
+# FIXUP: We should create the openjdk source bundle and build that?
+  
+  ABS_OPENJDK_PLUGS=$(ABS_OUTPUTDIR)/openjdk-plugs
+  ABS_OPENJDK_OUTPUTDIR=$(ABS_OUTPUTDIR)/openjdk
+  
+  both:
+	$(MAKE) PLUG_EXPORT_DIR=$(ABS_OPENJDK_PLUGS) product_build
+	$(MAKE) OPENJDK=true \
+		ALT_OUTPUTDIR=$(ABS_OPENJDK_OUTPUTDIR) \
+		ALT_BINARY_PLUGS_PATH=$(ABS_OPENJDK_PLUGS) \
+		ALT_JDK_IMPORT_PATH=$(ABS_OUTPUTDIR)/j2sdk-image \
+		product_build
+
 endif
 
 ################################################################
+# Cycle build. Build the jdk, use it to build the jdk again.
+################################################################
+  
+ABS_BOOTJDK_OUTPUTDIR=$(ABS_OUTPUTDIR)/bootjdk
+  
+boot_cycle:
+	$(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTJDK_OUTPUTDIR) product_build
+	$(MAKE) ALT_BOOTDIR=$(ABS_BOOTJDK_OUTPUTDIR)/j2sdk-image product_build
+
+################################################################
 # JPRT rule to build
 ################################################################
 
--- a/control/make/jprt.properties	Fri Aug 17 01:47:29 2007 +0000
+++ b/control/make/jprt.properties	Fri Aug 31 00:44:13 2007 +0000
@@ -24,19 +24,33 @@
 #
 
 # Properties for jprt
-JPRT.tools.default.release=jdk1.7.0
+jprt.tools.default.release=jdk1.7.0
+
+# Specific platform list
+jprt.build.platforms=\
+solaris_sparc_5.10,\
+solaris_sparcv9_5.10,\
+solaris_i586_5.10,\
+solaris_x64_5.10,\
+linux_i586,\
+linux_x64,\
+windows_i586,\
+windows_x64
 
-# Standard list of JPRT build targets
-JPRT.build.targets=\
-solaris_sparc,\
-solaris_sparcv9,\
-solaris_i586,\
-solaris_amd64,\
-linux_i586,\
-linux_amd64,\
-windows_i586,\
-windows_amd64
+# The different build flavors we want
+jprt.build.flavors=product,fastdebug
+jprt.run.flavors=c1,c2
+jprt.solaris_sparcv9.run.flavors=c2
+jprt.solaris_x64.run.flavors=c2
+jprt.windows_x64.run.flavors=c2
+jprt.linux_x64.run.flavors=c2
+jprt.run.flavor.c1.option=-client
+jprt.run.flavor.c2.option=-server
 
-# Standard list of JPRT test targets
-JPRT.test.targets=*-product-c2-jvm98
+# Explicitly designate what the 32bit match is for the 64bit build
+jprt.solaris_sparcv9.build.platform.match32=solaris_sparc_5.10
+jprt.solaris_x64.build.platform.match32=solaris_i586_5.10
 
+# Standard list of jprt test targets for this workspace
+jprt.test.targets=*-*-*-jvm98
+
--- a/hotspot/agent/make/Makefile	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/agent/make/Makefile	Fri Aug 31 00:44:13 2007 +0000
@@ -26,6 +26,12 @@
 # hierarchy, but may be a pain to keep in sync
 
 # Generated using the build-pkglist script
+ifeq ($(GAMMADIR),)
+include ../../make/defs.make
+else
+include $(GAMMADIR)/make/defs.make
+endif
+
 PKGLIST = \
 sun.jvm.hotspot \
 sun.jvm.hotspot.asm \
@@ -195,11 +201,16 @@
 sun/jvm/hotspot/utilities/soql/*.java 
 #END FILELIST
 
-ifeq "x$(ALT_BOOTDIR)" "x"
+ifneq "x$(ALT_BOOTDIR)" "x"
+  BOOTDIR := $(ALT_BOOTDIR)
+endif
+
+ifeq "x$(BOOTDIR)" "x"
   JDK_HOME := $(shell dirname $(shell which java))/..
 else
-  JDK_HOME := $(ALT_BOOTDIR)
+  JDK_HOME := $(BOOTDIR)
 endif
+
 isUnix := $(shell test -r c:/; echo $$?)
 
 ifeq "$(isUnix)" "1"
@@ -231,7 +242,7 @@
 # in $(GAMMADIR)/make/hotspot_version, one may override SA_VERSION in the
 # gnumake command line or build environment.
 include ../../make/hotspot_version
-SA_VERSION = $(HS_MAJOR_VER).$(HS_MINOR_VER).$(HS_MICRO_VER)
+SA_VERSION = $(HS_MAJOR_VER)
 SA_VERSION_PROP = "sun.jvm.hotspot.runtime.VM.supportedVersion=$(SA_VERSION)"
 SA_PROPERTIES = $(OUTPUT_DIR)/sa.properties
 
@@ -253,6 +264,11 @@
 	cp $(SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(OUTPUT_DIR)/sun/jvm/hotspot/utilities/soql
 
 filelist: $(ALLFILES)
+	@if [ ! -f $(JDK_HOME)/lib/tools.jar ] ; then \
+          echo "Missing $(JDK_HOME)/lib/tools.jar file. Use 1.6.0 or later version jdk to build SA."; \
+          echo ""; \
+          exit 1; \
+        fi
 	@rm -f $@
 	@echo $(ALLFILES) > $@
 
@@ -262,6 +278,10 @@
 
 .PHONY: sa-jdi.jar
 sa-jdi.jar:
+	if [ ! -f $(JDK_HOME)/lib/tools.jar ] ; then \
+          echo "Missing $(JDK_HOME)/lib/tools.jar file. Use 1.6.0 or later version jdk to build SA.";\
+          exit 1; \
+        fi
 	rm -f $(BUILD_DIR)/sa-jdi.jar
 	rm -f $(OUTPUT_DIR)/jdi_class_files
 	javac -source 1.4 ClosureFinder.java -d $(OUTPUT_DIR)
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java	Fri Aug 31 00:44:13 2007 +0000
@@ -195,31 +195,18 @@
      }
   };
 
-  private static void checkVMVersion(String version) {
+  private static void checkVMVersion(String vmRelease) {
      if (System.getProperty("sun.jvm.hotspot.runtime.VM.disableVersionCheck") == null) {
-	// read supported version info
+	// read supported version info: major version of HotSpot Express VM
 	String versionProp = "sun.jvm.hotspot.runtime.VM.supportedVersion";
-	String supportedVersion = saProps.getProperty(versionProp);
-	if (supportedVersion == null)
+	String supportedRelease = saProps.getProperty(versionProp);
+	if (supportedRelease == null)
 	  throw new RuntimeException("Missing property " + versionProp);
 
-        // skip version check for PRT builds. PRT build string
-        // follows the pattern:
-        //    <date-time>.<user-id>.<workspace-name> 
-        // Example: 20040714144713.sa120814.service_hs_baseline
-        // Assumptions:
-        //    1. date-time part will have 14 digits - 8 for date part
-        //       and 6 for time part.
-        //    2. user-id part will have atleast one alphabet followed 
-        //       by any number of word chars.
-        //    3. workspace-name will have atleast one alphabet followed 
-        //       by any number of word chars.
-
-        Pattern p = Pattern.compile("\\d{14}\\.[a-zA-Z]\\w*\\.[a-zA-Z]\\w*");
-        Matcher m = p.matcher(version);
-
-        if (!m.matches() && !version.startsWith(supportedVersion)) {
-	    throw new VMVersionMismatchException(supportedVersion, version);
+        // For HotSpot Express VM only release major version should be matched.
+        if (!vmRelease.startsWith(supportedRelease) ||
+             vmRelease.charAt(supportedRelease.length()) != '.') {
+	    throw new VMVersionMismatchException(supportedRelease, vmRelease);
         }
      }
   }
--- a/hotspot/build/linux/Makefile	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/linux/Makefile	Fri Aug 31 00:44:13 2007 +0000
@@ -165,6 +165,8 @@
 # in the build.sh script:
 TARGETS           = debug jvmg fastdebug optimized profiled product
 
+MFLAGS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION)
+
 SUBDIR_DOCS       = $(OSNAME)_$(BUILDARCH)_docs
 SUBDIRS_C1        = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler1/,$(TARGETS))
 SUBDIRS_C2        = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler2/,$(TARGETS))
--- a/hotspot/build/linux/jdk_version	Fri Aug 17 01:47:29 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-JDK1.2_fcs_V
--- a/hotspot/build/linux/makefiles/buildtree.make	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/linux/makefiles/buildtree.make	Fri Aug 31 00:44:13 2007 +0000
@@ -58,7 +58,7 @@
 QUIETLY$(MAKE_VERBOSE)	= @
 
 # For now, until the compiler is less wobbly:
-TESTFLAGS	= -Xbatch
+TESTFLAGS	= -Xbatch -showversion
 
 PLATFORM_FILE	= $(GAMMADIR)/build/$(OS_FAMILY)/platform_$(ARCH)
 
@@ -156,8 +156,6 @@
 	    echo "SYSDEFS += \$$(HOTSPOT_EXTRA_SYSDEFS)"; \
 	echo; \
 	echo "include \$$(GAMMADIR)/build/$(OS_FAMILY)/makefiles/$(VARIANT).make"; \
-	[ "$(TARGET)" = profiled ] && \
-	echo "include \$$(GAMMADIR)/build/$(OS_FAMILY)/makefiles/optimized.make"; \
 	echo "include \$$(GAMMADIR)/build/$(OS_FAMILY)/makefiles/$(COMPILER).make"; \
 	) > $@
 
@@ -166,6 +164,8 @@
 	$(QUIETLY) ( \
 	$(BUILDTREE_COMMENT); \
 	echo; \
+	[ "$(TARGET)" = profiled ] && \
+	echo "include \$$(GAMMADIR)/build/$(OS_FAMILY)/makefiles/optimized.make"; \
 	echo "include \$$(GAMMADIR)/build/$(OS_FAMILY)/makefiles/$(TARGET).make"; \
 	) > $@
 
--- a/hotspot/build/linux/makefiles/defs.make	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/linux/makefiles/defs.make	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
+# Copyright 2006-2007 Sun Microsystems, Inc.  All Rights Reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
 
 # The common definitions for hotspot linux builds.
 # Include the top level defs.make under make directory instead of this one.
-# 
+# This file is included into make/defs.make.
 
 SLASH_JAVA ?= /java
 
@@ -88,7 +88,7 @@
 endif
 
 JDK_INCLUDE_SUBDIR=linux
-MAKE_ARGS += HOTSPOT_BUILD_VERSION=$(FULL_VERSION)
+
 # FIXUP: The subdirectory for a debug build is NOT the same on all platforms
 VM_DEBUG=jvmg
 
--- a/hotspot/build/linux/makefiles/launcher.make	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/linux/makefiles/launcher.make	Fri Aug 31 00:44:13 2007 +0000
@@ -30,7 +30,7 @@
 LAUNCHERDIR   = $(GAMMADIR)/src/os/$(Platform_os_family)/launcher
 LAUNCHERFLAGS = $(ARCHFLAG) \
                 -I$(LAUNCHERDIR) -I$(GAMMADIR)/src/share/vm/prims \
-                -DFULL_VERSION=\"$(HOTSPOT_BUILD_VERSION)\" \
+                -DFULL_VERSION=\"$(HOTSPOT_RELEASE_VERSION)\" \
                 -DARCH=\"$(LIBARCH)\" \
                 -DGAMMA \
                 -DLAUNCHER_TYPE=\"gamma\" \
--- a/hotspot/build/linux/makefiles/sa.make	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/linux/makefiles/sa.make	Fri Aug 31 00:44:13 2007 +0000
@@ -50,7 +50,7 @@
 # in $(GAMMADIR)/make/hotspot_version, one may override SA_VERSION in the
 # gnumake command line or build environment.
 include $(GAMMADIR)/make/hotspot_version
-SA_VERSION = $(HS_MAJOR_VER).$(HS_MINOR_VER).$(HS_MICRO_VER)
+SA_VERSION = $(HS_MAJOR_VER)
 SA_VERSION_PROP = "sun.jvm.hotspot.runtime.VM.supportedVersion=$(SA_VERSION)"
 SA_PROPERTIES = $(SA_CLASSDIR)/sa.properties
 
@@ -63,11 +63,16 @@
 	fi
 
 $(GENERATED)/sa-jdi.jar: $(AGENT_ALLFILES)
+	$(QUIETLY) echo "Making $@"
 	$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
 	  echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
 	  exit 1; \
 	fi
-	$(QUIETLY) echo "Making $@"
+	$(QUIETLY) if [ ! -f $(SA_CLASSPATH) ] ; then \
+	  echo "Missing $(SA_CLASSPATH) file. Use 1.6.0 or later version of JDK";\
+	  echo ""; \
+	  exit 1; \
+	fi
 	$(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \
 	  mkdir -p $(SA_CLASSDIR);        \
 	fi
--- a/hotspot/build/linux/makefiles/vm.make	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/linux/makefiles/vm.make	Fri Aug 31 00:44:13 2007 +0000
@@ -60,19 +60,30 @@
   SYMFLAG =
 endif
 
-include $(GAMMADIR)/make/hotspot_version
-HOTSPOT_RELEASE_VERSION = $(HS_MAJOR_VER).$(HS_MINOR_VER).$(HS_MICRO_VER)
-RELEASE_VERSION = -DHOTSPOT_RELEASE_VERSION="\"$(HOTSPOT_RELEASE_VERSION)\""
+# HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined 
+# in $(GAMMADIR)/make/defs.make
+ifeq ($(HOTSPOT_BUILD_VERSION),)
+  BUILD_VERSION = -DHOTSPOT_RELEASE_VERSION="\"$(HOTSPOT_RELEASE_VERSION)\""
+else
+  BUILD_VERSION = -DHOTSPOT_RELEASE_VERSION="\"$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION)\""
+endif
 
-HOTSPOT_BUILD_VERSION$(HOTSPOT_BUILD_VERSION) = $(HOTSPOT_RELEASE_VERSION)-internal
-BUILD_VERSION = -DHOTSPOT_BUILD_VERSION="\"$(HOTSPOT_BUILD_VERSION)\""
-
-HOTSPOT_BUILD_USER$(HOTSPOT_BUILD_USER) := $(shell whoami)
-BUILD_USER = -DHOTSPOT_BUILD_USER="\"$(HOTSPOT_BUILD_USER)\""
+# FULL_VERSION is defined in $(GAMMADIR)/make/defs.make
+JRE_RELEASE_VERSION$(JRE_RELEASE_VERSION) = $(FULL_VERSION)
+JRE_VERSION = -DJRE_RELEASE_VERSION="\"$(JRE_RELEASE_VERSION)\""
 
 HOTSPOT_BUILD_TARGET$(HOTSPOT_BUILD_TARGET) = $(TARGET)
 BUILD_TARGET = -DHOTSPOT_BUILD_TARGET="\"$(HOTSPOT_BUILD_TARGET)\""
 
+# set BUILD_USER from system-dependent hints:  $LOGNAME, $(whoami)
+ifndef HOTSPOT_BUILD_USER
+  HOTSPOT_BUILD_USER := $(shell echo $$LOGNAME)
+endif
+ifndef HOTSPOT_BUILD_USER
+  HOTSPOT_BUILD_USER := $(shell whoami)
+endif
+BUILD_USER = -DHOTSPOT_BUILD_USER="\"$(HOTSPOT_BUILD_USER)\""
+
 # Define HOTSPOT_VM_DISTRO if HOTSPOT_VM_DISTRO is set,
 # and if it is not see if we have the src/closed directory
 ifneq ($(HOTSPOT_VM_DISTRO),) 
@@ -97,7 +108,7 @@
   ${BUILD_VERSION}   \
   ${BUILD_TARGET}    \
   ${BUILD_USER}      \
-  ${RELEASE_VERSION} \
+  ${JRE_VERSION}     \
   ${VM_DISTRO}
 
 # CFLAGS_WARN holds compiler options to suppress/enable warnings.
--- a/hotspot/build/solaris/Makefile	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/solaris/Makefile	Fri Aug 31 00:44:13 2007 +0000
@@ -151,6 +151,8 @@
 # in the build.sh script:
 TARGETS           = debug jvmg fastdebug optimized profiled product
 
+MFLAGS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION)
+
 SUBDIR_DOCS       = $(OSNAME)_$(BUILDARCH)_docs
 SUBDIRS_C1        = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler1/,$(TARGETS))
 SUBDIRS_C2        = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler2/,$(TARGETS))
--- a/hotspot/build/solaris/jdk_version	Fri Aug 17 01:47:29 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-JDK1.2_fcs_V
--- a/hotspot/build/solaris/makefiles/buildtree.make	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/solaris/makefiles/buildtree.make	Fri Aug 31 00:44:13 2007 +0000
@@ -58,7 +58,7 @@
 QUIETLY$(MAKE_VERBOSE)	= @
 
 # For now, until the compiler is less wobbly:
-TESTFLAGS	= -Xbatch
+TESTFLAGS	= -Xbatch -showversion
 
 ifdef USE_GCC
 PLATFORM_FILE	= $(GAMMADIR)/build/$(OS_FAMILY)/platform_$(ARCH).gcc
@@ -163,8 +163,6 @@
 	    echo "SYSDEFS += \$$(HOTSPOT_EXTRA_SYSDEFS)"; \
 	echo; \
 	echo "include \$$(GAMMADIR)/build/$(OS_FAMILY)/makefiles/$(VARIANT).make"; \
-	[ "$(TARGET)" = profiled ] && \
-	echo "include \$$(GAMMADIR)/build/$(OS_FAMILY)/makefiles/optimized.make"; \
 	echo "include \$$(GAMMADIR)/build/$(OS_FAMILY)/makefiles/$(COMPILER).make"; \
 	) > $@
 
@@ -173,6 +171,8 @@
 	$(QUIETLY) ( \
 	$(BUILDTREE_COMMENT); \
 	echo; \
+	[ "$(TARGET)" = profiled ] && \
+	echo "include \$$(GAMMADIR)/build/$(OS_FAMILY)/makefiles/optimized.make"; \
 	echo "include \$$(GAMMADIR)/build/$(OS_FAMILY)/makefiles/$(TARGET).make"; \
 	) > $@
 
--- a/hotspot/build/solaris/makefiles/defs.make	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/solaris/makefiles/defs.make	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
+# Copyright 2006-2007 Sun Microsystems, Inc.  All Rights Reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
 
 # The common definitions for hotspot solaris builds.
 # Include the top level defs.make under make directory instead of this one.
-# 
+# This file is included into make/defs.make.
 
 # Need PLATFORM (os-arch combo names) for jdk and hotspot, plus libarch name
 SLASH_JAVA ?= /java
@@ -60,7 +60,7 @@
 endif
 
 JDK_INCLUDE_SUBDIR=solaris
-MAKE_ARGS += HOTSPOT_BUILD_VERSION=$(FULL_VERSION)
+
 # FIXUP: The subdirectory for a debug build is NOT the same on all platforms
 VM_DEBUG=jvmg
 
--- a/hotspot/build/solaris/makefiles/launcher.make	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/solaris/makefiles/launcher.make	Fri Aug 31 00:44:13 2007 +0000
@@ -30,7 +30,7 @@
 LAUNCHERDIR   = $(GAMMADIR)/src/os/$(Platform_os_family)/launcher
 LAUNCHERFLAGS = $(ARCHFLAG) \
                 -I$(LAUNCHERDIR) -I$(GAMMADIR)/src/share/vm/prims \
-                -DFULL_VERSION=\"$(HOTSPOT_BUILD_VERSION)\" \
+                -DFULL_VERSION=\"$(HOTSPOT_RELEASE_VERSION)\" \
                 -DARCH=\"$(LIBARCH)\" \
                 -DGAMMA \
                 -DLAUNCHER_TYPE=\"gamma\" \
--- a/hotspot/build/solaris/makefiles/sa.make	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/solaris/makefiles/sa.make	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright 2003-2006 Sun Microsystems, Inc.  All Rights Reserved.
+# Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -46,7 +46,7 @@
 # in $(GAMMADIR)/make/hotspot_version, one may override SA_VERSION in the
 # gnumake command line or build environment.
 include $(GAMMADIR)/make/hotspot_version
-SA_VERSION = $(HS_MAJOR_VER).$(HS_MINOR_VER).$(HS_MICRO_VER)
+SA_VERSION = $(HS_MAJOR_VER)
 SA_VERSION_PROP = "sun.jvm.hotspot.runtime.VM.supportedVersion=$(SA_VERSION)"
 SA_PROPERTIES = $(SA_CLASSDIR)/sa.properties
 
@@ -57,11 +57,16 @@
 	fi
 
 $(GENERATED)/sa-jdi.jar: $(AGENT_ALLFILES)
+	$(QUIETLY) echo "Making $@";
 	$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
-	  echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
+	   echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
+	   exit 1; \
+	fi
+	$(QUIETLY) if [ ! -f $(SA_CLASSPATH) ] ; then \
+	  echo "Missing $(SA_CLASSPATH) file. Use 1.6.0 or later version of JDK";\
+	  echo ""; \
 	  exit 1; \
 	fi
-	$(QUIETLY) echo "Making $@";
 	$(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \
 	  mkdir -p $(SA_CLASSDIR);        \
 	fi
--- a/hotspot/build/solaris/makefiles/vm.make	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/solaris/makefiles/vm.make	Fri Aug 31 00:44:13 2007 +0000
@@ -60,12 +60,17 @@
   SYMFLAG =
 endif
 
-include $(GAMMADIR)/make/hotspot_version
-HOTSPOT_RELEASE_VERSION = $(HS_MAJOR_VER).$(HS_MINOR_VER).$(HS_MICRO_VER)
-RELEASE_VERSION = -DHOTSPOT_RELEASE_VERSION="\"$(HOTSPOT_RELEASE_VERSION)\""
+# HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined 
+# in $(GAMMADIR)/make/defs.make
+ifeq ($(HOTSPOT_BUILD_VERSION),)
+  BUILD_VERSION = -DHOTSPOT_RELEASE_VERSION="\"$(HOTSPOT_RELEASE_VERSION)\""
+else
+  BUILD_VERSION = -DHOTSPOT_RELEASE_VERSION="\"$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION)\""
+endif
 
-HOTSPOT_BUILD_VERSION$(HOTSPOT_BUILD_VERSION) = $(HOTSPOT_RELEASE_VERSION)-internal
-BUILD_VERSION = -DHOTSPOT_BUILD_VERSION="\"$(HOTSPOT_BUILD_VERSION)\""
+# FULL_VERSION is defined in $(GAMMADIR)/make/defs.make
+JRE_RELEASE_VERSION$(JRE_RELEASE_VERSION) = $(FULL_VERSION)
+JRE_VERSION = -DJRE_RELEASE_VERSION="\"$(JRE_RELEASE_VERSION)\""
 
 HOTSPOT_BUILD_TARGET$(HOTSPOT_BUILD_TARGET) = $(TARGET)
 BUILD_TARGET = -DHOTSPOT_BUILD_TARGET="\"$(HOTSPOT_BUILD_TARGET)\""
@@ -103,7 +108,7 @@
   ${BUILD_VERSION}   \
   ${BUILD_TARGET}    \
   ${BUILD_USER}      \
-  ${RELEASE_VERSION} \
+  ${JRE_VERSION}     \
   ${VM_DISTRO}
 
 # CFLAGS_WARN holds compiler options to suppress/enable warnings.
--- a/hotspot/build/windows/build.bat	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/windows/build.bat	Fri Aug 31 00:44:13 2007 +0000
@@ -76,11 +76,11 @@
 goto usage
 
 :build
-nmake -f %3/build/windows/build.make Variant=%2 WorkSpace=%3 BootStrapDir=%4 BuildID="%5" BuildUser="%USERNAME%" %1
+nmake -f %3/build/windows/build.make Variant=%2 WorkSpace=%3 BootStrapDir=%4 BuildUser="%USERNAME%" HOTSPOT_BUILD_VERSION="%5" %1
 goto end
 
 :build_adlc
-nmake -f %3/build/windows/build.make Variant=compiler2 WorkSpace=%3 BootStrapDir=%4 BuildID=%5 BuildUser="%USERNAME%" ADLC_ONLY=1 %1
+nmake -f %3/build/windows/build.make Variant=compiler2 WorkSpace=%3 BootStrapDir=%4 BuildUser="%USERNAME%" HOTSPOT_BUILD_VERSION=%5 ADLC_ONLY=1 %1
 goto end
 
 :usage
--- a/hotspot/build/windows/build.make	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/windows/build.make	Fri Aug 31 00:44:13 2007 +0000
@@ -87,7 +87,7 @@
 VARIANT_TEXT=Client
 !elseif "$(Variant)" == "compiler2"
 !ifdef FORCE_TIERED
-VARIANT_TEXT=Tiered
+VARIANT_TEXT=Server
 realVariant=tiered
 !else
 VARIANT_TEXT=Server
@@ -104,41 +104,53 @@
 # They are overridden by RE during the control builds.
 #
 !include "$(WorkSpace)/make/hotspot_version"
-SA_VERSION=$(HS_MAJOR_VER).$(HS_MINOR_VER).$(HS_MICRO_VER)
+SA_VERSION=$(HS_MAJOR_VER)
 
 # Following the Web Start / Plugin model here....
 # We can have update versions like "01a", but Windows requires
 # we use only integers in the file version field.  So:
-# HS_UPDATE_VER = JDK_UPDATE_VERSION * 10 + EXCEPTION_VERSION
+# JDK_UPDATE_VER = JDK_UPDATE_VERSION * 10 + EXCEPTION_VERSION
 # 
-HS_UPDATE_VER=0
-HS_BUILD_NUMBER=0
+JDK_UPDATE_VER=0
+JDK_BUILD_NUMBER=0
 
-HS_COMPANY=Sun Microsystems, Inc.
-HS_COPYRIGHT=Copyright \xA9 2004
-HS_MKTG_VERSION=$(HS_MINOR_VER).$(HS_MICRO_VER)
-HS_NAME=Java(TM) 2 Platform Standard Edition $(HS_MKTG_VERSION)
-HS_FILEDESC=Java HotSpot(TM) $(ARCH_TEXT) $(VARIANT_TEXT) VM
+HS_FILEDESC=$(HOTSPOT_VM_DISTRO) $(ARCH_TEXT) $(VARIANT_TEXT) VM
 
-# FileVersion:
+# JDK ProductVersion:
 # 1.5.0_<wx>-b<yz> will have DLL version 5.0.wx*10.yz
 # Thus, 1.5.0_10-b04  will be 5.0.100.4
 #       1.6.0-b01     will be 6.0.0.1
 #       1.6.0_01a-b02 will be 6.0.11.2
 #
-HS_VER=$(HS_MINOR_VER),$(HS_MICRO_VER),$(HS_UPDATE_VER),$(HS_BUILD_NUMBER)
-HS_DOTVER=$(HS_MINOR_VER).$(HS_MICRO_VER).$(HS_UPDATE_VER).$(HS_BUILD_NUMBER)
-!if "$(BuildID)" == ""
-HS_BUILD_VER=$(HS_MAJOR_VER).$(HS_MINOR_VER).$(HS_MICRO_VER)-internal
+# JDK_* variables are defined in make/hotspot_version or on command line
+# 
+JDK_VER=$(JDK_MINOR_VER),$(JDK_MICRO_VER),$(JDK_UPDATE_VER),$(JDK_BUILD_NUMBER)
+JDK_DOTVER=$(JDK_MINOR_VER).$(JDK_MICRO_VER).$(JDK_UPDATE_VER).$(JDK_BUILD_NUMBER)
+!if "$(JRE_RELEASE_VERSION)" == ""
+JRE_RELEASE_VER=$(JDK_MAJOR_VER).$(JDK_MINOR_VER).$(JDK_MICRO_VER)
 !else
-HS_BUILD_VER=$(BuildID)
+JRE_RELEASE_VER=$(JRE_RELEASE_VERSION)
+!endif
+!if "$(JDK_MKTG_VERSION)" == ""
+JDK_MKTG_VERSION=$(JDK_MINOR_VER).$(JDK_MICRO_VER)
 !endif
-HS_RELEASE_VER=$(HS_MAJOR_VER).$(HS_MINOR_VER).$(HS_MICRO_VER)
-!if "$(HS_UPDATE_VER)" != "0"
-HS_RELEASE_VER=$(HS_RELEASE_VER)_$(HS_UPDATE_VER)
+
+# Hotspot Express VM FileVersion:
+# 10.0-b<yz> will have DLL version 10.0.0.yz (need 4 numbers).
+# 
+# HS_* variables are defined in make/hotspot_version
+#
+HS_VER=$(HS_MAJOR_VER),$(HS_MINOR_VER),0,$(HS_BUILD_NUMBER)
+HS_DOTVER=$(HS_MAJOR_VER).$(HS_MINOR_VER).0.$(HS_BUILD_NUMBER)
+
+!if "$(HOTSPOT_RELEASE_VERSION)" == ""
+HOTSPOT_RELEASE_VERSION=$(HS_MAJOR_VER).$(HS_MINOR_VER)-b$(HS_BUILD_NUMBER)
 !endif
-!if "$(HS_BUILD_NUMBER)" != "0"
-HS_RELEASE_VER=$(HS_RELEASE_VER)-b$(HS_BUILD_NUMBER)
+
+!if "$(HOTSPOT_BUILD_VERSION)" == ""
+HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION)
+!else
+HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION)
 !endif
 # End VERSIONINFO parameters
 
@@ -237,16 +249,18 @@
         @ if "$(USERNAME)" NEQ "" echo BuildUser=$(USERNAME)	>> $@
 	@ echo HS_VER=$(HS_VER)					>> $@
 	@ echo HS_DOTVER=$(HS_DOTVER)				>> $@
-	@ echo HS_RELEASE_VER=$(HS_RELEASE_VER)			>> $@
-	@ echo HS_COMPANY=$(HS_COMPANY)				>> $@
+	@ echo HS_COMPANY=$(COMPANY_NAME)			>> $@
 	@ echo HS_FILEDESC=$(HS_FILEDESC)			>> $@
-	@ echo HS_COPYRIGHT=$(HS_COPYRIGHT)			>> $@
-	@ echo HS_NAME=$(HS_NAME)				>> $@
+	@ echo HS_COPYRIGHT=$(HOTSPOT_VM_COPYRIGHT)		>> $@
+	@ echo HS_NAME=$(PRODUCT_NAME) $(JDK_MKTG_VERSION)	>> $@
 	@ echo HS_BUILD_VER=$(HS_BUILD_VER)			>> $@
 	@ echo BUILD_WIN_SA=$(BUILD_WIN_SA)    			>> $@
 	@ echo SA_VERSION=$(SA_VERSION)                         >> $@
 	@ echo SA_INCLUDE=$(SA_INCLUDE)      			>> $@
 	@ echo SA_LIB=$(SA_LIB)         			>> $@
+	@ echo JDK_VER=$(JDK_VER)				>> $@
+	@ echo JDK_DOTVER=$(JDK_DOTVER)				>> $@
+	@ echo JRE_RELEASE_VER=$(JRE_RELEASE_VER)		>> $@
 	@ sh $(WorkSpace)/build/windows/get_msc_ver.sh		>> $@
 
 checks: checkVariant checkWorkSpace checkSA
--- a/hotspot/build/windows/jdk_version	Fri Aug 17 01:47:29 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-JDK-1.2.2-W (FCS)
--- a/hotspot/build/windows/makefiles/compile.make	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/windows/makefiles/compile.make	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
+# Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -188,6 +188,8 @@
 RC_FLAGS=/D "HS_VER=$(HS_VER)" \
 	 /D "HS_DOTVER=$(HS_DOTVER)" \
 	 /D "HS_BUILD_ID=$(HS_BUILD_ID)" \
+	 /D "JDK_VER=$(JDK_VER)" \
+	 /D "JDK_DOTVER=$(JDK_DOTVER)" \
 	 /D "HS_COMPANY=$(HS_COMPANY)" \
 	 /D "HS_FILEDESC=$(HS_FILEDESC)" \
 	 /D "HS_COPYRIGHT=$(HS_COPYRIGHT)" \
--- a/hotspot/build/windows/makefiles/defs.make	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/windows/makefiles/defs.make	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
+# Copyright 2006-2007 Sun Microsystems, Inc.  All Rights Reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,9 @@
 
 # The common definitions for hotspot windows builds.
 # Include the top level defs.make under make directory instead of this one.
-# 
+# This file is included into make/defs.make.
+# On windows it is only used to construct parameters for 
+# build/windows/build.make when make/Makefile is used to build VM.
 
 SLASH_JAVA ?= J:
 PATH_SEP = ;
@@ -56,20 +58,24 @@
 endif
 
 JDK_INCLUDE_SUBDIR=win32
-MAKE_ARGS += BuildID=$(FULL_VERSION)
-MAKE_ARGS += HS_MKTG_VERSION=$(JDK_MKTG_VERSION)
-MAKE_ARGS += HS_MAJOR_VER=$(JDK_MAJOR_VERSION)
-MAKE_ARGS += HS_MINOR_VER=$(JDK_MINOR_VERSION)
-MAKE_ARGS += HS_MICRO_VER=$(JDK_MICRO_VERSION)
+
+# HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined 
+# and added to MAKE_ARGS list in $(GAMMADIR)/make/defs.make.
+
+# next parameters are defined in $(GAMMADIR)/make/defs.make.
+MAKE_ARGS += JDK_MKTG_VERSION=$(JDK_MKTG_VERSION)
+MAKE_ARGS += JDK_MAJOR_VER=$(JDK_MAJOR_VERSION)
+MAKE_ARGS += JDK_MINOR_VER=$(JDK_MINOR_VERSION)
+MAKE_ARGS += JDK_MICRO_VER=$(JDK_MICRO_VERSION)
 
 ifdef COOKED_JDK_UPDATE_VERSION
-  MAKE_ARGS += HS_UPDATE_VER=$(COOKED_JDK_UPDATE_VERSION)
+  MAKE_ARGS += JDK_UPDATE_VER=$(COOKED_JDK_UPDATE_VERSION)
 endif
 
 # COOKED_BUILD_NUMBER should only be set if we have a numeric
 # build number.  It must not be zero padded.
 ifdef COOKED_BUILD_NUMBER
-  MAKE_ARGS += HS_BUILD_NUMBER=$(COOKED_BUILD_NUMBER)
+  MAKE_ARGS += JDK_BUILD_NUMBER=$(COOKED_BUILD_NUMBER)
 endif
 
 NMAKE= MAKEFLAGS= MFLAGS= nmake /NOLOGO
--- a/hotspot/build/windows/makefiles/sa.make	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/windows/makefiles/sa.make	Fri Aug 31 00:44:13 2007 +0000
@@ -57,7 +57,7 @@
 	@echo ...$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -g -d $(SA_CLASSDIR) ....
 	@$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -g -d $(SA_CLASSDIR) $(AGENT_ALLFILES:/=\)
 	$(COMPILE_RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
-	$(QUIETLY) echo $(SA_VERSION_PROP)> $(SA_PROPERTIES)
+	$(QUIETLY) echo $(SA_VERSION_PROP) > $(SA_PROPERTIES)
 	$(RUN_JAR) cf $@ -C saclasses . 
 	$(RUN_JAR) uf $@ -C $(AGENT_SRC_DIR:/=\) META-INF\services\com.sun.jdi.connect.Connector 
 	$(RUN_JAVAH) -classpath $(SA_CLASSDIR) -jni sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal
@@ -81,12 +81,15 @@
 SA_CFLAGS = /nologo $(MS_RUNTIME_OPTION) /W3 $(GX_OPTION) /Od /D "WIN32" /D "WIN64" /D "_WINDOWS" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
 !elseif "$(ARCH)" == "amd64"
 SA_CFLAGS = /nologo $(MS_RUNTIME_OPTION) /W3 $(GX_OPTION) /Od /D "WIN32" /D "WIN64" /D "_WINDOWS" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# On amd64, VS2005 compiler requires bufferoverflowU.lib on the link command line, 
+# otherwise we get missing __security_check_cookie externals at link time. 
+SA_LINK_FLAGS = bufferoverflowU.lib
 !else
 SA_CFLAGS = /nologo $(MS_RUNTIME_OPTION) /W3 /Gm $(GX_OPTION) /ZI /Od /D "WIN32" /D "_WINDOWS" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
 !endif
 
 SASRCFILE = $(AGENT_DIR)/src/os/win32/windbg/sawindbg.cpp
-SA_LFLAGS = /nologo /subsystem:console /map /debug /machine:$(MACHINE)
+SA_LFLAGS = $(SA_LINK_FLAGS) /nologo /subsystem:console /map /debug /machine:$(MACHINE)
 
 # Note that we do not keep sawindbj.obj around as it would then
 # get included in the dumpbin command in build_vm_def.sh
--- a/hotspot/build/windows/makefiles/vm.make	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/windows/makefiles/vm.make	Fri Aug 31 00:44:13 2007 +0000
@@ -59,8 +59,8 @@
 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_BUILD_USER=\"$(BuildUser)\""
 !endif
 
-CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_BUILD_VERSION=\"$(HS_BUILD_VER)\""
-CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_RELEASE_VERSION=\"$(HS_RELEASE_VER)\""
+CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_RELEASE_VERSION=\"$(HS_BUILD_VER)\""
+CPP_FLAGS=$(CPP_FLAGS) /D "JRE_RELEASE_VERSION=\"$(JRE_RELEASE_VER)\""
 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_BUILD_TARGET=\"$(BUILD_FLAVOR)\""
 
 # Define HOTSPOT_VM_DISTRO if HOTSPOT_VM_DISTRO is set,
--- a/hotspot/build/windows/projectfiles/common/Makefile	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/build/windows/projectfiles/common/Makefile	Fri Aug 31 00:44:13 2007 +0000
@@ -102,8 +102,20 @@
 
 !include $(HOTSPOTWORKSPACE)/make/hotspot_version
 
-HOTSPOT_RELEASE_VERSION = $(HS_MAJOR_VER).$(HS_MINOR_VER).$(HS_MICRO_VER)
-HOTSPOT_BUILD_VERSION$(HOTSPOT_BUILD_VERSION) = $(HOTSPOT_RELEASE_VERSION)-internal
+!if "$(HOTSPOT_RELEASE_VERSION)" != ""
+HOTSPOT_RELEASE_VERSION="$(HOTSPOT_RELEASE_VERSION)"
+!else
+HOTSPOT_RELEASE_VERSION="$(HS_MAJOR_VER).$(HS_MINOR_VER)-b$(HS_BUILD_NUMBER)"
+!endif
+HOTSPOT_BUILD_VERSION$(HOTSPOT_BUILD_VERSION) = internal
+!if "$(HOTSPOT_BUILD_VERSION)" != ""
+HOTSPOT_RELEASE_VERSION="$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION)"
+!endif
+!if "$(JRE_RELEASE_VERSION)" != ""
+JRE_RELEASE_VERSION="$(JRE_RELEASE_VERSION)"
+!else
+JRE_RELEASE_VERSION="$(JDK_MAJOR_VER).$(JDK_MINOR_VER).$(JDK_MICRO_VER)"
+!endif
 
 # Define HOTSPOT_VM_DISTRO if HOTSPOT_VM_DISTRO is set,
 # and if it is not see if we have the src/closed directory
@@ -125,7 +137,7 @@
       -includeDB_tiered    $(HOTSPOTBUILDSPACE)\includeDB_tiered \
       -platform            $(Platform) \
       -define              HOTSPOT_RELEASE_VERSION=\\\"$(HOTSPOT_RELEASE_VERSION)\\\" \
-      -define              HOTSPOT_BUILD_VERSION=\\\"$(HOTSPOT_BUILD_VERSION)\\\" \
+      -define              JRE_RELEASE_VERSION=\\\"$(JRE_RELEASE_VERSION)\\\" \
       -define              HOTSPOT_VM_DISTRO=\\\"$(HOTSPOT_VM_DISTRO)\\\"
 
 incls:
--- a/hotspot/make/Makefile	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/make/Makefile	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+# Copyright 2005-2007 Sun Microsystems, Inc.  All Rights Reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -62,7 +62,23 @@
 
 # Default is build both product fastdebug and create export area
 
-include defs.make
+# Allow to build HotSpot in local directory from sources specified by GAMMADIR.
+# After make/defs.make GAMMADIR is defined.
+ifdef GAMMADIR
+  ifndef ALT_OUTPUTDIR
+    ALT_OUTPUTDIR := $(shell pwd)
+  endif
+  include $(GAMMADIR)/make/defs.make
+else
+  include defs.make
+endif
+
+
+ifneq ($(ALT_OUTPUTDIR),)
+  ALT_OUT=ALT_OUTPUTDIR=$(ALT_OUTPUTDIR)
+else
+  ALT_OUT=
+endif
 
 # Typical C1/C2 targets made available with this Makefile
 C1_VM_TARGETS=product1 fastdebug1 optimized1 jvmg1
@@ -90,13 +106,16 @@
 
 # Build variation of hotspot
 $(C1_VM_TARGETS):
-	$(MAKE) VM_TARGET=$@ generic_build1
+	$(CD) $(GAMMADIR)/make; \
+	$(MAKE) VM_TARGET=$@ generic_build1 $(ALT_OUT)
 
 $(C2_VM_TARGETS):
-	$(MAKE) VM_TARGET=$@ generic_build2
+	$(CD) $(GAMMADIR)/make; \
+	$(MAKE) VM_TARGET=$@ generic_build2 $(ALT_OUT)
 
 $(KERNEL_VM_TARGETS):
-	$(MAKE) VM_TARGET=$@ generic_buildkernel
+	$(CD) $(GAMMADIR)/make; \
+	$(MAKE) VM_TARGET=$@ generic_buildkernel $(ALT_OUT)
 
 # Build compiler1 (client) rule, different for platforms
 generic_build1:
@@ -475,7 +494,7 @@
 "  $(MAKE) ALT_JDK_IMPORT_PATH=/opt/java/jdk$(JDK_VERSION)"
 
 # JPRT rule to build this workspace
-include jprt.gmk
+include $(GAMMADIR)/make/jprt.gmk
 
 .PHONY: all world clobber clean help $(C1_VM_TARGETS) $(C2_VM_TARGETS) \
         $(KERNEL_VM_TARGETS) \
--- a/hotspot/make/defs.make	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/make/defs.make	Fri Aug 31 00:44:13 2007 +0000
@@ -50,30 +50,6 @@
 @$(RM) $@
 endef
 
-# Java versions needed
-ifeq ($(PREVIOUS_JDK_VERSION),)
-  PREVIOUS_JDK_VERSION=$(HS_PREVIOUS_VERSION)
-endif
-ifeq ($(JDK_MAJOR_VERSION),)
-  JDK_MAJOR_VERSION=$(HS_MAJOR_VER)
-endif
-ifeq ($(JDK_MINOR_VERSION),)
-  JDK_MINOR_VERSION=$(HS_MINOR_VER)
-endif
-ifeq ($(JDK_MICRO_VERSION),)
-  JDK_MICRO_VERSION=$(HS_MICRO_VER)
-endif
-ifeq ($(JDK_MKTG_VERSION),)
-  JDK_MKTG_VERSION=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)
-endif
-ifeq ($(JDK_VERSION),)
-  JDK_VERSION=$(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)
-endif
-ifeq ($(FULL_VERSION),)
-  MILESTONE=internal
-  FULL_VERSION="$(JDK_VERSION)-$(MILESTONE)-$(USER)"
-endif
-
 # Directory paths and user name
 # Unless GAMMADIR is set on the command line, search upward from
 # the current directory for a parent directory containing "src/share/vm".
@@ -83,11 +59,60 @@
 HS_SRC_DIR=$(GAMMADIR)/src
 HS_BUILD_DIR=$(GAMMADIR)/build
 
+ifeq ($(USER),)
+  USER=$(USERNAME)
+endif
+
 # hotspot version definitions
 include $(GAMMADIR)/make/hotspot_version
 
-ifeq ($(USER),)
-  USER=$(USERNAME)
+# Java versions needed
+ifeq ($(PREVIOUS_JDK_VERSION),)
+  PREVIOUS_JDK_VERSION=$(JDK_PREVIOUS_VERSION)
+endif
+ifeq ($(JDK_MAJOR_VERSION),)
+  JDK_MAJOR_VERSION=$(JDK_MAJOR_VER)
+endif
+ifeq ($(JDK_MINOR_VERSION),)
+  JDK_MINOR_VERSION=$(JDK_MINOR_VER)
+endif
+ifeq ($(JDK_MICRO_VERSION),)
+  JDK_MICRO_VERSION=$(JDK_MICRO_VER)
+endif
+ifeq ($(JDK_MKTG_VERSION),)
+  JDK_MKTG_VERSION=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)
+endif
+ifeq ($(JDK_VERSION),)
+  JDK_VERSION=$(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)
+endif
+ifeq ($(FULL_VERSION),)
+  FULL_VERSION="$(JDK_VERSION)"
+endif
+
+# FULL_VERSION is only used to define JRE_RELEASE_VERSION which is used
+# as JRE version in VM -Xinternalversion output.
+ifndef JRE_RELEASE_VERSION
+  JRE_RELEASE_VERSION=$(FULL_VERSION)
+endif
+
+ifndef HOTSPOT_RELEASE_VERSION
+  HOTSPOT_RELEASE_VERSION=$(HS_MAJOR_VER).$(HS_MINOR_VER)-b$(HS_BUILD_NUMBER)
+endif
+
+ifdef HOTSPOT_BUILD_VERSION
+# specified in command line (PRT build)
+else
+  ifdef JPRT_BUILD_VERSION
+# JPR build
+    HOTSPOT_BUILD_VERSION=$(JPRT_BUILD_VERSION)
+  else
+    ifdef COOKED_BUILD_NUMBER
+# JRE build
+      HOTSPOT_BUILD_VERSION=
+    else
+      HOTSPOT_BUILD_VERSION=internal
+    endif
+  endif
 endif
 
 # Windows should have OS predefined
@@ -203,6 +228,9 @@
 MAKE_ARGS += JAVA_HOME=$(ABS_BOOTDIR)
 MAKE_ARGS += GAMMADIR=$(ABS_GAMMADIR)
 MAKE_ARGS += MAKE_VERBOSE=$(MAKE_VERBOSE)
+MAKE_ARGS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION)
+MAKE_ARGS += HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION)
+MAKE_ARGS += JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION)
 
 # Select name of export directory
 EXPORT_PATH=$(OUTPUTDIR)/export-$(PLATFORM)$(EXPORT_SUBDIR)
--- a/hotspot/make/hotspot_version	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/make/hotspot_version	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
 # 
 
 #
-# @(#)hotspot_version	1.4 07/05/05 17:04:03
+# @(#)hotspot_version	1.5 07/08/15 19:00:18
 # 
 
 #
@@ -31,8 +31,19 @@
 # GNU Makefile and Microsoft nmake formats.
 #
 
-HS_MAJOR_VER=1
-HS_MINOR_VER=7
-HS_MICRO_VER=0
+# Don't put quotes (fail windows build).
+HOTSPOT_VM_DISTRO=Java HotSpot(TM)
+HOTSPOT_VM_COPYRIGHT=Copyright 2007
+COMPANY_NAME=Sun Microsystems, Inc.
+PRODUCT_NAME=Java(TM) Platform SE
 
-HS_PREVIOUS_VERSION=1.6.0
+HS_MAJOR_VER=11
+HS_MINOR_VER=0
+HS_BUILD_NUMBER=05
+
+JDK_MAJOR_VER=1
+JDK_MINOR_VER=7
+JDK_MICRO_VER=0
+
+# Previous (bootdir) JDK version
+JDK_PREVIOUS_VERSION=1.6.0
--- a/hotspot/make/jprt.gmk	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/make/jprt.gmk	Fri Aug 31 00:44:13 2007 +0000
@@ -29,15 +29,15 @@
   MILESTONE=$(JPRT_BUILD_VERSION)
 endif
 
-jprt_build_product: product product1 productkernel docs export_product copy_product_jdk export_product_jdk
+jprt_build_product: all_product copy_product_jdk export_product_jdk
 	( $(CD) $(JDK_IMAGE_DIR) && \
 	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
 
-jprt_build_fastdebug: fastdebug fastdebug1 fastdebugkernel docs export_fastdebug copy_fastdebug_jdk export_fastdebug_jdk
+jprt_build_fastdebug: all_fastdebug copy_fastdebug_jdk export_fastdebug_jdk
 	( $(CD) $(JDK_IMAGE_DIR)/fastdebug && \
 	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
 
-jprt_build_debug: jvmg jvmg1 jvmgkernel docs export_debug copy_debug_jdk export_debug_jdk
+jprt_build_debug: all_debug copy_debug_jdk export_debug_jdk
 	( $(CD) $(JDK_IMAGE_DIR)/debug && \
 	  $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
 
--- a/hotspot/make/jprt.properties	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/make/jprt.properties	Fri Aug 31 00:44:13 2007 +0000
@@ -42,59 +42,73 @@
 
 # Standard list of JPRT test targets for this workspace
 JPRT.test.targets = \
-    *-{product|fastdebug}-*-jvm98, \
-    *-{product|fastdebug}-*-scimark, \
-    solaris_sparc-product-{c1|c2}-runThese, \
-    solaris_sparc-product-{c1|c2}-runThese_Xcomp, \
-    solaris_sparc-product-{c1|c2}-runThese_Xcomp_2, \
-    solaris_sparc-product-{c1|c2}-runThese_Xcomp_3, \
-    solaris_sparc-fastdebug-c1-runThese_Xshare, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-GCBasher_default, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-GCBasher_SerialGC, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-GCBasher_ParallelGC, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-GCBasher_ParNewGC, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-GCBasher_CMS, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-GCBasher_default_2, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-GCBasher_SerialGC_2, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-GCBasher_ParallelGC_2, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-GCBasher_ParNewGC_2, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-GCBasher_CMS_2, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-GCOld_default, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-GCOld_SerialGC, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-GCOld_ParallelGC, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-GCOld_ParNewGC, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-GCOld_CMS, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-jbb_default, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-jbb_SerialGC, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-jbb_ParallelGC, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-jbb_CMS, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-scimark_2, \
-    solaris_sparc-{product|fastdebug}-{c1|c2}-scimark_3, \
-    solaris_sparcv9-product-c2-runThese, \
-    solaris_sparcv9-product-c2-runThese_Xcomp, \
-    solaris_sparcv9-product-c2-runThese_Xcomp_2, \
-    solaris_sparcv9-product-c2-runThese_Xcomp_3, \
-    solaris_sparcv9-{product|fastdebug}-c2-GCBasher_default, \
-    solaris_sparcv9-{product|fastdebug}-c2-GCBasher_SerialGC, \
-    solaris_sparcv9-{product|fastdebug}-c2-GCBasher_ParallelGC, \
-    solaris_sparcv9-{product|fastdebug}-c2-GCBasher_ParNewGC, \
-    solaris_sparcv9-{product|fastdebug}-c2-GCBasher_CMS, \
-    solaris_sparcv9-{product|fastdebug}-c2-GCBasher_default_2, \
-    solaris_sparcv9-{product|fastdebug}-c2-GCBasher_SerialGC_2, \
-    solaris_sparcv9-{product|fastdebug}-c2-GCBasher_ParallelGC_2, \
-    solaris_sparcv9-{product|fastdebug}-c2-GCBasher_ParNewGC_2, \
-    solaris_sparcv9-{product|fastdebug}-c2-GCBasher_CMS_2, \
-    solaris_sparcv9-{product|fastdebug}-c2-GCOld_default, \
-    solaris_sparcv9-{product|fastdebug}-c2-GCOld_SerialGC, \
-    solaris_sparcv9-{product|fastdebug}-c2-GCOld_ParallelGC, \
-    solaris_sparcv9-{product|fastdebug}-c2-GCOld_ParNewGC, \
-    solaris_sparcv9-{product|fastdebug}-c2-GCOld_CMS, \
-    solaris_sparcv9-{product|fastdebug}-c2-jbb_default, \
-    solaris_sparcv9-{product|fastdebug}-c2-jbb_SerialGC, \
-    solaris_sparcv9-{product|fastdebug}-c2-jbb_ParallelGC, \
-    solaris_sparcv9-{product|fastdebug}-c2-jbb_CMS, \
-    solaris_sparcv9-{product|fastdebug}-c2-scimark_2, \
-    solaris_sparcv9-{product|fastdebug}-c2-scimark_3, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-jvm98, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-scimark, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-jvm98, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-scimark, \
+    solaris_i586_5.10-{product|fastdebug}-{c1|c2}-jvm98, \
+    solaris_i586_5.10-{product|fastdebug}-{c1|c2}-scimark, \
+    solaris_x64_5.10-{product|fastdebug}-c2-jvm98, \
+    solaris_x64_5.10-{product|fastdebug}-c2-scimark, \
+    linux_i586-{product|fastdebug}-{c1|c2}-jvm98, \
+    linux_i586-{product|fastdebug}-{c1|c2}-scimark, \
+    linux_x64-{product|fastdebug}-c2-jvm98, \
+    linux_x64-{product|fastdebug}-c2-scimark, \
+    windows_i586-{product|fastdebug}-{c1|c2}-jvm98, \
+    windows_i586-{product|fastdebug}-{c1|c2}-scimark, \
+    windows_x64-{product|fastdebug}-c2-jvm98, \
+    windows_x64-{product|fastdebug}-c2-scimark, \
+    solaris_sparc_5.10-product-{c1|c2}-runThese, \
+    solaris_sparc_5.10-product-{c1|c2}-runThese_Xcomp, \
+    solaris_sparc_5.10-product-{c1|c2}-runThese_Xcomp_2, \
+    solaris_sparc_5.10-product-{c1|c2}-runThese_Xcomp_3, \
+    solaris_sparc_5.10-fastdebug-c1-runThese_Xshare, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-GCBasher_default, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-GCBasher_SerialGC, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-GCBasher_ParallelGC, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-GCBasher_ParNewGC, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-GCBasher_CMS, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-GCBasher_default_2, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-GCBasher_SerialGC_2, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-GCBasher_ParallelGC_2, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-GCBasher_ParNewGC_2, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-GCBasher_CMS_2, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-GCOld_default, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-GCOld_SerialGC, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-GCOld_ParallelGC, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-GCOld_ParNewGC, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-GCOld_CMS, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-jbb_default, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-jbb_SerialGC, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-jbb_ParallelGC, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-jbb_CMS, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-scimark_2, \
+    solaris_sparc_5.10-{product|fastdebug}-{c1|c2}-scimark_3, \
+    solaris_sparcv9_5.10-product-c2-runThese, \
+    solaris_sparcv9_5.10-product-c2-runThese_Xcomp, \
+    solaris_sparcv9_5.10-product-c2-runThese_Xcomp_2, \
+    solaris_sparcv9_5.10-product-c2-runThese_Xcomp_3, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_default, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_SerialGC, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_ParallelGC, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_ParNewGC, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_CMS, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_default_2, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_SerialGC_2, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_ParallelGC_2, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_ParNewGC_2, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-GCBasher_CMS_2, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_default, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_SerialGC, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_ParallelGC, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_ParNewGC, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-GCOld_CMS, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_default, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_SerialGC, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_ParallelGC, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-jbb_CMS, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-scimark_2, \
+    solaris_sparcv9_5.10-{product|fastdebug}-c2-scimark_3, \
     solaris_x64-product-c2-runThese, \
     solaris_x64-product-c2-runThese_Xcomp, \
     solaris_x64-{product|fastdebug}-c2-GCBasher_default, \
@@ -116,30 +130,30 @@
     solaris_x64-{product|fastdebug}-c2-jbb_SerialGC, \
     solaris_x64-{product|fastdebug}-c2-jbb_ParallelGC, \
     solaris_x64-{product|fastdebug}-c2-jbb_CMS, \
-    solaris_i586-product-{c1|c2}-runThese_Xcomp, \
-    solaris_i586-product-c2-runThese_Xcomp_2, \
-    solaris_i586-fastdebug-c1-runThese_Xcomp_2, \
-    solaris_i586-fastdebug-c1-runThese_Xshare, \
-    solaris_i586-product-c1-GCBasher_default, \
-    solaris_i586-product-c1-GCBasher_SerialGC, \
-    solaris_i586-product-c1-GCBasher_ParallelGC, \
-    solaris_i586-product-c1-GCBasher_ParNewGC, \
-    solaris_i586-product-c1-GCBasher_CMS, \
-    solaris_i586-fastdebug-c2-GCBasher_default, \
-    solaris_i586-fastdebug-c2-GCBasher_SerialGC, \
-    solaris_i586-fastdebug-c2-GCBasher_ParallelGC, \
-    solaris_i586-fastdebug-c2-GCBasher_ParNewGC, \
-    solaris_i586-fastdebug-c2-GCBasher_CMS, \
-    solaris_i586-product-c1-GCOld_default, \
-    solaris_i586-product-c1-GCOld_SerialGC, \
-    solaris_i586-product-c1-GCOld_ParallelGC, \
-    solaris_i586-product-c1-GCOld_ParNewGC, \
-    solaris_i586-product-c1-GCOld_CMS, \
-    solaris_i586-fastdebug-c2-jbb_default, \
-    solaris_i586-fastdebug-c2-jbb_ParallelGC, \
-    solaris_i586-fastdebug-c2-jbb_CMS, \
-    solaris_i586-{product|fastdebug}-{c1|c2}-scimark_2, \
-    solaris_i586-{product|fastdebug}-{c1|c2}-scimark_3, \
+    solaris_i586_5.10-product-{c1|c2}-runThese_Xcomp, \
+    solaris_i586_5.10-product-c2-runThese_Xcomp_2, \
+    solaris_i586_5.10-fastdebug-c1-runThese_Xcomp_2, \
+    solaris_i586_5.10-fastdebug-c1-runThese_Xshare, \
+    solaris_i586_5.10-product-c1-GCBasher_default, \
+    solaris_i586_5.10-product-c1-GCBasher_SerialGC, \
+    solaris_i586_5.10-product-c1-GCBasher_ParallelGC, \
+    solaris_i586_5.10-product-c1-GCBasher_ParNewGC, \
+    solaris_i586_5.10-product-c1-GCBasher_CMS, \
+    solaris_i586_5.10-fastdebug-c2-GCBasher_default, \
+    solaris_i586_5.10-fastdebug-c2-GCBasher_SerialGC, \
+    solaris_i586_5.10-fastdebug-c2-GCBasher_ParallelGC, \
+    solaris_i586_5.10-fastdebug-c2-GCBasher_ParNewGC, \
+    solaris_i586_5.10-fastdebug-c2-GCBasher_CMS, \
+    solaris_i586_5.10-product-c1-GCOld_default, \
+    solaris_i586_5.10-product-c1-GCOld_SerialGC, \
+    solaris_i586_5.10-product-c1-GCOld_ParallelGC, \
+    solaris_i586_5.10-product-c1-GCOld_ParNewGC, \
+    solaris_i586_5.10-product-c1-GCOld_CMS, \
+    solaris_i586_5.10-fastdebug-c2-jbb_default, \
+    solaris_i586_5.10-fastdebug-c2-jbb_ParallelGC, \
+    solaris_i586_5.10-fastdebug-c2-jbb_CMS, \
+    solaris_i586_5.10-{product|fastdebug}-{c1|c2}-scimark_2, \
+    solaris_i586_5.10-{product|fastdebug}-{c1|c2}-scimark_3, \
     linux_i586-product-c1-runThese_Xcomp, \
     linux_i586-product-c1-runThese_Xcomp_2, \
     linux_i586-product-c1-runThese_Xcomp_3, \
--- a/hotspot/src/os/linux/vm/vmError_linux.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/os/linux/vm/vmError_linux.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)vmError_linux.cpp	1.14 07/07/19 19:18:27 JVM"
+#pragma ident "@(#)vmError_linux.cpp	1.15 07/07/30 11:10:08 JVM"
 #endif
 /*
  * Copyright 2003-2006 Sun Microsystems, Inc.  All Rights Reserved.
@@ -58,6 +58,7 @@
                    os::current_process_id(), os::current_process_id());
 
       os::fork_and_exec(buf);
+      yes = false;
     }
   } while (yes);
 }
--- a/hotspot/src/os/solaris/vm/os_solaris.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/os/solaris/vm/os_solaris.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)os_solaris.cpp	1.399 07/07/19 19:18:29 JVM"
+#pragma ident "@(#)os_solaris.cpp	1.400 07/07/24 16:15:57 JVM"
 #endif
 /*
  * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -3223,7 +3223,7 @@
 int os::sleep(Thread* thread, jlong millis, bool interruptible) {
   assert(thread == Thread::current(),  "thread consistency check");
 
-  // TODO-FIXME: this should be removed, or at least made contingent upon an !isT2() test.
+  // TODO-FIXME: this should be removed.
   // On Solaris machines (especially 2.5.1) we found that sometimes the VM gets into a live lock
   // situation with a JavaThread being starved out of a lwp. The kernel doesn't seem to generate
   // a SIGWAITING signal which would enable the threads library to create a new lwp for the starving
@@ -3231,7 +3231,8 @@
   // is fooled into believing that the system is making progress. In the code below we block the
   // the watcher thread while safepoint is in progress so that it would not appear as though the
   // system is making progress.
-  if (thread->is_Watcher_thread() && SafepointSynchronize::is_synchronizing() && !Arguments::has_profile()) {
+  if (!Solaris::T2_libthread() && 
+      thread->is_Watcher_thread() && SafepointSynchronize::is_synchronizing() && !Arguments::has_profile()) {
     // We now try to acquire the threads lock. Since this lock is held by the VM thread during
     // the entire safepoint, the watcher thread will  line up here during the safepoint.
     Threads_lock->lock_without_safepoint_check();
--- a/hotspot/src/os/solaris/vm/vmError_solaris.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/os/solaris/vm/vmError_solaris.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)vmError_solaris.cpp	1.13 07/07/19 19:18:29 JVM"
+#pragma ident "@(#)vmError_solaris.cpp	1.14 07/07/30 11:11:15 JVM"
 #endif
 /*
  * Copyright 2003-2006 Sun Microsystems, Inc.  All Rights Reserved.
@@ -54,6 +54,7 @@
       jio_snprintf(buf, buflen, "dbx - %d", os::current_process_id());
 
       os::fork_and_exec(buf);
+      yes = false;
     }
   } while (yes);
 }
--- a/hotspot/src/os/win32/vm/os_win32.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/os/win32/vm/os_win32.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)os_win32.cpp	1.531 07/07/19 19:18:30 JVM"
+#pragma ident "@(#)os_win32.cpp	1.532 07/08/07 00:43:39 JVM"
 #endif
 /*
  * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -144,6 +144,9 @@
   return;
 }
 
+#ifndef _WIN64
+LONG WINAPI Handle_FLT_Exception(struct _EXCEPTION_POINTERS* exceptionInfo);
+#endif
 void os::init_system_properties_values() {
   /* sysclasspath, java_home, dll_dir */
   {
@@ -259,6 +262,10 @@
     #undef ENDORSED_DIR
   }
 
+#ifndef _WIN64
+  SetUnhandledExceptionFilter(Handle_FLT_Exception);
+#endif 
+
   // Done
   return;
 }
@@ -1833,6 +1840,52 @@
   return EXCEPTION_CONTINUE_EXECUTION;
 }
 
+#ifndef  _WIN64
+//-----------------------------------------------------------------------------
+LONG WINAPI Handle_FLT_Exception(struct _EXCEPTION_POINTERS* exceptionInfo) {
+  // handle exception caused by native mothod modifying control word
+  PCONTEXT ctx = exceptionInfo->ContextRecord;
+  DWORD exception_code = exceptionInfo->ExceptionRecord->ExceptionCode;
+
+  switch (exception_code) {
+    case EXCEPTION_FLT_DENORMAL_OPERAND:
+    case EXCEPTION_FLT_DIVIDE_BY_ZERO:
+    case EXCEPTION_FLT_INEXACT_RESULT:
+    case EXCEPTION_FLT_INVALID_OPERATION:
+    case EXCEPTION_FLT_OVERFLOW:
+    case EXCEPTION_FLT_STACK_CHECK:
+    case EXCEPTION_FLT_UNDERFLOW:
+      jint fp_control_word = (* (jint*) StubRoutines::addr_fpu_cntrl_wrd_std());
+      if (fp_control_word != ctx->FloatSave.ControlWord) {
+        // Restore FPCW and mask out FLT exceptions
+        ctx->FloatSave.ControlWord = fp_control_word | 0xffffffc0;
+        // Mask out pending FLT exceptions
+        ctx->FloatSave.StatusWord &=  0xffffff00;
+        return EXCEPTION_CONTINUE_EXECUTION;
+      }
+  }
+  return EXCEPTION_CONTINUE_SEARCH;
+}
+#else //_WIN64
+/*
+  On Windows, the mxcsr control bits are non-volatile across calls
+  See also CR 6192333
+  If EXCEPTION_FLT_* happened after some native method modified 
+  mxcsr - it is not a jvm fault.
+  However should we decide to restore of mxcsr after a faulty 
+  native method we can uncomment following code
+      jint MxCsr = INITIAL_MXCSR;
+        // we can't use StubRoutines::addr_mxcsr_std()
+        // because in Win64 mxcsr is not saved there
+      if (MxCsr != ctx->MxCsr) {
+        ctx->MxCsr = MxCsr;
+        return EXCEPTION_CONTINUE_EXECUTION;
+      }
+
+*/
+#endif //_WIN64
+
+
 // Fatal error reporting is single threaded so we can make this a
 // static and preallocated.  If it's more than MAX_PATH silently ignore
 // it.
@@ -2171,7 +2224,15 @@
       
       } // switch
     }
-  }
+#ifndef _WIN64
+    if ((thread->thread_state() == _thread_in_Java) || 
+        (thread->thread_state() == _thread_in_native) )
+    {
+      LONG result=Handle_FLT_Exception(exceptionInfo);
+      if (result==EXCEPTION_CONTINUE_EXECUTION) return result;
+    }
+#endif //_WIN64
+   }
 
   if (exception_code != EXCEPTION_BREAKPOINT) {    
 #ifndef _WIN64
--- a/hotspot/src/os/win32/vm/version.rc	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/os/win32/vm/version.rc	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)version.rc	1.6 07/05/05 17:04:45 JVM"
+#pragma ident "@(#)version.rc	1.7 07/08/15 20:12:20 JVM"
 #endif
 //
 // Copyright 2004 Sun Microsystems, Inc.  All Rights Reserved.
@@ -40,7 +40,7 @@
 
 VS_VERSION_INFO VERSIONINFO
  FILEVERSION    HS_VER
- PRODUCTVERSION HS_VER
+ PRODUCTVERSION JDK_VER
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -65,7 +65,7 @@
             VALUE "LegalCopyright",   XSTR(HS_COPYRIGHT)     "\0"
             VALUE "OriginalFilename", XSTR(HS_FNAME)         "\0"
             VALUE "ProductName",      XSTR(HS_NAME)          "\0"
-            VALUE "ProductVersion",   XSTR(HS_DOTVER)        "\0"
+            VALUE "ProductVersion",   XSTR(JDK_DOTVER)       "\0"
         END
     END
     BLOCK "VarFileInfo"
--- a/hotspot/src/os/win32/vm/vmError_win32.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/os/win32/vm/vmError_win32.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
   #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)vmError_win32.cpp	1.15 07/07/19 19:18:31 JVM"
+#pragma ident "@(#)vmError_win32.cpp	1.16 07/07/24 16:16:16 JVM"
 #endif
 /*
  * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -55,6 +55,7 @@
       // the default windows exception handler, which can spawn a debugger and
       // automatically attach to the dying VM.
       os::breakpoint();
+      yes = false;
     }
   } while (yes);
 }
--- a/hotspot/src/share/vm/c1/c1_LinearScan.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/c1/c1_LinearScan.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_HDR
-#pragma ident "@(#)c1_LinearScan.cpp	1.13 07/06/18 14:25:25 JVM"
+#pragma ident "@(#)c1_LinearScan.cpp	1.14 07/08/14 16:07:30 JVM"
 #endif
 /*
  * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
@@ -2873,8 +2873,11 @@
     if (op->code() == lir_move) {
       assert(op->as_Op1() != NULL, "move must be LIR_Op1");
       LIR_Op1* move = (LIR_Op1*)op;
-      if (!move->result_opr()->is_pointer() && !move->in_opr()->is_pointer() &&
-          move->in_opr()->is_same_register(move->result_opr())) {
+      LIR_Opr src = move->in_opr();
+      LIR_Opr dst = move->result_opr();
+      if (dst == src ||
+          !dst->is_pointer() && !src->is_pointer() &&
+          src->is_same_register(dst)) {
         instructions->at_put(j, NULL);
         has_dead = true;
       }
@@ -6196,6 +6199,7 @@
     case counter_move_reg_reg:    return "register->register";
     case counter_move_reg_stack:  return "register->stack";
     case counter_move_stack_reg:  return "stack->register";
+    case counter_move_stack_stack:return "stack->stack";
     case counter_move_reg_mem:    return "register->memory";
     case counter_move_mem_reg:    return "memory->register";
     case counter_move_const_any:  return "constant->any";
@@ -6342,8 +6346,11 @@
               ShouldNotReachHere();
             }
           } else if (in->is_stack()) {
-            assert(res->is_register(), "must be");
-            inc_counter(counter_move_stack_reg);
+            if (res->is_register()) {
+              inc_counter(counter_move_stack_reg);
+            } else {
+              inc_counter(counter_move_stack_stack);
+            }
           } else if (in->is_address()) {
             assert(res->is_register(), "must be");
             inc_counter(counter_move_mem_reg);
--- a/hotspot/src/share/vm/c1/c1_LinearScan.hpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/c1/c1_LinearScan.hpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_HDR
-#pragma ident "@(#)c1_LinearScan.hpp	1.12 07/05/05 17:05:09 JVM"
+#pragma ident "@(#)c1_LinearScan.hpp	1.13 07/08/14 16:07:30 JVM"
 #endif
 /*
  * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
@@ -890,6 +890,7 @@
     counter_move_reg_reg,
     counter_move_reg_stack,
     counter_move_stack_reg,
+    counter_move_stack_stack,
     counter_move_reg_mem,
     counter_move_mem_reg,
     counter_move_const_any,
--- a/hotspot/src/share/vm/ci/ciType.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/ci/ciType.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)ciType.cpp	1.16 07/05/05 17:05:16 JVM"
+#pragma ident "@(#)ciType.cpp	1.17 07/08/09 09:11:54 JVM"
 #endif
 /*
  * Copyright 2000-2002 Sun Microsystems, Inc.  All Rights Reserved.
@@ -87,7 +87,7 @@
 //
 ciInstance* ciType::java_mirror() {
   VM_ENTRY_MARK;
-  return CURRENT_THREAD_ENV->get_object(SystemDictionary::java_mirror(basic_type()))->as_instance();
+  return CURRENT_THREAD_ENV->get_object(Universe::java_mirror(basic_type()))->as_instance();
 }
 
 // ------------------------------------------------------------------
--- a/hotspot/src/share/vm/classfile/javaClasses.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/classfile/javaClasses.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)javaClasses.cpp	1.247 07/05/17 15:50:20 JVM"
+#pragma ident "@(#)javaClasses.cpp	1.248 07/08/09 09:11:55 JVM"
 #endif
 /*
  * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -308,7 +308,7 @@
       Handle comp_mirror;
       if (k->oop_is_typeArray()) {
         BasicType type = typeArrayKlass::cast(k->as_klassOop())->element_type();
-        comp_mirror = SystemDictionary::java_mirror(type);
+        comp_mirror = Universe::java_mirror(type);
         assert(comp_mirror.not_null(), "must have primitive mirror");
       } else if (k->oop_is_objArray()) {
         klassOop element_klass = objArrayKlass::cast(k->as_klassOop())->element_klass();
@@ -394,15 +394,15 @@
     // Note: create_basic_type_mirror above initializes ak to a non-null value.
     type = arrayKlass::cast(ak)->element_type();
   } else {
-    assert(java_class == SystemDictionary::void_mirror(), "only valid non-array primitive");
+    assert(java_class == Universe::void_mirror(), "only valid non-array primitive");
   }
-  assert(SystemDictionary::java_mirror(type) == java_class, "must be consistent");
+  assert(Universe::java_mirror(type) == java_class, "must be consistent");
   return type;
 }
 
 
 oop java_lang_Class::primitive_mirror(BasicType t) {
-  oop mirror = SystemDictionary::java_mirror(t);
+  oop mirror = Universe::java_mirror(t);
   assert(mirror != NULL && mirror->is_a(SystemDictionary::class_klass()), "must be a Class");
   assert(java_lang_Class::is_primitive(mirror), "must be primitive");
   return mirror;
--- a/hotspot/src/share/vm/classfile/systemDictionary.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/classfile/systemDictionary.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)systemDictionary.cpp	1.364 07/07/26 13:43:14 JVM"
+#pragma ident "@(#)systemDictionary.cpp	1.365 07/08/09 09:11:57 JVM"
 #endif
 /*
  * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -107,17 +107,6 @@
 klassOop    SystemDictionary::_long_klass                 =  NULL;
 klassOop    SystemDictionary::_box_klasses[T_VOID+1]      =  { NULL /*, NULL...*/ };
 
-oop         SystemDictionary::_int_mirror                 =  NULL;
-oop         SystemDictionary::_float_mirror               =  NULL;
-oop         SystemDictionary::_double_mirror              =  NULL;
-oop         SystemDictionary::_byte_mirror                =  NULL;
-oop         SystemDictionary::_bool_mirror                =  NULL;
-oop         SystemDictionary::_char_mirror                =  NULL;
-oop         SystemDictionary::_long_mirror                =  NULL;
-oop         SystemDictionary::_short_mirror               =  NULL;
-oop         SystemDictionary::_void_mirror                =  NULL;
-oop         SystemDictionary::_mirrors[T_VOID+1]          =  { NULL /*, NULL...*/ };
-
 oop         SystemDictionary::_java_system_loader         =  NULL;
 
 bool        SystemDictionary::_has_loadClassInternal      =  false;
@@ -1778,29 +1767,6 @@
   FilteredFieldsMap::klasses_oops_do(f); 
 }
 
-// These *_mirror objects in the system dictionary need to be processed
-// early on when class data sharing is enabled, and are therefore treated
-// as part of Universe::oops_do()  rather than in SystemDictionary::oops_do()
-// as one would normally expect.
-void SystemDictionary::shared_oops_do(OopClosure* f) {
-  f->do_oop((oop*) &_int_mirror);
-  f->do_oop((oop*) &_float_mirror);
-  f->do_oop((oop*) &_double_mirror);
-  f->do_oop((oop*) &_byte_mirror);
-  f->do_oop((oop*) &_bool_mirror);
-  f->do_oop((oop*) &_char_mirror);
-  f->do_oop((oop*) &_long_mirror);
-  f->do_oop((oop*) &_short_mirror);
-  f->do_oop((oop*) &_void_mirror);
-
-  // It's important to iterate over these guys even if they are null,
-  // since that's how shared heaps are restored.
-  for (int i = T_BOOLEAN; i < T_VOID+1; i++) {
-    f->do_oop((oop*) &_mirrors[i]);
-  }
-  assert(_mirrors[0] == NULL && _mirrors[T_BOOLEAN - 1] == NULL, "checking");
-}
-
 void SystemDictionary::lazily_loaded_oops_do(OopClosure* f) {
   f->do_oop((oop*) &_abstract_ownable_synchronizer_klass);
 }
@@ -1884,9 +1850,12 @@
   _string_klass            = resolve_or_fail(vmSymbolHandles::java_lang_String(),                true, CHECK);  
   _class_klass             = resolve_or_fail(vmSymbolHandles::java_lang_Class(),                 true, CHECK);
   debug_only(instanceKlass::verify_class_klass_nonstatic_oop_maps(_class_klass));
-
-  // Fixup mirrors for classes loaded before java.lang.Class
-  initialize_basic_type_mirrors(CHECK);
+  // Fixup mirrors for classes loaded before java.lang.Class.
+  // These calls iterate over the objects currently in the perm gen
+  // so calling them at this point is matters (not before when there
+  // are fewer objects and not later after there are more objects
+  // in the perm gen.
+  Universe::initialize_basic_type_mirrors(CHECK);
   Universe::fixup_mirrors(CHECK);
 
   _cloneable_klass         = resolve_or_fail(vmSymbolHandles::java_lang_Cloneable(),             true, CHECK);
@@ -1994,39 +1963,6 @@
   }
 }
 
-void SystemDictionary::initialize_basic_type_mirrors(TRAPS) { 
-  if (UseSharedSpaces) {
-    assert(_int_mirror != NULL, "already loaded");
-    assert(_void_mirror == _mirrors[T_VOID], "consistently loaded");
-    return;
-  }
-
-  assert(_int_mirror==NULL, "basic type mirrors already initialized");
-
-  _int_mirror     = java_lang_Class::create_basic_type_mirror("int",    T_INT,     CHECK);
-  _float_mirror   = java_lang_Class::create_basic_type_mirror("float",  T_FLOAT,   CHECK);
-  _double_mirror  = java_lang_Class::create_basic_type_mirror("double", T_DOUBLE,  CHECK);
-  _byte_mirror    = java_lang_Class::create_basic_type_mirror("byte",   T_BYTE,    CHECK);
-  _bool_mirror    = java_lang_Class::create_basic_type_mirror("boolean",T_BOOLEAN, CHECK);
-  _char_mirror    = java_lang_Class::create_basic_type_mirror("char",   T_CHAR,    CHECK);
-  _long_mirror    = java_lang_Class::create_basic_type_mirror("long",   T_LONG,    CHECK);
-  _short_mirror   = java_lang_Class::create_basic_type_mirror("short",  T_SHORT,   CHECK);
-  _void_mirror    = java_lang_Class::create_basic_type_mirror("void",   T_VOID,    CHECK);
-
-  _mirrors[T_INT]     = _int_mirror;
-  _mirrors[T_FLOAT]   = _float_mirror;
-  _mirrors[T_DOUBLE]  = _double_mirror;
-  _mirrors[T_BYTE]    = _byte_mirror;
-  _mirrors[T_BOOLEAN] = _bool_mirror;
-  _mirrors[T_CHAR]    = _char_mirror;
-  _mirrors[T_LONG]    = _long_mirror;
-  _mirrors[T_SHORT]   = _short_mirror;
-  _mirrors[T_VOID]    = _void_mirror;
-  //_mirrors[T_OBJECT]  = instanceKlass::cast(_object_klass)->java_mirror();
-  //_mirrors[T_ARRAY]   = instanceKlass::cast(_object_klass)->java_mirror();
-}
-
-
 // Tells if a given klass is a box (wrapper class, such as java.lang.Integer).
 // If so, returns the basic type it holds.  If not, returns T_OBJECT.
 BasicType SystemDictionary::box_klass_type(klassOop k) {
--- a/hotspot/src/share/vm/classfile/systemDictionary.hpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/classfile/systemDictionary.hpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_HDR
-#pragma ident "@(#)systemDictionary.hpp	1.155 07/07/26 13:43:15 JVM"
+#pragma ident "@(#)systemDictionary.hpp	1.156 07/08/09 09:11:58 JVM"
 #endif
 /*
  * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -183,9 +183,6 @@
   // Applies "f->do_oop" to all root oops in the system dictionary.
   static void oops_do(OopClosure* f);
 
-  // Applies "f->do_oop" to root oops that are loaded from a shared heap.
-  static void shared_oops_do(OopClosure* f);
-
   // System loader lock
   static oop system_loader_lock()	    { return _system_loader_lock_obj; }
 
@@ -358,20 +355,6 @@
   }
 
 public:
-  static oop int_mirror()                   { return check_mirror(_int_mirror); }
-  static oop float_mirror()                 { return check_mirror(_float_mirror); }
-  static oop double_mirror()                { return check_mirror(_double_mirror); }
-  static oop byte_mirror()                  { return check_mirror(_byte_mirror); }
-  static oop bool_mirror()                  { return check_mirror(_bool_mirror); }
-  static oop char_mirror()                  { return check_mirror(_char_mirror); }
-  static oop long_mirror()                  { return check_mirror(_long_mirror); }
-  static oop short_mirror()                 { return check_mirror(_short_mirror); }
-  static oop void_mirror()                  { return check_mirror(_void_mirror); }
-
-  static oop java_mirror(BasicType t) {
-    assert((uint)t < T_VOID+1, "range check");
-    return check_mirror(_mirrors[t]);
-  }
   // Note:  java_lang_Class::primitive_type is the inverse of java_mirror
 
   // Check class loader constraints
@@ -508,7 +491,6 @@
   
   // Initialization
   static void initialize_preloaded_classes(TRAPS);
-  static void initialize_basic_type_mirrors(TRAPS);
     
   // Class loader constraints
   static void check_constraints(int index, unsigned int hash,
@@ -599,18 +581,4 @@
 
   static bool _has_loadClassInternal;
   static bool _has_checkPackageAccess;
-
-  // Primitive classes
-  static oop _int_mirror;
-  static oop _float_mirror;
-  static oop _double_mirror;
-  static oop _byte_mirror;
-  static oop _bool_mirror;
-  static oop _char_mirror;
-  static oop _long_mirror;
-  static oop _short_mirror;
-  static oop _void_mirror;
-
-  // table of same
-  static oop _mirrors[T_VOID+1];
 };
--- a/hotspot/src/share/vm/memory/referenceProcessor.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/memory/referenceProcessor.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)referenceProcessor.cpp	1.56 07/07/04 17:33:16 JVM"
+#pragma ident "@(#)referenceProcessor.cpp	1.57 07/08/17 12:30:18 JVM"
 #endif
 /*
  * Copyright 2001-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -408,7 +408,7 @@
   // of a NULL referent in the discovered Reference object. This typically
   // happens in the case of concurrent collectors that may have done the
   // discovery concurrently or interleaved with mutator execution.
-  inline void load_ptrs(DEBUG_ONLY(bool allow_null_referent = false));
+  inline void load_ptrs(DEBUG_ONLY(bool allow_null_referent));
   
   // Move to the next discovered reference.
   inline void next();
@@ -543,8 +543,8 @@
   DiscoveredListIterator iter(refs_list_addr, keep_alive, is_alive);
   // Decide which softly reachable refs should be kept alive.
   while (iter.has_next()) {
-    iter.load_ptrs();
-    bool referent_is_dead = !iter.is_referent_alive();
+    iter.load_ptrs(DEBUG_ONLY(!discovery_is_atomic() /* allow_null_referent */));
+    bool referent_is_dead = (iter.referent() != NULL) && !iter.is_referent_alive();
     if (referent_is_dead && !policy->should_clear_reference(iter.obj())) {
       if (TraceReferenceGC) {
         gclog_or_tty->print_cr("Dropping reference (" INTPTR_FORMAT ": %s"  ") by policy",  
@@ -580,7 +580,7 @@
   assert(discovery_is_atomic(), "Error");
   DiscoveredListIterator iter(refs_list_addr, keep_alive, is_alive);
   while (iter.has_next()) {
-    iter.load_ptrs();
+    iter.load_ptrs(DEBUG_ONLY(false /* allow_null_referent */));
     DEBUG_ONLY(oop* next_addr = java_lang_ref_Reference::next_addr(iter.obj());)
     assert(*next_addr == NULL, "Should not discover inactive Reference");
     if (iter.is_referent_alive()) {
@@ -653,7 +653,7 @@
   DiscoveredListIterator iter(refs_list_addr, keep_alive, is_alive);
   while (iter.has_next()) {
     iter.update_discovered();
-    iter.load_ptrs();
+    iter.load_ptrs(DEBUG_ONLY(false /* allow_null_referent */));
     if (clear_referent) {
       // NULL out referent pointer
       iter.clear_referent();
@@ -877,7 +877,7 @@
   DiscoveredListIterator iter(refs_list, NULL, NULL);
   size_t length = refs_list.length();
   while (iter.has_next()) {
-    iter.load_ptrs();
+    iter.load_ptrs(DEBUG_ONLY(true /* allow_null_referent */));
     oop* next_addr = java_lang_ref_Reference::next_addr(iter.obj());
     assert((*next_addr)->is_oop_or_null(), "bad next field");
     // If referent has been cleared or Reference is not active,
--- a/hotspot/src/share/vm/memory/universe.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/memory/universe.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)universe.cpp	1.359 07/05/29 09:44:16 JVM"
+#pragma ident "@(#)universe.cpp	1.360 07/08/09 09:11:59 JVM"
 #endif
 /*
  * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -52,8 +52,18 @@
 klassOop Universe::_constantPoolCacheKlassObj         = NULL;
 klassOop Universe::_compiledICHolderKlassObj          = NULL;
 klassOop Universe::_systemObjArrayKlassObj            = NULL;
-oop      Universe::_main_thread_group                 = NULL;
-oop      Universe::_system_thread_group               = NULL;
+oop Universe::_int_mirror                             =  NULL;
+oop Universe::_float_mirror                           =  NULL;
+oop Universe::_double_mirror                          =  NULL;
+oop Universe::_byte_mirror                            =  NULL;
+oop Universe::_bool_mirror                            =  NULL;
+oop Universe::_char_mirror                            =  NULL;
+oop Universe::_long_mirror                            =  NULL;
+oop Universe::_short_mirror                           =  NULL;
+oop Universe::_void_mirror                            =  NULL;
+oop Universe::_mirrors[T_VOID+1]                      =  { NULL /*, NULL...*/ };
+oop Universe::_main_thread_group                      = NULL;
+oop Universe::_system_thread_group                    = NULL;
 typeArrayOop Universe::_the_empty_byte_array          = NULL;
 typeArrayOop Universe::_the_empty_short_array         = NULL;
 typeArrayOop Universe::_the_empty_int_array           = NULL;
@@ -121,11 +131,24 @@
 }
 
 void Universe::oops_do(OopClosure* f, bool do_all) {
-  // Although most of the SystemDictionary oops are klasses,
-  // a few non-klass objects are defined over there.
-  // They must be treated in all ways like the random objects in Universe.
-  // So adopt them into Universe, by the following cross-module call:
-  SystemDictionary::shared_oops_do(f);
+
+  f->do_oop((oop*) &_int_mirror);
+  f->do_oop((oop*) &_float_mirror);
+  f->do_oop((oop*) &_double_mirror);
+  f->do_oop((oop*) &_byte_mirror);
+  f->do_oop((oop*) &_bool_mirror);
+  f->do_oop((oop*) &_char_mirror);
+  f->do_oop((oop*) &_long_mirror);
+  f->do_oop((oop*) &_short_mirror);
+  f->do_oop((oop*) &_void_mirror);
+
+  // It's important to iterate over these guys even if they are null,
+  // since that's how shared heaps are restored.
+  for (int i = T_BOOLEAN; i < T_VOID+1; i++) {
+    f->do_oop((oop*) &_mirrors[i]);
+  }
+  assert(_mirrors[0] == NULL && _mirrors[T_BOOLEAN - 1] == NULL, "checking");
+
   // %%% Consider moving those "shared oops" over here with the others.
   f->do_oop((oop*)&_boolArrayKlassObj);
   f->do_oop((oop*)&_byteArrayKlassObj);
@@ -462,6 +485,45 @@
   }
 };
 
+void Universe::initialize_basic_type_mirrors(TRAPS) {
+  if (UseSharedSpaces) {
+    assert(_int_mirror != NULL, "already loaded");
+    assert(_void_mirror == _mirrors[T_VOID], "consistently loaded");
+  } else {
+
+    assert(_int_mirror==NULL, "basic type mirrors already initialized");
+    _int_mirror     = 
+      java_lang_Class::create_basic_type_mirror("int",    T_INT, CHECK);
+    _float_mirror   = 
+      java_lang_Class::create_basic_type_mirror("float",  T_FLOAT,   CHECK);
+    _double_mirror  = 
+      java_lang_Class::create_basic_type_mirror("double", T_DOUBLE,  CHECK);
+    _byte_mirror    = 
+      java_lang_Class::create_basic_type_mirror("byte",   T_BYTE, CHECK);
+    _bool_mirror    = 
+      java_lang_Class::create_basic_type_mirror("boolean",T_BOOLEAN, CHECK);
+    _char_mirror    = 
+      java_lang_Class::create_basic_type_mirror("char",   T_CHAR, CHECK);
+    _long_mirror    = 
+      java_lang_Class::create_basic_type_mirror("long",   T_LONG, CHECK);
+    _short_mirror   = 
+      java_lang_Class::create_basic_type_mirror("short",  T_SHORT,   CHECK);
+    _void_mirror    = 
+      java_lang_Class::create_basic_type_mirror("void",   T_VOID, CHECK);
+  
+    _mirrors[T_INT]     = _int_mirror;
+    _mirrors[T_FLOAT]   = _float_mirror;
+    _mirrors[T_DOUBLE]  = _double_mirror;
+    _mirrors[T_BYTE]    = _byte_mirror;
+    _mirrors[T_BOOLEAN] = _bool_mirror;
+    _mirrors[T_CHAR]    = _char_mirror;
+    _mirrors[T_LONG]    = _long_mirror;
+    _mirrors[T_SHORT]   = _short_mirror;
+    _mirrors[T_VOID]    = _void_mirror;
+    //_mirrors[T_OBJECT]  = instanceKlass::cast(_object_klass)->java_mirror();
+    //_mirrors[T_ARRAY]   = instanceKlass::cast(_object_klass)->java_mirror();
+  }
+}
 
 void Universe::fixup_mirrors(TRAPS) {
   // Bootstrap problem: all classes gets a mirror (java.lang.Class instance) assigned eagerly,
--- a/hotspot/src/share/vm/memory/universe.hpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/memory/universe.hpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_HDR
-#pragma ident "@(#)universe.hpp	1.182 07/05/17 15:55:24 JVM"
+#pragma ident "@(#)universe.hpp	1.183 07/08/09 09:12:00 JVM"
 #endif
 /*
  * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -137,6 +137,18 @@
   static klassOop _systemObjArrayKlassObj;
 
   // Known objects in the VM
+
+  // Primitive objects
+  static oop _int_mirror;
+  static oop _float_mirror;
+  static oop _double_mirror;
+  static oop _byte_mirror;
+  static oop _bool_mirror;
+  static oop _char_mirror;
+  static oop _long_mirror;
+  static oop _short_mirror;
+  static oop _void_mirror;
+
   static oop          _main_thread_group;             // Reference to the main thread group object
   static oop          _system_thread_group;           // Reference to the system thread group object
 
@@ -196,6 +208,7 @@
   static size_t _heap_used_at_last_gc;
 
   static jint initialize_heap();
+  static void initialize_basic_type_mirrors(TRAPS);
   static void fixup_mirrors(TRAPS);
 
   static void reinitialize_vtable_of(KlassHandle h_k, TRAPS);
@@ -204,6 +217,12 @@
 
   static void genesis(TRAPS);                         // Create the initial world
 
+  // Mirrors for primitive classes (created eagerly)
+  static oop check_mirror(oop m) {
+    assert(m != NULL, "mirror not initialized");
+    return m;
+  }
+
   // Debugging
   static int _verify_count;                           // number of verifies done
   // True during call to verify().  Should only be set/cleared in verify().
@@ -247,6 +266,24 @@
   static klassOop systemObjArrayKlassObj()            { return _systemObjArrayKlassObj;    }
 
   // Known objects in tbe VM
+  static oop int_mirror()                   { return check_mirror(_int_mirror);
+}
+  static oop float_mirror()                 { return check_mirror(_float_mirror); }
+  static oop double_mirror()                { return check_mirror(_double_mirror); }
+  static oop byte_mirror()                  { return check_mirror(_byte_mirror); }
+  static oop bool_mirror()                  { return check_mirror(_bool_mirror); }
+  static oop char_mirror()                  { return check_mirror(_char_mirror); }
+  static oop long_mirror()                  { return check_mirror(_long_mirror); }
+  static oop short_mirror()                 { return check_mirror(_short_mirror); }
+  static oop void_mirror()                  { return check_mirror(_void_mirror); }
+
+  // table of same
+  static oop _mirrors[T_VOID+1];
+
+  static oop java_mirror(BasicType t) {
+    assert((uint)t < T_VOID+1, "range check");
+    return check_mirror(_mirrors[t]);
+  }
   static oop      main_thread_group()                 { return _main_thread_group; }
   static void set_main_thread_group(oop group)        { _main_thread_group = group;}
 
--- a/hotspot/src/share/vm/oops/klassKlass.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/oops/klassKlass.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)klassKlass.cpp	1.69 07/05/29 09:44:21 JVM"
+#pragma ident "@(#)klassKlass.cpp	1.70 07/08/09 09:12:01 JVM"
 #endif
 /*
  * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
@@ -97,8 +97,8 @@
   // The following are in the perm gen and are treated
   // specially in a later phase of a perm gen collection; ...
   assert(oop(k)->is_perm(), "should be in perm");
-  assert(oop(k->adr_subklass())->is_perm(), "should be in perm");
-  assert(oop(k->adr_next_sibling())->is_perm(), "should be in perm");
+  assert(oop(k->subklass())->is_perm_or_null(), "should be in perm");
+  assert(oop(k->next_sibling())->is_perm_or_null(), "should be in perm");
   // ... don't scan them normally, but remember this klassKlass
   // for later (see, for instance, oop_follow_contents above
   // for what MarkSweep does with it.
--- a/hotspot/src/share/vm/oops/oop.hpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/oops/oop.hpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_HDR
-#pragma ident "@(#)oop.hpp	1.116 07/05/29 09:44:21 JVM"
+#pragma ident "@(#)oop.hpp	1.117 07/08/09 09:12:02 JVM"
 #endif
 /*
  * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -254,6 +254,7 @@
 #endif // SERIALGC
 
   bool is_perm() const;
+  bool is_perm_or_null() const;
   bool is_perm_and_alloced() const;
   bool is_shared() const;
   bool is_shared_readonly() const;
--- a/hotspot/src/share/vm/oops/oop.inline2.hpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/oops/oop.inline2.hpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_HDR
-#pragma ident "@(#)oop.inline2.hpp	1.12 07/05/05 17:06:07 JVM"
+#pragma ident "@(#)oop.inline2.hpp	1.13 07/08/09 09:12:02 JVM"
 #endif
 /*
  * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
@@ -33,6 +33,11 @@
   return Universe::heap()->is_in_permanent(this);
 }
 
+// Check for NULL also.
+inline bool oopDesc::is_perm_or_null() const {
+  return this == NULL || is_perm();
+}
+
 // is_perm only verifies that oop is in the reserved space for
 // the perm gen. Things like forte stackwalking need something that
 // assures us that the pointer is in the commited area so we don't
--- a/hotspot/src/share/vm/opto/block.hpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/opto/block.hpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_HDR
-#pragma ident "@(#)block.hpp	1.100 07/08/08 08:18:36 JVM"
+#pragma ident "@(#)block.hpp	1.101 07/08/23 13:46:01 JVM"
 #endif
 /*
  * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -463,7 +463,6 @@
 
   Block* get_target() const { return _target; }
   float get_prob() const { return _prob; }
-  void set_prob(float p) { _prob = p; }
 };
 
 //------------------------------CFGLoop-------------------------------------------
@@ -475,7 +474,7 @@
   CFGLoop *_child;       // first child, use child's sibling to visit all immediately nested loops
   GrowableArray<CFGElement*> _members; // list of members of loop
   GrowableArray<BlockProbPair> _exits; // list of successor blocks and their probabilities
-  float _exit_prob;       // probability some exit is taken if loop is entered
+  float _exit_prob;       // probability any loop exit is taken on a single loop iteration
   void update_succ_freq(Block* b, float freq);
 
  public:
@@ -486,7 +485,7 @@
     _parent(NULL), 
     _sibling(NULL), 
     _child(NULL), 
-    _exit_prob(1.0f) {}
+    _exit_prob(0.0f) {}
   CFGLoop* parent() { return _parent; }
   void push_pred(Block* blk, int i, Block_List& worklist, Block_Array& node_to_blk);
   void add_member(CFGElement *s) { _members.push(s); }
--- a/hotspot/src/share/vm/opto/callGenerator.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/opto/callGenerator.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)callGenerator.cpp	1.48 07/07/25 14:38:51 JVM"
+#pragma ident "@(#)callGenerator.cpp	1.49 07/08/07 15:24:21 JVM"
 #endif
 /*
  * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
@@ -561,7 +561,17 @@
   int nargs = method()->arg_size();
   kit.inc_sp(nargs);
   assert(nargs <= kit.sp() && kit.sp() <= jvms->stk_size(), "sane sp w/ args pushed");
-  kit.uncommon_trap(_reason, _action);
+  if (_reason == Deoptimization::Reason_class_check &&
+      _action == Deoptimization::Action_maybe_recompile) {
+    // Temp fix for 6529811
+    // Don't allow uncommon_trap to override our decision to recompile in the event
+    // of a class cast failure for a monomorphic call as it will never let us convert
+    // the call to either bi-morphic or megamorphic and can lead to unc-trap loops
+    bool keep_exact_action = true;
+    kit.uncommon_trap(_reason, _action, NULL, "monomorphic vcall checkcast", false, keep_exact_action);
+  } else {
+    kit.uncommon_trap(_reason, _action);
+  }
   return kit.transfer_exceptions_into_jvms();
 }
 
--- a/hotspot/src/share/vm/opto/gcm.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/opto/gcm.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)gcm.cpp	1.255 07/08/08 08:18:36 JVM"
+#pragma ident "@(#)gcm.cpp	1.257 07/08/27 14:25:13 JVM"
 #endif
 /*
  * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -1535,7 +1535,6 @@
   assert (_members.length() > 0, "no empty loops");
   Block* hd = head();
   hd->_freq = 1.0f;
-  _exit_prob = 1.0f;
   for (int i = 0; i < _members.length(); i++) {
     CFGElement* s = _members.at(i);
     float freq = s->_freq;
@@ -1572,17 +1571,32 @@
   }
 #endif
 
-  // Guard against zero exit probability
-  if (_exit_prob < PROB_MIN) _exit_prob = PROB_MIN;
+  // Total the exit probabilities for this loop.
+  float exits_sum = 0.0f;
+  for (int i = 0; i < _exits.length(); i++) {
+    exits_sum += _exits.at(i).get_prob();
+  }
 
-  // Normalize exit probabilities
+  // Normalize the exit probabilities. Until now, the
+  // probabilities estimate the possibility of exit per
+  // a single loop iteration; afterward, they estimate
+  // the probability of exit per loop entry.
   for (int i = 0; i < _exits.length(); i++) {
     Block* et = _exits.at(i).get_target();
-    // normalize if not uncommon trap block
-    if( !et->has_uncommon_code() ) {
-      _exits.at(i).set_prob(_exits.at(i).get_prob() / _exit_prob);
-    }
+    float new_prob = _exits.at(i).get_prob() / exits_sum;
+    BlockProbPair bpp(et, new_prob);
+    _exits.at_put(i, bpp);
   }
+
+  // Save the total, but guard against unreasoable probability,
+  // as the value is used to estimate the loop trip count.
+  // An infinite trip count would blur relative block 
+  // frequencies.
+  // Chuck R. says to comment-out/remove this assert for now:
+  // assert(exits_sum <= 1.0, "loop exited more often than entered");
+  if (exits_sum > 1.0f) exits_sum = 1.0;
+  if (exits_sum < PROB_MIN) exits_sum = PROB_MIN;
+  _exit_prob = exits_sum;
 }
 
 //------------------------------succ_prob-------------------------------------
@@ -1653,7 +1667,8 @@
   if (b->_loop == this) {
     if (b == head()) {
       // back branch within the loop
-      _exit_prob -= freq;
+      // Do nothing now, the loop carried frequency will be
+      // adjust later in scale_freq().
     } else {
       // simple branch within the loop
       b->_freq += freq;
--- a/hotspot/src/share/vm/opto/graphKit.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/opto/graphKit.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)graphKit.cpp	1.130 07/07/19 19:08:26 JVM"
+#pragma ident "@(#)graphKit.cpp	1.131 07/08/07 15:24:23 JVM"
 #endif
 /*
  * Copyright 2001-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -1632,7 +1632,8 @@
 // right debug info.  
 void GraphKit::uncommon_trap(int trap_request,
                              ciKlass* klass, const char* comment,
-                             bool must_throw) {
+                             bool must_throw,
+                             bool keep_exact_action) {
   if (failing())  stop();
   if (stopped())  return; // trap reachable?
 
@@ -1659,8 +1660,11 @@
   switch (action) {
   case Deoptimization::Action_maybe_recompile:
   case Deoptimization::Action_reinterpret:
-    if (Deoptimization::trap_request_index(trap_request) < 0
-        && too_many_recompiles(reason)) {
+    // Temporary fix for 6529811 to allow virtual calls to be sure they
+    // get the chance to go from mono->bi->mega
+    if (!keep_exact_action && 
+        Deoptimization::trap_request_index(trap_request) < 0 && 
+        too_many_recompiles(reason)) {
       // This BCI is causing too many recompilations.
       action = Deoptimization::Action_none;
       trap_request = Deoptimization::make_trap_request(reason, action);
--- a/hotspot/src/share/vm/opto/graphKit.hpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/opto/graphKit.hpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_HDR
-#pragma ident "@(#)graphKit.hpp	1.58 07/07/19 19:08:26 JVM"
+#pragma ident "@(#)graphKit.hpp	1.59 07/08/07 15:24:25 JVM"
 #endif
 /*
  * Copyright 2001-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -550,15 +550,15 @@
   // Optional must_throw is the same as with add_safepoint_edges.
   void uncommon_trap(int trap_request,
                      ciKlass* klass = NULL, const char* reason_string = NULL,
-                     bool must_throw = false);
+                     bool must_throw = false, bool keep_exact_action = false);
 
   // Shorthand, to avoid saying "Deoptimization::" so many times.
   void uncommon_trap(Deoptimization::DeoptReason reason,
                      Deoptimization::DeoptAction action,
                      ciKlass* klass = NULL, const char* reason_string = NULL,
-                     bool must_throw = false) {
+                     bool must_throw = false, bool keep_exact_action = false) {
     uncommon_trap(Deoptimization::make_trap_request(reason, action),
-                  klass, reason_string, must_throw);
+                  klass, reason_string, must_throw, keep_exact_action);
   }
 
   // Report if there were too many traps at the current method and bci.
--- a/hotspot/src/share/vm/opto/parse.hpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/opto/parse.hpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_HDR
-#pragma ident "@(#)parse.hpp	1.271 07/07/19 19:08:29 JVM"
+#pragma ident "@(#)parse.hpp	1.272 07/08/14 16:13:23 JVM"
 #endif
 /*
  * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
@@ -506,8 +506,8 @@
   void set_md_flag_at(ciMethodData* md, ciProfileData* data, int flag_constant); 
 
   void profile_method_entry();
-  void profile_taken_branch(int target_bci);
-  void profile_not_taken_branch();
+  void profile_taken_branch(int target_bci, bool force_update = false);
+  void profile_not_taken_branch(bool force_update = false);
   void profile_call(Node* receiver);
   void profile_generic_call();
   void profile_receiver_type(Node* receiver);
--- a/hotspot/src/share/vm/opto/parse2.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/opto/parse2.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)parse2.cpp	1.360 07/06/18 14:25:27 JVM"
+#pragma ident "@(#)parse2.cpp	1.361 07/08/14 16:13:23 JVM"
 #endif
 /*
  * Copyright 1998-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -897,6 +897,11 @@
       tty->print_cr("Never-taken backedge stops compilation at bci %d",bci());
 #endif
     repush_if_args(); // to gather stats on loop
+    // We need to mark this branch as taken so that if we recompile we will
+    // see that it is possible. In the tiered system the interpreter doesn't
+    // do profiling and by the time we get to the lower tier from the interpreter
+    // the path may be cold again. Make sure it doesn't look untaken
+    profile_taken_branch(target_bci, !ProfileInterpreter);
     uncommon_trap(Deoptimization::Reason_unreached,
                   Deoptimization::Action_reinterpret,
                   NULL, "cold");
@@ -970,6 +975,11 @@
       tty->print_cr("Never-taken backedge stops compilation at bci %d",bci());
 #endif
     repush_if_args(); // to gather stats on loop
+    // We need to mark this branch as taken so that if we recompile we will
+    // see that it is possible. In the tiered system the interpreter doesn't
+    // do profiling and by the time we get to the lower tier from the interpreter
+    // the path may be cold again. Make sure it doesn't look untaken
+    profile_taken_branch(target_bci, !ProfileInterpreter);
     uncommon_trap(Deoptimization::Reason_unreached,
                   Deoptimization::Action_reinterpret,
                   NULL, "cold");
@@ -1067,6 +1077,15 @@
     // We do not simply inspect for a null constant, since a node may
     // optimize to 'null' later on.
     repush_if_args();
+    // We need to mark this branch as taken so that if we recompile we will
+    // see that it is possible. In the tiered system the interpreter doesn't
+    // do profiling and by the time we get to the lower tier from the interpreter
+    // the path may be cold again. Make sure it doesn't look untaken
+    if (is_fallthrough) {
+      profile_not_taken_branch(!ProfileInterpreter);
+    } else {
+      profile_taken_branch(iter().get_dest(), !ProfileInterpreter);
+    }
     uncommon_trap(Deoptimization::Reason_unreached,
                   Deoptimization::Action_reinterpret,
                   NULL,
--- a/hotspot/src/share/vm/opto/parseHelper.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/opto/parseHelper.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)parseHelper.cpp	1.196 07/05/23 17:37:28 JVM"
+#pragma ident "@(#)parseHelper.cpp	1.197 07/08/14 16:13:24 JVM"
 #endif
 /*
  * Copyright 1998-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -347,7 +347,7 @@
 }
 
 //----------------------------profile_taken_branch-----------------------------
-void Parse::profile_taken_branch(int target_bci) {
+void Parse::profile_taken_branch(int target_bci, bool force_update) {
   // This is a potential osr_site if we have a backedge.
   int cur_bci = bci();
   bool osr_site = 
@@ -359,14 +359,21 @@
   // To do: factor out the the limit calculations below. These duplicate
   // the similar limit calculations in the interpreter.
 
-  if (method_data_update()) {
+  if (method_data_update() || force_update) {
     ciMethodData* md = method()->method_data();
     assert(md != NULL, "expected valid ciMethodData");
     ciProfileData* data = md->bci_to_data(cur_bci);
     assert(data->is_JumpData(), "need JumpData for taken branch");
     increment_md_counter_at(md, data, JumpData::taken_offset());
+  }
     
+  // In the new tiered system this is all we need to do. In the old
+  // (c2 based) tiered sytem we must do the code below.
+#ifndef TIERED
+  if (method_data_update()) {
+    ciMethodData* md = method()->method_data();
     if (osr_site) {
+      ciProfileData* data = md->bci_to_data(cur_bci);
       int limit = (CompileThreshold 
                    * (OnStackReplacePercentage - InterpreterProfilePercentage)) / 100;
       test_for_osr_md_counter_at(md, data, JumpData::taken_offset(), limit);
@@ -379,20 +386,23 @@
       increment_and_test_invocation_counter(limit);
     }
   }
+#endif // TIERED
 
   // Restore the original bytecode.
   set_bci(cur_bci);
 }
 
 //--------------------------profile_not_taken_branch---------------------------
-void Parse::profile_not_taken_branch() {
-  if (!method_data_update()) return;
+void Parse::profile_not_taken_branch(bool force_update) {
 
-  ciMethodData* md = method()->method_data();
-  assert(md != NULL, "expected valid ciMethodData");
-  ciProfileData* data = md->bci_to_data(bci());
-  assert(data->is_BranchData(), "need BranchData for not taken branch");
-  increment_md_counter_at(md, data, BranchData::not_taken_offset());
+  if (method_data_update() || force_update) {
+    ciMethodData* md = method()->method_data();
+    assert(md != NULL, "expected valid ciMethodData");
+    ciProfileData* data = md->bci_to_data(bci());
+    assert(data->is_BranchData(), "need BranchData for not taken branch");
+    increment_md_counter_at(md, data, BranchData::not_taken_offset());
+  }
+
 }
 
 //---------------------------------profile_call--------------------------------
--- a/hotspot/src/share/vm/prims/jvm.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/prims/jvm.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)jvm.cpp	1.568 07/07/12 16:04:39 JVM"
+#pragma ident "@(#)jvm.cpp	1.570 07/08/17 11:48:55 JVM"
 #endif
 /*
  * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -612,7 +612,7 @@
   oop mirror = NULL;
   BasicType t = name2type(utf);
   if (t != T_ILLEGAL && t != T_OBJECT && t != T_ARRAY) {
-    mirror = SystemDictionary::java_mirror(t);
+    mirror = Universe::java_mirror(t);
   }
   if (mirror == NULL) {
     THROW_MSG_0(vmSymbols::java_lang_ClassNotFoundException(), (char*) utf);
@@ -3980,14 +3980,14 @@
     // Do class based checks
     if (java_lang_Class::is_primitive(mirror())) {
       const char* msg = "";
-      if      (mirror == SystemDictionary::bool_mirror())   msg = "java/lang/Boolean";
-      else if (mirror == SystemDictionary::char_mirror())   msg = "java/lang/Character";
-      else if (mirror == SystemDictionary::float_mirror())  msg = "java/lang/Float";
-      else if (mirror == SystemDictionary::double_mirror()) msg = "java/lang/Double";
-      else if (mirror == SystemDictionary::byte_mirror())   msg = "java/lang/Byte";
-      else if (mirror == SystemDictionary::short_mirror())  msg = "java/lang/Short";
-      else if (mirror == SystemDictionary::int_mirror())    msg = "java/lang/Integer";
-      else if (mirror == SystemDictionary::long_mirror())   msg = "java/lang/Long";
+      if      (mirror == Universe::bool_mirror())   msg = "java/lang/Boolean";
+      else if (mirror == Universe::char_mirror())   msg = "java/lang/Character";
+      else if (mirror == Universe::float_mirror())  msg = "java/lang/Float";
+      else if (mirror == Universe::double_mirror()) msg = "java/lang/Double";
+      else if (mirror == Universe::byte_mirror())   msg = "java/lang/Byte";
+      else if (mirror == Universe::short_mirror())  msg = "java/lang/Short";
+      else if (mirror == Universe::int_mirror())    msg = "java/lang/Integer";
+      else if (mirror == Universe::long_mirror())   msg = "java/lang/Long";
       THROW_MSG_0(vmSymbols::java_lang_NullPointerException(), msg);
     }
 
@@ -4485,17 +4485,17 @@
   memset(info, 0, sizeof(info_size));
                                                                                 
   info->jvm_version = Abstract_VM_Version::jvm_version();
-  info->update_version = (unsigned int) Abstract_VM_Version::vm_update_version();
-  info->special_update_version = Abstract_VM_Version::special_update_version();
+  info->update_version = 0;          /* 0 in HotSpot Express VM */
+  info->special_update_version = 0;  /* 0 in HotSpot Express VM */
 
   // when we add a new capability in the jvm_version_info struct, we should also
   // consider to expose this new capability in the sun.rt.jvmCapabilities jvmstat
   // counter defined in runtimeService.cpp.
   info->is_attachable = AttachListener::is_attach_supported();
 #ifdef KERNEL
-  info->is_kernel_jvm = true;
+  info->is_kernel_jvm = 1; // true;
 #else  // KERNEL
-  info->is_kernel_jvm = false;
+  info->is_kernel_jvm = 0; // false;
 #endif // KERNEL
 }
 JVM_END
--- a/hotspot/src/share/vm/prims/jvm.h	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/prims/jvm.h	Fri Aug 31 00:44:13 2007 +0000
@@ -1,8 +1,8 @@
 #ifdef USE_PRAGMA_IDENT_HDR
-#pragma ident "@(#)jvm.h	1.87 07/07/11 11:24:11 JVM"
+#pragma ident "@(#)jvm.h	1.88 07/08/15 20:22:47 JVM"
 #endif
 /*
- * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1482,11 +1482,12 @@
  * ==========================================================================
  */
 typedef struct {
-    /* Naming convention of RE build version string: n.n.n[_uu[c]][-<identifier>]-bxx */
-    unsigned int jvm_version;   /* Consists of major, minor, micro (n.n.n) */
-                                /* and build number (xx) */
-    unsigned int update_version : 8;         /* Update release version (uu) */
-    unsigned int special_update_version : 8; /* Special update release version (c) */
+    /* HotSpot Express VM version string: 
+     * <major>.<minor>-bxx[-<identifier>][-<debug_flavor>]
+     */
+    unsigned int jvm_version; /* Consists of major.minor.0.build */
+    unsigned int update_version : 8;         /* 0 in HotSpot Express VM */
+    unsigned int special_update_version : 8; /* 0 in HotSpot Express VM */
     unsigned int reserved1 : 16; 
     unsigned int reserved2; 
 
@@ -1506,10 +1507,10 @@
 
 #define JVM_VERSION_MAJOR(version) ((version & 0xFF000000) >> 24)
 #define JVM_VERSION_MINOR(version) ((version & 0x00FF0000) >> 16)
-#define JVM_VERSION_MICRO(version) ((version & 0x0000FF00) >> 8)
-
-/* Build number is available only for RE builds.
- * It will be zero for internal builds.
+// Micro version is 0 in HotSpot Express VM (set in jvm.cpp).
+#define JVM_VERSION_MICRO(version) ((version & 0x0000FF00) >> 8) 
+/* Build number is available in all HotSpot Express VM builds.
+ * It is defined in make/hotspot_version file.
  */
 #define JVM_VERSION_BUILD(version) ((version & 0x000000FF))
 
--- a/hotspot/src/share/vm/prims/jvmtiEnv.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/prims/jvmtiEnv.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)jvmtiEnv.cpp	1.164 07/07/24 10:56:52 JVM"
+#pragma ident "@(#)jvmtiEnv.cpp	1.166 07/08/15 15:11:03 JVM"
 #endif
 /*
  * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
--- a/hotspot/src/share/vm/prims/jvmtiEnvBase.hpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/prims/jvmtiEnvBase.hpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_HDR
-#pragma ident "@(#)jvmtiEnvBase.hpp	1.68 07/05/23 10:53:43 JVM"
+#pragma ident "@(#)jvmtiEnvBase.hpp	1.69 07/08/11 03:57:00 JVM"
 #endif
 /*
  * Copyright 2003-2006 Sun Microsystems, Inc.  All Rights Reserved.
@@ -56,6 +56,11 @@
 
  public:  
 
+  enum {
+    JDK15_JVMTI_VERSION = JVMTI_VERSION_1_0 +  33,  /* version: 1.0.33  */
+    JDK16_JVMTI_VERSION = JVMTI_VERSION_1_1 + 102   /* version: 1.1.102 */
+  };
+
   static jvmtiPhase  get_phase()                    { return _phase; }
   static void  set_phase(jvmtiPhase phase)          { _phase = phase; }
   static bool is_vm_live()                          { return _phase == JVMTI_PHASE_LIVE; } 
--- a/hotspot/src/share/vm/runtime/globals.hpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/runtime/globals.hpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_HDR
-#pragma ident "@(#)globals.hpp	1.969 07/07/13 09:03:23 JVM"
+#pragma ident "@(#)globals.hpp	1.970 07/07/30 11:07:12 JVM"
 #endif
 /*
  * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -500,7 +500,7 @@
   develop(bool, ShowSafepointMsgs, false,                                   \
           "Show msg. about safepoint synch.")                               \
                                                                             \
-  develop(bool, SafepointTimeout, false,                                    \
+  product(bool, SafepointTimeout, false,                                    \
           "Time out and warn or fail after SafepointTimeoutDelay "          \
           "milliseconds if failed to reach safepoint")                      \
                                                                             \
@@ -2427,7 +2427,7 @@
           "Guarantee a safepoint (at least) every so many milliseconds "    \
           "(0 means none)")                                                 \
                                                                             \
-  develop(intx, SafepointTimeoutDelay, 10000,                               \
+  product(intx, SafepointTimeoutDelay, 10000,                               \
           "Delay in milliseconds for option SafepointTimeout")              \
                                                                             \
   product(intx, NmethodSweepFraction, 4,                                    \
--- a/hotspot/src/share/vm/runtime/java.hpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/runtime/java.hpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_HDR
-#pragma ident "@(#)java.hpp	1.36 07/05/05 17:06:49 JVM"
+#pragma ident "@(#)java.hpp	1.38 07/08/21 18:54:50 JVM"
 #endif
 /*
  * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
@@ -72,6 +72,7 @@
   static bool is_jdk14x_version()           { assert(is_jdk_version_initialized(), "must have been initialized"); return _jdk_version == 4; }
   static bool is_jdk15x_version()           { assert(is_jdk_version_initialized(), "must have been initialized"); return _jdk_version == 5; }
   static bool is_jdk16x_version()           { assert(is_jdk_version_initialized(), "must have been initialized"); return _jdk_version == 6; }
+  static bool is_jdk17x_version()           { assert(is_jdk_version_initialized(), "must have been initialized"); return _jdk_version == 7; }
 
   static bool supports_thread_park_blocker() { return _version_info.thread_park_blocker; }
 
@@ -87,9 +88,16 @@
   }
   static bool is_gte_jdk16x_version() {
     // Keep the semantics of this that the version number is >= 1.6
+    assert(is_jdk_version_initialized(), "Not initialized");
     return _jdk_version >= 6;
   }
 
+  static bool is_gte_jdk17x_version() {
+    // Keep the semantics of this that the version number is >= 1.7
+    assert(is_jdk_version_initialized(), "Not initialized");
+    return _jdk_version >= 7;
+  }
+
   static bool is_jdk_version_initialized() {
     return _jdk_version > 0;
   }
@@ -116,5 +124,3 @@
     _version_info.jdk_version = (1 << 24) | (5 << 16);
   }
 };
-
-
--- a/hotspot/src/share/vm/runtime/reflection.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/runtime/reflection.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)reflection.cpp	1.178 07/05/23 10:54:08 JVM"
+#pragma ident "@(#)reflection.cpp	1.179 07/08/09 09:12:05 JVM"
 #endif
 /*
  * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -298,7 +298,7 @@
 
 oop Reflection:: basic_type_arrayklass_to_mirror(klassOop basic_type_arrayklass, TRAPS) {
   BasicType type = typeArrayKlass::cast(basic_type_arrayklass)->element_type();
-  return SystemDictionary::java_mirror(type);
+  return Universe::java_mirror(type);
 }
 
 
@@ -625,7 +625,7 @@
   // Basic types
   BasicType type = vmSymbols::signature_type(signature());
   if (type != T_OBJECT) {
-    return Handle(THREAD, SystemDictionary::java_mirror(type));
+    return Handle(THREAD, Universe::java_mirror(type));
   }
 
   oop loader = instanceKlass::cast(k())->class_loader();
--- a/hotspot/src/share/vm/runtime/safepoint.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/runtime/safepoint.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)safepoint.cpp	1.305 07/05/29 09:44:27 JVM"
+#pragma ident "@(#)safepoint.cpp	1.306 07/07/30 11:03:00 JVM"
 #endif
 /*
  * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -37,6 +37,7 @@
 volatile int SafepointSynchronize::_safepoint_counter = 0;
 static volatile int PageArmed = 0 ;        // safepoint polling page is RO|RW vs PROT_NONE
 static volatile int TryingToBlock = 0 ;    // proximate value -- for advisory use only
+static bool timeout_error_printed = false; 
 
 // Roll all threads forward to a safepoint and suspend them all
 void SafepointSynchronize::begin() {   
@@ -81,8 +82,7 @@
   // Save the starting time, so that it can be compared to see if this has taken
   // too long to complete.
   jlong safepoint_limit_time;
-  static bool timeout_error_printed = false;
-  
+  timeout_error_printed = false;
   
   // Begin the process of bringing the system to a safepoint.
   // Java threads can be in several different states and are
@@ -148,7 +148,7 @@
 #endif // ASSERT
 
   if (SafepointTimeout)
-    safepoint_limit_time = os::javaTimeMillis() + (jlong)SafepointTimeoutDelay;
+    safepoint_limit_time = os::javaTimeNanos() + (jlong)SafepointTimeoutDelay * MICROUNITS;
 
   // Iterate through all threads until it have been determined how to stop them all at a safepoint  
   unsigned int iterations = 0;
@@ -178,30 +178,8 @@
 
     if (still_running > 0) {
       // Check for if it takes to long
-      if (SafepointTimeout && safepoint_limit_time < os::javaTimeMillis()) {
-        if (!timeout_error_printed) {
-          timeout_error_printed = true;
-          // Print out the thread IDs which didn't reach the safepoint
-          // for debugging purposes (useful when there are lots of
-          // threads in the debugger)
-          tty->print_cr("# SafepointSynchronize::begin: Fatal error:");
-          tty->print_cr("# SafepointSynchronize::begin: Timed out while attempting to reach a safepoint.");
-          tty->print_cr("# SafepointSynchronize::begin: Threads which did not reach the safepoint:");
-          for(JavaThread *cur = Threads::first(); cur; cur = cur->next()) {
-            ThreadSafepointState *cur_state = cur->safepoint_state();
-            if (cur_state->is_running()) {         
-              tty->print("# ");
-              cur_state->print();
-              cur->osthread()->print();
-              tty->print_cr("");
-            }
-          }
-          tty->print_cr("# SafepointSynchronize::begin: (End of list)");
-        }
-
-        if (DieOnSafepointTimeout) {
-          fatal("Safepoint Timeout");
-        }
+      if (SafepointTimeout && safepoint_limit_time < os::javaTimeNanos()) {
+        print_safepoint_timeout(_spinning_timeout);
       }
 
       // Spin to avoid context switching.  
@@ -294,50 +272,28 @@
       Safepoint_lock->wait(true);  // true, means with no safepoint checks
     } else {
       // Compute remaining time
-      jlong remaining_time = safepoint_limit_time - os::javaTimeMillis();
+      jlong remaining_time = safepoint_limit_time - os::javaTimeNanos();
 
       // If there is no remaining time, then there is an error
-      if (remaining_time < 0 || Safepoint_lock->wait(true, remaining_time)) {
-        if (!timeout_error_printed) {
-          timeout_error_printed = true;
-          // Print out the thread IDs which didn't reach the safepoint
-          // for debugging purposes (useful when there are lots of
-          // threads in the debugger)
-          tty->print_cr("# SafepointSynchronize::begin: Fatal error:");
-          tty->print_cr("# SafepointSynchronize::begin: Timed out while waiting for all threads to stop.");
-          tty->print_cr("# SafepointSynchronize::begin: Threads which did not reach the safepoint:");
-          for(JavaThread *cur = Threads::first(); cur; cur = cur->next()) {
-            ThreadSafepointState *cur_state = cur->safepoint_state();
-            if (cur_state->type() == ThreadSafepointState::_call_back) {
-              if (!cur_state->has_called_back()) {
-                tty->print("# ");
-                cur_state->print();
-                cur->osthread()->print();
-                tty->print_cr("");
-              }
-            }
-          }
-          tty->print_cr("# SafepointSynchronize::begin: (End of list)");
-        }
-
-        if (DieOnSafepointTimeout) {
-          fatal("Safepoint Timeout");
-        }
+      if (remaining_time < 0 || Safepoint_lock->wait(true, remaining_time / MICROUNITS)) {
+        print_safepoint_timeout(_blocking_timeout);
       }
     }
-  }               
+  }             
   assert(_waiting_to_block == 0, "sanity check");
 
 #ifndef PRODUCT
   if (SafepointTimeout) {
-    jlong current_time = os::javaTimeMillis();
+    jlong current_time = os::javaTimeNanos();
     if (safepoint_limit_time < current_time) {
-      tty->print_cr("# SafepointSynchronize: Finished after %.4f seconds",
-        0.001 * ((double)current_time - (double)safepoint_limit_time + (double)SafepointTimeoutDelay) );
+      tty->print_cr("# SafepointSynchronize: Finished after " 
+                    INT64_FORMAT_W(6) " ms", 
+                    ((current_time - safepoint_limit_time) / MICROUNITS + 
+                     SafepointTimeoutDelay)); 
     }
   }
 #endif
-    
+
   assert((_safepoint_counter & 0x1) == 0, "must be even");
   assert(Threads_lock->owned_by_self(), "must hold Threads_lock");
   _safepoint_counter ++;
@@ -739,6 +695,51 @@
   // print_me(sp,stack_copy,was_oops);
 }
 
+
+void SafepointSynchronize::print_safepoint_timeout(SafepointTimeoutReason reason) {
+  if (!timeout_error_printed) {
+    timeout_error_printed = true;
+    // Print out the thread infor which didn't reach the safepoint for debugging
+    // purposes (useful when there are lots of threads in the debugger).
+    tty->print_cr("");
+    tty->print_cr("# SafepointSynchronize::begin: Timeout detected:");
+    if (reason ==  _spinning_timeout) {
+      tty->print_cr("# SafepointSynchronize::begin: Timed out while spinning to reach a safepoint.");
+    } else if (reason == _blocking_timeout) {
+      tty->print_cr("# SafepointSynchronize::begin: Timed out while waiting for threads to stop.");
+    }
+    
+    tty->print_cr("# SafepointSynchronize::begin: Threads which did not reach the safepoint:");
+    ThreadSafepointState *cur_state;
+    ResourceMark rm;
+    for(JavaThread *cur_thread = Threads::first(); cur_thread; 
+        cur_thread = cur_thread->next()) {
+      cur_state = cur_thread->safepoint_state();
+      
+      if (cur_thread->thread_state() != _thread_blocked &&
+          ((reason == _spinning_timeout && cur_state->is_running()) ||
+           (reason == _blocking_timeout && !cur_state->has_called_back()))) {
+        tty->print("# ");
+        cur_thread->print();
+        tty->print_cr("");
+      }
+    }
+    tty->print_cr("# SafepointSynchronize::begin: (End of list)");
+  }
+
+  // To debug the long safepoint, specify both DieOnSafepointTimeout & 
+  // ShowMessageBoxOnError.
+  if (DieOnSafepointTimeout) {
+    char msg[1024];
+    VM_Operation *op = VMThread::vm_operation();
+    sprintf(msg, "Safepoint sync time longer than %d ms detected when executing %s.",
+            SafepointTimeoutDelay,
+            op != NULL ? op->name() : "no vm operation");
+    fatal(msg);
+  }
+}
+  
+
 // -------------------------------------------------------------------------------------------------------
 // Implementation of ThreadSafepointState 
 
--- a/hotspot/src/share/vm/runtime/safepoint.hpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/runtime/safepoint.hpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_HDR
-#pragma ident "@(#)safepoint.hpp	1.103 07/05/26 16:02:40 JVM"
+#pragma ident "@(#)safepoint.hpp	1.104 07/07/30 11:07:13 JVM"
 #endif
 /*
  * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -62,6 +62,11 @@
       _other_thread = 2
   };
 
+  enum SafepointTimeoutReason {
+    _spinning_timeout = 0,
+    _blocking_timeout = 1
+  };
+
   typedef struct { 
     int    _vmop_type;                         // type of VM operation triggers the safepoint
     int    _nof_total_threads;                 // total number of Java threads
@@ -107,6 +112,10 @@
   inline static void inc_page_trap_count() {
     Atomic::inc(&_safepoint_stats[_cur_stat_index]._nof_threads_hit_page_trap);
   }
+
+  // For debug long safepoint 
+  static void print_safepoint_timeout(SafepointTimeoutReason timeout_reason);
+
 public:
 
   // Main entry points
--- a/hotspot/src/share/vm/runtime/vmStructs.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/runtime/vmStructs.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)vmStructs.cpp	1.185 07/05/29 09:44:29 JVM"
+#pragma ident "@(#)vmStructs.cpp	1.187 07/08/17 11:46:25 JVM"
 #endif
 /*
  * Copyright 2000-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -244,6 +244,7 @@
      static_field(Universe,                    _constantPoolCacheKlassObj,                    klassOop)                              \
      static_field(Universe,                    _compiledICHolderKlassObj,                     klassOop)                              \
      static_field(Universe,                    _systemObjArrayKlassObj,                       klassOop)                              \
+     static_field(Universe,                    _mirrors[0],                                   oop)                                  \
      static_field(Universe,                    _main_thread_group,                            oop)                                   \
      static_field(Universe,                    _system_thread_group,                          oop)                                   \
      static_field(Universe,                    _the_empty_byte_array,                         typeArrayOop)                          \
@@ -488,7 +489,6 @@
       static_field(SystemDictionary,            _vector_klass,                                 klassOop)                             \
       static_field(SystemDictionary,            _hashtable_klass,                              klassOop)                             \
       static_field(SystemDictionary,            _box_klasses[0],                               klassOop)                             \
-      static_field(SystemDictionary,            _mirrors[0],                                   oop)                                  \
       static_field(SystemDictionary,            _java_system_loader,                           oop)                                  \
                                                                                                                                      \
   /*******************/                                                                                                              \
@@ -760,10 +760,7 @@
   static_field(Abstract_VM_Version,            _s_internal_vm_info_string,                    const char*)                           \
   static_field(Abstract_VM_Version,            _vm_major_version,                             int)                                   \
   static_field(Abstract_VM_Version,            _vm_minor_version,                             int)                                   \
-  static_field(Abstract_VM_Version,            _vm_micro_version,                             int)                                   \
   static_field(Abstract_VM_Version,            _vm_build_number,                              int)                                   \
-  static_field(Abstract_VM_Version,            _vm_update_version,                            int)                                   \
-  static_field(Abstract_VM_Version,            _special_update_version,                       char)                                  \
                                                                                                                                      \
   static_field(JDK_Version,                    _pre_jdk16_version,                            bool)                                  \
   static_field(JDK_Version,                    _jdk_version,                                  int)                                   \
--- a/hotspot/src/share/vm/runtime/vm_version.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/runtime/vm_version.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)vm_version.cpp	1.58 07/07/16 11:55:48 JVM"
+#pragma ident "@(#)vm_version.cpp	1.59 07/08/17 11:47:16 JVM"
 #endif
 /*
  * Copyright 1998-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -36,99 +36,50 @@
 #ifndef HOTSPOT_RELEASE_VERSION
   #error HOTSPOT_RELEASE_VERSION must be defined
 #endif
-#ifndef HOTSPOT_BUILD_VERSION
-  #error HOTSPOT_BUILD_VERSION must be defined
+#ifndef JRE_RELEASE_VERSION
+  #error JRE_RELEASE_VERSION must be defined
 #endif
 #ifndef HOTSPOT_BUILD_TARGET
   #error HOTSPOT_BUILD_TARGET must be defined
 #endif
 
 #ifdef PRODUCT
-  #define VM_RELEASE HOTSPOT_BUILD_VERSION
+  #define VM_RELEASE HOTSPOT_RELEASE_VERSION
 #else
-  #define VM_RELEASE HOTSPOT_BUILD_VERSION "-" HOTSPOT_BUILD_TARGET
+  #define VM_RELEASE HOTSPOT_RELEASE_VERSION "-" HOTSPOT_BUILD_TARGET
 #endif
 
-// HOTSPOT_BUILD_VERSION must follow the release version naming convention
-// n.n.n[_uu][-<identifier>]-bnn
+// HOTSPOT_RELEASE_VERSION must follow the release version naming convention 
+// <major_ver>.<minor_ver>-b<nn>[-<identifier>][-<debug_target>]
 int Abstract_VM_Version::_vm_major_version = 0;
 int Abstract_VM_Version::_vm_minor_version = 0;
-int Abstract_VM_Version::_vm_micro_version = 0;
 int Abstract_VM_Version::_vm_build_number = 0;
-int Abstract_VM_Version::_vm_update_version = 0;
-char Abstract_VM_Version::_special_update_version = '\0';
 bool Abstract_VM_Version::_initialized = false;
 
 void Abstract_VM_Version::initialize() {
   if (_initialized) {
     return;
   }
-
-  const char* vm_version_string = HOTSPOT_BUILD_VERSION;
-  const char* release_version_string = HOTSPOT_RELEASE_VERSION;
-  
-  const char* vm_version;
-  if (strlen(vm_version_string) >= 5 &&
-      isdigit(vm_version_string[0]) && 
-      isdigit(vm_version_string[2]) &&
-      isdigit(vm_version_string[4]) &&
-      vm_version_string[1] == '.' && 
-      vm_version_string[3] == '.') { 
-    vm_version = vm_version_string;
-  } else {
-    // Internal builds e.g. PRT builds - use the current release version string
-    vm_version = release_version_string;
-  }
-
-  _vm_major_version = vm_version[0] - '0'; 
-  _vm_minor_version = vm_version[2] - '0'; 
-  _vm_micro_version = vm_version[4] - '0'; 
+  char* vm_version = os::strdup(HOTSPOT_RELEASE_VERSION);
 
-  const char* p = &vm_version[5];
-  while (*p != '\0') { 
-    char c = *p;
-    switch (c) {
-      case '_': {
-        // parse _uu
-        if (strlen(p) >= 3 && isdigit(p[1]) && isdigit(p[2])) {
-          char u[3];
-          u[0] = p[1];
-          u[1] = p[2];
-          u[2] = '\0';
-          _vm_update_version = atoi(u);
-          p = p + 3;
-          c = *p;
-          if (c >= 'a' && c <= 'z') {
-            _special_update_version = c;
-            p++;
-          }
-        }
-        break;
-      }
-      case '-': {
-        // parse [-<identifier>]-bnn where bnn is the last on the version string
-        if (strlen(p) == 4 && p[1] == 'b' && isdigit(p[2]) && isdigit(p[3])) {
-          char b[3];
-          b[0] = p[2];
-          b[1] = p[3];
-          b[2] = '\0';
-          _vm_build_number = atoi(b);
-          p = p + 4;
-        } else {
-          // skip -<identifier>
-          c = *(++p);
-          while (c != '-' && c != '\0') {
-            c = *(++p);
-          }
-        } 
-        break;
-      }
-      default: {
-        // any other character - done parsing
-        p = ""; 
-      }
-    }
-  }
+  // Expecting the next vm_version format: 
+  // <major_ver>.<minor_ver>-b<nn>[-<identifier>]
+  char* vm_major_ver = vm_version;
+  assert(isdigit(vm_major_ver[0]),"wrong vm major version number");
+  char* vm_minor_ver = strchr(vm_major_ver, '.');
+  assert(vm_minor_ver != NULL && isdigit(vm_minor_ver[1]),"wrong vm minor version number");
+  vm_minor_ver[0] = '\0'; // terminate vm_major_ver
+  vm_minor_ver += 1;
+  char* vm_build_num = strchr(vm_minor_ver, '-');
+  assert(vm_build_num != NULL && vm_build_num[1] == 'b' && isdigit(vm_build_num[2]),"wrong vm build number");
+  vm_build_num[0] = '\0'; // terminate vm_minor_ver
+  vm_build_num += 2;
+
+  _vm_major_version = atoi(vm_major_ver); 
+  _vm_minor_version = atoi(vm_minor_ver); 
+  _vm_build_number  = atoi(vm_build_num);
+ 
+  os::free(vm_version);
   _initialized = true;
 }
 
@@ -212,18 +163,24 @@
         #define HOTSPOT_BUILD_COMPILER "MS VC++ 5.0"
       #elif _MSC_VER == 1200
         #define HOTSPOT_BUILD_COMPILER "MS VC++ 6.0"
+      #elif _MSC_VER == 1310
+        #define HOTSPOT_BUILD_COMPILER "MS VC++ 7.1"
+      #elif _MSC_VER == 1400
+        #define HOTSPOT_BUILD_COMPILER "MS VC++ 8.0"
       #else
         #define HOTSPOT_BUILD_COMPILER "unknown MS VC++:" XSTR(_MSC_VER)
       #endif
     #elif defined(__SUNPRO_CC)
-      #if   __SUNPRO_CC == 0x520
-        #define HOTSPOT_BUILD_COMPILER "Workshop 5.2 compat=" \
-          XSTR(__SUNPRO_CC_COMPAT)
+      #if   __SUNPRO_CC == 0x420
+        #define HOTSPOT_BUILD_COMPILER "Workshop 4.2"
       #elif __SUNPRO_CC == 0x500
-        #define HOTSPOT_BUILD_COMPILER "Workshop 5.0 compat=" \
-          XSTR(__SUNPRO_CC_COMPAT)
-      #elif __SUNPRO_CC == 0x420
-        #define HOTSPOT_BUILD_COMPILER "Workshop 4.2"
+        #define HOTSPOT_BUILD_COMPILER "Workshop 5.0 compat=" XSTR(__SUNPRO_CC_COMPAT)
+      #elif __SUNPRO_CC == 0x520
+        #define HOTSPOT_BUILD_COMPILER "Workshop 5.2 compat=" XSTR(__SUNPRO_CC_COMPAT)
+      #elif __SUNPRO_CC == 0x580
+        #define HOTSPOT_BUILD_COMPILER "Workshop 5.8"
+      #elif __SUNPRO_CC == 0x590
+        #define HOTSPOT_BUILD_COMPILER "Workshop 5.9"
       #else
         #define HOTSPOT_BUILD_COMPILER "unknown Workshop:" XSTR(__SUNPRO_CC)
       #endif
@@ -236,14 +193,13 @@
 
 
   return VMNAME " (" VM_RELEASE ") for " OS "-" CPU
-         ", built on " __DATE__ " " __TIME__ 
+         " JRE (" JRE_RELEASE_VERSION "), built on " __DATE__ " " __TIME__ 
          " by " XSTR(HOTSPOT_BUILD_USER) " with " HOTSPOT_BUILD_COMPILER;
 }
 
 unsigned int Abstract_VM_Version::jvm_version() {
   return ((Abstract_VM_Version::vm_major_version() & 0xFF) << 24) |
          ((Abstract_VM_Version::vm_minor_version() & 0xFF) << 16) |
-         ((Abstract_VM_Version::vm_micro_version() & 0xFF) << 8)  |
          (Abstract_VM_Version::vm_build_number() & 0xFF);
 }
 
--- a/hotspot/src/share/vm/runtime/vm_version.hpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/hotspot/src/share/vm/runtime/vm_version.hpp	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #ifdef USE_PRAGMA_IDENT_HDR
-#pragma ident "@(#)vm_version.hpp	1.26 07/05/05 17:07:03 JVM"
+#pragma ident "@(#)vm_version.hpp	1.27 07/08/08 19:44:04 JVM"
 #endif
 /*
  * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
@@ -37,10 +37,7 @@
   static unsigned int _logical_processors_per_package;
   static int          _vm_major_version;
   static int          _vm_minor_version;
-  static int          _vm_micro_version;
   static int          _vm_build_number;
-  static int          _vm_update_version;
-  static char         _special_update_version;
   static bool         _initialized;
  public:
   static void initialize();
@@ -56,10 +53,7 @@
 
   static int vm_major_version()               { assert(_initialized, "not initialized"); return _vm_major_version; }
   static int vm_minor_version()               { assert(_initialized, "not initialized"); return _vm_minor_version; }
-  static int vm_micro_version()               { assert(_initialized, "not initialized"); return _vm_micro_version; }
   static int vm_build_number()                { assert(_initialized, "not initialized"); return _vm_build_number; }
-  static int vm_update_version()              { assert(_initialized, "not initialized"); return _vm_update_version; }
-  static char special_update_version()        { assert(_initialized, "not initialized"); return _special_update_version; }
 
   // Gets the jvm_version_info.jvm_version defined in jvm.h
   static unsigned int jvm_version();
--- a/j2se/make/common/Defs-solaris.gmk	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/common/Defs-solaris.gmk	Fri Aug 31 00:44:13 2007 +0000
@@ -118,7 +118,7 @@
 #       -xc99=%none     Do NOT allow for c99 extensions to be used.
 #                       e.g. declarations must precede statements
 #       -xCC            Allow the C++ style of comments in C: //
-#                       Required with many of the j2se source files.
+#                       Required with many of the source files.
 #       -mt             Assume multi-threaded (important)
 #
 
--- a/j2se/make/common/Defs.gmk	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/common/Defs.gmk	Fri Aug 31 00:44:13 2007 +0000
@@ -130,7 +130,7 @@
 #   ALT_BINARY_PLUGS_PATH points to a directory containing precisely the
 #   binaries needed to build. 
 #  
-#   ALT_BINARY_PLUGS_SET points to a directory containing binary plug dirs 
+#   ALT_BUILD_BINARY_PLUGS_PATH points to a directory containing binary plug dirs 
 #   multiple architectures named using the standard conventions
 #   This is useful for build scripts that need to build multiple architectures
 #   of the OpenJDK.
@@ -141,7 +141,7 @@
 #   The precedence is that
 #     1. ALT_BINARY_PLUGS_JARFILE overrides any other location of the classes
 #     2. ALT_BINARY_PLUGS_PATH overrides all locations of classes and libraries
-#     3. ALT_BINARY_PLUGS_SET is used to find a ALT_BINARY_PLUGS_PATH
+#     3. ALT_BUILD_BINARY_PLUGS_PATH is used to find a ALT_BINARY_PLUGS_PATH
 #     4. ALT_CLOSED_JDK_IMPORT_PATH is used to locate classes and libraries
 #
 
@@ -154,11 +154,13 @@
     BINARY_PLUGS_PATH = $(CLOSED_JDK_IMPORT_PATH)
     BINARY_PLUGS_JARFILE = $(CLOSED_JDK_IMPORT_PATH)/jre/lib/rt.jar
   endif
-  ifdef ALT_BINARY_PLUGS_SET
-    BINARY_PLUGS_SET = $(ALT_BINARY_PLUGS_SET)
-    BINARY_PLUGS_PATH = $(BINARY_PLUGS_SET)/$(PLATFORM)-$(ARCH)
-    BINARY_PLUGS_JARFILE = $(BINARY_PLUGS_PATH)/jre/lib/$(BINARY_PLUGS_JARNAME)
+  ifdef ALT_BUILD_BINARY_PLUGS_PATH
+    BUILD_BINARY_PLUGS_PATH = $(ALT_BUILD_BINARY_PLUGS_PATH)
+  else
+    BUILD_BINARY_PLUGS_PATH = $(SLASH_JAVA)/re/jdk/$(JDK_VERSION)/promoted/latest/openjdk-bimary-plugs
   endif
+  BINARY_PLUGS_PATH = $(BUILD_BINARY_PLUGS_PATH)/$(PLATFORM)-$(ARCH)
+  BINARY_PLUGS_JARFILE = $(BINARY_PLUGS_PATH)/jre/lib/$(BINARY_PLUGS_JARNAME)
   ifdef ALT_BINARY_PLUGS_PATH
     BINARY_PLUGS_PATH  = $(ALT_BINARY_PLUGS_PATH)
     BINARY_PLUGS_JARFILE = $(BINARY_PLUGS_PATH)/jre/lib/$(BINARY_PLUGS_JARNAME)
--- a/j2se/make/common/Sanity.gmk	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/common/Sanity.gmk	Fri Aug 31 00:44:13 2007 +0000
@@ -39,7 +39,7 @@
 # Bring in common sanity check rules
 include $(J2SE_SHARED_DIR)/Sanity.gmk
 
-# EXTERNALSANITYCONTROL means that this j2se workspace build is being controlled by
+# EXTERNALSANITYCONTROL means that this workspace build is being controlled by
 # the control workspace, and that workspace is managing what is done to the sanity
 # check files, and this sanity check run is only appending to those files.
 
--- a/j2se/make/common/shared/Defs-linux.gmk	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/common/shared/Defs-linux.gmk	Fri Aug 31 00:44:13 2007 +0000
@@ -97,7 +97,7 @@
 # _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK.
 # _BOOTDIR2: Second choice
 ifndef ALT_BOOTDIR
-  _BOOTDIR1  =$(SLASH_JAVA)/re/j2se/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
+  _BOOTDIR1  =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
   _BOOTDIR2  =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
 endif
 
@@ -140,15 +140,23 @@
 
 _CUPS_HEADERS_PATH=/usr/include
 
+# BUILD_JDK_IMPORT_PATH: location of all previously built JDKs (this version).
+ifdef ALT_BUILD_JDK_IMPORT_PATH
+  BUILD_JDK_IMPORT_PATH  :=$(call FullPath,$(ALT_BUILD_JDK_IMPORT_PATH))
+else
+  ifdef OPENJDK
+    BUILD_JDK_IMPORT_PATH   = $(SLASH_JAVA)/BUILD_JDK_IMPORT_PATH
+  else
+    BUILD_JDK_IMPORT_PATH   = $(PROMOTED_BUILD_BINARIES)
+  endif
+endif
+BUILD_JDK_IMPORT_PATH:=$(call AltCheckValue,BUILD_JDK_IMPORT_PATH)
+
 # JDK_IMPORT_PATH: location of previously built JDK (this version).
 ifdef ALT_JDK_IMPORT_PATH
   JDK_IMPORT_PATH  :=$(call FullPath,$(ALT_JDK_IMPORT_PATH))
 else
-  ifdef OPENJDK
-    JDK_IMPORT_PATH   = $(CLOSED_JDK_IMPORT_PATH)
-  else
-    JDK_IMPORT_PATH   = $(_PROMOTED_BUILD_PATH)$(_JDK_IMPORT_VARIANT)
-  endif
+  JDK_IMPORT_PATH   = $(BUILD_JDK_IMPORT_PATH)/$(PLATFORM)-$(ARCH)$(_JDK_IMPORT_VARIANT)
 endif
 JDK_IMPORT_PATH:=$(call AltCheckValue,JDK_IMPORT_PATH)
 
--- a/j2se/make/common/shared/Defs-solaris.gmk	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/common/shared/Defs-solaris.gmk	Fri Aug 31 00:44:13 2007 +0000
@@ -107,7 +107,7 @@
 # _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK.
 # _BOOTDIR2: Second choice
 ifndef ALT_BOOTDIR
-  _BOOTDIR1  =$(SLASH_JAVA)/re/j2se/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
+  _BOOTDIR1  =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
   _BOOTDIR2  =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
 endif
 
@@ -153,15 +153,23 @@
 
 _CUPS_HEADERS_PATH=/opt/sfw/cups/include
 
+# BUILD_JDK_IMPORT_PATH: location of all previously built JDKs (this version).
+ifdef ALT_BUILD_JDK_IMPORT_PATH
+  BUILD_JDK_IMPORT_PATH  :=$(call FullPath,$(ALT_BUILD_JDK_IMPORT_PATH))
+else
+  ifdef OPENJDK
+    BUILD_JDK_IMPORT_PATH   = $(SLASH_JAVA)/BUILD_JDK_IMPORT_PATH
+  else
+    BUILD_JDK_IMPORT_PATH   = $(PROMOTED_BUILD_BINARIES)
+  endif
+endif
+BUILD_JDK_IMPORT_PATH:=$(call AltCheckValue,BUILD_JDK_IMPORT_PATH)
+
 # JDK_IMPORT_PATH: location of previously built JDK (this version).
 ifdef ALT_JDK_IMPORT_PATH
   JDK_IMPORT_PATH  :=$(call FullPath,$(ALT_JDK_IMPORT_PATH))
 else
-  ifdef OPENJDK
-    JDK_IMPORT_PATH   = $(CLOSED_JDK_IMPORT_PATH)
-  else
-    JDK_IMPORT_PATH   = $(_PROMOTED_BUILD_PATH)$(_JDK_IMPORT_VARIANT)
-  endif
+  JDK_IMPORT_PATH   = $(BUILD_JDK_IMPORT_PATH)/$(PLATFORM)-$(ARCH)$(_JDK_IMPORT_VARIANT)
 endif
 JDK_IMPORT_PATH:=$(call AltCheckValue,JDK_IMPORT_PATH)
 
--- a/j2se/make/common/shared/Defs-windows.gmk	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/common/shared/Defs-windows.gmk	Fri Aug 31 00:44:13 2007 +0000
@@ -577,6 +577,17 @@
 endif
 LOGOCUB:=$(call AltCheckSpaces,LOGOCUB)
 
+# MSITRAN: path to msitran.exe (used in creating install bundles and sponsors)
+ifdef ALT_MSITRAN
+  xALT_MSITRAN :="$(subst \,/,$(ALT_MSITRAN))"
+  MSITRAN  =$(xALT_MSITRAN)
+else
+  _MSITRAN1 :=$(INSTALL_MSSDK)/Bin/msitran.exe
+  _MSITRAN2 :=$(DEVTOOLS_PATH)msitran.exe
+  MSITRAN   :=$(call FileExists,$(_MSITRAN1),$(_MSITRAN2))
+endif
+MSITRAN:=$(call AltCheckSpaces,MSITRAN)
+
 # MSICERT: path to msicert.exe (used in creating install bundles)
 ifdef ALT_MSICERT
   xALT_MSICERT :="$(subst \,/,$(ALT_MSICERT))"
@@ -588,15 +599,24 @@
 endif
 MSICERT:=$(call AltCheckSpaces,MSICERT)
 
+# BUILD_JDK_IMPORT_PATH: location of all previously built JDKs (this version).
+ifdef ALT_BUILD_JDK_IMPORT_PATH
+  BUILD_JDK_IMPORT_PATH  :=$(call FullPath,$(ALT_BUILD_JDK_IMPORT_PATH))
+else
+  ifdef OPENJDK
+    BUILD_JDK_IMPORT_PATH   = $(SLASH_JAVA)/BUILD_JDK_IMPORT_PATH
+  else
+    BUILD_JDK_IMPORT_PATH   = $(PROMOTED_BUILD_BINARIES)
+  endif
+endif
+BUILD_JDK_IMPORT_PATH:=$(call AltCheckSpaces,BUILD_JDK_IMPORT_PATH)
+BUILD_JDK_IMPORT_PATH:=$(call AltCheckValue,BUILD_JDK_IMPORT_PATH)
+
 # JDK_IMPORT_PATH: location of previously built JDK (this version).
 ifdef ALT_JDK_IMPORT_PATH
   JDK_IMPORT_PATH  :=$(call FullPath,$(ALT_JDK_IMPORT_PATH))
 else
-  ifdef OPENJDK
-    JDK_IMPORT_PATH   = $(CLOSED_JDK_IMPORT_PATH)
-  else
-    JDK_IMPORT_PATH   = $(_PROMOTED_BUILD_PATH)$(_JDK_IMPORT_VARIANT)
-  endif
+  JDK_IMPORT_PATH   = $(BUILD_JDK_IMPORT_PATH)/$(PLATFORM)-$(ARCH)$(_JDK_IMPORT_VARIANT)
 endif
 JDK_IMPORT_PATH:=$(call AltCheckSpaces,JDK_IMPORT_PATH)
 JDK_IMPORT_PATH:=$(call AltCheckValue,JDK_IMPORT_PATH)
--- a/j2se/make/common/shared/Defs.gmk	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/common/shared/Defs.gmk	Fri Aug 31 00:44:13 2007 +0000
@@ -263,11 +263,10 @@
 endif
 
 # Promoted build location
-PROMOTED_RE_AREA = $(SLASH_JAVA)/re/j2se/$(JDK_VERSION)/promoted
+PROMOTED_RE_AREA = $(SLASH_JAVA)/re/jdk/$(JDK_VERSION)/promoted
 PROMOTED_BUILD_LATEST = latest
 PROMOTED_BUILD_BASEDIR = $(PROMOTED_RE_AREA)/$(PROMOTED_BUILD_LATEST)
 PROMOTED_BUILD_BINARIES = $(PROMOTED_BUILD_BASEDIR)/binaries
-_PROMOTED_BUILD_PATH = $(PROMOTED_BUILD_BINARIES)/$(PLATFORM)-$(ARCH)
 
 # OPT: Changes what the optimizations settings (in _OPT)
 POPT = $(_OPT$(ALT_OPT))$(ALT_OPT)
@@ -360,7 +359,7 @@
 ifdef ALT_PREVIOUS_RELEASE_PATH
   PREVIOUS_RELEASE_PATH :=$(call OptFullPath,$(ALT_PREVIOUS_RELEASE_PATH))
 else
-  PREVIOUS_RELEASE_PATH =$(SLASH_JAVA)/re/j2se/$(PREVIOUS_JDK_VERSION)/archive/fcs/bundles/$(PLATFORM)-$(ARCH)
+  PREVIOUS_RELEASE_PATH =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/bundles/$(PLATFORM)-$(ARCH)
 endif
 export PREVIOUS_RELEASE_PATH
 PREVIOUS_RELEASE_PATH:=$(call AltCheckSpaces,PREVIOUS_RELEASE_PATH)
--- a/j2se/make/common/shared/Sanity-Settings.gmk	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/common/shared/Sanity-Settings.gmk	Fri Aug 31 00:44:13 2007 +0000
@@ -208,6 +208,7 @@
 
 ALL_SETTINGS+=$(call addHeading,"External File/Binary Locations")
 ALL_SETTINGS+=$(call addRequiredSetting,USRJDKINSTANCES_PATH)
+ALL_SETTINGS+=$(call addAltSetting,BUILD_JDK_IMPORT_PATH)
 ALL_SETTINGS+=$(call addAltSetting,JDK_IMPORT_PATH)
 ALL_SETTINGS+=$(call addAltSetting,HOTSPOT_DOCS_IMPORT_PATH)
 ALL_SETTINGS+=$(call addAltSetting,HOTSPOT_IMPORT_PATH)
@@ -229,6 +230,7 @@
     ALL_SETTINGS+=$(call addAltSetting,DEPLOY_MSSDK)
     ALL_SETTINGS+=$(call addAltSetting,WSCRIPT)
     ALL_SETTINGS+=$(call addAltSetting,MSICERT)
+    ALL_SETTINGS+=$(call addAltSetting,MSITRAN)
   endif
 endif
 ALL_SETTINGS+=$(call addAltSetting,CACERTS_FILE)
@@ -246,8 +248,7 @@
   ALL_SETTINGS+=$(call addHeading,"OPENJDK Import Binary Plug Settings")
   ALL_SETTINGS+=$(call addAltSetting,BINARY_PLUGS_JARFILE)
   ALL_SETTINGS+=$(call addAltSetting,BINARY_PLUGS_PATH)
-  ALL_SETTINGS+=$(call addAltSetting,BINARY_PLUGS_SET)
-  ALL_SETTINGS+=$(call addAltSetting,CLOSED_JDK_IMPORT_PATH)
+  ALL_SETTINGS+=$(call addAltSetting,BUILD_BINARY_PLUGS_PATH)
 else 
   ALL_SETTINGS+=$(call addHeading,"OPENJDK Export Binary Plug Settings")
   ALL_SETTINGS+=$(call addRequiredSetting,PLUG_EXPORT_DIRNAME)
--- a/j2se/make/common/shared/Sanity.gmk	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/common/shared/Sanity.gmk	Fri Aug 31 00:44:13 2007 +0000
@@ -1161,7 +1161,7 @@
 
 # Compare an interface file (Rule creates 2 temp files: %.h and %.h.IMPORT)
 #    Files jvm.h, jvm_md.h and jmm.h are special in that they are not publicly 
-#    exported but do represent VM interfaces used by the rest of the j2se.
+#    exported but do represent VM interfaces used by the rest of the jdk.
 #    So these 3 will not be found in a promoted build and can only
 #    be checked when this represents a full control build (i.e. the
 #    HOTSPOT_IMPORT_PATH includes these files in it's 'include' directory).
@@ -1205,7 +1205,7 @@
 	@if [ "`$(CAT) $<        | $(TMP_SDK_INCLUDE_GET_VERSION)`" != \
 	      "`$(CAT) $<.IMPORT | $(TMP_SDK_INCLUDE_GET_VERSION)`" ] ; then \
 	    $(ECHO) "WARNING: The file $(<F) is not the same interface as the VM version.\n " \
-	      "        this j2se workspace has $(<F) `$(CAT) $< | $(TMP_SDK_INCLUDE_GET_FULL_VERSION)` and \n " \
+	      "        this workspace has $(<F) `$(CAT) $< | $(TMP_SDK_INCLUDE_GET_FULL_VERSION)` and \n " \
 	      "        HOTSPOT_IMPORT_PATH contains $(<F) `$(CAT) $<.IMPORT | $(TMP_SDK_INCLUDE_GET_FULL_VERSION)` \n" \
 	    "" >> $(WARNING_FILE) ; \
 	     $(ECHO) "Version mis-match" > $@ ; \
--- a/j2se/make/java/awt/Makefile	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/java/awt/Makefile	Fri Aug 31 00:44:13 2007 +0000
@@ -46,7 +46,7 @@
 
 endif
 
-build: sources properties cursors
+build: properties cursors
 
 #
 # Resources
@@ -59,16 +59,8 @@
 #
 include $(BUILDDIR)/common/Classes.gmk
 
-sources: debughelper
 
-clean:: debughelper.clean properties.clean sun.geom.clean cursors.clean
-
-debughelper:
-	$(CD) $(BUILDDIR)/sun/awt; $(MAKE) debughelper
-
-debughelper.clean:
-	$(CD) $(BUILDDIR)/sun/awt; $(MAKE) debughelper.clean
-
+clean:: properties.clean sun.geom.clean cursors.clean
 
 _LIBPROPS = \
 	flavormap.properties
@@ -122,6 +114,6 @@
 cursors.clean :
 	$(RM) -r $(CURSORDIR)
 
-.PHONY: sources debughelper debughelper.clean properties properties.clean \
+.PHONY: properties properties.clean \
 	cursors sun.geom.clean cursors.clean
 
--- a/j2se/make/jdk_generic_profile.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/jdk_generic_profile.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -133,6 +133,16 @@
   # Place compiler path early in PATH to avoid 'cc' conflicts.
   path4sdk=${ALT_COMPILER_PATH}:/usr/ccs/bin:/usr/ccs/lib:/usr/bin:/bin:/usr/sfw/bin
 
+  # Make sure these are unset
+  unset JAVA_HOME
+  unset LD_LIBRARY_PATH
+
+  # Build in C locale
+  LANG=C
+  export LANG
+  LC_ALL=C
+  export LC_ALL
+
   umask 002
 
 elif [ "${osname}" = Linux ] ; then
@@ -143,6 +153,16 @@
   # Use compilers from /usr/bin
   path4sdk=/usr/bin:/bin:/usr/sbin:/sbin
 
+  # Make sure these are unset
+  unset JAVA_HOME
+  unset LD_LIBRARY_PATH
+
+  # Build in C locale
+  LANG=C
+  export LANG
+  LC_ALL=C
+  export LC_ALL
+
   umask 002
 
 else
--- a/j2se/make/sun/awt/FILES_export_unix.gmk	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/sun/awt/FILES_export_unix.gmk	Fri Aug 31 00:44:13 2007 +0000
@@ -88,9 +88,7 @@
 	sun/awt/motif/MScrollbarPeer.java \
 	sun/awt/motif/MScrollPanePeer.java \
 	sun/awt/motif/MFramePeer.java \
-	sun/awt/DebugHelperImpl.java \
-	sun/awt/DebugHelper.java \
-	sun/awt/DebugSettings.java \
+        sun/awt/DebugSettings.java \
 	sun/awt/EmbeddedFrame.java \
 	sun/awt/motif/MEmbeddedFramePeer.java \
 	sun/awt/PlatformFont.java \
--- a/j2se/make/sun/awt/FILES_export_windows.gmk	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/sun/awt/FILES_export_windows.gmk	Fri Aug 31 00:44:13 2007 +0000
@@ -218,7 +218,6 @@
         sun/awt/windows/ThemeReader.java \
 	sun/awt/windows/WBufferStrategy.java \
 	sun/awt/windows/WTrayIconPeer.java \
-	sun/awt/DebugHelperImpl.java \
 	sun/awt/image/ImagingLib.java \
         sun/java2d/pipe/BufferedContext.java \
         sun/java2d/pipe/BufferedMaskBlit.java \
--- a/j2se/make/sun/awt/Makefile	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/sun/awt/Makefile	Fri Aug 31 00:44:13 2007 +0000
@@ -206,39 +206,6 @@
 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUX
 endif # PLATFORM
 
-#
-# Rules to build the DebugHelper class
-#
-DEBUG_HELPER_JAVA = $(GENSRCDIR)/sun/awt/DebugHelper.java
-DEBUG_HELPER_JAVA_M4 = $(SHARE_SRC)/classes/sun/awt/DebugHelper.java.m4
-DEBUG_HELPER_CLASS = sun/awt/DebugHelper.class
-
-ifdef SUN_AWT_DEBUG_CLASSES
-  M4DEFS=-D SUN_AWT_DEBUG_CLASSES=$(SUN_AWT_DEBUG_CLASSES)
-  DEBUG_BUILD_MSG = "** DebugHelper being built for DEBUG mode **"
-else # SUN_AWT_DEBUG_CLASSES
-  DEBUG_BUILD_MSG = "** DebugHelper being built for RELEASE mode **"
-endif # SUN_AWT_DEBUG_CLASSES
-
-# Preprocess thru m4 to produce legal .java file,
-# force the creation of the .java source, and add the .java file
-# to the list of the java compile files.
-$(CLASSBINDIR)/$(DEBUG_HELPER_CLASS) : $(CLASSDESTDIR) $(DEBUG_HELPER_JAVA)
-	$(ECHO) $(DEBUG_HELPER_JAVA) >> $(TEMPDIR)/.classes.list
-
-$(DEBUG_HELPER_JAVA) : $(DEBUG_HELPER_JAVA_M4) $(GENSRCDIR)
-	$(MKDIR) -p $(@D)
-	@$(ECHO) $(DEBUG_BUILD_MSG)
-	$(M4) $(M4DEFS) $(DEBUG_HELPER_JAVA_M4) > $(DEBUG_HELPER_JAVA)
-
-debughelper : $(DEBUG_HELPER_JAVA) 
-
-debughelper.clean :
-	$(RM) $(DEBUG_HELPER_JAVA)
-	$(RM) $(DEBUG_HELPER_CLASS)
-
-clobber clean:: debughelper.clean
-
 clobber clean:: java2d.clean motif.clean fontconfigs.clean
 
 ifndef OPENJDK
@@ -261,8 +228,6 @@
 vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops
 vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe
 vpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)/image
-vpath %.c   $(PLATFORM_SRC)/native/$(PKGDIR)/robot_child
-
 ifeq ($(PLATFORM), windows)
 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS
 vpath %.cpp   $(PLATFORM_SRC)/native/sun/windows
@@ -277,7 +242,6 @@
 
 ifeq ($(PLATFORM), linux)
 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv LINUX
-vpath %.c   $(PLATFORM_SRC)/native/$(PKGDIR)/robot_child
 vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl
 vpath %.c   $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl
 vpath %.c   $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11
@@ -516,6 +480,7 @@
 	-I$(SHARE_SRC)/native/sun/dc/path \
 	-I$(SHARE_SRC)/native/sun/dc/doe \
 	-I$(SHARE_SRC)/native/sun/awt/debug \
+	-I$(PLATFORM_SRC)/native/sun/awt \
 #	-I$(WINAWT_COMMON_native)
 
 # this is only required for compiling )/native/sun/awt/medialib/*.c files
@@ -567,6 +532,7 @@
 	    -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/doe \
 	    -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/path \
             -I$(PLATFORM_SRC)/native/$(PKGDIR)/../jdga \
+            -I$(PLATFORM_SRC)/native/$(PKGDIR) \
 	    $(EVENT_MODEL)
 
 ifeq ($(PLATFORM), linux)
@@ -638,7 +604,6 @@
 	$(RM) $(UNDESIRED_FILES)
 
 
-.PHONY: robot_child debughelper debughelper.clean \
-	java2d.clean awt.clean motif motif.clean \
+.PHONY: java2d.clean awt.clean motif motif.clean \
 	dgalibs dgalib.clean fontconfigs fontconfigs.clean undesiredfiles
 
--- a/j2se/make/sun/awt/make.depend	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/sun/awt/make.depend	Fri Aug 31 00:44:13 2007 +0000
@@ -202,7 +202,7 @@
 
 $(OBJDIR)/debug_mem.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h
 
-$(OBJDIR)/debug_trace.obj::	$(CLASSHDRDIR)/sun_awt_DebugHelperImpl.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h
+$(OBJDIR)/debug_trace.obj::     ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h
 
 $(OBJDIR)/debug_util.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h
 
--- a/j2se/make/sun/awt/mapfile-vers	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/sun/awt/mapfile-vers	Fri Aug 31 00:44:13 2007 +0000
@@ -46,11 +46,9 @@
 		Java_java_awt_MenuBar_initIDs;
 		Java_java_awt_ScrollPaneAdjustable_initIDs;
 		Java_java_awt_Toolkit_initIDs;
-		Java_sun_awt_DebugHelperImpl_printImpl;
-		Java_sun_awt_DebugHelperImpl_printlnImpl;
-		Java_sun_awt_DebugHelperImpl_setCTracingOn__Z;
-		Java_sun_awt_DebugHelperImpl_setCTracingOn__ZLjava_lang_String_2;
-		Java_sun_awt_DebugHelperImpl_setCTracingOn__ZLjava_lang_String_2I;
+                Java_sun_awt_DebugSettings_setCTracingOn__Z; 
+                Java_sun_awt_DebugSettings_setCTracingOn__ZLjava_lang_String_2; 
+                Java_sun_awt_DebugSettings_setCTracingOn__ZLjava_lang_String_2I; 
 		Java_sun_awt_image_ByteComponentRaster_initIDs;
 		Java_sun_awt_image_GifImageDecoder_initIDs;
 		Java_sun_awt_image_GifImageDecoder_parseImage;
@@ -136,6 +134,7 @@
 		Region_CountIterationRects;
 		Region_NextIteration;
 		Region_EndIteration;
+		RegionToYXBandedRectangles;
 		GrPrim_CompGetXorInfo;
 		GrPrim_CompGetAlphaInfo;
                 GrPrim_ColorGetRGB;
--- a/j2se/make/sun/awt/mapfile-vers-linux	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/sun/awt/mapfile-vers-linux	Fri Aug 31 00:44:13 2007 +0000
@@ -47,11 +47,9 @@
 		Java_java_awt_ScrollPaneAdjustable_initIDs;
 		Java_java_awt_Toolkit_initIDs;
 		Java_java_awt_TrayIcon_initIDs;
-		Java_sun_awt_DebugHelperImpl_printImpl;
-		Java_sun_awt_DebugHelperImpl_printlnImpl;
-		Java_sun_awt_DebugHelperImpl_setCTracingOn__Z;
-		Java_sun_awt_DebugHelperImpl_setCTracingOn__ZLjava_lang_String_2;
-		Java_sun_awt_DebugHelperImpl_setCTracingOn__ZLjava_lang_String_2I;
+                Java_sun_awt_DebugSettings_setCTracingOn__Z; 
+                Java_sun_awt_DebugSettings_setCTracingOn__ZLjava_lang_String_2; 
+                Java_sun_awt_DebugSettings_setCTracingOn__ZLjava_lang_String_2I; 
 		Java_sun_awt_image_ByteComponentRaster_initIDs;
 		Java_sun_awt_image_GifImageDecoder_initIDs;
 		Java_sun_awt_image_GifImageDecoder_parseImage;
--- a/j2se/make/sun/awt/mawt.gmk	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/sun/awt/mawt.gmk	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
+# Copyright 2000-2007 Sun Microsystems, Inc.  All Rights Reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -224,10 +224,11 @@
             -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl \
             -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl \
             -I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11 \
-	    -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/doe \
-	    -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/path \
+        -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/doe \
+        -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/path \
             -I$(PLATFORM_SRC)/native/$(PKGDIR)/../jdga \
-	    $(EVENT_MODEL)
+        -I$(PLATFORM_SRC)/native/$(PKGDIR) \
+        $(EVENT_MODEL)
 
 ifeq ($(PLATFORM), linux)
 # Checking for the X11/extensions headers at the additional location
--- a/j2se/make/sun/javac/javac/FILES_java.gmk	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/sun/javac/javac/FILES_java.gmk	Fri Aug 31 00:44:13 2007 +0000
@@ -43,6 +43,7 @@
 AUTO_FILES_JAVA_DIRS += com/sun/tools/javac/sym
 AUTO_FILES_JAVA_DIRS += com/sun/tools/javac/tree
 AUTO_FILES_JAVA_DIRS += com/sun/tools/javac/util
+AUTO_FILES_JAVA_DIRS += com/sun/tools/javac/zip
 AUTO_FILES_JAVA_DIRS += javax/annotation/processing
 AUTO_FILES_JAVA_DIRS += javax/lang/model
 AUTO_FILES_JAVA_DIRS += javax/lang/model/element
--- a/j2se/make/sun/xawt/Makefile	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/sun/xawt/Makefile	Fri Aug 31 00:44:13 2007 +0000
@@ -119,7 +119,9 @@
 	-I$(SHARE_SRC)/native/sun/awt/alphacomposite \
         -I$(SHARE_SRC)/native/sun/awt/medialib \
 	-I$(PLATFORM_SRC)/native/sun/awt/medialib \
-        -I$(PLATFORM_SRC)/native/sun/font
+        -I$(PLATFORM_SRC)/native/sun/font \
+        -I$(SHARE_SRC)/native/sun/awt \
+        -I$(PLATFORM_SRC)/native/sun/awt 
 
 ifeq ($(PLATFORM), linux)
 # Allows for builds on Debian GNU Linux, X11 is in a different place 
--- a/j2se/make/sun/xawt/mapfile-vers	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/make/sun/xawt/mapfile-vers	Fri Aug 31 00:44:13 2007 +0000
@@ -91,6 +91,8 @@
         Java_sun_awt_X11_XlibWrapper_XSetTransientFor;
         Java_sun_awt_X11_XlibWrapper_XSetWMHints;
         Java_sun_awt_X11_XlibWrapper_XGetWMHints;
+        Java_sun_awt_X11_XlibWrapper_XShapeQueryExtension;
+        Java_sun_awt_X11_XlibWrapper_SetRectangularShape;
         Java_sun_awt_X11_XToolkit_initIDs;
         Java_sun_awt_X11_XWindow_getNativeColor;
         Java_sun_awt_X11_XWindow_getWMInsets;
--- a/j2se/src/share/classes/com/sun/corba/se/impl/activation/CommandHandler.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/corba/se/impl/activation/CommandHandler.java	Fri Aug 31 00:44:13 2007 +0000
@@ -29,7 +29,7 @@
 import java.io.PrintStream;
 
 /**
- * @version     1.21, 07/08/16
+ * @version     1.21, 07/08/30
  * @author      Rohit Garg
  * @since       JDK1.2
  */
--- a/j2se/src/share/classes/com/sun/javadoc/AnnotationDesc.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/javadoc/AnnotationDesc.java	Fri Aug 31 00:44:13 2007 +0000
@@ -31,7 +31,6 @@
  * An annotation associates a value with each element of an annotation type.
  * 
  * @author Scott Seligman
- * @version 1.10 07/05/05
  * @since 1.5
  */
 public interface AnnotationDesc {
@@ -59,7 +58,6 @@
      * and one of its values.
      * 
      * @author Scott Seligman
-     * @version 1.10 07/05/05
      * @since 1.5
      */
     public interface ElementValuePair {
--- a/j2se/src/share/classes/com/sun/javadoc/AnnotationTypeDoc.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/javadoc/AnnotationTypeDoc.java	Fri Aug 31 00:44:13 2007 +0000
@@ -30,7 +30,6 @@
  * Represents an annotation type.
  * 
  * @author Scott Seligman
- * @version 1.10 07/05/05
  * @since 1.5
  */
 public interface AnnotationTypeDoc extends ClassDoc {
--- a/j2se/src/share/classes/com/sun/javadoc/AnnotationTypeElementDoc.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/javadoc/AnnotationTypeElementDoc.java	Fri Aug 31 00:44:13 2007 +0000
@@ -30,7 +30,6 @@
  * Represents an element of an annotation type.
  * 
  * @author Scott Seligman
- * @version 1.10 07/05/05
  * @since 1.5
  */
 public interface AnnotationTypeElementDoc extends MethodDoc {
--- a/j2se/src/share/classes/com/sun/javadoc/AnnotationValue.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/javadoc/AnnotationValue.java	Fri Aug 31 00:44:13 2007 +0000
@@ -30,7 +30,6 @@
  * Represents a value of an annotation type element.
  * 
  * @author Scott Seligman
- * @version 1.10 07/05/05
  * @since 1.5
  */
 public interface AnnotationValue {
--- a/j2se/src/share/classes/com/sun/javadoc/ParameterizedType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/javadoc/ParameterizedType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -41,7 +41,6 @@
  * </pre>
  *
  * @author Scott Seligman
- * @version 1.12 07/05/05
  * @since 1.5
  */
 public interface ParameterizedType extends Type {
--- a/j2se/src/share/classes/com/sun/javadoc/TypeVariable.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/javadoc/TypeVariable.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  * {@code C<R extends Remote>}.
  *
  * @author Scott Seligman
- * @version 1.9 07/05/05
  * @since 1.5
  */
 public interface TypeVariable extends Type {
--- a/j2se/src/share/classes/com/sun/javadoc/WildcardType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/javadoc/WildcardType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -37,7 +37,6 @@
  * or explicit <i>super</i> bounds or neither, but not both.
  *
  * @author Scott Seligman
- * @version 1.9 07/05/05
  * @since 1.5
  */
 public interface WildcardType extends Type {
--- a/j2se/src/share/classes/com/sun/mirror/apt/AnnotationProcessor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/apt/AnnotationProcessor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -52,7 +52,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.9 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/apt/AnnotationProcessorEnvironment.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/apt/AnnotationProcessorEnvironment.java	Fri Aug 31 00:44:13 2007 +0000
@@ -50,7 +50,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.14 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/apt/AnnotationProcessorFactory.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/apt/AnnotationProcessorFactory.java	Fri Aug 31 00:44:13 2007 +0000
@@ -44,7 +44,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.16 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/apt/AnnotationProcessorListener.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/apt/AnnotationProcessorListener.java	Fri Aug 31 00:44:13 2007 +0000
@@ -30,7 +30,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 public interface AnnotationProcessorListener extends java.util.EventListener {}
--- a/j2se/src/share/classes/com/sun/mirror/apt/Filer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/apt/Filer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -53,7 +53,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/apt/Messager.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/apt/Messager.java	Fri Aug 31 00:44:13 2007 +0000
@@ -36,7 +36,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.9 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/apt/RoundCompleteEvent.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/apt/RoundCompleteEvent.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.9 07/05/05
  * @since 1.5
  */
 public abstract class RoundCompleteEvent extends java.util.EventObject {
--- a/j2se/src/share/classes/com/sun/mirror/apt/RoundCompleteListener.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/apt/RoundCompleteListener.java	Fri Aug 31 00:44:13 2007 +0000
@@ -30,7 +30,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 public interface RoundCompleteListener extends AnnotationProcessorListener {
--- a/j2se/src/share/classes/com/sun/mirror/apt/RoundState.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/apt/RoundState.java	Fri Aug 31 00:44:13 2007 +0000
@@ -30,7 +30,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 public interface RoundState {
--- a/j2se/src/share/classes/com/sun/mirror/declaration/AnnotationMirror.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/AnnotationMirror.java	Fri Aug 31 00:44:13 2007 +0000
@@ -40,7 +40,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.12 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/declaration/AnnotationTypeDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/AnnotationTypeDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.9 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/declaration/AnnotationTypeElementDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/AnnotationTypeElementDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -31,7 +31,6 @@
  *
  * @author Joe Darcy
  * @author Scott Seligman
- * @version 1.10 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/declaration/AnnotationValue.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/AnnotationValue.java	Fri Aug 31 00:44:13 2007 +0000
@@ -32,7 +32,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.13 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/declaration/ClassDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/ClassDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -48,7 +48,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.10 07/05/05
  *
  * @see ClassType
  * @since 1.5
--- a/j2se/src/share/classes/com/sun/mirror/declaration/ConstructorDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/ConstructorDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -31,7 +31,6 @@
  *
  * @author Joe Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/declaration/Declaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/Declaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -46,7 +46,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.13 07/05/05
  *
  * @see Declarations
  * @see TypeMirror
--- a/j2se/src/share/classes/com/sun/mirror/declaration/EnumConstantDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/EnumConstantDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -31,7 +31,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.9 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/declaration/EnumDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/EnumDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/declaration/ExecutableDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/ExecutableDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -36,7 +36,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.9 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/declaration/FieldDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/FieldDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.9 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/declaration/InterfaceDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/InterfaceDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -42,7 +42,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  *
  * @see InterfaceType
  * @since 1.5
--- a/j2se/src/share/classes/com/sun/mirror/declaration/MemberDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/MemberDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -33,7 +33,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/declaration/MethodDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/MethodDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -38,7 +38,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.9 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/declaration/PackageDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/PackageDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -39,7 +39,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/declaration/ParameterDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/ParameterDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/declaration/TypeDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/TypeDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -56,7 +56,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.11 07/05/05
  *
  * @see DeclaredType
  * @since 1.5
--- a/j2se/src/share/classes/com/sun/mirror/declaration/TypeParameterDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/declaration/TypeParameterDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -38,7 +38,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/type/AnnotationType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/type/AnnotationType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/type/ArrayType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/type/ArrayType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -33,7 +33,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/type/ClassType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/type/ClassType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -40,7 +40,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.9 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/type/DeclaredType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/type/DeclaredType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -50,7 +50,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.13 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/type/EnumType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/type/EnumType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/type/InterfaceType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/type/InterfaceType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -41,7 +41,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/type/PrimitiveType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/type/PrimitiveType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -33,7 +33,6 @@
  * 
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/type/ReferenceType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/type/ReferenceType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -32,7 +32,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.9 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/type/TypeMirror.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/type/TypeMirror.java	Fri Aug 31 00:44:13 2007 +0000
@@ -45,7 +45,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.10 07/05/05
  *
  * @see Declaration
  * @see Types
--- a/j2se/src/share/classes/com/sun/mirror/type/TypeVariable.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/type/TypeVariable.java	Fri Aug 31 00:44:13 2007 +0000
@@ -37,7 +37,6 @@
  *
  * @author Joe Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/type/VoidType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/type/VoidType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  *
  * @see MethodDeclaration#getReturnType()
  * @since 1.5
--- a/j2se/src/share/classes/com/sun/mirror/type/WildcardType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/type/WildcardType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -43,7 +43,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.12 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/util/DeclarationFilter.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/util/DeclarationFilter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -71,7 +71,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.9 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/util/DeclarationScanner.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/util/DeclarationScanner.java	Fri Aug 31 00:44:13 2007 +0000
@@ -41,7 +41,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.12 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/util/DeclarationVisitor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/util/DeclarationVisitor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -39,7 +39,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.10 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/util/DeclarationVisitors.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/util/DeclarationVisitors.java	Fri Aug 31 00:44:13 2007 +0000
@@ -30,7 +30,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.11 07/05/05
  * @since 1.5
  */
 public class DeclarationVisitors {
--- a/j2se/src/share/classes/com/sun/mirror/util/Declarations.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/util/Declarations.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.8 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/util/SimpleDeclarationVisitor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/util/SimpleDeclarationVisitor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -39,7 +39,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.10 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/util/SimpleTypeVisitor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/util/SimpleTypeVisitor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -39,7 +39,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.11 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/util/SourceOrderDeclScanner.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/util/SourceOrderDeclScanner.java	Fri Aug 31 00:44:13 2007 +0000
@@ -44,7 +44,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.13 07/05/05
  * @since 1.5
  */
 class SourceOrderDeclScanner extends DeclarationScanner {
--- a/j2se/src/share/classes/com/sun/mirror/util/SourcePosition.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/util/SourcePosition.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.9 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/util/TypeVisitor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/util/TypeVisitor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -40,7 +40,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.11 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/mirror/util/Types.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/mirror/util/Types.java	Fri Aug 31 00:44:13 2007 +0000
@@ -37,7 +37,6 @@
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
- * @version 1.10 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/tools/corba/se/idl/first.set	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/corba/se/idl/first.set	Fri Aug 31 00:44:13 2007 +0000
@@ -6,7 +6,7 @@
  *    THIS PRODUCT CONTAINS RESTRICTED MATERIALS OF IBM                        
  *    5639-D57, (C) COPYRIGHT International Business Machines Corp., 1997, 1998
  *                                        
- *    @(#) 1.3 @(#)first.set	1.3 04/30/07 19:05:31 [08/16/07 00:30:13]
+ *    @(#) 1.3 @(#)first.set	1.3 04/30/07 19:05:31 [08/30/07 00:52:36]
  */
 
 CORBA IDL
--- a/j2se/src/share/classes/com/sun/tools/corba/se/idl/follow.set	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/corba/se/idl/follow.set	Fri Aug 31 00:44:13 2007 +0000
@@ -6,7 +6,7 @@
  *    THIS PRODUCT CONTAINS RESTRICTED MATERIALS OF IBM                        
  *    5639-D57, (C) COPYRIGHT International Business Machines Corp., 1997, 1998
  *                                        
- *    @(#) 1.3 @(#)follow.set	1.3 04/30/07 19:05:31 [08/16/07 00:30:13]
+ *    @(#) 1.3 @(#)follow.set	1.3 04/30/07 19:05:31 [08/30/07 00:52:36]
  */
 
 CORBA IDL
--- a/j2se/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties	Fri Aug 31 00:44:13 2007 +0000
@@ -1,6 +1,3 @@
-#
-# @(#)standard.properties	1.116 05/10/29
-#
 doclet.build_version=Standard Doclet version {0}
 doclet.Contents=Contents
 doclet.Overview=Overview
--- a/j2se/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_ja.properties	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_ja.properties	Fri Aug 31 00:44:13 2007 +0000
@@ -1,6 +1,3 @@
-#
-# @(#)standard_ja.properties	1.25 06/05/25
-#
 doclet.build_version=\u6a19\u6e96 Doclet \u30d0\u30fc\u30b8\u30e7\u30f3 {0}
 doclet.Contents=\u30b3\u30f3\u30c6\u30f3\u30c4
 doclet.Overview=\u6982\u8981
--- a/j2se/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_zh_CN.properties	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_zh_CN.properties	Fri Aug 31 00:44:13 2007 +0000
@@ -1,6 +1,3 @@
-#
-# @(#)standard_zh_CN.properties	1.5 06/04/10
-#
 doclet.build_version=\u6807\u51c6 Doclet \u7248\u672c {0}
 doclet.Contents=\u76ee\u5f55
 doclet.Overview=\u6982\u8ff0
--- a/j2se/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets.properties	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets.properties	Fri Aug 31 00:44:13 2007 +0000
@@ -1,6 +1,3 @@
-#
-# @(#)doclets.properties	1.29 06/07/26
-#
 doclet.Generating_0=Generating {0}...
 doclet.Toolkit_Usage_Violation=The Doclet Toolkit can only be used by {0}
 doclet.MissingSerialTag=in class {0}, missing @serial tag for default serializable field: {1}.
--- a/j2se/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_ja.properties	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_ja.properties	Fri Aug 31 00:44:13 2007 +0000
@@ -1,6 +1,3 @@
-#
-# @(#)doclets_ja.properties	1.16 06/08/14
-#
 doclet.Generating_0={0} \u306e\u751f\u6210
 doclet.Toolkit_Usage_Violation=\u30c9\u30c3\u30af\u30ec\u30c3\u30c8\u30c4\u30fc\u30eb\u30ad\u30c3\u30c8\u306f {0} \u306b\u3088\u3063\u3066\u306e\u307f\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002
 doclet.MissingSerialTag=\u30af\u30e9\u30b9 {0} \u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u76f4\u5217\u5316\u53ef\u80fd\u30d5\u30a3\u30fc\u30eb\u30c9 {1} \u306e\u305f\u3081\u306e @serial \u30bf\u30b0\u304c\u3042\u308a\u307e\u305b\u3093\u3002
--- a/j2se/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_zh_CN.properties	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_zh_CN.properties	Fri Aug 31 00:44:13 2007 +0000
@@ -1,6 +1,3 @@
-#
-# @(#)doclets_zh_CN.properties	1.11 06/08/15
-#
 doclet.Generating_0=\u6b63\u5728\u751f\u6210 {0}...
 doclet.Toolkit_Usage_Violation=\u53ea\u6709 {0} \u53ef\u4ee5\u4f7f\u7528 Doclet \u5de5\u5177\u7bb1
 doclet.MissingSerialTag=\u5728\u7c7b {0} \u4e2d\uff0c\u9ed8\u8ba4\u7684\u53ef\u5e8f\u5217\u5316\u5b57\u6bb5 {1} \u7f3a\u5c11 @serial \u6807\u8bb0\u3002
--- a/j2se/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/CodeTaglet.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/CodeTaglet.java	Fri Aug 31 00:44:13 2007 +0000
@@ -40,7 +40,6 @@
  * <blockquote>  The type {@code List<P>}  </blockquote>
  *
  * @author Scott Seligman
- * @version 1.9 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LiteralTaglet.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LiteralTaglet.java	Fri Aug 31 00:44:13 2007 +0000
@@ -39,7 +39,6 @@
  * <blockquote>  {@literal a<B>c}  </blockquote>
  *
  * @author Scott Seligman
- * @version 1.9 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/tools/example/debug/tty/MessageOutput.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/example/debug/tty/MessageOutput.java	Fri Aug 31 00:44:13 2007 +0000
@@ -33,7 +33,7 @@
  * the only class that should be printing directly or otherwise
  * accessing System.[out,err].
  *
- * @version     @(#) MessageOutput.java 1.14 07/05/05 00:30:19
+ * @version     @(#) MessageOutput.java 1.14 07/05/05 00:52:41
  * @bug 4348376
  * @author Tim Bell
  */
--- a/j2se/src/share/classes/com/sun/tools/example/doc/index.html	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/example/doc/index.html	Fri Aug 31 00:44:13 2007 +0000
@@ -79,7 +79,7 @@
     <address><a href="mailto:java-debugger@java.sun.com">java-debugger@java.sun.com</a></address>
     </P>
 <P>
-<FONT SIZE=-1>@(#) index.html 1.2 01/06/04 00:30:19</FONT>
+<FONT SIZE=-1>@(#) index.html 1.2 01/06/04 00:52:41</FONT>
 </P>
 <!-- Created: Mon Feb  7 18:56:28 PST 2000 -->
 </body>
--- a/j2se/src/share/classes/com/sun/tools/example/doc/javadt.html	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/example/doc/javadt.html	Fri Aug 31 00:44:13 2007 +0000
@@ -169,7 +169,7 @@
     <address><a href="mailto:java-debugger@java.sun.com">java-debugger@java.sun.com</a></address>
     </P>
 <P>
-<FONT SIZE=-1>@(#) javadt.html 1.3 07/04/04 00:30:19</FONT>
+<FONT SIZE=-1>@(#) javadt.html 1.3 07/04/04 00:52:41</FONT>
 </P>
 </BODY>
 </HTML>
--- a/j2se/src/share/classes/com/sun/tools/example/doc/jdb.html	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/example/doc/jdb.html	Fri Aug 31 00:44:13 2007 +0000
@@ -99,7 +99,7 @@
     <address><a href="mailto:java-debugger@java.sun.com">java-debugger@java.sun.com</a></address>
     </P>
 <P>
-<FONT SIZE=-1>@(#) jdb.html 1.3 07/04/04 00:30:19</FONT>
+<FONT SIZE=-1>@(#) jdb.html 1.3 07/04/04 00:52:41</FONT>
 </P>
   </BODY>
 </HTML>
--- a/j2se/src/share/classes/com/sun/tools/example/doc/trace.html	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/example/doc/trace.html	Fri Aug 31 00:44:13 2007 +0000
@@ -66,7 +66,7 @@
     <address><a href="mailto:java-debugger@java.sun.com">java-debugger@java.sun.com</a></address>
     </P>
 <P>
-<FONT SIZE=-1>@(#) trace.html 1.4 07/04/04 00:30:19</FONT>
+<FONT SIZE=-1>@(#) trace.html 1.4 07/04/04 00:52:41</FONT>
 </P>
 </BODY>
 </HTML>
--- a/j2se/src/share/classes/com/sun/tools/example/trace/EventThread.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/example/trace/EventThread.java	Fri Aug 31 00:44:13 2007 +0000
@@ -35,7 +35,7 @@
 /**
  * This class processes incoming JDI events and displays them
  *
- * @version     @(#) EventThread.java 1.12 07/05/05 00:30:19
+ * @version     @(#) EventThread.java 1.12 07/05/05 00:52:41
  * @author Robert Field
  */
 public class EventThread extends Thread {
--- a/j2se/src/share/classes/com/sun/tools/example/trace/StreamRedirectThread.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/example/trace/StreamRedirectThread.java	Fri Aug 31 00:44:13 2007 +0000
@@ -31,7 +31,7 @@
  * StreamRedirectThread is a thread which copies it's input to
  * it's output and terminates when it completes.
  *
- * @version     @(#) StreamRedirectThread.java 1.12 07/05/05 00:30:19
+ * @version     @(#) StreamRedirectThread.java 1.12 07/05/05 00:52:41
  * @author Robert Field
  */
 class StreamRedirectThread extends Thread {
--- a/j2se/src/share/classes/com/sun/tools/example/trace/Trace.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/example/trace/Trace.java	Fri Aug 31 00:44:13 2007 +0000
@@ -42,7 +42,7 @@
  * See "java Trace -help".
  * It is a simple example of the use of the Java Debug Interface.
  *
- * @version     @(#) Trace.java 1.12 07/05/05 00:30:19
+ * @version     @(#) Trace.java 1.12 07/05/05 00:52:41
  * @author Robert Field
  */
 public class Trace {
--- a/j2se/src/share/classes/com/sun/tools/javac/Launcher.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/Launcher.java	Fri Aug 31 00:44:13 2007 +0000
@@ -31,7 +31,6 @@
 import javax.tools.JavaCompiler;
 import javax.tools.ToolProvider;
 
-import com.sun.tools.javac.util.Version;
 
 /**
  * <b>Unsupported</b> entry point for starting javac from an IDE.
@@ -50,7 +49,6 @@
  * @author Peter von der Ah&eacute;
  * @since 1.6
  */
-@Version("@(#)Launcher.java	1.10 07/05/05")
 class Launcher {
     public static void main(String... args) {
         JavaCompiler javac = ToolProvider.getSystemJavaCompiler();
--- a/j2se/src/share/classes/com/sun/tools/javac/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -28,7 +28,6 @@
 import java.io.PrintWriter;
 import java.lang.reflect.*;
 
-import com.sun.tools.javac.util.Version;
 
 /**
  * The programmatic interface for the Java Programming Language
@@ -42,7 +41,6 @@
  * risk.  This code and its internal interfaces are subject to change
  * or deletion without notice.
  */
-@Version("@(#)Main.java	1.32 07/05/05")
 public class Main {
 
     static {
--- a/j2se/src/share/classes/com/sun/tools/javac/Server.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/Server.java	Fri Aug 31 00:44:13 2007 +0000
@@ -28,7 +28,6 @@
 import com.sun.tools.javac.main.JavacOption.Option;
 import com.sun.tools.javac.main.RecognizedOptions.GrumpyHelper;
 import com.sun.tools.javac.main.RecognizedOptions;
-import com.sun.tools.javac.util.Version;
 import java.io.*;
 import java.net.*;
 import java.util.*;
@@ -48,7 +47,6 @@
  * @author Peter von der Ah&eacute;
  * @since 1.6
  */
-@Version("@(#)Server.java	1.14 07/05/05")
 class Server implements Runnable {
     private final BufferedReader in;
     private final OutputStream out;
--- a/j2se/src/share/classes/com/sun/tools/javac/api/JavacTool.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/api/JavacTool.java	Fri Aug 31 00:44:13 2007 +0000
@@ -52,7 +52,6 @@
 import com.sun.tools.javac.util.Log;
 import com.sun.tools.javac.util.Options;
 import com.sun.tools.javac.util.Pair;
-import com.sun.tools.javac.util.Version;
 import java.nio.charset.Charset;
 
 /**
@@ -65,7 +64,6 @@
  *
  * @author Peter von der Ah\u00e9
  */
-@Version("@(#)JavacTool.java	1.19 07/05/05")
 public final class JavacTool implements JavaCompiler {
     private final List<Pair<String,String>> options
         = new ArrayList<Pair<String,String>>();
--- a/j2se/src/share/classes/com/sun/tools/javac/api/WrappingJavaFileManager.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/api/WrappingJavaFileManager.java	Fri Aug 31 00:44:13 2007 +0000
@@ -35,9 +35,6 @@
 import javax.tools.JavaFileObject.Kind;
 import javax.tools.*;
 
-// FIXME sb removed before promoting to javax.tools
-import com.sun.tools.javac.util.Version;
-
 /**
  * Wraps all calls to a given file manager.  Subclasses of this class
  * might override some of these methods and might also provide
@@ -56,7 +53,6 @@
  * @author Peter von der Ah&eacute;
  * @since 1.6
  */
-@Version("@(#)WrappingJavaFileManager.java	1.10 07/05/05") // FIXME sb removed before promoting to javax.tools
 public class WrappingJavaFileManager<M extends JavaFileManager> extends ForwardingJavaFileManager<M> {
 
     /**
--- a/j2se/src/share/classes/com/sun/tools/javac/code/Attribute.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/code/Attribute.java	Fri Aug 31 00:44:13 2007 +0000
@@ -44,7 +44,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Attribute.java	1.20 07/05/05")
 public abstract class Attribute implements AnnotationValue {
 
     /** The type of the annotation element. */
--- a/j2se/src/share/classes/com/sun/tools/javac/code/BoundKind.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/code/BoundKind.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,9 +25,7 @@
 
 package com.sun.tools.javac.code;
 
-import com.sun.tools.javac.util.Version;
 
-@Version("@(#)BoundKind.java	1.13 07/05/05")
 public enum BoundKind {
     EXTENDS("? extends "),
     SUPER("? super "),
--- a/j2se/src/share/classes/com/sun/tools/javac/code/Flags.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/code/Flags.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,7 +25,6 @@
 
 package com.sun.tools.javac.code;
 
-import com.sun.tools.javac.util.Version;
 import java.util.Collections;
 import java.util.Map;
 import java.util.Set;
@@ -38,7 +37,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Flags.java	1.51 07/05/05")
 public class Flags {
 
     private Flags() {} // uninstantiable
--- a/j2se/src/share/classes/com/sun/tools/javac/code/Kinds.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/code/Kinds.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,7 +25,6 @@
 
 package com.sun.tools.javac.code;
 
-import com.sun.tools.javac.util.Version;
 
 /** Internal symbol kinds, which distinguish between elements of
  *  different subclasses of Symbol. Symbol kinds are organized so they can be
@@ -36,7 +35,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Kinds.java	1.25 07/05/05")
 public class Kinds {
 
     private Kinds() {} // uninstantiable
--- a/j2se/src/share/classes/com/sun/tools/javac/code/Lint.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/code/Lint.java	Fri Aug 31 00:44:13 2007 +0000
@@ -33,7 +33,6 @@
 import com.sun.tools.javac.util.List;
 import com.sun.tools.javac.util.Options;
 import com.sun.tools.javac.util.Pair;
-import com.sun.tools.javac.util.Version;
 import static com.sun.tools.javac.code.Flags.*;
 
 
@@ -45,7 +44,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Lint.java	1.15 07/05/05")
 public class Lint
 {
     /** The context key for the root Lint object. */
--- a/j2se/src/share/classes/com/sun/tools/javac/code/Scope.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/code/Scope.java	Fri Aug 31 00:44:13 2007 +0000
@@ -39,7 +39,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Scope.java	1.47 07/05/05")
 public class Scope {
 
     /** The number of scopes that share this scope's hash table.
--- a/j2se/src/share/classes/com/sun/tools/javac/code/Source.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/code/Source.java	Fri Aug 31 00:44:13 2007 +0000
@@ -38,7 +38,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Source.java	1.51 07/05/05")
 public enum Source {
     /** 1.0 had no inner classes, and so could not pass the JCK. */
     // public static final Source JDK1_0 =		new Source("1.0");
--- a/j2se/src/share/classes/com/sun/tools/javac/code/Symbol.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/code/Symbol.java	Fri Aug 31 00:44:13 2007 +0000
@@ -58,7 +58,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Symbol.java	1.103 07/05/05")
 public abstract class Symbol implements Element {
     // public Throwable debug = new Throwable();
 
--- a/j2se/src/share/classes/com/sun/tools/javac/code/Symtab.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/code/Symtab.java	Fri Aug 31 00:44:13 2007 +0000
@@ -47,7 +47,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Symtab.java	1.72 07/05/05")
 public class Symtab {
     /** The context key for the symbol table. */
     protected static final Context.Key<Symtab> symtabKey =
--- a/j2se/src/share/classes/com/sun/tools/javac/code/Type.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/code/Type.java	Fri Aug 31 00:44:13 2007 +0000
@@ -66,7 +66,6 @@
  *
  *  @see TypeTags
  */
-@Version("@(#)Type.java	1.108 07/05/05")
 public class Type implements PrimitiveType {
 
     /** Constant type: no type at all. */
--- a/j2se/src/share/classes/com/sun/tools/javac/code/TypeTags.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/code/TypeTags.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,7 +25,6 @@
 
 package com.sun.tools.javac.code;
 
-import com.sun.tools.javac.util.Version;
 
 /** An interface for type tag values, which distinguish between different
  *  sorts of types.
@@ -35,7 +34,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)TypeTags.java	1.28 07/05/05")
 public class TypeTags {
 
     private TypeTags() {} // uninstantiable
--- a/j2se/src/share/classes/com/sun/tools/javac/code/Types.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/code/Types.java	Fri Aug 31 00:44:13 2007 +0000
@@ -63,7 +63,6 @@
  * This code and its internal interfaces are subject to change or
  * deletion without notice.</b>
  */
-@Version("@(#)Types.java	1.95 07/05/05")
 public class Types {
     protected static final Context.Key<Types> typesKey =
         new Context.Key<Types>();
--- a/j2se/src/share/classes/com/sun/tools/javac/comp/Annotate.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/comp/Annotate.java	Fri Aug 31 00:44:13 2007 +0000
@@ -40,7 +40,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Annotate.java	1.44 07/06/14")
 public class Annotate {
     protected static final Context.Key<Annotate> annotateKey =
 	new Context.Key<Annotate>();
--- a/j2se/src/share/classes/com/sun/tools/javac/comp/Attr.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/comp/Attr.java	Fri Aug 31 00:44:13 2007 +0000
@@ -64,7 +64,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Attr.java	1.229 07/06/19")
 public class Attr extends JCTree.Visitor {
     protected static final Context.Key<Attr> attrKey =
         new Context.Key<Attr>();
--- a/j2se/src/share/classes/com/sun/tools/javac/comp/AttrContext.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/comp/AttrContext.java	Fri Aug 31 00:44:13 2007 +0000
@@ -36,7 +36,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)AttrContext.java	1.32 07/05/05")
 public class AttrContext {
 
     /** The scope of local symbols.
--- a/j2se/src/share/classes/com/sun/tools/javac/comp/AttrContextEnv.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/comp/AttrContextEnv.java	Fri Aug 31 00:44:13 2007 +0000
@@ -26,7 +26,6 @@
 package com.sun.tools.javac.comp;
 
 import com.sun.tools.javac.tree.JCTree;
-import com.sun.tools.javac.util.Version;
 
 
 /** {@code Env<A>} specialized as {@code Env<AttrContext>}
@@ -36,7 +35,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)AttrContextEnv.java	1.19 07/05/05")
 public class AttrContextEnv extends Env<AttrContext> {
 
     /** Create an outermost environment for a given (toplevel)tree,
--- a/j2se/src/share/classes/com/sun/tools/javac/comp/Check.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/comp/Check.java	Fri Aug 31 00:44:13 2007 +0000
@@ -52,7 +52,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Check.java	1.174 07/06/14")
 public class Check {
     protected static final Context.Key<Check> checkKey =
 	new Context.Key<Check>();
--- a/j2se/src/share/classes/com/sun/tools/javac/comp/ConstFold.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/comp/ConstFold.java	Fri Aug 31 00:44:13 2007 +0000
@@ -42,7 +42,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)ConstFold.java	1.35 07/05/05")
 strictfp class ConstFold {
     protected static final Context.Key<ConstFold> constFoldKey =
 	new Context.Key<ConstFold>();
--- a/j2se/src/share/classes/com/sun/tools/javac/comp/Enter.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/comp/Enter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -89,7 +89,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Enter.java	1.141 07/06/14")
 public class Enter extends JCTree.Visitor {
     protected static final Context.Key<Enter> enterKey =
 	new Context.Key<Enter>();
--- a/j2se/src/share/classes/com/sun/tools/javac/comp/Env.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/comp/Env.java	Fri Aug 31 00:44:13 2007 +0000
@@ -42,7 +42,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Env.java	1.30 07/06/14")
 public class Env<A> implements Iterable<Env<A>> {
 
     /** The next enclosing environment.
--- a/j2se/src/share/classes/com/sun/tools/javac/comp/Flow.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/comp/Flow.java	Fri Aug 31 00:44:13 2007 +0000
@@ -173,7 +173,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Flow.java	1.96 07/06/14")
 public class Flow extends TreeScanner {
     protected static final Context.Key<Flow> flowKey =
 	new Context.Key<Flow>();
--- a/j2se/src/share/classes/com/sun/tools/javac/comp/Infer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/comp/Infer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -41,7 +41,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Infer.java	1.62 07/05/05")
 public class Infer {
     protected static final Context.Key<Infer> inferKey =
 	new Context.Key<Infer>();
--- a/j2se/src/share/classes/com/sun/tools/javac/comp/Lower.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/comp/Lower.java	Fri Aug 31 00:44:13 2007 +0000
@@ -53,7 +53,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Lower.java	1.173 07/06/14")
 public class Lower extends TreeTranslator {
     protected static final Context.Key<Lower> lowerKey =
 	new Context.Key<Lower>();
--- a/j2se/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -53,7 +53,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)MemberEnter.java	1.72 07/06/14")
 public class MemberEnter extends JCTree.Visitor implements Completer {
     protected static final Context.Key<MemberEnter> memberEnterKey =
         new Context.Key<MemberEnter>();
--- a/j2se/src/share/classes/com/sun/tools/javac/comp/Resolve.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/comp/Resolve.java	Fri Aug 31 00:44:13 2007 +0000
@@ -47,7 +47,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Resolve.java	1.141 07/06/14")
 public class Resolve {
     protected static final Context.Key<Resolve> resolveKey =
         new Context.Key<Resolve>();
--- a/j2se/src/share/classes/com/sun/tools/javac/comp/Todo.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/comp/Todo.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Todo.java	1.17 07/05/05")
 public class Todo extends ListBuffer<Env<AttrContext>> {
     /** The context key for the todo list. */
     protected static final Context.Key<Todo> todoKey =
--- a/j2se/src/share/classes/com/sun/tools/javac/comp/TransTypes.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/comp/TransTypes.java	Fri Aug 31 00:44:13 2007 +0000
@@ -46,7 +46,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)TransTypes.java	1.94 07/05/05")
 public class TransTypes extends TreeTranslator {
     /** The context key for the TransTypes phase. */
     protected static final Context.Key<TransTypes> transTypesKey =
--- a/j2se/src/share/classes/com/sun/tools/javac/jvm/ByteCodes.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/jvm/ByteCodes.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,7 +25,6 @@
 
 package com.sun.tools.javac.jvm;
 
-import com.sun.tools.javac.util.Version;
 
 /** Bytecode instruction codes, as well as typecodes used as
  *  instruction modifiers.
@@ -35,7 +34,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)ByteCodes.java	1.26 07/05/05")
 public interface ByteCodes {
 
     /** Byte code instruction codes.
--- a/j2se/src/share/classes/com/sun/tools/javac/jvm/CRTFlags.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/jvm/CRTFlags.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,7 +25,6 @@
 
 package com.sun.tools.javac.jvm;
 
-import com.sun.tools.javac.util.Version;
 
 /** The CharacterRangeTable flags indicating type of an entry.
  *
@@ -34,7 +33,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)CRTFlags.java	1.17 07/05/05")
 public interface CRTFlags {
 
     /** CRTEntry flags.
--- a/j2se/src/share/classes/com/sun/tools/javac/jvm/CRTable.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/jvm/CRTable.java	Fri Aug 31 00:44:13 2007 +0000
@@ -41,7 +41,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)CRTable.java	1.33 07/06/14")
 public class CRTable
 implements CRTFlags {
     
--- a/j2se/src/share/classes/com/sun/tools/javac/jvm/ClassFile.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/jvm/ClassFile.java	Fri Aug 31 00:44:13 2007 +0000
@@ -62,7 +62,6 @@
  *  you write code that depends on this, you do so at your own risk.
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b> */
-@Version("@(#)ClassFile.java	1.35 07/05/05")
 public class ClassFile {
 
     public final static int JAVA_MAGIC = 0xCAFEBABE;
--- a/j2se/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Fri Aug 31 00:44:13 2007 +0000
@@ -63,7 +63,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)ClassReader.java	1.142 07/05/05")
 public class ClassReader extends ClassFile implements Completer {
     /** The context key for the class reader. */
     protected static final Context.Key<ClassReader> classReaderKey =
--- a/j2se/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -55,7 +55,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)ClassWriter.java	1.131 07/07/20")
 public class ClassWriter extends ClassFile {
     protected static final Context.Key<ClassWriter> classWriterKey =
         new Context.Key<ClassWriter>();
--- a/j2se/src/share/classes/com/sun/tools/javac/jvm/Code.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/jvm/Code.java	Fri Aug 31 00:44:13 2007 +0000
@@ -44,7 +44,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Code.java	1.69 07/05/05")
 public class Code {
 
     public final boolean debugCode;
--- a/j2se/src/share/classes/com/sun/tools/javac/jvm/Gen.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/jvm/Gen.java	Fri Aug 31 00:44:13 2007 +0000
@@ -52,7 +52,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Gen.java	1.154 07/06/14")
 public class Gen extends JCTree.Visitor {
     protected static final Context.Key<Gen> genKey =
 	new Context.Key<Gen>();
--- a/j2se/src/share/classes/com/sun/tools/javac/jvm/Items.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/jvm/Items.java	Fri Aug 31 00:44:13 2007 +0000
@@ -50,7 +50,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Items.java	1.41 07/05/05")
 public class Items {
 
     /** The current constant pool.
--- a/j2se/src/share/classes/com/sun/tools/javac/jvm/Pool.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/jvm/Pool.java	Fri Aug 31 00:44:13 2007 +0000
@@ -38,7 +38,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Pool.java	1.29 07/05/05")
 public class Pool {
 
     public static final int MAX_ENTRIES = 0xFFFF;
--- a/j2se/src/share/classes/com/sun/tools/javac/jvm/Target.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/jvm/Target.java	Fri Aug 31 00:44:13 2007 +0000
@@ -38,7 +38,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Target.java	1.50 07/05/05")
 public enum Target {
     JDK1_1("1.1", 45, 3),
     JDK1_2("1.2", 46, 0),
--- a/j2se/src/share/classes/com/sun/tools/javac/jvm/UninitializedType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/jvm/UninitializedType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -27,7 +27,6 @@
 
 import com.sun.tools.javac.code.*;
 
-import com.sun.tools.javac.util.Version;
 
 /** These pseudo-types appear in the generated verifier tables to
  *  indicate objects that have been allocated but not yet constructed.
@@ -37,7 +36,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)UninitializedType.java	1.12 07/05/05")
 class UninitializedType extends Type.DelegatedType {
     public static final int UNINITIALIZED_THIS = TypeTags.TypeTagCount;
     public static final int UNINITIALIZED_OBJECT = UNINITIALIZED_THIS + 1;
--- a/j2se/src/share/classes/com/sun/tools/javac/main/CommandLine.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/main/CommandLine.java	Fri Aug 31 00:44:13 2007 +0000
@@ -31,7 +31,6 @@
 import java.io.BufferedReader;
 import java.io.StreamTokenizer;
 import com.sun.tools.javac.util.ListBuffer;
-import com.sun.tools.javac.util.Version;
 
 /**
  * Various utility methods for processing Java tool command line arguments.
@@ -41,7 +40,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)CommandLine.java	1.22 07/05/05")
 public class CommandLine {
     /**
      * Process Win32-style command files for the specified command line
--- a/j2se/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Fri Aug 31 00:44:13 2007 +0000
@@ -74,7 +74,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)JavaCompiler.java	1.117 07/06/14")
 public class JavaCompiler implements ClassReader.SourceCompleter {
     /** The context key for the compiler. */
     protected static final Context.Key<JavaCompiler> compilerKey =
--- a/j2se/src/share/classes/com/sun/tools/javac/main/JavacOption.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/main/JavacOption.java	Fri Aug 31 00:44:13 2007 +0000
@@ -27,7 +27,6 @@
 
 import com.sun.tools.javac.util.Log;
 import com.sun.tools.javac.util.Options;
-import com.sun.tools.javac.util.Version;
 import java.io.PrintWriter;
 
 /**
@@ -38,7 +37,6 @@
  * risk.  This code and its internal interfaces are subject to change
  * or deletion without notice.</b></p>
  */
-@Version("@(#)JavacOption.java	1.7 07/05/05")
 public interface JavacOption {
 
     OptionKind getKind();
--- a/j2se/src/share/classes/com/sun/tools/javac/main/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/main/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -48,7 +48,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Main.java	1.119 07/05/05")
 public class Main {
 
     /** The name of the compiler, for use in diagnostics.
--- a/j2se/src/share/classes/com/sun/tools/javac/main/OptionName.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/main/OptionName.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,7 +25,6 @@
 
 package com.sun.tools.javac.main;
 
-import com.sun.tools.javac.util.Version;
 
 /**
  * TODO: describe com.sun.tools.javac.main.OptionName
@@ -35,7 +34,6 @@
  * risk.  This code and its internal interfaces are subject to change
  * or deletion without notice.</b></p>
  */
-@Version("@(#)OptionName.java	1.8 07/05/05")
 public enum OptionName {
     G("-g"),
     G_NONE("-g:none"),
--- a/j2se/src/share/classes/com/sun/tools/javac/main/RecognizedOptions.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/main/RecognizedOptions.java	Fri Aug 31 00:44:13 2007 +0000
@@ -35,7 +35,6 @@
 import com.sun.tools.javac.util.ListBuffer;
 import com.sun.tools.javac.util.Log;
 import com.sun.tools.javac.util.Options;
-import com.sun.tools.javac.util.Version;
 import com.sun.tools.javac.processing.JavacProcessingEnvironment;
 import java.io.File;
 import java.io.FileWriter;
@@ -55,7 +54,6 @@
  * risk.  This code and its internal interfaces are subject to change
  * or deletion without notice.</b></p>
  */
-@Version("@(#)RecognizedOptions.java	1.13 07/05/05")
 public class RecognizedOptions {
     
     private RecognizedOptions() {}
--- a/j2se/src/share/classes/com/sun/tools/javac/model/FilteredMemberList.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/model/FilteredMemberList.java	Fri Aug 31 00:44:13 2007 +0000
@@ -44,7 +44,6 @@
  * This code and its internal interfaces are subject to change or
  * deletion without notice.</b>
  */
-@Version("@(#)FilteredMemberList.java	1.7 07/05/05")
 public class FilteredMemberList extends AbstractList<Symbol> {
 
     private final Scope scope;
--- a/j2se/src/share/classes/com/sun/tools/javac/model/JavacElements.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/model/JavacElements.java	Fri Aug 31 00:44:13 2007 +0000
@@ -59,7 +59,6 @@
  * risk.  This code and its internal interfaces are subject to change
  * or deletion without notice.</b></p>
  */
-@Version("@(#)JavacElements.java	1.20 07/06/14")
 public class JavacElements implements Elements {
 
     private JavaCompiler javaCompiler;
--- a/j2se/src/share/classes/com/sun/tools/javac/model/JavacSourcePosition.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/model/JavacSourcePosition.java	Fri Aug 31 00:44:13 2007 +0000
@@ -27,7 +27,6 @@
 
 import javax.tools.JavaFileObject;
 import com.sun.tools.javac.util.Position;
-import com.sun.tools.javac.util.Version;
 
 /**
  * Implementation of model API SourcePosition based on javac internal state.
@@ -37,7 +36,6 @@
  * risk.  This code and its internal interfaces are subject to change
  * or deletion without notice.</b></p>
  */
-@Version("@(#)JavacSourcePosition.java	1.8 07/05/05")
 class JavacSourcePosition {
 
     final JavaFileObject sourcefile;
--- a/j2se/src/share/classes/com/sun/tools/javac/model/JavacTypes.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/model/JavacTypes.java	Fri Aug 31 00:44:13 2007 +0000
@@ -42,7 +42,6 @@
  * risk.  This code and its internal interfaces are subject to change
  * or deletion without notice.</b></p>
  */
-@Version("@(#)JavacTypes.java	1.12 07/05/05")
 public class JavacTypes implements javax.lang.model.util.Types {
 
     private Symtab syms;
--- a/j2se/src/share/classes/com/sun/tools/javac/parser/EndPosParser.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/parser/EndPosParser.java	Fri Aug 31 00:44:13 2007 +0000
@@ -31,7 +31,6 @@
 import com.sun.tools.javac.tree.TreeInfo;
 import com.sun.tools.javac.util.Position;
 import com.sun.tools.javac.util.List;
-import com.sun.tools.javac.util.Version;
 
 import static com.sun.tools.javac.tree.JCTree.*;
 
@@ -44,7 +43,6 @@
  * This code and its internal interfaces are subject to change or
  * deletion without notice.</b></p>
  */
-@Version("@(#)EndPosParser.java	1.13 07/05/05")
 public class EndPosParser extends Parser {
 
     public EndPosParser(Factory fac, Lexer S, boolean keepDocComments) {
--- a/j2se/src/share/classes/com/sun/tools/javac/parser/Keywords.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/parser/Keywords.java	Fri Aug 31 00:44:13 2007 +0000
@@ -28,7 +28,6 @@
 import com.sun.tools.javac.util.Context;
 import com.sun.tools.javac.util.Log;
 import com.sun.tools.javac.util.Name;
-import com.sun.tools.javac.util.Version;
 
 import static com.sun.tools.javac.parser.Token.*;
 
@@ -40,7 +39,6 @@
  * This code and its internal interfaces are subject to change or
  * deletion without notice.</b>
  */
-@Version("@(#)Keywords.java	1.23 07/05/05")
 public class Keywords {
     public static final Context.Key<Keywords> keywordsKey =
 	new Context.Key<Keywords>();
--- a/j2se/src/share/classes/com/sun/tools/javac/parser/Lexer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/parser/Lexer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -37,7 +37,6 @@
  * This code and its internal interfaces are subject to change or
  * deletion without notice.</b>
  */
-@Version("@(#)Lexer.java	1.8 07/05/05")
 public interface Lexer {
 
     /**
--- a/j2se/src/share/classes/com/sun/tools/javac/parser/Parser.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/parser/Parser.java	Fri Aug 31 00:44:13 2007 +0000
@@ -48,7 +48,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Parser.java	1.108 07/06/14")
 public class Parser {
 
     /** A factory for creating parsers. */
--- a/j2se/src/share/classes/com/sun/tools/javac/parser/Scanner.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/parser/Scanner.java	Fri Aug 31 00:44:13 2007 +0000
@@ -47,7 +47,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Scanner.java	1.79 07/05/05")
 public class Scanner implements Lexer {
 
     private static boolean scannerDebug = false;
--- a/j2se/src/share/classes/com/sun/tools/javac/parser/Token.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/parser/Token.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,7 +25,6 @@
 
 package com.sun.tools.javac.parser;
 
-import com.sun.tools.javac.util.Version;
 
 /** An interface that defines codes for Java source tokens
  *  returned from lexical analysis.
@@ -35,7 +34,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Token.java	1.29 07/05/05")
 public enum Token {
     EOF,
     ERROR,
--- a/j2se/src/share/classes/com/sun/tools/javac/processing/AnnotationProcessingError.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/processing/AnnotationProcessingError.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,7 +25,6 @@
 
 package com.sun.tools.javac.processing;
 
-import com.sun.tools.javac.util.Version;
 
 /** 
  * Error thrown for problems encountered during annotation processing.
@@ -35,7 +34,6 @@
  * This code and its internal interfaces are subject to change or
  * deletion without notice.</b>
  */
-@Version("@(#)AnnotationProcessingError.java	1.8 07/05/05")
 public class AnnotationProcessingError extends Error {
     static final long serialVersionUID = 305337707019230790L;
     AnnotationProcessingError(Throwable cause) {
--- a/j2se/src/share/classes/com/sun/tools/javac/processing/JavacFiler.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/processing/JavacFiler.java	Fri Aug 31 00:44:13 2007 +0000
@@ -96,7 +96,6 @@
  * This code and its internal interfaces are subject to change or
  * deletion without notice.</b>
  */
-@Version("@(#)JavacFiler.java	1.20 07/05/05")
 public class JavacFiler implements Filer, Closeable {
     // TODO: Implement different transaction model for updating the
     // Filer's record keeping on file close.
@@ -571,7 +570,7 @@
     }
 
     public String toString() {
-        return "javac Filer version @(#)JavacFiler.java	1.20 07/05/05";
+        return "javac Filer";
     }
 
     /**
--- a/j2se/src/share/classes/com/sun/tools/javac/processing/JavacMessager.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/processing/JavacMessager.java	Fri Aug 31 00:44:13 2007 +0000
@@ -45,7 +45,6 @@
  * This code and its internal interfaces are subject to change or
  * deletion without notice.</b>
  */
-@Version("@(#)JavacMessager.java	1.15 07/05/05")
 public class JavacMessager implements Messager {
     Log log;
     JavacProcessingEnvironment processingEnv;
@@ -177,6 +176,6 @@
     }
 
     public String toString() {
-	return "javac Messager version @(#)JavacMessager.java	1.15 07/05/05";
+	return "javac Messager";
     }
 }
--- a/j2se/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java	Fri Aug 31 00:44:13 2007 +0000
@@ -78,7 +78,6 @@
  * This code and its internal interfaces are subject to change or
  * deletion without notice.</b>
  */
-@Version("@(#)JavacProcessingEnvironment.java	1.36 07/07/13")
 public class JavacProcessingEnvironment implements ProcessingEnvironment, Closeable {
     Options options;
 
@@ -1375,7 +1374,7 @@
     }
 
     public String toString() {
-        return "javac ProcessingEnvironment version @(#)JavacProcessingEnvironment.java	1.36 07/07/13";
+        return "javac ProcessingEnvironment";
     }
 
     public static boolean isValidOptionName(String optionName) {
--- a/j2se/src/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java	Fri Aug 31 00:44:13 2007 +0000
@@ -44,7 +44,6 @@
  * This code and its internal interfaces are subject to change or
  * deletion without notice.</b>
  */
-@Version("@(#)JavacRoundEnvironment.java	1.13 07/05/05")
 public class JavacRoundEnvironment implements RoundEnvironment {
     // Default equals and hashCode methods are okay.
 
--- a/j2se/src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,7 +25,6 @@
 
 package com.sun.tools.javac.processing;
 
-import com.sun.tools.javac.util.Version;
 import javax.annotation.processing.*;
 import javax.lang.model.*;
 import javax.lang.model.element.*;
@@ -51,7 +50,6 @@
  */
 @SupportedAnnotationTypes("*")
 @SupportedSourceVersion(SourceVersion.RELEASE_6)
-@Version("@(#)PrintingProcessor.java	1.13 07/05/05")
 public class PrintingProcessor extends AbstractProcessor {
     PrintWriter writer; 
 
--- a/j2se/src/share/classes/com/sun/tools/javac/tree/JCTree.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/tree/JCTree.java	Fri Aug 31 00:44:13 2007 +0000
@@ -79,7 +79,6 @@
  * @see TreeTranslator
  * @see Pretty
  */
-@Version("@(#)JCTree.java	1.84 07/06/14")
 public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {
 
     /* Tree tag values, identifying kinds of trees */
--- a/j2se/src/share/classes/com/sun/tools/javac/tree/Pretty.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/tree/Pretty.java	Fri Aug 31 00:44:13 2007 +0000
@@ -44,7 +44,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Pretty.java	1.76 07/06/14")
 public class Pretty extends JCTree.Visitor {
 
     public Pretty(Writer out, boolean sourceOutput) {
--- a/j2se/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java	Fri Aug 31 00:44:13 2007 +0000
@@ -44,7 +44,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)TreeInfo.java	1.57 07/06/14")
 public class TreeInfo {
     protected static final Context.Key<TreeInfo> treeInfoKey =
 	new Context.Key<TreeInfo>();
--- a/j2se/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java	Fri Aug 31 00:44:13 2007 +0000
@@ -44,7 +44,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)TreeMaker.java	1.78 07/05/05")
 public class TreeMaker implements JCTree.Factory {
 
     /** The context key for the tree factory. */
--- a/j2se/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java	Fri Aug 31 00:44:13 2007 +0000
@@ -41,7 +41,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)TreeScanner.java	1.32 07/05/05")
 public class TreeScanner extends Visitor {
 
     /** Visitor method: Scan a single node.
--- a/j2se/src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java	Fri Aug 31 00:44:13 2007 +0000
@@ -42,7 +42,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)TreeTranslator.java	1.44 07/05/05")
 public class TreeTranslator extends JCTree.Visitor {
 
     /** Visitor result field: a tree
--- a/j2se/src/share/classes/com/sun/tools/javac/util/Abort.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/Abort.java	Fri Aug 31 00:44:13 2007 +0000
@@ -33,7 +33,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Abort.java	1.25 07/05/05")
 public class Abort extends Error {
     private static final long serialVersionUID = 0;
 
--- a/j2se/src/share/classes/com/sun/tools/javac/util/BaseFileObject.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/BaseFileObject.java	Fri Aug 31 00:44:13 2007 +0000
@@ -35,7 +35,6 @@
 
 import static javax.tools.JavaFileObject.Kind.*;
 
-@Version("@(#)BaseFileObject.java	1.13 07/05/05")
 public abstract class BaseFileObject implements JavaFileObject {
 
     public JavaFileObject.Kind getKind() {
--- a/j2se/src/share/classes/com/sun/tools/javac/util/Bits.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/Bits.java	Fri Aug 31 00:44:13 2007 +0000
@@ -32,7 +32,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Bits.java	1.26 07/05/05")
 public class Bits {
 
 
--- a/j2se/src/share/classes/com/sun/tools/javac/util/ByteBuffer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/ByteBuffer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -36,7 +36,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)ByteBuffer.java	1.26 07/05/05")
 public class ByteBuffer {
 
     /** An array holding the bytes in this buffer; can be grown.
--- a/j2se/src/share/classes/com/sun/tools/javac/util/ClientCodeException.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/ClientCodeException.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)ClientCodeException.java	1.8 07/05/05")
 public class ClientCodeException extends RuntimeException {
 
     static final long serialVersionUID = -5674494409392415163L;
--- a/j2se/src/share/classes/com/sun/tools/javac/util/Constants.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/Constants.java	Fri Aug 31 00:44:13 2007 +0000
@@ -37,7 +37,6 @@
  * This code and its internal interfaces are subject to change or
  * deletion without notice.</b>
  */
-@Version("@(#)Constants.java	1.7 07/05/05")
 public class Constants {
 
     /**
--- a/j2se/src/share/classes/com/sun/tools/javac/util/Context.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/Context.java	Fri Aug 31 00:44:13 2007 +0000
@@ -97,7 +97,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Context.java	1.27 07/05/05")
 public class Context {
     /** The client creates an instance of this class for each key.
      */
--- a/j2se/src/share/classes/com/sun/tools/javac/util/Convert.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/Convert.java	Fri Aug 31 00:44:13 2007 +0000
@@ -33,7 +33,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Convert.java	1.29 07/05/05")
 public class Convert {
 
     /** Convert string to integer.
--- a/j2se/src/share/classes/com/sun/tools/javac/util/DiagnosticFormatter.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/DiagnosticFormatter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -47,7 +47,6 @@
  * <li>%m: the text or the diagnostic, including any appropriate arguments
  * </ul>
  */
-@Version("@(#)DiagnosticFormatter.java	1.19 07/05/05")
 public class DiagnosticFormatter {
     /**
      * A format string to be used for diagnostics with a given position.
--- a/j2se/src/share/classes/com/sun/tools/javac/util/FatalError.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/FatalError.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)FatalError.java	1.22 07/05/05")
 public class FatalError extends Error {
     private static final long serialVersionUID = 0;
 
--- a/j2se/src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java	Fri Aug 31 00:44:13 2007 +0000
@@ -47,7 +47,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)JCDiagnostic.java	1.27 07/05/05")
 public class JCDiagnostic implements Diagnostic<JavaFileObject> {
     /** A factory for creating diagnostic objects. */
     public static class Factory {
--- a/j2se/src/share/classes/com/sun/tools/javac/util/JavacFileManager.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/JavacFileManager.java	Fri Aug 31 00:44:13 2007 +0000
@@ -86,7 +86,6 @@
  * This class provides access to the source, class and other files
  * used by the compiler and related tools.
  */
-@Version("@(#)JavacFileManager.java	1.48 07/05/05")
 public class JavacFileManager implements StandardJavaFileManager {
 
     private static final String[] symbolFileLocation = { "lib", "ct.sym" };
--- a/j2se/src/share/classes/com/sun/tools/javac/util/LayoutCharacters.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/LayoutCharacters.java	Fri Aug 31 00:44:13 2007 +0000
@@ -33,7 +33,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)LayoutCharacters.java	1.24 07/05/05")
 public interface LayoutCharacters {
 
     /** Tabulator column increment.
--- a/j2se/src/share/classes/com/sun/tools/javac/util/List.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/List.java	Fri Aug 31 00:44:13 2007 +0000
@@ -48,7 +48,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)List.java	1.43 07/05/05")
 public class List<A> extends AbstractCollection<A> implements java.util.List<A> {
 
     /** The first element of the list, supposed to be immutable.
--- a/j2se/src/share/classes/com/sun/tools/javac/util/ListBuffer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/ListBuffer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -37,7 +37,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)ListBuffer.java	1.34 07/05/05")
 public class ListBuffer<A> implements Collection<A> {
 
     public static <T> ListBuffer<T> lb() {
--- a/j2se/src/share/classes/com/sun/tools/javac/util/Log.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/Log.java	Fri Aug 31 00:44:13 2007 +0000
@@ -48,7 +48,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Log.java	1.72 07/05/05")
 public class Log {
     /** The context key for the log. */
     public static final Context.Key<Log> logKey
--- a/j2se/src/share/classes/com/sun/tools/javac/util/MandatoryWarningHandler.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/MandatoryWarningHandler.java	Fri Aug 31 00:44:13 2007 +0000
@@ -48,7 +48,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)MandatoryWarningHandler.java	1.15 07/05/05")
 public class MandatoryWarningHandler {
 
     /**
--- a/j2se/src/share/classes/com/sun/tools/javac/util/Messages.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/Messages.java	Fri Aug 31 00:44:13 2007 +0000
@@ -37,7 +37,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Messages.java	1.9 07/05/05")
 public class Messages {
     /** The context key for the Messages object. */
     protected static final Context.Key<Messages> messagesKey =
--- a/j2se/src/share/classes/com/sun/tools/javac/util/Name.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/Name.java	Fri Aug 31 00:44:13 2007 +0000
@@ -40,7 +40,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Name.java	1.58 07/05/05")
 public class Name implements javax.lang.model.element.Name {
 
     /** The table structure where the name is stored
--- a/j2se/src/share/classes/com/sun/tools/javac/util/Old199.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/Old199.java	Fri Aug 31 00:44:13 2007 +0000
@@ -45,7 +45,6 @@
  * @author Peter von der Ah\u00e9
  */
 @Deprecated
-@Version("@(#)Old199.java	1.11 07/05/05")
 public class Old199 {
 
     private Old199() {}
--- a/j2se/src/share/classes/com/sun/tools/javac/util/Options.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/Options.java	Fri Aug 31 00:44:13 2007 +0000
@@ -37,7 +37,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Options.java	1.20 07/05/05")
 public class Options {
     private static final long serialVersionUID = 0;
 
--- a/j2se/src/share/classes/com/sun/tools/javac/util/Pair.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/Pair.java	Fri Aug 31 00:44:13 2007 +0000
@@ -32,7 +32,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Pair.java	1.25 07/05/05")
 public class Pair<A, B> {
 
     public final A fst;
--- a/j2se/src/share/classes/com/sun/tools/javac/util/Paths.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/Paths.java	Fri Aug 31 00:44:13 2007 +0000
@@ -64,7 +64,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Paths.java	1.29 07/05/05")
 public class Paths {
 
     /** The context key for the todo list */
--- a/j2se/src/share/classes/com/sun/tools/javac/util/Position.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/Position.java	Fri Aug 31 00:44:13 2007 +0000
@@ -41,7 +41,6 @@
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-@Version("@(#)Position.java	1.25 07/05/05")
 public class Position {
     public static final int NOPOS        = -1;
 
--- a/j2se/src/share/classes/com/sun/tools/javac/util/PropagatedException.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/PropagatedException.java	Fri Aug 31 00:44:13 2007 +0000
@@ -35,7 +35,6 @@
  *
  * @author Peter von der Ah\u00e9
  */
-@Version("@(#)PropagatedException.java	1.7 07/05/05")
 public class PropagatedException extends RuntimeException {
 
     static final long serialVersionUID = -6065309339888775367L;
--- a/j2se/src/share/classes/com/sun/tools/javac/util/Version.java	Fri Aug 17 01:47:29 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package com.sun.tools.javac.util;
-
-import java.lang.annotation.*;
-
-/**
- * Used to provide version info for a class.
- */
-@Retention(RetentionPolicy.CLASS)
-@Target(ElementType.TYPE)
-@Version("@(#)Version.java	1.8 07/05/05")
-public @interface Version {
-    String value();
-}
--- a/j2se/src/share/classes/com/sun/tools/javac/util/Warner.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/util/Warner.java	Fri Aug 31 00:44:13 2007 +0000
@@ -36,7 +36,6 @@
  * risk.  This code and its internal interfaces are subject to change
  * or deletion without notice.
  */
-@Version("@(#)Warner.java	1.25 07/05/05")
 public class Warner {
     public static final Warner noWarnings = new Warner();
 
--- a/j2se/src/share/classes/com/sun/tools/javac/zip/ZipFileIndex.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javac/zip/ZipFileIndex.java	Fri Aug 31 00:44:13 2007 +0000
@@ -112,11 +112,8 @@
             zi = getExistingZipIndex(zipFile);
 
             if (zi == null || (zi != null && zipFile.lastModified() != zi.zipFileLastModified)) {
-                zi = new ZipFileIndex(zipFile);
-                zi.writeIndex = writeIndex;
-                zi.symbolFilePrefixLength = symbolFilePrefixLen;
-                zi.usePreindexedCache = useCache;
-                zi.preindexedCacheLocation = cacheLocation;
+                zi = new ZipFileIndex(zipFile, symbolFilePrefixLen, writeIndex,
+                        useCache, cacheLocation);
                 zipFileIndexCache.put(zipFile, zi);
             }
         }
@@ -196,11 +193,20 @@
         }
     }
     
-    private ZipFileIndex(File zipFile) {
+    private ZipFileIndex(File zipFile, int symbolFilePrefixLen, boolean writeIndex,
+            boolean useCache, String cacheLocation) throws IOException {
         this.zipFile = zipFile;
+        this.symbolFilePrefixLength = symbolFilePrefixLen;
+        this.writeIndex = writeIndex;
+        this.usePreindexedCache = useCache;
+        this.preindexedCacheLocation = cacheLocation;
+
         if (zipFile != null) {
             this.zipFileLastModified = zipFile.lastModified();
         }
+        
+        // Validate integrity of the zip file
+        checkIndex();
     }
     
     public String toString() {
@@ -226,7 +232,7 @@
      * Here we need to make sure that the ZipFileIndex is valid. Check the timestamp of the file and
      * if its the same as the one at the time the index was build we don't need to reopen anything.
      */
-    private void checkIndex() {
+    private void checkIndex() throws IOException {
         boolean isUpToDate = true;
         if (!isUpToDate()) {
             closeFile();
@@ -253,7 +259,6 @@
             long totalLength = zipRandomFile.length();
             ZipDirectory directory = new ZipDirectory(zipRandomFile, 0L, totalLength, this);
             directory.buildIndex();
-        } catch (IOException ex) {
         } finally {
             if (zipRandomFile != null) {
                 closeFile();
@@ -321,6 +326,9 @@
 
             return de == null ? null : de.getEntry(lookFor);
         }
+        catch (IOException e) {
+            return null;
+        }
         finally {
             lock.unlock();
         }
@@ -346,6 +354,9 @@
             }
             return ret;
         }
+        catch (IOException e) {
+            return EMPTY_LIST;
+        }
         finally {
             lock.unlock();
         }
@@ -371,6 +382,9 @@
 
             return ret;
         }
+        catch (IOException e) {
+            return EMPTY_LIST;
+        }
         finally {
             lock.unlock();
         }
@@ -392,6 +406,9 @@
 
             return allDirs;
         }
+        catch (IOException e) {
+            return Collections.EMPTY_SET;
+        }
         finally {
             lock.unlock();
         }
@@ -410,12 +427,15 @@
             checkIndex();
             return getZipIndexEntry(path) != null;
         }
+        catch (IOException e) {
+            return false;
+        }
         finally {
             lock.unlock();
         }
     }
     
-    public boolean isDirectory(String path) {
+    public boolean isDirectory(String path) throws IOException {
         lock.lock();
         try {
             // The top level in a zip file is always a directory.
@@ -536,7 +556,7 @@
         int size = entry.size;
         byte[] buf = new byte[size];
         if (inflate(cbuf, buf) != size)
-            throw new IOException("zip file is corrupted");
+            throw new ZipException("corrupted zip file");
         
         return buf;
     }
@@ -568,7 +588,8 @@
         
         int count = inflate(cbuf, buffer);
         if (count == -1)
-            throw new IOException("zip file is corrupted");
+            throw new ZipException("corrupted zip file");
+        
         return entry.size;
     }
     
@@ -581,9 +602,9 @@
         byte[] header = new byte[30];
         zipRandomFile.readFully(header);
         if (get4ByteLittleEndian(header, 0) != 0x04034b50)
-            throw new IOException("zip file is corrupted");
+            throw new ZipException("corrupted zip file");
         if ((get2ByteLittleEndian(header, 6) & 1) != 0)
-            throw new IOException("zip file is encrypted"); // offset 6 in the header of the ZipFileEntry
+            throw new ZipException("encrypted zip file"); // offset 6 in the header of the ZipFileEntry
         return header;
     }
     
@@ -684,7 +705,7 @@
                     endbufend = endbufpos + 21;
                 }
             }
-            throw new IOException("bad zip file");
+            throw new ZipException("cannot read zip file");
         }
         private void buildIndex() throws IOException {
             int entryCount = get2ByteLittleEndian(zipDir, 0);
@@ -717,7 +738,7 @@
         private int readEntry(int pos, List entryList,
                 Map directories) throws IOException {
             if (get4ByteLittleEndian(zipDir, pos) != 0x02014b50) {
-                throw new IOException("bad folder entry");
+                throw new ZipException("cannot read zip file entry");
             }
 
             int dirStart = pos + 46;
@@ -802,7 +823,7 @@
      * Returns the last modified timestamp of a zip file.
      * @return long
      */
-    public long getZipFileLastModified() {
+    public long getZipFileLastModified() throws IOException {
         lock.lock();
         try {
             checkIndex();
--- a/j2se/src/share/classes/com/sun/tools/javadoc/AbstractTypeImpl.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javadoc/AbstractTypeImpl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -37,7 +37,6 @@
  * <code>ProgramElementDoc</code>).
  *
  * @author Scott Seligman
- * @version 1.11 07/05/05
  * @since 1.5
  */
 abstract class AbstractTypeImpl implements com.sun.javadoc.Type {
--- a/j2se/src/share/classes/com/sun/tools/javadoc/AnnotationDescImpl.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javadoc/AnnotationDescImpl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -41,7 +41,6 @@
  * java.lang.annotation.Annotation.
  * 
  * @author Scott Seligman
- * @version 1.11 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/tools/javadoc/AnnotationTypeDocImpl.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javadoc/AnnotationTypeDocImpl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -44,7 +44,6 @@
  * Represents an annotation type.
  * 
  * @author Scott Seligman
- * @version 1.16 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/tools/javadoc/AnnotationTypeElementDocImpl.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javadoc/AnnotationTypeElementDocImpl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -39,7 +39,6 @@
  * Represents an element of an annotation type.
  * 
  * @author Scott Seligman
- * @version 1.15 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/tools/javadoc/AnnotationValueImpl.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javadoc/AnnotationValueImpl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -38,7 +38,6 @@
  * Represents a value of an annotation type element.
  * 
  * @author Scott Seligman
- * @version 1.14 07/05/05
  * @since 1.5
  */
 
--- a/j2se/src/share/classes/com/sun/tools/javadoc/JavadocClassReader.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javadoc/JavadocClassReader.java	Fri Aug 31 00:44:13 2007 +0000
@@ -90,7 +90,19 @@
 		String classPathName = entryName.substring(0, lastSep + 1);
 		docenv.getPackageDoc(pack).setDocPath(zipName, classPathName);
 	    }
-	    else {
+            else if (fo instanceof JavacFileManager.ZipFileIndexFileObject) {
+		JavacFileManager.ZipFileIndexFileObject zfo = (JavacFileManager.ZipFileIndexFileObject) fo;
+		String zipName = zfo.getZipName();
+		String entryName = zfo.getZipEntryName();
+                if (File.separatorChar != '/') {
+                    entryName = entryName.replace(File.separatorChar, '/');
+                }
+                
+		int lastSep = entryName.lastIndexOf("/");
+		String classPathName = entryName.substring(0, lastSep + 1);
+		docenv.getPackageDoc(pack).setDocPath(zipName, classPathName);
+	    }
+            else {
 		File fileDir = new File(Old199.getPath(fo)).getParentFile();
 		docenv.getPackageDoc(pack).setDocPath(fileDir.getAbsolutePath());
 	    }
--- a/j2se/src/share/classes/com/sun/tools/javadoc/ModifierFilter.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javadoc/ModifierFilter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -33,7 +33,6 @@
  *   Classes, methods and fields can be filtered, or filtering
  *   can be done directly on modifier bits. 
  *   @see com.sun.tools.javac.code.Flags;
- *   @version 07/05/05
  *   @author Robert Field
  */
 
--- a/j2se/src/share/classes/com/sun/tools/javadoc/ParameterizedTypeImpl.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javadoc/ParameterizedTypeImpl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -43,7 +43,6 @@
  * represents an invocation of a generic class or interface.
  *
  * @author Scott Seligman
- * @version 1.18 07/05/05
  * @since 1.5
  */
 public class ParameterizedTypeImpl
--- a/j2se/src/share/classes/com/sun/tools/javadoc/TypeVariableImpl.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javadoc/TypeVariableImpl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -42,7 +42,6 @@
  * represents a type variable.
  *
  * @author Scott Seligman
- * @version 1.13 07/05/05
  * @since 1.5
  */
 public class TypeVariableImpl extends AbstractTypeImpl implements TypeVariable {
--- a/j2se/src/share/classes/com/sun/tools/javadoc/WildcardTypeImpl.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/com/sun/tools/javadoc/WildcardTypeImpl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -40,7 +40,6 @@
  * represents a wildcard type.
  *
  * @author Scott Seligman
- * @version 1.17 07/05/05
  * @since 1.5
  */
 public class WildcardTypeImpl extends AbstractTypeImpl implements WildcardType {
--- a/j2se/src/share/classes/java/awt/AttributeValue.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/awt/AttributeValue.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2001 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1999-2007 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,21 +25,25 @@
 
 package java.awt;
 
-import sun.awt.DebugHelper;
+import java.util.logging.*;
 
 abstract class AttributeValue {
+    private static final Logger log = Logger.getLogger("java.awt.AttributeValue");
+
     private final int value;
     private final String[] names;
 
-    private static final DebugHelper dbg =
-        DebugHelper.create(AttributeValue.class);
-
     protected AttributeValue(int value, String[] names) {
-        if (dbg.on) {
-	    dbg.assertion(value >= 0 && names != null && value < names.length);
-	}
+        if (log.isLoggable(Level.FINEST)) {
+            log.log(Level.FINEST, "value = " + value + ", names = " + names);
+        }
+        if (log.isLoggable(Level.FINER)) {
+            if ((value < 0) || (names == null) || (value >= names.length)) {
+                log.log(Level.FINER, "Assertion failed");
+            }
+        }
         this.value = value;
-	this.names = names;
+        this.names = names;
     }
     // This hashCode is used by the sun.awt implementation as an array
     // index.
--- a/j2se/src/share/classes/java/awt/Component.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/awt/Component.java	Fri Aug 31 00:44:13 2007 +0000
@@ -65,7 +65,6 @@
 import sun.security.action.GetPropertyAction;
 import sun.awt.AppContext;
 import sun.awt.ConstrainableGraphics;
-import sun.awt.DebugHelper;
 import sun.awt.SubRegionShowable;
 import sun.awt.WindowClosingListener;
 import sun.awt.CausedFocusEvent;
@@ -73,6 +72,7 @@
 import sun.awt.dnd.SunDropTargetEvent;
 import sun.awt.im.CompositionArea;
 import sun.java2d.SunGraphics2D;
+import sun.java2d.pipe.Region;
 import sun.awt.RequestFocusController;
 
 /**
@@ -161,7 +161,7 @@
  * <a href="../../java/awt/doc-files/FocusSpec.html">Focus Specification</a>
  * for more information.
  *
- * @version     1.442, 06/25/07
+ * @version     1.445, 07/26/07
  * @author      Arthur van Hoff
  * @author      Sami Shaio
  */
@@ -169,8 +169,11 @@
                                            Serializable
 {
 
+    private static final Logger log = Logger.getLogger("java.awt.Component");
+    private static final Logger eventLog = Logger.getLogger("java.awt.event.Component");
     private static final Logger focusLog = Logger.getLogger("java.awt.focus.Component");
-    private static final Logger log = Logger.getLogger("java.awt.Component");
+    private static final Logger mixingLog = Logger.getLogger("java.awt.mixing.Component");
+
     /**
      * The peer of the component. The peer implements the component's
      * behavior. The peer is set when the <code>Component</code> is 
@@ -555,8 +558,6 @@
      */
     long eventMask = AWTEvent.INPUT_METHODS_ENABLED_MASK;
 
-    private static final DebugHelper dbg = DebugHelper.create(Component.class);
-
     /**
      * Static properties for incremental drawing.
      * @see #imageUpdate
@@ -732,6 +733,26 @@
         OTHER
     }
 
+    /*
+     * The shape set with the applyCompoundShape() method. It uncludes the result 
+     * of the HW/LW mixing related shape computation. It may also include 
+     * the user-specified shape of the component.
+     */
+    private transient Region compoundShape = null;
+
+    /*
+     * Indicates whether addNotify() is complete
+     * (i.e. the peer is created).
+     */
+    private transient boolean isAddNotifyComplete = false;
+
+    private static final PropertyChangeListener opaquePropertyChangeListener = 
+        new PropertyChangeListener() {
+            public void propertyChange(java.beans.PropertyChangeEvent evt) {
+                ((Component)evt.getSource()).mixOnOpaqueChanging();
+            }
+        };
+
     /**
      * Should only be used in subclass getBounds to check that part of bounds
      * is actualy changing
@@ -826,6 +847,13 @@
         return parent;
     }
 
+    // This method is overriden in the Window class to return null,
+    //    because the parent field of the Window object contains
+    //    the owner of the window, not its parent.
+    Container getContainer() {
+        return getParent();
+    }
+
     /**
      * @deprecated As of JDK version 1.1,
      * programs should not directly manipulate peers;
@@ -976,6 +1004,12 @@
     public final Object getTreeLock() {
         return LOCK;
     }
+    
+    final void checkTreeLock() {
+        if (!Thread.holdsLock(getTreeLock())) {
+            throw new IllegalStateException("This function should be called while holding treeLock");
+        }
+    }
 
     /**
      * Gets the toolkit of this component. Note that
@@ -1383,6 +1417,7 @@
         if (!visible) {
             synchronized (getTreeLock()) {
                 visible = true;
+                mixOnShowing();
                 ComponentPeer peer = this.peer;
                 if (peer != null) {
                     peer.show();
@@ -1449,6 +1484,7 @@
             clearMostRecentFocusOwnerOnHide();
             synchronized (getTreeLock()) {
                 visible = false;
+                mixOnHiding(isLightweight());
                 if (containsFocus()) {
                     autoTransferFocus(true);
                 }
@@ -2003,6 +2039,7 @@
                 }
                 
                 boolean needNotify = true;
+                mixOnReshaping();
                 if (peer != null) {
                     // LightwightPeer is an empty stub so can skip peer.reshape
                     if (!(peer instanceof LightweightPeer)) {                        
@@ -4256,11 +4293,13 @@
         // Check that this component belongs to this app-context
         AppContext compContext = appContext;
         if (compContext != null && !compContext.equals(AppContext.getAppContext())) {
-            log.fine("Event " + e + " is being dispatched on the wrong AppContext");
-        }
-
-        if (log.isLoggable(Level.FINEST)) {
-            log.log(Level.FINEST, "{0}", e);
+            if (eventLog.isLoggable(Level.FINE)) {
+                eventLog.log(Level.FINE, "Event " + e + " is being dispatched on the wrong AppContext");
+            }
+        }
+
+        if (eventLog.isLoggable(Level.FINEST)) {
+            eventLog.log(Level.FINEST, "{0}", e);
         }
 
         /*
@@ -4295,8 +4334,8 @@
                 return;
             }
         }
-        if (e instanceof FocusEvent && focusLog.isLoggable(Level.FINE)) {
-            focusLog.fine("" + e);
+        if ((e instanceof FocusEvent) && focusLog.isLoggable(Level.FINEST)) {
+            focusLog.log(Level.FINEST, "" + e);
         }
         // MouseWheel may need to be retargeted here so that
         // AWTEventListener sees the event go to the correct
@@ -4353,8 +4392,8 @@
 		if (inputContext != null) {
 		    inputContext.dispatchEvent(e);
 		    if (e.isConsumed()) {
-			if (e instanceof FocusEvent && focusLog.isLoggable(Level.FINER)) {
-			    focusLog.finer("3579: Skipping " + e);
+			if ((e instanceof FocusEvent) && focusLog.isLoggable(Level.FINEST)) {
+			    focusLog.log(Level.FINEST, "3579: Skipping " + e);
 			}
 			return;
 		    }                
@@ -4388,7 +4427,9 @@
               if (p != null) {
                   p.preProcessKeyEvent((KeyEvent)e);
                   if (e.isConsumed()) {
-                        if (focusLog.isLoggable(Level.FINEST)) focusLog.finest("Pre-process consumed event");
+                        if (focusLog.isLoggable(Level.FINEST)) {
+                            focusLog.log(Level.FINEST, "Pre-process consumed event");
+                        }
                       return;
                   }
               }
@@ -4519,9 +4560,9 @@
                                   // position relative to its parent.
         MouseWheelEvent newMWE;
 
-        if (dbg.on) {
-            dbg.println("Component.dispatchMouseWheelToAncestor");
-            dbg.println("orig event src is of " + e.getSource().getClass());
+        if (eventLog.isLoggable(Level.FINEST)) {
+            eventLog.log(Level.FINEST, "dispatchMouseWheelToAncestor");
+            eventLog.log(Level.FINEST, "orig event src is of " + e.getSource().getClass());
         }
 
         /* parent field for Window refers to the owning Window.
@@ -4542,7 +4583,9 @@
                 }
             }
 
-            if (dbg.on) dbg.println("new event src is " + anc.getClass());
+            if (eventLog.isLoggable(Level.FINEST)) {
+                eventLog.log(Level.FINEST, "new event src is " + anc.getClass());
+            }
 
             if (anc != null && anc.eventEnabled(e)) {
                 // Change event to be from new source, with new x,y
@@ -4562,7 +4605,12 @@
                                              e.getScrollAmount(),
                                              e.getWheelRotation());
                 ((AWTEvent)e).copyPrivateDataInto(newMWE);
-                anc.dispatchEventImpl(newMWE);
+                // When dispatching a wheel event to 
+                // ancestor, there is no need trying to find descendant
+                // lightweights to dispatch event to. 
+                // If we dispatch the event to toplevel ancestor, 
+                // this could encolse the loop: 6480024.
+                anc.dispatchEventToSelf(newMWE);
             }
         }
         return true;
@@ -5029,10 +5077,13 @@
 
     // Should only be called while holding the tree lock
     int numListening(long mask) {
-        if (dbg.on) {
-            // One mask or the other, but not neither or both.
-            dbg.assertion(mask == AWTEvent.HIERARCHY_EVENT_MASK ||
-                          mask == AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK);
+        // One mask or the other, but not neither or both.
+        if (eventLog.isLoggable(Level.FINE)) {
+            if ((mask != AWTEvent.HIERARCHY_EVENT_MASK) &&
+                (mask != AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK))
+            {
+                eventLog.log(Level.FINE, "Assertion failed");
+            }
         }
         if ((mask == AWTEvent.HIERARCHY_EVENT_MASK &&
              (hierarchyListener != null ||
@@ -5068,8 +5119,10 @@
               break;
           case HierarchyEvent.ANCESTOR_MOVED:
           case HierarchyEvent.ANCESTOR_RESIZED:
-              if (dbg.on) {
-                  dbg.assertion(changeFlags == 0);
+              if (eventLog.isLoggable(Level.FINE)) {
+                  if (changeFlags != 0) {
+                      eventLog.log(Level.FINE, "Assertion (changeFlags == 0) failed");
+                  }
               }
               if (hierarchyBoundsListener != null ||
                   (eventMask & AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK) != 0 ||
@@ -5081,8 +5134,9 @@
               }
               break;
           default:
-              if (dbg.on) {
-                  dbg.assertion(false);
+              // assert false
+              if (eventLog.isLoggable(Level.FINE)) {
+                  eventLog.log(Level.FINE, "This code must never be reached");
               }
               break;
         }
@@ -5350,8 +5404,6 @@
         mouseWheelListener = AWTEventMulticaster.add(mouseWheelListener,l);
         newEventsOnly = true;
 
-        dbg.println("Component.addMouseWheelListener(): newEventsOnly = " + newEventsOnly);
-
         // if this is a lightweight component, enable mouse events
         // in the native container.
         if (peer instanceof LightweightPeer) {
@@ -6448,6 +6500,11 @@
 
             peerFont = getFont();
 
+            if (getContainer() != null && !isAddNotifyComplete) {
+                getContainer().increaseComponentCount(this);
+            }
+
+
             // Update stacking order
             if (parent != null && parent.peer != null) {
                 ContainerPeer parentContPeer = (ContainerPeer) parent.peer;
@@ -6466,6 +6523,13 @@
                     parentContPeer.restack();
                 }
             }
+                
+            if (!isAddNotifyComplete) { 
+                addPropertyChangeListener("opaque", opaquePropertyChangeListener);
+                mixOnShowing();
+            }
+            
+            isAddNotifyComplete = true;
 
             if (hierarchyListener != null ||
                 (eventMask & AWTEvent.HIERARCHY_EVENT_MASK) != 0 ||
@@ -6513,6 +6577,10 @@
                     clearGlobalFocusOwner();
             }
 
+            if (getContainer() != null && isAddNotifyComplete) {
+                getContainer().decreaseComponentCount(this);
+            }
+
             int npopups = (popups != null? popups.size() : 0);
             for (int i = 0 ; i < npopups ; i++) {
                 PopupMenu popup = (PopupMenu)popups.elementAt(i);
@@ -6534,6 +6602,7 @@
 
             ComponentPeer p = peer;
             if (p != null) {
+                boolean isLightweight = isLightweight();
 
                 if (bufferStrategy instanceof FlipBufferStrategy) {
                     ((FlipBufferStrategy)bufferStrategy).destroyBuffers();
@@ -6554,6 +6623,11 @@
                     discardKeyEvents(this);
 
                 p.dispose();
+                
+                mixOnHiding(isLightweight);
+                removePropertyChangeListener("opaque", opaquePropertyChangeListener);
+                
+                isAddNotifyComplete = false;
             }
 
             if (hierarchyListener != null ||
@@ -7143,7 +7217,9 @@
                                      CausedFocusEvent.Cause cause)
     {
         if (!isRequestFocusAccepted(temporary, focusedWindowChangeAllowed, cause)) {
-            focusLog.finest("requestFocus is not accepted");
+            if (focusLog.isLoggable(Level.FINEST)) {
+                focusLog.log(Level.FINEST, "requestFocus is not accepted");
+            }
             return false;
         }
 
@@ -7153,7 +7229,9 @@
         Component window = this;
         while ( (window != null) && !(window instanceof Window)) {
             if (!window.isVisible()) {
-                focusLog.finest("component is recurively invisible");
+                if (focusLog.isLoggable(Level.FINEST)) {
+                    focusLog.log(Level.FINEST, "component is recurively invisible");
+                }
                 return false;
             }
             window = window.parent;
@@ -7163,12 +7241,16 @@
         Component heavyweight = (peer instanceof LightweightPeer)
             ? getNativeContainer() : this;
         if (heavyweight == null || !heavyweight.isVisible()) {
-            focusLog.finest("Component is not a part of visible hierarchy");
+            if (focusLog.isLoggable(Level.FINEST)) {
+                focusLog.log(Level.FINEST, "Component is not a part of visible hierarchy");
+            }
             return false;
         }
         peer = heavyweight.peer;
         if (peer == null) {
-            focusLog.finest("Peer is null");
+            if (focusLog.isLoggable(Level.FINEST)) {
+                focusLog.log(Level.FINEST, "Peer is null");
+            }
             return false;
         }
 
@@ -7179,9 +7261,13 @@
         if (!success) {
             KeyboardFocusManager.getCurrentKeyboardFocusManager
                 (appContext).dequeueKeyEvents(time, this);
-            focusLog.finest("Peer request failed");
+            if (focusLog.isLoggable(Level.FINEST)) {
+                focusLog.log(Level.FINEST, "Peer request failed");
+            }
         } else {
-            if (focusLog.isLoggable(Level.FINEST)) focusLog.finest("Pass for " + this);
+            if (focusLog.isLoggable(Level.FINEST)) {
+                focusLog.log(Level.FINEST, "Pass for " + this);
+            }
         }
         return success;
     }
@@ -7191,19 +7277,25 @@
                                            CausedFocusEvent.Cause cause)
     {
         if (!isFocusable() || !isVisible()) {
-            focusLog.finest("Not focusable or not visible");
+            if (focusLog.isLoggable(Level.FINEST)) {
+                focusLog.log(Level.FINEST, "Not focusable or not visible");
+            }
             return false;
         }
 
         ComponentPeer peer = this.peer;
         if (peer == null) {
-            focusLog.finest("peer is null");
+            if (focusLog.isLoggable(Level.FINEST)) {
+                focusLog.log(Level.FINEST, "peer is null");
+            }
             return false;
         }
 
         Window window = getContainingWindow();
         if (window == null || !((Window)window).isFocusableWindow()) {
-            focusLog.finest("Component doesn't have toplevel");
+            if (focusLog.isLoggable(Level.FINEST)) {
+                focusLog.log(Level.FINEST, "Component doesn't have toplevel");
+            }
             return false;
         }
 
@@ -7223,7 +7315,9 @@
             // Controller is supposed to verify focus transfers and for this it
             // should know both from and to components.  And it shouldn't verify
             // transfers from when these components are equal.
-            focusLog.finest("focus owner is null or this");
+            if (focusLog.isLoggable(Level.FINEST)) {
+                focusLog.log(Level.FINEST, "focus owner is null or this");
+            }
             return true;
         }
 
@@ -7234,7 +7328,9 @@
             // most recent focus owner.  But most recent focus owner can be
             // changed by requestFocsuXXX() call only, so this transfer has
             // been already approved.
-            focusLog.finest("cause is activation");
+            if (focusLog.isLoggable(Level.FINEST)) {
+                focusLog.log(Level.FINEST, "cause is activation");
+            }
             return true;
         }
 
@@ -7437,9 +7533,13 @@
 
     static boolean postNextFocusHelper(Component toFocus, CausedFocusEvent.Cause cause) {
         if (toFocus != null) {
-            if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Next component " + toFocus);
+            if (focusLog.isLoggable(Level.FINER)) {
+                focusLog.log(Level.FINER, "Next component " + toFocus);
+            }
             boolean res = toFocus.requestFocusInWindow(cause);
-            if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Request focus returned " + res);
+            if (focusLog.isLoggable(Level.FINER)) {
+                focusLog.log(Level.FINER, "Request focus returned " + res);
+            }
             return res;
         }
         return false;
@@ -9350,4 +9450,276 @@
         return false;
     }
 
+
+    // ************************** MIXING CODE *******************************
+
+    /**
+     * Applies the shape to the component
+     * @param shape Shape to be applied to the component
+     */
+    void applyCompoundShape(Region shape) {
+        checkTreeLock();
+        if (!isLightweight()) {
+            ComponentPeer peer = getPeer();
+            if (peer != null) {
+                // The Region class has some optimizations. That's why
+                // we should manually check whether it's empty and
+                // substitute the object ourselves. Otherwise we end up
+                // with some incorrect Region object with loX being 
+                // greater than the hiX for instance.
+                if (shape.isEmpty()) {
+                    shape = Region.getInstanceXYWH(0, 0, 0, 0);
+                }
+
+                // Note: the shape is not really copied/cloned. We create
+                // the Region object ourselves, so there's no any possibility
+                // to modify the object outside of the mixing code.
+                this.compoundShape = shape;
+
+                if (isValid()) {
+                    Point compAbsolute = getLocationOnWindow();
+
+                    if (mixingLog.isLoggable(Level.FINER)) {
+                        mixingLog.fine("this = " + this + 
+                            "; compAbsolute=" + compAbsolute + "; shape=" + shape);
+                    }
+
+                    peer.applyShape(shape.getTranslatedRegion(-compAbsolute.x, -compAbsolute.y));
+                }
+            }
+        }
+    }
+
+    /**
+     * Returns the shape previously set with applyCompoundShape().
+     * If the component is LW or no shape was applied yet,
+     * the method returns the normal shape. 
+     */
+    private Region getAppliedShape() {
+        checkTreeLock();
+        //XXX: if we allow LW components to have a shape, this must be changed
+        return (this.compoundShape == null || isLightweight()) ? getNormalShape() : this.compoundShape;
+    }
+
+    Point getLocationOnWindow() {
+        checkTreeLock();
+        Point curLocation = getLocation();
+        
+        for (Container parent = getContainer(); 
+                parent != null; 
+                parent = parent.getContainer()) 
+        {
+            curLocation.x += parent.getX();
+            curLocation.y += parent.getY();
+        }
+        
+        return curLocation;
+    }
+
+    /**
+     * Returns the full shape of the component located in window coordinates
+     */
+    final Region getNormalShape() {
+        checkTreeLock();
+        //XXX: we may take into account a user-specified shape for this component
+        Point compAbsolute = getLocationOnWindow();
+        return 
+            Region.getInstanceXYWH(
+                    compAbsolute.x,
+                    compAbsolute.y,
+                    getWidth(),
+                    getHeight()
+            );
+    }
+
+    private int getSiblingIndexAbove() {
+        checkTreeLock();
+        Container parent = getContainer();
+        if (parent == null) {
+            return -1;
+        }
+        
+        int nextAbove = parent.getComponentZOrder(this) - 1;
+
+        return nextAbove < 0 ? -1 : nextAbove;
+    }
+
+    private int getSiblingIndexBelow() {
+        checkTreeLock();
+        Container parent = getContainer();
+        if (parent == null) {
+            return -1;
+        }
+        
+        int nextBelow = parent.getComponentZOrder(this) + 1;
+
+        return nextBelow >= parent.getComponentCount() ? -1 : nextBelow;
+    }
+
+    private Region calculateCurrentShape() {
+        checkTreeLock();
+        Region s = getNormalShape();
+        
+        if (mixingLog.isLoggable(Level.FINE)) {
+            mixingLog.fine("this = " + this + "; normalShape=" + s);
+        }
+
+        if (getContainer() != null) {
+            Component comp = this;
+            Container cont = comp.getContainer();
+
+            while (cont != null) {
+                for (int index = comp.getSiblingIndexAbove(); index != -1; --index) {
+                    /* It is assumed that:
+                     * 
+                     *    getComponent(getContainer().getComponentZOrder(comp)) == comp
+                     *    
+                     * The assumption has been made according to the current 
+                     * implementation of the Container class.
+                     */
+                    Component c = cont.getComponent(index);
+                    if (c.isLightweight() && c.isShowing() && c.isOpaque()) {
+                        s = s.getDifference(c.getNormalShape());
+                    }
+                }
+
+                if (cont.isLightweight()) {
+                    s = s.getIntersection(cont.getNormalShape());
+                } else {
+                    break;
+                }
+
+                comp = cont;
+                cont = cont.getContainer();
+            }
+        }
+        
+        if (mixingLog.isLoggable(Level.FINE)) {
+            mixingLog.fine("currentShape=" + s);
+        }
+
+        return s;
+    }
+
+    void applyCurrentShape() {
+        checkTreeLock();
+        if (!isValid()) {
+            return; // Because applyCompoundShape() ignores such components anyway
+        }
+        if (mixingLog.isLoggable(Level.FINE)) {
+            mixingLog.fine("this = " + this);
+        }
+        applyCompoundShape(calculateCurrentShape());
+    }
+
+    final void subtractAndApplyShape(Region s) {
+        checkTreeLock();
+        
+        if (mixingLog.isLoggable(Level.FINE)) {
+            mixingLog.fine("this = " + this + "; s=" + s);
+        }
+
+        applyCompoundShape(getAppliedShape().getDifference(s));
+    }
+
+    void mixOnShowing() {
+        synchronized (getTreeLock()) {
+            if (mixingLog.isLoggable(Level.FINE)) {
+                mixingLog.fine("this = " + this);
+            }
+            if (isLightweight()) {
+                Container parent = getContainer();
+                if (parent != null && isShowing() && isOpaque()) {
+                    parent.recursiveSubtractAndApplyShape(getNormalShape(), getSiblingIndexBelow());
+                }
+            } else {
+                applyCurrentShape();
+            }
+        }
+    }
+
+    void mixOnHiding(boolean isLightweight) {
+        // We cannot be sure that the peer exists at this point, so we need the argument
+        //    to find out whether the hiding component is (well, actually was) a LW or a HW.
+        synchronized (getTreeLock()) {
+            if (mixingLog.isLoggable(Level.FINE)) {
+                mixingLog.fine("this = " + this + "; isLightweight = " + isLightweight);
+            }
+            if (isLightweight) {
+                Container parent = getContainer();
+                if (parent != null) {
+                    parent.recursiveApplyCurrentShape(getSiblingIndexBelow());
+                }
+            } //XXX: else applyNormalShape() ???
+        }
+    }
+
+    void mixOnReshaping() {
+        synchronized (getTreeLock()) {
+            if (mixingLog.isLoggable(Level.FINE)) {
+                mixingLog.fine("this = " + this);
+            }
+            if (isLightweight()) {
+                Container parent = getContainer();
+                if (parent != null) {
+                    parent.recursiveApplyCurrentShape(parent.getComponentZOrder(this));
+                }  
+            } else {
+                applyCurrentShape();
+            }
+        }
+    }
+
+    void mixOnZOrderChanging(int oldZorder, int newZorder) {
+        synchronized (getTreeLock()) {
+            boolean becameHigher = newZorder < oldZorder;
+            Container parent = getContainer();
+            
+            if (mixingLog.isLoggable(Level.FINE)) {
+                mixingLog.fine("this = " + this + 
+                    "; oldZorder=" + oldZorder + "; newZorder=" + newZorder + "; parent=" + parent);
+            }
+
+            if (isLightweight()) {
+                if (becameHigher) {
+                    if (parent != null && isShowing() && isOpaque()) {
+                        parent.recursiveSubtractAndApplyShape(getNormalShape(), getSiblingIndexBelow(), oldZorder);
+                    }
+                } else {
+                    if (parent != null) {
+                        parent.recursiveApplyCurrentShape(oldZorder, newZorder);
+                    }
+                }
+            } else {
+                if (becameHigher) {
+                    applyCurrentShape();
+                } else {
+                    if (parent != null) {
+                        Region shape = getAppliedShape();
+
+                        for (int index = oldZorder; index < newZorder; index++) {
+                            Component c = parent.getComponent(index);
+                            if (c.isLightweight() && c.isShowing() && c.isOpaque()) {
+                                shape = shape.getDifference(c.getNormalShape());
+                            }
+                        }
+                        applyCompoundShape(shape);
+                    }
+                }
+            }
+        }
+    }
+
+    void mixOnOpaqueChanging() {
+        if (mixingLog.isLoggable(Level.FINE)) {
+            mixingLog.fine("this = " + this);
+        }
+        if (isOpaque()) {
+            mixOnShowing();
+        } else {
+            mixOnHiding(isLightweight());
+        }
+    }
+
+    // ****************** END OF MIXING CODE ********************************
 }
--- a/j2se/src/share/classes/java/awt/Container.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/awt/Container.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright 1995-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1995-2007 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,44 +24,42 @@
  */
 package java.awt;
 
-import java.io.PrintStream;
-import java.io.PrintWriter;
+import java.awt.dnd.DropTarget;
+
+import java.awt.event.*;
+
 import java.awt.peer.ContainerPeer;
 import java.awt.peer.ComponentPeer;
 import java.awt.peer.LightweightPeer;
-import sun.awt.PeerEvent;
-import java.awt.event.ComponentEvent;
-import java.awt.event.ContainerEvent;
-import java.awt.event.FocusEvent;
-import java.awt.event.HierarchyEvent;
-import java.awt.event.InputEvent;
-import java.awt.event.KeyEvent;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseWheelEvent;
-import java.awt.event.ContainerListener;
+
+import java.beans.PropertyChangeListener;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.ObjectStreamField;
+import java.io.PrintStream;
+import java.io.PrintWriter;
+
+import java.util.Arrays;
 import java.util.EventListener;
-import java.io.ObjectStreamField;
-import java.io.ObjectOutputStream;
-import java.io.ObjectInputStream;
-import java.io.IOException;
-import java.awt.event.AWTEventListener;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowListener;
-import java.awt.event.WindowEvent;
-import java.awt.dnd.DropTarget;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.Set;
-import java.util.Iterator;
-import java.util.Arrays;
+
+import java.util.logging.*;
+
 import javax.accessibility.*;
-import java.beans.PropertyChangeListener;
 
 import sun.awt.AppContext;
-import sun.awt.DebugHelper;
+import sun.awt.CausedFocusEvent;
+import sun.awt.PeerEvent;
 import sun.awt.SunToolkit;
+
 import sun.awt.dnd.SunDropTargetEvent;
-import sun.awt.CausedFocusEvent;
+
+import sun.java2d.pipe.Region;
 
 /**
  * A generic Abstract Window Toolkit(AWT) container object is a component 
@@ -80,7 +78,7 @@
  * <a href="../../java/awt/doc-files/FocusSpec.html">Focus Specification</a>
  * for more information.
  *
- * @version 	1.295, 05/05/07
+ * @version 	1.297, 07/26/07
  * @author 	Arthur van Hoff
  * @author 	Sami Shaio
  * @see       #add(java.awt.Component, int)
@@ -90,6 +88,9 @@
  */
 public class Container extends Component {
 
+    private static final Logger log = Logger.getLogger("java.awt.Container");
+    private static final Logger eventLog = Logger.getLogger("java.awt.event.Container");
+
     /**
      * The number of components in this container.
      * This value can be null.
@@ -181,8 +182,6 @@
      */
     private static final long serialVersionUID = 4613797578919906343L;
 
-    private static final DebugHelper dbg = DebugHelper.create(Container.class);
-
     /**
      * A constant which toggles one of the controllable behaviors 
      * of <code>getMouseEventTarget</code>. It is used to specify whether 
@@ -202,6 +201,15 @@
      */
     static final boolean SEARCH_HEAVYWEIGHTS = true;
 
+    /*
+     * Number of HW or LW components in this container (including
+     * all descendant containers).
+     */
+    private transient int numOfHWComponents = 0;
+    private transient int numOfLWComponents = 0;
+    
+    private static final Logger mixingLog = Logger.getLogger("java.awt.mixing.Container");
+
     /**
      * @serialField ncomponents                     int
      *       The number of components in this container.
@@ -294,12 +302,12 @@
      *                 if the n<sup>th</sup> value does not exist.     
      */
     public Component getComponent(int n) {
-	synchronized (getTreeLock()) {
-	    if ((n < 0) || (n >= ncomponents)) {
-		throw new ArrayIndexOutOfBoundsException("No such child: " + n);
-	    }
-	    return component[n];
-	}
+        synchronized (getTreeLock()) {
+            if ((n < 0) || (n >= ncomponents)) {
+                throw new ArrayIndexOutOfBoundsException("No such child: " + n);
+            }
+            return component[n];
+        }
     }
 
     /**
@@ -414,11 +422,6 @@
 	return comp;
     }
 
-    void checkTreeLock() {
-        if (!Thread.holdsLock(getTreeLock())) {
-            throw new IllegalStateException("This function should be called while holding treeLock");
-        }
-    }
     /**
      * Checks that the component comp can be added to this container
      * Checks :  index in bounds of container's size,
@@ -471,13 +474,15 @@
      * remove, for example, if newParent and current parent are the same it just changes
      * index without calling removeNotify.
      * Note: Should be called while holding treeLock
+     * Returns whether removeNotify was invoked
      * @since: 1.5
      */
-    private void removeDelicately(Component comp, Container newParent, int newIndex) {
+    private boolean removeDelicately(Component comp, Container newParent, int newIndex) {
         checkTreeLock();
 
         int index = getComponentZOrder(comp);
-        if (isRemoveNotifyNeeded(comp, this, newParent)) {                
+        boolean needRemoveNotify = isRemoveNotifyNeeded(comp, this, newParent);
+        if (needRemoveNotify) {
             comp.removeNotify();
         }
         if (newParent != this) {
@@ -528,6 +533,7 @@
                 updateCursorImmediately();
             }
         }
+        return needRemoveNotify;
     } 
 
     /**
@@ -564,20 +570,23 @@
      * @return true if there is at least one heavyweight children in a container, false otherwise
      * @since 1.5
      */
-    private boolean hasHeavyweightChildren() {        
+    private boolean hasHeavyweightDescendants() {
         checkTreeLock();
-        boolean res = true; // true while it is lightweight
-        for (int i = 0; i < getComponentCount() && res; i++) {
-            Component child = getComponent(i);
-            res &= child.isLightweight();
-            if (res && child instanceof Container) {
-                res &= !((Container)child).hasHeavyweightChildren();
-            }
-        }
-        return !res;
+        return numOfHWComponents > 0;
     }
 
     /**
+     * Checks whether or not this container has lightweight children.
+     * Note: Should be called while holding tree lock
+     * @return true if there is at least one lightweight children in a container, false otherwise
+     * @since 1.7
+     */
+    private boolean hasLightweightDescendants() {
+        checkTreeLock();
+        return numOfLWComponents > 0;
+    }
+    
+    /**
      * Returns closest heavyweight component to this container. If this container is heavyweight
      * returns this.
      * @since 1.5
@@ -615,7 +624,7 @@
         if (comp.isLightweight()) {
             if (comp instanceof Container) {
                 // If it has heavyweight children then removeNotify is required
-                return ((Container)comp).hasHeavyweightChildren();
+                return ((Container)comp).hasHeavyweightDescendants();
             } else {
                 // Just a lightweight
                 return false;
@@ -688,15 +697,21 @@
          synchronized (getTreeLock()) {
              // Store parent because remove will clear it
              Container curParent = comp.parent; 
-             if (curParent == this && index == getComponentZOrder(comp)) {
+             int oldZindex = getComponentZOrder(comp);
+             
+             if (curParent == this && index == oldZindex) {
                  return;
              }
              checkAdding(comp, index);
-             if (curParent != null) {
-                 curParent.removeDelicately(comp, this, index);
-             }
+
+             boolean peerRecreated = (curParent != null) ? 
+                 curParent.removeDelicately(comp, this, index) : false;
              
              addDelicately(comp, curParent, index);
+
+             if (!peerRecreated) {
+                 comp.mixOnZOrderChanging(oldZindex, index);
+             }
          }
     }
 
@@ -1280,41 +1295,49 @@
         int superListening = super.numListening(mask);
 
         if (mask == AWTEvent.HIERARCHY_EVENT_MASK) {
-	    if (dbg.on) {
-	        // Verify listeningChildren is correct
-	        int sum = 0;
-		for (int i = 0; i < ncomponents; i++) {
-		    sum += component[i].numListening(mask);
-		}
-		dbg.assertion(listeningChildren == sum);
-	    }
-	    return listeningChildren + superListening;
-	} else if (mask == AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK) {
-	    if (dbg.on) {
-	        // Verify listeningBoundsChildren is correct
-	        int sum = 0;
-		for (int i = 0; i < ncomponents; i++) {
-		    sum += component[i].numListening(mask);
-		}
-		dbg.assertion(listeningBoundsChildren == sum);
-	    }
-	    return listeningBoundsChildren + superListening;
-	} else {
-	    if (dbg.on) {
-	        dbg.assertion(false);
-	    }
-	    return superListening;
-	}
+            if (eventLog.isLoggable(Level.FINE)) {
+                // Verify listeningChildren is correct
+                int sum = 0;
+                for (int i = 0; i < ncomponents; i++) {
+                    sum += component[i].numListening(mask);
+                }
+                if (listeningChildren != sum) {
+                    eventLog.log(Level.FINE, "Assertion (listeningChildren == sum) failed");
+                }
+            }
+            return listeningChildren + superListening;
+        } else if (mask == AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK) {
+            if (eventLog.isLoggable(Level.FINE)) {
+                // Verify listeningBoundsChildren is correct
+                int sum = 0;
+                for (int i = 0; i < ncomponents; i++) {
+                    sum += component[i].numListening(mask);
+                }
+                if (listeningBoundsChildren != sum) {
+                    eventLog.log(Level.FINE, "Assertion (listeningBoundsChildren == sum) failed");
+                }
+            }
+            return listeningBoundsChildren + superListening;
+        } else {
+            // assert false;
+            if (eventLog.isLoggable(Level.FINE)) {
+                eventLog.log(Level.FINE, "This code must never be reached");
+            }
+            return superListening;
+        }
     }
 
     // Should only be called while holding tree lock
     void adjustListeningChildren(long mask, int num) {
-        if (dbg.on) {
-	    dbg.assertion(mask == AWTEvent.HIERARCHY_EVENT_MASK ||
-		       mask == AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK ||
-		       mask == (AWTEvent.HIERARCHY_EVENT_MASK |
-				AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK));
-	}
+        if (eventLog.isLoggable(Level.FINE)) {
+            boolean toAssert = (mask == AWTEvent.HIERARCHY_EVENT_MASK ||
+                                mask == AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK ||
+                                mask == (AWTEvent.HIERARCHY_EVENT_MASK |
+                                         AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK));
+            if (!toAssert) {
+                eventLog.log(Level.FINE, "Assertion failed");
+            }
+        }
 
         if (num == 0)
 	    return;
@@ -1347,13 +1370,15 @@
 
     // Should only be called while holding tree lock
     int countHierarchyMembers() {
-        if (dbg.on) {
+        if (log.isLoggable(Level.FINE)) {
             // Verify descendantsCount is correct
             int sum = 0;
             for (int i = 0; i < ncomponents; i++) {
                 sum += component[i].countHierarchyMembers();
             }
-            dbg.assertion(descendantsCount == sum);
+            if (descendantsCount != sum) {
+                log.log(Level.FINE, "Assertion (descendantsCount == sum) failed");
+            }
         }
         return descendantsCount + 1;
     }
@@ -3785,6 +3810,169 @@
         }
     }
 
+    // ************************** MIXING CODE *******************************
+    
+    final void increaseComponentCount(Component c) {
+        synchronized (getTreeLock()) {
+            if (!c.isDisplayable()) {
+                throw new IllegalStateException(
+                    "Peer does not exist while invoking the increaseComponentCount() method"
+                );
+            }
+            
+            int addHW = 0;
+            int addLW = 0;
+            
+            if (c instanceof Container) {
+                addLW = ((Container)c).numOfLWComponents;
+                addHW = ((Container)c).numOfHWComponents;
+            }
+            if (c.isLightweight()) {
+                addLW++;
+            } else {
+                addHW++;
+            }
+
+            for (Container cont = this; cont != null; cont = cont.getContainer()) {
+                cont.numOfLWComponents += addLW;
+                cont.numOfHWComponents += addHW;
+            } 
+        }
+    }
+    
+    final void decreaseComponentCount(Component c) {
+        synchronized (getTreeLock()) {
+            if (!c.isDisplayable()) {
+                throw new IllegalStateException(
+                    "Peer does not exist while invoking the decreaseComponentCount() method"
+                );
+            }
+            
+            int subHW = 0;
+            int subLW = 0;
+            
+            if (c instanceof Container) {
+                subLW = ((Container)c).numOfLWComponents;
+                subHW = ((Container)c).numOfHWComponents;
+            }
+            if (c.isLightweight()) {
+                subLW++;
+            } else {
+                subHW++;
+            }
+
+            for (Container cont = this; cont != null; cont = cont.getContainer()) {
+                cont.numOfLWComponents -= subLW;
+                cont.numOfHWComponents -= subHW;
+            }
+        }
+    }
+
+    private int getTopmostComponentIndex() {
+        checkTreeLock();
+        if (getComponentCount() > 0) {
+            return 0;
+        }
+        return -1;
+    }
+    
+    private int getBottommostComponentIndex() {
+        checkTreeLock();
+        if (getComponentCount() > 0) {
+            return getComponentCount() - 1;
+        }
+        return -1;
+    }
+
+    final void recursiveSubtractAndApplyShape(Region shape) {
+        recursiveSubtractAndApplyShape(shape, getTopmostComponentIndex(), getBottommostComponentIndex());
+    }
+    
+    final void recursiveSubtractAndApplyShape(Region shape, int fromZorder) {
+        recursiveSubtractAndApplyShape(shape, fromZorder, getBottommostComponentIndex());
+    }
+    
+    final void recursiveSubtractAndApplyShape(Region shape, int fromZorder, int toZorder) {
+        checkTreeLock();
+        if (mixingLog.isLoggable(Level.FINE)) {
+            mixingLog.fine("this = " + this + 
+                "; shape=" + shape + "; fromZ=" + fromZorder + "; toZ=" + toZorder);
+        }
+        if (fromZorder == -1) {
+            return;
+        }
+        for (int index = fromZorder; index <= toZorder; index++) {
+            Component comp = getComponent(index);
+            if (!comp.isLightweight()) {
+                comp.subtractAndApplyShape(shape);
+            } else if (comp instanceof Container && 
+                    ((Container)comp).hasHeavyweightDescendants() && comp.isShowing()) {
+                ((Container)comp).recursiveSubtractAndApplyShape(shape);
+            }
+        }
+    }
+
+    final void recursiveApplyCurrentShape() {
+        recursiveApplyCurrentShape(getTopmostComponentIndex(), getBottommostComponentIndex());
+    }
+    
+    final void recursiveApplyCurrentShape(int fromZorder) {
+        recursiveApplyCurrentShape(fromZorder, getBottommostComponentIndex());
+    }
+    
+    final void recursiveApplyCurrentShape(int fromZorder, int toZorder) {
+        checkTreeLock();
+        if (mixingLog.isLoggable(Level.FINE)) {
+            mixingLog.fine("this = " + this + 
+                "; fromZ=" + fromZorder + "; toZ=" + toZorder);
+        }
+        if (fromZorder == -1) {
+            return;
+        }
+        for (int index = fromZorder; index <= toZorder; index++) {
+            Component comp = getComponent(index);
+            if (!comp.isLightweight()) {
+                comp.applyCurrentShape();
+            } else if (comp instanceof Container && 
+                    ((Container)comp).hasHeavyweightDescendants()) {
+                ((Container)comp).recursiveApplyCurrentShape();
+            }
+        }
+    }
+
+    void mixOnShowing() {
+        synchronized (getTreeLock()) {
+            if (mixingLog.isLoggable(Level.FINE)) {
+                mixingLog.fine("this = " + this);
+            }
+
+            boolean isLightweight = isLightweight();
+            
+            if (!isLightweight || (isLightweight && hasHeavyweightDescendants())) {
+                recursiveApplyCurrentShape();
+            }
+            
+            super.mixOnShowing();
+        }
+    }
+
+    void mixOnZOrderChanging(int oldZorder, int newZorder) {
+        synchronized (getTreeLock()) {
+            if (mixingLog.isLoggable(Level.FINE)) {
+                mixingLog.fine("this = " + this + 
+                    "; oldZ=" + oldZorder + "; newZ=" + newZorder);
+            }
+
+            boolean becameHigher = newZorder < oldZorder;
+
+            if (becameHigher && isLightweight() && hasHeavyweightDescendants()) {
+                recursiveApplyCurrentShape();
+            }
+            super.mixOnZOrderChanging(oldZorder, newZorder);
+        }
+    }
+    
+    // ****************** END OF MIXING CODE ********************************
 }
 
 
@@ -3810,7 +3998,7 @@
      */
     private static final int  LWD_MOUSE_DRAGGED_OVER = 1500;
 
-    private static final DebugHelper dbg = DebugHelper.create(LightweightDispatcher.class);
+    private static final Logger eventLog = Logger.getLogger("java.awt.event.LightweightDispatcher");
 
     LightweightDispatcher(Container nativeContainer) {
 	this.nativeContainer = nativeContainer;
@@ -3952,10 +4140,10 @@
             // This may send it somewhere that doesn't have MouseWheelEvents
             // enabled.  In this case, Component.dispatchEventImpl() will
             // retarget the event to a parent that DOES have the events enabled.
-            if (dbg.on && mouseOver != null) {
-                dbg.println("LD retargeting mouse wheel to " +
-                                mouseOver.getName() + ", " + 
-                                mouseOver.getClass());
+            if (eventLog.isLoggable(Level.FINEST) && (mouseOver != null)) {
+                eventLog.log(Level.FINEST, "retargeting mouse wheel to " +
+                             mouseOver.getName() + ", " + 
+                             mouseOver.getClass());
             }
             retargetMouseEvent(mouseOver, id, e);
         break;
--- a/j2se/src/share/classes/java/awt/Cursor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/awt/Cursor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -36,15 +36,15 @@
 import java.util.Properties;
 import java.util.StringTokenizer;
 
-import java.security.AccessController;
+import java.util.logging.*;
 
-import sun.awt.DebugHelper;
+import java.security.AccessController;
 
 /**
  * A class to encapsulate the bitmap representation of the mouse cursor.
  *
  * @see Component#setCursor
- * @version 	1.51, 05/05/07
+ * @version 	1.52, 07/23/07
  * @author 	Amy Fowler
  */
 public class Cursor implements java.io.Serializable {
@@ -182,7 +182,7 @@
      */
     private static final long serialVersionUID = 8028237497568985504L;
 
-    private static final DebugHelper dbg = DebugHelper.create(Cursor.class);
+    private static final Logger log = Logger.getLogger("java.awt.Cursor");
 
     static {
         /* ensure that the necessary native libraries are loaded */
@@ -284,8 +284,8 @@
 	    String key    = prefix + DotFileSuffix;
 
 	    if (!systemCustomCursorProperties.containsKey(key)) {
-	        if (dbg.on) {
-	            dbg.println("Cursor.getSystemCustomCursor(" + name + ") returned null");
+	        if (log.isLoggable(Level.FINER)) {
+	            log.log(Level.FINER, "Cursor.getSystemCustomCursor(" + name + ") returned null");
 	        } 
 	        return null;
 	    }
@@ -339,8 +339,8 @@
 	    }
 
 	    if (cursor == null) {
-	        if (dbg.on) {
-	            dbg.println("Cursor.getSystemCustomCursor(" + name + ") returned null");
+	        if (log.isLoggable(Level.FINER)) {
+	            log.log(Level.FINER, "Cursor.getSystemCustomCursor(" + name + ") returned null");
 		} 
 	    } else {
 	        systemCustomCursors.put(name, cursor);
--- a/j2se/src/share/classes/java/awt/Dialog.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/awt/Dialog.java	Fri Aug 31 00:44:13 2007 +0000
@@ -89,7 +89,7 @@
  * @see WindowEvent
  * @see Window#addWindowListener
  *
- * @version	1.137, 06/05/07
+ * @version	1.138, 07/26/07
  * @author	Sami Shaio
  * @author	Arthur van Hoff
  * @since       JDK1.0
@@ -938,6 +938,10 @@
                         enqueueKeyEvents(time.get(), toFocus);
                 }
 
+                // This call is required as the show() method of the Dialog class
+                // does not invoke the super.show(). So wried... :(
+                mixOnShowing();
+
                 peer.show(); // now guaranteed never to block
                 if (isModalBlocked()) {
                     modalBlocker.toFront();
--- a/j2se/src/share/classes/java/awt/EventDispatchThread.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/awt/EventDispatchThread.java	Fri Aug 31 00:44:13 2007 +0000
@@ -32,11 +32,11 @@
 import java.lang.reflect.Method;
 import java.security.AccessController;
 import sun.security.action.GetPropertyAction;
-import sun.awt.DebugHelper;
 import sun.awt.AWTAutoShutdown;
 import sun.awt.SunToolkit;
 
 import java.util.Vector;
+import java.util.logging.*;
 
 import sun.awt.dnd.SunDragSourceContextPeer;
 
@@ -57,11 +57,11 @@
  * @author Fred Ecks
  * @author David Mendenhall
  * 
- * @version 1.66, 05/05/07
+ * @version 1.67, 07/23/07
  * @since 1.1
  */
 class EventDispatchThread extends Thread {
-    private static final DebugHelper dbg = DebugHelper.create(EventDispatchThread.class);
+    private static final Logger eventLog = Logger.getLogger("java.awt.event.EventDispatchThread");
 
     private EventQueue theQueue;
     private boolean doDispatch = true;
@@ -269,8 +269,8 @@
             }
             while (eventOK == false);
                       
-            if (dbg.on) {
-                dbg.println("Dispatching: "+event);
+            if (eventLog.isLoggable(Level.FINEST)) {
+                eventLog.log(Level.FINEST, "Dispatching: " + event);
             }
 
             theQueue.dispatchEvent(event);
@@ -295,6 +295,10 @@
     }
 
     private void processException(Throwable e, boolean isModal) {
+        if (eventLog.isLoggable(Level.FINE)) {
+            eventLog.log(Level.FINE, "Processing exception: " + e +
+                                     ", isModal = " + isModal);
+        }
         if (!handleException(e)) {
             // See bug ID 4499199.
             // If we are in a modal dialog, we cannot throw
--- a/j2se/src/share/classes/java/awt/EventQueue.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/awt/EventQueue.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,27 +25,23 @@
 
 package java.awt;
 
-import java.awt.event.ActionEvent;
-import java.awt.event.FocusEvent;
-import java.awt.event.InputEvent;
-import java.awt.event.InputMethodEvent;
-import java.awt.event.InvocationEvent;
-import java.awt.event.KeyEvent;
-import java.awt.event.MouseEvent;
-import java.awt.event.PaintEvent;
-import java.awt.event.WindowEvent;
-import java.awt.ActiveEvent;
+import java.awt.event.*;
+
 import java.awt.peer.ComponentPeer;
-import java.awt.TrayIcon;
-import java.util.EmptyStackException;
+
 import java.lang.ref.WeakReference;
 import java.lang.reflect.InvocationTargetException;
+
 import java.security.AccessController;
 import java.security.PrivilegedAction;
+
+import java.util.EmptyStackException;
+import java.util.logging.*;
+
+import sun.awt.AppContext;
+import sun.awt.AWTAutoShutdown;
 import sun.awt.PeerEvent;
 import sun.awt.SunToolkit;
-import sun.awt.AWTAutoShutdown;
-import sun.awt.AppContext;
 
 /**
  * <code>EventQueue</code> is a platform-independent class
@@ -89,7 +85,7 @@
  * @author Fred Ecks
  * @author David Mendenhall
  *
- * @version 	1.114, 06/05/07
+ * @version 	1.115, 07/23/07
  * @since 	1.1
  */
 public class EventQueue {
@@ -138,11 +134,6 @@
         Thread.currentThread().getContextClassLoader();
 
     /*
-     * Debugging flag -- set true and recompile to enable checking.
-     */
-    private final static boolean debug = false;
-
-    /*
      * The time stamp of the last dispatched InputEvent or ActionEvent.
      */
     private long mostRecentEventTime = System.currentTimeMillis();
@@ -161,6 +152,8 @@
 
     private final String name = "AWT-EventQueue-" + nextThreadNum();
 
+    private static final Logger eventLog = Logger.getLogger("java.awt.event.EventQueue");
+
     public EventQueue() {
         for (int i = 0; i < NUM_PRIORITIES; i++) {
 	    queues[i] = new Queue();
@@ -699,9 +692,9 @@
      * @since           1.2
      */
     public synchronized void push(EventQueue newEventQueue) {
-	if (debug) {
-	    System.out.println("EventQueue.push(" + newEventQueue + ")");
-	}
+        if (eventLog.isLoggable(Level.FINE)) {
+            eventLog.log(Level.FINE, "EventQueue.push(" + newEventQueue + ")");
+        }
 
         if (nextQueue != null) {
             nextQueue.push(newEventQueue);
@@ -709,19 +702,18 @@
         }
 
         synchronized (newEventQueue) {
-	    // Transfer all events forward to new EventQueue.
-	    while (peekEvent() != null) {
-		try {
-		    newEventQueue.postEventPrivate(getNextEvent());
-		} catch (InterruptedException ie) {
-		    if (debug) {
-			System.err.println("interrupted push:");
-			ie.printStackTrace(System.err);
-		    }
-		}
-	    }
+            // Transfer all events forward to new EventQueue.
+            while (peekEvent() != null) {
+                try {
+                    newEventQueue.postEventPrivate(getNextEvent());
+                } catch (InterruptedException ie) {
+                    if (eventLog.isLoggable(Level.FINE)) {
+                        eventLog.log(Level.FINE, "Interrupted push", ie);
+                    }
+                }
+            }
 
-	    newEventQueue.previousQueue = this;
+            newEventQueue.previousQueue = this;
         }
         /* 
          * Stop the event dispatch thread associated with the currently 
@@ -737,11 +729,11 @@
             dispatchThread.stopDispatchingLater();
         }
 
-	nextQueue = newEventQueue;
-	
+        nextQueue = newEventQueue;
+        
         AppContext appContext = AppContext.getAppContext();
         if (appContext.get(AppContext.EVENT_QUEUE_KEY) == this) {
-	    appContext.put(AppContext.EVENT_QUEUE_KEY, newEventQueue);
+            appContext.put(AppContext.EVENT_QUEUE_KEY, newEventQueue);
         }
     }
 
@@ -759,16 +751,16 @@
      * @since           1.2
      */
     protected void pop() throws EmptyStackException {
-	if (debug) {
-	    System.out.println("EventQueue.pop(" + this + ")");
-	}
+        if (eventLog.isLoggable(Level.FINE)) {
+            eventLog.log(Level.FINE, "EventQueue.pop(" + this + ")");
+        }
 
-	// To prevent deadlock, we lock on the previous EventQueue before
-	// this one.  This uses the same locking order as everything else
-	// in EventQueue.java, so deadlock isn't possible.
-	EventQueue prev = previousQueue;
-	synchronized ((prev != null) ? prev : this) {
-	  synchronized(this) {
+        // To prevent deadlock, we lock on the previous EventQueue before
+        // this one.  This uses the same locking order as everything else
+        // in EventQueue.java, so deadlock isn't possible.
+        EventQueue prev = previousQueue;
+        synchronized ((prev != null) ? prev : this) {
+          synchronized(this) {
             if (nextQueue != null) {
                 nextQueue.pop();
                 return;
@@ -777,24 +769,23 @@
                 throw new EmptyStackException();
             }
 
-	    // Transfer all events back to previous EventQueue.
-	    previousQueue.nextQueue = null;
-	    while (peekEvent() != null) {
-		try {
-		    previousQueue.postEventPrivate(getNextEvent());
-		} catch (InterruptedException ie) {
-		    if (debug) {
-			System.err.println("interrupted pop:");
-			ie.printStackTrace(System.err);
-		    }
-		}
-	    }
+            // Transfer all events back to previous EventQueue.
+            previousQueue.nextQueue = null;
+            while (peekEvent() != null) {
+                try {
+                    previousQueue.postEventPrivate(getNextEvent());
+                } catch (InterruptedException ie) {
+                    if (eventLog.isLoggable(Level.FINE)) {
+                        eventLog.log(Level.FINE, "Interrupted pop", ie);
+                    }
+                }
+            }
             AppContext appContext = AppContext.getAppContext();
             if (appContext.get(AppContext.EVENT_QUEUE_KEY) == this) {
                 appContext.put(AppContext.EVENT_QUEUE_KEY, previousQueue);
             }
 
-	    previousQueue = null;
+            previousQueue = null;
           }
         }
 
--- a/j2se/src/share/classes/java/awt/KeyboardFocusManager.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/awt/KeyboardFocusManager.java	Fri Aug 31 00:44:13 2007 +0000
@@ -57,7 +57,6 @@
 import java.util.logging.Logger;
 
 import sun.awt.AppContext;
-import sun.awt.DebugHelper;
 import sun.awt.HeadlessToolkit;
 import sun.awt.SunToolkit;
 import sun.awt.CausedFocusEvent;
@@ -96,7 +95,7 @@
  * for more information.
  *
  * @author David Mendenhall
- * @version 1.83, 06/25/07 
+ * @version 1.84, 07/23/07 
  *
  * @see Window
  * @see Frame
@@ -128,8 +127,7 @@
      */
     private static native void initIDs();
 
-    private static final DebugHelper dbg =
-        DebugHelper.create(KeyboardFocusManager.class);
+    private static final Logger log = Logger.getLogger("java.awt.KeyboardFocusManager");
 
     /**
      * The identifier for the Forward focus traversal keys.
@@ -482,7 +480,9 @@
 	    if (this == getCurrentKeyboardFocusManager()) {
 	        return focusOwner;
 	    } else {
-                if (focusLog.isLoggable(Level.FINE)) focusLog.fine("This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+                if (focusLog.isLoggable(Level.FINER)) {
+                    focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+                }
 	        throw new SecurityException(notPrivileged);
 	    }
 	}
@@ -585,8 +585,10 @@
     }
 
     void setNativeFocusOwner(Component comp) {
-        focusLog.log(Level.FINEST, "Calling peer {0} setCurrentFocusOwner for {1}",
-                     new Object[] {peer, comp});
+        if (focusLog.isLoggable(Level.FINEST)) {
+            focusLog.log(Level.FINEST, "Calling peer {0} setCurrentFocusOwner for {1}",
+                         new Object[] {peer, comp});
+        }
         peer.setCurrentFocusOwner(comp);
     }
       
@@ -647,7 +649,9 @@
 	    if (this == getCurrentKeyboardFocusManager()) {
 		return permanentFocusOwner;
 	    } else {
-                if (focusLog.isLoggable(Level.FINE)) focusLog.fine("This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+                if (focusLog.isLoggable(Level.FINER)) {
+                    focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+                }
 		throw new SecurityException(notPrivileged);
 	    }
 	}
@@ -753,7 +757,9 @@
 	    if (this == getCurrentKeyboardFocusManager()) {
 	       return focusedWindow;
 	    } else {
-                if (focusLog.isLoggable(Level.FINE)) focusLog.fine("This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+                if (focusLog.isLoggable(Level.FINER)) {
+                    focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+                }
 	        throw new SecurityException(notPrivileged);
 	    }
 	}
@@ -855,7 +861,9 @@
 	    if (this == getCurrentKeyboardFocusManager()) {
 	       return activeWindow;
 	    } else {
-                if (focusLog.isLoggable(Level.FINE)) focusLog.fine("This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+                if (focusLog.isLoggable(Level.FINER)) {
+                    focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+                }
 		throw new SecurityException(notPrivileged);
 	    }
 	}
@@ -888,7 +896,7 @@
 	synchronized (KeyboardFocusManager.class) {
 	    oldActiveWindow = getActiveWindow();
             if (focusLog.isLoggable(Level.FINER)) {
-                focusLog.finer("Setting global active window to " + activeWindow + ", old active " + oldActiveWindow);
+                focusLog.log(Level.FINER, "Setting global active window to " + activeWindow + ", old active " + oldActiveWindow);
             }
 
 	    try {
@@ -1183,7 +1191,9 @@
 	    if (this == getCurrentKeyboardFocusManager()) {
 	        return currentFocusCycleRoot;
 	    } else {
-                if (focusLog.isLoggable(Level.FINE)) focusLog.fine("This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+                if (focusLog.isLoggable(Level.FINER)) {
+                    focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager());
+                }
 	        throw new SecurityException(notPrivileged);
 	    }
 	}
@@ -2115,8 +2125,10 @@
 
         HeavyweightFocusRequest(Component heavyweight, Component descendant,
                                 boolean temporary, CausedFocusEvent.Cause cause) {
-            if (dbg.on) {
-                dbg.assertion(heavyweight != null);
+            if (log.isLoggable(Level.FINE)) {
+                if (heavyweight == null) {
+                    log.log(Level.FINE, "Assertion (heavyweight != null) failed");
+                }
             }
 
             this.heavyweight = heavyweight;
@@ -2125,10 +2137,13 @@
         }
         boolean addLightweightRequest(Component descendant,
                                       boolean temporary, CausedFocusEvent.Cause cause) {
-            if (dbg.on) {
-                dbg.assertion(this != HeavyweightFocusRequest.
-                              CLEAR_GLOBAL_FOCUS_OWNER);
-                dbg.assertion(descendant != null);
+            if (log.isLoggable(Level.FINE)) {
+                if (this == HeavyweightFocusRequest.CLEAR_GLOBAL_FOCUS_OWNER) {
+                    log.log(Level.FINE, "Assertion (this != HeavyweightFocusRequest.CLEAR_GLOBAL_FOCUS_OWNER) failed");
+                }
+                if (descendant == null) {
+                    log.log(Level.FINE, "Assertion (descendant != null) failed");
+                }
             }
 
             Component lastDescendant = ((lightweightRequests.size() > 0)
@@ -2300,9 +2315,13 @@
         (Component heavyweight, Component descendant, boolean temporary,
          boolean focusedWindowChangeAllowed, long time, CausedFocusEvent.Cause cause)
     {
-        if (dbg.on) {
-            dbg.assertion(heavyweight != null);
-            dbg.assertion(time != 0);
+        if (log.isLoggable(Level.FINE)) {
+            if (heavyweight == null) {
+                log.log(Level.FINE, "Assertion (heavyweight != null) failed");
+            }
+            if (time == 0) {
+                log.log(Level.FINE, "Assertion (time != 0) failed");
+            }
         }
 
         if (descendant == null) {
@@ -2431,9 +2450,13 @@
         heavyweightButtonDown(heavyweight, time, false);
     }
     static void heavyweightButtonDown(Component heavyweight, long time, boolean acceptDuplicates) {
-        if (dbg.on) {
-            dbg.assertion(heavyweight != null);
-            dbg.assertion(time != 0);
+        if (log.isLoggable(Level.FINE)) {
+            if (heavyweight == null) {
+                log.log(Level.FINE, "Assertion (heavyweight != null) failed");
+            }
+            if (time == 0) {
+                log.log(Level.FINE, "Assertion (time != 0) failed");
+            }
         }
         KeyboardFocusManager manager = getCurrentKeyboardFocusManager(SunToolkit.targetToAppContext(heavyweight));
 
@@ -2876,9 +2899,9 @@
         }
 
         KeyboardFocusManager manager = getCurrentKeyboardFocusManager();
-        if (focusLog.isLoggable(Level.FINE)) {
+        if (focusLog.isLoggable(Level.FINER)) {
             if (event instanceof FocusEvent || event instanceof WindowEvent) {
-                focusLog.log(Level.FINE, ">>> {0}", new Object[] {event});
+                focusLog.log(Level.FINER, ">>> {0}", new Object[] {event});
             }
             if (focusLog.isLoggable(Level.FINER) && event instanceof KeyEvent) {
                 focusLog.log(Level.FINER, "    focus owner is {0}", new Object[] {manager.getGlobalFocusOwner()});
@@ -2966,8 +2989,10 @@
         }
     }
     static void removeLastFocusRequest(Component heavyweight) {
-        if (dbg.on) {
-            dbg.assertion(heavyweight != null);
+        if (log.isLoggable(Level.FINE)) {
+            if (heavyweight == null) {
+                log.log(Level.FINE, "Assertion (heavyweight != null) failed");
+            }
         }
 
         KeyboardFocusManager manager =
--- a/j2se/src/share/classes/java/awt/Toolkit.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/awt/Toolkit.java	Fri Aug 31 00:44:13 2007 +0000
@@ -47,17 +47,13 @@
 import java.io.File;
 import java.io.FileInputStream;
 
-import java.util.EventListener;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.WeakHashMap;
-import java.util.ArrayList;
+import java.util.*;
+import java.util.logging.*;
 
 import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
 import sun.awt.AppContext;
 
-import sun.awt.DebugHelper;
 import sun.awt.HeadlessToolkit;
 import sun.awt.NullComponentPeer;
 import sun.awt.PeerEvent;
@@ -69,13 +65,16 @@
 /**
  * This class is the abstract superclass of all actual
  * implementations of the Abstract Window Toolkit. Subclasses of
- * <code>Toolkit</code> are used to bind the various components
+ * the <code>Toolkit</code> class are used to bind the various components
  * to particular native toolkit implementations.
  * <p>
- * Many GUI operations may be performed asynchronously.  This
- * means that if you set the state of a component, and then 
- * immediately query the state, the returned value may not yet
- * reflect the requested change.  This includes, but is not
+ * Many GUI events may be delivered to user 
+ * asynchronously, if the opposite is not specified explicitly.
+ * As well as 
+ * many GUI operations may be performed asynchronously.
+ * This fact means that if the state of a component is set, and then 
+ * the state immediately queried, the returned value may not yet
+ * reflect the requested change.  This behavior includes, but is not
  * limited to:
  * <ul>
  * <li>Scrolling to a specified position.
@@ -1938,7 +1937,8 @@
      */
     public abstract boolean isModalExclusionTypeSupported(Dialog.ModalExclusionType modalExclusionType);
 
-    private static final DebugHelper dbg = DebugHelper.create(Toolkit.class);
+    private static final Logger log = Logger.getLogger("java.awt.Toolkit");
+
     private static final int LONG_BITS = 64;
     private int[] calls = new int[LONG_BITS];
     private static volatile long enabledOnToolkitMask;
@@ -2104,8 +2104,10 @@
         }
 
     synchronized int countAWTEventListeners(long eventMask) {
-        if (dbg.on) {
-            dbg.assertion(eventMask != 0);
+        if (log.isLoggable(Level.FINE)) {
+            if (eventMask == 0) {
+                log.log(Level.FINE, "Assertion (eventMask != 0) failed");
+            }
         }
 
         int ci = 0;
--- a/j2se/src/share/classes/java/awt/Window.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/awt/Window.java	Fri Aug 31 00:44:13 2007 +0000
@@ -54,6 +54,7 @@
 import sun.awt.CausedFocusEvent;
 import sun.awt.SunToolkit;
 import sun.awt.util.IdentityArrayList;
+import sun.java2d.pipe.Region;
 import sun.security.action.GetPropertyAction;
 import sun.security.util.SecurityConstants;
 
@@ -134,7 +135,7 @@
  * Windows are capable of generating the following WindowEvents:
  * WindowOpened, WindowClosed, WindowGainedFocus, WindowLostFocus.
  *
- * @version 	@(#)Window.java	1.266 07/06/05
+ * @version 	@(#)Window.java	1.268 07/07/26
  * @author 	Sami Shaio
  * @author 	Arthur van Hoff
  * @see WindowEvent
@@ -2949,18 +2950,49 @@
 
     /**
      * Sets the location of the window relative to the specified
+     * component according to the following scenarios.
+     * <p>
+     * The target screen mentioned below is a screen to which
+     * the window should be placed after the setLocationRelativeTo
+     * method is called.
+     * <ul>
+     * <li>If the component is {@code null}, or the {@code
+     * GraphicsConfiguration} associated with this component is
+     * {@code null}, the window is placed in the center of the
+     * screen. The center point can be obtained with the {@link
+     * GraphicsEnvironment#getCenterPoint
+     * GraphicsEnvironment.getCenterPoint} method.
+     * <li>If the component is not {@code null}, but it is not
+     * currently showing, the window is placed in the center of
+     * the target screen defined by the {@code
+     * GraphicsConfiguration} associated with this component.
+     * <li>If the component is not {@code null} and is shown on
+     * the screen, then the window is located in such a way that
+     * the center of the window coincides with the center of the
      * component.
+     * </ul>
      * <p>
-     * If the component is not currently showing, or <code>c</code>
-     * is <code>null</code>, the window is placed at the center of
-     * the screen. The center point can be determined with {@link 
-     * GraphicsEnvironment#getCenterPoint GraphicsEnvironment.getCenterPoint}
+     * If the screens configuration does not allow the window to
+     * be moved from one screen to another, then the window is
+     * only placed at the location determined according to the
+     * above conditions and its {@code GraphicsConfiguration} is
+     * not changed.
      * <p>
-     * If the bottom of the component is offscreen, the window is
-     * placed to the side of the <code>Component</code> that is
-     * closest to the center of the screen.  So if the <code>Component</code>
-     * is on the right part of the screen, the <code>Window</code>
-     * is placed to its left, and vice versa.
+     * <b>Note</b>: If the lower edge of the window is out of the screen,
+     * then the window is placed to the side of the <code>Component</code>
+     * that is closest to the center of the screen. So if the
+     * component is on the right part of the screen, the window
+     * is placed to its left, and vice versa. 
+     * <p>
+     * If after the window location has been calculated, the upper,
+     * left, or right edge of the window is out of the screen,
+     * then the window is located in such a way that the upper,
+     * left, or right edge of the window coincides with the
+     * corresponding edge of the screen. If both left and right
+     * edges of the window are out of the screen, the window is
+     * placed at the left side of the screen. The similar placement
+     * will occur if both top and bottom edges are out of the screen.
+     * In that case, the window is placed at the top side of the screen.
      *
      * @param c  the component in relation to which the window's location
      *           is determined
@@ -2968,59 +3000,66 @@
      * @since 1.4
      */
     public void setLocationRelativeTo(Component c) {
-        Container root=null;
+        // target location
+        int dx = 0, dy = 0;
+        // target GC
+        GraphicsConfiguration gc = this.graphicsConfig;
+        Rectangle gcBounds = gc.getBounds();
+
+        Dimension windowSize = getSize();
 
-        if (c != null) {
-            if (c instanceof Window || c instanceof Applet) {
-               root = (Container)c;
-            } else {
-                Container parent;
-                for(parent = c.getParent() ; parent != null ; parent = parent.getParent()) {
-                    if (parent instanceof Window || parent instanceof Applet) {
-                        root = parent;
-                        break;
-                    }
+        // search a top-level of c
+        Window componentWindow = Component.getContainingWindow(c);
+        if ((c == null) || (componentWindow == null)) {
+            GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
+            gc = ge.getDefaultScreenDevice().getDefaultConfiguration();
+            gcBounds = gc.getBounds();
+            Point centerPoint = ge.getCenterPoint();
+            dx = centerPoint.x - windowSize.width / 2;
+            dy = centerPoint.y - windowSize.height / 2;
+        } else if (!c.isShowing()) {
+            gc = componentWindow.getGraphicsConfiguration();
+            gcBounds = gc.getBounds();
+            dx = gcBounds.x + (gcBounds.width - windowSize.width) / 2;
+            dy = gcBounds.y + (gcBounds.height - windowSize.height) / 2;
+        } else {
+            gc = componentWindow.getGraphicsConfiguration();
+            gcBounds = gc.getBounds();
+            Dimension compSize = c.getSize();
+            Point compLocation = c.getLocationOnScreen();
+            dx = compLocation.x + ((compSize.width - windowSize.width) / 2);
+            dy = compLocation.y + ((compSize.height - windowSize.height) / 2);
+
+            // Adjust for bottom edge being offscreen
+            if (dy + windowSize.height > gcBounds.y + gcBounds.height) {
+                dy = gcBounds.y + gcBounds.height - windowSize.height;
+                if (compLocation.x - gcBounds.x + compSize.width / 2 < gcBounds.width / 2) {
+                    dx = compLocation.x + compSize.width;
+                } else {
+                    dx = compLocation.x - windowSize.width;
                 }
             }
         }
 
-        if((c != null && !c.isShowing()) || root == null ||
-           !root.isShowing()) {
-            Dimension         paneSize = getSize();
-
-            Point centerPoint = GraphicsEnvironment.getLocalGraphicsEnvironment().getCenterPoint();
-            setLocation(centerPoint.x - paneSize.width / 2,
-                        centerPoint.y - paneSize.height / 2);
-        } else {
-            Dimension invokerSize = c.getSize();
-            Point invokerScreenLocation = c.getLocationOnScreen();
-
-            Rectangle  windowBounds = getBounds();
-            int        dx = invokerScreenLocation.x+((invokerSize.width-windowBounds.width)>>1);
-            int        dy = invokerScreenLocation.y+((invokerSize.height - windowBounds.height)>>1);
-            Rectangle ss = root.getGraphicsConfiguration().getBounds();
+        // Avoid being placed off the edge of the screen:
+        // bottom
+        if (dy + windowSize.height > gcBounds.y + gcBounds.height) {
+            dy = gcBounds.y + gcBounds.height - windowSize.height;
+        }
+        // top
+        if (dy < gcBounds.y) {
+            dy = gcBounds.y;
+        }
+        // right
+        if (dx + windowSize.width > gcBounds.x + gcBounds.width) {
+            dx = gcBounds.x + gcBounds.width - windowSize.width;
+        }
+        // left
+        if (dx < gcBounds.x) {
+            dx = gcBounds.x;
+        }
 
-            // Adjust for bottom edge being offscreen
-            if (dy+windowBounds.height>ss.y+ss.height) {
-                dy = ss.y + ss.height-windowBounds.height;
-                if (invokerScreenLocation.x - ss.x + invokerSize.width / 2 <
-                    ss.width / 2) {
-                    dx = invokerScreenLocation.x+invokerSize.width;
-                }
-                else {
-                    dx = invokerScreenLocation.x-windowBounds.width;
-                }
-            }
-
-            // Avoid being placed off the edge of the screen
-            if (dx+windowBounds.width > ss.x + ss.width) {
-                dx = ss.x + ss.width - windowBounds.width;
-            }
-            if (dx < ss.x) dx = ss.x;
-            if (dy < ss.y) dy = ss.y;
-
-            setLocation(dx, dy);
-        }
+        setLocation(dx, dy);
     }
     
     /**
@@ -3258,6 +3297,45 @@
         // We're overriding isRecursivelyVisible to implement this policy.
         return visible;
     }    
+
+
+    // ************************** MIXING CODE *******************************
+    
+    // A window has a parent, but it does NOT have a container
+    @Override
+    final Container getContainer() {
+        return null;
+    }
+    
+    /**
+     * Applies the shape to the component
+     * @param shape Shape to be applied to the component
+     */
+    @Override
+    final void applyCompoundShape(Region shape) {
+        // The shape calculated by mixing code is not intended to be applied 
+        // to windows or frames
+    }
+
+    @Override
+    final void applyCurrentShape() {
+        // The shape calculated by mixing code is not intended to be applied 
+        // to windows or frames
+    }
+
+    @Override
+    final void mixOnReshaping() {
+        // The shape calculated by mixing code is not intended to be applied 
+        // to windows or frames
+    }
+    
+    @Override
+    final Point getLocationOnWindow() {
+        return new Point(0, 0);
+    }
+
+    // ****************** END OF MIXING CODE ********************************
+
 } // class Window
 
 
--- a/j2se/src/share/classes/java/awt/event/MouseWheelEvent.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/awt/event/MouseWheelEvent.java	Fri Aug 31 00:44:13 2007 +0000
@@ -26,7 +26,6 @@
 package java.awt.event;
 
 import java.awt.Component;
-import sun.awt.DebugHelper;
 
 /**
  * An event which indicates that the mouse wheel was rotated in a component.
@@ -77,7 +76,7 @@
  * reflect the most recent settings.
  *
  * @author Brent Christian
- * @version 1.20 05/05/07
+ * @version 1.21 07/23/07
  * @see MouseWheelListener
  * @see java.awt.ScrollPane
  * @see java.awt.ScrollPane#setWheelScrollingEnabled(boolean)
@@ -88,8 +87,6 @@
 
 public class MouseWheelEvent extends MouseEvent {
 
-    private static final DebugHelper dbg = DebugHelper.create(MouseWheelEvent.class);
-
     /**
      * Constant representing scrolling by "units" (like scrolling with the
      * arrow keys)
@@ -233,10 +230,6 @@
         this.scrollType = scrollType;
         this.scrollAmount = scrollAmount;
         this.wheelRotation = wheelRotation;
-        
-        if (dbg.on) {
-            dbg.println("MouseWheelEvent constructor");
-        }
     }
 
     /**
--- a/j2se/src/share/classes/java/awt/peer/ComponentPeer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/awt/peer/ComponentPeer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -33,6 +33,8 @@
 import java.awt.image.VolatileImage;
 import java.awt.GraphicsConfiguration;
 import sun.awt.CausedFocusEvent;
+import sun.java2d.pipe.Region;
+
 
 /**
  * The peer interfaces are intended only for use in porting
@@ -114,6 +116,12 @@
         Rectangle getBounds();
 
     /**
+     * Applies the shape to the native component window.
+     * @since 1.7
+     */
+    void applyShape(Region shape);
+
+    /**
      * DEPRECATED:  Replaced by getPreferredSize().
      */
     Dimension           preferredSize();
--- a/j2se/src/share/classes/java/lang/String.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/lang/String.java	Fri Aug 31 00:44:13 2007 +0000
@@ -99,7 +99,7 @@
  *
  * @author  Lee Boynton
  * @author  Arthur van Hoff
- * @version 1.212, 05/05/07
+ * @version 1.213, 08/06/07
  * @see     java.lang.Object#toString()
  * @see     java.lang.StringBuffer
  * @see     java.lang.StringBuilder
@@ -236,12 +236,12 @@
 
     /**
      * Allocates a new {@code String} that contains characters from a subarray
-     * of the Unicode code point array argument. The {@code offset} argument
-     * is the index of the first code point of the subarray and the
-     * {@code count} argument specifies the length of the subarray. The
-     * contents of the subarray are converted to {@code char}s; subsequent
-     * modification of the {@code int} array does not affect the newly created
-     * string.
+     * of the <a href="Character.html#unicode">Unicode code point</a> array
+     * argument.  The {@code offset} argument is the index of the first code
+     * point of the subarray and the {@code count} argument specifies the
+     * length of the subarray.  The contents of the subarray are converted to
+     * {@code char}s; subsequent modification of the {@code int} array does not
+     * affect the newly created string.
      *
      * @param  codePoints
      *         Array that is the source of Unicode code points
@@ -274,43 +274,33 @@
             throw new StringIndexOutOfBoundsException(offset + count);
         }
 
-	int expansion = 0;
-	int margin = 1;
-	char[] v = new char[count + margin];
-	int x = offset;
-	int j = 0;
-	for (int i = 0; i < count; i++) {
-	    int c = codePoints[x++];
-	    if (c < 0) {
-		throw new IllegalArgumentException();
-	    }
-	    if (margin <= 0 && (j+1) >= v.length) {
-		if (expansion == 0) {
-		    expansion = (((-margin + 1) * count) << 10) / i;
-		    expansion >>= 10;
-		    if (expansion <= 0) {
-			expansion = 1;
-		    }
-		} else {
-		    expansion *= 2;
-		}
-                int newLen = Math.min(v.length+expansion, count*2);
-		margin = (newLen - v.length) - (count - i);
-                v = Arrays.copyOf(v, newLen);
-	    }
+	// Pass 1: Compute precise size of char[]
+	int n = 0;
+	for (int i = offset; i < offset + count; i++) {
+	    int c = codePoints[i];
+	    if (c >= Character.MIN_CODE_POINT &&
+		c <  Character.MIN_SUPPLEMENTARY_CODE_POINT)
+		n += 1;
+	    else if (Character.isSupplementaryCodePoint(c))
+		n += 2;
+	    else throw new IllegalArgumentException(Integer.toString(c));
+	}
+
+	// Pass 2: Allocate and fill in char[]
+	char[] v = new char[n];
+	for (int i = offset, j = 0; i < offset + count; i++) {
+	    int c = codePoints[i];
 	    if (c < Character.MIN_SUPPLEMENTARY_CODE_POINT) {
 		v[j++] = (char) c;
-	    } else if (c <= Character.MAX_CODE_POINT) {
+	    } else {
 		Character.toSurrogates(c, v, j);
 		j += 2;
-		margin--;
-	    } else {
-		throw new IllegalArgumentException();
 	    }
 	}
+
+	this.value  = v;
+	this.count  = v.length;
 	this.offset = 0;
-	this.value = v;
-	this.count = j;
     }
 
     /**
--- a/j2se/src/share/classes/java/lang/Thread.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/lang/Thread.java	Fri Aug 31 00:44:13 2007 +0000
@@ -122,7 +122,7 @@
  * a thread is created, a new name is generated for it. 
  *
  * @author  unascribed
- * @version 1.184, 07/30/07
+ * @version 1.186, 08/08/07
  * @see     Runnable
  * @see     Runtime#exit(int)
  * @see     #run()
@@ -262,8 +262,20 @@
     public static native Thread currentThread();
 
     /**
-     * Causes the currently executing thread object to temporarily pause 
-     * and allow other threads to execute. 
+     * A hint to the scheduler that the current thread is willing to yield
+     * its current use of a processor. The scheduler is free to ignore this
+     * hint.
+     *
+     * <p> Yield is a heuristic attempt to improve relative progression
+     * between threads that would otherwise over-utilise a CPU. Its use
+     * should be combined with detailed profiling and benchmarking to
+     * ensure that it actually has the desired effect.
+     *
+     * <p> It is rarely appropriate to use this method. It may be useful
+     * for debugging or testing purposes, where it may help to reproduce
+     * bugs due to race conditions. It may also be useful when designing
+     * concurrency control constructs such as the ones in the
+     * {@link java.util.concurrent.locks} package.
      */
     public static native void yield();
 
@@ -1101,34 +1113,50 @@
     }
 
     /**
-     * Returns the number of active threads in the current thread's thread
-     * group.
+     * Returns an estimate of the number of active threads in the current
+     * thread's {@linkplain java.lang.ThreadGroup thread group} and its
+     * subgroups. Recursively iterates over all subgroups in the current
+     * thread's thread group.
      *
-     * @return  the number of active threads in the current thread's thread
-     *          group.
+     * <p> The value returned is only an estimate because the number of
+     * threads may change dynamically while this method traverses internal
+     * data structures, and might be affected by the presence of certain
+     * system threads. This method is intended primarily for debugging
+     * and monitoring purposes.
+     *
+     * @return  an estimate of the number of active threads in the current
+     *          thread's thread group and in any other thread group that
+     *          has the current thread's thread group as an ancestor
      */
     public static int activeCount() {
 	return currentThread().getThreadGroup().activeCount();
     }
 
     /**
-     * Copies into the specified array every active thread in 
-     * the current thread's thread group and its subgroups. This method simply 
-     * calls the <code>enumerate</code> method of the current thread's thread 
-     * group with the array argument. 
-     * <p>
-     * First, if there is a security manager, that <code>enumerate</code>
-     * method calls the security
-     * manager's <code>checkAccess</code> method 
-     * with the thread group as its argument. This may result 
-     * in throwing a <code>SecurityException</code>. 
+     * Copies into the specified array every active thread in the current
+     * thread's thread group and its subgroups. This method simply
+     * invokes the {@link java.lang.ThreadGroup#enumerate(Thread[])}
+     * method of the current thread's thread group.
      *
-     * @param tarray an array of Thread objects to copy to
+     * <p> An application might use the {@linkplain #activeCount activeCount}
+     * method to get an estimate of how big the array should be, however
+     * <i>if the array is too short to hold all the threads, the extra threads
+     * are silently ignored.</i>  If it is critical to obtain every active
+     * thread in the current thread's thread group and its subgroups, the
+     * invoker should verify that the returned int value is strictly less
+     * than the length of {@code tarray}.
+     *
+     * <p> Due to the inherent race condition in this method, it is recommended
+     * that the method only be used for debugging and monitoring purposes.
+     *
+     * @param  tarray
+     *         an array into which to put the list of threads
+     *
      * @return  the number of threads put into the array
-     * @exception  SecurityException  if a security manager exists and its  
-     *             <code>checkAccess</code> method doesn't allow the operation.
-     * @see     ThreadGroup#enumerate(Thread[])
-     * @see     SecurityManager#checkAccess(ThreadGroup)
+     *
+     * @throws  SecurityException
+     *          if {@link java.lang.ThreadGroup#checkAccess} determines that
+     *          the current thread cannot access its thread group
      */
     public static int enumerate(Thread tarray[]) {
 	return currentThread().getThreadGroup().enumerate(tarray);
--- a/j2se/src/share/classes/java/lang/ThreadGroup.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/lang/ThreadGroup.java	Fri Aug 31 00:44:13 2007 +0000
@@ -40,7 +40,7 @@
  * parent thread group or any other thread groups. 
  *
  * @author  unascribed
- * @version 1.73, 06/27/07
+ * @version 1.74, 08/08/07
  * @since   JDK1.0
  */
 /* The locking strategy for this code is to try to lock only one level of the
@@ -307,16 +307,20 @@
     }
 
     /**
-     * Returns an estimate of the number of active threads in this
-     * thread group.  The result might not reflect concurrent activity,
-     * and might be affected by the presence of certain system threads.
-     * <p>
-     * Due to the inherently imprecise nature of the result, it is
-     * recommended that this method only be used for informational purposes.
+     * Returns an estimate of the number of active threads in this thread
+     * group and its subgroups. Recursively iterates over all subgroups in
+     * this thread group.
      *
+     * <p> The value returned is only an estimate because the number of
+     * threads may change dynamically while this method traverses internal
+     * data structures, and might be affected by the presence of certain 
+     * system threads. This method is intended primarily for debugging
+     * and monitoring purposes.
+     * 
      * @return  an estimate of the number of active threads in this thread
      *          group and in any other thread group that has this thread
-     *          group as an ancestor.
+     *          group as an ancestor
+     *
      * @since   JDK1.0
      */
     public int activeCount() {
@@ -346,27 +350,23 @@
     /**
      * Copies into the specified array every active thread in this 
      * thread group and its subgroups. 
-     * <p>
-     * First, the <code>checkAccess</code> method of this thread group is 
-     * called with no arguments; this may result in a security exception. 
-     * <p>
-     * An application might use the <code>activeCount</code> method to 
-     * get an estimate of how big the array should be, however <i>if the
-     * array is too short to hold all the threads, the extra threads are
-     * silently ignored.</i>  If it is critical to obtain every active
-     * thread in this thread group and its subgroups, the caller should
-     * verify that the returned int value is strictly less than the length
-     * of <tt>list</tt>.
-     * <p>
-     * Due to the inherent race condition in this method, it is recommended
-     * that the method only be used for informational purposes.
+     *
+     * <p> An invocation of this method behaves in exactly the same 
+     * way as the invocation
+     *
+     * <blockquote>
+     * {@linkplain #enumerate(Thread[], boolean) enumerate}{@code (list, true)}
+     * </blockquote>
      *
-     * @param   list   an array into which to place the list of threads.
-     * @return  the number of threads put into the array.
-     * @exception  SecurityException  if the current thread does not
-     *               have permission to enumerate this thread group.
-     * @see     java.lang.ThreadGroup#activeCount()
-     * @see     java.lang.ThreadGroup#checkAccess()
+     * @param  list
+     *         an array into which to put the list of threads
+     * 
+     * @return  the number of threads put into the array
+     *
+     * @throws  SecurityException
+     *          if {@linkplain #checkAccess checkAccess} determines that
+     *          the current thread cannot access this thread group
+     *
      * @since   JDK1.0
      */
     public int enumerate(Thread list[]) {
@@ -376,33 +376,35 @@
 
     /**
      * Copies into the specified array every active thread in this 
-     * thread group. If the <code>recurse</code> flag is 
-     * <code>true</code>, references to every active thread in this 
-     * thread's subgroups are also included. If the array is too short to 
+     * thread group. If {@code recurse} is {@code true},
+     * this method recursively enumerates all subgroups of this
+     * thread group and references to every active thread in these
+     * subgroups are also included. If the array is too short to 
      * hold all the threads, the extra threads are silently ignored. 
-     * <p>
-     * First, the <code>checkAccess</code> method of this thread group is 
-     * called with no arguments; this may result in a security exception. 
-     * <p>
-     * An application might use the <code>activeCount</code> method to 
-     * get an estimate of how big the array should be, however <i>if the
-     * array is too short to hold all the threads, the extra threads are
-     * silently ignored.</i>  If it is critical to obtain every active thread
-     * in this thread group, the caller should verify that the returned int
-     * value is strictly less than the length of <tt>list</tt>.
-     * <p>
-     * Due to the inherent race condition in this method, it is recommended
-     * that the method only be used for informational purposes.
+     * 
+     * <p> An application might use the {@linkplain #activeCount activeCount}
+     * method to get an estimate of how big the array should be, however
+     * <i>if the array is too short to hold all the threads, the extra threads
+     * are silently ignored.</i>  If it is critical to obtain every active
+     * thread in this thread group, the caller should verify that the returned
+     * int value is strictly less than the length of {@code list}.
+     *
+     * <p> Due to the inherent race condition in this method, it is recommended
+     * that the method only be used for debugging and monitoring purposes.
      *
-     * @param   list      an array into which to place the list of threads.
-     * @param   recurse   a flag indicating whether also to include threads
-     *                    in thread groups that are subgroups of this
-     *                    thread group.
-     * @return  the number of threads placed into the array.
-     * @exception  SecurityException  if the current thread does not
-     *               have permission to enumerate this thread group.
-     * @see     java.lang.ThreadGroup#activeCount()
-     * @see     java.lang.ThreadGroup#checkAccess()
+     * @param  list
+     *         an array into which to put the list of threads
+     *
+     * @param  recurse
+     *         if {@code true}, recursively enumerate all subgroups of this
+     *         thread group
+     *
+     * @return  the number of threads put into the array
+     *
+     * @throws  SecurityException
+     *          if {@linkplain #checkAccess checkAccess} determines that
+     *          the current thread cannot access this thread group
+     *
      * @since   JDK1.0
      */
     public int enumerate(Thread list[], boolean recurse) {
@@ -445,13 +447,17 @@
 
     /**
      * Returns an estimate of the number of active groups in this
-     * thread group.  The result might not reflect concurrent activity.
-     * <p>
-     * Due to the inherently imprecise nature of the result, it is
-     * recommended that this method only be used for informational purposes.
+     * thread group and its subgroups. Recursively iterates over
+     * all subgroups in this thread group.
+     *
+     * <p> The value returned is only an estimate because the number of
+     * thread groups may change dynamically while this method traverses
+     * internal data structures. This method is intended primarily for
+     * debugging and monitoring purposes.
      *
      * @return  the number of active thread groups with this thread group as
-     *          an ancestor.
+     *          an ancestor
+     *
      * @since   JDK1.0
      */
     public int activeGroupCount() {
@@ -477,28 +483,24 @@
 
     /**
      * Copies into the specified array references to every active 
-     * subgroup in this thread group. 
-     * <p>
-     * First, the <code>checkAccess</code> method of this thread group is 
-     * called with no arguments; this may result in a security exception. 
-     * <p>
-     * An application might use the <code>activeGroupCount</code> method to 
-     * get an estimate of how big the array should be, however <i>if the
-     * array is too short to hold all the thread groups, the extra thread
-     * groups are silently ignored.</i>  If it is critical to obtain every
-     * active subgroup in this thread group, the caller should verify that
-     * the returned int value is strictly less than the length of
-     * <tt>list</tt>.
-     * <p>
-     * Due to the inherent race condition in this method, it is recommended
-     * that the method only be used for informational purposes.
+     * subgroup in this thread group and its subgroups. 
+     *
+     * <p> An invocation of this method behaves in exactly the same
+     * way as the invocation
+     *
+     * <blockquote>
+     * {@linkplain #enumerate(ThreadGroup[], boolean) enumerate}{@code (list, true)}
+     * </blockquote>
      *
-     * @param   list   an array into which to place the list of thread groups.
-     * @return  the number of thread groups put into the array.
-     * @exception  SecurityException  if the current thread does not
-     *               have permission to enumerate this thread group.
-     * @see     java.lang.ThreadGroup#activeGroupCount()
-     * @see     java.lang.ThreadGroup#checkAccess()
+     * @param  list   
+     *         an array into which to put the list of thread groups
+     * 
+     * @return  the number of thread groups put into the array
+     *
+     * @throws  SecurityException
+     *          if {@linkplain #checkAccess checkAccess} determines that
+     *          the current thread cannot access this thread group
+     *
      * @since   JDK1.0
      */
     public int enumerate(ThreadGroup list[]) {
@@ -508,32 +510,35 @@
 
     /**
      * Copies into the specified array references to every active 
-     * subgroup in this thread group. If the <code>recurse</code> flag is 
-     * <code>true</code>, references to all active subgroups of the 
-     * subgroups and so forth are also included. 
-     * <p>
-     * First, the <code>checkAccess</code> method of this thread group is 
-     * called with no arguments; this may result in a security exception. 
-     * <p>
-     * An application might use the <code>activeGroupCount</code> method to 
+     * subgroup in this thread group. If {@code recurse} is 
+     * {@code true}, this method recursively enumerates all subgroups of this
+     * thread group and references to every active thread group in these
+     * subgroups are also included. 
+     *
+     * <p> An application might use the
+     * {@linkplain #activeGroupCount activeGroupCount} method to
      * get an estimate of how big the array should be, however <i>if the
      * array is too short to hold all the thread groups, the extra thread
      * groups are silently ignored.</i>  If it is critical to obtain every
      * active subgroup in this thread group, the caller should verify that
      * the returned int value is strictly less than the length of
-     * <tt>list</tt>.
-     * <p>
-     * Due to the inherent race condition in this method, it is recommended
-     * that the method only be used for informational purposes.
+     * {@code list}.
+     *
+     * <p> Due to the inherent race condition in this method, it is recommended
+     * that the method only be used for debugging and monitoring purposes.
+     *
+     * @param  list
+     *         an array into which to put the list of thread groups
      *
-     * @param   list      an array into which to place the list of threads.
-     * @param   recurse   a flag indicating whether to recursively enumerate
-     *                    all included thread groups.
-     * @return  the number of thread groups put into the array.
-     * @exception  SecurityException  if the current thread does not
-     *               have permission to enumerate this thread group.
-     * @see     java.lang.ThreadGroup#activeGroupCount()
-     * @see     java.lang.ThreadGroup#checkAccess()
+     * @param  recurse
+     *         if {@code true}, recursively enumerate all subgroups
+     * 
+     * @return  the number of thread groups put into the array
+     *
+     * @throws  SecurityException
+     *          if {@linkplain #checkAccess checkAccess} determines that
+     *          the current thread cannot access this thread group
+     *
      * @since   JDK1.0
      */
     public int enumerate(ThreadGroup list[], boolean recurse) {
--- a/j2se/src/share/classes/java/net/HttpURLConnection.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/net/HttpURLConnection.java	Fri Aug 31 00:44:13 2007 +0000
@@ -44,6 +44,12 @@
  * instance but has no effect on any shared persistent connection.
  * Calling the disconnect() method may close the underlying socket
  * if a persistent connection is otherwise idle at that time.
+ *
+ * <P>The HTTP protocol handler has a few settings that can be accessed through
+ * System Properties. This covers
+ * <a href="doc-files/net-properties.html#Proxies">Proxy settings</a> as well as
+ * <a href="doc-files/net-properties.html#MiscHTTP"> various other settings</a>.
+ * </P>
  * 
  * @see     java.net.HttpURLConnection#disconnect()
  * @since JDK1.1
--- a/j2se/src/share/classes/java/net/InetAddress.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/net/InetAddress.java	Fri Aug 31 00:44:13 2007 +0000
@@ -110,6 +110,9 @@
  * address format, please refer to <A
  * HREF="Inet6Address.html#format">Inet6Address#format</A>.
  *
+ * <P>There is a <a href="doc-files/net-properties.html#Ipv4IPv6">couple of
+ * System Properties</a> affecting how IPv4 and IPv6 addresses are used.</P>
+ *
  * <h4> Host Name Resolution </h4>
  * 
  * Host name-to-IP address <i>resolution</i> is accomplished through
@@ -171,7 +174,7 @@
  * </blockquote>
  *
  * @author  Chris Warth
- * @version 1.125, 06/12/07
+ * @version 1.126, 08/13/07
  * @see     java.net.InetAddress#getByAddress(byte[])
  * @see     java.net.InetAddress#getByAddress(java.lang.String, byte[])
  * @see     java.net.InetAddress#getAllByName(java.lang.String)
--- a/j2se/src/share/classes/java/net/ProxySelector.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/net/ProxySelector.java	Fri Aug 31 00:44:13 2007 +0000
@@ -49,6 +49,10 @@
  * {@link #connectFailed connectFailed} method to notify the proxy
  * selector that the proxy server is unavailable. </p>
  *
+ * <P>The default proxy selector does enforce a
+ * <a href="doc-files/net-properties.html#Proxies">set of System Properties</a>
+ * related to proxy settings.</P>
+ *
  * @version 1.3, 03/08/09
  * @author Yingxian Wang
  * @author Jean-Christophe Collet
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/src/share/classes/java/net/doc-files/net-properties.html	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,235 @@
+<!--
+ Copyright 1998-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ This code is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License version 2 only, as
+ published by the Free Software Foundation.  Sun designates this
+ particular file as subject to the "Classpath" exception as provided
+ by Sun in the LICENSE file that accompanied this code.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ version 2 for more details (a copy is included in the LICENSE file that
+ accompanied this code).
+
+ You should have received a copy of the GNU General Public License version
+ 2 along with this work; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ CA 95054 USA or visit www.sun.com if you need additional information or
+ have any questions.
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
+	<TITLE>Networking Properties</TITLE>
+</HEAD>
+<BODY LANG="en-US" DIR="LTR">
+<H1 ALIGN=CENTER>Networking Properties</H1>
+<P ALIGN=LEFT>There are a few standard system properties used to
+alter the mechanisms and behavior of the various classes of the
+java.net package. Some are checked only once at startup of the VM,
+and therefore are best set using the -D option of the java command,
+while others have a more dynamic nature and can also be changed using
+the <a href="../../lang/System.html#setProperty(java.lang.String, java.lang.String)">System.setProperty()</a> API. The purpose of this document is to list
+and detail all of these properties.</P>
+<P>If there is no special note, a property value is checked every time it is used.</P>
+<a name="Ipv4IPv6"></a>
+<H2>IPv4 / IPv6</H2>
+<UL>
+	<LI><P><B>java.net.preferIPv4Stack</B> (default: false)<BR>
+	If IPv6 is available on the operating system the
+	underlying native socket will be, by default, an IPv6 socket which
+	lets applications connect to, and accept connections from, both
+	IPv4 and IPv6 hosts. However, in the case an application would
+	rather use IPv4 only sockets, then this property can be set to <B>true</B>.
+	The implication is that it will not be possible for the application
+	to communicate with IPv6 only hosts.</P>
+	<LI><P><B>java.net.preferIPv6Addresses</B> (default: false)<BR>
+	When dealing with a host which has both IPv4
+	and IPv6 addresses, and if IPv6 is available on the operating
+	system, the default behavior is to prefer using IPv4 addresses over
+	IPv6 ones. This is to ensure backward compatibility, for example
+	applications that depend on the representation of an IPv4 address
+	(e.g. 192.168.1.1). This property can be set to <B>true</B> to
+	change that preference and use IPv6 addresses over IPv4 ones where
+	possible.</P>
+</UL>
+<P>Both of these properties are checked only once, at startup.</P>
+<a name="Proxies"></a>
+<H2>Proxies</H2>
+<P>A proxy server allows indirect connection to network services and
+is used mainly for security (to get through firewalls) and
+performance reasons (proxies often do provide caching mechanisms).
+The following properties allow for configuration of the various type
+of proxies.</P>
+<UL>
+	<LI><P>HTTP</P>
+	<P>The following proxy settings are used by the HTTP protocol handler.</P>
+	<UL>
+		<LI><P><B>http.proxyHost</FONT></B> (default: &lt;none&gt;)<BR>
+	        The hostname, or address, of the proxy server 
+		</P>
+		<LI><P><B>http.proxyPort</B> (default: 80)<BR>
+	        The port number of the proxy server.</P>
+		<LI><P><B>http.nonProxyHosts</B> (default: &lt;none&gt;)<BR>
+	        Indicates the hosts that should be accessed without going
+	        through the proxy. Typically this defines internal hosts.
+	        The value of this property is a list of hosts,
+		separated by the '|' character. In addition the wildcard
+	        character '*' can be used for pattern matching. For example
+		<code>-Dhttp.nonProxyHosts=&rdquo;*.foo.com|localhost&rdquo;</code>
+		will indicate that every hosts in the foo.com domain and the
+		localhost should be accessed directly even if a proxy server is
+		specified.</P>
+	</UL>
+	<LI><P>HTTPS<BR>This is HTTP over SSL, a secure version of HTTP
+	mainly used when confidentiality (like on payment sites) is needed.</P>
+	<P>The following proxy settings are used by the HTTPS protocol handler.</P>
+	<UL>
+		<LI><P><B>https.proxyHost</B>(default: &lt;none&gt;)<BR>
+	        The hostname, or address, of the proxy server 
+		</P>
+		<LI><P><B>https.proxyPort</B> (default: 443)<BR>
+	        The port number of the proxy server.</P>
+		<P>The HTTPS protocol handler will use the same nonProxyHosts
+		property as the HTTP protocol.</P>
+	</UL>
+	<LI><P>FTP</P>
+	<P>The following proxy settings are used by the FTP protocol handler.</P>
+	<UL>
+		<LI><P><B>ftp.proxyHost</B>(default: &lt;none&gt;)<BR>
+	        The hostname, or address, of the proxy server 
+		</P>
+		<LI><P><B>ftp.proxyPort</B> (default: 80)<BR>
+	        The port number of the proxy server.</P>
+		<LI><P><B>ftp.nonProxyHosts</B> (default: &lt;none&gt;)<BR>
+	        Indicates the hosts that should be accessed without going
+	        through the proxy. Typically this defines internal hosts.
+	        The value of this property is a list of hosts, separated by
+	        the '|' character. In addition the wildcard character
+		'*' can be used for pattern matching. For example
+		<code>-Dhttp.nonProxyHosts=&rdquo;*.foo.com|localhost&rdquo;</code>
+		will indicate that every hosts in the foo.com domain and the
+		localhost should be accessed directly even if a proxy server is
+		specified.</P>
+	</UL>
+	<LI><P>SOCKS<BR>This is another type of proxy. It allows for lower
+	level type of tunneling since it works at the TCP level. In effect,
+	in the Java(tm) platform setting a SOCKS proxy server will result in
+	all TCP connections to go through that proxy, unless other proxies
+	are specified. If SOCKS is supported by a Java SE implementation, the
+	following properties will be used:</P>
+	<UL>
+		<LI><P><B>socksProxyHost</B> (default: &lt;non&gt;)<BR>
+	        The hostname, or address, of the proxy server.</P>
+		<LI><P><B>socksProxyPort</B> (default: 1080)<BR>
+	        The port number of the proxy server.</P>
+		<LI><P><B>java.net.socks.username</B> (default: &lt;none&gt;)<BR>
+	        Username to use if the SOCKSv5 server asks for authentication
+	        and no java.net.Authenticator instance was found.</P>
+		<LI><P><B>java.net.socks.password</B> (default: &lt;none&gt;)<BR>
+	        Password to use if the SOCKSv5 server asks for authentication
+	        and no java.net.Authenticator instance was found.</P>
+		<P>Note that if no authentication is provided with either the above
+		properties or an Authenticator, and the proxy requires one, then
+		the <B>user.name</B> property will be used with no password.</P>
+	</UL>
+	<LI><P><B>java.net.useSystemProxies</B> (default: false)<BR>
+	On recent Windows systems and on Gnome 2.x systems it is possible to
+	tell the java.net stack, setting this property to <B>true</B>, to use
+	the system proxy settings (both	these systems let you set proxies
+	globally through their user interface). Note that this property is
+	checked only once at startup.</P>
+</UL>
+<a name="MiscHTTP"></a>
+<H2>Misc HTTP properties</H2>
+<UL>
+	<LI><P><B>http.agent</B> (default: &ldquo;Java/&lt;version&gt;&rdquo;)<BR>
+	Defines the string sent in the User-Agent request header in http
+	requests. Note that the string &ldquo;Java/&lt;version&gt;&rdquo; will
+	be appended to the one provided in the property (e.g. if 
+	-Dhttp.agent=&rdquo;foobar&rdquo; is used, the User-Agent header will
+	contain &ldquo;foobar Java/1.5.0&rdquo; if the version of the VM is
+	1.5.0). This property is checked only once at startup.</P>
+	<LI><P><B>http.keepalive</B> (default: true)<BR>
+	Indicates if persistent connections should be supported. They improve
+	performance by allowing the underlying socket connection to be reused
+	for multiple http requests. If this is set to true then persistent
+	connections will be requested with HTTP 1.1 servers.</P>
+	<LI><P><B>http.maxConnections</B> (default: 5)<BR>
+	If HTTP keepalive is enabled (see above) this value determines the
+	maximum number of idle connections that will be simultaneously kept
+	alive, per destination.</P>
+	<LI><P><B>http.maxRedirects</B> (default: 20)<BR>
+	This integer value determines the maximum number, for a given request,
+	of HTTP redirects that will be automatically followed by the
+	protocol handler.</P>
+	<LI><P><B>http.auth.digest.validateServer</B> (default: false)</P>
+	<LI><P><B>http.auth.digest.validateProxy</B> (default: false)</P>
+	<LI><P><B>http.auth.digest.cnonceRepeat</B> (default: 5)</P>
+	<P>These 3 properties modify the behavior of the HTTP digest
+	authentication mechanism. Digest authentication provides a limited
+	ability for the server  to authenticate itself to the client (i.e.
+	By proving it knows the user's password). However not all HTTP
+	servers support this capability and by default it is turned off. The
+	first two properties can be set to true to enforce this check for
+	authentication with either an origin or proxy server, respectively.</P>
+	<P>It is usually not necessary to change the third property. It
+	determines how many times a cnonce value is re-used. This can be
+	useful when the MD5-sess algorithm is being used. Increasing this
+	value reduces the computational overhead on both client and server
+	by reducing the amount of material that has to be hashed for each
+	HTTP request.</P>
+	<LI><P><B>http.auth.ntlm.domain</B> (default: &lt;none&gt;)<BR>
+	NTLM is another authentication scheme. It uses the
+	java.net.Authenticator class to acquire usernames and passwords when
+	they are needed. However NTLM also needs the NT domain name. There are
+	3 options for specifying that domain:</P>
+	<OL>
+	  <LI><P>Do not specify it. In some environments the domain is
+	      actually not required and the application does not have to specify
+	      it.</P>
+	  <LI><P>The domain name can be encoded within the username by
+	      prefixing the domain name, followed by a back-slash '\' before the
+	      username. With this method existing applications that use the
+	      authenticator class do not need to be modified, as long as users
+	      are made aware that this notation must be used.</P>
+	  <LI><P>If a domain name is not specified as in method 2) and these
+	      property is defined, then its value will be used a the domain
+	      name.</P>
+	</OL>
+</UL>
+<P>All these properties are checked only once at startup.</P>
+<a name="AddressCache"></a>
+<H2>Address Cache</H2>
+<P>The java.net package, when doing name resolution, uses an address
+cache for both security and performance reasons. Any address
+resolution attempt, be it forward (name to IP address) or reverse (IP
+address to name), will have its result cached, whether it was
+successful or not, so that subsequent identical requests will not
+have to access the naming service. These properties allow for some
+tuning on how the cache is operating.</P>
+<UL>
+	<LI><P><B>networkaddress.cache.ttl</B> (default: see below)<BR>
+	Value is an integer corresponding to the number of seconds successful
+	name lookups will be kept in the cache. A value of -1, or any  other
+	negative value for that matter,	indicates a &ldquo;cache forever&rdquo;
+	policy, while a value of 0 (zero) means no caching. The default value
+	is -1 (forever) if a security manager is installed, and implementation
+	specific when no security manager is installed.</P>
+	<LI><P><B>networkaddress.cache.negative.ttl</B>	(default: 10)<BR>
+	Value is an integer corresponding to the number of seconds an
+	unsuccessful name lookup will be kept in the cache. A value of -1,
+	or any negative value, means &ldquo;cache forever&rdquo;, while a
+	value of 0 (zero) means no caching.</P>
+</UL>
+<P>Since these 2 properties are part of the security policy, they are
+not set by either the -D option or the System.setProperty() API,
+instead they are set in the JRE security policy file <code>lib/security/java.security</code>.</P>
+</BODY>
+</HTML>
--- a/j2se/src/share/classes/java/net/package.html	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/net/package.html	Fri Aug 31 00:44:13 2007 +0000
@@ -85,6 +85,10 @@
 As mentioned, URL and URLConnection rely on protocol handlers which must be present, otherwise an Exception is thrown. This is the major difference with URIs which only identify resources, and therefore don't need to have access to the protocol handler. So, while it is possible to create an URI with any kind of protocol scheme (e.g. <code>myproto://myhost.mydomain/resource/</code>), a similar URL will try to instantiate the handler for the specified protocol; if it doesn't exist an exception will be thrown.</p>
 <p>By default the protocol handlers are loaded dynamically from the default location. It is, however, possible to add to the search path by setting the <code>java.protocol.handler.pkgs</code> system property. For instance if it is set to <code>myapp.protocols</code>, then the URL code will try, in the case of http, first to load <code>myapp.protocols.http.Handler</code>, then, if this fails, <code>http.Handler</code> from the default location.<p>
 <p>Note that the Handler class <b>has to</b> be a subclass of the abstract class {@link java.net.URLStreamHandler}.</p>
+<h2>Additional Specification</h2>
+<ul>
+      <li><a href="doc-files/net-properties.html">Networking System Properties</a></li>
+</ul>
 <!--
 <h2>Package Specification</h2>
 
--- a/j2se/src/share/classes/java/security/AccessControlContext.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/security/AccessControlContext.java	Fri Aug 31 00:44:13 2007 +0000
@@ -77,7 +77,11 @@
 
     private ProtectionDomain context[];
     private boolean isPrivileged;
+    
+    // Note: This field is directly used by the virtual machine
+    // native codes. Don't touch it.
     private AccessControlContext privilegedContext;
+    
     private DomainCombiner combiner = null;
 
     private static boolean debugInit = false;
--- a/j2se/src/share/classes/java/util/Collections.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/util/Collections.java	Fri Aug 31 00:44:13 2007 +0000
@@ -61,7 +61,7 @@
  *
  * @author  Josh Bloch
  * @author  Neal Gafter
- * @version 1.116, 07/23/07
+ * @version 1.117, 08/10/07
  * @see	    Collection
  * @see	    Set
  * @see	    List
@@ -1031,7 +1031,7 @@
 	    };
         }
 
-	public boolean add(E e){
+	public boolean add(E e) {
 	    throw new UnsupportedOperationException();
         }
 	public boolean remove(Object o) {
@@ -1402,7 +1402,8 @@
             public boolean contains(Object o) {
                 if (!(o instanceof Map.Entry))
                     return false;
-                return c.contains(new UnmodifiableEntry<K,V>((Map.Entry<K,V>) o));
+                return c.contains(
+		    new UnmodifiableEntry<Object,Object>((Map.Entry<?,?>) o));
             }
 
             /**
@@ -1977,13 +1978,13 @@
 	public int size() {
 	    synchronized(mutex) {return m.size();}
         }
-	public boolean isEmpty(){
+	public boolean isEmpty() {
 	    synchronized(mutex) {return m.isEmpty();}
         }
 	public boolean containsKey(Object key) {
 	    synchronized(mutex) {return m.containsKey(key);}
         }
-	public boolean containsValue(Object value){
+	public boolean containsValue(Object value) {
 	    synchronized(mutex) {return m.containsValue(value);}
         }
 	public V get(Object key) {
@@ -2144,13 +2145,14 @@
     // Dynamically typesafe collection wrappers
 
     /**
-     * Returns a dynamically typesafe view of the specified collection.  Any
-     * attempt to insert an element of the wrong type will result in an
-     * immediate <tt>ClassCastException</tt>.  Assuming a collection contains
-     * no incorrectly typed elements prior to the time a dynamically typesafe
-     * view is generated, and that all subsequent access to the collection
-     * takes place through the view, it is <i>guaranteed</i> that the
-     * collection cannot contain an incorrectly typed element.
+     * Returns a dynamically typesafe view of the specified collection.
+     * Any attempt to insert an element of the wrong type will result in an
+     * immediate {@link ClassCastException}.  Assuming a collection
+     * contains no incorrectly typed elements prior to the time a
+     * dynamically typesafe view is generated, and that all subsequent
+     * access to the collection takes place through the view, it is
+     * <i>guaranteed</i> that the collection cannot contain an incorrectly
+     * typed element.
      *
      * <p>The generics mechanism in the language provides compile-time
      * (static) type checking, but it is possible to defeat this mechanism
@@ -2162,7 +2164,7 @@
      * inserting an element of the wrong type.
      *
      * <p>Another use of dynamically typesafe views is debugging.  Suppose a
-     * program fails with a <tt>ClassCastException</tt>, indicating that an
+     * program fails with a {@code ClassCastException}, indicating that an
      * incorrectly typed element was put into a parameterized collection.
      * Unfortunately, the exception can occur at any time after the erroneous
      * element is inserted, so it typically provides little or no information
@@ -2170,14 +2172,14 @@
      * one can quickly determine its source by temporarily modifying the
      * program to wrap the collection with a dynamically typesafe view.
      * For example, this declaration:
-     * <pre>
-     *     Collection&lt;String&gt; c = new HashSet&lt;String&gt;();
-     * </pre>
+     *  <pre> {@code
+     *     Collection<String> c = new HashSet<String>();
+     * }</pre>
      * may be replaced temporarily by this one:
-     * <pre>
-     *     Collection&lt;String&gt; c = Collections.checkedCollection(
-     *         new HashSet&lt;String&gt;(), String.class);
-     * </pre>
+     *  <pre> {@code
+     *     Collection<String> c = Collections.checkedCollection(
+     *         new HashSet<String>(), String.class);
+     * }</pre>
      * Running the program again will cause it to fail at the point where
      * an incorrectly typed element is inserted into the collection, clearly
      * identifying the source of the problem.  Once the problem is fixed, the
@@ -2185,16 +2187,20 @@
      *
      * <p>The returned collection does <i>not</i> pass the hashCode and equals
      * operations through to the backing collection, but relies on
-     * <tt>Object</tt>'s <tt>equals</tt> and <tt>hashCode</tt> methods.  This
+     * {@code Object}'s {@code equals} and {@code hashCode} methods.  This
      * is necessary to preserve the contracts of these operations in the case
      * that the backing collection is a set or a list.
      *
      * <p>The returned collection will be serializable if the specified
      * collection is serializable.
      *
+     * <p>Since {@code null} is considered to be a value of any reference
+     * type, the returned collection permits insertion of null elements
+     * whenever the backing collection does.
+     *
      * @param c the collection for which a dynamically typesafe view is to be
-     *             returned
-     * @param type the type of element that <tt>c</tt> is permitted to hold
+     *          returned
+     * @param type the type of element that {@code c} is permitted to hold
      * @return a dynamically typesafe view of the specified collection
      * @since 1.5
      */
@@ -2203,6 +2209,11 @@
         return new CheckedCollection<E>(c, type);
     }
 
+    @SuppressWarnings("unchecked")
+    static <T> T[] zeroLengthArray(Class<T> type) {
+	return (T[]) Array.newInstance(type, 0);
+    }
+
     /**
      * @serial include
      */
@@ -2213,12 +2224,15 @@
         final Class<E> type;
 
         void typeCheck(Object o) {
-            if (!type.isInstance(o))
-                throw new ClassCastException("Attempt to insert " +
-                   o.getClass() + " element into collection with element type "
-                   + type);
+            if (o != null && !type.isInstance(o))
+                throw new ClassCastException(badElementMsg(o));
         }
 
+	private String badElementMsg(Object o) {
+	    return "Attempt to insert " + o.getClass() +
+		" element into collection with element type " + type;
+	}
+
         CheckedCollection(Collection<E> c, Class<E> type) {
             if (c==null || type == null)
                 throw new NullPointerException();
@@ -2226,14 +2240,16 @@
             this.type = type;
         }
 
-        public int size()                   { return c.size(); }
-        public boolean isEmpty()            { return c.isEmpty(); }
-        public boolean contains(Object o)   { return c.contains(o); }
-        public Object[] toArray()           { return c.toArray(); }
-        public <T> T[] toArray(T[] a)       { return c.toArray(a); }
-        public String toString()            { return c.toString(); }
-        public boolean remove(Object o)     { return c.remove(o); }
-        public boolean containsAll(Collection<?> coll) {
+        public int size()                 { return c.size(); }
+        public boolean isEmpty()          { return c.isEmpty(); }
+        public boolean contains(Object o) { return c.contains(o); }
+        public Object[] toArray()         { return c.toArray(); }
+        public <T> T[] toArray(T[] a)     { return c.toArray(a); }
+        public String toString()          { return c.toString(); }
+        public boolean remove(Object o)   { return c.remove(o); }
+        public void clear()               {        c.clear(); }
+
+	public boolean containsAll(Collection<?> coll) {
             return c.containsAll(coll);
         }
         public boolean removeAll(Collection<?> coll) {
@@ -2242,73 +2258,82 @@
         public boolean retainAll(Collection<?> coll) {
             return c.retainAll(coll);
         }
-        public void clear() {
-            c.clear();
-        }
 
         public Iterator<E> iterator() {
+	    final Iterator<E> it = c.iterator();
 	    return new Iterator<E>() {
-		private final Iterator<E> it = c.iterator();
 		public boolean hasNext() { return it.hasNext(); }
 		public E next()          { return it.next(); }
 		public void remove()     {        it.remove(); }};
 	}
 
-	public boolean add(E e){
+	public boolean add(E e) {
             typeCheck(e);
             return c.add(e);
         }
 
+        private E[] zeroLengthElementArray = null; // Lazily initialized
+
+	private E[] zeroLengthElementArray() {
+	    return zeroLengthElementArray != null ? zeroLengthElementArray :
+		(zeroLengthElementArray = zeroLengthArray(type));
+	}
+
+	@SuppressWarnings("unchecked")
+	Collection<E> checkedCopyOf(Collection<? extends E> coll) {
+	    Object[] a = null;
+	    try {
+		E[] z = zeroLengthElementArray();
+		a = coll.toArray(z);
+		// Defend against coll violating the toArray contract
+		if (a.getClass() != z.getClass())
+		    a = Arrays.copyOf(a, a.length, z.getClass());
+	    } catch (ArrayStoreException ignore) {
+		// To get better and consistent diagnostics,
+		// we call typeCheck explicitly on each element.
+		// We call clone() to defend against coll retaining a
+		// reference to the returned array and storing a bad
+		// element into it after it has been type checked.
+		a = coll.toArray().clone();
+		for (Object o : a)
+		    typeCheck(o);
+	    }
+	    // A slight abuse of the type system, but safe here.
+	    return (Collection<E>) Arrays.asList(a);
+	}
+
         public boolean addAll(Collection<? extends E> coll) {
-            /*
-             * Dump coll into an array of the required type.  This serves
-             * three purposes: it insulates us from concurrent changes in
-             * the contents of coll, it type-checks all of the elements in
-             * coll, and it provides all-or-nothing semantics (which we
-             * wouldn't get if we type-checked each element as we added it).
-             */
-            E[] a = null;
-            try {
-                a = coll.toArray(zeroLengthElementArray());
-            } catch (ArrayStoreException e) {
-                throw new ClassCastException();
-            }
-
-            return c.addAll(Arrays.asList(a));
-        }
-
-        private E[] zeroLengthElementArray = null; // Lazily initialized
-
-        /*
-         * We don't need locking or volatile, because it's OK if we create
-         * several zeroLengthElementArrays, and they're immutable.
-         */
-        E[] zeroLengthElementArray() {
-            if (zeroLengthElementArray == null)
-                zeroLengthElementArray = (E[]) Array.newInstance(type, 0);
-            return zeroLengthElementArray;
+	    // Doing things this way insulates us from concurrent changes
+	    // in the contents of coll and provides all-or-nothing
+	    // semantics (which we wouldn't get if we type-checked each
+	    // element as we added it)
+	    return c.addAll(checkedCopyOf(coll));
         }
     }
 
     /**
      * Returns a dynamically typesafe view of the specified set.
      * Any attempt to insert an element of the wrong type will result in
-     * an immediate <tt>ClassCastException</tt>.  Assuming a set contains
+     * an immediate {@link ClassCastException}.  Assuming a set contains
      * no incorrectly typed elements prior to the time a dynamically typesafe
      * view is generated, and that all subsequent access to the set
      * takes place through the view, it is <i>guaranteed</i> that the
      * set cannot contain an incorrectly typed element.
      *
      * <p>A discussion of the use of dynamically typesafe views may be
-     * found in the documentation for the {@link #checkedCollection checkedCollection}
-     * method.
+     * found in the documentation for the {@link #checkedCollection
+     * checkedCollection} method.
      *
      * <p>The returned set will be serializable if the specified set is
      * serializable.
      *
+     * <p>Since {@code null} is considered to be a value of any reference
+     * type, the returned set permits insertion of null elements whenever
+     * the backing set does.
+     *
      * @param s the set for which a dynamically typesafe view is to be
-     *             returned
-     * @param type the type of element that <tt>s</tt> is permitted to hold
+     *          returned
+     * @param type the type of element that {@code s} is permitted to hold
      * @return a dynamically typesafe view of the specified set
      * @since 1.5
      */
@@ -2331,24 +2356,29 @@
     }
 
     /**
-     * Returns a dynamically typesafe view of the specified sorted set.  Any
-     * attempt to insert an element of the wrong type will result in an
-     * immediate <tt>ClassCastException</tt>.  Assuming a sorted set contains
-     * no incorrectly typed elements prior to the time a dynamically typesafe
-     * view is generated, and that all subsequent access to the sorted set
-     * takes place through the view, it is <i>guaranteed</i> that the sorted
-     * set cannot contain an incorrectly typed element.
+     * Returns a dynamically typesafe view of the specified sorted set.
+     * Any attempt to insert an element of the wrong type will result in an
+     * immediate {@link ClassCastException}.  Assuming a sorted set
+     * contains no incorrectly typed elements prior to the time a
+     * dynamically typesafe view is generated, and that all subsequent
+     * access to the sorted set takes place through the view, it is
+     * <i>guaranteed</i> that the sorted set cannot contain an incorrectly
+     * typed element.
      *
      * <p>A discussion of the use of dynamically typesafe views may be
-     * found in the documentation for the {@link #checkedCollection checkedCollection}
-     * method.
+     * found in the documentation for the {@link #checkedCollection
+     * checkedCollection} method.
      *
      * <p>The returned sorted set will be serializable if the specified sorted
      * set is serializable.
      *
+     * <p>Since {@code null} is considered to be a value of any reference
+     * type, the returned sorted set permits insertion of null elements
+     * whenever the backing sorted set does.
+     *
      * @param s the sorted set for which a dynamically typesafe view is to be
-     *             returned
-     * @param type the type of element that <tt>s</tt> is permitted to hold
+     *          returned
+     * @param type the type of element that {@code s} is permitted to hold
      * @return a dynamically typesafe view of the specified sorted set
      * @since 1.5
      */
@@ -2376,36 +2406,39 @@
         public E last()                    { return ss.last(); }
 
         public SortedSet<E> subSet(E fromElement, E toElement) {
-            return new CheckedSortedSet<E>(ss.subSet(fromElement,toElement),
-                                           type);
+            return checkedSortedSet(ss.subSet(fromElement,toElement), type);
         }
         public SortedSet<E> headSet(E toElement) {
-            return new CheckedSortedSet<E>(ss.headSet(toElement), type);
+            return checkedSortedSet(ss.headSet(toElement), type);
         }
         public SortedSet<E> tailSet(E fromElement) {
-            return new CheckedSortedSet<E>(ss.tailSet(fromElement), type);
+            return checkedSortedSet(ss.tailSet(fromElement), type);
         }
     }
 
     /**
      * Returns a dynamically typesafe view of the specified list.
      * Any attempt to insert an element of the wrong type will result in
-     * an immediate <tt>ClassCastException</tt>.  Assuming a list contains
+     * an immediate {@link ClassCastException}.  Assuming a list contains
      * no incorrectly typed elements prior to the time a dynamically typesafe
      * view is generated, and that all subsequent access to the list
      * takes place through the view, it is <i>guaranteed</i> that the
      * list cannot contain an incorrectly typed element.
      *
      * <p>A discussion of the use of dynamically typesafe views may be
-     * found in the documentation for the {@link #checkedCollection checkedCollection}
-     * method.
+     * found in the documentation for the {@link #checkedCollection
+     * checkedCollection} method.
      *
-     * <p>The returned list will be serializable if the specified list is
-     * serializable.
+     * <p>The returned list will be serializable if the specified list
+     * is serializable.
+     *
+     * <p>Since {@code null} is considered to be a value of any reference
+     * type, the returned list permits insertion of null elements whenever
+     * the backing list does.
      *
      * @param list the list for which a dynamically typesafe view is to be
      *             returned
-     * @param type the type of element that <tt>list</tt> is permitted to hold
+     * @param type the type of element that {@code list} is permitted to hold
      * @return a dynamically typesafe view of the specified list
      * @since 1.5
      */
@@ -2418,8 +2451,9 @@
     /**
      * @serial include
      */
-    static class CheckedList<E> extends CheckedCollection<E>
-                                implements List<E>
+    static class CheckedList<E>
+	extends CheckedCollection<E>
+	implements List<E>
     {
         private static final long serialVersionUID = 65247728283967356L;
         final List<E> list;
@@ -2447,29 +2481,21 @@
         }
 
         public boolean addAll(int index, Collection<? extends E> c) {
-            // See CheckCollection.addAll, above, for an explanation
-            E[] a = null;
-            try {
-                a = c.toArray(zeroLengthElementArray());
-            } catch (ArrayStoreException e) {
-                throw new ClassCastException();
-            }
-
-            return list.addAll(index, Arrays.asList(a));
+            return list.addAll(index, checkedCopyOf(c));
         }
         public ListIterator<E> listIterator()   { return listIterator(0); }
 
         public ListIterator<E> listIterator(final int index) {
-            return new ListIterator<E>() {
-                private final ListIterator<E> i = list.listIterator(index);
-
+	    final ListIterator<E> i = list.listIterator(index);
+
+	    return new ListIterator<E>() {
                 public boolean hasNext()     { return i.hasNext(); }
                 public E next()              { return i.next(); }
                 public boolean hasPrevious() { return i.hasPrevious(); }
                 public E previous()          { return i.previous(); }
                 public int nextIndex()       { return i.nextIndex(); }
                 public int previousIndex()   { return i.previousIndex(); }
-                public void remove()         { i.remove(); }
+                public void remove()         {        i.remove(); }
 
                 public void set(E e) {
                     typeCheck(e);
@@ -2507,14 +2533,14 @@
     }
 
     /**
-     * Returns a dynamically typesafe view of the specified map.  Any attempt
-     * to insert a mapping whose key or value have the wrong type will result
-     * in an immediate <tt>ClassCastException</tt>.  Similarly, any attempt to
-     * modify the value currently associated with a key will result in an
-     * immediate <tt>ClassCastException</tt>, whether the modification is
-     * attempted directly through the map itself, or through a {@link
-     * Map.Entry} instance obtained from the map's {@link Map#entrySet()
-     * entry set} view.
+     * Returns a dynamically typesafe view of the specified map.
+     * Any attempt to insert a mapping whose key or value have the wrong
+     * type will result in an immediate {@link ClassCastException}.
+     * Similarly, any attempt to modify the value currently associated with
+     * a key will result in an immediate {@link ClassCastException},
+     * whether the modification is attempted directly through the map
+     * itself, or through a {@link Map.Entry} instance obtained from the
+     * map's {@link Map#entrySet() entry set} view.
      *
      * <p>Assuming a map contains no incorrectly typed keys or values
      * prior to the time a dynamically typesafe view is generated, and
@@ -2523,20 +2549,25 @@
      * map cannot contain an incorrectly typed key or value.
      *
      * <p>A discussion of the use of dynamically typesafe views may be
-     * found in the documentation for the {@link #checkedCollection checkedCollection}
-     * method.
+     * found in the documentation for the {@link #checkedCollection
+     * checkedCollection} method.
      *
      * <p>The returned map will be serializable if the specified map is
      * serializable.
      *
+     * <p>Since {@code null} is considered to be a value of any reference
+     * type, the returned map permits insertion of null keys or values
+     * whenever the backing map does.
+     *
      * @param m the map for which a dynamically typesafe view is to be
-     *             returned
-     * @param keyType the type of key that <tt>m</tt> is permitted to hold
-     * @param valueType the type of value that <tt>m</tt> is permitted to hold
+     *          returned
+     * @param keyType the type of key that {@code m} is permitted to hold
+     * @param valueType the type of value that {@code m} is permitted to hold
      * @return a dynamically typesafe view of the specified map
      * @since 1.5
      */
-    public static <K, V> Map<K, V> checkedMap(Map<K, V> m, Class<K> keyType,
+    public static <K, V> Map<K, V> checkedMap(Map<K, V> m,
+					      Class<K> keyType,
                                               Class<V> valueType) {
         return new CheckedMap<K,V>(m, keyType, valueType);
     }
@@ -2545,8 +2576,8 @@
     /**
      * @serial include
      */
-    private static class CheckedMap<K,V> implements Map<K,V>,
-                                                         Serializable
+    private static class CheckedMap<K,V>
+	implements Map<K,V>, Serializable
     {
         private static final long serialVersionUID = 5742860141034234728L;
 
@@ -2555,17 +2586,23 @@
         final Class<V> valueType;
 
         private void typeCheck(Object key, Object value) {
-            if (!keyType.isInstance(key))
-                throw new ClassCastException("Attempt to insert " +
-                    key.getClass() + " key into collection with key type "
-                    + keyType);
-
-            if (!valueType.isInstance(value))
-                throw new ClassCastException("Attempt to insert " +
-                    value.getClass() +" value into collection with value type "
-                    + valueType);
+            if (key != null && !keyType.isInstance(key))
+                throw new ClassCastException(badKeyMsg(key));
+
+            if (value != null && !valueType.isInstance(value))
+                throw new ClassCastException(badValueMsg(value));
         }
 
+	private String badKeyMsg(Object key) {
+	    return "Attempt to insert " + key.getClass() +
+		" key into map with key type " + keyType;
+	}
+
+	private String badValueMsg(Object value) {
+	    return "Attempt to insert " + value.getClass() +
+		" value into map with value type " + valueType;
+	}
+
         CheckedMap(Map<K, V> m, Class<K> keyType, Class<V> valueType) {
             if (m == null || keyType == null || valueType == null)
                 throw new NullPointerException();
@@ -2592,46 +2629,27 @@
             return m.put(key, value);
         }
 
-        public void putAll(Map<? extends K, ? extends V> t) {
-            // See CheckCollection.addAll, above, for an explanation
-            K[] keys = null;
-            try {
-                keys = t.keySet().toArray(zeroLengthKeyArray());
-            } catch (ArrayStoreException e) {
-                throw new ClassCastException();
-            }
-            V[] values = null;
-            try {
-                values = t.values().toArray(zeroLengthValueArray());
-            } catch (ArrayStoreException e) {
-                throw new ClassCastException();
-            }
-
-            if (keys.length != values.length)
-                throw new ConcurrentModificationException();
-
-            for (int i = 0; i < keys.length; i++)
-                m.put(keys[i], values[i]);
-        }
-
-        // Lazily initialized
-        private K[] zeroLengthKeyArray   = null;
-        private V[] zeroLengthValueArray = null;
-
-        /*
-         * We don't need locking or volatile, because it's OK if we create
-         * several zeroLengthValueArrays, and they're immutable.
-         */
-        private K[] zeroLengthKeyArray() {
-            if (zeroLengthKeyArray == null)
-                zeroLengthKeyArray = (K[]) Array.newInstance(keyType, 0);
-            return zeroLengthKeyArray;
-        }
-        private V[] zeroLengthValueArray() {
-            if (zeroLengthValueArray == null)
-                zeroLengthValueArray = (V[]) Array.newInstance(valueType, 0);
-            return zeroLengthValueArray;
-        }
+	@SuppressWarnings("unchecked")
+	public void putAll(Map<? extends K, ? extends V> t) {
+	    // Satisfy the following goals:
+	    // - good diagnostics in case of type mismatch
+	    // - all-or-nothing semantics
+	    // - protection from malicious t
+	    // - correct behavior if t is a concurrent map
+	    Object[] entries = t.entrySet().toArray();
+	    List<Map.Entry<K,V>> checked =
+		new ArrayList<Map.Entry<K,V>>(entries.length);
+	    for (Object o : entries) {
+		Map.Entry<?,?> e = (Map.Entry<?,?>) o;
+		Object k = e.getKey();
+		Object v = e.getValue();
+		typeCheck(k, v);
+		checked.add(
+		    new AbstractMap.SimpleImmutableEntry<K,V>((K) k, (V) v));
+	    }
+	    for (Map.Entry<K,V> e : checked)
+		m.put(e.getKey(), e.getValue());
+	}
 
         private transient Set<Map.Entry<K,V>> entrySet = null;
 
@@ -2650,50 +2668,42 @@
          * @serial exclude
          */
         static class CheckedEntrySet<K,V> implements Set<Map.Entry<K,V>> {
-            Set<Map.Entry<K,V>> s;
-            Class<V> valueType;
+            private final Set<Map.Entry<K,V>> s;
+            private final Class<V> valueType;
 
             CheckedEntrySet(Set<Map.Entry<K, V>> s, Class<V> valueType) {
                 this.s = s;
                 this.valueType = valueType;
             }
 
-            public int size()                   { return s.size(); }
-            public boolean isEmpty()            { return s.isEmpty(); }
-            public String toString()            { return s.toString(); }
-            public int hashCode()               { return s.hashCode(); }
-            public boolean remove(Object o)     { return s.remove(o); }
-            public boolean removeAll(Collection<?> coll) {
-                return s.removeAll(coll);
-            }
-            public boolean retainAll(Collection<?> coll) {
-                return s.retainAll(coll);
-            }
-            public void clear() {
-                s.clear();
-            }
-
-            public boolean add(Map.Entry<K, V> e){
+            public int size()        { return s.size(); }
+            public boolean isEmpty() { return s.isEmpty(); }
+            public String toString() { return s.toString(); }
+            public int hashCode()    { return s.hashCode(); }
+            public void clear()      {        s.clear(); }
+
+            public boolean add(Map.Entry<K, V> e) {
                 throw new UnsupportedOperationException();
             }
             public boolean addAll(Collection<? extends Map.Entry<K, V>> coll) {
                 throw new UnsupportedOperationException();
             }
 
-
             public Iterator<Map.Entry<K,V>> iterator() {
-                return new Iterator<Map.Entry<K,V>>() {
-                    private final Iterator<Map.Entry<K, V>> i = s.iterator();
-
+		final Iterator<Map.Entry<K, V>> i = s.iterator();
+		final Class<V> valueType = this.valueType;
+
+		return new Iterator<Map.Entry<K,V>>() {
                     public boolean hasNext() { return i.hasNext(); }
                     public void remove()     { i.remove(); }
 
                     public Map.Entry<K,V> next() {
-                        return new CheckedEntry<K,V>(i.next(), valueType);
+                        return checkedEntry(i.next(), valueType);
                     }
                 };
             }
 
+	    @SuppressWarnings("unchecked")
             public Object[] toArray() {
                 Object[] source = s.toArray();
 
@@ -2706,22 +2716,23 @@
                                  new Object[source.length]);
 
                 for (int i = 0; i < source.length; i++)
-                    dest[i] = new CheckedEntry<K,V>((Map.Entry<K,V>)source[i],
-                                                    valueType);
+                    dest[i] = checkedEntry((Map.Entry<K,V>)source[i],
+					   valueType);
                 return dest;
             }
 
+	    @SuppressWarnings("unchecked")
             public <T> T[] toArray(T[] a) {
                 // We don't pass a to s.toArray, to avoid window of
                 // vulnerability wherein an unscrupulous multithreaded client
                 // could get his hands on raw (unwrapped) Entries from s.
-                Object[] arr = s.toArray(a.length==0 ? a : Arrays.copyOf(a, 0));
+                T[] arr = s.toArray(a.length==0 ? a : Arrays.copyOf(a, 0));
 
                 for (int i=0; i<arr.length; i++)
-                    arr[i] = new CheckedEntry<K,V>((Map.Entry<K,V>)arr[i],
-                                                   valueType);
+                    arr[i] = (T) checkedEntry((Map.Entry<K,V>)arr[i],
+					      valueType);
                 if (arr.length > a.length)
-                    return (T[])arr;
+                    return arr;
 
                 System.arraycopy(arr, 0, a, 0, arr.length);
                 if (a.length > arr.length)
@@ -2738,46 +2749,75 @@
             public boolean contains(Object o) {
                 if (!(o instanceof Map.Entry))
                     return false;
-                return s.contains(
-                    new CheckedEntry<K,V>((Map.Entry<K,V>) o, valueType));
+		Map.Entry<?,?> e = (Map.Entry<?,?>) o;
+		return s.contains(
+		    (e instanceof CheckedEntry) ? e : checkedEntry(e, valueType));
             }
 
             /**
-             * The next two methods are overridden to protect against
-             * an unscrupulous collection whose contains(Object o) method
-             * senses when o is a Map.Entry, and calls o.setValue.
+             * The bulk collection methods are overridden to protect
+             * against an unscrupulous collection whose contains(Object o)
+             * method senses when o is a Map.Entry, and calls o.setValue.
              */
-            public boolean containsAll(Collection<?> coll) {
-                Iterator<?> e = coll.iterator();
-                while (e.hasNext())
-                    if (!contains(e.next())) // Invokes safe contains() above
+            public boolean containsAll(Collection<?> c) {
+		for (Object o : c)
+                    if (!contains(o)) // Invokes safe contains() above
                         return false;
                 return true;
             }
 
+	    public boolean remove(Object o) {
+                if (!(o instanceof Map.Entry))
+                    return false;
+		return s.remove(new AbstractMap.SimpleImmutableEntry
+				<Object, Object>((Map.Entry<?,?>)o));
+	    }
+
+	    public boolean removeAll(Collection<?> c) {
+		return batchRemove(c, false);
+            }
+	    public boolean retainAll(Collection<?> c) {
+		return batchRemove(c, true);
+            }
+	    private boolean batchRemove(Collection<?> c, boolean complement) {
+		boolean modified = false;
+		Iterator<Map.Entry<K,V>> it = iterator();
+		while (it.hasNext()) {
+		    if (c.contains(it.next()) != complement) {
+			it.remove();
+			modified = true;
+		    }
+		}
+		return modified;
+	    }
+
             public boolean equals(Object o) {
                 if (o == this)
                     return true;
                 if (!(o instanceof Set))
                     return false;
                 Set<?> that = (Set<?>) o;
-                if (that.size() != s.size())
-                    return false;
-                return containsAll(that); // Invokes safe containsAll() above
+                return that.size() == s.size()
+		    && containsAll(that); // Invokes safe containsAll() above
             }
 
+	    static <K,V,T> CheckedEntry<K,V,T> checkedEntry(Map.Entry<K,V> e,
+							    Class<T> valueType) {
+		return new CheckedEntry<K,V,T>(e, valueType);
+	    }
+
             /**
              * This "wrapper class" serves two purposes: it prevents
              * the client from modifying the backing Map, by short-circuiting
              * the setValue method, and it protects the backing Map against
              * an ill-behaved Map.Entry that attempts to modify another
-             * Map Entry when asked to perform an equality check.
+             * Map.Entry when asked to perform an equality check.
              */
-            private static class CheckedEntry<K,V> implements Map.Entry<K,V> {
-                private Map.Entry<K, V> e;
-                private Class<V> valueType;
-
-                CheckedEntry(Map.Entry<K, V> e, Class<V> valueType) {
+            private static class CheckedEntry<K,V,T> implements Map.Entry<K,V> {
+                private final Map.Entry<K, V> e;
+                private final Class<T> valueType;
+
+                CheckedEntry(Map.Entry<K, V> e, Class<T> valueType) {
                     this.e = e;
                     this.valueType = valueType;
                 }
@@ -2787,35 +2827,38 @@
                 public int hashCode()    { return e.hashCode(); }
                 public String toString() { return e.toString(); }
 
-
                 public V setValue(V value) {
-                    if (!valueType.isInstance(value))
-                        throw new ClassCastException("Attempt to insert " +
-                        value.getClass() +
-                        " value into collection with value type " + valueType);
+                    if (value != null && !valueType.isInstance(value))
+                        throw new ClassCastException(badValueMsg(value));
                     return e.setValue(value);
                 }
 
+		private String badValueMsg(Object value) {
+		    return "Attempt to insert " + value.getClass() +
+			" value into map with value type " + valueType;
+		}
+
                 public boolean equals(Object o) {
+		    if (o == this)
+			return true;
                     if (!(o instanceof Map.Entry))
                         return false;
-                    Map.Entry t = (Map.Entry)o;
-                    return eq(e.getKey(),   t.getKey()) &&
-                           eq(e.getValue(), t.getValue());
+                    return e.equals(new AbstractMap.SimpleImmutableEntry
+				    <Object, Object>((Map.Entry<?,?>)o));
                 }
             }
         }
     }
 
     /**
-     * Returns a dynamically typesafe view of the specified sorted map.  Any
-     * attempt to insert a mapping whose key or value have the wrong type will
-     * result in an immediate <tt>ClassCastException</tt>.  Similarly, any
-     * attempt to modify the value currently associated with a key will result
-     * in an immediate <tt>ClassCastException</tt>, whether the modification
-     * is attempted directly through the map itself, or through a {@link
-     * Map.Entry} instance obtained from the map's {@link Map#entrySet() entry
-     * set} view.
+     * Returns a dynamically typesafe view of the specified sorted map.
+     * Any attempt to insert a mapping whose key or value have the wrong
+     * type will result in an immediate {@link ClassCastException}.
+     * Similarly, any attempt to modify the value currently associated with
+     * a key will result in an immediate {@link ClassCastException},
+     * whether the modification is attempted directly through the map
+     * itself, or through a {@link Map.Entry} instance obtained from the
+     * map's {@link Map#entrySet() entry set} view.
      *
      * <p>Assuming a map contains no incorrectly typed keys or values
      * prior to the time a dynamically typesafe view is generated, and
@@ -2824,16 +2867,20 @@
      * map cannot contain an incorrectly typed key or value.
      *
      * <p>A discussion of the use of dynamically typesafe views may be
-     * found in the documentation for the {@link #checkedCollection checkedCollection}
-     * method.
+     * found in the documentation for the {@link #checkedCollection
+     * checkedCollection} method.
      *
      * <p>The returned map will be serializable if the specified map is
      * serializable.
      *
+     * <p>Since {@code null} is considered to be a value of any reference
+     * type, the returned map permits insertion of null keys or values
+     * whenever the backing map does.
+     *
      * @param m the map for which a dynamically typesafe view is to be
-     *             returned
-     * @param keyType the type of key that <tt>m</tt> is permitted to hold
-     * @param valueType the type of value that <tt>m</tt> is permitted to hold
+     *          returned
+     * @param keyType the type of key that {@code m} is permitted to hold
+     * @param valueType the type of value that {@code m} is permitted to hold
      * @return a dynamically typesafe view of the specified map
      * @since 1.5
      */
@@ -2864,18 +2911,14 @@
         public K lastKey()                        { return sm.lastKey(); }
 
         public SortedMap<K,V> subMap(K fromKey, K toKey) {
-            return new CheckedSortedMap<K,V>(sm.subMap(fromKey, toKey),
-                                             keyType, valueType);
+            return checkedSortedMap(sm.subMap(fromKey, toKey),
+				    keyType, valueType);
         }
-
         public SortedMap<K,V> headMap(K toKey) {
-            return new CheckedSortedMap<K,V>(sm.headMap(toKey),
-                                             keyType, valueType);
+            return checkedSortedMap(sm.headMap(toKey), keyType, valueType);
         }
-
         public SortedMap<K,V> tailMap(K fromKey) {
-            return new CheckedSortedMap<K,V>(sm.tailMap(fromKey),
-                                             keyType, valueType);
+            return checkedSortedMap(sm.tailMap(fromKey), keyType, valueType);
         }
     }
 
@@ -3481,7 +3524,7 @@
 
 	private static final long serialVersionUID = 7207038068494060240L;
 
-	private static final ReverseComparator REVERSE_ORDER
+	static final ReverseComparator REVERSE_ORDER
 	    = new ReverseComparator();
 
         public int compare(Comparable<Object> c1, Comparable<Object> c2) {
@@ -3530,7 +3573,7 @@
          *
          * @serial
          */
-        private final Comparator<T> cmp;
+        final Comparator<T> cmp;
 
         ReverseComparator2(Comparator<T> cmp) {
             assert cmp != null;
@@ -3600,8 +3643,8 @@
     /**
      * Returns true if the specified arguments are equal, or both null.
      */
-    private static boolean eq(Object o1, Object o2) {
-        return (o1==null ? o2==null : o1.equals(o2));
+    static boolean eq(Object o1, Object o2) {
+        return o1==null ? o2==null : o1.equals(o2);
     }
 
     /**
--- a/j2se/src/share/classes/java/util/EnumSet.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/util/EnumSet.java	Fri Aug 31 00:44:13 2007 +0000
@@ -73,7 +73,7 @@
  * Java Collections Framework</a>.
  *
  * @author Josh Bloch
- * @version 1.21, 05/05/07
+ * @version 1.22, 08/09/07
  * @since 1.5
  * @see EnumMap
  * @serial exclude
@@ -334,11 +334,10 @@
      *
      * @param from the first element in the range
      * @param to the last element in the range
-     * @throws NullPointerException if <tt>first</tt> or <tt>last</tt> are
-     *     null
-     * @throws IllegalArgumentException if <tt>first.compareTo(last) &gt; 0</tt>
+     * @throws NullPointerException if {@code from} or {@code to} are null
+     * @throws IllegalArgumentException if {@code from.compareTo(to) > 0}
      * @return an enum set initially containing all of the elements in the
-     *     range defined by the two specified endpoints
+     *         range defined by the two specified endpoints
      */
     public static <E extends Enum<E>> EnumSet<E> range(E from, E to) {
         if (from.compareTo(to) > 0)
@@ -418,7 +417,7 @@
 
         SerializationProxy(EnumSet<E> set) {
             elementType = set.elementType;
-            elements = (Enum[]) set.toArray(ZERO_LENGTH_ENUM_ARRAY);
+            elements = set.toArray(ZERO_LENGTH_ENUM_ARRAY);
         }
 
         private Object readResolve() {
--- a/j2se/src/share/classes/java/util/concurrent/ExecutorCompletionService.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/java/util/concurrent/ExecutorCompletionService.java	Fri Aug 31 00:44:13 2007 +0000
@@ -38,7 +38,7 @@
 /**
  * A {@link CompletionService} that uses a supplied {@link Executor}
  * to execute tasks.  This class arranges that submitted tasks are,
- * upon completion, placed on a queue accessible using <tt>take</tt>.
+ * upon completion, placed on a queue accessible using {@code take}.
  * The class is lightweight enough to be suitable for transient use
  * when processing groups of tasks.
  *
@@ -47,64 +47,62 @@
  * <b>Usage Examples.</b>
  *
  * Suppose you have a set of solvers for a certain problem, each
- * returning a value of some type <tt>Result</tt>, and would like to
+ * returning a value of some type {@code Result}, and would like to
  * run them concurrently, processing the results of each of them that
- * return a non-null value, in some method <tt>use(Result r)</tt>. You
+ * return a non-null value, in some method {@code use(Result r)}. You
  * could write this as:
  *
- * <pre>
- *   void solve(Executor e,
- *              Collection&lt;Callable&lt;Result&gt;&gt; solvers)
+ * <pre> {@code
+ * void solve(Executor e,
+ *            Collection<Callable<Result>> solvers)
  *     throws InterruptedException, ExecutionException {
- *       CompletionService&lt;Result&gt; ecs
- *           = new ExecutorCompletionService&lt;Result&gt;(e);
- *       for (Callable&lt;Result&gt; s : solvers)
- *           ecs.submit(s);
- *       int n = solvers.size();
- *       for (int i = 0; i &lt; n; ++i) {
- *           Result r = ecs.take().get();
- *           if (r != null)
- *               use(r);
- *       }
- *   }
- * </pre>
+ *     CompletionService<Result> ecs
+ *         = new ExecutorCompletionService<Result>(e);
+ *     for (Callable<Result> s : solvers)
+ *         ecs.submit(s);
+ *     int n = solvers.size();
+ *     for (int i = 0; i < n; ++i) {
+ *         Result r = ecs.take().get();
+ *         if (r != null)
+ *             use(r);
+ *     }
+ * }}</pre>
  *
  * Suppose instead that you would like to use the first non-null result
  * of the set of tasks, ignoring any that encounter exceptions,
  * and cancelling all other tasks when the first one is ready:
  *
- * <pre>
- *   void solve(Executor e,
- *              Collection&lt;Callable&lt;Result&gt;&gt; solvers)
+ * <pre> {@code
+ * void solve(Executor e,
+ *            Collection<Callable<Result>> solvers)
  *     throws InterruptedException {
- *       CompletionService&lt;Result&gt; ecs
- *           = new ExecutorCompletionService&lt;Result&gt;(e);
- *       int n = solvers.size();
- *       List&lt;Future&lt;Result&gt;&gt; futures
- *           = new ArrayList&lt;Future&lt;Result&gt;&gt;(n);
- *       Result result = null;
- *       try {
- *           for (Callable&lt;Result&gt; s : solvers)
- *               futures.add(ecs.submit(s));
- *           for (int i = 0; i &lt; n; ++i) {
- *               try {
- *                   Result r = ecs.take().get();
- *                   if (r != null) {
- *                       result = r;
- *                       break;
- *                   }
- *               } catch (ExecutionException ignore) {}
- *           }
- *       }
- *       finally {
- *           for (Future&lt;Result&gt; f : futures)
- *               f.cancel(true);
- *       }
+ *     CompletionService<Result> ecs
+ *         = new ExecutorCompletionService<Result>(e);
+ *     int n = solvers.size();
+ *     List<Future<Result>> futures
+ *         = new ArrayList<Future<Result>>(n);
+ *     Result result = null;
+ *     try {
+ *         for (Callable<Result> s : solvers)
+ *             futures.add(ecs.submit(s));
+ *         for (int i = 0; i < n; ++i) {
+ *             try {
+ *                 Result r = ecs.take().get();
+ *                 if (r != null) {
+ *                     result = r;
+ *                     break;
+ *                 }
+ *             } catch (ExecutionException ignore) {}
+ *         }
+ *     }
+ *     finally {
+ *         for (Future<Result> f : futures)
+ *             f.cancel(true);
+ *     }
  *
- *       if (result != null)
- *           use(result);
- *   }
- * </pre>
+ *     if (result != null)
+ *         use(result);
+ * }}</pre>
  */
 public class ExecutorCompletionService<V> implements CompletionService<V> {
     private final Executor executor;
@@ -143,7 +141,7 @@
      * {@link LinkedBlockingQueue} as a completion queue.
      *
      * @param executor the executor to use
-     * @throws NullPointerException if executor is <tt>null</tt>
+     * @throws NullPointerException if executor is {@code null}
      */
     public ExecutorCompletionService(Executor executor) {
         if (executor == null)
@@ -161,8 +159,11 @@
      *
      * @param executor the executor to use
      * @param completionQueue the queue to use as the completion queue
-     * normally one dedicated for use by this service
-     * @throws NullPointerException if executor or completionQueue are <tt>null</tt>
+     *        normally one dedicated for use by this service. This
+     *        queue is treated as unbounded -- failed attempted
+     *        {@code Queue.add} operations for completed taskes cause
+     *        them not to be retrievable.
+     * @throws NullPointerException if executor or completionQueue are {@code null}
      */
     public ExecutorCompletionService(Executor executor,
                                      BlockingQueue<Future<V>> completionQueue) {
--- a/j2se/src/share/classes/javax/annotation/processing/AbstractProcessor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/annotation/processing/AbstractProcessor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -54,7 +54,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.14 07/05/05
  * @since 1.6
  */
 public abstract class AbstractProcessor implements Processor {
--- a/j2se/src/share/classes/javax/annotation/processing/Completion.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/annotation/processing/Completion.java	Fri Aug 31 00:44:13 2007 +0000
@@ -33,7 +33,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.8 07/05/05
  * @since 1.6
  */
 public interface Completion {
--- a/j2se/src/share/classes/javax/annotation/processing/Completions.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/annotation/processing/Completions.java	Fri Aug 31 00:44:13 2007 +0000
@@ -33,7 +33,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.8 07/05/05
  * @since 1.6
  */
 public class Completions {
--- a/j2se/src/share/classes/javax/annotation/processing/Filer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/annotation/processing/Filer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -124,7 +124,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.16 07/05/05
  * @since 1.6
  */
 public interface Filer {
--- a/j2se/src/share/classes/javax/annotation/processing/FilerException.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/annotation/processing/FilerException.java	Fri Aug 31 00:44:13 2007 +0000
@@ -38,7 +38,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.12 07/05/05
  * @since 1.6
  */
 public class FilerException extends IOException {
--- a/j2se/src/share/classes/javax/annotation/processing/Messager.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/annotation/processing/Messager.java	Fri Aug 31 00:44:13 2007 +0000
@@ -49,7 +49,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.13 07/05/05
  * @see ProcessingEnvironment#getLocale
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/annotation/processing/ProcessingEnvironment.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/annotation/processing/ProcessingEnvironment.java	Fri Aug 31 00:44:13 2007 +0000
@@ -58,7 +58,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.11 07/05/05
  * @since 1.6
  */
 public interface ProcessingEnvironment {
--- a/j2se/src/share/classes/javax/annotation/processing/Processor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/annotation/processing/Processor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -160,7 +160,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.19 07/05/05
  * @since 1.6
  */
 public interface Processor {
--- a/j2se/src/share/classes/javax/annotation/processing/RoundEnvironment.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/annotation/processing/RoundEnvironment.java	Fri Aug 31 00:44:13 2007 +0000
@@ -39,7 +39,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.13 07/05/05
  * @since 1.6
  */
 public interface RoundEnvironment {
--- a/j2se/src/share/classes/javax/annotation/processing/SupportedAnnotationTypes.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/annotation/processing/SupportedAnnotationTypes.java	Fri Aug 31 00:44:13 2007 +0000
@@ -41,7 +41,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.10 07/05/05
  * @since 1.6
  */
 @Documented
--- a/j2se/src/share/classes/javax/annotation/processing/SupportedOptions.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/annotation/processing/SupportedOptions.java	Fri Aug 31 00:44:13 2007 +0000
@@ -40,7 +40,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.9 07/05/05
  * @since 1.6
  */
 @Documented
--- a/j2se/src/share/classes/javax/annotation/processing/SupportedSourceVersion.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/annotation/processing/SupportedSourceVersion.java	Fri Aug 31 00:44:13 2007 +0000
@@ -41,7 +41,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.11 07/05/05
  * @since 1.6
  */
 @Documented
--- a/j2se/src/share/classes/javax/annotation/processing/package-info.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/annotation/processing/package-info.java	Fri Aug 31 00:44:13 2007 +0000
@@ -38,7 +38,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.11 07/05/05
  * @since 1.6
  */
 package javax.annotation.processing;
--- a/j2se/src/share/classes/javax/lang/model/SourceVersion.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/SourceVersion.java	Fri Aug 31 00:44:13 2007 +0000
@@ -43,7 +43,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.14 07/05/05
  * @since 1.6
  */
 public enum SourceVersion {
--- a/j2se/src/share/classes/javax/lang/model/element/AnnotationMirror.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/AnnotationMirror.java	Fri Aug 31 00:44:13 2007 +0000
@@ -39,7 +39,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.10 07/05/05
  * @since 1.6
  */
 public interface AnnotationMirror {
--- a/j2se/src/share/classes/javax/lang/model/element/AnnotationValue.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/AnnotationValue.java	Fri Aug 31 00:44:13 2007 +0000
@@ -44,7 +44,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.10 07/05/05
  * @since 1.6
  */
 public interface AnnotationValue {
--- a/j2se/src/share/classes/javax/lang/model/element/AnnotationValueVisitor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/AnnotationValueVisitor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -66,7 +66,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.12 07/05/05
  * @since 1.6
  */
 public interface AnnotationValueVisitor<R, P> {
--- a/j2se/src/share/classes/javax/lang/model/element/Element.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/Element.java	Fri Aug 31 00:44:13 2007 +0000
@@ -57,7 +57,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.13 07/05/05
  * @see Elements
  * @see TypeMirror
  * @since 1.6
--- a/j2se/src/share/classes/javax/lang/model/element/ElementKind.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/ElementKind.java	Fri Aug 31 00:44:13 2007 +0000
@@ -35,7 +35,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.10 07/05/05
  * @see Element
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/element/ElementVisitor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/ElementVisitor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -61,7 +61,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.10 07/05/05
  * @see AbstractElementVisitor6
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/element/ExecutableElement.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/ExecutableElement.java	Fri Aug 31 00:44:13 2007 +0000
@@ -37,7 +37,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.10 07/05/05
  * @see ExecutableType
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/element/Modifier.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/Modifier.java	Fri Aug 31 00:44:13 2007 +0000
@@ -41,7 +41,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.9 07/05/05
  * @since 1.6
  */
 
--- a/j2se/src/share/classes/javax/lang/model/element/Name.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/Name.java	Fri Aug 31 00:44:13 2007 +0000
@@ -47,7 +47,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.8 07/05/05
  * @see javax.lang.model.util.Elements#getName
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/element/NestingKind.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/NestingKind.java	Fri Aug 31 00:44:13 2007 +0000
@@ -79,7 +79,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.9 07/05/05
  * @since 1.6
  */
 public enum NestingKind {
--- a/j2se/src/share/classes/javax/lang/model/element/PackageElement.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/PackageElement.java	Fri Aug 31 00:44:13 2007 +0000
@@ -33,7 +33,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.12 07/05/05
  * @see javax.lang.model.util.Elements#getPackageOf
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/element/TypeElement.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/TypeElement.java	Fri Aug 31 00:44:13 2007 +0000
@@ -56,7 +56,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.14 07/05/05
  * @see DeclaredType
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/element/TypeParameterElement.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/TypeParameterElement.java	Fri Aug 31 00:44:13 2007 +0000
@@ -37,7 +37,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.11 07/05/05
  * @see TypeVariable
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/element/UnknownAnnotationValueException.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/UnknownAnnotationValueException.java	Fri Aug 31 00:44:13 2007 +0000
@@ -36,7 +36,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.10 07/05/05
  * @see AnnotationValueVisitor#visitUnknown
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/element/UnknownElementException.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/UnknownElementException.java	Fri Aug 31 00:44:13 2007 +0000
@@ -35,7 +35,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.9 07/05/05
  * @see ElementVisitor#visitUnknown
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/element/VariableElement.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/VariableElement.java	Fri Aug 31 00:44:13 2007 +0000
@@ -36,7 +36,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.10 07/05/05
  * @since 1.6
  */
 
--- a/j2se/src/share/classes/javax/lang/model/element/package-info.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/element/package-info.java	Fri Aug 31 00:44:13 2007 +0000
@@ -81,7 +81,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.12 07/05/05
  * @since 1.6
  */
 package javax.lang.model.element;
--- a/j2se/src/share/classes/javax/lang/model/package-info.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/package-info.java	Fri Aug 31 00:44:13 2007 +0000
@@ -54,7 +54,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.10 07/05/05
  * @since 1.6
  */
 
--- a/j2se/src/share/classes/javax/lang/model/type/ArrayType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/ArrayType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.9 07/05/05
  * @since 1.6
  */
 public interface ArrayType extends ReferenceType {
--- a/j2se/src/share/classes/javax/lang/model/type/DeclaredType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/DeclaredType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -60,7 +60,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.12 07/05/05
  * @see TypeElement
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/type/ErrorType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/ErrorType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -40,7 +40,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.9 07/05/05
  * @since 1.6
  */
 public interface ErrorType extends DeclaredType {
--- a/j2se/src/share/classes/javax/lang/model/type/ExecutableType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/ExecutableType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -45,7 +45,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.10 07/05/05
  * @see ExecutableElement
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/type/MirroredTypeException.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/MirroredTypeException.java	Fri Aug 31 00:44:13 2007 +0000
@@ -37,7 +37,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.9 07/05/05
  * @see MirroredTypesException
  * @see Element#getAnnotation(Class)
  * @since 1.6
--- a/j2se/src/share/classes/javax/lang/model/type/MirroredTypesException.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/MirroredTypesException.java	Fri Aug 31 00:44:13 2007 +0000
@@ -41,7 +41,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.10 07/05/05
  * @see MirroredTypeException
  * @see Element#getAnnotation(Class)
  * @since 1.6
--- a/j2se/src/share/classes/javax/lang/model/type/NoType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/NoType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -42,7 +42,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.10 07/05/05
  * @see ExecutableElement#getReturnType()
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/type/NullType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/NullType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -33,7 +33,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.9 07/05/05
  * @since 1.6
  */
 
--- a/j2se/src/share/classes/javax/lang/model/type/PrimitiveType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/PrimitiveType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.9 07/05/05
  * @since 1.6
  */
 public interface PrimitiveType extends TypeMirror {
--- a/j2se/src/share/classes/javax/lang/model/type/ReferenceType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/ReferenceType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -34,7 +34,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.9 07/05/05
  * @since 1.6
  */
 public interface ReferenceType extends TypeMirror {
--- a/j2se/src/share/classes/javax/lang/model/type/TypeKind.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/TypeKind.java	Fri Aug 31 00:44:13 2007 +0000
@@ -36,7 +36,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.11 07/05/05
  * @see TypeMirror
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/type/TypeMirror.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/TypeMirror.java	Fri Aug 31 00:44:13 2007 +0000
@@ -51,7 +51,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.12 07/05/05
  * @see Element
  * @see Types
  * @since 1.6
--- a/j2se/src/share/classes/javax/lang/model/type/TypeVariable.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/TypeVariable.java	Fri Aug 31 00:44:13 2007 +0000
@@ -44,7 +44,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.10 07/05/05
  * @see TypeParameterElement
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/type/TypeVisitor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/TypeVisitor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -61,7 +61,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.11 07/05/05
  * @since 1.6
  */
 public interface TypeVisitor<R, P> {
--- a/j2se/src/share/classes/javax/lang/model/type/UnknownTypeException.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/UnknownTypeException.java	Fri Aug 31 00:44:13 2007 +0000
@@ -35,7 +35,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.9 07/05/05
  * @see TypeVisitor#visitUnknown
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/type/WildcardType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/WildcardType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -41,7 +41,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.9 07/05/05
  * @since 1.6
  */
 public interface WildcardType extends TypeMirror {
--- a/j2se/src/share/classes/javax/lang/model/type/package-info.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/type/package-info.java	Fri Aug 31 00:44:13 2007 +0000
@@ -36,7 +36,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.11 07/05/05
  * @since 1.6
  */
 package javax.lang.model.type;
--- a/j2se/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -62,7 +62,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.10 07/05/05
  * @since 1.6
  */
 @SupportedSourceVersion(RELEASE_6)
--- a/j2se/src/share/classes/javax/lang/model/util/AbstractElementVisitor6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/util/AbstractElementVisitor6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -65,7 +65,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.10 07/05/05
  * @since 1.6
  */
 @SupportedSourceVersion(RELEASE_6)
--- a/j2se/src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -57,7 +57,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.10 07/05/05
  * @since 1.6
  */ 
 public abstract class AbstractTypeVisitor6<R, P> implements TypeVisitor<R, P> {
--- a/j2se/src/share/classes/javax/lang/model/util/ElementFilter.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/util/ElementFilter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -65,7 +65,6 @@
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
  * @author Martin Buchholz
- * @version 1.12 07/05/05
  * @since 1.6
  */
 public class ElementFilter {
--- a/j2se/src/share/classes/javax/lang/model/util/ElementKindVisitor6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/util/ElementKindVisitor6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -76,7 +76,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.11 07/05/05
  * @since 1.6
  */
 @SupportedSourceVersion(RELEASE_6)
--- a/j2se/src/share/classes/javax/lang/model/util/ElementScanner6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/util/ElementScanner6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -88,7 +88,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.13 07/05/05
  * @since 1.6
  */
 @SupportedSourceVersion(RELEASE_6)
--- a/j2se/src/share/classes/javax/lang/model/util/Elements.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/util/Elements.java	Fri Aug 31 00:44:13 2007 +0000
@@ -42,7 +42,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.17 07/05/05
  * @see javax.annotation.processing.ProcessingEnvironment#getElementUtils
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -69,7 +69,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.12 07/05/05
  * @since 1.6
  */
 @SupportedSourceVersion(RELEASE_6)
--- a/j2se/src/share/classes/javax/lang/model/util/SimpleElementVisitor6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/util/SimpleElementVisitor6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -71,7 +71,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.13 07/05/05
  * @since 1.6
  */
 @SupportedSourceVersion(RELEASE_6)
--- a/j2se/src/share/classes/javax/lang/model/util/SimpleTypeVisitor6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/util/SimpleTypeVisitor6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -70,7 +70,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.13 07/05/05
  * @since 1.6
  */
 @SupportedSourceVersion(RELEASE_6)
--- a/j2se/src/share/classes/javax/lang/model/util/TypeKindVisitor6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/util/TypeKindVisitor6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -74,7 +74,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.12 07/05/05
  * @since 1.6
  */
 @SupportedSourceVersion(RELEASE_6)
--- a/j2se/src/share/classes/javax/lang/model/util/Types.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/util/Types.java	Fri Aug 31 00:44:13 2007 +0000
@@ -38,7 +38,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.13 07/05/05
  * @see javax.annotation.processing.ProcessingEnvironment#getTypeUtils
  * @since 1.6
  */
--- a/j2se/src/share/classes/javax/lang/model/util/package-info.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/lang/model/util/package-info.java	Fri Aug 31 00:44:13 2007 +0000
@@ -38,7 +38,6 @@
  * @author Joseph D. Darcy
  * @author Scott Seligman
  * @author Peter von der Ah&eacute;
- * @version 1.11 07/05/05
  * @since 1.6
  */
 package javax.lang.model.util;
--- a/j2se/src/share/classes/javax/xml/stream/EventFilter.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/EventFilter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream;
 import javax.xml.stream.events.XMLEvent;
 /**
--- a/j2se/src/share/classes/javax/xml/stream/FactoryConfigurationError.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/FactoryConfigurationError.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream;
 
 /**
--- a/j2se/src/share/classes/javax/xml/stream/Location.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/Location.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream;
 
 /**
--- a/j2se/src/share/classes/javax/xml/stream/StreamFilter.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/StreamFilter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream;
 /**
  * This interface declares a simple filter interface that one can
--- a/j2se/src/share/classes/javax/xml/stream/XMLEventFactory.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/XMLEventFactory.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream;
 import javax.xml.stream.events.*;
 import javax.xml.namespace.NamespaceContext;
--- a/j2se/src/share/classes/javax/xml/stream/XMLEventReader.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/XMLEventReader.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream;
 import javax.xml.stream.events.XMLEvent;
 import java.util.Iterator;
--- a/j2se/src/share/classes/javax/xml/stream/XMLEventWriter.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/XMLEventWriter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream;
 
 import javax.xml.stream.events.*;
--- a/j2se/src/share/classes/javax/xml/stream/XMLInputFactory.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/XMLInputFactory.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream;
 
 import javax.xml.transform.Source;
--- a/j2se/src/share/classes/javax/xml/stream/XMLOutputFactory.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/XMLOutputFactory.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream;
 
 import javax.xml.transform.Result;
--- a/j2se/src/share/classes/javax/xml/stream/XMLReporter.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/XMLReporter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream;
 
 /**
--- a/j2se/src/share/classes/javax/xml/stream/XMLResolver.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/XMLResolver.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream;
 
 /**
--- a/j2se/src/share/classes/javax/xml/stream/XMLStreamConstants.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/XMLStreamConstants.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,4 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
--- a/j2se/src/share/classes/javax/xml/stream/XMLStreamException.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/XMLStreamException.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream;
 
 /**
--- a/j2se/src/share/classes/javax/xml/stream/XMLStreamReader.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/XMLStreamReader.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream;
 
 import java.io.Reader;
--- a/j2se/src/share/classes/javax/xml/stream/XMLStreamWriter.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/XMLStreamWriter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream;
 
 import javax.xml.namespace.NamespaceContext;
--- a/j2se/src/share/classes/javax/xml/stream/events/Attribute.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/events/Attribute.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.events;
 
 import javax.xml.namespace.QName;
--- a/j2se/src/share/classes/javax/xml/stream/events/Characters.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/events/Characters.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.events;
 
 /**
--- a/j2se/src/share/classes/javax/xml/stream/events/Comment.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/events/Comment.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.events;
 
 /**
--- a/j2se/src/share/classes/javax/xml/stream/events/DTD.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/events/DTD.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.events;
 
 import java.util.List;
--- a/j2se/src/share/classes/javax/xml/stream/events/EndDocument.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/events/EndDocument.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.events;
 
 /**
--- a/j2se/src/share/classes/javax/xml/stream/events/EndElement.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/events/EndElement.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.events;
 
 import java.util.Iterator;
--- a/j2se/src/share/classes/javax/xml/stream/events/EntityDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/events/EntityDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.events;
 /**
  * An interface for handling Entity Declarations
--- a/j2se/src/share/classes/javax/xml/stream/events/EntityReference.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/events/EntityReference.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.events;
 /**
  * An interface for handling Entity events.
--- a/j2se/src/share/classes/javax/xml/stream/events/Namespace.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/events/Namespace.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.events;
 
 import javax.xml.namespace.QName;
--- a/j2se/src/share/classes/javax/xml/stream/events/NotationDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/events/NotationDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.events;
 /**
  * An interface for handling Notation Declarations
--- a/j2se/src/share/classes/javax/xml/stream/events/ProcessingInstruction.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/events/ProcessingInstruction.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.events;
 /**
  * An interface that describes the data found in processing instructions
--- a/j2se/src/share/classes/javax/xml/stream/events/StartDocument.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/events/StartDocument.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.events;
 /**
  * An interface for the start document event
--- a/j2se/src/share/classes/javax/xml/stream/events/StartElement.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/events/StartElement.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.events;
 
 import javax.xml.namespace.QName;
--- a/j2se/src/share/classes/javax/xml/stream/events/XMLEvent.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/events/XMLEvent.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.events;
 
 import java.io.Writer;
--- a/j2se/src/share/classes/javax/xml/stream/util/EventReaderDelegate.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/util/EventReaderDelegate.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.util;
 
 import javax.xml.namespace.QName;
--- a/j2se/src/share/classes/javax/xml/stream/util/StreamReaderDelegate.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/util/StreamReaderDelegate.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.util;
 
 import java.io.Reader;
--- a/j2se/src/share/classes/javax/xml/stream/util/XMLEventAllocator.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/util/XMLEventAllocator.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.util;
 
 import javax.xml.stream.events.XMLEvent;
--- a/j2se/src/share/classes/javax/xml/stream/util/XMLEventConsumer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/javax/xml/stream/util/XMLEventConsumer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,3 +1,31 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * Copyright (c) 2003 by BEA Systems, Inc. All Rights Reserved.
+ */
+
 package javax.xml.stream.util;
 
 import javax.xml.stream.events.XMLEvent;
--- a/j2se/src/share/classes/sun/awt/DebugHelper.java.m4	Fri Aug 17 01:47:29 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-/*
-* @(#)DebugHelper.java.m4	1.11 07/05/05
-*
-* Copyright 1999-2001 Sun Microsystems, Inc.  All Rights Reserved.
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* This code is free software; you can redistribute it and/or modify it
-* under the terms of the GNU General Public License version 2 only, as
-* published by the Free Software Foundation.  Sun designates this
-* particular file as subject to the "Classpath" exception as provided
-* by Sun in the LICENSE file that accompanied this code.
-*
-* This code is distributed in the hope that it will be useful, but WITHOUT
-* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-* FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-* version 2 for more details (a copy is included in the LICENSE file that
-* accompanied this code).
-*
-* You should have received a copy of the GNU General Public License version
-* 2 along with this work; if not, write to the Free Software Foundation,
-* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-*
-* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
-* CA 95054 USA or visit www.sun.com if you need additional information or
-* have any questions.
-*/
-
-/*
- * This class is produced by using the m4 preprocessor to produce
- * a .java file containing debug or release versions of the
- * DebugHelper class.
- */
- 
-package sun.awt;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-public abstract class DebugHelper {
-    static {
-        NativeLibLoader.loadLibraries();
-    }
-
-    /* name the DebugHelper member var must be declared as */
-    protected static final String	DBG_FIELD_NAME = "dbg";
-    protected static final String	DBG_ON_FIELD_NAME = "on";
-
-ifdef(`SUN_AWT_DEBUG_CLASSES', `
-/* DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG */
-    public boolean 		on;
-
-    static void init() {
-	DebugHelperImpl.initGlobals();
-    }
-
-    public static final DebugHelper create(Class classToDebug) {
-	return DebugHelperImpl.factoryCreate(classToDebug);
-    }
-/* DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG */
-',` 
-/* RELEASE RELEASE RELEASE RELEASE RELEASE RELEASE RELEASE RELEASE */
-    public static final boolean		on = false;
-    private static final DebugHelper	dbgStub = new DebugHelperStub();
-
-    static void init() {
-	// nothing to do in release mode
-    }
-
-    public static final DebugHelper create(Class classToDebug) {
-	return dbgStub;
-    }
-/* RELEASE RELEASE RELEASE RELEASE RELEASE RELEASE RELEASE RELEASE */
-')
-
-    public abstract void setAssertOn(boolean enabled);
-    public abstract void setTraceOn(boolean enabled);
-    public abstract void setDebugOn(boolean enabled);
-    public abstract void println(Object object);
-    public abstract void print(Object object);
-    public abstract void printStackTrace();
-    public abstract void assertion(boolean expr);
-    public abstract void assertion(boolean expr, String msg);
-}
-
-final class DebugHelperStub extends DebugHelper
-{
-    /* stub methods for production builds */
-    public void setAssertOn(boolean enabled) {}
-    public void setTraceOn(boolean enabled) {}
-    public void setDebugOn(boolean enabled) {}
-    public void println(Object object) {}
-    public void print(Object object) {}
-    public void printStackTrace() {}
-    public void assertion(boolean expr) {}
-    public void assertion(boolean expr, String msg) {}
-}
--- a/j2se/src/share/classes/sun/awt/DebugHelperImpl.java	Fri Aug 17 01:47:29 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,371 +0,0 @@
-/*
- * Copyright 1999-2003 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package sun.awt;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-/*
- * Implementation of DebugHelper for debug compiled classes
- *
- * Supports debug tracing and assertions
- */
-abstract class DebugHelperImpl extends DebugHelper {
-    protected static DebugSettings 		settings;
-    protected static DebugHelperImpl		globalDebugHelperImpl;
-    private static boolean			initialized = false;
-
-    private static final String PROP_ON = "on";
-    private static final String PROP_TRACE = "trace";
-    private static final String PROP_ASSERT = "assert";
-    private DebugHelperImpl	parent = null;
-    private boolean		tracingOn = on;
-    private boolean		assertionsOn = on;
-
-    static final void initGlobals() {
-	if ( !initialized ) {
-	    NativeLibLoader.loadLibraries();
-	    initialized = true;
-	    // first time anyone called us
-	    settings = DebugSettings.getInstance();
-	    globalDebugHelperImpl = GlobalDebugHelperImpl.getInstance();
-	}
-    }
-
-    /*
-     * Factory method to create a DebugHelper object for a
-     * given class
-     */
-    static final DebugHelper factoryCreate(Class classToDebug) {
-	initGlobals();
-	return new ClassDebugHelperImpl(classToDebug);
-    }
-
-    protected DebugHelperImpl(DebugHelperImpl parent) {
-	this.parent = parent;
-    }
-
-    public final synchronized void setAssertOn(boolean enabled) {
-	assertionsOn = enabled;
-    }
-
-    public final synchronized void setTraceOn(boolean enabled) {
-	tracingOn = enabled;
-    }
-
-    public final synchronized void setDebugOn(boolean enabled) {
-	try {
-	    Class	dbgClassObj = DebugHelper.class;
-	    Field	fieldOn = dbgClassObj.getDeclaredField(DBG_ON_FIELD_NAME);
-    
-	    if ( !Modifier.isFinal(fieldOn.getModifiers()) ) {
-	    // if DebugHelper.on is non-final, set it
-		fieldOn.setBoolean(this, enabled);
-	    }//otherwise we're in a production build and do nothing...
-	} catch (NoSuchFieldException nfe) {
-	    nfe.printStackTrace();
-	} catch (IllegalAccessException iae ) {
-	    iae.printStackTrace();
-	}
-    }
-
-    public final synchronized void println(Object object) {
-	if (tracingOn) {
-	    printlnImpl(object.toString());
-	}
-    }
-
-    public final synchronized void print(Object object) {
-	if (tracingOn) {
-	    printImpl(object.toString());
-	}
-    }
-    
-    public final synchronized String toString() {
-	String strval;
-	strval ="Debug {"+
-		"	on="+on+", " +
-		"	trace="+tracingOn+", "+
-		"	assert="+assertionsOn+
-		"}";
-	return strval;
-    }
-
-    static native synchronized void printlnImpl(String str);
-    static native synchronized void printImpl(String str);
-
-    protected native synchronized void setCTracingOn(boolean enabled);
-    protected native synchronized void setCTracingOn(boolean enabled, String file);
-    protected native synchronized void setCTracingOn(boolean enabled, String file, int line);
-
-    public final synchronized void printStackTrace() {
-	if (tracingOn) {
-	    Thread.dumpStack();
-	}
-    }
-
-    public final synchronized void assertion(boolean expr) {
-	assertion(expr, "");
-    }
-
-    public final synchronized void assertion(boolean expr, String msg) {
-	if (assertionsOn && expr == false) {
-	    throw new AssertionFailure(msg);
-	}
-    }
-    
-    protected void setParent(DebugHelperImpl dbgHelperImpl) {
-	parent = dbgHelperImpl;
-    }
-    
-    protected DebugHelperImpl getParent() {
-	return parent;
-    }
-    
-    protected void loadSettings() {
-	boolean	debugSelf =	getBoolean(PROP_ON, parent != null ? parent.on : true);
-	boolean	assertSelf =	getBoolean(PROP_ASSERT, parent != null ? parent.assertionsOn : true);
-	boolean	traceSelf =	getBoolean(PROP_TRACE, parent != null ? parent.tracingOn : false);
-	
-	// set global debug settings
-	setDebugOn(debugSelf);
-	setAssertOn(assertSelf);
-	setTraceOn(traceSelf);
-	//println(debug);
-    }
-
-    /**
-     * Gets named boolean property
-     * @param key	Name of property
-     * @param defval	Default value if property does not exist
-     * @return boolean value of the named property
-     */
-    protected synchronized boolean getBoolean(String key, boolean defval) {
-	String	value = getString(key, String.valueOf(defval));
-	return value.equalsIgnoreCase("true");
-    }
-    
-    /**
-     * Gets named integer property
-     * @param key	Name of property
-     * @param defval	Default value if property does not exist
-     * @return integer value of the named property
-     */
-    protected synchronized int getInt(String key, int defval) {
-	String	value = getString(key, String.valueOf(defval));
-	return Integer.parseInt(value);
-    }
-    
-    /**
-     * Gets named String property
-     * @param key	Name of property
-     * @param defval	Default value if property does not exist
-     * @return string value of the named property
-     */
-    protected synchronized String getString(String key, String defval) {
-	String value = settings.getString(key, defval);
-	return value;
-    }
-    
-    class AssertionFailure extends Error {
-	AssertionFailure(String msg) {
-	    super(msg);
-	}
-    }
-}
-
-class GlobalDebugHelperImpl extends DebugHelperImpl {
-    private static final String PROP_CTRACE = "ctrace";
-    private static final int	PROP_CTRACE_LEN = PROP_CTRACE.length();
-    private static DebugHelperImpl instance = null;
-    
-    private boolean	ctracingOn;
-    
-    static final DebugHelperImpl getInstance() {
-	if (instance == null) {
-	    instance = new GlobalDebugHelperImpl();
-	}
-	return instance;
-    }
-    
-    private GlobalDebugHelperImpl() {
-	super(null);
-	setParent(this);
- 	loadSettings();
-    }
-    
-    protected void loadSettings() {
-	super.loadSettings();
-	loadNativeSettings();
-    }
-    
-    /*
-     * Loads settings related to native (C/C++) code
-     */
-    private void loadNativeSettings() {
-	boolean	ctracingOn;
-	
-	ctracingOn = getBoolean(PROP_CTRACE, false);
-	setCTracingOn(ctracingOn);
-	
-	//
-	// Filter out file/line ctrace properties from debug settings
-	//
-	Vector		traces = new Vector();
-	Enumeration 	enum_ = settings.getPropertyNames();
-	
-	while ( enum_.hasMoreElements() ) {
-	    String key = (String)enum_.nextElement();
-	    if ( key.startsWith(PROP_CTRACE) && key.length() > PROP_CTRACE_LEN ) {
-		traces.addElement(key);
-	    }
-	}
-	
-	// sort traces list so file-level traces will be before line-level ones
-	Collections.sort(traces);
-	
-	//
-	// Setup the trace points
-	//
-	Enumeration	enumTraces = traces.elements();
-	
-	while ( enumTraces.hasMoreElements() ) {
-	    String	key = (String)enumTraces.nextElement();
-	    String 	trace = key.substring(PROP_CTRACE_LEN+1);
-	    String	filespec;
-	    String	linespec;
-	    int		delim= trace.indexOf('@');
-	    boolean	enabled;
-	    
-	    // parse out the filename and linenumber from the property name
-	    filespec = delim != -1 ? trace.substring(0, delim) : trace;
-	    linespec = delim != -1 ? trace.substring(delim+1) : "";
-	    enabled = settings.getBoolean(key, false);
-	    //System.out.println("Key="+key+", File="+filespec+", Line="+linespec+", Enabled="+enabled);
-	    
-	    if ( linespec.length() == 0 ) {
-	    // set file specific trace setting
-	    	setCTracingOn(enabled, filespec);
-	    } else {
-	    // set line specific trace setting
-		int	linenum = Integer.parseInt(linespec, 10);
-		setCTracingOn(enabled, filespec, linenum);
-	    }
-	}
-    }
-}
-    
-class PackageDebugHelperImpl extends DebugHelperImpl {
-    private static HashMap	hashMap = new HashMap();
-    private String		packageName;
-    
-    private PackageDebugHelperImpl(Package pkg) {
-	super(globalDebugHelperImpl);
-	packageName = pkg.getName();
- 	loadSettings();
-   }
-    
-    public synchronized String getString(String key, String defval) {
-	return super.getString(key+"."+packageName, defval);
-    }
-
-    static DebugHelperImpl getInstance(Package pkg) {
-	if (pkg == null) {
-	// not in a package, so return global debug impl
-	    return globalDebugHelperImpl;
-	}
-	
-	PackageDebugHelperImpl	pkgDebugHelperImpl;
-	pkgDebugHelperImpl = (PackageDebugHelperImpl)hashMap.get(pkg);
-	if ( pkgDebugHelperImpl == null ) {
-	// no package debug impl created for this package yet, so make one
-	    pkgDebugHelperImpl = new PackageDebugHelperImpl(pkg); 
-	    hashMap.put(pkg, pkgDebugHelperImpl);
-	}
-	return pkgDebugHelperImpl;
-    }
-}
-
-class ClassDebugHelperImpl extends DebugHelperImpl {
-    private String	className;
-    
-    ClassDebugHelperImpl(Class classToDebug) {
-	super(globalDebugHelperImpl);
-	checkDeclaration(classToDebug);
-	className = classToDebug.getName();
-	Package	pkg = classToDebug.getPackage();
-	DebugHelperImpl parent = PackageDebugHelperImpl.getInstance(pkg);
-	setParent(parent);
- 	loadSettings();
-   }
-
-    public synchronized String getString(String key, String defval) {
-	return super.getString(key+"."+className, defval);
-    }
-    
-    /*
-     * Verifies that the class the DebugHelp object is declared in has
-     * declared it to be 'private static final DebugHelp dbg'. This enforces
-     * naming across classes and prevents per-instance Debug objects.
-     * (Debug objects are only useful at the class level.)
-     */
-    private void checkDeclaration(Class classToDebug) {
-	//
-	// verify that the class has a private static field named 'dbg'
-	//
-	boolean		isDbgFieldOK = false;
-	Field   	dbgField = null;
-	final Class	classToCheck = classToDebug;
-
-	// go into privileged mode so we can snoop into the class private fields
-	dbgField = (Field)java.security.AccessController.doPrivileged(
-	    new java.security.PrivilegedAction() {
-		public Object run() {
-		    try {
-			Field field = classToCheck.getDeclaredField(DBG_FIELD_NAME);
-			field.setAccessible(true);
-			return field;
-		    } catch(NoSuchFieldException nfe) {
-			nfe.printStackTrace();
-		    } catch(SecurityException se) {
-			se.printStackTrace();
-		    }
-		    return null;
-		}
-	    }
-	);
-
-	// check that the field is a private static instance of Debug
-	isDbgFieldOK =  dbgField != null &&
-			dbgField.getType() == DebugHelper.class &&
-			Modifier.isPrivate(dbgField.getModifiers()) &&
-			Modifier.isStatic(dbgField.getModifiers()) &&
-			Modifier.isFinal(dbgField.getModifiers());
-	if (!isDbgFieldOK) {
-	    throw new AssertionFailure("Incorrect or missing declaration of dbg field. Must be declared 'private static final DebugHelper dbg'");
-	}
-    }
-}
--- a/j2se/src/share/classes/sun/awt/DebugSettings.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/sun/awt/DebugSettings.java	Fri Aug 31 00:44:13 2007 +0000
@@ -26,7 +26,9 @@
 package sun.awt;
 
 import java.io.*;
+
 import java.util.*;
+import java.util.logging.*;
 
 /*
  * Internal class that manages sun.awt.Debug settings.
@@ -55,18 +57,33 @@
  *
  * Class settings always override package settings, which in
  * turn override global settings.
+ *
+ * Addition from July, 2007.
+ *
+ * After the fix for 4638447 all the usage of DebugHelper
+ * classes in Java code are replaced with the corresponding
+ * Java Logging API calls. This file is now used only to
+ * control native logging.
+ *
+ * To enable native logging you should set the following
+ * system property to 'true': sun.awt.nativedebug. After
+ * the native logging is enabled, the actual debug settings
+ * are read the same way as described above (as before
+ * the fix for 4638447).
  */
 final class DebugSettings {
+    private static final Logger log = Logger.getLogger("sun.awt.debug.DebugSettings");
+
     /* standard debug property key names */
     static final String PREFIX = "awtdebug";
     static final String PROP_FILE = "properties";
 
     /* default property settings */
-    private static final String	DEFAULT_PROPS[] = {
-	"awtdebug.assert=true",
-	"awtdebug.trace=false",
-	"awtdebug.on=true",
-	"awtdebug.ctrace=false"
+    private static final String DEFAULT_PROPS[] = {
+        "awtdebug.assert=true",
+        "awtdebug.trace=false",
+        "awtdebug.on=true",
+        "awtdebug.ctrace=false"
     };
 
     /* global instance of the settings object */
@@ -74,20 +91,23 @@
     
     private Properties	props = new Properties();
 
-    static DebugSettings getInstance() {
-	if (instance == null) {
-	    instance = new DebugSettings();
-	}
-	return instance;
+    static void init() {
+        if (instance != null) {
+            return;
+        }
+
+        NativeLibLoader.loadLibraries();
+        instance = new DebugSettings();
+        instance.loadNativeSettings();
     }
     
     private DebugSettings() {
-	new java.security.PrivilegedAction() {
-	    public Object run() {
-		loadProperties();
-		return null;
-	    }
-	}.run();
+        new java.security.PrivilegedAction() {
+            public Object run() {
+                loadProperties();
+                return null;
+            }
+        }.run();
     }
     
     /*
@@ -107,25 +127,23 @@
 	    }
 	});
 	
-	// echo the initial property settings
-	println(this);
+        // echo the initial property settings to stdout
+        if (log.isLoggable(Level.FINE)) {
+            log.log(Level.FINE, "DebugSettings:\n{0}", this);
+        }
     }
     
     public String toString() {
-	Enumeration enum_ = props.propertyNames();
-	ByteArrayOutputStream bout = new ByteArrayOutputStream();
-	PrintStream pout = new PrintStream(bout);
+        Enumeration enum_ = props.propertyNames();
+        ByteArrayOutputStream bout = new ByteArrayOutputStream();
+        PrintStream pout = new PrintStream(bout);
 
-	pout.println("------------------");
-	pout.println("AWT Debug Settings");
-	pout.println("------------------");
-	while ( enum_.hasMoreElements() ) {
-	    String	key = (String)enum_.nextElement();
-	    String	value = props.getProperty(key,"");
-	    pout.println(key+"="+value);
-	}
-	pout.println("------------------");
-	return new String(bout.toByteArray());
+        while (enum_.hasMoreElements()) {
+            String key = (String)enum_.nextElement();
+            String value = props.getProperty(key, "");
+            pout.println(key + " = " + value);
+        }
+        return new String(bout.toByteArray());
     }
     
     /*
@@ -239,8 +257,68 @@
 	return propNames.elements();
     }
 
-    
     private void println(Object object) {
-	DebugHelperImpl.printlnImpl(object.toString());
+        if (log.isLoggable(Level.FINER)) {
+            log.log(Level.FINER, object.toString());
+        }
+    }
+
+    private static final String PROP_CTRACE = "ctrace";
+    private static final int PROP_CTRACE_LEN = PROP_CTRACE.length();
+
+    private native synchronized void setCTracingOn(boolean enabled);
+    private native synchronized void setCTracingOn(boolean enabled, String file);
+    private native synchronized void setCTracingOn(boolean enabled, String file, int line);
+
+    private void loadNativeSettings() {
+        boolean        ctracingOn;
+        
+        ctracingOn = getBoolean(PROP_CTRACE, false);
+        setCTracingOn(ctracingOn);
+        
+        //
+        // Filter out file/line ctrace properties from debug settings
+        //
+        Vector                traces = new Vector();
+        Enumeration         enum_ = getPropertyNames();
+        
+        while ( enum_.hasMoreElements() ) {
+            String key = (String)enum_.nextElement();
+            if ( key.startsWith(PROP_CTRACE) && key.length() > PROP_CTRACE_LEN ) {
+                traces.addElement(key);
+            }
+        }
+        
+        // sort traces list so file-level traces will be before line-level ones
+        Collections.sort(traces);
+        
+        //
+        // Setup the trace points
+        //
+        Enumeration        enumTraces = traces.elements();
+        
+        while ( enumTraces.hasMoreElements() ) {
+            String        key = (String)enumTraces.nextElement();
+            String         trace = key.substring(PROP_CTRACE_LEN+1);
+            String        filespec;
+            String        linespec;
+            int                delim= trace.indexOf('@');
+            boolean        enabled;
+            
+            // parse out the filename and linenumber from the property name
+            filespec = delim != -1 ? trace.substring(0, delim) : trace;
+            linespec = delim != -1 ? trace.substring(delim+1) : "";
+            enabled = getBoolean(key, false);
+            //System.out.println("Key="+key+", File="+filespec+", Line="+linespec+", Enabled="+enabled);
+            
+            if ( linespec.length() == 0 ) {
+            // set file specific trace setting
+                    setCTracingOn(enabled, filespec);
+            } else {
+            // set line specific trace setting
+                int        linenum = Integer.parseInt(linespec, 10);
+                setCTracingOn(enabled, filespec, linenum);
+            }
+        }
     }
 }
--- a/j2se/src/share/classes/sun/awt/NullComponentPeer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/sun/awt/NullComponentPeer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2000-2007 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -51,6 +51,8 @@
 import java.awt.peer.ComponentPeer;
 import java.awt.peer.ContainerPeer;
 import java.awt.Rectangle;
+import sun.java2d.pipe.Region;
+
 
 /**
  * Implements the LightweightPeer interface for use in lightweight components
@@ -293,5 +295,13 @@
     public Rectangle getBounds() {
         return new Rectangle(0, 0, 0, 0);
     }
+
+        
+    /**
+      * Applies the shape to the native component window.
+      * @since 1.7
+      */
+    public void applyShape(Region shape) {
+    }       
 }
 
--- a/j2se/src/share/classes/sun/awt/ScrollPaneWheelScroller.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/sun/awt/ScrollPaneWheelScroller.java	Fri Aug 31 00:44:13 2007 +0000
@@ -30,7 +30,7 @@
 import java.awt.Adjustable;
 import java.awt.event.MouseWheelEvent;
 
-import sun.awt.DebugHelper;
+import java.util.logging.*;
 
 /*
  * ScrollPaneWheelScroller is a helper class for implmenenting mouse wheel
@@ -38,24 +38,26 @@
  * No objects of this class may be instantiated, thus it is declared abstract.
  */
 public abstract class ScrollPaneWheelScroller {
-    private static final DebugHelper dbg = DebugHelper.create(
-                                                 ScrollPaneWheelScroller.class);
+
+    private static final Logger log = Logger.getLogger("sun.awt.ScrollPaneWheelScroller");
+
     private ScrollPaneWheelScroller() {}
     
     /*
      * Called from ScrollPane.processMouseWheelEvent()
      */
     public static void handleWheelScrolling(ScrollPane sp, MouseWheelEvent e) {
-        if (dbg.on) dbg.println("SPWS.hWS(): x="+e.getX()+",y="+e.getY()+
-                                " src is " + e.getSource());
+        if (log.isLoggable(Level.FINER)) {
+            log.log(Level.FINER, "x = " + e.getX() + ", y = " + e.getY() + ", src is " + e.getSource());
+        }
         int increment = 0;
 
         if (sp != null && e.getScrollAmount() != 0) {
             Adjustable adj = getAdjustableToScroll(sp); 
             if (adj != null) {
                 increment = getIncrementFromAdjustable(adj, e);
-                if (dbg.on) {
-                    dbg.println("increment from adjustable(" + adj.getClass() +" : " + increment);
+                if (log.isLoggable(Level.FINER)) {
+                    log.log(Level.FINER, "increment from adjustable(" + adj.getClass() + ") : " + increment);
                 }
                 scrollAdjustable(adj, increment);
             }
@@ -72,8 +74,9 @@
         // if policy is display always or never, use vert
         if (policy == ScrollPane.SCROLLBARS_ALWAYS ||
             policy == ScrollPane.SCROLLBARS_NEVER) {
-            if (dbg.on) dbg.println(
-                          "  using vertical scrolling due to scrollbar policy");
+            if (log.isLoggable(Level.FINER)) {
+                log.log(Level.FINER, "using vertical scrolling due to scrollbar policy");
+            }
             return sp.getVAdjustable();
 
         }
@@ -82,29 +85,32 @@
             Insets ins = sp.getInsets();
             int vertScrollWidth = sp.getVScrollbarWidth();
 
-            if (dbg.on) {
-                dbg.println("insets: l:" + ins.left + " r:" + ins.right +
-                 " t:" + ins.top + " b:" + ins.bottom);
-                dbg.println("vertScrollWidth = " + vertScrollWidth);
+            if (log.isLoggable(Level.FINER)) {
+                log.log(Level.FINER, "insets: l = " + ins.left + ", r = " + ins.right +
+                 ", t = " + ins.top + ", b = " + ins.bottom);
+                log.log(Level.FINER, "vertScrollWidth = " + vertScrollWidth);
             }
 
             // Check if scrollbar is showing by examining insets of the
             // ScrollPane
             if (ins.right >= vertScrollWidth) {
-                if (dbg.on) dbg.println(
-                     "  using vertical scrolling because scrollbar is present");
+                if (log.isLoggable(Level.FINER)) {
+                    log.log(Level.FINER, "using vertical scrolling because scrollbar is present");
+                }
                 return sp.getVAdjustable();
             }
             else {
                 int horizScrollHeight = sp.getHScrollbarHeight();
                 if (ins.bottom >= horizScrollHeight) {
-                    if (dbg.on) dbg.println(
-                        "  using horiz scrolling because scrollbar is present");
+                    if (log.isLoggable(Level.FINER)) {
+                        log.log(Level.FINER, "using horiz scrolling because scrollbar is present");
+                    }
                     return sp.getHAdjustable();
                 }
                 else {
-                    if (dbg.on) dbg.println(
-                            "  using NO scrollbar becsause neither is present");
+                    if (log.isLoggable(Level.FINER)) {
+                        log.log(Level.FINER, "using NO scrollbar becsause neither is present");
+                    }
                     return null;
                 }
             }
@@ -118,7 +124,12 @@
      */
     public static int getIncrementFromAdjustable(Adjustable adj,
                                                  MouseWheelEvent e) {
-    // ASSUME: adj != null
+        if (log.isLoggable(Level.FINE)) {
+            if (adj == null) {
+                log.log(Level.FINE, "Assertion (adj != null) failed");
+            }
+        }
+
         int increment = 0;
 
         if (e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL) {
@@ -135,12 +146,20 @@
      * bounds and sets the new value to the Adjustable.
      */
     public static void scrollAdjustable(Adjustable adj, int amount) {
-    // ASSUME adj != null
-    // ASSUME amount != 0
+        if (log.isLoggable(Level.FINE)) {
+            if (adj == null) {
+                log.log(Level.FINE, "Assertion (adj != null) failed");
+            }
+            if (amount == 0) {
+                log.log(Level.FINE, "Assertion (amount != 0) failed");
+            }
+        }
 
         int current = adj.getValue();
         int upperLimit = adj.getMaximum() - adj.getVisibleAmount();
-        if (dbg.on) dbg.println("  doScrolling by " + amount);
+        if (log.isLoggable(Level.FINER)) {
+            log.log(Level.FINER, "doScrolling by " + amount);
+        }
 
         if (amount > 0 && current < upperLimit) { // still some room to scroll
                                                   // down
--- a/j2se/src/share/classes/sun/awt/SunDisplayChanger.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/sun/awt/SunDisplayChanger.java	Fri Aug 31 00:44:13 2007 +0000
@@ -32,7 +32,8 @@
 import java.util.Set;
 import java.util.HashMap;
 import java.util.WeakHashMap;
-import sun.awt.DebugHelper;
+
+import java.util.logging.*;
 
 /**
  * This class is used to aid in keeping track of DisplayChangedListeners and
@@ -53,7 +54,7 @@
  * screen to another on a system equipped with multiple displays.
  */
 public class SunDisplayChanger {
-    private static final DebugHelper dbg = DebugHelper.create(SunDisplayChanger.class);
+    private static final Logger log = Logger.getLogger("sun.awt.multiscreen.SunDisplayChanger");
 
     // Create a new synchronizedMap with initial capacity of one listener.  
     // It is asserted that the most common case is to have one GraphicsDevice 
@@ -67,10 +68,14 @@
      * notified when the display is changed.
      */
     public void add(DisplayChangedListener theListener) {
-        if (dbg.on) {
-            dbg.assertion(theListener != null);
+        if (log.isLoggable(Level.FINE)) {
+            if (theListener == null) {
+                log.log(Level.FINE, "Assertion (theListener != null) failed");
+            }
         }
-
+        if (log.isLoggable(Level.FINER)) {
+            log.log(Level.FINER, "Adding listener: " + theListener);
+        }
         listeners.put(theListener, null);
     }
 
@@ -78,10 +83,14 @@
      * Remove the given DisplayChangeListener from this SunDisplayChanger.
      */
     public void remove(DisplayChangedListener theListener) {
-        if (dbg.on) {
-            dbg.assertion(theListener != null);
+        if (log.isLoggable(Level.FINE)) {
+            if (theListener == null) {
+                log.log(Level.FINE, "Assertion (theListener != null) failed");
+            }
         }
-
+        if (log.isLoggable(Level.FINER)) {
+            log.log(Level.FINER, "Removing listener: " + theListener);
+        }
         listeners.remove(theListener);
     }
 
@@ -90,6 +99,9 @@
      * taken place by calling their displayChanged() methods.
      */
     public void notifyListeners() {
+        if (log.isLoggable(Level.FINEST)) {
+            log.log(Level.FINEST, "notifyListeners");
+        }
     // This method is implemented by making a clone of the set of listeners,
     // and then iterating over the clone.  This is because during the course
     // of responding to a display change, it may be appropriate for a 
@@ -114,6 +126,9 @@
             DisplayChangedListener current =
              (DisplayChangedListener) itr.next();
             try {
+                if (log.isLoggable(Level.FINEST)) {
+                    log.log(Level.FINEST, "displayChanged for listener: " + current);
+                }
                 current.displayChanged();
             } catch (IllegalComponentStateException e) {
                 // This DisplayChangeListener is no longer valid.  Most
@@ -131,6 +146,9 @@
      * taken place by calling their paletteChanged() methods.
      */
     public void notifyPaletteChanged() {
+        if (log.isLoggable(Level.FINEST)) {
+            log.finest("notifyPaletteChanged");
+        }
     // This method is implemented by making a clone of the set of listeners,
     // and then iterating over the clone.  This is because during the course
     // of responding to a display change, it may be appropriate for a 
@@ -154,6 +172,9 @@
             DisplayChangedListener current = 
              (DisplayChangedListener) itr.next();
             try {
+                if (log.isLoggable(Level.FINEST)) {
+                    log.log(Level.FINEST, "paletteChanged for listener: " + current);
+                }
                 current.paletteChanged();
             } catch (IllegalComponentStateException e) {
                 // This DisplayChangeListener is no longer valid.  Most
--- a/j2se/src/share/classes/sun/awt/SunGraphicsCallback.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/sun/awt/SunGraphicsCallback.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2001 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1999-2007 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,14 +27,14 @@
 
 import java.awt.*;
 
+import java.util.logging.*;
 
 public abstract class SunGraphicsCallback {
     public static final int HEAVYWEIGHTS = 0x1;
     public static final int LIGHTWEIGHTS = 0x2;
     public static final int TWO_PASSES = 0x4;
 
-    private static final DebugHelper dbg =
-        DebugHelper.create(SunGraphicsCallback.class);
+    private static final Logger log = Logger.getLogger("sun.awt.SunGraphicsCallback");
 
     public abstract void run(Component comp, Graphics cg);
 
@@ -87,12 +87,12 @@
         int ncomponents = comps.length;
 	Shape clip = g.getClip();
 
-	if (dbg.on && clip != null) {
-	    Rectangle newrect = clip.getBounds();
-	    dbg.println("GraphicsCallback::runComponents : x = " +
-			newrect.x + " y = " + newrect.y + " width = " +
-			newrect.width + " height = " + newrect.height); 
-	}
+        if (log.isLoggable(Level.FINER) && (clip != null)) {
+            Rectangle newrect = clip.getBounds();
+            log.log(Level.FINER, "x = " + newrect.x + ", y = " + newrect.y +
+                                 ", width = " + newrect.width +
+                                 ", height = " + newrect.height); 
+        }
 
         // A seriously sad hack--
         // Lightweight components always paint behind peered components,
--- a/j2se/src/share/classes/sun/awt/SunToolkit.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/sun/awt/SunToolkit.java	Fri Aug 31 00:44:13 2007 +0000
@@ -68,10 +68,13 @@
 
     private static final Logger log = Logger.getLogger("sun.awt.SunToolkit");
 
-    /* Force the debug helper classes to initialize */
-    {
-	DebugHelper.init();
-    }
+    /* Load debug settings for native code */
+    static {
+        String nativeDebug = System.getProperty("sun.awt.nativedebug");
+        if ("true".equalsIgnoreCase(nativeDebug)) {
+            DebugSettings.init();
+        }
+    };
 
     /**
      * Special mask for the UngrabEvent events, in addition to the
@@ -1021,8 +1024,9 @@
             //with scale factors x1, x3/4, x2/3, xN, x1/N.
             Image im = i.next();
             if (im == null) {
-                if (log.isLoggable(Level.FINEST)) {
-                    log.finest("SunToolkit.getScaledIconImage: Skipping the image passed into Java because it's null.");
+                if (log.isLoggable(Level.FINER)) {
+                    log.log(Level.FINER, "SunToolkit.getScaledIconImage: " + 
+                            "Skipping the image passed into Java because it's null.");
                 }
                 continue;
             }
@@ -1036,8 +1040,9 @@
                 iw = im.getWidth(null);
                 ih = im.getHeight(null);
             } catch (Exception e){
-                if (log.isLoggable(Level.FINEST)) {
-                    log.finest("SunToolkit.getScaledIconImage: Perhaps the image passed into Java is broken. Skipping this icon.");
+                if (log.isLoggable(Level.FINER)) {
+                    log.log(Level.FINER, "SunToolkit.getScaledIconImage: " +
+                            "Perhaps the image passed into Java is broken. Skipping this icon.");
                 }
                 continue;
             }
@@ -1111,12 +1116,12 @@
             int x = (width - bestWidth) / 2; 
             int y = (height - bestHeight) / 2;
             if (log.isLoggable(Level.FINER)) {
-                log.finer("WWindowPeer.getScaledIconData() result : " + 
-                          "w : " + width + " h : " + height + 
-                          " iW : " + bestImage.getWidth(null) + " iH : " + bestImage.getHeight(null) + 
-                          " sim : " + bestSimilarity + " sf : " + bestScaleFactor + 
-                          " adjW : " + bestWidth + " adjH : " + bestHeight + 
-                          " x : " + x + " y : " + y);
+                log.log(Level.FINER, "WWindowPeer.getScaledIconData() result : " + 
+                        "w : " + width + " h : " + height + 
+                        " iW : " + bestImage.getWidth(null) + " iH : " + bestImage.getHeight(null) + 
+                        " sim : " + bestSimilarity + " sf : " + bestScaleFactor + 
+                        " adjW : " + bestWidth + " adjH : " + bestHeight + 
+                        " x : " + x + " y : " + y);
             }
             g.drawImage(bestImage, x, y, bestWidth, bestHeight, null);
         } finally {
@@ -1128,8 +1133,9 @@
     public static DataBufferInt getScaledIconData(java.util.List<Image> imageList, int width, int height) {
         BufferedImage bimage = getScaledIconImage(imageList, width, height);
         if (bimage == null) {
-             if (log.isLoggable(Level.FINEST)) {
-                 log.finest("SunToolkit.getScaledIconData: Perhaps the image passed into Java is broken. Skipping this icon.");
+             if (log.isLoggable(Level.FINER)) {
+                 log.log(Level.FINER, "SunToolkit.getScaledIconData: " + 
+                         "Perhaps the image passed into Java is broken. Skipping this icon.");
              }
             return null;
         }
--- a/j2se/src/share/classes/sun/awt/datatransfer/DataTransferer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/sun/awt/datatransfer/DataTransferer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -86,8 +86,9 @@
 import java.util.TreeMap;
 import java.util.TreeSet;
 
+import java.util.logging.*;
+
 import sun.awt.AppContext;
-import sun.awt.DebugHelper;
 import sun.awt.SunToolkit;
 
 import java.awt.image.BufferedImage;
@@ -129,15 +130,12 @@
  *
  * @author David Mendenhall
  * @author Danila Sinopalnikov
- * @version 1.46, 05/05/07
+ * @version 1.47, 07/23/07
  *
  * @since 1.3.1
  */
 public abstract class DataTransferer {
 
-    private static final DebugHelper dbg =
-        DebugHelper.create(DataTransferer.class);
-
     /**
      * Cached value of Class.forName("[C");
      */
@@ -220,6 +218,7 @@
      */
     private static DataTransferer transferer;
 
+    private static final Logger dtLog = Logger.getLogger("sun.awt.datatransfer.DataTransfer");
 
     static {
         Class tCharArrayClass = null, tByteArrayClass = null;
@@ -383,8 +382,10 @@
      * "text".
      */
     public static boolean doesSubtypeSupportCharset(DataFlavor flavor) {
-        if (dbg.on) {
-            dbg.assertion("text".equals(flavor.getPrimaryType()));
+        if (dtLog.isLoggable(Level.FINE)) {
+            if (!"text".equals(flavor.getPrimaryType())) {
+                dtLog.log(Level.FINE, "Assertion (\"text\".equals(flavor.getPrimaryType())) failed");
+            }
         }
 
         String subType = flavor.getSubType();
--- a/j2se/src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -48,11 +48,12 @@
 import java.util.Map;
 import java.util.Arrays;
 
+import java.util.logging.*;
+
 import java.io.IOException;
 import java.io.InputStream;
 
 import sun.awt.AppContext;
-import sun.awt.DebugHelper;
 import sun.awt.SunToolkit;
 import sun.awt.datatransfer.DataTransferer;
 import sun.awt.datatransfer.ToolkitThreadBlockedHandler;
@@ -99,8 +100,7 @@
 
     protected static final Object _globalLock = new Object();
 
-    private static final DebugHelper dbg = 
-        DebugHelper.create(SunDropTargetContextPeer.class);
+    private static final Logger dndLog = Logger.getLogger("sun.awt.dnd.SunDropTargetContextPeer");
 
     /*
      * a primitive mechanism for advertising intra-JVM Transferables
@@ -846,8 +846,8 @@
 
         void registerEvent(SunDropTargetEvent e) {
             handler.lock();
-            if (!eventSet.add(e) && dbg.on) {
-                dbg.assertion(false, "Event is already registered: " + e);
+            if (!eventSet.add(e) && dndLog.isLoggable(Level.FINE)) {
+                dndLog.log(Level.FINE, "Event is already registered: " + e);
             }
             handler.unlock();
         }
--- a/j2se/src/share/classes/sun/management/snmp/jvminstr/README	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/sun/management/snmp/jvminstr/README	Fri Aug 31 00:44:13 2007 +0000
@@ -1,6 +1,6 @@
 #==============================================================================
 #          JVM Management MIB - Instrumentation Classes
-#          Date: 07/08/16, Version: 1.5
+#          Date: 07/08/30, Version: 1.5
 #==============================================================================
 
 In this directory:
--- a/j2se/src/share/classes/sun/net/www/protocol/http/NegotiateAuthentication.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/sun/net/www/protocol/http/NegotiateAuthentication.java	Fri Aug 31 00:44:13 2007 +0000
@@ -196,7 +196,7 @@
      *                     <code>Negotiator.firstToken()</code> failed.
      */
     private byte[] firstToken() throws IOException {
-        
+        negotiator = null;
 	if (cache != null) {
 	    synchronized(cache) {
 		negotiator = cache.get(getHost());
--- a/j2se/src/share/classes/sun/security/jgss/GSSUtil.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/sun/security/jgss/GSSUtil.java	Fri Aug 31 00:44:13 2007 +0000
@@ -274,7 +274,14 @@
      * The application indicates this by explicitly setting the system
      * property javax.security.auth.useSubjectCredsOnly to false.
      */
-    public static boolean useSubjectCredsOnly() {
+    public static boolean useSubjectCredsOnly(int caller) {
+        
+        // HTTP/SPNEGO doesn't use the standard JAAS framework. Instead, it 
+        // uses the java.net.Authenticator style, therefore always return 
+        // false here.
+        if (caller == CALLER_HTTP_NEGOTIATE) {
+            return false;
+        }
         /*
          * Don't use GetBooleanAction because the default value in the JRE
          * (when this is unset) has to treated as true.
--- a/j2se/src/share/classes/sun/security/jgss/krb5/Krb5Context.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/sun/security/jgss/krb5/Krb5Context.java	Fri Aug 31 00:44:13 2007 +0000
@@ -51,7 +51,7 @@
  *
  * @author Mayank Upadhyay
  * @author Ram Marti
- * @version 1.33, 07/03/07
+ * @version 1.34, 08/08/07
  * @since 1.4 
  */
 class Krb5Context implements GSSContextSpi {
@@ -561,7 +561,7 @@
 		    final AccessControlContext acc =
 		        AccessController.getContext();
 
-		    if (GSSUtil.useSubjectCredsOnly()) {
+		    if (GSSUtil.useSubjectCredsOnly(caller)) {
 			KerberosTicket kerbTicket = null;
 			try {
 			   // get service ticket from caller's subject
@@ -611,7 +611,7 @@
 			serviceCreds = Credentials.acquireServiceCreds(
 				     peerName.getKrb5PrincipalName().getName(),
 				     tgt);
-			if (GSSUtil.useSubjectCredsOnly()) {	
+			if (GSSUtil.useSubjectCredsOnly(caller)) {	
 		            final Subject subject = 
 				AccessController.doPrivileged(
 				new java.security.PrivilegedAction<Subject>() {
--- a/j2se/src/share/classes/sun/security/jgss/krb5/Krb5Util.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/sun/security/jgss/krb5/Krb5Util.java	Fri Aug 31 00:44:13 2007 +0000
@@ -41,7 +41,7 @@
 /**
  * Utilities for obtaining and converting Kerberos tickets.
  *
- * @version 1.16, 05/05/07
+ * @version 1.17, 08/08/07
  */
 public class Krb5Util {
 
@@ -83,7 +83,7 @@
 	}
 
 	Subject loginSubj = null;
-	if (!GSSUtil.useSubjectCredsOnly()) {
+	if (!GSSUtil.useSubjectCredsOnly(caller)) {
 	    // 2. Try to get ticket from login 
 	    try {
 		loginSubj = GSSUtil.login(caller, GSSUtil.GSS_KRB5_MECH_OID);
@@ -150,7 +150,7 @@
 		  KerberosTicket.class);
 
 	// Try to get ticket from Subject obtained from GSSUtil
-        if (ticket == null && !GSSUtil.useSubjectCredsOnly()) {
+        if (ticket == null && !GSSUtil.useSubjectCredsOnly(caller)) {
 	    Subject subject = GSSUtil.login(caller, GSSUtil.GSS_KRB5_MECH_OID);
 	    ticket = (KerberosTicket) SubjectComber.find(subject, 
 		serverPrincipal, clientPrincipal, KerberosTicket.class);
@@ -176,7 +176,7 @@
 	Subject subject = Subject.getSubject(acc);
 
 	// Try to get Subject obtained from GSSUtil
-        if (subject == null && !GSSUtil.useSubjectCredsOnly()) {
+        if (subject == null && !GSSUtil.useSubjectCredsOnly(caller)) {
 	    subject = GSSUtil.login(caller, GSSUtil.GSS_KRB5_MECH_OID);
         }
 	return subject;
@@ -199,7 +199,7 @@
  	List<KerberosKey> kkeys = (List<KerberosKey>)SubjectComber.findMany(
 		accSubj, serverPrincipal, null, KerberosKey.class);
 
-        if (kkeys == null && !GSSUtil.useSubjectCredsOnly()) {
+        if (kkeys == null && !GSSUtil.useSubjectCredsOnly(caller)) {
 	    Subject subject = GSSUtil.login(caller, GSSUtil.GSS_KRB5_MECH_OID);
 	    kkeys = (List<KerberosKey>) SubjectComber.findMany(subject, 
 		serverPrincipal, null, KerberosKey.class);
--- a/j2se/src/share/classes/sun/security/jgss/wrapper/NativeGSSFactory.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/sun/security/jgss/wrapper/NativeGSSFactory.java	Fri Aug 31 00:44:13 2007 +0000
@@ -44,12 +44,13 @@
  * JGSS plugin for generic mechanisms provided through native GSS framework.
  *
  * @author Valerie Peng
- * @version 1.16, 05/05/07
+ * @version 1.17, 08/08/07
  */
 
 public final class NativeGSSFactory implements MechanismFactory {
 
     GSSLibStub cStub = null;
+    private final int caller;
 
     private GSSCredElement getCredFromSubject(GSSNameElement name,
 					      boolean initiate)
@@ -60,7 +61,7 @@
 
 	// If Subject is present but no native creds available 
 	if (creds != null && creds.isEmpty()) { 
-	    if (GSSUtil.useSubjectCredsOnly()) { 
+	    if (GSSUtil.useSubjectCredsOnly(caller)) { 
 		throw new GSSException(GSSException.NO_CRED); 
 	    }
 	}
@@ -75,7 +76,7 @@
     }
 
     public NativeGSSFactory(int caller) {
-	// Ignore caller at the moment
+	this.caller = caller;
 	// Have to call setMech(Oid) explicitly before calling other
 	// methods. Otherwise, NPE may be thrown unexpectantly
     }
--- a/j2se/src/share/classes/sun/security/provider/PolicyFile.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/classes/sun/security/provider/PolicyFile.java	Fri Aug 31 00:44:13 2007 +0000
@@ -53,6 +53,7 @@
 import java.net.SocketPermission;
 import java.net.NetPermission;
 import java.util.PropertyPermission;
+import java.util.concurrent.atomic.AtomicReference;
 import java.awt.AWTPermission;
 /*
 import javax.security.auth.AuthPermission;
@@ -273,7 +274,7 @@
  * instead of "<b>${{self}}</b>". However the use of "<b>self</b>" is 
  * deprecated in favour of "<b>${{self}}</b>".
  *
- * @version 	1.109, 05/05/07
+ * @version 	1.111, 08/03/07
  * @see java.security.CodeSource
  * @see java.security.Permissions
  * @see java.security.ProtectionDomain 
@@ -300,7 +301,8 @@
     private static IdentityScope scope = null;
 
     // contains the policy grant entries, PD cache, and alias mapping
-    private volatile PolicyInfo policyInfo;
+    private AtomicReference<PolicyInfo> policyInfo = 
+	new AtomicReference<PolicyInfo>();
     private boolean constructed = false;
 
     private boolean expandProperties = true;
@@ -463,7 +465,7 @@
 	// System.out.println("number caches=" + numCaches);
 	PolicyInfo newInfo = new PolicyInfo(numCaches);
 	initPolicyFile(newInfo, url);
-	policyInfo = newInfo;
+        policyInfo.set(newInfo);
     }
 
     private void initPolicyFile(final PolicyInfo newInfo, final URL url) {
@@ -685,7 +687,7 @@
 	AccessController.doPrivileged(new PrivilegedAction<Void>() {
 	    public Void run() {
 		PolicyEntry pe = new PolicyEntry(new CodeSource(null,
-		    (java.security.cert.Certificate[]) null));
+		    (Certificate[]) null));
 		pe.add(SecurityConstants.LOCAL_LISTEN_PERMISSION);
 		pe.add(new PropertyPermission("java.version",
 		    SecurityConstants.PROPERTY_READ_ACTION));
@@ -743,8 +745,7 @@
 			try {
 			    pe = new PolicyEntry(canonicalizeCodebase(
 				new CodeSource(new URL(extCodebases[i]),
-				    (java.security.cert.Certificate[]) null), 
-				false ));
+				    (Certificate[]) null), false ));
 			    pe.add(SecurityConstants.ALL_PERMISSION);
 
 			    // No need to sync because noone has access to 
@@ -1126,10 +1127,10 @@
      * @see java.security.ProtectionDomain
      */
     public boolean implies(ProtectionDomain pd, Permission p) {
-	Map<ProtectionDomain, PermissionCollection> pdMap =
-						policyInfo.getPdMapping();
+	PolicyInfo pi = policyInfo.get();
+	Map<ProtectionDomain, PermissionCollection> pdMap = pi.getPdMapping();
 	
-	PermissionCollection pc = (PermissionCollection) pdMap.get(pd);
+	PermissionCollection pc = pdMap.get(pd);
 
 	if (pc != null) {
 	    return pc.implies(p);
@@ -1269,20 +1270,16 @@
     private Permissions getPermissions(Permissions perms, 
 				       final CodeSource cs,
 				       Principal[] principals) {
-	// No need to sync because policyEntries do not changed after init
-	int numEntries = policyInfo.policyEntries.size();
-	PolicyEntry entry;
-	for (int i = 0; i < numEntries; i++) {
-	    entry = (PolicyEntry)policyInfo.policyEntries.get(i);
+	PolicyInfo pi = policyInfo.get();
+  
+	for (PolicyEntry entry : pi.policyEntries) {
 	    addPermissions(perms, cs, principals, entry);
 	}
 
 	// Go through policyEntries gotten from identity db; sync required
 	// because checkForTrustedIdentity (below) might update list
-	synchronized (policyInfo.identityPolicyEntries) {
-	    numEntries = policyInfo.identityPolicyEntries.size();
-	    for (int i = 0; i < numEntries; i++) {
-		entry = (PolicyEntry)policyInfo.identityPolicyEntries.get(i);
+	synchronized (pi.identityPolicyEntries) {
+	    for (PolicyEntry entry : pi.identityPolicyEntries) {
 		addPermissions(perms, cs, principals, entry);
 	    }
 	}
@@ -1292,12 +1289,9 @@
 	    Certificate certs[] = cs.getCertificates();
 	    if (certs != null) {
 		for (int k=0; k < certs.length; k++) {
-		    Object idMap;
-		    synchronized (policyInfo.aliasMapping) {
-			idMap = policyInfo.aliasMapping.get(certs[k]);
-		    }
+		    Object idMap = pi.aliasMapping.get(certs[k]);
 		    if (idMap == null &&
-			checkForTrustedIdentity(certs[k], policyInfo)) {
+			checkForTrustedIdentity(certs[k], pi)) {
 			// checkForTrustedIdentity added it
 			// to the policy for us. next time
 			// around we'll find it. This time
@@ -2086,15 +2080,11 @@
 	    PolicyEntry pe = new PolicyEntry(new CodeSource(null, certs));
 	    pe.add(SecurityConstants.ALL_PERMISSION);
 
-	    synchronized (myInfo.identityPolicyEntries) {
-		myInfo.identityPolicyEntries.add(pe);
-	    }
+	    myInfo.identityPolicyEntries.add(pe);
 
-	    synchronized (myInfo.aliasMapping) {
-		// add it to the mapping as well so
-		// we don't have to go through this again
-		myInfo.aliasMapping.put(cert, id.getName());
-	    }
+	    // add it to the mapping as well so
+	    // we don't have to go through this again
+	    myInfo.aliasMapping.put(cert, id.getName());
 
 	    return true;
 	}
@@ -2161,7 +2151,6 @@
      * @see java.security.Permissions
      * @see java.security.ProtectionDomain
      */
-
     private static class PolicyEntry {
 
 	private final CodeSource codesource;
@@ -2230,292 +2219,283 @@
 	    return sb.toString();
 	}
     }
-}
+
+    private static class SelfPermission extends Permission {
+
+        private static final long serialVersionUID = -8315562579967246806L;
 
-class SelfPermission extends Permission {
-
-    private static final long serialVersionUID = -8315562579967246806L;
+        /**
+         * The class name of the Permission class that will be
+         * created when this self permission is expanded .
+         *
+         * @serial
+         */
+        private String type;
 
-    /**
-     * The class name of the Permission class that will be
-     * created when this self permission is expanded .
-     *
-     * @serial
-     */
-    private String type;
+        /**
+         * The permission name.
+         *
+         * @serial
+         */
+        private String name;
+
+        /**
+         * The actions of the permission.
+         *
+         * @serial
+         */
+        private String actions;
+
+        /**
+         * The certs of the permission.
+         *
+         * @serial
+         */
+        private Certificate certs[];
 
-    /**
-     * The permission name.
-     *
-     * @serial
-     */
-    private String name;
-
-    /**
-     * The actions of the permission.
-     *
-     * @serial
-     */
-    private String actions;
-
-    /**
-     * The certs of the permission.
-     *
-     * @serial
-     */
-    private java.security.cert.Certificate certs[];
+        /**
+         * Creates a new SelfPermission containing the permission
+         * information needed later to expand the self
+         * @param type the class name of the Permission class that will be
+         * created when this permission is expanded and if necessary resolved.
+         * @param name the name of the permission.
+         * @param actions the actions of the permission.
+         * @param certs the certificates the permission's class was signed with.
+         * This is a list of certificate chains, where each chain is composed of
+         * a signer certificate and optionally its supporting certificate chain.
+         * Each chain is ordered bottom-to-top (i.e., with the signer 
+	 * certificate first and the (root) certificate authority last).
+         */
+        public SelfPermission(String type, String name, String actions, 
+			      Certificate certs[])
+        {
+            super(type);
+            if (type == null) {
+                throw new NullPointerException
+		    (ResourcesMgr.getString("type can't be null"));
+	    }
+            this.type = type;
+            this.name = name;
+            this.actions = actions;
+            if (certs != null) {
+                // Extract the signer certs from the list of certificates.
+      		for (int i=0; i<certs.length; i++) {
+		    if (!(certs[i] instanceof X509Certificate)) {
+	  		// there is no concept of signer certs, so we store the
+	  		// entire cert array
+	  		this.certs = (Certificate[])certs.clone();
+	  		break;
+		    }
+      		}
+      
+      		if (this.certs == null) {
+		    // Go through the list of certs and see if all the certs are
+		    // signer certs.
+		    int i = 0;
+		    int count = 0;
+		    while (i < certs.length) {
+	  	        count++;
+	  		while (((i+1) < certs.length) &&
+		 	    ((X509Certificate)certs[i]).getIssuerDN().equals(
+		     	    ((X509Certificate)certs[i+1]).getSubjectDN())) {
+	    		    i++;
+	  		}
+	  		i++;
+		    }
+		    if (count == certs.length) {
+	  		// All the certs are signer certs, so we store the
+	  		// entire array
+	  		this.certs = (Certificate[])certs.clone();
+		    }
+	
+		    if (this.certs == null) {
+	  		// extract the signer certs
+	  		ArrayList<Certificate> signerCerts =
+			    new ArrayList<Certificate>();
+	  		i = 0;
+	  		while (i < certs.length) {
+	    		    signerCerts.add(certs[i]);
+	    		    while (((i+1) < certs.length) &&
+		   		((X509Certificate)certs[i]).getIssuerDN().equals(
+	    	       		((X509Certificate)certs[i+1]).getSubjectDN())) {
+	      			i++;
+	    		    }
+	    		    i++;
+	  		}
+	  		this.certs = new Certificate[signerCerts.size()];
+	  		signerCerts.toArray(this.certs);
+		    }
+      		}
+    	    }
+  	}
+  
+	/**
+   	 * This method always returns false for SelfPermission permissions.
+   	 * That is, an SelfPermission never considered to
+   	 * imply another permission.
+   	 *
+   	 * @param p the permission to check against.
+   	 * 
+   	 * @return false.
+   	 */
+  	public boolean implies(Permission p) {
+    	    return false;
+  	}
+  
+  	/**
+   	 * Checks two SelfPermission objects for equality. 
+  	 * 
+   	 * Checks that <i>obj</i> is an SelfPermission, and has 
+   	 * the same type (class) name, permission name, actions, and
+   	 * certificates as this object.
+   	 * 
+   	 * @param obj the object we are testing for equality with this object.
+   	 * 
+   	 * @return true if obj is an SelfPermission, and has the same 
+   	 * type (class) name, permission name, actions, and
+   	 * certificates as this object.
+   	 */
+  	public boolean equals(Object obj) {
+    	    if (obj == this)
+      		return true;
+    
+    	    if (! (obj instanceof SelfPermission))
+      		return false;
+    	    SelfPermission that = (SelfPermission) obj;
+    
+    	    if (!(this.type.equals(that.type) &&
+	  	this.name.equals(that.name) &&
+	  	this.actions.equals(that.actions)))
+      		return false;
+    
+    	    if (this.certs.length != that.certs.length)
+      		return false;
+    
+    	    int i,j;
+    	    boolean match;
+    
+    	    for (i = 0; i < this.certs.length; i++) {
+      		match = false;
+      		for (j = 0; j < that.certs.length; j++) {
+		    if (this.certs[i].equals(that.certs[j])) {
+	  		match = true;
+	  	    	break;
+		    }
+      	    	}
+      	    	if (!match) return false;
+            }
+    
+    	    for (i = 0; i < that.certs.length; i++) {
+      		match = false;
+      		for (j = 0; j < this.certs.length; j++) {
+		    if (that.certs[i].equals(this.certs[j])) {
+	  		match = true;
+	  		break;
+		    }
+      		}
+      		if (!match) return false;
+    	    }
+    	    return true;
+  	}
+  
+  	/**
+   	 * Returns the hash code value for this object.
+   	 *
+   	 * @return a hash code value for this object.
+   	 */
+  	public int hashCode() {
+    	    int hash = type.hashCode();
+    	    if (name != null)
+      		hash ^= name.hashCode();
+    	    if (actions != null)
+      		hash ^= actions.hashCode();
+    	    return hash;
+  	}
+  
+  	/**
+   	 * Returns the canonical string representation of the actions,
+   	 * which currently is the empty string "", since there are no actions
+   	 * for an SelfPermission. That is, the actions for the
+   	 * permission that will be created when this SelfPermission
+   	 * is resolved may be non-null, but an SelfPermission
+   	 * itself is never considered to have any actions.
+   	 *
+   	 * @return the empty string "".
+   	 */
+  	public String getActions() {
+    	    return "";
+  	}
+  
+  	public String getSelfType() {
+    	    return type;
+  	}
+  
+  	public String getSelfName() {
+    	    return name;
+  	}
+  
+  	public String getSelfActions() {
+    	    return actions;
+  	}
+  
+  	public Certificate[] getCerts() {
+    	    return certs;
+  	}
+  
+  	/**
+   	 * Returns a string describing this SelfPermission.  The convention 
+   	 * is to specify the class name, the permission name, and the actions,
+   	 * in the following format: '(unresolved "ClassName" "name" "actions")'.
+   	 * 
+   	 * @return information about this SelfPermission.
+   	 */
+  	public String toString() {
+    	    return "(SelfPermission " + type + " " + name + " " + actions + ")";
+  	}
+    }
 
     /**
-     * Creates a new SelfPermission containing the permission
-     * information needed later to expand the self
-     * @param type the class name of the Permission class that will be
-     * created when this permission is expanded and if necessary resolved.
-     * @param name the name of the permission.
-     * @param actions the actions of the permission.
-     * @param certs the certificates the permission's class was signed with.
-     * This is a list of certificate chains, where each chain is composed of a
-     * signer certificate and optionally its supporting certificate chain.
-     * Each chain is ordered bottom-to-top (i.e., with the signer certificate
-     * first and the (root) certificate authority last).
+     * holds policy information that we need to synch on
      */
-  public SelfPermission(String type,
-			   String name,
-			   String actions,
-			   java.security.cert.Certificate certs[])
-  {
-    super(type);
-    if (type == null) 
-      throw new NullPointerException(ResourcesMgr.getString(
-				         "type can't be null"));
-    this.type = type;
-    this.name = name;
-    this.actions = actions;
-    if (certs != null) {
-      // Extract the signer certs from the list of certificates.
-      for (int i=0; i<certs.length; i++) {
-	if (!(certs[i] instanceof X509Certificate)) {
-	  // there is no concept of signer certs, so we store the
-	  // entire cert array
-	  this.certs =
-	    (java.security.cert.Certificate[])certs.clone();
-	  break;
-	}
-      }
-      
-      if (this.certs == null) {
-	// Go through the list of certs and see if all the certs are
-	// signer certs.
-	int i = 0;
-	int count = 0;
-	while (i < certs.length) {
-	  count++;
-	  while (((i+1) < certs.length) &&
-		 ((X509Certificate)certs[i]).getIssuerDN().equals(
-		     ((X509Certificate)certs[i+1]).getSubjectDN())) {
-	    i++;
-	  }
-	  i++;
-	}
-	if (count == certs.length) {
-	  // All the certs are signer certs, so we store the entire
-	  // array
-	  this.certs =
-	    (java.security.cert.Certificate[])certs.clone();
-	}
-	
-	if (this.certs == null) {
-	  // extract the signer certs
-	  ArrayList<java.security.cert.Certificate> signerCerts =
-			new ArrayList<java.security.cert.Certificate>();
-	  i = 0;
-	  while (i < certs.length) {
-	    signerCerts.add(certs[i]);
-	    while (((i+1) < certs.length) &&
-		   ((X509Certificate)certs[i]).getIssuerDN().equals(
-	    	       ((X509Certificate)certs[i+1]).getSubjectDN())) {
-	      i++;
+    private static class PolicyInfo {
+    	private static final boolean verbose = false;
+
+    	// Stores grant entries in the policy
+    	final List<PolicyEntry> policyEntries;
+
+    	// Stores grant entries gotten from identity database
+    	// Use separate lists to avoid sync on policyEntries
+    	final List<PolicyEntry> identityPolicyEntries;
+
+    	// Maps aliases to certs
+    	final Map aliasMapping;
+
+    	// Maps ProtectionDomain to PermissionCollection
+    	private final Map<ProtectionDomain, PermissionCollection>[] pdMapping;
+    	private java.util.Random random;
+
+    	PolicyInfo(int numCaches) {
+	    policyEntries = new ArrayList<PolicyEntry>();
+	    identityPolicyEntries = 
+		Collections.synchronizedList(new ArrayList<PolicyEntry>(2));
+	    aliasMapping = Collections.synchronizedMap(new HashMap(11));
+
+	    pdMapping = new Map[numCaches];
+	    for (int i = 0; i < numCaches; i++) {
+	    	pdMapping[i] = Collections.synchronizedMap
+		    (new WeakHashMap<ProtectionDomain, PermissionCollection>());
 	    }
-	    i++;
-	  }
-	  this.certs =
-	    new java.security.cert.Certificate[signerCerts.size()];
-	  signerCerts.toArray(this.certs);
-	}
-      }
-    }
-  }
-  
-  /**
-   * This method always returns false for SelfPermission permissions.
-   * That is, an SelfPermission never considered to
-   * imply another permission.
-   *
-   * @param p the permission to check against.
-   * 
-   * @return false.
-   */
-  public boolean implies(Permission p) {
-    return false;
-  }
-  
-  /**
-   * Checks two SelfPermission objects for equality. 
-   
-   * Checks that <i>obj</i> is an SelfPermission, and has 
-   * the same type (class) name, permission name, actions, and
-   * certificates as this object.
-   * 
-   * @param obj the object we are testing for equality with this object.
-   * 
-   * @return true if obj is an SelfPermission, and has the same 
-   * type (class) name, permission name, actions, and
-   * certificates as this object.
-   */
-  public boolean equals(Object obj) {
-    if (obj == this)
-      return true;
-    
-    if (! (obj instanceof SelfPermission))
-      return false;
-    SelfPermission that = (SelfPermission) obj;
-    
-    if (!(this.type.equals(that.type) &&
-	  this.name.equals(that.name) &&
-	  this.actions.equals(that.actions)))
-      return false;
-    
-    if (this.certs.length != that.certs.length)
-      return false;
-    
-    int i,j;
-    boolean match;
-    
-    for (i = 0; i < this.certs.length; i++) {
-      match = false;
-      for (j = 0; j < that.certs.length; j++) {
-	if (this.certs[i].equals(that.certs[j])) {
-	  match = true;
-	  break;
-	}
-      }
-      if (!match) return false;
-    }
-    
-    for (i = 0; i < that.certs.length; i++) {
-      match = false;
-      for (j = 0; j < this.certs.length; j++) {
-	if (that.certs[i].equals(this.certs[j])) {
-	  match = true;
-	  break;
-	}
-      }
-      if (!match) return false;
-    }
-    return true;
-  }
-  
-  /**
-   * Returns the hash code value for this object.
-   *
-   * @return a hash code value for this object.
-   */
-  
-  public int hashCode() {
-    int hash = type.hashCode();
-    if (name != null)
-      hash ^= name.hashCode();
-    if (actions != null)
-      hash ^= actions.hashCode();
-    return hash;
-  }
-  
-  /**
-   * Returns the canonical string representation of the actions,
-   * which currently is the empty string "", since there are no actions for 
-   * an SelfPermission. That is, the actions for the
-   * permission that will be created when this SelfPermission
-   * is resolved may be non-null, but an SelfPermission
-   * itself is never considered to have any actions.
-   *
-   * @return the empty string "".
-   */
-  public String getActions()
-  {
-    return "";
-  }
-  
-  public String getSelfType()
-  {
-    return type;
-  }
-  
-  public String getSelfName()
-  {
-    return name;
-  }
-  
-  public String getSelfActions()
-  {
-    return actions;
-  }
-  
-  public java.security.cert.Certificate[] getCerts()
-  {
-    return certs;
-  }
-  
-  /**
-   * Returns a string describing this SelfPermission.  The convention 
-   * is to specify the class name, the permission name, and the actions, in
-   * the following format: '(unresolved "ClassName" "name" "actions")'.
-   * 
-   * @return information about this SelfPermission.
-   */
-  
-  public String toString() {
-    return "(SelfPermission " + type + " " + name + " " + actions + ")";
-  }
-}
-
-/**
- * holds policy information that we need to synch on
- */
-class PolicyInfo {
-    private static final boolean verbose = false;
-
-    // Stores grant entries in the policy
-    final List<Object> policyEntries;
-
-    // Stores grant entries gotten from identity database
-    // Use separate lists to avoid sync on policyEntries
-    final List<Object> identityPolicyEntries;
-
-    // Maps aliases to certs
-    final Map aliasMapping;
-
-    // Maps ProtectionDomain to PermissionCollection
-    private final Map<ProtectionDomain, PermissionCollection>[] pdMapping;
-    private java.util.Random random;
-
-    PolicyInfo(int numCaches) {
-	policyEntries = new ArrayList<Object>();
-	identityPolicyEntries = new ArrayList<Object>(2);
-	aliasMapping = new HashMap(11);
-
-	pdMapping = new Map[numCaches];
-	for (int i = 0; i < numCaches; i++) {
-	    pdMapping[i] = Collections.synchronizedMap(new WeakHashMap<ProtectionDomain, PermissionCollection>());
-	}
-	if (numCaches > 1) {
-	    random = new java.util.Random();
-	}
-    }
-    Map<ProtectionDomain, PermissionCollection> getPdMapping() {
-	if (pdMapping.length == 1) {
-	    return pdMapping[0];
-	} else {
-	    int i = java.lang.Math.abs(random.nextInt() % pdMapping.length);
-	    return pdMapping[i];
-	}
+	    if (numCaches > 1) {
+	        random = new java.util.Random();
+	    }
+    	}
+    	Map<ProtectionDomain, PermissionCollection> getPdMapping() {
+	    if (pdMapping.length == 1) {
+	    	return pdMapping[0];
+	    } else {
+	    	int i = java.lang.Math.abs(random.nextInt() % pdMapping.length);
+	    	return pdMapping[i];
+	    }
+    	}
     }
 }
--- a/j2se/src/share/demo/jvmti/hprof/jvm.hprof.txt	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/demo/jvmti/hprof/jvm.hprof.txt	Fri Aug 31 00:44:13 2007 +0000
@@ -30,8 +30,6 @@
 
 Header for -agentlib:hprof (or -Xrunhprof) ASCII Output (JDK 5.0 JVMTI based)
 
-@(#)jvm.hprof.txt	1.9 07/05/05
-
 WARNING!  This file format is under development, and is subject to
 change without notice.
 
--- a/j2se/src/share/demo/jvmti/hprof/manual.html	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/demo/jvmti/hprof/manual.html	Fri Aug 31 00:44:13 2007 +0000
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
 <head>
-<!-- @(#)manual.html	1.13 05/09/15 -->
+<!-- @(#)manual.html	1.14 07/08/14 -->
   <meta content="deepa viswanathan" name="Author">
   <meta content="Mozilla/4.04 [en] (WinNT; U) [Netscape]"
  name="GENERATOR">
@@ -1741,6 +1741,6 @@
 </p>
 <p></p>
 <hr><!-- hhmts start -->
-Last modified: 09/15/05<!-- hhmts end -->
+Last modified: 2005<!-- hhmts end -->
 </body>
 </html>
--- a/j2se/src/share/demo/jvmti/index.html	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/demo/jvmti/index.html	Fri Aug 31 00:44:13 2007 +0000
@@ -1,8 +1,6 @@
 <html>
 <head> <title>JVM TI Demonstration Code</title> </head>
 
-<!-- @(#)index.html	1.22 06/01/29 -->
-
 <h1>JVM TI Demonstration Code</h1>
 
 <p>
--- a/j2se/src/share/native/sun/awt/debug/debug_trace.c	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/native/sun/awt/debug/debug_trace.c	Fri Aug 31 00:44:13 2007 +0000
@@ -24,7 +24,6 @@
  */
 
 #include "debug_util.h"
-#include "sun_awt_DebugHelperImpl.h"
 
 static void DTrace_PrintStdErr(const char *msg);
 
@@ -320,77 +319,52 @@
 #endif
 }
 
-/*********************************************************************************
- * Native method implementations. Java print trace calls are functional in 
- * release builds, but functions to enable/disable native tracing are not.
- */
-
-/* Implementation of DebugHelperImpl.printImpl */
-JNIEXPORT void JNICALL
-Java_sun_awt_DebugHelperImpl_printImpl(JNIEnv *env, jclass cls, jstring msg) {
-    const char *	cstr;
-    
-    cstr = JNU_GetStringPlatformChars(env, msg, NULL);
-    if ( cstr == NULL ) {
-	return;
-    }
-    DTrace_JavaPrint(cstr);
-    JNU_ReleaseStringPlatformChars(env, msg, cstr);
-}
-
-/* Implementation of DebugHelperImpl.printlnImpl */
-JNIEXPORT void JNICALL
-Java_sun_awt_DebugHelperImpl_printlnImpl(JNIEnv *env, jclass cls, jstring msg) {
-    const char *	cstr;
-    cstr = JNU_GetStringPlatformChars(env, msg, NULL);
-    if ( cstr == NULL ) {
-	return;
-    }
-    DTrace_JavaPrintln(cstr);
-    JNU_ReleaseStringPlatformChars(env, msg, cstr);
-}
+/********************************************************************************* 
+ * Native method implementations. Java print trace calls are functional in  
+ * release builds, but functions to enable/disable native tracing are not. 
+ */ 
 
-/* Implementation of DebugHelperImpl.setCTracingOn*/
-JNIEXPORT void JNICALL
-Java_sun_awt_DebugHelperImpl_setCTracingOn__Z(JNIEnv *env, jobject self, jboolean enabled) {
-#if defined(DEBUG)    
-    DTrace_EnableAll(enabled == JNI_TRUE);
-#endif
-}
-
-/* Implementation of DebugHelperImpl.setCTracingOn*/
-JNIEXPORT void JNICALL
-Java_sun_awt_DebugHelperImpl_setCTracingOn__ZLjava_lang_String_2(
-    JNIEnv *env,
-    jobject self,
-    jboolean enabled,
-    jstring file ) {
-#if defined(DEBUG)    
-    const char *	cfile;
-    cfile = JNU_GetStringPlatformChars(env, file, NULL);
-    if ( cfile == NULL ) {
-	return;
-    }
-    DTrace_EnableFile(cfile, enabled == JNI_TRUE);
-    JNU_ReleaseStringPlatformChars(env, file, cfile);
-#endif
-}
-
-/* Implementation of DebugHelperImpl.setCTracingOn*/
-JNIEXPORT void JNICALL
-Java_sun_awt_DebugHelperImpl_setCTracingOn__ZLjava_lang_String_2I(
-    JNIEnv *env,
+/* Implementation of DebugSettings.setCTracingOn*/ 
+JNIEXPORT void JNICALL 
+Java_sun_awt_DebugSettings_setCTracingOn__Z(JNIEnv *env, jobject self, jboolean enabled) { 
+#if defined(DEBUG)     
+    DTrace_EnableAll(enabled == JNI_TRUE); 
+#endif 
+} 
+ 
+/* Implementation of DebugSettings.setCTracingOn*/ 
+JNIEXPORT void JNICALL 
+Java_sun_awt_DebugSettings_setCTracingOn__ZLjava_lang_String_2( 
+    JNIEnv *env, 
     jobject self, 
-    jboolean enabled,
-    jstring file,
-    jint line ) {
-#if defined(DEBUG)    
-    const char *	cfile;
-    cfile = JNU_GetStringPlatformChars(env, file, NULL);
-    if ( cfile == NULL ) {
-	return;
-    }
-    DTrace_EnableLine(cfile, line, enabled == JNI_TRUE);
-    JNU_ReleaseStringPlatformChars(env, file, cfile);
-#endif
-}
+    jboolean enabled, 
+    jstring file ) { 
+#if defined(DEBUG)     
+    const char *        cfile; 
+    cfile = JNU_GetStringPlatformChars(env, file, NULL); 
+    if ( cfile == NULL ) { 
+        return; 
+    } 
+    DTrace_EnableFile(cfile, enabled == JNI_TRUE); 
+    JNU_ReleaseStringPlatformChars(env, file, cfile); 
+#endif 
+} 
+ 
+/* Implementation of DebugSettings.setCTracingOn*/ 
+JNIEXPORT void JNICALL 
+Java_sun_awt_DebugSettings_setCTracingOn__ZLjava_lang_String_2I( 
+    JNIEnv *env, 
+    jobject self,  
+    jboolean enabled, 
+    jstring file, 
+    jint line ) { 
+#if defined(DEBUG)     
+    const char *        cfile; 
+    cfile = JNU_GetStringPlatformChars(env, file, NULL); 
+    if ( cfile == NULL ) { 
+        return; 
+    } 
+    DTrace_EnableLine(cfile, line, enabled == JNI_TRUE); 
+    JNU_ReleaseStringPlatformChars(env, file, cfile); 
+#endif 
+} 
--- a/j2se/src/share/native/sun/java2d/pipe/Region.c	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/native/sun/java2d/pipe/Region.c	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2004 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -220,3 +220,61 @@
 					      pRgnInfo->pBands, JNI_ABORT);
     }
 }
+
+/*
+ * The code was extracted from 
+ * src/solaris/native/sun/java2d/x11/X11SurfaceData.c
+ * XSetClip() method.
+ *
+ * If the region is null, the shape is considered to be
+ * a rectangle (x1, y1, x2-x1, y2-y1).
+ *
+ * The *pRect must point to a buffer of initialBufferSize
+ * rectangles. If there're more than initialBufferSize
+ * rectangles in the region, the buffer is reallocated
+ * and its pointer is being stored at the *pRect. Using
+ * this practice we may use a small local (on the stack) 
+ * buffer and avoid allocating/freeing a memory if we 
+ * operate simple regions.
+ */
+JNIEXPORT int JNICALL
+RegionToYXBandedRectangles(JNIEnv *env, 
+        jint x1, jint y1, jint x2, jint y2, jobject region, 
+        RECT_T ** pRect, unsigned int initialBufferSize)
+{
+    RegionData clipInfo;
+    SurfaceDataBounds span;
+    int i, numrects;
+
+    if (region == NULL) {
+        if (x2 <= x1 || y2 <= y1) {
+            /* empty clip, disable rendering */
+            numrects = 0;
+        } else {
+            RECT_SET(**pRect, x1, y1, x2 - x1, y2 - y1);
+            numrects = 1;
+        }
+    } else {
+        if (Region_GetInfo(env, region, &clipInfo)) {
+            /* return; REMIND: What to do here? */
+        }
+        Region_StartIteration(env, &clipInfo);
+        numrects = Region_CountIterationRects(&clipInfo);
+        if (numrects > initialBufferSize) {
+            *pRect = (RECT_T *) malloc(numrects * sizeof(RECT_T));
+            if (*pRect == NULL) {
+                Region_EndIteration(env, &clipInfo);
+                JNU_ThrowOutOfMemoryError(env, 
+                                          "Can't allocate shape region memory");
+                return 0;
+            }
+        }
+        for (i = 0; Region_NextIteration(&clipInfo, &span); i++) {
+            RECT_SET((*pRect)[i], span.x1, span.y1, span.x2 - span.x1, span.y2 - span.y1);
+        }
+        Region_EndIteration(env, &clipInfo);
+    }
+
+    return numrects;
+}
+
--- a/j2se/src/share/native/sun/java2d/pipe/Region.h	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/share/native/sun/java2d/pipe/Region.h	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2004 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,8 @@
 #endif
 
 #include <SurfaceData.h>
+#include "utility/rect.h"
+
 
 /*
  * This file provides a number of structures, macros, and C functions
@@ -196,8 +198,22 @@
 JNIEXPORT void JNICALL
 Region_EndIteration(JNIEnv *env, RegionData *pRgnInfo);
 
+
+/*
+ * Converts a sun.java2d.pipe.Region object to a list of
+ * rectangles using platform specific native data representation
+ * (see the src/$PLATFORM/native/sun/awt/utility/rect.h header 
+ * files.)
+ */
+JNIEXPORT int JNICALL
+RegionToYXBandedRectangles(JNIEnv *env, 
+        jint x1, jint y1, jint x2, jint y2, jobject region, 
+        RECT_T ** pRect, unsigned int initialBufferSize);
+
+
 #ifdef __cplusplus
 };
 #endif
 
 #endif
+
--- a/j2se/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1022,7 +1022,7 @@
         //Window that owns input
         XBaseWindow grabWindow = XAwtState.getGrabWindow();
         //Point of mouse event in global coordinates
-        Point ptGlobal = toGlobal(mouseEvent.getPoint());
+        Point ptGlobal = mouseEvent.getLocationOnScreen();
         if (!hasPointerMoved) {
             //Fix for 6301307: NullPointerException while dispatching mouse events, XToolkit
             if (grabInputPoint == null ||
--- a/j2se/src/solaris/classes/sun/awt/X11/XChoicePeer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/solaris/classes/sun/awt/X11/XChoicePeer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -958,7 +958,7 @@
          */
         private Point toLocalCoords(MouseEvent e) {
             // Event coords are relative to the button, so translate a bit
-            Point global = XChoicePeer.this.toGlobal(e.getX(),e.getY());
+            Point global = e.getLocationOnScreen();
 
             global.x -= x;
             global.y -= y;
--- a/j2se/src/solaris/classes/sun/awt/X11/XComponentPeer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/solaris/classes/sun/awt/X11/XComponentPeer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -77,6 +77,7 @@
 import sun.awt.event.IgnorePaintEvent;
 import sun.awt.image.SunVolatileImage;
 import sun.awt.image.ToolkitImage;
+import sun.java2d.pipe.Region;
 
 public class XComponentPeer extends XWindow implements ComponentPeer, DropTargetPeer, XConstants {
     /* FIX ME: these constants copied from java.awt.KeyboardFocusManager */
@@ -89,6 +90,7 @@
     private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XComponentPeer");
     private static final Logger fontLog = Logger.getLogger("sun.awt.X11.font.XComponentPeer");
     private static final Logger enableLog = Logger.getLogger("sun.awt.X11.enable.XComponentPeer");
+    private static final Logger shapeLog = Logger.getLogger("sun.awt.X11.shape.XComponentPeer");
 
     boolean paintPending = false;
     boolean isLayouting = false;
@@ -1506,5 +1508,37 @@
             }
         }
     }
+        
+    /**
+     * Applies the shape to the X-window.
+     * @since 1.7
+     */
+    public void applyShape(Region shape) {
+        if (XlibUtil.isShapingSupported()) {
+            if (shapeLog.isLoggable(Level.FINER)) {
+                shapeLog.finer(
+                        "*** INFO: Setting shape: PEER: " + this 
+                        + "; WINDOW: " + getWindow()
+                        + "; TARGET: " + target 
+                        + "; SHAPE: " + shape);
+            }
+            XToolkit.awtLock();
+            try {
+                XlibWrapper.SetRectangularShape(
+                        XToolkit.getDisplay(), 
+                        getWindow(),
+                        shape.getLoX(), shape.getLoY(),
+                        shape.getHiX(), shape.getHiY(),
+                        (shape.isRectangular() ? null : shape)
+                        );
+            } finally {
+                XToolkit.awtUnlock();
+            }
+        } else {
+            if (shapeLog.isLoggable(Level.FINER)) {
+                shapeLog.finer("*** WARNING: Shaping is NOT supported!");
+            }
+        }
+    }
 }
 
--- a/j2se/src/solaris/classes/sun/awt/X11/XEmbedChildProxyPeer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/solaris/classes/sun/awt/X11/XEmbedChildProxyPeer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -32,6 +32,7 @@
 import java.awt.image.ImageProducer;
 import java.awt.image.VolatileImage;
 import java.awt.peer.*;
+import sun.java2d.pipe.Region;
 import sun.awt.*;
 import sun.awt.motif.MToolkit;
 import sun.awt.motif.X11FontMetrics;
@@ -375,4 +376,7 @@
     }
     public void setBoundsOperation(int operation) {        
     }
+
+    public void applyShape(Region shape) {
+    }
 }
--- a/j2se/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -414,6 +414,11 @@
         }
 
         public void handleEvent(MouseEvent e) {
+            //prevent DRAG events from being posted with TrayIcon source(CR 6565779)
+            if (e.getID() == MouseEvent.MOUSE_DRAGGED) {
+                return;
+            }
+
             // Event handling is synchronized with disposal by EDT.
             if (xtiPeer.isDisposed()) {
                 return;
@@ -427,6 +432,11 @@
             }
 
             e.translatePoint(coord.x - e.getX(), coord.y - e.getY());        
+            // This is a hack in order to set non-Component source to MouseEvent
+            // instance.
+            // In some cases this could lead to unpredictable result (e.g. when
+            // other class tries to cast source field to Component).
+            // We already filter DRAG events out (CR 6565779).
             e.setSource(xtiPeer.target);
             Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(e); 
         }
--- a/j2se/src/solaris/classes/sun/awt/X11/XlibUtil.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/solaris/classes/sun/awt/X11/XlibUtil.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2006-2007 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -364,4 +364,36 @@
 
         return XlibWrapper.IsUnmapped;
     }
+
+    /**
+     * XSHAPE extension support.
+     */
+    
+    // The variable is declared static as the XSHAPE extension cannot
+    // be disabled at run-time, and thus is available all the time
+    // once the check is passed.
+    static Boolean isShapingSupported = null;
+    
+    /**
+     *  Returns whether the XSHAPE extension available
+     *  @since 1.7
+     */
+    static synchronized boolean isShapingSupported() {
+
+        if (isShapingSupported == null) {
+            XToolkit.awtLock();
+            try {
+                isShapingSupported = 
+                    XlibWrapper.XShapeQueryExtension(
+                            XToolkit.getDisplay(), 
+                            XlibWrapper.larg1, 
+                            XlibWrapper.larg2);
+            } finally {
+                XToolkit.awtUnlock();
+            }
+        }
+        
+        return isShapingSupported.booleanValue();
+    }
+
 }
--- a/j2se/src/solaris/classes/sun/awt/X11/XlibWrapper.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/solaris/classes/sun/awt/X11/XlibWrapper.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -526,6 +526,14 @@
      */
     static native String[] XTextPropertyToStringList(byte[] bytes, long encoding_atom);
 
+    /**
+     * XSHAPE extension support.
+     */
+    static native boolean XShapeQueryExtension(long display, long event_base_return, long error_base_return);
+    static native void SetRectangularShape(long display, long window, 
+            int lox, int loy, int hix, int hiy, 
+            sun.java2d.pipe.Region region);
+
 /* Global memory area used for X lib parameter passing */
 
     final static long lbuffer = unsafe.allocateMemory(64);  // array to hold 8 longs
--- a/j2se/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java	Fri Aug 31 00:44:13 2007 +0000
@@ -39,17 +39,10 @@
 import java.net.NetworkInterface;
 import java.net.SocketException;
 import java.net.UnknownHostException;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.List;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.StringTokenizer;
-import java.util.TreeMap;
-import java.util.Vector;
+
+import java.util.*;
+import java.util.logging.*;
+
 import sun.awt.motif.MFontConfiguration;
 import sun.font.Font2D;
 import sun.font.FontManager;
@@ -63,13 +56,14 @@
  *
  * @see GraphicsDevice
  * @see GraphicsConfiguration
- * @version 1.77 05/05/07
+ * @version 1.78 07/23/07
  */
 public class X11GraphicsEnvironment
     extends SunGraphicsEnvironment
 {
-    private static final DebugHelper dbg =
-        DebugHelper.create(X11GraphicsEnvironment.class);
+    private static final Logger log = Logger.getLogger("sun.awt.X11GraphicsEnvironment");
+    private static final Logger screenLog = Logger.getLogger("sun.awt.screen.X11GraphicsEnvironment");
+
     private static Boolean xinerState;
 
     /*
@@ -958,6 +952,9 @@
             // pRunningXinerama() simply returns a global boolean variable,
             // so there is no need to synchronize here
             xinerState = Boolean.valueOf(pRunningXinerama());
+            if (screenLog.isLoggable(Level.FINER)) {
+                screenLog.log(Level.FINER, "Running Xinerama: " + xinerState);
+            }
         } 
         return xinerState.booleanValue();
     }
@@ -1039,23 +1036,24 @@
             (unionRect.width / 2) + unionRect.x < center.x + 1 &&
             (unionRect.height / 2) + unionRect.y < center.y + 1) {
 
-            if (dbg.on) {
-                dbg.println("Video Wall: center point is at center of all displays.");
+            if (screenLog.isLoggable(Level.FINER)) {
+                screenLog.log(Level.FINER, "Video Wall: center point is at center of all displays.");
             }
             return unionRect;
         }
 
         // next, check if at center of one monitor
         if (centerMonitorRect != null) {
-            if (dbg.on) {
-                dbg.println("Center point at center of a particular monitor, but not of the entire virtual display.");
+            if (screenLog.isLoggable(Level.FINER)) {
+                screenLog.log(Level.FINER, "Center point at center of a particular " +
+                                           "monitor, but not of the entire virtual display.");
             }
             return centerMonitorRect;
         }
 
         // otherwise, the center is at some weird spot: return unionRect
-        if (dbg.on) {
-            dbg.println("Center point is somewhere strange - return union of all bounds.");
+        if (screenLog.isLoggable(Level.FINER)) {
+            screenLog.log(Level.FINER, "Center point is somewhere strange - return union of all bounds.");
         }
         return unionRect;
     }
--- a/j2se/src/solaris/classes/sun/awt/motif/MComponentPeer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/solaris/classes/sun/awt/motif/MComponentPeer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -49,12 +49,15 @@
 
 import java.util.logging.*;
 
+import sun.java2d.pipe.Region;
+
+
 public /* REMIND: should not be public */
 abstract class MComponentPeer implements ComponentPeer, DropTargetPeer, X11ComponentPeer {
+
+    private static final Logger log = Logger.getLogger("sun.awt.motif.MComponentPeer");
     private static final Logger focusLog = Logger.getLogger("sun.awt.motif.focus.MComponentPeer");
 
-    private static final DebugHelper dbg = DebugHelper.create(MComponentPeer.class);
-
     Component   target;
     long        pData;
     long        jniGlobalRef;
@@ -356,15 +359,15 @@
         Rectangle r = e.getUpdateRect();
         paintArea.add(r, e.getID());
        
-        if (dbg.on) {
+        if (log.isLoggable(Level.FINEST)) {
             switch(e.getID()) {
-              case PaintEvent.UPDATE:       
-                  dbg.println("MCP coalescePaintEvent : UPDATE : add : x = " +
-                              r.x + ", y = " + r.y + ", width = " + r.width + ",height = " + r.height);
+              case PaintEvent.UPDATE:
+                  log.log(Level.FINEST, "coalescePaintEvent: UPDATE: add: x = " +
+                          r.x + ", y = " + r.y + ", width = " + r.width + ", height = " + r.height);
                   return;
               case PaintEvent.PAINT:
-                  dbg.println("MCP coalescePaintEvent : PAINT : add : x = " +
-                              r.x + ", y = " + r.y + ", width = " + r.width + ",height = " + r.height);
+                  log.log(Level.FINEST, "coalescePaintEvent: PAINT: add: x = " +
+                          r.x + ", y = " + r.y + ", width = " + r.width + ", height = " + r.height);
                   return;
             }
         }
@@ -557,7 +560,9 @@
                                                   focusedWindowChangeAllowed, time)) {
             return true;
         } else {
-            if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Current native focused window " + getNativeFocusedWindow());
+            if (focusLog.isLoggable(Level.FINER)) {
+                focusLog.log(Level.FINER, "Current native focused window " + getNativeFocusedWindow());
+            }
             /**
              * The problems with requests in non-focused window arise because shouldNativelyFocusHeavyweight
              * checks that native window is focused while appropriate WINDOW_GAINED_FOCUS has not yet 
@@ -574,7 +579,9 @@
             if (parent != null) {                
                 Window parentWindow = (Window)parent;
                 // and check that it is focused
-                if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Parent window " + parentWindow);
+                if (focusLog.isLoggable(Level.FINER)) {
+                    focusLog.log(Level.FINER, "Parent window " + parentWindow);
+                }
                 if (!parentWindow.isFocused() && getNativeFocusedWindow() == parentWindow) {
                     // if it is not - skip requesting focus on Solaris
                     // but return true for compatibility.
@@ -582,7 +589,9 @@
                 } else if (getNativeFocusedWindow() != parentWindow) {
                     WindowPeer wpeer = (WindowPeer)parentWindow.getPeer();
                     boolean res = wpeer.requestWindowFocus();
-                    if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Requested window focus: " + res);
+                    if (focusLog.isLoggable(Level.FINER)) {
+                        focusLog.log(Level.FINER, "Requested window focus: " + res);
+                    }
                     // If parent window can be made focused and has been made focused(synchronously)
                     // then we can proceed with children, otherwise we retreat.
                     if (!(res && parentWindow.isFocused())) {
@@ -1162,4 +1171,12 @@
     public void reparent(ContainerPeer newNativeParent) {
         throw new UnsupportedOperationException();
     }
+
+    /**
+     * Applies the shape to the native component window.
+     * @since 1.7
+     */
+    public void applyShape(Region shape) {
+    }
+        
 }
--- a/j2se/src/solaris/classes/sun/awt/motif/MScrollPanePeer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/solaris/classes/sun/awt/motif/MScrollPanePeer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -28,12 +28,14 @@
 import java.awt.*;
 import java.awt.event.AdjustmentEvent;
 import java.awt.peer.ScrollPanePeer;
-import sun.awt.DebugHelper;
+
+import java.util.logging.*;
+
 import sun.awt.PeerEvent;
 
 class MScrollPanePeer extends MPanelPeer implements ScrollPanePeer {
-    private static final DebugHelper dbg
-	= DebugHelper.create(MScrollPanePeer.class);
+
+    private static final Logger log = Logger.getLogger("sun.awt.motif.MScrollPanePeer");
 
     final static int UNIT_INCREMENT = 0;
     final static int BLOCK_INCREMENT = 1;
@@ -189,7 +191,9 @@
 	}
 
 	public PeerEvent coalesceEvents(PeerEvent newEvent) {
-	    if (dbg.on) dbg.println("ScrollEvent coalesced "+newEvent);
+	    if (log.isLoggable(Level.FINEST)) {
+                log.log(Level.FINEST, "ScrollEvent coalesced " + newEvent);
+            }
 	    if (newEvent instanceof ScrollEvent) {
 		return newEvent;
 	    }
@@ -229,7 +233,9 @@
 	    } else if (orient == Adjustable.HORIZONTAL) {
 		adj = (ScrollPaneAdjustable)sp.getHAdjustable();
 	    } else {
-		if (dbg.on) dbg.assertion(false);
+                if (log.isLoggable(Level.FINE)) {
+                    log.log(Level.FINE, "Assertion failed: unknown orient");
+                }
 	    }
 
 	    if (adj == null) {
@@ -254,7 +260,9 @@
 		  newpos = this.pos;
 		  break;
 	      default:
-		  if (dbg.on) dbg.assertion(false);
+                  if (log.isLoggable(Level.FINE)) {
+                      log.log(Level.FINE, "Assertion failed: unknown type");
+                  }
 		  return;
 	    }
 
--- a/j2se/src/solaris/classes/sun/awt/motif/MToolkit.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/solaris/classes/sun/awt/motif/MToolkit.java	Fri Aug 31 00:44:13 2007 +0000
@@ -39,16 +39,17 @@
 import java.security.PrivilegedAction;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
+
 import java.util.Properties;
 import java.util.Map;
 import java.util.Iterator;
+import java.util.logging.*;
 
 import sun.awt.AppContext;
 import sun.awt.AWTAutoShutdown;
 import sun.awt.SunToolkit;
 import sun.awt.UNIXToolkit;
 import sun.awt.GlobalCursorManager;
-import sun.awt.DebugHelper;
 import sun.awt.datatransfer.DataTransferer;
  
 import java.awt.dnd.DragSource;
@@ -74,7 +75,8 @@
 import sun.security.action.GetBooleanAction;
 
 public class MToolkit extends UNIXToolkit implements Runnable {
-    private static final DebugHelper dbg = DebugHelper.create(MToolkit.class);
+
+    private static final Logger log = Logger.getLogger("sun.awt.motif.MToolkit");
     
     // the system clipboard - CLIPBOARD selection
     X11Clipboard clipboard;
@@ -586,9 +588,8 @@
     protected Boolean lazilyLoadDynamicLayoutSupportedProperty(String name) {
         boolean nativeDynamic = isDynamicLayoutSupportedNative();
 
-        if (dbg.on) {
-            dbg.print("In MTK.lazilyLoadDynamicLayoutSupportedProperty()" +
-              "   nativeDynamic == " + nativeDynamic); 
+        if (log.isLoggable(Level.FINER)) {
+            log.log(Level.FINER, "nativeDynamic == " + nativeDynamic); 
         }
 
         return Boolean.valueOf(nativeDynamic);
--- a/j2se/src/solaris/native/java/net/Inet4AddressImpl.c	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/solaris/native/java/net/Inet4AddressImpl.c	Fri Aug 31 00:44:13 2007 +0000
@@ -339,12 +339,14 @@
     struct icmp *icmp;
     struct ip *ip;
     struct sockaddr sa_recv;
-    jint pid, seq = 1;
+    jchar pid;
+    jint seq = 1;
     jint tmout2;
     struct timeval tv;
     size_t plen;
 
-    pid = getpid();
+    /* icmp_id is a 16 bit data type, therefore down cast the pid */
+    pid = (jchar)getpid();
     size = 60*1024;
     setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &size, sizeof(size));
     /*
--- a/j2se/src/solaris/native/java/net/Inet6AddressImpl.c	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/solaris/native/java/net/Inet6AddressImpl.c	Fri Aug 31 00:44:13 2007 +0000
@@ -329,12 +329,14 @@
 		inetIndex++;
 	      } else if (iterator->ai_family == AF_INET6) {
 		jint scope = 0;
+		jbyteArray ipaddress;
+
 		jobject iaObj = (*env)->NewObject(env, ni_ia6cls, ni_ia6ctrID);
 		if (IS_NULL(iaObj)) {
 		  ret = NULL;
 		  goto cleanupAndReturn;
 		}
-		jbyteArray ipaddress = (*env)->NewByteArray(env, 16);
+		ipaddress = (*env)->NewByteArray(env, 16);
 		if (IS_NULL(ipaddress)) {
 		  ret = NULL;
 		  goto cleanupAndReturn;
@@ -469,7 +471,8 @@
     struct icmp6_hdr *icmp6;
     struct ip6_hdr *ip6;
     struct sockaddr_in6 sa_recv;
-    jint pid, tmout2, seq = 1;
+    jchar pid;
+    jint tmout2, seq = 1;
     struct timeval tv;
     size_t plen;
 
@@ -484,7 +487,9 @@
     setsockopt(fd, SOL_RAW, IPV6_CHECKSUM, &csum_offset, sizeof(int));
     }
 #endif
-    pid = getpid();
+
+    /* icmp_id is a 16 bit data type, therefore down cast the pid */
+    pid = (jchar)getpid();
     size = 60*1024;
     setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &size, sizeof(size));
     if (ttl > 0) {
@@ -526,7 +531,7 @@
 	  n = recvfrom(fd, recvbuf, sizeof(recvbuf), 0, (struct sockaddr*) &sa_recv, &len);
 	  icmp6 = (struct icmp6_hdr *) (recvbuf);
 	  if (n >= 8 && icmp6->icmp6_type == ICMP6_ECHO_REPLY &&
-	      icmp6->icmp6_id == ntohs(pid)) {
+	      ntohs(icmp6->icmp6_id) == pid) {
 	    close(fd);
 	    return JNI_TRUE;
 	  }
--- a/j2se/src/solaris/native/sun/awt/splashscreen/splashscreen_sys.c	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/solaris/native/sun/awt/splashscreen/splashscreen_sys.c	Fri Aug 31 00:44:13 2007 +0000
@@ -392,7 +392,11 @@
 SplashInitPlatform(Splash * splash) {
     int shapeVersionMajor, shapeVersionMinor;
 
+    // This setting enables the synchronous Xlib mode! 
+    // Don't use it == 1 in production builds!
+#if (defined DEBUG)
     _Xdebug = 1;
+#endif
 
     pthread_mutex_init(&splash->lock, NULL);
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/src/solaris/native/sun/awt/utility/rect.h	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* platform-dependent definitions */
+
+#ifndef _AWT_RECT_H
+#define _AWT_RECT_H
+
+#include <X11/Xlib.h>
+typedef XRectangle RECT_T;
+
+#define RECT_EQ_X(r1,r2)        ((r1).x==(r2).x && (r1).width==(r2).width)
+
+#define RECT_SET(r,xx,yy,ww,hh)  \
+    do {                         \
+        (r).x=(xx);              \
+        (r).y=(yy);              \
+        (r).width=(ww);          \
+        (r).height=(hh);         \
+    } while (0)
+
+#define RECT_INC_HEIGHT(r)      (r).height++
+
+#endif // _AWT_RECT_H
+
--- a/j2se/src/solaris/native/sun/java2d/x11/X11SurfaceData.c	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/solaris/native/sun/java2d/x11/X11SurfaceData.c	Fri Aug 31 00:44:13 2007 +0000
@@ -1600,50 +1600,15 @@
      jobject complexclip)
 {
 #ifndef HEADLESS
-    RegionData clipInfo;
-    SurfaceDataBounds span;
+    int numrects;
     XRectangle rects[256];
     XRectangle *pRect = rects;
-    int i, numrects;
 
     J2dTraceLn(J2D_TRACE_INFO, "in X11SurfaceData_XSetClip");
-
-    if (complexclip == NULL) {
-        if (x2 <= x1 || y2 <= y1) {
-            /* empty clip, disable rendering */
-            numrects = 0;
-        } else {
-            rects[0].x = x1;
-            rects[0].y = y1;
-            rects[0].width = x2 - x1;
-            rects[0].height = y2 - y1;
-            numrects = 1;
-        }
-    } else {
-        if (Region_GetInfo(env, complexclip, &clipInfo)) {
-            /* return; REMIND: What to do here? */
-        }
-        Region_StartIteration(env, &clipInfo);
-        numrects = Region_CountIterationRects(&clipInfo);
-        if (numrects > 256) {
-            pRect = (XRectangle *) malloc(numrects * sizeof(XRectangle));
-            if (pRect == NULL) {
-                Region_EndIteration(env, &clipInfo);
-                JNU_ThrowOutOfMemoryError(env, 
-                                          "Can't allocate clip region memory");
-                return;
-            }
-        }
-        i = 0;
-        while (Region_NextIteration(&clipInfo, &span)) {
-            pRect[i].x = span.x1;
-            pRect[i].y = span.y1;
-            pRect[i].width = span.x2 - span.x1;
-            pRect[i].height = span.y2 - span.y1;
-            i++;
-        }
-        Region_EndIteration(env, &clipInfo);
-    }
+    
+    numrects = RegionToYXBandedRectangles(env, 
+            x1, y1, x2, y2, complexclip, 
+            &pRect, 256);
 
     XSetClipRectangles(awt_display, (GC) xgc, 0, 0, pRect, numrects, YXBanded);
 
--- a/j2se/src/solaris/native/sun/xawt/XlibWrapper.c	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/solaris/native/sun/xawt/XlibWrapper.c	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,7 @@
 #include <X11/Xos.h>
 #include <X11/Xatom.h>
 #include <X11/extensions/Xdbe.h>
+#include <X11/extensions/shape.h>
 #include <string.h>
 #include <stdlib.h>
 
@@ -40,6 +41,7 @@
 #include <awt.h>
 #include <jvm.h>
 
+#include <Region.h>
 
 #if defined(DEBUG) || defined(INTERNAL_BUILD)
 static jmethodID lockIsHeldMID = NULL;
@@ -1884,3 +1886,45 @@
 {
     return (jint) XSynchronize((Display*)jlong_to_ptr(display), (onoff == JNI_TRUE ? True : False));
 }
+
+JNIEXPORT jboolean JNICALL 
+Java_sun_awt_X11_XlibWrapper_XShapeQueryExtension
+(JNIEnv *env, jclass clazz, jlong display, jlong event_base_return, jlong error_base_return) 
+{
+    jboolean status;
+
+    AWT_CHECK_HAVE_LOCK();
+    
+    status = XShapeQueryExtension((Display *)jlong_to_ptr(display),
+            (int *)jlong_to_ptr(event_base_return), (int *)jlong_to_ptr(error_base_return));
+    return status;
+}
+
+/*
+ * Class:     XlibWrapper
+ * Method:    SetRectangularShape
+ */
+
+JNIEXPORT void JNICALL 
+Java_sun_awt_X11_XlibWrapper_SetRectangularShape
+(JNIEnv *env, jclass clazz, jlong display, jlong window, 
+ jint x1, jint y1, jint x2, jint y2, 
+ jobject region) 
+{
+    XRectangle rects[256];
+    XRectangle *pRect = rects;
+    int numrects;
+
+    AWT_CHECK_HAVE_LOCK();
+    
+    numrects = RegionToYXBandedRectangles(env, x1, y1, x2, y2, region,
+            &pRect, 256);
+
+    XShapeCombineRectangles((Display *)jlong_to_ptr(display), (Window)jlong_to_ptr(window),
+                ShapeBounding, 0, 0, pRect, numrects, ShapeSet, YXBanded);
+
+    if (pRect != rects) {
+        free(pRect);
+    }
+}
+
--- a/j2se/src/windows/classes/sun/awt/windows/WComponentPeer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/windows/classes/sun/awt/windows/WComponentPeer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -51,7 +51,10 @@
 import java.awt.dnd.peer.DropTargetPeer;
 import sun.awt.ComponentAccessor;
 
-import sun.awt.DebugHelper;
+import java.util.logging.*;
+
+import java.util.logging.*;
+
 
 public abstract class WComponentPeer extends WObjectPeer 
     implements ComponentPeer, DropTargetPeer, DisplayChangedListener
@@ -61,7 +64,8 @@
      */
     protected volatile long hwnd;
 
-    private static final DebugHelper dbg = DebugHelper.create(WComponentPeer.class);
+    private static final Logger log = Logger.getLogger("sun.awt.windows.WComponentPeer");
+    private static final Logger shapeLog = Logger.getLogger("sun.awt.windows.shape.WComponentPeer");
 
     static {
         wheelInit();
@@ -173,9 +177,11 @@
     void dynamicallyLayoutContainer() {
         // If we got the WM_SIZING, this must be a Container, right?
         // In fact, it must be the top-level Container.
-        if (dbg.on) {
+        if (log.isLoggable(Level.FINE)) {
             Container parent = WToolkit.getNativeContainer((Component)target);
-            dbg.assertion(parent == null);
+            if (parent != null) {
+                log.log(Level.FINE, "Assertion (parent == null) failed");
+            }
         }
         final Container cont = (Container)target;
 
@@ -271,18 +277,18 @@
             paintArea.add(r, e.getID());
         }
 
-        if (dbg.on) {
-	    switch(e.getID()) {
-	    case PaintEvent.UPDATE:       
-                dbg.println("WCP coalescePaintEvent : UPDATE : add : x = " +
-		    r.x + ", y = " + r.y + ", width = " + r.width + ",height = " + r.height);
-		return;
-	    case PaintEvent.PAINT:
-                dbg.println("WCP coalescePaintEvent : PAINT : add : x = " +
-                    r.x + ", y = " + r.y + ", width = " + r.width + ",height = " + r.height);
-		return;
-	    }
-	}
+        if (log.isLoggable(Level.FINEST)) {
+            switch(e.getID()) {
+            case PaintEvent.UPDATE:       
+                log.log(Level.FINEST, "coalescePaintEvent: UPDATE: add: x = " +
+                    r.x + ", y = " + r.y + ", width = " + r.width + ", height = " + r.height);
+                return;
+            case PaintEvent.PAINT:
+                log.log(Level.FINEST, "coalescePaintEvent: PAINT: add: x = " +
+                    r.x + ", y = " + r.y + ", width = " + r.width + ", height = " + r.height);
+                return;
+            }
+        }
     }
 
     public synchronized native void reshape(int x, int y, int width, int height);
@@ -854,4 +860,27 @@
 
     public void setBoundsOperation(int operation) {
     }
+
+
+    native void setRectangularShape(int lox, int loy, int hix, int hiy,
+                     sun.java2d.pipe.Region region);
+
+    
+    /**
+     * Applies the shape to the native component window.
+     * @since 1.7
+     */
+    public void applyShape(sun.java2d.pipe.Region shape) {
+        if (shapeLog.isLoggable(Level.FINER)) {
+            shapeLog.finer(
+                    "*** INFO: Setting shape: PEER: " + this
+                    + "; TARGET: " + target
+                    + "; SHAPE: " + shape);
+        }
+
+        setRectangularShape(shape.getLoX(), shape.getLoY(), shape.getHiX(), shape.getHiY(), 
+                (shape.isRectangular() ? null : shape));
+    }
+            
 }
+
--- a/j2se/src/windows/classes/sun/awt/windows/WScrollPanePeer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/windows/classes/sun/awt/windows/WScrollPanePeer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -27,12 +27,13 @@
 import java.awt.*;
 import java.awt.event.AdjustmentEvent;
 import java.awt.peer.ScrollPanePeer;
-import sun.awt.DebugHelper;
 import sun.awt.PeerEvent;
 
+import java.util.logging.*;
+
 class WScrollPanePeer extends WPanelPeer implements ScrollPanePeer {
-    private static final DebugHelper dbg
-	= DebugHelper.create(WScrollPanePeer.class);
+
+    private static final Logger log = Logger.getLogger("sun.awt.windows.WScrollPanePeer");
  
     int scrollbarWidth;
     int scrollbarHeight;
@@ -153,17 +154,19 @@
      * operation.
      */
     class ScrollEvent extends PeerEvent {
-	ScrollEvent(Object source, Runnable runnable) {
-	    super(source, runnable, 0L);
-	}
+        ScrollEvent(Object source, Runnable runnable) {
+            super(source, runnable, 0L);
+        }
 
-	public PeerEvent coalesceEvents(PeerEvent newEvent) {
-	    if (dbg.on) dbg.println("ScrollEvent coalesced "+newEvent);
-	    if (newEvent instanceof ScrollEvent) {
-		return newEvent;
-	    }
-	    return null;
-	}
+        public PeerEvent coalesceEvents(PeerEvent newEvent) {
+            if (log.isLoggable(Level.FINEST)) {
+                log.log(Level.FINEST, "ScrollEvent coalesced: " + newEvent);
+            }
+            if (newEvent instanceof ScrollEvent) {
+                return newEvent;
+            }
+            return null;
+        }
     }
 
     native void setTypedValue(ScrollPaneAdjustable adjustable, int newpos, int type);
@@ -201,7 +204,9 @@
 	    } else if (orient == Adjustable.HORIZONTAL) {
 		adj = (ScrollPaneAdjustable)sp.getHAdjustable();
 	    } else {
-		if (dbg.on) dbg.assertion(false);
+                if (log.isLoggable(Level.FINE)) {
+                    log.log(Level.FINE, "Assertion failed: unknown orient");
+                }
 	    }
 
 	    if (adj == null) {
@@ -226,7 +231,9 @@
 		  newpos = this.pos;
 		  break;
 	      default:
-		  if (dbg.on) dbg.assertion(false);
+                  if (log.isLoggable(Level.FINE)) {
+                      log.log(Level.FINE, "Assertion failed: unknown type");
+                  }
 		  return;
 	    }
 
@@ -251,10 +258,12 @@
 	    {
 		hwAncestor = hwAncestor.getParent();
 	    }
-	    if (dbg.on) {
-		dbg.assertion(hwAncestor != null,
-		    "couldn't find heavyweight ancestor of scroll pane child");
-	    }
+            if (log.isLoggable(Level.FINE)) {
+                if (hwAncestor == null) {
+                    log.log(Level.FINE, "Assertion (hwAncestor != null) failed, " +
+                            "couldn't find heavyweight ancestor of scroll pane child");
+                }
+            }
 	    WComponentPeer hwPeer = (WComponentPeer)hwAncestor.getPeer();
 	    hwPeer.paintDamagedAreaImmediately();
 	}
--- a/j2se/src/windows/classes/sun/awt/windows/WToolkit.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/windows/classes/sun/awt/windows/WToolkit.java	Fri Aug 31 00:44:13 2007 +0000
@@ -33,20 +33,13 @@
 import java.awt.event.KeyEvent;
 import java.awt.datatransfer.Clipboard;
 import java.awt.TrayIcon;
-import java.util.Hashtable;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Properties;
 import java.beans.PropertyChangeListener;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import sun.awt.AWTAutoShutdown;
 import sun.awt.SunToolkit;
 import sun.awt.Win32GraphicsDevice;
 import sun.awt.Win32GraphicsEnvironment;
-import sun.awt.DebugHelper;
 import sun.java2d.opengl.OGLRenderQueue;
 
 import sun.print.PrintJob2D;
@@ -59,11 +52,18 @@
 import java.awt.dnd.InvalidDnDOperationException;
 import java.awt.dnd.peer.DragSourceContextPeer;
 
+import java.util.Hashtable;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Properties;
+
+import java.util.logging.*;
+
 import sun.misc.PerformanceLogger;
 
 public class WToolkit extends SunToolkit implements Runnable {
+
     private static final Logger log = Logger.getLogger("sun.awt.windows.WToolkit");
-    private static final DebugHelper dbg = DebugHelper.create(WToolkit.class);
 
     static GraphicsConfiguration config;
 
@@ -92,6 +92,8 @@
         }
     }
 
+    private static native String getWindowsVersion();
+
     static {
 	loadLibraries();
 	// Force Win32GE to load if it is not already loaded; this loads
@@ -100,8 +102,8 @@
 	initIDs();
 
         // Print out which version of Windows is running
-        if (dbg.on) {
-            printWindowsVersion();
+        if (log.isLoggable(Level.FINE)) {
+            log.log(Level.FINE, "Win version: " + getWindowsVersion());
         }
 
 	java.security.AccessController.doPrivileged(
@@ -117,10 +119,8 @@
 	});
     }
 
-    private static native void printWindowsVersion();
     private static native void disableCustomPalette();
 
-
     /*
      * Reset the static GraphicsConfiguration to the default.  Called on
      * startup and when display settings have changed.
@@ -806,10 +806,10 @@
         lazilyInitWProps();
         Boolean prop = (Boolean) desktopProperties.get("awt.dynamicLayoutSupported");
 
-        if (log.isLoggable(Level.FINE)) {
-            log.fine("In WTK.isDynamicLayoutSupported()" +
-                      "   nativeDynamic == " + nativeDynamic +
-                      "   wprops.dynamic == " + prop);
+        if (log.isLoggable(Level.FINER)) {
+            log.log(Level.FINER, "In WTK.isDynamicLayoutSupported()" +
+                    "   nativeDynamic == " + nativeDynamic +
+                    "   wprops.dynamic == " + prop);
         }
 
         if ((prop == null) || (nativeDynamic != prop.booleanValue())) {
@@ -844,8 +844,8 @@
         Map<String, Object> props = wprops.getProperties();
         for (String propName : props.keySet()) {
             Object val = props.get(propName);
-            if (log.isLoggable(Level.FINE)) {
-                log.fine("changed " + propName + " to " + val);
+            if (log.isLoggable(Level.FINER)) {
+                log.log(Level.FINER, "changed " + propName + " to " + val);
             }
             setDesktopProperty(propName, val);
         }
--- a/j2se/src/windows/classes/sun/awt/windows/WWindowPeer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/windows/classes/sun/awt/windows/WWindowPeer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -44,10 +44,9 @@
 import sun.awt.image.*;
 
 public class WWindowPeer extends WPanelPeer implements WindowPeer {
-    private static final DebugHelper dbg =
-        DebugHelper.create(WWindowPeer.class);
 
     private static final Logger log = Logger.getLogger("sun.awt.windows.WWindowPeer");
+    private static final Logger screenLog = Logger.getLogger("sun.awt.windows.screen.WWindowPeer");
 
     // we can't use WDialogPeer as blocker may be an instance of WPrintDialogPeer that
     // extends WWindowPeer, not WDialogPeer
@@ -210,7 +209,7 @@
     static native int getSysIconHeight();
     static native int getSysSmIconWidth();
     static native int getSysSmIconHeight();
-    /**
+    /**windows/classes/sun/awt/windows/
      * Creates native icon from specified raster data and updates
      * icon for window and all descendant windows that inherit icon.
      * Raster data should be passed in the ARGB form.
@@ -375,6 +374,9 @@
 
     public void updateGC() {
         int scrn = getScreenImOn();
+        if (screenLog.isLoggable(Level.FINER)) {
+            log.log(Level.FINER, "Screen number: " + scrn);
+        }
 
         // get current GD
         Win32GraphicsDevice oldDev = (Win32GraphicsDevice)winGraphicsConfig
@@ -397,8 +399,10 @@
         // is now mostly on.
         winGraphicsConfig = (Win32GraphicsConfig)newDev
                             .getDefaultConfiguration();
-        if (dbg.on) {
-            dbg.assertion(winGraphicsConfig != null);
+        if (screenLog.isLoggable(Level.FINE)) {
+            if (winGraphicsConfig == null) {
+                screenLog.log(Level.FINE, "Assertion (winGraphicsConfig != null) failed");
+            }
         }
 
         // if on a different display, take off old GD and put on new GD
--- a/j2se/src/windows/native/java/net/Inet4AddressImpl.c	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/windows/native/java/net/Inet4AddressImpl.c	Fri Aug 31 00:44:13 2007 +0000
@@ -315,6 +315,7 @@
     u_short pid, seq=1;
     int read_rv = 0;
 
+    /* icmp_id is a 16 bit data type, therefore down cast the pid */
     pid = (u_short) getpid();
     size = 60*1024;
     setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (const char *) &size, sizeof(size));
--- a/j2se/src/windows/native/java/net/Inet6AddressImpl.c	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/windows/native/java/net/Inet6AddressImpl.c	Fri Aug 31 00:44:13 2007 +0000
@@ -387,14 +387,17 @@
     unsigned char recvbuf[1500];
     struct icmp6_hdr *icmp6;
     struct SOCKADDR_IN6 sa_recv;
-    short pid, seq = 1;
+    unsigned short pid;
+    short seq = 1;
     int read_rv = 0;
     WSAEVENT hEvent;
     struct ip6_pseudo_hdr *pseudo_ip6; 
     int timestamp;
     int tmout2;
 
-    pid = (short) getpid();
+    /* icmp_id is a 16 bit data type, therefore down cast the pid */
+    pid = (unsigned short) getpid();
+
     size = 60*1024;
     setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (const char *)&size, sizeof(size));
     /**
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/src/windows/native/sun/awt/utility/rect.h	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* platform-dependent definitions */
+
+#ifndef _AWT_RECT_H
+#define _AWT_RECT_H
+
+#include <windows.h>
+typedef RECT RECT_T;
+
+#define RECT_EQ_X(r1, r2)   ((r1).left==(r2).left && (r1).right==(r2).right)
+
+#define RECT_SET(r,xx,yy,ww,hh) \
+    do {                        \
+        (r).left=(xx);          \
+        (r).top=(yy);           \
+        (r).right=(xx)+(ww);    \
+        (r).bottom=(yy)+(hh);   \
+    } while (0)
+
+#define RECT_INC_HEIGHT(r) (r).bottom++
+
+
+#endif // _AWT_RECT_H
+
--- a/j2se/src/windows/native/sun/windows/awt_Component.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/windows/native/sun/windows/awt_Component.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -49,6 +49,8 @@
 #include "Hashtable.h"
 #include "ComCtl32Util.h"
 
+#include <Region.h>
+
 #include <jawt.h>
 
 #include <java_awt_Toolkit.h>
@@ -157,6 +159,12 @@
     int srcx, srcy;
     int srcw, srch;
 };
+// Struct for _SetRectangularShape() method
+struct SetRectangularShapeStruct {
+    jobject component;
+    jint x1, x2, y1, y2;
+    jobject region;
+};
 /************************************************************************/
 
 //////////////////////////////////////////////////////////////////////////
@@ -6267,6 +6275,64 @@
     }
 }
 
+void AwtComponent::_SetRectangularShape(void *param)
+{
+    JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
+
+    SetRectangularShapeStruct *data = (SetRectangularShapeStruct *)param;
+    jobject self = data->component;
+    jint x1 = data->x1;
+    jint x2 = data->x2;
+    jint y1 = data->y1;
+    jint y2 = data->y2;
+    jobject region = data->region;
+
+    AwtComponent *c = NULL;
+    
+
+
+    PDATA pData;
+    JNI_CHECK_PEER_GOTO(self, ret);
+    c = (AwtComponent *)pData;
+    if (::IsWindow(c->GetHWnd()))
+    {
+        RGNDATA *pRgnData = NULL;
+        RGNDATAHEADER *pRgnHdr;
+
+        /* reserving memory for the worst case */
+        size_t worstBufferSize = size_t(((x2 - x1) / 2 + 1) * (y2 - y1));
+        pRgnData = (RGNDATA *) safe_Malloc(sizeof(RGNDATAHEADER) +
+                sizeof(RECT_T) * worstBufferSize);
+        pRgnHdr = (RGNDATAHEADER *) pRgnData;
+
+        pRgnHdr->dwSize = sizeof(RGNDATAHEADER);
+        pRgnHdr->iType = RDH_RECTANGLES;
+        pRgnHdr->nRgnSize = 0;
+        pRgnHdr->rcBound.top = 0;
+        pRgnHdr->rcBound.left = 0;
+        pRgnHdr->rcBound.bottom = LONG(y2 - y1);
+        pRgnHdr->rcBound.right = LONG(x2 - x1);
+
+        RECT_T * pRect = (RECT_T *) (((BYTE *) pRgnData) + sizeof(RGNDATAHEADER));
+        pRgnHdr->nCount = RegionToYXBandedRectangles(env, x1, y1, x2, y2, region, &pRect, worstBufferSize);
+        
+        HRGN hRgn = ::ExtCreateRegion(NULL,
+                sizeof(RGNDATAHEADER) + sizeof(RECT_T) * pRgnHdr->nCount, pRgnData);
+
+        free(pRgnData);
+
+        ::SetWindowRgn(c->GetHWnd(), hRgn, TRUE);
+    }
+    
+ret:
+    env->DeleteGlobalRef(self);
+    if (region) {
+        env->DeleteGlobalRef(region);
+    }
+
+    delete data;
+}
+
 void AwtComponent::PostUngrabEvent() {
     JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
     jobject target = GetTarget(env);
@@ -6931,6 +6997,30 @@
     CATCH_BAD_ALLOC;
 }
 
+JNIEXPORT void JNICALL
+Java_sun_awt_windows_WComponentPeer_setRectangularShape(JNIEnv* env, jobject self, 
+        jint x1, jint y1, jint x2, jint y2, jobject region) 
+{
+    TRY;
+
+    SetRectangularShapeStruct * data = new SetRectangularShapeStruct;
+    data->component = env->NewGlobalRef(self);
+    data->x1 = x1;
+    data->x2 = x2;
+    data->y1 = y1;
+    data->y2 = y2;
+    if (region) {
+        data->region = env->NewGlobalRef(region);
+    } else {
+        data->region = NULL;
+    }
+    
+    AwtToolkit::GetInstance().SyncCall(AwtComponent::_SetRectangularShape, data);
+    // global refs and data are deleted in _SetRectangularShape
+
+    CATCH_BAD_ALLOC;
+}
+
 } /* extern "C" */
 
 
--- a/j2se/src/windows/native/sun/windows/awt_Component.h	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/windows/native/sun/windows/awt_Component.h	Fri Aug 31 00:44:13 2007 +0000
@@ -676,6 +676,7 @@
     static void _RemoveNativeDropTarget(void *param);
     static jintArray _CreatePrintedPixels(void *param);
     static jboolean _NativeHandlesWheelScrolling(void *param);
+    static void _SetRectangularShape(void *param);
 
     static HWND sm_focusOwner;
     static HWND sm_focusedWindow;
--- a/j2se/src/windows/native/sun/windows/awt_Toolkit.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/windows/native/sun/windows/awt_Toolkit.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -526,38 +526,6 @@
     return (IsDynamicLayoutSet() && IsDynamicLayoutSupported());
 }
 
-void AwtToolkit::PrintWinVersion() {
-    DWORD version = ::GetVersion();
-    DTRACE_PRINT2("Windows Version is 0x%x = %ld : ", version, version);
-
-    if (IS_WIN95) {
-        if (IS_WIN98) {
-            if (IS_WINME) {
-                DTRACE_PRINTLN("os is Windows ME");
-                return;
-            }
-            DTRACE_PRINTLN("os is Windows 98");
-            return;
-        }
-        DTRACE_PRINTLN("os is Windows 95");
-        return;
-    } else if (IS_NT) {
-        if (IS_WIN2000) {
-            if (IS_WINXP) {
-                DTRACE_PRINTLN("os is Windows XP");
-                return;
-            }
-            DTRACE_PRINTLN("os is Windows 2000");
-            return;
-        }
-        DTRACE_PRINTLN("os is Windows NT");
-        return;
-    } else {
-        DTRACE_PRINTLN("Unrecognized operating system");
-        return;
-    }
-}
-
 ATOM AwtToolkit::RegisterClass() {
     WNDCLASS  wc;
 
@@ -2120,16 +2088,50 @@
 /*
  * Class:     sun_awt_windows_WToolkit
  * Method:    printWindowsVersion
- * Signature: ()V
+ * Signature: ()Ljava/lang/String;
  */
-JNIEXPORT void JNICALL
-Java_sun_awt_windows_WToolkit_printWindowsVersion(JNIEnv *env, jclass cls) 
+JNIEXPORT jstring JNICALL
+Java_sun_awt_windows_WToolkit_getWindowsVersion(JNIEnv *env, jclass cls) 
 {
     TRY;
 
-    AwtToolkit::PrintWinVersion();
+    WCHAR szVer[128];
+
+    DWORD version = ::GetVersion();
+    swprintf(szVer, L"0x%x = %ld", version, version);
+    int l = lstrlen(szVer);
 
-    CATCH_BAD_ALLOC;
+    if (IS_WIN95) {
+        if (IS_WIN98) {
+            if (IS_WINME) {
+                swprintf(szVer + l, L" (Windows ME)");
+            } else {
+                swprintf(szVer + l, L" (Windows 98)");
+            }
+        } else {
+            swprintf(szVer + l, L" (Windows 95)");
+        }
+    } else if (IS_NT) {
+        if (IS_WIN2000) {
+            if (IS_WINXP) {
+                if (IS_WINVISTA) {
+                    swprintf(szVer + l, L" (Windows Vista)");
+                } else {
+                    swprintf(szVer + l, L" (Windows XP)");
+                }
+            } else {
+                swprintf(szVer + l, L" (Windows 2000)");
+            }
+        } else {
+            swprintf(szVer + l, L" (Windows NT)");
+        }
+    } else {
+        swprintf(szVer + l, L" (Unknown)");
+    }
+
+    return JNU_NewStringPlatform(env, szVer);
+
+    CATCH_BAD_ALLOC_RET(NULL);
 }
 
 JNIEXPORT jboolean JNICALL
--- a/j2se/src/windows/native/sun/windows/awt_Toolkit.h	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/windows/native/sun/windows/awt_Toolkit.h	Fri Aug 31 00:44:13 2007 +0000
@@ -212,8 +212,6 @@
     BOOL IsDynamicLayoutSupported();
     BOOL IsDynamicLayoutActive();
 
-    static void PrintWinVersion(); 
-
     INLINE BOOL localPump() { return m_localPump; }
     INLINE BOOL VerifyComponents() { return FALSE; } // TODO: Use new DebugHelper class to set this flag
     INLINE HWND GetHWnd() { return m_toolkitHWnd; }
--- a/j2se/src/windows/native/sun/windows/awt_TrayIcon.cpp	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/src/windows/native/sun/windows/awt_TrayIcon.cpp	Fri Aug 31 00:44:13 2007 +0000
@@ -398,9 +398,6 @@
         lastY = y;
         AwtComponent::InitMessage(&msg, lastMessage, flags, MAKELPARAM(x, y), x, y);
         if ((flags & AwtComponent::ALL_MK_BUTTONS) != 0) {
-            SendMouseEvent(java_awt_event_MouseEvent_MOUSE_DRAGGED, TimeHelper::windowsToUTC(::GetTickCount()), x, y,
-                           AwtComponent::GetJavaModifiers(), 0, JNI_FALSE,
-                           java_awt_event_MouseEvent_NOBUTTON, &msg);
             m_mouseDragState = flags;
         } else {
             SendMouseEvent(java_awt_event_MouseEvent_MOUSE_MOVED, TimeHelper::windowsToUTC(::GetTickCount()), x, y,
--- a/j2se/test/Makefile	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/Makefile	Fri Aug 31 00:44:13 2007 +0000
@@ -2,6 +2,7 @@
 # Makefile to run jtreg
 #
 
+# Get OS/ARCH specifics
 OSNAME = $(shell uname -s)
 ifeq ($(OSNAME), SunOS)
   PLATFORM = solaris
@@ -37,22 +38,22 @@
   endif
 endif
 
+# Root of this test area (important to use full paths in some places)
+TEST_ROOT := $(shell pwd)
+
 # Default bundle of all test results (passed or not)
 JPRT_ARCHIVE_BUNDLE=$(TEST_ROOT)/JPRT_ARCHIVE_BUNDLE.zip
 
 # Default home for JTREG
 ifeq ($(PLATFORM), windows)
-  JT_HOME = J:/svc/jct-tools3.2.2_01
+  JT_HOME = J:/svc/jct-tools3.2.2_02
 else
-  JT_HOME = /java/svc/jct-tools3.2.2_01
+  JT_HOME = /java/svc/jct-tools3.2.2_02
 endif
 
 # Default JTREG to run
 JTREG = $(JT_HOME)/$(JCT_PLATFORM)/bin/jtreg
 
-# Root of this test area
-TEST_ROOT := $(shell pwd)
-
 # Default JDK to test
 JAVA_HOME = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)
 
@@ -60,156 +61,47 @@
 DEFAULT_TESTDIRS = demo/jvmti/gctest demo/jvmti/hprof
 TESTDIRS = $(DEFAULT_TESTDIRS)
 
-# Files that hold total passed and failed counts (passed==0 is bad)
-JTREG_TOTALS_DIR = $(TEST_ROOT)/JTREG_TOTALS_$(PLATFORM)_$(ARCH)
-JTREG_FAILED = $(JTREG_TOTALS_DIR)/failed_count
-JTREG_PASSED = $(JTREG_TOTALS_DIR)/passed_count
-
 # Root of all test results
-JTREG_ALL_OUTPUT_DIRNAME = JTREG_OUTPUT_$(PLATFORM)_$(ARCH)
-JTREG_ALL_OUTPUT_DIR = $(TEST_ROOT)/$(JTREG_ALL_OUTPUT_DIRNAME)
-
-# Test results for one test directory
-JTREG_TEST_OUTPUT_DIR = $(JTREG_ALL_OUTPUT_DIR)/$@
-JTREG_TEST_REPORT_DIR = $(JTREG_TEST_OUTPUT_DIR)/JTreport
-JTREG_TEST_WORK_DIR   = $(JTREG_TEST_OUTPUT_DIR)/JTwork
-JTREG_TEST_SUMMARY    =	$(JTREG_TEST_REPORT_DIR)/summary.txt
+JTREG_OUTPUT_DIR = $(TEST_ROOT)/o_$(PLATFORM)-$(ARCH)
 
-# Temp files used by this Makefile
-JTREG_TEST_TEMP_DIR   = $(JTREG_ALL_OUTPUT_DIR)/$@/temp
-JTREG_TEMP_PASSED     = $(JTREG_TEST_TEMP_DIR)/passed
-JTREG_TEMP_FAILED     = $(JTREG_TEST_TEMP_DIR)/failed
-JTREG_TEMP_OUTPUT     = $(JTREG_TEST_TEMP_DIR)/output
-JTREG_TEMP_RESULTS    = $(JTREG_TEST_TEMP_DIR)/results
-
-# JTREG options (different for 2.1.6 and 3.2.2_01)
-JTREG_COMMON_OPTIONS = -r:$(JTREG_TEST_REPORT_DIR) \
-                       -w:$(JTREG_TEST_WORK_DIR) \
-                       -testjdk:$(JAVA_HOME) \
-                       -automatic \
-	               -verbose:all
-JTREG_216_OPTIONS = $(JTREG_COMMON_OPTIONS) $@ $(JAVA_ARGS)
-JTREG_322_OPTIONS = $(JTREG_COMMON_OPTIONS) $(JAVA_ARGS:%=-vmoption:%) $@
+# Export this setting and pass it in.
+JAVA_TOOL_OPTIONS = -Djava.awt.headless=true
+export JAVA_TOOL_OPTIONS
 
 # Default make rule
-all: clean check tests
+all: clean check tests $(JPRT_ARCHIVE_BUNDLE)
+	@echo "Testing completed successfully"
 
 # Chaeck to make sure these directories exist
 check: $(JT_HOME) $(JAVA_HOME) $(JTREG)
 
-# Prime the test run
-primecounts: FRC
-	@rm -f -r $(JTREG_TOTALS_DIR)
-	@mkdir -p $(JTREG_TOTALS_DIR)
-	@echo "0" > $(JTREG_FAILED)
-	@echo "0" > $(JTREG_PASSED)
-
-# Run the tests and determine the 'make' command exit status
-#   Ultimately we determine the make exit code based on the passed/failed count
-tests: primecounts $(TESTDIRS)
-	@echo "JTREG TOTAL: passed=`cat $(JTREG_PASSED)` failed=`cat $(JTREG_FAILED)`"
-	zip -q -r $(JPRT_ARCHIVE_BUNDLE) $(JTREG_ALL_OUTPUT_DIRNAME)
-	@if [ `cat $(JTREG_FAILED)` -ne 0 -o \
-	     `cat $(JTREG_PASSED)` -le 0 ] ; then \
-	  echo "JTREG FAILED"; \
-	  exit 1; \
-	else \
-	  echo "JTREG PASSED"; \
-	  exit 0; \
-	fi
-
-# Just make sure these directires exist
-$(JT_HOME) $(JAVA_HOME): FRC
-	@if [ ! -d $@ ] ; then \
-	    echo "ERROR: Directory $@ does not exist"; \
-	    exit 1; \
-	fi
-
-# Make sure this file exists
-$(JTREG): FRC
-	@if [ ! -f $@ ] ; then \
-	    echo "ERROR: File $@ does not exist"; \
-	    exit 1; \
-	fi
+# Run the tests
+tests: FRC
+	@echo "Using export JAVA_TOOL_OPTIONS=$(JAVA_TOOL_OPTIONS)"
+	@rm -f -r $(JTREG_OUTPUT_DIR)
+	@mkdir -p $(JTREG_OUTPUT_DIR)
+	$(JTREG) -k:\!ignore -a -v:fail,error \
+          -r:$(JTREG_OUTPUT_DIR)/JTreport \
+          -w:$(JTREG_OUTPUT_DIR)/JTwork \
+          -jdk:$(JAVA_HOME) \
+          $(JAVA_TOOL_OPTIONS:%=-vmoption:%) \
+          $(JAVA_ARGS:%=-vmoption:%) \
+          $(TESTDIRS)
 
-# Process each test directory one by one, this rule always completes.
-#    Note that the use of 'tee' tosses the jtreg process exit status, this
-#    is as expected because even if jtreg fails, we need to save the
-#    output. So we update the JTREG_PASSED and JTREG_FAILED count files.
-#    Note that missing the 'results:' line in the last few lines of output
-#    will indicate a failure (or a bump by one of the JTREG_FAILED file.
-#    Note that passed: 0 or no passed: indication means a failure.
-#    Note that any indication of the word 'failed' indicates failure.
-#    Ultimately if the contents of JTREG_FAILED is not 0, we have failed 
-#    tests, and if the contents of JTREG_PASSED is 0, we consider that a
-#    failure.
-$(TESTDIRS):  FRC
-	@if [ ! -d $@ ] ; then \
-	    echo "ERROR: Directory $@ does not exist"; \
-	    exit 1; \
-	fi
-	@echo "---------------------------------------------------"
-	@rm -f -r $(JTREG_TEST_OUTPUT_DIR)
-	@mkdir -p $(JTREG_TEST_OUTPUT_DIR)
-	@mkdir -p $(JTREG_TEST_WORK_DIR)
-	@mkdir -p $(JTREG_TEST_WORK_DIR)/scratch
-	@mkdir -p $(JTREG_TEST_REPORT_DIR)
-	@mkdir -p $(JTREG_TEST_TEMP_DIR)
-	@echo "Testing $@"
-	@echo "Using JAVA_HOME=$(JAVA_HOME)"
-	@echo "Using JAVA_ARGS=$(JAVA_ARGS)"
-	@if [ "`$(JTREG) -help 2>&1 | fgrep -- -vmoption`" != "" ] ; then \
-	  echo "Assume we are using jtreg 3.2.2_01 or newer"; \
-	  echo "$(JTREG) $(JTREG_322_OPTIONS)"; \
-	  $(JTREG) $(JTREG_322_OPTIONS) 2>&1 | tee $(JTREG_TEMP_OUTPUT) ; \
-	else \
-	  echo "Assume we are using jtreg 2.1.6"; \
-	  echo "$(JTREG) $(JTREG_216_OPTIONS)"; \
-	  $(JTREG) $(JTREG_216_OPTIONS) 2>&1 | tee $(JTREG_TEMP_OUTPUT) ; \
-	fi
-	@echo "---------------------------------------------------"
-	@echo "Extracting passed and failed counts from jtreg output"
-	@tail -10 $(JTREG_TEMP_OUTPUT) | fgrep -i 'results:' | \
-	       tail -1 | tee $(JTREG_TEMP_RESULTS)
-	@sed -e 's@.*\ passed:\ \([1-9][0-9]*\).*@\1@' $(JTREG_TEMP_RESULTS) \
-	       > $(JTREG_TEMP_PASSED)
-	@if [ "`cat $(JTREG_TEMP_PASSED)`" = "" ] ; then \
-	  echo "ERROR: No passed indication in results"; \
-	  expr `cat $(JTREG_FAILED)` '+' 1 > $(JTREG_FAILED); \
-	elif [ `cat $(JTREG_TEMP_PASSED)` -le 0 ] ; then \
-	  echo "ERROR: Passed count appears to be 0"; \
-	  expr `cat $(JTREG_FAILED)` '+' 1 > $(JTREG_FAILED); \
-	elif [ "`fgrep -i failed $(JTREG_TEMP_RESULTS)`" = "" ] ; then \
-	  echo "No indication anything failed"; \
-	  expr `cat $(JTREG_PASSED)` '+' `cat $(JTREG_TEMP_PASSED)` \
-		> $(JTREG_PASSED); \
-	else \
-	  sed -e 's@.*\ failed:\ \([1-9][0-9]*\).*@\1@' $(JTREG_TEMP_FAILED) \
-		> $(JTREG_TEMP_FAILED); \
-	  if [ "`cat $(JTREG_TEMP_FAILED)`" = "" ] ; then \
-	    echo "ERROR: Failed pattern but no failed count in results"; \
-	    expr `cat $(JTREG_FAILED)` '+' 1 > $(JTREG_FAILED); \
-	  elif [ `cat $(JTREG_TEMP_FAILED)` -le 0 ] ; then \
-	    echo "ERROR: Failed count is 0, did something failed or not?"; \
-	    expr `cat $(JTREG_FAILED)` '+' 1 > $(JTREG_FAILED); \
-	  else \
-	    expr `cat $(JTREG_FAILED)` '+' `cat $(JTREG_TEMP_FAILED)` \
-		  > $(JTREG_FAILED); \
-	  fi; \
-	fi
-	@echo "---------------------------------------------------"
-	@echo "Summary: "
-	@if [ -f $(JTREG_TEST_SUMMARY) ] ; then \
-	  cat $(JTREG_TEST_SUMMARY) ; \
-	else \
-	  echo "ERROR: Missing $(JTREG_TEST_SUMMARY)"; \
-	fi
-	@echo "---------------------------------------------------"
+# Bundle up the results
+$(JPRT_ARCHIVE_BUNDLE): FRC
+	@rm -f $@
+	@mkdir -p $(@D)
+	( cd $(JTREG_OUTPUT_DIR) && zip -q -r $@ . )
 
 # Cleanup
 clean:
-	rm -f -r $(JTREG_ALL_OUTPUT_DIR)
+	rm -f -r $(JTREG_OUTPUT_DIR)
 	rm -f $(JPRT_ARCHIVE_BUNDLE)
 
+# Used to force a target rules to run
 FRC:
 
+# Phony targets (e.g. these are not filenames)
+.PHONY: all tests clean check
+
--- a/j2se/test/com/sun/javadoc/AccessAsciiArt/AccessAsciiArt.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/AccessAsciiArt/AccessAsciiArt.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)AccessAsciiArt.java	1.10 07/05/05 
+ * @test 
  * @bug 4706779 4956908
  * @summary  Add text equivalent of class tree ASCII art for accessibility
  * @author dkramer
--- a/j2se/test/com/sun/javadoc/JavascriptWinTitle/JavascriptWinTitle.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/JavascriptWinTitle/JavascriptWinTitle.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)JavascriptWinTitle.java	1.8 07/05/05
+ * @test
  * @bug 4645058 4747738 4855054
  * @summary  Javascript IE load error when linked by -linkoffline
  *           Window title shouldn't change when loading left frames (javascript)
--- a/j2se/test/com/sun/javadoc/MetaTag/MetaTag.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/MetaTag/MetaTag.java	Fri Aug 31 00:44:13 2007 +0000
@@ -28,7 +28,7 @@
 import com.sun.tools.doclets.internal.toolkit.Configuration;
 
 /*
- * @test     @(#)MetaTag.java	1.13 07/05/05
+ * @test
  * @bug      4034096 4764726 6235799
  * @summary  Add support for HTML keywords via META tag for 
  *           class and member names to improve API search
--- a/j2se/test/com/sun/javadoc/PackagesHeader/PackagesHeader.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/PackagesHeader/PackagesHeader.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)PackagesHeader.java	1.7 07/05/05
+ * @test
  * @bug      4766385
  * @summary  Test that the header option for upper left frame
  *           is present for three sets of options: (1) -header, 
--- a/j2se/test/com/sun/javadoc/_template/Template.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/_template/Template.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * test     @(#)Template.java	1.6 07/05/05
+ * test
  * @bug      0000000
  * @summary  <DESC>
  * @author   jamieh
--- a/j2se/test/com/sun/javadoc/_template/TemplateComplete.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/_template/TemplateComplete.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * test     @(#)TemplateComplete.java	1.6 07/05/05
+ * test
  * @bug      0000000
  * @summary  <DESC>
  * @author   jamieh
--- a/j2se/test/com/sun/javadoc/dupThrowsTags/TestDupThrowsTags.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/dupThrowsTags/TestDupThrowsTags.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestDupThrowsTags.java	1.6 07/05/05
+ * @test
  * @bug 4525364
  * @summary Determine if duplicate throws tags can be used.
  * @author jamieh
--- a/j2se/test/com/sun/javadoc/testAbsLinkPath/TestAbsLinkPath.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testAbsLinkPath/TestAbsLinkPath.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestAbsLinkPath.java	1.4 07/05/05
+ * @test
  * @bug 4640745
  * @summary This test verifys that the -link option handles absolute paths.
  * @author jamieh
--- a/j2se/test/com/sun/javadoc/testAnnotationTypes/TestAnnotationTypes.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testAnnotationTypes/TestAnnotationTypes.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestAnnotationTypes.java	1.4 07/05/05
+ * @test
  * @bug      4973609
  * @summary  Make sure that annotation types with 0 members does not have
  *           extra HR tags.
--- a/j2se/test/com/sun/javadoc/testBackSlashInLink/TestBackSlashInLink.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testBackSlashInLink/TestBackSlashInLink.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestBackSlashInLink.java	1.4 07/05/05
+ * @test
  * @bug 4511110
  * @summary Test to make sure that the link to source documentation
  * has a forward slash.  It would be wrong to use a back slash.
--- a/j2se/test/com/sun/javadoc/testBadSourceFile/TestBadSourceFile.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testBadSourceFile/TestBadSourceFile.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestBadSourceFile.java	1.4 07/05/05
+ * @test
  * @bug      4835749
  * @summary  Make sure exception is not thrown if there is a bad source
  *           file in the same directory as the file being documented.
--- a/j2se/test/com/sun/javadoc/testBaseClass/TestBaseClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testBaseClass/TestBaseClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestBaseClass.java	1.4 07/05/05
+ * @test
  * @bug 4197513
  * @summary Javadoc does not process base class.
  * @author jamieh
--- a/j2se/test/com/sun/javadoc/testBreakIterator/TestBreakIterator.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testBreakIterator/TestBreakIterator.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestBreakIterator.java	1.4 07/05/05
+ * @test
  * @bug 4165985
  * @summary Determine the end of the first sentence using BreakIterator.
  * If the first sentence of "method" is parsed correctly, the test passes.
--- a/j2se/test/com/sun/javadoc/testCRLineSeparator/TestCRLineSeparator.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testCRLineSeparator/TestCRLineSeparator.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestCRLineSeparator.java	1.4 07/05/05
+ * @test
  * @bug      4979486
  * @summary  Make sure tool parses CR line separators properly. 
  * @author   jamieh
--- a/j2se/test/com/sun/javadoc/testClassCrossReferences/TestClassCrossReferences.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testClassCrossReferences/TestClassCrossReferences.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestClassCrossReferences.java	1.6 07/05/05
+ * @test
  * @bug 4652655 4857717
  * @summary This test verifies that class cross references work properly.
  * @author jamieh
--- a/j2se/test/com/sun/javadoc/testClassTree/TestClassTree.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testClassTree/TestClassTree.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestClassTree.java	1.6 07/05/05
+ * @test
  * @bug      4632553 4973607
  * @summary  No need to include type name (class, interface, etc.) before
  *           every single type in class tree.
--- a/j2se/test/com/sun/javadoc/testCmndLineClass/TestCmndLineClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testCmndLineClass/TestCmndLineClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestCmndLineClass.java	1.6 07/05/05
+ * @test
  * @bug 4506980
  * @summary Test to make sure that there is no difference in the output
  * when specifying packages on the command line and specifying individual
--- a/j2se/test/com/sun/javadoc/testConstantValuesPage/TestConstantValuesPage.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testConstantValuesPage/TestConstantValuesPage.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestConstantValuesPage.java	1.4 07/05/05
+ * @test
  * @bug 4681599
  * @summary Test to make sure that constant values page does not get
  * generated when doclet has nothing to document.
--- a/j2se/test/com/sun/javadoc/testConstructorIndent/TestConstructorIndent.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testConstructorIndent/TestConstructorIndent.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestConstructorIndent.java	1.5 07/05/05
+ * @test
  * @bug      4904037
  * @summary  The constructor comments should be surrounded by 
  *           <dl></dl>.  Check for this in the output.
--- a/j2se/test/com/sun/javadoc/testDeprecatedDocs/TestDeprecatedDocs.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testDeprecatedDocs/TestDeprecatedDocs.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestDeprecatedDocs.java	1.5 07/05/05
+ * @test
  * @bug      4927552
  * @summary  <DESC>
  * @author   jamieh
--- a/j2se/test/com/sun/javadoc/testDocErrorReporter/TestDocErrorReporter.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testDocErrorReporter/TestDocErrorReporter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestDocErrorReporter.java	1.4 07/05/05
+ * @test
  * @bug      4927928
  * @summary  Make sure that option validation errors and sent to the 
  *           DocErrorReporter.
--- a/j2se/test/com/sun/javadoc/testDocFileDir/TestDocFileDir.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testDocFileDir/TestDocFileDir.java	Fri Aug 31 00:44:13 2007 +0000
@@ -24,7 +24,7 @@
 import java.io.File;
 
 /*
- * @test   @(#)TestDocFileDir.java	1.8 07/05/05
+ * @test
  * @bug 4258405 4973606
  * @summary This test verifies that the doc-file directory does not
  *          get overwritten when the sourcepath is equal to the destination 
--- a/j2se/test/com/sun/javadoc/testDocRootInlineTag/TestDocRootInlineTag.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testDocRootInlineTag/TestDocRootInlineTag.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestDocRootInlineTag.java	1.9 07/05/05
+ * @test
  * @bug 4369014 4851991
  * @summary Determine if the docRoot inline tag works properly.
  * If docRoot performs as documented, the test passes.
--- a/j2se/test/com/sun/javadoc/testDupParamWarn/TestDupParamWarn.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testDupParamWarn/TestDupParamWarn.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestDupParamWarn.java	1.7 07/05/05
+ * @test
  * @bug 4745855
  * @summary Test to ensure that the doclet does not print out bad
  * warning messages about duplicate param tags.
--- a/j2se/test/com/sun/javadoc/testEmptyClass/TestEmptyClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testEmptyClass/TestEmptyClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestEmptyClass.java	1.11 07/05/05
+ * @test
  * @bug 4483401 4483407 4483409 4483413 4494343
  * @summary Test to make sure that Javadoc behaves properly when
  * run on a completely empty class (no comments or members).
--- a/j2se/test/com/sun/javadoc/testEnclosingClass/TestEnclosingClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testEnclosingClass/TestEnclosingClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestEnclosingClass.java	1.4 07/05/05
+ * @test
  * @bug      5008230
  * @summary  Check the outer class when documenting enclosing class/interface. 
  * @author   jamieh
--- a/j2se/test/com/sun/javadoc/testEncoding/TestEncoding.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testEncoding/TestEncoding.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestEncoding.java	1.4 07/05/05
+ * @test
  * @bug 4661481
  * @summary This test determines if the value of the -encoding option is
  * properly passed from Javadoc to the source file parser.
--- a/j2se/test/com/sun/javadoc/testExternalOverridenMethod/TestExternalOverridenMethod.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testExternalOverridenMethod/TestExternalOverridenMethod.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestExternalOverridenMethod.java	1.6 07/05/05
+ * @test
  * @bug 4857717
  * @summary Test to make sure that externally overriden and implemented methods
  * are documented properly.  The method should still include "implements" or
--- a/j2se/test/com/sun/javadoc/testGroupOption/TestGroupOption.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testGroupOption/TestGroupOption.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestGroupOption.java	1.4 07/05/05
+ * @test
  * @bug      4924383
  * @summary  Test to make sure the -group option does not cause a bad warning
  *           to be printed.
--- a/j2se/test/com/sun/javadoc/testHeadings/TestHeadings.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testHeadings/TestHeadings.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestHeadings.java	1.7 07/05/05
+ * @test
  * @bug      4905786 6259611
  * @summary  Make sure that headings use the TH tag instead of the TD tag.
  * @author   jamieh
--- a/j2se/test/com/sun/javadoc/testHelpOption/TestHelpOption.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testHelpOption/TestHelpOption.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestHelpOption.java	1.7 07/05/05
+ * @test
  * @bug      4934778 4777599
  * @summary  Make sure that the -help option works properly.  Make sure
  *           the help link appears in the documentation.
--- a/j2se/test/com/sun/javadoc/testHiddenMembers/TestHiddenMembers.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testHiddenMembers/TestHiddenMembers.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestHiddenMembers.java	1.4 07/05/05
+ * @test
  * @bug 4492178
  * @summary Test to make sure that hidden overriden members are not
  * documented as inherited.
--- a/j2se/test/com/sun/javadoc/testHref/TestHref.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testHref/TestHref.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestHref.java	1.7 07/05/05
+ * @test
  * @bug      4663254
  * @summary  Verify that spaces do not appear in hrefs and anchors.
  * @author   jamieh
--- a/j2se/test/com/sun/javadoc/testHrefInDocComment/TestHrefInDocComment.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testHrefInDocComment/TestHrefInDocComment.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestHrefInDocComment.java	1.4 07/05/05
+ * @test
  * @bug 4638015
  * @summary Determine if Hrefs are processed properly when they
  * appear in doc comments.
--- a/j2se/test/com/sun/javadoc/testHtmlComments/TestHtmlComments.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testHtmlComments/TestHtmlComments.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestHtmlComments.java	1.4 07/05/05
+ * @test
  * @bug      4904038
  * @summary  The field detail comment should not show up in the output if there 
  *           are no fields to document.
--- a/j2se/test/com/sun/javadoc/testIndex/TestIndex.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testIndex/TestIndex.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestIndex.java	1.8 07/05/05
+ * @test
  * @bug      4852280 4517115 4973608 4994589
  * @summary  Perform tests on index.html file.
  *           Also test that index-all.html has the appropriate output.
--- a/j2se/test/com/sun/javadoc/testInlineLinkLabel/TestInlineLinkLabel.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testInlineLinkLabel/TestInlineLinkLabel.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestInlineLinkLabel.java	1.4 07/05/05
+ * @test
  * @bug 4524136
  * @summary Test to make sure label is used for inline links.
  * @author jamieh
--- a/j2se/test/com/sun/javadoc/testInterface/TestInterface.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testInterface/TestInterface.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestInterface.java	1.11 07/05/05
+ * @test
  * @bug      4682448 4947464 5029946
  * @summary  Verify that the public modifier does not show up in the 
  *           documentation for public methods, as recommended by the JLS.
--- a/j2se/test/com/sun/javadoc/testJavascript/TestJavascript.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testJavascript/TestJavascript.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestJavascript.java	1.6 07/05/05
+ * @test
  * @bug      4665566 4855876
  * @summary  Verify that the output has the right javascript.
  * @author   jamieh
--- a/j2se/test/com/sun/javadoc/testLeadingSpaces/LeadingSpaces.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testLeadingSpaces/LeadingSpaces.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)LeadingSpaces.java	1.7 07/05/05
+ * @test
  * @bug 4232882
  * @summary Javadoc strips all of the leading spaces when the comment
  *    does not begin with a star.  This RFE allows users to
--- a/j2se/test/com/sun/javadoc/testLegacyTaglet/TestLegacyTaglet.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testLegacyTaglet/TestLegacyTaglet.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestLegacyTaglet.java	1.4 07/05/05
+ * @test
  * @bug 4638723
  * @summary Test to ensure that the refactored version of the standard
  * doclet still works with Taglets that implement the 1.4.0 interface.
--- a/j2se/test/com/sun/javadoc/testLinkOption/TestBadLinkOption.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testLinkOption/TestBadLinkOption.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestBadLinkOption.java	1.4 07/05/05
+ * @test
  * @bug 4625883
  * @summary Make sure that bad -link arguments trigger warnings.
  * @author jamieh
--- a/j2se/test/com/sun/javadoc/testLinkOption/TestLinkOption.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testLinkOption/TestLinkOption.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestLinkOption.java	1.10 07/05/05
+ * @test
  * @bug 4720957 5020118
  * @summary Test to make sure that -link and -linkoffline link to
  * right files.
--- a/j2se/test/com/sun/javadoc/testLinkOption/TestNewLineInLink.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testLinkOption/TestNewLineInLink.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestNewLineInLink.java	1.7 07/05/05
+ * @test
  * @bug 4739870
  * @summary Make sure that a new line may act as a separator between
  * link and label.
--- a/j2se/test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestLinkTaglet.java	1.7 07/05/05
+ * @test
  * @bug      4732864 6280605
  * @summary  Make sure that you can link from one member to another using
  *           non-qualified name.
--- a/j2se/test/com/sun/javadoc/testLinkToSerialForm/TestLinkToSerialForm.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testLinkToSerialForm/TestLinkToSerialForm.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestLinkToSerialForm.java	1.4 07/05/05
+ * @test
  * @bug 4521661
  * @summary Test to make sure that there is a link with a proper anchor
  * from a serializable class to serialized-form.html.
--- a/j2se/test/com/sun/javadoc/testMemberInheritence/TestMemberInheritence.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testMemberInheritence/TestMemberInheritence.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestMemberInheritence.java	1.11 07/05/05
+ * @test
  * @bug 4638588 4635809 6256068 6270645
  * @summary Test to make sure that members are inherited properly in the Javadoc.
  *          Verify that inheritence labels are correct.
--- a/j2se/test/com/sun/javadoc/testMemberSummary/TestMemberSummary.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testMemberSummary/TestMemberSummary.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestMemberSummary.java	1.5 07/05/05
+ * @test
  * @bug      4951228 6290760
  * @summary  Test the case where the overriden method returns a different
  *           type than the method in the child class.  Make sure the 
--- a/j2se/test/com/sun/javadoc/testModifier/TestModifier.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testModifier/TestModifier.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestModifier.java	1.4 07/05/05
+ * @test
  * @bug 4210388
  * @summary Javadoc declares interfaces to be "abstract".
  * @author jamieh
--- a/j2se/test/com/sun/javadoc/testNavagation/TestNavagation.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testNavagation/TestNavagation.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestNavagation.java	1.5 07/05/05
+ * @test
  * @bug      4131628 4664607
  * @summary  Make sure the Next/Prev Class links iterate through all types.
  *           Make sure the navagation is 2 columns, not 3.
--- a/j2se/test/com/sun/javadoc/testNestedInlineTag/TestNestedInlineTag.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testNestedInlineTag/TestNestedInlineTag.java	Fri Aug 31 00:44:13 2007 +0000
@@ -23,7 +23,7 @@
 
 /**
  * This should be green, underlined and bold (Class): {@underline {@bold {@green My test}}} .
- * @test   @(#)TestNestedInlineTag.java	1.6 07/05/05
+ * @test
  * @bug 0000000
  * @summary Test for nested inline tags. *
  * @author jamieh
--- a/j2se/test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestNewLanguageFeatures.java	1.48 07/05/05
+ * @test
  * @bug      4789689 4905985 4927164 4827184 4993906 5004549
  * @summary  Run Javadoc on a set of source files that demonstrate new 
  *           language features.  Check the output to ensure that the new 
--- a/j2se/test/com/sun/javadoc/testNoPackagesFile/TestNoPackagesFile.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testNoPackagesFile/TestNoPackagesFile.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestNoPackagesFile.java	1.4 07/05/05
+ * @test
  * @bug      4475679
  * @summary  Verify that packages.html is no longer generated since it is no
  *           longer used.
--- a/j2se/test/com/sun/javadoc/testNotifications/TestNotifications.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testNotifications/TestNotifications.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestNotifications.java	1.7 07/05/05
+ * @test
  * @bug      4657239 4775743
  * @summary  Make sure a notification is printed when an output directory must
  *           be created.
--- a/j2se/test/com/sun/javadoc/testOverridenMethods/TestMultiInheritence.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testOverridenMethods/TestMultiInheritence.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestMultiInheritence.java	1.7 07/05/05
+ * @test
  * @bug      4933335
  * @summary  Make sure that all inherited methods from multiple extended 
  *           interfaces are documented
--- a/j2se/test/com/sun/javadoc/testOverridenMethods/TestOverridenMethodDocCopy.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testOverridenMethods/TestOverridenMethodDocCopy.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestOverridenMethodDocCopy.java	1.4 07/05/05
+ * @test
  * @bug      4368820
  * @summary  Inherited comment should link directly to member, not just
  *           class
--- a/j2se/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethods.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethods.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestOverridenPrivateMethods.java	1.4 07/05/05
+ * @test
  * @bug 4634891
  * @summary Determine if overriden methods are properly documented when
  * -protected (default) visibility flag is used.
--- a/j2se/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestOverridenPrivateMethodsWithPackageFlag.java	1.4 07/05/05
+ * @test
  * @bug 4634891
  * @summary Determine if overriden methods are properly documented when
  * -protected (default) visibility flag is used.
--- a/j2se/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPrivateFlag.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPrivateFlag.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestOverridenPrivateMethodsWithPrivateFlag.java	1.4 07/05/05
+ * @test
  * @bug 4634891
  * @summary Determine if overriden methods are properly documented when
  * -protected (default) visibility flag is used.
--- a/j2se/test/com/sun/javadoc/testPackagePage/TestPackagePage.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testPackagePage/TestPackagePage.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestPackagePage.java	1.5 07/05/05
+ * @test
  * @bug 4492643 4689286
  * @summary Test that a package page is properly generated when a .java file
  * passed to Javadoc.  Also test that the proper package links are generated 
--- a/j2se/test/com/sun/javadoc/testParamTaglet/TestParamTaglet.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testParamTaglet/TestParamTaglet.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestParamTaglet.java	1.5 07/05/05
+ * @test
  * @bug      4802275 4967243
  * @summary  Make sure param tags are still printed even though they do not
  *           match up with a real parameters.
--- a/j2se/test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestPrivateClasses.java	1.13 07/05/05
+ * @test
  * @bug      4780441 4874845 4978816
  * @summary  Make sure that when the -private flag is not used, members
  *           inherited from package private class are documented in the child.
--- a/j2se/test/com/sun/javadoc/testRecurseSubPackages/TestRecurseSubPackages.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testRecurseSubPackages/TestRecurseSubPackages.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestRecurseSubPackages.java	1.4 07/05/05
+ * @test
  * @bug 4074234
  * @summary Make Javadoc capable of traversing/recursing all of given subpackages.
  * @author jamieh
--- a/j2se/test/com/sun/javadoc/testRelativeLinks/TestRelativeLinks.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testRelativeLinks/TestRelativeLinks.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestRelativeLinks.java	1.8 07/05/05
+ * @test
  * @bug      4460354
  * @summary  Test to make sure that relative paths are redirected in the 
  *           output so that they are not broken.
--- a/j2se/test/com/sun/javadoc/testReturnTag/TestReturnTag.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testReturnTag/TestReturnTag.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestReturnTag.java	1.4 07/05/05
+ * @test
  * @bug      4490068
  * @summary  Warn when a return tag is used on a method without a return type.
  * @author   jamieh
--- a/j2se/test/com/sun/javadoc/testSerialVersionUID/TestSerialVersionUID.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testSerialVersionUID/TestSerialVersionUID.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestSerialVersionUID.java	1.6 07/05/05
+ * @test
  * @bug      4525039
  * @summary  Test to make sure that the serialVersionUID is properly
  * documented in the serialized form.
--- a/j2se/test/com/sun/javadoc/testSerializedForm/TestSerializedForm.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testSerializedForm/TestSerializedForm.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,7 +25,7 @@
 import java.io.*;
 
 /*
- * @test   @(#)TestSerializedForm.java	1.9 07/05/05
+ * @test
  * @bug 4341304 4485668 4966728
  * @summary Test that methods readResolve and writeReplace show
  * up in serialized-form.html the same way that readObject and writeObject do.
--- a/j2se/test/com/sun/javadoc/testSimpleTag/TestSimpleTag.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testSimpleTag/TestSimpleTag.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestSimpleTag.java	1.9 07/05/05
+ * @test
  * @bug 4695326 4750173 4920381
  * @summary Test the declarartion of simple tags using -tag. Verify that
  * "-tag name" is a shortcut for "-tag name:a:Name:".  Also verity that
--- a/j2se/test/com/sun/javadoc/testSimpleTagExclude/TestSimpleTagExclude.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testSimpleTagExclude/TestSimpleTagExclude.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestSimpleTagExclude.java	1.4 07/05/05
+ * @test
  * @bug 4628181
  * @summary Test the parsing of the -tag option.  The user should be able to
  * exclude a simple tag by using -tag tagname:X
--- a/j2se/test/com/sun/javadoc/testStylesheet/TestStylesheet.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testStylesheet/TestStylesheet.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestStylesheet.java	1.4 07/05/05
+ * @test
  * @bug      4494033
  * @summary  Run tests on doclet stylesheet.
  * @author   jamieh
--- a/j2se/test/com/sun/javadoc/testSummaryHeading/TestSummaryHeading.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testSummaryHeading/TestSummaryHeading.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestSummaryHeading.java	1.4 07/05/05
+ * @test
  * @bug      4904036
  * @summary  Document a class that does not have any methods to document.  The
  *           "Method Summary" heading should still show up since the class
--- a/j2se/test/com/sun/javadoc/testSuperclassInSerialForm/TestSuperClassInSerialForm.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testSuperclassInSerialForm/TestSuperClassInSerialForm.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestSuperClassInSerialForm.java	1.4 07/05/05
+ * @test
  * @bug 4671694
  * @summary Test to make sure link to superclass is generated for
  * each class in serialized form page.
--- a/j2se/test/com/sun/javadoc/testSupplementary/TestSupplementary.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testSupplementary/TestSupplementary.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test  @(#)TestSupplementary.java	1.6 07/05/05 
+ * @test 
  * @bug 4914724
  * @summary Test to make sure that "see" tag and "serialField" tag handle supplementary
  *    characters correctly.  This test case needs to be run in en_US locale.
--- a/j2se/test/com/sun/javadoc/testTagHolderMethod/TestTagHolderMethod.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testTagHolderMethod/TestTagHolderMethod.java	Fri Aug 31 00:44:13 2007 +0000
@@ -24,7 +24,7 @@
 import com.sun.javadoc.*;
 
 /*
- * @test   @(#)TestTagHolderMethod.java	1.7 07/05/05
+ * @test
  * @bug 4706525
  * @summary Determine if the new Tag.holder() method works properly.
  * @author jamieh
--- a/j2se/test/com/sun/javadoc/testTagInheritence/TestTagInheritence.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testTagInheritence/TestTagInheritence.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TestTagInheritence.java	1.7 07/05/05
+ * @test
  * @bug     4496223 4496270 4618686 4720974 4812240 6253614 6253604
  * @summary <DESC>
  * @author  jamieh
--- a/j2se/test/com/sun/javadoc/testTagMisuse/TestTagMisuse.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testTagMisuse/TestTagMisuse.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test   @(#)TestTagMisuse.java	1.6 07/05/05
+ * @test
  * @bug 0000000
  * @summary Determine if proper warning messages are printed when know.
  * @author jamieh
--- a/j2se/test/com/sun/javadoc/testTaglets/TestTaglets.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testTaglets/TestTaglets.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestTaglets.java	1.5 07/05/05
+ * @test
  * @bug      4654308 4767038
  * @summary  Use a Taglet and include some inline tags such as {@link}.  The 
  *           inline tags should be interpreted properly.  
--- a/j2se/test/com/sun/javadoc/testThrowsHead/TestThrowsHead.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testThrowsHead/TestThrowsHead.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test   @(#)TestThrowsHead.java	1.4 07/05/05
+ * @test
  * @bug 4530727
  * @summary When an exception is declared in the method signature but
  * not documented with a throws tag, we generate a link to it in the
--- a/j2se/test/com/sun/javadoc/testThrowsInheritence/TestThrowsTagInheritence.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testThrowsInheritence/TestThrowsTagInheritence.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestThrowsTagInheritence.java	1.4 07/05/05
+ * @test
  * @bug 4684827 4633969
  * @summary This test verifies that throws tags in implementing class
  * override the throws tags in interface. This test also verifies that throws tags are inherited properly
--- a/j2se/test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestThrowsTag.java	1.5 07/05/05
+ * @test
  * @bug      4985072
  * @summary  Test to make sure that exceptions always show up in the
  *           correct order.
--- a/j2se/test/com/sun/javadoc/testTitleInHref/TestTitleInHref.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testTitleInHref/TestTitleInHref.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestTitleInHref.java	1.5 07/05/05
+ * @test
  * @bug 4714257
  * @summary Test to make sure that the title attribute shows up in links.
  * @author jamieh
--- a/j2se/test/com/sun/javadoc/testTopOption/TestTopOption.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testTopOption/TestTopOption.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestTopOption.java	1.6 07/05/05
+ * @test
  * @bug      6227616
  * @summary  Test the new -top option.
  * @author   jamieh
--- a/j2se/test/com/sun/javadoc/testTypeParams/TestTypeParameters.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testTypeParams/TestTypeParameters.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestTypeParameters.java	1.8 07/05/05
+ * @test
  * @bug      4927167 4974929
  * @summary  When the type parameters are more than 10 characters in length,
  *           make sure there is a line break between type params and return type
--- a/j2se/test/com/sun/javadoc/testUnnamedPackage/TestUnnamedPackage.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testUnnamedPackage/TestUnnamedPackage.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestUnnamedPackage.java	1.7 07/05/05
+ * @test
  * @bug      4904075 4774450 5015144
  * @summary  Reference unnamed package as "Unnamed", not empty string.
  *           Generate a package summary for the unnamed package.
--- a/j2se/test/com/sun/javadoc/testUseOption/TestUseOption.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testUseOption/TestUseOption.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestUseOption.java	1.6 07/05/05
+ * @test
  * @bug 4496290 4985072
  * @summary A simple test to determine if -use works.
  * @author jamieh
--- a/j2se/test/com/sun/javadoc/testValueTag/TestValueTag.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testValueTag/TestValueTag.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestValueTag.java	1.6 07/05/05
+ * @test
  * @bug      4764045
  * @summary  This test ensures that the value tag works in all
  * use cases. The explainations for each test case are written below.
--- a/j2se/test/com/sun/javadoc/testWarnBadParamNames/TestWarnBadParamNames.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testWarnBadParamNames/TestWarnBadParamNames.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test   @(#)TestWarnBadParamNames.java	1.4 07/05/05
+ * @test
  * @bug 4693440
  * @summary Test to make sure that warning is printed when bad paramenter
  * name is used with param.
--- a/j2se/test/com/sun/javadoc/testWarnings/TestWarnings.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/javadoc/testWarnings/TestWarnings.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test     @(#)TestWarnings.java	1.10 07/05/05
+ * @test
  * @bug      4515705 4804296 4702454 4697036 
  * @summary  Make sure that first sentence warning only appears once.
  *           Make sure that only warnings/errors are printed when quiet is used.
--- a/j2se/test/com/sun/management/UnixOperatingSystemMXBean/GetMaxFileDescriptorCount.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/management/UnixOperatingSystemMXBean/GetMaxFileDescriptorCount.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
 #
 
 #
-# @test    @(#)GetMaxFileDescriptorCount.sh	1.6 00:41:20
+# @test    @(#)GetMaxFileDescriptorCount.sh	1.6 01:41:20
 # @bug     4858522
 # @summary 
 # @author  Steve Bohne
--- a/j2se/test/com/sun/management/UnixOperatingSystemMXBean/GetOpenFileDescriptorCount.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/com/sun/management/UnixOperatingSystemMXBean/GetOpenFileDescriptorCount.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
 #
 
 #
-# @test    @(#)GetOpenFileDescriptorCount.sh	1.6 00:41:20
+# @test    @(#)GetOpenFileDescriptorCount.sh	1.6 01:41:20
 # @bug     4858522
 # @summary 
 # @author  Steve Bohne
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/java/awt/Mixing/LWPopupMenu.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,432 @@
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* 
+  @test @(#)LWPopupMenu.java	1.2 07/07/26
+  @bug 4811096
+  @summary Tests whether a LW menu correctly overlaps a HW button
+  @author anthony.petrov@...: area=awt.mixing
+  @library ../regtesthelpers
+  @build Util
+  @run main LWPopupMenu
+*/
+
+
+/**
+ * LWPopupMenu.java
+ *
+ * summary:  Tests whether a LW menu correctly overlaps a HW button
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import test.java.awt.regtesthelpers.Util;
+
+
+
+public class LWPopupMenu
+{
+
+    //*** test-writer defined static variables go here ***
+
+    static volatile boolean failed = true;
+
+    private static void init() 
+    {
+        //*** Create instructions for the user here ***
+      
+        String[] instructions = 
+        {
+            "This is an AUTOMATIC test, simply wait until it is done.",
+            "The result (passed or failed) will be shown in the",
+            "message window below."
+        };
+        Sysout.createDialog( );
+        Sysout.printInstructions( instructions );
+
+        JFrame f = new JFrame("LW menu test");
+
+        JMenuBar menubar = new JMenuBar();
+        f.setJMenuBar(menubar);
+        
+        // Create lightweight-enabled menu
+        JMenu lmenu = new JMenu("Lite Menu");
+        lmenu.add("Salad");
+        lmenu.add( new AbstractAction("Fruit Plate") {
+            public void actionPerformed(ActionEvent e) {
+                failed = false;
+            }
+        });
+        lmenu.add("Water");
+        menubar.add(lmenu);
+        
+        // Create Heavyweight AWT Button
+        Button heavy = new Button("  Heavyweight Button  ");
+
+        // Add heavy button to box
+        Box box = Box.createVerticalBox();
+        box.add(Box.createVerticalStrut(20));
+        box.add(heavy);
+        box.add(Box.createVerticalStrut(20));
+        
+        f.getContentPane().add("Center", box);
+        
+        f.pack();
+        f.show();
+
+        Robot robot = Util.createRobot();
+        robot.setAutoDelay(20);
+
+        Util.waitForIdle(robot);
+
+        // Activate the menu
+        Point lLoc = lmenu.getLocationOnScreen();
+        robot.mouseMove(lLoc.x + 5, lLoc.y + 5);
+
+        robot.mousePress(InputEvent.BUTTON1_MASK);
+        robot.mouseRelease(InputEvent.BUTTON1_MASK);
+        Util.waitForIdle(robot);
+
+
+        // Click on the "Fruit Plate" menu item.
+        //    It's assumed that the menu item is located 
+        //    above the heavyweight button.
+        Point bLoc = heavy.getLocationOnScreen();
+        robot.mouseMove(bLoc.x + 10, bLoc.y + 5);
+        
+        robot.mousePress(InputEvent.BUTTON1_MASK);
+        robot.mouseRelease(InputEvent.BUTTON1_MASK);
+        Util.waitForIdle(robot);
+
+        if (failed) {
+            LWPopupMenu.fail("The LW menu item did not received the click.");
+        } else {
+            LWPopupMenu.pass();
+        }
+    }//End  init()
+
+
+
+    /*****************************************************
+     * Standard Test Machinery Section
+     * DO NOT modify anything in this section -- it's a 
+     * standard chunk of code which has all of the
+     * synchronisation necessary for the test harness.
+     * By keeping it the same in all tests, it is easier
+     * to read and understand someone else's test, as
+     * well as insuring that all tests behave correctly
+     * with the test harness.
+     * There is a section following this for test-
+     * classes
+     ******************************************************/
+    private static boolean theTestPassed = false;
+    private static boolean testGeneratedInterrupt = false;
+    private static String failureMessage = "";
+
+    private static Thread mainThread = null;
+
+    private static int sleepTime = 300000;
+
+    // Not sure about what happens if multiple of this test are
+    //  instantiated in the same VM.  Being static (and using
+    //  static vars), it aint gonna work.  Not worrying about
+    //  it for now.
+    public static void main( String args[] ) throws InterruptedException
+    {
+        mainThread = Thread.currentThread();
+        try
+        {
+            init();
+        }
+        catch( TestPassedException e )
+        {
+            //The test passed, so just return from main and harness will
+            // interepret this return as a pass
+            return;
+        }
+        //At this point, neither test pass nor test fail has been
+        // called -- either would have thrown an exception and ended the
+        // test, so we know we have multiple threads.
+
+        //Test involves other threads, so sleep and wait for them to
+        // called pass() or fail()
+        try 
+        {
+            Thread.sleep( sleepTime );
+            //Timed out, so fail the test
+            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
+        } 
+        catch (InterruptedException e) 
+        {
+            //The test harness may have interrupted the test.  If so, rethrow the exception
+            // so that the harness gets it and deals with it.
+            if( ! testGeneratedInterrupt ) throw e;
+
+            //reset flag in case hit this code more than once for some reason (just safety)
+            testGeneratedInterrupt = false;
+
+            if ( theTestPassed == false )
+            {
+                throw new RuntimeException( failureMessage );
+            }
+        }
+      
+    }//main
+
+    public static synchronized void setTimeoutTo( int seconds )
+    {
+        sleepTime = seconds * 1000;
+    }
+   
+    public static synchronized void pass()
+    {
+        Sysout.println( "The test passed." );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //first check if this is executing in main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //Still in the main thread, so set the flag just for kicks,
+            // and throw a test passed exception which will be caught
+            // and end the test.
+            theTestPassed = true;
+            throw new TestPassedException();
+        }
+        theTestPassed = true;
+        testGeneratedInterrupt = true;
+        mainThread.interrupt();
+    }//pass()
+
+    public static synchronized void fail()
+    {
+        //test writer didn't specify why test failed, so give generic
+        fail( "it just plain failed! :-)" );
+    }
+
+    public static synchronized void fail( String whyFailed )
+    {
+        Sysout.println( "The test failed: " + whyFailed );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //check if this called from main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //If main thread, fail now 'cause not sleeping
+            throw new RuntimeException( whyFailed );
+        }
+        theTestPassed = false;
+        testGeneratedInterrupt = true;
+        failureMessage = whyFailed;
+        mainThread.interrupt();
+    }//fail()
+
+}// class LWPopupMenu
+
+//This exception is used to exit from any level of call nesting
+// when it's determined that the test has passed, and immediately
+// end the test.
+class TestPassedException extends RuntimeException
+{
+}
+
+//*********** End Standard Test Machinery Section **********
+
+ 
+//************ Begin classes defined for the test ****************
+
+// if want to make listeners, here is the recommended place for them, then instantiate 
+//  them in init()
+
+/* Example of a class which may be written as part of a test
+class NewClass implements anInterface 
+ {
+   static int newVar = 0;
+   
+   public void eventDispatched(AWTEvent e) 
+    {
+      //Counting events to see if we get enough
+      eventCount++;
+      
+      if( eventCount == 20 )
+       {
+         //got enough events, so pass
+
+         LWPopupMenu.pass();
+       }
+      else if( tries == 20 )
+       {
+         //tried too many times without getting enough events so fail
+
+         LWPopupMenu.fail();
+       }
+      
+    }// eventDispatched()
+
+ }// NewClass class
+
+*/
+
+
+//************** End classes defined for the test *******************
+  
+
+
+
+/****************************************************
+ Standard Test Machinery
+ DO NOT modify anything below -- it's a standard 
+  chunk of code whose purpose is to make user 
+  interaction uniform, and thereby make it simpler
+  to read and understand someone else's test.
+ ****************************************************/
+
+/**
+ This is part of the standard test machinery.
+ It creates a dialog (with the instructions), and is the interface
+  for sending text messages to the user.
+ To print the instructions, send an array of strings to Sysout.createDialog
+  WithInstructions method.  Put one line of instructions per array entry.
+ To display a message for the tester to see, simply call Sysout.println
+  with the string to be displayed.
+ This mimics System.out.println but works within the test harness as well 
+  as standalone.
+ */
+
+class Sysout 
+{ 
+    private static TestDialog dialog;
+
+    public static void createDialogWithInstructions( String[] instructions )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        dialog.printInstructions( instructions );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+   
+    public static void createDialog( )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        String[] defInstr = { "Instructions will appear here. ", "" } ;
+        dialog.printInstructions( defInstr );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+   
+      
+    public static void printInstructions( String[] instructions )
+    {
+        dialog.printInstructions( instructions );
+    }
+
+
+    public static void println( String messageIn )
+    {
+        dialog.displayMessage( messageIn );
+        System.out.println(messageIn);
+    }
+
+}// Sysout  class
+
+/**
+  This is part of the standard test machinery.  It provides a place for the
+   test instructions to be displayed, and a place for interactive messages
+   to the user to be displayed.
+  To have the test instructions displayed, see Sysout.
+  To have a message to the user be displayed, see Sysout.
+  Do not call anything in this dialog directly.
+  */
+class TestDialog extends Dialog
+{
+
+    TextArea instructionsText;
+    TextArea messageText;
+    int maxStringLength = 80;
+   
+    //DO NOT call this directly, go through Sysout
+    public TestDialog( Frame frame, String name ) 
+    {
+        super( frame, name );
+        int scrollBoth = TextArea.SCROLLBARS_BOTH;
+        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
+        add( "North", instructionsText );
+      
+        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
+        add("Center", messageText);
+      
+        pack();
+      
+        setVisible(true);
+    }// TestDialog()
+
+    //DO NOT call this directly, go through Sysout
+    public void printInstructions( String[] instructions )
+    {
+        //Clear out any current instructions
+        instructionsText.setText( "" );
+
+        //Go down array of instruction strings
+
+        String printStr, remainingStr;
+        for( int i=0; i < instructions.length; i++ )
+        { 
+            //chop up each into pieces maxSringLength long
+            remainingStr = instructions[ i ];
+            while( remainingStr.length() > 0 )
+            {
+                //if longer than max then chop off first max chars to print
+                if( remainingStr.length() >= maxStringLength )
+                {
+                    //Try to chop on a word boundary
+                    int posOfSpace = remainingStr.
+                        lastIndexOf( ' ', maxStringLength - 1 );
+               
+                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
+               
+                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
+                    remainingStr = remainingStr.substring( posOfSpace + 1 );
+                }
+                //else just print
+                else 
+                { 
+                    printStr = remainingStr;
+                    remainingStr = "";
+                }
+            
+                instructionsText.append( printStr + "\n" );
+            
+            }// while
+         
+        }// for
+      
+    }//printInstructions()
+
+    //DO NOT call this directly, go through Sysout
+    public void displayMessage( String messageIn )
+    {
+        messageText.append( messageIn + "\n" );
+        System.out.println(messageIn);
+    }  
+   
+}// TestDialog  class    
+  
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/java/awt/Mixing/MixingOnDialog.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,428 @@
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* 
+  @test @(#)MixingOnDialog.java	1.2 07/07/26
+  @bug 4811096
+  @summary Tests whether mixing works on Dialogs
+  @author anthony.petrov@...: area=awt.mixing
+  @library ../regtesthelpers
+  @build Util
+  @run main MixingOnDialog
+*/
+
+
+/**
+ * MixingOnDialog.java
+ *
+ * summary:  Tests whether awt.Button and swing.JButton mix correctly
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import test.java.awt.regtesthelpers.Util;
+
+
+
+public class MixingOnDialog
+{
+    static volatile boolean heavyClicked = false;
+    static volatile boolean lightClicked = false;
+
+    private static void init() 
+    {
+        //*** Create instructions for the user here ***
+      
+        String[] instructions = 
+        {
+            "This is an AUTOMATIC test, simply wait until it is done.",
+            "The result (passed or failed) will be shown in the",
+            "message window below."
+        };
+        Sysout.createDialog( );
+        Sysout.printInstructions( instructions );
+
+
+        // Create components
+        final Dialog d = new Dialog((Frame)null, "Button-JButton mix test");
+        final Button heavy = new Button("  Heavyweight Button  ");
+        final JButton light = new JButton("  LW Button  ");
+
+        // Actions for the buttons add appropriate number to the test sequence
+        heavy.addActionListener(new java.awt.event.ActionListener()
+                {
+                    public void actionPerformed(java.awt.event.ActionEvent e) {
+                        heavyClicked = true;
+                    }
+                }
+                );
+
+        light.addActionListener(new java.awt.event.ActionListener()
+                {
+                    public void actionPerformed(java.awt.event.ActionEvent e) {
+                        lightClicked = true;
+                    }
+                }
+                );
+
+        // Overlap the buttons
+        heavy.setBounds(30, 30, 200, 200);
+        light.setBounds(10, 10, 50, 50);
+        
+        // Put the components into the frame
+        d.setLayout(null);
+        d.add(light);
+        d.add(heavy);
+        d.setBounds(50, 50, 400, 400);
+        d.setVisible(true);
+
+
+        Robot robot = Util.createRobot();
+        robot.setAutoDelay(20);
+        
+        Util.waitForIdle(robot);
+
+        // Move the mouse pointer to the position where both
+        //    buttons overlap
+        Point heavyLoc = heavy.getLocationOnScreen();
+        robot.mouseMove(heavyLoc.x + 5, heavyLoc.y + 5);
+
+        // Now perform the click at this point
+        robot.mousePress(InputEvent.BUTTON1_MASK);
+        robot.mouseRelease(InputEvent.BUTTON1_MASK);
+        Util.waitForIdle(robot);
+
+        // If the buttons are correctly mixed, the test sequence
+        // is equal to the check sequence.
+        if (lightClicked == true) {
+            MixingOnDialog.pass();
+        } else {
+            MixingOnDialog.fail("The lightweight component left behind the heavyweight one.");
+        }
+    }//End  init()
+
+
+
+    /*****************************************************
+     * Standard Test Machinery Section
+     * DO NOT modify anything in this section -- it's a 
+     * standard chunk of code which has all of the
+     * synchronisation necessary for the test harness.
+     * By keeping it the same in all tests, it is easier
+     * to read and understand someone else's test, as
+     * well as insuring that all tests behave correctly
+     * with the test harness.
+     * There is a section following this for test-
+     * classes
+     ******************************************************/
+    private static boolean theTestPassed = false;
+    private static boolean testGeneratedInterrupt = false;
+    private static String failureMessage = "";
+
+    private static Thread mainThread = null;
+
+    private static int sleepTime = 300000;
+
+    // Not sure about what happens if multiple of this test are
+    //  instantiated in the same VM.  Being static (and using
+    //  static vars), it aint gonna work.  Not worrying about
+    //  it for now.
+    public static void main( String args[] ) throws InterruptedException
+    {
+        mainThread = Thread.currentThread();
+        try
+        {
+            init();
+        }
+        catch( TestPassedException e )
+        {
+            //The test passed, so just return from main and harness will
+            // interepret this return as a pass
+            return;
+        }
+        //At this point, neither test pass nor test fail has been
+        // called -- either would have thrown an exception and ended the
+        // test, so we know we have multiple threads.
+
+        //Test involves other threads, so sleep and wait for them to
+        // called pass() or fail()
+        try 
+        {
+            Thread.sleep( sleepTime );
+            //Timed out, so fail the test
+            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
+        } 
+        catch (InterruptedException e) 
+        {
+            //The test harness may have interrupted the test.  If so, rethrow the exception
+            // so that the harness gets it and deals with it.
+            if( ! testGeneratedInterrupt ) throw e;
+
+            //reset flag in case hit this code more than once for some reason (just safety)
+            testGeneratedInterrupt = false;
+
+            if ( theTestPassed == false )
+            {
+                throw new RuntimeException( failureMessage );
+            }
+        }
+      
+    }//main
+
+    public static synchronized void setTimeoutTo( int seconds )
+    {
+        sleepTime = seconds * 1000;
+    }
+   
+    public static synchronized void pass()
+    {
+        Sysout.println( "The test passed." );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //first check if this is executing in main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //Still in the main thread, so set the flag just for kicks,
+            // and throw a test passed exception which will be caught
+            // and end the test.
+            theTestPassed = true;
+            throw new TestPassedException();
+        }
+        theTestPassed = true;
+        testGeneratedInterrupt = true;
+        mainThread.interrupt();
+    }//pass()
+
+    public static synchronized void fail()
+    {
+        //test writer didn't specify why test failed, so give generic
+        fail( "it just plain failed! :-)" );
+    }
+
+    public static synchronized void fail( String whyFailed )
+    {
+        Sysout.println( "The test failed: " + whyFailed );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //check if this called from main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //If main thread, fail now 'cause not sleeping
+            throw new RuntimeException( whyFailed );
+        }
+        theTestPassed = false;
+        testGeneratedInterrupt = true;
+        failureMessage = whyFailed;
+        mainThread.interrupt();
+    }//fail()
+
+}// class MixingOnDialog
+
+//This exception is used to exit from any level of call nesting
+// when it's determined that the test has passed, and immediately
+// end the test.
+class TestPassedException extends RuntimeException
+{
+}
+
+//*********** End Standard Test Machinery Section **********
+
+ 
+//************ Begin classes defined for the test ****************
+
+// if want to make listeners, here is the recommended place for them, then instantiate 
+//  them in init()
+
+/* Example of a class which may be written as part of a test
+class NewClass implements anInterface 
+ {
+   static int newVar = 0;
+   
+   public void eventDispatched(AWTEvent e) 
+    {
+      //Counting events to see if we get enough
+      eventCount++;
+      
+      if( eventCount == 20 )
+       {
+         //got enough events, so pass
+
+         MixingOnDialog.pass();
+       }
+      else if( tries == 20 )
+       {
+         //tried too many times without getting enough events so fail
+
+         MixingOnDialog.fail();
+       }
+      
+    }// eventDispatched()
+
+ }// NewClass class
+
+*/
+
+
+//************** End classes defined for the test *******************
+  
+
+
+
+/****************************************************
+ Standard Test Machinery
+ DO NOT modify anything below -- it's a standard 
+  chunk of code whose purpose is to make user 
+  interaction uniform, and thereby make it simpler
+  to read and understand someone else's test.
+ ****************************************************/
+
+/**
+ This is part of the standard test machinery.
+ It creates a dialog (with the instructions), and is the interface
+  for sending text messages to the user.
+ To print the instructions, send an array of strings to Sysout.createDialog
+  WithInstructions method.  Put one line of instructions per array entry.
+ To display a message for the tester to see, simply call Sysout.println
+  with the string to be displayed.
+ This mimics System.out.println but works within the test harness as well 
+  as standalone.
+ */
+
+class Sysout 
+{ 
+    private static TestDialog dialog;
+
+    public static void createDialogWithInstructions( String[] instructions )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        dialog.printInstructions( instructions );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+   
+    public static void createDialog( )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        String[] defInstr = { "Instructions will appear here. ", "" } ;
+        dialog.printInstructions( defInstr );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+   
+      
+    public static void printInstructions( String[] instructions )
+    {
+        dialog.printInstructions( instructions );
+    }
+
+
+    public static void println( String messageIn )
+    {
+        dialog.displayMessage( messageIn );
+        System.out.println(messageIn);
+    }
+
+}// Sysout  class
+
+/**
+  This is part of the standard test machinery.  It provides a place for the
+   test instructions to be displayed, and a place for interactive messages
+   to the user to be displayed.
+  To have the test instructions displayed, see Sysout.
+  To have a message to the user be displayed, see Sysout.
+  Do not call anything in this dialog directly.
+  */
+class TestDialog extends Dialog
+{
+
+    TextArea instructionsText;
+    TextArea messageText;
+    int maxStringLength = 80;
+   
+    //DO NOT call this directly, go through Sysout
+    public TestDialog( Frame frame, String name ) 
+    {
+        super( frame, name );
+        int scrollBoth = TextArea.SCROLLBARS_BOTH;
+        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
+        add( "North", instructionsText );
+      
+        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
+        add("Center", messageText);
+      
+        pack();
+      
+        setVisible(true);
+    }// TestDialog()
+
+    //DO NOT call this directly, go through Sysout
+    public void printInstructions( String[] instructions )
+    {
+        //Clear out any current instructions
+        instructionsText.setText( "" );
+
+        //Go down array of instruction strings
+
+        String printStr, remainingStr;
+        for( int i=0; i < instructions.length; i++ )
+        { 
+            //chop up each into pieces maxSringLength long
+            remainingStr = instructions[ i ];
+            while( remainingStr.length() > 0 )
+            {
+                //if longer than max then chop off first max chars to print
+                if( remainingStr.length() >= maxStringLength )
+                {
+                    //Try to chop on a word boundary
+                    int posOfSpace = remainingStr.
+                        lastIndexOf( ' ', maxStringLength - 1 );
+               
+                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
+               
+                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
+                    remainingStr = remainingStr.substring( posOfSpace + 1 );
+                }
+                //else just print
+                else 
+                { 
+                    printStr = remainingStr;
+                    remainingStr = "";
+                }
+            
+                instructionsText.append( printStr + "\n" );
+            
+            }// while
+         
+        }// for
+      
+    }//printInstructions()
+
+    //DO NOT call this directly, go through Sysout
+    public void displayMessage( String messageIn )
+    {
+        messageText.append( messageIn + "\n" );
+        System.out.println(messageIn);
+    }  
+   
+}// TestDialog  class    
+  
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/java/awt/Mixing/OpaqueTest.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,448 @@
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* 
+  @test @(#)OpaqueTest.java	1.2 07/07/26
+  @bug 4811096
+  @summary Tests whether opaque and non-opaque components mix correctly
+  @author anthony.petrov@...: area=awt.mixing
+  @library ../regtesthelpers
+  @build Util
+  @run main OpaqueTest
+*/
+
+
+/**
+ * OpaqueTest.java
+ *
+ * summary:  OpaqueTest
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import test.java.awt.regtesthelpers.Util;
+
+
+
+public class OpaqueTest
+{
+
+    //*** test-writer defined static variables go here ***
+
+    static String testSeq = new String("");
+    final static String checkSeq = new String("010000101");
+
+    private static void init() 
+    {
+        //*** Create instructions for the user here ***
+      
+        String[] instructions = 
+        {
+            "This is an AUTOMATIC test, simply wait until it is done.",
+            "The result (passed or failed) will be shown in the",
+            "message window below."
+        };
+        Sysout.createDialog( );
+        Sysout.printInstructions( instructions );
+
+
+        // Create components
+        final Frame f = new Frame("Button-JButton mix test");
+        final Panel p = new Panel();
+        final Button heavy = new Button("  Heavyweight Button  ");
+        final JButton light = new JButton("  LW Button  ");
+
+        // Actions for the buttons add appropriate number to the test sequence
+        heavy.addActionListener(new java.awt.event.ActionListener()
+                {
+                    public void actionPerformed(java.awt.event.ActionEvent e) {
+                        p.setComponentZOrder(light, 0);
+                        testSeq = testSeq + "0";
+                    }
+                }
+                );
+
+        light.addActionListener(new java.awt.event.ActionListener()
+                {
+                    public void actionPerformed(java.awt.event.ActionEvent e) {
+                        p.setComponentZOrder(heavy, 0);
+                        testSeq = testSeq + "1";
+                    }
+                }
+                );
+
+        // Overlap the buttons
+        heavy.setBounds(30, 30, 200, 200);
+        light.setBounds(10, 10, 50, 50);
+        
+        // Put the components into the frame
+        p.setLayout(null);
+        p.add(heavy);
+        p.add(light);
+        f.add(p);
+        f.setBounds(50, 50, 400, 400);
+        f.show();
+
+
+        Robot robot = Util.createRobot();
+        robot.setAutoDelay(20);
+        
+        Util.waitForIdle(robot);
+
+        // Move the mouse pointer to the position where both
+        //    buttons overlap
+        Point heavyLoc = heavy.getLocationOnScreen();
+        robot.mouseMove(heavyLoc.x + 5, heavyLoc.y + 5);
+
+        // Now perform the click at this point for 9 times
+        // In the middle of the process toggle the opaque
+        // flag value.
+        for (int i = 0; i < 9; ++i) {
+            if (i == 3) {
+                light.setOpaque(false);
+            }
+            if (i == 6) {
+                light.setOpaque(true);
+            }
+
+            robot.mousePress(InputEvent.BUTTON1_MASK);
+            robot.mouseRelease(InputEvent.BUTTON1_MASK);
+            Util.waitForIdle(robot);
+        }
+
+        Util.waitForIdle(robot);
+
+        // If the buttons are correctly mixed, the test sequence
+        // is equal to the check sequence.
+        if (testSeq.equals(checkSeq)) {
+            OpaqueTest.pass();
+        } else {
+            OpaqueTest.fail("The components changed their visible Z-order in a wrong sequence: '" + testSeq + "' instead of '" + checkSeq + "'");
+        }
+    }//End  init()
+
+
+
+    /*****************************************************
+     * Standard Test Machinery Section
+     * DO NOT modify anything in this section -- it's a 
+     * standard chunk of code which has all of the
+     * synchronisation necessary for the test harness.
+     * By keeping it the same in all tests, it is easier
+     * to read and understand someone else's test, as
+     * well as insuring that all tests behave correctly
+     * with the test harness.
+     * There is a section following this for test-
+     * classes
+     ******************************************************/
+    private static boolean theTestPassed = false;
+    private static boolean testGeneratedInterrupt = false;
+    private static String failureMessage = "";
+
+    private static Thread mainThread = null;
+
+    private static int sleepTime = 300000;
+
+    // Not sure about what happens if multiple of this test are
+    //  instantiated in the same VM.  Being static (and using
+    //  static vars), it aint gonna work.  Not worrying about
+    //  it for now.
+    public static void main( String args[] ) throws InterruptedException
+    {
+        mainThread = Thread.currentThread();
+        try
+        {
+            init();
+        }
+        catch( TestPassedException e )
+        {
+            //The test passed, so just return from main and harness will
+            // interepret this return as a pass
+            return;
+        }
+        //At this point, neither test pass nor test fail has been
+        // called -- either would have thrown an exception and ended the
+        // test, so we know we have multiple threads.
+
+        //Test involves other threads, so sleep and wait for them to
+        // called pass() or fail()
+        try 
+        {
+            Thread.sleep( sleepTime );
+            //Timed out, so fail the test
+            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
+        } 
+        catch (InterruptedException e) 
+        {
+            //The test harness may have interrupted the test.  If so, rethrow the exception
+            // so that the harness gets it and deals with it.
+            if( ! testGeneratedInterrupt ) throw e;
+
+            //reset flag in case hit this code more than once for some reason (just safety)
+            testGeneratedInterrupt = false;
+
+            if ( theTestPassed == false )
+            {
+                throw new RuntimeException( failureMessage );
+            }
+        }
+      
+    }//main
+
+    public static synchronized void setTimeoutTo( int seconds )
+    {
+        sleepTime = seconds * 1000;
+    }
+   
+    public static synchronized void pass()
+    {
+        Sysout.println( "The test passed." );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //first check if this is executing in main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //Still in the main thread, so set the flag just for kicks,
+            // and throw a test passed exception which will be caught
+            // and end the test.
+            theTestPassed = true;
+            throw new TestPassedException();
+        }
+        theTestPassed = true;
+        testGeneratedInterrupt = true;
+        mainThread.interrupt();
+    }//pass()
+
+    public static synchronized void fail()
+    {
+        //test writer didn't specify why test failed, so give generic
+        fail( "it just plain failed! :-)" );
+    }
+
+    public static synchronized void fail( String whyFailed )
+    {
+        Sysout.println( "The test failed: " + whyFailed );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //check if this called from main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //If main thread, fail now 'cause not sleeping
+            throw new RuntimeException( whyFailed );
+        }
+        theTestPassed = false;
+        testGeneratedInterrupt = true;
+        failureMessage = whyFailed;
+        mainThread.interrupt();
+    }//fail()
+
+}// class OpaqueTest
+
+//This exception is used to exit from any level of call nesting
+// when it's determined that the test has passed, and immediately
+// end the test.
+class TestPassedException extends RuntimeException
+{
+}
+
+//*********** End Standard Test Machinery Section **********
+
+ 
+//************ Begin classes defined for the test ****************
+
+// if want to make listeners, here is the recommended place for them, then instantiate 
+//  them in init()
+
+/* Example of a class which may be written as part of a test
+class NewClass implements anInterface 
+ {
+   static int newVar = 0;
+   
+   public void eventDispatched(AWTEvent e) 
+    {
+      //Counting events to see if we get enough
+      eventCount++;
+      
+      if( eventCount == 20 )
+       {
+         //got enough events, so pass
+
+         OpaqueTest.pass();
+       }
+      else if( tries == 20 )
+       {
+         //tried too many times without getting enough events so fail
+
+         OpaqueTest.fail();
+       }
+      
+    }// eventDispatched()
+
+ }// NewClass class
+
+*/
+
+
+//************** End classes defined for the test *******************
+  
+
+
+
+/****************************************************
+ Standard Test Machinery
+ DO NOT modify anything below -- it's a standard 
+  chunk of code whose purpose is to make user 
+  interaction uniform, and thereby make it simpler
+  to read and understand someone else's test.
+ ****************************************************/
+
+/**
+ This is part of the standard test machinery.
+ It creates a dialog (with the instructions), and is the interface
+  for sending text messages to the user.
+ To print the instructions, send an array of strings to Sysout.createDialog
+  WithInstructions method.  Put one line of instructions per array entry.
+ To display a message for the tester to see, simply call Sysout.println
+  with the string to be displayed.
+ This mimics System.out.println but works within the test harness as well 
+  as standalone.
+ */
+
+class Sysout 
+{ 
+    private static TestDialog dialog;
+
+    public static void createDialogWithInstructions( String[] instructions )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        dialog.printInstructions( instructions );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+   
+    public static void createDialog( )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        String[] defInstr = { "Instructions will appear here. ", "" } ;
+        dialog.printInstructions( defInstr );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+   
+      
+    public static void printInstructions( String[] instructions )
+    {
+        dialog.printInstructions( instructions );
+    }
+
+
+    public static void println( String messageIn )
+    {
+        dialog.displayMessage( messageIn );
+        System.out.println(messageIn);
+    }
+
+}// Sysout  class
+
+/**
+  This is part of the standard test machinery.  It provides a place for the
+   test instructions to be displayed, and a place for interactive messages
+   to the user to be displayed.
+  To have the test instructions displayed, see Sysout.
+  To have a message to the user be displayed, see Sysout.
+  Do not call anything in this dialog directly.
+  */
+class TestDialog extends Dialog
+{
+
+    TextArea instructionsText;
+    TextArea messageText;
+    int maxStringLength = 80;
+   
+    //DO NOT call this directly, go through Sysout
+    public TestDialog( Frame frame, String name ) 
+    {
+        super( frame, name );
+        int scrollBoth = TextArea.SCROLLBARS_BOTH;
+        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
+        add( "North", instructionsText );
+      
+        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
+        add("Center", messageText);
+      
+        pack();
+      
+        setVisible(true);
+    }// TestDialog()
+
+    //DO NOT call this directly, go through Sysout
+    public void printInstructions( String[] instructions )
+    {
+        //Clear out any current instructions
+        instructionsText.setText( "" );
+
+        //Go down array of instruction strings
+
+        String printStr, remainingStr;
+        for( int i=0; i < instructions.length; i++ )
+        { 
+            //chop up each into pieces maxSringLength long
+            remainingStr = instructions[ i ];
+            while( remainingStr.length() > 0 )
+            {
+                //if longer than max then chop off first max chars to print
+                if( remainingStr.length() >= maxStringLength )
+                {
+                    //Try to chop on a word boundary
+                    int posOfSpace = remainingStr.
+                        lastIndexOf( ' ', maxStringLength - 1 );
+               
+                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
+               
+                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
+                    remainingStr = remainingStr.substring( posOfSpace + 1 );
+                }
+                //else just print
+                else 
+                { 
+                    printStr = remainingStr;
+                    remainingStr = "";
+                }
+            
+                instructionsText.append( printStr + "\n" );
+            
+            }// while
+         
+        }// for
+      
+    }//printInstructions()
+
+    //DO NOT call this directly, go through Sysout
+    public void displayMessage( String messageIn )
+    {
+        messageText.append( messageIn + "\n" );
+        System.out.println(messageIn);
+    }  
+   
+}// TestDialog  class    
+  
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/java/awt/Mixing/OverlappingButtons.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,439 @@
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* 
+  @test @(#)OverlappingButtons.java	1.2 07/07/26
+  @bug 4811096
+  @summary Tests whether overlapping buttons mix correctly
+  @author anthony.petrov@...: area=awt.mixing
+  @library ../regtesthelpers
+  @build Util
+  @run main OverlappingButtons
+*/
+
+
+/**
+ * OverlappingButtons.java
+ *
+ * summary:  Tests whether awt.Button and swing.JButton mix correctly
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import test.java.awt.regtesthelpers.Util;
+
+
+
+public class OverlappingButtons
+{
+
+    //*** test-writer defined static variables go here ***
+
+    static volatile String testSeq = "";
+    final static String checkSeq = new String("010101");
+
+    private static void init() 
+    {
+        //*** Create instructions for the user here ***
+      
+        String[] instructions = 
+        {
+            "This is an AUTOMATIC test, simply wait until it is done.",
+            "The result (passed or failed) will be shown in the",
+            "message window below."
+        };
+        Sysout.createDialog( );
+        Sysout.printInstructions( instructions );
+
+
+        // Create components
+        final Frame f = new Frame("Button-JButton mix test");
+        final Panel p = new Panel();
+        final Button heavy = new Button("  Heavyweight Button  ");
+        final JButton light = new JButton("  LW Button  ");
+
+        // Actions for the buttons add appropriate number to the test sequence
+        heavy.addActionListener(new java.awt.event.ActionListener()
+                {
+                    public void actionPerformed(java.awt.event.ActionEvent e) {
+                        p.setComponentZOrder(light, 0);
+                        testSeq = testSeq + "0";
+                    }
+                }
+                );
+
+        light.addActionListener(new java.awt.event.ActionListener()
+                {
+                    public void actionPerformed(java.awt.event.ActionEvent e) {
+                        p.setComponentZOrder(heavy, 0);
+                        testSeq = testSeq + "1";
+                    }
+                }
+                );
+
+        // Overlap the buttons
+        heavy.setBounds(30, 30, 200, 200);
+        light.setBounds(10, 10, 50, 50);
+        
+        // Put the components into the frame
+        p.setLayout(null);
+        p.add(heavy);
+        p.add(light);
+        f.add(p);
+        f.setBounds(50, 50, 400, 400);
+        f.show();
+
+
+        Robot robot = Util.createRobot();
+        robot.setAutoDelay(20);
+        
+        Util.waitForIdle(robot);
+
+        // Move the mouse pointer to the position where both
+        //    buttons overlap
+        Point heavyLoc = heavy.getLocationOnScreen();
+        robot.mouseMove(heavyLoc.x + 5, heavyLoc.y + 5);
+
+        // Now perform the click at this point for 6 times
+        for (int i = 0; i < 6; ++i) {
+            robot.mousePress(InputEvent.BUTTON1_MASK);
+            robot.mouseRelease(InputEvent.BUTTON1_MASK);
+            Util.waitForIdle(robot);
+        }
+
+        Util.waitForIdle(robot);
+
+        // If the buttons are correctly mixed, the test sequence
+        // is equal to the check sequence.
+        if (testSeq.equals(checkSeq)) {
+            OverlappingButtons.pass();
+        } else {
+            OverlappingButtons.fail("The components changed their visible Z-order in a wrong sequence: '" + testSeq + "' instead of '" + checkSeq + "'");
+        }
+    }//End  init()
+
+
+
+    /*****************************************************
+     * Standard Test Machinery Section
+     * DO NOT modify anything in this section -- it's a 
+     * standard chunk of code which has all of the
+     * synchronisation necessary for the test harness.
+     * By keeping it the same in all tests, it is easier
+     * to read and understand someone else's test, as
+     * well as insuring that all tests behave correctly
+     * with the test harness.
+     * There is a section following this for test-
+     * classes
+     ******************************************************/
+    private static boolean theTestPassed = false;
+    private static boolean testGeneratedInterrupt = false;
+    private static String failureMessage = "";
+
+    private static Thread mainThread = null;
+
+    private static int sleepTime = 300000;
+
+    // Not sure about what happens if multiple of this test are
+    //  instantiated in the same VM.  Being static (and using
+    //  static vars), it aint gonna work.  Not worrying about
+    //  it for now.
+    public static void main( String args[] ) throws InterruptedException
+    {
+        mainThread = Thread.currentThread();
+        try
+        {
+            init();
+        }
+        catch( TestPassedException e )
+        {
+            //The test passed, so just return from main and harness will
+            // interepret this return as a pass
+            return;
+        }
+        //At this point, neither test pass nor test fail has been
+        // called -- either would have thrown an exception and ended the
+        // test, so we know we have multiple threads.
+
+        //Test involves other threads, so sleep and wait for them to
+        // called pass() or fail()
+        try 
+        {
+            Thread.sleep( sleepTime );
+            //Timed out, so fail the test
+            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
+        } 
+        catch (InterruptedException e) 
+        {
+            //The test harness may have interrupted the test.  If so, rethrow the exception
+            // so that the harness gets it and deals with it.
+            if( ! testGeneratedInterrupt ) throw e;
+
+            //reset flag in case hit this code more than once for some reason (just safety)
+            testGeneratedInterrupt = false;
+
+            if ( theTestPassed == false )
+            {
+                throw new RuntimeException( failureMessage );
+            }
+        }
+      
+    }//main
+
+    public static synchronized void setTimeoutTo( int seconds )
+    {
+        sleepTime = seconds * 1000;
+    }
+   
+    public static synchronized void pass()
+    {
+        Sysout.println( "The test passed." );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //first check if this is executing in main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //Still in the main thread, so set the flag just for kicks,
+            // and throw a test passed exception which will be caught
+            // and end the test.
+            theTestPassed = true;
+            throw new TestPassedException();
+        }
+        theTestPassed = true;
+        testGeneratedInterrupt = true;
+        mainThread.interrupt();
+    }//pass()
+
+    public static synchronized void fail()
+    {
+        //test writer didn't specify why test failed, so give generic
+        fail( "it just plain failed! :-)" );
+    }
+
+    public static synchronized void fail( String whyFailed )
+    {
+        Sysout.println( "The test failed: " + whyFailed );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //check if this called from main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //If main thread, fail now 'cause not sleeping
+            throw new RuntimeException( whyFailed );
+        }
+        theTestPassed = false;
+        testGeneratedInterrupt = true;
+        failureMessage = whyFailed;
+        mainThread.interrupt();
+    }//fail()
+
+}// class OverlappingButtons
+
+//This exception is used to exit from any level of call nesting
+// when it's determined that the test has passed, and immediately
+// end the test.
+class TestPassedException extends RuntimeException
+{
+}
+
+//*********** End Standard Test Machinery Section **********
+
+ 
+//************ Begin classes defined for the test ****************
+
+// if want to make listeners, here is the recommended place for them, then instantiate 
+//  them in init()
+
+/* Example of a class which may be written as part of a test
+class NewClass implements anInterface 
+ {
+   static int newVar = 0;
+   
+   public void eventDispatched(AWTEvent e) 
+    {
+      //Counting events to see if we get enough
+      eventCount++;
+      
+      if( eventCount == 20 )
+       {
+         //got enough events, so pass
+
+         OverlappingButtons.pass();
+       }
+      else if( tries == 20 )
+       {
+         //tried too many times without getting enough events so fail
+
+         OverlappingButtons.fail();
+       }
+      
+    }// eventDispatched()
+
+ }// NewClass class
+
+*/
+
+
+//************** End classes defined for the test *******************
+  
+
+
+
+/****************************************************
+ Standard Test Machinery
+ DO NOT modify anything below -- it's a standard 
+  chunk of code whose purpose is to make user 
+  interaction uniform, and thereby make it simpler
+  to read and understand someone else's test.
+ ****************************************************/
+
+/**
+ This is part of the standard test machinery.
+ It creates a dialog (with the instructions), and is the interface
+  for sending text messages to the user.
+ To print the instructions, send an array of strings to Sysout.createDialog
+  WithInstructions method.  Put one line of instructions per array entry.
+ To display a message for the tester to see, simply call Sysout.println
+  with the string to be displayed.
+ This mimics System.out.println but works within the test harness as well 
+  as standalone.
+ */
+
+class Sysout 
+{ 
+    private static TestDialog dialog;
+
+    public static void createDialogWithInstructions( String[] instructions )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        dialog.printInstructions( instructions );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+   
+    public static void createDialog( )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        String[] defInstr = { "Instructions will appear here. ", "" } ;
+        dialog.printInstructions( defInstr );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+   
+      
+    public static void printInstructions( String[] instructions )
+    {
+        dialog.printInstructions( instructions );
+    }
+
+
+    public static void println( String messageIn )
+    {
+        dialog.displayMessage( messageIn );
+        System.out.println(messageIn);
+    }
+
+}// Sysout  class
+
+/**
+  This is part of the standard test machinery.  It provides a place for the
+   test instructions to be displayed, and a place for interactive messages
+   to the user to be displayed.
+  To have the test instructions displayed, see Sysout.
+  To have a message to the user be displayed, see Sysout.
+  Do not call anything in this dialog directly.
+  */
+class TestDialog extends Dialog
+{
+
+    TextArea instructionsText;
+    TextArea messageText;
+    int maxStringLength = 80;
+   
+    //DO NOT call this directly, go through Sysout
+    public TestDialog( Frame frame, String name ) 
+    {
+        super( frame, name );
+        int scrollBoth = TextArea.SCROLLBARS_BOTH;
+        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
+        add( "North", instructionsText );
+      
+        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
+        add("Center", messageText);
+      
+        pack();
+      
+        setVisible(true);
+    }// TestDialog()
+
+    //DO NOT call this directly, go through Sysout
+    public void printInstructions( String[] instructions )
+    {
+        //Clear out any current instructions
+        instructionsText.setText( "" );
+
+        //Go down array of instruction strings
+
+        String printStr, remainingStr;
+        for( int i=0; i < instructions.length; i++ )
+        { 
+            //chop up each into pieces maxSringLength long
+            remainingStr = instructions[ i ];
+            while( remainingStr.length() > 0 )
+            {
+                //if longer than max then chop off first max chars to print
+                if( remainingStr.length() >= maxStringLength )
+                {
+                    //Try to chop on a word boundary
+                    int posOfSpace = remainingStr.
+                        lastIndexOf( ' ', maxStringLength - 1 );
+               
+                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
+               
+                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
+                    remainingStr = remainingStr.substring( posOfSpace + 1 );
+                }
+                //else just print
+                else 
+                { 
+                    printStr = remainingStr;
+                    remainingStr = "";
+                }
+            
+                instructionsText.append( printStr + "\n" );
+            
+            }// while
+         
+        }// for
+      
+    }//printInstructions()
+
+    //DO NOT call this directly, go through Sysout
+    public void displayMessage( String messageIn )
+    {
+        messageText.append( messageIn + "\n" );
+        System.out.println(messageIn);
+    }  
+   
+}// TestDialog  class    
+  
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,111 @@
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ @test @(#)LocationRelativeToTest.java	1.1 07/07/23
+ @bug 6232687
+ @summary Tests that Window.setLocationRelativeTo() method works correctly
+for different multiscreen configurations
+ @author artem.ananiev, area=awt.multiscreen
+ @library ../../regtesthelpers
+ @build Util
+ @run main LocationRelativeToTest
+*/
+
+import java.awt.*;
+import java.awt.event.*;
+
+import javax.swing.*;
+
+import test.java.awt.regtesthelpers.Util;
+
+public class LocationRelativeToTest
+{
+    private static int FRAME_WIDTH = 400;
+    private static int FRAME_HEIGHT = 300;
+
+    public static void main(String[] args)
+    {
+        Robot r = Util.createRobot();
+
+        GraphicsEnvironment ge =
+            GraphicsEnvironment.getLocalGraphicsEnvironment();
+        System.out.println("Center point: " + ge.getCenterPoint());
+        GraphicsDevice[] gds = ge.getScreenDevices();
+        GraphicsDevice gdDef = ge.getDefaultScreenDevice();
+        GraphicsConfiguration gcDef =
+            gdDef.getDefaultConfiguration();
+
+        Frame f = new Frame("F", gcDef);
+        f.setSize(FRAME_WIDTH, FRAME_HEIGHT);
+        f.setVisible(true);
+        Util.waitForIdle(r);
+
+        // first, check setLocationRelativeTo(null)
+        f.setLocationRelativeTo(null);
+        Util.waitForIdle(r);
+        checkLocation(f, ge.getCenterPoint());
+
+        for (GraphicsDevice gd : gds)
+        {
+            GraphicsConfiguration gc = gd.getDefaultConfiguration();
+            Rectangle gcBounds = gc.getBounds();
+            Frame f2 = new Frame("F2", gc);
+            f2.setBounds(gcBounds.x + 100, gcBounds.y + 100,
+                         FRAME_WIDTH, FRAME_HEIGHT);
+            
+            // second, check setLocationRelativeTo(invisible)
+            f.setLocationRelativeTo(f2);
+            Util.waitForIdle(r);
+            checkLocation(f, new Point(gcBounds.x + gcBounds.width / 2,
+                                       gcBounds.y + gcBounds.height / 2));
+
+            // third, check setLocationRelativeTo(visible)
+            f2.setVisible(true);
+            Util.waitForIdle(r);
+            Point f2Loc = f2.getLocationOnScreen();
+            f.setLocationRelativeTo(f2);
+            Util.waitForIdle(r);
+            checkLocation(f, new Point(f2Loc.x + f2.getWidth() / 2,
+                                       f2Loc.y + f2.getHeight() / 2));           
+        }
+    }
+
+    /*
+     * Here the check is performed. Note this check works correctly both
+     * for virtual (Win32, X11/Xinerama) and non-virtual (X11/non-Xinerama)
+     * screen configurations. 
+     */
+    private static void checkLocation(Frame f, Point rightLoc)
+    {
+        Point actualLoc = new Point(f.getBounds().x + f.getWidth() / 2,
+                                    f.getBounds().y + f.getHeight() / 2);
+        if (!rightLoc.equals(actualLoc))
+        {
+            System.err.println("Right location for the window center: " + rightLoc);
+            System.err.println("Actual location for the window center: " + actualLoc);
+            throw new RuntimeException("Test FAILED: setLocationRelativeTo() operates incorrectly");
+        }
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/java/awt/TrayIcon/DragEventSource/DragEventSource.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,429 @@
+/*
+ * Copyright (c) 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ * 
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ * 
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ * 
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* 
+  @test 1.1 07/07/18
+  @bug 6565779
+  @library ../../../regtesthelpers
+  @compile DragEventSource.java
+  @summary Exception if source of some event is TrayIcon
+  @author Andrei Dmitriev: area=awt.tray
+  @run main/manual/othervm -Dsun.awt.exception.handler=DragEventSource DragEventSource
+*/
+
+/**
+ * DragEventSource.java
+ *
+ * summary: an exception happen if the DRAG event has a TrayIcon
+ * instance as source.
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import java.awt.image.*;
+
+public class DragEventSource
+{
+    static Frame frame = new Frame("Test frame");
+    static Button b1 = new Button("Open file dialog");
+    static SystemTray tray = null;
+    static TrayIcon icon = null;
+    static Image img = null;
+    static FileDialog fd = null;
+
+    //a method to transfer throwables to the user
+    public void handle(Throwable e){
+        Sysout.println("HANDLED BY THE CUSTOM HANDLER !!!!!!"+e);
+    }
+
+    static class ActionHandler implements ActionListener {
+        public void actionPerformed (ActionEvent ae) {
+            FileDialog fd = new FileDialog (frame, "Image Selector", FileDialog.LOAD);
+            fd.setVisible(true);
+        }
+    }
+
+    private static void init() {
+        String[] instructions = 
+        {
+            "Use see a Frame with a button in it.",
+            "Press the button. FileDialog should appear.",
+            "Drag the mouse from the Tray icon to FileDialog ",
+            "using left mouse button.",
+            "If exception happens, the test fails.",
+            "Otherwise, pass."
+        };
+        
+        Sysout.createDialog( );
+        Sysout.printInstructions( instructions );
+
+        frame.setLayout(new FlowLayout());
+        tray = SystemTray.getSystemTray();
+        boolean isSupported = tray.isSupported();
+        System.out.println("is SysTray Supported: " + isSupported);
+        TrayIcon icons[] = tray.getTrayIcons();
+        System.out.println(icons.length);
+
+        b1.addActionListener(new ActionHandler());
+
+        icon = new TrayIcon(new BufferedImage(20, 20, BufferedImage.TYPE_INT_RGB));
+        icon.setImageAutoSize(true);
+
+        try {
+            tray.add(icon);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+            
+        frame.add(b1);
+            
+        frame.setSize(600, 200);
+        frame.setVisible(true);
+    }//End  init()
+
+
+
+    /*****************************************************
+     * Standard Test Machinery Section
+     * DO NOT modify anything in this section -- it's a 
+     * standard chunk of code which has all of the
+     * synchronisation necessary for the test harness.
+     * By keeping it the same in all tests, it is easier
+     * to read and understand someone else's test, as
+     * well as insuring that all tests behave correctly
+     * with the test harness.
+     * There is a section following this for test-defined
+     * classes
+     ******************************************************/
+    private static boolean theTestPassed = false;
+    private static boolean testGeneratedInterrupt = false;
+    private static String failureMessage = "";
+
+    private static Thread mainThread = null;
+
+    private static int sleepTime = 300000;
+
+    public static void main( String args[] ) throws InterruptedException
+    {
+        mainThread = Thread.currentThread();
+
+        try
+        {
+            init();
+        }
+        catch( TestPassedException e )
+        {
+            //The test passed, so just return from main and harness will
+            // interepret this return as a pass
+            return;
+        }
+        //At this point, neither test passed nor test failed has been
+        // called -- either would have thrown an exception and ended the
+        // test, so we know we have multiple threads.
+
+        //Test involves other threads, so sleep and wait for them to
+        // called pass() or fail()
+        try 
+        {
+            Thread.sleep( sleepTime );
+            //Timed out, so fail the test
+            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
+        } 
+        catch (InterruptedException e) 
+        {
+            if( ! testGeneratedInterrupt ) throw e;
+
+            //reset flag in case hit this code more than once for some reason (just safety)
+            testGeneratedInterrupt = false;
+            if ( theTestPassed == false )
+            {
+                throw new RuntimeException( failureMessage );
+            }
+        }
+      
+    }//main
+
+    public static synchronized void setTimeoutTo( int seconds )
+    {
+        sleepTime = seconds * 1000;
+    }
+   
+    public static synchronized void pass()
+    {
+        Sysout.println( "The test passed." );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //first check if this is executing in main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //Still in the main thread, so set the flag just for kicks,
+            // and throw a test passed exception which will be caught
+            // and end the test.
+            theTestPassed = true;
+            throw new TestPassedException();
+        }
+        //pass was called from a different thread, so set the flag and interrupt 
+        // the main thead.
+        theTestPassed = true;
+        testGeneratedInterrupt = true;
+        mainThread.interrupt();
+    }//pass()
+
+    public static synchronized void fail()
+    {
+        //test writer didn't specify why test failed, so give generic
+        fail( "it just plain failed! :-)" );
+    }
+
+    public static synchronized void fail( String whyFailed )
+    {
+        Sysout.println( "The test failed: " + whyFailed );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //check if this called from main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //If main thread, fail now 'cause not sleeping
+            throw new RuntimeException( whyFailed );
+        }
+        theTestPassed = false;
+        testGeneratedInterrupt = true;
+        failureMessage = whyFailed;
+        mainThread.interrupt();
+    }//fail()
+
+}// class DragEventSource
+
+//This exception is used to exit from any level of call nesting
+// when it's determined that the test has passed, and immediately
+// end the test.
+
+class TestPassedException extends RuntimeException
+{
+}
+
+//*********** End Standard Test Machinery Section **********
+
+ 
+//************ Begin classes defined for the test ****************
+
+// make listeners in a class defined here, and instantiate them in init()
+
+/* Example of a class which may be written as part of a test
+class NewClass implements anInterface 
+ {
+   static int newVar = 0;
+   
+   public void eventDispatched(AWTEvent e) 
+    {
+      //Counting events to see if we get enough
+      eventCount++;
+      
+      if( eventCount == 20 )
+       {
+         //got enough events, so pass
+
+         ManualMainTest.pass();
+       }
+      else if( tries == 20 )
+       {
+         //tried too many times without getting enough events so fail
+
+         ManualMainTest.fail();
+       }
+      
+    }// eventDispatched()
+
+ }// NewClass class
+
+*/
+
+
+//************** End classes defined for the test *******************
+  
+
+
+
+/****************************************************
+ Standard Test Machinery
+ DO NOT modify anything below -- it's a standard 
+  chunk of code whose purpose is to make user 
+  interaction uniform, and thereby make it simpler
+  to read and understand someone else's test.
+ ****************************************************/
+
+/**
+ This is part of the standard test machinery.
+ It creates a dialog (with the instructions), and is the interface
+  for sending text messages to the user.
+ To print the instructions, send an array of strings to Sysout.createDialog
+  WithInstructions method.  Put one line of instructions per array entry.
+ To display a message for the tester to see, simply call Sysout.println
+  with the string to be displayed.
+ This mimics System.out.println but works within the test harness as well 
+  as standalone.
+ */
+
+class Sysout 
+{ 
+    private static TestDialog dialog;
+
+    public static void createDialogWithInstructions( String[] instructions )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        dialog.printInstructions( instructions );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+   
+    public static void createDialog( )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        String[] defInstr = { "Instructions will appear here. ", "" } ;
+        dialog.printInstructions( defInstr );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+   
+      
+    public static void printInstructions( String[] instructions )
+    {
+        dialog.printInstructions( instructions );
+    }
+
+
+    public static void println( String messageIn )
+    {
+        dialog.displayMessage( messageIn );
+    }
+
+}// Sysout  class
+
+/**
+  This is part of the standard test machinery.  It provides a place for the
+   test instructions to be displayed, and a place for interactive messages
+   to the user to be displayed.
+  To have the test instructions displayed, see Sysout.
+  To have a message to the user be displayed, see Sysout.
+  Do not call anything in this dialog directly.
+  */
+class TestDialog extends Dialog implements ActionListener
+{
+
+    TextArea instructionsText;
+    TextArea messageText;
+    int maxStringLength = 80;
+    Panel  buttonP = new Panel();
+    Button passB = new Button( "pass" );
+    Button failB = new Button( "fail" );
+   
+    //DO NOT call this directly, go through Sysout
+    public TestDialog( Frame frame, String name ) 
+    {
+        super( frame, name );
+        int scrollBoth = TextArea.SCROLLBARS_BOTH;
+        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
+        add( "North", instructionsText );
+      
+        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
+        add("Center", messageText);
+      
+        passB = new Button( "pass" );
+        passB.setActionCommand( "pass" );
+        passB.addActionListener( this );
+        buttonP.add( "East", passB );
+      
+        failB = new Button( "fail" );
+        failB.setActionCommand( "fail" );
+        failB.addActionListener( this );
+        buttonP.add( "West", failB );
+      
+        add( "South", buttonP );
+        pack();
+      
+        setVisible(true);
+    }// TestDialog()
+
+    //DO NOT call this directly, go through Sysout
+    public void printInstructions( String[] instructions )
+    {
+        //Clear out any current instructions
+        instructionsText.setText( "" );
+
+        //Go down array of instruction strings
+
+        String printStr, remainingStr;
+        for( int i=0; i < instructions.length; i++ )
+        { 
+            //chop up each into pieces maxSringLength long
+            remainingStr = instructions[ i ];
+            while( remainingStr.length() > 0 )
+            {
+                //if longer than max then chop off first max chars to print
+                if( remainingStr.length() >= maxStringLength )
+                {
+                    //Try to chop on a word boundary
+                    int posOfSpace = remainingStr.
+                        lastIndexOf( ' ', maxStringLength - 1 );
+               
+                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
+               
+                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
+                    remainingStr = remainingStr.substring( posOfSpace + 1 );
+                }
+                //else just print
+                else 
+                { 
+                    printStr = remainingStr;
+                    remainingStr = "";
+                }
+            
+                instructionsText.append( printStr + "\n" );
+            
+            }// while
+         
+        }// for
+      
+    }//printInstructions()
+
+    //DO NOT call this directly, go through Sysout
+    public void displayMessage( String messageIn )
+    {
+        messageText.append( messageIn + "\n" );
+        System.out.println(messageIn);
+    }  
+
+    //catch presses of the passed and failed buttons.
+    //simply call the standard pass() or fail() static methods of
+    //ManualMainTest
+    public void actionPerformed( ActionEvent e )
+    {
+        if( e.getActionCommand() == "pass" )
+        {
+            DragEventSource.pass();
+        }
+        else
+        {
+            DragEventSource.fail();
+        }
+    }
+
+}// TestDialog  class    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ * 
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ * 
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ * 
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* 
+  @test 1.1 07/07/24
+  @bug 6480024
+  @library ../../../regtesthelpers
+  @build Util Sysout AbstractTest
+  @summary stack overflow on mouse wheel rotation
+  @author Andrei Dmitriev: area=awt.event
+  @run main InfiniteRecursion
+*/
+
+/**
+ * InfiniteRecursion.java
+ *
+ * summary: put a JButton into JFrame.
+ * Add MouseWheelListener to JFrame.
+ * Add MouseListener to JButton.
+ * Rotating a wheel over the JButton would result in stack overflow.
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import test.java.awt.regtesthelpers.Util;
+import test.java.awt.regtesthelpers.AbstractTest;
+import test.java.awt.regtesthelpers.Sysout;
+
+public class InfiniteRecursion {
+    final static Robot robot = Util.createRobot();
+    final static int MOVE_COUNT = 5;
+    static int actualEvents = 0;
+
+    public static void main(String []s)
+    {
+        JFrame frame = new JFrame("A test frame");
+        frame.setSize(200, 200);
+        frame.addMouseWheelListener(new MouseWheelListener() {
+                public void mouseWheelMoved(MouseWheelEvent e) {
+                    System.out.println("Wheel moved on FRAME : "+e);
+                    actualEvents++;
+                }
+            });
+                
+        JButton jButton = new JButton();
+        /*
+          outputBox.addMouseWheelListener(new MouseWheelListener() {
+          public void mouseWheelMoved(MouseWheelEvent e){}
+          });
+        */
+        jButton.addMouseListener(new MouseAdapter() {
+                public void mousePressed(MouseEvent e) {
+                    System.out.println("MousePressed on jButton : "+e);
+                }
+                
+            });
+        frame.add(jButton);
+        
+        frame.setVisible(true);
+
+        Util.waitForIdle(robot);
+
+        Util.pointOnComp(jButton, robot);
+        Util.waitForIdle(robot);
+
+        for (int i = 0; i < MOVE_COUNT; i++){
+            robot.mouseWheel(1);
+            robot.delay(10);
+        }
+
+        for (int i = 0; i < MOVE_COUNT; i++){
+            robot.mouseWheel(-1);
+            robot.delay(10);
+        }
+
+
+        Util.waitForIdle(robot);
+        if (actualEvents != MOVE_COUNT * 2) {
+            AbstractTest.fail("Expected events count: "+ MOVE_COUNT+" Actual events count: "+ actualEvents);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ * 
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ * 
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ * 
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* 
+  @test 1.1 07/07/24
+  @bug 6480024
+  @library ../../../regtesthelpers
+  @build Util Sysout AbstractTest
+  @summary stack overflow on mouse wheel rotation
+  @author Andrei Dmitriev: area=awt.event
+  @run main InfiniteRecursion_1
+*/
+
+/**
+ * InfiniteRecursion_1.java
+ *
+ * summary: put a JButton into JPanel and then put JPanel into JFrame.
+ * Add MouseWheelListener to JFrame.
+ * Add MouseListener to JPanel.
+ * Rotating a wheel over the JButton would result in stack overflow.
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import test.java.awt.regtesthelpers.Util;
+import test.java.awt.regtesthelpers.AbstractTest;
+import test.java.awt.regtesthelpers.Sysout;
+
+public class InfiniteRecursion_1 {
+    final static Robot robot = Util.createRobot();
+    final static int MOVE_COUNT = 5;
+    static int actualEvents = 0;
+
+    public static void main(String []s)
+    {
+        JFrame frame = new JFrame("A test frame");
+        JPanel outputBox = new JPanel();
+        JButton jButton = new JButton();
+        
+        frame.setSize(200, 200);
+        frame.addMouseWheelListener(new MouseWheelListener() {
+                public void mouseWheelMoved(MouseWheelEvent e)
+                {
+                    System.out.println("Wheel moved on FRAME : "+e);
+                    actualEvents++;
+                }
+            });
+        
+        outputBox.addMouseListener(new MouseAdapter() {
+                public void mousePressed(MouseEvent e)
+                {
+                    System.out.println("MousePressed on OUTBOX : "+e);
+                }
+                
+            });
+        frame.add(outputBox);
+        outputBox.add(jButton);
+        
+        frame.setVisible(true);
+        
+        Util.waitForIdle(robot);
+        
+        Util.pointOnComp(jButton, robot);
+        Util.waitForIdle(robot);
+        
+        for (int i = 0; i < MOVE_COUNT; i++){
+            robot.mouseWheel(1);
+            robot.delay(10);
+        }
+
+        for (int i = 0; i < MOVE_COUNT; i++){
+            robot.mouseWheel(-1);
+            robot.delay(10);
+        }
+
+        Util.waitForIdle(robot);
+        if (actualEvents != MOVE_COUNT * 2) {
+            AbstractTest.fail("Expected events count: "+ MOVE_COUNT+" Actual events count: "+ actualEvents);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,23 @@
+<html>
+<!--  
+  @test 1.1 07/07/24
+  @bug 6480024
+  @library ../../../regtesthelpers
+  @build Util Sysout AbstractTest
+  @summary stack overflow on mouse wheel rotation within JApplet
+  @author Andrei Dmitriev: area=awt.event
+  @run applet InfiniteRecursion_2.html
+  -->
+<head>
+<title>  </title>
+</head>
+<body>
+
+<h1>InfiniteRecursion_2<br>Bug ID: 6480024 </h1>
+
+<p> This is an AUTOMATIC test, simply wait for completion </p>
+
+<APPLET CODE="InfiniteRecursion_2.class" WIDTH=200 HEIGHT=200></APPLET>
+</body>
+</html>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ * 
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ * 
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ * 
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* 
+  test 1.1 07/07/24
+  @bug 6480024
+  @library ../../../regtesthelpers
+  @build Util Sysout AbstractTest
+  @summary stack overflow on mouse wheel rotation within Applet
+  @author Andrei Dmitriev: area=awt.event
+  @run applet InfiniteRecursion_2.html
+*/
+
+/**
+ * InfiniteRecursion_2.java
+ *
+ * summary: put a JButton into JPanel and then put JPanel into Applet.
+ * Add MouseWheelListener to Applet.
+ * Add MouseListener to JPanel.
+ * Rotating a wheel over the JButton would result in stack overflow.
+
+ * summary: put a JButton into JApplet.
+ * Add MouseWheelListener to JApplet.
+ * Rotating a wheel over the JButton would result in stack overflow.
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import test.java.awt.regtesthelpers.Util;
+import test.java.awt.regtesthelpers.AbstractTest;
+import test.java.awt.regtesthelpers.Sysout;
+
+import java.applet.Applet;
+
+public class InfiniteRecursion_2 extends Applet {
+    final static Robot robot = Util.createRobot();
+    final static int MOVE_COUNT = 5;
+    static int actualEvents = 0;
+
+    public void init() 
+    {
+        setLayout (new BorderLayout ());
+    }//End  init()
+
+    public void start ()
+    {
+        JPanel outputBox = new JPanel();
+        JButton jButton = new JButton();
+        
+        this.setSize(200, 200);
+        this.addMouseWheelListener(new MouseWheelListener() {
+                public void mouseWheelMoved(MouseWheelEvent e)
+                {
+                    System.out.println("Wheel moved on APPLET : "+e);
+                    actualEvents++;
+                }
+            });
+        
+        outputBox.addMouseListener(new MouseAdapter() {
+                public void mousePressed(MouseEvent e)
+                {
+                    System.out.println("MousePressed on OUTBOX : "+e);
+                }
+                
+            });
+        this.add(outputBox);
+        outputBox.add(jButton);
+        
+        this.setVisible(true);
+        this.validate();
+
+        
+        Util.waitForIdle(robot);
+        
+        Util.pointOnComp(jButton, robot);
+        Util.waitForIdle(robot);
+        
+        for (int i = 0; i < MOVE_COUNT; i++){
+            robot.mouseWheel(1);
+            robot.delay(10);
+        }
+
+        for (int i = 0; i < MOVE_COUNT; i++){
+            robot.mouseWheel(-1);
+            robot.delay(10);
+        }
+
+        Util.waitForIdle(robot);
+        if (actualEvents != MOVE_COUNT * 2) {
+            AbstractTest.fail("Expected events count: "+ MOVE_COUNT+" Actual events count: "+ actualEvents);
+        }
+    }// start()
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,23 @@
+<html>
+<!--  
+  @test 1.1 07/07/24
+  @bug 6480024
+  @library ../../../regtesthelpers
+  @build Util Sysout AbstractTest
+  @summary stack overflow on mouse wheel rotation within JApplet
+  @author Andrei Dmitriev: area=awt.event
+  @run applet InfiniteRecursion_3.html
+  -->
+<head>
+<title>  </title>
+</head>
+<body>
+
+<h1>InfiniteRecursion_3<br>Bug ID: 6480024 </h1>
+
+<p> This is an AUTOMATIC test, simply wait for completion </p>
+
+<APPLET CODE="InfiniteRecursion_3.class" WIDTH=200 HEIGHT=200></APPLET>
+</body>
+</html>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ * 
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ * 
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ * 
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* 
+  test 1.1 07/07/24
+  @bug 6480024
+  @library ../../../regtesthelpers
+  @build Util Sysout AbstractTest
+  @summary stack overflow on mouse wheel rotation within Applet
+  @author Andrei Dmitriev: area=awt.event
+  @run applet InfiniteRecursion_3.html
+*/
+
+/**
+ * InfiniteRecursion_3.java
+ *
+ * summary: put a JButton into Applet.
+ * Add MouseWheelListener to Applet.
+ * Rotating a wheel over the JButton would result in stack overflow.
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import test.java.awt.regtesthelpers.Util;
+import test.java.awt.regtesthelpers.AbstractTest;
+import test.java.awt.regtesthelpers.Sysout;
+import java.applet.Applet;
+
+public class InfiniteRecursion_3 extends Applet {
+    final static Robot robot = Util.createRobot();
+    final static int MOVE_COUNT = 5;
+    static int actualEvents = 0;
+
+    public void init() 
+    {
+        setLayout (new BorderLayout ());
+    }//End  init()
+
+    public void start ()
+    {
+        JButton jButton = new JButton();
+        
+        this.setSize(200, 200);
+        this.addMouseWheelListener(new MouseWheelListener() {
+                public void mouseWheelMoved(MouseWheelEvent e)
+                {
+                    System.out.println("Wheel moved on APPLET : "+e);
+                    actualEvents++;
+                }
+            });
+        
+        this.add(jButton);
+        
+        this.setVisible(true);
+        this.validate();
+        
+        Util.waitForIdle(robot);
+        
+        Util.pointOnComp(jButton, robot);
+        Util.waitForIdle(robot);
+        
+        for (int i = 0; i < MOVE_COUNT; i++){
+            robot.mouseWheel(1);
+            robot.delay(10);
+        }
+
+        for (int i = 0; i < MOVE_COUNT; i++){
+            robot.mouseWheel(-1);
+            robot.delay(10);
+        }
+
+        Util.waitForIdle(robot);
+        if (actualEvents != MOVE_COUNT * 2) {
+            AbstractTest.fail("Expected events count: "+ MOVE_COUNT+" Actual events count: "+ actualEvents);
+        }
+    }// start()
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ * 
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ * 
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ * 
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* 
+  @test 1.1 07/07/24
+  @bug 6480024
+  @library ../../../regtesthelpers
+  @build Util Sysout AbstractTest
+  @summary check that the wheel event is generated over the JFrame
+  @author Andrei Dmitriev: area=awt.event
+  @run main InfiniteRecursion_4
+*/
+
+/**
+ * InfiniteRecursion_4.java
+ *
+ * summary: create simple JFrame and check that the WheelEvent is generated over it.
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import test.java.awt.regtesthelpers.Util;
+import test.java.awt.regtesthelpers.AbstractTest;
+import test.java.awt.regtesthelpers.Sysout;
+
+public class InfiniteRecursion_4 {
+    final static Robot robot = Util.createRobot();
+    final static int MOVE_COUNT = 5;
+    static int actualEvents = 0;
+
+    public static void main(String []s)
+    {
+        JFrame frame = new JFrame("A test frame");
+        
+        frame.setSize(200, 200);
+        frame.addMouseWheelListener(new MouseWheelListener() {
+                public void mouseWheelMoved(MouseWheelEvent e)
+                {
+                    System.out.println("Wheel moved on FRAME : "+e);
+                    actualEvents++;
+                }
+            });
+        
+        frame.setVisible(true);
+        
+        Util.waitForIdle(robot);
+        
+        Util.pointOnComp(frame, robot);
+        Util.waitForIdle(robot);
+        
+        for (int i = 0; i < MOVE_COUNT; i++){
+            robot.mouseWheel(1);
+            robot.delay(10);
+        }
+
+        for (int i = 0; i < MOVE_COUNT; i++){
+            robot.mouseWheel(-1);
+            robot.delay(10);
+        }
+
+        Util.waitForIdle(robot);
+        if (actualEvents != MOVE_COUNT * 2) {
+            AbstractTest.fail("Expected events count: "+ MOVE_COUNT+" Actual events count: "+ actualEvents);
+        }
+    }
+}
--- a/j2se/test/java/awt/regtesthelpers/Util.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/java/awt/regtesthelpers/Util.java	Fri Aug 31 00:44:13 2007 +0000
@@ -123,15 +123,37 @@
         throw new RuntimeException("Unexpected toolkit - " + tk);
     }
 
-    public static void clickOnComp(final Component comp, final Robot robot) {
+    /**
+     * Moves mouse pointer in the center of given {@code comp} component
+     * using {@code robot} parameter.
+     */
+    public static void pointOnComp(final Component comp, final Robot robot) {
         Rectangle bounds = new Rectangle(comp.getLocationOnScreen(), comp.getSize());
         robot.mouseMove(bounds.x + bounds.width / 2, bounds.y + bounds.height / 2);
-        robot.delay(50);
+    }
+
+    /**
+     * Moves mouse pointer in the center of a given {@code comp} component
+     * and performs a left mouse button click using the {@code robot} parameter
+     * with the {@code delay} delay between press and release.
+     */
+    public static void clickOnComp(final Component comp, final Robot robot, int delay) {
+        pointOnComp(comp, robot);
+        robot.delay(delay);
         robot.mousePress(InputEvent.BUTTON1_MASK);
-        robot.delay(50);
+        robot.delay(delay);
         robot.mouseRelease(InputEvent.BUTTON1_MASK);
     }
 
+    /**
+     * Moves mouse pointer in the center of a given {@code comp} component
+     * and performs a left mouse button click using the {@code robot} parameter
+     * with the default delay between press and release.
+     */
+    public static void clickOnComp(final Component comp, final Robot robot) {
+        clickOnComp(comp, robot, 50);
+    }
+
     /*
      * Clicks on a title of Frame/Dialog.
      * WARNING: it may fail on some platforms when the window is not wide enough.
--- a/j2se/test/java/lang/String/Supplementary.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/java/lang/String/Supplementary.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,9 +22,9 @@
  */
 
 /*
- * 1.7 07/05/05
+ * 1.8 07/08/06
  * @test
- * @bug 4533872 4915683 4922962 4985217 5017280 6242664
+ * @bug 4533872 4915683 4922962 4985217 5017280 6242664 6588260
  * @summary Unit tests for supplementary character support (JSR-204)
  */
 
@@ -86,7 +86,7 @@
      * Each character in each array is the golden data for each text string
      * in the above input data. For example, the first data in each array is
      * for the first input string.
-     */ 
+     */
     static final int[][] golden1 = {
 	{'a',    0xD800,  0xDC00, 0x10000, 0xE0200, 0x10000},// codePointAt(0)
 	{0xD800, 0x10000, 'g',    0xDC00,  0xE0202, 0xDC04}, // codePointAt(9)
@@ -125,13 +125,13 @@
      * Each character in each array is the golden data for each text string
      * in the above input data. For example, the first data in each array is
      * for the first input string.
-     */ 
+     */
     static final int[][] golden2 = {
 	{'a',    0xD800, 0xDC00,  0xD800,  0xDB40,  0xD800}, // codePointBefore(1)
 	{0xD800, 'l',    0x10000, 0xDC00,  0xDB40,  0xD800}, // codePointBefore(13)
 	{'f',    0xDC00, 0xD800,  0x10000, 0xE0202, 0x10010},// codePointBefore(length)
 	{'b',    'd',    'a',     0xDC00,  0xDE00,  0xDC00}, // codePointBefore() for a substring
-    }; 
+    };
 
     /*
      * Test for codePointBefore(int index) method
@@ -179,16 +179,16 @@
      *   In other words, the data format is
      *     { ch, -1, index1, index2, ..., -1}
      *   where index1, index2, ... are all indices of the ch occurrences.
-     */ 
+     */
     static final int[][] golden3 = {
-      /* ch       indices */ 
+      /* ch       indices */
 	{'b',     -1,  1, 11, 20,  -1},
 	{0xD800,  -1,  0,  5,  9,  19, -1},
 	{0xDC00,  -1,  0, 12, 16,  17, 20, -1},
 	{0x10000, -1,  0,  8, 21,  -1},
 	{0xE0202, -1,  9, 17, -1},
 	{0x1000A, -1, 22, 30, -1}
-    }; 
+    };
 
     /*
      * Test for indexOf(int ch) method
@@ -363,6 +363,26 @@
 	    codePoints[offset] = Character.MAX_CODE_POINT+1;
 	    testNewString(codePoints, 0, count, IllegalArgumentException.class);
 	}
+
+	{
+	    // 6588260: (str) ArrayIndexOutOfBoundsException when trying
+	    // to create a String from codePoints
+	    //int[] x = new int[Character.MAX_CODE_POINT+1];
+	    int[] x = new int[Character.MAX_CODE_POINT];
+	    for (int i = 0; i < x.length; i++)
+		if (i != 0xdbff) // For round-trip safety
+		    x[i] = i;
+	    final String s = new String(x, 0, x.length);
+ 	    check(s.codePointCount(0, s.length()) != x.length,
+ 		  "s.codePointCount(0, s.length()) != x.length");
+ 	    check(s.length() <= x.length,
+ 		  "s.length() <= x.length");
+	    for (int i = 0, j = 0; i < x.length; i++) {
+		int c = s.codePointAt(j);
+		check(c != x[i], "c != x[i]");
+		j += Character.charCount(c);
+	    }
+	}
     }
 
     /**
--- a/j2se/test/java/lang/ref/SoftReference/Pin.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/java/lang/ref/SoftReference/Pin.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,7 +21,7 @@
  * have any questions.
  */
 
-/* @test 1.6 07/08/16
+/* @test 1.6 07/08/30
  * @bug 4076287
  * @summary Invoking get on a SoftReference shouldn't pin the referent
  * @run main/othervm -ms16m -mx16m Pin
--- a/j2se/test/java/security/Security/signedfirst/Dyn.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/java/security/Security/signedfirst/Dyn.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -21,7 +21,7 @@
 # have any questions.
 #
 
-# @test 1.7 07/08/16
+# @test 1.7 07/08/30
 # @bug 4504355
 # @summary problems if signed crypto provider is the most preferred provider
 #
--- a/j2se/test/java/security/Security/signedfirst/Static.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/java/security/Security/signedfirst/Static.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -21,7 +21,7 @@
 # have any questions.
 #
 
-# @test 1.8 07/08/16
+# @test 1.8 07/08/30
 # @bug 4504355 4744260
 # @summary problems if signed crypto provider is the most preferred provider
 #
--- a/j2se/test/java/util/Arrays/Correct.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/java/util/Arrays/Correct.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,6 +21,12 @@
  * have any questions.
  */
 
+/*
+ * @test 1.6 07/08/08
+ * @bug 4726380
+ * @summary Check that different sorts give equivalent results.
+ */
+
 import java.util.*;
 
 public class Correct {
@@ -94,4 +100,3 @@
         }
     }
 }
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/java/util/Collections/CheckedIdentityMap.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test 1.1 07/08/10
+ * @bug 6585904
+ * @summary Checked collections with underlying maps with identity comparisons
+ */
+
+import java.util.*;
+import static java.util.Collections.*;
+
+public class CheckedIdentityMap {
+    void test(String[] args) throws Throwable {
+        Map<Integer, Integer> m1 = checkedMap(
+	    new IdentityHashMap<Integer, Integer>(),
+	    Integer.class, Integer.class);
+        Map<Integer, Integer> m2 = checkedMap(
+	    new IdentityHashMap<Integer, Integer>(),
+	    Integer.class, Integer.class);
+        m1.put(new Integer(1), new Integer(1));
+        m2.put(new Integer(1), new Integer(1));
+        
+        Map.Entry<Integer, Integer> e1 = m1.entrySet().iterator().next();
+        Map.Entry<Integer, Integer> e2 = m2.entrySet().iterator().next();
+	check(! e1.equals(e2));
+	check(e1.hashCode() == hashCode(e1));
+	check(e2.hashCode() == hashCode(e2));
+    }
+    
+    int hashCode(Map.Entry<?,?> e) {
+        return (System.identityHashCode(e.getKey()) ^
+		System.identityHashCode(e.getValue()));
+    }
+
+    //--------------------- Infrastructure ---------------------------
+    volatile int passed = 0, failed = 0;
+    void pass() {passed++;}
+    void fail() {failed++; Thread.dumpStack();}
+    void fail(String msg) {System.err.println(msg); fail();}
+    void unexpected(Throwable t) {failed++; t.printStackTrace();}
+    void check(boolean cond) {if (cond) pass(); else fail();}
+    void equal(Object x, Object y) {
+	if (x == null ? y == null : x.equals(y)) pass();
+	else fail(x + " not equal to " + y);}
+    public static void main(String[] args) throws Throwable {
+	new CheckedIdentityMap().instanceMain(args);}
+    void instanceMain(String[] args) throws Throwable {
+	try {test(args);} catch (Throwable t) {unexpected(t);}
+	System.out.printf("%nPassed = %d, failed = %d%n%n", passed, failed);
+	if (failed > 0) throw new AssertionError("Some tests failed");}
+    abstract class F {abstract void f() throws Throwable;}
+    void THROWS(Class<? extends Throwable> k, F... fs) {
+	for (F f : fs)
+	    try {f.f(); fail("Expected " + k.getName() + " not thrown");}
+	    catch (Throwable t) {
+		if (k.isAssignableFrom(t.getClass())) pass();
+		else unexpected(t);}}
+    Thread checkedThread(final Runnable r) {
+	return new Thread() {public void run() {
+	    try {r.run();} catch (Throwable t) {unexpected(t);}}};}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/java/util/Collections/CheckedNull.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,189 @@
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test 1.1 07/08/10
+ * @bug 6409434
+ * @summary Test behavior of nulls in checked collections
+ */
+
+import java.util.*;
+import static java.util.Collections.*;
+
+@SuppressWarnings({"unchecked","serial"})
+public class CheckedNull {
+
+    void test(String[] args) throws Throwable {
+        testCollection(Collections.checkedCollection(
+			   new ArrayList<String>(), String.class));
+        testCollection(Collections.checkedList(
+			   new ArrayList<String>(), String.class));
+        testCollection(Collections.checkedSet(
+			   new HashSet<String>(), String.class));
+
+	final Comparator nullLow = new Comparator() {
+		public int compare(Object x, Object y) {
+		    return x == y ?  0 :
+			x == null ? -1 :
+			y == null ?  1 :
+			((Comparable)x).compareTo(y); }};
+	testCollection(Collections.checkedSortedSet(
+ 			   new TreeSet<String>(nullLow), String.class));
+
+        testMap(Collections.checkedMap(
+		    new HashMap<String, String>(),
+		    String.class, String.class));;
+    }
+
+    ClassCastException cce(F f) {
+	try { f.f(); fail(); return null; }
+	catch (ClassCastException cce) { pass(); return cce; }
+	catch (Throwable t) { unexpected(t); return null; }
+    }
+
+    void equalCCE(F ... fs) {
+	String detailMessage = null;
+	for (F f : fs)
+	    if (detailMessage == null)
+		detailMessage = cce(f).getMessage();
+	    else
+		equal(detailMessage, cce(f).getMessage());
+    }
+
+    void add(Collection c, Object o) {
+	int s = c.size();
+	check(! c.contains(o));
+	check(c.add(o));
+	check(c.contains(o));
+	equal(c.size(), s+1);
+	check(c.remove(o));
+	check(! c.contains(o));
+	check(c.addAll(singleton(o)));
+	check(c.contains(o));
+	equal(c.size(), s+1);
+	check(c.remove(o));
+	equal(c.size(), s);
+    }
+
+    void testCollection(final Collection c) {
+	try {
+	    check(c.isEmpty());
+	    add(c, null);
+	    add(c, "foo");
+
+	    check(c.add("bar"));
+	    add(c, null);
+	    add(c, "foo");
+
+	    equalCCE(
+		new F(){void f(){ c.add(1); }},
+		new F(){void f(){ c.addAll(singleton(1)); }});
+
+	} catch (Throwable t) { unexpected(t); }
+    }
+
+    void put(Map m, Object k, Object v) {
+	int s = m.size();
+	check(! m.containsKey(k));
+	check(! m.containsValue(v));
+	equal(null, m.put(k, v));
+	check(m.containsKey(k));
+	check(m.containsValue(v));
+	equal(m.size(), s+1);
+	equal(v, m.remove(k));
+	check(! m.containsKey(k));
+	check(! m.containsValue(v));
+	m.putAll(singletonMap(k,v));
+	check(m.containsKey(k));
+	check(m.containsValue(v));
+	equal(m.size(), s+1);
+	equal(v,m.remove(k));
+	equal(m.size(), s);
+    }
+
+    void testMap(final Map m) {
+	try {
+	    check(m.isEmpty());
+
+	    put(m, "foo", null);
+	    put(m, null, "foo");
+	    put(m, null, null);
+	    put(m, "foo", "bar");
+
+	    m.put("a", "b");
+
+	    put(m, "foo", null);
+	    put(m, null, "foo");
+	    put(m, null, null);
+	    put(m, "foo", "bar");
+
+	    equalCCE(
+		new F(){void f(){ m.put(1, "foo"); }},
+		new F(){void f(){ m.putAll(singletonMap(1, "foo")); }});
+
+	    final Collection cheater = new ArrayList() {
+		    public boolean contains(Object o) {
+			if (o instanceof Map.Entry)
+			    ((Map.Entry)o).setValue(1);
+			return false; }};
+
+	    equalCCE(
+		new F(){void f(){ m.put("foo", 1); }},
+		new F(){void f(){ m.putAll(singletonMap("foo", 1)); }},
+		new F(){void f(){
+		    ((Map.Entry)m.entrySet().iterator().next()).setValue(1); }},
+		new F(){void f(){
+		    m.entrySet().removeAll(cheater);}},
+		new F(){void f(){
+		    m.entrySet().retainAll(cheater);}});
+
+	    equalCCE(
+		new F(){void f(){ m.put(3, 1); }},
+		new F(){void f(){ m.putAll(singletonMap(3, 1)); }});
+
+	    equal(m.size(), 1);
+	    equal(m.keySet(), singleton("a"));
+	    equal(m.entrySet(),
+		  singleton(new AbstractMap.SimpleImmutableEntry("a","b")));
+	    
+	} catch (Throwable t) { unexpected(t); }
+    }
+
+    //--------------------- Infrastructure ---------------------------
+    volatile int passed = 0, failed = 0;
+    void pass() {passed++;}
+    void fail() {failed++; Thread.dumpStack();}
+    void fail(String msg) {System.err.println(msg); fail();}
+    void unexpected(Throwable t) {failed++; t.printStackTrace();}
+    void check(boolean cond) {if (cond) pass(); else fail();}
+    void equal(Object x, Object y) {
+	if (x == null ? y == null : x.equals(y)) pass();
+	else fail(x + " not equal to " + y);}
+    public static void main(String[] args) throws Throwable {
+	new CheckedNull().instanceMain(args);}
+    void instanceMain(String[] args) throws Throwable {
+	try {test(args);} catch (Throwable t) {unexpected(t);}
+	System.out.printf("%nPassed = %d, failed = %d%n%n", passed, failed);
+	if (failed > 0) throw new AssertionError("Some tests failed");}
+    abstract class F {abstract void f() throws Throwable;}
+}
--- a/j2se/test/javax/management/ImplementationVersion/ImplVersionCommand.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/javax/management/ImplementationVersion/ImplVersionCommand.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,7 +25,7 @@
  * @(#)file      ImplVersionCommand.java
  * @(#)author    Sun Microsystems, Inc.
  * @(#)version   1.6
- * @(#)date      07/08/16
+ * @(#)date      07/08/30
  */
 
 import javax.management.MBeanServer;
--- a/j2se/test/javax/management/ImplementationVersion/ImplVersionReader.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/javax/management/ImplementationVersion/ImplVersionReader.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,7 +25,7 @@
  * @(#)file      ImplVersionReader.java
  * @(#)author    Sun Microsystems, Inc.
  * @(#)version   1.4
- * @(#)date      07/08/16
+ * @(#)date      07/08/30
  */
 
 import java.io.BufferedReader;
--- a/j2se/test/javax/management/monitor/MBeanServerBuilderImpl.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/javax/management/monitor/MBeanServerBuilderImpl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,7 +25,7 @@
  * @(#)file      MBeanServerBuilderImpl.java
  * @(#)author    Sun Microsystems, Inc.
  * @(#)version   1.4
- * @(#)date      07/08/16
+ * @(#)date      07/08/30
  */
 
 import javax.management.MBeanServer;
--- a/j2se/test/javax/management/monitor/MBeanServerForwarderInvocationHandler.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/javax/management/monitor/MBeanServerForwarderInvocationHandler.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,7 +25,7 @@
  * @(#)file      MBeanServerForwarderInvocationHandler.java
  * @(#)author    Sun Microsystems, Inc.
  * @(#)version   1.4
- * @(#)date      07/08/16
+ * @(#)date      07/08/30
  */
 
 import java.lang.reflect.InvocationHandler;
--- a/j2se/test/javax/management/remote/mandatory/version/ImplVersionCommand.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/javax/management/remote/mandatory/version/ImplVersionCommand.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,7 +25,7 @@
  * @(#)file      ImplVersionCommand.java
  * @(#)author    Sun Microsystems, Inc.
  * @(#)version   1.4
- * @(#)date      07/08/16
+ * @(#)date      07/08/30
  */
 
 import javax.management.remote.rmi.RMIJRMPServerImpl;
--- a/j2se/test/javax/management/remote/mandatory/version/ImplVersionReader.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/javax/management/remote/mandatory/version/ImplVersionReader.java	Fri Aug 31 00:44:13 2007 +0000
@@ -25,7 +25,7 @@
  * @(#)file      ImplVersionReader.java
  * @(#)author    Sun Microsystems, Inc.
  * @(#)version   1.4
- * @(#)date      07/08/16
+ * @(#)date      07/08/30
  */
 
 import java.io.BufferedReader;
--- a/j2se/test/sun/net/www/http/ChunkedInputStream/test.txt	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/sun/net/www/http/ChunkedInputStream/test.txt	Fri Aug 31 00:44:13 2007 +0000
@@ -1,2 +1,2 @@
-Fo`kMsMr*sth,dr2oD]eg<N\U4KGXn2VQ,&'!;AW&I["@nZQJWPG$PpAl;1AZ@R:DZ4;<,C-&1H7ZAjAq7LN`NV[,YDa^JKW_!oW6>=tA9q;%*^5$1[C24!O=7p0LB8c6EQ:bpii++fSJsNl3$mN#K[2eL#%d>c<39pV55VfO? t5a5 >+g-X9Yc=es5sI-ts)A9R5TqE?/<M.C8Zl  ^n"s`BDQp*W@oVW;]I'.h/b1:4!=.W%/01LcYF7=Um1(.GNWiH:Kp?Ch12Bg[5M`,TTE5TN\pba^I;oM2Z<O9%>*KqR@#RqN\;Cb99`H0d5^K*=fJ<]%Sd>i1hpA>313bbb#MCtA</sM^aXko^.Z7+VJ+(EYJgJ;j*\%5@13(Wd^;PcjC44A  I$8,VM>Eg2T*ancMc.8]W(7%'g.#VpQC!2AZ(0oW12mIhnJ-G]D;Q6OF(eon*,UL_H'UE 4Y? 1?_,2ia$K^X?R  hhS3!R5BC,T<ZN5!YZd6fQIR#P5G9=')C%:&VSLdN^\Q=(FarUg3XE_^O&Pgd`)M[,?JMA(tc@C?lCJElM>>@#rs1 gF*lPf8,*cCi:nAaE%*,qP_ofK<pL[$Mk;2G/Yp+/G1pr\l^!M.q<kd)1"Vlkr(fg;1^t-eBC0# -tR@1_oAY#7OSHnE=pt A/h_K[T[d[A-EmPnXA5VV2dAf(\"gAR$FA%$4@ TTG_O?MHmO[);^]F##V68*QQ'&B%p<rfl-LXiD[Oi3s;l6aCfB$UP,?TEArTRhX@<"d8%#K%`]$V=3-:kb%mdJi8CW_5"V/'4\V6cVn(YGRK[4odBH!?#G1^%*8Li_!UI[(4t4WjSQ6>]hZ@>cQ?A;,EH7fU]GR2p25#UA$.oE5/ETshg=9Vk_;RC#<^nK?)PKL(YCWdtBChB*T>[%;/@Rq[Alea)>Ib^QrKHG2KcbE0mD&/'eS*tX&\8+U,Q#Zm_`8?%In$FLme]D% ()6T<AlGK&rH3GdpT73OclHAtINAkXo9otK-O+;eAd>Es4q.E.\S$= 7iO_5W?K\UA2:WSgk?-p@=SQU#E/1!4.@--8IW]kLr"j;$TCUr,R,s7OlD-(o#dlEef9VK?'53Xq]/3-s!3B?Z&#3Ok&d'a*X1TRs$(?O`DTmX3mPX,>=,![AO/gEO^,W^00>Aq\)M=a3:U`AVleR6-Y[4qdj1Nl,gEDi']t&><6n0#)'Z0Ci.pZY$d1A4E?FrX9Blka%LHWMd ilA@#'i'db3# ]+Mf4VRQn6'nXg#E)I(8<5I&(lT5Y$1s.5[0tYd]IbLkgGlt%?^MHq!k!h'FP18>%"oqn+V?WX<FN2Q /=3aW@ri7A8]i.)<pP=;OJ(Z)@(kk2Yt5_?/'hVjq&n'-sU`1& BJfe9*!JgT84l]Po+=(geID#F=d-($??n#64nRW<AAK%Zd$#23 k]M-`N#T9dnAkX-$WAJJ"GjGp($L]#7h9WMkYN3Z:#eW-.0F=5CeT(K$afW!t/NcVDa*SIRV`ASWk#UnIfb8Q.&pG\)7]E\abi^ )"W*e4ab\s"V@D%?Hp`?sB,We. -tdprb$B&>AK,6JP\KYb5jIJZAG 7F"0a<l?+^R6iPro=S`r-VWEcYRA'-*)?Hn;sK<dN;B2ZRZ&EsB20,MGK34ODqIA<^D(#*Ahcm]XRb_7-jtt0AegK\`A+pX5l dcLk(K!!FcE-9CcI.`M5%N(X$)lMOAaX;8Aei1;3MS<c#/eKhS]\\X;7&aoO:S$^efs9po;[JAY2LrVMALKAXAoY)jW2+n6'?#,UrD.3Y);"?JBb_5B7T]o/.dZc\qaF5-] ADXZJM:f%F&bDZ8dBK;"iW]_U_?TeC+[*a.o[MR.$G/7^Q\fRhVa BfIhNA&Z]=;<#mFl<G$/V=#WI\cG0;+g e-*7cAg<UIci"i+If;"PRrU&C;4poA#%*GfQ>'"A"g<61lB:'^;idCr*82Z>MEOCeHqH^Se6;OgKSWR]"Kji7'1:VI)AC"nA7mhWM*okf"4,G7hm:c6B&$3CM.8fIbb[kPX',j^&K6"IoHXPQgY>@E=HE0-$10tpQ mXol_g,-rmo11C4F3b8t;@JINZ.t#TT7eG.+CjQ&NN)IqI3hE6EF'h)!f6spqV,fm4`H<PRgV5N*r3r2%sSB.9g3R,SAqV8XY<n5WR\)2)2GA H)bCIH2iNTJFY_lg%KBX22=lb66^K?_K<FCbElA(IEaX`H',\"!Z9l][*XjKscs(;`\fgDRPrVO1.1N%NnWgl;I^B__B/-Zs%!K(5jV'A!$">irb'7+pr8Y,NqR^eF_23mt@C3@MGAHm0d;3rY&+tsK(BK30:V]"gTpI=$ms8j*+qddro#A(Y64/i!F2PA3<9/WQX?l6QV^V&)m!C]F$@ 468?JD8p``2c.;]3mkp)Bl'X2PpYSi+[t<UF\X)=EGfr K?A/;Dgq)qD4.4c)7Y&PKg>Es^%2h ,)YbjfMA5:dYE'1)rb]]/j1?:Iq37N8f.>+UQ "f5qFFYloKPQ`I#0ZFLrgQ1WQ\:)L-6\$Q1UDgI!d,_#),YE90K^EY0*0saQnl48<1`(@3L%LshoA?:5Gd0,6/b0!pIibT2UW9c()EH0.+>aoE%`]e[:.A!9^rMan?\peDIlNkjaJiX-=gYcFoXXbTYD8+Sp8US^t0cBf3@I?<7&f 2%n9!]t9rF_flN_U)74!ghb.I!'D4n5dim##5j:?GPH_3Q;gB$j'qNk[H,%n6dc0aBl&>PN-X3J.[pNK 2S'oEm_dsA1&+b`$3h32%m)"QNiJIWX9%*49_)I&ARkIm:gM(Vh!$bI1iSC/;/efNr_`sWbT'>T;fNIJ<%NW0%A)]npAdI>\KaA[.G-8An8&VN6)A$o4,@31\];&k4*=*?pasKksN1=1l-ISJEY/_`=U]j[Td-9;(OFh(IHp70H!2kN/9to//b/_ar&/Xe9CmaqX:`X,S\^A+AQes./s'F:2ZMY :m H+3XS)l35Y]AicKV"G?4XERT;gD?+<J[(S*sDO2A:?Dc6?!]qOVRIYF4bMiFBo]LVRGl:L0SGI!&i%Rq<%KXn8l<)B"OVtd?=)5)>)S.0?,8X=414C$hD`@?3"Sc/s>A[bFPR^]CnN8ml`[pD$q%M,aSCC$b$#D!JN=;^9VLl>P$8s).J7tC!^LQ,c4dPAoU,M7NmQk=90>$=:&_J;s?Y$/#I^h_`%2K$[^S[7f=Oa21<Q!o%eb5FXT:E'=\8k,(oaOF#76[i!T,B`i3",0)r[-8]tkf-ZUWdKr+Sf2dM',1-Pkn/V:p1=[ @a@rRgtt79k<Y"HK+;U;l-5*JOGJ: IWH[>sm+aM=G89g8RD:KQ)pRKLf'/>$ciA'Lr7+X'%1D+6hDh@8G#+B:/_"EaEc)VPU$kLC32rR-?HCm_QlA2Qlf[@n^K'OC7CDEFI]`;C5.EQ$V0,V.<E#;<.J8PiYa`M$FYCP[8$3Dif8K'RSc@r@MF XRPUqE?nmRhVE4D<^[%5D(^.>V.t4OQ_mqq37`53H)8rAGPldR>'1DEec?"2IGY,ane;V7C:K/__[:&<dboAG@@WqJZ:3<^.ffSXTgT(X./0T_"B06!]fejtX+?"dGC#nSP\JUSFU'mS22bI#WAp\83A2T(Mah,S`@56_B\r2.1Q9=f(-6K6YZ#Gf\;o,  7.cIAMP_(5X2O("&7fr`;lO2!5=W,8`9`s/6N!+6+A!PJfWK\A< XSr6gdpo=eE!e1jqMR"ptea0A+i[Qf<Y ,)YtQ4qA7e+#E6pcFs\c^_<f0?p9bUt .#?dSj*JeK,#2QE0&9/;dM6iN8/$K%=&i[%pcCmf(;`,.]qK;nG4UM2&k%eI;9$sf-XZBajKVLE==J>-Q(Y3DN39tKGiOML4ZJ/]jY*6K("f?j]d5Q`"(!a6^EnhMXs-4(YR2'J@A!hV_VYI.'P,/ct:aiY%I5X*@<<!f2$Fd[n#8H>Xt!%`[GkeOtZa[( XBpK2#?$1UiL2i!?t8SDQ]UBEW@5SN:$qlSg'CJ>p4G44h[U)U*4s.C'ieWRf:.VF]R(Q.iRPRAi0HUFmR8GAtnR1D&03T):Hpn+RlJa>:[U<*83'R<ZrVPX-mARst:2b;nm:8`R ah-e5GLA0Go'>8Fr%W$]?l)KANM[Ttj gKAfib:.oo,D?jMTW<3DIFMR\io*NBBA$.9'8A6g#(FsamZsV[>Ml`Y&<W"Tq)i8'ROHA9<4@#a56nIM,ME'>LJ18>52+]9pLqoAIWG##HMS2`^SX$'N0dP/)7*DVh;<llE__mo^GAHFXh+,nhg[,\S`oWd!dH+iUA)Cg@qlT jQ?8()W2`0RA9_i Y;!EBdA$_[IX'ERYmL[MkeMnHN0 R"8Nhn7>%)Hh\ e7F@VP61nAQm%^$@;fs\@mrNC5=Or32)c[O6G3#OrFN>k;m0oPe/]0!.i=5Qp+Is@bJ<-cLh_.Ia91f6M+7l;+\mH7V$Ai"4mAp<H ?)6O[-8rE,S6O8'mV??t@ZF^mZ@@"eZhf6M(b3j32;E*13J*rZY9jWB=Zn[(?GU-9>-#Y(jDKCL:4Vr!h#<idLO<paCgYJdN^6rIJk_[]])O!JW%n`EiNq^ZUXL#,))es;M*=%h'#*Mlod2%-Db)MM 0OJMn95,+N]`l#5MM/:hb8V0R/n[)D3WG#@^.(#o%be-5gJH-Fs"`2VH 5"Aj/cV#ZXCH:9ko0jWL:<B+)"J`.l<8K*)-A:QX/($milWkP1L1aQR%"0GU-_".E5"J>k8<CSPU?ieVSFh<(F niAmnHk!l$\sf_=jraa7AK2de2AF2>R"*n88`WB?N)/o9KG\8A]PmSnj,=q=h!%(X+*%Z_/ApSK0`.L;*%@G22NlmG='pP%,JBl$WZ:AS)rlaK/^(J+B^6fW*E C37[ae^A]L@g$;/Ho)o)1:W6q><Q\E7s9(h`c'OTETn:!q`s_K2),-SGXf+!'fgMAqN9/N3,ZS`+`VOd9oT'@B@5ZB<Pk>GbC42!!oDY5#cMQmK3-<)(m#=s%&K37[:CU-hm->V"/AM\ 2BfkNtlILl`fPWRG^+d_9rcNQFckrMM.!3jP2V<b(:QZiAo6XdK KD5-f95M&=Y$'1hV=]F?b6E"^W.I2<7kgnUQlj;YQ'W8NFe?Pc%[Z^BEnel*gUJ:gp`7lGR<sWo*:L^,I@i9KoZ#DK_R/P.QZ(FLN!RO<DH7qY33s88-V/:nIV`_e;!=EW,M.@b!K8$g(:&dKd 1+ghHQ_)#L(]BR=Qg"d1(IaaPU#L=m;U#U;_cR6@A4CTAWnRrdMHjg%2blsYFa!,V9q^;*o"9e]j/-fg.; I@=hri190<\Ld;U^_L"G%ZtjfQor;mA/V<SE%9 DK;JB9^>fg5_YboSY$].O r)#c8_"RFR#WEt(dQCYF8h;ngfPe^Ero9^bWGha"p"J]+f.<>A`G s^Xs9s%I&aF3k(BC@WZ"J9-425-K3884cC_#0Z2 >%o<rip@)O#%A62g?fTsOAa4a36q&D3AJ!JkoSjsXE1#n12,,+n* ,d(o'Z+`;2,RCd]9[%@hTE9r8I-HJOJ$P6':P0,A<mgI%NSe 5tm=.l9eXj9T'I%al,J9A(=rRomPh3n@OVjk>&UIrn.]!F8I#*Th=17cHo>^;_8dB:>NMm'XX<sZM8$3UsY(sJ-An`L0_.!/GhED.&$37=>@beT#@YdX3DFir7"Q'tVgC2$3="Ke9<0Z/i"]":tD-/nfkbdT_X/f)ka]=.l!c?IXTW,9!34IK/'*,/.8OA`8aoXCBI)SGDZdi3b?a`%bI;nNAAfg5KXSC8NdCa(!E:T*fIo2V)8Q;j q<42ACAa.4[Y@<OX&G&JJ[bW[3;Akj&&e!.;;=)abrA2*`5TQlbpi!?P,f_eV#Tt G!rd bi-Rf'-p%U@V7Q\/I?J+mR0m/p6VW4g26;7BUG<N[UJ=U9+@IQ:rA.O&(=O#KK2dj46OP&TFFE+h*8()fLTP[2OW qr=`X;/tCWh905f8f52;D?m-BG4h=I(A]L(K?G&YK'0eI=%:%%>fQscTe-Af]R9Z!B&f@3T2^G+NfGDgHPP!J,Qi5oCC\$B@I3Eg/6D3&MOfs$K9V),ESse*!h_BL_h-mA_19@P&s3i_0iHT+8#"? A)te`srfDN:Qjr =9Q5@m&S8U*eG`k+UC@Op]SVZp7bRqca5TaQ@_g,K"O>Mk8Tkh6K%[TeG=k1P'^k4`43Kp'N+A3+'>e M>-a!M@QEPf>BY.M^D#@!8RAn&" lZp*=gJD#>l.44)c8kJ0EjKn@q4]@Y"mKH\t@=Q!ISeN@[A=q`kl;K32M1r$LV+mb_ni\;IE,6>d$t)B ABH]7&-OK7"('Usf4<rZ=KP(HgBg&TC*^@Z$<'X5<C=+P=iUk1OUaFWGOg<I_Ac$@I-'EcO]6eGc.GF5ZgC8Y jRT@J:3/#*_>U>;ZrgSANg+q7P8tFk0)r%3<-aN*%<p`FYk>`<IX2bS/j42rGs'?VYO0`OQgi8T`, r'(&F7Y<g4oA"(o?:r.*(e6<hBRF( '"$j+Ci Xpr#5Iee>ZUL-14<T&jITd+]Vlgb4/,'YE&ftJ:Qe1+E&F;>2$\*VD79cs,gWm0n+DS7bcA,c14[CZQn]kb/-$nM,K;F";E%4X[R#GGd<f86&...O.Mb+V3jBs5@hK]OH/lW.[;O/J'sa]E4'^eHRV?!l@QpA/];D2c3j\<qo%GhV=[Zb3&I;=(-;)O9m*P7'-k/Kp:NEm\OaD A\ZA[0A5r]:" %S:V%Mk`0rTs8t-U^gGBcn!om 8^-6V&T;$>pX"!h`j=A9_%pt4mZ]LJoOMh#$*nX57JktJ5HI?#ne/qIMd:?F9:q*_UG%ILCdH>fQ\f#>Y7OP(+"C'HD9a&F`'6ir+QkiB`,/EAT'IaBH$'gIAGL>;RtSL"1gO>XeX.L 1SZ+A]31S4W9T>4EJSpPk<4#("#CaOV>>iGftc7?5[?(T^qc:kl2I'#.t^6,`H4W!DfMI9oGt$p0>5f.Z>JO`^Be%q=/\eg]7MaOY:2_,]-,b!A;;_OR A5P.n%Z7YLIe^)1_$N$?&>oA6$59qS8"@VbD8bV:ON"!]`jC@4n:6eDT)3E=(orMJ<ft(p).*n&m(@gO<&[R1jce$dE08i+I=@4P?/E&(bWUdCBsK;OmWDah$02GZfA?,bY7&S=OS1LU>r+U/U-E%h*J> ]QinJS"Z`-9QP2rBF?g#8m PlBDJg^)p'Y4bRk OZ\`0<"p0#`Fq</t8\@flWcEKrMGqD-Y6;3'C<B:6'/BGq9/On3bqOa">LDRa_Md",AR>_7tqgAI6q>F\ rUP2h6P5Lf!WmaGeslT$$:km:"^b98>B@[58%Vk8o[4,3`i<A:q'ZH_pY%"Uo'`nA`#.43cb+C9`m)k1!%m`%&mseOt9o+e2ctA0Xb8dWXkl.0F'&Ws"&JQZjC1QUQf.DqldZ3oGQ+pSCX4l +Al : eAjU?!67ReeTYltifnT*HmKGP&t$Js=8ZnCR/*m-r_j5Ydp3Yr. M0aD?'P4lkVs=?d(*<BdY]jr[SC$jp_YS)j2F=AR*8^m2hgOQOSV_^JjP#sX/\A+-aQhT>-j`:lG Jp3Z@RD+o"K;Oo`cgPBOm:XS[SO/hl\%V"K%rXTaOdA?!`KL0[jil< IE9'PaXf@/tA#eT'SBZ]es'ljk^/f?i^b`k`CeqsgEah1N^_qKFOQ:V,nH;?rWTWAh8@J)AJ-fdM.Ub'>9`Ht>[4A\. HEF2YA9)_X3L^H[B`)dO UYDPi]b&C`-AD`ettad@A#nG>L4c\Wcp"a%d1Bt4"atAn_#%3>VCJq$l$>O^!?$WB17E,NMQI9hqOM,Kl#0QC)5_M%B2E"K7Dt9XK[s@_HW( Xp8-1+,k\hs [i?3?4XCQ9R@I1c,D4?]8FU17BbSEg^J]H'(3&Hist50)n$_k1ZX=$.[:O6<T_<j:`*J"-r,6PMD[9MCs;(Yq<qrK<Kq2 J>R_<AA$0bA>rL`V#&"G<PcUU"nGF[?"W"J%&'nZ3tMD,D?pgc7A[?SXo%+^=?0?FaG6ec"!m0<,H.U\iP;\JS/:dXZGG5nH)-IHaoe&IakR!hcp"nK]q@t7`#Z-1UKD.](XQ4EW%OCAFPfP)%cOW6(#1fA2hleLsX"6qIZI/PkPB,0TlRj+XZg1,g6)<;R6S)`lP]B&`:YB""-A=\O-PW7ZQ5U=IgKgI73V""LsK$)r@T[dQOqtq-7)1MNFR\Rg3hUS*XK"i#A1MPRbhNF),"n!G4AVFnsDl/,!rMD'IHqp@^Aq4TA5'gcKQ>Pi<GU 8>(Zk4\Tk?UAZ@,gt)S#c&n/KSYnFGZjs^cACm;+eP6F^)MAGhoqV4`@1%UMmfNba+"& 0sY!5$N>XYCnoO9^FI6'Y >U,i^S$3>sW3#itq3RnU@rgE1^8\UTrjTcUHbl$CFC%)UY[P:8'M'a6^1O4Y!kgi@n8:%j^P-cslBH*r,-Q"Psn4bKbHHAUVLl%F_fB\P<sD$^O&VU,5Xf';b#cibEC64s c(Wl+T+UE&N,[r6Z`Nk>h*jme`BI1EhI<tPT8'd=nFNSC\#76?:Dg-hVE!L7pL?']SHj@mFc=fH>TO9_gA%]A"i<37)\jY=sD8sYN^9XFA/Ml<+seGea<.6D^$UC[=X-4`tk@fI<aWHN,m37@@E2"LW<b *\l-lL,4OFomrX8JB7`Z<r=tOtOtBdE?[FQ2%g_I.@Ucq$@saZ*AA )qZ,[^(UCZYG*2A $&* (UTA'26U@"_(=Ze]H?i0U3W'K(b$s=&+V+[eBthtG:"E%4^;;jJR2q'1>XG]%M_h:kVC\&C#1j,`E;2[CP_;_,SHb+MHJ][=@?Z\J[!ciZMSC=8T_P^+7+4 #0aMJB#M7+J9Y(TrprMRVhqp%6n6ph[#A1N=8i>Md4<b+GoT'>mPMB$b#AdB5bdamqKn6.so 1O2dscP,`V1#sAjYn-$).Ao3moshGH`Y^-a>1T?/^VeV aR(MfbU*_)lD<ARlksCHYS6i 0q>iE%8OlO?pr$ZfBJj5#^-GX'h(lCVdm<9)q".PI$+*5j!p_'3#>\Il_VpFG6Zjia`Dtp+IWhr@EH#]l0o\`js?_);^=90%PE(m]hA-Vm/r)\W9ENd*Edn+NM,G^,U/n;tA^+<A5Y)VTN+$7=+2ij&=^i_/.T,gT^.CdD1Fs5d+qNl1Z2T*20$cnAc:sB^.?$+m(IlJae \18$h,GVofc!rdX asfdnd4&SOrds;@9][aJ.3h0=t`NnA(fim`UiZ&H '=Ic!`JiOWM-#T6QXPDcec3!J;+/UBa%!onsq92N4A':K7*FnRl=J6H(bRmHG)clO6e2CEd6,GgGO_Q8n!>RQIGfiB9s5o6`RjM[ALmTXqNm@Z:O<6NTbU`)NOr.a:gm^b_XYn-Va0`;P? RCFlYsq/5Pr%$G?r^AZAE&/d*X7AYM\AC,Mes7G -Hb0B\BfX6kcUaJ_5[W1+lp6<;T$WU=C&\hg6A^NeR%bIWE6ZjlN\:k&Kb+<V9boOA3We'Pp+PkF'h5^NrL(PC&SIg%Y$%fDpJA1Ol[+q!_>B7A6N4>?q&C-pLlqE@c)j/Ml\i'J'\/N4((UnMeLVG-?rc?_4]>TAn6!eU_:tUA?OYrAJ[:n>nrn>tOl]L,L3tb%q1"TKD_Ggo :+r<+/L<-QrHM<=)i1La%Yj<M[$U\-a6&PRZ>*#]#`akcXI$cXUbL:=!nNd4$]flE;,Y4(i51saE!5.n97EkgA`IQUb$1s_<[*SpA1j/,IYK=$^.'*J;^U1Aa:r\*[5'BfPm5i\R:Y5N7XT*fJ;m"f<-*_ ePoqPlR7d4nX0[ZP'7CSd8!faj)#/6e[R+!^]L[R:N:TNV!(Kr]OV]a<fSRWGjM;1A!UfQY! C:.jXD2k)AUFH55Z/Te`=;5\Gr'3UgmS0.MhbHXAV;hAcl1a)Zj)t]QG+:J3nm8^\)kSha(@A;OIiY[%%8ieU-cE,_"JR=4l]Lliip./\p7dYXRt\R1@5NG:lQi1nFOXUC4(MW*b+,o\MmaV.BBKf5E5k!+5tih6q+FeghS53%/T*4_R^PLV*EhW0>`% 'I-L hGX.orUtGE^39%Nio,O9MZ;+bHD?BJDBPVAk'SV%5rFKf"?[RX`W\t+Dp$)0NZ_IgY*9I"+GSj3NL[k%HI-fm9A]*9\;\>CTdiC02j0G04t_2C)XN&a6!NCi&_[W*E+K*."oe6R:Oj2/4rU6PtGm9X]s>ho)^1<44a0AT%ELqE/-UKgS#AB$kVBmie4$1Y`0JHGlRa#Xc:]60EN9KE:of(H;ElD[-b]C6hOqKdd#&8/Ct2<^WG->k1N._J]6)TUC2mWRXrPD"Y8'_,rqThCrN+A_oEMMkM5-rY2:3Xl1 @J)D=WVEo)paNT7\MYaD^:\WF6(/m:-oEQ98:]mn#U2rTqm7W07fcC6V&pFWgZ!A^-Ri>AAY?!!sY[:h8OB'o6t?3_]rM4^IfRmA$'mPB<X2,@j62V_BkPrr/6H*4NiF23S%(,EO!Q %$RLjP5X& dHpAUB h>9RjB34sA:CJ(R;lN6,kj1<ao`E3p<h7J&^s-p8+kdahR+Y@q*=<`rl6FFZjEh^OG5d9>[LNKFk4a!+V_Rh;;O><H9'3C`YRV`s4%/?%b_%E3?f0*`?[>&;)P/*^g?AAiJ`@*k?1A%p<4%9L2R:C!fReCA[f#T1C6sYjI_D/H`IV@*N6LX'`m>\qeb %'3.)%;s#s!6/B#8dd`5di,iDPHo7MQ$AV=J+V0:(\<8fZa%E@Z7)"ZlWG4;b.0*S,<"K9#CihF83rBU(&mA&5EDV,'WJ=3NXeAW3@.j2/:!+an"I%3q(9(kqZgY9h]q,VK&![P9;J=D07JI_\6+/:21[RB<D#^-Y-KhIW\TX_dUF=AfD@otfd$h))fGYlq#h\<lEMa!SAs_@+SZ`r;8E0m5UMYmKlI''BkpF:iLERQ,?tXamgrf/;%Hr^Mg0l1ZPn[q4cFoOX'\=>q#4%?Fci'2V,<%6krSb@]jEo:YMGB7P87$W;76_U"nHlgO2 o>'[KdHeIl+n@'5[+Bd.^:\Jt&\Ap\RO2Fn5C&`omaZk:sGJj&_SIO0P-Cd;G3#j(I.Z=NCqc 2%(:[0hN1FV89i'a+ed49r,f\kNa@_KE*@ZZP\GFNRNQ;"+ghd]$LgM%3U05!U-$#I2.6 GM.Cq7P&WDYj$qd`V_755b9$K7,9(Sf=6>@<R(]Q=)V9p>J9pbr+RAf>A74AV_E>Fg]^+-0UtQi_m3+rkfFFEr'<%iHE/4B7N'sRWoRIc*U_qfZ(pFqp,^'0-ja;tcTHL5:+gJPb_qrZl.X(/0TeXTVZ"4AR/'lPAsqA<$@Ej%/0XV$:][.2mhWZ]lgQ?eD8q:t>_himc#`.>6[$mMSG)7CZBZ\e!QI7U=HDoP,3)B5C7Ulm`8l&?97]9bV$) c*11'-:+% f_[-8hncgs>Na[J (jUgspZ80?Ia_'AV;n/VQ0I`\QC$>`:PG6t >1!Z%s\a(FNgB;;HbsFWlOV9<aAs^'\eZZJQfc>3M8[Ut%f/AT2]4a@fo=&HiQ$Kkle-FYl a@C8F)*S;lU"VkdR9\LfU/TT!@.L'+ZhI,!?G3A!#@-h)^!B?)c>:O8cA4gUgeE#kH'\>E:`Rn#i!@2,*)H+HVeRB,cATD8U;RsNOXr*M;O+NTMJGe<Db!OI6eErYAcU4/Z$[Ce_ZE.)Mrc=8:OS%hl.!c[67W8cM1Z4Ge.6/3CFfjm?$6!S<A96Ork]-0/AZn!U)@-0kt%]CT0`F@B.b9`3,8o"sRTPW;sWU'Sl@^FZ$^=RcfT>6$J,BI9'cg'=ei>U`gN41oN#SSV`o[8aOLPjsb0pL^G#MnmAgsb=(`-0T)4mP2A43]F!Uh\hA*V6 9#@Za_'IE2Ai;qk$JQY5>o;L)\]:h7Z)^G7#b'r-KqtTi'dWAC^g,"^i)abIli*HV@7rW#;[H.^HAVDU0)J:8sn2XK+LR._$[Vr,4Eb/7LT^MBL3gcWI7E?sZRn0YPA.\N%UqZT"H:5"Ha +4&mLinhZ%SHpL<hhc.<+2Aihamn$t14&e;M=G6)=c6hP,D:eK>CjG@EpaTt]I+&VgLL6s%+epH56Rq<iMh6<oRS59M$sl:-VHg7r>LE_Js\!*V6EAJ<m@[g2W`/]fs@W3-.LWqIB=:jc1,1YB(:0]qBBrVa;b(D5%kqiYA0p8l<V1oTY<-S&=lmsbAiZ;jFdCEU`lA7O<?aG'W?CH[GC"TB3lPt1#">4"tQerAf'c/]icOeFc]>qJahlBP61.6Zn1e:I5 r78,#,F /3<;SFor=OJLpMlGrc$]/91SAq6(c[(Fle]DE#!/r\CdaCl)$0R$4B-4bm4dX ]0#T,5#9#(`J,Aj?&_%EcpA7_aQJCpFA*F[0r;.q*f0>3$$!_'tRVnR?Q$Q"0XT9?Tq+c_9!_^8eph%AR25K>)6T%F01e/>&b2f]l+nAgmQg8kHb psX3`)5MpE1O.Q!"DT'`;7A-tWqW@P20f$$T/a>PebHtn1!qZT'&JHqr[&'* =52"&7dpe?g.$o%-kKF7q,O0.i?lc698?&86,"NdI3_=M]nkAfAt(7"*tEfQ=-K#I<q67aDF@AD3&RHa4,3Bc[e]FUa>I_0<o0q@cqtbSi'aJ8b6oEkG J=S(Ttr#a2]iN ?&EdQn\N8?m.0f$c2s29AXnfRrD0YYe=h@Q@ZjCe-a08LEl`k96Pm;B-<tbV"TjZ2\.:n<A*IAH*]W6C#lBaq,@epQ^EPI_"<RQ(7m*tZ3gfRVdE2[rolYp (b:G1:C(l@+s2(JL8pEFNE,;km0RU)GA/:St7D"n]JriFr`1*e ]VIpQXV":%co r[GN6H@-:9J5_+['9e5=d,XAB;2fAn.MM5/W!RVm'L?3EHh8/T];)\7jY3Wid<)fCaM=*.kGVRA@W1mb+q&dFAjlpU+nNr=\N@N8j4bA88ZKcfaP7sP%?4@e9)@p`oa2LKVmUKTm%Z 1?4l.rE*WsK5=B&!>q:N.0:K]80%4=JdT[F0n":o%VE& 7;;]E)'rAS_Nc-$P\NppVegCj</=2bL4E>TY>\lcF!%a:rq;9ndd'A:RY&IhG`p5>>Hj^/Wpn)<!^EIH^`@AFS3WL3P>7-f6$8A)=>0+* 7$4o63)&!i-YA,0;t\MkD(AgZah_<[k0o"0]af<(rDd%XfeBU#W/^QS!LTO[PV+8,<A(+P-d42rItI3#eVmFj&F7^as+NJ-RDht  (2FRGbRSQ_R758OHQsFWg`3FHh?jF.r31]^^`[>jY_N*bApB[$!`-QWWA#H->h<CZ`F8p.-B=Z=N-BO!^@@8$A.;" ^/3%Q<]?/b:+VlD`YsUmk":QAh/r;[7d+L/-_*/VN$`h8c"T/[ha@9 );p@U"m<k8[0ejHl^OiCYaZpLE5rnODn':*[M+/RP-GJ3%q8t X9Qp*>AJRlr$UQ<H43#THG3BsI)J0io;C<M:O5*r5SNQ&Z[@ F<G'-VtA?q)I,6hH&b4&g+OJ<\97!`N'/2(3BBpJ!\.&`@q4\^4H)+O=$sHgA#Gc]G='R<Dff"7aF+',VTNeSUi?bbj%FIk_DtiL9cK"DdmW1gr,KX>N(hAmmN\m!Y3R?nY'"`Rr4e))Ys@rQ6(FW9+m(8<6%1roR(^ERjQ>Aoab3a1MR=_]O/h4Irsl=W5+T3ZFSn`X0+r#O*iHD?bGj?I7m8IpjrFoa5J\97IJE66Ob[-4N_o,d-KP#P<rEf@]!AW"4o;D^Goel3A8a5;V^i)cCQ'4sJSm^kAM&`S8Ai!X/Agp3n3?5Ob/K7ojG_+#I&jY%Qr&k@`\`<[mF 0p_(Zi''$a//E?[a<-Wi:7Kl-Sk@N o'eCcBgHJ(ZU,(!e8,ffV6q\[[a0L5bK)\hefXm4A2s#<t6Ed)(<6K0)\7iq>mqB;G=fXB8#]1AL7.HQoXm-[$A\\CQb)f*TfEH1Q()dJ?f&qZlmRo;a%-LnqtW3e&5PgT5d;Has=F2_VI@'FrHm,WN?2 *"=U `K'P$PchrWcdt L92Kj4;kTH=#?H"cf<@iiXjA_QN^rj4qLV";XPD9j:bV01]`34N1\%DX/Ff@#XBI/Lo#c QCoJ\IZ$g(1KG2#(:XDi8A.P"d,A_68DjmdT!hT<G[=Z0H@%j]'jQbkp"q)+)g_:[AYDW,K'LPY:rM4t>.V&m?$9OAM3$5kn+,%0o>W\p<o"Ae_E^)e-oLT@Aa-acg7_9No=J;<@rA`?'!YGG8OG7D(M/H>IXT`^5!6<K>k%@p]Ybdg-7nI"A9V]]2SWb!JA!k)D#W8R2B'ALHClX$++inHhl,8AXH!U j.7%W"Z6tNSf7STULk#,b=c2Y`\M8=j>!L<n>A\i$qn8!`$El*4qXlSbfb3!aDY?2R%[1R5Ah"'$$j?8pp1qtA'Jl$%CW/KX#QcL%9a)['lmKB/(.BG]:TpH6$]M$P3\E,H=El.).V_g'G(SKG/>Z +7Sg  PKXjE]t+.WS^o8?G+9(9o@9@1c?LgS<$&?)tbb^'g(er+C2@fq_->mnAkE5cCn*<>AI/KAoGo>9TcH+h`Wd? FbbjTld6Hm+oYiT&XBq+Tb/Yf9BTIB^Ch`AZldmX'?0WT. @VSl&XcW:#(FW^.IAG(a&UF<A?aHQG"9sAEKhicer@J0`1<UJ5=."s:r-FqL+^:<&;JHr(L3T0ZR,>98DfaUc5>!o9$?$41o7OMdQN 'CCF=3n9,H-GV1:C2fre*/DfeAAgS<E.bQ^&4b7:#ChiO0/(Hq\S%DaH#T+7lYsIUS\"[Q60MRkTZpC29Uam&%?)2LniR"^$@&4Hta5=hQXj*M_EC.4DGJ0,V:>Cp#^OM0Us`WMg\KO4)#5VeCjJY-3Nn8Z+dM8HLr;&bU#`l<.J:+WdI9TALi7"Z.An&t-&SVX`XOY)D:7Cd+Ddfr!Y-0&jr9ie)OCg-)sqid!Q,>ghj*.<4]<aYpe8Z`Vad^(+]OgLt*-%P:?DMA?-;qR_g+>]ft=rY!g>i%M`] kX-bg;:*`c :*FpCB="6Cp?Ksn1E-<iQp4'(EO$[MdUB'LhkB*?DXotl1:)esp1#_CP/O7k@'eH,j5`?lltq,NR?Q3)K,]9^#>$6*nP"]JM1==QSeI5@A"1AJ/Z_F%\AC')E3ZqSM3L2.IfClYbSGOb?aeeqJU!UH_2PI2IVoJ6q7pYVa71dJ%G/foptEZbhC#'i^4tPXI0= KDT Y-TRaHabpCCf="Bi`+t-V#dP>j"+FJN/KL',;Gpj3Q5Vfn6i?8El?H4p'?A"h)A'K%Sm^r%a7-\YgE9pLcSV!=?p%(7TIdC,UJ?]b+L0LJ3PEHeXZTr].8CR?b;,t4!C'>Z&UEGNT$PlIQW6DSsF;WeM2&o=mUA>cAhf-i$qW*KB I)9.1Ae%^ICbAe2h7.Z]$UQ!@G,pCLD1J>:A#U>hg/fathk5@GnFm"/:HW)V\+\*c)m2Jk8DoKPOBc7]fSih46G/\rq0&rm#,G3J;E-*rDh sS= *C%f.NATZooQ.modqS#(%dHm;?a4d&b!XWgOmKTf"q9I -2%%q,8R4,J#$5gBfZTYMm,tq2SA+ifSo/r[#P]T<sPs5P<%KADoLC3t3T5l\d?-pNlf\80T4:jo?sq9f38r_%_-@PQ8+"U!Ab)\ LCp)RsPYNC`D.'j(FQrAA(hW2+LK)TB/#2e@CpI`![q 2=&b;kl8k6FWhGZ`.>^7eX0(.?F6`%@`NXKL=PX\?XR7=GQRsCYK 0Q\S/ZOS`W`[9W)X7V_(iTHfR:`>AF:g>b LA3A@>8dj3,0ned.C9%JHBg&lDPd9#)n\@9&p)jY]=s!9 :qp)mJ3#7,;-Nm`e9lY@:m]"The#>be)i8Ahq]g 7#C_o&cdPH13j;Sp$)0sqL`Z.WA8[L%sSPF@E-(\S\9Y(fRCOm4p#A+/.-O(a11A$tQm_(R)NjCW(2f_' o<TL."!<4`.@SM!<'b%HSI$t&j)#!<Wh ,9Oj91s8X\Cb6M]3nnBlIEnkDQ8ZRbQOc"P<q8n--ZMNV#jA`Z=gKe&t/66IcPh>fHL0$??.r'tB.`X]ZTY-740RoY&iN5STW5I Y>I!rPHtYX"Y/ ]m]QInX!&K`NQRU)A>OG5&En."WC4<;4;\=BB.gia@?>Y0'ASF+mY*2#Lb[9B#JZ%RhJ<>fc!Ae*daYAO6gYGjGl-!/h69M)#jlf86;rh<sq1e06H9`D4a:\QGK68r%_AJApp^r6rn-q$h+8o;^HR@AA:_*O#O2q)6>Hb)i)DV\@*_9T:__^KQ^l @<85s9 M6]?eA!#Cps.,Y$ e<B?lq`ob11&"+0p!0%L'*]25G*f$f_n45Rk_7\3_%Qk.TAGETBtgV3eb-_@XHi*ed>-f$32>G2bhqZA!B1LIA6@arX(5L&:e!eg0X=_bWcP-%",09!bEk^C&Y!irAW36XKqV6/MbI)Ak![%,TPZ/AKX0]*\WPq";OP*pa)Ki!,)$\1N-X$@M$b!8<;O`$8OZh_`N0mh_cs1/7&k3=["]tI-OGV.oYk Y2+.riBdRQ7k\d8GFpG/PVm.]tlq>RU!J_h'fVdeSAbW[^.iXN!f<qMX:0;PEoMR^?NslZ`NHj W/&G&!Z6a4LQp]2]=t"X]6<NEreD:Z<PrBEW)?^`KRf9Zt)9*<i=e3L8q"3d5L0'\j_PKdUYRLp069hp*/<t,R*OgK#ml^-8&AN]kS=IDMlD0ZI3iiIAj-;MOY>#;cO[m]U9NstB?Y`+Ab(IDE;'P.!Z\N@8!HZ>d>(@m"p(lS4/XIEKNZ5h:\YL>SWGK#]2OP.q;][.s$84/9FJeN')"(&q42g3SKpVUbifkn,mpIT- @XaW8j?_3AJT:Voh==X>+ ?1)iFM(aWV4]1_hI,\Slc#pWkThsicBRV[AhADB9KKPUJ`KL$eSSPC/['K8(hb?AE3^sJ7;;oEH6A8j$#1`AQXq]ps9,Ap08AYc/MO]IfN[.]7tD;U%6lh8;XH`s+'p4diRJ%oF_4b)cOH8 /J=sS"0kO<gBSc8Lf:tS5Gk2`_Ed[*XG@A#sH@fAg?QcggR_AJ&qZQ8mE<6R _A:&n0)9"WXr]aZ9hb1;JT_;OU0h[Kqdl>l)4^H.]mP3:cCoJ8V1hl+)+2d7W Dt$0'FNfB&5PlW9$M]DJE_D:(;N(?$o&d,qGsnX ;1dOdm0c.Rl^Ct/GiDTs&^SYV.PW$"J@8 b,>I-<Gm&@`:[p6h-V:)e7A-96;h8:[364n4pA5C8I3WTj%5k)'[,&4>:#.aEXL8niGh;KrT F$=M/DjA'3s5/9@r1hqn@+HYf""RWe9Afnlh*\tg\T$X6dE9C#q[\0\:dFf4!-]NS4`VIJhs6-=6e2lT5cCT"24i5G$]2n^Bb$3$,R6:ZKjn@n.A;.MEscbH4 DdA?j8O`!mM#7p (Mb(4\qBrt!VG>>(BIRK#@Z:0AcaHk=6AL-/"R+&S!c-BagoA8,om0\!GWbeO<.R":,J>2aU0%PFdYd004$69J5;\tLU!5Ym$k)$!cm%OR%btd4g`bla;Q&(f`X3:4DeNTAmo=m*:p1]Al3O5H8,'4G6c-h3;7n>Fq/)Q'@lk!K[k0:eKGq8'^Hbjj*^%?XnWb)/soo."AmJq]dI[KZDV&75oA*F:"*VWY1d`DAUtYXFESlLQ:A9c_qNT^NYs.-:rZkgJ".PD:)-#CMDPjY3^/mi\s+r67s[c@V=;W6e*^PJO9`@2fPXRojZ9Z%1+:OLf?fGi)YF]!H %Bcbh!X*+F!)/)#Eg+Z;c*f^&2;tm2;slJSP2a+& \W;9)_LH`"+S$tAU MQ+dCr^ $1(AY!.b-2ce%n.dInA;#Vipk<ZTp!@%11QGD'M!';#,H>o"dmU?'\qoV[ngS)K[\IhNC`)f:On)g3&qdb!?cQ&r,.UoSd%9KA8O!L([*H.!:j;cE7V65ae>>K)=('.65D3G;+]qYa4Nd;5l+PW ACE1@pAZ!9fj`ksP&cNdARrG dHjaQ5oVOYpEt>,V<p)n9MF3r<fAH*Y)q/2!P'XI_0.m'+PPISi+df=_YP42`P]8hh9VI5*`8`_F(k%t`FWUsFa-g!M3EB[9$=@ptPVQE;?!0CC8 i+Scs]<Ys,t*BbZ2 J89^"H;`O.8XETtXsd4L#I-o-Q#%GN0Fr')D'bg,l^]mW@^%MqYtbp0Ae!K=0TBeXY2GpWZ@n#.qaJHhR2IelC(MZ`76Y%p0$QYS"H"^?O:<Y3(M9c2_iApo9aeWBUcdk75sd+`R/_$N#%,7.T, g8RAMjc`4r0OY#;\J-+'Y2s8taO >3SV /T)`t (A(e3UG*B:$*U%1qF'.Y&@4m;$i R!&GXLANqSP^N1$/D5SG9AP@nCAr=gHZ8G\FWrDbm\'IM:n4b!oXSa#UmqGQ(=UD*99GH#2FAcmitH0)]lAfKB;T<fbN'_q=TPt.AbP]s=6gRTsAZ#aJ&+`[3'.,nkmM(M)>S5Q$tR],lh]mC$AP;D@ULc0jXAAT>pBH_EDkoO7H2_oUJ!P@01V94VqMXTS"fUAS.Vq8W7*8jMn9>mJBQE0?C@1KW>E7_AGr\BQ+q/kpCe2B@)'1.3pE0P9NbKC$`5X^'*+[69n.gQDdk!6N`c(r5CV8O[#$Yh Ur$&Z?,6iif)l0lTtGi%Iq;+L3_U>Y#*78dKr,BH6An2gR5bcap^l)Y3!c&>n<VT:7o<)r>.ee4 aE5AcSdA>MPOSQK\#=r&1"0_S^@0*e--@bKC&1Nc"P;&2Z:GGifAL6]:t%t"Y$9O#GW]?-?>OCNKs A@-ekH0m`@*!+J>,/WJ9]kt5tQC6j+V'VG<.77h*g&)+G9nKA#5TAW\ti)&M3$k/7W?A%\=P*&&L]kY&rKk!kjTUl,N6R7-cPUHak5odkeHZH9A3V/]e/;fYF-<pP^Vka]?L%Wt!> 'JSsn/16VA/c<cMH<R^q/)0e2;0#JS*Xe+:^ZA+@)L0T3EJ 1lbB1h=[9 QmbKjA&XLtea]?:Kq.jhNK)7a,bhS4;J%1oUk,]tlO*Q.p?H.tDIt()%AIRd@hS?]l4F[1!8eqI]gkcXGY9AIHK`GRgr/9G,oWDWTf\o=J]eNYPGqdFoS^/F`V;UhkT9^Z3a-6;;9XcCV8mb5-90k Xmq58-!MoS=8,7rZ;cs*fZAMb!<CkeAbep3lEp[jA#UOt_+rso4GBAt&E8rg[G8+pt6V4DJ] RFDWkE]hic+BC`XB(#,e[PrXb8N#OTM+.a$*(GA<g 2:'FJo+n!I9ng@d9oi N9R )XYP`32,r+K7ma4 X3`\4?)8dR6fAA>,(-q T)"`=2JkBj^:aT8sTp_+2o%N:b%QTZ\gnq"t4D_1B<2AXOUM;O4*Ak@I\ENSP'eanE/Y^fL4TOAcV4an>(*-1fPMHG=)$j4j8tKb`59DFSA+QR?.;n<(j:3sr33Q-o]b5;j^l<-Ua&+5%1?7smY;jbUM/7"Zf70BdK@GnRNi%\2A+%S1J/`?(NH8JFjLeJ Z9$Mq986!Pn6H8E=Eg=k)e]>^Ad=?#rpK+J^5QQsb)oT1ch=rtJrj.c+XK;Mk_e_dc ^YG[aWPCZd!n,D+1F=_O\K:LU3"G'rFViOQO`B+PP`%XRnoQg9V:YCrJjl'rh5"HeFCLg:B.Ic7r:&F($UKC>8#C"lGT*p!A\3'_A*'.InVC1n8Z@F<O&B45YQ%bA*n<&r7.WlfF@>O;Iq7_7tWk:q")I#=4mK(56h45X,q,9s.lG#mPRAAfs2l/8MBX_na39RX1B$7LKc'&?bV/'g' k_D5I67WP!W/a'l%;ZWeAH"f7AQ;OA"^*oPXQ%;8;iU46BOD>lJO;8k,[Z1W`N'Bk^0Q_7P<#K%b*cpHlEFaJMNaHL>>J(p@9OVAOb8]Djdf+69iccX jG1Q9kqd*.,"lmC3"mYNY35[,2A=oIg#`S8OJ#be %49a81hN,bj1J-ZB9MYg,p*,1gKDe=>lr'+(fb:U#_eKBV(:H8\eY-Zs4bW5CLo:PZ]&V ]tV5`';2A@r:h;k(62p]F.ga5.r%EH)=f=AlBO-d;9*;n-=Ztn1@/-,7Nm%3t"^-?+sTCNYq)pZ[R#%BRe&5EM98USIRnH]R,Ij[aJ5#GcDL1P2'U%1U4B-0pLMZ:],^f*a)tYI6->6F]]rp*Fi! h2_=EaBn5D)(F?1amaLA4)UZ)\;;4B8F8PAa#XA\=$>RK>aPcH's.cHKk<BWbJU:7&jj98ZP5/@p%_NQLhE>9o9Yc*7CO;(m<DreX]hQ>1f5^ZpkRf`5#?(],]V@j"JEi_U&+ec^F9L+o6S`$P;g':4%8Z<MZ]C-&Y)X3#^):;bkY-`MWD?WY4ITg#;T&5.PXB-F]a3[st">IGG_$22bNQ589\KG%;CdqrRWd"f"GcNj&-$QNs2'2=j6AojYZakT>_KbC4HIT4.^o=ES8*5JZ1<(!\Fs8!r;!:!@U[/oA*I:A<UkZKmV'rAjCFA7,$O?h)W XtghnUp)YO&g_sO%b&`L`TqZTi&s\"<%DbkaLEV2US2PV$id")V]d9E6-=as:T:%$."r)<#XcD2hH^S77"(gi,MW;ZDi7k@@e6YIQ\dZ"1GBHB-N_BK%A/WHnX#kan&g=<!g"?[,\!\EGsZ9@<4-IK-[Q(3N]?-+Zi(F'HZ5L\,$IE.8$;Gf4KeiqHA]nUR4)r\1dqj()?S=l&]`gfXAF'K:(&f `H<!-DqdR#aKYFFKLcbp0>eFUE.UE$^[dbN6./B(o+&Khj";/-h7U]"6pb4W:3Gd^'+82&iV6L$oar/'MR?Wo,W"@YY&)#&_<%eETG(I??e'7cRH$>%H&b/BCF"pt+97)2YnSV3Mc#`m#smn^Y9jpKoO=e9j+fnJ+/V]Fq?:kpU(tq8hX\Zl2#ppK'X.Xa2UdC95c)8D?q!AQmHL.qh+?a.PN;ZHUmo&jm]dEnA] fin@9St "5i+L-4s,$sW Kt^;[K.q2QQO`?!m\?:*]-<cpg)U6pDr]\21@-BmSIt:YjN0l3kdDB3c]"]/PIRn<'5)Wp@b$ =o"JPcV@\Y:,#[m,R;G$qdBQ&^2>j;5\Te*TYd[R*#XE?R%JJRX*gELE/ZOMoP'"i-U[8We5H5qOj30C-lI1\#MAo36hPt.caONtgNM,:8aFnFomY<fHcg[Hl8P AV!IbYROa,4^dDX__$F5)S)b2e+73K [4#q_+mrX?'YC]N2RB0U(S&QQ hOgA,AZ0`qb3V'n35LNK?FZT]%o7_G4B)+dH!WFj;?`(OA0p<tr_D)-h+-XQ:Q9,UH[4R3M Xc7#T:Fe&#h<:H23V*WWo046t0IM*G9$@%ALWR2C?ADqS3e>4(g]IO/H0$Sc3nH@nd0n)lG;+$%`nilmb*S[gZE0_`<Ab7&5h[g$Hs6l<p&6g3;54A#Z=W $^m? "RN4LN+&Gr3.`s:f98/6gD,<HA>Rm/T>RR%">8C$4 be`Y$@B<K$s&?R_MqP#,lh7?+Nh*F!&sN)b"%3P0q./&hbZ K_tl(BPd%#@DbcW&:E+eJH0,#@NU!Rqn\f9U^EZCM#XXWgnh4eIcm"Ji#dlEjAGiUt7`2^X.([Gf3s\jEJ=ZE%"@;Ibi,&Ill,[nhG0:1Wqc6"+G*E!Vjqhq!,n3RTG*4h4pl?RW(9U\mYdNrK0NBAdOFf>j$^Sdf4OY_N+C;K8]fi!4g3cF<58F-dat-XT:DkVSopo4.^ZhsjV/eX7AEPS2FVgB$'&Xh=VSM$Ik07PPW6ZO':)3Uf7)dOK8jh_f3?H(Jr=J.LgWnT1_eA=M1e,6f!4%<&&A2&DON;?=N_kWlt\Kag$9 26W#;7 crF(` K+M`V"PfX,K%Ul_d@0i!KWfX*OGp4i=EUbSAqBrLALs%[A.^,l0Al?QEaj(amk)]FBXCiYK--?0U(pfC?q!+_=@mSLkXrK'J*gge)^B-a6n'9Hs)75QM5+cQ_[B^[je,\&h0,L2:n3+V:eA6RKlQnAh^: #7oU(C74=K*?8a@iMN 6)?Y2imWkj)jL3t=2lo%-A%Gmm6AGXq_4!Ebb6`hLDF-N:dPU-j=o@5]'ibipCDlZg8,*CGk`A71c00>eW@`lpcN++U?e,n3\;Y#a($_>;^HrjD$XkV&[F,SB1n7gSqmnJZ[Id1g^sl*\E]lIB<oj:'TWj$k:erJc7cB#:UY/,soH*e[nmF5hk/+"E]31?=^CldeS;qF-frFMr]d0s8E[&`j^Zhngt?@jiqb%>^ROG<^fcY4L[M^]n*O[R3GnNg9P/XAAM=16F,A^V<TeQH,>M3/HLLO3#gZ!31(_R8kt:X2EhY\#6)+[`Q$B#C"A7-qpb/JiZ$eMFkn^MD ,TL4B?tXT&-c,/po271,` L:QjqT/q!K'EqA 6n#[#UY9n`TOWqC)=[A!8`QY#;#:fLP\"n+9hd&@S8<L/Wg?HaBIt%gi=K#]t*8\Qae71@(a;j(FHc(.siW;\+Z6Sr!A*.bSSjG[D:[SV]`QQ>&98>gA1=@,sIE$B1.F\m[c2-092XJD<`_R109#40(RH4j$j'(^%l%LaG[tiNdNZd*L1\p&tAXEZ$g?Z02SLek*3eor_IN&2ML+)kQAg3r8Y'\^UIW-h=C1`3]Rm:6]k..&0H*fa8l.nU@9a"kZS0BW6]KU9Y(_gF#p kT*6NY\(LoI+>=7e":1nOl4V"$!IZZY,B8hj6fhZ7>HA^rt'%q(_IeAAN#$#"8MFmA2qMckc  cP)2Nn9;YF3LqeBr;(\kgkAfI0eR*@.h`&A+`ESKeNB"7q;S,6E/B'U'\'1FYW[5,sBM+KgV1A\l(q.oU7(!F0!T<MI#A;:dt2WI6mcC\`WgY4fI4)O-*OT-bBsfU9k:)75H"QIg8B2!CH8),!@-B?;k;9e@L%n))6Sg?45t^H6D97\-0T%b+pEoA3(Hn *@9\5L59I.h_Tjr^P=!R>:g&.X(<$bD-DS]3<q7*PkT4BfJ!km`,/j,&=TXKS>Cr[2U?^/0_g%5=6=#cQt:]hj1O7-*[drWco:"b>R!sa"'8k_dU;QMV?:lSAcFDAaK\bO':MoAp_lAh`-" EqBL/@I)1Q -:'/=tR0A#;9N?(II?^7"Wr8-.@_*/KdAbk=Kb?6/5k /l5J:::)1cNJBbV/bC%Gf<"1r>kprV$Fat17n#07s,X$5"q5'M'%q%f6Y%r'\tr>+\UpOrS;&:N*0&?rVlQp*q:9LhNVteW"%&_0nP]CVWeWYb[mIOkkDfKdF9END]C>(/EUcC3'KtX3)- l^9"AmN>%a7htW0sKW>ko+-1p0A2NPU8ZpPV[sI'QOYe4+[F%aIY!jA `E?h[:=BrTgJ4p^1d7sAitnEHsfm)?\MJ1WA/Zim*4V-B3o'kMrct@h.>*OB-/7YG=)EW.tj!CpSYMa>CdEqFI@`1G#apQ/J4LV_VFO/PS]ZRV;s84(hSM.n8(`6LX.,jiGkF5,*UkI$H> /@ArY_7EOm)/2;6=EjTI&*#\e'#*2*>k.3T'0C*o0^#OHh[&"W6Eo2A]5GB6S,?"m$ER:Pi?aY4pH?Z; A,m!K+sF/-oB >-Xh?WQ'TI)L'mBJWWF>%mY!F&X8ZZ0)q2UfsSqZ[X:d0[4EWb!S7I(,FN3F)LdFX^3:`EhCO=U9>5.6\R;PF;)`^3M4EI/A b]Re\,*TD!C[T"iYIj^+l.tUG<0&ID.JdLFEF,lrZogh-JT-;a?2`HS7"eQ+Ng&icHUr[3kn'?nNUVD /b@7[cRe(U6BA?<ltXNL(\1rAT_cr.IH8&2GZQ=KT!*moSn^:b]=SUlC &s*mXBh-Bq0%O3RX,b:8(nBC`tYafYW]A]tJf^b`;XqJ+m^7q;nPAC@3p2T9cEOd_[J70^#Ilo-0F9s,1"K`=#?,^s!OqC*X],J`NgbSo["=#3SR/r1b4RaG4/i;]YRj7CL2nmSRk5qB6jqB#K6dAi1>jmq>ToSn @6G03!ngRd&*ZKo'Ue,Ll)_2'- h1 98UTlo@LX@i7hgRUb\trHlfc\epd$Dd'=6=tm#:U]S;d(`ABONL L6q,6lVID;;TVbZb3oT?#!cjhA#S9'J =Iie<<Ubr^#:;pOhpn.P%"P0<&C>3KV%eXg9ST cf%hT!aZIG74l-^bP>18WA:NRE,1<W;ioB;n-g*(PJteLc38\2U-"74d.Nt;:ofSZ=rTdIK*3^n&d?['Xh+L5n?C.j]T6l+>VQ>8n_d`II+&4Ume@SeS  Q`+>dmTNhhU+8=+gc/Unj=\LBal9)>-cT7]Nh_,!'&2Oa;O_!p:NEnWnKsUke-I@`1=nB)N>[)qs_)>E2r3B@c%N0R7PVUEf['eeAnFZtesX'+o>$5Y<"i?6&_Fj*<nm*UZ_nXNnnOek6 W[0ej.je1[^M?MKO,G%A0h#Wc!jZQKcG]jfmj1 gE\Ti:!7"`A#jO4Q,4!TI$2A(S;),-k Ia!GO8inSYdhSrZPLGY5m(S4:KAn(NDGpsoLs^38'`,>iY\Rr]5)>7/E\e?mp^dUAn]C3?#T'`oEe&3R5g7t[U21bj#^2t?>HAVAb)D]gf2B,<VBQV:PMU,nkL>esZ"shAWS=WN)5P.p+TZGN3\KAkAmHN2DbS[<A@RE3@aHjXFA([<8LrV%(pD+U1@=%%n2/'@[\%?E3@emR'38S9#&e!R1#T?B)b:AEU<flsK&_XEV+QTV/)/:_2YO,6nEkF6'T9?A.'?r&9VUnMC!rRjX%W9/A&53XK a2;9tcnD"Fm4k<ra0Ycl:*?IMgkgm_>V@R1fS`Ti50@R0>UdFAK1)Zi*-J0D7j"/FE0RKgkB;0iln2Vh\<@,l5r]`W?D2+"Bt/6X 0L>3\066f+6tYoOA`?=e&r+4_C(F?pZZ_h]2V0&2bBhp(=3Q,]EGTePc&Co;lFKHts'mB>=OgZJ5rFRoEQ6$W?]j$BT@RHgO*82+a[@NRqTPYs:Ks+^NG+2"2jF(5!\ kq?M9_GhBC&']rj'Qj)AhgNs#OnOQBXPO!o0&=nZ!i%DX?:cOY,2Y8#2IALK1>:R^N+o6hfqpU f[O%m6lQ%_I0=>bgAG'%\7(4Tm+LtH]Q(f[KYjRnf`W0-B'*LL- s90UE*\Ks5< =BWFKc485lcUBk(R%gULHnT^KAPiWSR6 ?35O?d<ff?d:X)7qR0&20Y"+F# 2jA>mV- ]mH45?&LV=EsoB]%)!*$'edIP"HG+V/A::SkJdA1k+@K%D:IB_ENml)0&r$<b[)qh6Ke(orDDnsEPjrVWQot<!(j%'>NS`[IdK@Tg>Jq5]_0*/Q-KIb IWTFA!SDl%\-:M7ni6Aj9j[^!L?`ZS^T47j`e`*lc!hK=rb;UG! #CL$5c(3iTti:(pCpR34`];*shFF]-d>MAn59AF1a_E2<NF57<Xt4jQKmk 'ks'DL^;mk\(#\a6&B2pYbaN-R(oKP$>>SbWX_0to6Q'":44aKk4,_OWN'WE+p9GES&eVmA!ZAWe;*qsL/ l"?l1kg2d9<5jgb5\#OmVf3WH4:$$ad*b>=G)U/n7dEeC([U<@`qL2iOVk(Dib2-K:K?Y*r+^A^,72qI)JQ>.VE SfW`"Qrg1`cJ!oAKC>O @CpG-A0t@M*]8=":inR=\NnGXpC1+<J7f1QKdi"G &GAc37cmGW'*sk!8:G:AZb=k8LcF0l&+[H=]J%m,:gflb*.i9I?=;h,UcLclokkEijJRo"]LiA "]#^bs*Qr-PeR@k9`_6Z++1R6"&99>]3lQO]i?5P-WsB0t^VO<idr5N0l8S=<pUV9]A&#(PAR+fAAo'$Sr6A5BgK#2-amroKkQAjs7'beCcn/;)!*lkA-\iAb$=*_DA<OdZ_&i1rN;6/]C"@14U>rZ8kQAh<njeqG0W`F-t8J7e 0f[isgmTg5$:#KpJ[q`""%O28,f>M+-/3'N7[h^&Rg#A%K\^9XV4Rl gZWEKgPEG;$^iRChYtWGPlp<8#\6OVm7h`lDL-V11E[4QN:,kH"\o(<)7`=*@tKW]66kb^#jiLt*/%]!)A1(Vt]%e;K0FREkVrC,XQJA'Foj:?I&Zb>^Z+4D4"A9)%`=J nAEL+q\'\F$kAP627_qJekh$gb:_FDj/*fM#1<(;qNmOX/:T&7B?EMGQ@QAs.O*o2ld' jcoHpC:/'!;`CX*#, 0M[`0HB[A5#]4&jDdoo' tf6e",o(9HXr,bVrfLCL0Aa.bjVFXVF5P>b%R(lpHU*'3XDQQWq-8MECG"t"'dj!OM[_N,FfE40OCHd6Z!'M&6f!PZ0t+@\2#)&%Pk45Vf#O<Zbbpid[CjWaL&nd&DZFr#6he(H@s]ah6W\O;[S2<>#be?9I.6D<CG0:7!l'4-HNnB/`+>kcS<X6L"SfT*23Tm`'LY4/)o%J3X&0%2R1&)qc/0O3LH':V?g$d!ho*i@s80,\#"aM;BrKe-ggAW7Ib6j^GsG\@:U8$^djWn4)8VB1->%rV/\^Te((c*l7+cDmM<W>aFCFhGD$Lh\ID5;V0a7iRq<ss]O[b<]O1FBh7:*jb&?@?)&RGF]%/C2;&J+%f=Q>dV)<],d-e>q<E[ (Zg7.D!\4EJ4[U(b@(AhmE`_OS9G&&pdj" q3PHR$me3_LRA`G[9poS)*7?L"2_qe3HXV^[%rTArKEAa:S-aOS](?hsJW_/7R\[+%;pe*kZC<@(q`<8!`&7#4.OoJfbpo3ig@50+m*eR53JRhqrU=H3GH@^KM2%<`pA;<7dUD]9FE$tYmlj:4&)lWpjoXje\L;nHsWBi%7Z8@%W2M>]WatN3e&Ya$P?d1_j+a6i$FGQe [Ho%f;j#Qt=QGoBobQN?lP1[f>fL:)H^SC9A[ ;\(Q=WAm6cp29%SZhY@(8TsDkq=l3_I,h(g?%q73K`h6-55N<Bb"<b\qiCo;QrFJc6nT`ib7p%bK]Z8Uo(27M&*.E"M&]] lBHe%8YL9fSs[i&o1*qNq$\A[-3b;`9KbFn% MU:@"4#9NFH/B`<"#)MUg^'k_Qf4rEI<!.UE0!%eTi"%_=E*?qJZhS7.2#l/]i(bnr=1mN@N7X,5(WfVX"5(.Ik%gY]ibjqG>igo3:!<3c4d]&(M/RC4(eIiBKW,oI1d4!(<;B >+HZ0)e.bs' II6_7LN#)q0a(AMn+>q59C$8oU0La]iI)[H9,gNXL4&:BUAfcT@[h'dlY4tBR90i9=:_bb?\QZ673eo0Ea?JZDAFnHn/UH6]C0 /t-;)e78-B$@6G%OBSL1a.\&FQb-+OUZWrW&1ecmcSTKW#ZdeT1+ApR'5DMSQ, 9Am& )+ e<2W.Wa?CO"X_l"lQ/Q<*[.hDltZ^6JjC[PiL2814O$?j/QC&AnOGmtW_ b]KA( 9LO*7FOICC/7dr)pPH!B?r[;`^d[\V2,^08jK/C[M3k,V78XZ@LoJf\HmZAko6>rTepb]iPgEQ!;4.c$ClmhP9 1T=6&0GBA*(Un49P<=BR:p2#p&bO!H74&n`98`_,VkA6]t dGYqeN"grDXBFk;-"dNOARN[5-%).(_NSa/RE::QKJnZG%f"PP=6#l'D'I48qT\;))GTV2K1E51o"_6-RH;:$cTB5"48AR<+U*>A7N?5J+iEFl=h2p+f6]h.fH!E0CtSO7t;SK_/h/-^ndjRX4$rfi7Onn#B$CE="L=nLG[]3HB=/ph65]@7dB7P#"MTBSV[P-60h'#NLG=klt'MR8q=d)fN])[O_`Ia-7BMX%eFAkcF6JT8MYV!)/cL3[cj3VnH$ &O"iJ_g2HosF.@ To@V7OK2"LsYYcAs5>M+d:Z1XW*e%Gm*K>tcI$W6Q<m7EInq/U],5G4#:r7W_snqr9AieIk[DsKbjR*EesIK>:;KCW8U@<iGC:efI1WKpq5*f0gc`oGC-Wmtq\Al+mGjk*8c((J7.$P@<I'/PWQ^3 [M<U_1e;3N#q,e*I>LOlgU_)VE bAQRh6)apl,gr3^#@NbAij\=Sg_"teo$a WNJ s\q8+r@pKXeJ*sh/T'M=L+QaNK!gdrAe+n+FWDCZ"d73O&/!Sn/0.[9[> *,%SA'G#Dns-Q(RBA`aO7ehjH)t4Y>ad%^:]&QOX[M[-RS5W3846J>)6])AO>s&GdJcAMo[mJfU<>YkGoI%14nSCT:feac2KYL[-! Hm.Y7Q=:(&B9'$OVjb=d*e?S5Zdm'Ar!qIRLG soR`^Z:ee +eAt.Y.FKE>i*h$BGo)I4L)L;A(P!-]ofO(X1\m,kn4&;6HQO>TAD--L"8+>W$6m'Yod<GBS 4$1ens['o\'?+TM1IQpBQP/k*mtYi%&NL""F7t rD]T(-,tU=e&hqTU8r$:1KQ4m<DqNX3""9'$,J-g+2>9bg_4 (a%XKa;;A)@t<"XXDf7j(g6/+W`o$%[@-c;ZRqq,9bkhLBa&X@(>sY^DS2fB`Aq]pm'8iB!RsL`MeG$<n%bbFG;ZT_,C=fKoAn0`.Z\6>atMf'^$hk"i[r`s^LS>(WP-?,oPj_BMIs_1gA$qsn?'oA1Z4Jf0BFg8n.[sf@=gm]33!6m8_IK6',"ZM[M>)ejl/M5S`7NlJr(^!dDiF[.n U%6S]nseSC8=_2>bcCgcoW!sAbgRfL!kgj%81")9\EUQiobP%Cd`[S%t/WV[A`T+_WFrsRlPS]gK0G?)-l)i*_X"4J,[Vl8mQb= 9Y(a^=%lViQp(feU]A`:-MU`^2tA#_mKUj<U[ln(,ai!8it:%F'1nCeHsVA5gTbn-@*%Q>SE*h,pKKl^n\bg5LBF6AiUAt tY,8kJ; B:*CQk]!fn4<&*&JQh^]rJ`k'j?PUQbR*dHa<FYHk *jLESb/Y3>YWN`IqI5d'*L%2HmA?=HK>g73Ih#/Xke3&c^@O\rHG&A1&F!VPW^2'H.[9WD[;=#!Wk267l\ggd@B3(CnV"@!^C*Cm!@8dg6pIAiaVY`omHsisq:(]e_iW)(,.3 '_Y;bm&qQXO[_c2L*>=U)U@@V6QWjlsCA_(^TWdoAjC-6.^kp/8PVmW2pMq]*<[rB(-bHH34$OB\;86lq!,hgU*m&"",6e6`dNO<;S',0jLdrW/-I\P1IJV##$>:TEl=B"$WHA0]k*cVFE+#j,%ZID]KSV=&2S=<XD\h!tWF-.maP>L(qS-;P%%"9'*IqA5:E(-H-^IJo4-*9<L[D_@F$SRC/WcRbs#2`+"a/.2'(ld0]^PMBfHHkYf42TWB'd`9LA5\>o]ogIIqd^G[U"P(ngM;AYL)a\+on0"<DIEF&RKY b4#dbB\N;Ss_eI0cNWF;S6$_N9ZM8`?4IN)9-[M A?H=9RqL"]"V30(Fn(d#- ATpboT=s  B\q&s6GkUoA 8C7.Q.`dP)!oV%I$cesctqRsMFS42&rj]@MZlMsC&$&6P]>$+A,iYLYIb]Ok8_fBRloV?h^>i?A;VM,5F5!O;mI)Dp(7"H4E+C8$M,K=ZHM3iaT?t;s*\4tZ*f-!dB\9UqF>siV<VlSi619AtA_cRe0I_E)Xa5 3aP7#M+6\jp5\D_I?$-Eh*5gIaAKH[X#_-rA%PiIQC-XBWRC:Ct^<fA$RdGAD#VN(&6l)"otBPmOtE1e=dY!,K`.FS7%oC.!:4V9ggb,W0X]]%dtHA?:i[0LKsX)?_lmCg$Z9b2V8ljqB%g/A"X6BBAFDA16s(VLC2f[:mAAZQ4kcBX%1^h>D8lFn_eNf,5In:nD#h.;fF#M\P=*J,DKKM\,pq1^`=90Q!e=,@LU-4PFS(IJm/J$0mrDUEDlDZ/<>SUO"MSWAb 3ER:/YH*ab4%E-KC g>8dCgZT2$7/5Q?8<p*T'SHb"$frE4\^<KG*A*+pSj"",Qt<M,Xdb]Y8n4!@T<:Do[P/8dIQeA@+"sD-$63g);7?\p`ihr:<\/ nf_A`RaC!]B]-!h7i1>)&MqjOj34>%m-^a8GG<j)p+YmhIaGFg[5=.Cn+To:r:$Ido$jIrj;9CIBUB<#s8oO<tM:ek@(Y@$,D1(g,^LIWC;F5]r=6Hhe"L&l]ohA9Kp)QLtaXKB-X0b6:4:L[bPb#;B.O($=%0ci#agASXh4p 0U6l.L:t<_AA72q%Y"1e6J.WqFIgq5!MDQ$C\0U`HX9hg L^6D,BGRt7 .%fX d!N:ZQ0j,Fc9 9!HBmEY`#9%bU5>*P_fF?dA5rhNmWU`@XTe,O;S)EF%,0Aj@T#8(1A%1:!?bI?U_mGggnQe\\1 1cTr:Wbbg\b 4RGo#7Tm]\@0EaI]:G>4:2CR+IQ<r=/Y- \^QC<A;@k3Bt=A A@QD,^$B$7rt9gKP4$QlsnRSU(%aNGmBsG`R>dHmOsFBgo2;1g6@jt1pC'GAaa>/HM16?i(+/9=h'-[]OL4Q0&eTGc8GP:A'>O:1-$#.AdI0Bh9aALq^#XbS:^>me<*kQ*H&g\+oAO*#U;L=M;?#!"b[^K*?iL+1seV,e4]M?p3A(=L3ee/?D#p#)2ffq\lXn;"b N]1#GMBaGDTEk:[<n-_qNHo6M4EH`3*\\h"_a_3NZBf4U?SW<;YeTUM?;ho_2;(,]`5F^f7dF>r(4ZF$j50M\K5W6NIMrpMI;E5X@I:nZH/sA8 3)#,l,1J`/8f/gJKP[h%Z5\"ir_WiH; Gi.-dF4UA+#(<t`cg<W$J5s=kj8&$lA4pS\G]FF@'NfC&YU$99[\lG.F)1&s<!XIrO&k$r]KA[*A=WGf V2r#pDWYD]!C=DUW/dG<J6a/a=FHG89&FeVM;*_\i].@;bd\Z03MrH(9SU9/QZ*Jtm)Q^6bbL)6 H4C<tOF+\s"gYp*[n-OAkRA%cVYK-;"9o\)I>`EgB$!\CiV2nfHi8bde#CNHNg20q>KZh[O)2T2+'cUU'#L>iBnDJG]`*"i>:Ua<\bJcA,b&*i3Ct02M))Q$$3LAH90I7TA-$1SWpR3JmHQ<)ki([726n)#$LJV,] k[ZnXs")+P1EUfF--*kAWRgp(e%h^Asmq_E<I.W.q'B17B\ND/M"HDt-[;51:[%/"gh)I/^b#Otc*V5tSE+b AcfWW9`Q=B8V3J.Gn3(_3E!3@^p/`V^3GX`lW\2>WK[CS,AN5U 'bgNLlUYn]A/FkZ]F9KU6OtVFV$>M*1!/q2pKO]8#:Q4'9BA@6#N/UWi@^,Bsq!R32;%Za_A-;;q+5&R4?8endVAd#"[O-?b$`E**Fk "Pl@d?3>T!taRl5"Q=GW"IE2?;81%s_b-n7jH!"VH[-Y8`^?[#8kBfN)oKgJ8?k8lA#0V]i'[dc'tcNEbaV9XT_85*(<5S_W!m^l;h`Z$`U;\rVKW:V8RA-ctGH7O9roE6;F0D*$C-(n&Do^tXcL3=$%@K3&An&/?/iFaHn6&7'X0!G0o5ng*#fHsl*_BQT`N$fgYGUC.Le]JG@NV!fAS0"WEGApT!R/^)#D]m`H'O*kPd?&kkAPrR\(3?X2lX1D'"*Q+,A!:</BMNMZRMT=QZMAgA,(WW:kr,tpU2o5%YXolD6!SO7?#9`;:PjdXfDA_ZWVB2312&rXY)k/GEQ)I]--qt A811(&AQSTQK[_ K_%s8AL^n7td8HYL'!hq^Uena/5L6M"FQUrU17qncbE0F2%jTj,e?*;RUE)R)S;,r4HBpG -OfI?2fBE(U&$_P[U^o[AQSp+BKN8P$2Q`B5YA\rda ^8tTNUr(h)4fYhg'Dm-U6%m[7^Xlta#gD#J%.mJhc#`qaG2!^r_0`cUJ>&N_W,l!H_'PZIDVD:X%1j40E[>c#3l,j,.JdXlY&NsLrL!<ZqXLS^TeAb\QLkQ-J7Z$&4lr]sd(kVX7J1#5:X0cJ9="( lF4%1J@eg2IU\dcY7QOE5$B41?BR-onR6[U'P(Rkn;k%L)"'B^YF+Kp*p`%T1Gmb?NTl*e'-sa3c5qb&6=pM#X ]* ^3WM7JP4KgG6Sc`*/TCn5[":$96sITMJC`US>Xff8R;6#%K2R(p%O$rB")9tr3-FJd7EYgTS A(\!dgX4Vq_'_<0FJ%8V_0U>)jDSpRJU0K79LT2(C2*?NnnAIF9a\&AI['B$EkH,Tt8<rKj?Nk[:Um6XeGmVQ')F/jBAR=!?)MA%@rbNhA$T)j(L(A##"8=Ap-J$k%korCPtLHoak4'Yosa%Z2Ss_TK&eiQlp;G/LAa*SFGY2#VJQ%'LM G9p-b@!I^A/dDob-/".)9LAarqp)<s DB3%dA8jD-VN0PT"]Ab6];DA]AIt/m0ec_3R"\CoNl>:JRd7bJ1BW6 imLcO27=Y)o%j4C/6;%[gAZ$k#`cWCil0[:sbU)Z9`f46@>X/\>MO)3kLnmtL^/4Q=^9a@N/n^D4sZi)R\]0\4Q9YE4VG,@d:V<V6NUq3^-ss4'(]n@;a8.k__Z7QP9\N#k:22"l+#Fs=9G8]!r:JGZ\pOZ_MFA7O=#_EZ7aNLn_Y/(;"E5j0!*F](5 Zc5edh3[Y7<=>?\ jrTm)Ra).W^YAq]-=@8(kKhc7O_^CUdZ$3ZlC-ZAP0"s=^\Q7':=+X^r%*," OZQ M, l%oH2X7Z-1;/p,f%i!'Qg90ll9cE.]6)=J-71ClLUS*D?Phg.t,`^g6c`q#O/NtWP1dHAWYFIJL/;ZbrMd6Nl=UDrs:\9D?#YHFK\ BUhIJD#A`faf6"1X3g:bkS?4a 5dY`"A6Z]+jeU1QMhcQ6]@,e"3)oU<<sV1`r/;M]$)/HUT3fp<N52-Q.l_1Dat5o8m5N8TVaip8'BAmA[g[V'+=jU2iop!WX+#+<!X]X" HXGoc'PIo5p](%7d:jM8\oCJQD>Ql59VhPq IO$3[=&)j] 6e!fY+9$Z;C)%p+csgdnAl;Ote]k !n9/`Wc`<PfNs)&S-cG9O0*^?N*jOt$+HB!3E@c^rN$eD8nj7A\mNG4'9'70<(_".;qVTM?:L6OB$* dl"tKpleT4\"H5h'1L(M6(A]Vt76dgr=S-;2*D+$`!kN.B@Hg;A^1-M. .OCb5tAS:S`_.Ijdt/T5Hqr>,9QV4F&Yq ?[pE_lG*nmem<mTPP'.2a2Q+6.BY0dmi-U$%.Jrt37@07jAjF/'6$!#taa;Z_f0[)2l"8L8Z(-+5*2s!PB9Z4K+dUcX@PA olt(IN]T3[r*q2O( gV,8 \5 pQAUq`ln#KObIiH$)Cm=\<BS0([.VmB3K0$1Hkq sS_\pl/t.GDGG%Mjo(P5/(d5'XOrgl2N8Y9s[.bb?oXoB@Whl^A%BT9YW1#'SoQA22s7_G$"QR7B+!$f`kK*4=B"9)*P'm"EL>BaQ-[+WAEL@:j@A$niZoQp*\fOtI0/peWG0>OL?Z`B?s@i_?J9<$23sGI OA.(ZQ6hotT-KjOi4ai.T*27jrJ!jg$3WWE87=8\kBD`%53Pibf[jBAnKP)\XD*6Md-nrH Lk'o-Bmk6SO-l=d(Wj"Amp!VC ,iOF8IgAb7_0*XW3o`/eXiVN3q2k@p=+sSiPVs7$1hR4b@MA-'Oo_9\hcJV7AA#it^L&S$GV(m1FWq38)d\CY-Bq)\ZaHDdA%"5-IJ\=S(-)^BHEJm>Nt'fdfi-`6%+o(qa2o;j$$AN\K=I$'FEap4D6p8,#L-8%-oUFbgAWiG[nD.g5p<%0FM:ef*AtRh5jJE=N2'fciPam'd#\@*R>?2Kr3Yn'RA)($i%$,/eo_p!8^#<[%1Q\7p!i5eR9dr9jkE#NfPej$kW,&Ar3N;4ab-a-7a,qt<ZH?g6f?jCUc12&^W=*3Ca6$Dm_^kWTr!mgHS:1t!5qs=#0Y[B!DGC]GV+."]o.-g:M(oJ>rcArL^+7<6@aO_ph;C`j$TeL^UhfA-BjjQ<S$"QY$j'\qK+F1lKi&?lA^3K_?JG2K7^-:9*;Z*]c_ecK?_Bs'@]fb6e_Bp<NIPY5X'2Fg]H8^!`P#e3g>D>Xk]n</0/0W7I/tDd))873i5b_lF8eeMgWec[/'ok2AM:CM^qgtP<+V^G+NWFhreGV*\l213MJGKWA# 7s1t?&VVGiC=1:gW`D jE5-=18,V+==9hJ<!'%N>EKF.?:ASU8\$A!@r+XLUlr?[a,@dfC_fN810! D!KYBtmVs5+#U"I0q_F^A2nfF0RE>t&P,`0V7._ajj^<>Q?tl^!#$O:tRlmHd!BejK]aqUCaJm0[Vjh/*iQ>D,-;S]XY$Pn2@3lh1(:AnX,,`4?'Z0 J)_` -Wr5?\r2PV_bA:h2HL'/?A1($g0?SG!"=:N+,8"hqI9VYfN4Y3?bS<;[p\3/qK:D80G$EUb]tgDU['[O)7Ht$c.7WT,dep*%&Ta_R,XT=n4G4M!/A.04d/>Y8'Z=Cm=,A'a!=bhRADYk9?sqics9TMQL_1?7:O6E:/^de,TXZ3A?enI)&@ir5U*9;HYV/nn$F"oJ#@a'%*,m6sHScVQFj/Hff/Nr ZP<'V6FaDYH4<8&i7ZTs/+FDH>2F,BP&BAM`9`$NTRCi7j*,a\S!>O?4rCV4]N1_$p>]E2eg aJ&sA^,T;n38Rj>U9,`mY@_kIsY[fbd%XmmD@p<rAa$GQ#X8&hXR@WWr7kT_j:fhUR5%S;-F7O`L*%PX;^j,gkb]f+0.TjNfbZ^M=jLf >7A6^<ZkgVr%$jTA'lpL&H@-L*Ar*^N7P*K!&W<l]jWT<bLfC6nL'*PATq^A)3Gric?9b:BW<D5DBXdb:)Y-E]i_g-<dkK'%EeB,qN+oI/e#6\\dma)#dGH7\>01L1XcG`&t+ISC\L^,7GYI>)'Z +t2.DPsGO!hae9L0Bt*U6D4g.edlmm;g(;=:h5:@d3k?@^!mnT%cjRpQPE8r8BA-70K6PS,#8mFp!^_lDl@kYfL#XtMEG]fe;d%%5:(>Q dF`cZ/\eA)^l.`3dPAi6(4VAf7jWV#6jfVD3.-7,$aT\ICYnB#et <i-HZtij'H?j\#p*A[skA5[3o)o,rG0B2&G<IpnV/fPfeleD qPU5HKckNI96ZNfK[0"bhi$_Vs;[Hl(s/U*L7"$"lKF+@ n#1"%5A]_5g^$T@Ni8M:=!doLsS>H#1SLfA?KNg6lPl`.0bdR<h.,!/AL[E6FNYF*:^t>p?Y!rl(JUm_?X)l>$/_!5]r.]f?M/B+HiL7Mf8P;A@iV:]'NX=K8]_^$, <4< qPK[gag.V7WHF@&ZKq01-"8g3E?]VK2ZLpmLgehF%SfQ"YM]W?FRJ4.V/G:jGpe\bjt^io$r<30]HJ"2n7H8Q\"o.=BsfZ\=+o)@B>S5.f]]Q'K4^bP3Tj0(q&)eP><p/6If-[O7ltLCP@!R[t'IC2BG2r;4p%%^37c#rk'BDQ:_:FXSEC_68"\A-J\2WNb$:Si?b\3jM5#OH`JS/Wj_1(#XAHOR0kgB/L.?Wtf.R_\EAT)k4o.C&Ks!C@]N!@JhaGrphTns7Vi<MP*gkR<f+"N6hj6b;0](MWcrD2)oK-0r"Bb7_hZO>6LjYG/,CVt3*DgB`+_q'9lK'-Tb+s)T27FJ[YR$Ot^!(W$beC?m[DgRN548N&LZ:/?sXs!F4]gFV*DnRMB`g8_X+a7qa^QAVgj.q0!rb/]OCp01ToFb%]qAHj,YTY2:PrfsO@?ajC$P(KShC T<Tc(k@sA-'Gj'><[^'gO?!f#B]].HBS`3X#p"':.l^7m^,J1843Mah@-qe*)t0ZG2l3FI*f]EU8CldM29$WUD<2m-&'B;kGU\$gsib7(8d2@&-r b=Q1Uo^rGFmaO5?iK+A,A7">b#Z6GpJk-"*^VNlaY> qTlfc5K:mCT4t!Jk&1Y<*CU$'d5qL">s#F4@%W&+,[e&G(s3%Bdil_&+d=m#oR/j%1CBn,`;\:Xr-` &9a#/A`5`^e%V-iR4X+N;Tl?fAKpYV%kWL2P)'<tB?j2QS-4Hol\:8@&N[^?aG>eB=4P0)#T+B,Ll@Gr'XZ!^g7iF liLoAG#MX*kLKX:'A#.EP-b$ZDpdgQhP5A61n:&B r_=$g-4AR(IsV*9CbiWH7Gs+mA+o^sQ?4(p"B @?:B!'*kpj@'^:73Y[[P.WoRKeOm%066gH'6B558DqDXp6tOQSsD"c?6;"h,msOpSBYjLq(QAJZD;=Dgg@Nbl/ d_$0:fM==X2\=m"j][d/Z7K1[3aGS$p 0.6ED74l;g"3;7*C'c*7U8NpCZTr$^9FZ7AWf.EA<X==C-+F<:$oMa=k `=-7fS!_qfOJciIZE18f_e64JQU/lCF9Q`"1^qX=6iE)Pk@s=OPT) X&<$!i7Z%]alK'D Dl#VCl,h_c"I:^IPNUWi$dGM8@sSr@&%B'XcqA_@1a6eMZ,)ABFo< $hp]9!R_@1daHGd@)*KXpgHq2b6FV7>O1&aYi/!mVUmC1Ya`` ].M=JYJAX#q9F'k-#:.Y<eI&e%J9LXi58=L/ UN9#;R11i.+9bD;U`(>An!foVE7lb9Ab<I#G8c6g#WoAc8?)fUh:Q^W2OK4A9b=P-sP"ttt]\djRc.AA'+Q6p5JE`<&L!#CJ,#PH'4!8qk5/i83976'Ys3Ak'&brS,HQ@pF1=c9r8K"sHs`a%]<`-g"t!Xmf7#]bpN5,C#k .\',-q$1R_9<m1fE%U\^4T7VUc,hSY8U?F2n>BTX$LlFRR&Qj"%UdbQ(2CIQ"6W$NF4P\-e,<OsZa<.P#_aH&SXJd^G+rpNtIl-4#AFM1&m,Ja$GNfoh=e>CRGR;G72S1&rFhlAOQH#85[.Q0<_FNk+F\iUYK'Kg+,cYkkO!Ad6S\<9`n`*AL:MH*-NMo %1AQIYZB"lPft9$<r@48lXt^mGQXA^Oi#@T5aRE7W;)ms"Hibk!m7mD<OZZl%2r_='"8E0:'FZD!!1F;^^co"cGA1%38M/=l&l+Q\5iOq!iJ4D7H']K+8jmBR5.ni)I,0n7PVP#0<Qfe"r>q.4K7$fiQfW@05*2M0Q,gaBYj4]Al#1EPUWAs)pd3/fM&;3C*le=YZF<IRDn9(#)T-_q K^Nr8\2=[)T6rs;,fYqHbD\Q=VLUOh.Ncq$O*2R6$ZtWXjZ 5%pPF]ER%++K[kb_AB9ei&hG!DG0\ 6CbJ80;Q`DP=I\o2/^;XI#HI#*?B=dCn#[-E4jDQ\Si5K46X4VM)$p#F?O\#'7IZcdYIg)o?fR^XGbNFPb*q[]GM)QS4b@cA*IDad[`0ZaJ.[#[@Lr+.K<hRA\JhY8"8qKR`LtOcFilqAee3A+a=j<FIE2RamDL\s5_%%X5&gK#3<#=`>'sQ!pS7Tk1+hGA2b`A'cs*&&!#V2;*;Jd\7a@S/R$8mgLpcdf](QGWYAAF;O":QIe()+[::3&Xms,6G#7s04PXnp8T-Dor6bAZQ.i2VIC!BCm&,D5j!LJ?/+M*i_8t+s6:!pb^;qM#f:)k4&!rfLUQ/-GcDq9%?$qtNFe#4:"*"IQPBZc]61@(fT!7/.T7 <t'tA<N`"UB!SdX7Wq<WO?$B6A>-Vn $2>%%,jjIb,M$`L-82!q1&?%W0qpDCFWg@U18f*%::H%sRL#n/t.r<d,SNsU&15Z/p:sWb@,kQfA[0q\q\#>!gg/?VeM"DHH6AI;+%a)h(ilYcP4<e#s<n:m`PUYmL6WJ/)ZE<IUel;ZHV]IjFFJA8=O@i\oB'T,,A?O!$Qe3plrcfEADaC%d "8fLCXlag_-F3o f^0[EhTAFd*o?bA=NiNL.m/4f49T-4XLLN\FLr&PA&:4q&'gCB<?rCI1=Z;\aTg^mk)mMD#JeY013GIlU.*DW,pM0?1o11*\N,oDGU8aD=fYhqpM&C6B1cF1;qYFHpbdgsrqX7S#n>B(lrq?$s3Rp<SE31\4UV(pb\D@eAq#p>ED3%\:o!((N)]]FrJrRO)"A)2i)t&LQh-l]WbUX=iP>l[Tf6MOoM7"f(:hfim0*@?Jio3=If%"H96(<8;7(M;/Zr!t?,=K"[aD:+6ak;,?&:;;me?f'7PGmT(B\`YmFqTaK7 :]4\Ap7$R:^?Xh0qGB$qQnjGaNR1]"Y9T4Z% T@pte3Q/??@4*p\^73Kr=s*FGJ5e!#/m33Arrl1]/1g6)jSIG:ah@9/aRR]To-!toL!hb0%I"1mJqi[H7@fT8+N:)"gCDr2\<AW`3q!)#6klf']q)P WODh:JMo!-AMX &s9ZA%:raO$)=,Sa[sBp*\`U.^^?J5nj3Z5Z*O>\Z)r([G.%e.QJ(DTm(TR(F\V^<RqBNZB>WqMk,^c$P=0^/noT/An<j9J=DG#WgDH2cN'UN<sfZ3jg1r<"i*jgtDe%_(e+*'[8R5_A^D]iL9P(/"b5c`?#ND"GGWMWY+]a $DfC'4l:dG;kXR)!>cjC,c4>r5OrQOU#M6,e2U0YcW;*1$P"ZM/1Cbl0?dQ^\A6@3:Z+-^nph]2 2tc#>6&Z@6[*B7]fGA[cU&)Sk0UgUe.<b%VLB76X=qo_:sH;f2fYgaX"8A$fVatHt$B0r70s^&UQUJ4O,<A@\sh*C7'_m%Fq[s8*DO=aE;_F=AP,bD!^e)*!C'$` P3%(C<A3-A<_d'B^(b1(H#Gl@+rgstJANe:DJD*)54&)H6AD=JY)VtJkl_6"AjQfEaH%HIaPh9DaMaD^r>FFA,'Xd`6epPmXfSsT )-iT>MAi:\a5+gl/.pP@DE%'St*+r;51hk6,/4TCUejW %7e$D4pQKGFW"r=h=a8^s.hp!?.6lI_:h]fD:i5=@m"3>^XHa\R9KU?;Vs@_%3-3>$H4L">8ljV"O:4Wje3#D<b2:2(,`RX*qj_Bm_%sOoN/dqZ?,,N3`Y2NOt2.dW8U\?OLiMXHe R/m3QtI%f)qNU@U;sfUb*<D1X6.IGq:C%h*O@PNNqnlQ_ XFfMYS4n7lH"Y2jTK(f 2+)aZVWsa9^ndABU:#Xm"oP"Z*k#/qoK `*iAd>HQBKJXl?p*)lf[K"UWl@BeAHi/q=[hF-*`<J!G[#.<;B/[o1bZI5(*:#K2r :)t(Q742hbh/6gdA1SF".>:JtCM)I7XD:,3%tZD(LV`d_>e@@>"LTS]ShI:!WRml\NG#cMosHE@t<1Z]"@JENC&=M7gW5t=D7Z'.KtN#r?fF/a[r-B20%J-,A&5A6N#<a_WmjZ(Qa@:Zf9dCb]4l.dJ[dFGEH% A+G+o4m`0#.p34?\AhZ9RJq,=(QB@gE%`sc<g%!Oq\Xt]a:^S[pIlN;[[k3BXS;!!r#GdZ[c?6*E1VSI)7WfGAs1rJs[bg(C\V++,_>K?;9k5Yg!:b=)Q,4jXh@>h$@g$GX"sH8]Wk$\qB"0*&3q,dE/a9g>*d^V8Rbrs&J[??YH"c9<@QAkj..T/nnaaPdQ ]s.-#&m/+,U0FA/lA[$O7;<NKN:M/%RqH_r[8bR>lW].`r;](S<c^\R OBUS@[U!R[-DTVL:nW`dP\2rc&@4=S3qfhVX56[:Dea(B3MYn!]t#Ai6C6J4iiL"IZecaQhHT%7MskGWcjWLZC$g\JrV^E#CBmk0\sWpb[C;%mgSJiL>62JFttJS_!I')O4fZ\4AlMm:7d1'f@2ZE-O*Xjfho)O)/:*.aQeF<tS[C4plfh3K(TI r(9sN?DMX:0#<e+N533P0XJA^BN6^l7)A)4(aDb')Sj*,2MG:*;H!aO6pQCIn.RI$F"66IL%F23<nY an[m#O2eoa#b9em P>AA,hiAFjV0mLH@tK5 '\F%m;g?AM]]&p%A7S&^ab7^5^%P^t?GKiYJ`"aBmc<g&`Wb_pJD;"C:cU6;5tg^U@dLFT2XN[Lt^o%265('rR76+;\L9WTleaf_co52*<QQANo9hXbjc8>X7Z\Q_KN\oYJ%F[G'>Xre>-"9R\O\_J*Yh&0([Aq0OZ%c&RYCWJW[,.KEo;8/oUC2PRM6-\sAqF?TXll'2^$TlX2OdR*W7PX0$CmK:J\MD#C*O:^b!*+rm6/ 6HUi^hB8%AmmS=cPT>9e;EMLUrFY6rAL`Ni]UQetHfeE-9bo`Z>!]C;$k\mtSE!ndgq@2pL@ i`m`fk#OGRcTeUgCB.'b^>sm s:Ib(j`%Q#. 5T\IldJfhF^kdIAZ,*,;8dnT7Abkag,]"-nL$nb]JCWR9L$n85 [f3'd(WTmHGr>$XeM4p&fd+1bTqE_jfn% kMPkXk- (Q7V,m*VYdCEZQrda(r1>$A><L<^(5U%OA8A&C#j+E9GWdmR0$*Z:JNpI/&hD\3cD>;@a\/)=joY+?"$%AQs?J_0p4Q<Ihck5UXW>:([Wdq#;/>MKeH4kI@m30otpY[5jAI*4g'\f0qiJ5f6V-OmQ`B^LL@AIK$or:nOHa.N`;KEh*cQSNYD.8h9H%HAn#`=[Wk(?H)?[>6=LYJIbm"QDW-4c+ES6WKS^P.?Y^>1\O6Y44l5WdA;<HnHA;SSYI&hSE%N#+/AjRQ3f)?-/i5^1[b^h+biU!9/C\Cr'[B0E>.=;(ZB";qm%i`^;mS?$6Crjg;;qR(Af\1ID\QE;cT^Bl:> `_ij_8>cK[Ut,)DhKX$NVGXl0RG`GKH+I/H'Mn#r?Y"67Pm+'3M7&FL\DFWN#qGIhK$N1>X\23%N#@ c4i$s,^>tNSrY&Oq@#N?*R%D$.!:QU^6B>pA^.Xd[i/Je+e+AKb>-=H(8jMiD2BWi%(72F>()`Te^1;b@]nKGrX1c!PjC"@q0f<RrSA9AA=o5X#[sK5pK#mXjdTWRk_>^\Ra;9r-CVIT2.XLQ\GK`/oQQZ<'WnA?@>P#*3INmY$R0N3-pAO"lRsDlts!8i0NAmC?lS"A>rdil+R?%WAg?/jT@L@@? ,3)P.J(*Ps6FHQ^lM<)J`B-K%Cr=fPLptLA'c?r.\Ji36@Tnmfb*"@gh_j*mN2EhM[]55neP1'#J[4fb!!j6eA!/jA]C]7]>mii%m=o/Y>,q^LSS9GUn$l@jn?<ZFhMIDV=5_AdV`A*UKJHeWp4#9#RDbQ^d3(L];J^OV @SgJ%\H[VJ^82cNj77pAf"sZUVbqPNF@#h7pfCJ3sQpr>`t98@ns`IbS:>mI^smC%q<Y%r,rY?\63$GK2(EAs^Td@6jg&#;T?K/0mtOl&DbiYiaI<GsE^r^8_3g9mts4L$NpQ_T,?60#'Wg98Xh8qg>m&)ms:S1c?Laq4U:YlM[>bH.t7!14F d?pH[HPBtA%9E%7m]AK4-?q'r+eL b\ZZW%j@#BpRI#UhR:FNFBY,0 MX)UD.@V&b<N-.T:nGYlKV*=46<lTV.]7pJ8ZnT[)OE9Qcn_<mGAUZ?SSW/DoL0oIr`%mXHCFAP3a9hT31a\)_WKS!d>cVAB!`\Eq %Q74!Eg7O%CDk'-fK9/49\5_ bP*M6qTENeA[A5e[MDmk7Ncj,l]a&\T>WVPZ,>WJiK'_pS(i@HR":0-T0nI\pY_5f7\9]I(!&otDqY-MRSX+th4gU)pG0KRJ)V!VGpTDiU!:9MilXlsO9K?O.#Vt("0Rcq%UaAoM'l;E!a[Lko%C3qUa2/fgC%Ako9!#8Cs!X"!fOk*(.s12S9tn`,SFBF9#n%UVYKTo=+FR#@C"r`%rH1U*o.?Ee^YH `WRM-kSJg-80T8+$ofi&gJ.0SQbUcAm=pY63?SmfL.ZL:/rA RH`-&OtN:T$-4Iq@O.r$++jHcbd^kKr33*?KYbt,'e9\GBAJ2;sq-+]r$@St)O ,H_EFUaBX1MbN*f/1W\hjrDLK"R#ia?P(-an& <7g/@11^/Jf9%]6Pj[1)6o$i.Fc#q"5+gm-3HPQ9gbLp7FOlY[j12JE)[>Zl!Eo!F#.nSdm!s(;$VL2<XMU5-Y/.O&B3S;WN%*V4IE4*efM.m8jK-VMe?Tb!O!IK9RF4"KS6+C(gAZ0_%+7;?R`mHAYg4>#W`P:.^L$0"c)/'G,H"H=08o_%^Q7J`4>Z17cX q9dWhZL:IFn5H@U,.-1;q%U)%cqFXQf^=[h5p*3C6_>OVcsm<$t#-(/g4o9 >U/T>>Le@?7D(P`R`Z)?+N`S+**I#1X5AA3IJEUa";l$>_G^4 G`\5ID8L$31/]a0V[qg+grWO*^sPAga>D6[hG,jX^W^:"!D'2WRQH+XA-AS+jOhS2nR@3b3ghn[,MH@sZQHis+d%A)=7$>IRVg+.r9.TT*ZSkmfMTg!':t7QUgk`b=(HD8ON?gf nOjj2^SPXoCV=HF_[P]cjPs,bH`r4]:2)7M[L*st%2Hlf&eq@ih+Fsop I(EV&oU.%";\0`@(;)V>2Oq3WQoh$F3:E6ai-spi^T$kjc+`rD!cWK($?kGN%?T(*]h?eO+T_E=)8B5ioL6W7<9)-r1cgW.XVf2Y3R[>+0]KiC8Bh>,C!$HAmQ1_8>2UTo._a[[qchmRnN2A^`BcgckQW]r(._m\g_gGt0C`e$GJ.r-^B"?<rB_+FM.HL8VOsmWiqcrmEXAI*>75&4q*)2CE^$F!f.;M.]>LN7P]_(^:2DLhTWH,:)A7c2sJTbDF*e%K*OL]<9"O:tWeV%]V=h)>r3!]l"pb3;\<e'dAJmXbD1-antl'2=j`NAfTbog'a/BkBY()=A?.%2ZCOmCdA;JI)3Dt2FDq_49aZ,`8qV4P>&!Zk*iUn;"A&'Wnl!=ghSC608;A@;mj8!GgAUm&W./c$F+AkA1J-P*ma>Qoqbn\;2<1Hbp;/,V^(G'c%J!8WF76%+/='$FK)!Dt>Eg""2/4m"ok<#`,Y5pdE'$&>-K#1FnB@76/(D#(pp))6aN#*;)ro'7Eea6qGsg"6qln-An'9;TgLrhd;:d9#["e@<#'AY6PeE6DnRL+jL)A7jA.qGMNN)s,_\.6EjDZ?.W*.#S,9Nq-_Y+57LNA;qZrB+4"aOr4lAbLcEA:Md5qQ.QrTlnsYJ\TH';5^F\EZD`<$8sKonrr$J&2DZ@I%Ad:FF0I)g`13t,rgm.Y8nA[.T!+k;kjd.#Ps<2JCCb$ksm0732;Bp*XjA5F"2G-e3<tMA`]ZY\$tIICnNeT@&_;X6S(f<YMfAdV=lAgLL@r6sm.HgRa-V/UgPaE):Z3GD>$rrAbc0sG0H<SkYpZH\8eeZ#+iN.$Y.^.H$G0a+lHll)qArK\69ESJf7P["Ys4ht(J]^]_)W,n-9tJ5r2W/g#"Z@:5T.\3L,.A!spDZ,O.OfrIIY2!ATKIpd3e*0ZAG`D;c&9I+G$"A/DX%X J-f+kNd('j4ND#E<;8EG1LE>bS$N)>L-Up?fbkQSjG9mr$f.,nZCYJ.o[S&YER?3 AV4&1-6#LKt7+C") \\@`B^Y:#i5gT0`(\E*Y!(.H%c9h1HkNC(>sV3XPgi$%.@YApoiOIm/=!4@,]9Y?p-5fN-f4@i.AIYK^QVgA0gI`W&*rI?X=Y?^/98'gIYnqVg[CkH>c-XL-/h]JSU_W<?Gt/G41DN&VAtQ\3E!TWn`6@hORe7-[+pf-SWU/DP.@IJR' T&2YH'_O3&[,Q.eV.U_a>l^#C5I9GII;?YteE`t4M?f6'!T k]rUol25g1I^2k0/q6UXhV16b15[cqs]P=n];5plS6BZpITMN,$I4bm0<St<;.n:3eI:_"),D&C"F?r2L?>aF'b:Tpmc^JL0/eg=Il\&:T 0JndFH$n%CUH6dCAa/+$SSGl?t/2YqPIooLf^_&/UtoL[WN/\,qn`TD\/k/-b$(!+2 TI[O@*1@h;scTFUIXHrN(+)<IV9B(SC)'%AjQi2`r9=iC)DbW`j1AVl.?j(*ATbM6O%n^PGi3>;jLZ9&oe'lo7eWcX8/ '6SQ3W4@bGC/N01^_Xh8b#Xi3rt^X1Co5OS]JrGQC!&V[bR\?++e@B:Kj:<\"#tDm*&?8bIY%;V1K,#E??rQEmr29fO!a1,hgIU)]U_6/X`6n)5rok"AXA`6,g;'p30]t$l!@.8M'XYZgAV4H%N\a1eG$Sg W!Q`WD!ga(r/tXFa3WA9mm5LMT"Xid&T.q.Q+VOrj#.(@.!hEYB*Ncq-et0bK+D1W_T2_Z-'r;d+df+7dNfC!To#[$RL3J[]\:3Ns+>?4J:Z4-if`L86=TD=M4ot8!7Q"N\+%\@`<N1#.,agY&r88.I>a5[0`DjbRiT/G2IkOpKZ`?)T8]a[ELKqFogA2P1ZGJd`(hA&A*':c8HM#3eE.sRcb#F<T)ZgU*A7g@IYe?/V2lZpKp<[qHYs>&,r[B3$Q7lZ&IW%T[h;>R;qV04CHjhKr8/O8IAn;h>M:5(((d1J5?qAS']+."p[kK<n)a6A:t-08^X:Tej<R*CA6\N;DW4QmS<i*&6Jffi 4neJp#c"CI"VKBDB?CfmEU+_RR7o70f-=A5q4g:1kAa%NC0]L1JgH[kHB>mZp1E+%;Lg%lnDsAMt;)cqgRs.^1_W\YG>A:QH<hPrN%>+1@H;\otrctFi96"EQF_m6E@W<Pd[jgHPjHsO$6*:]d S3c\:Y*T0Utr]qM`Kc'coV0Mfg-PE8m\b3$q.G-H]:>)S(oUA`pKfM@Y*o]Q3K5iCR.gec%4XOTf8e)<J+7=\<2Uo#IR!m::-% @%$;A:eqS)t( @RDj=GbAYn]%$H*;Ubhkm8eh\1fbKl4('*`05i1m"3%KGUS_G*0 _k,kTJ6X=?A\Y4Wdl]iTonCL:t)L.ptEB?Ab+:F?dRY[H=37M.JrRl"YAjj_T$dLtbc0Tkk4hRXTaAlFt/HcQ7HINZn;Qo?\P92q`si7W]WQtlC^`EN :akD;RZHn1-+WTX,h'0Z_s+<#2+_.4["s"tac_C-WhgA*gA4RGnO,2L&E8$Mf[mRiOj^!_Ec#cq_\TEH(>QsBk^J+A0rPl2=Q%1L+4j+TdUJ6)B!0IcqMfR&o`]Gsi@AgLV,-Kr-5l,*I9(==KW0CW-?Q"-WrnqM6"[%]NcPfP]nOkckft\Rj.?A;FbTC^MfgBhD- #;&rM$( ^b#)Y@;HJ#@2g@0pBj6PiOlX%A6A7R2hZPZk(8HfP+b1GB38&F=FO+%L+j +d:J#l\rl`nAbDEtdT/8@#s>l>f,t!.$L-XjP&Nf6Tqc h4eI<CH/$)j(#%LZ`?0/6Y]mbAse?pDiAaAOg'+F)@Aoj1=GZbqM]tqO4/`j JO?4e%:HFArISTng6,INUlXa&jXh.lKHQJsp?1lK('m$FZjdYm8&Xd!3GWs1AFVY='rsX=r\G\1W$ZR(;$%5`Z&RAAO?dot'im;3!I0A77D0tL*MK_ Z1bqE7=\QVb&sJH((5d.K V`A[h9d7-hhAqQnO&Z1]pGI8i' >sWcAEd:'E;:#6Js6sVS]eB9s)q`L,-1iNKq$F0[XXIE [#[mlZ5Rc06dfB>A:% <pf-"?N^  +H];[+Ko-IFhftgkI3GMHpanqiK.i> nb[n<FA[#Bj3!='TXWV6B'cJ,^0 i;QrWqq2)>;8kKDBN[HnaPpI;=+F*5n`Ttsr0<ca>^_&@ YOA:$[^t[#A=_QQ;VfHT=4Ir8\&" f#?QW>OiSEhrk @shHirk>9/berZoY>3bH<ci.:QqmDE' #14O<?Q7j+_i(jf=sW5t_Ulo^'WV[(tOIed,/9Tm%W+1bbG5hnCea!&n=sW)"jL<[2/t"UmO'+Ns$5\[s )6F=%k4R<;)@j%p<bRQW/,Mh2Z&L6G#c6a#U\(s6SU"b'EV<i0JPsF\OJPGRhBKI\,K<!EH(AOX\o@)'TE-6&.#"ZRc*fR^Jfk^h!nRXRoD&U)3JC=[F:=gD=$ch`KAQN_fMrg8m"K_ sU_0;JcM-j%13;+X(#P-.SjErga6>*PtUN>nTp`Xs7[2hAJO[H,bbROhY:RFqsVN+WtV^Ai*Z_8P_D_j?f!4[X0GJk<6O&A5'/SCO;:P+1DDH;n2O1O AADT8l,d3-=Ar*V>*IFR6.jc8CN+]s*bZMR)d,iH#P33Bq1ABaQWr<>R*;-@jT><98-^5CnO>p8]-G))41BD$7M,-hCAc'.Gs_DRC!gk>HSIHHER,+0afJ#(%9jJ`@QF%L1V;GfpAM:`;<1@Of(UC$P@(2TSLo-g)M05)F&*b7Y9o5A(OP5R%WL8rJd9Wbc0L.enUZ1F&[;ac7"!K,,NW*5]>>,X[>%@Ei37q,ro5LRs$#eLU1j&YVO\@A%b^MK._QBm;4Z2.3X$U6RZ*eOA7$bPkMd37aQEma`YiOa*QU;G6KR3X*q1G0K-Q=m1Ok#lE/gI5$A+-of5>a4\^%)$)=4-stY;Cr/]T3AHqY*,W\_K5-U/'.I6@C_A$M%G<8FD X0-s%l.>p5c7/)89RL>$-P>gtP]!YoWh?LMM!Eqtg?a,o0mMrYkjrf8?\\N)A]k#5&@8-%)RlN-3-!R;P70oq_KlO;CAAP<3JOr^sV:24rt=(q= $oQ(1+l%AK55\P9?t;BKMV>5dFHb,iG#<>#X_DMQoEZ+H;WXd;G=0+ Ze&@M\<Lt% 2`GB(+6TW?AB1Lj=2cTH9.9o#WG1I:e0$d`j"pWt'<b([?M.U]JEsT+!'o&oQdp;8d+3*%Zs)^RR5SdUkRNQ2T(:06e%T;"AA\$K)\:;^[<dmZJYoRnle';iMk&U!Q1mpC V/m&/,^!,<![=ABYWs3BERVYi4`SVXKpR7ZN,.jVg+BLX+ UrDb._$O,AB7nOiT6GAJ>A5C=B:r=1ULSDD]tHq$b2sYXAc#':I5 D"YR0=LWXee[s"f4O &-l4@8t^qL7l4UWlQ:5Opq%*_'b]j4Ik^_kH+K5(@Of_fhWAs`_D^2o]]=':KsmcPn99VoGCtCKP\73;K?l>O3gF-Ns`_O^l*e3h(FY=Ddt#M?Rhg^@`o>-OSSO&(G0Xa :Zk')</Ml\RD+r"M/Y(%Zt<k75?n@h0g>4ATV0/&##cWpG(AWj ?*kd5sqG/9.H]e%GKb*bi'Yg>K2bEcb6;fR'j=Pg1rnSL<!.=h.H2QJl\M_qD,J6g^6>fT)a?@3pMXLprO>^Uo4`ba_"i#tt'CAP*NP'Xt6tan_SpOq/Hs/N3V/PR9Y.>h(#njXVjDNmDSLEJtA$\V@C[>fcWN>3(Y9/(\,]Vf; 2p(b@$72V;  )\$s*HdfHp@j>DLD%N@gf?:_8[RU/O"Q[1jALA"[='/OAA)-i=@'636!el8[YdW/V(-d3>T;S2Oc\PR3QZ+7YGG6#d$ mS`#CnW9iANsQEoRP3ZU2q(@/AGF$8MWB:bObcRSOR'/;6iOD@iWh_M=/Q;fQ@^ P*ipN=7GDGqTC],@t(@%+1_LjGq"%HbLc9/IJ@Zl8sBP`Mc8C0\m5:s4Mj"gZ&Y3LhKI7+`m#(@r-R59\/I\$0$X!e p7W>""D(/k8OIt#3s;/0*7bYoik[F]4"6@,2'" WP@c5?l' J?J[TFE*d-oOSOTVGq:a%giE%Flg.bE626m-2i1h06BnFJULW#!20?:C(7D^9E0%hrZE&H^Ve4#j-W6<op\kV>8M\.!SdPG<,UA;M)Q -$[7gT;j,N\08e"\,;`6X4<^2AAbe0HZ`Jl]\8tN1P]-HI7pV:Q6DD7$k(pQZY7#OP-G %3co4:Bj.A`A5_iJrljh"J><-ZK^Gm.b3[QcPripbVm/EU0Fj:Dq$D`/*hJ\*8F8)'&O>YHQn6MSkmMdT^gd-NqPt m=$6iY6M7;l!l4CB>Rq2N=O;YSUi&bA8>)R9A&KJJ,A\sBCm< "'#!!I[*Vm;a4Nh2^f10r!.p:LjdF77_rg@V*XU<B`qfY/</_OlD?L:!,(N4@GP6B:S)(('TF@@aL3?t-kinE2cdC0W33'oI!%tBr?D?TK&NQ9@9^Z@UAjeOjrbgQMdA, :A\O4l@J_+'GU$lj2YZq`C1S O[0b6NdLiDVAtD9W5_]>%!t+`#/elU\2\lk.@Uf>0tR8$?qQJ_:kWKJpe['.iiP'G/,Z-L8pFOqo`KHFDsWdbG0n5ai<bI,GGX/bPX\IrM4Og4tjh7Qk6/$aM6VKpt`cbAZdfoij'kj*0\t%Q-[lhgD[,e#rltb #2KY#n#c[_oJ r8 O#/nM2=)E;JI>C?><Ha\cmVls(RBdo[KpER8%FWZ)gJ(4GKPZ7;6h\daAa?j$AA>`bVT_&"A+H\hW2"p!4E6CrV$*#N9.LL:5t<T%Y"W6JjQ+=F>M.KT#i;\bJdqR]B94)i0;I9)/;_5_SR"G4T/Uq?_3WmY*Yq%6K^dt:d59p`jeK A7Z^U=OOjHR2FeG0OT>S=mT<Q32rgqA>-A#'Yc7s s,@_p"Cb#T>.jI/9:8;cS5=jsSXE5H?(.VlG3CVaNG(*CBam!?S5B<bkE`;?\?H)LTb]Ro'1PT13Uq"HKEs)/(/6cM&O8X'p%XA;8;5bgFT9H);UYP+BiAUAJ*kXb]F?;!o% )@Omc<fjd5@]3N[mfCN*f_$%]j(q/W 1f4E`:3m$KgSiiVR"!/1kOscbi2:0B<ioZfAbaQP#B3'2T&FW"M8JqT)<6$ZR61N_WH4NP:\f@G5U;r'Vt<?o_`0dRW`kr6($A%gg6=E<<3XZDMNOF(=:3j/*LR>-Oen)\\p>"\/!i)ka$m0i,8S6no/o-glcW&PAcA![7-A3DVSAA9js5H_.%CH=XT83\Yq^+er tWe,P:FIFHiE=1K&;&5+@jj&N!]%i\Fq0sD;9cR ZO0P$4:?VT.;hFi_??dcI"pDeF4U.(BS>`oqn]VA:TksLA\OW18p^FJhqX,/F&MDPFm1GfAd_sUVC2P DUC rMl@APAG9J8+r*(JjR;!7Ddh:nN#'BH7"Apd,iKd(&LW^Q*A'W5$=/H)Mn\2a'h]OXO["oUSI"$;c]Yhds<X/,-ZW+=<UH['eZ,*f)KAm*3AD`mJOB%*4IFq9``(b:J37#SEqm:\&')ZRcg]G+\Q0t[P)#Y>U82dWk'L.ic o"Wk+<:X"N)e_DdrW1_OL0#ap []DiN\JjPe"lRaZM8r4+ag'7=*4tNbea=?;2HK)6%?tD982!sdEd*VDh,gqGpD=$j;q\mq]c=r@ .\Zo+Gj"FWL(@/4[T%TQ@=!b*<C[! .2M'*b]!Z[bp!3G#418!]SI5VMq %qEo+bTgA.tjgkC!ga3S1CYc$WNoh#fCa/VUs9RIs/TVlaAXn,P<qlq;8f;9"0!5nd78]WEHGfVa8V0apq(WA9fbl-Cqr,C6/,OC%cN&Y#]<qWD$WKh)X(.r$i5lE%Iq`t8i"`d# L+oP[RPJM:-Bh!!lrcL_]Y3VIAePj20E/_*cZWA<Ce:[8%*>! )TK$!Ih8)i&iP1HbDk!G@s5A;RAKR+JPgi\Y1jK1l&5<m\WWZqK'DY7p'PrN)egc`=`dp^*"Dtb8+/&6["^]`Zep`oAb<YBeI1$NkB=^-G#cZW;o>^50S?LMPUI]rfD&^6>LAf5[7MmdRNp?/!:!`3@ @m=/9C3*c'&=Jlb8^?o:`YhO-5GrBbqW0S_*:D6G'AcGjrds#LI!^7&RT9A>"[=bOJN`4oW7f^p`S^J[<(iA^7.$q0Ad9s=6-AcK4r?h`EXp9(`g59GJjHSm%LIU+)O` +05ZHsoZN=h`'"FOc:T;@_7CPD-TWFg/7<KsY9S-+0;2q93d?_%=5C_d*8BrBe'qDiKJ.59j,jj)$3Va/H#-r$@$)s7it_K4\GFLjRA#%@W% '^Fi5[T&Zmn:D6EEp?FQc,*R\]F,\GM*amdRBO:"lHtU $B_r+QK#KSlk:N3oq^`-Fj(PEf%BK+Ti4]RTFNgM>UUAQl^&,_)IAt(7^3g?X"1']/&b>FMD5p%bgqDHd'+a`\*88*$BeHJt K jm.: VL)cF_=R<IK^\8Pa-)mPR,n3bNE["S8>^<&hV'B <.p0\F'E;Ze?3+C/g@2-^LPA%-Wt%Mn?%PoB[r:=U48X49Tl7jDQ-WC!LC:%#5l[3b]>e0TDkC/Kqs->A2$7HgDU\Ob=*= a(%j89@-bhMa9GMka%/')S`S0@2kgA9MS!rtX65<E/8o7pAa4gPW$H+s@[7'a>JBEmS?<I#)aLQWioZ:]dB'$4lA-I-"'g/mN=OU_ NG5D[r,q;ri)e\Nei^0iX AGJVq0q25V\j<m ("o#.?sdk$XasYX7bMTdF&hS;ebA;#J)(8Q*sKDI;)]k7m>h7WqqkJToGc@S^qK7S0Mi.<iab,b!kr9Aj2:rLd'+:76mR)r9:PrPA\8]>@^WI'Lf1NZ(%hA^))K*%mlBs7VE9M tNi@9SNk4F1ah3?<`WWX!^:b("<!Z/7L,\;7dM6]a:MXdKI#Y <`04kFZIC:<Q1>rKN1`qT&[))Pa%h#?\O?s<IT_`'M'^tB9+grJ3'/<]d&Z]O.n1A WUBlaE-n-2TDK1h+)ig8g[K <]]R4(#9fM)C<]\HCZ1YdaJjX?+K2#mGha3>2#YYOVBE#jcI7CHR__T9Qd?/Gm5[tRf8tW8U'id fS@_5?".$I9)1Ve?9J/?hL:rHa>f<>qAn`Ug?i^R=2IOYq> Q-WJa_S&]S*=VhPS`-%pWptKBhe.?IMc/G3B/<o9kj1AIKN3(#l'?B4k'/+nD2Xei=ZbJ\lpm!0>#m9lI?p8e>FFpt]bT6hP,(b6o6=''.p&rYZ]niT?L(JV.1*I#qm$qGU+@1a@cL<! gk/<BlR\1Ucf79P'EKVCCQPq$s@EoaAjR7XR??!aSH!VN>dC+IF"Af(l1J6PA(O?[RbhZIp0IFooE-%j...DOF&]^l 7J;6pC2CJ,dd[#W1cA'0Xl!nH:a24**!%kF6\S[cp!PhCgTLWWPsr9lV.r_:HUD"PWti<@6R_W)LCkM<kp0cnA> `fcTl.;1+rhbXX5^=<Q_<k("Tk_4JC^hE<NgA[$drM__'$t#\@Va4LlN5A.Gq!7Wj?(T9rBF*lm\n3-+md] gr]4X?.i1()\ei=5B4>(Ke@^b')g,WcdX]c'j)@KIc\Ng'-G1@[:J%MJ0E<*&"f3MT*$fVTQ4=:5l#pAIm+ns-,:R(0q,.ibo*21jq`5Mn5"UXX_n/J<cg6c7j82V\$H1!mlYnj7M0AA[8X#)=UG+;Qm5G=`5g4*;j6q#q/hiOATs`oLIBa.p7][34AJe_r/q,N(CUMO4Seg%:(9s:FqBnHLm;Sp^HNf%fAs6/DL@GS,=F2<lY+b+4r."IEdri4J3-e$?ZCl-W c`+sdl8-'."@;dIr>l0H53.1=>IWA?Ac3_th=HtF?p-i^VFsC]c)4E!>+AQN@@\?IH*tN:NBt$^Ab=?jj;lm;Cl[>DV.MJjpeXd19lD4k28tCO)^Zm7kZ'bOjG-Jnd"A">-m;hHB@g)p8ZW.j4k^0/k7DRD=Yn0=-PD#]%5kU@eK.\H;H59XF[(hm]qV"R@"iOA1M"]MQR5, 'c2=Ph.2sbD+HmOZAp?_c]5mOg]OM;1:$_QkaS$csUnd/)e2iN4>IN9UAJ(J 0Md^]/dB3N8"^q.j'bfCjOSs-!rCKYUj#;_o$54D,Lq3H0MB?ZCI*C6.%P>ng>EW#9h("sMP8(B4l;!oe4)'&&,Vbd;P-%VH8&q:=/e_(4#4/:nNho\*6BbMqG6)56F>gpEgZK!nEWS,T?r>,ApAKD9E lr/1E_Tk5o#XUdGYft`5194^WV[Q@;jA)Za1NOQ-a"5;LZ'YB!6RfA#sZVIf(\6B\irp/KYVa[N*8m8O(MK9+JD=m;iF4VF@`7?mhKA>bdE50AVVJ6Xt_#pgZ7,U"B#=]*?mrF3MAYRfA"- N7ZDanqj(hK3T``#mfi,0 0tGA(LbPL0k0DWJ8XS82,b+*YF;#;_&6-&Q]tF<JI"C!>MafcfC/\r_QIdc kd0.o#^clX.E=3<l:74As,mM4A>'B]78%oRLUbCd8Cdit^GnMsE#pR:=qV0% skgZGnOK:scEd30<*f'dem[/<I$O_``-EZ=92ToSFWH7*J3o5<!J(q/)8q/1=YVRBh\An'7t].l%shN$tJ0p>$!B!jS<c)"!AJMYn^tf!jB^]W[,6hH$/cBilFHDo96OhLRD-bi6;;G#6B[N`KWIts7?3Jg6 SZ.ih<2IrIS93OABMd(.A\d"8KoWECE8_KZ>RZah// SC29rRbrk"!A.i%[!Zlg:&O6%iWnM9 8^e)K$` .G-."W,QN2rnGm(V'LEF*IUT1pmH=iC$@jp!D@&C!nDr>5FOj^N!5%Q<(jF@5<1N7^s<H]@&h*E(La )=cS6P@O[%_n`j>cFZ"ZpkQ=UKL`QqZH&"6Cp'(Q,H8ooqZc.\WEl1 a<GHjI%;4#!Of%KUc\T2o ,))^fP#[OhPE$(3N.hBU(Op0'?$1*B7"I)R^IA\8_G<*j6h>UR`><5 Y^l,ld/f28MJXjV&$I&T>$9g c[K"d\mc7OV#Z*Y$M?`Q(QY\,_\/@r5H \McYaaR#CV=JK(A*.LI_aRAArY?AjK+R= Pn%t'3dX&ZJ-YA9p(q')@2F:GVe9V+7j.]pdMrT QF1V:$*`@.?atU6Yi;0+;oNA_'Va0A38-sf6#YZn_J3WIfF Fsh(TE64S5-=Z/L)#<TWA<e/9Z<dh/<r"o[B;"I[EFh4/96tL*D1K9Cn TpCk_?lE@Xe;bdnlE,Um A")0$AF ^8W0O$oX&?BLh78NfoP%`!aa,kE#S%DW>J7S.Hg_oYN_e--jU2oaK=peMh`Q[$D)dI5q3tA7VDD+,?iG=f*bs])J/8;qOam0mcO$FXp4jQqN!iMM'KIE:l+He=U[8o/9/sLtd[c3oJ%:Z5hVVZ"dO1$;idosN<MhfhQhk>Dg,(A'F!NfeY^O!akMYg*SM??f73PL6.lfHY`r_I]-`V;.\A9j8h0*Y73ZUQkqo!Io%i*+hO.G@,/d_%'FO9dP@^D"l&Qe*-[$!^=X)tKAH$<sLrIm3lmOC&m&+M'm^.*tK3Q4r@[Irnm$tT\=\(r"r3Q40F=R(Wh2<`7YVrjP<mXJ\bgr>:TAK4KQ"MFTAk818%GnKgdSG]J4p\8K2ZN".1om'PN+i5)lI1lhK8ik#m3jVY'W(+!%_n*W@.KUQ+Tq0-JE -7G#gd:ARilZh9/>]0,_:kTKm!F_oHrV8Y<*]D4'tSieR&AOkf_?J'/o:qPdReU)LmpB j?;In4k?[tAOi+DZ_7&<2GMK76BM`qMUc#1#^Xi%(H1J^OkS;a/^ANh8e.=-"J.f0\P$,h"s/,sW"Oser6QcaCK[D<^:pbTZB_$q;0FT//eqJj-%KFO37,%`6kg6B%`]M?"8cte0V\*W#&WL9:5a+,-(h8`;;D*I@:ZoS%9(oJoYfGoSgUJN,N15"(I/G?G$G.t#nspAmaV4KoAIEQbi-\4R?t>Aq6kVE>3X"XFVNn;<:;]r%'p_N[pjjeJ]^W :(&NdMqg"(!'F*PoO^!\f2q!S]\Thf+s;9AI_3-SA@k>p/[Ah'WtN7=#f-+k(+p5]e\^jQB6-rDWMAb,+K0d=WmR.><:Xsg(fR\tMOkh!5'L5@BsTsGMd4A+[ZSZIp%/$aPAAc*A>I"h?d:^? G)snhb2eNC[(J8=I-e.nb2lLLQ#TVNLli@WnK`PXVI]M[ki^r0Se4?W_&9M%)\]r/0lcJD[Rl4rI2qG(_]^1,`_RJ#YA&Y3JI,eHKKG@p2##LQX.89hjBo!t_,MC;;I!TWAp>!sjf.^,+sZ=Hr%N2o+cSk.9lg1d!]4#MX6(]ReFA=!%"gqCc-MW<TF<*\7"VG)<.WJYbD8\hcpDkbG%6cETS0<),EKf.W9/g!Xat@lDs3)o'#mc^H!S5VIC lL0Pb2W2(&krB9NOK$jLSe=gA%@qO#$7V*V[L`AFMPLN4;Mt54:A/%sN;]snb_1#^rVWOAA$3V7SGF?.<o,! b1W+tjd'=q^g.4*Y<f&ekgZ$T<tE.H.)3QpoLD\$aBatR%P-?("5^]>,8#C;c=th*btBtJap]K\^+lV?\>[;Ap8<&RsH8cH`#VS^J]?gIJ5lo'9Z,GC@f,AT(>^dS2StQ+mNQm0e`6\_:)?/Wr?,_^'ea6XtD2fY3$hTp?eTdaG<+,!fsOW1-^B^4:8d++a'ra]JQkMO9V#V2@U_YWLW0L)OSU is?CXFt'5KA:p3ZY/Og!=ImOhfIR4@Ebg3AAXGh-Xkr>!!?CbmA;M$=]<'C[W.i=B+s4"RG.)<OA?+3C3# G-oKV=^gXD(V#U\UVDWJ3jh:[C4t^3P0l1'kL6WaFX\IGFn2"qG(NJ8E_p9Vbc+j6BGLK8g2I"HI03YMa.k2J7_Wm;1)4chr![$5D)jMAQh(Q56<7CD.ad$,lMkXDH$lC2kgP9YM>DcBm(Q7PB#I2Mia<ZLo^hb8^^>Ys?\VeitrGO4@U"ZWW+>5V8/C#.hP(`P.9,&S,8[6IO?BUO.oU[*OAmm("Z=4_) RX>'AjKETf+?Jt`28%7n%dnU3bRc0=>PnWVZ0_j+/a5&kI$G_=Nk"nAPVWhe0PV*tIZD&*-^]gpV0E1P4A]i,DH8j*@-@=W9'B2DTA\Q23k$K./AVc':YSZ?%dQ9[d!i58q!6$qP*J-.i5JAj1[1J_`lK\6pIhQ`;pA0'"XDL0#0oV;N[mZ)e$qTtNRZb4AGH$S(J9=ACXY)jG%^ggr@%IsTQkk:ThT`@^qJ8[]qPj8$.lmTp,H<71TW@ASeAY:q.[0mZ5N,sA;VkN=6?j$E`[SPR 3n*:ND1c1-L1KU'-WPH6QA+/E_bph'83j;eG**giUl6ASo[]7m2[^T8G6jUUd@prbCrAOVlgIU[9_ch<mjMA@0r&$6Y8f.fm,LJ=Ki^A4G&^'r[*b'[&/F<>Ge;^X@ T.a:+&tptA0%5-p#@#$>r5T27#jKEjFHtS15pplmSM\mO`"FsN)d2jm9KKme *OTa="`gABf'/O=2@,e19XR&<8p:1L&U,(@DBYcCGOIeD<i"RT)8*M"R#%"[?"PE$4!a@630<Ib N[oP%rQ6_Aa%:/B=;5^-+e(s9]9Bj/&hXX+XK n.ai1k%^Yc((gD:6qTA8O5(j H0"'[$c'XIX]_FGdDI$b8M7&f!X'fi>7ajB<-fbp'\V>q7n>o8fBkERO\?Q4ie#pFb eSs)QTR[pd1`-YS=Jk/9Y**^`p#YPQENmk6UU-"]E'ZP?^,L5SlthTnc2_lKd_>imUpXBVDmRbd5r2-O?G8;6=,.$CRM<KfVIZZdPeG>UdZ9RVs'oPB *U9T*&Hkf^]Rn#VHLZqlh/JJ&Y`At `hPB&TR"an*#.J0E26`+CW=[s;^?%gebsV+[^`EUZ'aFMS!NjmB<oR8]8Agi">c cAG=VO+]+M[1rgR-?5lOMiXm^@0X1"7j_=A& Je2mMh_>M'mat?$)l[S'YjOsH]l ek+Ls5l8 cP,=`MW@m UoEYnV^MD/A>4mN=4?S/Jf3*>f%V)B@(;A$Bf^IkcLAq-T(f]i`7i6Xf:%=0U>X[+'(ac:l7o#[Pp;;`&D+CLq:U"/k<";m/K[E/L"23TMi(bf2L6A0'D3*B1 U.-]Z3FHJ/#@9'V5<U<[#q)ss\;/h'q0PYFh=?L=]W:\b%I,bdps1\%17;.eWfMm0DD=;H3hXOet'6/P<(/-O]8\WRC\?-kklr;7XPBg"FNAGZt5M6&`mUHgLI^^/mG7_5I7e?<baYm_"q$/NqMU5"qMM-UGFaHDc?H8Od>A;Tah)q8)4]JBp+%7>nmhS?e79@Iq/C*J_5r@9_ZdsVc5Y/k`BkgialL8::XP*%V[cg^&Aoje_/c[ms_4<MKHE8:4\X_.TrALSj=1>\N3`Xt^(KCneo>^ogjDh,=^/RP'-=q(!%[B54UpT,ic%K+RcrXP9sKD(0/m%>ZA:s==@cAdm`aT]JIC63Q0209[%MM;9:d.`tnKqFhg,3(YO4]4 =@&[?%6VWTA+K=A%`S/[jRA/rCA3#BBhAdn D8p'l/W+tiilb;=^'\GRM(8b"I.[?*VF,+%1"_#J8mL7EYJ#1T%Y3G?K^57Xmk(TQ/&Ajl6^mhsR0CB12Q@$(tBiE0YB)Uk;A@'tJYCab76t1Q9Ta*0f!AdV!5!3%;K!<GqsPHlAZYHP6^1``V\\C<Wp/s=C8MAO?ER@:Kn%5A.Tn[B^6nZq1WTLl2?c`lMHF5_iiZ;gaRT1!WA>b<,N&mO%TdK 4bOOfn;m`I_/<?>:nHcOq]Uc:3ljjJQop8strF,cY'Z?ME[`ps[+adMHJ2A:?)ffMG@OHf6*,W(kDNM:P&#"f=)e3h%4^]f=0T]1+bapD=A60M&l'b^4HU\la-I-j<`A_"/V#<Ab7Jps#[s8A(:9Q8#hDAO8rVTZ]cT9&^QjY,4T !:N\#"apZcAn?&T+f$"AX^X0(t*WAQlIc[QTbT%k#Ei)Yo\0a%90(J8fDQ)qnrr)jgJR?L)')0l?/$KoY8#N7r]ekrqIHHj?Z0HSK8NV/@pGo]b=LF?N?CA+5:0VJe;'?=hc+,0k;H,A1E:O_K+2Y.H"?N-`XfWfRW:7+,*W2GpjC]n*oD9i$Dh"[7OY<6n*9qUf0q@pG+jDa3Zm2o(\9H&fpVa/9H.3;fm]JGeYQtG8Zl5[[KkZY6f:2QQA3H=.`;_66IWsh,AVKml<CGB7/&QkF3dR;;@k\5L_3B&;QG8h'O_&].=h=#n9HJJdCLA`BJ+9T96 aAgN 3DNN#7[XX"E<ejGt:.'rA&].'-[=HPG?D[WMPrPcQNbm3a_.=]c[0LB?JT4$j?.`s-(9i/3WA@rmAi<1dF!$*@glo>h6r)_Ti8b)KG.K>6ECdLQL;d`<t1#K%+kgDC_'le24[qs8T;"a?e2c&]XQtJI16 8ZN-pGA)AcR'M0Z0qG]CGN*eMcCZUMRf'Jd,r4rA?f%=K4?DPK)%O%nMNn02>VeFI`8=)`Q<EC!$^.`I3/#gd^l77:8Z9bN2p,m,TVF3P]%,,ND,>h0ejFQjJckrf,><6bBmIUJ+rZ MAs)AJ'*[qSIC_e=K*1P0G.nW_A]c%)H*HR.-.g-oO7C N+Ie%aZ]_fDW]:S.9TZcXq3*ih*a)U6k)iqoXs\"*dp#U&eM%A6mVd2[bp&`r$'^UEi&jSsWU,OjYX4r9$AG*r^Db71Ul1M9m8g6+s) CaaTI`9#b)U1AOY3ALhtA#q\_+]PE2TiW'6aZD\HdkD)/U<D&l9i'Hinl[%5/S'3^IPe\$(c1]PnfGtqWV"3oqjQX i+9A+<qe;gAC\$ONsLdLr,G4ikN#RG+#$A,G!hV@t-8Gk"*d1Y>p.d++A%I^#fGKAW]>CtGt@A.Qj%UKZZHNnXer;a(&?Bq,]W*ot]P9e%iZ@]lXcdPU(h#TA7HGT.E8R(h;EB9JT15I]q)XtH'h[0IjLYE=/RFFlcVS)&GK"[Ag`+GcdI?tTD,_XG..XfWAl)gT)7dOFFs3jC#ctjk"2lpNM!Ui0$5H@ja;XZXDT\FMh-m ^D%AIc;N5A<sr$+1Q&[GsOUV77rQ"t:$ZXPqDc3l;7H6nn0sEUbd!Tp.rP8'B4:Hsc=%^.bmYfs;jgILi_=0L/n(@;dPU<_U5'b>.j%o%"a>#'h:kjq-Al`V\]Ih H>:F1hd,tSoPac]sc\'j:4\Zfo<-%foa.F%XN@]ZYm+SIFi3f2)prdB/c$U1)["WitMkFS5N?=b.\XXf4D@[A\\jpg8iNkRCch?pB@R3$:G!X'O%-B!HRanglMWA#5eaF2;a 2TCs_<CDPW_>>cEXqFAo7-<l$ ?4krlJ/q]K\Y)j_$AdU"3'P`AblRql9t06f8(bRC&*:[#E5c6cnNWAQgS7aSnn1X7rNM<c-tV+Hpd`MN$R!AL": =LdPZ[D5mg=%sD"TdL)m;AaQ7P_-9A2s[.'TnY'6"C6aFL!a"G][8>&Z0U1iOHNSG BShrT+_I.=P0:S]oA[]6&,W.`4_+#j5G7Qk+67og`SA8X5RB1)K9WG\go0C_ao<m$^:m[JAA4RiVWn_V`c/am _]F#-;K^ HV\QBI4UD()0+e>N-2sI<b8G)2V38bA`?:\Js*gE)E#3p@_Q!\'Ghk(?!ek\S=JFB+U_P0?Pnn<qZMQY+M+q"[+Ga^<<d25 Z&SUg4PQ3F1?<KG@kBY=sQ:EBda_oNV<OF7D03FJ` /Y)D3m1d[7@JPj)LXn8YknJmPGqOEQo.AAPCI;d9*<3eIiO98tl_[]m8LaAhC';5`ta2<H8Y+.*%GDJDA,6[+g\@dc+3c[D:B:C;jr-0fS6mJns=D%G'Gt@Lo!DRPV*!e=Go/,+dP>8bQ*>P_NM#%ie,fA31lW[sYn)Z-r#>4lA[C@Spt9bG0YQt_;1$V%O\-Srhr6H?jM\GX"KX!CpVK,)Z)Sa/YB6&^i4TpU\FNZUgPQ#`l5jnK]-.A*l<](I1T)M mQ[TM\;AdEF-n'*f[o&=$SD`oD#*7Kg#R?0'N=FomX:N"m$rM <qFI+S_jg4bY7pAf=UP6`2%?l6Q5/U2dH4_]^a OI@JZES6Mp<1Mr6\[(/J\b0MSRHDh$6pHA![3r^#M**XHJo?X]%E`Y3%6E(BZbmUht6*di2T$DSSEg^8fI`@D#/?:"IMNW]`Smf$2&R/P<qoX]sHKQgCQsMpQsKF4'cgTh\@DZ;SkDGjm_ocfF_4qcWn54/aH\)F+6EQsOOif4sa 4Q9'LTK_e%]HlDr#tL=\akd0A(p*YLhENc#DNA(:t84FYn'<,Z0/NqP4E7#XD$T;>H*_2X1o,RRolm1@Pe05A)X[3Asq<ig!'gbhLPd`1t_,eA^O9R] jl+a=jlE$g+k<"$lm]FUTi`RPZ?3BUU8A.F0lelo#drgnH2oJ -dd6*>n$r0RHNDAfC`JoA!e*.E]NQWh.O8CAM_Yk%s0aaP22;=30;9p`,liM"tl\@(q9K\<%V!ifKFoh0>QWs)RDAA=Ra\o]GE"3"T[2iC$PL_ M, TFR<0G%iR[j=4EJLZ:iHnSsAGCQF;-gd"'f^PI3s!WP[gbp\p2K</_:$sbN!V=r2ks&;J&Fe$:OSY`Pal2-K71mpkr.)+>g],fl(NBF,k;l[bE'27W%cKWL(J,8RH^PLqi5d[&W%Y5iU.IH5\6PfP"-2htG-L#W8b^"J%'XB6nV:Yk7'bE`sp[^i"l@kZ@\*T<pgMMK OEP@0;5<_>0jnA4(]_pf=R^SYRG+EFQe[V&i<c:NK1.6ACM)NUd]&GR`<#1()LtS_+1@kOK:GD3-9+77di^Y'>W3OMp!VRghd)Je+^<VM5=f^)qNs3.KDRBCM#6gJL?:(e1@M\U.&R2AJtbdNO&9 [\-T"p$<H)bdbVUPIIogC<lJ 8?'<oI6oigI'jY=PLB)`CVY /K2rJ&Y`CGd]`jT<qF!%''lW;<DYTq,Rl0Nf!jX]GK4r5S-9?b]TZQ?/Vh45G%)CE4Z"b*@ktUl[tUL%4;`;)KI/G(h/:GW"GjG.2Nsr79_+j_(#f)l7kaO+sO]j^jM>+PLQ$Bco QOiA;o;N'HA`eAV+654S[o4[>]AjcN/g'VJHS9Ltn7b7*k<h[<o<>F5\\`rkP@ChHLh"]W8!;V8C)&^%qLE?Mq88IHbJ-eA$;+qOaB@4kCGY;O=d8\.oRU%s[]O?\D\0JO98 L`imB\!#rHo0]i+02k9"4#)5:% A&9Q:,;sDZk0[o(GVlI*T-W[-G#J+-@r!,AF3NG6OhUcK-hXd(##J85GUGZp0Zi"9_Pj4^e])>UC3I8T+Hol=BE ([Y24p[<]CUcnR-,G=hO3WH`WDo]5;`=EGi3^d7aj#G.r2kEP6S];>ab[<d%0<kE7lJNQF+pboAUf[;< l/&<gFY(WgTsAh<:[8(i]^@\,B\?($"QQbQAXA-A._A4<^-d#ge4A#G#@?R%k'JS:V!Z[D=0j>3jh2X1\'!2D'sl/*+oZ8;&\"VXrI);dL<t+HS0(6 6!^=Zm+] :)3VZOi="O$Ynbc0]LR]d) kS=rgq4,mmKa-0\0l1aS!f?rm)4L_Bp4FQ^\)q;)F)jq3)XJ>A%d<WQ#&E4E@0"<Pf;*4BJ.^kfn>\(c?1; Qp]/?g?:.b8%J!N`31"B>Or&U"dHHk-+.`=27f%IT+#r:$0SfoeZ%p7[4RG!3GTUmO/JVKYm=5aC$WQ!X^@"9li>0s2qj)2G,AZ6%F&N#lHlaA (B5r5U5*TX\LJGd1!hOV`]YpD)_>[i*T,(*_oi*"b6a-am,)Y"nK:-T#Eq"-l>R9TSU310G8h?gm$[7DgXt4B2i7fB+IEWi`Hi<^lRseL7U>f@*+N_hAsH)J>f?[B$(-,E*58/44`l%/9]6c,Kj)TfCDaNAROGXnlUaN=WIt_!Y9b5@@?@57K-68'\0[`cnBG.YRD@coGCTG*&ChORm*2%a"<'0s7TKC!hp_`.A2Vi,d*)Zd Iq6QK^KSO9[n`[soc&tHMWD`s=K]1h ?BbJ?pH.n>A%CIWKNsboRXU"/p%Ma"iVi`mA V<a$IW"fdA-np8qbLV0P=UN(i]i2$cr&%&Ddb@`i:+jL.sb>'R)b^e^Ge!iqH`dqTs@a6\7EA(lWKVHW^,,2o5@moD^Q4\GN9YPjq7K4e`AadDQL-R]3/b89]MJ9jf7*2#m>=*RW&Dg1`A)dAjA`^&]^,<VUqairOTOY9@q%CA>OV.iYWHliSEStGtBgt71qQY86*KcG453U//XH5:'^R0<[=9h(IsMdA)$%L(R'mAW<m&07;O1 N6a8EqE'ZCXkqF9@DoE^UMGOkP);plN"H[aqVD0cg+J S00;(DcDDnA1VZ9;484q$C5%<ddiR+TK>5BRHkMP\5dm.:"J?0]+<SJ>b+=Eta#\XFb9VpAZU6;?1S^VLWq$\!V=./:2\+lnHEC=.oMSj/E72a7[kE1ZM$ h;m1=lfT#32?VZoCDnK?EAA*MJ<fMq-j9?f6i]dP-YM$I=jjPD,L4@GU0P &JV7^5sb=Dqjch%B<^/]`n!W9s,*1ctH.o>%MGB_l\<&/P:3%Me(rQ3N&'@,b@>KGk`4D^h)Fl$DmI>L:J>^1"MYHK.o^!_]!qj(Z[=!'3S._MeE1GdPrI#i^#jGq4"h\DZ,?i?jdXMcI\MtsT1:(PG8#?DM?Zse)Gi1OC1W:d`69"akP7!>:PcQc64aGhpcnC/A+d/nn@fQsG3D@9+i"GP?G9[f.3W!RACAqVrdn!k/VWJSfoh;f5C!H:a,M@n\7_]oT *>nDGh*r@N?2;9"6cV0-.e4](:FDEas<%>X fle&l=!C,q;6dNIU`;?C#[p9*d+'L<On \ A@egA;=o)["A"0,O0$C46I,i^LPTlqM_k-FYq/R*WBTBAt96f8:+if2VjTP#dh BimMR0sgI^+ik^71Y;h,d:EUQL?Er^O"\<(gOoi!]%`3+T^FtsK4U(\B7kps $_k_6g,VrYU%V?A@Q/&h]64f[L,l,!)YJ(;45?d/i#Xf`2Z`1-OoXjlU:2?e:L<E/*$r++T)cX=Mf*r`rl3c@i-NA6CC'HjgHaIPaqLG!)V-:;&Kca.21_[@Z4??N-4p.e!b%B3A TaB_*'27 Fh%&e g-9;"Yh:as$\*Q)@gsV2Ne9Kce'ANN--E<O`o3R<nDi\R4(<Iqp7$qVtVH+M7JHtZ9KR=YGeDh7U#[Wf27Fb9sh7Vr(GA/d;kF'A'!5t4VpN\kOc.gT$D\c-4[XIY4*jgX[HZHcAA$g\k*8%c@:=lfo;#<mCjVrLE<k&BN??K[hLrWn1$1Nl+1#*C8ZGl<bB*C@CfF<abJ^PQ5@ D H)MF;2Z\-6Fd9f*KUSpj>N_aX;a.e2PGRkcVPFIk3X*q qM`"jRY?>#E]"-`YLK[C:QTa/,8p=1J7_rZl7XX-\rlM0;$HGfZSt;_Pd/DPlGJ+E*aaO!X['htANedI)<'j+s!KKh@q #VO!HT3m\SF$Bt36o@0tc-ZYFs?VnN2)D,?Nf^['h4m#0;OLSfOA/dcHiX#L8b4dnDs-nV_btDU6gJ+[C%Q!&9kL^.Xh?JrO7jiCTc^3d@;\$,t,+JQOjjf^FUj+*m+*A4]??RgFBWlA]bs/CcX49ejPb08lN]h)>=g_C9`9sY'g+e3;A7At.1j@>4gM^Tk0S]E=;r1Q*p)8ira/O:I+9/_QiRc.\R<,PDD_lGKK4ff*<AEG9rt%s*]Bll_M[1B@DV\`VXtD% !+-2E6^M]e\URpb1>*n2A@HK=&?4IUAk2-S-[E E`Jepsj<LR3&st._hb6BfP)*QNLVW&3B,-:9kn>P*B-$@`KaMlrHo]6i-PBP]%i]$/FKR=$>-Nj9,m.RmT8H&h.Y5o,Y4)8.MPWLmnRC$A.D0pd>3C_sB(-p%7orENVmP6Q2kd*SPg?M+GB-RBH0'JU%NVt-qg%>-A-Xk'!V2sEXF*"<2[:htt#e L*[AMYK3B$ .lH-Pk85-mqpcW.2o$jlf9>%UCd%E2(O6)#kR1,1K6OPDV1[2$&)bJeFc/R@(2Vr5Ko==WmK80+s(4>Il.0SE XX= )-<g6\FfL;-8;+hA;sLS,mYNX#]=b't]\/3mj0lY&5gfCE&)F]e+SJLD$.]Zd7Fsr2qbNMJ7#)E3Ah>[W"=@BNT//C4EGCWVSGo5/iZKJ@$A2:5Z:02L1eR-1Fdh[ljahX"+-XaD&c2`=eod1g"_l_mIK,kVP!.1^7J3\YR%G0Qjr9N/]hgAdC3@bE$hb`$[A:f+Bp1rYU6TH0!KcnRN4( r9 ][nqNnS[brTD(`CEkeoLoKAZ-Bn227d-k/%$i?aU2kD`I!Cjg& 'H-/o"E'7bdaY1gL6bpAefnAqJabJZfnQ"^G@%SV)S.4 t>>rrdNp7f5?Rb@EmA6_q@(%OCd^_]SDsbgf+C488AFd%Kn@dmQ9D\8P9dW\^/+g-;_?fDr) qb#AY+T"R^]JkF-n8IP7o:;Q7W=4s&A8?IKrn0U9URPPf0Mj7^q'AL^<(D0:UsbP>HO>&N6@J1`s,&^j/Gi@^#i+YjnEf>G&!)dohal(\&Y^d\Z0_+LC$c6OFV>iPn9WCd`?eM:-Ahk[#"daffELAi^sAqbgKAf9q-+=^V#4:WJa#fI5rFrU'BM:a?b-&_-j&[T;,0KH,!:poUkAORn6L-U9VsCX9r<25r9g\hltAV79W%b'k2WC"'E6H*:EA A!V1`PnSba\kVrr'AVShRN[''U60+%2)kll<+f8+MefEDtmsXgB^;_O5A6cG5j8GpWVs#bGp(;;[oNB9tD,/D3[pcJ.@+@=n\F*l!CHa%KW@(&@0>=(W%mOj+"?og>4b;3Yl]ocT0Nr'C_o< P':8(\3.Lcs9NB8*WPk,3.[_29,Wpt `+h%:0\]?>$5s56aeiS;7;tHIgZ`5j_WONE,e`gJPR^88K+b VMQ jWI%]mc)3]1tOt5\/?;TM`=$D# d"#pfLjUn"Ns=:RX?gObQa2a[i2g&<^(jG.ZQ]>rJcqWpPjlA#EYif^<&.pAl\3=H05lr.=K'@dWb@AWZD .""MQ7dsXcE^g0t9(:TYUlHjY>DB6DgGP>'9[$](VBh&a 0t&@Uf1B9Bq4ef$]sPI'S'"=ef&b\/j<JP$9RfTA&s_o@</WN[sF=k\**29HY"(2ok6bIC0]Vcqp:ERXt7'+m:ASj/s4'EHTHV]NAcTk"4R2D3>'HAM"s1tPkh-^'GV4j"f5sAl%WCp[Y)9HJWC]@VNTf:o+'5_L5 =R[Y50##nJhCEX 4(!G#<9A?oi$pq`Pl&`lPWVAMrBDYaVam"L70VbSbACEAi-;]WP )>Rp4ep.3Ap&QF2Q[C!LI6WM4a*f)62!>29VZ6NG]7F)M'%H@Mjoq#H^+.XZtnV'Fp4H#Cp?055[?AK3LIt#_if_"9msn[+Z V##)Vq\/_>kM%I.,h=WA4[f+Ds:SVRAoHdn!o:CS;ejT"?@k-Qj*2!#eXpm>9RN&JS$Vn6kq%iOQ-g%Cof=`\A']IGVV%0O O7"qqeBtJ)Ula4Mm*86#QQ\TmkR/!J2G'?6e`)6RVq<DCIf""2bATAYWG.?PrG2ls+VR_b611R>5%*ItWq)P:5pC#X!:K^# 3 E-"eF@s5X9=$AZgJ>>YfZ.iq_C1t^JgZ.4D0]^88G[gsRo+=^/8d3e/(lr ?n4_4EL&%VX Sr$$S]@@d3SfX:\!>FphR;%P$R;TX<bL`VU3FNLfc<0osA, ri$JX-IF0(:A)PWV&sfiFpe8h RWBEeEagm+Vf^pnktf:V&nB;XarEd6A=6VqK<X#4L_3=5_+>>\$q=%mafk\@Z(C]/UZnI9R"P%@0U^_pf`opkp8.>?ZE/c&FVqlGBdYsj*S!Dq^8!K1?%mR:g:PCNqagL8hS"T(l[ ^<\J&9ZN%Q!A<P`C:*^c+RW1#c\_?*bnIY?5-%I;+aG:<Q3Nl)KB/H-YX4;;FR>tVKS;DDkbboAKT'nkBqa!Q90#LJR;..-te=aabVt@40KFBr8h/T`Zr"A-P\1`84Xq\fCl:USe'(eR>dblk.#l^YIH,*rbK4(Ws,:?Gp@d#W0_+.,2aiK5trRDn`KO(+4kemO.lJ?g^bOsWG%D^P5NP*$nf7kFG@%0W]MlP*3.$TO^l 9;i'p#OMAKdl/rKO+jU3F!JBFdg!qXAl,&sR<'o]*p7V[A\k[YNQDr@"oct>!h8eIH.QU5'6L]Vpe*-0XUhJ,5aAkK:6]UlBLMtm5--at  3PA/YT@^D9!E;%cUR(ec5*-SHVfBA]86_b$]gT@ FOG!kf!mUmpI5A\lH,^sN- \%?.W&ReT]TN*jJ;3!Z7GWRW'[\]=Sf%A\GK$6,s#'Hr_ME8DKc,HiE*H@0f*_TC(8^'qCZrbh#.`50hC]9A!oK-Ie?]f^gZD)'sC\JEmKPK]1&6U:A<A=HOlI)9?$ErSj8$\)6.14Xla@eN,lj5+Y;g@A,=V\l7$h&BI];RMK6(__^n\[Z6rLKo`oO\q-p/$q%AqSEB-X"A=:AlDR1lKCHVl.Cgn`4?5C2iS>&g)d"GQDg4PJ,1.ADoP36IMsso$*m!@4"Geh>QM@e]Xd-I"C)D=`:$5An$4sle" +\s/k".M#dG 3T/,,LipcSZYU%c_T&O_/HrO+U,IA.$a+=U GBt4BgpPB`!Fj6< &#:5M<??Qr .T[`"[Ag"O^2!9 DWIQp_/7B.t6+aA/W9DZ($JcYDAf+Ne@iLs\;P`/>C'e0o,0](Clf:Dfg@-F"`ig:*Fr%>HIQ#V/?,t5H4B<Qs^A[l%88+d<$'aMa5Cm.fD9:A=LAHbpA3^M%5=rcnMAA$pCANJ0qYil1jG,8IPA/4.,b/JX#nhUbM%Ynn6S1]*=`pO^q_dlCh7ledKj1HfCU8$"sA=<\K=qKAfEX5+*?liR$rUBh"W`p8m(**5--fCj?,18QS"?h5^iaMZZI'V_qC#JPCr.`&0Q=n8LmNemp1Z32eBO;EACRQWaIaj0(]8dalOb@!NV2!tkfsC?+)\'f783/-1Yn4lV7c*A2Al9*8:;(^JSd#W69%p$jqQKJs8L,fAaCLsOPT5=;+2Sq%VmEA<1h#6J-KpU$0A-aA: $a'NV]oQkk^(f?eAnQV&tVO&a9p)A2Vf.ata,FqU]$KsTf']49JId2t'R"j7jO^$A;?9:0HiEi<scJnpnG] #>i(OrTP'Wc_G#2W[Z^L2AieEf%=k&&-a0f..E8?2gh7=S^-JY'KkHm;ABpb1&)@lZ!eQ*!<JE'>QXs0.qnTHkkO/Vi?pGje3%^0`EVcan>G`Xi XZ>kheR`oFNGZ'#pRA4:^2)Y).tsO%g\YYK#n/sA2gO*?MZLNpFXVcY@R;S:X3;9hHgF"N_JDmYCE,=lPY+"&qkIgr@t!!d?I5bMd^Jg2 IVIA=FRRat.b16dEc7l-V\7^Om3 LQd0I,tsa@fG\sOMF%P-K56+\82XDJ445em!")a.*49s@>W6`j)>]E$[5h+b`-ji*Q! gCZ01k%VIBlCt']*a&1 MUSJ4H+AH(BYE&B$7JT/TLbqtY9%K,r)Bt>XRsk[l]^9G?4p&N2.5J)4#k''Mq(1/FnAeCZrKqWASh/Te^'+p>)O\4rL[hY)F-Y+X,,@"#J2m:a@\Wp-]VbfRRl^$tA\!)('E-KC*[K27;KbY#<ErKh#`RYX>$*l")_lb'NtU:GX%n=[BX`.$6RN5[["/$pA^,H5/*/;WF/H.D'As+N+/6.YYhfjX-a1Cq&?6I48OVR*"tDZ=#p\&cDnbnP6Qe\tN6C_Wt2f@ATsR8]9[0#s*IUI>gA^be#nKI`4fl-]%0qXQ_VM1Q=bY1hn*,3UIBIMOF 3@QLV' )F>H>lfHZs[P[B#bRK_f&d-5_d)Lj\*Z\Q+aI#U)]D9TN'&!pG=<8KScpJ'WjU?^5&-EaU$aU5AK)E5eCIO[TKt[&WPomg8`m=S5j9lUKB$`i G<H;BqtakAhJbX"TK-41AnYEj2\$ID&PhN(sk5e1)Pqmp]!G5nD4h3P<Glm!Z^^!Tji.VZ aj]=1/>K5+qcW/>$FKQ:_rTG6K,#%PWP qM4f'E^ r;<_\Ja4/2Bo%a:f>)Z`X?)]0.V-<-=fkPIe$tRoPdI1M;;d0&1W5T$^dWVn!CX&]b8@:_AbB1c_V+,_:NtkthMM6m#Lh/PR?VEqb&lrCXFC`O!6+`Ce^5Z$s83MeK2`Ho_.jo\25P7ghe3XQb.3bfF&+?#sGeBp,?"*KNh\1XUqdn>j?V*Jm87r%U+ZCAgeF>\(9SPU@GI<<,C_j$QjT<fn]FFBGFPo-WqS"a@&T3!;Nj1qjCkfIa>>J3k +9`RcbX bL!&*U5Il$PjL&^W>:$=FcVZ'qg-8VGg17-o1"B:B@iI$$'h:F$5#We1rS,^onIE?S/@%_gc2oC_ AG-MnMZ b[i ,-#BG_Z/jh0;ebCkqCQef8UO"$M1cW O<tP-WA /US8VJNV<'+/3Q#nWt>"Li;97/9?Z1bH8MaXEi;3aAC4-2dLtfU@_=>R:[Plg8NkJF<4,dXk\WOq)tSP=T^)b#G+18Emjt.eHFst,G`]Xa(GBJ=5;"/>;/=&* +'/3`Ag kI-[i*Z/T2#ZK'>7PaVO,kW[20(nU+(BqGB@AaZ<4:YdG6jUAXB0CVteK!7Tn0Ai&rq_J4>O>siC:?#FqO6n,NY\_;SElXKtLD7WQ+*/J_Q19*]D"H(nP4,IA)p(M\X`or6MdT?RU5d-Mg8ZU)FIn4Jn4A-AF[mQ`f.a`;j[AgZL>3$<:jcnWk/!+Jajgf<F!&Ap:Hl \PE$KX,Jd,bnNr<$>:;p3reF6!Y!$f`&68$COR&#9<["a*O2dkf]hWRNjKkl2K/Ts+m=@TjE2%^/R8ST4?+*cSY`M-+`dNhd+Yn3d9GV_lTP/3#^LKM!h-j#0A-QJ98d8(DL]Zjm?',U=+O5e_$8E)ikIY\Fbc[PLVco8:NYq/dIE`bYm)0@7Y+[DtHrlTd[B?.TYG02neN7s=fF#HrcdSe#B'R\a(X%hKTUN>-Gl]VnX-i)cVVI4'TRSP-X3Y<7,K[KAqoOIWbhWD18$\*^h P]LL4s7*KdbJcX5HSOLjEJ:DY&SA,nZ]\\b&^r41nPIoQ(83k<:K^]oW940AVfHYIb`GW2,C.G9X*tPI;G+RrZ^c65Ar0lp3Ah8Pc2CAgZr=9DBe8X8JmT;7*%Hkb9tWg;Za)Lj(VUX.>9/XbC>GrRHqtJMLA,,Sc7X:<,SPAVF]iC?=7CX3(;Vq es8I8Yjb[(mkYc%"+j!hTkP_c+_K9"KLjHo_2)$^;:;G;B@`!$Q6(W0G Ajb%tsAI'YWIFM;gE2;05=$db5GT#s4i9)bp//Q*GT?EknHAdeND;ABONA]*fV&3'-.@ae oWH0dCS[?5DK!gqA-<H:Y\-sC^D0@'p/J1".ZBB@*(e=/@]1BN"8V:FmRc[pWIb$*]R9\:GYip?cI\]jofDFVk7PI+3DniX.[?m<Srr"[F/00.cCMM2GkTq AA<.FT5I.m<BT\s"I?0eA_G:9,$QsXDANFVD(0r/7!pgpp.qgqe83ZmnT74/%A@b'RWDD0hB]jo"8B&iH!Y\8R.'-AB`d4p-r3k$MoL)XHgsW/SA$0Wp?-fRfc[Lg"Z[Ql_XXdd757DXnED><cSga-r`sHH))obA3YIcNFIKq:<>b)I7!6-&ND<'@i ``I/YqMqY-6d$QCGOR-IiDk93Mbrcrl4K9/mK*5MP>AQZ/m6_EEti,m"A3X [fY0f"(g'ZQgE+@-OBg]=U CN"=?1m5\=&h0C2G3t-a.Zs5i-PaF<qZ?g?C.BjVX tVUNXj;q6;.&'M?hVCfN-G?462IPJtK2DIM4Q6YJ<I(LG8!q8#cM&c]YP9D! 2TSA:ABUnM3[A>1;QnAAZHeio-9sq9\UJ6Gj =W^(rnNgok]mS>Fl3Nb##)6#&DVWKP=+U3C<YC3@p <Kt:N@q@KJhWGdM,acAF0<,nGNAY1jm=XGaDBMcB$RM9E5'd5Z&;KKADHAW*#a.MQ>WfV ;?<?<+cZSpd-+3V6o"!j]p53_b3KQUP0G;72`'5_ipWF59>/k\S*EjnOe,Ep=WhR9ABBiWS-%?F.6NQq>n#6k<*H`8U^B88+:-<(^=T,5qAp.OW%i5ncXA'[#2@72_tArB3s?'6=^faQ[ak/XQ*bqmJQ`C6SLM'E8i^Cl`bp!c^f,_5=t)o;\G*0(U/"m:)1qC+JUdt02caN)oS(WtK$=pB/A%qC6:Y`Y4E[UK5KTG47mePiqFRacGX9,ps\M1sK%@r@S,9fV((ond[)ZL8@.PR_o+2U"J[IADF 3!5sF9>UJIpQn830RX2VfpQ@Nomt_h]R0#pa?lXDjhQ/ZqWjnC2T-5bNF 0E'L#-.t+bNE!:U_W/4Vr?Up<\Kj&/K.p@Zh%PAtdXJNA@F Yp4D55m\p]-[/G2PUo5>haQq/^^Yhl*Tn?Fad=jp,=Xrd_eN&0?8G`n%8X_Eq98n8O$hY=\M,[@n$b32JEBA(9=-AcX'H3BX3\Xs0U'9m\E<a" N>Vs[(4)&$9AkXc:(]HX.dL"Kq_mb^2O"nJ_A/EbFNXT9"pqsZ!FCDZ5sg%jm2fIf2A:_A23WTjS^?P5ei0iq)a/#:jV8C7-r;SP>M\c_coqI`W3ripm6No[M0W+jtcAZsPS+)BdFVh>#lZ7De 'ora7XVAS@c<ZCB2gnd$%''3h05S/#%$'9V_Jm/Y46X^e:boLHs+2kIeF_(s#Q'<DcSm+_reds>AC?CCs35JjCXb9'!AJ-D#2U;MO](q] ?jhTskl#V9O-gZL6!ad&b95Qs-UG5hNWd%a%C5B;Sq;;"A'P^0mJ]F`SfkP2aQ_-@BpC@TBV#DdfO7asSY<qk)1\FHJaZ%A##mkbL(CR AC.0Q!QcHL]E<c\'XY4.94r_YQg`TXt%\[sR+GAAgHF69[2<lW08PrW=g=[b>'!De! ]IT$lSo-c;qS"Vle^I:k(Oc+Y4DD jQrFXATEUlm-3&3Za]Fg<05T&^!YLcL%<))1A&>1N.YT/D+):#!go-,+31P"MC;k0Y'p.<;CoJGo+a@4("!pX=?Y"$0E1Y"%UAZo2_]&KiNjH@*PKmTY@7I$_a)$1cP;OVU>I/$tG3RJ02Hq`X^c\_E<!_i2Agjqr\9?K.O$Jj!_W8A+cgJ$Ln2rB)8J%(Bs@A@iQksIQD<GH,tJ/=ekf]!mOtoW. >MCX8Z4#q,'HF/B&KiY"IQ&p+$@:i )1)3/D"*m=2MHX\CX;mQ+]((C]`%$A*c.L+3<kJE.,V&l<9hT#c,8ArOqM"&6GG3o%?PoJFSA, XdL >7:A!@A\66Fih9VRW5dQD?1'"t;fq3.lrYB@R>7Mc>mpp>g_DZ$Y P@VE)Kr.WAjScRpf:d+af_S39#79BfE00ct?DraP:=\l3hNQ9H9>3_Aq!lD^-ta3GZ\W;Aa7l&s`q1?"F\JOpAR&XW!QR\(AB[ X(t34Rf;1X6_%d4-20)=!4!TO8I.&#nl/#.P\CAYeHJr'c$b5EJio^a:e%m4tqZ$3H?%5r)E$$5q98rtU2-QbqXsLmFA`q7AjqOIK&X19N#beR,]q1>^?(Y*8rMhthFT1qsjsTCGFJ6BPpJCVZlWC>hpKt ljt#+1DDZGV@eci,19LnK]j1sA!g>f9G>&rDQVA7m#Y8a6;1q8f:3Gk(VAc8gKXh"f.YXb0(H4mc%#?sCOh#jX!/Qa^c]5@*NsC0.;WIMJ2l W/h2FWr'Vq),Jqd:Zi$:!eDaC'k;qG$1>?Fiq_hSJd."BEJFU!QIQ4TMd%A"5rD-*WAmR_BF;866s-s&Ns'D)fQKWrp%9Vq27(fZrjKA;3"NWDl_]WD+_Ji?lY"D%LRZD*7m+:(0UqS`3WA:;AG=rKUii]qJH[$+Cm2c;?te5#YeIjm@V@(E$U0XQ^-Tq/*V*@hniBiK$M&"3T1]hV3""q@-^7d+D! Ai5D;=k_t]Coa&&4UesRq(3!S5XQB"j`0B`VIhBt&O9q+YUUn1f'1GdoKk"H$&[A:bst\+V%FX1,,]m>k%b!ZY!]mk6Aq0aKQfmbA?`-"@&_si2ig^KnJA2i4)5RR.m[1C?IlAj6X cQl5)OGp`SE>4&=%)ofQ;O9.0r=.pcm)HY*AMC86%"g`2_Ac2n\?AbA^p<c8MX*#*d[SL5N9XSpP]O)JFk,1@P[d3EV44.@RF*^Z;8c3KFKg`iYA-G_K^a*PcbN`GT4O8"n46?A51lACJRdmbsNY4Pae1tV5+3L^ZH!,*4<9Dre!AhUb)T:f/aT_'hI9!S7ZE(->]!,HKj>g5scI[8cL<f/$?!+5iQVL'_^D6WMXg6fE\ImXTjY2pN.aH-Q0A=/SNO'$F6%#B/;AgcWY%cP?14a`l=2BoFZk<`2<q'+$Pq=OfF?s'e'<*@C$g7rm/0PjrW4<e6N;..#W\X*@s>R# 9snT;^9-*N3BG"rq q#R;K<`"eb+`<"ie:@sA:89MVQ8N4>2 9\UKt':KMRV7!>j*Hs++aWcJOOSg5'QcFV%E7"_I`k^G:Rj"rH.42PQ1fF00L`f#pJsroLXFr._M2]-J] ]gPaAi#BA7M8iB1e5P-FSl4j!GTk'*U3PnPZ)lQrQ\Z:EUS:9i3G87PB. GMM?=jr]=D4BWeWWtd.Zp$1AbeSIAr-+-GJDZr)g: k4EOKl8g?EMYqAmK0U&N7ogmHC!A,]kGG<>!qThP`+3n7Htdn9$#*WKPDe"Z@7?MH$6AiiS[RMsq+$2f-3:U7N"X"(<OHg':MM <BWW%-pZA6 pn^8?Ao?Z`OO`/XM/f1OJ#VRP0Ke[>1I?\="i]1(-JmY%Z/4%)^AMdk/n%=`%Nom@Nd13#(YD`(k0FJrFiI:a.F4#N]U2WcD@rkT!G:^k3t4DC'Rm8C]L`ND$q]WYe[5$m[4H(%CBe7.;,t+ArTW!=lTKmjn!i=_4#BdX(ds1#1Gok3GC;DcO5WF:7@BT7[Cqgo> B04p'1LQYEYR50PSsAE@1hi(*fjocJ@L),e>[3AC:_ )0G))l6p?05M\n178XlA#h^lpG)>\]DS^_D&mULnqgJJ:2^$AVa_lIFh^dkAPo[gt?C'B+H>,1`_gboi-M* 5 30GeG$5B*s:l:O(ZBeUt!.o#'^86\%Vjdb!0tQj5Y,IJ"(qUD(Apj-s3[2I]fM41Wj/#c@?HrT+J=/WlpU\>GUj]so=jIqEV5BA13AD"d#8hl[#^2siAb'[&!F_(fRH&%h@NAm3,>XE4&O4>f6IP\6%nTrb De@EYF,/Wbs<dB-r=](81:nZT6%EFam7fP pQ<\U]-neKhi2HQntoU_IHXWbAZD0EI%&`i4Yg,C'd67Oke%iooo[b1,Li30efA6r6sR9GM*r#06@81lGe(&+ R]@Mes05A?]SL2W9o_QDO,.nBjHri+(CC?ILngU?%t"/RdCUZ2<1RroLqSKk4E)+&1IXeCTl]H%mhW#EI5)c+Wc.GHI]cHh8Kkt5!mUpV9$to'0&m95/c>3%@p@E$YHQE&Y`Y_D)g2@'/$4]p/Q#N)$XnatM:<:HrPg6&F7doN,Nen+bHtE4lJN&QT9fl^<G5&h47X';`9=/<)(\s,-p,3tjf(=37aR<n#R+!*(e>P>W3j&Y&Q!kra_M9[192YW>R`!U^!AS^62KE;=[AVrPK:i^_9] A)mU%SMngF]GZ D-Y+5S@HbHp'X^@*/V@QcU*>iA1dgK e<""`R^YY^):rZ!#9#=ApYQo.EkJ4.*EXcjqmS*:kQD6gYdi$.HBnsCni^5rq+SY\0hC=:t:UH,Ns9+V&k,Wt$DpSF!3HfAM^fI+-A*"9!=G^+hL9R@4XRG3S21VGfZ5a  c!(:r+c7iel3<l.?HpmOQnKSC*]5j4H2g$%qk>(ZAIbQR>L1BsVnn3L :/Blg))[-&h`&IR6YGFCXBKV&G0)@AGTW7QY'$XC0/U<(W&*<nT9P_1/bWVDS)q@^?p\T&rQ:.WW-2VB'ms2(0L(dYMXM7N*nt?^EXqdZi;Wne9_t2`&Un&_'N)%n]\`Y6?PM^]GjL.^+1q&?+Dcq>1R'&Ynk*A8Gnl]3j20ReM1';6T_BK*9h@bB k83;"nq%n]FqqBQp'?QD4>6oSb[4dm.:+@YRTFMABYW3eI.@<D@,'o##hVAP?B*kMl@cY+AshCHMM4UClWn#O4tpgtU1a*"<OgO\Ora^o2oU`0k38E\V,Rf 8b&lg,TA%>5 cJ_Zt8E9640;C9AkBabe.0nZ%VYBYF8;kl`9^^`aF7Hg''q#]bcXKV#_@pj:)Pla@+ +!6A*no]^?$V8($RlJc]jXWj6]=9M61r*f;btbBT*(N5Fl<[ON+'4#X'hsGeGWpML5&6XAIGWjsRs]B]8'IU#-m$7i-RQ2HA)Mq<dd>NU?/b_KnsYSD7=8>[d.)*SQs^K/"+n1Qe2B`R/+oK/3Yb@C.1O,>kG9d%=D8A2'aG6Ln-P7nrtoBE_;t$aA#OSj/#dJc=[X9D#^-#i1:\rjR3A*5aZC"2"bQ$otgkEkES\MoU%*H'/i;T:`f(n8:\;"NGRgBQA<.Z@,7a3R=;gZA9MAV6!KOH:=tKWJn)fdoSC=ttJ*N,B5E'_L1?Wdl-M]bGpf@J6'[gRU,Y#edf=T[($O:22\<QSt[,8TOA6Hk4qB>4Mo(Zn1E85:6lg4+"%K3`PtR9*R$tlCJ7FJ,bcbd^T_N/nA!7*QO\0t7JPSrlf:-Tn=q`S7WXG1;7d!N7a5<_6Ul`M_eTE0eZbfb0%E2])7@P3hIDkf\S>#i$Z*[p5>s@ZV9\q=n_O/Y)G;*^S>?/NXM"t$M@t'am*M92] \VEX]^G_XTfDKL4\tA\Ls)J;%:1E%A@8d>&[Am,:Ke\'8kZ$=(+K[s<STch@rHkqO7h.PE[s!nf_Yp% s$7RK4Jan:"Gr3f?nSAD%^LXS7]RIO;VA%o8KAftsO4HE(/nZcZ69k#n`F49Oap(K/C=tP<9o%./Y=S?ENV9N"?Uk50BNnNUA_=]FHA4&-n34/o,B]%G6s$h[0X$ f-/1N[@=P.#PiQ5hb"* T(\LZ\R*+9.3OEi,E$M7_s.#h$UjV)Z[?PPHT4Cs^>)R]rj2X'!ID"#VO.>Zh?L"0o-=pY^!=BRMA5g#ZK8-/:ab3:mo/F6tL-jb-N)At;%VA["R. _o/Wb#;5C_(NbF1F"G<a4IINL+I3p>4N(oh`^$18bA8aL`8[>38W#c6t/dcEkQUoZ0+S;LS;G]a\>"QKCsKT4pG6dTVg@kPTZ6F$&*/p[c+n,XeFd6YiaE 'a'n;C@t".Bt*Z?Tb8A`2sErW0CXD:rQ&B?]Ys)+`St-2ikC#D<I!;ah@a=t7E H/^pR!=D4%K&l;nZ_+`g)s%?K;C+^NTL6@F(5Kb)=B(>D5$!LORR*jHj^^eWiQV9GF*EYnr.:RT<+^oe^,DR XQbpF\JalQlP2%"%Q9U(?XX&ER:`cSLl9-%78O7Ol3BJ")P![X?J?))$2T+395?;<kl$ponP-U+QoLVARdA$?eQ7T)l 5(-A$p(V7BE\3Od/+&U0<N8[3FZmH)E]:N3L]Yh/h]maKhD@7=-C!f1%rY"An@X"V(='5_:7M/\sD,+saTiZ?Z's`+Xf[MkM'eQ\A^,RJOh??:.g+m3lj1*Cj'U3\@X=o,mN)]8m_Bj&75@&ZeRtR?DoV2;Vh($W9'_Gg1h_Q)(/=<p_2rJ&C)^g,oq(20sh.-`i_MZm-Wt` p0$P*'9Ti%l#oNnI\YrtB$?/3.ke#Fht-$m;`phQcSNMAAj+h\fYbMF]*AWAMl.A?),A`,+nk'6^]+P9,d>[A5/<4kqm<(tKhPGf*D.O2$-J4t2p%5OFiQ8Y^1#b,5gNYWsb"e/t[`JqnF(*D+5aD2!_"bGEcQe1V+>BARj*J:t*MR3.\WiSNg8BP53,knAVNm3:pD)pAh.JmTnC$A1pZ_$9VOs^[n26PgFb5g2 WWr1^#5TJ)F,2=R%KSp2J!)?Q_b$s9/?lNTAr4kb:/Zq'/%o%K>Kt1$=L5Nroj9_[3;.;+ld=j/a0kq.LE!Nfn?[E<UZ?3f)(1DA/>N!1@:GsOElhN0=qVR=ik0I<"r/m^ZVk]3.Ee_3;aACWCV<;0thiq]hCj\^3/eC*<Bj:\.*EAXs^C&V26/WA"b(`m!Q!^fJb`Y[sT_;EY6VJjN0jFR^?KGXWYE&.PNiAo(l4Yj3Cp6QbAl &S1frIP3lPta1'^bM$t_j$H(c3br&C)>8Y^$RKh7^lBMQR4<C^MQ5RdO`djRIcbnccbY7a4IU@2%3!M9[6CtHIQV?&c2fZNkCnF0=dlqQ.l8i(c0p.1J?q>0A/7P8Ap>4P).gUKPe2XD,f7pAV:<goLf[JFeEED/H,<Zs%VRV,O..7=<SS[/1gZE*3 U=t"1KNt'%W7]n12+C_Eb*2"]'oOiU3q::&AUbZA[B#>aL^d,Un`am8iJ"+o;p7<(VIN"&q#g's^eQ1lj<G?q597IW]g4! F=<7I5A[,H@5GlLT"4dslHt[^Bl=0fT\3sY Bs",^K.Tdcj1H#Mfb\@cb33pkjI<'\dAk(se592g-ja-6Qj^(PgBUL"iSGhm/-rs1eaG2meF%8i7K0besQKi_?L@54>k&LhTHR!F<92ZQDZg0"GKS&9^eE]$7-fad<V.48j)\=Vn[pl66',-7VMi2!_ "!3ED)fsrd_KD-RebP^>7aLC=2]h.4IT'`XR(_s&#NEptr_h5^>5[2Ff@O[gNZ?\Pe5k/AO?MlfOmHL&jk`ei$r9hArAXg."tEV1+1F^e6WeTS`MjTM4;/SpUt,0&O+V'41Mr%%<nX+!H!Dr=<GB12^olgI4BdbG-lj5#+;qV!TA(7dnFO@?#fd',Dmc9g_U: UcKOXfsJfU[_Mq I\W&,1j'GSsJADDAeSAAn&-ct&YE_Fh'GFl4tl#SE)#qf"#\dW<o/6s`XWfl;0*0j[?T7'rdhGh>ZI^t#gk]<]Q[Epr$VD^00[rP5lA'OdjbU;R1FO&*#)e _"N/8KCEOi)QAWFl<fl EAiOc7]:JKSgSACs5aZY48\Qn)BIT#^^W4E:ls#%X4bT<_`<Zt+p]%aTf?(k,MdoMaKH!rV0"/e5=_]rAMhC)fL&VkPNc8Me`;Mh@,(;.Gc(?P9$LqWrWq0@n8IY/$A]mVG#;\)Aq';\?8-@W*i-D_U)*<Pr!IWri;2J%k&UAL"k1qQ< F!NbLt?PE4/.k@A'$qV7nrh:;+G3b6T>;47_k<[$PA0RR c)HAB52JL<.+TLp,!2sJ;,UGVk&L#ii!4V\mibWR3Kr6hp5;e0<h^W36s,-UmJ)#a5pGJ&*dSNkNW]h(7E]2btEqDX,Qc@9Q*9,d)c#kIZO!X-hH[>>]d.X<d2C'GkH'$?7X+K7)SHl=^],S?dbX@PA)SFVoI'jG8sM@O^\@c;F6\3Bht)lm&s#A]9'6$tjXNNWM-9a,2.p)O4Q65;2ddWA]?V'D\"4qgnmA9-4\-fQOI8g -<.]QL7kiAtUf GBU2K)jG!e3Pb3G-m1hFt%![VD:K]g:WU#qAWAD93O/6H[&8i'gt/sRIrq6%aCBTc!:WK;bm>HrKMg2*#IWT@6#f$JR>W6U#BnqeJC.iTePg9A?T<B(&T]916Aotfn/B$XBV3_D:a-KMhL#(BGq4&r^ZDnh2EtNcH>E>cfs1Ip_N#L$s`X9aJN\Y^,2CTllW%8#r@MdsB^@7&MEfCMpFW0Ze#2!:S0Xm< +S]6lCPk9L%AFM$<.l:V5hF+eXAt]i>%)C8:VA&QY]q]Wg[;@G21#mO*5"3ACRjDO24Iq6pf8e,L_JWU )8_'+&O[Li'IJ#<&(IUnHnhP=7q)kf`2lX4m;fFq0!>)p9k+]a2 c*:'^,>BWlUD^W-63A_O&[X]Zkp\da)r !WRk#[j2H)N^4Ss>k3lVpgiLM&iSe\L4Tt"oO>s=Np)UqfAY/>LPQ[r0L=?5lMWFS03H,XM2J, VN,%O5&2@msR\m<(%sDJDPAT,`BL%sk@a9.sq7*]A;n5iHY^?&ail;J?0**s.^'C].*sAKEn4[D\Qg.gSg>jXFfX!%6AhFBt@mM<^8jOr#Ni6#U:icok"'d!r>k(=E*5sQkX?^<^-4R)X:!a%RCGU83k"P*:eNCCBfLjtA],k&+;oKc D+`slC\c.m8?LVsKJ*2Jc@%FC9Ql1*o%>!2hFqnKD0cUh/Ap(_4a!AYA(gf6?;L0"H0R#AM(Lr6%q@A#qfDo8CaZppKbk:H,UJepP'L" V2pLY@eNG`;m!OQIE!^?RABSLA_pb.FbkNoA%m_'F+;^&AfA@m]<*J?*!$NPKr-=Ze%kRU\gkn^gDsB0_?mk`QFsHcpJt3n;A`.0.5)5Y8NttXQ;]LW G7 b_3,XhdYA0Ak1Go[1j0K!-rC7X+1o;;U<UF+c]GFkWifp/XqsRTQI5PeL_1`b2]?(gs4b2PIBj8H$Yf?mq1fBcB3W8^#d90a2jCkkW&].9Dpt*)&3`=L_`i0UsGc8JEBe[HKqWJ?da9A)*hm%Mg!ajr[tm_V\/PK"A)4?>*9iOWE,C*tkLVZ^U-olaeOWM?hkQ2mFLlOfV5Zqt16o&,C;<p\4sI.a3-1n%"O%;]?@&&Kkb'do] r,Who/hQU<`Jt ^N0?d)pHl2h+,,m3o7\4k/3]4f78Y(=N"JRm0V1U``6Y&rBfgfp?'FG!bIFZ"_GefA#O.b>(LlZbfmbX N0q/c[@WlhTsEsWG&2CO=@@EFWdL0sAsk99o## L;[f4-*IE>7;%X+:A@F(=-U6o>nQ<#./LV7FPb1q!6aROsa[[\@I_F:/<2(7^TAL&8@Zo0ZcR.YO<+'cniABAE'>O:"iq<j/-P-VV8+7JALk;f<Qj:r9cA<"8IC?X"hrkV75ca$;EaA<_?`LFUiT(U2U)'iFY.2F2<'^;rcU'^[1MjdIs8pKcW\fo!<=8rj538'K.6"UAsU)IZHEs/G19N&;U!(ir@,0BK`O3@7\h !X%])j;R!h_A(NhhZQ4g%<"L=8A?6A'_Z!I= WDY4;>>^=5NB-'3375YdeL hRCPe7UQXLT*bcA[13a"@.TWjViKS^rVT.L.`-o iS$!Mq?+K,Q1Y %%94)m#8g*i QMdVkn5X*1=`$&8jNs?/isc=b,*SAmYT/^MWA]"@SM(*Je7G;7QtkMfCo416#Pl:.*NkfSc]T5J;)!ff0m&q]`7,nC`<t,>bMbpUn\)o7=LTfP-c%mTPhm:?*![U*"5((V?8,FC"$3JL]7n`.>D$AjCl?Y/E%%C,+<A[/;.9XpXCUb5G=n@Y(BjcjpQXUO^XYMqKb\#W-C$I]#n>s7\Ee&Ch]^ m-tmoYADoQX6Vj>df&lXVCc?cSBbdCXEVaI-2;72PVG b$RB*iBT]\O!)tOH&fTbp&LMY bAB$3,m$SO;@Y>&>"SqE=%gLQKq@9A<%'_f6r-9V]`eC,9`!"6cEn:@e*W%tI Oh?Y[j9Hj#"t@.#K5tC<rGR=lk;8)rk]BpIS(8MCRU1c<=oq%&ra-'kPVc(PdFK5,ES"@(_I*)8\"M7q^EeWflUAVCDN\M'MJsTZi+kXPX)43T$.aW)-s<:#o8*Hq0MD1=8B23Sj:>J]<f"bYDo]":.r;'L/[WUbel>qVVVN #A0/A#CMrgb2'slW>-"Wr4Dog[$-j]eo"P=Q-cEVCE.4_/'QR8rT+8=8T2h,A@'N/\NL8[.2K0T\;OS A?(AS&o2:S_TK+b`G:bm:e$N)[G=# ,@;\KF:R$&`D];41=E9aA)c b[Ks+K9l,3r>lZ%LBs`(AciUpF;A*$"^Nt-i,F6d22+Qmrk9@s 37'LPk3-dHad;Efkq$nJnleeLA$YIASX_A2)bq15M'1l@W@=7Y&`bqfWO,.6p/pj2^8/=C._bId'"Td*Slpmo9JY\@Fj7L"(YN!jAON2CAtF`:rDtL9b3JQ7\ZmWZ1LnD9bi,liT0(e HY);_0Re%r1=X(>fl\9`[Pb_.O)3TeSDF`+h@nQfA#3SZa@__C#65Gc]$6J2R(sB<T(r=cUZVSQ'1&W_r;I:-G8Ero67>FAj)A+VL/"LGY5Par[F^bo!m=sbTY-&aa^;LeRCD=*JNrF0H[p0U1*U@TL=2]O.?iK6,$T<`@/;Gme^Wd$\<S:W0S=//-Q@mim^i:JJ[7X$ '6Q5=jnGC/53rr[[mTgo<^:;Q)%PTYcli lDS_&F&"GRFhV?B<:&/\T5>nN_/b8Ra]pZFeq#g,t?D-V]M5$II3(^b.17rU:(%_I!:.j3M1oooLBP2SW#(V 3I$9CVNU4mdl1JpP&oq>,`mJJiIf5e@\H8i@IcP@8hk3]O,\;43*k4?'q=12)$A6>0DB:7B_el#XZ!U.5C ;/?r:qM]QbO3I&gA%#.RncpfG@UGTU#M) /SH+"r;Z(mJ+M?i]*CcU#dkn"J<4510Z.$YcW=Gs#0N:7"?0X9(C$7,ZITf$-1<(YV)i/8it@m;42Hs1b1JZnMC[t!4YHU] @*!q^3l;bhQ<F&4^(,TTgn]IP:Oo9.=?>sQGolboCh0L3oO\a%,eHENt Qc&R24M$j0Q;C?b^=I5=A.ZA>_j^GY]Ds/D"E(jRf@p%dkE13&O8AY;^Or,!?IYUH%F5k<BGsdi8df)7&IeBj@Dl+:`fgYdo(4A_A184r9q8M3&$Pf/S6RiOK<ThnJ<KN[CT@MLDJsJHN`D(+P1lMaDc=igP)Q"^dESaAE9I9>_oCpY#A"FUWrD*R9Gb8iJ<p0:p27%XHpYNSL7b#?KfJW5 $STpEPQ_9N!_P!3GT#l!rlA2o$D/U V;H3sQQAb&0c4\A902=W8ZYX*_a3hqL-5PiKYPp-)R^`2I!'\]_jgBKF!PeprB]:,EAd>Oi'HAKZ/2:RYhToX!qIIp+`N\Y2K@ e,_3i;9f.LMmEO.Pg\6b$tjF5[sQkd,3XHK&HqVJJZ'tUcnK\gikacet-hQlH&pPAD5TM[ehBh;)LL1[#-O.e@-*DWq?7aeI2;LG%UF;_QL*osn[`TKs^EqZ8oaE'#:p23P7h>HBHd`#R;9&tS(& qKeFHh<$4'tG!TdG[L*-';>+RKU J$aNR2O=E3I'B__9B_\BFolMh"6O\4rPq$f[mXa5'3Tj4I!5t!D1L4dF'rbiUdtFj!(*fhh`L27$# PA-YsF*:&o+7%AoK!"T^<,Jrp"WIr8BAB\mEBeg,&GUT"$k!0(Etj:T=J8W%G"1YGqYD9]P&nkg2-887t@d^XhEJGPa3RAeiAi9,Pqobp+Xi<0)h)BgrOI&YW=R(J^;;_HiX_f]aY_=8@ZQ4-&AKh<q!1-tspf-U6At:!pAGO"_$b_c3coN49QQ0+ZA.lcM\PqW!$GY-/XB9a$S<P&FXjFFdOY!d)10".lDKA1[\,5rP)h!Am?f^9iTiKBZmA`2kEUVrPFdK@]DspH-X7?0P#%RrH6O+E57JR:-t7iN!A?'7'L7ZelsZ=QA^WGa&&kC/;D9U,"9fGW1kf5@,FW:[b*QiZotGbY5(92X-mp7<+;ES&(::;M]$q4D4q=gWH"`80(f;MVO%hi/p%kl1< MM)BmWa0-BKtVt2\&Ec'KNqd5BnhZQ1Va,5Kn3Wneb79Hl^fd5/4)k?&7I\ods`$"A6d]cK-(,mo/<)5Ljii&jOH,AUKI0GHfkTp"Y`.?th.`eCEA<,@RLmsD1!I!oApIl?+W,G87jU\\qN:;Q,T"e&An;mI@Gt!4hMEEF&N1rIQh.<MKb!3r\CtGT,4J)E`P&gp8;#abj,gCc$H@2]j3=H5W!/li:UZ/7B\IeIH^9a^J*9tM@rgce,HO7%>*RjZB`rL"'rMnZf';Lr+M/E='=$VCmB)O@o6T/I\!Ut]RVCEM>o99`ZHXp]81FIsqa_9ab:+Z5-MK2ob:"c16C [p.IfG",\GPUBAA1JROjW.c,UpK,Dn`'@co6AQfr*G?TN6kgCX^dI]>Tb/H!IUWA`nU@Neb05D0$HQS_I`'Y4!dTl-&:p,+CX^MMj\W@1TC05 icp/=Ce*YVqS+ZHb)Xr*U[2(oN.=CVI[H"!;diAT_Fi!M)L&G1p_lR0NFYj.aB@@_X`sB YX*J9.9'r-`6C%ijb `F]Z6nAL1X/nUas1A%b<C]75JGGe,q",DDncIIX/AM2=,rC6YCZ>M@Ah3Bj]d@ ;"8DcC%orqsAT7)h9\QA=i4A+Ka)6sG,SY6X6qh)h$&*kLL^#&;ei!;()!dVO;>19A\iZajHd;Ihk)I?$orOYU:scq3Tr@<+&$E53g#k@;5WISMGOicsOOq_6n1D_Op4F:7l#&EhbpQO(r6r8aJlJL' d**Nrr/\bfhpI`Q_>q/-3M)!8b<seDU $<4 []6";L]3Og $D5SeY[d/Fam*c1e9g]qA:Yd<>+ZZSF[Y?: d6ri::(sr%,.L,8L;9O'A5cq`KI!$9b0O7A"\:Nc@3LYA"eK3UgBJ/$\j%OI_/D9<;2m.DUr`q4#eleY"&UL!AI:=8'g__)"r#:VN3D1#<CbE+^0Zb%8LF>Y82mEA+Ubb-\g,AaIN&>?POXk#(94`fIfA%eQG!(A(;Z2`mFGs]c\qmY:nXY6#k5"<7bO]>5A?(m?^3PQ^C<>Yd;WUFRs8@D\C9l+ GS9RC/+R2VWe!Q3*X5=_sj!3PDC=A-?"SM_`CG#^.j-E'R:7:MVMW(TL>lO?l=M*4rgI>:052*0b%m[dOD"f AI.3n.MjLTn8K:aDTH@mTqP'qQ.HaB=?6L?b!ma5:"A=3tY5C)VRF'GIdIEa3JCfKWnQQB&^e7BUcZ>Q7?WIP.2dP)Q#T^gd0&AS-<EX<:^Q?j0(W2#REkN2PO^hGcsBpR4jkrnC0,r6(XTZ b>0L<&@4\LB6pcW "VsjB@0LPLMr 7qm]ga1--#P3;Wf4FVM;l]I)[Vk_^:IiW+KG>(,SZr8_%Apa0>SUBh<AOT:YAio-E:q1Qr70gp%.i<*i=k poXAGj8qNT>AW>VY^3\JA\$$3;<KZ$4.saZo8V[QCi=rn.`hE?$?5]lO$h+`0]tBa,dW40!'s-!U+<A1"VH`UJ'_7A=$9*$QNo3.im_qr[5e[W3A62TIJZF%6>RfIph*9P\MbY9llP22N1%o^Y3oU2D#k)*W DCN&1$Y"@TSp+`4c7 ]t0mh(IG"/AXZ,D?i?_-%l.I#g(^#Z3%g'RmB4Us-T`G]:Xo'rE5ZDGl5@</<6WW$M%$DTW>,]3crC8_:^HQF6h>'d&!%3['k9O&gFO)r7SEe=_]=6Oe;DaK:XZ%VNm$o%'>;M>q5qH8@DFFXFU^t@O8DQP-J*'"Fj+N4Ur5[?7h6).#+C[:J6I39>Di2CF+] Po"7*"Ih";gA/nhPJ>EP_9"?e*m3*UUAT##9i7eS%T[/m$%Ab, S^!^X+DI!tf?cN9@!t*L[2NWOZPRfc=Ao E$AH=\("8?oe15>dT!B]T<ro+:pAF1`'aH;XMr*$U;)p%9P 'Hkj?04I]Sl;j&$(,S3IC8,\($%XND-+i IPY]DU7<HN>s`@PBo?d-bfZ")mOi#$b2J.A3A]Pk<c;`eYeeN7\kR4>RtQRo Fb6G4YJcKB2-i^Nn^t7)dTOdC:/WlkR1IoW)GF^*:=YFA>tV94KRfkYnFApkbb^qLqkc`7 K5m4"$[\RIIYJ-Ys&Qd;P&RmL;fs#2=V1LQtJ[K10n+DYg&ig <Z;* d48"QsJ>eYsEbt4EjPP@FsaUjs+^[<i4)Kh$2fe(`<n>b%GqZr_+lgQ>idEMS+7'V)&=nn_m1%=G6ZLP8XTP'rNo>%[Qb4/4seF[&XSB\EVi%!S^SrtiD:ARnB?3As,%L@_OFhm"@:'/=N*A*OMESS2@M1VpaXTd_ISUSkUO@ERQE`SaJm%V0BX$#WAd9Q>_#-]SV'[:N_,_W4/BeP(<,PA+A#lQc+RF![]Xs#_A1Y3Dl_A3,kXp@OXT(i'M>m: +#b9+IMkJ?!94+p`q0Gb<M341AoM\MbiCE6La`EcY'[j'= =k2>rae#sVoTXtlbmSFt(^3P,?jpp#&H/f#9T8m]UJKYT"N?,36RDGgl(5i#j]% # XE>6l$5^?0&kKs&9h#P-G?$q1NMUXc"Y[Re</N>1,K%2RI3D q8?7J6lbG(>jT??)E/F8%MmcChF3Ie1M*d21#"p0K<UMZ/)o[8A5qd=Xeb`3feWnq@2P0a3JZjdIIJ[;D7DLYK-a1KF&Nkas?7JI_GYrK#aiX`P/sm%a6@#+2 BpJ:&D4D)GI.75Hb^MA #"HRlLD7em,F[bXDP.qXNo,`.+%YMNl PKmbRE=Cs5btD(M^QOP#Ka+r<t]Sb%Pd2So',(=Kh@\_(s@T4H'7(X2Ss$N9g7(CjD)nd4f8)^RS#:J7L=ONW'=1(EDk#t\-*fYQL#S$BE*M%g:XWfFKmX9.c=d2p7A/m:g/9]\SqUb:p`p(TX(Uqq22R`1AQA$571UcW7EJ2G&,%2Bm;K=bb<Jd`3YHV-A3h^dK&F$D[[.'W>n0:Hp?8/XRF! $T%-<0f8c&+DV[ZCV#+;a\c'<+^"e`A8+9!<03(<FU"Ih]^.m8SAAI4gP#Cd4!onbCf]W)678X$(TY"C0=VNoZn_4%\4 #J-j`+:M[!LF)feC)R_1QWW4G'0`C?X9TAB%A2h@P<NhDD`%R&*ak3-(D:%-UdZtdCBE9C1ba]'A$AZI05+N>F">XTr0,hl-+pZlKA(9a\pCQt:QtMjYYman]4nI]-kD@`kO<D#+'42ij=b"N1]!?*-XAEZh0;3"n,.'E,-2RDKfs*$*pVVY=AmkCl-6)GJZ1,O@lBL W6Fm&"J>VZX3o_`Jp#@\q+hJ58LT_8El&d8%.%=o(,!f&"Kca$Q),D<F>BJ)_FNob(/BD5Jp36H;.R-.(fE(^HXHeUbJkN>X(Rb-<o!=P5l,68d'GSP.OGs3O$VL5?a)]XS.5"j!CX'=A2*O.K(3Oe^AU3Q?9Ft0Llm1Q;%"4HM; i,@h':b0Xo/icY,ZV1"W B .c2gXih(2%D(Lapp>V!k1Lth&XdW-Afg$@0'@[bcA52+=at?gA;4W#354d(Un]l`=+^_'P+$pA/4&STiO&>t5#`HJs4V%DTF@j<D]H>/.6Z&U<Kjt"Zc:n`0l^#]OBhO1]jInmJC:+nktQ$d,bK'NBbgX9`)A<ZrZ 9c_#f@*MA$DMjD;qL@(^.:$U+!EkPWp+j=jAMjAFn_+t!V!d_ Fa%Aj"6eX p28I4Qf$FkAfr=X3s3*C`Pr-^re=d%qRsqE;rn4fk[m0e4Q`+kX)&I._QTN\^pV(0:TZ&i0-d;(m,_=:kYtm$^[#g$06k(l+()tKN19A#!QTZ>>'*[da%>TkjrnN3\L.PS>_g#)Gk&fXrqGUJBo+7"oS?U5UeE<n6NGTUJJ3`1O:JKBdYL+oC _`^>'@A;Jo`;r9Tc#)Lep\scM8$--A2C(K?SZlXU0E1M00AJY+?XnhSE7WU?L l!S98_XBA3$ddc"!rtUcTDOe9i;hk1R+`k(?a@K1lmZk5:eSAo*Q&n>Xq`<`I/sg*Lg"=Q_VO0=pgqX1+C^rO-.V& :>rMD^#Mc@-!f--t:KR+ 3mC%[4&nS5!sC`E_W,]A?,5CDSA]i)k0pj`_ne@Fi9GJt6q-d]jJ-jh4PhR(KbmDgL9p:KakJZ8C"?iso4%Ar\5[!Um,i)lgXB6Xl-*U8V.Nm<%7Esb_`?*7tTMqhjqTGh0.3[%6+@dC8W+h(WlR2;27:a6_O$5k3gQ_o(bh*IE0H#E<PskG]_#m1?XG_+L10:\U#Ra7,63fKDN#k'pfYc*/[F*UE;dV j*UkX#`(jJ2@n</rWokA5L'ldIqt/[eAC80j*eV8!2,.]>).4b>9bm<%NEI?N#&GDtP6&N>cV3.C"_:O.=!23?!?3LHd5m> NRA)lO3c/d+\1A[QB`C\2U+57OpQEqSc&]@0AX!d,\l: H sm<"j5'(d"[gHX0Y"O#`$hU0mOkh01NWt90&rAen9)NA.io5lq#do>peBfp<>A1BeiI])fe!\R)]1\"OC?0Fc0k 409tn!#qQe&N@*E[FLpPR3HoY,PS,%8A9_iD@Znc! Kp*gIhA*nI"`>;Tsr;g[R`1cmt6"Fj/Pd#gLr!=8XR\:Amg \")eFXG <]JL +Jg@`MOD7a9Xe)C0oZPBE4ikP.QT;AD=3#d^t3sn1il3qM)!2>\c$\12;!jkUftXecD"IYgtr#2tR*Apj$rRT:*-nUY5]T6o*fFNMq#I :.G\ah3sq#`<QX_A()=YA$;/ 2,C43YL:Gn()AlA_5L(Ap0WpptgOlcVD6B%\Ja,4jCg?5\PsO\m?%bNtAnK&!$dR$&kS]3$S34A]Gc!qFE q o1BM_IsZWE875i"VIQES:tND# Vf<hG%TCMBWfmhtI35$A^]q49nrbnaNaomsDpZ<E@jX&so_PKS*_)UbsFT\4A\@NNkbN"_KA7Qt7LU-TEte!XE?iAL_ft_;,rT<cJ+)U<j^TL%&!Qac,@ET$i%>7mT[;2tW;U(Ps(ohs8?SStj13fULZHM2&-[9#/q V\fifI8dq+Bj:NCjEpYa\g<1ef3>cBJ\%8aklFb4V<-A3CW/+L#C(9r+XoaMar ,C:t>6r[KYT3XC#5Sr1oVW=q'/@58a@qD!/X)A<dg@Vp7"<>A_LrB?Z^V?j=WD)1%eD7=o9)Wti:`O3"]r+>KjIK/K+3+ki11&ciJ4+p>`lA#]p[int1`QTg1/K"d:CmhYG,h&@F3#>h2dZ$kYPIT#Bmq6m4f,seO5R)Xf1Fiq$Dk[kHP74lN>^mapAnWrCiSb4HsUYAYr++\**e-%UVjtfP1S7$K)Y6 0 &;OPXKY]L6Npc>SRHd`?n#A4O3[:tCR4*!;&DQ5c0`lL!])^HsDUJ #<t@+c+TaG6ScmA="V/,X%g?gTs'`acLUe.`kJ9!*$=!YSjjk2<=@ZDLlP4sEJd<T?dhb\%!B->&ZO1bXbe1$:q;/Cf:bH57oUE]H%iJ6H8^em60DEeAX6WjXhV0_MiJ]tdAaH<oh,]j+P"R^e0]sJ$AWa?XnK]hGCsYgk,ht]_7])nX2*,+?3eSeA0L^.OUq6&F^[IdF%I#ofm;/J^W#N6N,7(>o-k8\6FSN(a K(6?T($;dRT0Po5\MJOXqg^pVOI[.W<8\3Nb(s9g_-P](("A_3$Ra;b_tSYLb W3RKP!_JV9],P.q!O9>?Z0d^53"Fi+J=bf/0RFnPa]'f"iY-g\QK+ir!K?H&MK6K'Tm:[>+j7P?/>mZ[s9(/$=sU,q787+2bY U#h8<,qnUc6tt3nJ[d372 (WA&*936B1%+9m_]j8m2-Z4OOHppbR-GXQq!s?HhI:JB/4,AO1+b+CtmAAS.In[)=AkLOMbmcD ZP%sqqHrj]F*BeAaso=.5F#BQm7[`h'3l\3Y6&!S2j+pX"]Ma8M; X``jhK(5<%Xm_(DbU^I@1m6qGk0`2hXH5T4Yaa/#m`+cI4UiGc#^Sdf .">A+&!A:gW_MVb-TC/S"c^r;9bbHc6TEtWemNqNn8bbDs9=pGi7A(SoT2d&=Fmo6W!o'haZL>GG`9+DebsocV9q_T_g03?Kl-&'WqE%>sn`4>cA?_@-`p64Z.rVFfH>t:)d#Pe7B>oK&Z1]D^A"A%2`kh#>_[&o/HXjhH2LOC$fW$I1(.?r@VIH2sgDa4o4XM(1VTm4^!Ra6`AD6T;U9d@$;tNR:]4k^ 5l359gf'b"AA&9)^.r!>hA?)]]bW5F>U&Si$ss'7_3,6[`]Acck9AC8Ca\OL3bb@fdQ=VS(G=ieci2BBb_jFq)9L8>o0J)DAL4<]VG'E\a!lI1aEaG-$(3`N 2VrDrQm+!>t_O-X`Ze2 $mI9WQ2T+U;\1P;aAgAHl<i"40L_(Tn.U/97^@]3!EP9.!cG-'J57-Ri?Ms0')8A-_4WV18KJdI%.6W%nf!0I' #\A\$lKr Xsn#T.rE)1"1MW1pT2QcY.Yj 5YW_?41a`<H&MZc!9V.LW)J-8R)D:i#B:;dHF,O9#H_m"U?3D(Ml"BY$M1;FK(#k!8bk3[PBiB?Fq;4Ka]FkWHOOL*kcE\-<on1HJ'1<>^Jn.;-@TX2C.T2J\R9A*--2kjc_X&sk8r;^'$AoDON5=bbk6?1,0rpa#+R&?pGAl8f@_])G@lF#N=_ 7cLY[8JYO'k%d[XS$ LdF@lE4Sk%A_AZbP^7lZb62k3p0?XR$q74j`Pgc\Bkdt!3CODA5Et&8@!:A&Z7B4d3q2'ZH.EhAGt;rWYYo_e">WQ#417A<P=Q.$/)#Z;W.->Tk%'Ro,pS5;`5'&E'<PHZ$\62j3+>\XK>2o&B??IHl,4Uf>95a)qR5F9;Z _AS e-cWA!;?Qc,UiT?iHdY)5rQgD*:"-:* /l./Q%&^b)_`h@37IGR*P)V0Wj0<r[]AKN-d>.RIS+t _UMJW)d^S[snLfAocTL(GIB6ts4tr3%Sr6^S&P8:npYaAlVC>n*D``6F)`7-pdG+L:e_e7MnrfSJntJ GQISBRm996%%X?c<l?G1T'A@'Ih!1hp9U*[Rm,Y<@l.:'.i#`S0,nW6hKGn'\):IB#Na@$,5JA,VP5DnErnN_\>tKSm0);?L&`D0E`[;\Rc-9c\ihT/;*9\j'(V"-T@#>lgS$0]^Aj04nKC$<9/D(2K\od'XbO(J5F9PR6=BGFp#3l[p"n30&NEQUe(OkEiJ8%)BAPiK]L"6eM7Q)VO)FE\bYk;*,R %,K$,^#O2eX7#dEKk>]5(Z_p\B_Al`f1HMokqnGU)L8&AWEbl"?495+.`>IO;o0$d32g=b%W=n[>9Bn$iaB=Lr[gP3ZU6;htm_J^EpNtWp;;9cXO56Rro-'<r!L?`2D:K(/b9_eS&f$AAB0t  P bh0 %^X:fA#W=$$qOZ$W_O_(DVXBMrUPA^_iidVn"5CH%9`bmGMC+"C>13)&C?tq_CX[g'QtQ8fHeQiarjm3ha^q>L@Fd`A'Vc$i!FiSXKDh=*Z4(d6,`.+K>Kq`Np%`.4TZ*d-BAI#/q[Ns+(g(]0s:X,A08)o7ALtHHCOOL&@NqhmikX 8,>=;]!MCea7RC'0sHWnW'L,7E7'+o$A%t2Ff$$a(pZoc5_76#cs76&,b$n,XO;@M"5VRUld*"q7D+s6.kBY]VbTIQAB3PePkO9gIKTSVnZB&0m,AA^?_QRkk*\;:;UiS'6`N:;2.H85:h2ptSR`V24@ H g&F)&@T]A!Z3EdA\L$rnd &D9TN"hCrMls<r^MSD"7SKAN0D#NPe1n<<;e/%fhZHOrV"gLe$1j8Cckl=Ei0\#tpYJ?*pIXc7W,j7r-25<+K`7qh$,Q?DGdpNA7A+Ph<NfHb+jC)UIUt4GMo2rJU@BF5F4RBK>UiJ'Y9Lnad?8r^;^;t6Did,l4\5%jH[;fPN(0.ReEQfRcidVVY^lX]F:71LYqL;A`m$M*t<g]c`hKg UrJt>5(]c5d'A8%"7%!r'mtFDUj.+g&S].*+?7^DXAL[s+/;f-'#&sk&Z*"b\pcchVBdi*7k-Xf\+"-#A-AlbL,NfbcUf6">]^*PmcEOGU4SKjp,1&(]?/.rqk%Jr:UQl3H!X iHpMOr4)0ZB"-0jMqA!>21F/h@%_X$&)Ze_R?_AE$YP6o`,\6&L@tnB#Ja$n,YOF1;e2AZ6;>r9+&IWK5N<3Y'5 GrJcp)ZK>r`TXr%8QWs_m80GnWE[L%geqW7P_6XIq!-'(imGMnKg,ZOUf='#d0[b#&L<TB]iRhVkR>F%'kK@`;/edX)=pGqsjOnGG:467Vl&r4] SJ<NVU8GJ9IL[)HAh6a=H:C>%sI%/VQX#K363QfJ,*YGK(1hHf@G4'lTTTL9>>[T%'I3>rAG-:r=GnFE41HgIo=&PT[^BWH]M-!;W=)Ad!.MUs@p#[:>lmd9&^8 ,T_iP9"Tj1ItmHC;-Ib'[r,l?RRV2$V-j[#;h:HK*P8?l+h,$#=t$D,%-Xo)t2#)RZr:>T[i(jlBc)E+>iPIP+6h<Xe\\5FDAX`8@]aGHjX[Uq2k`tb<DZQl3Za%Q39bpPI'RT?O[M(/UAdRsOEqF6A=6#&_G?aeNHYItHQ"Sat2R+jpA`,RB#H9'WVA(45m#,FAR9&*7TK-I$+UgGmA+R9 PC%^hcZpYmO4f%aQe^"a)DC 3@cb"p,>k74K<ht$pKfm #fBm\3J6"!RUb<=g)Ob9@YV c7;ZZ$3=eDM&`HY,"J'7Q=`AhG6m97g(n=P2#e>WWML4<r38Jt-n@Y+)@h%'XYElcDEFe.dBU^J2/*[$3'I7>*3Lq/<L-5;cdQ22>#6[bn&_GsnLPMI-+cl>[mNdb"nl-$W']\'KaLPNA ml]t^WNOt\W3aS\7]"D5./8lS'5g+Q+<?pNBpNe&M-^g/fL<r!@@43)&t_PR52XG,qil%WH=^&Dqa/^p#Xq;aiNgpGH@@k%'VIOgF=V(fbAWg67@ i+)6W^*;nB!sfa@,"e()fk=""j0&Mp5<`KUNmF*bmWZMT"QY(^3'1L`g&c+,-1JUL#^_4:S8a1c^h#_8!K@hUa>hlZ&mm;OK;f"@%s]qkT1n$T6AHtX0FM^en7eIdsKZ<60;(:X<hIGAP4WN<APS"*D5E`]0n[/nB^)AJPf>88gEg1W@9f&[Y#j!;R_\7K">Y"35C0IXdi0O/$/jm(!l+nmON8=2T8fe&Tpf@YYJi;BrB9Oq&5gDl'j@9F4>/"5J0/Wg;ApWb::fBpp[B'MCUCsKnn#7Uhtp7BqAtS!9f(@Tc\>pYD& Cl&ZY*:5mWKZ3jDVXPZ2( U5KbP]\)#qAK-^NjVd.b#'qk>#F.Gt?ZK@rVt9FgG3mQ;iHIe&m57(h5G9i/8n`:G&HpfXLD:\g:RXg`P)X\k\V-`Bp8Q/[UP0<?RBLNT5Y(!"2fq<(-/q?>OBCCMHY$i"X61b>q.Y^-7K8ENOXTF%A92nmd>72e FEo(JD?ZNYM80>_iD+1.R^H;pK=AAqLFXnDD>'@oV5,tZ6rpcpAh_F-$A(ljbg-bS>N#i5 j%dT6I_[?_$`a-*)tAjP Pf$e]ak1";1#G/\k)%+c[/3P7\[qQ:\cAE+4M>^;lACMfV$_d hcesHeX`,E7a$_?sIZho7V&49_)a<JT* s9EW8"P_\!"QD)_0\bjUYH!80P)l6:'isq!t4c(Fi6Q>>X9]mhD""gYjf[9K1caC:Va$SPl_KLHR1jo?Snk[R-l$`'aWrA@_Iio^_b!2ZsP^Vg_6Pr`8@>BdRtLp2_G\#iSoJiI^jAj3bm[=T"<h?:%J)4^:NG3-SQ\'hOC/=s7mo=CGC[=V""af2R'=)]:f^0gf:e]"Za^>@Si FfG?o&r(?"gb>% =(jheYkR(BWC_H^Ki=1q-aZ=g*h:Ls! =EMTN[-n2 [MC9*d$s2tn'@0fr%KBG"6k784fZ Dg%OTX0PpR7Kb O5..q`kZ]CmirOg6$*Es#<5VXV,Sd1X*$*oo.&ak3N+g80Uje[H0$l+\1I]*lRi)6=h?T9FOHk+>)JT#a))fl Gd#/"!24O6G:6@PDQm/?4k_n7%[!Ei2Ap@VXmP_Agm9?=F:7WeW $NF\3C0%aI>G.ZNDQLQASrn(hjfH,.Z(kp@:<e0sjtMrSpU8WS<PS:Dng?D,8mWo._BL^XoIMU0UA"D-TYo=&pVOLi"tk2X?4r[GV6j*I"G?@4'&Xolk'<.ORsC79L^DjIj:!'C7q3'E`CQm>&jI^.?T2rLol<;8<ngkr4&1']A^?U1^<j,.oAsdf-9%3"P:%f:)koC-FMa/<se*FN+Y31l;(18;>o[P5tS#U9%6Z0UJ!dqs?(d7Lnm<'K%_)m6n^,IY;-j'OTCZS`A*j_^b-G'56kcZ'IGa^kNJF6#.=X4Y/VFIG[19(A`"`KjoTcQHfL9Q^0jkRNZK5I>'&YR#g"6.(A3nU?OIcnd+QL[&jN!<!g'`LOUoTWPO3/W^R^`#a]'En5)=N,?D;TmBitXdG0OG!JD=5;HkkOY>AVN];igf.:E*>tRBO:S[*mYjhPCJC)8Qg2$s+0AKeBd4(s1eZ3WD#_bVo'6m.)\&c-?V+f9=&A_j4L?9ZQ:-c'pW74U%r.m#DEH8f6F7H1BLDqa+eIq_cj&T]dr DLjep+oNt93$T10 GXAaL(Dsb(hT&(:FTX,OtVO\9I4#2%boc,0Gh5p(f]'bU$L1[0ZBkF#?ogBjUm2oQH]pTinSN":cD_FaEkA7_M3\*:Q)^WUREFZde1APMp`McO8pe^:-^Y&H9QR,#+n_JO&0Np+9re11>)YM]fYAIkCACaA\3-7fKIFfY7Xp[s\oM)f&*+p)pFXkpjGUalhQsV6iCn2iOBU"?19Ns7.m-_kh<-qI8OlU3m<\r;tM=]]b,/.]'%Lm*Qg1%jGlE4AfWh5TR,:nCU3ob!)XMF@^2%s<JY"@\>Jdi,@/Am2Pqgsa,nZm;*'%^XK3e9R!96eVbt'2GkO+s,%\F1Vcg^W"s`NR8eM$?&'MA?]^Kj<@nS75,jA-V,`;<J;Lj#K>=V:=p*@L>_Th2>&7TI=,.m;XE3142Z#0$m$8&(!7EC%J<>+$t#-;-"1EVJAW,`AkjOtXb:;IaS#q)lDk6J_DZaJ-P-7?]MO1XrqU4ad)G.lD%aH4m[:`_Tg`5^=Dj_nNSfQ446ffRC<t@?6VaNR/1fk*@-$qb%t#j]aW]n)EG5XJ5:K*=M.R=)eAgsTL@OQ?m$#6t@e-eJ'_J'1BRLF=gWN6;3S*CHM_iBie]VGUeUGI!.0*DR-\-[9L\mWgN8ebjtP\$S0?_cR??[`HX',O=>c=9#Y.j%AtJ4l:+H2oK`*5;d9mAIl_J5LX$S99sY#TA-=nB*G^m3/#T^"sLOb4Lg6(nGa_'L '7$i;bdDq'j@j5ME_s1BPYWDn!j2Z+MtB8*Q_V#ofZ7Z$?K\)g2Nrm@-6S@C=^tSl)`T$bm2"p3jj8a^UlME$JD1#.XNRk/$,A^g-\nj5@>&!-mhJ*XYNKHps?' jG[*S"<piI0HQ]<)ob]%A$>lgP$H"CGQT m"hkHk@U)N?"dVp!I(]]0$0;kc:)Fr2DsMXGZLWUFT.s&U@fk4$L5F*j':N&X(DQc.P]p*0ai)'5=^6r4,)%Wi]`O9,L`mPj,pJH)_S*IoN%X\[X'A+RoetZ*q4b<^;2I85HAbh%l5kgAJ8)+,bA1nL!H:8&F';1!V(6D'O;KDE&PhM8oRQViRNV4%Vb@Ab]qpP:Q^i6iqW%/'m&kBK:dd=j58ITNR+CRgI(g1.69cq'B+'+0Y[5[ti=]$0Pe9=7H>s$oZ,6,^iNoNJtg8,SkCjpYOPlSoZ3oP^KF-s1ME@)n?U*KtaWCpCSAFK?C*CGmr4;hCMd3]bLI2%]m*4'aPg%K5He #TLa@#%"_!KItS"4:;9lZEoTOSI6['*(_I^@qFf0+Kc=f3E.`(0hiK&C!jq/-@HQrk&8T*Y4\S!%q"-1H(_:-\nR?O=jKMFfFin0LqO9#prAm#%HHt[4jXK.XFEH?G;""Q0O\5>;jWL;5@c6E;`61Ne?G'T+Xp"-n7pF=#N=@@ri<G^jf oU\UK05 3*>kG,/Ze-3hB==Zs@:OY\AVX=_Y.UotK-X8H;Hk'\U3+dg?Y.W$_Cb=KUbm=j(AYc\CZ%82=JWY53$D2p_qITtj/.1M+:SGC/b'RJF67h7X=gEREg2[Z[9LRM$fRZ2RL4"r!`AYn+jVpPT kPZBHSJUq?AL!fBo`\ ToH1XVtBL0(r50hV['=UCt7Fr%@&e2K^5md;r30nn^'BL?Ra^ZWf&Bo#Xa@_FFUics@m[;tt)P!43p`hR\@O:eYqdAjmY-K<D6ZP'U,:A&jRGH/a7-LA(_J$-Bbnp%Qd#WEtd1HEq@6=lLghDO-Q%CtCfn-O:W*L1T-QK^ptb':`S)`]l7o95VbO&^CR`teXGj\:PAG!p;&3$_a<:a]JCgK5qI]TE$ipgnNJPV'VY`i93SbUqEL.t$O``NT<+rBjN V$-G5Dq%mO^AtlXC5b;UpaOPgUEgp*r"QGce/3?8q>7';gQ6Fqp/rKqYn]BsMO.-UaA$)#=-b:di#ZnVaSG:)*]AF]]q3L/0n<!AD6bAM1NNR9J"WjH4-^lnbT]Jo>GU"]2E]MLh-gp4s'QhQ0;oq3WOtNCi:ZQBf,_,"3Q;T&] XFgE'rg*;?MD3`*=N-7$#%nj9sUC%XN%,h#CA71ZAk>q%mKB0mO2n.I]h-1I#+!Y)n,R:rdpBbZ[BHlAV!q2cs+@PSb""Yskj.A81 A.rqFgiB6gJpSc.V3N\Nb&jJYI<(+%QZa7dA<m2MS/'R0\Bn!8Zp^0j-hYAjA?+iLbi)*rl,.XN57Jr0FZ7j1*o,#PD":h9O=tD'REC!#CpBP&Yk]MWm`>TpLH'H:F^3FS;YdGY25_U PeoQbr<>J<+Sh(`$P=kcM"0nV\O<OZ>#%lEcGnrN_=X<pG_^5Rfk@p2UPaY%&Q4>n?XBT13k=qq).!E4BsZ2"pqrGU\;l1<Vlb',Si]XHN</7X'l=SfIUMG.RaBe,`$fsp@Ug+H,f<)3F`ge1sNk^*Z9,cAS!T1@RJes"64iq'p;T2+J<'Z59S.-6<,[q?gAL&kC`I*?:RmKgCOsIAW+M5)C8-POb8BA"-JYggeM[-QX5I<8F#!g2H:8LDTcR4b*K_!@e#!!SXX-@='t5BG7o,QJ26>r:re`W>b'.nrZL2I_&S3A4OnVW6V\E%14qSG]FQHi?&2);SqGFPZ)q%bn!O<A' [7m*@$Y@IpG-3^p6Z3lBq'<rUH%^CUir,Nt=`ikL*it]gsAn,Cgd_SBW\s?=l=%D!%^R]Y:]_FBf2\,Y?@Ssfb6FKNrT`=]lhPXN/D] 8kTXTJ0Y`WR!jSp!M"(9TK,$s%=e9QT=?rQ0:q-; 6K0#@pIIYSfO3P_&Q7-,OaT?EjZ 6i.5lY8Zt7-0?0%D'MD4\*XE9!2<6@qsp-E,VkmX<RUUnTG>s(*`5C^(*>0`8f5.D*9CFf8,C3mMpmdn=5E!X+9Kp8'HHc  [%Llr?t-,*RX59hS4_I7gl;;k;%qG4bKscD+RO#go605<^JCZM5pBcdA,oJd'75+Olr=aUe`l>[rL!36J" Boio2$`)Kl-=Mgge*+@Cssq1n:7KE(pZ,2$dY.AK[ D9qAKrjo; ZeU:Xd+q/-KAI&1Wa<VO*Xc:Y_QU:N?sXKCd]R*FW0\0L!O"k,?C9*r:$5f=oO'g]-o>UhsJA4i)R17&_1LViJ!EDpiILQn^sp*1"$s(^+^&]57\5A9G,rI_$&qFSKBff/)WBe!+6ka[k*YaKYG<0RLEA,t:_"g.Y5A5LdTWl"/_UisPLQ:O'Y8-_`.4&gHYIj!1#PfbL7M]g:=hT@M>6<i;+gpeZj&DM:n.3gP/,>%1-t,!2*nXtltI8#X#<)T.L857G*F7JjXq3:n$5q(Ad(<V=+VjV0A<<0thM?eA0a!=8rrO'D,tpXh+GbQJJR`Y&g(:"D%`V<_q%Y+s;R3d('E*]+d`T.ALoYAJ]U5nsXl#W[F+[\n>8>7J#H=4si+]U5\AAE2PP/h*!cEG?JM0:8_5aC1o1.cI,h'd8B%6BH:E<2"]rrfbOEZ+=q4t$@iU2hF1[AmRg@>t=r);Z 3+Hbd4PcHV*i@Nk_EMD3?Ct0P?d<#A:5W_!F+MG"&kK]4j]-Xd Q31oql;?O7Qa9t@bNSe6A%)hRO12E@VNcsSf407#@?#92KeEU2=b<SY4L[?2mL5*80pj.=3P)9b5/Ri0[:`lmE_LkT5]gLKa`\V> oes)XZnaDg[eh)3PG(*G>DB/:^GsR^-)WK<&BA1K*2i8gd6L"nn2 ,8Z4O5[B22Q0p"r=T .]Mr6AeC[qY?5W)<t:nIU#1d[^3i)?U[nd[psX>d,72#0:\d]T4LM-2d1)>79[4qAVkE/Z^aSB%hq7@UL)iN!Q1=(-U+2WIBqO_RU\L$rBJ(q9oH53n9kBB5lr[D1*/fie8Q?LB\M^0dIih3Z*^J?)Z11k@,sa:p59]G""sB#2Q;LX@?Y%NBt?t8?p5FZWl_S(g[!U`oD,=A^_]3?8n'FeY(>,kqnsFAN)9nE>;YpIm+#\0lD/:mU0jDZ0+Q8BD+G'oAMtV%EC>FNl6Tn,714bS2_f`X!lJK0JikF#nqYP8DSi&d0+,%+CVq+V4pOd>Se5meYchh2-f4Uksj'3R[m43qh!'/.Z^3j]B$#CJZqjWb+XLUM&-a`^0)b>g2lFt3Ml%Z$g"D(i#H]4FbD E9G+BtjS?8[1ojO:";nU1s';M]F[8DTpiNP7iaPnr(/&1t,EW!f Ige-AD?U8EUET:3YB= &,E@JT;%7^rdl"-1A-@YLU%?sXNo?r8m,A[-H/2nS6#jEPYnV%?8s[ZEKI#;th?Gg`=[r!O=(PIh,TBX(g_14V[jS*oaF=I$]1sbg[.L^U^;gh(YWfco8K*Yo_1m:Y<9XcMf`cd>4B5_)2tP$jja#:\4!Q&4b7GY`NoO5)l:-NSdZ!odhsA<0YX:T`=U,f\%TD&t:"m`> M!V92(Df#!`WYAoBl/A#NLH"XGVXhdmrjc+[)dJ*dXK,\IGLEm)lgX-\MejV&!G=Y:j-ck52qU]f:?rkh:i7<OD;/I$4a:cAfF3^[WHA5&SP$$p',\i+GN.q@!-$`L#&XN\^sT-BrlDh:PdqS!e7`WBg9t# Y6rq:T@PT>?2;1Q-l21cr[\o+JQb/1L2)t5^A(K(9BMK8ZALi4=<=tND"j]nXAgtA(i`T%!"+;A)nFJFVQU)$Mi`Z:1]_AA[aVB@XD>;h9_6WE(l2Gt>I:nBrLcj(nb@GM"7=g=S T\M 6Sqi_o/_)cOr]O:QDt@qk`:jA4tO^+:j#MPV<1kV^;k:)$;)_?,mGqe*AY8#Ago.k. #OY5g:>?g`$qSg+7\>3k:ak*qmj; gdGUiig&5U,BYiB?$QXWArV4Kj*DB,%W\1*9ES^lg^=HB>8qa4%Pol\nnS8*!r`%4Nsqr15g[*Sp[--kpIAq&^N<OKL/OB'(rOcp.)'AAAgj*FZ^flc#UCg?%BjJ+>b91"\Tp_iT^&m='FeOUT&X*ni*rD\0P%LKUetBDK3A0^^EX08qjg+O2Wrc-@U"`M"3R291mG[$7G ;>pnbijT<Q]2lJnBc@@ra"WBtAUh"+Go 6U6,<Ns]kheJses]+A>)6F(,$e?88$sX>=(P;!]7e(ht0^MgQ``%7KjDdCmVbV1SLTeWg7PE0g[:e0Q+,4VPfHg+k78Hm^0UO:Ea$>AV\hB0c\#Y3NZiA$i(hPh>PN@s<X+e4SOTp\_o?B_7C9t=LAaM>_bKW!W_El%bNg^sA<)b*p66]'!R*Q9(K4'&YfSUHY>`J$0X.Q.m'j _%.LSMKF2 hcael/5(B=mNh&#@7pb'ZLR[41U60[S2L\Fn<pn]6AZrM]ip)-?T?A7B[dk`7?e.CI-9a$ejs%(&:bs,HV$@C?.=2)X39dM5i!`;h#@hn3AO/ pmFMOpIGA2t*@>@eRM_2X+hGYM^-7[G-^h.^4m_d=(m]5DYm[g 9)kF0/=]Dog=hA`@.A!0&'kK'<dg]69t`mqqT!q]K347>#l.2,T^qBde&[Wq2F.bl@[(-?d-,l>[][34(NmM8*/l,m/fjif[+b'7gn#A!8+H)tiOIfY-VqEbFZ_*d+(Gi3n^cWGP9"I$gpO)Tn\@m848(OA=mL'MLD+#aS^eo.mA0cDK@Ug5O`ig%s&b(t*&?T"O3RE;'g33#cEE.Q>B7Dl"&`\[DF;(RL8R9@%l'e4s$(;7Q3(Wo@Dg 1?GW>,B#9f(48d;E3nkY::p%B?E]4rUIIl/S>_Jm)dkbsPX]I1iedL@/lhDr+!)O_):A4=cK\S.U:*t%V<cAeeA1*5[q>?A3hk!"i-Cgl=KA6Xo:/DJ##(3"Nm(Dh+j>tg;ORJ.t'W;1=k.C5W1sm^T?g%slq,RG37+!"TtcTI$U3UA+B+=O8'F`?mh^5=beG\9,e^69I]@(&%moD-N!12*d]<.7Glqa!*ddYLqWLO5j#$QbW0oJP7XXJCRG,iXOM9&\=[HQ"L_I)^,EpN$[A@0&VdqbX`E[`UiCN%PZABVibPN)U&/l+h_E%h'%!t^k?NKmL9?1i^nB\OT?-_+,`*X4'OH8h%\#],cmg1Mr?M3elTGrA&po0n.XNh9Fk*>h$[(Ol cr-K S,)2mYCtm$HqMh,d(3$Q-Er+=6S\YWS'2tE(6">0]g3D.9*7t O!rO1C-g:JTq5Fa/>MoASLgTj9FA%b<sBjKpDQPe8HaMe4(J70%NpK+A&_>*%I\Cj1.jgkX?3n:,#WmA;@EUAEa&bJ$?=5(D.[*4F2ReSk8pq#oOWCW-k$1ks=<o'B"1DB_32:OW)fXK+hR-BpGCdDA5iXgdIa9s.Od6n-^L$A+J,\X4;E(h$sJYXmDel0FK_.ng-;-bKZlY)a-=iG>hN q& (PUA[]iq(elgSlXbZS"I%$iOcin8,_h<*!@@N\raX+JL 0Ln1GTjgIj)d,8ZU#A\<84AiW'@s%#FZ">/ #JaU0hgBgGB0!Qc_RR&rQQh*7 UR3Z9@k-(lDP)XnsEoXt"An-;LA:*4KrF*13/-n;Q&[\U&X'&e97jkU',IY7AoppX5nK<Z3k/^J)A_I`KVGU+X%&) ALWm11a.&;#V&7LYm?]h^"?$IblT7cE'ioPMr7APS+?iaY5:SnJdN?i$;hYAooWQT-oT>Z#s2JS_na@R6ZF2m6pE+%-"$6mt.t5\/:rcnO1B%KC@ r4sr`p0'RoCQ=lfNam6;^?dLp<SJ"di_"pHp\=@P!2`)Um;t(gRmFcqVUc[FA"*9)AbM,-!Z/7Ge@Ad8e<WP=aP#SS, BfpOcB-Sf1NH# #_,DkoqZk8?ADO34bJWaG*mdBVcPt@N@0nH&!!=3:2'["U_[cA4VYtFt6tLQs?l<ibB_:_fi[Us\%@^p<AU8iI<7<YbCKP^ghShis6,Ob;I ^>.'3SX;-pZJ?b,kdd;V 1#KB8WX4`Yd?ta$5CGBdo<U=Tjd;KI?tN-6hah Jj&_FdV'K]M$] r-]3t(++pSR&Pg$f8R<`Al6=RrCR#3K 59r07'5;";`;_c6&0HR [,RSAZ3%<1G1YdP@="),VT:Yeir44h=n!-Br-"a,C,+E@WQ$*%]/Tn`?ZX)=,3#$LNQboQA<!n6%H"YP\]mB5.;NX1pe'?`\@$^BNj<tQ/8-PpUdj_Ck"=&FO8EV0 ehmnK(Hk;n:fq2;G=_Yg(Xo8sq!*VSd5qfW!q6M7@nd$5ASh^2mm/[7rC/k4]5^>1" P+tR< ^o<i@X5f)\1:5JUnj+ CCbeK%jo%Ne2bDfVj;i(;*)7J$6g)BtY9<i!_PI@HYZ^ %[kkK[hbds?-tl%f_:_lgeXGnA5*JtQ&0t<'f>q-F=0-.J7Kj6)nmq9H>5(BWBc)jG%qIn*INl`TI/np<d'%:lf__o"[jOsqiWUa"1hK+"bA7`"/*+/6%?F$n,^rGfc?.&c\iFICkTtQeBgiR?_9g/G9:N$lKMdnpil^^p==U5)5?7BRiM0l?b78K"H]c%)GF^dR<4\tM"qfhWcKHcJHPH[i7a!>hUP<4<@19*b(^]?:KTZ+P?\/GE`[QMki%nfAV?A6l+(g(t$O`\-2pXCkcU 4p]AY;-+khk6PoZ>lUDbnGJm2``G<h@p$t+39jh;9h+?^4%B=VJ<Y3<</0$i9Fn,H>7^'I(_B0^ok/>K!iIe:rE"5UGl1c-;O@Z)ctM#Lft\65Yh<@c#js.!]J"c)jQn\GBaetQ[0WIGn$P(Y6;&:*QW38ffW4DA.Ah?;#-mJ)gi1YT@!fA?7`]Cq>[87HL)rgZ0hYj\<Nm$;h7A)M#PS?$Iq!oSjVCqpaS#WIi(J5=A^c*mX)/#S=%UI-LG!pl -(!pWW2#XiqffEASLdN,(Y*]FR36OZ[EIcY<q%S\?dC-]"I.,bf+rdB)RmB%9I7q8>/q+_t$%+.E7=XB`.PGg7hs7NiZm2`p)PM'D]*e"Y]@-a/7+)DAH[KJ%1?rGgE-G^B1EKj&'CE>-?`mdXs#"\b,P3LmFqOP^d7C:d,4OT2ZpAfBt*^]h"+Q/:8e.3AeW_9;4.fDW@]!!^!tIss`*le='i?_4.F=/L'N3<Kijr1"d' AO7(I#0NIjW]*O-P(R25<&`.7+qm^kf4tpUIJ[rIn F?k"]9mF`""k)%Nn2-+#Xb**5@om2 cV$KVc((.,&N(Sq081q$cI]"U23aRXeOOa7/KcCs3;IXj)1jYF?AG1\YEL=Det;,8Hi\AmQn`c1O&acs=]*0'DMfdA&s4DUl&qt$a6G*/B?'-_]%Jc%!gW-.@be4R?k[M\ji] 8$srTOm'U!jP;W<$pXL81bm5Vfme26?m3as_4?M/l6>(B[d$aQkA%4%+SF4Jr!AHRTWkLNlr+)_H',e:6sEWnF1YqAiDGt?(5Kgo?&aP/t"ZkJgf6CJ)&ER&^44_dnjZ"> @`1L<3f,*t5Us(Pb>bKLBA[*n:H5MA ;V='WQ@[iBiPFaWcj"C\=/RnlUoJ-HCTgEt>F,l.*f92ArUma2 3m5oT4%N^BS$=$_KW/pP;bL6E1lDUPM6$F8OOcI7I?.d>*E35",<tIg/JU%C/T!sWa4:;ohiZ0,mXUjpC9@b?TJpJO>9\>4R4>^8i=/H@%_*iXi!@Rf\akh(dl+#rsRJG]H)B5"+QEC[1ci,I8f`(QY+>Ws..DmH+/BDV@9PTTA5!?nKhVgAF?['JprQQEC4^@16rgRqELddHHoSl $:X3HCrr Sgi!AOG#TNg&*?r^o*Ms@< Ooi]j28T)^C=II-tdag0=:oQn&>)E-d;+mVrWM*mH1d%m@Jk<*'F$I@KJ>.:25Yh73gOQ!2?<AM\d+TY?PA26qtE$5<8lpqreQIpk1R2EAq=?+?P@?2qkfTPq^J[cJ+S],:AU*kW6A.IY?s8sQjTo2^_7m7llAi&:rrl+M,bKVM#J%RDlo;I^MZ^Ab[HS&)'JTm]U71fW=;!e<W%9P=#/#_]NRY@C)&W%s^4t,*rFtop.4\I&$/NK96VXVJ?aFY'A$!<$f>:O?2a=/(G#)\X#_rg35abm8rBj8K&OF7$QKH0YCp[D*ROI8F^$\"e[:rFN2J;W0a"-Zqa?;(Z1CU5;OdaHIULE$`^O^m=A5t &Q'\"0U#i\(EL,j)oGOKmU^b>\Td=.mn=9\EcLH`N9&jWAcsOE2!HEkag7:LefbK;MkAA_!<e:7:N!-T?ORM)mY!*^$!)t'(_,Hr$AIgU0@3EJ-3%hrNtq]Wf`p544k*WPMq#XB[N7] V)4ej[Bip(X(gJ?=`ArpfY&OK<?(6?UlD3jR ;,-M ?a*#>h?iAWBN^Di_6R[>0n@[ FHg<_A_-&l:HNP!A_j $<r<JL[H9]&IC>"]s`Q'*7dRl'd%F\B<N*3c%8>&P.%Q?L>q)\]B+ce )qT\KRgNNHQ#o!-e"X/S=(I2bDE3)FV&4:fKY:?&9;nS!RALA>q^\FBY'-4[>lQ,?]#3/8F3.8;J/FG>$0,mJ3dJ&hi$,n]iE5P?Il*"mr3FQ Po-=<)id_<r5!A@AgD3NF$+sHqgUoHj55Gfr2rGhVSA\Q9[P)2f]911O_5)*cYcY\KNM]V_YACfZ1$!tRADrAWc>X)e/ZF!)qCA:#0<M]`/ h33#GTP%#3X4l@jE\SX>Hlh9)R0L$P1O3s(O5XjCK +$QRLM&Lf#\D[tJhQ0g2%.Et.1EhW-I$@8PA7ElQ<D`F]FTQ^0lC^&)_qn$R2tCd_-pY#7B#0d-h?2mB*WV ?pD%.">FTX4 @Z+$[0ER'AX.T0A&m[J%F=lqa,sP]_2,KG6J;AN,EpcbjNpAM`HP,F2W%@,X(/9s7A1.haE4Z#FV(Ut ;DHrtNPr;p_V(@9<`YlTF2\`U9Q_82c#!(]T;r0&= kat71d";K$:+LnaWq))=ON$KV:rIda\(@Anf_Z/I:>&-k:i$jn-^O4!j#NfEsGh[#"Vq%5 qn3s3+)b(^.Xd07Qd$dL61bR(%V$D!s<dqo86T"f66 c'q^/lJ[1/"o:$pLILA*rA$G9R'#gY[OJB=(3\HJlA1hMdPS-[(h!9)dbDp/MOl,_:ebkl+V@NbsX\D%6-_dp3-Fn+k-,P+SG "kA-h3C;<Z\/ae2k1Rm1?g/$NDZ`Of/3(V].(.^j6V>Acrh"JG'FK&r,d%[thtZ1Q&MgV 5Aa2n6jV+Mp"?& "i8h+dmKbo@<'k.<mG16:-qL]OlOU7ICRT)""d$TBd*&4jfgFUV";gGKRK,dNB_GL-JneUoW`*#EpEVi5."M\2O_<OLAMV@9+C&VDX0Yh!*niX1@0Sfdf4;oIL<HYP#!#"?$mn4P>trdH3P('@$-kJJrI7^.*$"Xl'Z/C#eQ_7@8dEmsQ\L<(8lqhf8OlRSni=T$@'FgGqBD=Xo"m^O8bJANBdn2$78Kd)Tmn.Gm.]f'S4-XCO >b i@K#>bL!a gme-G(e%-kbhB*SGXF(&bkF4M5[B 2ksLC[]j=BIm_C^n5oMk7>mXr><^?YRqJ-88)nH.lYeBA(TlT.Xsf%bM&i[iAqhD2nk#JkbTS.Bm tnE:?h, HONo<Z.<h2K^2a)Q>E?+(+t'q29[5Gg7D*0"EgODHeaD'[O#SDbpNbO%h#Z6&7*0AW3*9%gZMk8C,_#4R*V5Z!5Aa``/PAcpnIc7)q3NakD44nF6.r\P(rB<cbE0XDEKF=G;ok@o@'+]4q +-[s%"?!t9p`A(/YO'["]$NZ9R6kOZZ0r>!`cQ#$>PE6rn,Q'jq2Z$.t@clQH/q)K@IjIV?Aa%+.qQ^o`6+`NT-Ac./4;LQ!"HJ&@)]4kS-dVEthjcMWCM[?Uj2l5`!(la4LYpAt120S[F,$+i]MY0q[j!bOcpABT<*A"Ge#%>>">l>J!E=#_#pd73b\J&81(+-=b0;ofqW#DAeENO26b=Bte<=Q:LbC/W4L'NOJi*]kC(<1A<.ne;_k2K'(KA!CN5IYW'_f>XmZ3J5E+YHf><U.Ie0TJ'A'9gpT\k79EXXKF8b0ZVM CHlQ%oK2^ZtaOQUMLc&hKAA8A3']1)ZTEOZ<o=W$t1q14YPAlP7>66pe(+W%MeTFtGO2C^kjd;c[td7:f"JErc^WWW9P<GpOJ+8?4&i,+SfH/_G4gqie$fM06`*M;nVL`BQOO=mGet9)$`o/]'eRnbqEgs+ee;b'JNQ1'rRh9F]?,`.?M]s7TbZ.-7X=gI^Jq[V;aDnAa+XZS%+X?sXr BK,.G8`7d<p28WBnU2:ph>8X"EGNb`\P!3@kc`]ThN AYGM_6jlqXqj8RaH`BpnJFO2G;^ _A$Q0Ol#6 m4hSdOQJMfg_"j>o5Z$7gnSf%i:A=s5P`M/6*>oZ72@;0\\O\NI!bo<H>0IG`/1l0FW/<@lnX6#\BVl'nb\s.l4/KP60orniFN!MnRO^2`l'KZHHne*0:lA(Ha<*Lq3,M'>&fo5';oqXZl.tbHU-`O(sJrsD\3KA^,LhM!:=YmKqDRCN^&^:L_#H2SUS+n0[(\SE?qGOYE\CV[7UEIk<i6-*F` :&3X4r!O5&F1#Lb(A ,iOq,bM;= KZm*4\8A+^g,KTNo7LM!.<5FW/IbH/+%m'bq;5@GB""IAA97Jt_VT/K;9EA^t4rt[;0^.88>jR)bPsA=$%P:0jo%B67\S>F'D*Y(onLJi''3pJpDW^$Pd4\e='d[lCfj5m"ncOQ;FIGS+"*#kB#*.@ tW\Z&!rZ/116]lhp23o,2?=qpc"]3#8>$/QXtslaYR2e^A%NGOS6?^h"1-9AS%H[/tUH9NF)0cKjLAl?WT85G:_\%28?)cM#J)@i0ajWF8h#f!%9d68&O2;LHS`G5&8hUra(Edco^\Af_fNcgaoXaLH)b Y9DI[]_8B`=F*8"H&*)hD;]5O<XF'lZRd:;TKHWGK<QEmb fq?t;J#0M32#G:5/%Eq1hD97-%5JN>!DI?]VPR+`VE/.L[QFc._d!kJD;5.;pG^`7\?O(tsh$nn62%X>5h2j B1*\can[?.t5>:OElXG]o]BE2ni.m4GkL,#AM5(=5h'o5P9n sZJ))QU/]T!3ngkVGW2:Y\\=A2A]VQ'$-g]taXA8jY6@8c"He4j4ai [b*5G^>bRXBCo!^f!8c54&.I R!a`b C(<=.`Lhssq:nHF4m8`5BU>Wf(Fq/AnO:BgHbAXd4S@TKWFscj3@(8DA fCt3Ap7Af=]JYGcIC$k[#,%/jE+X8 f7<$!kZpZ'sT53W@@oTiKOi*9Rsr1Y-JI;>BOIqY]S34A:*s-hhkQaL3UCsK7eGVcodIqGB<O*0@*(fgmF@A<)Z2fDN,t82a7aMX ^,o//oZd$Z&ZW9A;r^5`ZVRbd:#t[G@>`P6\(M$9>q$OYtD-_`,lF84SFOAWdEcsW8p1fn6\UUoi(3iXNt[M-7'ZDh*ij_rhO3dr_V*E/3[iGGl:G%9 DdO%+[L):QVF%E9oo6_+j_o=@hg9c;nGt;7pWCA5OSEb)beNGrl7Go*:Ab9/La (Vc,CHTp -ed\QeI-L%^$'Vp]YT"Ce[HsM3"7?T#e,8Gj". e06qYPms`_'mp:AIgealhh1Z7$o5sD[o+^XjmC5-kaX]kGZC,0Lo3S!dg56eJ$*G#U+k=. <3Y149a=1@ _Q8R!DPMU^/Z-WKoDM0@!E5@Ja+&)`I]-H$3-@*_tMdI7;A!Do'78BOZ#9RXOGj0Hhq[#^m4&75kF tr&mo6OD,#G (Db4"\e0hJfAj!I#aecb4UEfl>.a9tA'T&O5X]j]I=ia3HB0158N'.%h"6j6Ip/g,nke$",.('-%UQYjCQ'etA(]lGP!Cr0aFO1GBX\F2;Y<n_-XTO:(bsl$bs2]eT5QZ0k3:cQ0HF.0c.mG0-$L4B6[SQDGaO0n$ed$_9c_"7%E#qms2S3=%BP+AI3rA=Ugt!&%=BlB!Q8rl4(p.W;^ABkk.(+%3Bf!AF_P L1iF<&gFYhbO-0H@Kt$S8KQs(YLVFF]Dpe%ljBO'#oY%Lt<M(0m??4F99Ekc"s.tc=OtYXP"Y+0e381+5=h=e9QG,J(QV2?1`h/>n?j ?DK"]kVYLb%\1XZab0n:7\mt1sHdf.pUOS_)#B+lat?3L:.T."\JbMJ,EPN^2 6d+31P,TJ:\TMRa6)*]lT6iG=B/W9l1)MmQP+oBH<O"KFZeR,sK"gFfCD9&Ae_S>&&"Qcq4Ak+f$jphpbGUc\f[UZ@RXh7[G?O0eGJ AC=[ot6X5ls!ST!+^:`01dKna?8=_V0s#Lro4'bgM52UR1)!ACO4Vf>4'R:r=K-=6Y^j"RFjjL_R ij?@tpa(EQ%n5.B&bCY]];Qr4P;LHZSm2b)M?:0rb!f/C457tRmAq1Sg\=GtkG;saf9Ag[AS*qF:FYp7$rm;;ksPf3Re9egW>eLT_V4L(a<\LAGjmkD1<FX&5DEpmtU59b]1M32#J(:fCoWI&!AfUgghsnTb2m_.G.C68?*,PF#cd#^hO)nA@Wj>(so:)mCI\4QYXoXN9d_8R>+@& tGbj*f,FC>+F`'\Ep`J1Wcj*3N8#nm;c1=qIi<N<!(`%AsA)Y'-NAOhgnpKXB W-3d'RB?\/T?B8Oe :73r&Ac.h g!s8f!7H@)KAN'.@cs01Ac;r#,;l.%t6s@gW!&miGDTWS;OA3GF67]!7!4,;cpZN("8(`[GR*GQTOC(_)tr=j)Adh-W%\'4\LMU\e(W&5$4c'IM<- MUj\;1O=iHcA\9D:Xtd9^a#Ag:[m`deAaHbQ=QdLhAY;tK/J&LW Ld8W+GST@TGhh9c;0,&ks $TObV`+osdDbg_c<>9*#HMbtdk<A*<mEeoV=rb2Q#PtA,ANTN,=:#= Mo5M\;Eq:9lHi>J!q4Q+k?VIQ(NW&nU]DEA&8pMTVq@6Orq;NQ[h6q=)?AEoHTEc<DsXBMqqARD&9O!9EY<7qST[bGk]F@A0&-Z*KWTI4ip@cRr.SW/)A8/'3=K^ZU:EJ1q@.O+p_JCQ+7s\eYra8^CCFs5Ebd+Jas^Ga0H*S"X.:2@XT)8jHT2qP5Q>QN?DYD%F8N=7F75UsA=^DL(* Y:odI+^'3"c`OK.;G`c[8;?c2[9bUmA37!/EEfNIQB*A"1#<sQJ*[a0GBV=FH9VN'tD5?>Y"3_._Y/'Ug&C_`&5V'')6[t.4n\<b+X-a[rH8Ci^:E5a3b XkAjD]&HWWVS-8/.pNM/n+-AMj6=1P>+>[qn #=A66c3'"a?_'R\QjPd\-f?c 1ga%M`^3;c+4RUe+8J]Qc^c,Ea6qR:1N_@#i+BgPD^QC4$@[7'<8Xi8^F\gEH7_,mHW?ef.$QcN6:C/?-W:]`RDCKN`d8GV@@R*k=Eh Pj1@94h%n4D#m<QdD?a5a@ ,Ws#A8G\6AAY4.Asj(l/\<b<NaQ[%F-/%InEjS6E]gVdTLjBEAS:mb?H"$l1XTJ<(d1?L&64B[RAA`>A8Rt0O<(l7;R4(sg)EZH?!/(iS@WX`.fro5+$Bg07]NU^+S7&3Jik'IOK_ZfeGma;rK#$ZF-iPa5+d2LMWJR504_EW'/!&[&so,'GJ]NJLb2kEp'S87"_VCmX<USO8M4!6AQj>sKc8&pDg399c8Zcqo+(^9VV\-4QE'79ir/;2eI#HTb3i8nXX9po&?=i+75Cg$d8QYB"qAB0RUGUdZjq)EC)99>ednIT+rG2P5>/"l<$^#62@X.OP0<\l&t<i/aQAn2-K*bJ"JP1SB\44d,77@<FL85Nt_B8$\B#DQEni@^c_nX^jGZL]4W*WHcacrkEsZ3<0jWE9!JWMA:@4/B+sE_Mj O>K2fqSko[-G5+WXG/4i,lt3m7j*gp-Fqg,2;DQAA17Qs\*:UZgH@MD$7.Yg+jAnA,_E$[ZrA(SbGGRn$P[ Pn[$Ak]Kf1tm&e"7\3ZgYWh+Dp4r<`'ha;]^34 ^PTd8$Fd[_r#L*tL2S(O/TG34Te\7Kh%WSk`CocYt@2tI<ZU^"0 [J`;l!g;B9"jAtnG6gqjSh89#2Y^!DA8(lgp+EboS8!Q%)UHU)BW+!XniJb_gjI7jZnqj>&0YIVoa@#:@iq#5"gL79n$[Y7Esp?b-3Z+QjrVJ1i<LG]*UenM8`='sdi9B!)+^Zkbb,(R.+!H31&=XQ[/X[)oF2?GrLV\hl!`?Ack@P0fp=kL3o[g]__F-]<8Mp(2'f&YpA#9S3\ibKX"9W.,&RM@'k53k/I[M;?T1<^2E\K4tkf.:LE=*,0>B&m5p[nZO&j\7BHo@k(,;`>b@A]b)Y:*C*%g/ab=IG/^&W`7eG?"X>\"D':(p2`D>QANkSke_V6MeJ3X4&gB,fes+mGORj3NApg34f0\+L:%JPm\PA=;Gbh^D\;[RM9rV/!pB$qNAA9sno2"bCM\QRA.MZc4&Q`?^OVQ 9'DLP-S,'U3la.pjBK1\g5Z)i>)S33M& T52iAlVo0`A76jFEimi&aafI7>pOU8]_SroKVeW. ,lM]!(:Zf1=V2%@/"ZPF:XF8TXDtAC'&rc<GitAK!RO@EM33MoBTP3G%7U9Mab@8.ZF@1/9(&S,!8q1at=5*C2&57I?phjEH scF`K/(=2raBP`AK,!0%BlY1d0L$W)+mc+6,OtL?(t&qr)pLS9b]9ECFm!KZS(V*oJo:g8_X-rhI[p.A$OT$#D]\PC6G<44 +5<rdIKBI(.d_M8/`;3,m0.!V*,q+WqU8pBL,>%9T':;oLIa<&P(D$MF8KDsKMAGig]UmRaIbOn<YbsU=Di9XooN02J'B#YW/BU[J9%WD]X#8R"a#%Ffon0$9<a)QBid@:t0_Pd.EON7:i"'/%pEf#AKsrZa"F[De,F[#fSZacHt3BZj]))[jm%coClL*)lTOGrD)@>P?9.Yid]s6::3`e4[H*l0Eg)\At:J#o38<4!>Jb2/QQN<H2`Fgh65@1n<E5=?[e(P4"qIhU)C!JS$a(1qN9q2TYBkh(a2B[)15mFb)Y#dN^B[.^tZ(+XIBiCqOaf"k^hfCdt*[%O$HU+9*l+mG@a]TDBHWVZIb.HE%:KCUkgf;0,#WH+-E2ljPK85OPnd!<25`AK?5[p>E*^9An:I%-bm,)Ar'i?0,So/k-G)S_(M)sh></2S(%ra7cA!&,Y6_n-N:56nsW#Hq5V[9*BXWGM2qr3QR;W>TqJH:_2T9n^P\A>g)[Q:`L 9X4[k.#X424]_oHPg.faGtb,"!s8\ PqGBae+V9R42d9qQ$#GC?>fTUd8KG!VIAiV$MWr$aMAf>,e<2jfgkB=i@\;CD$Oro^2B=FN M^o+ n8@07?E!`ebB^@BWN1?IR];O_f(sPdLnd]6n;5"7?n>2I[N2L?69OH.>.iZq6&`;^iTaCK !?Ai@S.1%n(A2\$;/fJ!6P0[YL8XT0@:Q:i]C*9E[-S,t=Jqchq:UW[AKFq%A6I1R(F0,'DT3UZe5PbG*?FHaRoBd[MNja0sN@4@X2_T_Sd.^> 8Z]A(dD>(5K54HM5@h"CK:`F/4='/0+bgQKc >Vq]Ff.HK*Xm`Lg+`L7mk%1"32so5Nq2j6W8d%.QnNZP`t5eV, U3Jln$]5^5]^O4lT8@SgbpS"F)7'p?SYAjBSR Q`opb$BV`:"3bt>WM%_CT'(Ap3P>i_ C$rbf47bdK760,a3\&EdC_]d?:\Na$)_5XF;B:_ENnF&Ltd"XEF[&0JfAsID)k!?*21!rI&:Cp?/tkUh>:&:C6KAFqCRQe3h;nNtD$kAqj>4kJ#s@L'YCp-mRRZ[R^p^Z,BUq=6=`9+!)&5AoJEg*rWK]nnb@)'"/S)CsYO-<Aj-pAC+LR>X@5?dq.MF[PWEU5pt5F[]W[M#rZ\Isa%#;KeQ=4t[r%K)mh6b1o04L]N8jlEB-*F8gn5o$TcJ>T#%;1Q',oiXOQIi0Z_lm,Dh]&0e6+I3Qeb9O[YEX)VB*K\_1_t'N;nNc*$I_7'0l-_if0pYIRimXPt?ZGZIs<\>Vl4t]F!X4E&(rEEV<I'1!+9: S$Mg:/*p^'SN,W4_'-mm+F9b[pEa$Di1&jU/,n&I:H`\6"=!Fit"f+W^Z%s:b3-2D5,]aeD5%[a.=F50nZb^Rn$>o6Wp[Ei^=+r*q)(lWCFrUk 40p(TP#ATs//KMZLGDmD3G9nF]A>_E+*bfHq<nB]hO$KUAYS6%B-I:_]CN1PPN );>A.A_-X')92n<S]d^QJk4Wp7 0?YWF%382[T5>DI?cj^nTCXE+J]Jo\"$=Q`l-,.blk58Q3N<$X?RQdA5B6=B8pEDR6:KH,ppA=jJa+K@n6^bn$'$O/)Y>J?c$$I-d,#3j^]j80Wt41MWs\?WJE,;COD?4ms,oD.sIRQ9a\!i8t961pg^r4kF)6VXh%&Hl9b)q6K;`hc#H8^n2 )AkTmRhAMi3I"RWbVkaFcN=+%5FYH[*>XUn0/b8XsF!+f^5/0ZfClKWRFbo)M5tjDPecUD2m=''7eSmM/[mLm!r[f?JmZcrkg!Lh[1dUfN?dA@)F.J-9M)3$.Y20n8Zg`3!(UGd<GFWZ,OLk3V2A1'We#bKF&(.#]1H@&LS8c/[_#&paml4E7bisULq`>(MW(!#5ZTk2.M"2cSaNAOAUktY' nW2%P$'I>U\FeZ [N"$%gr1Uh=[6AGTHBICP3:\*l#_Y0k"Z+i)W#8i_:O a9$IBpl>:i(VYHQb=`r"6 _fW:gmJ[^6*`E9<gJ-2_6B#Zp_p.DK]LC%0K3col2g3_FWKZ9/R ge&+EMk </5p>21NAIAZO^#7'9Vb?oI&.\S7c%#^#opo9IXehk=\0$T0,G%e9#82k=g$S&G%6N#^S@rDA!+rrf1"bRe%AL (FOT^tDX"( `1?C:Ip4sIW(W%[>5Jh\UWaBn>X<mJt+@8EgG_lIbM+)O@NoiR)FB\fX=XC3_G FPq3:ECsU# 9on?r'd59J'^/>."Kn[=A.c7#a"C)<:kfN" 9JLLN_S@aRHtdj<[DVF"f*9?)do<>pD;1kP>]0Vi..`S`,5.>9fq^pL]A0`k3Vs6,]857=RYbq@!UHV7#9\,F6f[O8Rh5,X8b!*h[.&6o?BmZ#9/Z)=[Ff"EK@J`p.i7?7s%BA+n6$I\-VL0agqa7[42#t)+a<lkcQ,']@$RIUdcnnW%"l1oU3<4gNki&^=).I@U@3[aWLTn`'QA<_4$3VV\?9Za5kO_/U_>`/-F(Rs,.6$+6As/EQAETU`7_`*NQJaYlW38t<[FGQ,\S2*q!7mZ]E3a2[gBgS.p=<s2JStK"Aro<,?UZqPR$-1EOp_b.,kgN9:0qI$RfC)f]rJr]lPr`WZ,/IZYSCM,gTQIJHE8GX+[UUMLf_@FA=HEQ5W&>`(O20#3ZfCMTjW);J;1_>6$@ZdU &m[HUg>Q<tgQ_!)k_QE`[%.ZUB9]k>^^db"&rlbj?KDiifhg/ZZ_APqgXga]<I?-DH!WC33EhBEm:UqNh_a 9 3YZR`nlt3FRqXKC@5e-T8E)NmP/H)gSL%bdT^Ar6Wdlqbm,1;"d]hL]>(?jl%0\"OeGm?l*& ",ptA&]q;N[%KIrr&p_YC/BpJt>aANfsB" <=<80jfO3+pc`%iQ[G?YO6eP+]>d?nq"5,^/b+ZacXQa#(/!&"bCEbSqpD'3WPdblq$F-AJi5)2(B3>5`jF[9LDU@hh6=q_?L`R9H3&:TSj,hfhNA*J&%d2[eWol4`ZW^)Y0^!M8UM)Fcq<;610>oIQ6/7GKALd+o.:$:3kqk)Mot^Ne0654ciIqn%h+O@\$V9D+tt.B pB!1fVL;MUGE`s;(<\*ZK3'.?WPO;jH9K[/G&>P$8Z#-&E_i1Q(^(>e+;[-g0PD&.AIlFo?\RFs!T*Z?#W<d2h]oN@:2`R>7aB/.+4oOgQd@].*bW:=T.qJ3\j#%5^!N^a `[!tV*dojYTeUId.kI>%?8Q&5Gp#IL'^Tsct/5E\imT>p*oJL KO#5Dr>1.1mRS2eKJ_rZ2_cS+c>rs;kE3a<[K3[T*-%R^`@*W1e<i?XfV#qp'#7 <5n1(M8Fhh>L9&_&l#=3NW`+Y^]KVcg]ZqYG,l2Z,j.7,[02J^J]!oeoG-5:U23"5Od,da430\ZNXIHd.rJ*;jUt9d>(t*L^GPkX]ce Ya#NC7c#MGa)!7cN)j5LF%&X0?D@Jn%*/A"NAV$G#mI-+mj)#/^ecY`^!WKfRk[)Krjj1ARmUip]/P#qG4I9H!<]*fVBJ)k*dr3,gI*\'M_bb4C8`ip<-G_<?3qSr00rZ`%W`fA*7Nqg6m`". t] g2mdFdW]WAc9)4=#U/P>ngYq,YmqEj,$oYIi\#NF(>ZsEZ"JWrfdhTGDVP6tSH?`Z";]:gMo_QQYXA7I4Qg?Z#tE>?_t)*t](SE;r;J8cS3EP7.@3p'VJW<A)kt` t5"(Kq(5$9cM9(?7cZIbID&b=F%"\"=?E5&%5$i)AKY1&3IY3cQ@:\!:'BsHm)f`=W]7A(F+^glU afRa5_Q<KWr153#1Q[&B9g`J;O'7"?MJd-7]`)M/8$QBh\;e237ma/4!D9aN:FJL;SKAWAkDIt2IN!5'TFKVm?C_SA="(>gD(9.).N'LTH5eA(sfaM8)K'8QK2Y8*pNK9KN!%"6'@ho>PL,fHsD%eim[CThlG&SH>eTd-BUo]MC?D=gptat:;":Q(X;YG*5rU7Z<K*kAUA=/oY/qE%?ft`LdHnI-j// =(aqk\[K^ohBsC`$%LEs==T$M `F\]U[5WQVMA3oGd[p8l]AJ`m?-IoSR&JU\c\!&?,##nrQB:>HN&[9[!)eRGqnV#8A44nOnh(0Q#+G))c-nQl1Wm/]t4bfpO&A(p)H_8@!A_!rP+0#(8NNa\53QCFI<tk+AQG-.=cJ-#5RcTP>!Irc\#NmmKX;AX:haa'Xl)haG'N+(A@hWfd'QR(Xql,mX!#OA.-?k&Zl)HK5Lmf6&Kp!!d<Y\8W<][Q 2.K&b(7`4nmjl5ELj#PiZja&G-`!fXQ2q<VKb97D44;7i1bTe^JcPJ#;Yn[E>S[fh:rabYhCSl#c#B'F4ZZ-UZ\$5XJDf_X74K]nr>T+"jem!+*`s[Pq'$C$oc'/r=h,'6!O*=3.1m3.SPF4D]jS(X0#&@ZCo)[GG_?`oddGD 7s/7[bL2 fN#KQ:7i:B5(2q$;s=n#^1"c$,5G^6$`V!H?!I%/M.t5n;;?%rph(p0YP/[heg5E,:o3toP@=.OPOPUSnd%RH=7k[O&Pl6c&kYdi^%Yj?<BgZIA@34tffA;lIZ"1(r#Jo4`KG<nIp#A@^/9j)c7(?:@BOJNeI!&E=>"FEl-A>?0isP3KJ*=k$--I5Rr:EOJWo>1bA:n#($pV_7VoIs)GR2[p>C2C\p5A0X]o J?QjNBb$qIeSQL=@62^#QhfA*aYA%f'$XRl5l9gh_G,LRb7a7O1Zg_;r&A$tA\PK&B8sASCYObeOA=(FACKH3!`[DHfpf1\JQnEb_aOk@UbO%?'3-WfSV?b)DIcVD^I;eAU#9`ZH(rp!i.rf0tKF[aO9<,A8#or;^g50XfIG5;t:3<)i"gG9)7CQ5;7MLf>)nr9EY@kSD!Uis*c0/^Y[aIYBlKoX#sQTP4p2+]$ZA1;ZmF%b.aUTSi<"*+@A?G.\6d:EX2%=1PfD'oeF!UtZ^KJ"3JnSh]"s^8M4* ARL^S+oi.Z5-$j`6]%?H"gr;YNAr)-rNT!E6MgGkVN>8`9e#$ c#/`"FR02ME,e2)ber_C8^$#USH:EaV )pi;h=oT aW";R&&9B Q]P@K:!1(A&"G?]L4_c-j3lFVCCqRJo*<$3$!R56l<^*C;)1GBl.">LC2QnRi"AU.,%2o;E9>F.TW4rCOfo/.iH_\Fk'T9b3bR=T06("Y=C>A%7JNc(`.G":j!GCto[<hfC]9E!NOA@<GN1\fWZb[-o5W#!>aZnDR2LTk1C/,A$%Qna7/lFEjJ-dHFf6c3`2OQkYBi"9m"YZf+<l"qPc8%X0=#8ZIOkEN_EA-t\Z$)3bCh,A;eqX%i&0[iWm$n6Gpi&?]XPXZrMl14%H3+R"i#4Jea]3_dQ3 B1jsIVR(AR"r_r*T%l.b?%++-G4O5B%oGDg6 T/Vij GYeR,'#q3OgANWVsVdXRo'2Vqq!"(T3U>,Y%.&o*;H<*=r0- UT^ gp^c8J,5cgsUKleXTH^l?kDPC1 =*l,qpe@n>0enhaI!4A?OR6jb.ja:/ qrO(T;_9iTMME!F/]rOD0`%V.]BpcQfk]Po:)0kN;)d%.W>GCY/gjb,#Ce7'mCOW2FKb3Ea4ZJei%:a@^T`p>D9Q(;I?U;F7(Q!eV.$(O>l_q#olXJ!=B3m_N;0QB4^<nBB%N']-0si5Y[<U5:nKi8/BmThY,q/2!FE3hAA&_F^'101\sILD*ogY]CoKW]N*8j52&!F9'QEg@h[ d^\r*(rOm%+];!#)Y996'*PW3tq[A.:%=r705f?6a(Uj<prOQtaSNINUIK,7(;nXIp9c$g@(ID,N9THl6A[Sf!QXI6nF2A"ol3?5Z-X-8j/3gcm<mbPr3Q0Y&_R;j`XdNtL1Fj2l5mlcS6rf(IV=/dS?\\(fgoEfL&(9Y#*<F $K>pjrmRp-4.#=#)Xm382Yi&8jA[-a!(S2Mi6VZ+>Q lFe ^h6P)_N+0nsbb9Yk7R+FI(WZE8\nN-.eT;105'(^QCe<b_"eSJ^es-BDt@O!S"QR#o"NPm^&nM<: SpI.=ksN300qBAUQCV!Yqbcs8AJ%C\(dN\YEI8,h0OX` ,#:T#flVIA';T.I+cCrOb7IN8;LHLkH`)ri:t7WR>_E$J4e\/8ThAI:CU`R'&>HPL/pt(n"Qd\A.5G3r_>th%lS_^sk6H].jfmTNpsJ=",8$"TStbUY#&8Gc-q,Xh<gse$deq<a]F6FMYG2g6W`_oD9-%Ne;0VnpJaM\f-/obn`34jB1&Rd5sbl`6<:D[.A0[DStLA=[F9.;+ 7,48i!56#br/X'eOE3^)cJp$0#qWI36pjUq\Rm+Lq,P_H*[4Fg7lb_(8VYlaIn!Sf$/VBg(WFALPf=#,PpMT3< i2af/k]$=%[/W1#(dh+/Oj'PQjAU!4H*:KO1_Z\?;QL;'N4 "k-Ee>4]h.p4YZZ@>hm8^_tZ[@AK_h$Xn>47//PMT@Y!EO=m49=?CO_;(2+nS`3AgXf&][c_"$N&BUpnj+SFhTQ1a<dhW Y_NaA+CH ZWoE%e-%'3Vl!rZ"#_g>CXsZt&WFpNl66A&2V-Qt(&&""=IfljF@"'&]Peg$ik5L%TKo)_^7m=H37bb2(pOX-APf_IlRmiAE#c8*Z4MI.bJ1:``C@pSH):W8Cdo<o\co+>SE#mbo9G5c5"b!VC9IZ\6GqgGtAAlS#S#U6"kE@+$`P3YC$n>J52S5t5P\*Vt=Woj.->>WOg`d8:iidhR\F`Th[l?;m<,OAag'DY_DmXi-asq^VA6RW=lpHj*"3;J_dN:(AZ>CB<a*WrK"bUc$=EE@^/7k+o+L+.'jffPTD4B5e"^+Nb#tr:\Uj?a4(S&?O=l/lK$`%Hq`7cNh*7Pf;g]5.78]P_MN`PfVk'KWUL%HSgp@(Z^@#;nlJMXpSD56I^c0'V!+Mdi,pmK]L'D[orM<s,bTB.aEia>gWC&2tqrf]/*jl%:Y&MtK@?>\Saf.>:cmp(-\n9K>#5DCA$!_+k4kJN'Th]3Qq!dU2Wd!=QlT&n@^eBd#$`/rgc1`IYFjP1KAh7!RG2-%I\t"ECc`n6t5`sCgjHk/rMA5])U\7hMGh<(UAc0RP1M*VaqH9A;2XY.s^s8-KeAH#ipk+5@U*DF4`#+h"*,>3`6[cWB?cGR-TehldI1#E^88TCKd\m7&IQ=?!Tb;DM_$RI/&8;Sc%m: V4o;3[48$>5d0R\Wem;+US0E)+`G<2=]Zb*L$`W0[^dN^N1jQAWEcA$)L1sM 4YIaGB>9<s6n'rUAE=kM?OEof]"ng9Dt7m-b9LbR;Wj*a=^-Z]Z2OB\Uq)qS0%AUeJ,(?aK6i1$"RdFh61VO5*ZX/0,Js(jo'&ITRgP7nl/6>,e+4m4C1_[g5[s-S_5#L2f-ZkCFE@J"l?s1(&*":A-X'Ki@B*Z?AFdY5jlk5OaT,I^aTQd^V]iH2P9GY":ph=P4oLi-)3P&[LS3"cA.85a Vfbl5VA`#[(UDKh[fn8+MkV&B?]`6D3o#JZLa9Sfh0kp%Z6>$MMN.!ARk$Q3og AXd"CNCM)&)669T76A'*lB&A".N#Y0gsJ A3sc #/cL"&a[dC;S9$.C8R\[Tg`Rk)nmt @AD6>sk5+6-8V=]F"Y5`Z-^L>(2Q0_ pcig6GKqho0/5dZG>6.U__ S6,!L) sp8eYZ;<Dd#SYY\mmYt1BHO7-B=q>F`K7GK-]ViPKqkIrhM.AT%3H%eH 'mqa<lgTX Xii$IC"#_@t*KGro(4j;9"V.`tPX%3"#gt/73ta]@>4bh>\.3P)Cis(/;W<%LVXeQlQ5lO'31IB_&Ue0`<AdoC&s<bhdA4$^;-4WD8.=RCBq%OQ%p[d64UT^^9`9.ZYg Ak.\8oR6Sba!rLVn3'C@/AHHE90#GsphJ9Prh$8.%21jTjhN&l\#8G[!.3C4 ]d4J^PTVJMm4bpl*3PCkskAktVO1(8&!h>#KA;A*1oGdKf268<lLEFP"9K<!CA\qo 50!FH[;MPjtiG^N>licsVtcpU,5<#jnr*O`Yl_fTA<gX+?SqA\1<^"&9mb;q?$fn/tS#@<9nPp#b3;=]OGb=Set9!&A/,e1?C7&XNr4Od,OAV_;mRNEAgcjr(00X]p*n19:@inqWO3Z:3Oa#_+l0I@`J$br@?6E^]m'!$Fm^BF=CDlnc>aMrlPDU ;d JH4g1]Hqan Y*"qWsiA[0&h+6EY .D]4&<d$ t5-T:-@/Y6!A]7;@_#k-%]A`VO`h1gDR A!i>e#eCRCSsC8Yg?gRP9rhdg:@g.H!X2Ab RNKBsQ=>mde.t3)7&m#DbLG]qkm1Gr_tAc["br-7-,3#r];%W$ 3m>>K%JgT;,!@t`IH?]R9]CEq*k)At7Q9<@nKbX[8m!:OB)BWP#<_AAO89sON[g=LMBk3](F]A8\RYt[VmMs#,iQ[)eC6JA8r""")gW?Jq#5!AJf7nAa)R,3e2Q?cA`nFp"M^)kO[))qS6lq#%<8%%,N7A`#Lk= >kAaE``=S,r"EQN\3JMMR)bF/8!Wf.O%A'MqIg>EC$s`6%: >3]pHd[`hZ ,,j#dH1>OWPkL6'^HNb).YhY16B5&s:!k_,"&%A:!ZRpNfHVTO3q<\QNAt](F%K,B03a,MYh`k<ba]7R.,pOCE-_j.Y].?Sg%L#m_q3*(AC\rU$!1:CoYgAcF96VFGlK$:Vpn^mC0'Fj\/'HY6-@,8Z[c=p$dsqd6l2\Rj;3cbM$5][jhgrTQ,e90d_)l"EA[`5r1P#AXjeanD\%\&he1e!J&iii?Eh8'FoZ6[djVAi&P+c_4RZN"'SoH6&kb>^jreYh&?NCqF_H8\99 tWpjJJZQVqS?p.!-:NrIC7*[7g`dqa.M[W6i<c,VaV)Q 8'[>#8`I80ie6GGY+FWfAp6Oep^\=#=B#.rA8:X/=d` rP)t43i,s^bKkPBS4G?_Z]Vhb=HA)+7E0M ^V,&^`c'M&kS(r6b#ft(F*@rYg5Zb%4.gih[+,r '_V)d07/8(d7Algo)GEhW>.g#jhJ\`C\Z,Hn7k(41`o:. `9 pHBRGA0q/%<_+43<Q*U?Dj$:tMX)Y3SJ-U^\X- R[^_0H2hIR/T;-%@2PtM]c\??A1D^F&#`H'&*00MjMX>_2)lB9gjFH+OLjVa&:GrqR"$_'m0/GYKA`FPio<Z-#+1qf1/2YLSUW.:L<+ti7k^j(tVY131(Yf !Vm.&^rl"=OR-`hA-jlogkW]M.k?U<d_I@IXeR[c>D-2KlH`fk"Zh,@sOG30,e]#k\4a)47S:%)lhNd2-Olmb,r)hWDW^pq6t3](2('jj8V0oDRe)-r/[mfAHol)'>"R/5U"5;5lW>1RDc5TB7`gR<(%jmgVCl+.dLpmsb-t  I^&@.lA(99NA=eL'j[ZS5iQ7(27&-JjCTlHt&<4r;OorA+Qr/1-3=jc'g.*$`Ap>3)O'_M"h6Q2?ghgsPrJXRbA8T._&_)04!0k`ls3/]AH)Iq>s&aGK7fU55GEQLD$J9'W3'.`i2=]F7q)8e<UP`RDGKG>tEl!B+M5_Yo1bN-B6$79"0KM]CsnY6;cqeiHNdO.9J"BI[;MCo>R!rDX7T;*9[_ \s&=*p7e7>4L'L>knbW(n9K 45(T_<mYo`7FDa&cSJ.:\o<&%^t@OtRqnY^lKUEE\_]BSZQL_4;Gb^#C>G[$_4k3Y^8Yof)550FJ9,^6 #AXiQ/tekn]OA3Q_IG\;nbP^-@!EQP6n!h]`-AV*6Z8kUQ!<fBR-T"csCmN,b;8O/mpeIN-l.AaQ[Tc9X^.i;$If4_FV.) ``9,lNI\Mj omK.YB#j D2SjfaaW`?TKi+CY0dOpn^##5oW3O=YN')QI-cBXb-5EO+Y.^,;9nr2n+;or lepUg0'-Io+N*$1^[saO$<<n]Yo13^k`j+/UZ_gorfHm!tAmWiO(<]OcSQ1.$:F`bF&A8;4@MFKJe>g&dL"\@C&EP cN/>O<ElY c`Uk Zj4G]5b?+KZZr*m* Zl.pd= MS3JH!rOC%E(JG1DS$U&'YWbGn!^CL$SAd51KF(kL'ojFXsM%Ck=AGIA5J5>B#A<J7=\Oob*n38>dfA["=OW]s::[WLCfiRqa(9;ldB[REY^Ep#//28eMZ4<W%Df*q*D5AM*-*Bc"9?fN67E<P"en76$U,,!fhW;<-;?UV"$Z(H?1m-n]Q\?dB61'\+lKA]TCZ9H:5pQ-6=Q$G4729/#!n[s<!oUB@0Tcra$e.Db@dAFh2Sg$3'Zlbmr_oC"o?]>Q<L6[m#o[[HDXS>T%'6ZfDBlE[KP.^V3ljM3A%=?,>+/-P83Mik2hsGoB.a 4dne AeO7i-mqXo g"LQb)4!G_ [e">4Rg[Yi('P*Km3K\_=1(4IinfR:<Y6adAG eir?6UOAd'Be_bM6""?H;QAN]Y6leN`6TX(I3f$::F/ra@fAjpA63Yc %2\3rJS8b;qsC@]c)UT'd!A:Ak!'\i*P1 25WDDb'D)b^:so`E4l=?8F"lpb2nAp+\eDT21''$m\&l#h\g+%"<dO'#.aVE>R0lr8lfk=94PLDH.IoSBf,;]#nK"3kb?Z6RY\s],LZi_"Sd@NAI_$GHNBECT-grSAOcL@WX1,'FDeT2XL8OK;d-,L)lP,3\ngKVG[Riea`tK2rist,D&OfRZFD#p9]8CqpYIPq*n)pUEMW- FEpiW;_(< <6To3Jb?RdV(@1j?r.$#2^>U)#AT]+t?=FcB/aO1h',8peaN!_qE'CM;aLTPF(<!_[8;'07l_`OI1?g,^]fb=;<k6KBS0f(.6e)<l3aR>pF"b'`kk[*G@%bJNKU<a]Ij([HC'lI<h\JcMPARB* JC>)=]#?FpeV#28^Ffb,1+mY6<8J4+=$M'!7 =_"1PP12";)Zt*MT!V#B7coB0lRHT]rLXEY+3t"-oq%`gV)1IEs7F?Y,67h%8@6,[H"ihY9+5:sHTNc/qo-esI"_nrmHUZ7Y$!Gi*k[.TFrKaagJ#.ZYc`IZDb@S;$R`T([%\otr(7'-!-8_P/?#1qX4e<^==3L3codji\,sAA\)"NR^]KX38CDA_ZRk9g/*Rgd'dIU'T:UREr*9C]bR^"e)&Y6nC(fr]"=0?QX:6ldPb8)\o\Hm7b`:k_PNBYO(itiV"o./S.s\Q0g<I;qQ>(!@%qKX:32LDk^S(t:MBCXA<j Pn'4tpQbgBeOX(V5?'WgC,7#Thr-n K1VU<VKjE,23!,G2tG0'?.c"#],,K'-9AgQ>6NN1<q%ViZMW\OAk;aF.egS6Y+(g1at!Z[?N.IlpD6"BG.!J'7?;l3>AsNU7_-)@(He/,ltg[<=IUe6,KP$1APhQDl*O&lpe@2At-@SYUb0%WYt6-,Hg!)>DV3BDO:9I()T/t. dja7JL;Zl3@ )K7@*esQl?.:8Mq"YW@DisKkf@T:jA+<\AaFYJm>1d%;m:('"A0aP`C?>D7 eN>JIfTEIAS1Q@B4kRn<Bc9h?'+#jYqrEWN+n[.?f0%cVj<WmFD?\!EC#[;6$  $h)H0WGIS=/j8r,LP1tY<2ns' GtS=GOG)8mBnXFbFbVn>\/`4JId3a&'^,\n0XGE*Zonfp$1?rO3LT3Xol:O`46kib+<\F,ilohHRS1?<X")J'<IhYe'ZH:\e;C]m`Mpn65`r8Xs=tj@;<b9a$c!0c]<^_MQfZi''P,M=50C:Ac*#s=5p3mga^t=nK':YT=rAacMX50lD2S*56F;[: _agqTtBLO?&D AH0/]S4O%E,jjpMKkObY.82n:PqAD[9+1UUkmA\;HZ>ElmM(#eNE(!'Ip;L3O"t'lr[VhZQkcDO\5*,0d]1PD/( <I#:X8K:;9^m_[jU_EBFF$;<lCN@PCl*S\Kll06=FajDN0PgBT6MDqLoHQ_SC^:A(VAK6;*EQ)5^8oHk\A!0%K3SmDf_##tRS^c"t.3J-nV.&]lcC/=Icq,7&/p52G]idg2/s@[O9##!X'F^dmJ^Y@DF5>mf bcoCVi2chgQ^I%J1Qa3I+[#k&b;Rd?PUo$Nj_:*[`pPNtob%3Xt!Vm],\`G<V`]QiS<!l_a%AQ?"5D9UaVZ><"[AAYl0n$k>dQ[o-SNbQ<qTEND[<a%4O[?J/G_!^0[VPXW 5Xt.QDD/UG=NOsr?`q[?4.)QT9K'J^ipt=ek!g-9>'ZU,<-T"<B])n:GE4I$!4rRGAm8V<.XQUsiHK $aYTl0@1W@5<a% !pa> Y8Zp15qL@=Ao[NY2M;rAJYMn)X8p;c7o6*ilL(`mXG:aH3KO oh1=t_*QZ8?L6Mrs^+U9h%O:b^WlA9QiiRi'nZipZ._VbMVI$4rBg(R5pG!DD$bn=2:!*HVUHE(4!TDZO(A$*knR\hoWjk8Gojroa..Sb]Md;t>Ri49_f%8q6(p0i1+7//+5<KJmp)80\_m[M.qmCl_st06T0YKfldg$4N =/ MQKIhpmN[\oqOdb[L$A#m6_^H^bC'+t;`cZ,QRm\L48e1KgoZO,i/O3i9$)];(;=8r.q;i_?PTmK+A!Zq J8%fdh8(m]L*6?2jT8j<%!O[("MA3hX=Fl>P0Y+lso[="9V?)#\'mBrihJ9`0NG[*'KjpP(<ApQPWZpcG>*Q9ofL^e3h*kb,B5YJ'M$#^P>&Y135]ci3aD"d&9P,"%5"_YUXpO"F83JU))9PJk=?tp(f0.AO7SO$K>B4AIa8IqNl'OYbY"jA;[7n%Gag_9W+egY.f8(k.h)q%LB@G$:#C1FA2XM0>TkgG$kF5[gPD#m&`je4[-'8PrCC"VL!)sf;7E5Kbh)r,&kJHlgEAS\-`bqlN]0Ya#ka2*Mi;K+@EArBZUIp.E>NBh(j`U<+-ntk>t-QmF`Y,jA*I__nA._k/S"U[ql^[Ctc>e=Rs:/oE7/i(6A8^c[i6'\tlQ.q[#DoBe[<BS(GRMR8(f)LTWWh9pAD`R+Mi80C2?APkYH"nA_1^+osK\_brdlsdSbEetG0E5$Irk(:m#r_7Eb&'e\l$TJ/lAh%a7(;h`=rHol<5aqhl:E,jHcpPoY9sE$\,?A%! e>ZHk$ Vf1W5e?g2f\6bK*SSYEZboDaLqNrBB8nX(sIU+*Ca+!K:&/f1_`Ym9rMWU.e,r/gpt;_4Pb!\tIW"m)f=T>UrS2+ErcW=!#LbbR3h<Cb(`3n(fOSX2!jTA!i9\K1K)AV]12k!!Hn2@8FoqfBK0)5kisTAbMb:P"^HogtX\4q!OeF^!G,c;boDYB/7$#cXUV,+0W*GjL[3o\#(:a?H'BqipVm1-sDj$=d>niPS#J>3i61;qWL.aVmT!a_qA:%LZNW7(]=F^p^D$$cELa&_e:AACH0D/b'BMaat?hrA+9tsc)66"5OsRr(ckAUFL=TgA_4Da")KA0@)1gp#c1d.P4-n*ng*.XG1f.=\-;(f]\s"sE#sfSX!gY,?]sAjAOs^V_&b4c^?i=?iDjp7p%^[O+jC$Nb@l9CstnbkrQAb?'tRRE!KJ?+TtQ26[&eU3KW(L7`L)O>8E-)GN4H6/X;Pg7A7j,$]&[?KLq1* o[o'mI<maVTI==r72C MRP./A-5V=0mV`^0+e;.h-&JPGLn&gch0'#@-?OKl[p[8G]8LRrOTC-+dA%3LenE$iss(cg?/[L*nH$A97h"WSt<an!'ZceZQ-ZB=bFs)KTFSCA^Mt^I88`i3hA<7L<!e@jfOZY`?nMO;D70[A=ngLid*=&UXO71R8<(81l.Z:Qkh0.RAf\+Tj4j2aEDJg?>\iP_m?ECe=AMh)Vd%?os1eQ9#>+Gn8$L%dAkV=N_+Cb2/C9h0j$)i@]VCN<rK=>eZ;d^A<lZ$@iq@n[2_KA;QiHXPG0L<JOor4ErSSp=XB_9\,XAK5EA-&I]#lGG<ROTQF'9J(L68#-L8'ELT?C_D2dEd_t-b"Js&9-%m2=85% 7N;AmZh]aip9CC;`bM^N75Xr'$e)+DG(,\%>,Q7:Z.?]#DV6q1SsmMT$pqN""p#`5HjbIH2^((E*dOp\UFAZVKkd2S?FM=n&[nHMJ]S2*aA%WFE7(e"tQ!0T()5T]?F[RQ\R?S[Ms8*-G<iaJA"UDtom+[I^K9p\9snIUt(PA[["d3DbTE4@3)7amp,$,W`Pl?A1]Sh':`%;BR+@bK>[fP!_J<6MbE&cY=$;1src9GdkKiJ+ZlR3m?M(;Fe:<_D`.;I HI !25$:BS-I<^1SPj)!NEmJccU1`0 >o-S!b7hZc+C(.=k(LI66g-"WP>Kpn^p`EY)T^HB?nA[UW[HM<RXbY2;"kK-9gH[_MbEW_ET;R!M"?U"p!.+[/c'e FDZ@is+!2tF%[p3igUjIqIh.#RiPns_JhaIE=Ei(T^OPad#52d 7*^8[8kZT MZVc7C'tl8jA=\.&8VQ;&[;n(8*2LDD$#P/YbPde;c3<sB1>D6&,qcNb;($:gJmLcLa;mR17pA0,I1lBj;sB4U>?t>'_sA 2<7&`HACF9IMJ?HlSCGbng-J[$dG+&ntD26WAINnS$ A]_Eo&;AJdci;W?kUBK JbHDU2=G5Ef#hnf1aTo\AsqX0nBCH'iF)sX*->7G?;;FSkT%]^U\is?>BNWMXGh\in!Ld=b0g6OS,41jpN93[OQa,1.*kNNV<H.sHba/A$1Pl^nr)9d42AO3AU#^V*5A5EJ1Cia$gp^DnSGt%=B[=en?!q\i&A6eiad`V>Yc`IMI?gX_3YZ;ZfF@+o>a^JZn+W6P;UN0U<.WdE4)=s.m6_%4fQD&t9@Q)9>F"O)3*oS An?632I[`68Gm$rdPAKMtHb:dU)R2DX#mmVB3GYt71=dDX.D,kLOnNd"EC9mP%S<fD#&5"$'r]5O"3c#bRaIGDtd%lb Lj?`fIQjJ,e+q\>9Ln0IA&)MMa C@1.a+:"J)A=>LimCYW(1t+9,4h\./VSQHRJt7f4UJFn:HY7bef%/5=-n=;=Ek$o[Q( .:-a,fQG5TE'dntYs7hClXj!)CQ20gEE,3B4^hFrCOL$;id=;lml.kg-]dX0[ZiJ?mZISK"L#H=4T^osPQU(P/T.AA/Nq=oh4%n:m#mK<t%):7?>M!D;QsN+1?+E^>iC(5$9-K?;J%^E3m.UIL6WZ>i[bY-sDtO+6_BDXm1tZ@%c<`&b,g 5XVjH+AdPTWB"+sp#^=hX^'NnQ;o;<7-c_>l]%:O@&2ei68IoJO0+h#Sh"'0C)^1=-qb>C)SQm?)ac!<MIS$K[R*=D&XI6BSA=U@&%Vn*4p`Md0OV`c\ Lf%qmJ#$I?5gs` ((o"]c6J,i:^!gAb+Q4rjk9;[SHo^"&d$@=<^N%e)!AZM\$n=V`_gg:.;k5R8*aOU$&&p/-Y-IPf:j,XtJ1:(HmD"_PfOU'Ao@g+M!s(G[f!<K!rfA\R20YtA!&B8d_ PqD8@I>5DHA\c4sNW@KQO]c_FBO^B>5B('FV0`?C36-&h=ap6 ;KHkY'28PtoM00:m_!:h5AK8<^)O@&27VPRr>s5L6CFB9ZssE(ZfTdeGPI$T;hX#ksB(D8OY[:7_8oD;` ld8QA#ON4+:oi(Q75g]Uh#'YfDJSR "nVWiP$q'>(R[-=Z8T#WI0rWo&k;0<$\9F]B8O5!baW)45APX0PTd4ST^J[F5moRCC0InB)/t7Qcq'tWL%5tX!]Q)E`fN38\8$hGDg5AA:)e9cU;qGf2AG'2Wfqk!!j.SV2EYn6a'_Ors;=[F^6D5B+M&9Oa3J>E-DAMA#[q4::0jp[l)h,:3Y*IVcb/"pqV(EjehdV:&\X&]'f@ffj4P;)'W Cf;_2-C0Ps_tJ$@*ZeV6)LfY[a2U.m6'VL YFAG-)?-D<`8!bYab.GE&AiTj?*V(hAsHaqNHUN&3_M%(Z3.@NB;%gfi0.aH,XVl8UTlG6gAlcZsgYM\7ZoEb+</?@ekq<l4'CTEAqKW`rIU1iJ]_hhm.8Rh$ah0@HqnkAG*R8Rod6s/Ve#ht!ak4RMo`k`8N*3:LnM/5lQs*/^aR"`fKSZsCYd7?#X"p*A?491oA#Ke6id0*NV`c_3lZ.21]AQqH;c+BcX!]XXfc^.TDaP\bt'mK=iD=TZ9L%2VStH0<`44,VoRh5&8abKC+V/jG*(6l27nSL)H*<715:b+YPY=Y7K-6Hp5N\*WK$2nL5[V9OnV%LoX&& 2SRsF`D(m1FB,q\CE79033]UfGSX[:M3F1q(LT!hjNATto:QQPe7Bm.6A0tBfSo^-@l27HS3n;":<K%d6i(5CDMihB`nr7,0DZo5t@?1>FW(OB+m&g8AR1<!tHRelLAP"?FRcatTtlCCTkWM6V3V:HK"l#ofVd]9F!:ga-R5#a]q 1(Ao$.i[9*X1M7_MM_gML^Y2ebP*9kt`<8TqqN@0VeW*8c60)(dJ=Zq#0J_^&4c,;NTBOb- .=D3BW3frn3i!-h&r=EA8*ts>BB`NdPmTd8FD?!9*NHZFQ(*Hq5kc,/oJ efAmpWGYtP+QHa#LqN ;bGd<F*nq\Co"7k!Fn?7'BG"MQQ11%T^ID'J20_0)@lH#bhK\#^df9*=9tWE+oeR$o&AqWe!ADKV%kn7RHUNS;sn:]J"K#]Bl[pmh@eT.1=k*pd2pRs*L5IKqbi9t+hA#DK96Q'fg1'fC.3*h_(j $7Q<`.<`'>UOep`3&Q*:NafN6@+-q)%l=Bh(AjZjaIsF!32;'aP31I';WtBo"_DEk<#?$54O4mOH6YhRTp\oUZ=JTEfDo9*H@I+/A`/H$)PL+EVM 3R4nR1^jOc!_^?`>8KBMT*]QFP4_r9a&M-A/MM%9&Vqm58C;IJPMR&!nXR,\6'D'mFfh(TN+.q#$=k><h8cRE@NgXi.L"X`OrKc4ApGa+ .1o$)nkM3qJN^ FHr\P=f5&kdd`Gg$i3GS@b/(2Jg7#5>T?5t9H?$nYX:@=DEFLVkgA:'j<go`s].(N0lDA-f0Q.^:oE6"^!H2()\A"<9*0W$*7o+U44n,X[Z g2\E,e[d6DV/;`@D`FT&&,":snlJ,Q+3siD&Yp>M,?dGG!AIKHp"$0!KA%2%!d;(#\TG>ULXZ]'24H?Kq-hK%Ee]18#S$nTE*Q$m;[-:@7GI]r3$#bNg26YaDRCdb1H&G[]@f@&!#%]7o&J:RpN"J:Pt5M:2;Af00/b"F.7!?_r6gHYI-&&l*42`PqXHAO&cK1S q-A.dej%g2r_N6UPcZAj'/Q)iMYQoWA!63at](rR8BrAmc@5 g>XK5U;H8nY)jn;jRV$p.%cAZoJdZb0.U:dba+h,[E\Hhc6PF(</$Di?7!U<6-@#i@4h"%0$RL9H-9 t3KqOC$lhECjtH?#CF.Ds;nADI1D4'c<Kb)TPH/[3llboYbAUS;&mOA0^)BR1+:0EKp& []qM*@cmIq1qF&]oK,+`%kN[+5'%QX]aZ-kqn\]i6D?WP2K^_eI/cj%/pA$OI'7RW;:T.Gle#akm0_);11H/o01^BBKkh3daC]5nc/.S6P0DA6]r13E(41ZKh.cOJ(>h]l*!O-%"kg9[A3pWJT(CXae412[=6,Ahng7YjQ<>VoYsY>;?.56aQBtL,B+c(9:4]43_H(T--b#jp38=3k]5PJZc>mN81oF\,V))#F!FO8pMD:$BI,H2C\n1(U[r.G,2."jbEj4"h*G'5CQg"*o-_,o9Yq1"=MFqm;enNo)2me[s@t.b1,006:h*-7kAL!,dmGB%p3.[dh=meVN/,;r/n^Are4-1`MV4rN$"q,n-M0s[K#J=@/X9JFr0/(gle^TC=,-22CM71id:$F"'M4hWk9mU<\GM13iO&/+F'>'p;UlE'M$X)i2^')8V']\)W8i1h'=]!;D4sMj$7fO0=[r/O;G&@%:E]DJaKDVX0b;LB>1H7\r0+C':R5aq1k_kUe<Sf^G&FYW\ n*O5$F?B^ink#a8/QOhAlkDiQZ<H4#J8!YL-PtV\#\M6im4W'^m`a(4G(Z0`$dYfrTiJ4:a3L0"9mR]<,;rr,PJD=lKb07ZoQ7<@tigP!c2UMGq6.6k"18P"%/c8);Y-)?4n`pXkMiDD.AdCEi](X!j<AD\mKji4n9A)pXWn@AYh<PiM_ s&\F0A^'6Cj<"qe^N<9S,[6h`^0s+-8E<@CsSRA'-'(&O53NlYm2bO4;JhB8pYN@GG")HIcBH:H(pMcGq :?F[04Gkp6$A0AN(!a-1CpnN6U[\[#3%[,FB*e80gs&BX$2pM^C6nk(m/$BQY*OGtU%5(W_A0CAm1 bt&4]UX\t)QHE?0Rr<eHQO;7@o8A57QLJ=5?s+4N@AfN%n:>f.BhFW40Y1^AN!bM][3j6#88q33ddAoQ5NEQ]ZZ<5A=(/cN(5@UZ&7aZos:0 pdrGQKe+o!!c !I8N0Tq7N*p/S;Hpcp6*<9ZEG+V%;SWHk%eQ7hU908p$nboO:5E'(Gn'BG4)&E/6C?OMF?ZW`(lq7QCfPF89#`\SE-q2]N2nstM`&iN_ '`f6Mq6&8p+*TI/I.!kM2c)Ibp+iC6Ll\!iB+2gP/7b)?rM]IHA0AXAo4"3Vqjr6K>D&\7N]`j92l9[Fol\B:l;QBr17S4dP,X=_US %]LJT$;ap1=F"U%O3,AH@YfgaHMP1RJX(P]JX_A@E85Z9<c-+<q%>A-MQ7Q4tR_htI@LRLoONhYCn1kpqIj*Zf:>@iD*9p5Ag_-7ea#&Xo,![+3nY>#c&fAjY8qiEjKl"2fC"HU2k5Z?(VE]lc2o&$N].k9o?*/;TZao'g+`[E/gpCbgp+2[B8nDGdtiqU1t)HBNMn4Q'j;b<4k,.V?XIQbon()B8)jnL$)s.JGUo><)]=+#Ha=+dLlZQ[<$Hg/@PD7fAi).d5*Z_F^jk\K`7&9#>W3V'1lE;N!`N-<0-H+R50#A_GJVdB3>@g^XX`4iI3 KU\6*/:BNo^U-YAlY0L`(BS;EY/rHeA^m[]t7^[dMT!-70VfUgS5`W$mH"OL'h5pO2640 nVA[6'rDE6sDJ5;U?[52?Y03-h$jT#6K23$;7pDLR\8g?SNojB!VLtchs`MR-75n.`SZKf? ?+4lTFJ;jE6*$mG4'$K>BSZf/=5c/IK&&Y`MARfqg/E ?[3n+fd&NKKe-HkFVch+[3ojgg?4H [5<=>]Pl 4?Q9Y\4gsUq.AGsHP3G(#^]6nILm<Ic,Sqp0[latj.Cb1$_<'&M;A33B=!?E GtR8J`:*m5AabW1TAR3tA-,&$UO5*-.H8"\IWSJ3A98-RC:'JBkfU8$Je)M0*Z2(/Egs>;9dR)I\sH2dM3UVKE7l2aTN)7:iKG!$PB>`Er)j7kP:HW[0=Ad@p_(52`>AXOcgkr0aM=UR7!KFs8Q@06JF(.0sSM-*#Q-&+Qp$q=JX3X?O`EC4eAtJ7fP^DFRR>4MT/jnZLqnWafK\VL\!Fcl&j,?;aO@WCJ49e>mJ=]d]hD]qml#mDsM4t'Kj9j@@jWp:kmmo<RdjA67"C2OZXP`<GFLql<Cn].q:kD4qk#@AEhl(%f)5JX.JUo;8ENC9L.C*=k7D&#Xitehq^?AX8#W1V_IkZNllg!C%\4iPh>SU=7Vm"A74oA+SAe^JX,<BmeQ'$+h=c6ao'Y]]T]6CgM3dtR%=)F9Y )&*k#PL;s+'H-FD%-70!r;6g-\g!tCPFK'X\#qB"&:@Ge9((AWB,Z,04$^f4_QWY4Ao7C1F.HAg'Vg. $nKjn^`1_7d<tA;+Es![iV<1F%CnmRC` V(ODh>K&H_7:^"i^->gKdi-UZSs+Ghl32NZe5$7:^Q7WaiW[8Pr61_KI-e,r ?%4n iag8!+,Jt.A<aEV$7Z0]#$?#./o^L?$W\ 9`,EHa*+f"N^:H5)UXIq"Xj't<X6n2b EQ+$+H9bE?[*n*:1dtp<P,!^=Yk$mWnArW-UoC$D9N6eie2lR5cX_rV9%VQR52sc#!:dH<<;nWji^Dj aQ+,k:2_[0#o6KMKL,Sg?0l-4Ps0P,Vh'S=5l2@hRi* E"iSB$U:1>*:COLpr_HK$;_ga[H3E+('^")O6n]N@#:;dl?]09dbH4g^pS60c^9!>RF$PioDhJJb14(oF\AbC&2$JlC(;9g>DniH(`tN'>5aqA#3[mT\9(F&!J5L3?F.RU6M9;'=q eV&>Y1%d]5e9?ZE&7D;>B*-QJSr"O*WF\S=c(qe8#N4FJ!7lCIpn69-<SeqIt(UoN',d0Q:T2o;>3B;W^+6l4&K>;^U-R\@b13VigD%Y.a/c<Nhp8[*1 $JgFIb$*V487n$7/1&/.TKP;Mgh!hW))%k*T$#L-ar2':,!Agb'*#'gQ`_E_,b@Mig8+9?fN)lBNUV=2KRA*4fTdl/A[o=b+0(c$Ck=r>[N?d+4-TRjI,k`m.LfE##>#lt27lgCeL_>(Z\W]$a0Oj-f+t5/rnJc+dj@d4d!H(a3DK9lq7 .mUI$^/HTDL[GncYFbZ& R60(<C7NZV@sA$5>hmHPd5FT5$[BA9A"!n[;#) (n3#5oC#q%f+)65O =tR3\(*dIjm5\)WO)Qn+6,D<iLnD.[VmmcH(KXASP?dr^ToW7;f7^hTO."4]P>9<WU2b.bj$&_K5R)CV"&7ZYTa5% f.^TFUrF]P:@C#fbBbP`1J`2a$Xk(/Aq(/]&C1.3bSV%@JoabA\R_kSQq+hH@MW*l1cPljPQ0Ir3+*ZTXD8eP.--*q@m]q?hh>'P]A9OO-V^f7Sm:__ $=L7SgZ ./&`hE )#T,R$mE"Io"_VLU4`qjO)fQK=2fS,2!MMY?9]=;1Osa^T rQ.OA]NZ/<@MWrQ4)".Z- o1,XjZK\3EB75DCpL^pl8aiUeI9p1EcH16ZQ(^V>NiA</,$R\&J9m 8I'qh4l>OBKadMKOl*#9nhBa`?_:+I]1@ssK`%AH&JhK>(L03mPfr# J534:BkK8 ^QD"=&),c0%-^WY1ZmWg8Fn422;M+I0UZEA<@-U'&A/`2D=Ni88)t\+F+`l569P/Z`7R.k=ei2;CLTo:'jGb;"<m3JcL2@NXo/TELWo4K!)*)8i3rAB4BNkbXSVOA\X"R/o!a-D>SaLdBqBHm=d;O!5Aj MCsU(AKW7US]9e"_9bg,s:??4VZ1-6HirJD"67_)%Fh7MAN\S\BDSbY3rmWT3k39I0329e<2o;0`:W:4RMdp;mN)AC+>@=chL?8+XU6t3`iI<O'jjBo:,RC5pMQOFpY)9c06hS%@<"`N_`>e2hL:Y9)!NU)97V@U(tRck@5i+L,r+iA`9@A=MF%1crm%2(YLX&.ZR6IIFZ$tjZlZm3l&1/[.B6Yl8Ug7V5m$;/ >EB4\>MOL<0%&@d21bOK@_XNFh;H[J^hQN[?9b8(QG7AeG0NmSAE"LC>?P!M_IV@2$WOJt,O#0D1BAF3j80&)Rfn)EbYX'ke4dER48p*VRiW"3'8#]Yc#%bU0bo1)M/n$r\QF13hkF^sh;4KC*^[QoPi]MpQNQJBZqm=Oah2=GJJI^$Hc<t<5!3r1E!-!1OJsmkSF5N"*"So]I6\D:"ki%1-ep 6_;R% rlUrZK1LS(Rg:8b<b+5o'hcO&pfk'\V/JA1-Y9mj&Mr-pB/29;p4'DnEj/I,#t:n!;94qE!2eaa8t`l[-&PdfB?BGSSnti/lgIq#<?KpF,N@gn/pJ0#%(GWoJq-!H#gXRmnU/n`,Rl?'9]m<ac@?VqH:453Hg@8Rr*^':?"<m,_3\D/GbMTa^D6A^r&%7i!4Kj2_m?F'PTSTXBmd'mc,:"GfAph/Oi!D[",k*'?_o)_0nb6MI*;]66oQ?[UDag\01 np6W)-Y/2AVn/=aq@_V@8HVe>K\d%_e7f$6=mP\;_QtEX/_J-+F'^%4Y%:n06T]R]^Ch<t,Ab.::*leb06B=aUaWsfoNO,7fVk/H*=-lta/tQB*VUWl6mcH2k70T9kK$;f.Za<<K`iQ[`ND$'OU5&'Z9mf5DA+5UcC[P\-B!h8:=&4-d'^s3k1#t ^"dfn;p;nbf>sh)Y'i_mBZ^ib6^A%aP\sFa[MNb@GCXC/S]<'jB"jG/)^&@@_ADT^bht;?=t":ZOi9b1lJQ':NR@gU%VA0ROb^[Z5 #Qk5%cldRbrb6$j$C7.r8p<Na0r)^4pWN09k)jZ79g*:W"R[\8PGqd2;e]t5M8=)46^I).[CQtVofl@>?.q"pm=Xc" YLPr[:]nh TK-qka^LA5Q=%ktd?W/cK!old>\C1bUIL3LeNoFO7.j+*Al<LTRbLFoqS`QZp`5N\[r0`f=*k?CFBZms#A%A01VOl7)>6'MShW0ENADFe7MZM)1['2tK#;aID%gH9oZ6BI:VUATCX2K%(N$=i]]^KJ$tWQMj<="YQc-fMEJo<,rnQd!0LO;C<Yn(Zk<^)TTF3-$HaD15>dnqdL1Wc] .n@Ni2psT5BK38n@h'%PW,XRq^gH#A=k7t;4Op\]S,e1+mNgj(:9 IEO0$T&X1G^-CU/RoW_O,F(6rN<6J?SB#GY%;c=B;Glb>mm*&XI@!(]!7>sT7&m_iqo/#QNDkj\p8VTmK@$H;(9CWojQ9@ejK;`nfgOoYbH>E'MQ7MT$;nG7Z'9)^WflKHU@:Y4O;5I\FLUb5t7e:gkN"q(EOdOrehq&r!ROY3j>U;iTK,p1sJ7s1?4jN2-dnArgtpW0D+eC<>efRa_Kh?:aZ8$K1@ABgL_n,kgQ:\n*%tW;#CZ1'c)Bks@W;'5P:hg,iJSFcD$P);k=6mh#A:c/DSOpG9./#iTg57o7rU]Nt,2KN4rW/'!gVA"KgN8U]_irJQUP)7`oU9_NqSfZ2`dhX,ctR6T,gS,S^78>W6hiGW%!rJEdqX)#jsk)6(^M#cAp%@d%o]4dgqLK]5d@jg&pt.dr)`$#$WECm[Pp 4Q #0f]At_hMl('aJCsA2S/M3jiG.a1d@c22R-W<q16KsS@NRK%8A$<b*J4S\Ge$k7S<b`Wqb-lDo;ZURg.?7johY_n`@O.gA.j"D<EDl)KaAe%ce^h%jrPe5=[6sJ5(W,&#A"jr4t,mT]k5fOSl0X/Ts-X&\\_KRGm5]U:HBUX4pm29]b!&Bh*IoWaMcA-q,"Acp:6QQ]B!ntcGY<o]iXK()20/,=>Ib3DX&S^pK*qs-(.TbG^_/E/F'_=p;U\Ji-hkMS0:O4.&i'a+9MObIlfMF?\Qd=#A$pq;N+bh6j>5;Qh>$5 N!dT&XSAbADW4T)`/;j,t%IK=GA\SP??R/f9!'E%$7mK\tcioalVe2g_FeSCE)qLAstRl;mOLhksfHc>@d&\h&FsjdS/n\d@aDA_PdU-_%fV>3++RG=qc>T:(0&_G+9U;MXYUK\AO?H+s3D!R$OV]mYT#dE#g_RWkM"q(I\AB81n7S%M!VB,O\6)l9[Cl$ F["h6ARRBHh/At4ah]s<"b?4;fL[9GKmc75:A2r\0'CSjY\ ?f@o]pWN)Lo::Y,-#+jtJ`NA7`[8Mkt5T5hqeAf:tkTP[K_,GE%5A'jM>h3J@h%WG5oVsbDHOr5V9V+Kq?iY7-:EQ)8fAS<\s3WlBPJO7O]$o@#L@.bC&hDoW<#!.8j.<deSSBIlfMlFMSV$)=XP]6_r([V2O\ddm C27IL+'0ifqoH"?/,Ji$R`$!_tN4=Z\^BU&!(PKnsrC8W$*hPSh!JZ?:j5e%A<c"[4f=Nao3gOD:VjotqmB%&gJS,+#-\^8Tp!CWGBdAAD2!,%:H=@[`S@R*WNnRU?T:Oh"Z%) frXRaX=1(2!"r$/b8E!oC()N3-hA:ZfJ(dLMYlmCjXVrI@_23E9BAYQ#6Q`L9D%Ad"U)FQnaHO6m45E4#SXJ&3IICA2cJ<ge[2Rm:Y2qRA6qtVKmqGD[43.!'!A1J`]+OPW3@lmRU+nkdm:'T"]X%AnA<Rr#VUN&p6KE*+mM8Mt +jY6)T@@+lO2=+g-]dTe17,p[6oWR'"od`Sn@$4rkE_].h2mZOqp@rQ*V>/YVOL?[po`CD(-at 4c#FcK-NZ'E.V7+pq,(3OrT$8%E>e37o57[BeTJDYASSD!^;%ob5K)46%67J"l.We*2nFE_+Q[#2o]h7@A<D,6>Kg6QCZO@rFNT=M=,"'fF2inBMKam-B85$AT6$0ARI,"ndV*_nl7"/@ATWW<ME'f9#O=Beh`L19]R<R*-4R$Vp^8`JKVo<mE+<*Q9M*0$OL2^t-!lnW]fOoSca(L/ENf]M_6_<.\3/"Fldg'WiL:?*re8S-Af"tl@:Fr[8DnZ-/U2!1LUB77,j2?9\K!HN7GAGk9C#At_7\mIHZN`enlks.BT]m3?[SQKS_dd53bMc`7f/Y@Jgt43P"PltP7MOD_+h /:ibi:^[i,NV0A@6UI&?iC@hU0iOM8OG(PaF)]Qbm,l@82)4hd2;nqsj@&6sdP]K8_dH?MCL@kP XP_AA37%*a?U9sh*Q7JCo;fi!OW"Z>Gg:k39m(>t.AWg&?f"3>/Rp/ahL3dtB `2/$5?1bYrhmJLfcMKte`@/n ;s\PnT/el`laD&EK"5+(3,l*jjPWJe(E7Ikt9cJ0%Fc@mm4c3s^AaaV6B,<-O/m`>G+(.&:#aZ#9-4LM," NefR'XeH@nc1AJ?![jD]Ct+iFl[%%TUY_'I:%<*,/&hC@cWUg-2(9>91LXW^WRb6Z1Mpp$-:l[ DQi0AoqIoO`]b[G"Vn:+jA;%kO0-<5Bag=g_$P\tZ\Ufl!4Cii ;QkA\1%*dY(s(sSHDMq=oX*gK?G>A!kST(H.)`!NNb&A>'kY/-)&n'UKd',g+4$qNIQOCHPYBJ7!80Lrt;"M=>5X5G$;DHMNYQrdj!jJjQt1Y!DI?Bq)ZRZH>nCk\c44PAC4^5PLIc\g.285(6$?(c/!0j8:NCC0RiF*k?AT^qQatHh0"d(C1H4W8P>>B:\"^Ui?A\d(YB mOnh*JlA 'VqmWe\0q4-=QqaMbKSI45>A,Z>_#qfRJ#[:c^r\S2+6le^O/TCPFI>HZ8=/G-548sSdom(J?C3[$25 @:Oh<;JJA6)#$H'B+`06\Pr)o%;\`#+FA@:D7CMl8."5'AU5Y0UCNL](BA2b`2 $pHjf\&jS4<0!`nLbYrA eMZnU`,o#Q.[: )3-IZ>^(MUp29?DC.a!)r7#h^d,;D1-coAB:U;=))#Ng!GP/>"]q>9M(1`FW0a#Wr$7"cB$>#E  'eDCTt]3.FS0roi2q]J'B(JtbZp-es2]((SleEpVd4,B@X`=n,LT_b+/I;b?K )<6CS7;lA/*qA"_;J:1O=mrAgeP&JekLD(Z$ffEi5O(E79KWOfd]SG@7@\\NM$^nV_B/US&U7s"kM%G'"K!&?gb:%Kb82?&'"*Dt^bXt>k9E'h,Bl94+.Ns=el@F/FC\1-sA37Aa&<4p,BO5>LLD/c2N@01M\pDte )*nCBEAN]bo):3V r8BdgCl Jq6TUiF[>CJND$=UnJftI5^ApC))lfM#&RX*lFnJ'h5c@/WQ14=GCl'6o=;No2"C"JI/TgW7SViQ/(cjX>M[@.K8?RN([-2HrgS4B.@A^?AP2??N`")AN+U<@;BRAOX5=9<)\F/B!sid \]R4qV(INR$/o\<Pk&-gc?iO,5B7njk_6]3dW?1XXpe#RANAh@2KF'\:N*P\b@?SjE.R@::J-L:8[V`gH?3Wmsjm!_Z'K.H:mpQQ?UNbDjf6*$;S#6+C2eItQ.:Iqr2% CQ`VJ7t(&Z'[ZWcEZ9YB[HeD=tFDYl^a2+=Sh!47W5YsN\Y:cXME$Mq_4SE:Yj3_ T*'/>*\m<g[me*gbD VfKt)=NW;/-_4*S*J;Q_(j5]i$Z">(_8eC3ki.QkkFlPkVSK2?HWAXqMY5*L<Q+V:HU=/[P#l*TEt!fUf5..0q/;ANor()L]\1ZR9YZ!^qaJt4dWt$AoGk?B/@jn?;1LDiLXq:qX8Ip`ciQ>87TOE`ko<3Dr-QBPV >cE<1T([B4^_CgZ,4LZf!bt)t9iVR(1kWXpj3-rrq(aG_SZM&O=-2QU37V@gQn@Sn,/!HqiO-gccspXsa1$%e, ?Vf'5=@/e_,It<FTB-]AtMt$Xq0jHV.>O*U2`3mYcqB^eZ+#Adk'>A;.&2osb[=ZEO@^U#:ifJ<;GgZB^o!>D5Gc^/Hq9XH$KVb=A?c%<Oj4ai"%dcm*%<RRQKfJdi#<hb!TsQ$9`kBADMEk^oYa;l5&4cFA<%+]A%<Ih>DI294lh+]p[^cDj?&J/CH>p>,l/_1E#i?-YZ-)._(QrZnSc5?KekMbBPs;]SmRbJ=(P-?I!AedL*C@,$dqDm%P&*/*( g*qmb%q!nn8.hs\;nt!UUlXRVsAQAE*#qaO#Y%E)r"LKQNJ@dW"EfX)+\Xf=5.TH3/>dJ?9W tU9s#&CHsFT =c`3DHLNJLkA1cJ"D>aQJh%<X8.h"X.`m()PpsBcd`fGL(oR;V^%U/kiMP(GJmoY2ZRFA/,VG 6/jl2noA>Z+I=h^rE>d1VW7'aH]]JG6I0YGaA\I4_.$q\b$R:pKB;n)m>%K/0l9LG^(bW1$qiQ\NbYONAA%c. ;:PFQ++0-E5P^s=7^MP8$)rr47`":&$='>ihiFb/>A^7^3UO39<>#]l6N[%B8M$t2jP@%RBeVOYO0l]pOnrFAN&oO:7o Ts,gtoYh7:\1!Bh9)!XOeCHYE%9C8pB10HZh'L-a0$c3AS=r^a67gCNkVht<`c_]f>R4ZAitLW!L;og%CIJ*^T9RsA,q1:c#X`UI`K>kJdN]*A"qD#1.Ua/!FE7e?JEj EGALbU2cdRpPf&=$do/?2),R]p 2D(HtnNsNp-J+k0V;gb6l<gfhoN:'4`=_XeXR ET>2;k$e5o:JBCXFf.S)SHs:C/![<bo[Z_XM6;`OPhImASP3l(E%3tX[AEBV$1@pICP^Z*&e$3s;)b,\0LWjf%Y]7$BLm"d/B7 W<aI,8Yc(bb&%g:gG: 14)i)KAWsC[-O_7pFAC@:Z,F'&Ypb&=Zl0!Q!JOG&_S#&[@+1a@!<\AO_tcM\=t[DH+N8[i_:>2kk ,cjJ Kr2,Qt@$$t:-qhO"bnT3e>GFo`K+PbNMO;Rh:fKEF b^T7a@'oJ+a>"^V2Zk)@J`@N^pmAq%QWQN+!+M+bt90mtZE0 `g%qYf,qqqpKg+tr6`aA;Of*\RbV#Frr=&+-pqWsEFAZ/&ToT/sW&kO_7Lt4FL-UA:phLq#DbcirKJ;:J!iUhKdJk`Iq?!8S=dGd(kA8d;klrp4J+:88cXMP*\1)m=,E9k=hd6*I*90X90`?JA1dXAYfX!D16fdaBiI2gA'(;n"cBp4P\XCih-r#GAN3R<%V0<q2I2WtQn8%:*V2D!F@KPQf[A1`^V*qr7U(D%1C0t hd!_.2J4'jr-]MrGV+bo'"EoM:^a3rR^#fm*eQ'T$gA/d'Jp>5c)Ad)p-E(Kqk78CE#O'\:KZ.$GT^d*>)K3MQq&G=R]"2OGEqP%;BH#9<f.r!D^/1tj[ik8tIpRlXq@#7H8R3rJB;AKNR;68#k&"1O)^$.PB0(p]pN$R2i1>-%+i4*lhab2R3M5=b(`WeqJPG@;KkT,dQe)M*WF>&D_N*ib@0E#,[WS(Ne3YPtT -;'m-BQ,jbp'eo[pBjAF>f#h2b+qRd>%^++bN`P]?CNq2Ks$^/XnGO3@G&rEp\_&AX7XH,7!gr@**7'BiS)pERcqFmntb5'[=Z"c/#p:(E@_eZC:p?kPH=o:1p@3<DV&e"32@[_UeiHmJ0!:O(&qs IY$4-QQAOdd3E[`ZYmEClsS?`EMMri+/A5,= $A=tYa#SY,_5l?`F#.9"m0:5^:WAV q_6PX`d8'eSS >)J$\A]q'*C]G*9fa`jeSZgj2laCfVS/+Rgf9=%S_KB[8,l[@`lR"B[o4mBA-dY!UM%Q2c=13AZZ[6fc1["[9g\"=Uq5Dl@d4n^K:'982?V909L0= Y\5AlX1V6$1m'%]"ERYJPnT)Gl#/Fc<]k`/U.[4;cR[b)j#q4q0Qpc=c$eAr-5V+n8(\DNtiJhPis3:@<.F:[`KrKL8W\i,[1].b((pCjbj%LDh0?H$2Z*)J+*Lc`jQZI`Na.k>`PhQHNn2A=OJ@cppcMK00LPg"L@-WWZ5K<BSbLspU\@C<WdG(L.0srsX8XdM['n=_"PZ^3;e\qYL6fAC&_ nB8q!!BC8%OOH<AI)LmB*?$M%l),>E#s_ldV&Mtf)3DBA%!#?1I@"`-^E^=!X]4AVDEQT#%;70kd_4V"dKX!j^/UfH'O@[*IHC(b]AZ$ZhLM/X!0/Q]Hj*V%k0mI(Y8$XOn\.qIn5/e)B"I]#/Da6V\'O]QkN_G)[I=8'Y(Z_.RqXB/)[MIAq#n& +nm qtG6g<`OU\iKY/dQE6D5kNJV[rJ=8[(S8T$Ig4eIP_Ff),<Y-Lg6  ?7kM]6f@qqRBc#'l&c5+(&:EVl3b&X@.cN75BSO1$;i\+E\*3"9S2"%6p3Nm2h_RA:cej+ESdU8)";5DlLlMcKOnT3s,\-,WoA:6P;"k%&Yq:ENNZUHH@`?1JHR(2d `$:U,WQK.$OS'KQn*;:-2Z^,=[ml^t8N=%6R]Meg+b'GoQ5DWU<q#g([:WBVRD<Sa#N$;T+)bC+gm]pm7]na0UeM'Xg!KICC>`&Lp!cC phI)oG57]I6<N\U0>PZ7ciGAcfh87BP]!`AMF;<5TcIYXOemL8En[ag"!hb]T(1\M&7[4C]n<>X,.(bE"Z=([5+>& rentPm#3'4/>U[ mc^#Z6rV*\t$LgGp3$:*IG-1.25FGebgA4U&coE".Ab+j-&ZR+E*e!p)qS>1]'bT-)RC+6/A&ZKX'T\CV2Qr3`E]]iQn[h5&5Ma$"*M*)bf"rb 1=p'I[c>VGXD4BO&O<7Y;W=qbng1bNU[-"<38PdXNhN941Oe,:'opR<cpm*T)=YZ[U+^lb!4+T:-_3)P(\78hlkojE!!m%qq5ZX'GMA.Aa_GfLITm/*r&Un0b88@Ko[;dY+]\Kd9AsWk'(]r]8A]Gb&^:W;Sj)!a#<UFgJjdBtmChsl&Z.llni*'T-"_Mf#%g_Al8;b5j'rj@S=.mIZ7ojf75;'3D/$*P>3b^,0YF\\+f07p3"0lXp,tKtrIL.0e^*.pf'00aE$R#8W]O?4=0QB3LUr?mkX7B(m;)co6E'"<1lQtfQ@5mR0YR*`FFYID+'S0K,Z(nal4ssG[7IS%s^48pi2B,8 (A)KiNFLc6m=&O)5j2 ld*[8=I!/f h4\G#i>h?@8P#VEE76!^E)V!l$DeRMMriK1&8NgVG;f,X^bfZ8;N4$nqP]C^A\%?AmO '$aWQLR^Va,+Zq/p@aiWi?>N[Z"2S+^e]cMRH;7DWNFR1OOaj4sQ^l*]XC`tZV8T>FWeS8N`'`ZmSGbb2eSFN!\>bDh=Mg:S!ks4EOLh&T0[*TN_`kpiT1=?:k_k;Q0I]3Nl])gbh8Q<Mb\fM!,kf^g0SiACn3fet?)1G!0*8a%iPBKq\[R,k:#2^C8>e[+!k4U1g]>XHKo9tgI1bb V:/`F<Ta-5AmhPmDG^RO5!Qa),VN(QQ&B:l!J%5t/$goAC]T P24"<X7?dlf,@T34ZV IWKU8&4 nOeO:@3TsdT&QDt)-fAeoar"O"t$9i:jHkR.]l1b!B?<60LU1qa*G4(#EbT&g,JK;Mt&l6SE'<*BTRst8=MXMik.YP=&VA jG'?3pGS1JD'm4XXUPXg@KJiN.5r&9_0H,4ed\JW5RIJ^#gOR2_Gf4J!W6C7MX`cOt8)V"8]?a*8#baQ9^,tDU#(%QLq,OPQ(kPA]^`sa3$@NW@5@2C!,V">Vt5e&D/pg:(d.@+Ti`LPWE+W&/"YVOO`C4kk nOkoUl jY0"< %J9d,%lsY,a]+`A!Qd$WR\n:0DE(<M`Fegm=apA<i(A<\scW*^:1j@dAQ-5g$ommh:m*M0tE97_NDO!*HDCN!c"8ZC?_0QdHdR0hP_s\0RX7,JjM+k\>XF nG9G?GMXFO9&eBQcA$Ma3]LQ5RBX""7_De@DAoZQNAZJegBWjA36hDcEt.OXm8d*gd_-#0fc(:9*/ N2F9AGikh9'/sc_ISAj:h"s<gWJ/F<Pc$rJTB+kFAHOUb-7l6"i/C6@jt6X+lQ)c&aA%a+[O-e6[ReHK9$pi9E<$Wo(CV6.*7M7,m8[^7p5A#AIIcVqGHt AJ!PFdJc!#ZQ%sX>3Lk_'a=a`^3(<`BbZOk["B^_Z[[/,eq4;LT:oHXk;r5;lA( n@cjgaLC2[i)rKZ;OI:EhCnER4k#)1Yoa,+EQ$i6)dSr%2Ba.i3: Z6SA($a!gl$/nC6>X0EE_a72CE`nHL"`ZGU_5SWAA?W! (WXtM9Wj$I8P'8dij.S0aU*$(MBK HLH6'U[tq#JP7->J=na1WgXIWFkjdW;1Y/sUn#bTMqen^`7bA>(^c[!Kn[f7p8AYb(N2%5\FG-L0^5"qMVFfaV;sBVm9oiEHgj8H#OYoUjZMNTL]MqdZ!s]cpa;;lN)0USZ0k+_G!MnioBE=e0hs3r-CTIilr>3q]9?JfI)sNDPA#dp;\3rFdLnA@Vlgp74%r7>Cgf\N4eLYHU?3*\67rK]pP cW23D84fAQO=2,.p#g4RL\<&QdV ^;qPsYans`GF=XZhl-GE%EW5^<fLR8Mc7rU-$*iEL2T/ZkjAp&o.scbL;@g\c2`Ut7*/r:\Keo]K_bGOH2)[EF])dnR&TAp^JaLIgA!E^q\*L0aAH;o!`+A6'OE63l^,%c`P_X3/0 -1b3X516_L/Dmt`5 B\A;NM$kJI3g-**5J69q4m:,4kr]0<L1`rC%bH@DlS,]m4^6XAY,A>K=(+(V=OtTqc&:bh48P[RUX/.YKGC]^DA<><6b=Gh2Dq04>^*V370c+O5F&r,CEhV5fK)nMfG)Sr8`i/9K-7fO=b@T+\J+7EJ@6klM`Q4^Yf+e^kXIrNXAGn;/:SJYhcqAr=0shWAs',%1sM.3OZQcJeJI`fO4RV]9g$#h">h=C.AR^)4e&Q&K5,iZ-B(t$:NFV#FF8tY^GHO5n1q#PIMZ_0JrgF[%\I7R\CK5A:-rc-P6fFm:TGqbU_rjs$q+O(I4So>0[ApW!qQ5IQnZ5GHgr=EL-H20@6Bk(AV$0UUF_#f9(6#g":j!<iI!+3'S0AK@d#1A,FO! ;MDIY!d=Xf#.(EVm;^>Vsn&pX)b477Sif2mg^V1$*D#_.DY@_CmmU-8`$i1,h6^8U.(EtH9<m]5og)eJ!bbP[b!QGEpJkP@:bmPkCONM-(-`U]cXU]gC"%Mj,@f%/]*q*9;UYd9!)=Ne'4Z7rtB]b9pj"dpVkMk<Ai)F'=H Bh]=D#&BS9_cTZ]-B`b`F&?;N6baVT8Fr"t/gerd??\<J6Q1bLprbQH\C?&cHaVI*<5>A4d>@k<(tQjjl"\gQa7PArYdrTe6r=Fe=T9cYL&@LU6=r5r]hD:o42!1ARde,?dMrkU;`BbNYcA"=KM)hRQ`r\hoQOAA37TNtXr^(6q9@=N9)j6I!8CJJl!pg-_M;tMdSa2sD)B&*c8t/dY0;+=;j)*-03I1n 2I7F1jpOc(ocb%%L/XUj\s$EE2<aC!=>[!<;]8k#])^N+AlXfNZ6/jO^Z2^!R,"s'd:k<[[^ig6Z6W<#(\l5m0+^GHLN:tD`4,k,D:V*HTp8)O_K7DO[>f!AM&]rN'< MOn)D"o@mK?jmgi%FltcD*0.@,-H(e6!!F<5Oa!Q)A4OHKi=2=NDBR6@jDrV&Wj.p`!VSUb0Gh8*Zjh-X[3(Gg3Nl0:'`YMLhApqnB0#aJC$$_67?8k]:lA:+pqsqs/Mm4jBpTGGsKA8RH@k$)kJI<+c^HbkSX0%Q6i%m;?7J(<X\V\G.lX)qP]=#7?7HPMQA>D&q+P0N@9)JKEX!8dCA0b"8TbCZ-4C%L?#,4$UAo`9IPt"K`Sf`b$7?,ne4fS';ok_3l4HIS+7H,JV(5[NqX4TO0KdO_&'"*ZKDtK30&f;<?lD/2D8O[cWP;=*.I.YV<lKc;^rDL)J(OgJN/e4Llt[QV;l=qRjX.7=!,$.X15V:7[?[j/:bf,_PN?[&7K9+`.ih)Ce^:oh[ArJl(9\+)pUl>;*"3p#]t1@ZYl82b^sjLL,;P)$tJC='b,pm1Cm1CoL1(]URj,HA?_J9;VST47LXYmIq.O^,!54Q4RIsp6QWdbW9CZ0g-5J;Z1i^4bRIk96r.nI.jUBUtc^I![At*:&UE(KjS(/ Jd]<V?>I,aAkEn]?QaL!&MV:b0tVF\$_(<SjK60T/r[q;Pt41mA5qRC]BRQ@pX14>fq__Uo3W'>*p+6%E,[*>T5hJR^FkJ*$#43+VhrK&&p"?K%S'r";pKQ_1qb8JL_:#Np5>I_Oh%>m3;' $k<As\P,Vt*bEObBn,kh fBU+nb_"'I0DD(6l<oTJgP'T4c*.+fp4JsAP^/!;;8Xod!mJ@s<1Mt= +pNUJJb@%VoPc.R/,MS'l?/8OG/H$1,l09FJ('-2]H,!*2d2>A]i&P3A)7WUXm*#ZnF7kU 1WcU4+/c,^ -0gAri,BK K=cYV*G9sXa#/#<iK-Y]`m` <?SYcX!]$%0N^6-<p.&AGO.s99D)Qi*aPR^QNn;XEs[#4RPj`<*i$/LAdh>^jW GtqIn+LA4/bkSW.9MZ)ZRbNBKV_LN\>$DohPie]e3?rjWX GP.8#A2O5-\7"C,KPlP5Y&U2[KlMQo25q.3EZ/#]X2UYU:gAI"E4Yd2`IY%O<$ptj+Y5]LR'G?P^<NsgI_ReKZpmA;8UocDq?Q[_Z2l6O&k3#f"AGEA(!3ZZ?-MWZ?HFP%E@kcCBcY-\T%5'#r>mRdRd'qh/>A?D<V1=tZ)4NI)B*EWZo&jmiXAmqmZpcdMPN0mA7MEEacOQF;k,<!a]92?7Q#=KY;>ch4Ys!%UG'FYh>6K5g'Wo]c.oGTbGS-?^eAW\3VOP=+T)_WecM?5/9/6e//Jf,$7((V@0/%O_k?8A&H!C(gZA$\lIS=bt.=ZY@%!*`3#1(<:>NNP_$?-H;O/FPOsqr#q?B!C3%4*:JXFlF#cLCIjr`AG:B!d'B:ai=HEr&4cICiI=dGf.F'X;M6n5/S8'LkO6,6SRf"?UQJ 8,8[=tiC(UO]J/AYl0_?+#]rgkV$$.dI 7HGbO;WJ8I^^/ZW:jj+m+ZRir%>jmWXkmbC"Z$[TT\)Y[%)L_O+>NLsS-^\Kr>eStgZ#G A:R:mQ9l024<FA'(Cl,B&kVWh\=L2ERI8@k($PEKC9gDV4&.Z#nAD@KmPcgt1Jr[\\6(orWJcH[!Z2B<ikM-PQH<$pmTY\`'3d.AT;,tq<cesEdq78?HYm6@#LLa ]FnE%MAW6'Dp`,]efmi[_-D=;-rB8'DIN4<PEcrM>Xb[V]M'lGW-%sjY%:s+b?o?Oqid<XES%Fp1)RnCg@Ab6dfeJ=tRP()n5i@VE;W;jJQaJi_rNk5gB"LVAoe%SAp1?F'I,$!Zg.TO8r&\c4Tj?V(B[N!&[p`Qe0;b;S$;]A^mMlFXhq^Ye2LOI%`SYMBdf>&TFsJ@HLOL+=1SP31P hSX@eR@61(H7f\W"`mdPf:JlLE\%sVboqP4m\Nq-1j^;jA3521f9X,Aj8 h61c=0G480E30bdNHdj&m!Dp.4OQXj#aaF!H!=VO5-2R)NsdM]o;)bs d/2NC8_'%hG"68'4CP22i5 ID*8>Kok0XF^'mPq6em/"*-0SQU`KfTbIF."oVADl9.i?JbIjp!>4;qd>\/mJ%tM9S^(IBK8CF!'a:/*2^=R&TVHG1AoIgh$;4MMC.sTZ18b@_Zo#F^a'lH%VkRFeh2WYgs>2'$]7o 4)V)"jRBN-OqbfGi5`bUbEG^cc4TB*.I,M<9sX"\hpBYZHZU&@Mp`(t:oi*W:4eUk:j=1q ,E77#5=+>#V]iiI`,A,]$+;aTN]qO^elX5gd1_cZJ&FRjfe50o5YP2'/3.:tN)GPGsWD^3FHn<Po<9t.kFBFP/9mJBM`>qf7Y)jBEs,'lX0J\@FpCNkj$?;b53k3K,1&Op =ktW98o6go'DlS/q$]6qIlD'XPAPmF+52*KkbNsoh;Et'l?WA^MS,cWZp(t5!bSfAhfY-_Q]XtfE,'-9JKs'SPbdC1h*.2MmDb#CcO5ZK4qR hc$;0*<<]G<3F)bo 'As'2@+[.Oi&<\UAp2/fMeA.>A6/$Z"R/ENAd47X+n*=b4Q+FRK00@a(!! leYn1B)b%]n7>`@,nF9q4>7"BE9fLGLt1!X3%,!\R5KBn;AUtn2@2m,"#sBAj`+n(HN2KR7c2Q/&9'N ^XS:_/A'igE2Aj<AhAZ6$Fft3'q+OB(1$aU=,m9X;.e Y'7'NM[0iCbgc&3f-IbkVUtpXrl/j3Fo)ola>G,k@@A^R,I/t:L?DO'U2Prl1NJqr_k&<lnWkGs8!hHDhcll%pi2n[h<GItgs0%5\ZL<AZVMAaF6fC'g7!rRX--,`]K^0V3-AYVLh&(K`i^C</qj6C(geKYFA@/n_<LFFh?pfPeP;eVO$,(]]K?i7Zkk]`%fF[%c7i\RUKTnKcM7]NAd^e3=bpDXtLGb`6OAQ&[<Z5HJ9F^>80fZcK>Og<s-&1HYFbg8i:+=@8TC6GL^"HdhZa@D$#-BtK;.,Vo(!keiM:(oDc,3m`!eK8`/jha2Z&Ch5ohpX1bFM8KJ(4*T_*g;DQ#N/SH*GBlsjtIsQ(*>'6c3$J];t3h6CH,g2P/MT7r?t,TKRN9\;OM3RbVC0bhSX_6F5R-M# Tg!EoD%SYW*1Qb)JLI/!MfTZ5""s:8<fd)7^`*M.ZA!F>Fmr0*Tp7P$FXqJ#%`#=_H<?MT[%;fhQrT,R.=80>i91XEeFU(m9+m2hA%ZW4E[?l`=:QW"mdF>Ps03m<9`7jB""<4<6$-`bCsKjMAMPCG2W BC?^;O17GSDg1l'"Pmojqq0\C^,I_\).2+#%I?.kI##'n*@PSh /o:lPp2Z4b7o0EQ'c7%>Xme8V0/+A[A-_n\L\l)=Lt!%c70O[C(7qZ&Xk_@jh'DphP</EV`'W[cV4KO_1+b_/GBE0&O$\aKSBddD2ne#fjf],/]]cZD!3)XUJj3g7mPPs:L#THo<Z&n4>/i7p^g2br/7boPXRH[Eo?l];bY6T&LrD@<b1'?tp2Efn$Ai>4Zb mjUf9>\b\PdtDQ :AG\H91r>R(6g6qAb$<S#hlo JI:@*8EHoEei9ARh9iB(=.NH&4D5cDr#k5jWaF>7DXRdjt&#mdFFjNoXE&]0FU;,LKf.2lK`7In."M0#RCDI4:C;p):5PNIKrL3?oqj=BUQ3;4 AVCAC&1nibS^kES7a0kLA50\3((0f?85.QdN-/k:in<)tFMAkQnN#Aid/G'-+((:Pf*)lh20R&gpeI7U\Yl2k#r3OD%VKs\#i>oggj6J8"N-QlI4:t=+raJWD%Fj [k"AM^O5frFf[K$SI?eH2b,*H<YJZnt5(@Ir6VDUKnPh:9lsHAn C4]AD&Q`"lqil1BAIW+FfiQ[K]K="X'dM&Nb)L*R!A?Yq1C'gS(Y0#U'52,4&f5$">_FN4iT_2W5`Dk;&ib\_qM+VUPX*#<Ftd(f`XXa]BO';.a61BGK(DaU7XWs^d* f)=8R\0C01IdA(>_o:LX2<lI18nD[aGi/.oBOg(s",&Y]/[.0Cm4!IPP7AN-tDC@o;5--DgBk\kF'WV,>c1!mBV<XThWa\g$m]O!+H,\9eSo%+^'A:iV+#"3f]=7d/^gA?GE6%HH@9rXC+ObJApe><4l/QA=!gg5c!dX"1f/cJ1P((2,_LkH?hi77HZ0I=A:fO?4 ;$FnW3F6sg?Oof1g'GCA$&]Y)..5U76;%d!Qn+-kp0BTl'km"!0[bL%2]?d_Br;oa(Z>qta.#5A& 7P;BhDR&rW^c(N?H$ZG&e<h g$)pfAlGAf;B)gFteIi2E:N9jGntD&QPH*InJkOY,UN?L\/>E-b0]m"^:$D&m5aAeh=a_.]970#lT,`a5A]BVThe@Uk)_8 ZpR+H-.YTY3;1>![%_HdMoDPG"s;(hh?NRqHZt"eroGFR9`2OY#VA1#2g>Fn`]<sQ]!,Mh1Z'3Gofp(K(sF(?BUJCHa)%'=L?7gb07T-&X:'n"3`8jh8kaK,]9IG6\/<Y7Q7q;RkiKU%r-d\^d"Q'6c?8;oca32VQE^gU]<0tsUS7LHp?1kSD:$*-:H?mB[-IjN/a>(`5fS$U%Y(qmE"h Vi40&3B5$.\'V/S^Mh$\P#,Z%43m%R()7^iP$oVJV[p@6-t)n&\87=]I^1L\7Xm$T9cp,j7KZNa<98DU:iHc [F!naeI4_E3A15X=K/?&%%JQWN=Hd/_DN];2 a2d0B4+h6($ 2kUAp^im/nP ZYNj/+7+E>\t@9r<sP'k&JX9 h2^2QD0/;go?MKAsS(<&3AQ7?MN=Y(hX9#b<D[$?'MdqLikpX1?<#JAeA,Al)fG.!]CD-s_Ua,+/LCJ+o:SM*^93D*.CY0A^#B<a&mO[2Mq8esn=W,eEtLci30-FK[YQtMWT54=])XZ;HUZHN[`P59LeeKg4<k)2T&qCEXj)?_&HTFo@r`sBp6[,T3LNn:2/3&kE;=g:.(UH3`[QLes6A!@LRj8:]U,h)=/_'_!j`(\ H!Y:h=UA.sclXI?ASLiA2hZ<]`!HI4AtQq4GPikAtU7!b*@aDO, 4?s$+&T9-69GP9Y^U%#@k`7.hBR5Q:s7:n8AetPr3XLSCs)f:K-a9lQ"Z`fqsi0$R,4t^AGMR4`B5smUM"H'B!#]&R-[8de^6X*:Vt]6ZU5(6:*$TNY_9nBPd^4GTS&ejf5Qdgl!:r3+P.`Vf$g#qhm7W:A("#<bVHoA5l^LAN @=:)PE#&1b;LF[G4ER<dT aaN_pEWe=<WidNIg_Cm*I&3m*%k<?.U8^XLB4il7 33F9)/hf*'VOfP>LReJ6M*/8L>="H34g#/NK>Ad1 \CmZ'F^F6E`PKDjC<g,dB]Rn%Nq@&CU_r_"+5=832 /C`(564:VIUVLcC@;G`2qc>)efPUQ&-XD]o?Eo%(9,N3NA#Z[P\rhcrL<84n RsP^.b+KZHk#;\'XYg'knHL3 gJ#doTCiI<lA(Zt`]X[S_4!d=JjP$*n6NPl_<h`MeAmQQQJ-.p6;-8sU]aAG#gl*/V>%XZ@alWl]r/9b_7@0q/TIMA%=L2AbG,3a)lo?H(]!$t&k?)a?b;gpK@tF:H)I5+29Z@Fa8^58D%0DO%(5564 (&RH(!OdYt9-C=.ZJMsfhMR%ZFUc(Y\\5P!gcVp^<TG =d k!i*9tW,f9'PY ,N@rR*Mt/]GBr*sno2/TmHG];M!7a#UT)53mfKL0Wm=+QW=:$n*8;Sc]PEf@b!.7XL0bg,],2MN+AZ_UUA5HD^:%=e,_A3Ep[p/B`j,lde1I74sV2@(L\_L/U$g)&4TH'`tSC2hS;F=I)=i&m4G1eA-$a8dDf?66rdS`Prp!B;)SlXA[N=Lm`o.4TtiFjSS):ep\pm)2,T`GYKK8P-6Bs7AXgQdpEs%3"lCBDJcEWZiBLm)*#P8'!L3M?,[D6AtH(#Gr`5Uc&=XLr(p:$97R'qr 6pH,a+G_VKBekG96_MG(`ps(p$6`)b#Kn*8Rj0Q@<d/A#SmpWSX-;Y+*p<>+5)\]*)N .1<"i-71jr$AY7p7"9T),c)=`S)N*B6:L0U*aW-HDXfsXVf&a<(l/tsMn`;`[l=;f&rbgcDP19ZEZA`M6]Dis-MCIcAO6c+p_Cjkirb!a@hLMC@MqCs2O`]B#rob8S>_U5OXA3pr&39^o:+e9h<W,t')V:Kr#7),^&"=l-iNfP?7jcT;/ZiA"'`s>i 'I3"4N@<qLlApX^qJt`Vt\.\=/QA^Id:T_<*ecck=d0&h/J\hBn6E`[D3[KW!mkdGI<[=!(1r!`NXLXQN l*>\J7Xa=lJE3f( #c!T]m0R<c$:P,Xh0(nCGc2Pk5LWZ/J2$2,aFQ8'$44__AEApbd)#=;YFi4t$aDo=m-VO\_C,=/'.!,TsXFDNePWVRJ`3;#D%`P7taS3N`rVBA2d?=`[b3(.@KRA82@U_TF^+A#KFeH/#2qiXKa` AB/[c?XX::Q4qemr`1IjR]5X`?\]o-( F]Ud8/Zd<1/AeMX7'MXALA.[EWo"A%')ZLIJgcS[>%].V"YU.*=4nA:rY`)W`4sGkr.ZjqmcYC0gq\QpDs<Jq5=BFg$j"4bQ#0b@%nsDE5Gdd6MQ4hbZ,4*F9HTgOPS[=['&;b<tm$,OahH?!AiR6;.8fL<+m%@H9k&=hLI=Y9V!2(p@>/%Qp5h1>ZaEk$iG4ddArO`raj:VV 0a9Co?8!$SI/:Y'1@hY75]?Ff'^? QFb4lTA.f$Yl90*85i)JDM)1n "UeV\ZcL6WMYrcW7"8A=OK YqMAG+\;q"$Q$C'>(S56?>3A2UgAC#$.EH]?mL2VM;j1kO[A__NaH)etB4AY.nDt0PlpQqVNA`@O>JJG]5joI]sKc[gAJ3GibCf`aceB6$AQO@=hcmn[:%9WVS$?\24 o>I^]qF01Sc18 KGW9[F]`I"A$rA]$6Q?OnpSHiaO5_q'XZfnP:UNHje<=W9eXhr+2qdXobd8)-FRk2OK?\GH<Z?V+jY'U!IC6$5"WL;REHI2kE@>PXt\?Wk`3n?d%5iZZ.fCG#MDi_2N&OObPNm(' SW:B8jX`%fFdY+_'f#)B?:*J8sbf$D8f.?<&Hh-37eQOA$E [(Z6"/H`*"%I??Gn<X&q5,@D!$gSMs/ :*&%b7,-&<;A"Bs3CMP]<&$r=Mrl^`$Gg"Pm/521-C>ldl[&$aZ-6gmUAESdC"<mkJ[R4J_rn+E7O4Jf9]atEa!sU3OA]#XlrMJo,JrZ%5d2]d5Kt<MD^J>t`86-WGc'm0cgT?0g.!InTDh,_;?C7!-SC-B f9t$\^.0oSHA94BgE+A2)Ca^"&sN4aY-`fF_N`'<!^NUk[.05sj`2-7AO'WBAAP1.h--3,AA';bdbNhfL$p+p^!7Tdn:k V+oGCW]j[IHOC9Od!>8''4mTaq[2kH70 i+EJh<,N:0<@Z`dsBKA/E:$];\j-9O5#`\Y6.'F4+AAI*L >.+Aa"smg1e-;U%U)M/>o^#f3*la>+ E/j!4FcZM(9RbWR0'hE\*-A68[F_G?dIbeH!+cS<,-m6L^8Ffa)]!9>E;kkaW%rds,W+a6mDnhJ2E?DU'f0OBb[Oo&>"-\P2'Rc!Ls I0cE'nArkdfYsfo_`.74[rF` Hi:9a(?&:SprMXm4Z#nC>I4SZ3Zoq3E3207!e`N7pL]?ALII%EcE)UcAsE.W2Hp;H9f.6+, ghLDk,_;h T&AP("mHq/_[9kfk(L0+c_kI+X[b[n.99_:>$f.%.56=4%s9A%%'/"LZ^Q)EZe,i%eJmpGE?Ys+0$FUa@=fjAQl!/Q.CH2_%2AX^<_Y:3SJ]rcrXA$dP).gd([HQlTq=]p7/]!LO9*@=ca0/Z3@0FIMFf_siXZa@9.G&^+ C Fsf!VNRTJV4"sdYt1e`A8fG#/1shHkP&:Bo8g,r^['#Tg?tFsP%J''$2>C)+>P`r)'DP&/J95^P fLEpi4=G3)34qS:,XGEEiEqS$Qj^Zdh7D/7C"8KP&(1=We<URP`"(9Pbg@B9-_]NJ)^]ZiS^XdL3o 6ns+YqAs/7/c3+Wi,kVL6IioV4,5s\A-jfBCQXt.qR/JRlL9B:]=&[f0^A(L91H! Pj?F^B7M3R:So;X!PA@p0AmW:_R;T!OU=T=I% @ZS/4#E%;gF,<k>3^kEtL4TbtU?mk;.VSrCA$8d\08>K*hJib__TmH4e!?G<KqO6^Ys`b:?/A"h="9(m?NeJ\'A=6i*'R+G(<"4J$giO@R.dsT#icqri$&Yj 1X2L_EbfKJJDg[5=eaGDWt=A>5SN_49jl!&VAO^s"^ PQKL%5)aA [@#,S0O&p]=6,mKq=J,mAB.<#*(_eS ii#NK#p\H>Co*SBDXiV`"%;o^=4VaGiDdCsB$H@\[  FiZ.iALhM>=p0R8UoC&CRV_OUDI5@4>iJ,%'G=Skgt#hMR6H)Ka=91GU[ao9UJH0Ym]S:ZY!d,-1$1"ae].!Ao&h-`/L"ej3YYI.Ge(Qce.Gn*QrSaX7WtSP`PKoVMA;KN3/?YreI$!KB'/mi/ h^$W2`BjDB@9p_JIrqFTq22\`WQH:;")70d"di`KBZOp"<:%U6/-@@T@:KiYlANXit!UJGtk(.t]$C#o+k;:WA&DgiP+TR1r[W2n=KD.9,<_F>i6`85t/+(]s:7J?78q*>>7Q' (Gta[p"f`;AAsNQntj[<HcSFF"iT%Z,P]j/G4lXD3O,ABJ\L3N%PT8_[='i+QhC8A \.X9$Krtr0WPSG`"p8 tU'AJ#e([Gq21Or[em.EB,"-r'+:\t:ZmBb*&( kpA!:63RTsJLbATN`//D$WXRI7,UIpoJ+jDc`<1tVGpW$Pcr#OHRPs6hbZSTU=mkPVLAhL]>@*^q:UJ,G"`'&/)?BB3]4c1p%P,_% +/?^@oPQ1?7o+ppq"@$J+cK4!GY">?J1'-1fA_lNn/[rmG1,_j4oq62Y?^9Q11P0E5'0'3J+tnBlP^]e"0kN3Ekc1WonI9-qsMs@b-.'/AACX:FY190e GgVY!hZ+ Aa7V`Z_k0E865">AW=1Dk^,,nadpT?l,%$1UUUqnh51&M:W,(UFc8Knc0ULMJ`f8h]Pb><?T;qgM] pUNi?FA*HgPa*Ig6rC W*>T*i_Y$RHG5hsO 7bb gM/A5A'5 5,*;5S82DX%QmA5fgNi/1&P;q]dsNU41[#D2D^Z:M&[;0>b\:7jR*e* _H;m;@09TTsFcjAt-$H?DmP*]l<i`33Lth-ObZ#[_K:E1oBKA\U%ZRW/$HD3JrZ$M-%5!t<7.Z0]pM.75r+4gI;5rS?sXMr`\0Dms:P]2@-S@b7hF\ N\EOW*Djph-em`ak,Re(UkHPWM1`S@_8=pfcP8ZF.\sl9LfGbh6r!*fU Y@Hf?V<BLY49;#"?\^aaUV<$#)%"2a4O'aQ,IKl.n;^dEAqKdE4Z(HOgOB@!\-AG7!?sUlS$?.M)&TW25Kia=0F6!>DaNQ=><7L_aC4oAT*BE50p%_nI),^WUrm>77Ah65?7lQMn<"4@nc]oi3t-A5qp*BD@e'&XCij9#C.FZ6\dt?YRb+^2EJtNkB#o$)'-j*T;Y!\55BHQ"*"fMtP2[jgYr:N!ncG>:B^p=+AK+8_oOY8Gd/%R9]$3`o'aKE34?h>E9q%iIQM-+L46?T]4U7`fUoR!'Wekf._+*ED9<%CIS:^tD+/dd>0^3NWop?Inj>Nj[%&qpVWQ<<'dAhmO\pAECmd2l&?<e U#5.)HBCb1A-KcG/MVi8]>2 mDI:dVSc!3[<EGd*YLii!/6_M:1t8>Z`'!%dlD@8pAKZ8!mkb^^kWP[l.[7\C)Ut\hHaj,H;QPBdpohH]fdK?O.A,EX'5g-6 ZS?]! 3rTg@NE1_r9>p K>[;D9OjYkX&b1g4#fGP? @VHt"HUY@2Iso4nIZM6TA]&Uc]!nEHLj2[@dUd"(f(l!VOgneeni],`S)L:dL!&h2`!,$F,=5MZA4(5*0m%#/'iQY 7D&mN=2VB,19(_Rq]Df+Y!\=HGTK:1J?rkOLae^5`JbE9dah/X,k\]:A2<imn=MVE. M/HNTl8g$m;($GkqHs&f$HhGKOfe?+A)F:2^73<l9KSBWWr#R[/#JXY*;&'R`Kk/#o9B;rL?Aj6p8DIeFmGefh#KQA'@SL;>h.Gginn.j+Mb>EXl)Xsb[NNF"Bltp.U=0mq?THM0*nHSblADA&aHj#s#Tf13Jt4@!6NKoK(d5.TLh)9Zneh4)7i=N;Ns?BA5kc"=Hc7gUeX 9spSSBdPO(,JX%a]"Z_fAJ!:"Ds9frG$$lIrib./&@O%f(/`P6E`3T@e?Tgo]rbc*+5IM:H8"GN"j"Ti#37eB@"h44>+B"gCU)eXFRsTHp[V/&a QO:W<^A$_:tU<b4#) Vc[$+>[/0"2>T,YTRNY Sn_@0#m\3"cqBtQXY'?Ial2BW6nhIA\cUc=c B^!d<XT^L*`eK"'/$fD(;\=]/OUWNB>^W9^_-2_/qD&1#nst7C-&W03D>ah.%AU2(Je.AB.e#GZFFZRP_GPM#E dNaY 0VP1D8d.hL-%'UnXRtLI@YE"@q"QSJ5*<S6HM31gL;leT&,%CIVCA<0o!l%V+.>.<l_^.0p59j-c,/D(PGX];F20MbqZS/71H10Nb jUpp<,XgB: 3]?!;]nJs]66fbIH^W@Q'>1Z&LKison[,3VDs[^MEaS]Sn[35_.]M@DNso)?sOc94@$QJ&533m.$k%T[B?%5:!;D95dCA<g8R\ U\YU67Z/O)%6r\WpY?+3RN+$c] 91:cqN'9s[U?I3^bo3"Df-2+&Zp*=A$O3[kn#a>t"f8(M/,$_8@4Ng[TBACtPE600l;0IMBA`e;JD.6+d_!,C7X[3Ap5S+JkPT-T>@p*HfGgC8G8l$Gt&;j qFHG47U5rP;'A(8RiEp@-"gq85#djA?-M8U8l`BjW*7"o#3'\$dI"Da38TRHP=P=b^Wq0LaaA]%K'8Ykc<M'RE1.ZAK=cGBNZ5Q-ehe`7C/AZIBB565C!l^AsDa-_H!W:e9"//Q23bDZ<7<N;/8,s5\C;]dA!A6*5F]!R1^_(jVVN>HJZ0>RVokpZ#)k4 $Ta( E*Tc`dt_L%h2PhE.5Al1Qj%)HdAUd<e1Cdhid2]iBZ_)Y&3(Vs6!.kH\E?X;EloK*@peE%tn(n-8YnqG ]c3_ 7];d4;IWQ8\2NQDZ:TGXQA<7n,eM!=OH6N6Zd+`j&PR_??4^pH/Hk]n_*<!#RjQ_A((2N9Kq>@.S4R8'+U'p172,a1$&m'*N+8iMb:A&]<tDCi8/#cSI\a9V4ai5LalmGl^ogSk@o2VRqGG\[8,@&4;kt2O2%qgLmo=D q;O )14-B0dlr>JN+-=Ad,"N$NbM?d9GjD's27\E<@s&bG1?me7&qFJjE?g)-^fUf(SoF1K_\<l-"OTQH`-+4UJ_n`D=m8nTN_t'3(Rm!*A@p;=5oH"qq4B[O;qM]t1UF#Bpla1KBSX;K;<?]9ce_eYJ;\1'*I&lp.jHTAeLc9tI1g/cQf4D_mTP2_lsaRnesN;UcM%GQS/Ctest/sun/net/www/http/ChunkedInputStream/SCCS/s.test.txtaA@;pe?>W!jN@`lf3h*-Ud%8Ua!AkXGOL%U]+4Ol'!5J)M_!`X0/T1,N^(.SC77FpSiE_rZ^N*g5Ul:XIks/gDdZs70+kKtZ/sdg(l6mE"akc.1'.6) OI%<l`Ea/YCkJe%/+MrAndHi4!CXC>Xoka[%<;iI!q<$n0[X\X)sJ>:.4trHQF,< =UMci)!lr1H'8bAc_m\8W7C0[fP`^sZU0W?$$.%XAB5G<%JTq#0L7OC#F"3Lb#eC?XB6:[2%PM;S+e6!8p[lA*QK7Ci6E)FZNRk'42FmIK"7$A NL!DG0!ih`'L'-@jH*PF0+^e$4336K>LoV!'YRt+!IpKM5o7&]JRKrL  qaLj\W`;_NT >)t?;[?')A\^oa518(VaT5ifW7i2_DFA=.XE-R%Y+TWiZAQ_**DS@<6]AtYN3qs=;"t+ni@$pS;*K)6BAta'lcX6kMF2Z:H:<sDr!kI2UsDG8"e&>].7)+*EOFhSH4S;R7:QU`N>c.S9B*o6^F01lSo\/NX3nd:7>9Nn0! 1Jm7<hl`RU;.M:_j%0I8 UQ"L<++5*<OgN2i&ckKCBMBP`(i<rapC'm;/dces:fHsZ"pn;n_R]e!FDA\Y_1CZ_j8_ONkb3AJGAO1)elqE_ZPp8E0Cn!dGq#hqH[gf:t1=al_H#OX.BS0)`te92e0:.1m[nN`/1Fd#c3'6J(7eCf8g^$ttjOKk'fiV?&mR%jHYc[teB#73Gp JFp<a,K3._$NBH8i&<?8dRR^?jh*$3?S'.kmCi_N`4'_gLkJ/Ag#gl&3L<i('OhGXmgsC*?$7*EJN('mD2LM27N9geZ[-nAb\&:rGJ;*+h6C!tp$Ys("dEZUT3T.79sh"%Loo[c3ajg1SJ1NVnZsd/ HoFS(eq+\/bI.&ftd*gd[,#:;`Z%<M.:4&l1&aY2?'_A90V^ahK8W1P!*CtA:JQ$L417:&]g;nnfo\`de080A!dBWZ%OZa^1-@&Vf=(4OSm'<XVgL&OUi[&ci(R'<G0iX&V3.l.a+D]'p,cJ8El/8A%_8o)#3G#&F88V1WZ-)=m.D<CGCrNMG[CB,m2<\1%6BV10q46LoQ+8`LBQi[_sP]5@cf"=/3]]0$&+3q0pF([9(%bA#mm]fR%"$,Y$T%JR4T]^p=&e5r'<H"ra,j5T W$opW:i<GJ)^6s2'oE-W'fiPn`aIU*@G&KSbM*NKAeFjf$I83:X)tL*6\4(QjqO"F[akAH];)DO&7rETrNsR_MRBhNM>c8X$<5`jQ9,r;qNsognA[a*D2sp5:J<P#?=K<pO3XA>lS@D QI+phUn!m(;kKD,2k+b`Wh\M3+1TY(, mAs;!2;NTN.U^ /L2%D^'L[QT2Q[;4OJqK]Ck7E[o2IM7CXBLW*m1?#s$* H"MR[3R:[/.gC\[T!`2h0oWM]*&K)&Z,Kh(JB1&.eHq!N[M[AA$"Ee"IC1\:j7:DPn/h):XZM\OPG)o],.9]NghLT$DA#5Cl+I# V%t[!l9GmT;)8AOiFEXoL^(2'AVZMN#>0;9L?,JF(gifpJ_*pOHQ3o0:dC>aAU=kJnrVq_:;m5r9BJ5Y)df/`3nlE-6e:^i!!7@!b&&cK24pdA]mdr(%hi@YfJD1YJZ(Ddrj08G:J$iR%o\o@4aVPjB0h59$ek;]W)hK1B1-(^=.gD^<1Hgl8LmF9M*e:B5`Zf9!)IH%8(l +VXME\Bb>IRe8JEQ) XNm9A8j5.Doi^+%c&l;N$LXq4]U/fkm$0$;r.q7aX3)I\b[`RhVg\&@]Q.n/>g 70`Ugc7pRQ*LplB&QOro5!!g@8HMZB7@,8RtoC01JED6o5:l_/e'Q(7hal>EiWOh)`KnQh+h?5r912!?'r5'b+(Y,[Q'#='!H\( _`CBR/d;`6AUDN:%d)@n`Ag[,#mPGYWrZ]7?(NRG'Cl9$oCS@^WW8fL#po4`[U7&;&#MQ4l9T.Pr902kA!LQ<N+o4/=.N[=@dpWJXQ(U8 ks)70(nRiF&HE<1<[YU9Ef/ 4+W:0o4]OUs%@tWD!+Xe`%CE:J9;As:KGch+ORBct/"^#oRJiU(*iYS`%]_M;L#8f$N!*,i4DD3ed'P_]VAg4 oQ8QeV.h4t(=':Oc,JYWD\Y"?f1ML^)$oh@k[O;AjZ:Qp[\/LKUH9M1?N`/J"?Kih(RN7J.$.]Arg5n;_M8;>!A026pHaLYmq2=C"A%pr1rIoJN:ZnX5ejVhokNR_#X;5h&]m&_<H) f,#*!tAX1%mX]W(\%!('#QAFpP/nAi7U8Z$"3i:s"2\a-f r7D])pAqsO,JJfT9PM0f$`96Vce6jT_k(<Lj#$$=G\U3\gS1A.9=K=#\+U.;SY)>Ckkb39/GjZkTm)8VkLZHmj5%UJ#G2ngHtb([`WTN$Q+33HbF]qfKqUmRZ3H$m9l6*G06>+h g^<fc0`X7Y_\aNE]]X!`\pTN9=t:br\LS+kiB7QJV=NV[+E8H<,n\B,*N4d+@2ne+A@ )fq4\\NZcMne*\a%6hFY='!%ZOcneid>`NWdnW*Cg4kkkteOf*aOTRrN-:\e#%2m^87^1[J9T\#&ASQI9[O6gha2]jqa Id?:@^8]ANc>@*G&.(W!%J0?U\FJIrV&_CKVR))Gs@H=0I4<i-`B<OGk)K6L*"Z;MYqA+n5,0Sb@P5VLoGcM+/%\_c%-+B9,@+pa%R\/GLC2 _'cH/oj3lAP8lDp2?C.X2.9Vh05c@K8m3/:%$XI%i.1jr`8(rRLm<KK9C=5>f]-MhcM';9"l;L>dm-)P9fUJU@G*`SE?AVGn>AkA &gtCe`Q_-Y`I@AZtkJq!oD\aIZ5H(X;g<O5U]Z\hpOjksfb aKpH>9K2fds^;SA%_J"<dnF._00$)+VG:IR:rUNYf*?e\0*KBfR2beA&JnC7n^(b[*g'ZV^Ah70:!+*UO?pAPZJ A82GEHfAkI%f=5*?`,-<Z+*@k]F3=-<O4lmie(C\:#n-OX#+-l3ENgb3W=88A88&IhM?H<5#5:r?r2f8+WqQ?B@*rUV=DW;<ARrQ\Y)TCX(j,rPW8T) PW0_h.b:,&>Eo*"F+F41H,KleCP717"L69Z%5(Ah*j%:q?HH.maa@to2VqoQIm!5CoXk&"Akk>%/['&bP\X']n-A.)q$1OA_9C4AqpW%f`U-PrC< M %6DqGB<QWm7X@O!flCOt_B;2lmK!KgjG*'Z`_.:6_9k:-"ZV?+KZfg$<EYIV<'s"&N5<m6ok"iFNPZ3WJA1AJ*A]#Rj&pC=hQ*?2PX7Og1<B7_>\_bYLtdAd)L$+4'd+6K/.:ANU.5nk<5$9fSM+,PIESS]a'Fn"=*qg5PO-=bCW7EhL6/1.=hgF.JkE_GPMLs7/2WhW#ZYGLY\Y 'UTr;M7Z[\e:JIEAEjr nisP*ZAD%%X5<U^UZAQthgV]=YG:R>bLSMC`_0Vg>hbD]l@8Wj,;CX(K&3XT%tFR<>F)'q*#R[bcS7Rke'E>_6IV[g83]4@QT,&,. ^7K>nL=N'[,Ka`2s4gerT?c1>+%+T9E6_""$NjT-]_A:C,\O!<H95nQQG>N)oLJN+cIh>7M9P;I8f7L:FJ`h[$88Z#".tae"1(Kk12CWL:mUi@[/R^6[Fl?`m89[Q'7MIKRtbVtq?jZOWADLb)5LfY9NDQlo[I'jbtm>1#s;n'F)J\B&X$T!9sH@4@gBL"KZZ3lpNV*pm%E,i]i5PQY]K[8M8A02L]4.P_8!6oBbT1e4U9s+LmG9BX1a1SoTJ!RArs-M+4oHkM kmbd?dm^IE$`>fCid0I^j_FA6VAr11+Grl$h=>6ptU>V.D$-Go<;AF@[>3j)B^`8scNE>>Mn-B>,d"H6>3]6_[`pbI Tli@StiR;]&^BmL(.O&<D$)U'*n7+D]7<Q :G`sMgokVOLI[nq#W 6D4.1%<PE/@nAYlgm& 3hAt_NHU&NVZefQREB6s),R:I% d_;.TZJdm3T@A<^1 >ll 7T:H4n21BRe?`b,Y9@G=BC`3%/f8^#S]K,AJ]Cd>%tA?@JhO+3jjb6mg.[lFKH_N54JI^7n+.R9()PAAj',,kea\.,*heik"i@KE_Wd,=KmhG]")2:_[JOp,G[C]tGs-d=!_7L_p<MA5,rL]jb*?p1cq:S$NLHAn)eMOLqiI\PpeUhSl(G^-4H`WVCG<7]Vh4i!U_Z>b\'kZf$1I'2"0NlS5XXH\hW0+tL6tIa8gWqDQa6SWil*jk4V31KfU#h!L-(2kYC=6RZSMKj.M&W44@Wikh*,8+A/k=b8h5/*O^Ei T.X=b?\bmFe4p =Y\%/5Ad:(39>AWP#ASmINmgl"gP8&^icBi;B?3,qR,UdC*COaV^0r9^j'J/g1'^k gr`W+8\reRBgta9P,Tao#^njl!.aR"nT:YQMp[+;sLi9m?"h, J.7VpH.?LB&'75J%9JoR&iS@9[rK=UldXCCraQCD_O("f>ahCTF/-Pq,e*QC7HO%sAF9-@XEV5QAft?fZ+]j6If9?D/*Xq,>H]8qjGaZ,4coEai+qPAnrsoL5!OCPl#OQ2Qj9SNTT5r=@-ghrL#+Z?)f9Cn\^+VT4['%"0Apm \ajn%s;She/E2cGUe6S7HifFtC\C'f$Drqhgn6BknpXP`&%lOi=t-aD\j.X/SAW)7AIZG&UWi_(%A! I9pLp8hgsS>;Q;rV5oG9dLDI1=[E9K19`__]/68q4[nWZ+J3Y0X Xop\8bDX.*#el,[HVfpa#`@JL-`dp)[Tk#.:sZG[J>9<e\W=5V,lnp4i,<g_cmqV2O;)W5R`64U^=Ad`f>P$:LU$DZ--9Sk;"PMja,,b+r*i@qMY*07mWpi@@c*@ G'%setr`Oo i$*<)K6UY/`X<tP2qM,;.An2aS6=$B86<"3\3!731(Y<#tL*X0[B+#BEn%F6lHP7/K$p6 bH.PBt=V"Hj!-T_ 6@Z=drG0j5djnd'BD,"*5],!!W[4epUO)E7\jdeYUbPAVq'tY<R:EjX0/EnMLIUffM0"TB^$XPVSGNnU5K9XJs-4JnEsr`@4-7931N%+\gAh*>\3./4W,<S/RRGEA5o)#Z6MSgW<0TQ&V7f;*dNpn01YprAAPoFH=&1Ta5([9[Q8#D)+Xq)AAqE+V(Lto<RfAJ,e4/"RCUgIcY&g,:IiCP&i]?p>cg])P.^>ENU4ZbY,p08=b9KW;06emM0r2D]rk7*eq>]UYAQC)68bl4>opCE\@Cia?Yjh'DNB5e!*%JLf=/:.eGj+P4?DC_Om=IFNsJ`Q,R`E9*te+:d6sR8O$k?=rhKA_+]7Z]$]6aNKc[mmE,:FtHn"Z[SU`r.E6a;'n` .6L1QO(!JhXaMIO@+Qsq)'+DD-5?B4d$!Oqb!;,%/c=+I5tW,Oj<^a?%TD:r%f_9U]1t5js[JC>f&O_cV"rIgiJs^,mD?<?a#[6G(U4b@q`T#6eJ6.Ab!M3#lmO?hsEZL*(dkZ]c2=tLk(,oE6jHZt&N=UMKf'-,$$)6 #7**I>g(;(_GAV)i\M)[#kW''Ur!O*kP57AnnHY7[47,R[&9SbcXW*BVr;=mr8+_U,nUr0I_r^@ br^=pAgHqka3BEOph67]1U#"j3567IZTC*`oGdO21Q3l/V:m7$KdVE;bV28[Z#G.F^&cISNhZ82.emT>oY/^rs.//X=<$%]BB"528)tTn4ETK _5C_IZm;"&."APR@,;=JGk6"o.[?<%Tq4S+9WO,Y:aB#0J<DfKk(5b#5sT<s>LjW0#Sm(\nr`o/sP3Ql%&%j&<>doic^smX8+27 '4\1M h_0q6)99eo^tAm^GH!C'QF`e5r:ns#*bFm7-:1 ](B`E2trob<6e`^FeI\XUA9kMIt0'M5)T_IoX5pN`2C*E#\2AcR-Ns<Np*/%X WAd`q_JP_gEEM/1(Do<C8XgY#Dp<Xm/%LQ"81F5=N2ip?Wgm>d+ pqo5=;0JsKDQh+'kN'%;"o%:ChHIN$R(KD5)A7Jc[eHBs'!C1>3m(-fGVYj$ZiX/Q7HArA'Mn;8r.W]i6m8/f,>4>XB@MJ!Io(o'T8A@s(?h`KbIGDOkMW_XCee:lL;\#@1I:YO8,p&dMm]#h,*B[o;-E%qUt_O00%l[_BkDt,Wkl8g\6@:S#a302_O>dZ>*>8)Sat@-\/Z)ds3.<cK]r=m?rMJRU//=EbSR$cY=SD2([/I/X\8,[noB[3;ors H$FV/;4C":NeS_0Q=R$^cai6:+r^/&Yl?BQV,?edHXV]5IkLG/CFp[19UpnD9sA=ALs3&8WJH-Y*r>t6]-a:eLO/0_0tPT-Yen9(*eGfRT@F")SfYnV,$?L>%q,A7NT=/k'oh.kI9f.4kQK S(%_X%`:"%g0/]-iEm&[U\ARk8N+U3bl4(Z]G$9_d'hbSoK#bYreD-cQ"]W1T<lE#l1]>26F@^WsI QV,cpI.<WPTP<L0AWn,X.8N826l+S`=o^_M"<<ALZA/7J`TA+CmW%=Hpp#G.LQQ7,-+d\X_;XKsIh:V;?^EJ[CgDO=W^d5[HJX^sf<MV&9^EGckgbcj>iGi0/^_H5W^PS<eaIa+!`I#',0+8EG_45qFL6`VqR<?0'<+9K#6@b1iV5lT=n0;")M_As1G#6s;+SNtAoM"@po5<'RV))KZnbo#=h7%Kt1C9glfp7QdoYlP#O5<ne4nA`qaYG(p6W#-<'koFtAo$aZ/iWiDlbLFj)hl57(eVgAqV:r\VX@J7?Q2dK#4JmaK6e[AKpS\:Yc=Wm=Qc*a+n=HP$8Rca8V4""'\Xqk]Z-(ER'AQhAgs'qL4b#R4#dfJ9ZI[Ml^+ V5Sgj&!)!e"R'qLoig$a+22Xg$%Ha]aIbfPgUCH/Of>etF:UY-Q4GMPIg:1N-Ol;P#iQo3i4CE.]eYi!b.HPqP8?8rqMK&)%ltAtt7I[2Rc,.F3()Il`)9B[FH0NMiF"imOiBAAQm??^25+I6r6eonS@9&nM5t#5HMGTm&V?EMn(#^6B(X%X_4*o&["<gpegC;NPVl<q!n^mh9(G;!9A44i$aG B8._?n.9Kmt_Zj3VmR2>iS<lhfLWQ"r\(S.,[FedA P[:eI.[7%1=F9feY+/-pqX451L:lO'FDF99QQr3 N?7)e8n=JR*B9fd'CSUR],Qm`e@9#bgTe$TNn;aV6#'!Fl?D%QIa&S7'dg,JOJDlp@ZBl;Q#_-Tg";T. AT#NRW;.50QJIm9aZglf5YlG+?*"h7hZ)^Mp $`9&<2X_i)"snl(JEW0[4)D9A*/O].#e!*V`YXIe<;[*W !UY6+;+gMZ*Va^Ik&Q;_`Tj+S9S2b86$*Na;?ial(-5HWQA'T;rp/kbE/#9>mAC77R<pmk,dTJbl*l+&Dt4*$5l+L5Kd@W=@@r)"YYeK)RQhDhAWtU;jBHjg<n+XE(-4#rZ/G*/Ykp\nE;kb7JZ WdR86< 8.V=_O<HcE8cdW!\\&VFIM=K9)ZJ37I<2SNB,K`&9FOIdcZR6/@-Ykdb-hXdSi,5[#gb(t6Nc>7$h<(k9T(XHbMA7/&C:WHXsLIsj:_JJ*Pjpe$sh@tIp:F*]"#H8KFR=QiEorEFC2VZhO'(\4^C9qN<UQIrXifg19elc4/Ebq;8^U_o9Xp2_f(SMKRC<8Y]#)eI':0-CiAtjdVV#kZ%!3Ja3UftM%_[FWt_ =*X7()b^A7B]M]dog.cq;b56+MLVUB,fO0<,>Qh,rjGm8[JAmGAC0V@=G;mMLn%Va\ZK>niK0tYo9E7\)kK\U<#6(oX1Ngcf?Mo;dB`lpDI9fVs2>#Hf>LXnq7PtYp[8>:NaCgFI+Z@#As?kokS9%.00\jN"UP+F9*5dQ:ph\)b]Lr*Z:E)bkl q8k1L3mKlc\70&ZNfp7Xq&3]dNg@[T3&/p,id;XI54:&`jOVh]U"Gd4Y"gq5)\n4f!TN!A#lCG:4NV< ,%p`b<-4q\dt^n8b&lpgM+dc/HXAsPgFABAakW!5h38tHVne0prOK@GV+Dh;.A1#;WF5Pb &)A`Has6C#0[TASJW&\8JYpDTHK3_DE1RTlPjRrcm;G&I88C2CrFY'Lf;8c&sr&pBrTSsN-&LTj%\-ct[k^\Ro8JPP% J;Pg]p&8C7`CRLg:cd+T=L*p9VD+'[R$EPM"iniN=s(57WT0eU$K:l,;rATGAKKE39d=`!N-VEA&5[b!MH?;.kKP"XrkJKa-\kZ[SLD5VO,Z+J_lNp@2\HE6^^NO%l%+D0^c9>j6D<\'V;;6[8hd4)2r@\">!pAjXRrKW_:hPT*039!&)D^slWa8AVt35M?6^?8)XTqI*9O9$SGsX!cbr@t!.FSnIGf"_TA(FO)_DGr?Cm"*'hhOkF)C2fiNoDP8YCIkA!l0gOG8bCXsn.F'3=9#(A#r@K@Uq51k=@_,Qmf4;^p7XqnGH=0h#]p](HJ?Xj[>r>?U-4ZH_iR3c;LenPcIF/4\*.ORidj\:Amc]oJ.XFN-<es"F#Q3IA9>aNP")GnN[r.A9qFK;Uc;f<$%X>U+eU]\#pj=Z hqWM:MTq$/&N;eS&<8TLd:&Ab*r$I`^Tjo9Vr=O)->.eWoX67"jKGNfFA%?q-'EK=8g'_3k:PMOEKE66cTU99+#(D PREH#Xer)2ZO_:4H:'/d Hp!I)nqOrglfos*[lJ#rR&]ShTa)$W;ZKenVk`)S[8@?B*'3dHLh$9&h*XmqI]Vk#@AZ"RV8n(tC#LlbRUJ?(hjnf)ZtlUY[ sgHsHKC%1nREJFq+@D.nb4aA!9pS?c$#$-DA*6GQ568LTrtQOT79!lk2d F<V \=VL),,A*r7Z`\M8Tt-h6b"kK0iYt<3jNM1@,16$2'fZS#6XF?)@U 0paO$6SGHL?aq:nOf1 F=\]]8HI1qMI^MVRTRK8:rAMciqAYgWp-;V<*eim;N=!c,ICQf.5jD(U*Q"s9mbb +kppVO`fBYCr%5DOEt?.=8dQ,^JA)po"`]Aoc&dVOHI"D[2ZQ&4LUl:-OA-LG.k^Yf0cfJJP)jBF]0;QV_c\^J[AbN6.t,*Ya"nlm,m%$:i(LURoO=R7C=*pS=!=:El3k0PA:!Q2YLAiNd3OhDTX>Po5@"s!WY7q`=s1(Q^S90M#2I/3pHgkr=3IlK% 1r\_'N\1cEU!;668C<oAKN*1JToC/'IakSWG2lc`DA5E ^eL6(#RcT3"c,Jo5EJ&(9hWoq.];E;6#Hh\l5*es\7r5h`O*&,VFX>"1-W-JJErl:VNKbji+2SUDcdH0\3kh>c26a1h#6$8AV3dCAk<5EbS1Z 4`1CE7a7ELnOsLFXTVF9S =N$7b4;a&,7cUY2hr*P]nX06GrASL`<\03eZ*[lG`_k`i);at3041D"Q$`9L]YVZ)Im)IX<\62,DmYMR\HS"t?]o1:NBtH=[:>b#K&Y,$Qa /sl][0 &?pbqX>nU?)1#?jkC0)^$T;OIEGAQ6RT>Z2+')DgKA232na)2586_o1=A>?mBk.9\J@isKbA6//kpEdDbA]pCoK$f!%#?`e;Y-;d[<`&+=XS\&VAoaFZWlAJ#N\)4E=0tMCMKXk$6 Qd<#5@rNCh%7bQeAke(c)Vi0bEG/"8`maPqA!RC6D1 ZH8ME@A_[flBH_CGObF\AAL];j<a$\sCpRQXhFHJ=+IQ'Ap`NnY?@dpaXiO6'V'9=]XA:A^a@dD&9$;GmjRT <5BcG=72X#SW_-jm8NZo *bf$HDJT<F99b[a`]5`Aqt$%lr0[-IGP1m<L1tElo@J567#/\[)q9J!$q0RcS:48tfhg\?8I9B)bd)qqZo-;O$?! GR6O X7E[OqO++"X2oFnYr5AZEFqSNi!MAAJ4>_@Wkf?hM25%P6&fg3/0&ZQYE4(ABStJ'qKG&=YQ"A=esLc<W!hKDoiHFYa3?9]",+Q'qDf\n'qF1*Y3q%.C;,es+'SXd^dCto,X'<ZEel$Q1kos$a(n$G\Iq[].13;`PA4'qEA?X8o !Nn0!e5D<`m&GpQf?AL%/iV\WZtgl4jrC=(5eOQ(TAS9rj?5%,]j3>a`BO5b\!,Cs%U5WTM@Xe@59in0#Wnl2CGU/f(I.nnh8d9nL:.ha],dL%!O&(;Nq5MR]r<pR\#Sld##DF;Z[sJ9eGCe1\I&V&qCqEh8h*ttJpT5X2eJEi(Kf;)JQ`%AWI4g/9.*=?H?2@3-:$BNSWXGXdX1)$-fNk/7q72%GgVXc?7.%-7` Cg2ksnoVOp#K0K1'N*1Die>N:/Z;ga-Rd_JjKB)*`_4T'2AY=IC:d./8@WSU1) [8s3E[W#gm#Y]g4;[r>XD`LY)lAF4[TCgf$-_4' 9MH"I=N+!+g4q:;4m9WI.n/0dm?!6mW,,C==\O0^I"PPLZq2b^J$q?gQG-16I<rW'6]$dII283 UUW7V6D'[Vc)la!]N:Ym*K'^0$U]RH_N,U:]fChQQ;\"8\A.Z"\1-!mP#3P"6TY3:Q]6Dr:&6q:N9lYU2$QEtY]fR3aCR5P^#hO4:X#--91cW8Z96HVZ$A8P'm9p,8-2_R-Wsh2Ckf@4+@Ys(UoK@*CE(U":0=1OA_.Rqn<taYeNB30THNp#c-7\ZZSdGK>WAdHt5a>4J/_ls R#6\J5$X]o%<%'"3 `A*]=0>+@dhpC!UWb>_+;@E;ka<HZKR8T*,"<7J060U">\a h9Y9M"7Z_IET>)L k$d<W#+Y-)D,lI'Yp;_ACgMEQmhQWtn!$)&9m(F4VZDP0nWM,;dqgGt,rFM!A[#JCK!gfSE(h1im]f9lW7RVa<)(th@re]`/:Cgs>bAaL9]AM>As=oO(Pc-D5@p#<'NM[JQqZT[P=BLtscn*t6C+EYZ_fh0QSCk$LI0(a&`:jtpm6^%=L?8?]\F"P"C](I*(^fSr'$[gatV&o:&k?m^:PMi.f?//`>jOF%`N/ 7-7N>d(R5l"q8=<L2b=?Em0OkSR.3"\rG:o50,sp0GhRrS$)e%Af1^11B)^ER^@mjZA2%`/T]0Yq<A8`;XtM[+[,\S8"[\RLH/tc[<%6c mrAN"CkL=bVE(M';(5.Y&76diNr<PDD1ik*]7sprI) ] Pa /l.@O0Bt9-G'N[I(QGYdRt3&Gs<QgCJQ'DU\OZ$[8NVro_<T"8dt=Ba&\"MjJT[&ZMZ@'7 sQ.bMcf0trcH],A _r^A$p/*7\mZP"*id I>D^C0(-M&tddJCYL:UdMj:pZPmi$_;/0cb7H/1?AlmR(S62#F"e,&CpSQO[m9[-,&dal@DWZ.7+H!;etAsatJpZg,i*okI,S;8Ef`rj$F-N\'%=DM\;$jk (Wg7!2531OQ;Sj$^j^m0jU%(l]j-e$RGirG"po^71[Ie9h+(OLAU9a D4e/HbsAn<P,5@RG'M:#g/eVa@<@L0,(7)X7<sVT&,R!0V*3c%Z8tkS._Io(Cp^)Tah`r^6FdQ T8p3fXjBQ82bbqh8FNC`L[i:O8CX#c7&NA5p%Ph7Fj=Jg4eTV4_8^fBm.:L7Cqqb^>e.d%SN;;goAQ1_`SV 'N*3#kBs 'TfNp`_JsMp$VYrcpIG9C+pV7[j4d,5N^\EK.q1ff!AU9AQ$44B8T6Hg=T-E%"VjgbM%dq d@13`UgbS?#6I$pdl=Qb"p1;A-Q]0Ro]bA "k&5G(8>0`#6)JtrC;_hdrU@CBBrb'%$C=ohkmZ0Q[\1a4A'8l)nA&o0#<TM1aXEGm9.%BqO^dP(H&?q%?'FKQ&Y0g];8,Y-5c"f<1V.t(%#H:;ek!imGA"`(k8+.ak^_CUl(T(eZ@^;sf0!saTpj)5peDp?ZE8?S>n'=3!iZCh-<:f'ZOb0<f&)cZr,!/r-]^I<cQd7FfbkOOQcmX@p`^^4;%OKtX<pLK 7s*r3W)kWFDn^J sjIQ4/^Zj=&7&Z:\&+\^%4-5bD^siO^5:&F9d'I[im#fMPDHhVJJTpJ/sAabPtV85*Qt2`_!2GePMb.g7E+`D6)]:dFAYm)>;C&mAF\[7(f7=KfAhpjlM7RT)%=jrK%C&I8J2&E8,+c"mag3<rUK6+FR@M'=@L5g.t#$k9Agjd^(-I@C7Z'!e!''k`[Nl'km5P;;#i"OfWWtNVPKpZ+6QS%\3l;Ot;d+NM,=h#Nn:&]UFP2n0_>"re'""-#rrA?O _0G;KM2gQo`HheqqRGAmAm7"I3r2WYc'eeioojXT"V!hZ3`D\Etrgo-O,VaX8UU_#7GiCgsXV%-PK1(JSm7R'&eN$kQ "#kUArkU4lS_VQ;rVsiQ &@A`csf1E`*+EjNC59F[V\'o0$#Rhbs)><^/Q^/bqL3Z3k. [Umki)clEnQN\. s]S+8ZF0?MBlAqgC\[o7F(1WQ CkHB@F>BU2f2Z>AZ694KkP4q;tkSKaoF\RJcB(+-92"7=6Q_*$'[h>e9W-2,'"E#:D .TqXm'"HeM?]3-jc*(T *QET<^]bb3m-P Y#-\Ql'WL\X5r: H_BjbLsb9a4N"Eb/Em)"hc2XLIKrp.QIXGDL.n*X5A6:Iob=-6k;SAQ_N'>e#C<DAeL=8_GZQTE*brM,-o&FALgF@G^i+HRLB)A=H,.(U5tW_"F`>\G?BtOAd%r'H8aX7%5C.5iR.`,Ng0CEKL6_:=UQ7F])d6r(Vo,^O6[I. IJC(Z$kS-sBWMT(mRG*::NS0$Oo!1O<e!7hE:R9hJY6IE?as"^YBI#/Cp'9YGW`V*c>`IO,&)k%lQeG4&oQ*2\aPM8]Fka(/AH508dooZB@\\I\5;iGUNH^;S]NpcJZ>j!EF>NGe<i!2Fr&"T\cMiC@K-h2\g^pTTPl%X3Q#2%t7H/cBGACb/q%>rU>On@+&d"5;;Lt2A=N;$S67l*ZT@Q%7A&t&c[&04&C]e3M;+!:k&ZpA`B!oT$CJ:IJ@Zd>ki/!2_-9/'mki_alD bhQB,nUVA#7dW^8EB8?R[o.<B^,*,^7%lf.LEp-pHD>T(A5E-?80 DSoTFEi0<plbV]/C]#gTHPoP3.+5kF/KeAOUeW>4?%h1h$HL$L-L=nTrHlLAj;q^A;lL1E\XL'p/B5/@9orORMon>Gmd+6B8_r='+MABWfsqL:ipbmcc[lY!A#^f;AS\(\;inAR$^FTn<6%'<rGA KY]PqQ(B CG8km(^4*FaI#9/AX5dqWkn:)DM5eNn.iLnl>P3dckS&]nV/q-mpOIgF-6\kriesO&TM;<HBX.]iUlX'D^.Yn,HQRL08N9l7)9F$,hop&[:;8e<`k4."P?Y,l8C$Ql"hCsEa-8;e!n':))D_+qCBYZPDk0hci5ZoNKr$t5=*U[p2gr^\Fo[R.]T;U7V7''2&N*3KSFA:`3NcmBr %A"%4?AACV9YH`H1p]3S]Xk%npQMk/4%)t= "rRRH@o)9g_Akhh>B9hX.[d[>qbd-J[Bmfbd_/j(OVKX83N8Df"4JX^:CH`\fT4,')p$T#0XGfAqY`i]/rm7"PNQ[e6J1OD#LH$QYMMqH1%QL.[tW $etq=r$F=YA^L>DNj4Y.?_C?+2WppMb^:j!.=gl1/<Pc"V+0mjfYF_<m!0t\N`k[kSTP:Aha n/<3#"2[Wi'^?.r:I@!Y8P< 7seCS0OBZ9](A5?s)Gal-3UpJQ**nj.`b^1O/f:*HG1DoD?:36F:*D0U];^Eg+ PR(D)['@Y;0QT4L>:?pBa6#tZltcS)R58;MR09A#p!Rm%RDaTT^"o@-C@*%<;)q%/4.W)nB7^SrWMB3l>$3`UfoUkbgRW>FGK$M7c:gV6G4cWcj(+&BXnc]6Tp+QP%.RW^'-d3Pq! U%l'j26D41c H*(gS3NiQIsa]$Ion p8H3nr*>A^qpl.W<mL*:J.4RE@\g`HXc)go QcYk.T"QRlV9XA@N"ei l=HN</:l,m>[6)\-o+RU]Ydn%s.ON3@Ws`O1<TUEH]Vc2erbp.GYs"B'0K4__8YpA=E6+R1Z.Ad27;$!T_L\#7d%;4c-5T:D"!4h7koX+m2,teAq/H<]bBH&@.'hi.g8J[?o1E.T ^$::r:t&V'oE`)F$;jbOnA24MY2Q59ms5qYI`Ai`P&]'V]fhmi6KT&ZO:1P&eeUZEK+ 9\-00jsAegg\+0;E+F)_A*ptF,?,/dVZ'FW>*qj/B5AVF4W/-1!ib\(B9@a^gIpW;e96\E*d0'bmpb]\1)22,D(jn1<Qme[^])fZCeD>X?ZEglE[U[9;%D^n7Ad_P7)iAXj@tOFI[@4=>>%[g87r8T3+Pt<)4)5Hh>ODI>'?5@APJcV&bXH*AY`<T$(Rs)a.+K"EHpJ^-Q=1pk mj%](g\9<>#L<4`0ef;N?<EECbn]Ub`W5%HA?):HA+_+cRP7#fimbL\e5SsnXN'Md*m&1#X%1?d+D6pNE`J21s*Son<O)i'jcnCKA$("p+%ZBL3-+:L=1Uhi$oP60JN)T@Q<AM7]Tss+q_V.d+GjYG@[9+D!G+`jS6_sHq]M-acLOb3+*!_gqp;\5Yo/P"joMkrZh)L5fA0W-_^Q"&^lDi:aWef?+d2p>aC1 P*76q!4M&T3T-/A$njY]p"KSCla\=(UAaWKAi@>iViK+" `]F-EJk2b&_:6OZo9rJ^!tWW/OFNC<Y?I1bK5o1N1QX8]iAM>N<3lF ES=MTpc<kpe1G32)[*p`'At?J> S-AnSDq0'Qf2,.)r5q!MQd03c8g=VCR:)CEe[2HVNg*7p'+Bp3^i#3HjDQ(7i#!!XSAmt 4P-K;,!k9iJ ijHq4k]LZ %KNOA+kAN/^X1fJ"2I,0#<1mlMX59[XUg7ZEm,$GRW\L%LW>Go/qCES.A-0D/fBHd3R("7&n5[Vi;&q)4Rt)js+YEJg^0 &\V9A"KD&8r6t-@=$>! (2aNc:5+I02R3qS9Y n/FBP%$;&T8Tc]_X6p7(;*D)m5<#b Noia*7V>Wha)9/Z2i VW;S"8h=LsYpW;%_.iM3=#g`L][H1rEKIPHVV->?):`8!*Kr2<f)Js4rEP9p>Tl?hq!LQ;\4=rAfL*Aa"RgH1_lR&S?F5HAjP&T0PIg4XLAYRAh [a1Q+lkSA [("*1BWR+$W+i&G9q1][oPdi\' V_1[kqL0K3ID 3h.MCX@V<8Q3PDP4K@=]ob7A)cI*6YOkn\"R=o2@2rXaZ=h&&8SLr'2?8ht `2Ygj?Td,lsoe`b9c8hMpQX&,:o=A``PAX_W;(+4)UmgC.k%k1`?HfBg(.l4%r2 b;s)4q=/kU07;*Z!qJ/3_n$j9"=@p<([2LfI7M`##'[*meTIHG%AZCXWg\6SUo]>aLFk'&#RA5n:oZ,2raU7dIE)l/eo6S<6^EL+tZ*dQ^@m.nr6F`-;sX'@'hOcoT +D)Sgg(\5B/7%-ckN^1gB7<M-*YI([hqT]s^4L7+,6<q%`aZk[8M.DOX[XBA3q350ViQ4nAsbS8t;X>7WogW&+=4:f"d."r)paXl3>HBFX6XEGjLJ3*ChXJ<s&`2oCRXeDTQY[OLD8`t-H\f@\1t=cnB =0PkQb:FM4tc2tLJ!OBR#VU+#mS1GI:Kb2L%Q`"*Q55c5H8-VnAB9'>S)k.IXhHZXITitshjDD;mSU43qBRH!,MK$AD-&H 2A"H?q!dj^rZ9= \TYg;[G`SU/@>A`0n;(a@Z/2O>^1=5);qCFnM*3EnN-rSQC ;"+$BK: ?ZjaHJ,FCq>R@cBhXG6\Nf?Yt^99f!pI2e]S1*\p)78"LIY;AY+f5%hU`s:heEq;At/0?^2n\V&=pP5/n`KPVO9UFmNTgdZ[ZgVA`\ILfOfA/$\DXq>@QZ/1AC:73)shS_[o;&%iW<;^2M3=hU'@TOmK>A#)OW`#A:N^@bWOpi@[3st>adqdQF>5]CsdIlI;JrleEc;"dtUI.iPA6A:eTAs$G^oKcUJ?+ct4idA+(`C$H%M?G42c*h(3Fa\7j^#U9(`34N8R1b2qJ_dr6dhKdU62W2L%];]8MN@ipji.6s*fh[Ji@bJ3Agpt_cIBU89Tt('!t)B'J`3/,W?NaYSr92X9t.n=3A.djBQ3Sa0p:@8/oqFPYh(*P42s" 8@:1D\>nE*sn`/"^ATJS3W/?atV?Bo&P8@m1 HK;AS7+K,*FEm#<ciR%3'[*GYK o@\DojfNB4?*!/2P[!.<rahUR!U5MDX_ka'l_h$ cKWN"XN?c:Dr`)9'hE[2c6mD[*_OSGnj$65o$>4X9_oqJjXkHg=S^#8RWRp1`!j)k*PY. MmlA&1\r@*t$//AKr8F!R^.bqmse14(AF&Z:Q=o*LSj:>FpFn(erd;IsnaOKAmTMH)9G8G@YFp*(#nh95M.@?iX9,lK"]%r<HnW#qJN=[^I*9=b CC</N@eVcp_AB^+N'ATI[FW:73C<4\*>><p<^' T01#ekmY?7leqSFN_a? jA4B'I.VB_K:)P4#;<V]BT`6=ho)Xd]k<g"A?a!!&o3C3e=T1D-E9EeVTo9o7BPRB7?^_A9L!^Cj&h6f4gDqOE_g'$opkBmGp/Bs8g+]`(LG\#A<F1]=%\@e5"9]D4c3="g4e:eSi+8@O$g>b4#CR*A`cT9q%CUV[_(NYU7LJ%ciL(4P=DW\G]/7)=M31E=Q=._hI1+(Y#4e;EAK9!6qbZX7 9P9YY8q7a\#PeKlAWO5Z5A(1/@r<VL=>1?J@FA:X5[0+j9I9,#)>26ScaPBl_T8G$RAk4^b*K[F\k653<aALe7A<nT8T0 ^mZB9WlJaI))n!l??]`9SjfY/\Pti$+B50"hp#ZWBm5NW-j$bj2)02!^%7ZoFAZ.JZO$/%-2Yg>JaN1Snf^lBG1o=[$7<``l1jAI2TsIl-;#.16D%>E(C^t65)0Xm0(CkpN9F'Sg]VPQ`j/D3?$G+?L;)$[Sg$(^80m<].TF&C+h8%[-,ojf;GN8 qWYRg/CPL$qj7b?7h-D24*G1mC?c;"Bq trOD*aHJ+8:4M1'8AA,r2*fK!%&P)[.nQ'af=`W6<gE9T\?)l`+--aAJnQ_OSo1=dmnEZmdR)SD(+IshZn+`5e2"Ba7,Vgb/'#?qNL06;<&#BdQ]hS)MnrJ;XT::XPK!5"T&sc_@0X .h[1=.(;cf5*doeLi"=?Pk=Zmjq G"YZP&o4^MB("HBgZ?[k2l?WNBD5 :,,[[+o1#Y3koq(p9t0MIjV/dlL_-jJP6n;[/e*XWW$'SH@fo@j`(c^8R61arG&O%a<ZW'7]"hY":csZtB-IW2l[W)N53\_\ M DeXeR"9P`<>/0:h9!9W06U2&YW*=m/K2@ANJl&KPS"e:=S$)sYC< _8E*4`=d\]NMLW!R*=5H!@g4rV7F)AtX0!^U CFP4e-:b?0AOmp2+UQh[PYK2H;@\cmW*!QfTraE2BFWQ]\M1jBphT6>_?#8A]'A./9<kY=+Ip-?5l-&Y1Q./Ub@Bs+Ae.3s7:YTdSrKF]^li@*( ZN"%,FL93BPrOG.A&7I_Hk0*C2U *#WP3V"=ris;oN,*`o[iJ:"RrHIOQ:e$FQpcMqLF'Yc@ERqN&PB;No"YjE+JlADehI^-"5s+T\XNho-S<,0+7SF)g$!FkC@r3$M3 _sB_+'^'!JcQ6-qL"U<3=1o2hL,% :jV,:EJ_1Dft$6'^7m[A:alJ.bFa)MmNkZ^T-SH.4)Rk[cHY(7T2@I8Y[4XDd [!ioGAh$<7?)%i::pZP/p<VE"ZpD.@M)DD,R"Z^raq- p5%UNiX$_D..(1,6e1oeAFI7#n-C*eSlgjrS)C40pMteohS`(l(?$<TdWpd($/Dqa*K!Z?s*;$8_.XkJe&n;8L>'.[%o8W_KcWtoF:*>W,6PKR`P=$N#*b*R.0.F*gIQhgV`)j3mcLZDpnLK_*&=@)>B'.9sP4DQV%dnb]>=.f+bMq)#kHHUJ^dC7"RiAL@QDLj#r%A#QV)`5.<WMs7@PU5,<9Fspt[AO#1g kTcl+#^,ON`6;f;);<?a?g;rG.N_#eABHX1.G,"\Y`V1Z44DDWo^4gKGiWTAB;g]';)^E2t_rp29&-64<()@No1`q-#!VDe>6esha9J7*>-[C#:&N(>\tCV*aB[]$XQ3S@tE<$%^Njd>#n9>.K.0A\j@pEbP:FBAt9qap*"GM<X\_gV9.ElN>$]=Q7 7?kR7l6,)fXV;^^GfoFNL GVS.ni#P\@Me] <&>H5o4(B!g9<F\+7_YY"fW7'$\ebd_U.s-NeAi><a'LmjQiUj!@PB<Kp#bh1jPfhb;dKE@6m6b,T,9im,:$KL50lp=.g<>pUY5o%[o7dnYtg[PlctW`5`T.RprS0CD2m?*/a.?+sHk0BpAtr84RE``9iK"^$i=aMg_e79AMf_p1qGGjY,=@>E+E%5Ft PLFgKN$;bA)XYFNdg[1DPlck<NMsAb2! @0t=<B>ss5mfe"A>Sp@R`mL%KDnZ/=HU@ZA&a,N"cA?KOY*(W &UZ+f]Wd6R`;<p34mA>q)bgnJ(m>9D/c"!6(ki;AlB8UGY-?0m6l`l[q@J;.`RF!^^psAIHXr)CMPbDRNJ\dFA`oVG1l&\-?I5QpAQTF+RhF'!#=F\bOh.MsUKUKr;2:Arg'(Sn<Oc%2V=E0&LsO5$qc8dK"#`6a_>l$W078sP:kPhTiUGL[0Q<!sk8-8t(D&Bhs!nqg YL(hX!`Y03k:*R0'(f)A.,toa>!I$/!+)1i!@5+/hs9@El2XkddQ&JoX4f]cB>Q9#EfY':^D.I&Mtl.cAR@75]Q\]PbSlsX"G/Z6$NUe.$Q)+gGpF:I2iJ@O1HHEgA,d=ZZ:-jLe0U4QjDtN:pK.CV:d&_^:U(,EGZPF5rA73&L8V\ t E! Vr6\J;*\[NNE8QqA\(m1dQ[6VHT.\?PWq.O:l>"WAm+H^AdIs a_H\2FS*tLBZj=*oi7+Jf!T##@ <Kq5IqVPK9=WTOfIXX\Mm LmXd/f[`A&Y8gK)[;\$=eoWIBh<Z5e`Uq&^K2(%p.T JD`TIj:`nf*BsJIm\Zo`Y#c$3YE-PAQ24K&DE9t3a2rA1-JNo)6pL".L4apa<,Y@cO?f4d@d;Hilg[9-"kV4DKc45Z2'_?OnC5ZD$<`:A2+$%<KqP0W=)!6m(#1Bf\*r h'ZC:&"NGQ(`84k9(<U:3H[6t%@?OfjrtaR\+fJXFsGU&[tB23C5 \9h 4eF6b_p`8VsUQf1J.4M@DoQ\=hpcH>'gR\Rgh(GL0^)a\?aZ*53&&t!Z9_h)CCT"]^?XB+>/ZD>e,==9_YQOYZ@=4C%J)n5"t<7mA+<e55U)s9!.>s;l\?K%e@pCjq)Y5(QCt>[&L4m3kb&5/7'Kmq^pWUME.pNKcB Rn#b5Ti='Fr;c64M!@Hb:Y/O(=0T]K?8JnVf %(:H<59Vl&6o#ijl&r9SQl(#?Srmt'#?co"JSWBT"7)PanS%Z_=4aSf.:1-Oq>266R>OclW]*4h9_A,j/^V PDEN2e7cnnNn6Wb6qb4E-RXK/DC_nkW5roNrb0k/T_mjK:8)P@[ i^-:L]_?JE.S^im:89(g2?a8F\->fZ\\YqY$79i>p8l."H/EmBP=QL9JX[jB1N@,c,bg0f#=/nPLaQA0'a,oX)<B"@$GCO3CWHdAhP4PKJ$sH+Z3(`7t4b))T$WMgJGSp%. +?Y0[icHQ=e\GKmE5"pQ$>C0Q1TQLSYs/$;aGm 7mC&<o!2/ph`YH;ek;#pT7J+RO19@k7D0Xk4K4.sVX_aA3FZfX3(9Pko:q%PY.H:8@^G&pL__G<O+_o(Ua(n>5^![#d?bcRl-kQq+3WtiAr"EMiTTUB@Te@YkR`1W(TfAf8a?dP+aBj:A7C-eKSFcY?KOrl$U==9e:i"gA(?XBcK`Mo,)igG6btA:%C$6shNsn7=[`83AOth^RM*W%*oZ(I)WKae@:K-"Jno\#OaH!"gYq*Z^d@97OX4'%AN+lQWgEd*K,\=L,iV]!AY'o!ba+PXQiaViLAW P@Q$n!V9n;].sM$^o<.[mlHAcK?b*=XcROiN<Ch#k?6CicD4M+5'HA"JL'j1\s(gdS<*[^`:i?`4lPF?CqVqf,qm1MJj;o.V,X]50r(t-JTQ=Vht7!I_To!Y4#4Po'K'g#\;*%qRM& SAS/0"^]A]ZQ:X-VZk][D(N`A^7caVN+:X?%l?t,g>F]eVD9Yb*&iq&TWnlFgb e%1e1+-@ gN*Sb/1q;IZ%mDJM0r>Yo]i\ZA!%:8UF>@CDT-e&t[',Ag5#0GJhM''L'f7tli1A(rPBYUhe5U@\%!;3OdHa%qO4V>!B059/Z.c4-8GCm+=q0A]b;41rQ9W229`FprnZN1o!#.$^#eAp5R(*1K;/\i(I0<_ISZ>.?\^Wekbs]eZERn@5"3)OD=QBrN[krVmA]00HjR(j=.=3.#G&jDT%*%[0QUAh7RGV1=O>a"T/KV)b&B<%JOM?!dkEf-q^/d0Mq-Jnar7HsTWVeZ3j)ONakRK_FJN)[YTUQdsC/$^Elt/blPLHhiW81hWX?19KVeeB()c(piE0CY*HaZ ,dpSJoWHnrkW)BtO<pa?s;M9K`E+1]$-W.s7pCC(&AL Kp$dpX`/Y0@RZ5B[;1Cm"U%*D?.!__E<[s=$XbZhT2iVH@[a4JRDt@*XAh]eX<V,\NJ"hO1F@-! (BO:A<k7[F^_]2#B8J8%.r+Aa$^4AQ$#@O+Ig9gbX2Fc]=QT5)'8]5B2oR_:9]P*l+D?[V^!5h&3p3\]:5Ap#7LKtn<j0pmknLqK^H("h'\o( IIgNO'Y!i \nF@l<.\R2_Jia9p)89PC;McU4bKXm GCE3.BYl`Wt>Arr4pj?YM2555jKLI`2:&A^ad)s,#0K4mXTpU..-@*FDU@TX.N7>%(h:JBFtYkr!KEG>Gh5KstO#)H7Da@7j!erQ`_6qs3 $8T6D1gP!5H5\`nP-_TCk8CKoDJLNX5-jbnhU`g5:gTf>g#"\QUk=VoSJ4d@NMV)ZYmbP &"rDGK Q7roi.+^XkhrP\VX!m(:-,lEY*bd3B#1$*UY&ans$GBc*:E3=&mZM419#E/mettA@+'=grDQJLY^]GP42R;c?JZ5;;LCnD0a)nRYoftWdk4_c(5#A?M;*D.!O[lT\Mn(2A.$F-H&+P/rg&TXCZILAc9YjBXA'28IZ'!!F6A__mBA?D2CX1:H?hQ^54O\Ba;=F=?rYPk3)4.^c^=OV]b3??]lU%$!*g`YkAa!GRG+UQtS8=)A!Y2='d:;#Fp8B-X3sl'qg+iW.EDU5n3[1"]1\<^4W"oJiE@Ma*CdFJL9`K%-4 'lV:5'G`mj)[]bgA3W)e"3ls`aP%05SDcXSM]d$;-mOc/?H)NV/#j-bl0YG2K?_c(N\5AtW^7mP?b)3;!!$P8\2BRsML.(/,.9t+?d>2(BZCk4AnR?AG*Qfd=c9GAEfXIp9(a3T8Wbg&+A_MN]'p$EeTXB0_4LUB5YiXOsMigM*SY2?Z9+&=gHlk\i7*-M'TP!e,!n<o>b]0i21r6EY@/c,*np&P`( Y4<s^=Dgng' J"02:X%.ATst43Z;mN#hL6@**0Ytt>ntisD 'R4DV.h7e'=gchIDed:U<?P_d]h^J!(9JE\/NNZAoKFA1'''pWd]Z!HFt=+H\?U3-I1!#\;rHr+>?bR9=NO,s\3mm<lSm*]cA_`Tj"3964YZHtA :fYs:Df7f6OA>[#O+:8+6?<J6MVY3eog0oTM8!Aroi&1I//0]^EQk-kpob;S%kt11h,"s04 4fna\a]N)^5+Jt$0j*>hRRS@*VAL,UH\Y`"Da<J4R6""j5HnNI$0-iTl-3+Abj?DG6QMqq7iig)U^+$MN6$+dsm+^V4q9A3Z8!3i'ej%i0AS78EG2%rH=T5Y*aj@B=DnAgmMcU]W7b9-JY!+lVXTmPo(FhdrnS>ZcgTFqX<"UYE7F^DrG?A 2l3dZ<46f9*"WB"Cd]$&VAo!JK0=YnoF0QN*ATZ\$16RY(qg]2F5&\,(29'(H'8q!)V_'pI1l(R'm444.QZC,@;7AJmP.< QnYbCkEC]$2,%OIM)'snFB^4T%&X8RMOS+8Z\?J/'8/N\2Gb/<20A1\V0IN$(O.MDh]MhK+,NAN'$KKfUXb(L/A3EWKOk$Af7;ms"Jrs%)H#VL>#^90!4<KS35;e:oI%GRaF6""Q:l(Ch;!7I&-[_m[\Qp/U3_)a8s//PYdoX[##6TTXFL%HIY(T(;d\N#d8I55X"6k55Bmf1RcRB!(BB>2jF?(+btekZPD-_>RH/q[hY%eNS;MAMkAM3[E<2M*6C)HQ>3+I(I^hkgE*;Ai-e7-U53bDR.E?0#f2f4(gm"m%B[2J!3MPZ\DXn33RoBN=>op\XBU(.:g^)g@'<>Qc#9e?Z[55L]jnW_^Z5U/:+@/`c9s\K`)6OZ[go(agP,i+Vpbid'A:N5]Q8q%V@!+/*V%Utd_R?MU1e+;@:*GA/\DQjcO8H])p:4A^,i[:\<-1tj0VXI$->% /5m(OC&";77"BmI[^.8C%_;)AS6+m,;j^hKG0`Nenf!@%oT [Gnf.n'Q1WQ,SMVp\'rI-M!tHce><V6:k5-N`h2qAGfK%a,G#l^D/l q&@h0edE6.P C 0`3btXKsBKFg4:C!!lUiL"5D[+NStAEB;A@EW-_sjc4hb5GBCEQ3T7U!OE7dN31C]B_ &Jh@gN+^6hk\GDaJO0A>(+B67J`NiFJi7SP1>j>$)&T#)tF_b;p[ecN,Y?RN!$F!/_>;(>:;GVT\dJU#nO-qXhI],t$V1aD[/]-[2B1%l0i\E$fDCmGK?hnG^p?K_H)\#UCZ)O$C_&JDX$F/_o6UJ%'qg%#r,`1jE)lDL^B;TnsO A'mk5pi/1Mjmc!AET;Cot?F3[1J"-(i*X%eRGp$.nKfVJ=A?h)4B1W&b6=8P."oo,?VWWIo-<TdmdG2FEB>Y,DZ&DL7]laAWLW)$sI5\NQ5<.eJZ?5(h.L97rDJa4bb&AsH</gZ[5rZ\mWKlQ%R#6rcAbsfH1"Zf322_3l4(cT?q;dB;DrfsK\mtfJ12.^c!hlcFJZY7qY\S$OtHXpPIk<mY93^ %Q6*pEZKD@n*Z;:G<:sQN6,6[-tAegs4'`S>^!Q%=5iSD?h@%)<Te#Ad-R%\^Ahe\oF@*'f0 n-\5R:,lm/n5_]iji%d$;!]W06#\Bo@D:o LPPEM@d&JW\n**q&Y:R&E3b0>Aep ]PP*9f"q8-]Y$hA+/bfbe5b-p!"H(6C^P&k&sipE\-"cb],a[B.kh^ ,"A=/]B[)6L7'9B#LjOR ST/]7ID`Y6/n]D^j+[A@V.&UXVnS7.J0Pt)<-[tZqCi#sC2PJ*68,ngP?: D3P<!*)9ta/$=.'q^dIRP.*ec*2/^Y<k /V5DVNTMm%a!WONr<\_2/bWr:V2+islr/&*'Zk HO/d(QsdPjF0l! !-Z ; lG%9Kd[^5*5$'hPI4W`X0tse*k;Sq75g.s]:e"5Z2#-%]rg;!kQKk"gQBnL*6:\eQ]YOr/Oi_Fmd`)OB(1r<J,P=3eH'4n=$h%(-Y*;A<M&3?n?b&&J>dC&JB3Db^e>=g[lEAA"1G5p1`7nr@sDgt8AP7:\dFYSgB\e##sM)kQW=tmI?A)qqFKfGn\F>5cIs 3qM0\fC]KJL?A$.((ij8>";_a2[=Npr[H",#s(=I!a&*)TY]bt8L&bhPq2TK7kGdQQml<[*i]jF9o<lpXm7"R.m=nd@^d_*;*32P `cR:l#kfVi_Ct1!r_cb15R>7$]gK=dd ;>jU%4:(^nqQc/c[>T]iS9sXK_UH+UqrL!lQdM&_S7gr/tbFA^P2"#f[kYh.^Z(U(al5m@TL#Et$`(LO57%Q c^t1&\4dR1F lqANA+o)'@/IetJrJb%b/WR-$8N$A=d38K3[is;Y.#7=Xt)cQA:lX&.&;cdq!si125Nr#GW'f!"@jX#oNts9+25Fa5[jt0VNpBVE2<Z62'.@de_`T,K\!$P*R8R3r&cm+*q(dVrL0/]j1p/r0)LdqN;A3'tX,EmZ*E4IZl8ci6\^Wf:=J5= rn^2Am]c*r%3E//1#Z2VCD`\97!?:@qoN.#.%.@c'D7la&ZK&nAeC+.Zg>7/@4IPk->VGdg$ZOI`c? TP)OFJ8`%nhE@=SflQsXQr!T(@5hPA<A<G@B?B7)S>F;mVb@m6<2LKDedE(o@r&F>#F?,,\Xb0c"]!A31L(/7fUf4N!Z,&O7n4YhpK['K>FVE1R+oT'4)YR^,=FMNCUIa_hS=8''%VofLdgT,Ik*DggSD7*X0:C!'`PY]qfrU+76Xl"P?sZKmLAgn*LrcV^#mF=1'LN<6+[.@qTT0;0#N"FIV,F<_s=^`nF$tm"1h.-Q4Ri0*OI2,iJg05>*X"!i#_ctf)lV"?kn=1*0(p_]SU[%U4J2q,LAA,b-h q;BFRs6)kBgp'L/4EAU/kf2+KP_o";?t =44MWelLiom7@UfkO:N"k\Z2,=AhrY$s]'7&A&A;_I8Xc)dMP`-*Db9&U8>YeL<4#-d\eFCM3;YM1;A)8\LL9q1G[fCd*(M<R&ZTNICKqSkEfD_A \43Mn7e$1$oC&))W?)Y'W-0ebjkDZX;\5r+^b628MBJ1a+@brWkWEAagc8QihI#OP*Ai$KHhkpBW7.-(l:@H9,K$h=/E:2CsHP$8he3N7pql-?cPsHfmAXSROL`-GN'Ihe/I&ia'RhVNARA9a V`Lb!bXJWCn XQFG?]AN-?Q4!?sZZ``I%T<P l`&k#+^@3P"[ j/<#11rEF")YP<E-rPNIZ-Z;8 L!)X0kDa?-faOs0P"5D-\Y?1c6(;nUfh?CC)K 72J6E#Y^qmc)-)mmsA/28[9&4%-Jo>USZk"/LTs42#&YaFl1BFQ*-/)a>>@2X-(;ndjcTGT d`o(p8ESY&Edi;q9?#:qG'"AbAW2$aK/;.UjRU0-@Ih:[$n!c2I?n'^IFArki5)Dc2,'XQTO+5r5L(^N^PP $OQ',ET!pp5dLO-E1kJO9a2=g02OV?Z9DV@a+fASkLjo)aF"JNjgGZ3p^8g5^N:58?,)JK#Zn&4-eGrHXU2Z9OPj]p5$+/Z$-Q3=[Hib%jL6\6L3^G(sAZ;/;$!9MIe!sVY*c-)c9hX ^B8!`V0=CY5XW>FmA>3X+M2KiWJl#nRL/]<<=WG3Y=t;_j2hS?_12 X7O6lAq.%n)&@bbm-%g,e->2ipK49HW VD%@c6'SE/81mAL6?\Z0ig9"l(%-&bA@NPapRAeBosJ*H;e<K7<'sYW't &kP8%Be'C#,qA%jdM8%eZJ^U\0eTAbi)t?kZBO6`+rr8Hmorl.:&Y&XLTK%cA *6(cX*IPD-`fNEef;HtGD'N#7FM78r%)KdI8!e*ls7%6'(Nm+\/^%08*KBj4t(OU)6bdlc`XK1h3UH`(%o;10I7]=K-T-YY=JDoD<%HFfInO1Pg+NqW0Li]o>SBq5eNfa7KI\_`FAe?f<*aRKKmm4Y8\mY.E?a\AnRK-'nCM6R4_rZ&7@U".:pJcl[+SNVAp0QVkA.c_<3!+/-KpW#1#gPoTm$-AVaQbMm)+` #cY^(s1(\d3-pG[bQTS#X2e>jSN*6$6& :ZR87O>&7=1C,7q9_`l-f]fln ^b`^CQ^QI5%nAH8=j'Z5MW&BMi(Osr$*22[[js_:%J9Y7FH9^/$>%%L(e:gQR:f0;s24gOi&J%5[[39bQ&f/%CO",Y'QZ>>&g7=ag=@q&9Q*Dfp:7-"6hJ<"7dXNpIT1d;]"s8SV6l?9Ra7b=heU^<4Ackg^FQAVhiU;YdUIB&V_m2#B$/c.`Cf*AK[!*0Q@fBJ#X)cZpt$=pY:_&bJN<mo[hZpDtn>Xf@&01[g+j_Y<FH@@m/[oiHc:5gpsl;3b3T)Q(R^"tJ3>1bBqBk6tDRZX/\\lmQ&n0E:"@BrsAD#`8MX5d-;EU:ODs.Mkbf m:\"08hIRg^6C=kItD;WM$8[PMNbMJ)K'3#sbH6s>QSlh5o1Z367dNDXCRM4I)N>)SFn!:'E^GN0A@6-6,sETk?Ak8=rA$L_@39h]X%-5JAf,3eeCXHWgo^3VQCD mVqd!Hl\O$15c8dQfHVSnDCSr'0nDAS:Y/Em?DMWqc.hQ2Y*;WAK&CH7F'gWTSho?DTQOj2_!#LEBP=NA,><AaK_&KX;or*Qqc_A9t#E`p]$V^8\d'bOOG,p-S^9 Gn/iP<PLop_"\s&#fVQKZB(Y&X07"o'p7]sD)e/^gQ0JoIh^9)$%Ae04QMp*5#A+kg!e,l1`-2^NS[oJ8Q`(3,j1]81/!Q>KX5&>o;_PTQRO>\Y@0gCnerAWa!6D^+KF+YL.Z'b\-"6(F?g\OE;Fs0kDr"1qVA_PHSWXO&;Y+:2mhcGaHsS/G_Z:!'Ch<e_sN:0E($>Z7I^Z<+:?0.^-@IS@1@? ]: !"$s7!SE?(KJa*CJMmdD,1rRKD5O.6t:j6IddI-! UfW#H33O'YM]hLQY#JT;=5WH@V!nO@BSd-nSJ:8&k"0'S$Qt[-K3,m! RX'daCqMS-dfPHCBe\fEKRoF%ICJQ`NcG'M/SIfQns,7=>U[_4iF(LO(UgQt4h844%[s<n!gW<K?NPNA2DJT-6l@m_RX[HPt9.Nn,[rF/56mq"Xc`\&FQW:f[3_hC1!GGdd3'BZPt(st*/q"Uc9.ID(f9reXQlk XAA6#*)XTjWo>2_aP!mj4\1G"6fA:3./>Y!:&bP/+NL8:4c6+_-F +J_-[E[sV_J^Na&RTj._ 6at+M)2&DF98d.e;]b@4%KA9;F";Ag-"t8>l(-(54VB$\=lFO4[5tqc-,QtinJ*5]D#i14`&C@oSP9n,ma]*SXn3`;)fF6GA(Q_fl"K#gd$T&_Akelq#%h7kO2qN*YPY*o_8'2gXSmE,Y7K?"$7(KF[.C5imgT%87;WI^Tnct1@N\C!+qIT&a!0U"[)).N>,K-rhQ%p`W'RM<.JY@RHepUbb;?-3(a'r\;"hk^d[7H<I&3VH2EcAm T@^N>b-95b(/M/f4"so2f--WAPQ7-C<+!?B0SrE$eb.)m/-`A8+-j44d6]U"\QQdq`^if0mrDqa`P b0B/8cni((k(oTd>Z[]d8k\Glfo25A)^[)Z1pE&^5dN4HG^($FB4BFg%TK1^Y(:,M+>4os9N=d[AJ)qZ!o[J9$F:6/G2f[o[3D?+N@O4:U29OLK,acrJ:B..A%N[o=n3%!U5jleoIPD8Dc)SoT! r^B'a4=+%lp2%(*r"]ATCh^+\[KM@7 h7*9-S(fc_eaUK\AA`U+9P;DQ1HPb@Wc$NX%gOgQ:g2dR>0,e$g;\Y%D.BT_jso>FpDAFI$9I?FUMS1?$iI5enW`ICBJSP^Jmm)pjnB3.%s?-M<KLW+P0/njN1btYdLrSZc-Rt)^\oU<_=)`LsprFmOPC;^8@1[F61!^is3asPVVA'Eni)OdJK'7dqL^`:;t7^cP9#ph\R0Tl+J)=AMPBlFH)J,:&DR)OqXUt^+LZJA@(=0>H[t$612MJ_B'"R X\$aV".J!sEp`q<'>[nbZAbbm$Fl49A?LS%Fd%g;[ggO;FQ-i0B+(CS/-?g*Jm%1PH)gOR?4Q\IogY-JXn8S^Qf0AW<QC#]!sL1W[%rV.-,7s3BS#@4EF%<Z7\ao\Fa7Ib!//Pt'RPAM"^qK*8)RZm/NMaXWg=Z[(2Aaj^OM$MN!&$RIQnZ+g0s>Zt=HjmS[)Y'CjWrSUA%1&4>o`GA$gUU\LS[kB+,r`/cA-J.KWbjd4]X-*$g P\Al'q-d3q-AfbA@+_7k>AtIJlL$$M4qo21\SQFLo1_V[B;tT>!$^feIPTK)/)V>EYiEJOi`_) ?<BJdB<E`<nr=RhcJcqX`gJ#Yin,d?K.2 A@oo&Y[CAmr1j/1ij(2Ohl[p=GM:_1&:_9'RKMYPB60>c7Bk1)XJX#PtR#eAP&T-j2i6.=4tsZm\Ht9XAI+;M@Zj>lh6aA*P^9Ymg(-nB==-!A!JrP@Ujn,c[r*(jRfkdp?C`Ka'\tCX"c-]eWnE2]?!>E.353qKs7+!n 6#@GFonM(-?c#7/U `%=RF:Mq*<"(TX%6m'N##4BN`FCU]KA'IAZIS6Yl^M@.Ac9lM&j+B^nBPM_F8&U9A>4A1\,?]Dm"HjZQoeBS+g@P*r(0$h-(o%_)tF-^\Zaq[G!a!2*+kZEg1FIUQoQ'Is@!O-q6,RDW&L*cfTJMr;Oj@K-m4'q.h.&*g>6UZ=(NAE6(&A`Zt6_.a"'B,/4g6Hfhln\_$VK<9b%sD6DS1ik7n?VoNl2"AkNMRJ(srj,ggIqTJD7qinH'Dr"1T?,?%h<c-Uco<]qYh5_7APE6.!sA'D[Pcr+k]LepHG2bmBAdernTRGZiUJ^r([=(oV&OWNEHV^Z6icZ=$@b]<$9$iK<H 6U4<]f8HQ[9X-Q=o]LQtcYqe"h)`m&Oa*Ei1\nUCq-C:GABZiJMU.]5lP@ *5='qA>bS$j=<-khf7pSLbmIOs<af&TciBf.>&lf^:q)eJq-t<<Bp4MYX]R,p3l,/!L6f(Zp9$q/+Fn,<<qtY&;pLEPUnfo@kV6]lfE&lPW6+InXRm2bGg%Mo_Fb_#j.?mWW252os0'QAH9lBi'8c%lQ8\2sXi6gAH['BAoM6Jl+>clAMI"nj1["LM3$H.A[]_V;R5U&`:]b&6Y#jVf)[s2<3^EFT@'1k[m.sAA^O_^LFL5<i@I!Q<: 0afF/=fZ]gXKh1M'(5%DR%iJCa3faIJIN*dHkYY= Fpl1?Kh"<a558gPl90dr3q#brqD^Sl3bD>9`KL#`c@_.37hW^3D!7q-d+sH]H"PKBbEGaao'4X0VO*q_]DiJ#ETa`/.\VTG:6;/hY=Wa!&dS'jIhi#gQg53R29DWgDB2mM!@0YmiXSUjT D!&gnKpPXUESfKN#bk#]%`T&M!DV5H#\6\@D`s#Yflk3&2%qXLo/kH-T2+lB3B0d&IsS7IA^oG>>h%GSF V<Tl(c.j'6N,P*4^!dV)M/,GgO3Q(EU)KKAZ4YWF`Af<%3l#tcFXr*o*R0:;H.G*@s&D.3#ZRe1J7mFD[L1_J>]s/^>I\V7Whb<_U5;P;9SW;iK^'9MkJbf-b>'I^DY% 6/p1lqe$rmpi%@9QBQLOCh9Wa$ABDN&:17**U,7=]j`42D]FA(X='_`0=&J..5R6qj#'X=_SNl&n<0UYriB=h[1YL>bUtqiOrXhb)B t= cb@@148"gmJ<%kTK QA(<IM,'N[MkN&\``#J\(MJFkY+*hpVtsl_anG>T9]RnQM5*,[3K/00#\qa(\$r7<?GgZKV#$%Seam]F7HIVt6if-<f2DC8"5qiSVoLA]qZ<k@k37aQTED(EF?$5MFrVcnd7e bGbm%e*-./i!K78<[pe-RT=Z1/sDr^nNJlS5QWlI"B&dX'Fof;5?R2\pttL\cO> pID+>)5j.<J@DiQogea:[YWKp8$ehT/"\7/&GZ%&4TXHHXB'-bAHZ14tYFA@+gSEA$6;/Y/fS\6k87OCI"kiM*Pt2!1*B9SHM=KHiqXb4NpS:b USaOSpsJr8Ie,q&/00NR;XCOL**O]1D>mCf[oOPbk *Hq]Un-2Neb**1fRf$19k]UK#)%#/icFAV62!V2K=>\f3(@^SAhR6rO9i`c?MtkINO)W)6m9r(H2'PB gFG4,I[Yp0;d1!BqB[S;'L+& pVd.dlcQ<O]f*sH6qpk$5K;1cA&t7+67]MoX4rOq2tA=J7\lCKa]nH*hPS@a8H+SgosRb4t?=m 9A_bMP9.Z)>*bXk:70KQ;WC< <O4 0[T,\M0h3dL;rW*\m-A%C,B=p:F/QK'WOG47'$)1C*`/I.tc7*``C7q#;%Tf+P&?gn jN,t22cViK-s22LlGpZsFE.Sa;f\QVM!`piM`[X/BOn;b]@p1I3\*D<B#Fof/F:/4Jp5X`4!Ab`/ ra4j:RFrQjYq`!8AA!a;<G*is+]e:%)$;VJ<D')71 oSa<^&Xq[p"LB5[#]ESNE-El g9qtTB<n,\pCoOFWD3=>EFEEB.<f[50b;?X"Octl/m.=`A`Ac0o640&tI2VDri;p0^6los-<A4d`U(P1?*026IfW;UQ$^'as e+AXDDn@Y+rYC5$pA3 !"UmTc/WC 445`Ifc CfO$0)Z8W'*+2qlG#6SXd+NIbZ`Yjn8dBjYX!6NT8<27Th\HSHD2A5A/.,RMNe^8 Vs@?3<bA;:m,HEq\284<J,m\tdg"(C=LB')WU_b!@Y0R_>A^piDC\,Im^#IfeW(68F8jA%+/Q>s/BgLP1DB$OV`lJ`REf[-Z?cGs;A?ec2WMM)E5QT;A10:]\WaUT)s%-iC%7nSb6>=Qf#!q7Fjj+#Gs X$k(m9qAm;M_4/:AsX$Q_V!L5@1`aisf--I,&;AC[7`2P4,RNPD45@N?C`k!ZR_YRgfWtIfA*6Vok#S+>E@>19/TQVImrkno550EkE"V)c9'Ak:=[$#_,JiSFUg'rJZMD3D'fQUc<fT&:"hgO5pc^ZHWXNqQB(\EDO+m[!YAUldAB_H<nF&==9^g6=k#&Em3+,W.[o!T/<YIC4,LA;3AY$S1T4('W#o'bOi#aE]V9ZH$,T-qp`AFST\\8a?tk$20J<4N:SA*9HneA5r%VY" $E7K$qt-ng>ZsQ+*q/MbR]JtbAA;O?Qf.X,4.#q(WnbNEd7K_@]eeqZ MCJIP0Qjl<5XA#+c(53G+)42KD1'>-#71FPlOpT:)L=gpA>nio"mCS/C>c^t@An]C_<n#p>m?Kg$/\&fJ3U>TtJCaDf&!+O"S(\&i!0'Og;Tm1Z7t@"jbk[D[oI1qsV4"i@3Rcq&doS$0o-1+U*T:MB!>$E8qA:,s4*UFg]8P*P17W2"*NZWk6$'s2@ `bOp,s1C5>h0fC!gX`X@Q>># BH'>bB$BF%'kd/j/8KKIm7W_`R4Xa49b7+Fqb4O.qc)A`iVW&6%S!,6IE K4o@(lpLEUX96o=SU#cE:J1HKn5VFb3T-kJh!!eI.b-Mfke/EhEm7T0U7h+q7K`Q*]D0X6o$H Y8:Zi`Wsi*VFDtgRdiPY,A<:_M_`^h,YZNG%YhF:_I7*LF3`R.<-.0(o?; F2,A>sW*Ci][t3-=hpVaAQY?Vc`R@$2cY;'8+[,kc"r;fiQI(6[_GF@TU!Qi4NI*?=0/s$VR<_YZIdI.=9@]gakFqn4@on=`"Z"`/G!59#%^lhAi&:c-"Y1oN:dk;isr'Y7FC0`hEAoh6,2` Q-K*``XNoAc(gpA!A=[nB- r/\R;P`(=7j:UB/(W\F!L8+]h/#]*;tW<dP/ai#piqZ0sXqT_(LOb*8.=QQcln\CWLL&)aA)fGi=Q^DN$B 'Z/_^r$O$kW&dU39I"'[E`)$-X$\9 CI04eEc*'n(Pf>C&*A/Z0Y,Vgksst7)T^Rfi9=38]od>kZ\$]h*9cUU,DMlqhdQJ"?h^/;<Cj&&R0252VkXp(EZ!bWA=nn4a<\POCOC3TO"a-&O"a8Ve(ojXa!k#C6H-"-p#q9Hp-A'421cNd?;Oo\tf(j^fqkBQHM3fdQ']2l,Wa?i;:(<k,TL9^UV-Md3onB` O5?AM8Ed*'+J@T'?`'[>m:@:%ho@6ZU3'gmrAhEq^D2;"=8[O(h>Zm^,jO18*&>tSt4UreJ, +Fk<,;A1Jld[J(W2D"41o[jBL-P_Sg+RI)S6jX1.<>B rd.TsO%nj)X6l<bY>3Qd8@W.`WN6F^j+tJg]pdf4=?q@,eZg0&*-ALgS"qb*St>4bhsJcZWA2!A2X"Qb`'Sr@-MVjYLo."C@K*VC<!",q1ejO)A$'f$)<>FI 7kT1*A_HBA^M1i\j@.^b`NQU\o/c?'Cs6%hCQcD08#J.2$B;aQm <i f@.-%0S=al"^:h*7s="O)\W>nism8,ZKpA<W)YAEV`fS$Zic"4LZ0jAeYti/M1\\F55F"hgO_(1VTt5;\*.kfMF%^:QRBclt%EU$6SWi85Y?5m=;iL4f&("R]XZ[ bD!!n;21s&(='S)8(pOCqpi 'e?4Mb2o2BF8A<F14[a<A'$?m54Q5U'GaG9U; _mXA<,!OXR7SR#2J edc9 8H79p7,A?*qE\f_N*L'0MA-O/C4MEEXbDKZ>gh%.6-UU;le#=CURN+:R,$5oPeg7<.1(okE@\UHV0`\e @4Lto7<1I-jC=PU*/0rX*jjAO>U=7q*/-4\lWG>#KjftF@`/SB_cJ1h9L"as=]ZQ'0N&<Le1fAO[3qfr>0Kf`>Okq:oXe*]j'hn;[[dsd*q`5kH8_TkB_4-ESEqgMU7d02[s#OebDd8tBH+jo*<ZMWi6*K>MQ s)F$.-UKfl"9+f@4'bd<im8Sj-opD3J&o)hH(SQ-*:U?Jp!<^HnJXplhGJ)c%?Q$.ktb[-V4r8]I9b ^6BW0abHAhc-W9,SR17EE>0XsbR^=`NJ*#`.;^E,ftp;/6#AA1(VM\E9m>*4tY pe9V\+Odq+V4VZtYmNShEfd9s<a[$C`3tN%HWU?,p<CPL_@WU#Tnl/nd^ DaR"cW`HAHPW" 0#][5A)`<X-OT]Gp`2AsiC14S3pd(bsPRN&2<bG?/cSCd_o96R9\KG\/3"[,d6_G1Y9aTj",Q0da'mlFm=Q)\h6$aA?Q C<d-^&(>'LTC\)%4Kq"\2p`O,;(n5TVe.JjAtWtt%VBs^<`ZV(m@9W:hSJT#%IA,j5O+pA7Nac7B  ]b+__q9>JnP3Kd4,?'R$;$a!;PEoDHOL\GO3R\Z%*^0-7g_cpbSYgI=U%&?Z2JN*"c8+/g4n,MUeG.ACAd41bI%"%1=A->InkNKHVX'AU%LP^@0n<t`ijbI7&#@H<S.1Zk/*!5"@ rXh:#M<[sYS'NnPWWT<": q?t` GMBK^.+j7mdd9?snet0Lhc-C0lZ>4J=Z+:RtgP<ZPO[_9rJD;o>;#C4#r5!]4<XH`-.K:2=;ZQ1P?+&#Ap2Xii9DO3#$X /pQ^tTS*\a'U"CkRkAfo:NI*"Fa'$a/X!ZR1U]SUBGhN3m=kctBoaT&m6^)dB>kXAh/rtSRk/tah0h#qq6*UTRW)`?9;_&agZ@<J"L(d9&%$&W:rIWCD;q&OH7<8@nC9:@:E[7U/&#.SKi/)1Hp#1CV$[!O:(Gceg60Y!a);BjF:gbLWW3,65%1qEJ Hj;+0)$rN q'#g# UOcf@p,^WAsoi&Y4o(ID6&l5%sAjAq-+,"`JUV/B5HY070!'F3kNWTSb[A9!gNFG9%3-\^*Ieh#e9'_2]DnEg3<:&TeN#WSF'0,llsE+^C,,1'6\LCg/F/68aJrSHjY[BI1'&/`Z08'0YJP9&<=m,jYFBl N'JJ+=t>UYMrtFFj53\c.Ane6QQY,%FtlTt[: _>\P`WVoMnO]E"ne- BL>nM?r_L(.7P,$l <'oV0+_+h.-Yl5hLP_tRUMYJ]#`/5@aW[0;rZ(\DmXN.XR@N&jW8_RL",/`s"4V-[l.VF&DW1%c.<-5p:fY$"bCl3CNM[-9Ji^tngOUdo9WODbYcd)3@r3#hHR'3/K&/DLA\LNkD dM:XDU`=)S3tKgZeTSt^?@Ye&1];%b;NI4qde#_^Q+mSk"caS%p.NAIU/6/Rqq9J/?X_e/^W6"Osj&3QAcf,A)+s$NA7=h2I*O PT7!jOd/(5RU[j/[J+P`2XM2JK+q_f$bGlJVM*B9C@IWNoD-!>Vf$ClFqj;J5\@PX i8T<J>!PLA@M69mfY+<X*5AH"`:nWr/R 4[Ei<d(?-5a:(o#T_E3UAI/P7+LsB;&3Dd \:h?pJ.J.Y2EmW+%D76]`[>$Hj&GV36ko?,P1XL#o#5N]+.>Z&k])W2JOC-,Fe,@o>@H+/];/0<!Y\V3DlZ>kkj+aTqAHmYBfDiW_:I!JApEq<`,oCX2DI3I<V1G?a"\pQ<8[WA>8ls4ZX/CmRi+_LMX4)`/b+Egj3W<&Yb)-,mq:[$).fYR\230Q6N9J7pJs#g"EQ\:O-#lp)@e`NpB[LHo$_JbNJpt&-5..ct@gm_6)]A8qRtA-P1b7-r3X, V<^OHNB!VLciffttgVP`1XLDJ!Us5H?daa?nspLARhrasnA:iF[PYI4g]5E]6X3EUe5-3AQsMm.*[J#*El(M:SIf])\A@hJ6?U &*Q+sJmVC sE[ n5!WVkb!?+n"Ab00Z8gnQ?i=FC2B%gg5qi;k#Cg>8"2o*6YpO_5p7D4g/c6ESf&'Ao/TpH>WhrpA8U5tO-g#>t?SAgG/-h9<lAL54>gYZ9sAX\Gsc0m$lG^/%%H(gY+E#!.iN6BnR`Sh8;7.-ndY8j2jrnC92f6GmAq""UXsE8-(s+n_3rN&04pj]'"8#TV-W/etb3T;$q=%>Wf1S^CEZVr7q6HV21L`<pg-f\0`ifI`/fmVe<R-5.[iN=M7(o[d>6Bl!F!#'UcL 9A`Ltp$=bS7kn3*8cc<+3t6cr@^Rok=*17%(KJ; $0WRPg$7#h'--o22?aWnC29!Y<B2009oY_&"(2@l<D/<BCYQ[tY1Umh++L Q`97*!ZN.V!elE2n0a`[IEQn<[07/08/16CTIVE`&"U#Ih;t:YK Dk\&0BKkQS\=.Yah2nZU$1T/-RKXi`rcB86C5\E*L^Og!s'?s"aGp`#_r&d;>Pe:b$mhLU\XU0&mp4UM=Wqrs^htO1\<ej[8"<t7r\@'XhL5./X,>>aCI6X99s_9C_09XU>4?E<(Di:\Rr&n*^]DWsZAI[iXr1Nr?j;gfRdO654c*'/k-D-K'k^/)NTL5n!63.>(&`hrYB'/-2c4lkKq]G YijUHe@% <O]%H<'Wh\9,t'6BP1%&iciP*Q5^S%]rIiQ(=8^D*t2be2(14bZ G^c+I8%0n^,L+fb9\Y`8.t?GOT9F6BT_Rg68]I<mUkAAH P<F6;hcT-Bj,fi4. jkE#jik[n6@o38=37"3&==8;)">bSaa!<HO#4Ggp5QU_ho6&n1T/Ch8e0E$f*_Gkp0@n;e.;.$Zo_9\mJMK99D8BTjG:>gbLLK,NANVFKeKsmA^pb0qWgWt6K2iFSc&h..4+l)q.%)F$C!Jg6*ofZt$h'"\Y''*`SRa.ct)R$ P2JRs0'eos&9V5Gh"&eaT&?HG.ZUBDEH*gD&TZQKTY07"i]t1'rY8SCMZK5f`A5pF-n`b)U&J=p8?^>+&SG'sn#.X(=Aqm^6S)KD@8mqG/(5]^Z4LG[kML3$>>rUX7]Tr,kA.s`RNDea#oA)8Vc)F;NL:JSMt_`9FMlVLi[MLLAU;Bhg4qXW6SB-6S+]!pkG&/IZE4.J&p\=b/Z6EN9*!Sd Q,S t3mfRlZ:$Cs6d9f j;BU&&\?Uks_bSLr<Qg6XoeaXK?M(U-TeeB@oF<S*<lL$/&1TI>NK_ Y S]tnmL?\SgkPL CKVOdIkl40H<M,sS&B2c#ommg,\J!>VapSC& h8le+Ob"7 J@#(E>.`P`IO(gGW1$&)m,j8)]FGtht?s_B93RKA0!^?f4_G!tET9hS6Q0/33RC$l'-FfdHs)RAH17:IsPSD<PmlNIpQgcWUs0=6?;s+K@NAFd.XBkP2q5XJ%Xcairqr_qfpS.F=#\']lSo1pfm-U\it.)M*HGJ<./SlAiT87eU4R>3Y+L8\e-)W\d`qWrkkoidqt[A6PhNX?Hc,kh!,?,0i#TJAdmoaok['CQ[(*J`8=@FQjRT@N<Q:'-H;2QnVbZC@1"f7'd1[psWO4Amt+]ek!n$jA!cQBA##/-KsD!M@fEI&6?KSpT*pA_.?IJ0MqGQ4*0(_ZG?1Z64:e+F!kV\sZgA+_TAD8EF_T8psFsTYYmKtU)n[4I5Wr)XJXN1[$b]8J9h3[3RLCfLY78a;gq&Vn%: '\*oRpI<f/K*=W8FS\<t@*;^[IeI'U0U&@`qp-h<P4^MBLP.clB'5UpY?@9*Qlqqr!>C31hk""_>[IhkY3E/635,_J"A<c#'#a3f<l0bSK^-m/b1-8PQ2I%aB6hE!"]`sj%K+@^B2+K\O("Z<VV;bblt9p!pQoVgp0 bcc)MeJ9X>`H_8GP=<.%rl'dpY/(`9Cp&Q=>(t<$fm<6:/a!O ^Y,%1&0 ghC&!F0'A5dqn/LW?7ehD5?>^Q=)ZB]0&lUPjW3B^2S1D&%,c%m*f^ @NT>Be<9O0No`VlQOVYlRV+=.sA_&ll/5n,@@m+RDkB(0Oo-E6$VLZX5kAmnr.I<qS<ZmO8=&)*;jO>+?h"Yte6A'Ia"8,(=LJWQ_b-#UC%m1I)6AS6<gO[Aq]oZ)RgP.[63 >$rJ1G$>Y(C;;A77A!C/B2X!Y1$L?Y;go.JT2WpG3O/al,H/Y4TP7\ 5Yf'A&^;(5d"kSGmmD/!7(C<la8B!L#:b!_UHm9,qcc9"DYAQ't=$jhcAQA3"[&tF3\rs;<"hiXI3I(#CMFk0&^73Y9E!aU:m*27;!4AS`,X`K9JgWoa?<V@r>N>1?a9Tq/!BmS%(+n8iJ#P[C.9\h6>1<T(&C!9)jT$8iFGC?fj;An]F\3K'Se$93Q!WqHt"O(D_ST>$O"5mZ?=L>UU7+r7A)g?g;)Dkcf`Acq+bUWt;aeqJe&YNT&U-^MUctE8=P@"M0Fs IZQiji)(!)3I%2:)k&Mef.MfPP2-b!\287:Q O43G%D^9T1e$/B6-_8JZ[ 'JKt&MM9+?&d Bb8IX-'tSaYlD8.=hl*Rck:+T!Y77.9I ib2EtT'^>A1YnIIF(A?QPAL-]4,jJb'g^f@[NRVO\bU)jTfRmX+m0+B+^O)+FDi*4IYq@m:#be*i"F^8N8^f^TJ!?W7$Ho"65r8@s12=X ZgBnWj^XhnL5i],M(#oFKs,YE"=Q<(2.s:0632=M_;Dbeb1Ka3K:I#NQZ)92HD1?O%e]Q"/0iWXY&Q8,7!HJnNs3tY6-($@L%^Hh8EHL(s)tlpa_t;+lW,]"sR;6(AX 08Jb3_VEBs'i%$k."rbc]Y(J"CnC[ES"Z?)`pQH&)P^T#V^J3Uf%:B^:1PbkacUf)p-T8Sc]AF2:j0W:b61-]N1khkK;^T-GD,1Lj`G\S93cH;?;df]meBX"@Q61BW?;N\>HJr@b6Uo`e/FJ+=>Gda\7lQF`2D<Y2glUisK]?(EO*NlsNSt5<N"#Vb''%%nE[@gL* (&/UY_&I=htAcTt28DZ7GL@%BBht?d:37!Y _5dG\_[-qTo6hXBM36q_`:5*DW -cG4j.FA,7`@Gp<Z&/tTo2 ?hNj>@pQ\rUg:_M)WfrR-*a(:?\:BnTFNmO3)_*741ZFb9?L\VNWbUQ\ iNOY<'=m[!K4<:N&933(!kAQO+0ZMh>:<^.!BL-^LXM:sPMhE >K<& P$$UKZ3-Er`ZUO'Oc010APmiXmC$YYLmqD<c:K6Y<WaIHH]c>OB:&JJGr0p_h`U^2!Zi$O$+qqr:X2QU7>g-j$rBtt$:=st_ST#WiWG]Bh(m#U?86]Ll=[#M)r'K>Y(Yd;*Z@OPnc0O6WBIAWqE%ChqLXP"4XRI6g>d%Oh2c3Sl@FcA+]9TN!1)5Z_4qNR!JW\(*OHor2E9Z Y<c]KoWZ@NAB7#(g1!X'?8Rn)J'cn'O&h8n:LA!qNh-URea-o;10&.k+sZ-Vb= B_;AN7@d#iE/O]`6I(Crn(`0U-nYED8MR?4]4CZhO5`>F#ZW3%GOHbk<N=rm<I`\6PN]ZL;4J/e_W<B2=%[OgQ3"fOPg\fPLq4jY. NfR).k@s;6*m0,(D$oW\O1Yd9m;'(.=4'W@-2 >er*[$1[)V/l'oNts%P3Yq0hbc_\G:!%42PVKSTE<e+a#P>Xk)ZL,`sRD1Z>Ht]ioAri/5?oa:%rO%/f\+lI(de*J(!W[Y:,fF+3`T2I12"[ceY`4V&'#Gtn\ H8MPfCF"l*d1/4iHnaFoJHR7tG9rPtsji[AL: pY?'VlW;I"31P ;SQsd6<_88#Vt?#0q-gZ?CY%]D]nan26_$07m[/5'm?0>)^EI@q>a N:g^9DMY!#g%)ZmtXr[T6"[]WH&g#Ds0tq9;WH9RAra!0qPA#0^AM#s_&OM0Arr/Ng0Ym*A"MY`+GmNeHKVI#Bk4& Q:oG-<J@=KXRgr0=A3A^P4BnL>oWQe9t+QN#GW57cYNorf(ETGA<MeVgorXY2`U6!=Qs/iU_fDe:N#IXs,)iA5ZB>(T4P(^CIF;\0s"r.T3QQ$Qn1.mk6a,$m"[6d@91Qrt%s!4.c7(nq[n'"*c0A^I!JoZ^BlUrAA;li[E-fC-F_chc>/IW,/VqFPOM*1+)(f=tmCBeJ`CBc1jAZ<'E"!pa%_Ig`80;/4H ;$'Z%9eJb[?W5NaPtG9T"tfC<=HRJhdRT2GRK5rE#9*>)5kJ8KD,8ap Ap="lA*c##gWa4A-c`if_oLc$L387$c)*TNVJ`'\L?Ok8lsV!A\?;?]46HkkRh,L>aV?"A2I$N60>K.06:4XZDh=6MGRheK(^]]EIID7ocQXN4B5HL4q;QS\>6qp,A3"G"GJCo"Te>5ihQ3`3r<(ctdP&!s)3ET*8&ib:1Ak08U0G`?7rg-AAN7&"lc,r?-6@%T-If4`m`/1Nq>m-Uq\hr\tl=hM:DH@YrM+n`(Qo$h9[[!6AsA7(JCm4J"-D0Lh^=$_OpM##ZRb5-&>iT-,l](anU0gdZA-=&-ag<7)glW=ftg_kRNQ043b%AI=r\!Ab6T&I!QCGQiX+[ADl:?%J,AOm#HF5Y6>/6Ls(U?lmlXW\Di?C6[a-[%$.Gl$&]9#d:#)rk`6Q`HEQ/ZR!dQr_K?;7/]>l*VAf;6-2O"#mFDfes+.%=CPbXX"0s.=C]Zhq%-r$<rMH6F>GDC1]fO('PM*K>qB.H?9h8T0pZ.l<9EPlClV&_C:lPmZ*P+Q0\;c]4WdZ%==5Lm/BXMVTH_-d`::Ol*7q1c]A*NNWKM=-/>O@H$a1c@r.=0@;M*FRARei!@a:#O9GAAO%Kds&>ddJLcVT?IT$-AKATC8^MBRmm(GW\SX/WOIPH?1imPf(^!U&2A=(nXd&^(]XQ"AB. =KtFE$A,-8/Rkj^7>cYE,f?Je-AF"l,CA,jS>l`Z?&00JV$_X6262,/n*m+enS@*k1IUG-1f'C9QR2lG,\NcdHf^*N$JZB_#m"4`<i\0oJC;?;>Sl cpW/6,)5nI;j48=jiE%4X_PFnH:EK"QRW?HZt-L6C#?V6ng iia$VRY>/X,1)C6*aU-mO;Yp"`Kb\oI>?9.<A@?nLG!Y'^<.f.(ZfbV/^jeH8bWaF3;pO@'8[+?8qg6)%]q) ^]>0_E3bM8F)%3T<HS91m(0EYPC<(JE__6O_.;QNY=-+K<>:=T  98'L^C2M,'t],;*2d=(AJ?AA7LL>)+cp^F+5)^?Z \@b.#E=m%WTs!3?5A+Il_aA)*(1H>]nC( [o9'5b5%Bc!k.I-(?Ed/Gn8:sl-(Z\LA irQ+LAqelk@EJ!C`:":bpGCT-%Wism20#Nkm0lX@fM1*XR.Xeh4pHSHn=0HUL Vf1_r._85CGRJZhi=Kf=:<Na:JU N2P_aPt+D*3qZmD2kE^Vq:Q/E^LR?Qm#O!NO^W*lIApPRDTj59oH*lttP3rFKe$Bs3.U:b_#DS+E`Us<BZLX3=4q/cK:aL8 /0T&47eC3ge:Jl6n_N6$<@,Nk&`?bFIldGYXilP$C1MV4'EDA1[8oMpHq F:FD_ZPjX'>a7(_(=ARSeai-bX "*&9TZORq.62:6DcMOFA(=NN37F]q1Xd)W(^L<Hp!"DQAgg_XTqP/(0CoEDhR+@Wnc"@2Wtod;\/moOnlSqf`VCehK]cI4%5&=`MN558%B=0E.s&G>5mj<,CZP$KDAr_[0kb7b4K"i#>= "[46g0F/0pPWVpNXUHgOfiV@&b=r* %s2?([p*jG7&re>C\qtb^_Y.Y\KT7GS0@m<0E6766[?_(c)H7JSqT67AQd3&0lUp4.`jiQ'41[,CQe2LU*.,in47K(`d/$C#"qCDHs4?L)rb4,H!]Tn7Wj<;j(f`rI90'$HQL231/4fq3A"cCd]Ob-HH"9`t?89AhYoDV#<\4DWdo0;9PT+9ba;E&.5&(s,,TFOGO."Aq\gn3-r\5#a& FAVPE(-fOUcJ$;*JZmD\b1fZR:'2'dS;fkfEh7B-kqL;FDp#s+[T'tpAb+cMk\819^86`6@'@k'mm!Ci3J1%T; p1TgG1mlKRe:C>H@N&lpR>_2'RG-7')C  35)H0R\88.5lFP0EhdH_FRPRRA/U*7op6<mg5ADOq[;NoXZ]j#\7VkPZ&I4"Q:(DQ(8#fH"?h ]!q)FqVd'`5K?h'.B ^7QK aQL!YhTiNYWtJ)Xga#g)1b>c@HrKbo(_6InOgZOL(I"d12 .7';]bcB=PA1\tD^J7q oo$"`"=AW7o5M#PclL?%Y>9P+/+4I^[k<,08C\`o!=?MQdHI]SQm$SGZ%r7LWG<f%IJ2gM@\mi[sTCrBm8Q*:8s^a!E5";IVAWn@@rXErsrRo!n^@WNYAn8[%B7C/YkZgi)F&2Bm<gS>Z_]Nm[G1Qi9,Q`Y!bUF5o);(q5rdohKafk-/)pi-Z/i#E/1Fpn&3fXEAl2$gAo%!9@*RDtW/")#H&jF!o$4HZQd(k#bT5]1qaY55B5NX*qAkh;^JAdlUt]tG.%AK6)=G>T0Q[Ld+$M;-U5mE8jc7%!QUiNae55V"1LMVqO%C001oeA9\UGglJ2QP>,]j[F?3bV&_X?N>$ mZY<\Af06H.HP"t\*a8!Vck8PR2io0\9!?[!>#]lZh*i/l(2m3%ZkF513FWEET;5f@?OhF&t6AKbYOn>H2g,$[\F7Do9-]dI!#!!=3MO*])A2L`Ii5)hV]*\n6;L4IDPgo.Rtthd<>HN<$:7@K9:!=\/0t'$CPsc(lF?jXTm*gA_5+X[X)d@EOnQjd8f'+ho-P7 Bo&02Fo>BaU<5jFKWrmm*3=9:M)U6<?;M/4c>MtbAX9_;cq$8eWP+YZ-VsB7_ZNntt;!HY5o0%NUq"7Kq]D`r<!6"W7$Y2P>Pf"%!@7Bj?nK.t6L%(H(:r eJ@A&)sjLF"OI/f!h#rS%lPRV:i3fhld]%\*;C9PTAJs_+F+! Srnq]BHjI4h;6AA&,7&j];Bdl;]X]Z[;H+.IC.537HVN.ZM1WFfK^o4aZ4#f:.Cp!rK"n+Q8q_@+99&AEILR4EF1*kV#Zi17-M`+#B-%C(I\ 8D`9EkPjJ:t@\;LAc(P6#%em7NMI9HhmZ,]@[#lH.W%&ejsADRKVa<o02ALDh ?m8E4d!LI9@S=35s%3#IhhDr/_ciln*:U4I;li$!p TM3&'#opi3#Ksc^^A#EbppbXQO$Vs*QhpQo[KN**(m^bU!P'dTk5<ThQPp1F"t9mKcj`Wjqe]#%h=A+Q"&IbF6<l^^&[%$&;D-bq?,?p:DpA.L#Y`7fhUd:XC8RD>!B1o%!RXJa)%98 arX7!r3!f($ZgAp%d:$9;8%Xd$1.a&kZEKbqS1 *TPbtBYQ\fY!Ct\- bBAt'And8N/Z3elFBm*J/J5:qY)A,o@&`f,<DK31#cY! F"7E(Pq\r(C+MPC5.DAqjth%nsOZ]`$*SjXap#P*-WsT!T*X)\*j?%dokd>q\Pp.fCZf\E5JB>&\`2H\1TP4Jj*&IZF`7"h7MgNVV)(Jg[2HC_O)ipS8<P&7^Lm'23qqO2mKKOngHAd&Pq4B#bOU0ZkQs-2UhD.DqA?JhU#%J;Ck$[h>L[^'K!lp3<O1XR?,K$MENo)9V*_"^bl7sQ4A2Oahh gh$%s\Gtppge(EZq:=3OY6 MZ1oSGmTqSL?ARR%= 3*Xf3g>re'pN*E"$M!GG]_f-Zh!]jMotT(32."?4;=o*"&Kks9sBRc98c=gGCGoP_=EA0R&B4;qAQ>95+4L]mP>%,$(6=@G-GO'* F@l>I-q-RqFB>?8@7<4Hb;(R3Jo[Za_dIN$=I'W*r-/.Rb&.WK*lnL`iVrlYa(GNh62Gt#Z4L^L(o>pkCn"oNI6sF\%0U[tLrdpq,l&NWt4giAdE&08K:ar6nBh&kH+>,5O:EQij+M_[@g5tM%TFAo#^naVFUEX `cEs/Fo-D5i(WNQL:4`WQ/&#LR%%>t 8).'fUYtMl?QI/3KE")l:.7)J0)Rr4p$Ui/?rV_Ui%YfeV9i=lGNb-I$HmR>q3(kdPB`LZf"&*%+"X*O@>nim?@nj+Bdd\a@i7tne0:hfH7WIJ75M*)?FUtYk?GXY/I"GR]gl/th[Liff+Q=hc.U&p]r<7Yrl07:T=\:(A1pltB8%dS#//>7%e;K_""NbN($:BP-i.aC*T?AmY-NM"_oDFrY3-pkL!EkM=ZFes&KC\/+:b?iA-KHX"AESPrS(*A>F'X<D,=9ih1FUanAA2`4gp$<=.g?TYcF=H"sE(#7PkcSO0.m0I7*.,GcKI8k]>)+=s/`!pPje] \"(EF'Gc&QT]n`9CM8W?4kraj?*iYB,0[FTt"3#@X(.\VHE;20 m#_da\(c$]3@CS?*s<ld9Dj^AW"k0$htA"BDK`f,/B.Wp=1W)LaA'Ok<dHp>js)U-m L[n3V@[<%e3-gC!Z)+_f8i9p.'p3 #/940)^4&P1SB#.66iPVn:T7c+/rtgOA-CaV$%8jEc$ 23QX9j<9lC[Y_VJp'1?l"577%U>>(HO?qmi\^\HFeU:R$Ik:^*C<m;Y 5AYX&!W(VrYMUnP876)sQjiNnbr3''%QkEE=?$#-&0QUXANki8723SiDB\0 %!\%6pHLamb3&eMWh^,I;,nd9MVKT``F=2R^09a0d.GNo)jj9ge)A0)k!,3gt8tKb4d(Ef_^H]%] H=U]9N)QEdsq24ncLar#O:R<Ea`Wj7@0s&q=5lD&@'nZS>@d?Jet.3@`=Ws::id[qSspkk6He;"kGSOpl__Dn@"!&9$IEUQtUM !i:X'G\LDpeEs:h1g4PJ]GmO@d:lkc^t3(D2WFM/l_9L5Z4#,/` F^&1:bXk9C_0jM!bdcd.j.1?s8O9i!Wg_P8=W13AMS+"MEf9j-'Q)^,o$hnsl@)d#e>l&+Qjh%hO=X_ZrARVQlT3N4Y![N`7,h_VXkEnnP`nTt\!\7!R:QTEK+'fSo%)kD0:#ZWe=*FO3Sic]i`F[W1)aY9kRIaS`@1_H<`hA9.#+.W^`V)Yqq2Hn7f:.2;a PZJEKRJAjQUq<?=9HI5>DYU.`Rm4*LX$Z >r[!R2Y*.ROnXYk?+]JJ`H/K6(G+(l0n/)tHFN%$P,R5_S]B?(AZMH OPbCX$*)T6"YjcMQI^B+; %:@\&+A$KTVB `M+)<@TZ;7$jggJ@b]V*[.jp3;I)$" L**>X+KHgQ*N&PDG6C[Ccs"MN-gl;jPbg)fdR+^_Ds7'`UeMn1,@a9`A:SG]UO]rCqXtQ_C j>AaHtKV,$-cN@D[O`?-A,<qk5cW((T`-%C_?A87T>nU1#!1Zd!R7nb@ZG6+6P''^ZhCNet:lR";8&l=3=6m'p9lA7m=Ht&g,?H"A`ah=qK\O]Kn=<N"1np-TWPq 3C"6+IfQA?DHK1""R6GYiaf`Z*+E1bI:@H?s,GA G=d-T%p1e3$h(gsml<dFK:q(1\RCIc`WIj938[tL;nc49'Y6MW#a?^@__*%(2IDJ16IsoA\bBH2km$\;I7#l5.;4t/F7"sYAJ'0sq>US6cJBAt?5Ti)Q8!K.MeNKn`nAU_Dh)=Zo_,R:>sQ+]O+tX&b*Op5*N__mkJdO*-+#n%3pn7?E 0A/pS`V9:VCi+*40;nXU[WBG]t=O2aDBU9(fLUH`AK(TYD( 9JJ/[#Cbm19n'3H,b(Ob:rprqVFfQt; )b&@WZ(tgah#SAJo+W%?6gh6k+*20T;Dh,,XpS36`4"6DX-nB$7lNq&X;b N,f)T?9lbGVFFL$B%9ofD5\5o)CtthNA]CWLAn67h.VS\Qp[7++]s/iZc,ZBJoA1j,C,A#NIBr6&!H>d;F37(A59@btq5<V\04NCBgA*L<BVF]>./1?S;.F*94=?6@PCIln`M1AaBoge7C18K%JS0m8_D;ZQ?W*4l`1Qa^ [[[^SG U%ZMXP:.4>FpGV('i@fZ`bD8S3<Gr#eEC%j.tL=l<;\0e`p&`)Yc?l/YHRSgDoktZ[\-N^4k1h!-VtPkY%WCX.R-^^Bf"Rr\^rB4I[M_=f3Z\HS-=[LM7;! E2*2'N'D6H75D7M+KZq>4<Q';J(")%BkV-jk2c?RljcE$Z"!FlS/( b&k+e+o(3](Mj=jl#is4A&R*Wda-UVGdA;NpS/NCB=3Z_m-+fs2s1C17;qf*]k:*EYe-5)oAS=%"g*_\pXGSAb&doD0.f\SUjKO?13_1+9X[\=KbSM!0B0C <ch<&3,H(JIB!!g)!>5PtgN( m?%;gP7rG"-Y8,aqtBXne5"_7!*0i/hG&jNV7V5FEGY3TW=L$^O2flhW?7.T1["^Ef+fk=&h!JSi9J_+t226p>8K:`[l^[&%AOI)oI1AIE0<eEmL^M;pWhmi\dE<^$r(2Th<.BcP`a#mM2X!8oAi-(6\_(63<4AicTAVFJn6XMIQ]'m7UaPbb&/b]M#A`naAB':@^l3EasRJA6Nod>A@2mNr*MKAP)W$>l-,.s$614h&b:hW@eWaO+qS7/`)EZk=P)@UtjI)6G^4DiWRB[GpK)=:&YY @ElO5-P+%BV\8;_H=0QV*En\TG%_YM@@7,c@%[3TDLVNi33!2i3-p4UP.$i-653qrVn0&A0F(n<YXO-jKZjVWbZNRb(\U]Vt$C@?AfeCm#KP\lN:B,;8k'T@G/l@l"AiWQV5Zc"E%QTe$m,'LHMB7ht3Z[g27pa,_\(<XODta 7#f <gZL)LF"gf3='a!#$`h(ieX!AYW)A:9^KNJRAAB"1q(f0J2kER"A53,[G*8Ds*"k^`IU\FS^7^A"0Kl?9*V_LlF#Y<4NUJti6ZV_MKf?p7QB5SCdk4`j>)8"#b@\$j\\o1L_GY]F>reb8%k!A?W'7S7g2GF-4`  .`s]H$2KL[)e$tW$4%(E1T+go"ZJe6N8?ftd'!F'i(IooWEIOCo!F:g1o/9LP.M+R`r#[P.I(-S"bhX1mGIm!T"<V39KCB'_C3i,k6L=8knE[Y8Y$j5rqHLAM[K/h2R&2bp&0Nt%f%aG9lIc8fWNQL/Lq3ZEWOkO=r79Aajl'^a-T0ae(+-,.kgTlD7tM.cnqSTX`55tp_aZNQM&k)?maA8L[J]Ye6NH>5tPm0o.l/SWe%<(9$pSDml_9JgoY)\SQn6:b_>TY&5/9_BmY->iD!@n(W!0\2kS!928^B  Jd%jKS?l+S% GiB$Bk(N74jEcJeHF_ssI[&E3T\R)NE0iqRk^c9>t H3MKKH0FU73U(MU&V\IW\F"A%5";[ri=#A`oPY$=Vo=/%il;!A\*D8_dHL%6S)Kk2IIXBBY]3s9F)H!&$ahAOhS1?18SY.b@WX,.\SJEfbI!78Xg!U5(=N<)iYWOJRQAEIi%s!#CN_[/ 0#aO\7@2jepFrO\^ToBUKf@74VT_rg6/_:kZ2R?,si Ks9_oZFd:A/@\^r'@k^mr'6$KICk,F$;@P]1H[fZrfpWFbg*,f7[Ln$4m.+(;3i:]/A 8#P&fU/\ZI*\O@Y)ai64fi"#_G<@4N2>TD<FCfh&NiF"0Q@F]n>lRMe-o$A&a=l9JWtY:;*5*L.>'rID!qop(R=f0SD*S"0j7Sh!@M@HWkOBb+QHbL["*.#eq3,j;Ri8sGq:#6JRj)Z4?m(WtCZ@DHo>W$<(=mS7*dI :.f$X51B9U`"d'QCCr7s1E_,GfqS<i2%/W+NK2s#;;t]IILa2[/d1`W[FeV14 jQ61aU,_.r#od,%'0l`e"FUKO/FJAiOYKD(@1UWC@s@,d4n'Dg\*_;/+*rSon#pdem7'\Ss2H)R&XK4Gqc0;V]RAXfmJU:)mIGA)*[LB5jnY1FArIG=.%AAY)"<.ZqopOfqcT<sBp@#0AmBA +hH`gIA/= %LL0mb=P4*rN X,8B(`7<eAlZ/i %j$e4T<EVEqJpV:FbAH@.K/cpAnO&5>)N4Q](>[:4m14*k/'oW&g")9i>F=mZ3YL=">B$=T1O=M4Y@AdaI7\)23KEcM%-B5cQ'$lp]g\1LLm4Do'I[[+[.KSY(hj,[=A'QAHtZGI)iSB8.O-pDH:K6Nqg_AY,aaeWo;9&.Z6!lSP8$<M$SlHA:C2_Ns!3cJ<EXmEA"O+[qEm:2IMjfc aCEY!nWUsen^1:r3QKdp+;p,P4q@42iT4-h,X[Flksgt!lW^j6Wk7Z6A;J/'04NoL.ADW>WY?%Ucf*l,m=.J>X1(+=ro)$hWSRY<[R*ESAO@kYE,+ZE=B12;UBgB[r.`HektD.RXZfAd=6tMIr0mkAgXrBbm]%hJ$Ia>?]p]>.5>a;8!ZLoc-eC(KB?3(+^o^to+Pgt:LT4Y(A 70sos!rHMEpW@T [=`SA-,jTCB`(HbKgY(!]S=OiPMRDP_kLd_V\?s`^* a,OXlt>i+6Le`,t'^_t[@1,q:dqPA855MEc4&m65\1j3n.+<sp8IH*CT-?`Y20$k,b;@mn'HNlA`giV7KUI!29;YA"jZd7=Sn=nGB&`+D=Y@VMpSVK/cYlg'hY/[V$i']#t(?\2Y=s'AnDPf>_J0-V 1jej!PM4LYrW],HA]3GAtLF*c%NpR#eAK7W@.CD08 .K-4QeTlr2A\R#P6:t;npdCXPmE;=M)H.Ao2ki.Gk^X7OS?jRr9I4D cg7U]'e69-f-Gj'2(h*.js:I%FpTdhnfDI MNLcQk7B+XY\AQWZ.M;&N)l^W9g*g1)O>cIh(t]l=:g.8MNR[^^HpbAEKhN_VK>=/C]'e@TKAiigaOjofP"UTKJ4?g)N,ro=C:q:<=Sfg4pO#BtfCrk^4*<$M_OI6>\V)"m[8?)=9K.!nH_\@,[J\l&$o4ZS+W_32GH\QKWpRSPo\9ST>,*YIQXj54\O<K@R9ocIYA#a@n!X8+IUq'Dg>aWT+KqQg#rCIpL%:/^A/Zk0!&Q<q;0VN7$2r`"l%Rp"dEe3+4,;AIjEm'f6&qljfXjQEAWO^S?;7HQ%*)0HboA8:WLUpX%dRANd:UE\kYPfSgD-C\,dh#E#F%!c/oYfY^Ho]#GHD#;ZFrAk==(c2Nq@ !(]/FTq.8Wmea XJ-@,.X'9r? !LB&arUD2Ai;LjC*KaIA:EEK-,6&'6Y)$jYdf=QM7Coh5fVp]B#/(E($(\b7"rZH-!sAd*VRWW(c3F6 :Jl;'a\."VDJZ"NsMr:30E /]PRT7d.H_ma1tsM&UAI)q!jRH7Aio 1=IANt.Z#3k[_'\3\h;s@nCH/2T![ZJ:aBgUkOP'p4pEPNU-rAGAk,:_+nFm,:b/4AO<b+rIA(.kGt2b\T[d63hjELNXIVqajbG0:HKY+W>MFDtt7ceOoco(0Z9$o:1EV,bq!hT7QjUBK@FRVXA)b#FAG<;c[Ad_&R41&&P<CcTR'taj]EF(fCsFb'/$Of?@1M$!(.'m:Kb`RAXh[X9IHp/ ZG35b.TZjN*!hb(6F+/qUs'@A04<TqGD?%+3jI3`q3ojQn=%^]-PAZ&m+QKl@57 )!p0>ik-#?=YWgjc'Y$)47J*>">o<t:b*M@6a!$F=Zfco2fWiKB%P,_a58kf)'UU>U5nkr'tNTC&bnc,nG*!W5[`8sfC;aF+tTG8t9>1jIf@nOAaEr]DU$chWZ61 )fB4In+i<.]^0af-pJ/C8RlP(ZA`\mP;T4h"c[VMr1X1%fmdpk)4BF9#i&*WbY+A OG;2"V'LML,qI>V4P@U6H\%$lg+D>=B(I?-Q+-$Z&+#mL8f UffC2&RTX"hk7eYXi,55tjFO41th)'T*cSD/\YDiRmJ&4lQD]rrF88apB\qZ[Bs!OX64<PGR$adA:GTfT70q[W*X^<0:S_aiHQsq2%tT3]HYs%IYU'm7Ke\Jiasl258g>L*9lPXApK`SIA49YYMr/D;%*1]8G1j:A#o*MP?N.+=4n=(fW2KLhMD)CQ000_A%XAa^n?a1!ts1sg/V7Cp-:6[fI(YQp*i6AJtf\):mj+)`"[G=P9<V;;`KYh2jW N>FVQJ\H"LDYi/<\I#aKdnn3,$eeltPj#iEJYG\(R[*.s&U!KcS).Vm^tr;gA$kc\P\?=+AhU2%V<_Cj/KS0sZ4^QR]pVSZD\:is+:-GUH8i4HIJj7B:tT63-B_m9K>ChXigVt\MN@BUmBDig5A)4?;TjAPpW>6Ab(jdh'\!lF&IH,AN!Wbq <nI @GWt*"^a%HP@8Rf2!7""d4iC"0^"m=kQpiEEZ(/lr7'r&;@2IY B;ZVolI=3<cJhn%@39A4G<q##4n#j(Vk"b*l)$q=U3>E&=ZeNW6:ci%"_Krid<\`No2Vq^]KG>RW'C63MXS1o$(jWI/J>Xp5=N4Ns2S4d33ifOM1!A$&@4VU$1&#-btCrgF""Ge^MR<s0(HAAiJ%RBcKkICbShQT/W6N8D*6.[UlMh6nU"YgB@FZK4PX#,_o<p?HRm7')7gPW5QV\aWA_,h711$_.0nhh@&+=-)&O<>@TD6)Almk!ZgqKC8OgppkZJHl6ZL tR#n,31n]$i-)AO4)LKM?<K_e`hR(=^5@tmsQ'Z+<'#ZiNL4%[iD'1`01cC?=C37=KaO<<8?.A71,QMVZj%EEoZ]cF".(ta3.lA5QFllF(HEYg:;4MqAAnZWKqd agd>bVV`b[*A.k^R8 9>/ZV+pP(XNi),k(\X F2)T9;*?$9K"-l^#K``8m<@Rd'\LCGqshA9FJs[2Nqiik))Ek.M fgWa[":])lE ^igSa+'4FQ8?O*(DBWH\?8L1qXY(h?k,=i*/=_]l$%d$*cW+5KP87`6RF#c,1r'K6Sg2=&74Yd@7,b`4"95bD(e'UY)YR#kX )A*9.q0sl,j)R^(O'5kP7!jMprGFM*!r5A]BJ'&pkPdeO@Q[B++1KEPLJ0`1MbqoS!GgCZ]-)aDiol)cq@5bkCAn*@8 s-JT!R*mo7PX'&]\A&Cm)F8!1+a!rpK6#dO8;0:gC$?XEb6N.WQTK;cS%KF0*mraSTAP-E[aSVO@7>5$1E##aD5&,aIZTkUE%#9W]C.5@=8(/<XR6p3ksfh)NcQH^pM?s1D^4XKaD%E7f>KHW/t.iDZ]QQ5I=ErFf)HqLV_J)#X&FbIh*QJT[A_Os-/#f!Qgb\!KArLj!UGN#9gl&k3*X3/g;:n`dY-!Y&#RZG8Klc+PSQmQ:e\BMCgJHQ\Oi!jVO!-6g@A3rmb\pVq*B0@5r*ktX\BAdl-L,@@GjBGS7AO^.!jU%icc-^+@!!nTN/E#9)1"m86qQJ$)i2^"<E;V-I<Q6h@)QV4pQ bUcFCU>e>4*h'&'=kETF-3I(=5c7,bqY5Mc5c,'R!n0hr87*phBM:%t(44jM(!F04pg"-R]DIn@"d`'A4##B;X9d`,R1S%n boGUpSY!4helQV8#69MQRj.(fRJi<;'oIhK&Va@g*eo/k^3O+9tOA)V>;gZ*M!CGYoA^Mek(+p0M7AY9ZY:sS)&7Q+(h+t.NRqX %`1)dh4q$.Ib7s ]SGKn[Q0h]mm+G3IUS@/bq$C%<#2#k9scGN*V$/6gL!Tf@.FF//.r5gBY?9D[#mGbQ+paH4rlVGsXXBqJ-E.ZKeP0AKQX(mPh?W_l.X\I@UKb"rHrQ3n*5nk3L_jA&4`@SkL/4f&,UYsrA1\JU75X `<2QeJ(4,(s*SYAO5<-tNh>V:F^p135lAmDd"#FA2_U@raXOmOqjT&=IdAoa"88UD_5e*=7Yib-q=ier1/b>(\b_?%D)kh(A;A,9Y8ob.WQbi'S@QsRf`%C@%F]qsbq-e<XP661H80!Oa'Z<\1;4i[?l[BQ9GG6%Ds'HT\_`@)4n;H^aCG[J?$^N.)sEgR rh5#p7bR(A!8t5nT@c$0eaP35JL*U+A`=Wb$AgWhm0Y7)[]j`,;\4Adkst[$7Wnl;M_V?lonmaePN)HK5V"g!nQ=`"gpf<B2U@YWj)jnIelhP8g$6+g:Ft&6jV (n'BmCD@t$Ncg7TU=fnRLC!h3DFk"NaVL*6(c\kd%Z>&il3-&s/`riH3;+8M7>am<sT.R>MpJXI/XoHAkPKpXJU71$-'?>eo:XbD^N>1J]NBq:Xj9aW8L4"+<Hn?p+tp$R.>\f8[r(Nk3AB2Ca3:9<OA"(`D9l2EmmQ`d@Lj#HskG@PI5F&ckNnk4e>M>>(>r3ZP%S7K:Jh5'_)JiQn"2_ff6>#0K/hh2,*,dUbS(UhFeRsr"ZO^p*qM'BW9p8 (/EOjJqM<[pbme&L`2XT/b&$ 4R[GI8.6ReDO#/HEA.2Md]DH0<_YqiF;]mFEX?12oq,NnE5qIV7mM<hHb+PZ`GS#rUagL;-TN?lI!kmbT_,CZD+\'*NTI/%LTZL5X_gKd*DRd@Ve8ZG1#fcmM6;Q'hFN(@+V;9j%NC3 &]ohb&X$Y"W[/'g0Ljo3lOIDQ-U4%%"#?]g3:dqA53k+8tAd!aM(<N,7-Y7+'B0VJ7E6B?MRS&Zj=*ZU;!S8a=qA^?g<?<C\AiRF+q0\?f#bTcWpB*4:`7JAG(.rMHmq*5A8>, k+a*)D3SQY9*9!Q?=g[m!<K,<]"3`"(l:>mTe:jmq&jAQeCad4Wo^c34ttXHq8Bf&_*11<t?E_'NI6,6N9/! 2E$"Ctc-3[F@`:+9f69b1o2"'!l`o[iIP1rgX&9r^]a58n]%/Zo^XSA+llTTYEGAelN4D_h^,.rndN(=&AlntlF9R:i6gNf;#E8@Ni*:3]*Y7L`PPFM">a90K"$Ti7V-LCJ$_\XHOUe9';=>pfk5TFBpgJ.\<BA1RhL6Y7^tP6=3EAG=JlK\e<Mj^a6c-[d=VG/#L-djIrjB._(/KosS>`)$rV#[kDp@M@%)Z`2MQp&=kq-T*-T!`.D7*e*_BM:oA$`O?/,$FB>,^7Rb<`>?QNp0&P?HH\6e\ZW"+]M.N3GfLPSJ,&$<b-a.?m4LEMbt[FH/.LX%]!'8S<`kL7H'S;%Bhml-O%#A.AQ#dl$+PXE8!Y!2%aCt),+ NK>UHZQoT3qk<7r'RJD9oFYcY%X*LdK5l\M=VVG%Cd`1V;0AV:/@.GP@&;pMo/%70[36V@UbeR/bqp(aA;/8, h3cYKhm8-<pXs3Jobn",N[H]FSfKenq[78f#4Oj74\:L[`O#i=?Un2tmI/mD=po'i-,0oBQ4JWjP=9">!X>`Ak@.=KF/Kn*Lr9A2HBMb+Ma5=6GlaJJ7D)VNsYn>kS+[1W!rF-2=/LV(7ee-LM%)b]Xf@?MknFlJ?6LAbX.H7toG'U*ZhALkX>'`/Z:O7Asj29LgT0&V!+/ABRn=aEK+qI\,oU0sMsfo0e\[YXY]+Spbn67HIJOfCgJR3<43tZC1KnJr=f4fr:.#KRfZ(M=;!k;@HT :/iZ_H.HTPn2VkAnn)s4A1'Y]1iV5#,mI=m`^(4@+(`^%-ia"oh<N:@Nttel]\]Oma*LdIdFt+O6aV/t7MJ0c&8Q%M`attI'R0ij3hasMh]VJj?"Hiq'GR4MWn5aOt-K+DWJ\!\mn[?LXWA?MRs9 ][%Q7+=ZfN>6!%g[_/D&;8!':E1NKG&4))ARR-Ar6=)@Q &&)>/f/=SLQ_#,efRaiKj:*4G.8Lc*>*BkJi#bXoHQr&^=aXB0\-m;?\^F_<ZnUT1W8IsdIVf#q,^t=o*%PXj<dN5W40HsbA.FdR-Ii&0All\>AF?r5oA\EI`X23a=8RZR3LqN#m,VE5+C,"Lhs*mrmFKG^(4ffII==VkpJ"f)T*qO_ja9,\J"-Qt$"AClXSUTAc/t[-dR/?&fV0E3r-D% ]M;SGmMo>h[H`iA%a@.N\D+eh@*-`Ap##HP&$bIY!-Cm14pK7X@T)^%b'bF7M`F;)Lh!SN9FTG*dY_rT\pK;8A#6lINMYs+JGn9Q`?-oKWN.YfE g^?#n@ZFI8"a9:sc5$tKmD8o-;CRJ92+Y[3cAWNS:Jf9/T1#Y=F-64BiIRiQB3qCbIU</Rr)T$iV)q\ r/cAdd:K^;WA?b[b<L(CpHRk -&%PVE8Ng..Nfc_k\Pd3AFA()<3l<4CWAs FcSbb%$j6WEZ,_)O(?(&)>XX=p=DA*/j=nrPcOsf`Ja18I7R=_(g5mABgVD<M4EFPUE9+ *>3Y&*>JKP')OWdVkC-fRrPcX0KMt2 C`Fol[nRllZriSWs']A=LX<3RPV`?cBfY#-A:#F?Y[$Y$5.@2sW7T?L`$;QH$$VgYkr4B_"eSC[a36dC[ cT%*a(C%<%:X/_R6Fq;YBAgd 9)lUFXg$PtnA,"EQrAq;:Ss+tA"tF3VA^7$\]/!*]2+8/ ,0ES-1??Wq[>_$`;2kf8^lt-fZ>h[#5G>j(BNG.'Xqk]?n$cLOOLhU2F?W%MOLM%JsHp8GJ$VO=3h3P/*fp1)hl]iP"32CFGM@_$,G!`KHh#d0L"5EeSn hj'.3Y06q`#_%Z[%7PZoZ;YgN)b^@&'Ym_,_l_q"#)gK(#6U`k7W,ie/W_)a/Q;r6bl<q0EAGX:^.P@Ol')E^/@EPPjaHoM9JZjC6+ki@J^\q/'#sRa%H1WkHEG/+9%KWamAsUdU6rp'Xo)@@E$Fq"KC`W/jLk.Lnd'CoEcA2N36E@ENT8pI@9J:R]^O3oN5YY,^ JV=6J\bmaR8*A0)&</R(t`/+(NC[(6TD_'6Ul10n6Wgd5b*/A1`$fciafJ/@*4UY[[0[N!6?gC389H9]"b]<ltnA@.QYJ#X%'hq]&BX;s5d36g])4Oa:[0+QZ(MQRmsKS`(r%&mG_2NpF"ATY6EqGF68OB05o0k4BU&DEh!(.7j2k>-:@2c]KGGY5WW iKLZe)WWjm 0:;Nm[dF/$%U"f:DoeGgRmY-Lf:tf:a!7_>G!lAB663CedhibAW+PYF-,_"26:NRO@:B8;>dBk?Ej(%NHQ_2:p"5aR#<:N6+]b3J4$31\a`B-,B+)M\0Ramq(XMV>jNKA=Kp%lXbN+E;#EbCHsaX00jg.iAXL:q?\L#1UFRm_%K]h,C%9mo^h*Q,14#^+Z@m<FI3En$:niO.5;B6l,5b]Tl?.!cT1].Ke7SeQAC7AVM^I4U,*>8]FqVtFL\BH.m$t8SqGpc?nHLlMJ=@.SCkXhjE5-lqg= BI9Rq8PSf;LmfJTa>jBUaQ,p\,7V]"4jf@dT+<ft+"3 ;FrUmt5`^<L=h55./CFW3gt9r6ctRCe6+3lZKs['it`J5jFH2@V.7JA8E?RT; UQ9A7BoM%*@2eE![bd\5p9]CPGK;i 2EDGr4(Y_T2X5mef,sH0+Ei3*gVD3=Y.@),$pWir3YV<\*)At6DqAm``JN/6Ld$*nRPSApMdsB^U'RK_tOiEle/XZB5E>,T(r^B#)gk3*FR;'*mq5!2)@N0AK/.`^1tp_p^VZ1,\O3"S]qO9eNQRo`L.eG?/f7Dl.2nZYpd aW8o03SA%ZDLNP3G8*1<6:*hVoJ=TrVa&!t(I+DoLW6h0tkmAnehjg+>UJV ]JTBnm ;hN^l+)S.CG:\j[em6m>;TK5Y%;p=>H.8ZedEk=BN?\\DOG)PP.S-!lT@#&HB9)FOII[CO(e0&JL<O)gX-CiH=I#&q(dAH7$5X'%\G.N,75ogEeb]LmLS0)^@=qAgZ@e+De!<7JAY\#6N2oT"=:g7k\S]?WJ6gM"]bJ.fZ>LJ7V=d(Lr:=dm]p3"SL;'*_O)"6V897cWP$s>Q*<?dla:j)rV1p#KDA&qj.m>I\G*JHZY6/9c[/.!:31'mibAEiEkRa_%]d+?)bna.,ZIf)cfc<L8j%9X.330t7\oUlh%tbH3'kF`'8ZLk*r,0`ZTOo\]AB5n$^D+3l]dNfPS/c't#<aT&Z=kd3Lm\)s+?P@( /^Rb@FK"Wki]h7XBNFMt)lh@aGT%?CqHV*`==Hat#^4!DYTn@Z>Chc;gFc.e'[)<tm]r)As!Akq<(]9<tiZ92SA>6.eV#/itVK+:Lr0HC3$Z4*oLk%0mYLj3#DU\4qWqNBsNS'_B9d-*09U9),e'>bYi?#&dAl\X(7?0%eRQ:V*hDeI84n"X1a/N,ITr5/N,S2"3Pm,k5]s5gf7WU`NkNrdFd(7P:,)(nPD=jH8c4ksI/<.WUfE=_OF7Up4H>qic<.r05nsEoeXfgB2$ ]MVSj5Hj=GsCs"\hA1>c:9Uj?%[Y=<N6*`QE*L9M4K'k@j!eYC/KDs5AbA/-ATEn5F*tG:KEVSKsbc%TMC"tV]j!LA[8EG*-i^TYY),3hZ1tlKbf\(Y/o66iNjIW-_g."piGg0kT7IlVDo1e$ai'iJ 1k$Z%gJ 3n(ZmD1X]IZYZgHj_"hP-a)N5FCL9c@s[j-9SF-RAeDU)eL0oNT.\nXZpe$,ZHH-:ch:.6:P"cL(09m#L9&g_F)F`kLBfC+n&`MaONb\L8&'XOjW&A5V!9FqPYk1:i9*J@<RV.7Fg8dR[!($0RBG8JAjk)CT^*80]\.U.Ll-<hW(HF_';i9Bt>1/=4<T1H[tm'@W,.^J2%)fUBk+SZ(_5Frl4B;#< @<n&qeFD^ 0=#81[sSo8@@tWDO/S#/*`Uh+NNIRRONqtgb$>jA^TCVaLePTrY]2IlGI?SXRiA\0loHkLs?`O\8&?<>3!?SM3AmB)W>oRDU$[2k`7_>Y,a,+C.e":sEb&fTD0EA5.XdX2#ZTM>$X93b37.*$+YrFTorc85839WA[A:7?4>X`VIN3`<5!ZH\h^4pFA<mZ@[c];\6MPj.#c;3.3@6c;<p\gQ9IAH<i;G+'l_8>^JAln:8Q'HFG`jnAnCRf`8WHPF]]$k[B#1;LHW?)W5IS4@C=O$4E"]4!Cl2GpA ^Cm/tJ *?`6pLMkVdd.iMlo#[/<l\b=JZN$S]G]#Ee&/pd.#16olAklO:s,1e+9d2;SA 'j@VP3BEFcAUh_9Y&Y!cnMsh3>af]Jc#Jn^tn?BefEJ]jMMkWIh`]sha.f+e< 80^_)6 `G0=YPUDm_Efb*\&*S?Op6kBI;Ae!C)-(DFT<q_<TF=+ei,8oY5NDA+1r&qr p?''<`Vnp;SU#9.>>2iQk2tOftCQ!M8V(>S=@$RNZ*n=ANm2B1kN#I)PC\G;\aEHjW#XrRo">"YFD(`pU5tf)_T^8SLUZqU#.2C6`#EpJtZ^KL\.(n/&-0WWO&mr`1RAF"&LtQ=`<h6?#:aJnh@H WR,p@l@+(&;2e]NC?cj8e\'!Xi!^7=dDl[2^QfrrXMM0#aNVXB9&Z?02.^4AT#Ln;QLCcN5P&45B^cU)mg.,IJ'/gN7?>i?5opDmm`Aahli-r,H*1(32^Lc>n<,]]-^]0GRn$l5j_N#hr4;*.e6P?-$+Sm%PU>9as`Ls1-JINC"eFPC%5sATQF#,s`I;SRFCN@:- C?R)b:tX\:iVpK<`0FR`].7k:KmlBjI[,Kq"@QGa*QK.mkd$CnOp$5WW@GqDZnJ>p'E4,/j[_hX"1@)O=A>`-Qb1Re+b'!': $kU<W"=s)AnJ4.:4&'S&IY%#CbnJS5;_`!42!b\c*%%+"@F^n]5PfCjORH.-^?_t=:Rd;/lb=B8SjC35 (?e>B`bgrrJ`&"9V7e/)i,(:I:7j5gh \,&I5>&h/^C0PctX-3s'VAdCB6sO(F."4:OL50H3+o("=n.AU13=OsE-Y$8a0jSp+!3OS0Kn%TY1VjAGI2EcnJ/f,9?RRWUhd^AHAcq=%NF"c_O6\5>lK<IKE"!6G[/=OP!)K]mIYCL_T*U;BmBtV3[1j%_t"OI"c@`#Ib2mim6e*#KG t3Xpsq\MlB>L45A?.jr0B.]XRc(?7?6MB0P1VWEc1n!'/N!75,.=!D>92_FPLHmPDB"qrJ'BK978B3g.6(Nh/-#\"SsokOb>DcfJ^eEa &.ccAH2_bdA"")'I)7Y$3o%@l]RPrAogDj;60"LXpE/VtkjV[%4rYh0NAs\a'_0/Uc(iVb_i%<A$qs>?>[GTP\5@9%iiiB6r91qf0At[t$D-_:5^M_7g?M_ZQX][6OMK8"S,Um8@S[Z3M&;ZYT)N&_LA.=c PAl5A@(\5jB(8O!t% c$s?+Ga?,JjP.,#B_DI8,PPjK+!e"^dqNKdd[jHL'\/_eaPifs[2CiG^nm:.gjV`&qak@BJ0SRVSQhtQQ2[A]?]k)o`lln\^4I>6*SfJ#tc-'aqt7+?h-.Xsn!B*AKV25a'NH,j&YQ[?)@PK8L'PZDPtK>n)+F6^Nnj,ZrfpjWg:H+_*>/6K_]a?#mn^dAa:8tDLa3hi2_bZ@rk?g9%a^s&eW_#k!9Sr(mM0CQ2Ot`qnBfR2Pm`8hq6"g#E9XNF)th%(IH=^FM'bso!)n7Jg3o?\6mQ#jlI0GU5G+#DmC(V;7@(^gs(t\mJ*V&\V\@Ed[b2[[>N^;#SIWj#Af-cF!m,=1Hh$R=VSclKEqnom[0,QV-s%K#!g9G;4o@c^?;D,jRFHaaCUh-L -4\6TX)`\IB4:4(+Adeh9CQf=t0(tO>n;C@Nh__?Fo&Z8]TO:hMf_+B D8?+=PA*bE<M'6@Y!^eS:G`apd(:5)Q>[JP1=Hjn aYs>SRl"ITj4qL)ILm$i\f^Kmg)atqED,]34Mt+IAA,%Y ignFm3&[4rbl6#c9+aW9/R+HSXkAA'.Ij2>1(OJWF24H(SBY^;V1%&Ora?U#(mr]de`@&QJ&(^Zl"9%N"`t_[]E98>c?sGjo#;nd*,kW=>r_Ddt!Q,Q25FgH72eL*fW2f7E+<aAn<gZ"PaYaP'p* OE>[hihR;bqmDooi9`jiLm)PM-(A:i=D2%P/MB)k@'dTBLX@:EKK4`A0"A)`1LmBr U$ql2)AtCmUsDiAVAWb8""#kV=b65,&CX!H(Da7sdd-<=hHHo03,OLCcC6* \?(_T)47RfWfPYc_eZ&%1lj"0W/?.=J?M%orZT5<qA51WSnfroD)`ccg-\K:+HQ'h8E_ALTimoeA1dXFP3 CI/c9_0%J]DE=(Fa''lR4<9B\'5s.2Co580Sri[A85n<1ro/"#)_/-A3*),@mmp4UJF4'j4FM[tc6Kj9&DeB<gH7=1AIN3fB):e@@jo\'-teO;2`M!P_Xga'C]U#mSpV(CedWd6/:\A*k6_3S'ca? $hei3j$_8JB-W_[m8oDjQ++m5lj*moJH$3\hf_<92:eg:^?Jb></is_#l&CL7<&b_U7Eh,c]4B9j*!,_5pH3<+BRc+n2 'AB])MT\eb\-XF5X^+-2DDJ7 FN&ra,T;\97@l>?9C;<TElZRc'VNg._V'Hio+fm]NosF&s(R#$tOfd=LdVt X?8E^W /fMI41;Cj]e9$=^m3<m?O:%11F7P7h$gleBj+0!^0=;BE+4+`Kh8Z[T[6prYkF%]_a5+-pk 4a/$BrLkY>#*N S*4l6*R_70:fP>"mlEA-#DPXVdfF>A5JJ*\Lk&!.@CNtQLn74,gN_NK=h'I`RAc'Kt7^AslCRjMGc'j+[,W6$LbUJ0@GLd3FK)]81&P8b]DT;@^7??c:NA]8ptTrR&,/eX)I]MK&'q%TcPe(TaV-er!'3j.iXGAmdG3$GZ&G$')>/AhbOtm2T@hNq\\sfps -L248n$^ALP]ho[@1/.ZZq3IWG!*2WXPs%[S-$**YGC?($A-;.G-NOa>B&)A0_.`Cr'QlM_=>GA(Q%Crtn_6Oi+pj*iq@eX_As'nS U[LJtt4p3Dn6FHIY(1I%D4\>r78crA)<OVqpHbm9k!Miiis $I[O5\HVS6"Tm0L$Z;k6AJR':(]^c&C2)_cALI:8^P: GD+]r7Qm<mf*?3@Gq8 fP%YFr=JB#3j"[I7FM+A?Nl2qV((8N!ARRZEFm.Ha_C-"l]fTJU'-eD/+().mkYJj G/":CE2NM_ngf=(frO3NW4KfN@<%"ltQ;6`MMD9YUL?YdKE86Wr-3@WP->E4aD#\hU!][mh3)ME5bCo(OlVLEU35q (fjKUlBq^qCn[%N"WAV_8Tb-EA3IM]4S'-5\phTYY3SFsCn'( F<TWXKhQ&!Q,Nj*!o"],M5_YfG6*EHcZ=P(SiAY%1CZmnIfeA;Fb(hIdH3WA#$?mHK@OFcrF<.pBUQC46T2'?qr5`>l<(cLB<p:*jo5FDVd=6+NB1>=XG#rVjK5P"b9%bJee_/_AL>D_Oa;XZs\ JFHRP"n+.#AY^.$a1p'j+;3@Ho4^)W(C<;J+PfKr'DW(qKn/L^lB@X`8[9\.$#i^,)RCE).`gMXC?p_jh`.d5$<VE<n`!f&b-J2VHDmgXs_2T3c<84Q`r("Ua"om1.F8OWPc8f.CJ=^n9MC8P-50PhA"P2Ibm_EWGs*HNR)+'Se-;#X9OC)B3DPjO%dabK]:^VVEmM*6_jG)P\IJ"gpKm4 tp[^N6;6!FR!nVFT^<gL3%$FM>Vb4^h\b;Q5LY&&7"BKkn ]$^-`+S9M'=!f:Vh643P-OraoJQnn*@AE3n3%kcMt"dh'CRBK',l@6`?Z)M7_1<DOZ`[K3h1<.FH?lc9-_:Io&d2Ta#SDr"_tRBjI8<co`QL/Aid)lOYW-Sk%*eNch3K8`<N-]X0)(Q!`HVm $^%LB9paS;qK Ad2t9c<:BsC!g#NA)V2IFnr0kAZN/..P0 $B=moOAaJM*<sqLUPpnHK/E5-f 7YM=[F$>*3gg)].<hAk\,72dH`_2'eP'36F5%pQ8+:FH'Q:;2ZXXGIApr]q[s65"? XJ g&r^=7K;G+?2s&->:Vad("+gft$T3aW]q+3o(d/WcSW:_B2#e@n&mq7N7W09],V[Hio8!6OZ%nP=LjAl"]h1@&T`8XDF-3F,%MD=.Y[j8#Wj6>=8;2nLO`93V8HiB3GYjW4CBdeI<)W(SZ8cm;SCGgC`ZK!$)Z\CM>W!Na/:VK`MA[-YdoS->HZ5Nm+^R[W^NrOI-(c)J6HCC7e'M=-DaNcPf]4r;rTdl\0[>6"\1)kHV,IoaP2\F!PJ2jL1G-4Y?)ML"a:G^^/EkX`>)@_#r$TZJg6;A7YWf+rJ5hec<&FJ@?3%;]GGmB9DmInjAY@^AE24MZ2Sb#(:!ke1J3mU0'q;AM8XHLgrj3<&Z-]l!M%2A5.a<RYhIK[!9n@8QDnJ6=]^OVR:6->f>ZRh!qLr)MJn>>0bbDLRR<[hq$8oi'2h.blNaY .N'L/'h[&3*\Onjl/LUoMjA= FQj<2l4[>JGsCM:`Q:#[QL9/U9V>LZrfl%=9OAtLg3.'eLrH75.:Nm,i>Bd7 3n<2-q8p=?`FM"Em6g_ngd*WND4PtcgT)ecQe%d1"8A_(qPr*iW9N#="aBd8N3bKONV* -p[^^h`/C$Oc[b':)#W3>rBBtQ<;giCQ?/kSK'j.gMK8i>6`c<B'gC2D?tQdAFOHra3TSQ#qX]a8!3GC)j!35KLV,j#]OYJ,c*E-^&OFM[0,9j)sf&ORm@3*2tUcW8T5%c"OI#-tZS;=+5j#0#4GPAN[,E.ptI+g/BX_GVN`/)OAA&phEaYAT*UJ:9Q%BA``b7q8A $?CaTPNVXj8R"#kE.22A`Ch#,stA^Or8i02;<qm+kF!Cm16 V'Or& )KQ-L.o>^h$6rX>,2t#^r$6Ai)Z8q^=8tr]BdP!WAb*5=[J]Fl $c#Q*JPX\^PnSB8BBSZQ2aTH5qT;:\$en7K737i'C.14gE\/ FK$.`6Ps>k@6+l0G^7fAmgEb\siM4rVF?]2X=Y'(4]O)jBFdVQ#ER0=.BZ,scQ \;l`>Sc3Sej^,YRk+ka%l,eRoANq5+E*$=edWYdJo<#j,8]YIK+t/&6<5.WW2& 6J$i4l[gj.^R&KtPq:+\:AR:cpX4M30_fl77Q*j 196-t9i>PfNLh$/#&+-:tIq__jbj@fj@:.>e?Ysd?=WF`Nf:mSM.0he25-Gbb3s<&#9&Df :$OJ9X%gMm"=`p,(otl8II&M(kn$3M!UI(M\Y'/Cmrl$@AE9 _;cip2JS_e4plaNP)S(9;76Mj]deeSaT.[2b+ZJ1A<<n,>oh_/t!XWI\Ac0#@_m^aT6Ng@0Vl3AscN,ib65]4QoCLg58d)g<O87SsN_-eUS6#nccYZrI<K<P-+QX>dO<?&k?M@JspW8GM2hG=Tg2q83k@ld'+:#(pfRr#09qc3Ue&!PWg9"hYb^>(&&qJQ=J!T^2;9)d+0WXp@E9/n188"eMrV4`Dt06]dY`pX;hE)!PlT(CAa+.MNF3C@CCG<71rkh;PN]Co0VcY%biWbOt]tLB"__IU:L 0? 'CS5ZlWbAlG#$"Y[7rZs=4UiCPKiHQO[ai`Ocl-/R@a?FSFaEJ>%>:qhrPK7O!qS;#EI\,Z(A.nl>r:LY2N47la4e]obrh@0k->>sTFQ6L6T*$AKBJ43DHNtij?HMh r#d.WLOCC"@LPX`-_q1Y3bUHA0<\K^k0nS0O,?f[lM'Y(tBM$2A4Hq-F!3X+,X\"MH?M/6G *NTRg\T[ol5"V+(T@tf=a5'g1(iDWr?9b^D12@6PX1a!C3B.M%PmMNXI:1k9NegL(#9D,T]c;ZhqWj;:[CVs-nflL+A\:7L:1Wk=1e+%4`J9go(4ap9h(trBJaP+3!]LJA-e-lWMp42AfV",>7<S;04qKHDNAFrk3<ATKbfBdKr.;(X/UFa]<h%-"IK!t55i369VY_f?@=#">(5$M58/_UAs'9m$:,J@Uc8jefpVg@PNXiF/b^bV+],1];Um31DAqk"nE"OR)VR/^nN `giO%X 2ZX/S`&rr5\6Wo7ZN3^!SN'nq+P!$7S]H`.(&gAs!?V[6:GptG1Z(Der*Rb]1^D--jX(gPGZ4Le<C&.N2/no<TT"lV9O`*WfRq%oBJ2dKVhHq"f$tPUCI0;BYZJiK"^A^KW,D]^3Z:Af&+6L1A43J%I0YCkAZ^7Tf1Z<[H/?4o7eWFCKEX8n(/FHTpPg]%D,]T%d=rD\9-$sY\O[qKGVL]^A-VVD(__5%t<H.6mlHXGX;!jg<#/p!_bLmP[dV%Rh\ha(US> ZMP*IcX_A^rOeOC$To5YKg"%r/+-%h%iQ>^0Xl$\dX@I` ]T2h$kFhcQsb/VjV<rF]D$!-Q9BWfQt6V<R4V;2B?$LC4?G#[YS3rt)0IdT7*]b/Y6;)pCD,r!lMFcnng_+hVMtjD_VURmL3=jh1C=[<U+Oo!^U"'PO;f)spBB(@tgi4fSQl.%]*pM-^5F.ddTN(*nS<9G1(=mr^b'b0Zh+B*IDW#SF;NS;#F'q/FDV2^qsA1cWZA< bVr?s2Q4@=0!,XXt%/Q>&g s^O,."(KI4h+ARfselg[`Z;WIeV=A1c-jfNF$s6$/3\ek;Jb PHk-X9WpV/"JMT1r4/iV%]"UDg7%f/k#N\!ioc2M;CN1:4!@+XY4d`K*&/Cdjh)KO5@YDm?8l3*2 cnSV2KYg+-S,?NEAF'7o8gE]iVnYNXG9mPb]g [j]1(>!(l1]j5`7E)D.th\X 8?G/dOP.)@)GRSn(EW,,<<E; ]p^+6%sP%jFm8W(aiPTNnPhT%YAfEk_dkTYt<Y9 CdY2%+HA1+3A,G;A8UmPYDa8A74.'=t&B4ns]lo6[g#[UnH9#phl!^;(ClNtRppFs)f7B+@IoNNNSLpj)";cNF"liZp5^gch6#9:03,:"BMC/bJD6LJVho,.^Blr0l$#]#oA0f!-8;?iK0ngCPdtjc8RDUfa9Ql'CC-O>JAl,,"PthC@,<H=2#t@1G$5*.'#0f1m@+M R7/Vii`sIJs+7gp%f#;*I'ZgW7$.^-J1^L/a+P C1E66fA;CAZCoSaR$%q>(Ttl3]S+2e&%>.j:)0#[1*kD$]!+[SA8T@jt/^iA,AE@YQ*a/[BPH+HQ5 FSG*S:,BiW@H_MdBK76.<-k75-AR.;6"PD(%0INhS7ePls57q;J1`.aK-E<pjdAsd'[noGf\N5*gd`Q58n`VddhUJ8!B!AlK3_aT)[=Q9O@Z-c#scjPlR0sN.A_HL-YZR]8O#SigH"f#`mdFR(je> 7_W.mK"[VZlAEPkb7kI45ibQA5LonVs7Ds2_!&;r%G"(!o'FPDT)NAbg/.R7FR[ll.f]#!1eC<@YqiCf1q9YsRA5@`^%EfYcdCjA!Y,6 IK=VOm&sLmA1kkC6eC!*0&e+L"^)pdKQgXAaXk3$mnG(43KDI$Y-pD+h>oC9F`RITFR!D'oX)=OE^eO1IOQ>%Q[5QY9O#ETf!\dc;Z85KXhpALN#4g*.Y q`O5I#XUh*AUb]`<b2#)%OP:Le*<>R-+TP[@Y+bm6n,N?5`#-hoDn']>A[]Ar?[r6tAA*1;9q/EVV<3*>Br_)kk#n2HP9j.8#c+B8\38($=M+';<6e4SL4"1Nd&.O4eVkT@;8;fMXBrj%bWCr[Qcj110"pWRck<pJL9V5\0<b;Etke6AJ5/SR"jpL*=bY/%>p^>qnB.X*cm`S27'f]\0 "l";j(Ah.CA +$R%%6.lk3BPTK;T'aKeY28eQg;2%:bi;5EjP^PlDUZEDQ9 Y%s/'AO?s&+4=&ddn24D&0Z$D>%W#[>&-nAgX;78`-5hj?^GktMm%W=,>KjVV3/a;ik.[@=BoF\+fHtBd3Vc'Rrpm&+PN+sR31AAj@kf*mp[IieK9OqS\=1NgFG5d?/G4`Da&k#!dr3n7jM[NQC>jk8g!5Ie__3"7)/Brqmk1tFUhXKi&q5[9UPdt];$tiMWa'l8mNDZ?Z(SDUH\7N4$F5Wejo]_^J7AngphnD)O7Kk:$;jKVE1\aCRL5aJDW%agA*les"Vk3$0pq?dLfi#2*'S97(Zg5PW*?8m5rjkA<p';]m\r'^[8P-M\Wjrc04Uck&&d'Vh2jDmR$=dj)Ej%8";TE!an2FdC$98F:;kW[(:e)#DFcYkVY*I[jkCH8T$D#%X<V05;C'O_$e3k3 n1m.b!P@3sj0@s19?GA\)b?6&WYl!P,lT7%#)L59:&+J!TO#;qR^rS P^U!+oo+,:%NYRMs<9siUDXP16Ao[Xa^.47@JbkaqD,"G8@_t=ZkerqEj(d(`dhR)<<b3`C*%dGF>hhjd9hk(AS\mB(K?i#AYS)?P[9(bj:jEG' 272%!"*r;tD>"X$/i0A?NJfp`n?dIA9>nb\1TOhZ:2@l1Td?M>H#Q*)>1$@nb[7XhGZKln*7K%,Jb@i4Xl#,_sURb_Q=eU1P<O4 <L9QihGJkr!A%#.p0`Ig$Apq;70+b_*J!g\W5!K"?$A//Ac@=a$9q']]K)C`hBM31TPjC+@Bam,FGfdY0B"'q3h;V<"-gOUb!?W^i@?Y#C/7#r_ts<CDIU6h0%?K\&JTH\9SktiY(S0`.fD770j=gWA)_PH+dP?f!-\I"e$1NORSbe/9:7<M@,?$&_aQe07 )<g\Z"J3EU,L#sU0sa?k3ICK.%Mf2%-*PVR96[1]m#O4"Ra`BAk(H&bVn9CZCs4:8>()+Xo_N&ON(koKO45`8 3pH_-30HH@K3bSIi7U<s&l6oR8C4q7'rHg%;U.ZKOW1BrV8<4)t?1*d:A1Kdn7Rd'i)0YdC(r3ASmaXL-g0 LN $0GfmtP'9XcV2cDU[1BCIE*YA2^d6qVgbWrdgDf[nYbTqo!%&NTrJ37W?G9pR(c_7IPp2E^bY&D3BW2!&Q3Q@BiAB=`;"?0$n GMNEJ==d %e8A([J?LEV Slri:<O@k^]%'6l qeQBd`pkYcXQP&AaAi@#K3XfEKkPmQ]6(Ism':eJ\A3(8Bic+.Zk>W*9/%F'SE7I?]<0rmcA43mj*O#s-U$ZeU;pTV[lYbr]$O11l;_(*.D/A-H9)*XrX;7'c[XNmXb+YIgk9[hQHlU]_t'k&V.;qh9+N %A:A*VSRQ\:VL9 I4L.ofoGWqA\90>\-IASNB= 8?W7Ef#hT$<NoV;aAi4Q"I9@9_VQpiDB%mH<_M8b))A32#_dBWr\4b,[ZBDbA-iOs[(pEtAXCOM)08#9,1&EWmbf"Y1((#hq*`+Ir:UnX,[mhU"nAWSo-k6_s?$,6*:Q&&[1#4=O;RKABmH3W2\jT@mONSAob# 6TRUk9E3Ln_&_jeerEMUIr+LoO/$>s-#@rZH2\ESG2tgon`oM&+9OgEU[T^/B`Kp.lDr(G #r"bOdgjCf?PDPZg.s+5%Gt7lPo"A=L%0cfi`NE)U/&J3^02@-kI\=f0radj/R/4242%X$&pj1`kbhm\F]M2?dnK(T+n'>D75ZC\OI0Ocl0[`2:#: Zd#bWXG[IRSRtj6!r&L/DhcLQ5dl!4n](httJ507Zt)b\=gn2!giP<jo-S!?8p8XM!tbL^)darUS7X$12WI[-,X3ore^TZ`NOM>Z0KiI*c8`dpG^`N -6"dl&L2[%\G/g<?8$'#2j-tW;I2YbAqk.!@#kpSObh*bo2X&&?sk,%f!*bVFjUBUd'$64(_5D"]?tg<#L1R(Ugp#>O<Kng1NAN+2$UNYt"4NY[k&\dPh$H/W=MT83K8F[Krt8-01CP#l7>PPQTp6->6#-SpLM<B37qW,l1&6-RJ)"1Q4:&f@"_:`Gc(KG\=QOsQPeA>^ aqAR#"])_*BgmV!n7:VU%9`j83E$F[K>JBe )I&4hD"DPo)^nML_nKQem!rJDojCaO7hTLZSUFl=^"al.;AiZ#2;j"ICgk!>#E(7p/%Laonf9;qrK!7&+KeKI[`><'8ml`a=<]TBt>!8Tl#(.JAs*i?NWLL>)'sSpV>2qp0FUhOg'm/@8ojW'&pf-\/hYo#-A83*gclkEZ5/3XSRd`Ae\+7d7fN!8GO(e4\qA&4'N pUR]rnlZn&oWCCiG5q1o_"_@3XMb\IWf$Y"b^G%^,rGY.7/1&&mF0<+cf3jW-WbIS ?'-"B6iS.SL,OrS!+"cGX_DQ\V<r\=aaJJ@/4-YL:I'ho /.[V6@POCoDL4e=saZ?_Zeepp$]:F;31n`C,*l85!-17LM,]aZ-nDoi<Mi<5U]A7geSPc>5[6^7bZEeVP`C#W@;XaC^ oK3gF]9iUS<,:J;r1&U)Af(,LV;`ikl(b+0@#YY2s)%`2Mc#ksHWVjk$t2iM[`Z$%t<PbTEZG@kX4e>4iH*!AlRrpVHE5&)/S:sJ[>U)jXMq)4HmT#o0f;Z*@&%-LB([#m3";cEA"jh"_'#Mqn1,q'Lds ZL`b'A2JOoL+5.aH1i5l$H4+ ;*Nhk*gEl(PA^a;ggATU[8!3$C;JLU2ne9)p<$NV&Ma>W"Ak<PtFU7jNFg'Hm5r_o[_ !+Zc=>2rDf28\.($7DnUOGr-n?$K32WYa[Zb^N6%$,I>[>0mN+rn[A#Ph.>M0e@A50.g(%eU-bL\.bSU&imF1^AeY@GC<8qj?Wc"+rls,o%,QLdCk&In%PQnaT<h2S*?31`)"m8=#A2St:h?o'tG VegFB/aFA.hF7i&@bTGmsAl*0tVH`)K8nO%%2IP3Sijs8ZlfUHm\^[_X3V\+OEnd`h$>G_g!)t@O.7Ak!od5-r-9=<$Y?:5MAW\eD(8R4MK:WP?V6P_OUPoYnCW9@#/>DKr%2q5PPP:?)8L#>.n^C#`C*2k=)Y'\?2A!IDVWa"cHij2C(g#ht8S;9<]Hm@.`$]q#0":<k['mLNp!m)(&M:67tG-"DNdfTGrIFqp@( -?<C:l=N*f 7Ag-`/ K%gdq,YM@@L`lIY^6icai*nn<9>;oDCZ^%-o<lS`TDAQkT ]=Sg1M%FMo3DZ5ek/7*la`L27Q$5Ir1q9Kh7lF^PaQGfbg=M24N*];]>fcAQJp8"eGZg61bW^-U&:t0!9N[caoZ>Ib%,2$.:$;o61TtgB$mUmT:m/K^k/sX\R9[5=fk;#E9+NfC,Q;R3LoOgoDW02QOIOQ`M/TZWXX%7\dLI&fk\n2-;A0>3Ua>+&BpV&LeF8_?QUk7er `+MKIMqT7hh5H%Y'!2ahrI!-XC!aDWd gbdb-a7+"+&<$\s54nDJ`k8n"A(SP19r$mM1ArGA\mD&8UK#o0S(@4ph^[IX]@I"Jgr[gse66b5[AEG@Fa61jSLcCk,F7sF+e%\UV[_0`l)S$a<2WGsA2C+dg8lec]'^3l89Dcj8@C#$Il88b'H99feK%a/Ee>Q)%rOWf3kbth,3V??N$H,J>$lPUiA/gD+#!cJ=a4]ae!aD&.fL0e</@,'c)S+g.sIc TlJbQ\ktIi0EJ[i;qN49b-:%cN2EE 7DrpVO ^ (J(\a,=;ZN?E?V98s/^ik'Xb=E<jQh=&o(?JTHsHJ=X>67s+g_?D*&aU=P.n;4EM]Y/8f4qPVAA^7ML>7IA&>*T =LP:VB"Q$m_q7U[X5!@4Y!pe(UF.Z#YU"K[[2GA5N:a7f%B]N$$OPD_(t@MD3<s$]A"8K<1ff]MZsD(e1`'A0S?[/eK;"(.j9c<09/58p$5YbeP_LS:1'K5K\Is(9jT/;.3"NtA^"WG>r_UEa#*E=Y%f(@GAt<A[/^.K]qDLA0$a#Bdj>qfV@d\:0]ZN;B?JG;-C*0(-OcqnDQT?AS1Zf[Uk4s\>`08cJ?h:*,$Yp$#M'A^jq'DfmVA=QJqbo''r<&f:&`*+I6m/,`Lie:5lgK1S+e',SAUZ0>2LOB;_%H?/?Mt`MlQQ.5<q&Gb_i:e7#ITqAL[8nZ.?,^!+Ofp78J:rA'\`iPf0-ZH2L3k=aiGI[cQ.8QeZ_oW;+WRsNEPM5P@d]k2R&+2*pM9-8&IHDogZT@T6)#*./ZcO*J0TsD%/Q%C"ccToIk#qcn?'Mq#ef?@ZAs\6$"](_7Y>[ga>tPdD]&&a\8Al-Yn5B]QNaN!dkJ*<LIpUE/DE.mdb>!`Rr-;%WZ5V_FgbX$"AMbL&CSYRhS*_WA0qZGn8UYIil:!.[7XsdcNLYm!=@kfg\onU)FT^[(GmW6@lm7=2rGD3.FO2b]+b'l+VAo.]c/sHE%LKr;l@+A9,BP&p##seO-I"RUJ-d4]fhX'4B.LAI+,eclYrVadm#aeQF00\^MU3R4eUj-hr)jTX-F(SZ3AI@=k8bkn"]>&.(Ce"fT\50#OAk`RedN!JqpGEaG)Dr@a*<]3`.#k/56P;lZoeQqt%olh:,_O"37pZX[B$Af`>r/&DL@B\1tso-;2.frdR/[@Aql@D95JQP0+jc#FsrA!814#c!ON2<$bjejUOZ*9FO\=4k_[[oG1L)GVVE.:4)P'^r(JHkV5HAj+`Z2,AHjJmnhRLK$=<;=]V^EV-J@4XHc=>@tYL<<Gpkc`dpZ\m@$N\>d6 XEC.sm(lp0UAp;2 ,OZjbJmC4TWLA#5,Q4$[.[-nXI_/Mk=0RZR5Y*?`4,267N`Ja'a)9CA:p67de'Va4ZTs5*:_g>P<C^Gj`>(^gn<sm `-(4Y>8T;ELls#Y0qZn%%KZ?"4EYX8Q&>cl1]5` V/rMX1?PcbEN=+mf?_mOgpAEB;MQSk^\1(J])oAdGL,F'KB5iR'(:#i<&f[r-9Md\E(#2h%Cg^_:6ISQ+(Hk;fa7A(60^Mp2(Fl7`^283p."Y.bd3CMbK,b#/sXc6Oh:pKC;VS(UI<2T9A%t[*T8V'_AJ)m/P- #+1i#90\;(!)e<3j$pL2L"#oi^9L@)j,^>si;LXOB3p;tW1UHlHo)&GEQMN]_A^DN2=$;M3q7%\\=0V0?FGd269qJSih>/acd9njGn-Q-Y:n%>For#\7'o@Df0Be._`)j[#ah"PD:-+&k0,onnBgH;U.qN6/jVT(.U5Rp),hC7$_b]rT1<d3r%W"L8!M.3=`52(1D<lm#THjK#3Q&&WP E=Rbm?_K:X['$[*elP))Z-(CJ\^*s\UN9J:e=6'<7bmi;RSR3.M^4q, f-@"1hTG9N4UEoBWO` =q-4"Ahn?].lsqEF7ssC?kgR!H2\HDg(-%mD_p,:+M$SB7]ko hKq9@8#8S?A+pImPY-T](-HPG+Z?^JV1_!:P\3@[@!tP/[4O*M<A)^HAsNG(L^gSScOm0)2=;$8l3q<Cn]*?oWj V[P$sp_Cb`7*OUO0[A&7;1R&]^?alSdS'A+jMhc(cVX$dS=c7  $#9N(qV8Tm?fDsbsr+3WdRfW,A.%bSKE+AV%@eAIG* [3os5V'-1(BNj-Cq;5%*QVOGRV;nnV%Dls_*W[@AXs[AUbUWXVSrjTATH0UiTQ/;?(H>tP-X%`dSHZgI*1p8@eXK^DdYgWOt59-DED+56A))BU]mU:n.>E"-b;caM=YaZA=VB.k4EQU9qH@5R-K<!k6qT"V\j9SeiEY#"bBoA;HIUof: B%ACMn&fPsCpBhqa68)6>>eimVRI&,)q(F:AaE^4gGOjb4XtUpotYh7:DCk<`G,d8\WDn@pnDW=%j6"#PU[&?1*9R 1nINUf&LE5*tk]L=q(`+Pp'A^QFg"Ff,!UpgX?9_FhQN9 WGn%"6/TXB0i=@P.]qGlBhG-TV.Y,&/gU7AG2#t6+ZDM<Hf?r4/`#5<ZgIT!\ .Il3J7t3`6fI>hM9U]EaeVqRm'0@aA!_4XWM3-i=4X7I>*e#4)N@Am"8O)!YZT??m@,\CS3g$3!2_V)SoXh3ptCNXA'BS?a+Icp$S0Fp,+:rO%TP;KW'f2Lh3ap0ngKVc[JIMRsXf LT#n>6G39k9dj,4V89ccR<&bCnr$Jft*ALJ+Kd>,E<P3s:/#)VbqbsMO6`hT4J._f[g-t;"<Plq72]cA"JSAKKAAR,\.JWQ[a$(@Is[`f*rjasif` Z]1.U B<YfQQITJ8:-Ai\P>m4p940ItR[1Lg,A:(WA$d.Z)PrBJiTPn;kB>7(/=D[Wee5:T;n:2CfWM`"T#nW2X+_09\pr;KR0j]R;s)9F>k[oK;c&.'J<%,Atfb4a+8?#U%M7RpAT$7:!ir$YDY2$5lL,Gk>#JSbEA,ZgeQ[BEg""FFc.)5Gdm17UAV1@?E'No2ETDfp!(@>0=.Bf/o% lS(b[:Ji4-9RRiQD8IT.!bVtCSh\c\Rs7147GpTR*0g"o`D6 3;iHc\Qh8ojSW9*Tg'.RU@3]ai]O3Dsj-a@_0TZ_9Q?*<EcLfr>poA90%<S?Vqb!b9I'AFo6hH?Ic2WN-f,hV)KAUEUG HA8+cPIACA/\&^e<F.'MPD9h(tSIX9T.%Ps@#k9/<j^`CXnODO7/V/CFAmh-_cert^['gVC7C<U#dE!+q>g3mkH+->"sD,^TWp;W`-3pP??NI%QjO?lVqq3-h(.W Pm`/[`3F.'4.6/:@%b4lqtnL\86s8@QLZ\On14Op:jRkH0q52s..Pk,<0%gq"2%jdS>(RAVi:=7N?deR`1G"N9D 0`c] 30^+mBmYHW(,o<rC[\btn^G*1+rgqP0r&hVWVj_RotXB0l`a=o,\/k!?]\sDV0Y\.`rTL.!E4UkWbVV,V3V/oO?MA;4-ttr?$_26m23.e*-l`TTSX`IQFbWS2\0^Zpr0NbO fs/p?V80c)_!GKkp=rKAsInNm;Ajr(C/Y@CIAQ"$g*Q1gs#<JjIn@N?QA15Y]'+^L'hX$Bk*(.[nA[:jG?`Ah<S)Z,Fgh18cU'e?E]E$V@hIT1]Kg,%!1j"l %("<b>/:*g,VfP/?t`[:i<F@RRZGC3:4$ir*2%$o,g2A@+&NcZN8#OSIFiF%\Mt!EZ'4!e9;i(_'F7A:LaA&*GGgBLK"g\h4:(3',dCkR\"AZ5Oqt_m6n,N5N<!?gJOW[fZZ6c:iJrh\%ir"P2+7n4[sMqZ*EA^YHgTpA=ZsA!B1o7&5XqG\jSMU+i>1pd]g___+t6IH=JNUI>e8SCpa:g;OR:eECAj`6'8nlo@s53e\WB8j*DF4C) Jd`K#IPBX?#N2@#8OK*EjZT oMhTfLjt_TqAno*3`1T'.d/ R.kffa6E9i @=3k=F&h/D/n5Z,c tZ63f$=ma!%BOq]1%n's^k'ZmsGE4*:Q@7/JTY]iA&\KU1q<$bk9N9j06e]F&m\207TRX[4%d4g!<pb_heJo/Ln]Bf64Zoq\WhIRR3&,c>3,sU`cXAY9$de]E@Q!C%q8P281s_d7d(bpA.*`1in,f^pnIElntTT`1kJop*<<2^r?G5Y1dP5BBYQZ!btf3G#1oP'EY%N+'MU2q82,SQo6j,oU?.D9? rZIdf_AB(VUO!M*_7$,5QTTX@(AY7IcNcT>-U\r!$.rRF2!d$=MBkBQ*(A`Om5)LJ:. 1*c6YAI/f4o&%OCp33UWk ,#k15.:I!@]mT^-<;'_ANt)H0)!FSjpBV;7[;I1/D">_4.!p3V\CL=@sl<S=jk-Wf/jN$:fqip63UnU"d(9Ao-OY8_oX]C OY8_HdX"%8SXj?_/r$"<c:Z+4_-(A'%P JYq`\71]Uf9U>elia8UIF Ra]t^X=mFrQH.Z,kVnk`iFl?mB^;aL,6DA_HZ6A9(9n0sZ<!2/@j</'4+bH$/17)ADmR9e+Ogf5>T#d1GRR;tkP>a(q)[`!!Q9,OOd*Ua[>\5kXh,0Qa^j`Qn_Dc,&A\BF Z\]7M77#*e<X[tbhG&Zc\*j*O,ETQ<=$P_qL)ssU6k^mf])>'a>HGXk"=rbL4gF:E5cQFIS.0PWfh^/cMi4DZtk3;f;:]-QKmP##oD>`;KilN>6f&\?Yd-QmLoZs*7[A&UE1h*KCl02W)R#/c>>E!8TiNCY[NLh_aXo M_.7E9g9o]PCS`/)Vs4P9;fXR'3!XTO8*"LI37$RbVf8qYC]Dqp%BdUNX]RO;=OGd:\icQ)i )XP#,C3( 6_S9ksX7Ar[760bhT/R:r`Y-.\cr,Q1A9/38#YJe%L!rlC4mO;KCPMm2@p>C aQe(;9LdA.M .N\*A3,Xkk3p>HU,'f>J(m+&eRi`,.10dWkf#rJUAW!Mf$-6O""@g f1[Sm@@]d[nmR#hENkFb_J^QQBo@g+@2:e0Z2A:^^C5io&\?;+nC#RYC?-I*e[Pk3iA^\P]AB'q5)_ _C0h7r^mbr(VpO^>?0K(ATS5Rah[k j%@Z`[!Nb J3jAkf_S(\>jb-bYke>_@]4A#QW(M='_pm3FVqkBG1Yem83gB!E\XfR*!19aXN.P&@`V$b^+6PV/Ql1@Z(>`dhXh48@JClL=aFea=?dfo?V532QCAKYXbUlg8;_Ubm,!j+OSg?MJEMMX/M%[(\WdK :)ibP?LHj5)ai.pRQ"dt<=mA#E-`t7C5]DOVN!!mlLfC\\9&oj%AX]@1M"BB*bm\ >L.sAJpoI]m"IOMoRRmgD,Rh/k>_KT.m"8``%f`:2\bn1]!!B9Me5\@,?8]59]rrR>GeEJi$knYBNcJ7Ht4&TWEg-[end5AZi>8"WI!LEFTjp#e&jOIJtQh'%c^g14TmCH ^"`A1]Y*JU1JU>TU<#Lb4)lVVo1Lf%mJkS.g>VD1MTjo)-P&g^iL5YI8Li,n_!;3F3/e.\I<@;C3E"BIW:X\<%ULnr#W33Zq]KRYjGXCoU\mK!l.B7 7,/!_XK/jQ4qebJ/F9jh8IU.8hJ8V>]B$6_8NFc-bWtA`f.f,66;1o"QkD`1<# 2@HcgshmE,p&cm!Q_n'oWB'RlMl<9"DBtC;"D[P1:b^8gc!%-e(=?T2'_ZoiqWiA9&:57Y"PXrTU_'!UAfYA]H21M(lR57/e=AO'9SEUFG 5_^"^k>IhTkL<7Gq/gaFldm\F=.* (PA;n,QE/q@N9^$Vsedg+ar<k2=p?Yn$3?(eFU[m 8s<?M*!nd;J0%"ga21O<',U3GrDI1kJ#a8N-ZWA/iRTP_Z*Y/LseOL 3*D[*VD0nXSIE$]\5XYJg+(ne#MQCtZ":0f.ItlfdjR("0C+I0taUhc`J_)TmYNeQmLI_/Y1+ RI9^SJXr>;;&AK\V'!7>1#:_E??M\l",@4da:][-dr!I6.'lrarP!TA06=8*k-Am%osAr;G]9MdLjSj1>ThQ^Q.8JGN-YT;3=C*a9>#[B5NnablrMirPbjlD65!$Of:@[I25EWGM[X \nsIXF=qc`Z-\]^Vq2kSX=G;$5@LQ1>9_4*"4Vi"QmAkDm_ST*7;drHQ3if`J7ng5ne`%8aL4,f:Q5GS`LRcp7Z(4XVd^Iko=$]@V/ta'o -9hdlF@Tn]%86a p$R7Z.7bWcpgT,87=ZQHX:KN"6a^*0A/ibL"U%:E$&= )bjRo.+g`%JtkiVXN(o 52Q]K,XJ8JLf=<pleKW4i9AF f^r"=he!\rB$#,e.[o@OU(=sW@&fZ_gUE0grrg"g'QlF;AlTt72Z-8.[O-"n7Z9L0=L>T=$'B1;JI^5*Al'A$$!*PB/%b/5s[M=77C3BWb?Y\hb<f,/#aZo5 76G/NqTr0Y4N".E#0]j1nZrqUYd@Kf!Yf,/^(gf5a_4eaaMoZ9>$ceQ[pm+\:IL`Zc1MT3\a_o_T5603tl?dg?pr6&\8QkeVih6QD%-3,oT!$bc1[+] 2I"dh+QA1j<DM>rB>79Ud78"mnif$jMJ5qH>lr`ck 6[fmh?%2%9F8eCPJ/T7<0P%kP DFG!V4.N9IG"&-T%p,5PLA6PTA5`_6Ibc4lb9)#eLH("Q<AbHMkX+XiMH:`k[s eaAYjPD)Em(>=jOq),ZD$.'55&rl;`54' ]&%5W0HV[_/=WQs7b3>7[I $j;SDo&!c-=P<rOW?^dIr!aI#&e[b(&UNV_?NsZ?/<b$ 5(EHQb@S-M[&\"DHhoL3-_=@=UX'fiS5FXF:8!oK;+R\9NbB'=SQ`QIKrG9RG.oMXcrrtQ-AWbYr"I"GB50NN+sQ7S@E^TZ&RIL+^B4)+q2LQ&bDa//(DQ@Mg0+gRcZ1'Qh[Qq0N 5* B'rA!!NFdpJ'26Xo)5"<2dNRK5?R(FnD\o7iOrHk)i>@cQ].GPN3D7coM=Q!#SZP09*d,7:WjsF9[6<k!N-/?QAfK<&.1$<-dO30G6tV_h5T(45a"Hgbse"TXr:W1XDcnUp"f*R],61TVIHW+0L$YUS[h1A=c".(D:^eM@^\&UI30.aURP?P<Li.lo7r>72(17NmiVi)LGWON0BU\45;oaHcUOhhrT;T17Qcg6O@H(#4r`C65*<D1b)C(+d[Zfqqgj!aRoOtLHJ.7Y1fi0:Q1+:R:Q&5;IL_X.D;=-MrKQV>m0R4Z1WpeM:nEjHZ)sennKseA;)h@)a0f1@91A:r8Re_p[CJ9[o8f>^2kLA=3"kN4Kc0al_W+MeIk"MhrUT>X":0tOfo"U[A?h"AWa8Hd9Cn_>ULQY"fj>[:]EBAQB-9YW4\nbKj:aNm9(Dpbc[jiVb".Y,A^,F@".G=iF6"$G R0[;L547[.g(A+<TZ>I`+8!]d=$4IY< .b4K3&+0-H7eWgKL^34^bQ]*I:eC%qFtmrF11[jIQo-QPG>_XTraYIT#+T#bc]D,Y[nf7-l.d9JO%jq+=Zd91c]3/N%r-H=A)T;SMRde\KaV`lXS184CL.7LW4S+<^*2hA`PBFIUVXm3Ngfn;jCjt+VCOF(04T()pTfY*n]S^c0"!O5<Am+_b)*8*p[QDj:;/d+WeQYf^5b3^$CnK5MFBV'Q00JlLm_>d-6F/M9d.p+V1_AMJS>1(PWBZXG`hQCQ1]\7MS'im!Y$N\B%cJ<FqbtdAeO_IB4'L93HlPi[64thO$[e<'/Ci75^Zm)a*pU*!.JA #KGFL"P1K&b3E^ &Z8%((FRhS'g.SHL2CLGg<2C=`tjRO_bKolI%YlbF+:ekp54:pm5'e=:9nV0H"tSEd$$\2If[mbLfRM]GATD02`OG)KL,j=d[-!W+$.S$:"K@SVSZ i_TbXQb XrW+F8'Ph2@6GV=)%n5-q#1_$O+3q)gnp*h[SMVlJRI_@JQW_LV/oX;CEl>*("f^Qn-XHj)$ehjA?TmM!rLA7c9N**Oq> DK5Rm@[jes$PclOsE9EmDG:)5[0Ct`5_,Y/,/dbc\:ZG4K&0DbM.<]d`YWcPqbnQFYb]cC#\JL:^n\'s6A^GJVA*.8.k)Q##HI<lWWI:^9.cB:sKO,i?eIA<a488a2,;a"k 6brjjLXNb*24pC,5aoYKr*gN %6O)I"?IW(20FZWD1+1c4P-EnBWtqg6\X-*Id27"rLY5bU.q*sQCl2S':r0G#?bL?;9F*i-]/O]^$qS5H[SXpD?XFTK#0BM?\+-M)#YL 0&<8O!!lblA;r*`V[hEBRO%pb[#5;V=E,ZSa4D@lKdq^R2`>+&P*AldtSe%O=5V-U+`&SDbB8iKa4"'1MA7*>/BA&m=W%U5"U!$M]l+mm93_Bs.&%VqA9%>UL'?l1CH'\#5D';<D;V>FF?ia-pi2A$P=Eq+R[$\3c&%![H60R^2+/Dq8m6^rk.0`YeU.X@2LM_j-.ZN%An&EHGc4qO5/ZqXLU4OgKnr0AH8YDn*Q"o&YQhsEY'^KI&d@sCZqq%#UE?tNA,9_E8laO%Se\R8LW?HA:JA&qsFB2_HI]k?'4$-@-GrNisQ>$gaAALde9n?Qt+&L%1R)4)^Tar\fW(Z9f@%D,=K).sVO^W"WVP[X/-M.aN'.hQfO,N 7o"2`5Qfg3RLhkNjW#,qWaM@:\_=OGg]fSKrh=[\B=9C(t>DDr(geZF_l`,'&"*Ifp?N)cmT,6bOTRCr=A6,s]1sB3n,5PpRDC@m,,'jEo&:=@%Mdg:<^p=d:`8a<_D=bD`f/,([?%n2e\YK]"D*5Zc@\`3lnF5jLjKcG'A4RJI>J#(':t<rG9Z%&_FF[fj'q>LlO\$/L=/>\0^B&W+RG.iIhaJ8rJH5 sI9-$*o=@LKY0@c\8oVO9_OZK]eDqm]7!9";e9iTo0^XZb<DD2)MAAR#d=%sk*7JJTGMZOWK3PFa=e\=>% 8gIpesVHaLrgR?`B\!40b:@j'Io>8&$fKts7%c\>8WkhB$/@It$:oAlR40A2&b(4"/d5+/'-k  H4f=2UZi/QWjF QBX<"/ Cfa7:JNN&<E4a-`b=;^^G\'BTG8R)oCOc_@H,IIG<&3hMr'*(<a.&DhY5U(Qi&j[D]>qPeg<QN/o,!FJW@-0ZHG>5?cBiMK$l>D;mCQSJC? dYN:Q8rhGa4&9A>dtLGUkiYA<Bj=(/(h=O7_`E@'/e[RTZ:U-)fK55@JRo@4?M_]L*Z9^D(SZt>L(N5C-/,NE;^lq#%c-GWh[A+f;20+i*BZ:+9=BrO),&(L`N^s!@e:WDD#fWY8i_^dYReFT4? _"9hh>)k,oE["p-)2b_j:)o$TRU3_4X@Tf-E2`1$&i[Ar)*s'-AZdQU9V(^_mW0sT1V*/W[m75A(_4jOjRAc+\Y9i%fH7$4DoZNO3r#^=`s;6(1-Hf#\'@&R-TGYKTNG-gn&"(jWpA_,a2`tFkM=aAPAt7)Xh\]g9P&S*qiO=+b&*Wh`OL[(g3CU3!d@."+<%?DN#5^YXg,^b+%b=@sA'-i"TZc6l0flWAGJF#pL':>)`_(baUeiis+5q4"s!VaH+X4I@e_8>^OnTMMEaJ7Aa4SY42kjoR _d66kF6iHA%eK&s',ib[G:>2 70/dLeZJhlsLba%R+9f1/XosAdmAZWbC[\g#_c.cJ0VA6gAB:o(`2>O*$NO_E7^1Eh!in[dM!Y8r>j@dtFcqZ"la>,d]49+e!Tf_J&A[QUCr,c;?HO%ji7g_9J)$6kd)ai-P[^C?Wm)M^ <ppHKsrS$D$.?WGiUH&<NlZ6^t75]Y- L\Cd)hC2/(<Z& NNN59)=<WT;l_%`?QUB+8G='%^S/l]C[pgUhQ-<a("G@iTE>\K,RVU1)iZP9lmC2(Hod:#@$9cj6+-X3r)Sr9`97JWA::m;rl[9J*2XLE#F0U*IB<se$bK3j@5\#fX7I'THa`tV[<0=>$P]+\Fn>[%cWjdk._ <LQP?W^AdkdZh\QNb "-e=hp>tc1"2eWIR9#K9Y^5&%jZ$L,LB_K+19gB:AWdR!g%9?e>W/Emc26++H.\6F<':j#P9_kH_KGT88=4TmVGm[[N_)C5>;O3+>i=1F1UAE# \"J07pp!oq8d..g(((deH1[)^[,= ((s_9p*%(M_^7 l"rJT?l6n:iU*dgfaM r#e-_*+<c3jIh\_$A>ADo%N`>Abj9'"FoLZ#db$&7Y_U^?4*SS>dG;K#O's7lFWA=6qH'rC:0aeXFB<^<pa;6'CeAHj7W\A76A0aHJh%T(R pFQ[9U<3q[f]%Km1lpM[;[)DDp6LE'mBAnm9Z:t*&6Ej;X.->K(DV i%3)I*JAX3NNL jgeG7Q[XHVTa4\2OA@*5B[AIF26I]:,Bla4,I*ecIY.I9Z?8*)k`=#]88N;rHN\R_9414grVceT'LM[6IF<n Z=r>]qaa;:NHd@W!`EAX-D5Z?gU5?bZ_TLR!l<pFX72/gN^Q69<(tEnoP4DQAh5ga3.7gfqog]bBqj)pVg^QUVM'fU2[`I1nO1BZ!*9>lZkUaiB?iD8cjVZX9B^'(/OVNm0I_<e[SZ5jCM*FdXNgUb=(E46$a\T!U2kETI46J=tbA_l8"sJ\mClg*+]DRC;Wj#NT-Rjb*^I@MMareE/3<Pc77KE<krg]k]*mI+j3rYA2*k7kEc:9CnbZ3BHQJB\N0=o[>0&6NS0OD;;bK;',UX-GlB'gpj-n[fKaEn>sUb05NM^$HNR-<3V((RDpGKA-PdUA]s<)lV@r&7(n$A>M;D`0LM\ekE\Qjd.';qdO7 9KC6g`Y[N`.$1`raN?o;qR'r Vm@_'JF59($l21"`=A[Y%\(GAG\qIf5 )N'C%">WGA,Q>!-#RTW/?XRB:_n)^(RWBA]r^GF$U@A=oI''fAZ+RY;!EOV6E#sr<iH44G+hZ;`hR_Nj.CWM(Ns+_$a $-mrSr5nt;(0Y)fI)S4GEjX=`Y0n$B(q%%cb1 An;1nAi&-3\#Aa3jU!N<Vs846k^W6M<+bALW@3AA"`ZlQi26;LQ4cg`ChhUb"a4C4Mdm:#k4`A#nT 2SC0/( K:#A`pa5P"[(E*L#D[QH0SkNO#iaaC>`!4"^IqAU)[p$Us9q&"WLp:@Pe:Q?cLY(:Q\Hf"-V9?>akg=f$,Dcj&7AM5s-t3`N#Al<:"UVLG+c&,\k>ejl_qK?j6`&Or=Vd"%Np"b7q$8Od1:;*dfnp[^UJ[,6t)YsVkC@aU$>]3S/LKp<#40TGfNP*+8K*NUl!!]piG]O4A5#HQ@mE2<<REeK$Xri?jaA780/G^C7>rXNH"K[jE*5g^(5R9!Pi?L3N[:3AWOUkH@(%kZr7EMbnRn395W/B57o7d*pN`iHQ hWbkC$j%ge:%dT#6LcPK81jRcAd[%s_$c+q>8hO)l.bbY&l%>Z^c6i>\Cr.GY^eU/rq2C"mai_W?,@ JTTS*lHpL.DD.\BBEe<:*W1db#%+*,Ql6?+X=M_nb7%,%lh[Q,['nTHTgdT7j?*ls;GT;;"%7+bnB<s&sgK]pH`(-?$Do @%&&dVVN.*!%bn*2+-3#NJR[W8b-ocF8=EBpE3 TDZh9MN3ogXFA_*oII7D@UeRV5&)L<hT C+9df)-UCicr?SrG\pOq;cqWJ!oGB0o'ai*]Yb&2;6:ra^a^PJ$ 2 4A1&AHPYOlXR%H6oAgigg?&@dYl]i3id>>EK43GV(j"DQQs l<0A,/o (+G71o"@McZ%>0c'Uc.]PXt\>X@kjXWqP,,,V`^l*L&6(d\<*cc4L),GbBo.TmE6/@7OA^/^gA;!pPs`Wjk!RGG2\nG7aa>C\W@o64tKl7SMAX>k&L,0V19b.YK_:P[DGZEPLHX-/`*-n\AO'CjV+&Sr/!>)8r>&diAJN)I0aWj4m=&&&=Q^Wp#pU_-3Y13Q/g#"EQMpBS_1YP&9\ABL6Z6d)f#arHa!Hj?*X+W0:'WWOGV/1All"Qa"Xk\Oc UC><m!$Q QcI>\AqRtCVbD)X<+9pXrR&`"Q<.0-M.Q'c(XYRF0^%>#TN-V1g>Gik I@1.R.4@"HA;hWF@Kh+X4kt$8*&N`;m7UefMH)W6p]ap'J)fQ;)<`BCa@iqjGCDNlQ&-A@^+H)q0CEYsfBs^9+$b!A?ifH`4e`5YcN4WR$q?i;hOgQTJZ%^tZ^3bV>;+FGPDO;Vd^"l,TA/^&.UI-A]979L&'/4bQ&Y==om?pZAVf8;@A(B.FUY4Ao3rcKMJi8&V6pjTW9 1L-$M^@?Xo=Efmp,!#2B0 iT?%d\^Ze<?OLM$=4q,Jd9`,g$-2P%Dl4<\P<p:K8Eb"BP=f;\Pad(f-.<l47oN.`qNYt@'4b`m1TV3qR Q,a/)Aae<tjA(.XNGbL1Kc:V9_64fTk9J&*4pD9sC_AG<m9bAT)oq7D#)f\eq''K8F^iJi?l9674<-\&bVa)WqfHFgkpT'])k*';jIS! 3FJ?+YEJps;5DOl>ej-I+,Etdlo;GeXtq5Ei;N+QHKEa>:p70G6Ah0t$DC[:IgmKiSg7/3hl#Vp0B[;2dKL'SW%pG1PVQ>U_N)0^D[ALc/QTOaA])brkR5&Kk)K8WAUkhpSEj5nB]MLc#(T9Je#LOR$=gn>EdiskF\p `roU>)7C<G$L2gPH`rmc-AE$3=D]UZ@:UQ`q`=sO)18I9L!pDZ&nNoiOftb^1l(KBi9k#Ek`SmF&_d0(@t$Ybj^jnnXCVAOft4TD_s\%K_IcT'C","lpJjjtl7fGG1;J*@]BZUl54j6VFW=+QjTO[1ne*GO@RsX=j4F /^nFZWSPS=VE=RJ[?V$21hQYLS[c<1)jMEQSj3p;s)_?D_+s9I!jokC8[<TOg=b&N+S=[4\@r\%Q^BnB(M&$EA<dhbk;Xb!\14%X[>3Npbd+kW fo)kBat,qpW_YspA_A!fE/7g@YVTODlV?f+9LKMVI mW-7Ueks6oe4AF4]Qe6I6W!J8M+?IGr$&/r@EA,d4-hU$]bU-bAapk6/*_ 9k(1)<,P']K-_?KtcGg>rm/YDhjO!3lpL,t*D4j"Z63)kB1_A17LJ+B?#(?9*:q=X)VQc\pR,o:J7O"gRi#Dk18$\Mr!:"m*_dh9,8g0YIX`Zd0XjB!S+-Pft(n.?'kD%%`K>'",Oi<Ob'@=ppp(9^E:UL6cS(bc"p!:/6.%Fnkbo)gXSBA[WL7MsD^1 dCSt<8'0e&=p!<='NV*M@HI1qKX=C^&qR6_>rcg1L^\+iJE]!QEf$J5l&_nGWLGI8[B:k\qpJV1N3(/'/H<B^'A>RLb3G57Hfn25*[:*\E`^< ,<D "mmD;h>rr/oRh ##dl`7>i5"= K&;;2-8gsF"=(*FkCoFTd=_,7\^R]SKoRlkF8]sLMXG%Y[+im6_^`7fLgk;lC-)BpohMn0?p"6`ebR\'h"%U</1/.7K-Gt'l66?L>qBC:?<a?XG\7>A0-YHU%[^K.=pPMhB2K'q'oYgfnhsdH3:(LTqpV6;'q9pBsQR?X9^6W:F<5IQW#Sih2J=D"( A0CT9W_nKmV2,EH0$JWV*6D\s?!:8`4$)Q_366,!c(ga+Jd;lpk5gIE\k+&f]o"^m-R<TBOjEUfYIBEVMPRsg4Gr(ABa<UcV6^n-+<F%'R tL<YG=;T)D7FaVR^,#jEh^T9!=Ii$TXXst#8on/lmnnq)!"dZ@OtZ,M4rLbfW)t*aiO8D;)X+KT1 tY\j eX5lbP=?'`k<Z-9[eBi"cT" #%P1'&Kt2\E\/LBIX"\eQE8Mj@,9X[D*,9o;A'Lh#A/bHXI PdL?r8FcZAFXJP&iN%'g@Pa?!_%t_P6S'5V[H'TP9_[fFteS^oGc&bQl$H1?%4'S\o^dSABisI(]L7Z?<*1+YIZ*kcB[o2%og!N3BSI,UE)JGAlg;I5@E)G'AOS$Usn-BQ^\\kW-i?:6q%9".p^l2U-H@X78;WnF:dAcY`sO;9rhKlS^?Sp_dC:#H>)A(M#8%rj"NWKf"NcE$%l"!<OGEVKk[ftkdipA]>;&lkQ nB!cpgJ5hBh@Be7go+o8fd= ZelUGrT)o@.,EQ8Z>@=elER?'\DEN'iJrTYV*7&EQXk2kLI`CJDZ^,!dK!U1o1 N=*qq8[>t"sJn9 r].E0b*<rIe4""-Y:W1B%XbmC,n^S6Gb$9a@U+NK?k$3oJF=[-,@>>+S'Y`s;hpAZTDZHX+.DA6^0L;cA=B!12p#P=Nk8V@[7e7"9+YFsD[$F/TKo=>C8K<[,T$JZYs(k+cK?ZXgNtQ/H*9'h9@f%Ih>G%/U]V]VYXE_^o1h=a:lkC4Pb.L^eA4CXn>st4+jakA@NS4O#gD1V?5kOHNC he<B!b#CLtrP0/i !IjY>P&X6<>2UkP5J0Z&J?/[8ZElsB@[TMI^N3-85UZ /mUYZfSjGL]0@si:nj6;9;I)C20)BO?W;F$!G?<Y.:s%e5Ze3=7b8I#TbITfnK8nOrLs;*(GqG8P"HX(67Q&0I?8`DD;N9k<_(r0p#=P:FV^W,#& [H!tVq#g)rbj69M[;_aQiSN%r0.Q]$jAiIU7Eb\PEJK[(:CHjkg!U'>\?b #k`'>t"C-C'+YJ`@#Y 61KEb K?Z)5FsC>IIfH+RpL2>W"Q$JZg/2Bk;%Hs6(#a,_S%9qQ6_\;N_Dh"BGrOGN049+fbDSANG=*P"RoDQk91S'nQCIBeng42;,>&GA**j?edh,:>Aq\]5q)c[$E?('Wd-Z:TC5DS$BO PTUELG`jLS7_N>  bGiU 76%\QC)5FQSdDf\D>T#"^"9J] n/$aA^8n#t$a]<A]&ogN[l`U3P:r$1bTLFn`nJAP!ZD'ic_^6.8r ZYBmH0L[RC&890t]LcXM._c ld2+1ac3NW(nZp#&3AtsBeMFQn+'dd TAW"9.')G#W1>%-fW_j#%fH:JTF0=l3?oHUVZIpJoHlnM:ponE:,;">)l:Hnhg:@bUq's#DbK`L(,MU$,N+% r@@4W?cc[I,_)daC_?T"tSQd9^%`N__pZC:O[gWgdhG'b\^0ltg'O"koJB)J-V!iI3(1fjq7H;BrMlc0Vc"YKo(C/Wco2YTaU?s:<qL$?C905!*OIB,)kc;;\MhlhaP&bTV"o=7aN+$K%pTAT8rbZm#<h6f=O\*ioKh#_^FS?9keEe<[+N7l7]MYl4S\IaRfi_rYb$9s' 7ae%14p@=H)M@`5Wsf3_0Y.99]=1p'e2pC$l[?%-+)EkskqF@9]fj-eq8@,AG=[(/pLj;&2%b9iX=-9-J`s/f3taq*NMTi4P0QX/qCEDesdSTG*U[CC%3KfY%I48km+?$ bQIhReLjnkkKZ-P1bt:N<LCE!=WbbmR$a(P:hT[Fb$+V s9Ze>YE2rF<qqX5a_;M,fb/"PJs=0/iN<VVn$r.KP@A>qB81/df5\W3[#]'0IYYp/8qQ0[_*tN!3KeAI5-4`d'G=&Z)hpqPfLVJUG_>>>-AeHW&9Mmt,l1T^hPoML&N@T[[deLkgBa^pGoh3rE66BW"?%K))Nn2X*=5FA_6^bT2hnC7/H%cMkZ-&MV'0JFf#_HRNV* .@j6eU`&l2"W=R)_EE0h[-,="/m2='J2>KF[Nk['@K_,\%BHY4]P"<A\0k$Et=+=?/RX9rL"*K*q*-NP&pRrD^cGbFUm#@kTA&54^-+796 F0j]DaI/s[Ct9-1C5;?KTQZqaI*LKSB[OAA"@PY6Z5K(`-hLlRZ;5;X;jAOHhUr0@UY=erF$<JD'$NBpTn)25kF@^P+h=@E,K-gtF3r.(R;J:A[=Arfhq,=6d!p=?!b=lMokbLYc\iYOY6#,QB%Y;CVX+%h(7R9Al3+SJ*WNNBLQUhmIK&/?l34gci5GPUh#kF2nXB-P<,*&"O+ar(Fnhd3*A<P!?@!iAJ#fBVo;0RF#g+$N[#]=UO\T%K#r71-#l][9Hn/,%,e-;H++MA@L&[c3Aknh%j7o524%[N,Alt89rOQt``#S3G;Pf$#D"Q9FZlhM&NlA0>STZ@-Aea<&'BE;]t8No8RVf',M@3<Goiioi9QS;]Aph[M!n_YH""+jSSW#kWNL9AGsk';OjV4*'T*_=rfgP^6hobU]QaqlW9I=fjA%H2"fah./D3+'ccO+qXKLhY\!7 5FC';*aeMU;i<si"raA&0>4\/G<3jI`A(T0"@b,Fc0;,AfqSb0=o:a"I*5`'>ep4#4D&nQ6\=Lloe5Qn-ed&$4W.KN"!i03QP9DW+:smc2_$gO*T2MV6;';sd-06W:'ne-fpapE'j1,f2ieqam>mJVD0Km\24 _\ApdeB&@gq4%fJ3oq`.&tiR-(A bYiC([QPaT6].XVe'[Z-6j14_K3is p!1t_l^;?@SMJC;pJ=_6LaUer7ZpDO"@3R:lqT_(ac:bSd!EK*,sD^s8R0]as0lG17)r.(W%lA(q!b=J:E!rM8^dA1?Zk^ab^"c,Zd(@tD8 sM.[E96p.DKRG?Xl)oWB tD)(><V7M$Gc2l:Wj@^UY"jnW6j#)Yrnm)HYTQl\Eb2^$0 n_SYph,Wls_`UP`i)gT3FF(@FB2kIX@;aDOpI8Gr?hEPJTcn@2]7b0hk>REQCj(OlNi(gC]=!1ajYA0AHo[%2cpmW#=YIga?,f1E*W>9Vk(0DS[spBF,]+a8NWn2f3A)kOs$eG;5 *LGGH:3ZDK!B5BZ+bX][I,Jc47T7;#i2Re7tJK&]_N(e;qSY2l#.bU9mebC:8EE"U F+B.-o3GRnEtA%NM]7ICk(+h;KO`I&\LDE. B\VO+0T!-OiiOkh+.]RE3DDda0Mj:L^id\d#PdKc!Qt/W`:m-aH+8*gq\Zd)0HoGG(T:'8LH\Oj0`oJ(YU^_6ZKrjZ*t(S2d!8qMTUn 8Wi38sSCkKcZ"/_5n%fUZ!HRiaMYF'g^EXj93.-=(/oHe'!B,LGG9?cF[?X[WcE5\?=7% ]OQs6nJnRJ/':A6UGZGm7g/Ke%F[7p]Bs"J+>CCigJ(T%bZ"jnPIU@G$(++1S_@b5%mREh&2TbH5II@A,jS.[MH\1-b<"?Ak'6,(CjbRG94=qV%8 TJ6Z6&3(o?hYfKn95Wb=(=m8.IF?JS`Qh*R?@IEp,o7U-J4qZGjLnW aaf[VF(AD>YDU>0@ZreJ0L)(&F)-U$F@j5msJn)t6K-SGr:Td+9$PJ2j-s9EU6\:N'$=7BfT)bcHS)5AeDqbeVO6r@":i09:':jY_-2'ZY5['(PYtgge0LB(n/fK"i6?9]4)C9(;g= G;" AZlZW0t3bPYs^?t$OtdRVn:nV/m[@A"p.%9!p&AP@G&S^)g="qA>AVTb^=6T-HA<b[1/H0gPDPg'B.?A:,pqQhWUplAG?F6U"`3!'As@#Al\"W!1T7$2\PD]eM8:Ce&$=mbjn;#Bfj AJ3^BH?Q5i1@[omAolU/eBD"oAT09s_PRjt]g[%'Q$.p%lW`'g+l7Ae<;n-kc0G77fUln7;Y#YjEL#btB\5^nW9n 48 @a.#Y8/I)f;qn12Sd+]TgM1ktq8ZoPOk@/dOSq@<PLfFPi+FafSXchYLS`XJfj2e,Jc+(krLgg.M?bH,2S?/QSBg66$T)D>J@j+Tc;GU 3pDNba3iS3[$*FE<$UE(pF&@9a>)k&1MOK1MTY#1?df*dn2C>hH$;dK5>1b)=j"CNaV-atWE_"-\'\OPdRk;b1U^eIA4e=7k)U9rDASSEhs;H[*,Vef3PhO@&?,Ri,>BAqmEZ^tm._A#[@[9%jb!G#<EJnaYcX_[%On;EjoiX8O$4Ss_WZbc57 *ZmY"5gr8s"BTan,Y/t%f/8IT_-gAAcHdh#aWPNA`P>ft"Bn?:^0G4-Y`fMSLdelJrVb3:"KDAlPH#@m1!MX#.VDA6ZLIdnF(6Flqgd[GUtN:YDReU`>pUB<P"PV6VVWd)&1Q_ZajmA)+>BQlGhQbC:`b)A]:'AfM86]'K[A1G3[Yb"4oD.V=NhSl3JH)qA7TTW?)`2A[(.i=S0N0%!J1D:#";lcAWp>,#d+7MgM&[8%'>% P* kIrG4,JZh6ArHLiW<30`[U[`n0X":Z57 [N*HgZ$I7otWr54/Ok\NEQTXVZKt8D6,q.R3mp>&_IPAI(%?e!5?A/Qbe@ g5aGG(ni3aQ%8;=R7B4TgE=cNBq+FW\An6k@VSnE<(EC-dYOXi5P[Tii;s=l&'p1UFmJO[#pNbt8/q8Mq:I.Kl7<G+ATp>[5+g8)\XkA7=1"7GT.4kFYob70WpJIM/7`^?rOW"*C\'\[Ot%I@a\dc?'cjQPlh\h5R/M@DqMap%_<SEh2l<RBjZc[og?E2cJ3KjI_GL>lgJ\f!Fn(UQJHGTlr?>6mA,VAb3793AjHbXFg`E"d-kr59p,"q.g1FgFVB?%[V&V2T:?02JO!OEQ8?_GKU!:6^lAL7C;Mb@2b o_s\1j:e]df*LQ79TSjDhM;AOd/9Amf--]#c?4Z4DA*h&/?MH0(=W[H>U,j'AQ5=Z84qS_]io5sdC/Y!)Ro/#1-8eahG<=VGleBq$GtMgJ'iaA&!0>IGh<<beUlCkm;<l_n*Dqgl=]6g/%^DQR8]>Ar[[r(DdF1mRYX(:Ah^8=<_HA:&X:*+ra(p/_Dh_,i)B7 WFq+ZfD1/-rZ#rM-i\)%3a@Ud]n*+<H&>O;b0j3c7:&A,T=<273+Ib2EmD[`=N&`99S8??o&/@qoP?$"H#EL ER[h^aK(iFGP%TAeefT$Eib^ "eH`n!A5\Tl.DjW:'CC!8/rt;Xi`S_Cj$Z=H490!0#9:$A!52\G@WG =]X`K9CI4)gYNKW0]=OP;HJ/%pakp c>":0rPlQsSSUKaEQY2iD/7.]oCP"omV(OO5WnrAI[&&A`EL>R_/"r8.O/6cV Z$JsGlfKOZ:6t!G\[[;\Yjb42^6ROJ[TA=jbf9AG>t9_6pnNXioVqA=2<]-;[t7LX58k`<*K?\p8IQ0At;LEW0+H6+*fd3SaI'$<mmh5JkDm\`3-p2\Xo[?JbcO"Q8ZtmF4UY(A\'hD;>abi7rAfNh/,V!@M^H@_i&]O,^,hNt"(mg!7jji^R\ 5WC=]M[q_[Mb9.nl!"BTOBj&Zkp:0<kG4mm]&>X],&nJ$\]]S1?Ra^#V#X3](Q9qUlM2F<sTP^AAr+3@30*3lm:_'2#>qQefOt`oLUd=2`-ILq'kl';P-$m&dbNq4_Xmcam,pA6ZI^Z&eX3jLk'W0^hf('1^&b:oT=nOhOTQA!oh'^#R>P?3+L:XM@anPUHL8pEW+.d*,t`Q423Ea'3*,\8?[_7i8SQ,Z8-EeA(or+LtA^)r,Qdf!13HT>+l>jp'qK'!5\S+\1R[T(lAWG@*@WXWjiJ(-C,:$Q*g;ZAs$K+Hf3f,l'(.`2+Ltg=LlUj]A)h_.D4AVThb_:o"E,Ac[$r=`6CM WM85D/Sa&]RgDY7Q%1/8AP\-`Lla-5N?aXpkcrB7VV`E!E8ClT8gsmJb'3W`?C9rUF<AJ2d?P^P2,Nn@*_Q1]e5mKAA_r[WH#S/p#t$nf9A$YOS-qc2,qT[,8FnN7';lCZ(8Gd+p*V"Jt)$Q^JX q+O$+@fhHVdDal#5?h0&cI2<pmRW/g$/gePX)WObhkE[S@j>ac[X^gUQ9TDjZ"(jmU54^H*-E?/q?8cIS:dL0@ b]9#DoU)^p5b8X$*I51q^WsA'd%2O*N$0gEfr(ZTj5]CgAC2n@"p0tBEHN1mYX"?InEGR7A0T>VMD`$`9?cmc+SA!/^SHKc6PB@7-/P'NLQ)s%@ (7\Eh$-;DE*hDtr/PG[]J69FRXG2K(MJRMkOrO(Z`KnNC<)o[<;`1hDl#((g:W$CrPUn(FVC =a9A-p&SQ-.Z9I o(1,pIadRJHa3ZLTVh].bH;#MkK<-en/H^=(/"fsg&B*b<lI$;X8AHo]-HB&fP0Bt0MmD1,&Q1&9XU"? d^M.:^e&!t*9KTC++i)p=_=!)"`6Kb_T_F22tg,AW?8Q"E[DAK]%'(58-$+<?(.#__QLLP&+SVEmF@Jkft'"^L`O:a4TT3e!A6F)5g%>OAQE_X[??,*N/ ,7=',iAYKN OnML3[P^e;$Xq/Y-%i@[)P9cim"-8t<=^bh!srU3cB\&^^>O8IjQm5HNC/dnKsYf:Bj0dN_)i26qR\k8k@Q0]_tO[dGBL4Prgl'n@/>Uq32\"I/pFTG&X`QZDM/,O t]LC\nSP'mjQ:'NA=&ln^;D\nlQL&M;kAniTD](c28,8,18:6!M7n$&RVZce8TeHW#o\G^F%2_XM-/U5UZ9q4lg"St_'MSKisb"#e#NfZ,Ce(=nU] h/$U.Spq*hc+e[@1ZC^=2J\P3bp8$c58j3_O:0k6WC##3=jW!& .f!B,H^\e0S;adAUOo;6ekIP$>Rh[\-nN+,ph ]3C1"AntH(F?`s_SB6CLBsh7D@7 ]SAJd$j'.-aoYTsN)r:=>*Gf:U/! -03/6n&B$JBQ'70?@&G8eDUk:-tPpsa=-<W?3bf%d&Koh4A,@GN_<?4W^k`RGggM&'QM>lYS'G6,^t+WNDdb06]"EpeqtZ"fq=P'"pUgVY*r#D"JNmJXs1t$;P0;%$ORIhWYeAbL@ZSB&G'n4QD*L/nS/^GS_9?9>N]3fFnAGr!neR5=_cYH7$)Pcf<Vf[rh+C"(2A?.m,SQ+:A-I-BU-Kk6prA&+><'ls^\6#l5#gEl0o5l784M_U3.=W_qGAmQ*%%^^]6j$/S,O0"1e5/YmQMqj?<-TR!*0lOrtSkQA99kNQh.%r"dOm+eGSXYY8- )FeVXEH:P@Sa##kM\2&7EY$<s5^KhQmnQG,DrF^G,=/OC%2_K%0OL3=-eV/5>WsDC30'l"h>%Ar#"]CrI`Y2\8o#-\A+qnB[3Nqq!a+'Cab&_3WC@]2<t&.4h L<;A+'+s$<'rKGDI6KJZe]Yh^QZP4!4]NEjN/n9hb#kW#XXpnS2-dn=1gm/N`c6#02TWYWfT`/>?kr66f$mXoJHVQb1L;/"E/[_i"2A#O_@8!_onZ:KfIm25I;qhK"A3L@W2?$7>_J%UAKVto3lMX$-(b7s#nZRWJ C8^J.dqq^X+f;:nS.j'7',)boQ07P:be3Jja&_SjlSF/K<nWp'@7Z)=SVg/!4.7eTVUSKEJSNqCjY5=7sYiN6r"O1$L<O#M^$cd$0chZ.Z8CDp\qUP6q)9RpR&A,o,^jtm/N0n=9'pB6M1ao?B9\mC_6^i.ms ?+tqPJLB/XT6*(AYbq6*OOW"R+<:*A;"?$$!&::e&_Uc[%3.]iNY-B 4GU W\WB9*hW4>Cf]MlAj\q8MYh@X?E9PZEAhdOI9`bB0)DN3M[)i!`5iE&/6cP,K8fd$Z;6g0ZR&MA+m"ikA`$A2.0e5!2g==^N`#'j#rqt:\ _q.1dcbKhVo5QdUjl=<^Q%pF.J[KsmE/p<.0(?j=(@bU7 V`Q%*Q-\pdr%W@>etp(Y+?H+WbnN;JBNA)3Vh91?M<9/f7_j,B =E28rLFmb9C64o?NB1Tf]a4#GU:!(3o?;79.Ij^jkY+e7Q^4?[</gYgBriqr/`)CAY4'*/%9Q0HP#:ORK@s33FkJlCgb9<U?GTBL%jA8O=_5('CMLTA70&UYpMmT6`9!^%=) -[\Ap,eC?"[KcTVZo*^aj#8lV?csMNeXQOL@W<X(KW-78GS(-=r[2G@UH$_Kt0'4!L^;Kf\WjSATX-3>f:@sFiqGiP%`n/f*IHLa0CepA>VB3hJgZe32-'2hf$1) BHM#5PtgK<M4V-ZLLn6<?G;r*RP(7HA8MJWAr<g_.G=D8TO]UqHBsC/[eX"2;6oI N!0KiD&sD'n%a#VC:KS&_S^[m-Ni)F6n-`=,6;e\pi^cPFA,dY8ASA5$qK`dX/`1_[NcGQ<fmGR2X%\GL7%A kY.m<PYmWa-2t%el)X1pfFBI9Qa]MrLGA`)M,C\:G1X"_=._#D(p!q r'j=A;S?Rpii[4m?(kWsVD gTfDUoqdMRAS6LhENjl_;)]E?c8C:ijTNm.1GE'ia#X%5HI.)F^odh467(9]^j+aG7RqZMV)nHM" ogC)aZE*_T%< AcoZcCb^7eNZ5A4m!_SoA(.0-!cp^^X>/B'5D_/qY1=%*GQ40 `k-S D!DtVCL"a9kLRr;^Z\S5?4S4abC^_Ji.9=:kR\r=)D7H=.-1r.OZa.N"T7(U\snk_BLVsX%0AJ0_%V'jK_.e;o,A=ercfJTZRlB:js__+O%m9/`Z]`[CSU4%e<4T=F3<NHZ%MpF.Y.6g V*5/%!JNXEf=4H@B"ST9XQo4DQ?(4^B-g=e7?);3%=(ha)D$5+7WeN]Q@p,D;J9+#&l=>NGa83EIc^MZtk;J[Yt=&hJ'$PTA#8 F?B]XWF(CAKpLX_Iq5FWSe5._?it'%Bh7EAbZA"95NAo;_[WE/Z/0bGIP'FkIK*/Ie&la!C\nR&'>'c'n2C(t-ZcodJ" %s04ZBVLT1<F*q+D9L)qCWLC95Cn-AHn(W&Z&1<lAA3^faA Z7ae `\-$3LJ0464>OpehGq-lKmTD1(1"Ds^"^Oq(P?^66F9X\HT/&MUTcM 0OA;\<[A=d\TRPmia>:qdh@qi.IOBj]HO#"0.h%nSlXOGY[$mrSVp[Y0NICa8RL-.!ClD,90Hk^'k6a6cin/Zb!&je^@+[00bfcGFG(LY81#7tpAeR6Lb=qT_H("eb:YOiiI6hV*SF3:9iQ\d qs2h->dl6OT#PDQEbJX66i)]FtpBF -g/J^S\sl6n=G'Jr2:#B8)KM./9:S]Br[&7qh*'hl6L;"4f'[e8njR^#S@J6]4DAJST!XpW>?UcZp.d64.E#fAR#AQ"CFqY2BZc+AOK2VqA6I'YgjrfqW1rL?F[BD.fRm6+@2nsc3/liS%:$83NB]RUFI5I; M14H'Nik4^<'eaTB(=6L E*d$(CG@ >mUikAR:"3Pqd7$'<r\pUTi_76GD_e>'eK1^GU`>aMY*;?gnmc_E_1ct+b6LWJpR_AJG$b&?iCaD.R"S7VkB*<VpFcgg!`Lb-dCkgMC+iM`2Ope$l=55& Bq@niS9@ _2Ap!ok9A"(@#7]2DXWN_6Xr`$E7Kh!+"maYk>8&"h`YciIiHg_3%54DpD51IWl=V:5@t\EJ5I^8K3%8#@l85N#[C#<7]!*1MpRCS44&TfRhG_?BH 5;)CoIJsT&m9KBB;C<;WK$?9r(h$W0X5=W:_B+@W>O@dJL cU' fH,8;M<qL1>!O(08I?W8S [oN8c\,Cc&'bP.;Bh&(+$P*Xq,DmW)Tt t/(Q(EtlLC:fCY&XD0d[BZO0^ht[APo#Egl^c<\Z"FUY_A!K=j8?9#/N30Kc)n78ib8?b^7cU^(fT@q:%(W-k-FdA4Q\_8r9VB]%SP]?(:>DYF2H@);(A:!2$'QhpD:B40!K.BBlUk-,W5T;#QD7=Q;<jf!MrDGJ=K<n6<VY1Y.8tHj2Bbbg]Ht>k5,$:!,OF>XA/N#+ia]dUIF:!i"9tl:a]$e2=CE&KdWFBC0mA/(%d$qgD#5=e?R=S]\$M5jm)EJE4McR!Y`olVI#D%AAe[?*KXS,b":;275`hGb7QpHA5/'sqb,m@pXtWq#WC",L35mH[FD`P@mTP8-m=nQ5lOpVobKa##,I^iK=Wj8SN@^^sK(]2\<@W8oKs:<Ur8%E?i(4?H5(,5GiqX]A4:"rD*\cg!*$*(DN[2IaG:l7S+(K@%G%XGLW`5ld VRXkrEIJXk@,6RB4RBbrm%i9rYsE`]&^' $FpBbgjj8[a*F/,7*_Q0"3V"e2_&NW_Q2nM?E@(hjd1lm4O94'_6 IAJeXbp;m,!<rdWe1P>(J?H6I$k;(n]H1a*p@P:1+hdYQbTi.8>:j.H]q*N'cZ1a,a.IsC@c.rl"*q[s8K,kg:3PM?:t #s81l&,"5]]Q%N1H`D\WUS+AA!'\2;4@Xt*2b:JI2F@ERF@rem +O2.!&L#sAsZ[U]B\O$p^=;_WUPcp $-W/#_@jmh-kiq*5-LC*i>Q1)>7N;k[_jqJ!p^%sYC^*h)k tMUVh7E%P&TgZP\B_^1/SS](B=e7C3?%C=f$$?D+R-R2W)[ln`(Zn?\/k\;%j*+_;/AK9iJ <Oi%Z0 ?V6rHts7(MK<+ZPCpSA-t=1pS1!'YP)K5 jOt[G;.*.c.[[jGh03B<f0+^`f8rL oVGHDla<Cd^4rn8/VCQl.?m^AAoBY844K[nqc$JdKjAKfhFY<+n\sbEI%2b!n"h@,]*=G0Z6".b4qM%& \C5Lp\$t(nsNLq+*]^&M6=->Zb&Ic7UW&GU"b"*sU_@D 3Q"oHbX5;P3`UAAqF,keZ`8 "j6_fld7YUI94*YMRE*K99rnd$o78=?O>:Zh_ LpQ9F_L#^A3QCQ$Pmt8>N^W.)QBB#b/fefCTOO\/C[DbqdJN;iQc)_2K)i>tEN!t#Eo7EFcDQM*/Q$DVq73A>3q"?rs,DC^<@Xa*UNT)3eJ`p,0@eB-^MdL]-+AW?+k'TT"=*QA_6N#0QOFGW\J +CDa"d]!*[O+l[\"D)aLG*\Uqo /lpZS'`25':Se#*7@QG@>i1.@tN\l0)48QCp,Be"c7Vd8C!NOj7,,GA03+k\JAPm6'EkqMBeqlI`0o=jW2AD#Jr"eLF#K#DMXTA?)p\WG.+)@aT5$rEkal[sh#f)7D1:N<Wo2Kk\#&<^p+L1&rl<7:c[A/VTdH0H$OqA?CSCUB,$Ih%9r@$sScs!?q?k+r5p=<A\o0H*]5*+8S[?_2\5?_.-q0chiLg@j!bc-C5>@J.hLlbZ5gld*A%!]Nj+93+Mdh;e8oRR@(OQdp$:KHVG"_>S+"/0$AKK"iET>q4-g$g`'GQA#O`iA Qa AP+lgoob, QXf&Bm!5/(8N (/Ht#*%2/dPin7^G+<VL"?`6]PG0/[\I!$#;r7AI*Wo-4.d;g^4Z<UV9OA$+<6Gkiq%?OacGhT%F"\L0@eq>o0+$6<8RAVppX4`\eo>*RtAe7)'dO9B[GH:)cl<Aic(Z-4gZeOn1Bf]<GN>g 9epr`)8M;m#ftY:ZEMI_8UJdaqj)q ,h\piI:L:%#+*+7o.GkgkrmKBU"`WMJ8$XMWK=hU/AR ZC4IUaT'24[l.XLM,/.K,qtV(2cf:]Y#G0O_92(ALUY:.'q79aqZ4CV%P? VF8qc#^Ss3fGdSA>8SQdK?;MTW_UK"kj2,F#_OA/objAB^k_BZ%re/blK+3Rt lrAJ#ZeACaIA(jh \(Ne]R_`BNQ>b8A\P-"/ABZ[KA38!pWd00d"FSX/]S=CB=,)FO0QioNX76k`K:9,YD5HX(arVUq_-Y0c<oBV:]!(R-Uk%n;P[%:X>o*V)Z?h`C+Tt1o0e"@m7SVai']@hMG\*)P9M7S">c+bEkkCS>Hlot<dEmi4$KCat_n#)QhYAUUKX-ZU*4O;D=/4-OkOYdbVm)Ng S:Ia5MJ),E33_<^dHQ%j,t*#?M6SZNUT#CH<\a82m22`@NpdTH>(1[6)^ZVlAKE5i2o(s)rskb3MfU6lYlss3&96[M, .fSc`*OrF'.Y#MpkH/pde%<7m:LtYY&V)miFbqegR7Q ACrslZO^J@J*#V.H"r5m]5j.A.U7#82lN*]3'<!G]\lU7okDNnGeD3YRjJ1.YIi+W)nW:5-i--MgT9A]`p4b,.t_? ;_a>4mC2fQ]*n*`M>JZYCoAr6m[s7=V9Jfb3U3o77(9XYT;A!MY>ke"ni<TYVJ$6k.#. PMphNC_J*bi:DS"BTb[CZc92qjomnC;Xd*iHA3@F*C^Yp?Fa6>S2[0 r*ch2+bA U@j\VAZrA<6[4b08g*:-c&ke ?fU9+5$ bkkDB#9?FP_C5aTLiHaY%D7#empaDa4W%`KV$<"tD,H>GSLPNO'TEj./\m,jt6TWP:*hT'eP[<W)cT-K"#@2O@.C#dEaV!A\h\@(LU5iJLWjgk"!1inL]^]7%k;s3HGl$bs-Mk)q&ImPWb1\p7jGWH-6al08 67ZKC9`jDpABZ:F?nP-KfGjt@@\<m.HMP"(k7$2,3e+q,IaQR-Tm\*nqPkoSZ%64aR5s%Q7!3c/7[5`]pq;!q17Hl7@tJi-VeHT5XatX-9CAIf\Do#rG#UpnNVrQp#.=LA!#W6N=?RIB\fL6,b1O19VkE0_U.SI.OI*:m=De4TA9"jm^`3-6hs8&XPK/#WN*\T/s5_l#A7b18^Z`?@r`kP=VJAG< ;7!O>?V]-Sr_AbFZhABkt1n?t0*Es"WQI1i',F#/=?Cd<.?!LhStaQbW0,1DS"<A:Y]5rIq'R<[j<!tYP8^mf=,n[J"]>V<@dCam7\A-[<&3qo:RSSHB8\8qVEAlG8n#$fbnV$5RHEtbD<lq I1CBc)ifh@CpL#$[$AVq%7I"YfVV+^K:it@'t@^5PhD5lq`A<1T61d_i)2TgJb0RCE2BEZqKOn:oB3 Z6[HSY/ b(eA/nt.W^Om<-r/h`Xf^dL<SLaoJ%tK^WLVFCjAO0oU0J]]!Y6sr%]A00)e.9kB*Yj<6 bZI#G&eR#Vi]*2T#TM%VHj8+qt\f9AbH_7s,e[=Tp<iRPNO-B7*iG#U`jpj;,PSO<(.Qs.t+a8X,1hTI5%r?MrpZp#g+j70.j@Tlc1$1nP0&LEYlbCUP/NIW:PG;M<fP&B_rL0,h*S.Z=)0D:!!a(RMQ4'6W%E6E3T1'n@ /XF8L#NI0 AFK(g=AQrfq^?2BCV@O`OG)#lh9+;` `9+"7I2koGTpm`iaL=k!A9tDY"d8WsCPDdpNgU<9P+OFS1cgZH*:2q6[3( -[\HMJX$X*W0g::t@A/$-KGm-rc7=q)-sOVgn[^AWp(r0<C.Oh"iRpn5,kGV*_n9Y\hoAokJ>J-6QA%J,OQ47n@#mO1'2Xt)>_^oc<S!2ZnV6"%$PHL7PM)"]'Ng_5UHp PV,qf N(D1E)RW%Ilacc,MGe:b?aZp9^(mdb>foAT>Q`>GkdZ$<J!gShtU\>$aM-Y"6ac<j(hL[_\c((h@%5nT]V^,]M*JAblrMZF^3^S#''^s![ehKE,E?]mY4+ql<F(iFD#G,6XdK.1ZM%j(1hns<R!%".-XqgS<Kf%Boq;^Gg&d@sq` 5i_o`;LQB82D+VEn=1\,(, t<1I1@W`$a$"Gd08n).hU)2jB<!Mj6?.NZ7^a/TXR$jBM:>opBLJI!N`qA96bBoap9c5FR&(T;as,B9.D)"6n6A#-Ikf8YJML?$N?eT@_]@Y!R*B!J&`0!P#IW6I`eUO>qm-NA/W#hJjN!M\>=%iXX)Ik6;G`Rl.BJF7b4+Sd7;q-Etb0Smtp`7/02B^]@7>GHJn9XdWE1LL'bon0j)f7=9-I9'5gi)-RHhV?Y+gWL .W2*XAT-qg6VW,)3>(86YA\cIc6%s(/M8FM`/3>#ak<Ua4C#WL+-6bfKIl#0jl`,+I(=Q7B1=^rF@(_q-n$P`Z.a3E'?c X7WNH?I\&f2ip/bK,9XN=W;T(N2j<QVCHfO(4n2:-[ht! U7p1aVBs8e42:djpo0;b-?*DZCl1E7i5p^pfK8h"lW?9VJ&+^c`MRtGYZb5GN*aJ?I`6;9!ni+?EW6cLM[t2!=P.Jel)#;_)5N5ThTGQ6I?a;$H>aIC>"I__#?ls`7PJ*Q@RZK/.-%%9to<BXI!ADAdKFqc&0AE1GX!^PI5EYG`ZG4;E+[!2=&JWhc!l]<&hpZ%QL69.p8Wj<M>T/m/V'"YQaV1kf-Pg+$;\*grK1KD2aQM1tLp`T -V+qXm%=$@/%'k(!f?'HY"9")?KZ]<13,lPL A.CXOJN_h5$m`%a[S)fi,2j"C(aAsK#?db:m2EG\ Bhq>Yn:VVQB`VMLIK'P&n$- Scm&j=ilONY6qSNS?@j)'s,(K;K%\1m\A$Y'GHCPG_sJ U?+S`cXCrDAM0_jq3.q#R/FMf2JekA0bWY%UPQF>E3g&TmJZPY1 8bj\Gj^`q@#!DMA+`1rhm:]n!D!V#.\kA485=ACZNRP]m"]fhcJA.@&14C25=Iq]FdO7+XWe+ )S*qre%GN[ 9=$t8,g! $l.1$[MO+FUXqq8o$[dpAA()4[8^> 5p-9i]L(Y=g:M%.EM:nCF6[O&"B4;MQQq;\E@t'/1,NZ>:iXc6 *QXIbbU<Oc+V-,O(E9]%g \kH *AS5Htsg<M'pX3A%\&H%r\=:?Bn*[iFAY6Y&,sd,t+EVJVR\4AfB$0c@X,N]B?<d3^sZ=rLA/HEhJ8!sM4;Rb9AYGtfRk^'R<,<Wb)QW)K!nS,+Ie'VhJ@N9$.0B>MA"[jV`iAVA4i%HC<i*. &qa&MQ5;GiAkM[Vg\]`eA'Uks_7mFc$T6/(-Ma_8X:p1S+L@!91Yk,MOm@l,k(HdtUM<XS.BI(/+/^7)gh^7f3>StaApU?fs(_(&c-`?C6W(TD:QAABR;-=p1VhDKoQC=Gj_DQg@j?;_"Vm,8Bk#OZG8sCYkii2AHa7'-Eet/>Z`(hFCN ]Sa';LE>#qn5:!a#-WGAQt!r'BAFI:B'r>6nqn<E?rk!0-/@>gBVHlNK5Zf>9VQ9o\*Xi(1t4lJT  p#YQ]<TG,Ci*=SF,A,qSR?S.Ki`]W"RAMPeWBj0Bn>1c37h`mP-8J ?qRg['1UY2!KB./E,`BP#Ca-RNbR5+#o,npPUNdCp]@0Yk\D1*X/+cog&LS9?O12P-:.9gk`)K#=SWI0]RV\H<r#VC#F/=5+(i?"@mIT)a2>i]-b\^N&F;tUQWBTY3"[94O!8mc`?__6,[ATkf-X"-h?Qs1hs\1&AP:d9R\!Q]Ul&r-NgC;&D'_ gdX%j hX[hk:p6khM#7'8s'/AfS1.;FFji7):shg-1?LcP\*0cVT^/g.4WU45eMOms'FX8+ihJ!\ip/>)Frb$pXtIYY;U.]q`XC8'->lm2?0l/_9d$1R#Q "MCPLgc9t M/hASnmMmK[nMXJ5-Usj5^I?Ut$1:O@FYsRm*V<@2W8EhOA,g_Cto"2b#p_"m[_^`Yr%O?g);KE,/C4+\;drM)$*$UZ)7_.:DCA+k2eAk!sB5[I@5m$Or_+:#^`M#L%M<N-pt<Pb12Fg9[i/pFF<YP+R!(P(2^.JsoUF;5fOb),s^X*j.J*RXD0ei*5&U:tW+DQEP7RE^d>lj&P$XtBA1Z>4S[rf) o;'?;E>+$k38#JNNke[RO*!XBKMq$RaMB%a#]FgtKLWndl3d"OF;/OTY'2a56Q.TpOnBT'c#52Po"N jpRV YaZd6\4/R0E/ZY8@G*epS7ja&_M4W&OI=UjQFmR:]kma"f_3CrNdepp6O_-k&+Vg4-A)H/d,@ZZ;41X]XB`;3))Af12R8d%nqj"9g"%XJiKUWM3'l`:-9<(cc8/OAUK,G[f^iOMoI>t.At&n[(+Q0@pq; l4ket*a10XhApT`(0H@Mtp:UP=5M<$SJFm%r!/J+2h4?:e36P[]54Ajm^#+*R*=eW19S[$&(psd<P*&C`"/$QTi$qhqjKf@,(6sQLg@)OhNOmMU\^q+nfZhESb*&7(B1bOMtI`AgYXJ$[>MZqX.P5:'G5'@\-&NEk+(Ptk/t;b7O"'H<+Mg4*Kh7(<MTi_Gb<A6TL,=NC E"s]eEnolA0-cKcFiqH^\K/pDn^UM[`$;7)X7-=eWXa&l$<5_dI@(,UZ&,-/Q2K+ObSYS(&4C<p]/f2NBa H>c!nZNQ=;i_)3iE:gDgIl;a^f/l/Z!7j$;p16Z4rqp5]8<K6T`5PN:>8j[[>1\?psffh;Yq6DBt7joW#+T0E$b:i]L?&"LR7`(N1cS^a57>O-!LOG^M'bH3VqY];-:dCetc4UIM`ciab,_Ek18dYU"g';'"HKbF ;>fLTPi7@sQ-&er``/-X5C/A.G%q:e/I(I]dWTV/BAj\HjVtZ>aO,gi#o=(;1D%tds3@\T;ZDC^qLV:Wl[N9i'=VWD!j9P0hBZmE>1dDqS][[ABO)H(%E:'R][551":,UD$*U^`lU&9WD=@eD!]R74X#qo']*FEO3tkId2eEb"=cea?@04l ME%QZ7oji'B/l`r+.F>9@/c@dh:W]E9T?e2S<Yo,Gp%U$2CM=.>?W"i>l/F;f9jF9/do%]S1-9Y:sn[8B.!ss^bHB7[9>TQt_n7W]2f&IK3KZBLAR5M`-:SQG=Nm!^2O=oXjQmN**Bbg82=,?%1 ZRb;4:-tt1RM5T`%)5X6Yd'3`0c"UT$-$$ ipE;cs9ng;KA&- 2 p\0#/YI/D2S=p7qF%W8kD9.T&E>4[d_;s=(*H>p,ReVW<d[h#+*4&'<fdN/HdeK`ji'?#D@jRI*dG;m&"=]3H&EJ;*^i O9:s!CO_*!IaZ]n$7ZB_1jI(s!oEacM2KkIj:oP.Ben]O8Gan,JDmr"c;<p-^0phslSp"8lFX%XOrYN\1>nLW-U)X!.A.pI'=Zf*SapAW5/$+fak%QqgRL`_U"CA!@LAAfjE-Cj>A,`<?m+,,W3XOVQr[kTQHY>@1$PE:<hYtW[p$`M#r*Oe2U1p"h 3j;Sp9"p3gY3D-Nr$GEk('G5_Rf,V>LSf!'FjLjR;;g%j?P0?LiC!fU[AY>TQnp6[*!Pf60],b_%DI/%`CqMgDp[?3;P`M#8U2BRAm_^PQ_8,cFB!O8*ng9o#^::F^AU_JTUH(IiNs3]a9V;01;<7Bf-WaN`)F^"Be0RQ7<nM8f`WeW7OlK9,LFD?A)jr7Ji_G_R5DCbgAP(JHf[c>LX)oAFlTL9krLkY`V;_8qOj>k#1;Qg=@sNr)I&/gAgX lVbhF.FCEGo2ChEgGH0:&@TBik&Tb7[``d7T>L7-_%:Xf2n.ldtlj>@Bd= j&N[<HNAi1gI]OgCY!+MblZ_mI&98MP-E'0ToVf(NZ[2m+.<SN[LUsQS8bXcA;8%TA\I,:`k,&1LVA6dTCE<AVesCQp`dF8$ ) 7q5(`K>s[R@5cQA*o^WAB:%A=kbN?pS14eFM#Y3Ls[b](spXdn>7[1"(8XY91\g"8jdkQ_)P[FE`O9A?,!ZGs&l8>%1%6EMTA_qEqsEZcH!ic:.=[IP^7/q0"JX<n-A5nZdH0gr(`sTAQli!se0CJ,EY/,0=3a5q<PKSoe8Nl%HfarS(8LJC9@RgcAf];$7l0jD<Vn#VNH?tE"[_B =7S9e-0 Wc\#MJi,8Ose^;i<EQ`-qA>Id2 8Hs+2AtK5l5ZW^%h8([?A38LIPT`PAshLUs,''dC.6i0j^l.'U%9Z!"YEal*$6s2(N$nM21&T')KNc];JP,K1AZ&HgQ5g0i<H*&1UYcE2%M(".phj%9E3sgKQj'A0lU5i1@4>;@Alof@02jOWXa(mdOktRImheaBTF"+_G9S$6RSn';FoDmm?QeSKHkA7.DfA]b.Fi1k<YM&OA/(pOL3AK&<natm2/qhjT@D""tnT!+S&^eI#74tY_6ASAaIN-fMR[e#7SP1icW5_/MmKZ'2?.S4U&'EmM^qn5K;&+tA:SX.m6K(Ts6jEn4[YNB7,IN44'tVRH4ATc0/cUch;:4RIIZ"t$jRq7"[@mSkpqC,^E0pDC^8`%Phc6@)<+C`dVtPA,j*Kf\QeY"(BYU`%^]5"LpL].bZ5j2&gT_Tp2MB.q%aV$PRl5eH9eon9S[3%+E,,o.Y:,g1C oQe_.tqJH:T,"VL6=WTKB0 \)C>1LBMXk'>K&Al..qA1daLmIQAgD =bl(WW rKQ^kg!0_HL08,_&coL3"L)8Zp(cm;K#J5-)#V*._78W_AR($ZKHP4-:fPm0@/k1!8^[BXSoQD!o:Yrn2"2T^"Jb9s=UDLX5W@Nr@'SmXd'1c'VspfP#7b4@btdUBJN3!^Ye@n\;)Sf#HeATK9mrVQ;='!-::"IJk[^1n2Akm>Gi,e,aIAZ783dI&Ns93`,i)Ml@%l^Z J-sqj"b*a$$9Wj?h)>a6(0a4@^a`NoF>EA2Z"%6<RnnkG*bZpe^^Kmon;e?a9sWl$O1_)AKS0t_c=Ye$TYTM8HHQD<&O>O@'9%.2PaXIDk-MB^h`RTrFG"Ki-]4k,[2kB63/da"r,g)*cH;HC-daTZ_,Bk] W:? ?`,e2`=TCLJ@knRUkoM*i`_Ah9PKTTIatn#:pp0;T_kfn+$c?Mq\S$_^Yj/?fOK^&Q$-94\0iF%'8D/C*3@@Xf<aQ?:f \JKB8lb(1mk/tCA$UK@mZiIL%OMg[6fD5UTM\3KXYTI3hV+%[AheA=3DP j-)h7qo7 0.P;\)p1DE95)r"`@M\&/^lS<Q"NEn>cGZ;K]E*)T%llg]b^SLSt Vrdt4)Q>?k0SQQ6:Xeg@pm0]1>,TnkC s&LKP5n:EHp2")g='d@s)2;-Y(Ud!A-'AE4R dVZL>MT)q4<'9Ymfs*9?Q`d)b2H]Om:]r+Kn`gt"_>:)t7!GA;&6'h'-.\lr'erd(b?#9?9Yk?T%;AXE?=09Y[DSUh4)8HltINi0J#b]Bdt"k,Fb ]NBR2/8_AtKDN06M,(Q*0IVE:pG[%)2l@A`(R$%8frtGF^i!6c*[)*Mc%?+6q[0@Zq=V^]`#/U&BT_'6FD*mS,AHh["]`N(QVo'7Z-f,1_^s&)nG!,A4j53m`k,%Yl0i]A2S<lVjH_)@P*l4Drso-5,1HPtCnP7L<:1-\M>6"DHDUN_,kR.66#dN];A$\_ggOGpVsS"p9]cN)rL#C511GK*j9H(K(0dqSJ]Gdb5A!Gmn+hFB2]jA>'@8iscCUTqIJ@^Sk-GT'pR9<P_Wql2^,(O&'An3Qid<k,/PQA@ 2nUm9,%OOK=?TT 6Ei4 KsKVI[H4t\0 cs+IqfMO)U/PAJc<A>Ahi-0VS=^@dbe%;!On(OYba(j[*dJ>5b16&<;>3DZ2G L0,]6V$0)Q(fK9o6g&439WHT?C/W&Mkc&&&7g2V/Kq"_LqJeGEJA,U%Z`^$eT reZ34p^FaPAKF>]3RJZ_,)>=r\E1 I-K)$b+ -@[&ZT,mc0b;C4A@T3,]Q97>AC% ZHN b"f8D *a(! YCXb+^Q8j4V6+*:<]j+De"ZeR(fL(/@Njn5'&<Um%&YssN+Z@_\K:cBZoh%.pLKn0Ho>JG`?@f.$AL%Ht-:iLUCa*hl17k([ZY\MB kDRh#JS]J.jt@S?LBh0SVG`AN.?!gqAH,4DjnOmK&iG#[P2X"H!fb(35A[cr$HLcY`cp^Sd_7N[]@o2i9,N9Z7:STafZ@E>,"oXL>W""!IsW`n'9%>O9 .]!-O``>qCK02AHnPOA</-Ql`?=`e>YDK:f][ZX;^E.mF-#JpSNM45q;7Npc;JsgQVtD@dnT9n,SN4Z_8V3ML .Bd1brK:0]9[-'!?gqOl^$g9#<IWS_Ftih4UP1S:e3D`&2*KVC=ae#m5qe>he@F/#0AFi44-GFOmX;1Y:ot=40rm%G)rZAp*;A#$]bXcR)FL.ot!/ HGcOY6eboK>T;c`Q@YZ2)E95k0(Q]Qk2mG!lA;3=?"f+s>Z9gOJe:`%EA]IsP^bL%a0'Qns/V/oqN*X\A*SWV1 7H.;U)V,f?6l26J)'r9%S8DHKYBSA'6>d#Y5bHErPHIH)h ; dcmLG9=WNP^dV2+N;./c>/.'Yg,G!Z ^"c6S3H+AJWf =i\^<knMeM?pB_D;qdh5fq^[ ?H-5Rk[OE6XOZJIFDW_bsc$d+(fGb&32K],qn3L,WIrs?9=/*tX*A8)t @$(OZ1=.g'PoJ4$h!jLi$8qjgG&TO*:TJn2(IqcWXjaY@LYbT*Bi#s&.\$^XgkpdF+o3<N%X+6T!WEn.s_Hnb_bo_>@CX$IFJnC(,AkAGfY;jttXd;0K+,#j 74DomGDbk'5OeaYs;*0R0b]$N4L+#f"s?8$`t9;OG%Ya@kQfAANhdLr=qRH:2e"T)/b`Bjg(gD( 6Pc+^[&VdH@`B>"qJ8NAa]8A@t%qd>[l]RHQ]pZp2\In6]5?]l%j`&A)5r2IQM:;Y9rN+PP*lL`ZCP_@tq:r%T?B_$39l r\hehLm38iF,_7?jQ"=.\Hs^+nEs0Jp3[d.3mjc1]OH#`oM#1ikiAL`]8p&>Y>.AKBB4KGA2r%(Z0K1\QW7!X- =.BLhN=d3as/*B^#MY7W>5hH,55H1,tMY9]Cs?H4/6da 2JSJa/t.(Ms+LPPirD0MXP0!NF6 =`!+`A`RfU,&d3Q+lK`,e)6$IcpA]r0mMfncKc[1WetLAXiV7]U0AHB3/"nBr'kYZU_/3:joQ-*(OE.2,@L`K cM;WT3sF>(s3=-i`o!-XdtHROf@RQK</!?qD&n$-jMR,\lSTen a]8`GT_jX!+Ed+Dol3L=!A^&ef',Z]pm1`t'<5J!0UP0BehNE_0Xi@qjBF$#on10Z2cW?JW]EC b?QZVHjIbs>dIh<+\b,GY!d$r.8ho5%KDtFok?`?bP6:T+D?(qj_=htP0r<Do$ Zk8%:.!0QRS9c%co@b$"\dEYhQms7,>*[6B'WEt"m',f^<\`noMW!_e!c3Gq")i?spm/#Yp BAQ2jmc9G "]FA`L@8h<aRV/se"2iUcA<?e).bMNmnQQUR9?bAc5>2aSZ9X!Ym`fKQg%ViTALaF&-3%q/BE(s/%`A7q_lf8DJrfgT,'o_(dKBR7j=o'G2Y6"O`<-OCWTGRV/=f8HPB:d_/tg)@'" DjV?mI%[4fE^MtHE8eeH"h2pS./3#@Rt0%T"-"X'aLPgmk&1WC7^$e,Sq%Zm;%.+=c)2MMg2@k1JfBNFJO20-$D=@abC+kKf5`\-g9L:tl<SI"+ZGIH$\D_`2%jb=\G9#L@"LtTjSP5%t>l4(mq\6X9jH(?dUVK#t>9J]H0?EtAO&:BW_pV(mCX1qoP1&ArT[oU_NWphc14NNs60UO9]gbTH` >n!IH%IO*(FaeHm-ePb(>t<i1$,V*-/DnjWTK50\H\g.:ZCnLI4e[j8&AOd$2N:W(ejK5^9#q3EF8@5Yr#*jIV/T=#n*iDS2at#GX]hrpNYi+d RpXW30Z%":PKTG,4%Oe"tp1(LmY#>'beip%>6(FHP-)+JGN`C>D4ffmfcYsWcmJXBpOVON4``0Q SHQG?@!cW/hoZ ']MH'^0T!5"(i)h]Y\(9FTfJV:4Q&ac[Z*f:,@(pL'T@0:ooO73t*S.S R?@3gc+=bcCM%M[$P:K<;o$J='rX9Sr h(fI^<TnMj6)h +1ph7O_jnp?sn!5OoLBUT(f`ICL0jFGm7LOhSRecX[UU?B3Zjl'K$?,V2Mn?2`[X!4n6Z/1st^F*\G,Y5:SNHYpGcJA(#'RB_$gW5gV-\c2F$I4P/+< [$j=j1o=r#'i#!RgPKn<W>fR\'E/#][^@Y$OZBe;-88NUnS._L,N\$5cs atk#T3A$ffIU;''(A$%rrsBGD;)f.Ar(>3/\BQr\Tp@LX^_71-\)@q"5U+dG\m45Z[RWI,RY]=UE=nSh4\4*(F4K?&Y-XSFAP-irK]<">lYQ-?o.j_N5>#L:^aaA?%Vn8VQ3'@m*sF#2Cr^CNV!f"S_WMCICaMih:_?p]%MLTPB6C3o^&L!<13?gm_qY)o9;2hGRSJoD;Dt-#Yn#e;<1=OL7LD74Srmp5&UAq(t2;"bQ/\5n.@$kZ5VR*<d\hC3%kp^M]JHpV3Q@,QCs$Wn!bo%d&H@!eY\e%pIlAi+J$tPeo4"M5hT/:NVP @nkMY9n  E[Nl^"p6P*R&VU&AOtBA66ohb4\f(9jj\fI0MUm? i%\ZJ-$Ea"W0X,lm>(Pd -Uq%T`9j[S4J@*g14fA-LLted[D.m7f?"#0olA3Q8%m4KIoI("&Ks,.d@5.m%7S.D*M"XSC<iUQRKUHa%e%8LWNS#]I6]](9""8pJL'd'ba\l%9Rcq%n^hZ6'=pF7^rYsoBnGcg_T+MFV<k0-h'*YjT[-#DfD/L`6g<e#;Y,9mb>qp<4M^M?<`Dt9NU^!=UXV*Y7'P=jA.:-^ _hP5oYKAgO/-VA];+43=cTaOg"(G`@$6M-J*C2.jPo9)Z%IOq7K'5",U#XK(WTc:D*s0oSK%(pEl.Do3Qof+P9A"Gs &o-20FR_;G3Ab:KV!q>'JBX,2'^>->L`,,8odNI"\<&PEk%E99kZB'#\R:.bgbgUj5**>=NE ok7F-:0.&DXk1Y_h(3SI4ki"GTe@%(rc=t4>jk#o!@rTC97+bJtVnc^[*tVpW*6NIZC* ;kAf*))ghWh+T`47Y^6h?s<P*0ds(h*"8Cd$ ()W&_95S)U9>t\MZHTgTBZ01;3;TQIMbjC\PA]r0$D8Oj3>n=O ?N\)E e>a@\+AS77?%N1K[qjLVAgob#IUGIFa8lQ%tCBIYXCjf?iH.5]j5+*!k&DsG_E_H+Z"(PJ$+l'PRmA XO>5BpmN(MqiNP*A,@?9Wi44tbi4'0'W55LNmM2AZfU;DGU^l,g-XENS,rh"ZU$E3\=S&DAEm9r;i<FbX]ZVKNDr!`l703Cpq=jl^0;"8CIPp>K^N-]cF?I>n*ZLbA`2<5[7KBDLZlA1r1%ls9R;oNZJ.9R,]eQCnhBnF)bUL&L.?RYSbFONNqAka]OVF*#biD75m(&]@k6d5%dNiCs#NN=e\=^itmKL*UX )q\j=hb'J=.s`QV2hFD1K r(oZ(lmdXR7kK9`j?MN7,ghZ`<YQ,TtB7r7Xa:JYSbiCrXN8\iL a@gA[*!aE-e6pQ3o_ef2&g^Sk7'QH5cs<ae2%L8-`g:t^sG_B+g!92W*DBZ\:@1/47O]Sqk:kORW0F%A^<;W^/A%bkjW \&:kEh#7)=+b\kcCf\=(JII#_JN:=K r<N'^g0a_rc)B'F1B2%1OdkoF; TbAF]18 UK#TW>r0N:_>A Z#kS(V*C Y7bAeYGTpK%;tl6P!>Q1W!SKT\FS8hq4MV*:leK^H;N>pFkI0)F9K7MZ1Jpi8Mp2T\_(sjO!b-Eq2r1:[4%3V%gC)pmecS,cs0GP(/(l?X260AgGL9:&)hbAUX0q7Wl!Vk9$D3.X8#,COLJ^a"B.KbmT.*%eJLl'HM'i81@)>>qfq"HJ4IZ*e[&CF_FgnM]WT%;Y.H2br/ir><arAedo2\$3HdJ9I]8T8jm(88W9HPRp?rG4cs]g(*50e;0ZX?HdU] r.+TAAPXo,3DCZ)VsRB*>G-]="3TJ]/Z9&1i5a_DArr$d6ST?+ 606gF.trN;AQg?2TXfUmfNE0P*Tt&AGpK"*,,]\k':dVcTY:GPXXW=6\cf>C$F@-KJ$B6n2ZR6U tYkl-'1D\A<l=2E9TBINsjp1(&tsc>Z $"%O+e(QUcGiXAO8JtZ8 !K-O]NEbc&R*G)_:D^nfU7p->OA(Td05<Sj/%;M!dn sBZ=NFGQ8*'M#7]@&gG?sZ[j@m>*?\`A#D1&$Z,L7 3Qh9i)b=L737;!*a8$%j?Snd3\tr>gd\5tXUWs$!aB*-67+&l*TL/`G;c:^\L j=pV5:[,pE`tKNIm:"r%`b&^61IJ)$2Af86;=AFkQ'4H<`L/S'X.3[?VXa7@WiOQl'oV?Eg"j;m4Zj@$][-.4Ak+3DqADc8+<9rZ+h/%:6+OQ=4-(^Om*s"6hnAW_3tb=?H5>"f5k$bD]a1ULOWdf7I$/j6YeaFq+5rrJXWkAGL!;Cq.P&KD@IJR1 ah[nI- kM"l5=bj 3O4F%P8s\M4T:#aZB 0"dgA.V3*9L[n s>F+RW35/TO<.5iX!P;X@OVeZC=p&]LO1P!aGRn\!MiYF>n`ORkFbOenKAD!FKg.RNAl2jiE t;,;,i#k]n;SD$c+1b9'j471C!/0I RFm?:h,Ac_Pl8orLp4&A@oUX65JFZ7,;?$ZF$c)!Li9Lh/bLr]gCRKA#U)ZiE>g?jIrAR-d^Jom7ON9Y?^kaokCpR'QhF8M86-4g<TF8\clNT <WI3-Hd(;VkLg\V^AM;>=K?Y',qiqE&3F4,T VU8f`K57\j@!sO(Lbrm$c`GYK%Q$fn0P/,telXc->@[Bn!UB+l')=]A54'PjY3$-4870FO^0+/8_BDHd.2^4.`(/I.dOY98T0NA>)t^h;5*:+KJ-6#@`=B/t@hHR#p^m&k!;4K9B^4FMr &70R(ErANQ^7U 7E123;pZtT+72f69F>4;HDg`kAg<Pp0IBJU1]+cpM9Pl,Ae8X5Fo[Z9[r(hEd(>hLH@: slgm+_4Q@. =qXge<."NP!0A5]frD]s%/;TTUDfZ]*\p\c"HW$=&-#,MA_VE".&+o%3*P+O?E$oE>2o/&R.ce-ST6kE<U.G^PP<pHF?@OXAa&\4'.+%!%4G/?"IYF<@JM+WBRS1$"f;tLdK"c;a@,pAX[bc^p915SX a8,'ksR3:m'k9CE<1ltZ*"]4gmg]`ZFQkF,6CV7(-Q3%:==$$Md>ZG#;,8:E?b<`3QWMa>!X6NOT5CtIc9D9\h&YbD%0WAPh@#3KK;UgB'XOp0SP9/6T"mA`>CaBeebX4eCKBWtOc"'HjS6[.*YMZ5'm'R)_88g?P.cEnRBb+C7q>Q@TVX]a-DfE,;Z4n[0ZV:TGQF4>cc\IeJAlhNJ3`m4A.4;fOtMI]E/1C,<s+n.)bGHMoFpA^BZ/Q[L_@(2ddD2<Z9!Y*K@&_L0N9icXqW:ZK`RPEo2TM-14I&)d%)DJdpF3kFGgP[isS/glO7>%>UrO,spXDX^7pZe/B5@='S7ChLD1DiY]U6"VJ3"pUPJC!`A"2Whb4]c:.]4B3"#O+Z*4*%aJ8BkP+7E/jDcH!naD+iDmS`3QS%OBM>Q'cZAaZ!a#Hh?A(=H%k!;]/:AnH5o&JrV8.sZ%c=S0)oA-lG[4_Y2TT/KW@:^gtt$eq?q]R?)ZEC`Y!^O&/k,I?A3:]<`2:As186Y0PPBfDm34gtctp$8@F;BVd(,4h4[QAY-tH!TA*nY []?mQMIe^R"jrNMqs*?KF$q*00tT.l7t0M9;S>]MOf=]62.RG`arrBH.`(ZP5&3POn%=,aSEW >Cb&Zq51r/^MqQeX!a4U`H2]$$4OhKag8jdpk-JALjcp8M^J7*ga7J0!jTBPa AfR1_1aD"4@CUe9) k#T(*3WG?j2%-m8$3>.A02XQ$(P3>IC7AL:kO$7kJ'pdWi]A-)tlA&3 9dh@ L-!oa0r%7fg4i<\TejfAKt?FVHV9b&3Kc;fmBi`TF9f'\Sqo-J%`F8,;-&i3=B+F+>qWglV;!\T52SeM0X^D7nYjm<@1i4]j/X2Sj[L[5-8]r*^h2_Ega6##!<mVqc*E,g_RkN%ZjAJ(i]4:n4A>9Jpr`a%>+1RDg/9"G"@><RfJPUaE5^jsW+ds'QIDSaiYPc@mn><97=!nW>cg,r=HP2j:8Z%bM,3)&^R+=dqhRmLgL*p%Qd4cDnTJA_\kT@E=_^t<3 TbBON/N4p+ohs=)8d0AT&[[GU6rQ)U=@AS3!O.:ae%$^a:eF$E-B*)NC+I]RMb(OP:DcGh$/kmKC^Fa*(aQUa%<m.*8<;Rj3r:,t5e:\ghMEa-c)o DZ\fsc\/#Ue/Q pO]j?A=BILDDJ,]>aIhe@fTj`SO3p2hf^cXp],Pr+?^N?qi7.+PdZ.Mc7gKP".^,^M^>)Tkg,15F*OZebWqLVtmjP_'tX "dJgUs^=('a99?t%3is^Xc=b?$+R.TVfX7LQ_4ZsSs* V<E%#6d69WI>:bQRrr<="DSFR;h[*=Aj4j:3:3:&n$LA'="tGLIqr>Ho4k0[/k;$_abW0=ne4`NlXo1!VN.sA'5'eZ&;%9kq)#s!IAfo(KD+?ds*nYSVcOrhn%PFM%hQ*Zh&ArDNHq3p7TS&Ans>Z:;<OeJeGf+HmI69$,)(e_-TEbl$-,>@:a3:8-T#rQfUdad/nX&B/1%4SK\2H[]k(42sTnPa-om6ofNB52NMl('Wf\R;G!h^WjmtRS%`R's ?A^KUf<>E)aHs)mUo/U_-,1A(MS]C,0,3Hkk6QKWYOCBhMp"o.T/mi]3Xd8e9%296>X3>Kd):Fr41"T::Fg&<ht[WAFrshW4"bL+TmSsj."XRSW9gV:hBk&/'c.K_&G8tf.$o(W^'EjdR=m>k#S'JBX4p`d+5[V'T!rHTV!fbSRST$kr8^*s_4,n_HRXCOUb:Qh<:f.^A*6T@nb!eiPa$77Q;:-2lE=FC9"Qg<9>8API'1:-B=\_X=)8'UrRg<?mj%fRb7aE/'Q_TmNBEdX"G)KE3&(4C:]_$c (\83qc]!V\j`(B:]3LfAD!nq(0"YfM$i'(l:4tWSane@,_9V<1Ld">U"'4>V7Jr9k+lPGT*tZ((i.OfYj_N\PPQHXA23G5pC6NgFAYJs0#+'Ha`1hVf/>td- ]8T[c:qm^IkKp1*!c1)m1lYmKj@V"GcI?^ss;ZJAk%SnNfbPPI^>t:Bh-BaWK.l>W!ChHrtKEZ>ee_\MC^\C6]<:C$]Aa=PnMq(l%LsV`b&A/?iCoX;<jamM-"`(.*&;8'Ub0pM6Nc.Ua_F)ic9FIE,,1F1X-Fha"i#'@kO9P"X[I!oAXIDj)Z5Y0?T]PBb?HhAWgon;\ep1P]kO70_:C-6@%`)9N&2iF"Y>oXsj2Eh-NEX_'"$p`1SsA+Y;@/U3R"4TmTtRS1PX2-N(p(tE%E[!f54H X:=RX]04.tMH>kd"_qmXao4"PhQN [)2E3X5^KFGUs^*6nbXPPB>`*m_X"bPRr_j09<9&MUXsHee&m=pR[d4; GIhr<dM2n_H.@0eemZa*)amJ-tf7fY#ce/^ZiMOYQaI9q4`fHd\5ANs_,qsG<#`+l";l<1B*<"AC*SiJ`ljgt#T*_GXk)&(5FTY9`XLZ`p:h_hYhH-2YaIl A_fN+aBekG<`,nXK.9Z_WB!A&.7SjG`9@,`A7^d`9p'eFU8[H!9eHk;$#Vc1Fm&!DegN(W^FY4k(.mL;sFAZ4n%50%5SQgto935ehGtr=8@&e*W7Xb:2@ZZ!rV*34+YSMDFf8=>[^A-m5:MN 0BfKb"V.72m`$R[rbZAk)o r%KqQXP;kG6AS9oUk`rt#i\T4@'EhXWqDk)s2%VVKYrf]>lZf;4CrH&LMT-4_(AX"amL?UeerlB<NofC!2m4A5It^qM2.Obr7FQX ahmRtsr[gh[ c=knp)htn]=!B(q>:f&+"ko?:K e4m2!=LI55i;jg,-;NXPU3gAhbO_7Ga$,1FG<)lKK27]2468]I9NKi>c"&B4E%Ga!qWcc>A0Rl\EtN!dkfkBM@.+dS^`+nEAiaE jP^7"k5do[g*R"eZ!NM1_oeq+?E95+SRZbZW#mq/-p#jL65sA[TfB+V_+8YpG%CjS/R=eX]F@hf-H8cARJP-s2/A'A[s%+% _d_roE_7!J] qm>F1&7,=@0c%0o6NGP%BA*Fc9@jmKL_"Y9PSG"'FJs#Ki+T'cSb2 8ZA?:kYUQ[UTY_Cl)%9.'YjB c%[-c0/h!S>fOFV`7pFcXEo$/.k^JA:XAPqg@\ ?tl A(;C,llcO%HbKGJiM7);(PK#*6"df'QK@7>%_ils n(J=\(=2mLPK4#@.k_RRKX8qAeoR%-'4(#cF!Aa9^kiF8gInAM@1J#cHN)D]eUSh%.U=4K#<:R;]ApDS!N/UAA[@KPPQG?j'-5HoMK"a"P+=6E\#a)\/'$XH:f9AK6lAPk=HH6)&a=,[<c_('E$,f5CL2kVGUYD<;/V_l>L\[00iK8Jbgj-lqA2jX#fp^Vn+D"'fWg%pGM0L;eLW-]]k5a/fhh,#7`75hhR/a*L0;3pQ7P8$+le8YQ0$lGoObrc=N@fA`_m`^S-C-:e"!/GZ@"g2;(+*7AJ*K8E''4_Bh(K0;,)3, g't>enZq/"VbTGnJ.r`9Z<eViH-Y91GeV^n0VmM 5,NL -ZHCAEAilhWW9W\e])(#r:W<A.4rh6kgMj`9cI<@lp')TmB*Q% `L8%^!bc&W#@#*-iT5</f?nmFWLVAciR"Zd44T'E12K2J\$5*LSUoP-ch9PbP;1 X@=4>m\P@MV2Pg6b82'$X5%C*ccs,o8>G'2Vnmrf%7- Y<^>TL#be(V*ALae<3r30r\^=a#^o!OA"@F9=CAgO^nUC+*_%b:VZ<0ka>XB#,t;4]S'Lf[3j)7,Yl=TrK KmJ1@%QebB.J7 ^F=g)"QP,LH>45bAF*l @Jh<g4+[7M.G1SPE/nTA6PfmA'GWU?XXkL0)pMo5Z<Ap=Oc@`A;5:)^_M`#"gi=@sN2o(:L&6<=)iLhrp1[E_=1=tf^-Mm^?>!ObUpj;;eH](mN#gAiYNW5VrcfCc6GV*aGnPh'S@0@0;K\it@r`lsn`hWXa!mQ"Km gtp-:^;>O-4kHE`*MrSq)F^0RI<8mBbo$=0e%;)YT&2+?(!jjaT=2Qh+nr=#078':9DA9m7 jH3gh5YM\]XBls%gibpM;bm(T)ResJ$LGs;W`!GNs7R387UL3@CoMX^,BaUT-Xaj'6$,30i/VlT08Ftl^R M>`ltK`/?.N,MLGN]?T:<Hl):)U/dG@X<UYae!:lB`4X3S'U:4]ZUDYK\aFQh0jH)1fj>:Ap'k16(AM-KPd3]KQ%/=eGFLi`UUr\:?>A+JMa=C^?&(5GchU!AG]GlO<`(qinQg/2t7;E[Q4>8^(A[>$MNj4=/K;S53Kj1_[(7%aL$.t^XltDja#<0,.#b0lYG%$9SAALMIcSoa7Gl:`G#W)4\mH5"MH+WL7FF0EtR6K'.^0Qbbb6pkdB<bC87nI-"1?QKmA>>]6/Fk#`MPG5BC,V6BfQA`gpEEs(*M?rl>-RI"'b=jEAtl9J5Fhr,BS?EN5#83F<").-s^i<G(pF/=BbrD.o;hgGmbSC"0Yog9B8i,??ddI#/FD(WZkI^?(G6,$2[nE?QF+THAUsc*SRE2QaA;Z&'d5QFW/F/K*HB]%VeNK6_'XQ>">GXVQC] 0cAL$p01/sK\ !gR23"/_nA g5\"'Q,(<?VG_`@;k5$6-Zd/'99ilnA6nrN=!O$]X>mW@hMd`<n09-A?-?HTmGjP`trdSt`>;-S^A\d_d=PP2AP'VC48n=&[(jA\Y0DRiID>6$hAN@ M9=;=Do7=MipjH\DMefN/7Yt/h/e]AZr'6XQhPVL5b/.?Y;S6h-cMK`-Znal'^>.E>BSW"<*!)h]TgMVSBeV<-0X&olt*fk^3T1otA@N>Gb,Hm*"MY/%e5[j6g5PFUo+.qO$i_1=s8mf]I4dRSW:4da'CG%"H@m$<_cC>*#@V\k<CUit>TW6+6i1&Fqa5Kmd0LQH7[EV``MZnlDDoTjQfU[eXQ3RN=SF+pVc5o1Q:EH4gojn2$Eo&Mf3D._j(`fcM;'gQI>6Ec&qO%55jKt^'5AF=]$a".(A_Q(p_KhMeD<f;/Mm;s4kmsXN\Jk"h["%DKX5g'N=k$,IkK+B)`c[VUrmUM C%$82XHqG& f]D'"T#<8qch#mNZ%"JB@r-((;!HJ!YBjZs29?0g[;U+WUn`LE^r1YY& /?U7i _.(>(mJ2H<pKn=kDM]_Ya\lY8.cH,5<V^6]b[&+tp_Tgn!+MZY,]EEo(k%(gX 1\bV*,U.&>)=gm$L"`ED1hb.FY`kR2>FcS6Wl4(7*=F9l,4`TKEB=(5Rr5<A5?;KC2Dd\]K!rY1)jtA3<$T)!N#;g\fh%.BisR3AhUHfpO52X(t3fMthhYd,br9O[E<EF*I?U/)T/Aj\"/dC2BQl;3XW+k(Xs]N1be',?T c=XCf s`09F2&Rh)*.4bm+-&-GiNnn+e&ed9X=jC`MSA3j<5_ec?Hd)!cP=f/9`]B@9c)N`imVYZe(pT`4/3Q))UG4%t$&+n(F>"P ?h4$f.@p"gQO[C>n(gPR&l>gU/I;.PU1dF4DO?%^m?AM,aUCGaP@8_>ABJ>/jW)m4,'jUWTFga=LA9A6GnIr[*r9NDRPd,8\S%JV:b?8J"Af8(tf*6LS3^`_sh86/FZD0h'.OXjmoOOipn_5@6EhHgg3Em/k9Z>C< <tl#0:CQi:)8Ld&@XA6LfKJ%E,Y19X>jP;[EN4iLRPa$\="`RLH/7NS?OA /kCX/:Kl6A[qZUrl]dgBfYB^WjFj[Ho&`9:s8a8ik/ ]d-=[6F[*>30 )c0"JQ&!n1pde8*2Ug?0"E>S_1+lL,eV_>16D%8iWW%?^\cbN<Jne<a8:oZ97nO>C?hQ/mNla l;fbt_!NqG!!2rO\=pH  fs`.=XdqGr!AA)H7H0lsAhj;O[I*F^[T"Nj <,8'1F?U\': ;JB=E @L0B&&4E>k^=oC;<jBb9-A5 >(ARWB>RM<J#Kj#"_X?por7Gb@D#hlmUmllT?E%3CJ:6-/$&[j &rc:1%_aM'DTZ;LE&qR6\sr5s2^1.q&hJn#D7?S4rHR,^p9hGbKr*Ga=!QbN;1_7V&ht[PsU1:o?2R9\-emDL,0PR4t?,bH8Btb62>E.iU,nrF G_U-IM!MjZC:5h4?tfT_GFe??DS07>U0RJ(r6&RtPR]GSi ` L!aebX\<#;-L<Z<"_-%tq^sN9]7koQ!c+qT]j* /8l2msVpt:3`q8n+JB9"f*:?YY`1EOO+sFVA:YWaZ.'67e#nMk!mQ;@Q^iV1Rg1nf:N<clPqrQg?/jVTFkQH^1lc/CI`2?5gL16R]b!hna0V"'*EQB#F0$9pX &jS_^E=8can_`DZrl)0J*okpR8j,n1fD="W]4e:?UT33oBSQjO"ga*kO]+dB2=N0#mBRY.%`GR@!?$k4D'6knbs$@4rHKRU2aI6<@O]D$rWEh Z?Z1[3j`g'jH@FR=5S3`.,ejFG!aoIm*?*FYnYs@j/VB_r\h:K)Q'0cRi?JOFtL$("ol[+0E*YMF1_G$E#9QCSP;@*:P8m.'r7O[+EB<MkS>9ZbAR3f\cs0aXj=/I(57(P27:)?i,%[9WC##2I@l/MNB Tq4g^@PX"f1R3`)c(G?AWG9]UUE\G9&s&05dOAJt"nmF7I0rTe\U"eUm;H&]Nb*J ;k2?fLYAetX7.FH;qhPO34e;dq?_6 4W\pQ[-b0]q]f@8rSkAhb,[0)N3t\CM$%I]T@J&1McJ*QQbK_%:tH`2AAGo/nAN_Jms5N<P>f2Y0Qs3k`<9p5Lm<R47O)^$EMj`B=WXIIe"U^qU[83`ACkidXHs?Ci=(Hj,5jl(NM$lXD7W-P\ /"I&J9AEo$!,;YndRW.Qp ]:YCk+RAL_&p4]Mc-?_k^6 Y^`gYe_3S4*q/pq>/C1[N#OGK?42e(7Zg>J%"jT<J7YQ)$f$5f)^!8-1P.cc1E,Jk*"?TQF4HV"i?%aEc/aFk"*.s]^?)]tbC)`iI]R%s")1\j<0Nd)%SanE`(p5QNlg)B#eZ$pSs(GYmJNU-R%Id8W0_.M9dWC!8JE8crR7*U]e&ZTfQs+O4]?p&il6)qA[?G=6iHd;DAm"K&9V!QEJ(/JZp+1G]lX *rla-K#Ji@B1UnaPs/#Fa19 _["Y0K>"LE]pJ&fMAA,Up+Jogd#?A+HI[8m75=C5/g.SpQC3bkVMlA-ne\9Z%^Mb:G_*P>s9*?l'NU_OTLIQ3lgp$`T-AhF?Q8W,]t;j?m^1"C0%L`]9l`WA%A?AEhEqagE]l*c6;AK7HBsZ!O ]!BSebksPB,p7T@Q>5CIsRh[:1Z-*(g,s\I8o;ZFbE[R)QO>&.1fXW;XUG#7,ibDMQh$QA#,cO\pa&G]c*"2!rZ//k<WVRCk)t,9Z1e((-;5r)Spe _"#Af?#9+!X#q0OF-%C;qZ1tB=0LioQ+&W6I.tJH^[]<jUOh(PK$ql=dNAt-Bl<-e=oYcQXi[l4sC4Q,lF`,@)*9&2EpD""Um hh$b9qFYURhlre\2&eYe)LH%F#1$j3d84^!ImdBA%/ccf/<#Y4&eGs\\d9PD%_9gdJ>0Z':#"mt&!)[(./8VSA\X8%teD@itpI6 8lQ/1^_]a cKtH6o%*C=AOC*G+Zh,7K,);9iVc?bm:VAHT?/_*U\mAfAm)oGOA2q!6!QJi4"`hsjR36p4K+LA'pt[J;1tEZTs!h\V>G<,pVpA0B0"D&ckk,QCRX]K2]*BU>8![4U:o7K#F3$H4mI"t?r=%3rj7_I._+CBYa]V_"% n%9cN\)+FH2^cl3mE\=`)OLeEKs0AFIFBlGtd> kT`s4Ql9A@m54)'DpL5J:Qc3:gK/`>1AfWHcA(+6e>P&]9'/<Kib&\h2Cmrh4sA<;&Uk!G'..MVl`DB.808ZiPk_Rab@HcYoJ&Y:or\gXkDl(9d)UA?0%R31"V`qX*?OH$N\KkYGrBU*b.2#lGYRK)g!B(-U3WeS#EM50 aI<XiG4*p6<ANTG4,d2U6'l@ScS-e_%Rq#Yt!T3% @4b0\pE"X37N<FO4ONP[C=$C8RO%%nR]Pcsj!AX>0U`(NpFd)A$MIFPM'ansaARG*TH$dHp@@j$&T+]A75M7)+gbBDI]ACmr"E8kDqA$JqXpEtH3Va?QOY&!A_=/=7p.&c<pLfKgIMNg3L.$i$Q9V68Z6Z&S(P/CDEr^Z)*7jUrk<LU+EVqNG"KJP ^A*bI:4PW<bkBF_dg:#4,I"E@9#Xbn7piL8-[T?GmW/9MSI6/^OZ7h>G5_K8Z?+H$rdV5p?3ATY+.ea+k[8-Q;]!V2\AAc5g24:,^MW?hc= 7tAeqM='\hjSp.?p:O2BF8$TkH>#=6:Ddd9,RDqm61SIQ(+_d4">YB9et:P[4s>6>ZYeL*E415.\=PJ;eWJ+kJ3':`s^H,<t<=gRp$DiS\A$"?*i:3\r/'^b@Aa9%"BY6p1:AMj(EO\0BjrmJg[U$637drO:=m\U/Q+_G \Y@nV]Dth+<[& d`[<5;,Omfo"D*]USf&R[q_bW#W2Gpp3/!AtbL8J5)Mo(7MjTB-<e,git^8m;oA$1/SkGI$#I8ss+1OFKglHp#"FS9Kt/cUq^r?7sA$9/jZZdT0lR*']D#@1=/&k-ASk\mm*bSL\"@PW+M@'gt5qs_@?HW/V%%D=T=bO9OR9aT#*_D4h;5fgGY6&t-sD^]sne/9d0j7+[YIgA4kDUBXM0\C0jC&:Mml'<6h%UA8"2^mCsPWWPn/=jqpX,HK,4Nnq7lHNUeg;bZ^q&"8CV):pf\\tRh;7qa;dh'46Mr7hSJ1.6d/`_9`CrBL;N]Q8QAWk@"\'R8EtF(W)$D:]:h*t)lcXBY#8"M/8'\g9ARNM sA2L-\8JAkAtAYji8Y^7SHNg@aJ]ZqlN'sBa(ANIilhM=sc+2YDZ[q`Ab`08Qbe9C)Fh6V&aD.PWs$hAK4!'I-k'Nc:jAEaEUsU:nPC9t08=Z(9MDJ:`1oG+>/7:iY1=Ek5UK^8<jN\t`-R,ZAb+q(L9f_Q^H2&k-;iB'\:'BV7'TkL9]Zl %)E5s(J\>CnXV[@^ dEACT^^;0^H\GUFTa@oRb-LEcKo33\Zl]0*`lWW4:"SbaDkO5)"+3X_,_!J5c*Qfb%X#Va^6oV_/V^[%IVlYI>r)@,*D%dY;U+B[`\L&J/XBhMg9CrTl7FrJBJ_$sE**8i2ae:E68aGQVX+Om^q\GM6q2F[m[[B6'h"lQ<H>.Xejf,5`H%[Rh Dhg59IPkQg[@UG6l->.YJ0PchkF.jU69ia*L]NBA^MLliPJO*UI&AZNDf%qX?5UXW_1:AOFkC$I$Q6/"RMZ?' K;#b[7IZA:;)'mn9oAc'1"'QM?#!IfT!tq+<\A-51sS^s97deem-.JT]q)7S`(N]6,,j#8G8TCC/M6'tjhLIs!N?7k`F5jsXQ/^YV<1l,#![c`mT6F',B4 ZRb:=m>!<Ff\LnA)'-&4sjK+;;JK:5.,Ip^,PT<?o#,AO'":.q!<kZ_mq0BbmgNr\6&C%P=n?A&EQ;MEH6E O5]A5H5n0M3,T.@Ll]rPZbq]1$mn7MAmLXT!4Rch^Le%G.3WU5dg>Fq;jfLX:;9%tQI]&NDA7U1a8k=)"AY5I-tPH#$tCOEC,->'se."W%R"\hAiVcnMr[[;,RP8#+g;.1TYIEK`&NRt^MoF7f+?>8`k 4Vckq,7.AJ*%U5nZ&1<8B6d 7U#aK^NeRQbBDWDhSD!?q ;AH0#[b/M$0Stjd?p[*rM-PR8I=rT,U(/E;g<I6:)F?N <hCd9BGX,6FA;?GZ Uq M^/2k%iW"FjJ4@\ja`g-2a)H3f`#ZSN) O?9Fccj(3TXS%O'+D1a+TAj_=cd+K6jH38)?cZ[Ftg?<Zn20RQ+*a=L 0PDJ_HZiDR8imqX>P/\@Q$ZO.ec:)bfK^189OANN'iYO=PEe!99Gek=2BAq\ctHAfK"A9B/Qr#"=YSY$N$;OE"Q*Hs<;N_OkJ>U:(BSS[NALge&RO5^]XqCJqGoq5MX)b,eBV,6i]Q)a.GcMpK#E8ZEALQj`VT"nA_VCjINfki8V1#KOMYVs@6*$nt". s^KA<ENce=1.Y,aC8!oMU`,It+ch!r7iNEiFC)pe3,0tVBWbD7q63]Q,TI,-K;\t!]g%:_i\o#_a`<.2Kl.e3+*\@;]AQ[jq,]d-Xdf\Wa[I9Hd\?g6*6m4aJZ: _UII lHOY3%+b&_I]6[%q1Z%daj&^Hcr1Y-mE<X1`& $R!NYjt.CdZXi=fra:MJpSRU;B`LA*\Gp=cA*]cGp^=JS/cUe2'b`-B/i"/cZlC^PmB^d4Df`ID7XmAN@M#%BWJ9[k3-^c+,n.PW.m )OnT*Z7WjTb'q7sJ4*/F!qA7A%:([<nWsR&%4_tFJ<ikBJ%&')Qnb`I/TMD%*+M;eB(`!N?<]6X>(4B-A%>H]`[Z732#CRNFEZX0*XmWcr`V$/#DNc(a. N 9NY&-i!D&]ET:/pB1<o,#!UY+<9jFkq'-Ma"JR]L!HY["<Z8#W*ot*WQ XW`t8''`$9VT>AFsBQZ<s67ITFhYE`m2H1V_V5Pf:IM5o;=8Zf=U,:r:`tU4p'MA?QRnZM"nPj,24).Pf'Y1;3jicjP#9ehm!MiGGbHVajc1A[Y<i8=/+8?WVJ#l/KG:7H*PoXN/BI=S:!U?6_ob,A$tmQ=6to_GX@?7P'JdKBB&CO9V(Bq4<ZL/'d_J+"#CW'b@>0>.U!7f4pAn_rgO8VDWY7ThT)H&3C5:T%@AqIK50Bn2:f' oG]8^$Q7VQ^N=TQPrEm)^IIbDB\oA;AXk&F<Ic7^kj(UaT0E5NX_A!iEYb1'?[TJ=Z`9^!+=Kb)TSIZ`fab>;*rPl=CM6-5fB(ZJ>#l[+(=0[HXjC='iaOHfO"^BFjN7YB'o[,p:Ei%HM7&kZp9"403BHU#?GPN m+r\2j`,T*XL-*d<n/5gnN0).DnQo#ceG,s,6[J@R\1:!d?$=TYKjW;j`Sf0 BX(D\!F e:$U09;k['6d=R HCZ5s8)JHc!3SDSUc5ABSBO6QRQ#:enFr2*jXoc[Zn=H"%Aa,M1+LE"S:4TL(5EV==C_j$pj$`+b6i2+sX12'-qo&K]!^.^US"Y R[t#3r8Wm0g^WndCcle.:6e-2t4=jZ-eKS&CKsU?]@a5U/9W> LabS7 Ke. AtPe+9h5A:rBbLDU&MYk,Qg.V;l30V@jM(ZsZ1.Ic2A[oYE/Hl`8'1s.AOC$* 0q(^1At6LA.7Pb1*'ElHDN"CZknM&pK@+MG;2r8SCWF3g'YRb"!CcY!+$rc]Fs3W,jO'dFE_7Bs;W2`SK&qLYo=?N<A%<VD!nAo[Hj?bAf_A*Af*PpIfE4Qo*9RH)RKTI-gdD6/Rl:G&gGG.\t"DeGGm`.7oJ?#?3>8q8<`CE$>p0h0pk&E8!17`N7?XmSEZ4jA[5]&99$PaNUH(-biCJc.IGrEP*0"Y;J%/Vm*A`mmT2KN)iS%BG 64Qk?@P/a-Oa6f5@0W4*I>"eM`q>X)_-L[\mmm9Zqbd+#rYi&%@\doT:s^nMTa5]].d?< _,r"D(E5HYdk4GdYYbN]h%QZDi7]oc+l&b`Ld>o;]40]V"V.FtPF`(E`nE.]c)=NfAN0<&+cRhi?>[e1/i9m4=RM&<;GW:VYO,$8gb.M;4>_7<+DM+.9/C_[F`DC8iQ<qL#7+sVV[kt$mTKXCNYK5pb'LL)n?r09Ch".]j:A^"=sFOcNA*;d<`K<j,CQpXHLqTUS+?SC(A (CHbJdIl71 -L2)JSJ]8)`*)jZD2apUJAgS@CqF10K=A"d'k^=BYU_rR8DR_H+Q8R`8:I6AD &F@V$ZZMY'KSldU4F[%lL7BagH 1`\,A:BnAMsJq:,Xb9I&Ls #GR":fPSG6)gmj@BU&amZh6Z\q'(]aPDq>@p;:ji-n94iBF-D8o'pO%9%ANb>4($nEgT@k2bGKXUNp=V"Y!ZKfPr3BjT&cOLLA!/Ne`o^+W02Hl3J]_9q)AEqE)MdYf;1tQoA#N`jb"*A2FiY!-E#Y(OArJI+8?#$?Jre6gmP=R#bc>m"/[U0N+l# k.5IN%FrnJ`qIerjU(:D/\ZF5l4`3qYppHj?q9A9M rVrM5M!ng9>Z .$^2Fs Y:tr/AgR_]^6^FRi+8#kss[PBAcW#KGe@m8?PVRq1A#nkFNiT`_QfJtM'M-sBDdDS*D9b57SBX/e4hR+b45<5<+X6i22k3LP`.X1:gOVH>#m<k5'Y2g0010lM%"Cb=]CV70mEA@qCE'ImY:.$JEn=pn`m@CsI8K<KVp 80GVqkLeCNeBE[>jAcq-jU&f$30$II3Jpl76qKf42O7t,s_%NRVQhmQ2Zfh/?bX!S+f6:A2O1OLM4-o+KJrA1d>2B*\F<Jgh24C4*b8P&)[aIZWCo5,%<W)T>@o2g25^LYfP>r,!gB.DbCs>dfAn?p:LZ2V2o+&$XaGhB&MBZhZUH)oXgD6:pn*(0j6K=rH;6??\Qn7Qd-XmqlA.$YE]`54cOA3(["9-*\#t&jd,6eaDA6"D,\2D8"mCM9$S*!YB8A! \<1P9MVXgVjp$V*ELGEY*>2%EXTrDO]^.9m:mmh^nV#,o5)$2.!["@N5PF`:(ljL[^ES^"1V5g,*%\UfYJAlssgLlT-+b%kqJ hifHU<e(8nVIaH1Je4MZh,Ie5lhm7Q=3PcX`q3395hmU;X<<f5An^TseI[C4bZ@g(!a!dcBl<d!+,-2[i*Obo4Xk2b_]sg\">KKTc1`hB&3@Xf/Sj;((5HM%j hd-i>k\4(d\@8t1gY!Q2SF>t*O&Z[?QYdo<mNp.om6&rT>I_K%NG3"-dLTco&-,A\LY9s8SX(K_S86Q[I E0*;!HU-)Nr* d1Dhll_G_O[c6^"3U_6^`O#]8.6lF[1AZ=8&lF-TSp9N^9Cm'rR_dfblH%KZlFl!Q1ZM]`oBi*YA>"dJSO2AU[5/R+`-QI+cl(08btkfVY^$)TL'7W`#,[*Xg%.=sgDW:D-$!97NarD.k"Ya@XWOA:Bjb<B%6I4p7cb6q(*D]0+\Fk%g-2Jfif1pkcs(!ahc.+EQE_e"?=H<`[Tk<ts^=K4bX;5lMB.D%jIGc6AHBc\gUP#:f!89g-%ato` h>TT;Ne>bo=?cSkQ/ n^lSUMn6k^+;@]n`0&"V9tqlOi>9ZCjNr#bof6(12\^@fEqP?F3U!W;6D%WUd[>.SQN@,*j:g;g.hL==7YMI4$[g\8 cW<.:8gQgI$n$=+kT F 0`"e+-mp9Nk52!"srFN-hh9ft2 =[q7YDdknBcb(_??0o] K\+35LFQ+SKUl*f^8G`b1 R4NKb\4Rfj4HN8V7>"Fp-9t`<R*H-*O^2QTEh6ScZ#o<!/D`C>B AnS(7Y/40ohoYI`+!Q[2(s5aSOOQ;0gA5-M_SEF=0O/4FE\!C")m:SC"]@^6=%6,BPGNM2mc'Qf\8<=.sKAM)Cqp="[(7`U(QL*+JjMnVo-d-J"'0,gWsff6[3/<;=j@^Sp? 47p3P<&HU;2G0;G[QhJV.(m8Bi!DA&GXQdZ4>kr9$Q?+%4ho=WMFE&B4Q5=AT6Yr9%?[4]&6<elV0,,p<?H]f5MQ+gkTIDhq$^5PnMgb>[GMo.1o(gj#>W>]m6g:`_DC`B3!kD\-/FO_5/iI+5Ls[p2A_b,8g_aXt^g7ST!"U\<kJ1CS.c*XUDphPBonh4>a&AfN=UF CG^X7I^5/VL&T7pD]A:E0PQg;0R\Hg m&jW:= ;tQ.A6=F=<D-A\V-6Q$\17LMJ6mi<Zb_3btq%QOR>%:02SI"9 ^EZg11\e0=2eF^/ZSZ#h&bje9%.H4q@'p4*YrB4+ .ZbA-CdN\30^(JNk6cKJ\Y"EKH+STS;Z:UVSA1mtd M<Dk@:T<%flQ.\I:2He=A[p'I"?tSSO9.*ded%I]>Xd>*hfa'(A]?p3'?ZNC4p82 fn*eZLC8Kp:)0@mIj2)";9SeqtBB^+42=Nd3Gr^Vns3<-"+WF%7$ge94WS"+%[;^#8Ug%R&spIBgUX/HJ(^K@BJTeFYGI:jdSNX1Qo&a.OgOt70s])D ?S`\<#-[S[W"aQkA0m,FaN+4:_%F +m)a%BHkXB@Y61/0 YsS2>.NlnYZm3&n:rQEVZ'h<4^/M[@$qaXM#X(O7j/_iekr,*7M#><$o:f-3D:mUO2gTK82A5,a.IP&ScI+tIdM$)E%T]WnEooPL&$JqoPY fb^D^&.?\.c:_tm0AE+MB_B.'pnltbInSb[.o8!2)I(XA3_+a?#DA4o[k7]2%,B]I['0eoZ]t,,sXd?D+AGN@-9c/2Q9'p(e:,hh=5JZjZMg6\_.n$#mr9f[-A^kY%@s(@Z [8m24'C!,q)=9*Wk$,,,W:#\?HmrlG];sRATTY!29P`MR3B0Di&b+_h_,jrA0:E54>js>bs%8).Al9_(?6Zn)JLa]S9JIApaomLeo0$sDEe0V0,WVe(WR>Gb5#^J$n+7_c=V$:l([4G*eX=2b3pJ<*j.l<gA2kc.Ai-#A8?.A'\cSZ#&WbG+-l\qPg8m#@CT(dLiHD?P?ONMt8G/P W.V'J:$J/B-4MOL<_eq]r9(/05Pbrmg*,X[KX!\U$600]RTq0Lc8!"f*h7C?[l_q)b2>='>A5OhP\;D1nY%91q)!>*^J0G&1&k#*3Spm^]3r.rHZEki),`@4CI,2>mJ"QXYP&k^nI4K8:G/2Lc!36TC$%:0 AAgP_D']j.)sQ =80_XNqYt?E<K:e`]L6im%"8O6,*RkW?F`U?1(9?'smBAW=5mE( &AA5*V+>#S59#CR`B]rG';Q#tj^LJi'SQ&od9WnN]CrNf&h?n1lMD[nHA>3FV%=J<e8,IY1SfB59^%qcqe`]#@>rh\kj'$&$"YrQ0k$2I:8#.!07cL1#Y8a)K[r:eAXSOJK/aW8WAd8Xd>hWLfrDk_BPN XW4<D/F]R5:Bo2A[X<$(Bf>4E]h:#ai*4)k%*638_nj^;grgpV&H%"4Wti8lG"J@>J+M)#hdtZ0E7<SZ6BWe.^G7Q#mm&l/l2Xm^6F2I2C#<i!pg @Jt+XbXj*l%_h<sT]fm-RTM.Q!%(pI`[5ZV%bbR))5"h!"eMJKRsjYb=T8Al^1ZXioWg]H4_b"-!ttnZWtS@(\%TB:1->^?7`Pac<lPq9!%&5d=LNtAi+qAVt 5?n!g0GgmAtS7Z4Id:g1 AG3("<s8R&i1e_gge1HNEl<_qM_LZNA4L8t2ssC?''$i"QMgQk?Fa><D!0+<).r7Gfm\A%>X48dPYEk<#TPH)$_Q#,d8qi`IA$!ZmYB/rXIS];mFSI6VUAr`om't&oa2g`th1F]?4\G,o%>t3b:4UgqbtAqHbS$#cD8I8k([]Me3Gm@)Fq\H"$V(s1h?>_^Vc;a9]kg+5\)^+MjVj07]=JY6mlk9qZ_:g+Jre%+T fQ.cJ9TK%YG,71(:kV74(Yir%i$,`g#?sM2Q1a<]VZ07FX/A=qb[?1KH!\nSq:kLTXVBmW?WY"c])sTX<\6rGL3FiRU3.sB<60=/,h's3N=>qs5Jit;O?nEam,7757l=6LA-.mGbk3:q]=#oC8S_$c>mGLEio1K^'/h1.=9pBB!9a(-&VgPglM A8c14j1O/'8M\M3UoBUccC8roZbLOep$ND=bjQ(2%.1C"M$L?m$3W\n6K4&7S!g !4,`pEJ4F5jAY$E),dU&jUiiC4><&!rs<)#?JoWcc6IY0qtb9%NF\/p89FWK>WH.Jq&HTdgddl3*T%N]0p !;"2GWLf[O9KWhs(h@Ac[oj5t@$P2M.:A>PfFi;3*Pq?%MX0Lt)hL<j&a/9A3(!>h5 N?D!si%hn_Btp2Qagn>T\hU4gbMiqO1.'gaJ"ioTbn_T+M%hgGPmU$<0Q*4rnt3bqR3)d3kTnN0m\;a^W<#@MtdscIR'HZjl)01*Zae(Viob5FC?O[#UKK^Z']$CjtT8B[O/<Y%6KG-/g6QBZGBd`;;.S;b7s#>p)h4Jm`k=2c*B=R$6EX*8I*[jgd,>)sp:AT\fAZL?G7!fBimJ6+:O(j/4o+CX A")c4B:8=Qk1V-WJ.kDOYK8th[#Rmk&=f4c_f-R#K*?U9%,pNKDeL+SHmbcL(6]Ti<S4;i5NKcJ2&lm$C%?QgT141 iPob=k&RYraoEj [n_gdRDGnc^qW2srXg"s")HY AAD_97N+XYql<$@6]1<?!N*Ys=;?03m</hA@`d?(3[W4>?Ksb@$='?!RMK;IAHH_k R`lWbJP\B;XAH%gWptjHrN['tc6h!$b@ l,?-JU3M\WNQ/M\Z.k"c3m#R@]gP ,WAa/Aj=JCg2egdf cA`_K1nrn40JM+[OFk:<LFV:_r#'XU[aAN#P)S!cLibepIU3[k)sTL8#]r?Y0WgmY+O=nhDZSf)7:s3[TETO(?@ARn&_5^dY$1iBAbW"n;o==]BGCEiRq>2.3J5A<71USti8Hg*%TtdXPj<i6]JVUhsUA,=%PKQ?8tIisP&FWqF^%ig7'i1bM'iI=i!7a*hgnC1tjptFh=A<Z2<C,H-*I*9@% T:@8V8 ph:\1)corNLn'*XG6MZ <U(d/En>4"RH9m<inJGY?t;L:(-J9$iP=GRX%+h]m cdce[HRQ6q3,`nLG(!@RC6>]K?kR<p<ZY-GoH_i_>cZtGHA8ID/I8fRBQj]kB&\mU25<"DTp#G.1N?54i4bX;(kH17'r[7]VUrNnnN<W;*53T\T.qt99Om%KWT1qd*I`b[-f\7F!-[jntYYAMsntXA=>! H$&;>I#oD*&2EKF5.44<GfW@qjT]GoVC>;Y1j0[08Mp[n$+/eg;Xs\sfm\YU+.XcP>?sGfKd3QqC\JRS]ndgoko$'JYSq_/QDfAQK?9fT2BW83L*1E8Hf%"@(]Q Q)2=g47THjh*p(_#o29^/g7`/'==eRQ0[Af0`?&^D]DM\!?:+J X2bG>AiJL#kjd0_1"IB%)P'5o2Vb!s`6ASOobS=GadjR1q:MJAAdtIV:lL8eXF4K;^\iS;f>5fF!TD.tGSJo9qp,]!)YsSn3VsiUtqRq!01`QG he7)E-sBRXgM67Y%rACGSM1EXn\R7$7I__*kr0A8"3F?17i%4?@(lQNCm)acGB;G3I+i3rO)+2"T`J>A8I_B=*Q2:Qk-mdJL^3]8Fj0t0COl^Ln )YtroDj?J_cJ*%".F=Wh$=tO-9p#="/Hr3n<`b)03;iOXGGdDNAEFA/s40<kZt[/dN*7XTj9\m'9>;X@9jrk4=Y>7^V4s4e/]-2%cL`/%H.#C/66h0aNi8W+6BPLi![ n_OcGFibhZ1c=sO^BRO8JrpE8n\15]l3;9Ra?;2X;c=dTZAkjJ`sc@SIAkoBIl$QaJS&,o"B#)(ec*[ehJ&?ksoSn0RGC#ad\@WCe,&pDS0fmJ`KE.iod_8cQYgO6p'-G4?"\-5`_bjs2V)t)3-Cf:SqBh+r_Sl[8FJ+sl:NIOL*E)/P0 9<M_UdfQUpo7=iDoj"?_#e3R^J?)%WMX:pUPZ(IG=UI7g^9AM6<ZA&c1'\k3=P>\H)Z<$c+2fk,<)$+=5UK 3_>]QWK,b3X_k9EI2Zn1.OAJ_+Kjc:.>iLGEUFV#U;DX";n!SG16@3fcP?[6JMlPs"-j0J/:i+1m":VsTss7E-M\Q(VR!;R3#SHSZl%JM Y[@,-(n /;"h]WIIPk+ UMD1P]gobmSKsdM.J4&#P3M9:ErT8%A/A+><`oO<"0=LK;c2Md""n]o_TbOoESkPN>Fr1PdB1j\?5*.V,)RAJWW`@csFaSWE>cT^PO3EL(=K%]=3ld;$fISk^0@4<t-A#,1*/j:V3q ^7j<Z-$)7+"ne#.)Hln2gn3O/rl6K@h[;AXAMM$jTtaT5YYVGCe7_9.Q*mhaKJ-+jNQ<=jeMU0i:a=UlM4q'__]H.PF)rVA"6JPP`!s$b-X5%R"1A&g;)ZAf7Hel]h@X ?JAT??H\XVA!kk;&Bs5c6QB3^BXo3gY'oNkOnOD3St2EZ0gp]!`.%J7CfJH7+pm0$Ns Ocs76g7?9#AnUQZSbR2ZV'+-m*qHS,:I[+?(%_1IRVW9&K_0W /9="$S:dYP_WoOK%tA8r`3hAFlT \:NpC(6]Je*T1QM\V0-J"6q.1AKrJGH-S<pqA00hDVj_\jVO9d$N(.rUsdN'<h]%PqmND(e;+P>0)o,P"W__$Z&Mhg6=.RDj?hB`''9""+8jeI5,O:s4.[ODpEbr7cL8YA#*0l[0orYp?I]ld!98YXkL)XQTDp:?Q"b<(gY-L*I#f,]4l_PO$&o29Jh3)5Bo^FLs`mbH[F@kNNAnIR:aR.E7 !2U9\1RiE+<qBh1bfpZgMXZ,:Y,0,?7jIq"69sP==ksNkrPK2A?)os_K@_ A^8`SYmX,aDr89h2KIrsi?SK0A++,3:=*lo/V]7*%$D^r3Cj>ml!J?ZTWK88Y=gAoqE$[iG^2&#SPp!+_)iRrjUBm&`!e@]b.d^iP2eiVIQgQSWJa]2Ik^mQMPJDO?q?7"ONnK*4$n*jG"/pK*bUBHWoM#\YQ1D1a[t3_s8N"$[!)'ifH Z.DAaiX7e_Ub`\l2a!Jnk0<D@*g/\!,b)s=S:!2odJkf!B_c8(V"]b:E+>'!Tl]1OpfsO]jdcX?PbXMN4#_DE=,V<]kWX\ba6#V:GRH,*>BYKS!0ome=EtQ^Q^#[kW]&%e5bkeSY:p&'=J+EW=iRQl%3# Ar36ir:$M0tNsm3O;i0LSj,@JcK@KQ5F$#?0;p N817&,m^s7aMrdbsCph_d\pEqLjrJ$\73G`Z_janham:U)L\f1O;^-= rS0pMF57Y-fXA$,-rp01<PLIpiQ;h``1rlTF.)t#Cf8*:Nb<#kTYfM..W&r<`pa>>)B?%3H`VmpcV^>TXRi9]mbnb5Z7mR=H_CbK[:aAbaNpJ2n\M40n>nOe' XG/Wk!-'+MU"d-:?kQYh0it<#n):+ Q+km?m1kCs,^Ui2\WlA*#ODMPfKHEG]("XQR)?Ohc4YPr?t?_>aP>T<hZpT,ha0`KB LK2eefW.C?i1_ek\NdA`(RpAM+Aji(3"aa\)9ttWk4_;(_OB/P_clEc:rcX99REgNR((+!q_WmIgV#__k<\1DLo3R+L>Fgo)c>`Q;jokC1t=Qq%#&=\6kp/sA8+"MrD>apNL%`Y@; ZLsPb4_"FkgoQ8*kNfU(l[8$= "er0G1Fd'B:AZfAlo$@$O\Gmnjm$P$=f.Y5Cep(jc1\:5@?9pnn9MmqSoN&WQ.L!5<c7SH30Ar)'jj;EAAZHOcNpF3IPk7a>FsR 3Wa#E!<LBBoml'A5LJq6MI0 N]E<8[LN>7_fD+mq?OK%#=JUaH0)BE&;]Bs780&ptA YMLt_ptb\8f)/AM of6QC?#hmUEem4MR"IE]0:CT]s5o[OZ$soO!:7I+!LAeCGH&?00pMA/Et)ip8&[%@Pa&^?a'F,*DEe:=i9)UlD] OH@+55;U_%VAPCQkVGk5;7' +4^W.=OP2SEB@?(.Bk)ii:+&^LB9cKgj8Btg8b@=B5K5idP;n%C;N)*:^'H_9aHLmU":r&d Ff_OWB5/g;M4L@X:D/2JNE0dAj"Ceg-WQ]*7I:D?BW+#?_FoSUs*9hCUWe`lK9P^fP KGGI%)"sNAQG-Xr:op<pp%(p[geW0Yot\+7e`AS3#]<I0kF=WD*H:DRP4C8 C*T7[/O'T4+#6f*=7AHC&@?RG;[]_i4)4rt&W?Gq[F>bQ7IO3^#GY\Xs@+:0qKBI2+isSbG+W7O8dm%7hbllcY sA(d]Q:io--%h*4Ge$cAgr`6bh0Z8siL`>Kb=BO_*&ld;k%B+5d@AlW_DBI" <':R#<K?^rEA6_mOk]gZ>Qci-7Mis#?=D#9S5^jn]EHXgp*H_HALM4!&L)N.IKDrXkQbNTYV)LaJot?O6htE%^OE+mIrGUKKGXL:R7Ji:g\UT(*dMpVf\:a0co7H2"6qUnb0o=.B3rI:@pKXMA+_UHaMp^>*>Rmt9m]La!GGAP%0,"%MEF\JXr<%n^OH!c_BdM?NOq[DKqdBL_WC'$D`\qa["]D'c_[AB9Q\AO]c4ad7P-_U"paLAQ#L"_"\-U5b4HnsjOsV8ARl4fi&q=q.(JO:iVZ!8sle$0D&_Y'dG/oO>\R>t4-?kUmH2- =N(;="ShBU9hGEVK P'b/T4-9:`'`cT2'_jTU(,)`p"=@)8"qg4C2hh"A*'3nJJ0]V*89-4t[SPOrkbN?KEJ&<mIhUm9BT1$5#UNnGV#&VjL\;c/%heI6 ASV@*#"f*mWfN.PAT^m$fIYl>#4k3pUV=irI&8gAt]`4iM`r>A`3LiIA'E`'V<^!3mRn$sA*Ci.ah<V0&jLRp6DB0/_?A!QEGs`pkO']5@>to%Nd8rn<kG?\L?Yd&n3k0?_@gLKE@=2`<YIs>*gast/>8)GANspk69PoA5G&>;:9!,SO"0OMa8r`Vbl9B+M>!>1!f"+:9-ctYqdg1fW0d(_#/te4N/b%*DZ%b1OU9sr)G9Z9eGT*aMKiTGY65&8*N35siCZ=:W1GRK<Hpp'G<6!WU)9p`_d&Qf^q,-&8@dBhtI[Y].2eEeVCtijHCiB$Fh"pZK06*>7HmAXCUF*_`S4g 6Y43V>rf:rAEV<0[/,UZ\q5?E20A_OZ25!9T!@5 lm4S"[NjK lC:[(P?V/if]#;Ie^k7gdO$mTDH.m4[5>YIi$hgA#*!]k\rO1U5"J`$N1''Y(Kjdj>Za8.12gsSMk)XY99k8_f1GYUFfn!--Z'0I$hLUKQA_t@W@Un%C;NrqX;@%M"DZ(ZV3UB'B<#Y@,$.OZaKAsmQb]^Qep+OCC:Tj-<q<N\;ACo2Y9P9 /BLs>.W?P`Naoo\W&9T2IL$BH\*W_%Oo:G=Jlr:fiW+S^PhWmSog;i&lO0A0<M=D&D3>9jhl69Fb_,Ghn5TP^4Uh$i"%;Fa<D %`[A]b&8JM9hAU)-mN=f)=qbKYi*h";s6D\]&<a7#i>)P;>TPj;W#r\%=:H\q`*A)/EZ=eZ Y?'E75_`*pL6)H6#ed&3\r:Ug1t*E eT-_$<e!%E\_ oD^:C#kCm>IOsA8!#$b5m$(O$bO$(6kWG@\Y5jl4R-98lt\Y\[tA)IJ a`ALi%)Q*%j,!tWYi3[oSc+HO6oZ>;a>BH&[@=kh(g)?1%s36gf2;7DcC\9)n/([6BQIOB8UFV;K2Ad%8E+6MgNeCff4G3?cFN?-_joN,$<=X+m%YsA;OU8%?/.Ub$fFtQ:(AN9m70K2XEL%[XA-L0Q)>4(OIWAp]qO[cqL>N9&X&qk]]&)?r&UGZPQfj4["I,1Z#QPq\p%_J 2b'nn@p[<1M9K@Tc!<3D,ESNOYoK<+gV\<(ADKc#Z+:MJs8hj_=ae/2m5S5.9<#$hbTNo"^G6=]e&2J3F]$=hS;\Q"]Akt4hj+MlcfdCWL64MR@-^oj"HY=,FeRtbD\[S0P:fo 0R3O t<UkS;dkUN:h8+c`n^NmGXq/ NY@f>"*#k#&aq.5bbOf8Lfq\f^=[6AN)&oXctr\mNAJ.dt\F7a>GV pnj2+.Br\&:0:_S+Xr7IQ`bU?Vf[:<Qrqrp9F4j`^iI7.jllR-'+s7t!Qa,?!1V.&L 4'0<CA`WPVgeW.H9Kj+VrTPZ*? OLFdaE oGn@d;T]DN0cjaX^FiP8I\/OhF>asH.!W6`<_(?BUIGe014HDKZnIDsY/K6`hq1jA["gY^DH02R7#cXmWYh!s^_ <TVYPn;AA7?XVq[mA.tEb(5P+VY?]G<W0T]*C,mNL<]Z@FLmTn`p,mjh8l9">A?@E44Z.cEr*b;cgY4.FRT%28's"b/@6,7-c1.kHnb2$ZjHd'F#E-ir?g/Zf\_#AdeSl#0YD4C##4Gj>$D#dbF9;n/Q)a&cNlM;]&=Yk6k(DQk(=4@'RNh+=*e+kj1AcpC%N8=r2;G+<So 63NJON+Q*aX-+)PL!0%k(:j@.5n(/)2o][O]45X8-Ai_NQISKY$(&r!3:5MM6e"8tED@6FADKQP+JB!oFsAZ@D"39`glmmmR:UW@'8"[QH/g4tr'Uep[+Hg$l*,8,ZLn)s#I(3WPLa.1j(3\_DKW!\BIj#+1N[GAk'KZl0f#(cc=)?9Xc^FG*h[516XRZ3-bpie-0>$=9,4J$0XL!6D0)'Ob"dgmP[20BtQp>aB7D+-B\%4P%\_9Uc:bimEB4od&b!@7k@V\UXltEi<G&O0s!,(6/cb#+#:4et>s6.R,&'; U(]P>&XCp-;XQ\-cU5]9&n)qKZpfC0jEA^++9MA@%LEqS/7Es`Jco=Kf@,Xi.4_p-j+=5eqP\C#qp'rKebkWK6ij!b?V=4-dr#dgXF`9qYWA.nsn)Cf1/0Ag;VC<m6E*i )_)+X:Er\=dg$;L8m +WECs%3=O[+hH'h"Q>>e>E%m27a1"Q.#ng['MR+o;03mp_%#9QlAGKak/A/"Cf+5,Ic)+!*IA,h&jG9(A8"[YMVMCO6m)? V/hN]_c1BkFTF3Sso7pGQ19;m>iCqXEr8:Z@6!eiepA.8K^h2_?Q5@r_8H.5)*d_gH;41/__#gnT8%KE+dqqV cpKtJIF C9^Maq*,]P=Ct/Z-c&E^;M%rlA1"t8Ji42gR\c*EoR)J9.6?e3]_^G+K$:)[6!<Vro&s^H:n`j262HXj"Jp__)=)D N'.jE\A12ae1Z< #EZB41U-%Jg7t3,*h#"=iRo@sC^je%&h8g$BdL'K1L3 5D9.Og5h=&#:a&2q$OSNY>Rn>9\;O7(`8)jBj[+4>AH*Ei@fUD^A;gbla\d7MaQtH#Q"`qF:"04oiKV=^Q?PEI%9eq$7"-2pMH3<\X5L5LfhiojbbZWd?#7m4VESC&=K=5,6Zje@e(58Tl?mmh;Y)T%EPk1r/`H4j%.\p0s%X!Lp2m:L$7KO:B4F/qi0[Wp!O_lO$^*k-lY@QfIDV)sWY*5aD.&ctt)=l-s-l4KTHGR]<qb!T=.8%IBdBT85(krsg/BffhOHDkCM9[GBo6]0q(:eO@&<a$gVYX.HFn\o&ZS>FM?g?P3s"o2[lh[/Y_!K3gIUTiKfQ5^!pX`md#$hL*/S3=hVT/B(P^%8&l7l"'hprAqWCl]c[O=.2#8oJc#A4]F:%\_0K,>1MUd4=;I9k2/Dg.Fo3AJ\q"JZs%XdL7UXGPNmSO![L7acm_XG3cLP886lr]p0N]dI99IKZDEHU9:oMAj&Q/NH+3,28S`g<>RDo\CtZsGaF.m&d,H>*aA`l/.q6d3T3[r(Zi_EoVf?q"UfN\;S7n,Fm4es"OkbE3X71]T tMn(/iQEP>EBM'M@8pa2f`>@VODBO&66T>.3F;^2P?7B%!V%R3#1n$>a,PC5.s'me%T$igaenhZ/';-o&YA+7g]'?9R0 HP)q`g&.N"$%3a0d^B01<O23R"iY91[X*?@7V4`B4_kMCSqjHLDfK#hgMrkVqMh=fWP"" ak5729trq-Pr+/H :ohn_13aM'd52_=$U&()eda3^^8[e-rD[+]^t%<Ge6IX/AD^<;C%@]!ZHo7L+@qd6=+:-fK<:?8cS>.p*oAV*A#_9D2iY.Y:n#kT7<Pp8rWFgP1Ib@]V:BbW:!PT$q$I0a+g&R0UT9D_J_?/A;_0!9Uo,Tca04-c26e1.>N?XMp%6(HC@??ABt^H$%ABY(nZ!<"'Y#!$qC9>mr9/3fdl,8rl[ rD_fBHJ8?oKsd\3hbU7*dB7g:RHIg5lO(/Q?m1&Pjh#B_^i?ZC!3+W6O/PE$ZKKbnVHed4A9aePnRZ4_X02CShsUb`4W7CK4iB0,!2iE2(1 gHgQ(JAAn25(1T/g8d*I+*lY5YG?:.0j[5iUAjmA5>\U"&Y%>A47N8,M\)4B(iobO%XGHK^Sp$:o,BtCTsOp?%cnFK4Z'D-f'4&g;5r>GB1)HApnC?DOCYj*eF]N]1Grg[3+LTKZEj*3S,d]MUsrX+U>EEDJ"%K8lPT\hWM\VDa# 2m&VY&SMB)L2Ot0>2P)Mt-j,UYn"ei>WE%g30n*I@@Y@L.P/'&t">8Cp1',b4*h0pXQ-TQ[_!m>P&>H,<b30ASG88QGojiiZ>Z8V;-[OMTS.:O\+0<L"c)$$Rclt,Q@TWq,AmN=j1rsRmif]G^660B.dm$k$:0EPQnYD"Ag+7M4NfiS[W5F=qPM?It5sChA%g$j$@Ye]CIGBUg?qI+Fa/B(j>ipF%P3m]#k?%IJADme'c<9Li(0rHN76C&pg1kA7!G-,.+83dAE*MN1e57FCNkkN0Y"J69C\k_88)+NC`Al_o[G?XQ1VAiMS!0.]*39J&P^+:D"4VUN)A\Fg-0TpC6j))C2\>;/gP%;C_%NTk^Q^2EJ7Pod8Ia/758r)aF!V'i%Kb)MGGg-Zd#<QFIKOVi0o!q7e6-$Sig<IB-dd8e,7qJ23/`H:@hi(*7X@NPi+N W[pqI`XKX:I-1k^[eC*SREh1'*:ZrZp^b*?6D!C;L#+-Y\A#Rl6ab8Pq?oP)&B25SKYJAtC4=)X2ETM[)J5E1*)+j,-fBKHAH!Ym0ZncnMOHt@<oQVZ!8Xb3J9ESs?4$8B?:Ad*>.HHc6^h/^2nE #<P[*md@R,5:>WQDEKkJmP/7AE'pT?RMRN(>?jId//^M8\D5A-rDDNqn9m=Ok^%CSZ1V^6SZ<9=Wa?B_Q9>lJ#isoZ5-aS-BOdILmhWf*cih9fqn4n)/9V-le Uo-'=@Y%>p1qcQPPM63TP^nQ iZpQM;6kfIl&o[6_MWA$I3*V&nS.tt',OLKtnrCS7Lf.'p Gb1W3RJ[V]7^e8UV_T)_d\/d f+`a6t&dTjV,AC*c1E\[f(FM?B4[3IAWIH]=K;n&rK5_Ts7.T->+;2QEL^^Of`[mY<dVYA"?KmJtjm[YU[+M'NP9UcL=*P7d8km\Sjod4A>3\Gm<Z&F3<+Qi7$`0DaIVafL3a^8gbs+m]-FBseiZZlApU-Qcaj1DkEm&:/d(cLo/+H6nVcH=RQS8"C>o)kRD?`hFU:XkOL."K:a)<-qK+e3^`32^7^Ah>-V.?]07A&m['DG7Ssl<ApJo?6cmc^^!X'=+c(VH.R'XnNQD7/(/ZdkDcL=cqkX#Qh1]8##SEjcnY9LK@5=lYN91_SOSXA"T)/9B?eU8 PS8Fg`+#SpOLZ2SAR(]/IF'kM=4#0<HR7i54\@^\+JGSM/PO,dT:pe*+(C!%r^Vp._CSSd,R!2pVe^*t`@p[[Vk,cD=Io?rA>HD97<>@rPA^$fE;st ;UK1]8)<,qSAOS(jtr!sh&0MC0Bp8:dMq)7d<G;mJ&to"t"g;%)M'2dPe!)*2^mE-^AZK#Q&d!.R(LJW.^Q43d9e[O(^-G$oJAJL2%^4p>7tAO< &$=)]3r"#,XiA8T49/[C5?md_+Z9do<;Lb8s&4U5_PaJtN.,jVn^P$)<'q8QE.8V=r90QcNm@q%\kAIN!E^kCF*B0+'qMf'2>Ah(/^IkHc]fa"`JAS^$$fRX&o813E;hm'U-CS?LR54dTU82 %'^_M<d/Y3tgMl!NdS&&&Sp#?_6pU=I,/Uq8EYoCpF*;Z5N8S_d:Fomj9%E72fo@%X%S_2 1*M1q3*ClM2@3,OZE9$'(N[?tZ^7ClN`%]t-k$[f"#ZW/6DC$WF-&M6)^7[0?bi/!L Tgel;P APkH'R_snZ#YeQ=OD<X8?*+hoG1[,h4%T<'s/tF^Do-0++JA-0J'\0##="sbr]@(JLEHZ6n="m!kT!j4ebJrM3U=mVA.k;#$oD6s"E=Jc0ag19`+P@Set#o3<\BkoI@V+`+#^9NFs"i+Hp)r%U8@:%?9Zr;$kO*<l=%?,fE!8k3X#*aaod&4)O/_`l6.ec5`@O^&!%PD+-o%#'4NbD%rQOV$_;T?@\79rerL@q,V/s6M,AA</SNkg@T./[gb]GoD=Uj*/_1[U^B5d+PL$H,LC6O0Bjq7#ki<<Zjd3/I_pj2^h=<_Wq.)W[<m;i5"To[7!MJ7[Y?=2&;@`fCMM+^*T%dLUHqd1g+0;f>sNOMghCH'tQci%$WPfA,Tjkob\\,5=qAQ#&*#,h`.jDlqi&qXS#e%94D_Tfl&^R=:0he\FO!!ZLX!=d&,8oK64Ab*rT=9IQ.lHJ-gPb<D2lI27,OT(jY+<OG"C$!A=?1Ss*,,fp"=^#aT:BfY>\-K'njG7W$`moQnl'UsIlA7Y>h3[$.50@m\UFFAbKPekPsUg2?A0*@-cRT=mP7TDER0\1gj+WAQ`i\Ts3Z*c1?;jqQ"CQ?^L4=;./Wdf[`cEsFdr6=0QD a18&gs"AW7"nh$AH08?M:NkAGRYL=q_6".6[2Q14nKtMpP'C2I^8/OR!JfrU+'#q[*O3M4L986<pEkr $harIWNoA5\9-pb2@$]8<%7mMkkZ< &\rT3';I<R2 a]YsDieV,`GB#@tSkVA9CS\KAU?%p,\cTRk 9FOAahlL^XpBb$51CT]4'4sBbGt[`VBda5FPg`O!AP`H6:?aFhM2t=0J_'>/%E< Ao8'5X8 O[&@L._>$ZYe1PPY9-7C2# =YUqm+;/5p2_Ann]N-lL*l:tX6AjBiDc`e%!g4;SNaV)>99N!?(KPQ0Q:,]qL>;,.`EUo<&a$=PpGhXOm)t _&;8#HfSRMR? />clW,HkdXYVdjr`:9k=<[WZ7EJ^2l$\=`lM%+_bAn<q9]\>d[?9>jn_n8RL6kpI=kCj6Qg_!6$;,27AAe#bV>$3gXJXD`>G&VB$#H9A lhGF-[4.2?-+;VV02.1c%2Ki3;W[I2>qa0J4WM`K$;[X73<j&dWeZ&sY\bc0DL3h6Nn X9t<aC=Z:tH,A:S^$?cR!(+Hs*)W41qLZ[N$KHetJD<cHXYCZ#gY`1<UeW4(4(CBNKT?H//F.)p)<G"<5gt<br,fBk,XE`7:TQ-A%d65.c-kUq4YA!LN,FBic$fa:NPS',lg):<8EQ7T`X<JBrHp4F1'U5Al5F_[8;MMl:Z9;]`4c]e GaAi e9cMc<<Do__t3cPDb0A%Lee)*@"c[,I3;BP-Mbi\SN;5.MF4.cD>`flB,t;e6GRh)NXkqRt*Z>f$fN%_o&6T@0QjL+8R1O)m?!>YI^K3tWc95Y\;5S*9?Qj>]h._Zs^EQTJk;A?YA^Q,c81pA2Kb C<*dEQ@PRtlj\A,l>W>GBA^=D/<9jZLV8pB^Qe8S#BiklO0EQdM]Y8Pq1^M1;rmMHLUP\$ Xbodoa%^'9XkE;MmRtT;!W/e/;`^&')H.sXQBQ*d<Wc>%EKgop`o!(mi.EsCk0+lONOnlM+8?W't^k)L\==d=l[P5GYAqgPS7TX^C2B:p8\6B9sZQh?j7jrTk[q@!$o/G&n@5E>^7&<U8&c; ^3B;n?,+Ea?sfTB_iD8%Ers@>%A=-h_Fpm&`\/)3?GSTBWjA/6W9p3bf5<A(O% g5ctVrEbd?K:=G'EpI"Zb,-o0/A;?q+AqRN\&^Zn)Z,ti#\5t'D_;NSt,Gd.EnRj0%JIbAY%fMmA_I?B04#>Pm)Wj 2M>5K(<gqi0/Mc9kg=5!aMcd\GkTA^1n.DBj;0DiY>'Y.V"rYkNNDVr?!G;qES[Q7)&_te dYVBJL^LUrQl"25['"`GQ[[k2>I02O^@0sOtNq#Y1:T__V('?=WI_0&TOOBe8f\Qn42^n)?8-YH7DEUq;lLLZoUh@ih'Og:-A"WAK6S8,'/[5/B TlH,%,dO@; A61b85dp[a*F-70:9d`pih`]V:_XcH\P)t k67:f)85Yh6C,pXq>#aC61*5r(agq4K=(,2btc 3CVe:>tKp&mp_;<8KCoG-I1-MgYfDArQRN@1`ds50<AFW70S;lZ:Ger$V43 Brg(]>@g_b:M\<?`,^@n6_1>!?(4U7AHQ3'LU\=l?CG$-,VU\ii_oUnOGSY;f%[mFB]G+e&q/P*V]h!abF`R?;DLen/K;&#e/@V>qZ=cK0ja4KAZ&WlmdCDeV)BA[Z?=4SmqV&lC\%g/6kR!!H)'k<(Sl33W')p_5ko_<OmtFT]%eF=C;lUEJp4NW;BI& A=&cXfbcXW(@XtAbGH8< ;Pfnc&o25si^!jHl+`XO(pUGK>,=q&nS7J7F.U[Phh+4f I$C'6FNtAn[@-&p"Lp(!q(r1FJYc$Zg!9FE.e0JnY"blEYo;r:'Asf(P63)8]7@!o &"?dVC\$n8@^N4GVL K6!:'E(GH E8#okq*n7>,kD%arjH:jgt@p_&6+pTO7;*=01q] Zd@D\\DN@/G3-<[Zp]#">q40K#E@LH/I(3ZQb!NA4cO0B'@+D#@@9naEr1EGW>/4bBj.`lablik#;?\Rc+":=$?MoF5Acg(TDi^ s#)R'lTA>89e.bmM;jKbJk5A(RRJN*i(`d&)5]$VcQos1/#2phBoXB_&VID` _+$V.@8AA`k@Ank9)V36/O.3Q1ikgAl$TZQl5X 83(?dTPs?F!Mo;9L?AX`Jbm[s*2bb`G45<-NM$Uc/ 'rV0!gHW7Bdb`2."U?5`[Zp%Y29@F[Qn_s&nnqKI3o@UH9:hVoH?/+eF(jk')AGn%F1dp/PA 1pstn8fRi:^AL^9sF-!")holtVOrB3f2p6^LEcG?!gmdh9tP<tt5ARprEeQmgB481HkU7i sJ?6+n^DtH1dJ!m8g1rkKCAIqEj$Nt8HnD<7k;]\^M(`0;55dqE[ALIqk"C\<XobsWsNBn (?LX-/6D(=sT+K_3fAi1/kn1&TX<d27G<:htfRBI9`.2<fmRVPF#h:Q11&/T n7fIPA6.gTlXONt'[KfT=MnG2(fV8Q`@KVMabk1t-nX`HJ(V+)#%%4Wo&^l\HD3dN8E^``; G0DpaRp0; fO@SqPHeUDdL34o"f_.&(\9YX*`)o3XtAYi5E&T?<]Y&S(`2=+ %f9Q4O%r*f\L%V.s8fc%W!iY1Q\8[PT.`nF#QO<D1,<]Ac&Q[P](:Qs..\E')<>\`YU0qc>_!$""8^)Ebf!dH#D74(H6K"e%+hNJIfqCh/3BYAPQ\Wj`-AI28K:3Y2S[]Y4B#3_N)X8C I.h!P)f84RgSPCq5B3^J@Y^E.WnAC\sFJ;!E!/bEhsFFSb^JsGAA7E;&%P]c+P:1N3`X5?:A,]%L1IPV]H@Lclptin_V&<fbHPR4O6JV>%3YCo_#q`k,*ZRgL PJ[UWm;C8gkl?c-N(qRHO/pSq>ZOjA8&'bm5e?Eh]9j-slrO.(WA0>"?pMKO`$3MdSGlj_kr4#0<#Mjd_bff'0]O?'gC-dAFK2YKrA%MUDn /=g>K%$mIpkWb-oTWY33@42n(*PNQ:rcKA./AOFI)o '-12j,gQj_&fAH42)VeIR#"]>^B::]DQgZDLTG_9s#`\4\s[BH6gM(k: +2n2QFZ1!clKpAjG7hLn.F$XE^L_SVO*bU<XM*\W&;-DXMjXaaU+*Og'-)=m5nH45B,@q'\..8E!E#;r4'Z@Sln-[[Am<.:CHB00Fa(0G1K(@dH:2tUNqGHpK$W(P- TgRXh*49m.=hAFsq/gS"4[bio !A]C:7(+$[bo,gY@8jQ-&=]3ohbJl#Q1e4#4<$Sd5Q$E_<sXD3glOm,WV]+j,%p4$G8m:Ofk%UmNdUk\6se0lqt?e19UAHb:4Chc;S10-UPET]bR'RpIja)8GZS]#95_COp!ec<1jkMS6,&5Q`gJFK@s[[#-*WqVm:Sssi_[7G#Wlb>+t ?[QX:-cgYH]Fk_?:/sKq22<6L!0hnU-m`la2"Se[s3TOG\U1i`>8]*,j+A^l 33gKkB,l)a );aoOlC<#nf?hf)6g[58_'A(N`> t2f2/X]ZAS6JhqllB!h2"Qe483 !ne;)2$:jbp0G0gC\t3/&b2nRoa;`lW@p']OIIBK&Y)'l@$I2kDEMD:*@:M* )tCf ^:JUa+9,r+FG<;;R*klWW=7O?J2"(4>UUJ:=ismVp!o!.Z6_4aM7\op$0YAK\34V-LR*2ISSKr*+Z/j^L4c!'>%mW%QU"PVbHEcE^=A@B:#L3g)N'e9*m]B8T%m#p[hCQO"k`8,B^j4&Z&<nX*RA#^HOR'M=,53`*RR,Z[,.MThq8BFpCA(sBh5*JOC*(9`_2-$QLUdc$WZP%&`!dg]),$s>qHa-EVlGbn,^J&hG9'9AI=Y3P$tE_4AW4Y^T.p@<9d;9*658d$aS'5f3lXJ'3!_U3M`8JBC-G(FeeG[Od%he_"%Zo(,qo(c33 .m;:psTHUiPU;^lGUshP%5%,l?(]Mff;n=[1Wgb^Jf6Q,<i.M"GO#@k'Op@GlX#>jIGqAGSTVHpWL5bLj'.sf.-UBjlJKfqd_d4rKEL,i2\/Xciq_f>44PRpROh<#^&H[$(RYW*^,/Ol I;l^9&fj<Llr`)PF4MGeQX0Q,rP]Sqo!k@5`+N]i'NE&kV@WE.KMn<m>'DtNl[(CdED]'QdET6dAei#G=#f,sqR@AQT-&1Pc)]Q_O&6#i7$iP@>lFZ4],&-MfTCg"*'`Rq\Hh5i ,L#+6$:V6SW[Tsi^5iG-t3Bf^FahQCOd=q*[R45bc=?GfJMY[cR"R"j9,I=EK;bh:l/^S2b=[8+JK;tZp0p+V%:D<B,JVXfo6Wo5LQDls<%5^fJ5Vmqi^\,5X224ZK\%:;3H`8a^1&-Ao>/Ck,gN'E,_%DkBe<m>g)a$nf!!-2=! >d7j=:l\pIc!A'I$p/]c"n<L/NE-1Qo4Z:@ST1b6)dQG=NUfIq-,db`a^GSMm"._AY9GS?i0*mI0gOdfr`lX?Z^ZF[1-&l:5EV.!>P/),.nt@/,7;+KVsRO-acIj`g;m[^#BkIZq_?TA990PGc\.ACkK/orpm:'/jT9[jn=L8C^-f>DhN?YX:AF&q`t/)=g?2[Y%A-2+0:Z`Qo`fH81%/d[s9oqo\P)=Fh`Wr:ANZ$1\@RYHcJ<:'He lQsoo]rJONQJ"3(f\YqO@HF!(=<Um[kImM3-!U>U*]\1Y9a''A;,IIPeHPFJ%2=*1FsmnZ[ANmVXNPRgJ]B3=g)37Grhd_#mF15;O&8<#?(W96;ImlG6EaI pY8AASA02NtR^I!7^f9k#.=R=cV`-,_&QqIFaI%oTn7an-!pO;)N >JTTeO.)6'C"AoK9RnLJ@+hHRj=[Nb!(JY4*rrE'R0)qSWPb?C;Rl(F9l?7:XL[/DNS#+QI^B1Z7b);nIVsoOl9CAh-d-- \\PIN!S*>-JL/&-RGcC1/ aU([@nG*4AN<(.7Di6cLgX4qq\D?M6.@Fmod%de_DD)&'9-_m&?nrGVEFnk.M)UW$i%kPAKUZ%!^+,2@b'Fk?4skJGKNdUgZdokFE" -7']_m. YO>beJ?g[Y#A5ARiT(U.KVe4;<E#\EbO!iG`bakX:qjjD"p5Q0?4-\e!(2QZ>:QBgOM2^OZ(GK# li9G+rD>P*5o,H/O1I&+jtt\Hl:Ogn4p@@`-"Q/jcmS_at&C8lp-c`DMh!4JXYN$XKYP(Z#%gHI EV$qpVP_Q/Q:#5j\=bi]bbPUH6]sV::AK)HT^O)P P"+AR+S1OTDd$[Dl^!]if4?&HP ITD;-/KhdmBaANA#$Ll4<&rOIA#[H583h$0C##K"tCp'n^_>s4=lrM\5SED,/AF^Gn#Q,P38AD+([Ka);gF43.fV#2iYG]9m,Rn$t[;<4kC:7DAf,R*bZQE P;5MqT$M?_HfD9@];\?U5qsqL8-88l6d<C 0H7bW,,^c[#3;-=s(H-"],TQO?%<`L1Z pXPs$%Cs\-$'BX!PC)16#Qq_WDTaBN5F"U[;(SB,6`rH6o`9<]$K.>_8Y+ntTHYEc21Cdaa@Ak=]3$2?CN8Y)qY;H?XY p+*;IUdr]/5^P0r\_335Ek6K7Ftb$?Zbht\C9[<4)^5]HpA$T]DKTes\6aiW9S+^+LnGOqBN,Wg=L7pC:;h@o5WU`lZ^s]aNsHJ2$n-?LF5.a.]4,r45grfiGJM:>[c?PqFrm:C6*gC4[MB244"jJ=>KV*h<pDlGdMJ2Pc6rS-'H9I.0@VAB[eqgq^+VN2&=Y2&UOn>@IAR:sA!poW,4m r.VEq5lgo](gE3$>d\r<_.U[WQ4[OmeY2jZYaF!2TDolY'\K;S_!L><t312rDS>Y9@p:D2kGjCdA\IA_I##qQ:Vmf:dS?O?=][Lh?OQ50S*nTHOoq%co`Eg$&7<=0f^J\24O@[Wl%p8P,E&oQ+S9Z^m7k.`Hpr ]cCLnZk<c<-iSdIeBg7c;OkIf);j*i$nTV:i^DYhQULG5#UF8%TYHl=2ACj-mkW_$J?@#0B#-q>S+V:&NHM(drJmnra+7SHMDS FVt=aB$XD% HqbAg]"BgL*!lGngo-!DW qI)=A[(jM:YV+jsZ!/Pd>d,6&'^$cDn(U)lDLN\V(@Js+kDN0DcRR\%(@:o32!p#PP6dDP!],@[>N7A VY[eOWZ*@^lWXZm)*+P[B]1+%oY1h[hma#L@#_LJT5>e[Y[&)RH7D^()tHOMCQ-p-k>f-XppYP7a2E>9,b4$Y3N1CFWr'He.?;DDHNqAO83oNqlFR@A[?HJM>4r(QJKfM;Ma-++]'D<^G.E+A;Y5]eVl>'t?S9%-)`3LDd-g''5n<t.aR6SJlSt'aR6c?;NA`,bobV-tJt4hm7sA#'p`0[cMiHbNp ]+g'oa4lTED.MH5#6m=0(,[#Ah<>UQa^`#a'HA;d;:Nnl1p+SJ"(c !$27gl@pHI(gSSa0*9&ggk6BJj^o\!oV(h>oSbg%/BHeO-mQc#q/G?cGdN(T/1&>JML>@Fl0=I4)<e$@VPa2U/!1ec9S>'?9pA&\anPs=2+Eo9c7=i\psA?5!5%Zg5,-9n^jsb/cU,N^3LL<e\rMD$+*cZiPHfF<]l_?/pr>(hi #9lYqB,ma6+F]j+jtnHme!nd!'i-- >eBc/8nsP,PmfHT2ROo'dMQJp%6j]RdBfS:^IEY'b,*PqV!Dg"4($Y:^Pc"Ta!(k5SR[YS#Fr6JpGWALb:JGc__UGiAeXIoYAE`7( :YX?cH/Mt"c-WXD '@Wc:$s^Bod0RiiQqI4@ANe@aY]:+0XHq*c(p=sW*%tP'=K##Zo>CmpFq8H S3^L4`<0^mFrnM&[[`p:+38A*s1/CT%GU'qQnsTs7B_2@Ab`NNa:a@9A<XA0_NVQ*n564;f.PTA`DhU_*&,N4^^70s%ptqQ8=Bc9/j+=(pZlf31m2UTL8'M:#d\K7aA22tH&ICct:YpIW'`Cq>atSl(BMNC<,914O<14R(V*W[VCsJfjVJ;4<<_f@`9bIV&LBHY]RN2T nIVn-7_Re;1OkUg+XUoY8NsK26]>c%eaq*C@'>K4JS9Q@^`Ik!aso]nLZ05%(dtNH3t<6Z/ZLP@Vm911nMb't,d,.\\4Iq9[(tUT\/:[jO7PQ1(p>%/ Z2q8][fT0^:dq]J8Dndps8(WdVSpi;o+loBSpA<(KW[_B)[S(B3fK\&0eG8_^mOX:@_MiD%%YTeDg"M0+#e"nZ&o^VLJG'nrU+1K.^c(OZj8c^IH;%5?A';=sO%fYJ#mkknh`O\.`&nO]g"-^1%d7!;EBsje\tgXg@ 1LbF7(B)H<K?`$r=#j"F(0rM6ga`%#Q`P>ndn)UAU-SpX?.IVRBm)hC5^3XSJQMYo+L9f%QkYrg;:JBrkrB@op(;oXJj03j1[:'@VIN*5)*#&O#T\nA/-UGM-)_AVo/m4N,U0lg>cTBs"X*AKp1L7qfZ3(Q/7N2B5kb1!B_.*3^1cq#]Z'^r>JcR(Toc]XZ6l+6@&A_<?LFrPo^S/L1j#/IX@fbQt<HJ#_oO0)nr.-&Qg=.DS^JG<BAbnUhAdJ'K%)moA,B/>PFjDGs!Xs+V& $=kNhG!d<A.3!jLiphmV2926ifBat#+,&aUR&+*$@"#\d"YNsAVq(C#Aj[A55O9L2f=<-rWfMb<<A\)/tl#3#]IodF3sMjWXBA]I#N4:<^=D09gQ`Rp%h 9X2LlEkgI"Ds#tb8U/S`DJYs4V'$9>e10LY(<3B$L6Ng%,O+1KMe7j]qCD##blsi:D6^hT0L2E/XC1##jJ53>:[m*!<@8smWH`ohme=E<nVb/6aU?ZrM1:_Vo[# sGf8)Ye/5=26D%0o-:V]qfLJK'i:<I#O+jZ6)KEoa+h_`9S^(pX<$A$!p``q-O`UfEt.P#/EN>j QOc4*4[<YH))(9e^8FUbh\\?e/AShNT-r.Z3(g5KZ88CkJE&.?"X84e9\(7J`*9]@(]B/F#Jd_55o0m 0'> S'?Jq000Hj)nS&C-h<Il]`q7F>jpM%OdL"L93iNbhBl]69Oem:CEF4@QoJJaca\+sg'#F:=fgU\e7Uo$11jKI!)&1H,'8EWA+-*eRP2j,-oBCf98A@$6+pnajZo7oaPX:`NCbtfL-<ZDiG`$i@78m\E#8sRD0rLr2aN?)>/G6bo=(o&[V6e<7B=! 5@JO_J`Q.>DT'hVtM8V-OeUSi?MF&]--F*c,kS@&;4e:S_\VRka?EWj+;*aOEtCpgL$r`@fA:i#O\@p`htpaOk@h-4,DU<OjKSIq.Z>LE>%!-0k`DDB,,'^(GhA'^8"$8-kZN5/32%YDANP=eUi\$pB62fL",W%.lSaQTa3.?1"Ye54\9RtZB+l_e%>RT5bE;RcbmS+e%<r))S2t>0 &&eg/UnRGIHB"]6 ZiA(hHW18NSP40lcp.BkhpC\44KA3 G][Jk(YFR]t-c9\17nV;XI?4l_>IsZR3Ko9-WNm7*fV=5i#8FE9f; sq7tdJ9(W-WBbl+s0-F#h>H8K/Z_[B\Y>%5i&VUIT&T<62^%cH6D&r%U]9>0M^OC1\P gd.4?^H/mp[A<i/+72`!Q][M!).hMV9Lg0&Ue RWH:>^TmW<0L4W>1EfDOG:M6r#/+TTi*of>6k5BTlGm[)UIJ"=8]s@s=G9;^!=7?4'KI$"9'R%l`lpGhUBJ]8ncn>D[?'`"fCLit50"Yd^Xt^Q!Xs!>8=j]fn#=Ff9F^b`Q7p*$!)Yk\=hps2(4"sVC"o]k51ro)`1_6[,@<1DnsYa ncRro!mM!?$n5/,?'rnO@gUMmaW:Bj%M<G &6]8^1Vk7\EIS 7.hEOaf!`@JkdTni7VZb/HEI_lP%#`,sJ7bKioQmU-\2An&C)8o1A@#LI?6eXh@c7nXKCbp'l7-6UW0S=UbY[^?K!(A-ss5RcH]8$rnlA?255qQEYR^gSD/`3jh]8:&jre/<#%d1nX7-$mH6AM!2S=dUQ7')cDIshAQmChF#5^<[t$+QXMqGf*5ZS\kMsR"A4+&^\si$6l709m217`F9&_r--k[6\?>bI/2NVWgJ)-W^_#93Fc35fm"M*&H;"HY;A85+eKZQ&o#'%^QUID!nsAm2+IRWJ78+-Unb/<=bpZrO";8mC5$j5q=qcmg<JD/D M"l:IWY#9B-EE4\q0QS]e).[]ap9M7U'a0bPA)$Jdk9eDKA_]C#))`+oI)jl^16eA2-qqGD0Viq5L/40;?5V'kM8sUqbimrjr7$8 *W2A^]\,]4Z+jFG2iSQ*3'ibc8n"Bm@`#<"4MS2N9HZ6:/pd/D*_F2OD"Sp]Q1*84BbMNg/REY+7O^WJLA3r\jF?5?m9?hI](^ 7pfcSO5)nO`,o<C5SG=Qtj r7.^j?8$6a5LF`7-;,lED^KOI,Uq`,7)o9'+eLiZltend`rq&]4YM.QK2hCt/NKUXH<HAU,3LE$9.<Q6I#VV'AcJ4V+l<FQ+`jbSO.<KtM31^V #+LE;hYMe5;ZiL N5]l\.nTDUoP, p/0+KAf-Frf.`9/m4.;fWC0e8*Ak*8Kid=rcLQ/]0#,n&NOi41=(PVU0e,XUWLO2=[gX;[l;s\5DM-/(W'M]1J\79.JtP, 7mEQ@G.=q?40Fe "\.^4q9j67(k%*9He?Jr$Dr4(@LB3)!'(g A<]#/J0TU4io]AkCQC#MI>)WJH`$D?>l+0k<.+-YmXZ(,T6"6h1QA,8>D1p'!(N=!:3&gO:C$9o\>95oW'Q*FC-iK>`IW0:[. 4?FYIM[@%EO;legl" 1F?,GoqD[B5*3NhfAj[a5oOk#dWAq4!qhpi=67X&-N+J9 ia@d.VYOe.M`K@,"""fE2sa]I=-1o$  U88DcaJX,X(FTXOb87#\W1@='4"3#.BsP Qm@s>$I5+cn@>DAn_RB.Q!>[q:p-c_Ebt-Y4leG0)8nOQJ7"5Fb7N(*+)9WtJ1a[=j4A@CJ!T_r/[-!gL[JrT,t@k^iPAX=roY%)G=W:mjl4-rZ7bK+(B[R>6LmlF]]nb6m;".rfrZAHWoZ_bO)b6#?lNc^ 9.[UV+M1Kgap<)9>],RN9(3MF[Z.Ro5a ^bfm,09"iFK 9S37-<=A-2n1Dmrq4rA<B2T-%/GZEMM?Xnr7oC>YbF;LJ++UXR_E[jk`tdmUEaEB\TR`^ZZ5+A0i_?gHjfS^c!t&pHFc73YsNVI<QXs=]J"RF"AZS1%X2k!=7DN`DYr@A*%L@$T>[)_Ut-6'e9U%2N&&r>\HX`'GPo716A8R3C#rN[<2,V_lZ[?QkL4>R>f%EB5_*Y\2Yn2q6K@"7pIlen0cG=dC$hen\dj.ho-0'Ik. c:8(+lT$Agg/`LIt/<2PH3>$oW!Y+DAo1T-"YJf"_`nWT_)-F0-0#TV"\*,/Ai5VT@iTnbAI0ornM+k;QZ7hkX*m=LeIHtLUPD!i=f4E0$h3^C/s+".a0/jgoGb0d/?:ID0jt)T%EL4PLgpqkWU&;d2"]Op#Or@7c#p1r3K&KKUs!3^q:W<rjDEAdjfKj9DBfaGkK]UftriLm@eTU9^YZgAq'&lNr=e>-B3eAfc[A_=nR3lN\hG5![te4+Ealfg517GpXQ*cZs]US@No>\OtkFUXqs`e-7#3TYYX;;p= G`kGU6JJQjAChM9^P+S>qb%ZVL*a5LrMqGjB.h lTo@_H8AlHXl1s_LHZTj6TDPX#KjrO1Ph,rBN* 3 m]dQ(#QU#5s3shF,*rZAW$6Sr9T;4WAQhtZ%3+ r.$%pDG8  <VB>M7AEZ*m'k-3N@(KnjQJ3"A*EF/h/qst?U:Jfjd!)MmP1!#PGL9:J'$sE M.Hf]]Frld-%*HUVWsUrD%?K"F/gXPe!LjmKNSM1tJC$NK*o5Le#ors`6iLUg1=2MaD02aaZH[geljDkU'qc(tg&nL'102,0V>W?pZ<aJ2X7@_D*K4\jmDU! h:iJkSl0bA7`R_l\_W]Z08([5@a"ZA-j3mk[]PMZ`$f3(;^Fr./Ib%d@thJMa3=tcLm"V'R:hkKk 7L`oiNn$U('&*q5ng\&(bA+(XWK=[^kEdd+b`-+/W$:t0-AA\Y#m]ZMdg&-n0l2"W#_hMjBC6fhYP@ATY0H>-CB!:$H\(:dsB@b=$R+"Z_*ZFTDkp"TAD9bs.88&8?BG0oA`/6_9:Xfeo3J+[BYcc&Dk!DAhQn/HO&mEGsZ1A1\%+HmZ8AO6`J T!3:Ggj/R4V"?gW2sXh.2G``LIHD`N5lC8-4X4-9nBoZfAH!;Fg(<LATBWW<iHG N;14)WF<AdA*dQ]%#JSJ-^U9I#h=@k\*X)Ij/>mq!EO<j07jU^?0JMt38[PB:3HH)i+,+V#1,UNOs91c-i4A8*8+ec0KBSee(Ye#;o%&ebPaoR4X*eP#lFiL&e=A',3V>!#i%Gc(1ZE05MaV>"b"OT%F[U?Y<ghXN^:[65iD\*&2VNb!d1(aHr9`c@V5DrKa8\rK^W=t*jhp4 )?g^ McaP"d<m3f0[$1Q<=)LDDH8;& ^X^^?RK#=e)rqV^F^lB2@EDpGi77t=tO)GaAXT$=]`@!!L$VL,A*cA\R'XI_18K3WoC6gfpRcM+RAtYQF T4)!FX^JmrM[AbSE#`gZgMM=Wi^\UR06PK&fegH7NfWAr^3>B.to1!4S!WG#g>I-YU"s9\s*H!RTr]jS0Z)4[9ig)'"brRKb[pb7 7M[k8.B]i.*)oHiFnK/Cb.qr*OkY@jc5>^K8g;gaf;Eb %"#?EZM"6[H,7a+s(XFiP)>dd%(lLHTUK#4pZ]&sJOa,&MRZ!$2oGO&=7Rj7R8\pA/p)0a?d6htHH19G)ej6sGfjWsS2@*1^c"$'0LEI5*!X8CdC%j-99XcPs8X+s7H#H06$*4h\^KfW.U$r#Tb+E<b`OTUS0 ^P;h)/?IGb*fCZn.]LA7A^`C#(h`QHQTVCZM-/)VG:j/^Q]40b!jN!o b;e1=06?jb6eL(kR+en:g..fC.1%9?Qs4>G@Vf6sphpDc:A5]9hkD7`ijZd5^00%_N0B$5,RMN7M>Aa;*Y5.F;rFnK;E'):<U&Ks+Z]5>kMST!r\G=<W.@95ZEM#((]-A;9@-fH9R 'W:7Sf?f/1qO! X:G.*C"kA@<ZF[iV_ZnhI!5-dkP3[E-P`lSQ>^DjsGF>!^\4L8>VY4$VJ\WUpegjJb5ArjLWkJ8@W'a#p(VW%7S*YSI;IH@A\O9)Y(`5jb]F )5S?,I,F$./qc@SFmHfnFf!$bW+erR:4Y99,OB;caB.E:G/B>AnN)jF^75Y)Mh'<<\1PSGUta0&WVn>&c]ShG#qb+)fNmE(tX/13]n!'<J-#*1c^feCND=^TI:"ssoO's8GF.C._rA9(202EWB0*r384ahQi,Y6-hA&g1S_1Gt'X0]'OFbi[cF>l:EM7@M9VX_AT$\[IsHA#NQ+0:gZq'@W"\XP,<*tJKl#E$*0O[M1$ii3;CA.>bT8(1pp4+Z&mlV5lspqsJ)?P0eXGmV%CqZ:P9`KJc9TQJDqa_AqVgGKJQW`\<%>&@"2W+Gg:akVgpl1><:,N[K(d3H[;d$L8)!9tn7 >P,YPND1Ij%bJ""!hm!>VK"AoY8[)gG\@ F1^G[m6=5Y]r$knf'G)e20=.Kd;\c*^*;"Ds*O$K/kVOp%PE33M8C8-3]Fs=HH L](7Xi;BBRDW<`p<&^(IXmlpmT#oQtY>:T[?W`Ze^_' %2.93Mt. $`@c`k=h/nPPf\Gl655MMb//13lm<foXJ 8 +AqqQW_!LBF_,,KLLg@bNOSkK(?YSKPWc:+`1L0l4D49UQKlkCB6MeYp@Y@Bdh P9P"WVA@pn/cd\N&LU^96PA?&FZDsM8$R'YAJi_b$c,_# i2g1+BTg: .%6HA]ZZ,U2J8W'Qn!Y7TF+t $m /5R#RCiRY=,07#S:Z\0Xl$4T\\@>fahEaDQ(+47_f6g)I?ok6C3DmAbbj@Erg&S7[eK\[C2-oTtY<`7AU+?tAllfsA9AL^+5!EU?bD ftpGZD(COq/dchiOg;]F7b2-Y1_mcq"-d^ 4d75YdVN9U%AZV:99,YIPrG'a2-Atnt<q.<&-gC0+1*%F70/$kqf8lH1i"9/dIOtnl8cUEAqkc_\lG6BQFc]p+m8](X)i0:9I=8\lJD\r;5et'3ed&6%$g<[M.kCG[ifSimQ%Qf @OD(jJT/aojR\2_jY\U?TI:IL<$V``i+[O%M7kh58B0p_5QUrB[ ]3C11$<phVV^6Ga>!<_^nER.*g\cp, QW=?8AnA(A+eLrOJ9Ea4UeLi6NAWJJD[Ai$+E?>R*o(WHjq1?"+n?`",]k3kX;'^SeI)]2."\9>EqQo2K?^iG)TmRKp?=Q\DZ"__Pf^MW<KFd6MTqG<VL2*p]I8O=,(T\^hf+-WI6El;9Gr"'ZA"p+?\+k]M8lV.Ddm50qO**ffH4*Q,bkBsTdUT=g[4*pF!\ir.jAN\<9>#&+Zpj=/B<Gj8PaFnMW?AfSmXqKWpU1&O`/A@=O`QX+30>11Wa'Pk[-.:pr_1.L9YfmM2NT/X(6-NEnK'Fl>t\__fN- ;baPoO<4E8tNq8UpS.(W8t[_B]oSl/A:& %(Fbi7t55lf3LigGUo$s.I-_=4,^I;^)$d&92Y$_5McBg<Kdq;UQIs` 8^ssWMa@[580862!#5C?S^T6;1cOOnm#(K<P,jn<H(j_/9$@pZF,hZt]7)RL(V=9;`9paOi7%VW63t0j9T].9=\.4\]ePD1HKGBoq 9/#Kk"QWWcoWk4cC@=on8CK`1sjEE[YIW EE6r9)$>`]bD0npl#ILcRXjMdP<&@H8HQ:%W'!p-b@PjasM$c!tKpg`J-d</W!tLM09@5KD1"*:T"+Ahka;eG>J-1sjS5+cAVplC@Cf^<AqsfQ^rEFgjqd_<o/47_mP"mPLk!>F(k%PSj4/Y6h+!:2pXa#55p?s0)oMCTgq+mZdX*%,g:L)MPG`qi(PmY8V=9:DOa]`H\MeX2BUd%GYRWha;j8kkdDkb!o6%.c!^o=L,U/Pnd[Bm35ED] @N&;,!'_laMA8k44iGQlM?S'F1\a[qAlX:$4@Q/^jMojWh1jTBTF@$SDRlP,%"W7X.-RSkeK*KV;:tDILZ5tQUB!%\P.HA5D>m!q,qVD@r1+lOFE<>n*7D0.F`HHhn0q d_0nFK,1*b^^40GoR@1lSKZV&N3FQ(BDcl^B>3!PHCY *E1bHs*Sr[j=BXR-k/6V0#6_R>VYs:VoaBVCNA5,&r#;c#F@A1$tH/V@4HTFTHA>%IJHFV_=g2_Ue;-b?)pM&0BA`(`h,f.XL8U2<F(IX?UbDDV["!#R'\4QmFA9EP\fkE:qE%^(P+ZnT'P4]22'Q$ @$H+C'4S08@G9A)?HTgXJpX&Yf*GnhAJB"7"f3/2j(NrA:C+i)g:]Ss$ TsfFbZ>CB9Pt#]HNdPKsQ"CXQ6MhQ )poA[s&c F"RZq;i!=DE[Xl2MH"DYV`D8<*UcPWP&i dbA[((MNLT>hFpROb'7W9*&m,`%@"40b>aJMl! 1gD&sDRtAd3I2llc41."H37l5N;$hj,qI.M0KO/:Q3.f\hobc1^e?4CTh/HL]9[A)-c d8OZG J>eR#Y/EIhlP`22ce&C-S>c'f=_m<I"\/ABk$a3Z\LI5Y*S:@0L%>S5m39X&(JL0B?>B`4;1`nR$DhTHFQ=*UdSa3:BA63T/D5-Uho >6iZAH.[.q$jVZslOnD)T,=(''GYSAA]t"M+)H>"k8; U4BWgsni\beh.YDfrY(,LqTUA:K.OlE^Q8f8%Fg_+eZFZfn`XqhQ]?%@,X>,nd.V<$]KLbA1k^[M'?,ZNBrEiS7s4to=(bAJ6;O7C/arKE$qk5>2KkO)ic&hPmV,@!Q"2Xi.rZ-i-tT:t^t,V9%rP8I^/nRIR-H^bKP Un)CRl&BYVMc>Qf?tN]8'`,-j"!["F%"/P5:QcTgZVlMXJ']t2A,Y?(lkdTZHnio,ta4J`QQ-Ro;)0[.=D*qSFa!KUsM n.A[VN3FqG:J7%THcciT20Z$-.Og+It']r7]meY3A$`*)UN;Ep9h3hEULe"i<f:6Q3GCQYP#)U(F> a:'^bR"q-J-1\V>CmA2liB.fQ\.>`oNB!l5Af<[7_;5Veg]JS3MUq.t2j19N[kMZIkodDDhXNNl@Lk['\(\#Is_V%M,li?I]V*EI@\sJQWRe6/QH:k<NH3Zgg^W`Y*@-I^_!DUae3?_^V6S=]\'8*Ehc'0E6qLPgL&4X*!DP\n&Uo94>>9[pf^+[C71lGU<@Vh>5Br&3Ss9&,9M?QXKL0Am&*VJAAs>pIUjNE"-/T'@gFoAt"*d;]qj gU-/lRArHsq]5q =UkR6(Rm'(++,o;3[Oo;WM6U;'$2X)/qY?JG+&1Y7;EGl"E%!rk,:]A@j8*]A!<Utcd(TZ7CkEa6_]lJ@9>3'-rBrKlpBjX[&KS[\@0oKa%/@F aGFpV+Ak1$@"YBk/,e-Fh"S@JP]IX[@ZRCkVb9[_ks`jDFpC26A\>A"lg.q_q/?BVN(PrBgJ.(RG<if(tY#M47G<m&TE>YArD'Sa.1 <kh?VXr')f3&=BXS?SRJH@tbLbb+!V_NE'DT=AAq S9hAOSj?LO$PY#*;+Jt5hW;t%XT@Cga[KtT(*4Y]B 4d=*AA)J5.$V`t+(kccX'KAisn.jsO$d4TY.H*^abrt`&UepA`nK/+CEjDt,FM>UAC]P=_1_Qs6%bm$UgJ)..gWeGilHJSqjhYAd+'8jYZ)[YelNG2%T5F#."W:S; m_Jm`#) E';U(]\\hosFM&ib[@OdZj,mdF-MHs"mI"0]JST6n=e>s^]>*A"P/a)#n+t9,V-aI3Djm(FQ70R4E:g@CJ##3IgOW!qe:hNGW.m`0._f":9&ZmoaYX`e@*eC9isRL^iesY#</Nc55Znl0_/+tVD:9"bo#qrmLf?m!C7KP:3q8P+39sjn !ENR_%]%P4$T)?,6D,PSnpJtC+AE]IVb)+=4Z9KokDLA;]X]``a!Y7gD@O#<YWR?MCQRH?)5++^6fOH(ZcB<FAmNo.][>gjoFR0K?$!\Xl8_11k&;+!%V/QN/;G"g"7]4*BX(.F'#[ET0[b8sO>:A:daV2\OL8nIQ6PVqcVmTFb)qs%$D]-:Am>re,n6>MI,4<W8sYBGhI#KfkloZjZpBXiJ3)^SP_[[`ca8S<MTrf+a9#@;UZG\h6j=o@%1X/8P<([@,B./Vic^#Zjq4\_C#+%_P=]I;R-/S*h16<GPe5,A=<3h"3""+KLG8H*>DZ%;CPf%51m?BcB%"]=snZ9BU9[ X/d8-Vc=tqI&P*pCTrS8=VW2qQ[_o'*'AENb$ac$nTZ^6oMUl>_EH)S(8>Bn6K);0Wr(<Q4-(nR.E@qAn'3m$*4_XB:I15Z4V@%UY5 (MkD4i+HkF&trZ/5)$Y&p8[Z'A5$h">cfhGpI=8& on-C)Re4A%Z9&L*XsAAWH=5:tXD-)<C)ZQb$BZh%Wl< LDp6=U068HIT'3Ced,:M4@Qr>ApKHW;AM5X;dd`R)3<85dG>KD fF+`oDgsgL$knXJn!(`Vs o#5mg=J*@DK<M"'CrspECPY.%t.J0>NeAgTgPEQp[(]me.4H=`:\HnM*j!eg*ZIb+EfU_op"/FWl.i&TI]gU<&aBmh5:/HG7ct`aFABOhS);p$q(M(%<C\X>85[[$X(Ab>=%rAZ^?!>D#kmq[OA;W*^Z*R<XPn^ Ji=k`ZHj6)g`Vpi ^H>#O^Q@]HnV(7T.\@XpomAO!o2fP#nsdcZnIl=%eA*YoA>W?^J+Xt>ZMeAcHLs<gABCAjf9SqT4*[g6j(.^DqC=fecRK32iUcQj^)YSp<MM4H"C1KeAn2r5W`(F_ q=qP#qGKMh2l[K*P k")41NAfM0_7&Pd.c$5['?(kY/_>`D_1JkBtWt>F;06h5#4O[4+p.tC5K)L1D/(0:^d(lmalVL[Elc)cR06B^%J>^s3DhVi^Z<Z6iWL7B`2SPe+q+5]9e2bU&h&2nTag[LV]S9FX:jR8^n%6f5$MTB[bn\sS$3h(5ph,Jce@0lP'hcFhQrChf>o*?C+>T/"J4-6'J%#A(o/?N4*lc5mOfS3N,$F4AfNMj8f)l8p iYFiO@2e"7/nE,GCblomBE7AJ9!p3:AMPme &Y`o_Ork6`XNEMo_otZa2N3h4.+c$!+4dT5C1os+jGG@pom5=sbo+'2TtjigZKr5m/pMP3@/+#%HSt=)SfU\329H^*NA+,J\OAZId;&EP_j'j<#/@a,%r=L'1BPiH+.LgHOA%'%?W+lO"RgJ)e<K=#8?Ybd r>`o.[WPo@$2)GEF1BG5%lZC2N7JCB,L5h!3bIX@AMj5%W2LI%;Zf;fH1`PTIQD'-r@48"V;p$iP3KJ.U!*E!n76L64O(oW7?CV7<8:ZhPPZ\E)AL W@5e%8Oe2a9@BqA;>k%Xq&ocVJb,+UBig5<$7d6P&[ \-oMN(V$L9-Zh:Ad5:BX,MA;DXKIfk/^N*$=Jk.aH`0@J[!j$2=:"n`MBMQ9i7^=3*,1C>(CCb:d>D$E:<SS_sDR#Li'__=0@P:8Adk!@fp #VCV-.7f-oomcijYrlRXn=GJBJYJ22?V%('PY2M*r-WoYMO.^J"ptAmhE:S*D=H&$2HjHj((N9@m"hI0G3:GK!YP?n:\9@* m4eUI9YWUUKmY9h[40oEmd+dR&RNtFKHdC`-$C\.JpW-F1C3b-XX9DpNSTZ+o(Tli.a<?IaY#)InH4d5%DI8/9V8n^ M7l-YLA+3H?er.9P*MsCAl[>=+H^A<j=\5qh!m+C9fA5A!RV]M49;+EL$d(o9^t;K1,7XUWcF R$<gLg"J`c6k=7tBD>p.th9KA]j*FQ%\FkMeNiq9+?D"mZS<[Qi(O'Ra"22/:)']K/@NJ)pTdka:"<Be8apUmBr70W&R=NbQ'G2+%hsSLV9Wo:WfdWR*APjM0`n-nDAtDpWWgB.e>5kfC$/ljl"[[G6A,o(r_eKjHPWiJt0iJ@3FS!^'rcg2:]^t/(6BJ[trtWG+DP,b6;l?K:[]/RDo?>!a%e'*NOcmqj #^3N#A?N^M49AQ%-cZoMAm)a"F2EM3;Aa`_\:D+(c137HS3F-2T7VYJ)U6'Gf_i-NG89'R'hg+GX`j<r:K$VK6I,SdL/giQc$E\Hf[^C%C <e; Y03*L]L-`q;@s/*797rb)s\0j,#WWr.He<8IT,ES-3-Qnbk>k!7"lZo8@^"*Y[\X\lI(pd>-B[5PP<jN1>FK3rC2Zt\[q->#*e"$f,dN$[k5k&V6:C6KI8fNAD_SIW>@!k*o Bf@&m;H<jhQ+U;+gACds(8qTm2#CQ7J?.CWAVq?7Jce5H@(CQ$IX"7$mATFZC@i>r8C]IjVF_#Zc>q'5P*H6iARNP1B&)$oqWLG#en5kT,em!Q"c1J / hZP _b*6-pp-0CNBP#?^K?\&\a:`T1Y.k:hh:eangGB8K"HY?n 5Hg6^8:oo>=8tKoIPkWsZUg<L5jc/AZ,:A$]K%oM@"MBBY=\P6:;V`!to2CFRDeh6No1/R@n$7rI+2!]F!;VpFaY#)f%#4\<-r6CKbfohI+sMZ Gp/"8(4_WJ>SjN,NIY\nhf\S$rl<#WmAf%j8rFg,K4F3`]8$H=8N';0n+D$oGnVNKU.F-Y7r0Hd*&`K7A7E5X2;OMSf9,LO0Wl]h8U/FW_d ?Upf>?XjPaO.iN9:DQKA<r_2fo'eNeeW12L%-Gl_*$0]20q+;&[391ji h dAXOM7)D)=ZiF7;1+JS>&M>t60_t)/;(,>^LK&eIknR/^DW#U/.m13+4a"V?>#ABV.>*^;#k9&^ZC2.sS<K 'Tc ]()h%]%D_AZP?Jri83@.[C=!VJHM[>o:2aH%=iaA;*TdSZ+?NK:O:LS.[&+_?>`W&7Y**P56Xsd-gE3rO_b=qHI"%^]X76o3 Q )2^(Y^@ZsHYJsq@A]&J4l+E]HO=T7p(`Vs#/bAsTCLE2^mdoZR(,.A8pshE(kWn=EtMh?_h2d/=-bUH^F<'q4.f%H;Ia-BY<A?a<A'[^oD]TUFDen7kF'+AS;\4$@QLbK`!!!Al@I*/B`HrFcS;#s6*-Z98Nm91HVMq.N#Wo)8c+[_gTX3RXlX*?iqqKJ\^r8cX\D>A_q0jfH3i=C+jmYk0+CYEhH&&^<k(kMX?7m2#sF2TAD<`(Q07s7S-_%ijjcKYa.H1fY.IH0[!"%k9N98B3"Vl!UI3OpGA>D+0 (X9_NUfNDd.*PIHHhL;pma#bRED'W#D2f!P1^k9,#<32j+ Yk&UMl,tgAG]Q79kf^s1IpK'1b9?P`:agbT!eLS@+IiIHI6asRAAf,`4WaiXtZ+A<BdQIq/%UH2CCiQN%BaDrAc5pa(OZmb5!fBsO>i8 Rdj/D8UgIo6=g7fc`*YoXU*L[>H*lBtQTA)=Z.OA'f-F8:jTsoDYLr?B<OC0djT0Fq4$qR$rFha3?4HTMIL+0EcXa3iL2;3YWgee]qGV^4J*:h",BA\>]/-ns9,F>^<"F(lH4KmOV8I_M_#ioPU#Wi;;2r*h)a#tr[">j-Abb!>13#]!WK53-A368__:9$hC9h7P?tnB.'O4D*9>7/(nU#\pAGQ9'/ N"H<_f.XbTYln786*;mFsQ.0hP9X'27a8047@Qd%E>a^s>L$:M!Ej07sZ[/IOOAiU,;[9FdG%Xpcnh,\:qc3:WS^JBH[S>AR;bM$OTP)2'QU<hK7J3$Di _mK&H`9M)j>o1.7i5Ucl?C#p6^btCI0) qAl#l&]p(00.8W\at&1CUAa)Dj ^^!IY?d#.K20Q\rAhXnj1b;Bm\")io*SSVTd_P*$+>' jQP*#]re`4@FL)M2!i;HYZ_k pN US1gq*%UBX1fpgiM'+7KGXF4o`-RYY9O.; "g<hBOYXQ#E\lSA4_F4[_)OAkM'i@Y4.?n7\Aa?(&FUtSQWc_JiG-'gn4;g7La5`tHQp0h??<$*mN==;oiD'Td4,^48'iF>>`g,Vg?NZ3<V2J'Hq**>kgA90(#Q1aqkD9.MG&4DFnhr/3Fb:T0`GfgoXL T'S$/X4_8nb1I>SY@9E)6?7M)iS>QfQC*;r&lRCG,Kleps"JCo&T003jGAU.(#"]WnmAG^rHh\h>6qcUC#l<P.ga#j-?+e-S:TPQ(3pWD?[4WRWf:g.SUL2ma`h,LOf!<WMR+'P:n@N2a5,ZoV"nG"dGe`Mq8f#6`9nAkq.`d,;18$@6];R5enP&-GL1HbfT>dB4DHa(T$^$*rO5[hlhLS@q@ZAOlaid]-O['(8o3=.8>?gA>jM=tPW'pX!aX#IgNA<X:QG_,/S` Y0ip/k0g-Y;lc&#RKVJi#Chm%2X.-3qJo5=Zn&GSC<4MEo3<Rq]"Yn4_gl&/\l@b,MsmkcVqN+/JU9XB&ESQmGndB^E'+BX1)LXqIn'KCl)poR0I/?9_)[dML\O&QiNg6OWrZHinWK,-V4R(:e=F&\6 \-E@@&R\?n:;on`&T1$]5@@%kNhEd`@gJ>X,@)]!e;Pk^"\-:mbU*gdLFt-CmZ@3W_567]2V.I3ntMIYBe<MWtZUs&Epl_jaFM"AKZR$ij1n8t8c>n5YbQVaAX9] rc.Q#K&gC`Q%b`NaH1FAIe]A0%qlG3WhTE13oHrOs0(A,[X/q6G8VAT.%gk>+>;;Y#B1,1?s]sWa`'/gmT_+Dd+lVGCLskmrf;T]FXDjit@=b.`mC(LIiY mK&YFUAi$Ka(,,JTH!)9p^-NkGm1HlQG/"%r@@@c)>]7TDL*G$_1l]&=_('hJ2VpX&NE7$(etCjPf"nHDiN/%>KM\@e/;8C#LJHBX,XKl0$tKE4.:KL<BOq4Y4#A?#<dFXjopW_C7sj:bWOT.gr[AO:p1p7UbRZTeBF)p.M-J%WF60^LO5h'K5A?JcNm_Q?'<$)MSC"EcFE6F;"f>;DHF52IVY-aAmsZFX_&7=_Lr;VDip[U<K/_&q' W%O:,nqc6iN:ARs.*c2$[SAi2 E^_#D/8K\=f-&' N"J]GrRQlR!;\3",\plfO>A2D36E[P=^GPJC(:N_[?qZjrI_)ttY9rF(F9 #h"(<@k%A8%"@ktM.$)>cSd.1KlK7WkQZr[TQ]MK+rZ35A5il]IMnqMJb-U92HRGsAXbF_&[hAV4]<G)teYA(g)eIo0cNJ@RR!#KmAG+=5hK#.cS4[Z@MGqnB j*=YBV1?Q."K7fI[_D\]^'rBM0NTDt$2dk!X: E$=1Urh:0?$7a9r;`pnq7)M^i^+a:UMp.A_2:_V2JV)Hag`R=<rr[`/EEk[B@KP>02&;Vr;l=Z(I4cG*0f/91;r/1d*QRY//(WV J_tY,EY+_9eaYE>@tGN=[ ;K0#E3OeCP1UfSMH14#P;(A&JCod>`_qB9H!kDG,\GPVr.>*OS?  Bg>,m@0r f7&G<qRfoS>XIsjJ?]cK2?/^#)snGVDjB*hmgik?/SpPL<]$*,HkGbmPJa7Z,H<;l_"-//L$Df25%(g +G`X>HiIa<rqa `R$$\ADIUrCd'K>m< [A%dkdB1856D3P#dGQg1?_a[Q8bnRAmskmAkH=p;?WMKgsGB9HB"YDEZN/=Eb[]C&!+Vp@^lGRH1p$G_FG;O:AA*hGoe=4>6:C)ABX5!;/o2M+X? 1t&>8^FmUO\s.UmMO(>a@mR08HJA4)@dEP2mn`/'&+]k!e8L2Q32*'r,Ad;D?ACnc&*o9p@rEV^D7JG$SZLS1i2q51:sgrDtWXI?4Km1c,NHe&P2rUlhea.f"*o+ksBL<_F\pf+sD`n8](PWH$h/G4df`THCo7-6,&4d,C";%*UFQoWOMWrG#T_a+[dQH&[1,\#!Freo'D1">W)d[=bh6YD/@YURLi]GDU0EX1f!Nj(f'^Kea5K1+UO#f1"O!q,hA`]ior/]BZ(iQd#H_2jj.*kcAtq[Bk@hhCpB.Hb+Ud%@A]NBY,^Uh4^m)?2ORP,C$q#pNBkU6NBB#_YV"_,GeZU-'VSU.RRPn5r3'rm3^mXr*&%$"diWq&[RM$G7(+PjT/plUcS\Q*UA-YWn\4;e),MoMYMXV3Q/r$MoHnhrnpqn/)#InrT8:G\JRA>GRfk@t(FTpr!OcjJ<W6GH6DV\Q@M-3ikN51o?RWO'I)$'Kk3A72P.-iZEJsUW3`S=YYth)=,LLDMiWK!EO4R4kT-&*=^AA#ZPi-74k2H=Bo13;m2.%AGP*cH3?9n=2m-"9D$`f5%>_=K8(,`_Fo<gQL%>U[-A<4@Ip3c'M36V+2EmLU/2sb?Ad9];d>t&_NEGhdbs_<#['6:N;tnY%Uk#-8;t;VmFEms(!&07?`?2"0VR"7Xg%/?A;k>A\,(1,Aj,srR9)%qJd<l,g3s<f.K05L`\<$A]4AHnZNJ<\OM.m[LJRU+);H]_']QV(i$oTOfHDaj<BkZH@mGif$*e@knQlPnq%dhS\S!iLoe$&'_(@lK1gR@C<Qjq8>ji<+M*5M+pU9H"eW?3jrE`apa!;qV0UKIT6R?\TY,a3oWBl9k<pXr;.*r&[MmmQAA%$oLI` GEkfsTPN-%5r,"]B=Y[fd39P`"HnPA7lAGsHW@NP&oN!>34;P49"mtO/RK EP6mMmi9HYi%TG$AslA@=M]cN8A'M>#=-[bGdLh9cOXh1.N)?H_kHo4nH\6II>Lq5'VWI&56#\'%qn,L[EGALMb<q#4nB+Nra<c7]O;((3`G=PrQ*=T>lWhAE\]fTQpVrbO'((nJG.^]=bS]'A3_YL^(HM%V-GZS@"B[UtH1\%)-eN9=<NT=e"V$[N-JMAW4*AfN=N&Tjr#5U6;AE0lAA Y:/hmF"&1\/GoZOC@7T'NWX]r_47d6\g_kjXgt#E)E69NBN9%(5X;7n!L*H:.Fc<lU5#,H,gglb>R:Bn6S+se&9M9:gP81lj*h(8RWj`E\Lq"L2$W/rUCCI:Ylb'2XWA?c&=C8_5/P86_fhg05B<=NLpDcR ;rg' SE8'L%mUI-9Xa**8@6'WJ,TTYjO66V`8A#olMgs$2_b".Q23Ai"nNI"4ECibgbEnr$8OD 4]3b=#;A@G-.VYKM"PKmq0P7,-0eSZgl>=Op60pU6=;A%U'LW4 MI;KR#qa;"ILAqjM000Gkq9KkH+;(:*.!c8<1tjH$A=c@Y./ikk)r;ZV*fJ]<(JA$teH/<J04O=0VcRUXfY&Zed]*E(B?4G_2PA9cAUn%U$\j^AJYc1,UA!SkheN.Ve>'Eg"Pfo"+8<H=Fq)Hijb,J@;E\KKOI>`/TB-r(% l2K'E:_Wf;5t!rcUpA%Fr3#5(\+PV0Jl;;Z'+D''@FS%Sr^Pi'=sGE'&;ATs`;GiaSBTjPkdiEce?k/a6+16dKP.?n5h3SX<hbR+Ms>Oa,c@.48=gqN/!sRpJ5G$)J2Y#.8no8d^:fVo\Q30HaWP1+l/]"K.oG;H_4AE,rd]L'G5(:CgAqFsoC:2DtH94<,D\=!CiYV8d0(j9rt-CaR*$#'pL_kZm????VMfoN?tIlB=cJ>HOVH:$]P-1mHoXXZ"I00Wdq5j]E!)&#S9n=%VV67\@B*9?CjlV>AD:J8/o%PG9[lBV'3)!"]%Z-p, -B#[a9MkZNTQ(V>Oh1+L!q6?]jc()`?20W"6I8HA\%4'q9J1S]rAb`Pas.Ts%7lWog6XQ\ *S6dMc,-Rd^C?\@bIFq` 3jO+o,j-29Wp!mN%e3P8_La[A!*UbM+mhJri`a!$#8=\,J.(->;/%$%L<^MRThi"s%oPQ,=?'4\1;SF3b@/$HeC]P&,(^;Sg0V6ZJ<NGL*Q1g/K$?F FF6R0Q1^e]nX3(g08HgECp[HHH*eG;+K>/O%k_qF:H+!q<)b(]3>^VC(@e,FT1l6!j=Q\"rVSSZjR9N]_<\s*@15N#06gt:J%8%4EFbk<e;HkN(H7g7<G?L%R-1Sek()B\\%#E=E>tD1BZWA`RK/l@K43K#1.W:;jQE)cN1Cp@A?@RM;<lHd)q!oq9[W O5UKpC`#88Aja0i.fn">`%>+]5[oDL;N(+Bitm"Vk^6VJB-[rJ#6#GMH*je^)pM).U9lZGQXE?h?jkXoZ .G:T'E<\3#0apXS(#()fj@^0A8l3S"e?r3E/A2]hbSU\Y%JY$<&Zd)"cHs`jNf_8)*K75EGXaG02T4GY42/?X>#HNEHP?]ntgZ'l=I2CTa"TJ#fELgaMTZ@X/0%?s3%c&#Xd"$Zgo[oG?)?TBSoC9^%"\5)4Ccs$l"k(skSq`+C;D9pCgi$PkmfV,sBPInTf[s) #"q=KbP\lE$Et\pfaepfX@<=qHrj1) E!A2W:oFRZUed;2ZF4V9NqmU$>/e$2h]rHJ2bl.1H61)5bZ@H4I/e?T.3cN=YA3<fpigZ"fJ$$!$n&tQ2N:fO'Gi(CHMe0L2H(Q8M"7Q\<#n?gHFi)# Vk+^pp:rfc`cA<l\T_fUFT<P/5+<LMHET\=@SJqE=R@DMj\gjZ51b^=(mNa .:r)YlhTI-/4nnZ^tJ@=LH@SOOAS4.Hq.2 QseF]ZX?R QdN]`TRjeb5p!IUjr(nte;KaZ8Hh=]>qarbFsQY+;Ms_0/m&d$l-.+SaG#GPR0\K/;H/E9S-9llAZ0Ge&3-[X>B3m[^;$r\NlKb=ZgkVl0P?OrNR(F^^NDQgV0\N_K$8h&.1?QAE/ada%f\"NL&VYpfk_Ah%k.g$VrU%15WYcA"bdAKY<KP:fs9a6d<j\XaGI4i,Ui^e,,si>b@*h/<&O5t` 2dUJD@Ai. [nKs:3.U9iKp4ANWJE<Xft@nm/K5opd>MZN8n?CrqG_Cr/q+h#3L%\)HkT6)OP4o([CsG9@L;-0#f8JNGYFc %o]n@IjLJCg>af8B89D0`mmRsTD6QPP'2EUOdV02/23/07NX]dBAC^CHln(7b&DGV4GdSVE>5MT@:g'<(I%E@Eoih:L"D@)2[rg)3@Ctrb'2()Oe1/7MpO"2A!57c_[-A;*]<ab6$hH_FoFW.%r;S>N_"2&;A/k9=!Ha7BYAq+'1(N;t_DA32ml09.J4RXaI4#NK'=8>H2P8g]9g;_#E'H\7R?1'%l3RUl;WT[i>.YkaKU#1IH4?YI,,CLSHVBVr=S@Xk4TA?%K`q#\YjT$Bq:Sb#U;R;%WZANs+Wf/eWHj*.,ZRi>mh7j$[Sn7m8H_&gH+-!e(Z7TLDOqI;pbJYA,aF<Its&KI5Q?;_E@hONF:Pq(rr`smD9UoHEaqdoj7 qm3G(c+P7Qcm[o&:+LC7]p/GXXH80F33??MYp l_8q5s,)VkZeJ?#s)cq(/fAh"g\n`j$jm;afp.&SqD$&]X,EAK^8D[Ag>MX#t*/ASaW#+)o9gr:/]9>XE_es6dO3RUPQC>]HS%)#b_%[Z^g0rm^q5W>[Y424TcF,mi0<'JU3o_eGcqKE%)Vj8+1MM7HFt5.Z2YcZ<f\ieZ*tWeh5POX]M69eib0s`T`VN-g-)Ai3ac8F%qN(+o Mt0:fTXRJXA'X,45k',JrAi_\RB-mVAS 4/a7A'm/ A./Q$bc/0JQIbsR"9&MEdBsH4IopG:mWt!N`-8kbFXdMNB(6?!^ag!hF"&,*oe@?9ttjm9i&DI2a#()7K>?WW4W*m$U@(O1-"imf_%1kgAVHRJ(:GptA!1id\<;'3mV][Q,bqEk%8 L/[KbsDk\h`pirL5\pp/?to+NK=Q= .s[OHR. 3>*\Yt4=6G5&2U1Oqq+bm8dZEH.Qd_Gc)(Ze;&Zn?<R^f<=.mf-Db]q,dKNX;2F5/dde2"'/QQFLe+qDI`#kP;KiWnG !J:r^IAU/Pcr3aPf:0Zr$Gl']d2&VGS;W1&4-!PaKF]B&RZ#c8tQ>:jC(3^2-W6*m*5:GrPS(JE&#MDIL(Td&3nrl-ge87?mtq )"(3$r_JCWcj'VRmd-24+.j3I4&X5fMb[sntUDWci$*K 3U:[]/YZLn08 %hb6GRFRW2U(p56 /Nq-Z]3r81kDG#p+E'T-Hhq$"5G"e)irQd0J9"&QB`ZffD&5!e]$];IfWsQU?gLS+9U08.4XroA+;s?0-k2d2R8`.m/UlS])l7$J)j`1:I-tffj$DSX)t#U;KkO/P'0^o@Sj+MO^lF!tAs<D\^<;A6`-An;39rpZW#02dl`9^4A^s5A3X(UFH@[Bs1D+V[bg2VIfWcb^@Ltj#OP MW[7DmH41Z$0CIpW%j4eU0A3PgqetLjC,=sD)sYWS#Qg&Hgd4j$oG>>m&%XS'RYdC4Z<1_FY'[H".-;[&NP^ ]2nHOm!^RO:V9GEm'8si<nHJf(X$e8+JhD8+U/"^,CsYRf(!P'ZA$mgPZ:#dg=+gB&<mS>fqpcZ>l6Z1OiJkCGse2B!IL7\YP'cJ_6!CEg.J)fCi <5.UfrRlDY'&""3e`O"?sD7e:YrWai>;a_Bn#fZF)#8h_G5$Bisde?Jomn^@o'1>5LO`NbpW6?NJ!S5'iVQqi1862S_)o7><'O+ p4$/d!dZR(.&iplrrV7Kr@Vi ^G8?P8sn)XZ4<T^qU .j6tQ@a'n(%*?Grc[>)1L`^F/K1Q?`'8lA;DLDDmp5VMbpi+7GOd2$:pD<6%AM(Mh0kg?jD?NBSFW,6L&[PXNo$YgY//Ac[2+A7X7R7ZP#1')sAEN]_A2[K:M9h9lVE#\=;+Do&cnCp?3"'S$0YsF!7Dt><V:!X%lT?orUNR)A4#N:Wr'FMKc7_fD(e1g_hkV^'-<cX'9P=H+a'CV=p/?KR]ADqm->Sa_MIp4BAFOHZBni2f$(1jQ1@C#no]N#j)LV*p6MT_)Ze9rF9ql89QBsGj2>3%2<_@#.W(\G+mcm'+[q'*Oc4a%E/A]MSncGaf;B(',QCGP2eL@%7D+g0%!FSLl]]L*.F;o)qZ@63<&F\).cDE<&2e -(5O<;2G8X5e[j:U]G-5U.WM)5#40mQAUSr)E":a*l7I&W[@*ZlT1ES<N^/Es:#1K"&\+SA@Z=nK.1"Gij5<9$]Kfdf0UHC-!k*_Z;Gjg=V>J3OQZ1@1cL*Ac<]MJd<hGM;pl6A]T\\bX7( Lj',)2ttD'qk!Pk9D:i^GOp`)eUE.KKsD)H]cBi5YJh<itnm&TS2d(/jQLQ+d*DRNs$!LanT  P"$'A R]pOo-3I/#?CC4GPR5GJsO0ijDn8g97>+%.USp+(=CAcI)_hnADV^s-GW6Fm+r,?$S28i^PJ'GsY<>)7<+b$PWq c'jtT#nr#AXVBFX,pcM`%OeGKWT7/!SqaqH9@X57F#JI*FKA_/1:*s&H#XO;-sOOS&G0i`]P"^1jo5W6>$%Bs:HgZ.9,WK3DcQ`W,aP+4:s5AWjM35_1)dks,7`f-VJOsE;D:c)H=7FZ/VC,t'csDfF%/Fp*T<ZFj?a(oN^hn:]s)#:OGSs*$2S$;,>?@ie*VKUWkGTsa<9Ud,l;kR>/7jjs-eH4^j=VF.l@Tl7a,ApLb<HTN>j,?PmL*t37#R)TVNE>9'LjZl^+@ha;WR'X9FjOU*Ot?k+#YE:7G>nW+<AT'8p!TUpZ,+]V>rDPR(L9MJY>ap?'1 A\EZK$bliYn&5&oT<Yl>P!D!K%BS[U!j;b0pY2 L*gBC<m%C\(L=IkV756`'1SsB(H!-k3 *5Cp_??X"'pC+0rtdLQ*BSAV@Bt[tcP?DWT5b9M9X&04:dj]&+9"Z*Y](68fF-,%BL5#V6tDV%:U!+r#q<#KG?*j,nJD\i[d/hM)>lCjlt*&<1Ko`FXB\:*ZbD]9K#`-YKZ&+g5h)F/^=97iE!ApL^rdR?1".l(e)t!h<0lg^;6!4@#1jn\Q<^$LBt\;  8`9V<`g4LC(so`<% sAY*a.P'Y=M>q-C?;k!?knDk!pZ%%$5K`XW,b8H1k9,)sEbWjs4*AC;!&H6fafG:Al,0c,eWQ4>,lDnFSf.DK;*`F7`b$WmhO_ZdOa01Uo#A?,RVD=,@H-%;/\CBD/-Jb")HH!(0XgSnIhK[%b5-/h^?Wq0Q'n!d.NHig]\K`5c"X^b"h&t,Pg- W"[X(gqPQF4W/$GtB;%AJ6[#VaHTgV8HNNV2^rKR%R_"MU:Y+-Ms4nB,1#ArtADMSY=\dYXe<h>Q])g\M!2cJg#SPCHqh711ObJk&HV"qQ^od<LfK@:FV'm;$t^k:qE>*Jh2f/+m9;\Q"@IG$0JE/Sis9XS_2T!;K [nL+VWJG!s0&:@klHsX@(f*4R/`sPYR'>8og.[LK-Bb cq+Zt6JFbdaM\n;o,ohqe<mOA$3@5dfO-)pI,e#[QOo.k"Wl2h[Q'jk0[:4p!LVWA.+l\,1cRTL.oogstQ#6:.1=.4)9q92c1]LcaJ-K'n=W!^^Mpg`5/<(6>1r 2p&'i)&bEGE.ftQfZIsRh\C4H=>3M]d5@c+3?F`]MNZeKh:/[(JWbXNa]q`?F4jl8OJEQFI\>#B-t1r?1m_[I= 5:BHcP@3$d+aG"8;Mg#TL4.lT2A"pmGo@a"&nbID9)DCW_SVJeZBCClsPG/03gddPG7D@!A\Y&j5s93d:6kT'LX$Yt7gEP_L?(p.#r=*b-'sc@SE6F[(>4nn(ZoC<8AJ*k@(Ua(mCNt,N@b>qm,o^LQ9W&V^9A5I%Qh;RJ\E+\BQ%IoG(!3GO>l>CAi(a%mmB*\4V9(lAI2J%?7dS^3/b0--0g25foi="!]`r3B`ist5eWDsqF'GNI9q%#TmbQf.L#ReE<pcfAT,ODsQ[38^4 dQC[NUX3P9ZeL!J]asH>ont*o+oebK/OH=B+;*tiAsbQsnUFeLIQ?j]kr1rjM2TWiEbkmP1]eKPmR9/A]t!Te=W<JgQ4Q0/b`'Z2dTo?)_"hmsS0EXLo; Y98sYA;nh[NAKRd;0gbtB/A43^d6"IoRjt;5&j>>9A57.dQP^mn2Vob'5jY,5orT*p5*`'@'^GEG[C`A-saa<Y)pjZ"O++=,Y?BH_sB-[>a#cQUo^#>i+4H6<B!1QeG]PBn;8jSNcNlROM#Q2VJGS)E\":::,=0,SBCbO6QMNB.6FlAD"Bc!&H]M=f/>tEkHi4@6(]#W.HQT0FQ0IL%=-(!r9^!k2MWXTN-dt^BU/'"0f4tZ>gQ^4/6>3:kb!8h <NN2@l!ke8s,L*i$bemn\bX?h7&Hl(1ZC>gZ#`[kD7QBPK8AH9/loBF`d+&(.72#=JC!egf 95%>9#IF]0.T-&Y%IUD+tLR1:C\&R!rZ9Uf2>LjOMn%Xn; YMQ5C[f(UhZ3nAb,CO7LW7$^!o,bB5VRhSt"i4i::S=7J5X[ .Rp!-E5#FQN;+qI]7,R(:SX1%qCWK,m\9="cesMOMHp$pS1T0 \C^,?Jt;_Mm4]=i1X<C/\!][_>CD!spSN?1KInk`qiFiWF.]NS(HN]_bh:VgO7'\etNMBrm,/4>&o`W+tf4 -FUmm5\r3[ALm9[dUJ').^8);Y^`3P'A^iVS<t ^r_.4hA5Gb3L"oK2-X0CK?l0&@(O\_RZ+@__a_MCgFHIh>jaXGN/sQhOITrQaU"p&6?$4!q6CE)>Glm2pGe-)AX@4V,XDT $`)7npm8=e%*!>2FF^aXQYV_[2d5C7I_-[j]DE^\J#Q&AMW!$W]G3+N,.\?h>%o0s0o\gqVHL:%N]iL=]9,j(m/Ap5moYVK^T"Sc(\^qk1pe33N=`j(<*V:b,(#h;6rS8iq1A)RBW@!G7O&V]l9?B;Mm+8<-fWe]Zo5d%VXW\h9a4%4o`NKq0B/n<Qqg>]i1@%9GQ^2^Q5k*.$=LJQ8kXREg(8RK8c#.^FYVT@_$.N,j'sOiLfPX4ePXH;)c3jd-[9Te2f;dqhqs=S1Xcl&KmS%I(;Nrp,*7Z58NA/4OXlQ?[%3.2co(`#KCT;3SJejOR')!?]^^1^-UYY/.8 823gU]>h=#BjfAn=*&mDcSKpPsL(G4KgA.5%@acdimWp?ef:eiQ*@X)Z)MZ-pe72V)P]e l-A!=/Z<%80KA5*$0F@:Tt%qDNs4^e.Z]CFA^S"JhaB7r?A-n=otK*Vi#)<58lo/R4l).aDAeLSFsno`1Z#P3t2GC3FAal78/hoK,>'/'Z>h`:8[-`^7G-#Q7d.Vp.O^b-\#E:q86[UP@32gn-R4$-dN'48YiPh=Wj/H.K[^>0e],)7j6tnNq=G9(lHZd=*24"@WP!\.rC_R3V>W f0CF;SKZTE1ZgZc?$p&`.eE]:5^?<`]T")RtQJiXFI%U$Y]+cc[ 33SM^_RGC<;&B^XnoL>"4g)6RaHjX:)!P%EA_91FCViV<?f`Mp+$9Q'@=01Ct*#SLa.Nm3aJ#E/iHq1+[%F0!VN91T[02@_*^D^ng:#qUmANIgE7S)_,@0RGs^n$asRjL"/[_dQ;WB(D@i]m0lDbUF4HEd4pkdbEO-I@W&S0#J-G;R%`S-!BSR3'MP*H(Y]#kOg_4<>7)"lR3HYXWpet\#r>+f`X&g[tAHI9iZ+RB*!4/jP:Wn?`*A5Y$b!eWe_[Z$M\<`@OQm4&(RWRNg4<Q-K5Xk67/??eG+CsL^`(#GWOqedc:](f HK9J\R>@k^D(KhZ.*?K#=On8L5sGd?::5C67$Aa[.t)9S\1"(id(R)-O5 GIcCO;05;l4;MQ4)K^-i;UHS ^Y2]!ac8r=K9#i0(YVENL_>WO`dk'?[m0AQOSqX_UDGWBkhS,.@W)J6s0aAdj3Tk>I' $ghFc!V[+,SS!:sAIg*lao;?1Ule(YLR*M5hgS0sRY-ULD%8"6"Y*CFA(V6hW%KE\=V2D%:,63r^g08WZV:OD'?-pdNq7Xs i$aSa^,'saNZ.?M+g!YO(Qs]>N?IUY?TSA)=5QmS!@%U6W!MQ#Q3rS[tnb._ab&BM,OnhAE$QlJXT*H3MH$jKa.1sV+aEY5p:[5LgFE[+n01)l/B6iA'4kB6NV!#.,^LAK]r9Yi?mG?VoM9RkW6j96cnWCLG`4EGS+b)'_!4tAfYJN)H,'[:^'7G02\eEZVFkL^b1C5V<N/QILA0JP4N5e7[lRZ!jLY4#!>W5%-HC5 Rb8"E%5!fJ#@l51_4a+j>&\36@h;AW;GpNcg)QVBS:SJn.CE*(5p'FqT_fe$8=ILSaA]KqU-'S-51i*AQU5d\m<5'VZt_nJFYYPa$h1N<aOY7$A=DAQ`pQ>WY^[2Pn8rm[^A$K5!86p8g@_m@i6oAIE4ScABg2^@1#5c&V$G%b6qXMEWFP=hZ1I4@2,Z9OE6AjkPDrgAWXS!Qk]M<*%H0ck/5Q\[B/%)R`\]%?/8K-\VM3NF$W1s@Dp=6+bk#H2KV`b989I@RUiQ2[\5LJkcA#MD/ah$-g4GFC2&/>F][OmO0nT'ATVfl+JtK?5OeOlmXOsmW_]2:a-*#!EDefH(RA&d3hBVH51b`JNNcZjFmZW8LhhCfRdsX_;[LPk0^Amr'Y]MaFM>&"Ah@5oag&U>0sgOh4mqCk96t-5CDAAIrtBjMt6!'K(j/!Y (h/'9m3N8:?B".D<&37kX3Vd?kdMId!r2N VO :#/M9pebF+)s8_`k-jZ KhD<2Qi; ]"&.X8Yh=`_iN84L^>.,okJOs#e\:V9)_As;W7&fsW\9M9A?bpeq4[BAJj)^GanF;dRBATt!MoskAbDbjmkS7)(,J#<3n-$hfAM lP\F0Go-'khS`KU^>%d>-ROR%t?Jst90nsR3`9OO+mE6X\japPR"54,(bhMjc$";$h-e_H5=tp,[YicH^1Y`<AXO_"0M`/Mda?f4A2.oYt0CKf]+2D$h@C<>#K5%o%)D>QD:  scf`r2dgX">cHlTH:>O@ZHq=r1MS^$gGN'Q'_MHD5n%7m9At6WGIAXS'%V*C%I(Hc@=aKUe]sWo LZG9-<nfnSKC.$E-4H RAi9N)C]jMJ]]n713<10-g^4@GNOiKK'M;3dM%Zgns9dALe!S_;b-N7\_V6-b ]Z:=+idPs8X.[G/6NRd/i$760^(&)m8U:sq/4TX#[Xf(<Oc[[%aip8`-\7$[o[(]V]AKF[4"T*h#4KapX^t(X(<?A./%YC)@F66Q&R<U7kl"G;"OCU:G;5bYh(Y31:N=F\]eaJBW0&'U3t3N+=b$$4Q*i`%Q?GA6Q qf0#0,: blqbON(T+J0$D<aD?;-%#`'Qc+bh.7ppWMO@a#^$l^+#Jq[B7"kYcrpXURd#0tV!KA^@bn@'!nEW=i&o .-Hm[.B:Y&q:dT+Jd)4!/:Hqa1R;P"q- s/a8#:BWc$^ VO2_\aXPY/p[<@oIPZ.m_&A+>?USAg,kG:bZNZ\<GShNa<t)&ROnCA1S )RZ4@VQ<`6'(RA>Q2Z@-aM^l5CFCQKa%(M=APehR>Q;-8-0P/!-'q 3#apC":a*D'E*a9[*!Q^"l-Bf=@@Llb6AtdX@D]E)T@rUe^+CUqm:o'']Tc>hSVnI0*mTmJ@r5`k9@Fk`R)2 ?`!FIV[Km(<W:a`+GdRnS^/q]o<>Ps)aAdN?*,Qk!,[^72@"0Fc!?'pr2jVr;W,Sc6>C*Ttp33,+@[p,/0^N]>b")p*3^c:p1UULHW'`Be"Q]%:>>!lJb:/f`j-Gisba?UA#G)FA^tE[=KQFMt-s-NVI\03s>h;`@E-D6t_6L @ Hq(Yf[.O(@;"<em,i[#LGKDo>R2i)7l/>4_`_NaT19i26)Jr_+d_$s X:\&;O%@[( :%Z-,$!9Ee@r5MHL6G8&?^!Adb]e@oD+9ghjPrk8-A&1KfVNA+1Yf1;04dqhb-<>5[#LJU#;t1K/!e;]$c_eMG0s+F%Y'6$A/5GJ;U])jA/JK4Si03G$`^7<RL&jVLMFT<-ZXTDbDX3ld1)J1Cbhh^/B\_ErP#'X)h#l2f4M6tND7o2H I1,[N6(Tp3Z=eZOL(CjFp$:kqAnLJ9,LGG>A0J@g10a;Z*B3IjG4@@R$G&oYI0W=!m6CaZ96WZSC7"=QM=FKpoGA)m`Md7:.amAMa5BToXgk@PAYXElF[]A@U\>AAU]t>MALHRkqRZ<(*o8coNQks[i(rlXl1>/#Nn2`GSaAE=ab>6Rt_` +=p'e9f#9QVU[#UgLV7IM*&6lRf8(.'-DNK>ZTA;/hkV`1&k+A8n9!6JO(3fb_;O3.[ QX4+o^09RMK0-'bi']\J\g+#04UmYei)g]%=#-ZG&PYQbY34(8D$6Q!PKT$+U2CrpR"[K6,\XAL'El-h&TJ%VJ'-qsL=qVdGNJo`V0bn[)oeX7S"qqLl50T=h*(d]Y<Y8VSSdiF5RH('QbC$Bf=O"D67NT7305XY\ h:D3X,]a0/V\MCg7T)g1dsbWM0GtOtk,;$3+aorA_K?1fY$qajObBWn#$1s?ht@SKDj"mt5niIY 3Y-o/CU)9sWM]_G.8pk?P"3S:B<@$PdEFpqD;#,+:T[K7"'ABO%bFMoe)8H!AK]$$)ljk)'pMCI=)J'mo!5>o@@C)+)(6QDJ_[O&I=[:(O6ABIPAg"jFg+gm0=kl,GMtT<#L@<Q]7Dr\'SEZo> !sjU%S85O.iG`1SptR!Bks[AQ':h,\FM_#p69ZCI:VR6M1M/?ASYkm \ng;kEZ"<+31"U@(`*ar^?jd&M5Aie`T.RNs2$H;0BZqep.33K $CsM-4)9Af16*)TE>rZ+5b0;-"' &edIKN(`N7A8)8qsrW>)_s%d4f3o)lsG9jMBG ;1nS^#QE#YkA?,R6R>JfK=%&j]0*(&6p3icNN$h.:P1_t=!00#0l!SXlAPP?>03)\99)GUBkPlAWf`6&?@!l.BZqq8D n6sCeXg%M:EK2`%m1C$_kF+PW%IS@.%9s/CF(Og_:hT5 MJR6W<-:S99' d!:PgHA=.RG6-bUAcd1.5eY7&g]Ca1,;U?XLD]J)\l\rkG=Q4ML#9;HD$> i:;On'i:k4G:%F_6i[FG'2V<>k?^b6.lF;leO!G<Z-8O#6C._b409et0Kj5+R'>N>`T]$\mH.J9*mdF^0kNC:24 !5(S<Yp-EAT\_FUF(H n0ZD*M#Z' /.kCt)0V7Z/c]O3Uc&s:3r9hrb;Z,1@i]1SXUBH31IG0TC*=j!LiqoAPG;seVIL,qk`!TUl6f`n=R]YGQA>@X[AJ7 Q2h[K:1^Ab*J"56tm<F/d)&@'B/5l_TWcaVrsH@:fBV ?@,k*A[A$;=.%cI/LjP`%q2ERL,Y&"MX&tP"PP]H7M]Sq92W1r4A>B%7$Rln"q&[h&=,BYh_At:?asAr#-fM)n]lK@%lA)h=%.%-X+LM8b=K9`6&<oH-4n=2MKM.GK,2-<i:#U3cl$9`$j?go'q<H1PirCsT]NA"&O!@./N\S71$T?<Gg@Z[pLsh6fn/46s?PZGT&  sVC/ln3O'Y@ Cq3jnT,3RP^+UQVLUWcL,mQhb2CMk?X3dHB$W4$0:,e89_Ith/_BH!!e_+BZVLE_CaN(%+#)2TTG'XgiVDP78AX*qS]'XFs"_Cs.lJp%J.7)dI?MIQHhBI#!]`cW-*bXoR[Z%d^/;3p! Rkhk:h70^!LF>;$0<iZm8b@KX)5^%hN2fC6'"Hs+e2ij=`;RHdXch*aMf*;;X-Fs$_)C$+*Gbb5rYOtpcOX0("e=j[O$D4P[Z=) q?4;)&l]I; B,=gj=/DlS(7tBs(a\dlM6E=[" A&/G^`")L*M^Gt=m"/CSJkht5$eY4I/(Ar+-gAqSD9Er<o8r;hYj#@rA:H*W@SAi-ApE-;K.V&Sc;LC?1Tq[0%@Aagb11@</ lQ0_2aaXcQf?0aT,;Y$iqdWe`>D,5X$QHS`hNP3m9tZN=s#:5kd6!Tc=&LW7br/$?6YN@L0E4h/Y&:DeAB64,D!osg%\Ij0A W(0A:QVGh*ne^n$m%K0tPW969Gqf85jH[*=2;8V%gpHV3KH'bqZj#i]QImc!'!rKVP5AP6l1K9^T:&DmQla*='?X1SgmA>;@'>K!n7mL%]]L+L_)NE*c36S6pRk.&P,#AFhISXq1d:(E@)ltEIq2Ik&KN[.<r%g]Q\-FiNh/1'$/EfYT1P5n=#9[AEJZK;pMZ$D<gj;F[!q^MOT\MIjM9JWkR8Qt0(4flaaE.t\Or^!pR*hS?AP(IG-H--$XOm?TE<H7V_UWJA@aEX`I3'H)@b!#obCq`4b!8_XIMlshUMAW*R'+,M9mfI)jF[1H"dA^AJM]#fXN$Af3F6"a9]`.!FW8h<gk;nliho6mfgYmBs`(r=@9Bl%&/STZhMnNkqA4jX=LjB5aN;a:(pU[@e>Ln(AH\qqX/[87\(P]rM3Q[F 8hE:![%M/*2V3U.Ncn$8eT20-@NA*RNt%p_-"W]/fsC(Nop\Am"f.VW[0,jQfLCPm#XBBE2U^sV]<H9&NTO0^gG8 M$'Lb2XLO,+Lc7+pgAVV\NO/=@:$5ACqg3$_krG^q:(KJ;bRD-[`/`$%P,ipR*5Ns+f@SdO?o41O6gPbKd33[NQH%;0S;d(-R@ P<_;.> GasoT^9Q (HDl.MMKbU,fNR>.[N28U;d>Q<NcS*c!1Aka&Y@rX0abd\tHKDEVgKo5dBfS#qgsSll_;)EFE.c(/0s+?<0,m^76Keqie5]oH(KXX6NsbAlBUleIO?J6?a,$:j$!j6"HNP&$K\o\AfDK1\F@Ie,"AdK7=Jg16bo*#^KIm$`A],19K@*J3_b.j:Db 1 QAn<Lg-ADSI12S;,7F,EX#/b/D(',e8=sCVAP)nVQX2(Z2o5K<g"Kj1]I4A6[d7M+!*_gP@gog$X7e*3:2h'gMc3K;0>Heeg?RrMJ5diRlXW4OdOO'Y<sO33AnBs2ldD1]`67W _`^/#+5(aC4YCA@lh?& ^``Ab<kk=apN&1l!:1YgajhalDN)Ek>SL[Tj0KE2k1A;g,+3da@N>X&iR*DVB$hgOrB.0q%iA[/LU!#f-s.1gh/nd,8cK<B0p-.p')jE[X`VR6-2V9*0":](e<g6fHl76l[9+TFDN5P=t;Qk?(tl^XccUe)QT'4^51$*NRh#iW@OC>*6!p7sFhgmi0a*q-g(t]^eOQCrO"-[SH0#0o0Z^pJZXOO`Z9EaV`C?^m#Iog#sYVgm-hfNIBGUR3tebZtKE'aN#Mr<QcE@'<M_<Q/Lr"oCL&>Qo6<1k,s(8#k-p4spe`o#\eUG?<n0!i@$F]M#.N.AVCZ.],UR--X-C`,@C"PUjhK(Q0N[T3k]79*lSX;DFl >- .;tNl>H9tlP)mr3Z$!'o+jX95fDM[t2"1G?ADrG9j7EM0<l/R1G]jl!>,;WB-FpEm$sE[&"::Pnqq3/@H(,bW,f/KJZimq<PPgt_AK\bmbD&DVao2:fV$Bdk3t.K5N\&h:?=sh33e\R2b=9lFS.P10#K.k(VeKncUo%/:m[L3f+)&8,fcf_k<9R[*K=[Q<nX,^UYSeUOG1dTB2,)-ne.LXMrB9#N<smqQ),mFIpR`gC6ct73F)hpY8N.bhVGhfXb&DJR9b-[" \sg`Dqf4a`mH7c1em3m<1Pl4KX9_`cg)b8jcVAXDIQ]dtH<`3^n\?M?,e)]P+RV4`A*CAN*tdEE2^ffnrZgAKXb"'@K'J dX?)Ka 2.>(WYlJ"eRMO`TXOpSYM6-Ob&d6S+Sf&+!Yg]4+A=qH5S)3d7*\mdiP?Amt?[ANU>OW#L8teRfSZ[^67<[f: _tX'AEHnAE[W.oCg8a$Pt_g`'hUe9L]R)93.*,M<X0R&t@#q\qkOhcn23?on@ZHTU-;\qS@%<;P:?h>W!-2]Z`.hh(;BT)2V/2m(LY&)<Kr;3*d5[DL&?fV[n-OCocEE;@Gs'd_.%,sI__2VpRl*CpYCnVl0l7O4V["'L><[1I">#]<<LW]%L?,[pOC<!` JKt*S65UOW;AVD#.KbR[<q!D&>[nSVMi+"9Nf1>_(KKoG<m^A[ATiW!kZ)F+$1Hoj`EBRBOaE;T>9mT&s&_k\g7%o,qZJDOtRAl[#@\AI&^*<VAE49^JjXON0(7pqP%`,!Pbo>fm!No$e7*4r+i^E^T<k>s/=osO'Q.<t')"5*1/D3Ng+c!^PeoFI?PIX'k1!?]NeMC#AGT"GqEZBf'HB2U)?#j<$%WZcl389349(Rin)]>`OSr_Y,L0TdQO!Gt#A)+2t^X?Li6\p+PB-4A(eI4$G<G2KGQCFMGB`8ae;T.@a?S>BrC47;&FdG2AB.#Mf-_fP#W@ro;\jcEr0/ct12[+N%<TWbK ,n &m!ZBKtjXU]f?C7\lVc[Q/PRQD#jDUU6<\@9Do%9S'n1cC3E#<*&^lW:VMc7%mA>="D"UF\qhD3nJCm ptMaZ!-bS2:;0P>&[T]k]a$b-3XT\-'P=KL]A%Xh70nX:Uaff`i#Pgf,edW'_GKg<gcCaiTOTpt/Te5T81ALM\++"$7jOIBZ@GZ@J1@d_UKg0o?[&'U:Y@4D")CUMik)6'Ob="2E@5\8mOs;$4SB/49L+hD)J;m_dSZl0.JB`=tM^bg4m?VN.n5o&bh@hR1&.2LP$Lb?gRk "c?"[gQ/f(d+tJO9O flH_$\84^ +T&5TFSD9B#ae>7)g5gYt_,9\L]>go,jr!tgjAOlRTI"3DnSX(mtXKlKgA9bD35!>>*1_6/"@)NkVS%mKFfHmqZ7`.LBR;,p=_Q^D63lt\Z("HjpNb\4^0<m%JoPS:ST9?D9YciCmG2iS5Zg<02U*Ai?nLJ76">-<L9\PU Pk?V7NZ'd]t-AZ'dlO+>U0cth)+ZG"<2g;Xc.n]L$btADVq.e"VWSL1rV>=4C=0;o8:9to5FBNO,nAm^Dh3fR1j,!M2*\*;0e(C_i,km\PAn/fJ_^5nfOMk<WIBXL);:7L3SGnnT5S]U%jo"U-,@kPHO$HN]/q:QQ:2X\Y[VBACe&4[=*FT+)Q,Vsb`6obVQ*$r$[@t-p?"I !6g6aJ% `Z@4Goep^#q!_]F?P%>8=>,d;!ZB(#TKmVTo>;U\Ckq5Y>[/b-JPf7L@tL#d6'&NBV)f],\5I-S:#ASCGF!XI3BH^=breg"m8lAAbV0k_BSC2BZQ:U5"C0Jo1GGd`1gTH&N,IhHff.UnfZTB_WfS2Zn.Gqlnj7sZS?L%R_S8m+P)f#BZ,.]jj9;Al#9I";l:4Z2-IMIZl\]4KFmiq=(t1N&BA8L[H0r[Wl; ++?AU3o.A6T)cjD()7_99M"mVd.S#"LIoicsog^EW&k?V*X_Y?j-)4AT?Jr^58IJ:!p2G/q;iNrQXTMOF=JOBfL:ZBlh"L0"PTK5Q`1p\sK0Ne9Jn[I@ P&/e<:,>J<j%XEU<-@Xbc:f(qMJ 1BQFad,.,p44t5/5r)Vq=c5(>!0k0iVd( -oVhY$&PS(>6#6D<Lr(322AeR`1Z*?O7WNHJW&_CHKa<5*h9@tn$GWmW1 F*:'A`,%sni`_trc;RL-M0soZs9N1oo7X%'D;G$;AeTt(5dm96<24-35clAp1</D+DBm6`#n>0R?@"/G;cdJJZ'kpIYjE0^W;XF)@6)ebFR5 D$<WN,Fch3(1j? <0DW?a674XLcm/TTJkg(ScO[?2nlkA6iin !4D"iL!/W.>i_h?4'XgH)kK9].eX,I+<KN?b#7CWVi/8a4R/a(4n>d 5@IUTA#m/_>^LdkKsCGg:6%?`CO-*2AhY=cAfQE:jq/LUfKS%Oe_%Ac2571+OS^:q\+JMM#DTiK$?qs2qAD?fp6Q'!4H*<07)Q`Qq/1++o)VCNW ";j<S&+-[ois:kC)MW,Ba'35Yoh1hR#"JlLPpPTXZ@Mr:fW:<S[T)tin[%D6V*KYcI=!;Y]AKQ&o]%Hl(s(E*6A#q@%S8Wdt]Ff\q9p6FEa\^GSZQ dSk`aRn!` :,\='EGl/n[+,6BK3J9OZWbV'q9&1'3;FmW`QK'?%mGGOIkX]F6\jDnTN!n=:2WnA%$?J]#P(@M97go#PRJI<sj3/aQqmt$Hi!!qKr6;?`3XP0bek6AK=q\$I,&^sNafelHaHCA]U?rX8)'P2qYUC:#I7>PMcajPaiR,"+a_3$A%YA]j5SdVR**sM9K!(V/G!#>0_l/:*MEAiXIPP&bs6%ea@Z=[;l`TqM1!o+<ca09%AQA dOF:LBY.8W=lki`rAUP0!<bk[LLFREC9P!dq`(=$lVl=Ct\Z$'lHT`EADl)FZDG('S/NZ4J#+<W5t3' VakY/I9^0;R?cc`qQdq*?C9R+3YfPmG_3;O.3QSPA2'q-8HL(m"RgelV)RW@H2!3ZrmX3h0d$<*Yq_P(sD:i,NftXn^C90g9BR!P\)&qNYte7U^BNWS;D6/15o&qtTG-H&bfsc2[oDAV\5N5RKA&[[>7mHg-YD?3m%1GS00r<P5t_Y3+jVHRR-*RLOCFA:="StiBqqsoI0fGl!CV]PeACc.%SA"gn%jmS/Fmiqq&3=X!NUBc]E%k!5nZaJ)VVX;9B+pI2fO7Fk!"Afkr05Bg&-_A<J9DYp'o8`oHdc;>;IIc<NalI7=M'^EXK Dc&\Q"P \29;7n1G`QS6=n].\*o1t(,">QW1EAK83'=;% a.Q8sA.fk2.Qcdm`,g=$CbdABJ)[&F*n')mgl`Hst,f?QW"`rU(a9([[\2Ikeb&,_"i_"r!E5\rhS6>^EK@J'=L"Lk\"A,VSWrSAki;r<'_nj>'B4%O*TQo<CR6.RE .0IUP_ngW5TZoJ]1dIAFPpgq.m)3Sm,T/j)kVtaIA7DDeF09<\^g1HsjB3jQ!3o+M$:I#"$Y)mBBNJo#Ks#],Yo4AW,l4F1rIegpDd,R<Dd<+R]d.^aApA^WoV,H(DCGGIU$II,4(A5fP;VVbG$C(Yr4$/3ic,QRIZQV`ak,"Rf_N0r))A0T)nAVr#`t$U7l&RdH,pG8g+$L#q_ 'bjF!j<s%^s$_6sII<2)F*`C=LJUsAq"rZC8%'?$DnS%Uj@Q!T*N60URM'o"ZGssBF\@aiQJpc)CM5cgc)O6Sih<!:g<7:gFgTA2bS .')se-8*&EA_ r.l&[0S/XJ\as=/KfV60Ai%,2!O@S5dF@*>1D<"\8 A J;Db)5VXGp.JEDoU&cCGK8:DqAh'DJ-@Q@9QmL9"3Vb6-P!IVl_aXc<WJ@K?a$.4=;K]6t5sE&ePgVc"+6(Wa?1W]]Q?,0/,l\AAA'$XK2,FZ(;ORP5jJ`<I+c9#A`RAKi\Y W9&Z&Ck[XP:[pf3'1Ls]#ALd.C7c nQG" >_Y`6,d<g2L/2j9ZCN@3Rg?UXpDCot0O$Dhnc6P.RX(e.#4_c>4W1#9P-[O^$-$XpP3a5TP9QapQA.3Y,>S\9VE-s%!'-:J3[>@E&RU!B^l`5[/]5NF#E)KN3iJDVli&(^APc=W;C\ts_-A DQI1G&DRaQ["gUk'[.-qf<_?7:DTEOcsA"WZVI!1DA?6jC*3"KF1dik<9ZsM!*!sIW9A]?1A3H<dr8t,XqXSo$;"tT2btf;pV#F $mi@U_#S!/F*)k1_.j090<s2%C gW+THP=kikhtj*?4nO(^_,-jl :[lbl_SlAHn]Xe[A*bGOM>`Ggn."5\R"m^cEO0nP`UXAT^:r@A=GtfQsYK QCrXn=HkrAMhY24e-qFNG/N(E?tFiAS>++fFKXh_MKkGI$_#BhA]fm7W7nL4b-3>dsLfceR=.-644QJa@%SREh[fB%lQ L2203F:Z[re0bL*j_M<nstP<:#;\VKQGLs'U:K]h&N[Vb4kQ&UYN,-D.[0S_cUkC4G1f70%nI%T&[rTG`WL'E`j:Tk.>qpjB.=$=)1F6rVgEehOOA?,8Q/AL@^'f.=D&;AFKtF1!qa38E_e4EY.Ul/.qMA-^'-L;nZ2+k<Pt&-M8'1HpRR De9',k/MIA?q;n:qXk!5bNdlG;"YX@G20Q.(djFLeZR@F)_\9*_BCp.i6smQsIXE>_!s-*Z\f?P&D9e`+T?U;X%EpP)+m_e`WaKK*S:f%.L[9Fsng43neJVmSA5VhlEhYV<4Qk/0$?7?!OIH7/%T+k;h.d?e;,Hp,FMVjL*]ZBAjbHL8e<:)#m HZC<]:3D\!gsl P%%k+#`ep.P@V8@FE;89DnX/oW*/Qleh*]5O=#eQ,h)6^XMds1%Sc?s*DXTj/F" cJ=\WI%pj;dpFa2Dbs0!g-JcCql!(t61`Lgg s3U-4*:f)@SG&dS.P5i$9[T/^ATKIBllJS$Z9-_!Y7[/`<Ao\GJT>QWbd]X9K274$"[1K.<(j;7 h=::Sm_hEn>l;kaZAnVtEV/C*f^n&At1FDY4nqJ=f=( Jnro]cA&UqH`M+Id@9h7ABJ)2&6%@#bbRJG5reK9l3ndDB]KoBnB;)/t 7QPTpk@6g(?q,eF'"rBXXI_-LqfA/cYARq0Ot?ANt95D3*f>1e'#2o*D^->`HJ(@q5E ZE%&hM'okp0R\*\MAAMoAMje-0SAU)%$\&bJ]49!njTfPEA*?AS`%2ecd)A>j'@S(Sl<W?$G-\e>8:@@?!]`;6o,$k#J,LI`T?.; DaUU9)#^nCkr,-I'/*g>QJ:O<!$Mp0#,ZU6jADjA+_#&8AT'nH pZ,:c`nBrO\QC+E4qCkZ.QgY530>l% [<1KRqcj"TD\'O&Y2<%X0(Am=7o#VXg[h9Y"@1tV5&#@--Sr.(QU.0nf]P,4MRAl7\_H7-f0 \M/l.UUg\t/jI:'Zs!r'a%^o[k8*/hA0g&Ht6L(^A6Z*l2HK$1*PAZCN5fM(G^nT\V^O";<Rt404c #tp_FVs^LleG+8!(Cn=qX<_Uk0"UClC%'`m@PrpI6jjGbBcrj9qN!#\"TWdoI-S83tjGV7B7?G8l<M:eId1JITBn\o9`$K!#/iAFG4GA/?a$`Ai'G,<7_C_fRWq`CK0S1;8IZ2OsS(?L%dABGaJ4-H'gOAB%OiiD,?0RT,cH%!tRnL2RULg(ab^X^Lg'LYXXo-'I":3*\L38B;BZH4D.Kjb`T,1$!(.3nD&geq>oobZb>;#1WeTQdB;9%t%E9PtXBsN'QkjAi_CK<1*do1HS$lVpatOaAWH4<pgIt]>`.*)7mP%gFIAo:A37TFF?Deh)B-PF)QP<'8p>A-D)\GLG+o_>+O*YepW=P[b]n++Sbn)0J?@ehKoD?VSmHiK++E\;$,#?,j#Ks2a!c3_R=K-DJ7.N,8aJ(gIfsX3c2)r]W)=@e:!-CDW`AEM-UBa7/MCc\GVGa"C+pN=B6Tc)b-jcR)?`?ljG1'4XU/7j#qFqg8><qtKJnQ0f%JsU=-b)&P>@MmXD;,%mni&W6U-9%.#A#J1)j6S:qe:7HNrN9f00@"=@g+o'=bA(LB(#M2Q0#(15*,#hI=0ei7nsbYW?rl0Jh2_'m9.CLpb2f^DLI4'h;kDoen2D%[njMd*]Brq',GS%4Ti'&lri]L[^1,llHKBI#LA_]"5F,^ .G&,@/ATTj67<&QA;A\[C5bKT>p$*d"-I?X+RFd=Pcm8WOk-O(+j[0inG64`nWU)>UX2K+8r9]8s)NXL'5L)Tkn/i>P\UKVb H-#/$Rk`J%S<Psi0%O-NnsM1Oji&rEJ AH8Ie*Anj;:/?aPA?,q+"rGam:f^@#Yb>ma#PO/=H+gBY"1PWQ]-$?O/Xn"k09lk-i+t$&aEV!:tgY?5>k?Q"f9#HmnZK!Tt$5Yck7V3c?ngJ7sn4L8'kW[U7CVAjhCb`F/Q<RU*3?kSQO83c!G]=76=C6OENoL"J>q/6rP6-eIQ[RNfOihrr%[ta3RXVhh2Nj4A2Wd&<;sYQZXpo+4Qgaocf]b 34B;59\?%Zp_8TBbO/`4g2lAm'H/2%9/;eP<peJ]:)M'fXA(+Eg^cAU/Js6CN_!+1a'\8nW=XQ6T%"^)&U >-0.U`[,SOYJ:SVE][itH,RW"PbZ!MgHV4%[&-9LQS^O\C?B_YL%W r1/\2l`r5r-eTKc7:jRFI[3k(Bdbk5$3E'NGeg#!Y),<%'`Q+$Zh>N! ?K0:2:H`P`H1mq9kG+',b]^`-TJ6!VDE kXq7ODPC'db<HTc8Y \?'3<nWDGj46c%C[=8_PPcC:H@aUJQ@jc,/e5i)MRWBH) 0] jf3\+UfB'Ks#WP"QB0i6g0Upn(Q-a:n)^^o\sh<eGA^24 "`@[8;.F6FtXr\N=5bKpt!>?CLLWB<58:Aa3G$!YP9>FaE6>YRi08]PTC*GQgeXpnS9djJ\/8B6\i^40"ZC=e[O:-^5'F#3B^MlD(j,SCA\OLt0@bK:_6]i^3/QrapY0OcsfO4F-h(n\FqE5JT[?s?qF._HG JiHBZ`;*b#m]=(2%96l#.!rYe4((6K>DN;40gp@=iV_4=@33s=!+%_Q"N.7W)Hb[_/Kfh_gAKBL*NtJ-_!U(ms5KnL`.37@`C"sO-R#rNf25)WKiB`CM'7FJ,!b9#&+:J-6pb52+F[XBQN4WZG1fJS!Z*s,JmA6[KV`g+q6pq4EAc*5!WA80f_Q[>0]2*[tA<G$Aci\tYO%Z?37[Xl-8)9(<'F7r'lO"^*"rf#h1Vi#6=TtDmi0@#5D<ebV8SZE/S9Tc*,b4e"ODGFVLO8G=bO((lg##k$-8A<9-VYbi6Ai"OJ/Ec9qc!(_P2So@aOB=/jOML8m!:;+\/;LDeA&:JRrA'h/0:$)`grlU5^7#[4)Cl1H3'k/Cs-+dDQ<i'(/9(320V0:NpUH;)Uh0>3?=^Am`GiK"R:N7*]<"c4# ;gZsp:3<69dbiHc7CG=Gr1Kgr(rt$,e7;.(oA3C1AfXY`q6pO0%rB!M+a_AD4Pj46.O2mI@7n/Q<[@,n@t5C':,T?AN:^[P57m(nl+Ud4el*[,M2jn5!(?2'M\S*7n(EK$TqA?THdj*g"?.YM3F'\atVAkckL:E;CKEA0_!dMc3n)h\Or^A'YiLPW&I3=NL.Y+B@tATD6MJV]=j[F8N'W*nA'hWpm(^(,*p.[BYnF84Bk??ZfX7(/i3_Aj=fKl/N&#kIi8dIAM8Q5Z%.Q2A"KfX/or\San76C0)s&Dlc!MY_R+-f4A.H;'$H>os4rf+#>f;'9)t7KAqc4nj+cB9)%]UrV6P\pS abT$k>HB YaIYN]j3r[RM;I&#`T-ADV52bqOo->D'X,3R3:=f/$Le%Q#g7qb)2[]^mJ<7+%N%%!`#A'L!tQ-s?Ri??bX:etWR_)R:."<%g2VUQEe(&'H%/4k0eD,Q%g9+ %O9\0Jam:+d5.aE+<Z-D<9F9`_HI<hK$B9r<]&CT,odGn,&_;2sAL\^CniFnAEn*&8FG9'87D" I0OPOhWIHT<GB%N"An(M6OUjJ>):XrnrDCZ)J1MO&=)5G@<iNYD%8@<GlIoM>`bQS[Hn#E)N_Y$j'^N[&!^N.KL!^YXKH6=JRr?)Qk$_c+N(38A=_BrTSJLh;s].,D^-)U]H!*80l@_XA]<'iCPF$#ZGM'2,JWo=MP'&Y?HlMKd;Q7L<1#U(3f%8"iSNFfh.iFXTSAJQFgYp6\B)[TI)]N\ZNti]8+$OKoF=eI"AhS.VcC?E+7I1IoFV+R`]dJqfrF#@?01]/QVYk!n2aiq3,RWOJ.d!VR&h.RRm5"C1-#hSAI1NdXhq'b.MAP#YF"Zs`R+Uq8tV[KQs!bOlAG35odc0aHh=3qirWA<ON^=YW:_T6+CG;qT(<HF>d"?Z6I^.4lb^XHM"'X4E=[YDbS%I9pR[.J"kY6H,)2^Gk-K9SiUN"o/S-;0_sgoNSsh+kp.GAX=J5,E>\l'$. LGU$=Q$Q..^_Y%gf<X<cAI`=IC+,aGb*3U4Mc3k@gh58D<DZdm(+Doc1<UYo.2a7XCP^0=7Y+=F2s>5ft@6)hX;6SSVD(<tbBW8`MVq:;(/-A91'9P4<Q6ss`87+P$@7]V8ff-kaY!*ib'9>2ES,cA,i9;&9p;U`sirQZ[_n_QP/,lBIKpaEs9=#l+*n=cJ&3bto9DC9UN%ZWiW?l>TE26L`D%lcqQ:U_Cf*5d+3%Il0k9>Y7D[r`#pPm[8,.]EiKIIVY:jI*@tNioeS-plYcaZ3YKc^3rUr8kS$a1:Ulll&Kbcs8a)cCXO.n_/?DKneYMB_AlA"giW'AkkjhA$5#Fqo%4khT_2ABAA^QI 0JT>b/E`r!bNVVXXNG!.*]i!PVfh]MT q@rt@:%d3mG8*qq b<17hcTcU+Rk ]d#.Aj0:Sgh)R^:MN6o[R&2i,+GdVdj-0-QIngWG;N`$DBX]l)K0%n;3C)A6$N:Uqp^=2(XBb!]&AS;Y1-;)IAY(o*3,"JEAmOX O/R`(q>=0P(3`rSP?:`mR3N-#En].K6e/h>Qf6[>WT"*pK0=6cMAUgL/hR=e(%Gg"nED KptIn1S_8P(ab9M?RY#^]G\3s(^qcq-6E_K.]hRDiM"sEU\ UWV\4Q7h;[2V9Z+dj!(E+W/Fl//UFb\`QLN%>YdO90@4O96K;_:M/4)W*Kj2e,QZXo!Xq(l@6<'+L=c_?,B3VA2AS?AfU<CkU%`V8&r'fnT  o4;XCg3cRmNp&XF`B/3F&(kD!Q)b.bi qO+=B8G,d1j@Gq&f9NOA60V4'm1_A!?Q4AXINT%di=,ih8D0Ts/i(!'g4/[/c/hN+d.+aUOOKGDD_\lA%-C8e%OO`91bt=gb<`2U'^K,Ujco)rreIN&b`HHJJ*],A$ 9d'VUI5gSTJmoMaidJlfq$3?+/1N> R`X js9,kLt3$GCS%21rQ9seO!e&@;3AVdl)&3s@HCfAj:H8l,UUE^*b!0Q-AL8l\:^#2+ $KLAh&@C[(Sit(tV27A*6r<X=`>lR=>7>6dM5hHA8AXh](F(==jB"mT&mA],Z#nU(50e\=8lQj[Y3d\N/XQFsHs<bNM/_:Yd+-iY2O_$QG=EBqmg,[LGP[d0cAhd_aXZ]0+TY<K]oVr1+@<?FQ8cjK<b3 ZaTEn8A./T>T4&`tY'*H)m!ZR[$T<V99:HA[%h_>?^Vdp,RI;oJVfKp::cpH:\POOh>7Ye^I1aW_BoEl'B@cj'pk]]3EcShAoPXg7jqHI6!KlVl(kb1"]6W?7c>Gg!,;<l2Z=&@QQ2CACig"q!/F`=8_)*e&Lo(4f%7la3F=trN7i95L2$q.@5t !dO@1adiG7"h:7VA7j5m3R+6_k-6hBOgIi0st[<9b4O1q=HOfJk7"TPdB:0NnUf5hg?HUhOO*[9j\=QH6J!fe/f1F/G=O;A*qHa4\%A6B*oFLtVLhNZ,=k'opTa`ao0,]onfJC"`K,CSp6K50ID$C2'A#,)rQi" `bdXVd^7L@5GZf\['!kXp'Zt$9nfEi6$=&C?/7g2$gr58BRQ=*#j8W+J!*,GO`\`Bh<3gP>m4<]'.XQ[DcUA.9/UnWfWBf`-%DTS&g*O#NsfW9P#Ags_HW'$%0RpUZG&kK45VaCW@;7TSA4,[Zt,,-@b18*@BY< ,1.Z_nlhV;:SXo&TpqJGWb99j^lX^,qY>%dSGtf)M'FgMW,*c27@0]ACL4fH4HH4rejDXr_T@0IA+LW K2nA^0ZTG:[B.s5J`0 ih'!10=[:OtA*W>8Qin#'1K,OrS-,1GT!,5,+2EM("!k9RAD=M`+p";q!S76o79;Ii7g"WD^DOT$k4X7E&-mZj&GfkZa sl:G;(05#jSq1Fm"Ym9q 5K!U.G%_@Eh]=,M(c5G[+:l-/)U,)Sl*%A\$3rW$X;AOXhAX'sf*7DBTi>9skJ%GQiYSk');4L"tMK<\(HVF%E&,coajVoUP^V_T5?-!MIkCnGC-m(2`<f  :ZE/XX1XY0A4U^c,f9qs.m`cpdkX!fH*:og;q@KEW(*enVX&$/Cl^' /\EU+NHe!t+I1#"(-h1$!* Nrg/^XG%AWrVIM]]5AW0i$n.r=#OS:E;gk@>mBGWj7(5T?(9AQ )0tYgAo?&:U=Bm"7ia[?PC>0)_qWWUU>/jP(q)+OWn6LTW \gfa>^kXsO^qQlD33@qAUseAl> "FdoEpAY7jtf1mJNj0=!/sSpBU[Ghs\q4j0abhL,A"f,4U:]21a*5!N$p$&9<Q1Z-8$jrGkd6dK+aY`T8V> ]0A;EOf67e\04b.-+3d].\mAkfdhC=@.ZUgng!9dqF$7R;l7)&lE&mjN$/"E,<GiEZd?i61=hFVp<qPGX(j%-5*,3&g=&A@/m=9Ai,RaZB/R>MAsGAQY<4&AF'[s:lG JT&lO=[ck6$$TQl*B@ViB#gPRaNF:oKs?GHXm$91<\D+J#AScG\fPC_!D:5iHm0QoU3aUL? 3WB>`C]7QB]pQE,B#!]CGCK66p%EG6[8AW@"*Dm<8H2#(:Fgtae4#<t,!W'TBsO,"ns&9&'(a0%.jNX@92"p[_l=r6*A>!&CAV*?!A,>/5j<k@nW9CL 2dD!!.#VUC&X&+Q@&+KMm.#oSInWX/I@`g)4Mh[f P+X4sL,#=rG BAaPKtP)`Tao!aE^_Neqd^_@P1[%haI*`)<.sid4>()QJid19Wap'025k,sB(-1NVt\KAlm;/6lnQ'=$EoDl(A!I^6?0JVOO@t5Xj6a]glpg`Kb$pAVC`$Z`%*t4Sr^+3%CT?H'Q8:_C9q$qeDB2G@&NAN?3"2ct2!R`J`_Rdk<[2?#'4I-&eWNbEcH5O^A<,45kbAJTng5cjY3a$@#"7D>DgbL_oY[>2N<37$)A1o52B\fR mdT>'igh2Ij)VtGBU\6;<?g$APIHf EQd)f%VgQ0 &cdkjm\W@4KrXW09na.=?s?6\fF8f#<A5dDVV:peYQf+2i`FH2l+5VNKe+JM2i>d6C"t`L5eqC[KAaP4XPLQKYB?Dhmo?,Ul3(f]AdVF6E,#4?N;@+d[fAH`GcpAl j %m>5q\/=_HrDnj(S=l)gqNXXt5i3tO<G++Yp&["Ds2GdOLaD%Y2sBA*CF599bLj4b))R(*Z8_Q'4A.AQH0RCA3*(;3i"Rb_.QK&$mp56-qQftE;!`5[P"Kgen1K9$;MKLiqCn]Gqf2r5]OUOsM3krBF2=)d5-*1AWrcB.=cQ1W;g+C@RNYI6k6e3Y&rW6XnlOp\OeD:-Kf1:;2HiN`_97?S(,@I6saUZOCbQ,K!5MY!>l$/3P!5&dINtg7XbOR)ngTV^`f1!#/<A86kXZ,?pIg#5>[-;Jp<RTNAm<5KdL)UHC'0)QMpcX631'k($pk^g?nX3\]GMF\g!:C7Hq\="A61_\obIP)fn@S6LR"SiA//eIY%2on`7*ER_3&nS6\[+?a8i7RC 'nACe9sCGZ0\r+A="S<W,!PAd-AABAk'KW@qrm%FtB.R1hibc*@\W=DqaRY?Hp:(PX[*`N8NBGr! 7T\(:Yc(A5\FN+S$(\7'=Z^_^m;L04$/r1D.*%C`&4.Djr<AU<.0FoGF*+<`Jfqlc%4Y?;=$3T*.Lt%F+J;BR%LD1g[\%"F:Ao7A='QA41,ArGXHZ#9 Yr]DnmUGYqH;Z*A5(n0M&o[@"(hC*Y;H AD_J4"lNU*DbhD^*(M11@4bY\)$G]Nt\FYG;>P?kH;W-QAb*iqI'Zcp@Q\P?$%*qX,Lnj4/YT@1Am[Q':WYY[s-Wm;Y`*n ]cmojAboKS"20Coaf1"(Q08XsBeVUMLN`B]so<]%1n_H]9l\j%4)-A;0%4o7H/:W,^`T.YXmMHjQ64\]M#_NG9q<=Kf;(,=f`l%Fi4YL)/D[Q1lCJ1Vq6kpFhBq$4TAVY%<Y^-53WF9hM9bpa.b p*O4odJkj<!lj_E\^gAq"95Rpb>%Jf$@9VtfOQbhA%%AbJ-$@/Tgf#p9ndpjVhjT:L0e`lJABr5<-&Mo/+m9:.)>SZ*%LXfiJLOT2g)HM,+D[U=7hAO:oLej8=eg7#`TK/@FFm8/l M"oXQAgoEK(]IfTt16t]=Cc9t1RKc+1B9ZHU9B+Xi:j^Mdh;3QkL42'MUp$ke?IdFVP@'>-W[PqLNLQ>P<Tm0gJL0NN2dE3]WANDlOI]IK]R?Z0MA7E_`n!UR<d*>[P8Y-,ZtJ.2rlLo:pb1AXoKt^Q<k/o p"m\I2'A[20^#8Zc%]6hj@_AEY^S2:qA`Y`[g1NCYfh.Qd\(b.6.j(/k2;` _3"c_:?H%CE :Z#< .>l]OTo/5DMrp_DDiAi#Aj0];_#:9LB]2%Fd4ni(*BrD=7D*MfeX"aF*0o]Tb<4mN;!J"N#g.Z<CR$@HhB=/HP'T>'8p>8AAqrY0< d*PTA_9JA6<^^cW(E2g_,.O]B8XR<cQ]fAXEb6=-"W^IKSRoL!I5A?ZYh))#FZoa(ir.?JaCrCl;SQ`5alDo:jO<0Xj[o0^=YhC))"GeL-I.c.0>Hc9 g_1A)f(*o^=.TQqIGp1>6[Hhbk"I"rJ'D3Gs2*IA*['9aiT%<#+UB@_Y!IL/`k: GSk7YW[">kK=YP[aj8^X<`&?;*189@+<op[&I@3[)%dH> 5A!';)=k!n@&>K 99BErIqF^-HYH(tsdRoAD,-B>2K]@SkUBhFWd7/7L>ABL-6[Ai_!!X9khq_IRcMM<_$/Y]rBa@t+ab/`maX2JBXqApH<N!\6%Krd=DW]&Tr#r@ItH_3P5d+f[rBa:!S0Y)<]<X)A3WT#Km`-9]%sePdTAeY'[H)@#MkfcG4/j#aV^t;G_$e=Kps8\pSA%s2^1@3\V.qp:U\N<CYZW>G[0>sq@o]A-"EY7f&\VPn)A(%H65WEo.?d>CJBMnB/sEDOU&6_OtY,.)QE?j-`;qF[MQN?[%l<W;,YP0BjF/V4Oj$#VYP.e6kpTB[:hNYeNa8D<VG6@J=o?d2A8rt4^O)LR3mnUWGH:OYCP9)e7;gjLKJKN`2a!M5jS5_!b3/JKcHZm8TJkeLA(OQg+M_&SeI:h5+rM3&cHs[#AZm'C(Hk.73t3!@bhUjUj*b%g6k:d\2K*b5EC^-6FkF $3,<h;-lZMs;d:\2<DD<pX&@+<s1ai L]]LM8N[E>(8M6)6(50.^^!8!GPGer__c-dA:TU]Jd)K\ oC+,0tIjPR9:Y&jMEk+E'p<W%IQJ=2g?/tK'0f.fIsHECsBOttGn1VIjb*LUh^h4J4^KiK0';thTCtSt:L8ke(?cO7AH3^\G,4*Kr)aOR;SE1ECNp2W"E$m(/BQr1(^kmZ<X%hLKID.XQ05DT&&?RN./Q"!HHs^N/ `F=09o'*i]o<J,Xbr3$`n&XC[tt0C3Z*9$SPo:NnSBqb4W[/E6:lKc[lK<pMr> Z?-S?>Mb6eb3(j[+8^-Il=2<#/OH2hT0k>Z0[[ssS% jc&jJDqIj05q 2H)_4:tIeX,9O#k<@3j_kI(\mG`MJRJ&lq6Rlbn(Z(iXCLs3W=D`7O=%qE/a3L@rF,2 LHMlOd/+O85Kf%FH:Z5th-l%DNoKcPk6qHA0 SR`ng%p*^tf^hl;pQaHdRsaNiPIa%H$Fj['!_2IARV6nks2EqA$2Fg)]/dGf?,7HMD)#;=[es(W=gOOrQc%Afp+'Mh<1#3mV71a0a`R(b0BEm%<ITiA8Q:$rl"^ QM_0(\Lf_X6AnUU$*:JH)p-cAf`,-<+k@YnA`6HR8DZi$1o=h<gVr?=26Om?E=KWiN1R-9+clIIYmac58&3)(78U?U4#hKm!l-/OWFWVH>H1H-j-YNWd338:"\d khVYX$npa2m\'p,$/C/,iPi<dfr[b0o%M<2`22AbjVB!SC6dJ.m]"159!!nroqoeTOcQ).snY%++HmPN#:9,Wb`@ds+R5#V<VFS0qrRh>jo\,'$+)$VA>fX(BI=5L$Aq9U3j6gQ#&A1,V]="AX["74tC$$h:@12L8BIYH#2`h>#p)8,PeYJR%Ji?f,8aH!N<j)5NT/k)!^[2mPGL_P9t%+RYM)K6[clBeL:mbt6f]]e\,J+_@s7+@-]3YF JY2hM2UW`!Mh\Hs# 1DU#VgAa'iFIh.&5.7;]3AG^fmD k;A9*?aS20KsbA+GL29'5A ZB=iAkm%i.dN90(ifXAdf,WF*Kechl>6oQ)I%_d[+0aE$a--fXo"o?P-J/5T4&& Q]@ZH<1hindE]&N?!fBjUs Nt6>.(*Il"`3bH2M;,X[_-tGAY-or<3<e[>jPBii^BRB6e\_]%/='Qm?YO=BmQ;\o>6CX<n8r_B7AC@:]k6$ GrWW6iVAMRTPLh`%S-PcHpe:lYHME/F<g-J^!DOFNeZj%b5$To^!)6(5LbImkHQQiK&PIc^biOj,l1(KT`dl!:A*D*V@&g.e9sJGkL%MZb-:+;=TqSllktIft,^X]W7)#4eirn Er?DQ^kBH:*l@LG6O,sI-:s!XZE\B%HfM]r`65f"#U^" &q/VYkjtAL,,=`;>b _jV-p9Gi32@">$<__8(mV-2onU;SI4D1 @+7H%d<Xn&4(>3Na;"0MRd( Ip'GR;Y9-U+%tN;VZVe!C ;DKo"FH69j$OM:8![&VrKWlmb`m )W_hT7m1Ki"lERR )P 7Roe/E5T+Yr6 aF/*4\VFg?),8H'0<19moRd.P:>;:37Eq)PLcE(m+c2_i`L9Et+a[%QA#dhT20^;fq4Pi.b+dYh.fnaQ`K&_s$;7+2DK=G2sBY=Q]D05AOSgkW;gMpJk]/^e_8Y'HTa@hQ_4 F4k[Q.X.gH9,Z]MBh:@O,%m1<&&%q87meWipq8<R?WeZ$;XV!A$\(`Bs?a'Eb-XM_t7h.Xc`;;*r(#4S$n&DX^9::W&m6ZU"&$=cq=?t:U5`VA"noeH2]01.mh2"@;Ahd7f8<rJ;jA.mhBYQ&ARR)0Y/W#(+X CDpTAmf)-\+qTo*X+i8:YP[tC#4%0S5jnpGl20<,1)o3Cg0\honDGkW#th^_a?cJ`1]$A2'dis/rfTk?LeHHnqh!^AZY>,BTSRh1jn2Tg]tJPjU4(J]$PGCb!jCYjt(=e51DQ:%4ce_e#61K!brrMtO0K^)Uc+qA:"bj:P0d-9HL2oj%72HJGJ^@Q)m7A(eMC"AM3CHg-@6plUUiJ-$M]0V!>^E?\M`Apcf&@YKq33(Xm]O`:ARIe@QAfsF!.QnrZ1"11A;ioWci%j3rETcn.?8[-b!^Am39b''D _kt,;D&^\moFpEbaFQk.iL0gsh!7`g=!=<aHm`0!SC=p\k;sX6Qhr)?]4U5j>Z2mIS/Xi%A,sJQnE^o"642#0$%?"&5of9d<..7 $![*BQ#DhFerH@#oL*K2[oPr=8.pr>,Y%l=Aqar\;<V.n(['6@5QItd[Xrn"k=E4jr_)A+N=[#Z`T[FALCVZXqm0C;DqSm),[F1/EV?kQ7U;M?8&]/ALe.3_ABnA22V%g?\p24; TQpW/e$Q;r<[0_6]d)8m,ZWo1sk36>_UVZ]YBDO[IjF*M^YB;>ec<Fl5J6r]dY?38)75?9eA?(^ZVM186JKCpO&gg,oX3C9OrB'?lR40s\97q+kpUMd&(=q3,L&b0)\FQ*A`r85d4AJ@.Ih#*VSXa%2D)/]Q4S-t.gN_!D&CdF)M]U'O!5eVR@(7Qt1jA:5e(QQ*Cp56"jIXl*U"8eA5&47p6[ZE58*c9VN$9+'n_2P<m[n@M"qFII*C !b6UM$G49sAs6&R,8%iR,9(PZl;L_+hXd<[?6T,:'r,P'Gp Z9 0/[D.((-Zbd7^fAAK"'5A=A<=V!dUic$<IGaXIjNJhCC`]O'A10Xpml68Z2L`fUk"Y;A[iTM$W\n$*[Jj((A12]cZ-0W$%gO,5Sbie4L-pmn4b:fn.bI)KhkO]&Lf3$UiPm;'^(LeLW(EAh\m/"LH0*]9#bk rpeJ(,L<q4/H&'LiBY&4B HL]@/dr#+!2@J"$2q?3sG4`,L+0\K.NC-JpU9VIs'.'';r<3skO&Vn;>Z@OO`!t#!jV7C%;bAtf%:gnfgDhkb"B=_pYmF6%WE@_2gV9-+<$cCNL]oAaM&5)m.GrSno/+>Q:^f&POh#KblmSf`3WtZo8.\TS[.6GLB+a6"%m3m38>n@KU\K90Aqn5j+,`"\F9Ya%\@qpK=Sa<<G"cLADD(a@]3Lr6g:EXR5AL4@QVB0a=3*oH6U+haOdOd/rANcqBd,AecrR8s$Hpq(^K(RlcjT,(T`>T!33fYi=[2jmA,/$ r0a.C".=aZK@q$$ Ecg_kl.5^Q'Se;=/UT.age >g3km P9- 2,^RpC[q?9r[:m GcQJ/.M$OO&b.r! /X b.[_\moe/C-kSpon'7eK.g\Apt]612!=B7BS+)h*MY.9Y5Nq'5l\?%6[Np&!o\7!B)6]O#nDP,MJ-/F4PKCL46[EXg->I`nje*+1EJQ4_Z!W?98AD0t">@J1S4" 6DnV-?T*r"MH`!$Ec6VU)2gH##7P !/.Z';K8R1Ns/$0A10KQ9RTd/nel7AndJRfEAf24+#[C/c,WeEn4/Ws ALN+QJ!Q5;ib-Ucl5>O\%0//.fFi\S,c)%,K!,Y_6n0^nD5k\;nmbSLf_l <Yf.cs"o#gAZhK'SBW1-'&q:@-p65<UJneQmSnJ E`Kpe>!GQ_&Uo!mN:kRl\=8_8HQLX1TaOANa/?(8NtU#i<^T!&ABOS9:^:PULc"ghLa6<9ms-QL'E0UWUbYIQ<.hIbP]JA8qgb17+l)shX(Lt8D.8?d+tq$Ym3bGk9Ng(Jq nOlf=C#O9+Q:k^cE=,]+c^T2UY$GmPqRK:1qdH<aT]JNrO'"d/ )b+:<1q0pfm(5OVCT^nZ@IRl!VErQGt\WPB\):iCc/%5so!/-VtIs3\#ab(6lr'h8nQ&.qX],[iCNCa. jU*F,^Z5O&tB.ISo8eAPDW121PX!5k0/:qc-d44p&W2B(0-N1=HPA[AF,8 @.]>&eH\b%N#0d#%P=%5Y@pUa(m3J=^.OU97naP_H^Q6=X5VgnEB\Rc\R]_rPPF +CjPJNLVfJ(^M9:L>C:RaAblU+[7UAfQHWP+q.`rT,PLWD)<8PB LH@<*lanqM=l/.\OkXJEFFV0tA#2'o,Bt7#PZ:bb3q0To=)S%N&rL30f.Id4o,3Ie1Vt= '^'3'^i<t"L6@j(E[['tK""llm2MR?0j[#c>9psXE\M"MS\,?S-Z nG8[C&V5TMabH4XVi9Gb.GMCP"D*ma7(#;nIn(WfG*hp;_2HsUF#GUd#<XMq97(.YXN*1rE*][VJWqlFb-0KSd!09$U09:/D4!Ft%O$Z5SPU;kAXL8qLhn$_3XJW6%%r8_rg"U+jf2!/mriPrh\a:jHC[2+NT&[<m:]Wj.ESA2Eal!GRDOS5N_K*<"lrt :5mk4!]@^thj3&Uq)qKf#tQN$=cY[p`=.cs+3ti+iEAl qgi; Xn7_>=&7XL`[sVMi%j2)/-:->AUAHiQE"GXQfp5Z^@TKQ)YJ3E,)!AFb\IW#ETD$NZ(<;)L4D#Lofa=)(G7QR MNZ'[)?*"K f3teIh<pD;<"p#IVEMj>HA&A+Z;gN(2Db^A,M9Ak7 92o5EOtEhe%H4AC">Bob^kO_ o2)`2'1Y81je?]k_Pn]cY&sg\pb?c]"_ERiNa(5Ih$?aj`>or.b 9ef3`lX+^WpEDP"sAK7E`R?t*R]""hf\a.5ch9@FNE/k`-d$lO4,S"PLKkFo6pmpNX?-!.fN,?rMeIA5;^:m5AKA3h=<m6>XqIRgrkS!XW/W]RtKDUVtY?/Hg% ^A_#tU`%HI7`O;:=fi;CO]t&+=cWkkO= qW<&>Gn4DbX%WG^@LMiOA:DM?F_noP<t,j[ci`IS"?)HYV1_7b=BKZ\Escm41 LQdjItR?ssdT.2)$5i0RD2TVbC:WXR+hi*ACQk_'L:nb.k^<E^#""<C(SJED(p'[lkI@SXIs<=LPV#7' 1SgT=k#:QKgVs-aZ?=Qe+1AUFt\Lj9tdW8qWfBU6WHQsicOFOPVf.JDpnQER\4CA&D"]mt?3E"*'#M0sZN?s$TXXmsA]W0(`Qdnm,r5`73\UY&_qkm7>0[ti4p=eb=jUlQr-%?=tI_*h;j,FGg6n'[1+/YL2e%XQ%5Za?H1 FijKT=bQnh)Y,L5jJ'i(CiWe@k V3I(3\..UG^D,1c$8'^E"d1&OPb3+b;9'"4XIGCYW"3rc@7dn!lHr2NVI#-@GlePX,B^-/%GM_?AWi>=UO42JZtbN[=hB:__5lCt+\W_,4ABdQ,*aU V]ZJ8>7g\=L>KWe>'!C?6+Z)-0jRE&CA-Rps5K(70Sl1roE&LBrla.XhSmI\UtL1mcQ8be+cl4S+-aTsWbdr#fJIVl37Ap$.$"jJ;B'nQGQWIXlTh:(\9L1\kq'h3B9nm5h?D0F6"mHe:8WfR,:FZ`?B:Ls;/A *\FIk_&W!4'B[q=eqCG O74/*A)T;>1s$\fnot$3M/YYiY]U*S2808n3Qfk!F=@lZ=D(\N6ZeFj+6"g!$.Q,J*0,IO@Xc0m+/P )6J-K_8@A,(]XdT]DQ5NdUq)2]a ARkg"jCl.Chf?;X+#Pf4UtXtT_%I$L7&;t.4dr3A^eWFCM(l0]BHnG"r<_ ]3+&RcIbb4/sFEg=Jlo  ZO+@;_]qG09Pf/iN+o*njqQ*]V6NkkH=o).iL/N(eaS[;Fm37b]/hhD9e)Akf;iWg:Y@#=RI`ke$N(M8/Vh[ih9YeB/kE/]6ISo:h>t4PVNP#d/I0jN]q0-]U0)5RK/B8E\ D6.O$J"^tm">HrScj`3pl/G<h+mG%\Ki<IEE/JV4TQ'`mhlkVfaC<QR4N^RSm4gmll`k(!a<TLI^asG2@/jAlO^/YkP k#mSZi7%9]#lrDF""F=qMYIA3jq+mIH-jcd0Pos2U^.kTlHEd#DQ:I0G3=:Ae"C$9-N4UJ&7<+X?QbRl[Fa1@50hoPFmXdG>2JHQ[&VaN/R2qUiXES^'\*L5AIV9;I/Kj>@m[_tl7LZ"K_V*9_:toSt`Jb&HKZ59Jd)M.U=2L*MK#RK]D+k_1O \rN$SjGgbPH6c4q&9<i!ih]RItn$p"i$>40efHh`_6pfr<`;mZ!+'%QF #Z"NL;b2tObIKb,oX_<]5?L:4H@.:^?Yr1N0XKrflHFe08O8iAoC&%_]5 rGLQ:;+];W-d5Xd\m@cMfo]n$$nbFR$D=!*sFI9g=t:UA9pGhX;Z_"G-j[XieTA@N8=8)$VV R#seSQ/-OO1g@ho:05*ZgY?=F$L$8FZ7isK[`M[P"#r9.8ij22-VnZmCmT;Zkg]fT_D= kCt`_MU#4HfD)7#QWf8 nfI<M>KPKFK$lS=$n!\5YB)*/2<)1iAU2"8;OGU*M*j%A `i?USbJHUGmrenT3\=<k-J23`n `r\71d3Z3qp<;*oA2Vh,rd2A5/0%BM18]8j_!QkDN#6oTX?E9E?bcPpA$A*VO!nd3?Apg60\[o"++YAJEYigSs'(p9adY[0>#]A3NM$AnIAo J9E];p^10fG?g./pNe&$.o>&o>1eI/e &n^0m'Jc8eYdG*AX4lLWg9eAJ/d5;Kh-T'O%I\0)\("66bIG"5+2D@,C*tf#)_]ElQom_j%<o`DK^.B)o;YAKRjCPAkAko>%ndqP2i]esMMcetM<`?5+P>K\?9?A=$*OQ#UA]\b[o+diY#>"0g8S]475sOa,-^)"nRcF+)ALo_FpEA,+/j/5!/4pR l<^g,NCj)eD]OW,-T93p+T<*e++H.#Y=/<GSn%r:Aqgh`.0#8 BOHC8U+\%(:AK%-L1aK?bT-dr7I2]j^Af*tf;=-Yr`qNJ,I'Or\&]G4$A5cs(MR^mL.dtc:69/(grAXFK5QC#_I+#pZQJ[W]VjE5tI9P?&tbRD*90"4UQ_9"Lb@-dTB&0VH"F\8i hB00'plbGFAeEn43<iE'+b-9C,,%#87tB*4.8@aA=Pt!66AEXo`/9n/M_\q4$\25!@_]0b?;VhNCVI$d,fZB jG'N:]+P7&*l3d16IQRhlDaimVYgCER^8"UpmE!9#X:;NJB^Y %16FGrJC8Hd[)EA2?[InP)Y/B/d>HAmhBtKs!7jc`pf6kV1aEA( 5B]9KBeVop.NV(:%GT.b.Fe`RcrX$-]aYZn$m@4t`7n[GVNm=i`0sP_$[;,2q=_4QW @bTWV`dCb8<^hcrBaqNB59ERMDEP[ps"4lRM0R<50k>osK$U0s's3A_n`1]6igsA1W1PiqsF3X'ccZ/9AO,YBP%m]q7N&+Vbcbr8_b7X8&n<3mbD/."]38%>p=Y!s1PhSV5ld+qO2oK/t"D<d"fSaGINFrNBLZ+(hpEA7[:J>2mgS)r="TmFF0^5 49)qG-GBn/k X`[J,nI/.>Wf,Cm'mI7B9\PX=.J<scG*mj/ 'jAY$$E rJ_ DTqPA80t"Tl_b6e[M:%-b)=AT7k`!+;t\+2?k4fge$6R+NXa-ElZr4L1K%%Co-\L)-ZIM2hr+<]qaE(68L[)KRlcf.Zd&elS6l `rPBO= $2Jm]>]00CBkj)I<X<dEaVT66!,Y0P+3qG"9<0>oSG%isn6.K`cS4.rX-c#`.IPfP:I2Zo3'F5Ybo7Q4.24%+:1Z#CiiK(Mf9,>VBh'qphp%]56afof\X;UXnqL5&qT*f?%g2RT5AL R $j!.baUTI57,H7"[m:A0g;KjN,g9X%4bZl,f=nQ6.r;$'2=('\pb5&1hAfB"A1!F2!Ig>M5`Si;dk' Larm2<:[GRk%D6WCL_%K*to=+]RhCCqb(\EZE#.XU\geYpA]Q-S\Z24Pf(.FI9NopAptQ_94Fm#:kFBj;DW'K$a3tAnF3#oY<%EEiskpRq-"q_sPeHPIZ]O7E5E40TMV q3kU MNVRlRYRWI?tLlsb!A&-ZQ2Q0:j'AnA^NC*_N#Knf%+RO6EWS5b&s+hp9n7Jjt`NBHoTa5>*$C=q5=Zt[*jhRQRYX^#NaPfE;WB>NYk'PELnsn5.a N(8QWAa@VpQYUMO."U_U'j7XFVr]T ?Pk[HDbi6$Y8)8Jm8ahPI^3]$lLe<D&NgI!1G.pc,)kDg$2j 7GT:`R?IH$iW!Aaf$m=.@[CCZRhk$aMoISYKIjm]T"(VFbr"pre5>Rte_fA7VA.._H-GcAtMsC%$k&Er5QY>] $eLqENb)rRA&]"L^!0p dUK!l1NUh9N\@1rS1MiGSN4r&B\Y59U38)E+C:[(=bi)ieLR?jTRY;6,f%A#^(qC%j&2:[bDN<mEW&l5Qg'W YR2AX cRi/iA;oMJ!%^Bm%\hBaqE>:o*thZI,HHk7`?o'WbA=$TfE<g?EX"(.Il&HEg+E+3G+/L*>nGj3&^@<MrOK8LZsF/ie %+87>agOQJcpQ-[)W?IgsX<csriB-(A>O4Yl0h;fnKaDU5oI&FdiOeC$S2=p\SPR2C.pdn M[.65Y:b",dsJQ;acF=pP P)Q=OZ3N3@kMp\GdI4a7DUF-\r=^^jJcK.V26Ul#2>=A260Y8P&,g&aYR^fIh(rV5dRt;IcInk8E\Va:++%D<+1ETI>_:#"mjF/k(SYr0 +-@.+mWLM\=p)%XBFN/#Ao5MX7>$BFYkq`<7O9[;nXPLO)Fm$h!)[O6V(/hraN_=1m4o1q6benTM+U-FWJSEtI$&UKQ69cA;Cf5qOaE\A$B$0W'ns/F1<imRFbT"E \NN@_Tq_M?%BAHa%[RQG`X^UkVKsDa$@o<9pb&e$=T.-].[r"Y2K9J&cCpb_`a9THa\YZY0**\CESsX3CK(8Dq l!rnO [rANI#bd\0N#f-S+(R:]&p$7thil[tC!cDJ :*ZJ"a(!A7fAe-rFJo/Ap!G+BN@*&m$KplAA'7qF1bsreDKeahX#nQLs.mANJAMif4OQ>lJ3]sl"q`T#b)o6@CGfs3N+i#R@*dsA;bicGN3I`ABl0pN1[UA0HKOa(RKdS,>o`R>?r-D'hWG]iTIAA&GJ_T)!`0I$Qe9MH[]3Ar33D4nd5(g><^5 H8-U_0 5c')PJdA73oOW?I],hh3C1.m3Z?:AcWU=p&7P!<^>Es_NeEiN-!$S1=r6/4WA@`LamN!o7>Am%Z@"\fn*O8IqFGp3fr6SGN*6BC/`R?> bt\R3+3K`2"C&AbU?>pk4]+MjSTrHs(F-Y.S4[9[ZL\@$IIB[W, 5.AWBXqJ9`,9 /k2)G PXeir$/jEdp<n2G<iitj^R^[W'Pon/.,qnj0&MqBL&N!V0dGO0.(dR3/_iW]BK'4^C:lhUG]7(F;:.,=_JtD;s.`4Q=VBrBCNe-ID#03cmmK"E-0P3Mf 7A-t>^rdN&A JfUa(;<6\4/`_^OkN91CJ*dc<ZRSc\T%,!*ftAMQmb=AZckKA4P?k+&&ZQjM/K8PNsEI'#K5<PrIS$a1sSr*qBl)e'@3UsAf(7M)5YSXVBQG.n-U#8hM#(gO+ciSfo@,^ITW*&[H0D(UAkED2$cg03V&,s8Wnte:tQjR*S]Q2KO&YA-^qXS) WH[D\KUA?)] :T ^+cp'<kS1RDo;cILl K8XeKSCSCA.2e4cH-*j^(B;9$7K3%\s:(#AHR+Y&M@R.qU6a$K@8totIK,SOVgK0Sf<">#bjc^31p*Idd@hkSj3)Ft^P"oI*Rf%OlZI8n):UC`R9M%Yd$>"]25-_,o9"[bNAm7!@4HeP/9@O>rR]HGHhJmqr$Wnh@:Uc6\9.bB7/-QN,3le@Zk.T"#O#;g8[lU&3J>U^G;emN)b7gHi*^i,h(^I6riL0q>V6%ON$[5 VU#k#O&KGXUBAoi":>TKBbOld8Cp7Z*QedV!)qEp;GeRmL#0L1t)Bg*SEp9ZFWDZ!pof[[tfifAtE'[_M2ODcYe8G-QP\%`JimAQM'2=bQhXtt.=]a\17:QZ]>^[KgnAgU=HPk0\Jl2\<fr@H83=6]+;d)J#PN%*`<d#+?E]&Dh;`'Nj<7Qp#b.;8(#19a>L7=c`E.=*?kij%`@&C6fFG73qHg$%KAP6r4CFOi;7G^Y`3i[2Y>Ub&rLr7mp1>Y,F"]_0G!b*/(rC$Lk5F%`'BHD%AU-s%oSq[Ti-#[&^0Hr^j4b^+d@1)J'on<Wr:M:>Fnf"KL5;Ar=E<fd0-<Ii_<%OFfnPYGS$r-`5C\A8r&RA/J[[MtlI ?ir4sO?Gp,U7q\=pcY1h:3=Ajb=kWP19A!P$WX=(+d=h\Z8 ZjWmqq(4R9[=]Q0 #cJ'?Z5&ch4BDlL[=TdUV<JpX<_);ak/+ras;/ 5m4UVp,_l=H8YpZ"F+rAt6q9(h%1J)hXF@"Q[)EDHfZ0YDP,1H2%8?K&ej+.VG33./rEHXA^2PAd;M!/aI.]e;)k6qT?A'>o>,"#>TGm_(Z\/<lW"5Z`CErlS*G0RFP<&^8*7XAqBM'@?4+8;W-B)'rjD*_@tm)'tfoXspP7 X!"6n.]WGW5W(\>M>JXZn!-i,;&[Tg\`TqnFRTTAR[7%@_C^kA_nfNXs's!f*G;-ZW=,/%mfR?p70-Q-iA`"Z4:qM0SX?tB?ao1,O%ZS4aTe4[_(P6*g&7,DPj%DKp]oDtlZn9sgcK&jaFE`TjQ[B]05&\E^n4@e*hA]ZnnhoEA.sX\MJ%aNJ]NQB3WH]`[6d!$[m X ?XZmc41Hj3A`gd\,XKf#X)oCp7pgFt*OtSUEe>SdPD`.X;b)JaNA\^n$Hqq^Mh3_r?+eHn,8$5)cDH)M-!<T3CpqYk@e_i^hR/>eWgOZ(]mlh`AJ^,tDp/$$J&;pH\%^\Y[API<t5D-L[%%W48q<ksCt/.-+l!0iA1s0[ZD%el;G=#iO^tNiH=)s^7mW;FS$pN81DN4QA)hA_/;AV3PFbYYg<Qc6e;T@Q\g%p;;)$.\dEbNA!]B9dmXlpNro%>^i+AHK/i,3?26(PW55Hd0RC0VVPF?@Af?AViM.k brkN5LA3M?g_dD+(b8.tq,2S"F* Xtj.VbXlpKtTmP,mHh`)HLeXP#tpcBeZg-K)tlqbaXl'!E9%Ejo9P?0<=T;,ANC"5Bn#^H]?-d9!Se'+mp&o6YR(m25k2Rf@`CFUD[kdAQtj'I%NmQ/`W,BFdMG;;P%XaZN@D_.TTS5KfG3W]br<.]YjY'k.V+O#[0l1O &#g6C5AM(#_I.*\F.No3^C#s6<qr(Se/;aV,r-FA$40"NL&dhKg./L_#Zb %ipAa:Pr<Nd1j<mme*7J5;35_E+!N.*5A1f=i&!@;2iin<c-@ce%I@$U^?U hG60[Q>][S8\MYs[iG2I2dPPG]W5JAVkl<U2[7?6E<%6YFlr45q"3^:eFbi.;:t($pc6&Kd-:U2\1)WK;dlp4AARd7!]>Qg_EG25j7`I'(jKo'IQ?0D]L#X,pf6=<j^d^F=p1en#"L'rCspF`d1oRQ'4jj7ZSi1Wek9E1X+?j/+c;gCB].IQ*sbj],2RMF`pdJ2e1Xfqs*^FYfZ[BR65^sIci'][RNaEMQXW0pL^)(1g;b:YBW,^$.SUke>-RSB9j),A@6.+@#EM(_esBY)5>PX^L]&F"fgaFS]2TBfVJ*BEc9@>K%D#:>Hk9R#n8Hj;n8F]:;Et8UD)ArC:15Q0+1snt3Dj&\P.<q6r-@S%abjA)K6qe*+\#tIlsb=DQjS=.[[OD;&k;T70#&X$'A,>W/bPTOr&dUS..Z1GQK*KA(X%%$k/md0ZmN+E21iLMiJK'GFdS'@5L5!$j!JD#hJ>9s#UsqU':$(#)!NoWq*k$=hsXj=n`,AA6AAP"]Ak*5_P>0.VRZcP.A?0]$^P.94Xps^Me753/ONH_i*`*7oG)l!g8CGG%=1-fH^BIU_t\#?Fs);Gf('Xbae<<=:l)j#h\e;rY.ZU#F!N-:o.1-<$Qk. /M!rbGAc&r%=Vj&_,i-+M-"G]fX@1Aj#j7J+$/5hfbHUOA>bmb(7]@+jYCNCg>B>9M;0#rCq5oZ]r9@hb$e$R:P"+2D,'J '"ps:gb'TGEc@'t;"4DJ^k6aM-)(E*pScW4dAq%?Yr<T?:2te8*@1Edk1Ef!A'b;^.*O9q82Ps_>^,[!`.FW3q?^6aF40AYUWn,GM$Q3ZN.a2Oi).1P$>s008oRAV$XmF(!X:HeF:EJ`E$tnj,RSAR(`(Z_2"=A,)WE(j65.=r-3t&6b4[>/EQ5Iii1OBA:o;''k6q3W$N"+DnJgN<TAod3_g_IB&sd0-E<-%f/0jL<VPh8]`5Fkln!clZ97BarE(*hA&7DL(DK+1Hj/f\pS.>KN^2%:[Zk="Xpn[f@7#GLKdFi<[>ZO"Y@ 7R#Vn5DNP]kl.6?QX<]JJ>"U(G>6;TV,'>X`N/>^<6e]Y=rEG/maO*SWSH5cMYhpfT:%TC3TAgm[aO&f2R"WSX39mtB)ED:`;-;W*7?*Oa6_I0YY[HPeFAsQ'A"5s_f'H^%BUN]1f\] ?p9LX+lWWreE"PZ].Ef7Qe2P?s6-^$t&'T&[0,EaBKthk\9*AlDW$s)CS[Qlib6-r[q@UshcoJBUc7ndrtbQPM2K#CBm6SI,i&A5:]>C +4_ZC#R%:mKOq0$FmMCUeP!Hg^Jr8P:% ?e%Jq19AG.\OAbFGV*\B9Y.?j98=S=bJQVrOjV&hHGTf+kj6@%%l$El[B-U85[bg""pjC6;r4Ya[dN`#[N/$1\YfI*l:DiL%?#N`9AHh6A2rLr(Vhc$[Z*C^U?SM1I86hto\\Tb6@UsglAIo%L\"lbh>h]G8/s+4)a *4olRYgfXB,!]:BDb=DA)ICp#)6c!BZ\])'K>PAX$,'0]5^E-Z<Oj*(F_SpY4'9e 7$!Y4,)cLF4QN4dX:SBtPG ELLYK^5AtJ$B:Of8"pFg:r?D*5);**#/r="Eg-GlT!+oAINJVC;gXPm(dhblN;EAYE]>I4MEh(!YME9"dkX &Ar]K?`R[o!*knNfEs7,(MsWD-?Wibj_kj`#$KY]X/,AohF1U`tdg#-3F"J4QOrsep<3#g+*'3.T\2,3l$>I>MGac F)J<rZ&n%^'C#n/^;EoWS^'j7?cGhVS4-mY@jZN'UR14NsN\_#"i m]g*5_s!9k_a/HF[0G0*_h#.af3s?q3]U<h31YDM(0Nr>p9mi=rhr"%n[W*BMPIHkU"_:]Y?P*\N]AfdGkR?HEoOn&Ge9)BkUjH ENcm,MV:EP?QB>0B!SCDoBWb%I[A"8A7Ii5A2A)>e;ViJ#bC1XQ.g9jqLAO$nQe'g@ISjnFkg\t\Q^EVg:e(XaU-AT2,Xe.%D-<Ta&s0NQ`?A(s=JK8P)-P3A.Yhf?Zh:kd$88sC0N.C*a`d&j9512Z)@+3NhHg4jMD\?!d&J9!,]Fhl'tm#e4_FA*IJphtmgdZ00*cBAkkAW"t0"S],DoGBf@?l]O$%SF!m57pb1\EOOh%L5-W$LT`4lsb7MP^2"d=&;tW5Af\ ShQ<D"3RLP3b- YWWP5K_HCI\ZL\]1%CM^>g`<fi]qA2qPtJ2:"-Kj;Q,`A;LUqAm<cqA-=X4edXjr^/.D)\`[!U0Gra!^=PbU5<hD3nKi"i#%l& o@XN9k2sg/hXsL2j2G!!DnK_Ik -O_E9d?mAM>W$PFDP7c_C1ln8Ui]pp@U*/2)'lc3Q>J$_5Nl%.a.=1<<46LR:WBdA2ETem5-^'p[6G_n;\gN=)N@E0DP>kfn!_46eMq`2Di4(K;+1G,X*!KZ'&(Gs6IdK_c<4n)p'gP.K!hp%g2+'pAHPdX.kq4.H10aO($ns)&JtK:2?^X=L$T!nd`:oHb$,O/$PM1 hGkFY5mi"^ZHKFN<0*\0rkWB[()Fg.1'^8pd#G`sA!X'r,o0[eiF^CM%G0pmYKKHg%gIWJ I1']6cLlFKg5nW:&:ofb+Ejk&naPs3iQBTG7H`.UDg<P^Oji>;n'<38XtqH6-NX!5<c,K@W#GU$3FB3Q+:&taRkl2'?W/Vp,I?*+ SLp(a6f(*?90(eT0<drjk_':;\*i3WI.2T]%SW&Nn!t%?a? ;^@0af/pB^(c6S+8.N[4:U4e^nq/38NgK)76QK:cor?:lh G0YGJ.gZ9FS/()) -4 2Dhaln(^p,H!T7%&iAa]Gk`:i'UO_e/Z=JR6l[WV"I];WTHU[^l74)cOk1@(Ho!2UM3SW-[-]J@>rG*h`n>r@'`.c9&F"eG+A?3G![`;O%*LiB;koOJt3a,\aG9L??iGc?RF,Y9)FH 19=WQT0W_bU -:J/!3Q(R5f! gD9&5HK,$B=<S<JQ0!qV^-%Q.Jk9CYPsml;>d)1i-#,bT9Me9+PEY4*#Lo#bK6(ADp+_8MLO0!R/esc`#W/,ksGpTGJd1k0Zl8dk"LrEPI;`VfF"&]`bl<$9A`NPBAqEV91:IH4-mH-b$?W7oHKX.07\hlj]G`&QBi 4R@+l16$ T&P7KhnF_LKNG;DtSR&ch&;j$&828OT==(BMt,/WGBil%iW*j,HZ=HRO.TSV7m`>kbWTo9P$;l#2;spkK\j>E3?h-ZpNH!:&50TC]\&0-%hiHeZf4j<39n1e_Bl^+JhkBJA? DAatMI%1rZ(YF C_c!2D+_`t+kAFF=9@S)fjBPD8L]Oj6%J<Ul<`mbNC_bk%?4SE89r#t2J-q"6! mK2c='Gt?%*!VcRp90]RW"q`;B2nXCMf:.^(_=aM&VAIZLo@mm(`oC034mbr6/r; /.T#k%+7!H"/+N92`nfL9sUH(q_bYJlpS,6*1A>s-X!L9 =(m'o;L.:DWGC4TsQrCiL,t_RpDC:#]"lAeIjm:fFc?@=, PdaqWbpis'*NoC_KRFlgiUe=&K+4Zf7V-)MqASmc)6hcfja5WlS4oN=*Zbr?d>"5A S`4(OidbFqk",r-O N^g9j$C7Io9^!]KZk"s:m#90bM]D5E)js"Qa9+lk'Xb+ONY=,(-1 4aA6OgC(qdOV^"N] $AhU-9&2Kd;^UM9K`7$6.W3F1Fc\sp]/%]rG-Fk-(jj1qNr,5 5QqnA]@A[Nt/&0U1?eA?A[r6&Bk3,DjS17B@g4o[6Z3lAT>PXK"MG1fl`U27L<C92i`6A@^\%Ri=F>-7IRk-//*\ k+6OJC1M;X<nX(IgkYR^(%3rJA@E7]8K%7.DbQ'P]P*ef/f&L4M!]9F/TA#]D#+h3J<D\2AIA*X?.!Y7A7Xk#B:%4.'[(AS,a FpW>:XY?s9-VjH*AOQ%QGK#o]bm$,`hQN&$0QF_.-(2`$"cbE0jQrH7pWZ99Z#%]*s&i/ctQ?r\9K%gjYMg!ZB48"q/q+n.fW6'*`0D3]gGFQj-B2X`&e&*Md%lgf-2:>lk1AH7h5>6pL3p"PSO)^)!=/?7(S:5%fpb<.]"!frm;o5/.qtpr4G,=Et+<?\Kr/3h@_m>A"-_VS:Q2Ph&A#?p*FVUi9OPj)sYJK/d#Pj6ZU =gXMCK?h$WTY:#JjN=AA]K.dZY,B;AGO56C(c'g]$P-(\/DF*X"/jl96JA+gJn>l;]RdWp6jH#pNdt'1U7^4qgNl7K#O;PA&\;1a/s*,PmG$BZj6L,5+dO^Hq($;\je4;`5`D<"Y0-[o1_6\r.AF.emOM71,=T])=4RlPMa5g6.)mheX*t6)M7cVKQ8LV!BEd$R<. h2GqHFC0Ns+s?JYeXAt"C=H(apc;]J0pAnML& $Ma55qhEp&k=:9n7mPTOA7P8rS_E%an7;M^(:aY,D`U?3YH*^Zh)^na=bkW@JOo&f?E\qNC+Z(ck7%Z/<asX>r8F]c]M/si't?:2I@;o2?FT8O1,iGhM9Lc/^EB5lUKa-Ilj_f'b?KH6U)A&A:YnG.k8;.gc#iYhU/5PKO*2CkC)A=Wm9hAF[I?7rA=J;Mjb'9n-nQ7c?_Q/$L[VOe^_q;%%t)@\A;G&r3E1-Ce6hG(sYt9<qAtqC/q(#h82JgF[K"s)R\>)qtJhs!gjpPa5H=Y^sj`7M:3l')69]7h/>Oo !E]7oAFhAf]O h<=)V+74ipr4'OWir3bB(rp](X@B9(j>O)&UV29,=r`\E\pgD6aLVO@4]p=QrA^d"48KtpS=JAXLU'U)FVN4mQ2helEl]%kf L/aPr4R57HoT+(JOA?Of>:BQ_fEV==N#Y=D-!jeEcm"U,a7HE!AI#Ap=c=p!?jq8rl("H/m*:3iN*+YI"cm?&!;ESGIao< +`8Uj!FAiL+r+lD(oh(\G\U<-mb>Zso$QRskn#&=QLl+)M\&D,mmcP(G.V@Q&\l6]%WSNUaJ1\EV+-Mo,H)f0c<Z$>@?=/-?hU\8n T8 9o4M.!^]X%i5VV7kL[l$UT4?D!aJH!:Lp`MgXJE_2LYVSA0s%P-a0[p596d%s %V!@0t5O#e(+ `E@" X[B  >tQ>ai%n/D=:Oi&@%,Va'npZ so4N$!)k,_h4mpg ClW+6jrf^rt@\7:L0AUVG6j30g+Dmda`I*AcG[r-J^]S5ER:L ([\ 'Oj^$!PT^/K%qWl&^VLV@'Zq`WcbF+tL`M E#RJfj27.I$rC_hh.W==$s>Wo^8U<`3p'\)>6#:Kmt[IS;/FA1c3MOO;15qR\k%b74fT`^j8NQ]kbs%N<I[E)@jiM\6`4]ni6eppR6KQ`c;cl(jM2U-0a3rMH`/qemm[UW%</)WM>.5k2))<Un)f<Je5:;NZc4M^GA;L6YF(a&Y)p[:+*lA/Hh.H1V3R:0.2JiY[`0_LaW^qNYR:.^lJ07ImZKDCZ%AhjEJ9-gH^Rpl YHX8nCPVO.(P^5.'h GS@\W%\I3"JE]FtA,ZFGo-t)`5$m$80ZY]M\#>oGJ]GVe\gY">Cj+cc^:RgbqaGOG7*aPjU=4I1h8%Ym&)O/^UdMO]s_i4aCp&:Z8C2`R2BDAj['ZE(bY 423me^/KaMH04tC(Q>3 V fiIpUX>EKdp_.bCc2AWW\Tk>?KA-Z&jX$iQ/*iZO#HFd1:SrVX#E[ZkG.3hbt@*r44i4&XC/K]9%?Hs3caUV+&fIqI21*h4nnW4tVD&tVK44p];U,Y;LsLM8&>4<jt1FslI$k)OY@ASS-q;l-sckF)4oR<)5Gi64:"F@j4&?L&JE9:JX RL`>l3r.:'YiW>)q2=K^!3h9O29F_m40jW7Bi##fM1^DnJ5oWrN_O:d;&SX=e=Erqo;JHn\o9CD00qVpT4IjMA`<EhoX&(F4Vs0=cZ^: c:jadc6q%'Yb]](p[7*kk&-;3mjtXf?"H@AN6R*N,f+WpTe9g9 n"%[Ki`"k,I/%;cp9 CIq#fsO/A g9#p(AE6_cTlZ8Kb0M9fesQE1#FpN[L=%ef0UHakB3V^Ifr6dta%pGZ0hqK%WpD)B!1IPsAgc&;.8%Hd1JS[Ra(&;A^ls=d7s?:#3ttAqThEs^k=hMSj-qEAR+a,\hUD./-=XH1Yr`!Nam)rih#.=)5j^_Plm%.Er3F#:;n(,f()%62NEf0,IGbmK9hfc2X1M8Y^`"QW4t'&JQGpp?k&,.\&%S_3XaetpOT'>r1')8JY,(p8d5FAb1ERtAsArdH+)1!>c/As.1Af4q,Ads//k1^V%4q1htP*"KAAU$:8Tl#Xp' SY7!a0h)GrV2.g'JmbYRLO)LRA<4b>"`LY([l!QIeWG; gd,hdog "Y`#g+M:b_O0"\.f9E"1'O*o'eML4nD@:ARo5/G>7[rpTP\i:7 tU!rb#sBA4EEN)o)Ni[ ;2/-_A>F%U)GMj c[_s18UoP6k-A-t@"aN/KX9cA'Bp'hAc3Zp'i.O(iH=o4b5JRt6&`C\RE8D<.*KA_2fRf-IR?<aDo#7oeI+ @cbq@6QnaPeG+q@RXQSS,A2]J:ce.[VMq-8H$dJ2?Y<p<t.g]Pd]06^W.C94"7m?6F]<r&b&4$,FTt;FLt?skeb(&`WCM+Bf@04l.ECA_^je2A/Rr)%X.SVaSj0W;AaJK2^?m`Wo3N;[ eW[TSiFn*e%=h:6KULm*>PGfr,$a6gXYkkZKCoEYMCe*HFbQCgYn$GfFr6ELPGH=QF<Wi%7-T8f[._L>7g%p;aj)dPeUmISchF\"]6P'FAH0f7iDjao-n'[qXI"PT4la?DUfc9k?'m.-N\i_:dC6/'UfH8BSZ!rAAd/+58iD,\I;#"kZ-NoUr$*li&@'0d W'RnmA%&+R^lS]WQABo2P3P^#>;>N;G2K-fTeXB%;%8fn;A,Q%%ns?><8o *QJF]rt7:1#[loX+;0\@"RL&[*9+.d^2Oa+2cc<d?\&kY;#g&CC`ik)@6F&mP/(#7>$(O>kMPCp3&$1aAV&(-aL^I$QM6?5UnJ"@]_Vs dBbJl_681=,g7pNAcVD@6MFFR+p=Na^QKhb5" m)1P&9d](6!0QB;@ZNN"[^RIGq?dteA/H<n"\?Y?Rnm7@kqdK/GqnUlq63"3rEJB>&Wg?!NmJj)n9j?;Xrn<t,8N<<IRL5c*c=_AV-Ddd/"L9Wt[:k]q+D6A+tD=Tcb%Yo>)A.G000"[<X2lh.ADb8ZAJp*JG:XqD0q s^T3)jbPK3aX[)r+Dd`Kg;3YfeVEotW^Q3f:]o1 b[h3#t\T0%V8Z'q#lo ^'Btf6b:(A'j_*J][YQkL]tE<U6^<B(tIX":-[>?bIi982-n6rAf`gnb]Li9_pD_00p\O!VJD#RJ:SM7,.OBk$a+/%ehlgR/`-a,3Dl[6U437I(g-dFm?3a,"0WAS`MSdckj;^91A,DS_jlfSnr'NBPn9An^:<>2,tT%e2IF?MH:%T:om3@b-H's/A8hT+",Ho@<0.:MHts;XK](7P9ro#NaFHsR6n#Sgd#56*RM+t95gWAo6;/RK5Z\\kSam[(9@)/;_!H]eXco]q3+hUF Op8eZt4 `OKe+LDOF]qTMDnY9!M@Fo_i2LFLsTlnM@cqcl(t*a/Sd$Vl@8Jj;a*@diN/...8;bboWLH ";eF<?%>tsQ3!S/U;]UA_n@+n2://?H"OZg!t/8BY18p7HCLq,]h/O$M^XNV[]B$!2mKZ&Dp#0dPk1lc\9`"OC!j^ KqIoc#/s\GAfsW18)-XA8fkOT7W;_BJGar%p`pQGl->3%W;3kb`NBh;jlPKtiT?opK"Z)m#(?2jYIt;c_Gi=m)noCh3nM,MURUo'"-A@Q$E!/YanjTG)F'>lV I!6D:6iX]8;[">h:$aQZt[I8J5b5ha'':)oK';Ah",Zk)mj)$IJ]53kP\9%bPcf2q1>J q;4c/b7U 3]5<Ji*PH&"e!2&i%s,PV&:+mM&gT^osaiZ BA6 jIsjqOJs[*'2pJWZ2?!MPBB[No_QWpD*8=41&0ikriorRAi3[<g(o5WNi-'-J>QaID5ki5@SIKL-P7`a h9FWc./jQndQ3gC&mb&>EHe(m;rHk*JW</1(VW&be!-A$] D@rmnq2ViiH:.C:#7WS@?a (r\C?a:A39Ms<sRc'+[1DNX3,!)q>SC `[`6o'U#MGFW+=#%]>gYQda..\Uai?714@2"n`26b5N]AKfOa"@himgc:Cf-?$K3*Na%'2P$R)OmJ48%&[i6c?+#f4@t?<W!IF0Rq^[V&JqSmAMFB9+7\r=F2MSP^l7]/!RYS.INp?4,sPX!Mt<M[B8.A_)Fo8!kW\f8QEh#&3B3iBXH?X'J P%2i(tAr$AVa5@f:4BT!OGqV=..\jL) 3dEfc%lYY%0_ ,NNhQd=l8SUT.clsJnDsMcT5@i`CZAT?atToZ?([ST+/Yj^t)4Pi.o>A!jBGktEl?gF^"=rbPBle;s0WfFpiWKpOO;#<Wfg&UN%]\Wo*aG$D->/5`\Qnghr'\0&QMbrZYB2nrrB"E?n9@F;/:;!H:/a5`YB4"L%+ Vs)6n^F'R\fA(C^n3f:AM"`+!#Pr*!k='5ZS'<lt8a0qpkHDcUiL')5+0S6>Ka-B!S]7\]W5DnaQZLXfeT0+l:PR6l[ZhB<6p2m#$XUl4K=-00dVAat_b371"\eYVPe+kK'?gFA9T;PAG5SFqN%;Jl.&FP&G?KG?`X,hdZQr"3)D#.ZrP&"eFHP4\>,>A9e_M@,51:Oc6,Z*`m?k]Ej@9B/l1e[/NSA#/PDK`+R^Z0:[$_9=1R,$!PhSOY_#c0\<<n:TWg!J;JJ>;"J$tt:>s.0Vn\L.V07Han]b4!Ti"d,M%5)AC(8JohVLR5qJkkhB 1 4h:t()$A0d4>=k`nS$<^*T`,?-#4Lb/A/HC7<l)I)%)T,!lCZ6JF.sX$>Jfnt$Ys;@p6%%ofb1eg1d*[Ob%,S?DP#"[2Vt3,D[A'')R>XQief!P!GT>PaSE4cD&5d2D B=1b-*9`kAinr6pYq7QA']!%JA\b;QE&-B%76m*3T 1d[lW@nf(o(264V s];P]5A=;Ad#a2BsM1>oF^A+<U%UtGDV%G20PqPATl36MkMK'50G%:d\> 0fTQg]\ofTp`<&_e[A>YYFAo7b%#?\QUVS]l^AQ7@a2>WDBm&T)[CkA)H>h7q(m4)-Ilf6Ah%*rZ&Od!"no"AFLQFg\]ODV+j+_/Y#%c7fLZHD*USnfmKn=W+J%Y><F(Td3NK_(/F=b%;?)Q.mW<c0a_FgK;Qj'Ihd&]RX*?7o(o]5aWM//0r2*ciA`lRBLh2N8!W$#Ha0[T[[U Tpo4oe>\$H]]a&eIRgLgm36@KthJp)6^6r:AcJjicCR+dJZ)8AmNFH^MkSoG9G72Wq"oRn8bM+4Sj0Drg&)b<9s>+SJ:H!+B:.R$rCl%@r*8VGd7lmX[/Bp(\nhtU9No7OG%Z.n%!t40&=RA);(h&2re#QVjaI">Ie+&DpW"%44A@l$_?P*S.q#Kp;-?\1<n0S,C+^h;RfAG;@KdcrCfFcYOl3+DW!+89kD$>`((G9c\?G(O%^A6I1(%j"6_;(h-oS05i*]PVsl!B1bGr+,#F9B"Trdq2\#rXiV>&q8BTf8)ZPl`P[0dd&chG=?GiW-LC80L`6GP8/sf:S\/7CJ_,`sU!VeToliSQ4)oN,E2CjEt96D'A'$Jf_GHlPW05caah,O.?AjL3EcW0 U7,qU-E!pKce(2/0`8"77bgBQ*"q2Gh.+[@.E"tn=X0[h%CU1g?Bk&,>2d7nS5qtU!%?b:3<7O[!Ym;Ws&F.bq$$8V/-@D38X*<\46*T VX7rg$cCG?#W9 =CEi(:AYk38OAHBbo@6gPSM\)FF29a!l6U9A9iFq..l=45o23O-Y"ql1KW?!;O=7TFBdokoT5s(XkbBoRGs7pZ[s]k;;'`i*2olK%K6=]eapN&*G/A30`..,U+_n+;Qai_1\t[4%iXHT''ABsqHAWO4c7(!sY7@DAt>rS^`LJKmC)62:KCh!L>1>M0Zplodd..Kd9 U^c=h)_c0->jP=W+9Ip=c3q]Vo93^ZMQOG:!#ikFbN[dV0*+sK]A"q^V?e2?<C.b+"dUB^3kmf]Fj-3Gk175U^\&A+_aD0G.98eOVRW_e(* k5StMMQiqkA`,tI+mH,3s0>YbA;()aF5od-c;Uj:(.d/$C=\o-lHB)4+0KiAr`>Y%A$A47US3H9Ml!/i1I=&!Gsn4T6qY/N1Qio+m$p9'F:VhR q&B>XDo6'$>e6pdh*WYB7[5`k^"HtY)0?V]2_>BWto!K599ds]mUt,1KOt=3B!lcQ'E,>I"A?O`@9qMec$5$U-5\3pE:TQ7F9+]!"p`K=ek@>,dC#O/$8BpkYbVL\*6Wi8f2o,;VLS<qhbHe%,<,?sMq\%rp`UG, 86V2T)Pkl/(`)=@D&ctDt;TE"eeb+,MQ9nHV\0(KX2_gL1ADp!=#n]`fq)+s'ACJ8d%t57UXV>@RHr(]NkRQnk?8<fj'p(8F`5\d`tN>IL0oKLj'*N\Vrq:AN)aZ!"i;e(D(`*F:_.$f',ZEg]NdGT*S.:A6PkGf0?/@dmLP^A) Jh3rjQ0-kZ@OA^T41[DLG)O0Jtg'A#G+c2^X>l8g]1A\lB*)c&bnG8imS[ocBS.AXL%K^ .*L2`,CUAE.'DkbK4LZ_@)4MZS:Wlk('RHFUO&WsM;tK5fL5dm<-G_tmh><M48CSG#aDd =eP*OC;Sr6-64e74'>aA/"Rn>e-@cKaUr#`D"A%Bp2)>#0 Y-=s-jr:ita j_jD`jN+i(GL@)Cm%o@Afc`c$66HAt[k5gOGJt-<Xl`Q@-J0e@ZMq082A]Vcb+#AhUAG#tSG!8YNLYDPh-ge(BJALNLL]jrT)LcHXf[r^=ZXL:dp'AUr%l"11^rhds/@+M82o&oa@MdCgB$eIX)2`CdR9V^k(L]]C&p:<.^;]XqeVQ&@ F[DAGd3!)q^g1*:2[\A8M@h)][7L"(X;r([rA Hf8rN&*A5=$oTo5s#;GCZX
+Fo`kMsMr*sth,dr2oD]eg<N\U4KGXn2VQ,&'!;AW&I["@nZQJWPG$PpAl;1AZ@R:DZ4;<,C-&1H7ZAjAq7LN`NV[,YDa^JKW_!oW6>=tA9q;%*^5$1[C24!O=7p0LB8c6EQ:bpii++fSJsNl3$mN#K[2eL#%d>c<39pV55VfO? t5a5 >+g-X9Yc=es5sI-ts)A9R5TqE?/<M.C8Zl  ^n"s`BDQp*W@oVW;]I'.h/b1:4!=.W%/01LcYF7=Um1(.GNWiH:Kp?Ch12Bg[5M`,TTE5TN\pba^I;oM2Z<O9%>*KqR@#RqN\;Cb99`H0d5^K*=fJ<]%Sd>i1hpA>313bbb#MCtA</sM^aXko^.Z7+VJ+(EYJgJ;j*\%5@13(Wd^;PcjC44A  I$8,VM>Eg2T*ancMc.8]W(7%'g.#VpQC!2AZ(0oW12mIhnJ-G]D;Q6OF(eon*,UL_H'UE 4Y? 1?_,2ia$K^X?R  hhS3!R5BC,T<ZN5!YZd6fQIR#P5G9=')C%:&VSLdN^\Q=(FarUg3XE_^O&Pgd`)M[,?JMA(tc@C?lCJElM>>@#rs1 gF*lPf8,*cCi:nAaE%*,qP_ofK<pL[$Mk;2G/Yp+/G1pr\l^!M.q<kd)1"Vlkr(fg;1^t-eBC0# -tR@1_oAY#7OSHnE=pt A/h_K[T[d[A-EmPnXA5VV2dAf(\"gAR$FA%$4@ TTG_O?MHmO[);^]F##V68*QQ'&B%p<rfl-LXiD[Oi3s;l6aCfB$UP,?TEArTRhX@<"d8%#K%`]$V=3-:kb%mdJi8CW_5"V/'4\V6cVn(YGRK[4odBH!?#G1^%*8Li_!UI[(4t4WjSQ6>]hZ@>cQ?A;,EH7fU]GR2p25#UA$.oE5/ETshg=9Vk_;RC#<^nK?)PKL(YCWdtBChB*T>[%;/@Rq[Alea)>Ib^QrKHG2KcbE0mD&/'eS*tX&\8+U,Q#Zm_`8?%In$FLme]D% ()6T<AlGK&rH3GdpT73OclHAtINAkXo9otK-O+;eAd>Es4q.E.\S$= 7iO_5W?K\UA2:WSgk?-p@=SQU#E/1!4.@--8IW]kLr"j;$TCUr,R,s7OlD-(o#dlEef9VK?'53Xq]/3-s!3B?Z&#3Ok&d'a*X1TRs$(?O`DTmX3mPX,>=,![AO/gEO^,W^00>Aq\)M=a3:U`AVleR6-Y[4qdj1Nl,gEDi']t&><6n0#)'Z0Ci.pZY$d1A4E?FrX9Blka%LHWMd ilA@#'i'db3# ]+Mf4VRQn6'nXg#E)I(8<5I&(lT5Y$1s.5[0tYd]IbLkgGlt%?^MHq!k!h'FP18>%"oqn+V?WX<FN2Q /=3aW@ri7A8]i.)<pP=;OJ(Z)@(kk2Yt5_?/'hVjq&n'-sU`1& BJfe9*!JgT84l]Po+=(geID#F=d-($??n#64nRW<AAK%Zd$#23 k]M-`N#T9dnAkX-$WAJJ"GjGp($L]#7h9WMkYN3Z:#eW-.0F=5CeT(K$afW!t/NcVDa*SIRV`ASWk#UnIfb8Q.&pG\)7]E\abi^ )"W*e4ab\s"V@D%?Hp`?sB,We. -tdprb$B&>AK,6JP\KYb5jIJZAG 7F"0a<l?+^R6iPro=S`r-VWEcYRA'-*)?Hn;sK<dN;B2ZRZ&EsB20,MGK34ODqIA<^D(#*Ahcm]XRb_7-jtt0AegK\`A+pX5l dcLk(K!!FcE-9CcI.`M5%N(X$)lMOAaX;8Aei1;3MS<c#/eKhS]\\X;7&aoO:S$^efs9po;[JAY2LrVMALKAXAoY)jW2+n6'?#,UrD.3Y);"?JBb_5B7T]o/.dZc\qaF5-] ADXZJM:f%F&bDZ8dBK;"iW]_U_?TeC+[*a.o[MR.$G/7^Q\fRhVa BfIhNA&Z]=;<#mFl<G$/V=#WI\cG0;+g e-*7cAg<UIci"i+If;"PRrU&C;4poA#%*GfQ>'"A"g<61lB:'^;idCr*82Z>MEOCeHqH^Se6;OgKSWR]"Kji7'1:VI)AC"nA7mhWM*okf"4,G7hm:c6B&$3CM.8fIbb[kPX',j^&K6"IoHXPQgY>@E=HE0-$10tpQ mXol_g,-rmo11C4F3b8t;@JINZ.t#TT7eG.+CjQ&NN)IqI3hE6EF'h)!f6spqV,fm4`H<PRgV5N*r3r2%sSB.9g3R,SAqV8XY<n5WR\)2)2GA H)bCIH2iNTJFY_lg%KBX22=lb66^K?_K<FCbElA(IEaX`H',\"!Z9l][*XjKscs(;`\fgDRPrVO1.1N%NnWgl;I^B__B/-Zs%!K(5jV'A!$">irb'7+pr8Y,NqR^eF_23mt@C3@MGAHm0d;3rY&+tsK(BK30:V]"gTpI=$ms8j*+qddro#A(Y64/i!F2PA3<9/WQX?l6QV^V&)m!C]F$@ 468?JD8p``2c.;]3mkp)Bl'X2PpYSi+[t<UF\X)=EGfr K?A/;Dgq)qD4.4c)7Y&PKg>Es^%2h ,)YbjfMA5:dYE'1)rb]]/j1?:Iq37N8f.>+UQ "f5qFFYloKPQ`I#0ZFLrgQ1WQ\:)L-6\$Q1UDgI!d,_#),YE90K^EY0*0saQnl48<1`(@3L%LshoA?:5Gd0,6/b0!pIibT2UW9c()EH0.+>aoE%`]e[:.A!9^rMan?\peDIlNkjaJiX-=gYcFoXXbTYD8+Sp8US^t0cBf3@I?<7&f 2%n9!]t9rF_flN_U)74!ghb.I!'D4n5dim##5j:?GPH_3Q;gB$j'qNk[H,%n6dc0aBl&>PN-X3J.[pNK 2S'oEm_dsA1&+b`$3h32%m)"QNiJIWX9%*49_)I&ARkIm:gM(Vh!$bI1iSC/;/efNr_`sWbT'>T;fNIJ<%NW0%A)]npAdI>\KaA[.G-8An8&VN6)A$o4,@31\];&k4*=*?pasKksN1=1l-ISJEY/_`=U]j[Td-9;(OFh(IHp70H!2kN/9to//b/_ar&/Xe9CmaqX:`X,S\^A+AQes./s'F:2ZMY :m H+3XS)l35Y]AicKV"G?4XERT;gD?+<J[(S*sDO2A:?Dc6?!]qOVRIYF4bMiFBo]LVRGl:L0SGI!&i%Rq<%KXn8l<)B"OVtd?=)5)>)S.0?,8X=414C$hD`@?3"Sc/s>A[bFPR^]CnN8ml`[pD$q%M,aSCC$b$#D!JN=;^9VLl>P$8s).J7tC!^LQ,c4dPAoU,M7NmQk=90>$=:&_J;s?Y$/#I^h_`%2K$[^S[7f=Oa21<Q!o%eb5FXT:E'=\8k,(oaOF#76[i!T,B`i3",0)r[-8]tkf-ZUWdKr+Sf2dM',1-Pkn/V:p1=[ @a@rRgtt79k<Y"HK+;U;l-5*JOGJ: IWH[>sm+aM=G89g8RD:KQ)pRKLf'/>$ciA'Lr7+X'%1D+6hDh@8G#+B:/_"EaEc)VPU$kLC32rR-?HCm_QlA2Qlf[@n^K'OC7CDEFI]`;C5.EQ$V0,V.<E#;<.J8PiYa`M$FYCP[8$3Dif8K'RSc@r@MF XRPUqE?nmRhVE4D<^[%5D(^.>V.t4OQ_mqq37`53H)8rAGPldR>'1DEec?"2IGY,ane;V7C:K/__[:&<dboAG@@WqJZ:3<^.ffSXTgT(X./0T_"B06!]fejtX+?"dGC#nSP\JUSFU'mS22bI#WAp\83A2T(Mah,S`@56_B\r2.1Q9=f(-6K6YZ#Gf\;o,  7.cIAMP_(5X2O("&7fr`;lO2!5=W,8`9`s/6N!+6+A!PJfWK\A< XSr6gdpo=eE!e1jqMR"ptea0A+i[Qf<Y ,)YtQ4qA7e+#E6pcFs\c^_<f0?p9bUt .#?dSj*JeK,#2QE0&9/;dM6iN8/$K%=&i[%pcCmf(;`,.]qK;nG4UM2&k%eI;9$sf-XZBajKVLE==J>-Q(Y3DN39tKGiOML4ZJ/]jY*6K("f?j]d5Q`"(!a6^EnhMXs-4(YR2'J@A!hV_VYI.'P,/ct:aiY%I5X*@<<!f2$Fd[n#8H>Xt!%`[GkeOtZa[( XBpK2#?$1UiL2i!?t8SDQ]UBEW@5SN:$qlSg'CJ>p4G44h[U)U*4s.C'ieWRf:.VF]R(Q.iRPRAi0HUFmR8GAtnR1D&03T):Hpn+RlJa>:[U<*83'R<ZrVPX-mARst:2b;nm:8`R ah-e5GLA0Go'>8Fr%W$]?l)KANM[Ttj gKAfib:.oo,D?jMTW<3DIFMR\io*NBBA$.9'8A6g#(FsamZsV[>Ml`Y&<W"Tq)i8'ROHA9<4@#a56nIM,ME'>LJ18>52+]9pLqoAIWG##HMS2`^SX$'N0dP/)7*DVh;<llE__mo^GAHFXh+,nhg[,\S`oWd!dH+iUA)Cg@qlT jQ?8()W2`0RA9_i Y;!EBdA$_[IX'ERYmL[MkeMnHN0 R"8Nhn7>%)Hh\ e7F@VP61nAQm%^$@;fs\@mrNC5=Or32)c[O6G3#OrFN>k;m0oPe/]0!.i=5Qp+Is@bJ<-cLh_.Ia91f6M+7l;+\mH7V$Ai"4mAp<H ?)6O[-8rE,S6O8'mV??t@ZF^mZ@@"eZhf6M(b3j32;E*13J*rZY9jWB=Zn[(?GU-9>-#Y(jDKCL:4Vr!h#<idLO<paCgYJdN^6rIJk_[]])O!JW%n`EiNq^ZUXL#,))es;M*=%h'#*Mlod2%-Db)MM 0OJMn95,+N]`l#5MM/:hb8V0R/n[)D3WG#@^.(#o%be-5gJH-Fs"`2VH 5"Aj/cV#ZXCH:9ko0jWL:<B+)"J`.l<8K*)-A:QX/($milWkP1L1aQR%"0GU-_".E5"J>k8<CSPU?ieVSFh<(F niAmnHk!l$\sf_=jraa7AK2de2AF2>R"*n88`WB?N)/o9KG\8A]PmSnj,=q=h!%(X+*%Z_/ApSK0`.L;*%@G22NlmG='pP%,JBl$WZ:AS)rlaK/^(J+B^6fW*E C37[ae^A]L@g$;/Ho)o)1:W6q><Q\E7s9(h`c'OTETn:!q`s_K2),-SGXf+!'fgMAqN9/N3,ZS`+`VOd9oT'@B@5ZB<Pk>GbC42!!oDY5#cMQmK3-<)(m#=s%&K37[:CU-hm->V"/AM\ 2BfkNtlILl`fPWRG^+d_9rcNQFckrMM.!3jP2V<b(:QZiAo6XdK KD5-f95M&=Y$'1hV=]F?b6E"^W.I2<7kgnUQlj;YQ'W8NFe?Pc%[Z^BEnel*gUJ:gp`7lGR<sWo*:L^,I@i9KoZ#DK_R/P.QZ(FLN!RO<DH7qY33s88-V/:nIV`_e;!=EW,M.@b!K8$g(:&dKd 1+ghHQ_)#L(]BR=Qg"d1(IaaPU#L=m;U#U;_cR6@A4CTAWnRrdMHjg%2blsYFa!,V9q^;*o"9e]j/-fg.; I@=hri190<\Ld;U^_L"G%ZtjfQor;mA/V<SE%9 DK;JB9^>fg5_YboSY$].O r)#c8_"RFR#WEt(dQCYF8h;ngfPe^Ero9^bWGha"p"J]+f.<>A`G s^Xs9s%I&aF3k(BC@WZ"J9-425-K3884cC_#0Z2 >%o<rip@)O#%A62g?fTsOAa4a36q&D3AJ!JkoSjsXE1#n12,,+n* ,d(o'Z+`;2,RCd]9[%@hTE9r8I-HJOJ$P6':P0,A<mgI%NSe 5tm=.l9eXj9T'I%al,J9A(=rRomPh3n@OVjk>&UIrn.]!F8I#*Th=17cHo>^;_8dB:>NMm'XX<sZM8$3UsY(sJ-An`L0_.!/GhED.&$37=>@beT#@YdX3DFir7"Q'tVgC2$3="Ke9<0Z/i"]":tD-/nfkbdT_X/f)ka]=.l!c?IXTW,9!34IK/'*,/.8OA`8aoXCBI)SGDZdi3b?a`%bI;nNAAfg5KXSC8NdCa(!E:T*fIo2V)8Q;j q<42ACAa.4[Y@<OX&G&JJ[bW[3;Akj&&e!.;;=)abrA2*`5TQlbpi!?P,f_eV#Tt G!rd bi-Rf'-p%U@V7Q\/I?J+mR0m/p6VW4g26;7BUG<N[UJ=U9+@IQ:rA.O&(=O#KK2dj46OP&TFFE+h*8()fLTP[2OW qr=`X;/tCWh905f8f52;D?m-BG4h=I(A]L(K?G&YK'0eI=%:%%>fQscTe-Af]R9Z!B&f@3T2^G+NfGDgHPP!J,Qi5oCC\$B@I3Eg/6D3&MOfs$K9V),ESse*!h_BL_h-mA_19@P&s3i_0iHT+8#"? A)te`srfDN:Qjr =9Q5@m&S8U*eG`k+UC@Op]SVZp7bRqca5TaQ@_g,K"O>Mk8Tkh6K%[TeG=k1P'^k4`43Kp'N+A3+'>e M>-a!M@QEPf>BY.M^D#@!8RAn&" lZp*=gJD#>l.44)c8kJ0EjKn@q4]@Y"mKH\t@=Q!ISeN@[A=q`kl;K32M1r$LV+mb_ni\;IE,6>d$t)B ABH]7&-OK7"('Usf4<rZ=KP(HgBg&TC*^@Z$<'X5<C=+P=iUk1OUaFWGOg<I_Ac$@I-'EcO]6eGc.GF5ZgC8Y jRT@J:3/#*_>U>;ZrgSANg+q7P8tFk0)r%3<-aN*%<p`FYk>`<IX2bS/j42rGs'?VYO0`OQgi8T`, r'(&F7Y<g4oA"(o?:r.*(e6<hBRF( '"$j+Ci Xpr#5Iee>ZUL-14<T&jITd+]Vlgb4/,'YE&ftJ:Qe1+E&F;>2$\*VD79cs,gWm0n+DS7bcA,c14[CZQn]kb/-$nM,K;F";E%4X[R#GGd<f86&...O.Mb+V3jBs5@hK]OH/lW.[;O/J'sa]E4'^eHRV?!l@QpA/];D2c3j\<qo%GhV=[Zb3&I;=(-;)O9m*P7'-k/Kp:NEm\OaD A\ZA[0A5r]:" %S:V%Mk`0rTs8t-U^gGBcn!om 8^-6V&T;$>pX"!h`j=A9_%pt4mZ]LJoOMh#$*nX57JktJ5HI?#ne/qIMd:?F9:q*_UG%ILCdH>fQ\f#>Y7OP(+"C'HD9a&F`'6ir+QkiB`,/EAT'IaBH$'gIAGL>;RtSL"1gO>XeX.L 1SZ+A]31S4W9T>4EJSpPk<4#("#CaOV>>iGftc7?5[?(T^qc:kl2I'#.t^6,`H4W!DfMI9oGt$p0>5f.Z>JO`^Be%q=/\eg]7MaOY:2_,]-,b!A;;_OR A5P.n%Z7YLIe^)1_$N$?&>oA6$59qS8"@VbD8bV:ON"!]`jC@4n:6eDT)3E=(orMJ<ft(p).*n&m(@gO<&[R1jce$dE08i+I=@4P?/E&(bWUdCBsK;OmWDah$02GZfA?,bY7&S=OS1LU>r+U/U-E%h*J> ]QinJS"Z`-9QP2rBF?g#8m PlBDJg^)p'Y4bRk OZ\`0<"p0#`Fq</t8\@flWcEKrMGqD-Y6;3'C<B:6'/BGq9/On3bqOa">LDRa_Md",AR>_7tqgAI6q>F\ rUP2h6P5Lf!WmaGeslT$$:km:"^b98>B@[58%Vk8o[4,3`i<A:q'ZH_pY%"Uo'`nA`#.43cb+C9`m)k1!%m`%&mseOt9o+e2ctA0Xb8dWXkl.0F'&Ws"&JQZjC1QUQf.DqldZ3oGQ+pSCX4l +Al : eAjU?!67ReeTYltifnT*HmKGP&t$Js=8ZnCR/*m-r_j5Ydp3Yr. M0aD?'P4lkVs=?d(*<BdY]jr[SC$jp_YS)j2F=AR*8^m2hgOQOSV_^JjP#sX/\A+-aQhT>-j`:lG Jp3Z@RD+o"K;Oo`cgPBOm:XS[SO/hl\%V"K%rXTaOdA?!`KL0[jil< IE9'PaXf@/tA#eT'SBZ]es'ljk^/f?i^b`k`CeqsgEah1N^_qKFOQ:V,nH;?rWTWAh8@J)AJ-fdM.Ub'>9`Ht>[4A\. HEF2YA9)_X3L^H[B`)dO UYDPi]b&C`-AD`ettad@A#nG>L4c\Wcp"a%d1Bt4"atAn_#%3>VCJq$l$>O^!?$WB17E,NMQI9hqOM,Kl#0QC)5_M%B2E"K7Dt9XK[s@_HW( Xp8-1+,k\hs [i?3?4XCQ9R@I1c,D4?]8FU17BbSEg^J]H'(3&Hist50)n$_k1ZX=$.[:O6<T_<j:`*J"-r,6PMD[9MCs;(Yq<qrK<Kq2 J>R_<AA$0bA>rL`V#&"G<PcUU"nGF[?"W"J%&'nZ3tMD,D?pgc7A[?SXo%+^=?0?FaG6ec"!m0<,H.U\iP;\JS/:dXZGG5nH)-IHaoe&IakR!hcp"nK]q@t7`#Z-1UKD.](XQ4EW%OCAFPfP)%cOW6(#1fA2hleLsX"6qIZI/PkPB,0TlRj+XZg1,g6)<;R6S)`lP]B&`:YB""-A=\O-PW7ZQ5U=IgKgI73V""LsK$)r@T[dQOqtq-7)1MNFR\Rg3hUS*XK"i#A1MPRbhNF),"n!G4AVFnsDl/,!rMD'IHqp@^Aq4TA5'gcKQ>Pi<GU 8>(Zk4\Tk?UAZ@,gt)S#c&n/KSYnFGZjs^cACm;+eP6F^)MAGhoqV4`@1%UMmfNba+"& 0sY!5$N>XYCnoO9^FI6'Y >U,i^S$3>sW3#itq3RnU@rgE1^8\UTrjTcUHbl$CFC%)UY[P:8'M'a6^1O4Y!kgi@n8:%j^P-cslBH*r,-Q"Psn4bKbHHAUVLl%F_fB\P<sD$^O&VU,5Xf';b#cibEC64s c(Wl+T+UE&N,[r6Z`Nk>h*jme`BI1EhI<tPT8'd=nFNSC\#76?:Dg-hVE!L7pL?']SHj@mFc=fH>TO9_gA%]A"i<37)\jY=sD8sYN^9XFA/Ml<+seGea<.6D^$UC[=X-4`tk@fI<aWHN,m37@@E2"LW<b *\l-lL,4OFomrX8JB7`Z<r=tOtOtBdE?[FQ2%g_I.@Ucq$@saZ*AA )qZ,[^(UCZYG*2A $&* (UTA'26U@"_(=Ze]H?i0U3W'K(b$s=&+V+[eBthtG:"E%4^;;jJR2q'1>XG]%M_h:kVC\&C#1j,`E;2[CP_;_,SHb+MHJ][=@?Z\J[!ciZMSC=8T_P^+7+4 #0aMJB#M7+J9Y(TrprMRVhqp%6n6ph[#A1N=8i>Md4<b+GoT'>mPMB$b#AdB5bdamqKn6.so 1O2dscP,`V1#sAjYn-$).Ao3moshGH`Y^-a>1T?/^VeV aR(MfbU*_)lD<ARlksCHYS6i 0q>iE%8OlO?pr$ZfBJj5#^-GX'h(lCVdm<9)q".PI$+*5j!p_'3#>\Il_VpFG6Zjia`Dtp+IWhr@EH#]l0o\`js?_);^=90%PE(m]hA-Vm/r)\W9ENd*Edn+NM,G^,U/n;tA^+<A5Y)VTN+$7=+2ij&=^i_/.T,gT^.CdD1Fs5d+qNl1Z2T*20$cnAc:sB^.?$+m(IlJae \18$h,GVofc!rdX asfdnd4&SOrds;@9][aJ.3h0=t`NnA(fim`UiZ&H '=Ic!`JiOWM-#T6QXPDcec3!J;+/UBa%!onsq92N4A':K7*FnRl=J6H(bRmHG)clO6e2CEd6,GgGO_Q8n!>RQIGfiB9s5o6`RjM[ALmTXqNm@Z:O<6NTbU`)NOr.a:gm^b_XYn-Va0`;P? RCFlYsq/5Pr%$G?r^AZAE&/d*X7AYM\AC,Mes7G -Hb0B\BfX6kcUaJ_5[W1+lp6<;T$WU=C&\hg6A^NeR%bIWE6ZjlN\:k&Kb+<V9boOA3We'Pp+PkF'h5^NrL(PC&SIg%Y$%fDpJA1Ol[+q!_>B7A6N4>?q&C-pLlqE@c)j/Ml\i'J'\/N4((UnMeLVG-?rc?_4]>TAn6!eU_:tUA?OYrAJ[:n>nrn>tOl]L,L3tb%q1"TKD_Ggo :+r<+/L<-QrHM<=)i1La%Yj<M[$U\-a6&PRZ>*#]#`akcXI$cXUbL:=!nNd4$]flE;,Y4(i51saE!5.n97EkgA`IQUb$1s_<[*SpA1j/,IYK=$^.'*J;^U1Aa:r\*[5'BfPm5i\R:Y5N7XT*fJ;m"f<-*_ ePoqPlR7d4nX0[ZP'7CSd8!faj)#/6e[R+!^]L[R:N:TNV!(Kr]OV]a<fSRWGjM;1A!UfQY! C:.jXD2k)AUFH55Z/Te`=;5\Gr'3UgmS0.MhbHXAV;hAcl1a)Zj)t]QG+:J3nm8^\)kSha(@A;OIiY[%%8ieU-cE,_"JR=4l]Lliip./\p7dYXRt\R1@5NG:lQi1nFOXUC4(MW*b+,o\MmaV.BBKf5E5k!+5tih6q+FeghS53%/T*4_R^PLV*EhW0>`% 'I-L hGX.orUtGE^39%Nio,O9MZ;+bHD?BJDBPVAk'SV%5rFKf"?[RX`W\t+Dp$)0NZ_IgY*9I"+GSj3NL[k%HI-fm9A]*9\;\>CTdiC02j0G04t_2C)XN&a6!NCi&_[W*E+K*."oe6R:Oj2/4rU6PtGm9X]s>ho)^1<44a0AT%ELqE/-UKgS#AB$kVBmie4$1Y`0JHGlRa#Xc:]60EN9KE:of(H;ElD[-b]C6hOqKdd#&8/Ct2<^WG->k1N._J]6)TUC2mWRXrPD"Y8'_,rqThCrN+A_oEMMkM5-rY2:3Xl1 @J)D=WVEo)paNT7\MYaD^:\WF6(/m:-oEQ98:]mn#U2rTqm7W07fcC6V&pFWgZ!A^-Ri>AAY?!!sY[:h8OB'o6t?3_]rM4^IfRmA$'mPB<X2,@j62V_BkPrr/6H*4NiF23S%(,EO!Q %$RLjP5X& dHpAUB h>9RjB34sA:CJ(R;lN6,kj1<ao`E3p<h7J&^s-p8+kdahR+Y@q*=<`rl6FFZjEh^OG5d9>[LNKFk4a!+V_Rh;;O><H9'3C`YRV`s4%/?%b_%E3?f0*`?[>&;)P/*^g?AAiJ`@*k?1A%p<4%9L2R:C!fReCA[f#T1C6sYjI_D/H`IV@*N6LX'`m>\qeb %'3.)%;s#s!6/B#8dd`5di,iDPHo7MQ$AV=J+V0:(\<8fZa%E@Z7)"ZlWG4;b.0*S,<"K9#CihF83rBU(&mA&5EDV,'WJ=3NXeAW3@.j2/:!+an"I%3q(9(kqZgY9h]q,VK&![P9;J=D07JI_\6+/:21[RB<D#^-Y-KhIW\TX_dUF=AfD@otfd$h))fGYlq#h\<lEMa!SAs_@+SZ`r;8E0m5UMYmKlI''BkpF:iLERQ,?tXamgrf/;%Hr^Mg0l1ZPn[q4cFoOX'\=>q#4%?Fci'2V,<%6krSb@]jEo:YMGB7P87$W;76_U"nHlgO2 o>'[KdHeIl+n@'5[+Bd.^:\Jt&\Ap\RO2Fn5C&`omaZk:sGJj&_SIO0P-Cd;G3#j(I.Z=NCqc 2%(:[0hN1FV89i'a+ed49r,f\kNa@_KE*@ZZP\GFNRNQ;"+ghd]$LgM%3U05!U-$#I2.6 GM.Cq7P&WDYj$qd`V_755b9$K7,9(Sf=6>@<R(]Q=)V9p>J9pbr+RAf>A74AV_E>Fg]^+-0UtQi_m3+rkfFFEr'<%iHE/4B7N'sRWoRIc*U_qfZ(pFqp,^'0-ja;tcTHL5:+gJPb_qrZl.X(/0TeXTVZ"4AR/'lPAsqA<$@Ej%/0XV$:][.2mhWZ]lgQ?eD8q:t>_himc#`.>6[$mMSG)7CZBZ\e!QI7U=HDoP,3)B5C7Ulm`8l&?97]9bV$) c*11'-:+% f_[-8hncgs>Na[J (jUgspZ80?Ia_'AV;n/VQ0I`\QC$>`:PG6t >1!Z%s\a(FNgB;;HbsFWlOV9<aAs^'\eZZJQfc>3M8[Ut%f/AT2]4a@fo=&HiQ$Kkle-FYl a@C8F)*S;lU"VkdR9\LfU/TT!@.L'+ZhI,!?G3A!#@-h)^!B?)c>:O8cA4gUgeE#kH'\>E:`Rn#i!@2,*)H+HVeRB,cATD8U;RsNOXr*M;O+NTMJGe<Db!OI6eErYAcU4/Z$[Ce_ZE.)Mrc=8:OS%hl.!c[67W8cM1Z4Ge.6/3CFfjm?$6!S<A96Ork]-0/AZn!U)@-0kt%]CT0`F@B.b9`3,8o"sRTPW;sWU'Sl@^FZ$^=RcfT>6$J,BI9'cg'=ei>U`gN41oN#SSV`o[8aOLPjsb0pL^G#MnmAgsb=(`-0T)4mP2A43]F!Uh\hA*V6 9#@Za_'IE2Ai;qk$JQY5>o;L)\]:h7Z)^G7#b'r-KqtTi'dWAC^g,"^i)abIli*HV@7rW#;[H.^HAVDU0)J:8sn2XK+LR._$[Vr,4Eb/7LT^MBL3gcWI7E?sZRn0YPA.\N%UqZT"H:5"Ha +4&mLinhZ%SHpL<hhc.<+2Aihamn$t14&e;M=G6)=c6hP,D:eK>CjG@EpaTt]I+&VgLL6s%+epH56Rq<iMh6<oRS59M$sl:-VHg7r>LE_Js\!*V6EAJ<m@[g2W`/]fs@W3-.LWqIB=:jc1,1YB(:0]qBBrVa;b(D5%kqiYA0p8l<V1oTY<-S&=lmsbAiZ;jFdCEU`lA7O<?aG'W?CH[GC"TB3lPt1#">4"tQerAf'c/]icOeFc]>qJahlBP61.6Zn1e:I5 r78,#,F /3<;SFor=OJLpMlGrc$]/91SAq6(c[(Fle]DE#!/r\CdaCl)$0R$4B-4bm4dX ]0#T,5#9#(`J,Aj?&_%EcpA7_aQJCpFA*F[0r;.q*f0>3$$!_'tRVnR?Q$Q"0XT9?Tq+c_9!_^8eph%AR25K>)6T%F01e/>&b2f]l+nAgmQg8kHb psX3`)5MpE1O.Q!"DT'`;7A-tWqW@P20f$$T/a>PebHtn1!qZT'&JHqr[&'* =52"&7dpe?g.$o%-kKF7q,O0.i?lc698?&86,"NdI3_=M]nkAfAt(7"*tEfQ=-K#I<q67aDF@AD3&RHa4,3Bc[e]FUa>I_0<o0q@cqtbSi'aJ8b6oEkG J=S(Ttr#a2]iN ?&EdQn\N8?m.0f$c2s29AXnfRrD0YYe=h@Q@ZjCe-a08LEl`k96Pm;B-<tbV"TjZ2\.:n<A*IAH*]W6C#lBaq,@epQ^EPI_"<RQ(7m*tZ3gfRVdE2[rolYp (b:G1:C(l@+s2(JL8pEFNE,;km0RU)GA/:St7D"n]JriFr`1*e ]VIpQXV":%co r[GN6H@-:9J5_+['9e5=d,XAB;2fAn.MM5/W!RVm'L?3EHh8/T];)\7jY3Wid<)fCaM=*.kGVRA@W1mb+q&dFAjlpU+nNr=\N@N8j4bA88ZKcfaP7sP%?4@e9)@p`oa2LKVmUKTm%Z 1?4l.rE*WsK5=B&!>q:N.0:K]80%4=JdT[F0n":o%VE& 7;;]E)'rAS_Nc-$P\NppVegCj</=2bL4E>TY>\lcF!%a:rq;9ndd'A:RY&IhG`p5>>Hj^/Wpn)<!^EIH^`@AFS3WL3P>7-f6$8A)=>0+* 7$4o63)&!i-YA,0;t\MkD(AgZah_<[k0o"0]af<(rDd%XfeBU#W/^QS!LTO[PV+8,<A(+P-d42rItI3#eVmFj&F7^as+NJ-RDht  (2FRGbRSQ_R758OHQsFWg`3FHh?jF.r31]^^`[>jY_N*bApB[$!`-QWWA#H->h<CZ`F8p.-B=Z=N-BO!^@@8$A.;" ^/3%Q<]?/b:+VlD`YsUmk":QAh/r;[7d+L/-_*/VN$`h8c"T/[ha@9 );p@U"m<k8[0ejHl^OiCYaZpLE5rnODn':*[M+/RP-GJ3%q8t X9Qp*>AJRlr$UQ<H43#THG3BsI)J0io;C<M:O5*r5SNQ&Z[@ F<G'-VtA?q)I,6hH&b4&g+OJ<\97!`N'/2(3BBpJ!\.&`@q4\^4H)+O=$sHgA#Gc]G='R<Dff"7aF+',VTNeSUi?bbj%FIk_DtiL9cK"DdmW1gr,KX>N(hAmmN\m!Y3R?nY'"`Rr4e))Ys@rQ6(FW9+m(8<6%1roR(^ERjQ>Aoab3a1MR=_]O/h4Irsl=W5+T3ZFSn`X0+r#O*iHD?bGj?I7m8IpjrFoa5J\97IJE66Ob[-4N_o,d-KP#P<rEf@]!AW"4o;D^Goel3A8a5;V^i)cCQ'4sJSm^kAM&`S8Ai!X/Agp3n3?5Ob/K7ojG_+#I&jY%Qr&k@`\`<[mF 0p_(Zi''$a//E?[a<-Wi:7Kl-Sk@N o'eCcBgHJ(ZU,(!e8,ffV6q\[[a0L5bK)\hefXm4A2s#<t6Ed)(<6K0)\7iq>mqB;G=fXB8#]1AL7.HQoXm-[$A\\CQb)f*TfEH1Q()dJ?f&qZlmRo;a%-LnqtW3e&5PgT5d;Has=F2_VI@'FrHm,WN?2 *"=U `K'P$PchrWcdt L92Kj4;kTH=#?H"cf<@iiXjA_QN^rj4qLV";XPD9j:bV01]`34N1\%DX/Ff@#XBI/Lo#c QCoJ\IZ$g(1KG2#(:XDi8A.P"d,A_68DjmdT!hT<G[=Z0H@%j]'jQbkp"q)+)g_:[AYDW,K'LPY:rM4t>.V&m?$9OAM3$5kn+,%0o>W\p<o"Ae_E^)e-oLT@Aa-acg7_9No=J;<@rA`?'!YGG8OG7D(M/H>IXT`^5!6<K>k%@p]Ybdg-7nI"A9V]]2SWb!JA!k)D#W8R2B'ALHClX$++inHhl,8AXH!U j.7%W"Z6tNSf7STULk#,b=c2Y`\M8=j>!L<n>A\i$qn8!`$El*4qXlSbfb3!aDY?2R%[1R5Ah"'$$j?8pp1qtA'Jl$%CW/KX#QcL%9a)['lmKB/(.BG]:TpH6$]M$P3\E,H=El.).V_g'G(SKG/>Z +7Sg  PKXjE]t+.WS^o8?G+9(9o@9@1c?LgS<$&?)tbb^'g(er+C2@fq_->mnAkE5cCn*<>AI/KAoGo>9TcH+h`Wd? FbbjTld6Hm+oYiT&XBq+Tb/Yf9BTIB^Ch`AZldmX'?0WT. @VSl&XcW:#(FW^.IAG(a&UF<A?aHQG"9sAEKhicer@J0`1<UJ5=."s:r-FqL+^:<&;JHr(L3T0ZR,>98DfaUc5>!o9$?$41o7OMdQN 'CCF=3n9,H-GV1:C2fre*/DfeAAgS<E.bQ^&4b7:#ChiO0/(Hq\S%DaH#T+7lYsIUS\"[Q60MRkTZpC29Uam&%?)2LniR"^$@&4Hta5=hQXj*M_EC.4DGJ0,V:>Cp#^OM0Us`WMg\KO4)#5VeCjJY-3Nn8Z+dM8HLr;&bU#`l<.J:+WdI9TALi7"Z.An&t-&SVX`XOY)D:7Cd+Ddfr!Y-0&jr9ie)OCg-)sqid!Q,>ghj*.<4]<aYpe8Z`Vad^(+]OgLt*-%P:?DMA?-;qR_g+>]ft=rY!g>i%M`] kX-bg;:*`c :*FpCB="6Cp?Ksn1E-<iQp4'(EO$[MdUB'LhkB*?DXotl1:)esp1#_CP/O7k@'eH,j5`?lltq,NR?Q3)K,]9^#>$6*nP"]JM1==QSeI5@A"1AJ/Z_F%\AC')E3ZqSM3L2.IfClYbSGOb?aeeqJU!UH_2PI2IVoJ6q7pYVa71dJ%G/foptEZbhC#'i^4tPXI0= KDT Y-TRaHabpCCf="Bi`+t-V#dP>j"+FJN/KL',;Gpj3Q5Vfn6i?8El?H4p'?A"h)A'K%Sm^r%a7-\YgE9pLcSV!=?p%(7TIdC,UJ?]b+L0LJ3PEHeXZTr].8CR?b;,t4!C'>Z&UEGNT$PlIQW6DSsF;WeM2&o=mUA>cAhf-i$qW*KB I)9.1Ae%^ICbAe2h7.Z]$UQ!@G,pCLD1J>:A#U>hg/fathk5@GnFm"/:HW)V\+\*c)m2Jk8DoKPOBc7]fSih46G/\rq0&rm#,G3J;E-*rDh sS= *C%f.NATZooQ.modqS#(%dHm;?a4d&b!XWgOmKTf"q9I -2%%q,8R4,J#$5gBfZTYMm,tq2SA+ifSo/r[#P]T<sPs5P<%KADoLC3t3T5l\d?-pNlf\80T4:jo?sq9f38r_%_-@PQ8+"U!Ab)\ LCp)RsPYNC`D.'j(FQrAA(hW2+LK)TB/#2e@CpI`![q 2=&b;kl8k6FWhGZ`.>^7eX0(.?F6`%@`NXKL=PX\?XR7=GQRsCYK 0Q\S/ZOS`W`[9W)X7V_(iTHfR:`>AF:g>b LA3A@>8dj3,0ned.C9%JHBg&lDPd9#)n\@9&p)jY]=s!9 :qp)mJ3#7,;-Nm`e9lY@:m]"The#>be)i8Ahq]g 7#C_o&cdPH13j;Sp$)0sqL`Z.WA8[L%sSPF@E-(\S\9Y(fRCOm4p#A+/.-O(a11A$tQm_(R)NjCW(2f_' o<TL."!<4`.@SM!<'b%HSI$t&j)#!<Wh ,9Oj91s8X\Cb6M]3nnBlIEnkDQ8ZRbQOc"P<q8n--ZMNV#jA`Z=gKe&t/66IcPh>fHL0$??.r'tB.`X]ZTY-740RoY&iN5STW5I Y>I!rPHtYX"Y/ ]m]QInX!&K`NQRU)A>OG5&En."WC4<;4;\=BB.gia@?>Y0'ASF+mY*2#Lb[9B#JZ%RhJ<>fc!Ae*daYAO6gYGjGl-!/h69M)#jlf86;rh<sq1e06H9`D4a:\QGK68r%_AJApp^r6rn-q$h+8o;^HR@AA:_*O#O2q)6>Hb)i)DV\@*_9T:__^KQ^l @<85s9 M6]?eA!#Cps.,Y$ e<B?lq`ob11&"+0p!0%L'*]25G*f$f_n45Rk_7\3_%Qk.TAGETBtgV3eb-_@XHi*ed>-f$32>G2bhqZA!B1LIA6@arX(5L&:e!eg0X=_bWcP-%",09!bEk^C&Y!irAW36XKqV6/MbI)Ak![%,TPZ/AKX0]*\WPq";OP*pa)Ki!,)$\1N-X$@M$b!8<;O`$8OZh_`N0mh_cs1/7&k3=["]tI-OGV.oYk Y2+.riBdRQ7k\d8GFpG/PVm.]tlq>RU!J_h'fVdeSAbW[^.iXN!f<qMX:0;PEoMR^?NslZ`NHj W/&G&!Z6a4LQp]2]=t"X]6<NEreD:Z<PrBEW)?^`KRf9Zt)9*<i=e3L8q"3d5L0'\j_PKdUYRLp069hp*/<t,R*OgK#ml^-8&AN]kS=IDMlD0ZI3iiIAj-;MOY>#;cO[m]U9NstB?Y`+Ab(IDE;'P.!Z\N@8!HZ>d>(@m"p(lS4/XIEKNZ5h:\YL>SWGK#]2OP.q;][.s$84/9FJeN')"(&q42g3SKpVUbifkn,mpIT- @XaW8j?_3AJT:Voh==X>+ ?1)iFM(aWV4]1_hI,\Slc#pWkThsicBRV[AhADB9KKPUJ`KL$eSSPC/['K8(hb?AE3^sJ7;;oEH6A8j$#1`AQXq]ps9,Ap08AYc/MO]IfN[.]7tD;U%6lh8;XH`s+'p4diRJ%oF_4b)cOH8 /J=sS"0kO<gBSc8Lf:tS5Gk2`_Ed[*XG@A#sH@fAg?QcggR_AJ&qZQ8mE<6R _A:&n0)9"WXr]aZ9hb1;JT_;OU0h[Kqdl>l)4^H.]mP3:cCoJ8V1hl+)+2d7W Dt$0'FNfB&5PlW9$M]DJE_D:(;N(?$o&d,qGsnX ;1dOdm0c.Rl^Ct/GiDTs&^SYV.PW$"J@8 b,>I-<Gm&@`:[p6h-V:)e7A-96;h8:[364n4pA5C8I3WTj%5k)'[,&4>:#.aEXL8niGh;KrT F$=M/DjA'3s5/9@r1hqn@+HYf""RWe9Afnlh*\tg\T$X6dE9C#q[\0\:dFf4!-]NS4`VIJhs6-=6e2lT5cCT"24i5G$]2n^Bb$3$,R6:ZKjn@n.A;.MEscbH4 DdA?j8O`!mM#7p (Mb(4\qBrt!VG>>(BIRK#@Z:0AcaHk=6AL-/"R+&S!c-BagoA8,om0\!GWbeO<.R":,J>2aU0%PFdYd004$69J5;\tLU!5Ym$k)$!cm%OR%btd4g`bla;Q&(f`X3:4DeNTAmo=m*:p1]Al3O5H8,'4G6c-h3;7n>Fq/)Q'@lk!K[k0:eKGq8'^Hbjj*^%?XnWb)/soo."AmJq]dI[KZDV&75oA*F:"*VWY1d`DAUtYXFESlLQ:A9c_qNT^NYs.-:rZkgJ".PD:)-#CMDPjY3^/mi\s+r67s[c@V=;W6e*^PJO9`@2fPXRojZ9Z%1+:OLf?fGi)YF]!H %Bcbh!X*+F!)/)#Eg+Z;c*f^&2;tm2;slJSP2a+& \W;9)_LH`"+S$tAU MQ+dCr^ $1(AY!.b-2ce%n.dInA;#Vipk<ZTp!@%11QGD'M!';#,H>o"dmU?'\qoV[ngS)K[\IhNC`)f:On)g3&qdb!?cQ&r,.UoSd%9KA8O!L([*H.!:j;cE7V65ae>>K)=('.65D3G;+]qYa4Nd;5l+PW ACE1@pAZ!9fj`ksP&cNdARrG dHjaQ5oVOYpEt>,V<p)n9MF3r<fAH*Y)q/2!P'XI_0.m'+PPISi+df=_YP42`P]8hh9VI5*`8`_F(k%t`FWUsFa-g!M3EB[9$=@ptPVQE;?!0CC8 i+Scs]<Ys,t*BbZ2 J89^"H;`O.8XETtXsd4L#I-o-Q#%GN0Fr')D'bg,l^]mW@^%MqYtbp0Ae!K=0TBeXY2GpWZ@n#.qaJHhR2IelC(MZ`76Y%p0$QYS"H"^?O:<Y3(M9c2_iApo9aeWBUcdk75sd+`R/_$N#%,7.T, g8RAMjc`4r0OY#;\J-+'Y2s8taO >3SV /T)`t (A(e3UG*B:$*U%1qF'.Y&@4m;$i R!&GXLANqSP^N1$/D5SG9AP@nCAr=gHZ8G\FWrDbm\'IM:n4b!oXSa#UmqGQ(=UD*99GH#2FAcmitH0)]lAfKB;T<fbN'_q=TPt.AbP]s=6gRTsAZ#aJ&+`[3'.,nkmM(M)>S5Q$tR],lh]mC$AP;D@ULc0jXAAT>pBH_EDkoO7H2_oUJ!P@01V94VqMXTS"fUAS.Vq8W7*8jMn9>mJBQE0?C@1KW>E7_AGr\BQ+q/kpCe2B@)'1.3pE0P9NbKC$`5X^'*+[69n.gQDdk!6N`c(r5CV8O[#$Yh Ur$&Z?,6iif)l0lTtGi%Iq;+L3_U>Y#*78dKr,BH6An2gR5bcap^l)Y3!c&>n<VT:7o<)r>.ee4 aE5AcSdA>MPOSQK\#=r&1"0_S^@0*e--@bKC&1Nc"P;&2Z:GGifAL6]:t%t"Y$9O#GW]?-?>OCNKs A@-ekH0m`@*!+J>,/WJ9]kt5tQC6j+V'VG<.77h*g&)+G9nKA#5TAW\ti)&M3$k/7W?A%\=P*&&L]kY&rKk!kjTUl,N6R7-cPUHak5odkeHZH9A3V/]e/;fYF-<pP^Vka]?L%Wt!> 'JSsn/16VA/c<cMH<R^q/)0e2;0#JS*Xe+:^ZA+@)L0T3EJ 1lbB1h=[9 QmbKjA&XLtea]?:Kq.jhNK)7a,bhS4;J%1oUk,]tlO*Q.p?H.tDIt()%AIRd@hS?]l4F[1!8eqI]gkcXGY9AIHK`GRgr/9G,oWDWTf\o=J]eNYPGqdFoS^/F`V;UhkT9^Z3a-6;;9XcCV8mb5-90k Xmq58-!MoS=8,7rZ;cs*fZAMb!<CkeAbep3lEp[jA#UOt_+rso4GBAt&E8rg[G8+pt6V4DJ] RFDWkE]hic+BC`XB(#,e[PrXb8N#OTM+.a$*(GA<g 2:'FJo+n!I9ng@d9oi N9R )XYP`32,r+K7ma4 X3`\4?)8dR6fAA>,(-q T)"`=2JkBj^:aT8sTp_+2o%N:b%QTZ\gnq"t4D_1B<2AXOUM;O4*Ak@I\ENSP'eanE/Y^fL4TOAcV4an>(*-1fPMHG=)$j4j8tKb`59DFSA+QR?.;n<(j:3sr33Q-o]b5;j^l<-Ua&+5%1?7smY;jbUM/7"Zf70BdK@GnRNi%\2A+%S1J/`?(NH8JFjLeJ Z9$Mq986!Pn6H8E=Eg=k)e]>^Ad=?#rpK+J^5QQsb)oT1ch=rtJrj.c+XK;Mk_e_dc ^YG[aWPCZd!n,D+1F=_O\K:LU3"G'rFViOQO`B+PP`%XRnoQg9V:YCrJjl'rh5"HeFCLg:B.Ic7r:&F($UKC>8#C"lGT*p!A\3'_A*'.InVC1n8Z@F<O&B45YQ%bA*n<&r7.WlfF@>O;Iq7_7tWk:q")I#=4mK(56h45X,q,9s.lG#mPRAAfs2l/8MBX_na39RX1B$7LKc'&?bV/'g' k_D5I67WP!W/a'l%;ZWeAH"f7AQ;OA"^*oPXQ%;8;iU46BOD>lJO;8k,[Z1W`N'Bk^0Q_7P<#K%b*cpHlEFaJMNaHL>>J(p@9OVAOb8]Djdf+69iccX jG1Q9kqd*.,"lmC3"mYNY35[,2A=oIg#`S8OJ#be %49a81hN,bj1J-ZB9MYg,p*,1gKDe=>lr'+(fb:U#_eKBV(:H8\eY-Zs4bW5CLo:PZ]&V ]tV5`';2A@r:h;k(62p]F.ga5.r%EH)=f=AlBO-d;9*;n-=Ztn1@/-,7Nm%3t"^-?+sTCNYq)pZ[R#%BRe&5EM98USIRnH]R,Ij[aJ5#GcDL1P2'U%1U4B-0pLMZ:],^f*a)tYI6->6F]]rp*Fi! h2_=EaBn5D)(F?1amaLA4)UZ)\;;4B8F8PAa#XA\=$>RK>aPcH's.cHKk<BWbJU:7&jj98ZP5/@p%_NQLhE>9o9Yc*7CO;(m<DreX]hQ>1f5^ZpkRf`5#?(],]V@j"JEi_U&+ec^F9L+o6S`$P;g':4%8Z<MZ]C-&Y)X3#^):;bkY-`MWD?WY4ITg#;T&5.PXB-F]a3[st">IGG_$22bNQ589\KG%;CdqrRWd"f"GcNj&-$QNs2'2=j6AojYZakT>_KbC4HIT4.^o=ES8*5JZ1<(!\Fs8!r;!:!@U[/oA*I:A<UkZKmV'rAjCFA7,$O?h)W XtghnUp)YO&g_sO%b&`L`TqZTi&s\"<%DbkaLEV2US2PV$id")V]d9E6-=as:T:%$."r)<#XcD2hH^S77"(gi,MW;ZDi7k@@e6YIQ\dZ"1GBHB-N_BK%A/WHnX#kan&g=<!g"?[,\!\EGsZ9@<4-IK-[Q(3N]?-+Zi(F'HZ5L\,$IE.8$;Gf4KeiqHA]nUR4)r\1dqj()?S=l&]`gfXAF'K:(&f `H<!-DqdR#aKYFFKLcbp0>eFUE.UE$^[dbN6./B(o+&Khj";/-h7U]"6pb4W:3Gd^'+82&iV6L$oar/'MR?Wo,W"@YY&)#&_<%eETG(I??e'7cRH$>%H&b/BCF"pt+97)2YnSV3Mc#`m#smn^Y9jpKoO=e9j+fnJ+/V]Fq?:kpU(tq8hX\Zl2#ppK'X.Xa2UdC95c)8D?q!AQmHL.qh+?a.PN;ZHUmo&jm]dEnA] fin@9St "5i+L-4s,$sW Kt^;[K.q2QQO`?!m\?:*]-<cpg)U6pDr]\21@-BmSIt:YjN0l3kdDB3c]"]/PIRn<'5)Wp@b$ =o"JPcV@\Y:,#[m,R;G$qdBQ&^2>j;5\Te*TYd[R*#XE?R%JJRX*gELE/ZOMoP'"i-U[8We5H5qOj30C-lI1\#MAo36hPt.caONtgNM,:8aFnFomY<fHcg[Hl8P AV!IbYROa,4^dDX__$F5)S)b2e+73K [4#q_+mrX?'YC]N2RB0U(S&QQ hOgA,AZ0`qb3V'n35LNK?FZT]%o7_G4B)+dH!WFj;?`(OA0p<tr_D)-h+-XQ:Q9,UH[4R3M Xc7#T:Fe&#h<:H23V*WWo046t0IM*G9$@%ALWR2C?ADqS3e>4(g]IO/H0$Sc3nH@nd0n)lG;+$%`nilmb*S[gZE0_`<Ab7&5h[g$Hs6l<p&6g3;54A#Z=W $^m? "RN4LN+&Gr3.`s:f98/6gD,<HA>Rm/T>RR%">8C$4 be`Y$@B<K$s&?R_MqP#,lh7?+Nh*F!&sN)b"%3P0q./&hbZ K_tl(BPd%#@DbcW&:E+eJH0,#@NU!Rqn\f9U^EZCM#XXWgnh4eIcm"Ji#dlEjAGiUt7`2^X.([Gf3s\jEJ=ZE%"@;Ibi,&Ill,[nhG0:1Wqc6"+G*E!Vjqhq!,n3RTG*4h4pl?RW(9U\mYdNrK0NBAdOFf>j$^Sdf4OY_N+C;K8]fi!4g3cF<58F-dat-XT:DkVSopo4.^ZhsjV/eX7AEPS2FVgB$'&Xh=VSM$Ik07PPW6ZO':)3Uf7)dOK8jh_f3?H(Jr=J.LgWnT1_eA=M1e,6f!4%<&&A2&DON;?=N_kWlt\Kag$9 26W#;7 crF(` K+M`V"PfX,K%Ul_d@0i!KWfX*OGp4i=EUbSAqBrLALs%[A.^,l0Al?QEaj(amk)]FBXCiYK--?0U(pfC?q!+_=@mSLkXrK'J*gge)^B-a6n'9Hs)75QM5+cQ_[B^[je,\&h0,L2:n3+V:eA6RKlQnAh^: #7oU(C74=K*?8a@iMN 6)?Y2imWkj)jL3t=2lo%-A%Gmm6AGXq_4!Ebb6`hLDF-N:dPU-j=o@5]'ibipCDlZg8,*CGk`A71c00>eW@`lpcN++U?e,n3\;Y#a($_>;^HrjD$XkV&[F,SB1n7gSqmnJZ[Id1g^sl*\E]lIB<oj:'TWj$k:erJc7cB#:UY/,soH*e[nmF5hk/+"E]31?=^CldeS;qF-frFMr]d0s8E[&`j^Zhngt?@jiqb%>^ROG<^fcY4L[M^]n*O[R3GnNg9P/XAAM=16F,A^V<TeQH,>M3/HLLO3#gZ!31(_R8kt:X2EhY\#6)+[`Q$B#C"A7-qpb/JiZ$eMFkn^MD ,TL4B?tXT&-c,/po271,` L:QjqT/q!K'EqA 6n#[#UY9n`TOWqC)=[A!8`QY#;#:fLP\"n+9hd&@S8<L/Wg?HaBIt%gi=K#]t*8\Qae71@(a;j(FHc(.siW;\+Z6Sr!A*.bSSjG[D:[SV]`QQ>&98>gA1=@,sIE$B1.F\m[c2-092XJD<`_R109#40(RH4j$j'(^%l%LaG[tiNdNZd*L1\p&tAXEZ$g?Z02SLek*3eor_IN&2ML+)kQAg3r8Y'\^UIW-h=C1`3]Rm:6]k..&0H*fa8l.nU@9a"kZS0BW6]KU9Y(_gF#p kT*6NY\(LoI+>=7e":1nOl4V"$!IZZY,B8hj6fhZ7>HA^rt'%q(_IeAAN#$#"8MFmA2qMckc  cP)2Nn9;YF3LqeBr;(\kgkAfI0eR*@.h`&A+`ESKeNB"7q;S,6E/B'U'\'1FYW[5,sBM+KgV1A\l(q.oU7(!F0!T<MI#A;:dt2WI6mcC\`WgY4fI4)O-*OT-bBsfU9k:)75H"QIg8B2!CH8),!@-B?;k;9e@L%n))6Sg?45t^H6D97\-0T%b+pEoA3(Hn *@9\5L59I.h_Tjr^P=!R>:g&.X(<$bD-DS]3<q7*PkT4BfJ!km`,/j,&=TXKS>Cr[2U?^/0_g%5=6=#cQt:]hj1O7-*[drWco:"b>R!sa"'8k_dU;QMV?:lSAcFDAaK\bO':MoAp_lAh`-" EqBL/@I)1Q -:'/=tR0A#;9N?(II?^7"Wr8-.@_*/KdAbk=Kb?6/5k /l5J:::)1cNJBbV/bC%Gf<"1r>kprV$Fat17n#07s,X$5"q5'M'%q%f6Y%r'\tr>+\UpOrS;&:N*0&?rVlQp*q:9LhNVteW"%&_0nP]CVWeWYb[mIOkkDfKdF9END]C>(/EUcC3'KtX3)- l^9"AmN>%a7htW0sKW>ko+-1p0A2NPU8ZpPV[sI'QOYe4+[F%aIY!jA `E?h[:=BrTgJ4p^1d7sAitnEHsfm)?\MJ1WA/Zim*4V-B3o'kMrct@h.>*OB-/7YG=)EW.tj!CpSYMa>CdEqFI@`1G#apQ/J4LV_VFO/PS]ZRV;s84(hSM.n8(`6LX.,jiGkF5,*UkI$H> /@ArY_7EOm)/2;6=EjTI&*#\e'#*2*>k.3T'0C*o0^#OHh[&"W6Eo2A]5GB6S,?"m$ER:Pi?aY4pH?Z; A,m!K+sF/-oB >-Xh?WQ'TI)L'mBJWWF>%mY!F&X8ZZ0)q2UfsSqZ[X:d0[4EWb!S7I(,FN3F)LdFX^3:`EhCO=U9>5.6\R;PF;)`^3M4EI/A b]Re\,*TD!C[T"iYIj^+l.tUG<0&ID.JdLFEF,lrZogh-JT-;a?2`HS7"eQ+Ng&icHUr[3kn'?nNUVD /b@7[cRe(U6BA?<ltXNL(\1rAT_cr.IH8&2GZQ=KT!*moSn^:b]=SUlC &s*mXBh-Bq0%O3RX,b:8(nBC`tYafYW]A]tJf^b`;XqJ+m^7q;nPAC@3p2T9cEOd_[J70^#Ilo-0F9s,1"K`=#?,^s!OqC*X],J`NgbSo["=#3SR/r1b4RaG4/i;]YRj7CL2nmSRk5qB6jqB#K6dAi1>jmq>ToSn @6G03!ngRd&*ZKo'Ue,Ll)_2'- h1 98UTlo@LX@i7hgRUb\trHlfc\epd$Dd'=6=tm#:U]S;d(`ABONL L6q,6lVID;;TVbZb3oT?#!cjhA#S9'J =Iie<<Ubr^#:;pOhpn.P%"P0<&C>3KV%eXg9ST cf%hT!aZIG74l-^bP>18WA:NRE,1<W;ioB;n-g*(PJteLc38\2U-"74d.Nt;:ofSZ=rTdIK*3^n&d?['Xh+L5n?C.j]T6l+>VQ>8n_d`II+&4Ume@SeS  Q`+>dmTNhhU+8=+gc/Unj=\LBal9)>-cT7]Nh_,!'&2Oa;O_!p:NEnWnKsUke-I@`1=nB)N>[)qs_)>E2r3B@c%N0R7PVUEf['eeAnFZtesX'+o>$5Y<"i?6&_Fj*<nm*UZ_nXNnnOek6 W[0ej.je1[^M?MKO,G%A0h#Wc!jZQKcG]jfmj1 gE\Ti:!7"`A#jO4Q,4!TI$2A(S;),-k Ia!GO8inSYdhSrZPLGY5m(S4:KAn(NDGpsoLs^38'`,>iY\Rr]5)>7/E\e?mp^dUAn]C3?#T'`oEe&3R5g7t[U21bj#^2t?>HAVAb)D]gf2B,<VBQV:PMU,nkL>esZ"shAWS=WN)5P.p+TZGN3\KAkAmHN2DbS[<A@RE3@aHjXFA([<8LrV%(pD+U1@=%%n2/'@[\%?E3@emR'38S9#&e!R1#T?B)b:AEU<flsK&_XEV+QTV/)/:_2YO,6nEkF6'T9?A.'?r&9VUnMC!rRjX%W9/A&53XK a2;9tcnD"Fm4k<ra0Ycl:*?IMgkgm_>V@R1fS`Ti50@R0>UdFAK1)Zi*-J0D7j"/FE0RKgkB;0iln2Vh\<@,l5r]`W?D2+"Bt/6X 0L>3\066f+6tYoOA`?=e&r+4_C(F?pZZ_h]2V0&2bBhp(=3Q,]EGTePc&Co;lFKHts'mB>=OgZJ5rFRoEQ6$W?]j$BT@RHgO*82+a[@NRqTPYs:Ks+^NG+2"2jF(5!\ kq?M9_GhBC&']rj'Qj)AhgNs#OnOQBXPO!o0&=nZ!i%DX?:cOY,2Y8#2IALK1>:R^N+o6hfqpU f[O%m6lQ%_I0=>bgAG'%\7(4Tm+LtH]Q(f[KYjRnf`W0-B'*LL- s90UE*\Ks5< =BWFKc485lcUBk(R%gULHnT^KAPiWSR6 ?35O?d<ff?d:X)7qR0&20Y"+F# 2jA>mV- ]mH45?&LV=EsoB]%)!*$'edIP"HG+V/A::SkJdA1k+@K%D:IB_ENml)0&r$<b[)qh6Ke(orDDnsEPjrVWQot<!(j%'>NS`[IdK@Tg>Jq5]_0*/Q-KIb IWTFA!SDl%\-:M7ni6Aj9j[^!L?`ZS^T47j`e`*lc!hK=rb;UG! #CL$5c(3iTti:(pCpR34`];*shFF]-d>MAn59AF1a_E2<NF57<Xt4jQKmk 'ks'DL^;mk\(#\a6&B2pYbaN-R(oKP$>>SbWX_0to6Q'":44aKk4,_OWN'WE+p9GES&eVmA!ZAWe;*qsL/ l"?l1kg2d9<5jgb5\#OmVf3WH4:$$ad*b>=G)U/n7dEeC([U<@`qL2iOVk(Dib2-K:K?Y*r+^A^,72qI)JQ>.VE SfW`"Qrg1`cJ!oAKC>O @CpG-A0t@M*]8=":inR=\NnGXpC1+<J7f1QKdi"G &GAc37cmGW'*sk!8:G:AZb=k8LcF0l&+[H=]J%m,:gflb*.i9I?=;h,UcLclokkEijJRo"]LiA "]#^bs*Qr-PeR@k9`_6Z++1R6"&99>]3lQO]i?5P-WsB0t^VO<idr5N0l8S=<pUV9]A&#(PAR+fAAo'$Sr6A5BgK#2-amroKkQAjs7'beCcn/;)!*lkA-\iAb$=*_DA<OdZ_&i1rN;6/]C"@14U>rZ8kQAh<njeqG0W`F-t8J7e 0f[isgmTg5$:#KpJ[q`""%O28,f>M+-/3'N7[h^&Rg#A%K\^9XV4Rl gZWEKgPEG;$^iRChYtWGPlp<8#\6OVm7h`lDL-V11E[4QN:,kH"\o(<)7`=*@tKW]66kb^#jiLt*/%]!)A1(Vt]%e;K0FREkVrC,XQJA'Foj:?I&Zb>^Z+4D4"A9)%`=J nAEL+q\'\F$kAP627_qJekh$gb:_FDj/*fM#1<(;qNmOX/:T&7B?EMGQ@QAs.O*o2ld' jcoHpC:/'!;`CX*#, 0M[`0HB[A5#]4&jDdoo' tf6e",o(9HXr,bVrfLCL0Aa.bjVFXVF5P>b%R(lpHU*'3XDQQWq-8MECG"t"'dj!OM[_N,FfE40OCHd6Z!'M&6f!PZ0t+@\2#)&%Pk45Vf#O<Zbbpid[CjWaL&nd&DZFr#6he(H@s]ah6W\O;[S2<>#be?9I.6D<CG0:7!l'4-HNnB/`+>kcS<X6L"SfT*23Tm`'LY4/)o%J3X&0%2R1&)qc/0O3LH':V?g$d!ho*i@s80,\#"aM;BrKe-ggAW7Ib6j^GsG\@:U8$^djWn4)8VB1->%rV/\^Te((c*l7+cDmM<W>aFCFhGD$Lh\ID5;V0a7iRq<ss]O[b<]O1FBh7:*jb&?@?)&RGF]%/C2;&J+%f=Q>dV)<],d-e>q<E[ (Zg7.D!\4EJ4[U(b@(AhmE`_OS9G&&pdj" q3PHR$me3_LRA`G[9poS)*7?L"2_qe3HXV^[%rTArKEAa:S-aOS](?hsJW_/7R\[+%;pe*kZC<@(q`<8!`&7#4.OoJfbpo3ig@50+m*eR53JRhqrU=H3GH@^KM2%<`pA;<7dUD]9FE$tYmlj:4&)lWpjoXje\L;nHsWBi%7Z8@%W2M>]WatN3e&Ya$P?d1_j+a6i$FGQe [Ho%f;j#Qt=QGoBobQN?lP1[f>fL:)H^SC9A[ ;\(Q=WAm6cp29%SZhY@(8TsDkq=l3_I,h(g?%q73K`h6-55N<Bb"<b\qiCo;QrFJc6nT`ib7p%bK]Z8Uo(27M&*.E"M&]] lBHe%8YL9fSs[i&o1*qNq$\A[-3b;`9KbFn% MU:@"4#9NFH/B`<"#)MUg^'k_Qf4rEI<!.UE0!%eTi"%_=E*?qJZhS7.2#l/]i(bnr=1mN@N7X,5(WfVX"5(.Ik%gY]ibjqG>igo3:!<3c4d]&(M/RC4(eIiBKW,oI1d4!(<;B >+HZ0)e.bs' II6_7LN#)q0a(AMn+>q59C$8oU0La]iI)[H9,gNXL4&:BUAfcT@[h'dlY4tBR90i9=:_bb?\QZ673eo0Ea?JZDAFnHn/UH6]C0 /t-;)e78-B$@6G%OBSL1a.\&FQb-+OUZWrW&1ecmcSTKW#ZdeT1+ApR'5DMSQ, 9Am& )+ e<2W.Wa?CO"X_l"lQ/Q<*[.hDltZ^6JjC[PiL2814O$?j/QC&AnOGmtW_ b]KA( 9LO*7FOICC/7dr)pPH!B?r[;`^d[\V2,^08jK/C[M3k,V78XZ@LoJf\HmZAko6>rTepb]iPgEQ!;4.c$ClmhP9 1T=6&0GBA*(Un49P<=BR:p2#p&bO!H74&n`98`_,VkA6]t dGYqeN"grDXBFk;-"dNOARN[5-%).(_NSa/RE::QKJnZG%f"PP=6#l'D'I48qT\;))GTV2K1E51o"_6-RH;:$cTB5"48AR<+U*>A7N?5J+iEFl=h2p+f6]h.fH!E0CtSO7t;SK_/h/-^ndjRX4$rfi7Onn#B$CE="L=nLG[]3HB=/ph65]@7dB7P#"MTBSV[P-60h'#NLG=klt'MR8q=d)fN])[O_`Ia-7BMX%eFAkcF6JT8MYV!)/cL3[cj3VnH$ &O"iJ_g2HosF.@ To@V7OK2"LsYYcAs5>M+d:Z1XW*e%Gm*K>tcI$W6Q<m7EInq/U],5G4#:r7W_snqr9AieIk[DsKbjR*EesIK>:;KCW8U@<iGC:efI1WKpq5*f0gc`oGC-Wmtq\Al+mGjk*8c((J7.$P@<I'/PWQ^3 [M<U_1e;3N#q,e*I>LOlgU_)VE bAQRh6)apl,gr3^#@NbAij\=Sg_"teo$a WNJ s\q8+r@pKXeJ*sh/T'M=L+QaNK!gdrAe+n+FWDCZ"d73O&/!Sn/0.[9[> *,%SA'G#Dns-Q(RBA`aO7ehjH)t4Y>ad%^:]&QOX[M[-RS5W3846J>)6])AO>s&GdJcAMo[mJfU<>YkGoI%14nSCT:feac2KYL[-! Hm.Y7Q=:(&B9'$OVjb=d*e?S5Zdm'Ar!qIRLG soR`^Z:ee +eAt.Y.FKE>i*h$BGo)I4L)L;A(P!-]ofO(X1\m,kn4&;6HQO>TAD--L"8+>W$6m'Yod<GBS 4$1ens['o\'?+TM1IQpBQP/k*mtYi%&NL""F7t rD]T(-,tU=e&hqTU8r$:1KQ4m<DqNX3""9'$,J-g+2>9bg_4 (a%XKa;;A)@t<"XXDf7j(g6/+W`o$%[@-c;ZRqq,9bkhLBa&X@(>sY^DS2fB`Aq]pm'8iB!RsL`MeG$<n%bbFG;ZT_,C=fKoAn0`.Z\6>atMf'^$hk"i[r`s^LS>(WP-?,oPj_BMIs_1gA$qsn?'oA1Z4Jf0BFg8n.[sf@=gm]33!6m8_IK6',"ZM[M>)ejl/M5S`7NlJr(^!dDiF[.n U%6S]nseSC8=_2>bcCgcoW!sAbgRfL!kgj%81")9\EUQiobP%Cd`[S%t/WV[A`T+_WFrsRlPS]gK0G?)-l)i*_X"4J,[Vl8mQb= 9Y(a^=%lViQp(feU]A`:-MU`^2tA#_mKUj<U[ln(,ai!8it:%F'1nCeHsVA5gTbn-@*%Q>SE*h,pKKl^n\bg5LBF6AiUAt tY,8kJ; B:*CQk]!fn4<&*&JQh^]rJ`k'j?PUQbR*dHa<FYHk *jLESb/Y3>YWN`IqI5d'*L%2HmA?=HK>g73Ih#/Xke3&c^@O\rHG&A1&F!VPW^2'H.[9WD[;=#!Wk267l\ggd@B3(CnV"@!^C*Cm!@8dg6pIAiaVY`omHsisq:(]e_iW)(,.3 '_Y;bm&qQXO[_c2L*>=U)U@@V6QWjlsCA_(^TWdoAjC-6.^kp/8PVmW2pMq]*<[rB(-bHH34$OB\;86lq!,hgU*m&"",6e6`dNO<;S',0jLdrW/-I\P1IJV##$>:TEl=B"$WHA0]k*cVFE+#j,%ZID]KSV=&2S=<XD\h!tWF-.maP>L(qS-;P%%"9'*IqA5:E(-H-^IJo4-*9<L[D_@F$SRC/WcRbs#2`+"a/.2'(ld0]^PMBfHHkYf42TWB'd`9LA5\>o]ogIIqd^G[U"P(ngM;AYL)a\+on0"<DIEF&RKY b4#dbB\N;Ss_eI0cNWF;S6$_N9ZM8`?4IN)9-[M A?H=9RqL"]"V30(Fn(d#- ATpboT=s  B\q&s6GkUoA 8C7.Q.`dP)!oV%I$cesctqRsMFS42&rj]@MZlMsC&$&6P]>$+A,iYLYIb]Ok8_fBRloV?h^>i?A;VM,5F5!O;mI)Dp(7"H4E+C8$M,K=ZHM3iaT?t;s*\4tZ*f-!dB\9UqF>siV<VlSi619AtA_cRe0I_E)Xa5 3aP7#M+6\jp5\D_I?$-Eh*5gIaAKH[X#_-rA%PiIQC-XBWRC:Ct^<fA$RdGAD#VN(&6l)"otBPmOtE1e=dY!,K`.FS7%oC.!:4V9ggb,W0X]]%dtHA?:i[0LKsX)?_lmCg$Z9b2V8ljqB%g/A"X6BBAFDA16s(VLC2f[:mAAZQ4kcBX%1^h>D8lFn_eNf,5In:nD#h.;fF#M\P=*J,DKKM\,pq1^`=90Q!e=,@LU-4PFS(IJm/J$0mrDUEDlDZ/<>SUO"MSWAb 3ER:/YH*ab4%E-KC g>8dCgZT2$7/5Q?8<p*T'SHb"$frE4\^<KG*A*+pSj"",Qt<M,Xdb]Y8n4!@T<:Do[P/8dIQeA@+"sD-$63g);7?\p`ihr:<\/ nf_A`RaC!]B]-!h7i1>)&MqjOj34>%m-^a8GG<j)p+YmhIaGFg[5=.Cn+To:r:$Ido$jIrj;9CIBUB<#s8oO<tM:ek@(Y@$,D1(g,^LIWC;F5]r=6Hhe"L&l]ohA9Kp)QLtaXKB-X0b6:4:L[bPb#;B.O($=%0ci#agASXh4p 0U6l.L:t<_AA72q%Y"1e6J.WqFIgq5!MDQ$C\0U`HX9hg L^6D,BGRt7 .%fX d!N:ZQ0j,Fc9 9!HBmEY`#9%bU5>*P_fF?dA5rhNmWU`@XTe,O;S)EF%,0Aj@T#8(1A%1:!?bI?U_mGggnQe\\1 1cTr:Wbbg\b 4RGo#7Tm]\@0EaI]:G>4:2CR+IQ<r=/Y- \^QC<A;@k3Bt=A A@QD,^$B$7rt9gKP4$QlsnRSU(%aNGmBsG`R>dHmOsFBgo2;1g6@jt1pC'GAaa>/HM16?i(+/9=h'-[]OL4Q0&eTGc8GP:A'>O:1-$#.AdI0Bh9aALq^#XbS:^>me<*kQ*H&g\+oAO*#U;L=M;?#!"b[^K*?iL+1seV,e4]M?p3A(=L3ee/?D#p#)2ffq\lXn;"b N]1#GMBaGDTEk:[<n-_qNHo6M4EH`3*\\h"_a_3NZBf4U?SW<;YeTUM?;ho_2;(,]`5F^f7dF>r(4ZF$j50M\K5W6NIMrpMI;E5X@I:nZH/sA8 3)#,l,1J`/8f/gJKP[h%Z5\"ir_WiH; Gi.-dF4UA+#(<t`cg<W$J5s=kj8&$lA4pS\G]FF@'NfC&YU$99[\lG.F)1&s<!XIrO&k$r]KA[*A=WGf V2r#pDWYD]!C=DUW/dG<J6a/a=FHG89&FeVM;*_\i].@;bd\Z03MrH(9SU9/QZ*Jtm)Q^6bbL)6 H4C<tOF+\s"gYp*[n-OAkRA%cVYK-;"9o\)I>`EgB$!\CiV2nfHi8bde#CNHNg20q>KZh[O)2T2+'cUU'#L>iBnDJG]`*"i>:Ua<\bJcA,b&*i3Ct02M))Q$$3LAH90I7TA-$1SWpR3JmHQ<)ki([726n)#$LJV,] k[ZnXs")+P1EUfF--*kAWRgp(e%h^Asmq_E<I.W.q'B17B\ND/M"HDt-[;51:[%/"gh)I/^b#Otc*V5tSE+b AcfWW9`Q=B8V3J.Gn3(_3E!3@^p/`V^3GX`lW\2>WK[CS,AN5U 'bgNLlUYn]A/FkZ]F9KU6OtVFV$>M*1!/q2pKO]8#:Q4'9BA@6#N/UWi@^,Bsq!R32;%Za_A-;;q+5&R4?8endVAd#"[O-?b$`E**Fk "Pl@d?3>T!taRl5"Q=GW"IE2?;81%s_b-n7jH!"VH[-Y8`^?[#8kBfN)oKgJ8?k8lA#0V]i'[dc'tcNEbaV9XT_85*(<5S_W!m^l;h`Z$`U;\rVKW:V8RA-ctGH7O9roE6;F0D*$C-(n&Do^tXcL3=$%@K3&An&/?/iFaHn6&7'X0!G0o5ng*#fHsl*_BQT`N$fgYGUC.Le]JG@NV!fAS0"WEGApT!R/^)#D]m`H'O*kPd?&kkAPrR\(3?X2lX1D'"*Q+,A!:</BMNMZRMT=QZMAgA,(WW:kr,tpU2o5%YXolD6!SO7?#9`;:PjdXfDA_ZWVB2312&rXY)k/GEQ)I]--qt A811(&AQSTQK[_ K_%s8AL^n7td8HYL'!hq^Uena/5L6M"FQUrU17qncbE0F2%jTj,e?*;RUE)R)S;,r4HBpG -OfI?2fBE(U&$_P[U^o[AQSp+BKN8P$2Q`B5YA\rda ^8tTNUr(h)4fYhg'Dm-U6%m[7^Xlta#gD#J%.mJhc#`qaG2!^r_0`cUJ>&N_W,l!H_'PZIDVD:X%1j40E[>c#3l,j,.JdXlY&NsLrL!<ZqXLS^TeAb\QLkQ-J7Z$&4lr]sd(kVX7J1#5:X0cJ9="( lF4%1J@eg2IU\dcY7QOE5$B41?BR-onR6[U'P(Rkn;k%L)"'B^YF+Kp*p`%T1Gmb?NTl*e'-sa3c5qb&6=pM#X ]* ^3WM7JP4KgG6Sc`*/TCn5[":$96sITMJC`US>Xff8R;6#%K2R(p%O$rB")9tr3-FJd7EYgTS A(\!dgX4Vq_'_<0FJ%8V_0U>)jDSpRJU0K79LT2(C2*?NnnAIF9a\&AI['B$EkH,Tt8<rKj?Nk[:Um6XeGmVQ')F/jBAR=!?)MA%@rbNhA$T)j(L(A##"8=Ap-J$k%korCPtLHoak4'Yosa%Z2Ss_TK&eiQlp;G/LAa*SFGY2#VJQ%'LM G9p-b@!I^A/dDob-/".)9LAarqp)<s DB3%dA8jD-VN0PT"]Ab6];DA]AIt/m0ec_3R"\CoNl>:JRd7bJ1BW6 imLcO27=Y)o%j4C/6;%[gAZ$k#`cWCil0[:sbU)Z9`f46@>X/\>MO)3kLnmtL^/4Q=^9a@N/n^D4sZi)R\]0\4Q9YE4VG,@d:V<V6NUq3^-ss4'(]n@;a8.k__Z7QP9\N#k:22"l+#Fs=9G8]!r:JGZ\pOZ_MFA7O=#_EZ7aNLn_Y/(;"E5j0!*F](5 Zc5edh3[Y7<=>?\ jrTm)Ra).W^YAq]-=@8(kKhc7O_^CUdZ$3ZlC-ZAP0"s=^\Q7':=+X^r%*," OZQ M, l%oH2X7Z-1;/p,f%i!'Qg90ll9cE.]6)=J-71ClLUS*D?Phg.t,`^g6c`q#O/NtWP1dHAWYFIJL/;ZbrMd6Nl=UDrs:\9D?#YHFK\ BUhIJD#A`faf6"1X3g:bkS?4a 5dY`"A6Z]+jeU1QMhcQ6]@,e"3)oU<<sV1`r/;M]$)/HUT3fp<N52-Q.l_1Dat5o8m5N8TVaip8'BAmA[g[V'+=jU2iop!WX+#+<!X]X" HXGoc'PIo5p](%7d:jM8\oCJQD>Ql59VhPq IO$3[=&)j] 6e!fY+9$Z;C)%p+csgdnAl;Ote]k !n9/`Wc`<PfNs)&S-cG9O0*^?N*jOt$+HB!3E@c^rN$eD8nj7A\mNG4'9'70<(_".;qVTM?:L6OB$* dl"tKpleT4\"H5h'1L(M6(A]Vt76dgr=S-;2*D+$`!kN.B@Hg;A^1-M. .OCb5tAS:S`_.Ijdt/T5Hqr>,9QV4F&Yq ?[pE_lG*nmem<mTPP'.2a2Q+6.BY0dmi-U$%.Jrt37@07jAjF/'6$!#taa;Z_f0[)2l"8L8Z(-+5*2s!PB9Z4K+dUcX@PA olt(IN]T3[r*q2O( gV,8 \5 pQAUq`ln#KObIiH$)Cm=\<BS0([.VmB3K0$1Hkq sS_\pl/t.GDGG%Mjo(P5/(d5'XOrgl2N8Y9s[.bb?oXoB@Whl^A%BT9YW1#'SoQA22s7_G$"QR7B+!$f`kK*4=B"9)*P'm"EL>BaQ-[+WAEL@:j@A$niZoQp*\fOtI0/peWG0>OL?Z`B?s@i_?J9<$23sGI OA.(ZQ6hotT-KjOi4ai.T*27jrJ!jg$3WWE87=8\kBD`%53Pibf[jBAnKP)\XD*6Md-nrH Lk'o-Bmk6SO-l=d(Wj"Amp!VC ,iOF8IgAb7_0*XW3o`/eXiVN3q2k@p=+sSiPVs7$1hR4b@MA-'Oo_9\hcJV7AA#it^L&S$GV(m1FWq38)d\CY-Bq)\ZaHDdA%"5-IJ\=S(-)^BHEJm>Nt'fdfi-`6%+o(qa2o;j$$AN\K=I$'FEap4D6p8,#L-8%-oUFbgAWiG[nD.g5p<%0FM:ef*AtRh5jJE=N2'fciPam'd#\@*R>?2Kr3Yn'RA)($i%$,/eo_p!8^#<[%1Q\7p!i5eR9dr9jkE#NfPej$kW,&Ar3N;4ab-a-7a,qt<ZH?g6f?jCUc12&^W=*3Ca6$Dm_^kWTr!mgHS:1t!5qs=#0Y[B!DGC]GV+."]o.-g:M(oJ>rcArL^+7<6@aO_ph;C`j$TeL^UhfA-BjjQ<S$"QY$j'\qK+F1lKi&?lA^3K_?JG2K7^-:9*;Z*]c_ecK?_Bs'@]fb6e_Bp<NIPY5X'2Fg]H8^!`P#e3g>D>Xk]n</0/0W7I/tDd))873i5b_lF8eeMgWec[/'ok2AM:CM^qgtP<+V^G+NWFhreGV*\l213MJGKWA# 7s1t?&VVGiC=1:gW`D jE5-=18,V+==9hJ<!'%N>EKF.?:ASU8\$A!@r+XLUlr?[a,@dfC_fN810! D!KYBtmVs5+#U"I0q_F^A2nfF0RE>t&P,`0V7._ajj^<>Q?tl^!#$O:tRlmHd!BejK]aqUCaJm0[Vjh/*iQ>D,-;S]XY$Pn2@3lh1(:AnX,,`4?'Z0 J)_` -Wr5?\r2PV_bA:h2HL'/?A1($g0?SG!"=:N+,8"hqI9VYfN4Y3?bS<;[p\3/qK:D80G$EUb]tgDU['[O)7Ht$c.7WT,dep*%&Ta_R,XT=n4G4M!/A.04d/>Y8'Z=Cm=,A'a!=bhRADYk9?sqics9TMQL_1?7:O6E:/^de,TXZ3A?enI)&@ir5U*9;HYV/nn$F"oJ#@a'%*,m6sHScVQFj/Hff/Nr ZP<'V6FaDYH4<8&i7ZTs/+FDH>2F,BP&BAM`9`$NTRCi7j*,a\S!>O?4rCV4]N1_$p>]E2eg aJ&sA^,T;n38Rj>U9,`mY@_kIsY[fbd%XmmD@p<rAa$GQ#X8&hXR@WWr7kT_j:fhUR5%S;-F7O`L*%PX;^j,gkb]f+0.TjNfbZ^M=jLf >7A6^<ZkgVr%$jTA'lpL&H@-L*Ar*^N7P*K!&W<l]jWT<bLfC6nL'*PATq^A)3Gric?9b:BW<D5DBXdb:)Y-E]i_g-<dkK'%EeB,qN+oI/e#6\\dma)#dGH7\>01L1XcG`&t+ISC\L^,7GYI>)'Z +t2.DPsGO!hae9L0Bt*U6D4g.edlmm;g(;=:h5:@d3k?@^!mnT%cjRpQPE8r8BA-70K6PS,#8mFp!^_lDl@kYfL#XtMEG]fe;d%%5:(>Q dF`cZ/\eA)^l.`3dPAi6(4VAf7jWV#6jfVD3.-7,$aT\ICYnB#et <i-HZtij'H?j\#p*A[skA5[3o)o,rG0B2&G<IpnV/fPfeleD qPU5HKckNI96ZNfK[0"bhi$_Vs;[Hl(s/U*L7"$"lKF+@ n#1"%5A]_5g^$T@Ni8M:=!doLsS>H#1SLfA?KNg6lPl`.0bdR<h.,!/AL[E6FNYF*:^t>p?Y!rl(JUm_?X)l>$/_!5]r.]f?M/B+HiL7Mf8P;A@iV:]'NX=K8]_^$, <4< qPK[gag.V7WHF@&ZKq01-"8g3E?]VK2ZLpmLgehF%SfQ"YM]W?FRJ4.V/G:jGpe\bjt^io$r<30]HJ"2n7H8Q\"o.=BsfZ\=+o)@B>S5.f]]Q'K4^bP3Tj0(q&)eP><p/6If-[O7ltLCP@!R[t'IC2BG2r;4p%%^37c#rk'BDQ:_:FXSEC_68"\A-J\2WNb$:Si?b\3jM5#OH`JS/Wj_1(#XAHOR0kgB/L.?Wtf.R_\EAT)k4o.C&Ks!C@]N!@JhaGrphTns7Vi<MP*gkR<f+"N6hj6b;0](MWcrD2)oK-0r"Bb7_hZO>6LjYG/,CVt3*DgB`+_q'9lK'-Tb+s)T27FJ[YR$Ot^!(W$beC?m[DgRN548N&LZ:/?sXs!F4]gFV*DnRMB`g8_X+a7qa^QAVgj.q0!rb/]OCp01ToFb%]qAHj,YTY2:PrfsO@?ajC$P(KShC T<Tc(k@sA-'Gj'><[^'gO?!f#B]].HBS`3X#p"':.l^7m^,J1843Mah@-qe*)t0ZG2l3FI*f]EU8CldM29$WUD<2m-&'B;kGU\$gsib7(8d2@&-r b=Q1Uo^rGFmaO5?iK+A,A7">b#Z6GpJk-"*^VNlaY> qTlfc5K:mCT4t!Jk&1Y<*CU$'d5qL">s#F4@%W&+,[e&G(s3%Bdil_&+d=m#oR/j%1CBn,`;\:Xr-` &9a#/A`5`^e%V-iR4X+N;Tl?fAKpYV%kWL2P)'<tB?j2QS-4Hol\:8@&N[^?aG>eB=4P0)#T+B,Ll@Gr'XZ!^g7iF liLoAG#MX*kLKX:'A#.EP-b$ZDpdgQhP5A61n:&B r_=$g-4AR(IsV*9CbiWH7Gs+mA+o^sQ?4(p"B @?:B!'*kpj@'^:73Y[[P.WoRKeOm%066gH'6B558DqDXp6tOQSsD"c?6;"h,msOpSBYjLq(QAJZD;=Dgg@Nbl/ d_$0:fM==X2\=m"j][d/Z7K1[3aGS$p 0.6ED74l;g"3;7*C'c*7U8NpCZTr$^9FZ7AWf.EA<X==C-+F<:$oMa=k `=-7fS!_qfOJciIZE18f_e64JQU/lCF9Q`"1^qX=6iE)Pk@s=OPT) X&<$!i7Z%]alK'D Dl#VCl,h_c"I:^IPNUWi$dGM8@sSr@&%B'XcqA_@1a6eMZ,)ABFo< $hp]9!R_@1daHGd@)*KXpgHq2b6FV7>O1&aYi/!mVUmC1Ya`` ].M=JYJAX#q9F'k-#:.Y<eI&e%J9LXi58=L/ UN9#;R11i.+9bD;U`(>An!foVE7lb9Ab<I#G8c6g#WoAc8?)fUh:Q^W2OK4A9b=P-sP"ttt]\djRc.AA'+Q6p5JE`<&L!#CJ,#PH'4!8qk5/i83976'Ys3Ak'&brS,HQ@pF1=c9r8K"sHs`a%]<`-g"t!Xmf7#]bpN5,C#k .\',-q$1R_9<m1fE%U\^4T7VUc,hSY8U?F2n>BTX$LlFRR&Qj"%UdbQ(2CIQ"6W$NF4P\-e,<OsZa<.P#_aH&SXJd^G+rpNtIl-4#AFM1&m,Ja$GNfoh=e>CRGR;G72S1&rFhlAOQH#85[.Q0<_FNk+F\iUYK'Kg+,cYkkO!Ad6S\<9`n`*AL:MH*-NMo %1AQIYZB"lPft9$<r@48lXt^mGQXA^Oi#@T5aRE7W;)ms"Hibk!m7mD<OZZl%2r_='"8E0:'FZD!!1F;^^co"cGA1%38M/=l&l+Q\5iOq!iJ4D7H']K+8jmBR5.ni)I,0n7PVP#0<Qfe"r>q.4K7$fiQfW@05*2M0Q,gaBYj4]Al#1EPUWAs)pd3/fM&;3C*le=YZF<IRDn9(#)T-_q K^Nr8\2=[)T6rs;,fYqHbD\Q=VLUOh.Ncq$O*2R6$ZtWXjZ 5%pPF]ER%++K[kb_AB9ei&hG!DG0\ 6CbJ80;Q`DP=I\o2/^;XI#HI#*?B=dCn#[-E4jDQ\Si5K46X4VM)$p#F?O\#'7IZcdYIg)o?fR^XGbNFPb*q[]GM)QS4b@cA*IDad[`0ZaJ.[#[@Lr+.K<hRA\JhY8"8qKR`LtOcFilqAee3A+a=j<FIE2RamDL\s5_%%X5&gK#3<#=`>'sQ!pS7Tk1+hGA2b`A'cs*&&!#V2;*;Jd\7a@S/R$8mgLpcdf](QGWYAAF;O":QIe()+[::3&Xms,6G#7s04PXnp8T-Dor6bAZQ.i2VIC!BCm&,D5j!LJ?/+M*i_8t+s6:!pb^;qM#f:)k4&!rfLUQ/-GcDq9%?$qtNFe#4:"*"IQPBZc]61@(fT!7/.T7 <t'tA<N`"UB!SdX7Wq<WO?$B6A>-Vn $2>%%,jjIb,M$`L-82!q1&?%W0qpDCFWg@U18f*%::H%sRL#n/t.r<d,SNsU&15Z/p:sWb@,kQfA[0q\q\#>!gg/?VeM"DHH6AI;+%a)h(ilYcP4<e#s<n:m`PUYmL6WJ/)ZE<IUel;ZHV]IjFFJA8=O@i\oB'T,,A?O!$Qe3plrcfEADaC%d "8fLCXlag_-F3o f^0[EhTAFd*o?bA=NiNL.m/4f49T-4XLLN\FLr&PA&:4q&'gCB<?rCI1=Z;\aTg^mk)mMD#JeY013GIlU.*DW,pM0?1o11*\N,oDGU8aD=fYhqpM&C6B1cF1;qYFHpbdgsrqX7S#n>B(lrq?$s3Rp<SE31\4UV(pb\D@eAq#p>ED3%\:o!((N)]]FrJrRO)"A)2i)t&LQh-l]WbUX=iP>l[Tf6MOoM7"f(:hfim0*@?Jio3=If%"H96(<8;7(M;/Zr!t?,=K"[aD:+6ak;,?&:;;me?f'7PGmT(B\`YmFqTaK7 :]4\Ap7$R:^?Xh0qGB$qQnjGaNR1]"Y9T4Z% T@pte3Q/??@4*p\^73Kr=s*FGJ5e!#/m33Arrl1]/1g6)jSIG:ah@9/aRR]To-!toL!hb0%I"1mJqi[H7@fT8+N:)"gCDr2\<AW`3q!)#6klf']q)P WODh:JMo!-AMX &s9ZA%:raO$)=,Sa[sBp*\`U.^^?J5nj3Z5Z*O>\Z)r([G.%e.QJ(DTm(TR(F\V^<RqBNZB>WqMk,^c$P=0^/noT/An<j9J=DG#WgDH2cN'UN<sfZ3jg1r<"i*jgtDe%_(e+*'[8R5_A^D]iL9P(/"b5c`?#ND"GGWMWY+]a $DfC'4l:dG;kXR)!>cjC,c4>r5OrQOU#M6,e2U0YcW;*1$P"ZM/1Cbl0?dQ^\A6@3:Z+-^nph]2 2tc#>6&Z@6[*B7]fGA[cU&)Sk0UgUe.<b%VLB76X=qo_:sH;f2fYgaX"8A$fVatHt$B0r70s^&UQUJ4O,<A@\sh*C7'_m%Fq[s8*DO=aE;_F=AP,bD!^e)*!C'$` P3%(C<A3-A<_d'B^(b1(H#Gl@+rgstJANe:DJD*)54&)H6AD=JY)VtJkl_6"AjQfEaH%HIaPh9DaMaD^r>FFA,'Xd`6epPmXfSsT )-iT>MAi:\a5+gl/.pP@DE%'St*+r;51hk6,/4TCUejW %7e$D4pQKGFW"r=h=a8^s.hp!?.6lI_:h]fD:i5=@m"3>^XHa\R9KU?;Vs@_%3-3>$H4L">8ljV"O:4Wje3#D<b2:2(,`RX*qj_Bm_%sOoN/dqZ?,,N3`Y2NOt2.dW8U\?OLiMXHe R/m3QtI%f)qNU@U;sfUb*<D1X6.IGq:C%h*O@PNNqnlQ_ XFfMYS4n7lH"Y2jTK(f 2+)aZVWsa9^ndABU:#Xm"oP"Z*k#/qoK `*iAd>HQBKJXl?p*)lf[K"UWl@BeAHi/q=[hF-*`<J!G[#.<;B/[o1bZI5(*:#K2r :)t(Q742hbh/6gdA1SF".>:JtCM)I7XD:,3%tZD(LV`d_>e@@>"LTS]ShI:!WRml\NG#cMosHE@t<1Z]"@JENC&=M7gW5t=D7Z'.KtN#r?fF/a[r-B20%J-,A&5A6N#<a_WmjZ(Qa@:Zf9dCb]4l.dJ[dFGEH% A+G+o4m`0#.p34?\AhZ9RJq,=(QB@gE%`sc<g%!Oq\Xt]a:^S[pIlN;[[k3BXS;!!r#GdZ[c?6*E1VSI)7WfGAs1rJs[bg(C\V++,_>K?;9k5Yg!:b=)Q,4jXh@>h$@g$GX"sH8]Wk$\qB"0*&3q,dE/a9g>*d^V8Rbrs&J[??YH"c9<@QAkj..T/nnaaPdQ ]s.-#&m/+,U0FA/lA[$O7;<NKN:M/%RqH_r[8bR>lW].`r;](S<c^\R OBUS@[U!R[-DTVL:nW`dP\2rc&@4=S3qfhVX56[:Dea(B3MYn!]t#Ai6C6J4iiL"IZecaQhHT%7MskGWcjWLZC$g\JrV^E#CBmk0\sWpb[C;%mgSJiL>62JFttJS_!I')O4fZ\4AlMm:7d1'f@2ZE-O*Xjfho)O)/:*.aQeF<tS[C4plfh3K(TI r(9sN?DMX:0#<e+N533P0XJA^BN6^l7)A)4(aDb')Sj*,2MG:*;H!aO6pQCIn.RI$F"66IL%F23<nY an[m#O2eoa#b9em P>AA,hiAFjV0mLH@tK5 '\F%m;g?AM]]&p%A7S&^ab7^5^%P^t?GKiYJ`"aBmc<g&`Wb_pJD;"C:cU6;5tg^U@dLFT2XN[Lt^o%265('rR76+;\L9WTleaf_co52*<QQANo9hXbjc8>X7Z\Q_KN\oYJ%F[G'>Xre>-"9R\O\_J*Yh&0([Aq0OZ%c&RYCWJW[,.KEo;8/oUC2PRM6-\sAqF?TXll'2^$TlX2OdR*W7PX0$CmK:J\MD#C*O:^b!*+rm6/ 6HUi^hB8%AmmS=cPT>9e;EMLUrFY6rAL`Ni]UQetHfeE-9bo`Z>!]C;$k\mtSE!ndgq@2pL@ i`m`fk#OGRcTeUgCB.'b^>sm s:Ib(j`%Q#. 5T\IldJfhF^kdIAZ,*,;8dnT7Abkag,]"-nL$nb]JCWR9L$n85 [f3'd(WTmHGr>$XeM4p&fd+1bTqE_jfn% kMPkXk- (Q7V,m*VYdCEZQrda(r1>$A><L<^(5U%OA8A&C#j+E9GWdmR0$*Z:JNpI/&hD\3cD>;@a\/)=joY+?"$%AQs?J_0p4Q<Ihck5UXW>:([Wdq#;/>MKeH4kI@m30otpY[5jAI*4g'\f0qiJ5f6V-OmQ`B^LL@AIK$or:nOHa.N`;KEh*cQSNYD.8h9H%HAn#`=[Wk(?H)?[>6=LYJIbm"QDW-4c+ES6WKS^P.?Y^>1\O6Y44l5WdA;<HnHA;SSYI&hSE%N#+/AjRQ3f)?-/i5^1[b^h+biU!9/C\Cr'[B0E>.=;(ZB";qm%i`^;mS?$6Crjg;;qR(Af\1ID\QE;cT^Bl:> `_ij_8>cK[Ut,)DhKX$NVGXl0RG`GKH+I/H'Mn#r?Y"67Pm+'3M7&FL\DFWN#qGIhK$N1>X\23%N#@ c4i$s,^>tNSrY&Oq@#N?*R%D$.!:QU^6B>pA^.Xd[i/Je+e+AKb>-=H(8jMiD2BWi%(72F>()`Te^1;b@]nKGrX1c!PjC"@q0f<RrSA9AA=o5X#[sK5pK#mXjdTWRk_>^\Ra;9r-CVIT2.XLQ\GK`/oQQZ<'WnA?@>P#*3INmY$R0N3-pAO"lRsDlts!8i0NAmC?lS"A>rdil+R?%WAg?/jT@L@@? ,3)P.J(*Ps6FHQ^lM<)J`B-K%Cr=fPLptLA'c?r.\Ji36@Tnmfb*"@gh_j*mN2EhM[]55neP1'#J[4fb!!j6eA!/jA]C]7]>mii%m=o/Y>,q^LSS9GUn$l@jn?<ZFhMIDV=5_AdV`A*UKJHeWp4#9#RDbQ^d3(L];J^OV @SgJ%\H[VJ^82cNj77pAf"sZUVbqPNF@#h7pfCJ3sQpr>`t98@ns`IbS:>mI^smC%q<Y%r,rY?\63$GK2(EAs^Td@6jg&#;T?K/0mtOl&DbiYiaI<GsE^r^8_3g9mts4L$NpQ_T,?60#'Wg98Xh8qg>m&)ms:S1c?Laq4U:YlM[>bH.t7!14F d?pH[HPBtA%9E%7m]AK4-?q'r+eL b\ZZW%j@#BpRI#UhR:FNFBY,0 MX)UD.@V&b<N-.T:nGYlKV*=46<lTV.]7pJ8ZnT[)OE9Qcn_<mGAUZ?SSW/DoL0oIr`%mXHCFAP3a9hT31a\)_WKS!d>cVAB!`\Eq %Q74!Eg7O%CDk'-fK9/49\5_ bP*M6qTENeA[A5e[MDmk7Ncj,l]a&\T>WVPZ,>WJiK'_pS(i@HR":0-T0nI\pY_5f7\9]I(!&otDqY-MRSX+th4gU)pG0KRJ)V!VGpTDiU!:9MilXlsO9K?O.#Vt("0Rcq%UaAoM'l;E!a[Lko%C3qUa2/fgC%Ako9!#8Cs!X"!fOk*(.s12S9tn`,SFBF9#n%UVYKTo=+FR#@C"r`%rH1U*o.?Ee^YH `WRM-kSJg-80T8+$ofi&gJ.0SQbUcAm=pY63?SmfL.ZL:/rA RH`-&OtN:T$-4Iq@O.r$++jHcbd^kKr33*?KYbt,'e9\GBAJ2;sq-+]r$@St)O ,H_EFUaBX1MbN*f/1W\hjrDLK"R#ia?P(-an& <7g/@11^/Jf9%]6Pj[1)6o$i.Fc#q"5+gm-3HPQ9gbLp7FOlY[j12JE)[>Zl!Eo!F#.nSdm!s(;$VL2<XMU5-Y/.O&B3S;WN%*V4IE4*efM.m8jK-VMe?Tb!O!IK9RF4"KS6+C(gAZ0_%+7;?R`mHAYg4>#W`P:.^L$0"c)/'G,H"H=08o_%^Q7J`4>Z17cX q9dWhZL:IFn5H@U,.-1;q%U)%cqFXQf^=[h5p*3C6_>OVcsm<$t#-(/g4o9 >U/T>>Le@?7D(P`R`Z)?+N`S+**I#1X5AA3IJEUa";l$>_G^4 G`\5ID8L$31/]a0V[qg+grWO*^sPAga>D6[hG,jX^W^:"!D'2WRQH+XA-AS+jOhS2nR@3b3ghn[,MH@sZQHis+d%A)=7$>IRVg+.r9.TT*ZSkmfMTg!':t7QUgk`b=(HD8ON?gf nOjj2^SPXoCV=HF_[P]cjPs,bH`r4]:2)7M[L*st%2Hlf&eq@ih+Fsop I(EV&oU.%";\0`@(;)V>2Oq3WQoh$F3:E6ai-spi^T$kjc+`rD!cWK($?kGN%?T(*]h?eO+T_E=)8B5ioL6W7<9)-r1cgW.XVf2Y3R[>+0]KiC8Bh>,C!$HAmQ1_8>2UTo._a[[qchmRnN2A^`BcgckQW]r(._m\g_gGt0C`e$GJ.r-^B"?<rB_+FM.HL8VOsmWiqcrmEXAI*>75&4q*)2CE^$F!f.;M.]>LN7P]_(^:2DLhTWH,:)A7c2sJTbDF*e%K*OL]<9"O:tWeV%]V=h)>r3!]l"pb3;\<e'dAJmXbD1-antl'2=j`NAfTbog'a/BkBY()=A?.%2ZCOmCdA;JI)3Dt2FDq_49aZ,`8qV4P>&!Zk*iUn;"A&'Wnl!=ghSC608;A@;mj8!GgAUm&W./c$F+AkA1J-P*ma>Qoqbn\;2<1Hbp;/,V^(G'c%J!8WF76%+/='$FK)!Dt>Eg""2/4m"ok<#`,Y5pdE'$&>-K#1FnB@76/(D#(pp))6aN#*;)ro'7Eea6qGsg"6qln-An'9;TgLrhd;:d9#["e@<#'AY6PeE6DnRL+jL)A7jA.qGMNN)s,_\.6EjDZ?.W*.#S,9Nq-_Y+57LNA;qZrB+4"aOr4lAbLcEA:Md5qQ.QrTlnsYJ\TH';5^F\EZD`<$8sKonrr$J&2DZ@I%Ad:FF0I)g`13t,rgm.Y8nA[.T!+k;kjd.#Ps<2JCCb$ksm0732;Bp*XjA5F"2G-e3<tMA`]ZY\$tIICnNeT@&_;X6S(f<YMfAdV=lAgLL@r6sm.HgRa-V/UgPaE):Z3GD>$rrAbc0sG0H<SkYpZH\8eeZ#+iN.$Y.^.H$G0a+lHll)qArK\69ESJf7P["Ys4ht(J]^]_)W,n-9tJ5r2W/g#"Z@:5T.\3L,.A!spDZ,O.OfrIIY2!ATKIpd3e*0ZAG`D;c&9I+G$"A/DX%X J-f+kNd('j4ND#E<;8EG1LE>bS$N)>L-Up?fbkQSjG9mr$f.,nZCYJ.o[S&YER?3 AV4&1-6#LKt7+C") \\@`B^Y:#i5gT0`(\E*Y!(.H%c9h1HkNC(>sV3XPgi$%.@YApoiOIm/=!4@,]9Y?p-5fN-f4@i.AIYK^QVgA0gI`W&*rI?X=Y?^/98'gIYnqVg[CkH>c-XL-/h]JSU_W<?Gt/G41DN&VAtQ\3E!TWn`6@hORe7-[+pf-SWU/DP.@IJR' T&2YH'_O3&[,Q.eV.U_a>l^#C5I9GII;?YteE`t4M?f6'!T k]rUol25g1I^2k0/q6UXhV16b15[cqs]P=n];5plS6BZpITMN,$I4bm0<St<;.n:3eI:_"),D&C"F?r2L?>aF'b:Tpmc^JL0/eg=Il\&:T 0JndFH$n%CUH6dCAa/+$SSGl?t/2YqPIooLf^_&/UtoL[WN/\,qn`TD\/k/-b$(!+2 TI[O@*1@h;scTFUIXHrN(+)<IV9B(SC)'%AjQi2`r9=iC)DbW`j1AVl.?j(*ATbM6O%n^PGi3>;jLZ9&oe'lo7eWcX8/ '6SQ3W4@bGC/N01^_Xh8b#Xi3rt^X1Co5OS]JrGQC!&V[bR\?++e@B:Kj:<\"#tDm*&?8bIY%;V1K,#E??rQEmr29fO!a1,hgIU)]U_6/X`6n)5rok"AXA`6,g;'p30]t$l!@.8M'XYZgAV4H%N\a1eG$Sg W!Q`WD!ga(r/tXFa3WA9mm5LMT"Xid&T.q.Q+VOrj#.(@.!hEYB*Ncq-et0bK+D1W_T2_Z-'r;d+df+7dNfC!To#[$RL3J[]\:3Ns+>?4J:Z4-if`L86=TD=M4ot8!7Q"N\+%\@`<N1#.,agY&r88.I>a5[0`DjbRiT/G2IkOpKZ`?)T8]a[ELKqFogA2P1ZGJd`(hA&A*':c8HM#3eE.sRcb#F<T)ZgU*A7g@IYe?/V2lZpKp<[qHYs>&,r[B3$Q7lZ&IW%T[h;>R;qV04CHjhKr8/O8IAn;h>M:5(((d1J5?qAS']+."p[kK<n)a6A:t-08^X:Tej<R*CA6\N;DW4QmS<i*&6Jffi 4neJp#c"CI"VKBDB?CfmEU+_RR7o70f-=A5q4g:1kAa%NC0]L1JgH[kHB>mZp1E+%;Lg%lnDsAMt;)cqgRs.^1_W\YG>A:QH<hPrN%>+1@H;\otrctFi96"EQF_m6E@W<Pd[jgHPjHsO$6*:]d S3c\:Y*T0Utr]qM`Kc'coV0Mfg-PE8m\b3$q.G-H]:>)S(oUA`pKfM@Y*o]Q3K5iCR.gec%4XOTf8e)<J+7=\<2Uo#IR!m::-% @%$;A:eqS)t( @RDj=GbAYn]%$H*;Ubhkm8eh\1fbKl4('*`05i1m"3%KGUS_G*0 _k,kTJ6X=?A\Y4Wdl]iTonCL:t)L.ptEB?Ab+:F?dRY[H=37M.JrRl"YAjj_T$dLtbc0Tkk4hRXTaAlFt/HcQ7HINZn;Qo?\P92q`si7W]WQtlC^`EN :akD;RZHn1-+WTX,h'0Z_s+<#2+_.4["s"tac_C-WhgA*gA4RGnO,2L&E8$Mf[mRiOj^!_Ec#cq_\TEH(>QsBk^J+A0rPl2=Q%1L+4j+TdUJ6)B!0IcqMfR&o`]Gsi@AgLV,-Kr-5l,*I9(==KW0CW-?Q"-WrnqM6"[%]NcPfP]nOkckft\Rj.?A;FbTC^MfgBhD- #;&rM$( ^b#)Y@;HJ#@2g@0pBj6PiOlX%A6A7R2hZPZk(8HfP+b1GB38&F=FO+%L+j +d:J#l\rl`nAbDEtdT/8@#s>l>f,t!.$L-XjP&Nf6Tqc h4eI<CH/$)j(#%LZ`?0/6Y]mbAse?pDiAaAOg'+F)@Aoj1=GZbqM]tqO4/`j JO?4e%:HFArISTng6,INUlXa&jXh.lKHQJsp?1lK('m$FZjdYm8&Xd!3GWs1AFVY='rsX=r\G\1W$ZR(;$%5`Z&RAAO?dot'im;3!I0A77D0tL*MK_ Z1bqE7=\QVb&sJH((5d.K V`A[h9d7-hhAqQnO&Z1]pGI8i' >sWcAEd:'E;:#6Js6sVS]eB9s)q`L,-1iNKq$F0[XXIE [#[mlZ5Rc06dfB>A:% <pf-"?N^  +H];[+Ko-IFhftgkI3GMHpanqiK.i> nb[n<FA[#Bj3!='TXWV6B'cJ,^0 i;QrWqq2)>;8kKDBN[HnaPpI;=+F*5n`Ttsr0<ca>^_&@ YOA:$[^t[#A=_QQ;VfHT=4Ir8\&" f#?QW>OiSEhrk @shHirk>9/berZoY>3bH<ci.:QqmDE' #14O<?Q7j+_i(jf=sW5t_Ulo^'WV[(tOIed,/9Tm%W+1bbG5hnCea!&n=sW)"jL<[2/t"UmO'+Ns$5\[s )6F=%k4R<;)@j%p<bRQW/,Mh2Z&L6G#c6a#U\(s6SU"b'EV<i0JPsF\OJPGRhBKI\,K<!EH(AOX\o@)'TE-6&.#"ZRc*fR^Jfk^h!nRXRoD&U)3JC=[F:=gD=$ch`KAQN_fMrg8m"K_ sU_0;JcM-j%13;+X(#P-.SjErga6>*PtUN>nTp`Xs7[2hAJO[H,bbROhY:RFqsVN+WtV^Ai*Z_8P_D_j?f!4[X0GJk<6O&A5'/SCO;:P+1DDH;n2O1O AADT8l,d3-=Ar*V>*IFR6.jc8CN+]s*bZMR)d,iH#P33Bq1ABaQWr<>R*;-@jT><98-^5CnO>p8]-G))41BD$7M,-hCAc'.Gs_DRC!gk>HSIHHER,+0afJ#(%9jJ`@QF%L1V;GfpAM:`;<1@Of(UC$P@(2TSLo-g)M05)F&*b7Y9o5A(OP5R%WL8rJd9Wbc0L.enUZ1F&[;ac7"!K,,NW*5]>>,X[>%@Ei37q,ro5LRs$#eLU1j&YVO\@A%b^MK._QBm;4Z2.3X$U6RZ*eOA7$bPkMd37aQEma`YiOa*QU;G6KR3X*q1G0K-Q=m1Ok#lE/gI5$A+-of5>a4\^%)$)=4-stY;Cr/]T3AHqY*,W\_K5-U/'.I6@C_A$M%G<8FD X0-s%l.>p5c7/)89RL>$-P>gtP]!YoWh?LMM!Eqtg?a,o0mMrYkjrf8?\\N)A]k#5&@8-%)RlN-3-!R;P70oq_KlO;CAAP<3JOr^sV:24rt=(q= $oQ(1+l%AK55\P9?t;BKMV>5dFHb,iG#<>#X_DMQoEZ+H;WXd;G=0+ Ze&@M\<Lt% 2`GB(+6TW?AB1Lj=2cTH9.9o#WG1I:e0$d`j"pWt'<b([?M.U]JEsT+!'o&oQdp;8d+3*%Zs)^RR5SdUkRNQ2T(:06e%T;"AA\$K)\:;^[<dmZJYoRnle';iMk&U!Q1mpC V/m&/,^!,<![=ABYWs3BERVYi4`SVXKpR7ZN,.jVg+BLX+ UrDb._$O,AB7nOiT6GAJ>A5C=B:r=1ULSDD]tHq$b2sYXAc#':I5 D"YR0=LWXee[s"f4O &-l4@8t^qL7l4UWlQ:5Opq%*_'b]j4Ik^_kH+K5(@Of_fhWAs`_D^2o]]=':KsmcPn99VoGCtCKP\73;K?l>O3gF-Ns`_O^l*e3h(FY=Ddt#M?Rhg^@`o>-OSSO&(G0Xa :Zk')</Ml\RD+r"M/Y(%Zt<k75?n@h0g>4ATV0/&##cWpG(AWj ?*kd5sqG/9.H]e%GKb*bi'Yg>K2bEcb6;fR'j=Pg1rnSL<!.=h.H2QJl\M_qD,J6g^6>fT)a?@3pMXLprO>^Uo4`ba_"i#tt'CAP*NP'Xt6tan_SpOq/Hs/N3V/PR9Y.>h(#njXVjDNmDSLEJtA$\V@C[>fcWN>3(Y9/(\,]Vf; 2p(b@$72V;  )\$s*HdfHp@j>DLD%N@gf?:_8[RU/O"Q[1jALA"[='/OAA)-i=@'636!el8[YdW/V(-d3>T;S2Oc\PR3QZ+7YGG6#d$ mS`#CnW9iANsQEoRP3ZU2q(@/AGF$8MWB:bObcRSOR'/;6iOD@iWh_M=/Q;fQ@^ P*ipN=7GDGqTC],@t(@%+1_LjGq"%HbLc9/IJ@Zl8sBP`Mc8C0\m5:s4Mj"gZ&Y3LhKI7+`m#(@r-R59\/I\$0$X!e p7W>""D(/k8OIt#3s;/0*7bYoik[F]4"6@,2'" WP@c5?l' J?J[TFE*d-oOSOTVGq:a%giE%Flg.bE626m-2i1h06BnFJULW#!20?:C(7D^9E0%hrZE&H^Ve4#j-W6<op\kV>8M\.!SdPG<,UA;M)Q -$[7gT;j,N\08e"\,;`6X4<^2AAbe0HZ`Jl]\8tN1P]-HI7pV:Q6DD7$k(pQZY7#OP-G %3co4:Bj.A`A5_iJrljh"J><-ZK^Gm.b3[QcPripbVm/EU0Fj:Dq$D`/*hJ\*8F8)'&O>YHQn6MSkmMdT^gd-NqPt m=$6iY6M7;l!l4CB>Rq2N=O;YSUi&bA8>)R9A&KJJ,A\sBCm< "'#!!I[*Vm;a4Nh2^f10r!.p:LjdF77_rg@V*XU<B`qfY/</_OlD?L:!,(N4@GP6B:S)(('TF@@aL3?t-kinE2cdC0W33'oI!%tBr?D?TK&NQ9@9^Z@UAjeOjrbgQMdA, :A\O4l@J_+'GU$lj2YZq`C1S O[0b6NdLiDVAtD9W5_]>%!t+`#/elU\2\lk.@Uf>0tR8$?qQJ_:kWKJpe['.iiP'G/,Z-L8pFOqo`KHFDsWdbG0n5ai<bI,GGX/bPX\IrM4Og4tjh7Qk6/$aM6VKpt`cbAZdfoij'kj*0\t%Q-[lhgD[,e#rltb #2KY#n#c[_oJ r8 O#/nM2=)E;JI>C?><Ha\cmVls(RBdo[KpER8%FWZ)gJ(4GKPZ7;6h\daAa?j$AA>`bVT_&"A+H\hW2"p!4E6CrV$*#N9.LL:5t<T%Y"W6JjQ+=F>M.KT#i;\bJdqR]B94)i0;I9)/;_5_SR"G4T/Uq?_3WmY*Yq%6K^dt:d59p`jeK A7Z^U=OOjHR2FeG0OT>S=mT<Q32rgqA>-A#'Yc7s s,@_p"Cb#T>.jI/9:8;cS5=jsSXE5H?(.VlG3CVaNG(*CBam!?S5B<bkE`;?\?H)LTb]Ro'1PT13Uq"HKEs)/(/6cM&O8X'p%XA;8;5bgFT9H);UYP+BiAUAJ*kXb]F?;!o% )@Omc<fjd5@]3N[mfCN*f_$%]j(q/W 1f4E`:3m$KgSiiVR"!/1kOscbi2:0B<ioZfAbaQP#B3'2T&FW"M8JqT)<6$ZR61N_WH4NP:\f@G5U;r'Vt<?o_`0dRW`kr6($A%gg6=E<<3XZDMNOF(=:3j/*LR>-Oen)\\p>"\/!i)ka$m0i,8S6no/o-glcW&PAcA![7-A3DVSAA9js5H_.%CH=XT83\Yq^+er tWe,P:FIFHiE=1K&;&5+@jj&N!]%i\Fq0sD;9cR ZO0P$4:?VT.;hFi_??dcI"pDeF4U.(BS>`oqn]VA:TksLA\OW18p^FJhqX,/F&MDPFm1GfAd_sUVC2P DUC rMl@APAG9J8+r*(JjR;!7Ddh:nN#'BH7"Apd,iKd(&LW^Q*A'W5$=/H)Mn\2a'h]OXO["oUSI"$;c]Yhds<X/,-ZW+=<UH['eZ,*f)KAm*3AD`mJOB%*4IFq9``(b:J37#SEqm:\&')ZRcg]G+\Q0t[P)#Y>U82dWk'L.ic o"Wk+<:X"N)e_DdrW1_OL0#ap []DiN\JjPe"lRaZM8r4+ag'7=*4tNbea=?;2HK)6%?tD982!sdEd*VDh,gqGpD=$j;q\mq]c=r@ .\Zo+Gj"FWL(@/4[T%TQ@=!b*<C[! .2M'*b]!Z[bp!3G#418!]SI5VMq %qEo+bTgA.tjgkC!ga3S1CYc$WNoh#fCa/VUs9RIs/TVlaAXn,P<qlq;8f;9"0!5nd78]WEHGfVa8V0apq(WA9fbl-Cqr,C6/,OC%cN&Y#]<qWD$WKh)X(.r$i5lE%Iq`t8i"`d# L+oP[RPJM:-Bh!!lrcL_]Y3VIAePj20E/_*cZWA<Ce:[8%*>! )TK$!Ih8)i&iP1HbDk!G@s5A;RAKR+JPgi\Y1jK1l&5<m\WWZqK'DY7p'PrN)egc`=`dp^*"Dtb8+/&6["^]`Zep`oAb<YBeI1$NkB=^-G#cZW;o>^50S?LMPUI]rfD&^6>LAf5[7MmdRNp?/!:!`3@ @m=/9C3*c'&=Jlb8^?o:`YhO-5GrBbqW0S_*:D6G'AcGjrds#LI!^7&RT9A>"[=bOJN`4oW7f^p`S^J[<(iA^7.$q0Ad9s=6-AcK4r?h`EXp9(`g59GJjHSm%LIU+)O` +05ZHsoZN=h`'"FOc:T;@_7CPD-TWFg/7<KsY9S-+0;2q93d?_%=5C_d*8BrBe'qDiKJ.59j,jj)$3Va/H#-r$@$)s7it_K4\GFLjRA#%@W% '^Fi5[T&Zmn:D6EEp?FQc,*R\]F,\GM*amdRBO:"lHtU $B_r+QK#KSlk:N3oq^`-Fj(PEf%BK+Ti4]RTFNgM>UUAQl^&,_)IAt(7^3g?X"1']/&b>FMD5p%bgqDHd'+a`\*88*$BeHJt K jm.: VL)cF_=R<IK^\8Pa-)mPR,n3bNE["S8>^<&hV'B <.p0\F'E;Ze?3+C/g@2-^LPA%-Wt%Mn?%PoB[r:=U48X49Tl7jDQ-WC!LC:%#5l[3b]>e0TDkC/Kqs->A2$7HgDU\Ob=*= a(%j89@-bhMa9GMka%/')S`S0@2kgA9MS!rtX65<E/8o7pAa4gPW$H+s@[7'a>JBEmS?<I#)aLQWioZ:]dB'$4lA-I-"'g/mN=OU_ NG5D[r,q;ri)e\Nei^0iX AGJVq0q25V\j<m ("o#.?sdk$XasYX7bMTdF&hS;ebA;#J)(8Q*sKDI;)]k7m>h7WqqkJToGc@S^qK7S0Mi.<iab,b!kr9Aj2:rLd'+:76mR)r9:PrPA\8]>@^WI'Lf1NZ(%hA^))K*%mlBs7VE9M tNi@9SNk4F1ah3?<`WWX!^:b("<!Z/7L,\;7dM6]a:MXdKI#Y <`04kFZIC:<Q1>rKN1`qT&[))Pa%h#?\O?s<IT_`'M'^tB9+grJ3'/<]d&Z]O.n1A WUBlaE-n-2TDK1h+)ig8g[K <]]R4(#9fM)C<]\HCZ1YdaJjX?+K2#mGha3>2#YYOVBE#jcI7CHR__T9Qd?/Gm5[tRf8tW8U'id fS@_5?".$I9)1Ve?9J/?hL:rHa>f<>qAn`Ug?i^R=2IOYq> Q-WJa_S&]S*=VhPS`-%pWptKBhe.?IMc/G3B/<o9kj1AIKN3(#l'?B4k'/+nD2Xei=ZbJ\lpm!0>#m9lI?p8e>FFpt]bT6hP,(b6o6=''.p&rYZ]niT?L(JV.1*I#qm$qGU+@1a@cL<! gk/<BlR\1Ucf79P'EKVCCQPq$s@EoaAjR7XR??!aSH!VN>dC+IF"Af(l1J6PA(O?[RbhZIp0IFooE-%j...DOF&]^l 7J;6pC2CJ,dd[#W1cA'0Xl!nH:a24**!%kF6\S[cp!PhCgTLWWPsr9lV.r_:HUD"PWti<@6R_W)LCkM<kp0cnA> `fcTl.;1+rhbXX5^=<Q_<k("Tk_4JC^hE<NgA[$drM__'$t#\@Va4LlN5A.Gq!7Wj?(T9rBF*lm\n3-+md] gr]4X?.i1()\ei=5B4>(Ke@^b')g,WcdX]c'j)@KIc\Ng'-G1@[:J%MJ0E<*&"f3MT*$fVTQ4=:5l#pAIm+ns-,:R(0q,.ibo*21jq`5Mn5"UXX_n/J<cg6c7j82V\$H1!mlYnj7M0AA[8X#)=UG+;Qm5G=`5g4*;j6q#q/hiOATs`oLIBa.p7][34AJe_r/q,N(CUMO4Seg%:(9s:FqBnHLm;Sp^HNf%fAs6/DL@GS,=F2<lY+b+4r."IEdri4J3-e$?ZCl-W c`+sdl8-'."@;dIr>l0H53.1=>IWA?Ac3_th=HtF?p-i^VFsC]c)4E!>+AQN@@\?IH*tN:NBt$^Ab=?jj;lm;Cl[>DV.MJjpeXd19lD4k28tCO)^Zm7kZ'bOjG-Jnd"A">-m;hHB@g)p8ZW.j4k^0/k7DRD=Yn0=-PD#]%5kU@eK.\H;H59XF[(hm]qV"R@"iOA1M"]MQR5, 'c2=Ph.2sbD+HmOZAp?_c]5mOg]OM;1:$_QkaS$csUnd/)e2iN4>IN9UAJ(J 0Md^]/dB3N8"^q.j'bfCjOSs-!rCKYUj#;_o$54D,Lq3H0MB?ZCI*C6.%P>ng>EW#9h("sMP8(B4l;!oe4)'&&,Vbd;P-%VH8&q:=/e_(4#4/:nNho\*6BbMqG6)56F>gpEgZK!nEWS,T?r>,ApAKD9E lr/1E_Tk5o#XUdGYft`5194^WV[Q@;jA)Za1NOQ-a"5;LZ'YB!6RfA#sZVIf(\6B\irp/KYVa[N*8m8O(MK9+JD=m;iF4VF@`7?mhKA>bdE50AVVJ6Xt_#pgZ7,U"B#=]*?mrF3MAYRfA"- N7ZDanqj(hK3T``#mfi,0 0tGA(LbPL0k0DWJ8XS82,b+*YF;#;_&6-&Q]tF<JI"C!>MafcfC/\r_QIdc kd0.o#^clX.E=3<l:74As,mM4A>'B]78%oRLUbCd8Cdit^GnMsE#pR:=qV0% skgZGnOK:scEd30<*f'dem[/<I$O_``-EZ=92ToSFWH7*J3o5<!J(q/)8q/1=YVRBh\An'7t].l%shN$tJ0p>$!B!jS<c)"!AJMYn^tf!jB^]W[,6hH$/cBilFHDo96OhLRD-bi6;;G#6B[N`KWIts7?3Jg6 SZ.ih<2IrIS93OABMd(.A\d"8KoWECE8_KZ>RZah// SC29rRbrk"!A.i%[!Zlg:&O6%iWnM9 8^e)K$` .G-."W,QN2rnGm(V'LEF*IUT1pmH=iC$@jp!D@&C!nDr>5FOj^N!5%Q<(jF@5<1N7^s<H]@&h*E(La )=cS6P@O[%_n`j>cFZ"ZpkQ=UKL`QqZH&"6Cp'(Q,H8ooqZc.\WEl1 a<GHjI%;4#!Of%KUc\T2o ,))^fP#[OhPE$(3N.hBU(Op0'?$1*B7"I)R^IA\8_G<*j6h>UR`><5 Y^l,ld/f28MJXjV&$I&T>$9g c[K"d\mc7OV#Z*Y$M?`Q(QY\,_\/@r5H \McYaaR#CV=JK(A*.LI_aRAArY?AjK+R= Pn%t'3dX&ZJ-YA9p(q')@2F:GVe9V+7j.]pdMrT QF1V:$*`@.?atU6Yi;0+;oNA_'Va0A38-sf6#YZn_J3WIfF Fsh(TE64S5-=Z/L)#<TWA<e/9Z<dh/<r"o[B;"I[EFh4/96tL*D1K9Cn TpCk_?lE@Xe;bdnlE,Um A")0$AF ^8W0O$oX&?BLh78NfoP%`!aa,kE#S%DW>J7S.Hg_oYN_e--jU2oaK=peMh`Q[$D)dI5q3tA7VDD+,?iG=f*bs])J/8;qOam0mcO$FXp4jQqN!iMM'KIE:l+He=U[8o/9/sLtd[c3oJ%:Z5hVVZ"dO1$;idosN<MhfhQhk>Dg,(A'F!NfeY^O!akMYg*SM??f73PL6.lfHY`r_I]-`V;.\A9j8h0*Y73ZUQkqo!Io%i*+hO.G@,/d_%'FO9dP@^D"l&Qe*-[$!^=X)tKAH$<sLrIm3lmOC&m&+M'm^.*tK3Q4r@[Irnm$tT\=\(r"r3Q40F=R(Wh2<`7YVrjP<mXJ\bgr>:TAK4KQ"MFTAk818%GnKgdSG]J4p\8K2ZN".1om'PN+i5)lI1lhK8ik#m3jVY'W(+!%_n*W@.KUQ+Tq0-JE -7G#gd:ARilZh9/>]0,_:kTKm!F_oHrV8Y<*]D4'tSieR&AOkf_?J'/o:qPdReU)LmpB j?;In4k?[tAOi+DZ_7&<2GMK76BM`qMUc#1#^Xi%(H1J^OkS;a/^ANh8e.=-"J.f0\P$,h"s/,sW"Oser6QcaCK[D<^:pbTZB_$q;0FT//eqJj-%KFO37,%`6kg6B%`]M?"8cte0V\*W#&WL9:5a+,-(h8`;;D*I@:ZoS%9(oJoYfGoSgUJN,N15"(I/G?G$G.t#nspAmaV4KoAIEQbi-\4R?t>Aq6kVE>3X"XFVNn;<:;]r%'p_N[pjjeJ]^W :(&NdMqg"(!'F*PoO^!\f2q!S]\Thf+s;9AI_3-SA@k>p/[Ah'WtN7=#f-+k(+p5]e\^jQB6-rDWMAb,+K0d=WmR.><:Xsg(fR\tMOkh!5'L5@BsTsGMd4A+[ZSZIp%/$aPAAc*A>I"h?d:^? G)snhb2eNC[(J8=I-e.nb2lLLQ#TVNLli@WnK`PXVI]M[ki^r0Se4?W_&9M%)\]r/0lcJD[Rl4rI2qG(_]^1,`_RJ#YA&Y3JI,eHKKG@p2##LQX.89hjBo!t_,MC;;I!TWAp>!sjf.^,+sZ=Hr%N2o+cSk.9lg1d!]4#MX6(]ReFA=!%"gqCc-MW<TF<*\7"VG)<.WJYbD8\hcpDkbG%6cETS0<),EKf.W9/g!Xat@lDs3)o'#mc^H!S5VIC lL0Pb2W2(&krB9NOK$jLSe=gA%@qO#$7V*V[L`AFMPLN4;Mt54:A/%sN;]snb_1#^rVWOAA$3V7SGF?.<o,! b1W+tjd'=q^g.4*Y<f&ekgZ$T<tE.H.)3QpoLD\$aBatR%P-?("5^]>,8#C;c=th*btBtJap]K\^+lV?\>[;Ap8<&RsH8cH`#VS^J]?gIJ5lo'9Z,GC@f,AT(>^dS2StQ+mNQm0e`6\_:)?/Wr?,_^'ea6XtD2fY3$hTp?eTdaG<+,!fsOW1-^B^4:8d++a'ra]JQkMO9V#V2@U_YWLW0L)OSU is?CXFt'5KA:p3ZY/Og!=ImOhfIR4@Ebg3AAXGh-Xkr>!!?CbmA;M$=]<'C[W.i=B+s4"RG.)<OA?+3C3# G-oKV=^gXD(V#U\UVDWJ3jh:[C4t^3P0l1'kL6WaFX\IGFn2"qG(NJ8E_p9Vbc+j6BGLK8g2I"HI03YMa.k2J7_Wm;1)4chr![$5D)jMAQh(Q56<7CD.ad$,lMkXDH$lC2kgP9YM>DcBm(Q7PB#I2Mia<ZLo^hb8^^>Ys?\VeitrGO4@U"ZWW+>5V8/C#.hP(`P.9,&S,8[6IO?BUO.oU[*OAmm("Z=4_) RX>'AjKETf+?Jt`28%7n%dnU3bRc0=>PnWVZ0_j+/a5&kI$G_=Nk"nAPVWhe0PV*tIZD&*-^]gpV0E1P4A]i,DH8j*@-@=W9'B2DTA\Q23k$K./AVc':YSZ?%dQ9[d!i58q!6$qP*J-.i5JAj1[1J_`lK\6pIhQ`;pA0'"XDL0#0oV;N[mZ)e$qTtNRZb4AGH$S(J9=ACXY)jG%^ggr@%IsTQkk:ThT`@^qJ8[]qPj8$.lmTp,H<71TW@ASeAY:q.[0mZ5N,sA;VkN=6?j$E`[SPR 3n*:ND1c1-L1KU'-WPH6QA+/E_bph'83j;eG**giUl6ASo[]7m2[^T8G6jUUd@prbCrAOVlgIU[9_ch<mjMA@0r&$6Y8f.fm,LJ=Ki^A4G&^'r[*b'[&/F<>Ge;^X@ T.a:+&tptA0%5-p#@#$>r5T27#jKEjFHtS15pplmSM\mO`"FsN)d2jm9KKme *OTa="`gABf'/O=2@,e19XR&<8p:1L&U,(@DBYcCGOIeD<i"RT)8*M"R#%"[?"PE$4!a@630<Ib N[oP%rQ6_Aa%:/B=;5^-+e(s9]9Bj/&hXX+XK n.ai1k%^Yc((gD:6qTA8O5(j H0"'[$c'XIX]_FGdDI$b8M7&f!X'fi>7ajB<-fbp'\V>q7n>o8fBkERO\?Q4ie#pFb eSs)QTR[pd1`-YS=Jk/9Y**^`p#YPQENmk6UU-"]E'ZP?^,L5SlthTnc2_lKd_>imUpXBVDmRbd5r2-O?G8;6=,.$CRM<KfVIZZdPeG>UdZ9RVs'oPB *U9T*&Hkf^]Rn#VHLZqlh/JJ&Y`At `hPB&TR"an*#.J0E26`+CW=[s;^?%gebsV+[^`EUZ'aFMS!NjmB<oR8]8Agi">c cAG=VO+]+M[1rgR-?5lOMiXm^@0X1"7j_=A& Je2mMh_>M'mat?$)l[S'YjOsH]l ek+Ls5l8 cP,=`MW@m UoEYnV^MD/A>4mN=4?S/Jf3*>f%V)B@(;A$Bf^IkcLAq-T(f]i`7i6Xf:%=0U>X[+'(ac:l7o#[Pp;;`&D+CLq:U"/k<";m/K[E/L"23TMi(bf2L6A0'D3*B1 U.-]Z3FHJ/#@9'V5<U<[#q)ss\;/h'q0PYFh=?L=]W:\b%I,bdps1\%17;.eWfMm0DD=;H3hXOet'6/P<(/-O]8\WRC\?-kklr;7XPBg"FNAGZt5M6&`mUHgLI^^/mG7_5I7e?<baYm_"q$/NqMU5"qMM-UGFaHDc?H8Od>A;Tah)q8)4]JBp+%7>nmhS?e79@Iq/C*J_5r@9_ZdsVc5Y/k`BkgialL8::XP*%V[cg^&Aoje_/c[ms_4<MKHE8:4\X_.TrALSj=1>\N3`Xt^(KCneo>^ogjDh,=^/RP'-=q(!%[B54UpT,ic%K+RcrXP9sKD(0/m%>ZA:s==@cAdm`aT]JIC63Q0209[%MM;9:d.`tnKqFhg,3(YO4]4 =@&[?%6VWTA+K=A%`S/[jRA/rCA3#BBhAdn D8p'l/W+tiilb;=^'\GRM(8b"I.[?*VF,+%1"_#J8mL7EYJ#1T%Y3G?K^57Xmk(TQ/&Ajl6^mhsR0CB12Q@$(tBiE0YB)Uk;A@'tJYCab76t1Q9Ta*0f!AdV!5!3%;K!<GqsPHlAZYHP6^1``V\\C<Wp/s=C8MAO?ER@:Kn%5A.Tn[B^6nZq1WTLl2?c`lMHF5_iiZ;gaRT1!WA>b<,N&mO%TdK 4bOOfn;m`I_/<?>:nHcOq]Uc:3ljjJQop8strF,cY'Z?ME[`ps[+adMHJ2A:?)ffMG@OHf6*,W(kDNM:P&#"f=)e3h%4^]f=0T]1+bapD=A60M&l'b^4HU\la-I-j<`A_"/V#<Ab7Jps#[s8A(:9Q8#hDAO8rVTZ]cT9&^QjY,4T !:N\#"apZcAn?&T+f$"AX^X0(t*WAQlIc[QTbT%k#Ei)Yo\0a%90(J8fDQ)qnrr)jgJR?L)')0l?/$KoY8#N7r]ekrqIHHj?Z0HSK8NV/@pGo]b=LF?N?CA+5:0VJe;'?=hc+,0k;H,A1E:O_K+2Y.H"?N-`XfWfRW:7+,*W2GpjC]n*oD9i$Dh"[7OY<6n*9qUf0q@pG+jDa3Zm2o(\9H&fpVa/9H.3;fm]JGeYQtG8Zl5[[KkZY6f:2QQA3H=.`;_66IWsh,AVKml<CGB7/&QkF3dR;;@k\5L_3B&;QG8h'O_&].=h=#n9HJJdCLA`BJ+9T96 aAgN 3DNN#7[XX"E<ejGt:.'rA&].'-[=HPG?D[WMPrPcQNbm3a_.=]c[0LB?JT4$j?.`s-(9i/3WA@rmAi<1dF!$*@glo>h6r)_Ti8b)KG.K>6ECdLQL;d`<t1#K%+kgDC_'le24[qs8T;"a?e2c&]XQtJI16 8ZN-pGA)AcR'M0Z0qG]CGN*eMcCZUMRf'Jd,r4rA?f%=K4?DPK)%O%nMNn02>VeFI`8=)`Q<EC!$^.`I3/#gd^l77:8Z9bN2p,m,TVF3P]%,,ND,>h0ejFQjJckrf,><6bBmIUJ+rZ MAs)AJ'*[qSIC_e=K*1P0G.nW_A]c%)H*HR.-.g-oO7C N+Ie%aZ]_fDW]:S.9TZcXq3*ih*a)U6k)iqoXs\"*dp#U&eM%A6mVd2[bp&`r$'^UEi&jSsWU,OjYX4r9$AG*r^Db71Ul1M9m8g6+s) CaaTI`9#b)U1AOY3ALhtA#q\_+]PE2TiW'6aZD\HdkD)/U<D&l9i'Hinl[%5/S'3^IPe\$(c1]PnfGtqWV"3oqjQX i+9A+<qe;gAC\$ONsLdLr,G4ikN#RG+#$A,G!hV@t-8Gk"*d1Y>p.d++A%I^#fGKAW]>CtGt@A.Qj%UKZZHNnXer;a(&?Bq,]W*ot]P9e%iZ@]lXcdPU(h#TA7HGT.E8R(h;EB9JT15I]q)XtH'h[0IjLYE=/RFFlcVS)&GK"[Ag`+GcdI?tTD,_XG..XfWAl)gT)7dOFFs3jC#ctjk"2lpNM!Ui0$5H@ja;XZXDT\FMh-m ^D%AIc;N5A<sr$+1Q&[GsOUV77rQ"t:$ZXPqDc3l;7H6nn0sEUbd!Tp.rP8'B4:Hsc=%^.bmYfs;jgILi_=0L/n(@;dPU<_U5'b>.j%o%"a>#'h:kjq-Al`V\]Ih H>:F1hd,tSoPac]sc\'j:4\Zfo<-%foa.F%XN@]ZYm+SIFi3f2)prdB/c$U1)["WitMkFS5N?=b.\XXf4D@[A\\jpg8iNkRCch?pB@R3$:G!X'O%-B!HRanglMWA#5eaF2;a 2TCs_<CDPW_>>cEXqFAo7-<l$ ?4krlJ/q]K\Y)j_$AdU"3'P`AblRql9t06f8(bRC&*:[#E5c6cnNWAQgS7aSnn1X7rNM<c-tV+Hpd`MN$R!AL": =LdPZ[D5mg=%sD"TdL)m;AaQ7P_-9A2s[.'TnY'6"C6aFL!a"G][8>&Z0U1iOHNSG BShrT+_I.=P0:S]oA[]6&,W.`4_+#j5G7Qk+67og`SA8X5RB1)K9WG\go0C_ao<m$^:m[JAA4RiVWn_V`c/am _]F#-;K^ HV\QBI4UD()0+e>N-2sI<b8G)2V38bA`?:\Js*gE)E#3p@_Q!\'Ghk(?!ek\S=JFB+U_P0?Pnn<qZMQY+M+q"[+Ga^<<d25 Z&SUg4PQ3F1?<KG@kBY=sQ:EBda_oNV<OF7D03FJ` /Y)D3m1d[7@JPj)LXn8YknJmPGqOEQo.AAPCI;d9*<3eIiO98tl_[]m8LaAhC';5`ta2<H8Y+.*%GDJDA,6[+g\@dc+3c[D:B:C;jr-0fS6mJns=D%G'Gt@Lo!DRPV*!e=Go/,+dP>8bQ*>P_NM#%ie,fA31lW[sYn)Z-r#>4lA[C@Spt9bG0YQt_;1$V%O\-Srhr6H?jM\GX"KX!CpVK,)Z)Sa/YB6&^i4TpU\FNZUgPQ#`l5jnK]-.A*l<](I1T)M mQ[TM\;AdEF-n'*f[o&=$SD`oD#*7Kg#R?0'N=FomX:N"m$rM <qFI+S_jg4bY7pAf=UP6`2%?l6Q5/U2dH4_]^a OI@JZES6Mp<1Mr6\[(/J\b0MSRHDh$6pHA![3r^#M**XHJo?X]%E`Y3%6E(BZbmUht6*di2T$DSSEg^8fI`@D#/?:"IMNW]`Smf$2&R/P<qoX]sHKQgCQsMpQsKF4'cgTh\@DZ;SkDGjm_ocfF_4qcWn54/aH\)F+6EQsOOif4sa 4Q9'LTK_e%]HlDr#tL=\akd0A(p*YLhENc#DNA(:t84FYn'<,Z0/NqP4E7#XD$T;>H*_2X1o,RRolm1@Pe05A)X[3Asq<ig!'gbhLPd`1t_,eA^O9R] jl+a=jlE$g+k<"$lm]FUTi`RPZ?3BUU8A.F0lelo#drgnH2oJ -dd6*>n$r0RHNDAfC`JoA!e*.E]NQWh.O8CAM_Yk%s0aaP22;=30;9p`,liM"tl\@(q9K\<%V!ifKFoh0>QWs)RDAA=Ra\o]GE"3"T[2iC$PL_ M, TFR<0G%iR[j=4EJLZ:iHnSsAGCQF;-gd"'f^PI3s!WP[gbp\p2K</_:$sbN!V=r2ks&;J&Fe$:OSY`Pal2-K71mpkr.)+>g],fl(NBF,k;l[bE'27W%cKWL(J,8RH^PLqi5d[&W%Y5iU.IH5\6PfP"-2htG-L#W8b^"J%'XB6nV:Yk7'bE`sp[^i"l@kZ@\*T<pgMMK OEP@0;5<_>0jnA4(]_pf=R^SYRG+EFQe[V&i<c:NK1.6ACM)NUd]&GR`<#1()LtS_+1@kOK:GD3-9+77di^Y'>W3OMp!VRghd)Je+^<VM5=f^)qNs3.KDRBCM#6gJL?:(e1@M\U.&R2AJtbdNO&9 [\-T"p$<H)bdbVUPIIogC<lJ 8?'<oI6oigI'jY=PLB)`CVY /K2rJ&Y`CGd]`jT<qF!%''lW;<DYTq,Rl0Nf!jX]GK4r5S-9?b]TZQ?/Vh45G%)CE4Z"b*@ktUl[tUL%4;`;)KI/G(h/:GW"GjG.2Nsr79_+j_(#f)l7kaO+sO]j^jM>+PLQ$Bco QOiA;o;N'HA`eAV+654S[o4[>]AjcN/g'VJHS9Ltn7b7*k<h[<o<>F5\\`rkP@ChHLh"]W8!;V8C)&^%qLE?Mq88IHbJ-eA$;+qOaB@4kCGY;O=d8\.oRU%s[]O?\D\0JO98 L`imB\!#rHo0]i+02k9"4#)5:% A&9Q:,;sDZk0[o(GVlI*T-W[-G#J+-@r!,AF3NG6OhUcK-hXd(##J85GUGZp0Zi"9_Pj4^e])>UC3I8T+Hol=BE ([Y24p[<]CUcnR-,G=hO3WH`WDo]5;`=EGi3^d7aj#G.r2kEP6S];>ab[<d%0<kE7lJNQF+pboAUf[;< l/&<gFY(WgTsAh<:[8(i]^@\,B\?($"QQbQAXA-A._A4<^-d#ge4A#G#@?R%k'JS:V!Z[D=0j>3jh2X1\'!2D'sl/*+oZ8;&\"VXrI);dL<t+HS0(6 6!^=Zm+] :)3VZOi="O$Ynbc0]LR]d) kS=rgq4,mmKa-0\0l1aS!f?rm)4L_Bp4FQ^\)q;)F)jq3)XJ>A%d<WQ#&E4E@0"<Pf;*4BJ.^kfn>\(c?1; Qp]/?g?:.b8%J!N`31"B>Or&U"dHHk-+.`=27f%IT+#r:$0SfoeZ%p7[4RG!3GTUmO/JVKYm=5aC$WQ!X^@"9li>0s2qj)2G,AZ6%F&N#lHlaA (B5r5U5*TX\LJGd1!hOV`]YpD)_>[i*T,(*_oi*"b6a-am,)Y"nK:-T#Eq"-l>R9TSU310G8h?gm$[7DgXt4B2i7fB+IEWi`Hi<^lRseL7U>f@*+N_hAsH)J>f?[B$(-,E*58/44`l%/9]6c,Kj)TfCDaNAROGXnlUaN=WIt_!Y9b5@@?@57K-68'\0[`cnBG.YRD@coGCTG*&ChORm*2%a"<'0s7TKC!hp_`.A2Vi,d*)Zd Iq6QK^KSO9[n`[soc&tHMWD`s=K]1h ?BbJ?pH.n>A%CIWKNsboRXU"/p%Ma"iVi`mA V<a$IW"fdA-np8qbLV0P=UN(i]i2$cr&%&Ddb@`i:+jL.sb>'R)b^e^Ge!iqH`dqTs@a6\7EA(lWKVHW^,,2o5@moD^Q4\GN9YPjq7K4e`AadDQL-R]3/b89]MJ9jf7*2#m>=*RW&Dg1`A)dAjA`^&]^,<VUqairOTOY9@q%CA>OV.iYWHliSEStGtBgt71qQY86*KcG453U//XH5:'^R0<[=9h(IsMdA)$%L(R'mAW<m&07;O1 N6a8EqE'ZCXkqF9@DoE^UMGOkP);plN"H[aqVD0cg+J S00;(DcDDnA1VZ9;484q$C5%<ddiR+TK>5BRHkMP\5dm.:"J?0]+<SJ>b+=Eta#\XFb9VpAZU6;?1S^VLWq$\!V=./:2\+lnHEC=.oMSj/E72a7[kE1ZM$ h;m1=lfT#32?VZoCDnK?EAA*MJ<fMq-j9?f6i]dP-YM$I=jjPD,L4@GU0P &JV7^5sb=Dqjch%B<^/]`n!W9s,*1ctH.o>%MGB_l\<&/P:3%Me(rQ3N&'@,b@>KGk`4D^h)Fl$DmI>L:J>^1"MYHK.o^!_]!qj(Z[=!'3S._MeE1GdPrI#i^#jGq4"h\DZ,?i?jdXMcI\MtsT1:(PG8#?DM?Zse)Gi1OC1W:d`69"akP7!>:PcQc64aGhpcnC/A+d/nn@fQsG3D@9+i"GP?G9[f.3W!RACAqVrdn!k/VWJSfoh;f5C!H:a,M@n\7_]oT *>nDGh*r@N?2;9"6cV0-.e4](:FDEas<%>X fle&l=!C,q;6dNIU`;?C#[p9*d+'L<On \ A@egA;=o)["A"0,O0$C46I,i^LPTlqM_k-FYq/R*WBTBAt96f8:+if2VjTP#dh BimMR0sgI^+ik^71Y;h,d:EUQL?Er^O"\<(gOoi!]%`3+T^FtsK4U(\B7kps $_k_6g,VrYU%V?A@Q/&h]64f[L,l,!)YJ(;45?d/i#Xf`2Z`1-OoXjlU:2?e:L<E/*$r++T)cX=Mf*r`rl3c@i-NA6CC'HjgHaIPaqLG!)V-:;&Kca.21_[@Z4??N-4p.e!b%B3A TaB_*'27 Fh%&e g-9;"Yh:as$\*Q)@gsV2Ne9Kce'ANN--E<O`o3R<nDi\R4(<Iqp7$qVtVH+M7JHtZ9KR=YGeDh7U#[Wf27Fb9sh7Vr(GA/d;kF'A'!5t4VpN\kOc.gT$D\c-4[XIY4*jgX[HZHcAA$g\k*8%c@:=lfo;#<mCjVrLE<k&BN??K[hLrWn1$1Nl+1#*C8ZGl<bB*C@CfF<abJ^PQ5@ D H)MF;2Z\-6Fd9f*KUSpj>N_aX;a.e2PGRkcVPFIk3X*q qM`"jRY?>#E]"-`YLK[C:QTa/,8p=1J7_rZl7XX-\rlM0;$HGfZSt;_Pd/DPlGJ+E*aaO!X['htANedI)<'j+s!KKh@q #VO!HT3m\SF$Bt36o@0tc-ZYFs?VnN2)D,?Nf^['h4m#0;OLSfOA/dcHiX#L8b4dnDs-nV_btDU6gJ+[C%Q!&9kL^.Xh?JrO7jiCTc^3d@;\$,t,+JQOjjf^FUj+*m+*A4]??RgFBWlA]bs/CcX49ejPb08lN]h)>=g_C9`9sY'g+e3;A7At.1j@>4gM^Tk0S]E=;r1Q*p)8ira/O:I+9/_QiRc.\R<,PDD_lGKK4ff*<AEG9rt%s*]Bll_M[1B@DV\`VXtD% !+-2E6^M]e\URpb1>*n2A@HK=&?4IUAk2-S-[E E`Jepsj<LR3&st._hb6BfP)*QNLVW&3B,-:9kn>P*B-$@`KaMlrHo]6i-PBP]%i]$/FKR=$>-Nj9,m.RmT8H&h.Y5o,Y4)8.MPWLmnRC$A.D0pd>3C_sB(-p%7orENVmP6Q2kd*SPg?M+GB-RBH0'JU%NVt-qg%>-A-Xk'!V2sEXF*"<2[:htt#e L*[AMYK3B$ .lH-Pk85-mqpcW.2o$jlf9>%UCd%E2(O6)#kR1,1K6OPDV1[2$&)bJeFc/R@(2Vr5Ko==WmK80+s(4>Il.0SE XX= )-<g6\FfL;-8;+hA;sLS,mYNX#]=b't]\/3mj0lY&5gfCE&)F]e+SJLD$.]Zd7Fsr2qbNMJ7#)E3Ah>[W"=@BNT//C4EGCWVSGo5/iZKJ@$A2:5Z:02L1eR-1Fdh[ljahX"+-XaD&c2`=eod1g"_l_mIK,kVP!.1^7J3\YR%G0Qjr9N/]hgAdC3@bE$hb`$[A:f+Bp1rYU6TH0!KcnRN4( r9 ][nqNnS[brTD(`CEkeoLoKAZ-Bn227d-k/%$i?aU2kD`I!Cjg& 'H-/o"E'7bdaY1gL6bpAefnAqJabJZfnQ"^G@%SV)S.4 t>>rrdNp7f5?Rb@EmA6_q@(%OCd^_]SDsbgf+C488AFd%Kn@dmQ9D\8P9dW\^/+g-;_?fDr) qb#AY+T"R^]JkF-n8IP7o:;Q7W=4s&A8?IKrn0U9URPPf0Mj7^q'AL^<(D0:UsbP>HO>&N6@J1`s,&^j/Gi@^#i+YjnEf>G&!)dohal(\&Y^d\Z0_+LC$c6OFV>iPn9WCd`?eM:-Ahk[#"daffELAi^sAqbgKAf9q-+=^V#4:WJa#fI5rFrU'BM:a?b-&_-j&[T;,0KH,!:poUkAORn6L-U9VsCX9r<25r9g\hltAV79W%b'k2WC"'E6H*:EA A!V1`PnSba\kVrr'AVShRN[''U60+%2)kll<+f8+MefEDtmsXgB^;_O5A6cG5j8GpWVs#bGp(;;[oNB9tD,/D3[pcJ.@+@=n\F*l!CHa%KW@(&@0>=(W%mOj+"?og>4b;3Yl]ocT0Nr'C_o< P':8(\3.Lcs9NB8*WPk,3.[_29,Wpt `+h%:0\]?>$5s56aeiS;7;tHIgZ`5j_WONE,e`gJPR^88K+b VMQ jWI%]mc)3]1tOt5\/?;TM`=$D# d"#pfLjUn"Ns=:RX?gObQa2a[i2g&<^(jG.ZQ]>rJcqWpPjlA#EYif^<&.pAl\3=H05lr.=K'@dWb@AWZD .""MQ7dsXcE^g0t9(:TYUlHjY>DB6DgGP>'9[$](VBh&a 0t&@Uf1B9Bq4ef$]sPI'S'"=ef&b\/j<JP$9RfTA&s_o@</WN[sF=k\**29HY"(2ok6bIC0]Vcqp:ERXt7'+m:ASj/s4'EHTHV]NAcTk"4R2D3>'HAM"s1tPkh-^'GV4j"f5sAl%WCp[Y)9HJWC]@VNTf:o+'5_L5 =R[Y50##nJhCEX 4(!G#<9A?oi$pq`Pl&`lPWVAMrBDYaVam"L70VbSbACEAi-;]WP )>Rp4ep.3Ap&QF2Q[C!LI6WM4a*f)62!>29VZ6NG]7F)M'%H@Mjoq#H^+.XZtnV'Fp4H#Cp?055[?AK3LIt#_if_"9msn[+Z V##)Vq\/_>kM%I.,h=WA4[f+Ds:SVRAoHdn!o:CS;ejT"?@k-Qj*2!#eXpm>9RN&JS$Vn6kq%iOQ-g%Cof=`\A']IGVV%0O O7"qqeBtJ)Ula4Mm*86#QQ\TmkR/!J2G'?6e`)6RVq<DCIf""2bATAYWG.?PrG2ls+VR_b611R>5%*ItWq)P:5pC#X!:K^# 3 E-"eF@s5X9=$AZgJ>>YfZ.iq_C1t^JgZ.4D0]^88G[gsRo+=^/8d3e/(lr ?n4_4EL&%VX Sr$$S]@@d3SfX:\!>FphR;%P$R;TX<bL`VU3FNLfc<0osA, ri$JX-IF0(:A)PWV&sfiFpe8h RWBEeEagm+Vf^pnktf:V&nB;XarEd6A=6VqK<X#4L_3=5_+>>\$q=%mafk\@Z(C]/UZnI9R"P%@0U^_pf`opkp8.>?ZE/c&FVqlGBdYsj*S!Dq^8!K1?%mR:g:PCNqagL8hS"T(l[ ^<\J&9ZN%Q!A<P`C:*^c+RW1#c\_?*bnIY?5-%I;+aG:<Q3Nl)KB/H-YX4;;FR>tVKS;DDkbboAKT'nkBqa!Q90#LJR;..-te=aabVt@40KFBr8h/T`Zr"A-P\1`84Xq\fCl:USe'(eR>dblk.#l^YIH,*rbK4(Ws,:?Gp@d#W0_+.,2aiK5trRDn`KO(+4kemO.lJ?g^bOsWG%D^P5NP*$nf7kFG@%0W]MlP*3.$TO^l 9;i'p#OMAKdl/rKO+jU3F!JBFdg!qXAl,&sR<'o]*p7V[A\k[YNQDr@"oct>!h8eIH.QU5'6L]Vpe*-0XUhJ,5aAkK:6]UlBLMtm5--at  3PA/YT@^D9!E;%cUR(ec5*-SHVfBA]86_b$]gT@ FOG!kf!mUmpI5A\lH,^sN- \%?.W&ReT]TN*jJ;3!Z7GWRW'[\]=Sf%A\GK$6,s#'Hr_ME8DKc,HiE*H@0f*_TC(8^'qCZrbh#.`50hC]9A!oK-Ie?]f^gZD)'sC\JEmKPK]1&6U:A<A=HOlI)9?$ErSj8$\)6.14Xla@eN,lj5+Y;g@A,=V\l7$h&BI];RMK6(__^n\[Z6rLKo`oO\q-p/$q%AqSEB-X"A=:AlDR1lKCHVl.Cgn`4?5C2iS>&g)d"GQDg4PJ,1.ADoP36IMsso$*m!@4"Geh>QM@e]Xd-I"C)D=`:$5An$4sle" +\s/k".M#dG 3T/,,LipcSZYU%c_T&O_/HrO+U,IA.$a+=U GBt4BgpPB`!Fj6< &#:5M<??Qr .T[`"[Ag"O^2!9 DWIQp_/7B.t6+aA/W9DZ($JcYDAf+Ne@iLs\;P`/>C'e0o,0](Clf:Dfg@-F"`ig:*Fr%>HIQ#V/?,t5H4B<Qs^A[l%88+d<$'aMa5Cm.fD9:A=LAHbpA3^M%5=rcnMAA$pCANJ0qYil1jG,8IPA/4.,b/JX#nhUbM%Ynn6S1]*=`pO^q_dlCh7ledKj1HfCU8$"sA=<\K=qKAfEX5+*?liR$rUBh"W`p8m(**5--fCj?,18QS"?h5^iaMZZI'V_qC#JPCr.`&0Q=n8LmNemp1Z32eBO;EACRQWaIaj0(]8dalOb@!NV2!tkfsC?+)\'f783/-1Yn4lV7c*A2Al9*8:;(^JSd#W69%p$jqQKJs8L,fAaCLsOPT5=;+2Sq%VmEA<1h#6J-KpU$0A-aA: $a'NV]oQkk^(f?eAnQV&tVO&a9p)A2Vf.ata,FqU]$KsTf']49JId2t'R"j7jO^$A;?9:0HiEi<scJnpnG] #>i(OrTP'Wc_G#2W[Z^L2AieEf%=k&&-a0f..E8?2gh7=S^-JY'KkHm;ABpb1&)@lZ!eQ*!<JE'>QXs0.qnTHkkO/Vi?pGje3%^0`EVcan>G`Xi XZ>kheR`oFNGZ'#pRA4:^2)Y).tsO%g\YYK#n/sA2gO*?MZLNpFXVcY@R;S:X3;9hHgF"N_JDmYCE,=lPY+"&qkIgr@t!!d?I5bMd^Jg2 IVIA=FRRat.b16dEc7l-V\7^Om3 LQd0I,tsa@fG\sOMF%P-K56+\82XDJ445em!")a.*49s@>W6`j)>]E$[5h+b`-ji*Q! gCZ01k%VIBlCt']*a&1 MUSJ4H+AH(BYE&B$7JT/TLbqtY9%K,r)Bt>XRsk[l]^9G?4p&N2.5J)4#k''Mq(1/FnAeCZrKqWASh/Te^'+p>)O\4rL[hY)F-Y+X,,@"#J2m:a@\Wp-]VbfRRl^$tA\!)('E-KC*[K27;KbY#<ErKh#`RYX>$*l")_lb'NtU:GX%n=[BX`.$6RN5[["/$pA^,H5/*/;WF/H.D'As+N+/6.YYhfjX-a1Cq&?6I48OVR*"tDZ=#p\&cDnbnP6Qe\tN6C_Wt2f@ATsR8]9[0#s*IUI>gA^be#nKI`4fl-]%0qXQ_VM1Q=bY1hn*,3UIBIMOF 3@QLV' )F>H>lfHZs[P[B#bRK_f&d-5_d)Lj\*Z\Q+aI#U)]D9TN'&!pG=<8KScpJ'WjU?^5&-EaU$aU5AK)E5eCIO[TKt[&WPomg8`m=S5j9lUKB$`i G<H;BqtakAhJbX"TK-41AnYEj2\$ID&PhN(sk5e1)Pqmp]!G5nD4h3P<Glm!Z^^!Tji.VZ aj]=1/>K5+qcW/>$FKQ:_rTG6K,#%PWP qM4f'E^ r;<_\Ja4/2Bo%a:f>)Z`X?)]0.V-<-=fkPIe$tRoPdI1M;;d0&1W5T$^dWVn!CX&]b8@:_AbB1c_V+,_:NtkthMM6m#Lh/PR?VEqb&lrCXFC`O!6+`Ce^5Z$s83MeK2`Ho_.jo\25P7ghe3XQb.3bfF&+?#sGeBp,?"*KNh\1XUqdn>j?V*Jm87r%U+ZCAgeF>\(9SPU@GI<<,C_j$QjT<fn]FFBGFPo-WqS"a@&T3!;Nj1qjCkfIa>>J3k +9`RcbX bL!&*U5Il$PjL&^W>:$=FcVZ'qg-8VGg17-o1"B:B@iI$$'h:F$5#We1rS,^onIE?S/@%_gc2oC_ AG-MnMZ b[i ,-#BG_Z/jh0;ebCkqCQef8UO"$M1cW O<tP-WA /US8VJNV<'+/3Q#nWt>"Li;97/9?Z1bH8MaXEi;3aAC4-2dLtfU@_=>R:[Plg8NkJF<4,dXk\WOq)tSP=T^)b#G+18Emjt.eHFst,G`]Xa(GBJ=5;"/>;/=&* +'/3`Ag kI-[i*Z/T2#ZK'>7PaVO,kW[20(nU+(BqGB@AaZ<4:YdG6jUAXB0CVteK!7Tn0Ai&rq_J4>O>siC:?#FqO6n,NY\_;SElXKtLD7WQ+*/J_Q19*]D"H(nP4,IA)p(M\X`or6MdT?RU5d-Mg8ZU)FIn4Jn4A-AF[mQ`f.a`;j[AgZL>3$<:jcnWk/!+Jajgf<F!&Ap:Hl \PE$KX,Jd,bnNr<$>:;p3reF6!Y!$f`&68$COR&#9<["a*O2dkf]hWRNjKkl2K/Ts+m=@TjE2%^/R8ST4?+*cSY`M-+`dNhd+Yn3d9GV_lTP/3#^LKM!h-j#0A-QJ98d8(DL]Zjm?',U=+O5e_$8E)ikIY\Fbc[PLVco8:NYq/dIE`bYm)0@7Y+[DtHrlTd[B?.TYG02neN7s=fF#HrcdSe#B'R\a(X%hKTUN>-Gl]VnX-i)cVVI4'TRSP-X3Y<7,K[KAqoOIWbhWD18$\*^h P]LL4s7*KdbJcX5HSOLjEJ:DY&SA,nZ]\\b&^r41nPIoQ(83k<:K^]oW940AVfHYIb`GW2,C.G9X*tPI;G+RrZ^c65Ar0lp3Ah8Pc2CAgZr=9DBe8X8JmT;7*%Hkb9tWg;Za)Lj(VUX.>9/XbC>GrRHqtJMLA,,Sc7X:<,SPAVF]iC?=7CX3(;Vq es8I8Yjb[(mkYc%"+j!hTkP_c+_K9"KLjHo_2)$^;:;G;B@`!$Q6(W0G Ajb%tsAI'YWIFM;gE2;05=$db5GT#s4i9)bp//Q*GT?EknHAdeND;ABONA]*fV&3'-.@ae oWH0dCS[?5DK!gqA-<H:Y\-sC^D0@'p/J1".ZBB@*(e=/@]1BN"8V:FmRc[pWIb$*]R9\:GYip?cI\]jofDFVk7PI+3DniX.[?m<Srr"[F/00.cCMM2GkTq AA<.FT5I.m<BT\s"I?0eA_G:9,$QsXDANFVD(0r/7!pgpp.qgqe83ZmnT74/%A@b'RWDD0hB]jo"8B&iH!Y\8R.'-AB`d4p-r3k$MoL)XHgsW/SA$0Wp?-fRfc[Lg"Z[Ql_XXdd757DXnED><cSga-r`sHH))obA3YIcNFIKq:<>b)I7!6-&ND<'@i ``I/YqMqY-6d$QCGOR-IiDk93Mbrcrl4K9/mK*5MP>AQZ/m6_EEti,m"A3X [fY0f"(g'ZQgE+@-OBg]=U CN"=?1m5\=&h0C2G3t-a.Zs5i-PaF<qZ?g?C.BjVX tVUNXj;q6;.&'M?hVCfN-G?462IPJtK2DIM4Q6YJ<I(LG8!q8#cM&c]YP9D! 2TSA:ABUnM3[A>1;QnAAZHeio-9sq9\UJ6Gj =W^(rnNgok]mS>Fl3Nb##)6#&DVWKP=+U3C<YC3@p <Kt:N@q@KJhWGdM,acAF0<,nGNAY1jm=XGaDBMcB$RM9E5'd5Z&;KKADHAW*#a.MQ>WfV ;?<?<+cZSpd-+3V6o"!j]p53_b3KQUP0G;72`'5_ipWF59>/k\S*EjnOe,Ep=WhR9ABBiWS-%?F.6NQq>n#6k<*H`8U^B88+:-<(^=T,5qAp.OW%i5ncXA'[#2@72_tArB3s?'6=^faQ[ak/XQ*bqmJQ`C6SLM'E8i^Cl`bp!c^f,_5=t)o;\G*0(U/"m:)1qC+JUdt02caN)oS(WtK$=pB/A%qC6:Y`Y4E[UK5KTG47mePiqFRacGX9,ps\M1sK%@r@S,9fV((ond[)ZL8@.PR_o+2U"J[IADF 3!5sF9>UJIpQn830RX2VfpQ@Nomt_h]R0#pa?lXDjhQ/ZqWjnC2T-5bNF 0E'L#-.t+bNE!:U_W/4Vr?Up<\Kj&/K.p@Zh%PAtdXJNA@F Yp4D55m\p]-[/G2PUo5>haQq/^^Yhl*Tn?Fad=jp,=Xrd_eN&0?8G`n%8X_Eq98n8O$hY=\M,[@n$b32JEBA(9=-AcX'H3BX3\Xs0U'9m\E<a" N>Vs[(4)&$9AkXc:(]HX.dL"Kq_mb^2O"nJ_A/EbFNXT9"pqsZ!FCDZ5sg%jm2fIf2A:_A23WTjS^?P5ei0iq)a/#:jV8C7-r;SP>M\c_coqI`W3ripm6No[M0W+jtcAZsPS+)BdFVh>#lZ7De 'ora7XVAS@c<ZCB2gnd$%''3h05S/#%$'9V_Jm/Y46X^e:boLHs+2kIeF_(s#Q'<DcSm+_reds>AC?CCs35JjCXb9'!AJ-D#2U;MO](q] ?jhTskl#V9O-gZL6!ad&b95Qs-UG5hNWd%a%C5B;Sq;;"A'P^0mJ]F`SfkP2aQ_-@BpC@TBV#DdfO7asSY<qk)1\FHJaZ%A##mkbL(CR AC.0Q!QcHL]E<c\'XY4.94r_YQg`TXt%\[sR+GAAgHF69[2<lW08PrW=g=[b>'!De! ]IT$lSo-c;qS"Vle^I:k(Oc+Y4DD jQrFXATEUlm-3&3Za]Fg<05T&^!YLcL%<))1A&>1N.YT/D+):#!go-,+31P"MC;k0Y'p.<;CoJGo+a@4("!pX=?Y"$0E1Y"%UAZo2_]&KiNjH@*PKmTY@7I$_a)$1cP;OVU>I/$tG3RJ02Hq`X^c\_E<!_i2Agjqr\9?K.O$Jj!_W8A+cgJ$Ln2rB)8J%(Bs@A@iQksIQD<GH,tJ/=ekf]!mOtoW. >MCX8Z4#q,'HF/B&KiY"IQ&p+$@:i )1)3/D"*m=2MHX\CX;mQ+]((C]`%$A*c.L+3<kJE.,V&l<9hT#c,8ArOqM"&6GG3o%?PoJFSA, XdL >7:A!@A\66Fih9VRW5dQD?1'"t;fq3.lrYB@R>7Mc>mpp>g_DZ$Y P@VE)Kr.WAjScRpf:d+af_S39#79BfE00ct?DraP:=\l3hNQ9H9>3_Aq!lD^-ta3GZ\W;Aa7l&s`q1?"F\JOpAR&XW!QR\(AB[ X(t34Rf;1X6_%d4-20)=!4!TO8I.&#nl/#.P\CAYeHJr'c$b5EJio^a:e%m4tqZ$3H?%5r)E$$5q98rtU2-QbqXsLmFA`q7AjqOIK&X19N#beR,]q1>^?(Y*8rMhthFT1qsjsTCGFJ6BPpJCVZlWC>hpKt ljt#+1DDZGV@eci,19LnK]j1sA!g>f9G>&rDQVA7m#Y8a6;1q8f:3Gk(VAc8gKXh"f.YXb0(H4mc%#?sCOh#jX!/Qa^c]5@*NsC0.;WIMJ2l W/h2FWr'Vq),Jqd:Zi$:!eDaC'k;qG$1>?Fiq_hSJd."BEJFU!QIQ4TMd%A"5rD-*WAmR_BF;866s-s&Ns'D)fQKWrp%9Vq27(fZrjKA;3"NWDl_]WD+_Ji?lY"D%LRZD*7m+:(0UqS`3WA:;AG=rKUii]qJH[$+Cm2c;?te5#YeIjm@V@(E$U0XQ^-Tq/*V*@hniBiK$M&"3T1]hV3""q@-^7d+D! Ai5D;=k_t]Coa&&4UesRq(3!S5XQB"j`0B`VIhBt&O9q+YUUn1f'1GdoKk"H$&[A:bst\+V%FX1,,]m>k%b!ZY!]mk6Aq0aKQfmbA?`-"@&_si2ig^KnJA2i4)5RR.m[1C?IlAj6X cQl5)OGp`SE>4&=%)ofQ;O9.0r=.pcm)HY*AMC86%"g`2_Ac2n\?AbA^p<c8MX*#*d[SL5N9XSpP]O)JFk,1@P[d3EV44.@RF*^Z;8c3KFKg`iYA-G_K^a*PcbN`GT4O8"n46?A51lACJRdmbsNY4Pae1tV5+3L^ZH!,*4<9Dre!AhUb)T:f/aT_'hI9!S7ZE(->]!,HKj>g5scI[8cL<f/$?!+5iQVL'_^D6WMXg6fE\ImXTjY2pN.aH-Q0A=/SNO'$F6%#B/;AgcWY%cP?14a`l=2BoFZk<`2<q'+$Pq=OfF?s'e'<*@C$g7rm/0PjrW4<e6N;..#W\X*@s>R# 9snT;^9-*N3BG"rq q#R;K<`"eb+`<"ie:@sA:89MVQ8N4>2 9\UKt':KMRV7!>j*Hs++aWcJOOSg5'QcFV%E7"_I`k^G:Rj"rH.42PQ1fF00L`f#pJsroLXFr._M2]-J] ]gPaAi#BA7M8iB1e5P-FSl4j!GTk'*U3PnPZ)lQrQ\Z:EUS:9i3G87PB. GMM?=jr]=D4BWeWWtd.Zp$1AbeSIAr-+-GJDZr)g: k4EOKl8g?EMYqAmK0U&N7ogmHC!A,]kGG<>!qThP`+3n7Htdn9$#*WKPDe"Z@7?MH$6AiiS[RMsq+$2f-3:U7N"X"(<OHg':MM <BWW%-pZA6 pn^8?Ao?Z`OO`/XM/f1OJ#VRP0Ke[>1I?\="i]1(-JmY%Z/4%)^AMdk/n%=`%Nom@Nd13#(YD`(k0FJrFiI:a.F4#N]U2WcD@rkT!G:^k3t4DC'Rm8C]L`ND$q]WYe[5$m[4H(%CBe7.;,t+ArTW!=lTKmjn!i=_4#BdX(ds1#1Gok3GC;DcO5WF:7@BT7[Cqgo> B04p'1LQYEYR50PSsAE@1hi(*fjocJ@L),e>[3AC:_ )0G))l6p?05M\n178XlA#h^lpG)>\]DS^_D&mULnqgJJ:2^$AVa_lIFh^dkAPo[gt?C'B+H>,1`_gboi-M* 5 30GeG$5B*s:l:O(ZBeUt!.o#'^86\%Vjdb!0tQj5Y,IJ"(qUD(Apj-s3[2I]fM41Wj/#c@?HrT+J=/WlpU\>GUj]so=jIqEV5BA13AD"d#8hl[#^2siAb'[&!F_(fRH&%h@NAm3,>XE4&O4>f6IP\6%nTrb De@EYF,/Wbs<dB-r=](81:nZT6%EFam7fP pQ<\U]-neKhi2HQntoU_IHXWbAZD0EI%&`i4Yg,C'd67Oke%iooo[b1,Li30efA6r6sR9GM*r#06@81lGe(&+ R]@Mes05A?]SL2W9o_QDO,.nBjHri+(CC?ILngU?%t"/RdCUZ2<1RroLqSKk4E)+&1IXeCTl]H%mhW#EI5)c+Wc.GHI]cHh8Kkt5!mUpV9$to'0&m95/c>3%@p@E$YHQE&Y`Y_D)g2@'/$4]p/Q#N)$XnatM:<:HrPg6&F7doN,Nen+bHtE4lJN&QT9fl^<G5&h47X';`9=/<)(\s,-p,3tjf(=37aR<n#R+!*(e>P>W3j&Y&Q!kra_M9[192YW>R`!U^!AS^62KE;=[AVrPK:i^_9] A)mU%SMngF]GZ D-Y+5S@HbHp'X^@*/V@QcU*>iA1dgK e<""`R^YY^):rZ!#9#=ApYQo.EkJ4.*EXcjqmS*:kQD6gYdi$.HBnsCni^5rq+SY\0hC=:t:UH,Ns9+V&k,Wt$DpSF!3HfAM^fI+-A*"9!=G^+hL9R@4XRG3S21VGfZ5a  c!(:r+c7iel3<l.?HpmOQnKSC*]5j4H2g$%qk>(ZAIbQR>L1BsVnn3L :/Blg))[-&h`&IR6YGFCXBKV&G0)@AGTW7QY'$XC0/U<(W&*<nT9P_1/bWVDS)q@^?p\T&rQ:.WW-2VB'ms2(0L(dYMXM7N*nt?^EXqdZi;Wne9_t2`&Un&_'N)%n]\`Y6?PM^]GjL.^+1q&?+Dcq>1R'&Ynk*A8Gnl]3j20ReM1';6T_BK*9h@bB k83;"nq%n]FqqBQp'?QD4>6oSb[4dm.:+@YRTFMABYW3eI.@<D@,'o##hVAP?B*kMl@cY+AshCHMM4UClWn#O4tpgtU1a*"<OgO\Ora^o2oU`0k38E\V,Rf 8b&lg,TA%>5 cJ_Zt8E9640;C9AkBabe.0nZ%VYBYF8;kl`9^^`aF7Hg''q#]bcXKV#_@pj:)Pla@+ +!6A*no]^?$V8($RlJc]jXWj6]=9M61r*f;btbBT*(N5Fl<[ON+'4#X'hsGeGWpML5&6XAIGWjsRs]B]8'IU#-m$7i-RQ2HA)Mq<dd>NU?/b_KnsYSD7=8>[d.)*SQs^K/"+n1Qe2B`R/+oK/3Yb@C.1O,>kG9d%=D8A2'aG6Ln-P7nrtoBE_;t$aA#OSj/#dJc=[X9D#^-#i1:\rjR3A*5aZC"2"bQ$otgkEkES\MoU%*H'/i;T:`f(n8:\;"NGRgBQA<.Z@,7a3R=;gZA9MAV6!KOH:=tKWJn)fdoSC=ttJ*N,B5E'_L1?Wdl-M]bGpf@J6'[gRU,Y#edf=T[($O:22\<QSt[,8TOA6Hk4qB>4Mo(Zn1E85:6lg4+"%K3`PtR9*R$tlCJ7FJ,bcbd^T_N/nA!7*QO\0t7JPSrlf:-Tn=q`S7WXG1;7d!N7a5<_6Ul`M_eTE0eZbfb0%E2])7@P3hIDkf\S>#i$Z*[p5>s@ZV9\q=n_O/Y)G;*^S>?/NXM"t$M@t'am*M92] \VEX]^G_XTfDKL4\tA\Ls)J;%:1E%A@8d>&[Am,:Ke\'8kZ$=(+K[s<STch@rHkqO7h.PE[s!nf_Yp% s$7RK4Jan:"Gr3f?nSAD%^LXS7]RIO;VA%o8KAftsO4HE(/nZcZ69k#n`F49Oap(K/C=tP<9o%./Y=S?ENV9N"?Uk50BNnNUA_=]FHA4&-n34/o,B]%G6s$h[0X$ f-/1N[@=P.#PiQ5hb"* T(\LZ\R*+9.3OEi,E$M7_s.#h$UjV)Z[?PPHT4Cs^>)R]rj2X'!ID"#VO.>Zh?L"0o-=pY^!=BRMA5g#ZK8-/:ab3:mo/F6tL-jb-N)At;%VA["R. _o/Wb#;5C_(NbF1F"G<a4IINL+I3p>4N(oh`^$18bA8aL`8[>38W#c6t/dcEkQUoZ0+S;LS;G]a\>"QKCsKT4pG6dTVg@kPTZ6F$&*/p[c+n,XeFd6YiaE 'a'n;C@t".Bt*Z?Tb8A`2sErW0CXD:rQ&B?]Ys)+`St-2ikC#D<I!;ah@a=t7E H/^pR!=D4%K&l;nZ_+`g)s%?K;C+^NTL6@F(5Kb)=B(>D5$!LORR*jHj^^eWiQV9GF*EYnr.:RT<+^oe^,DR XQbpF\JalQlP2%"%Q9U(?XX&ER:`cSLl9-%78O7Ol3BJ")P![X?J?))$2T+395?;<kl$ponP-U+QoLVARdA$?eQ7T)l 5(-A$p(V7BE\3Od/+&U0<N8[3FZmH)E]:N3L]Yh/h]maKhD@7=-C!f1%rY"An@X"V(='5_:7M/\sD,+saTiZ?Z's`+Xf[MkM'eQ\A^,RJOh??:.g+m3lj1*Cj'U3\@X=o,mN)]8m_Bj&75@&ZeRtR?DoV2;Vh($W9'_Gg1h_Q)(/=<p_2rJ&C)^g,oq(20sh.-`i_MZm-Wt` p0$P*'9Ti%l#oNnI\YrtB$?/3.ke#Fht-$m;`phQcSNMAAj+h\fYbMF]*AWAMl.A?),A`,+nk'6^]+P9,d>[A5/<4kqm<(tKhPGf*D.O2$-J4t2p%5OFiQ8Y^1#b,5gNYWsb"e/t[`JqnF(*D+5aD2!_"bGEcQe1V+>BARj*J:t*MR3.\WiSNg8BP53,knAVNm3:pD)pAh.JmTnC$A1pZ_$9VOs^[n26PgFb5g2 WWr1^#5TJ)F,2=R%KSp2J!)?Q_b$s9/?lNTAr4kb:/Zq'/%o%K>Kt1$=L5Nroj9_[3;.;+ld=j/a0kq.LE!Nfn?[E<UZ?3f)(1DA/>N!1@:GsOElhN0=qVR=ik0I<"r/m^ZVk]3.Ee_3;aACWCV<;0thiq]hCj\^3/eC*<Bj:\.*EAXs^C&V26/WA"b(`m!Q!^fJb`Y[sT_;EY6VJjN0jFR^?KGXWYE&.PNiAo(l4Yj3Cp6QbAl &S1frIP3lPta1'^bM$t_j$H(c3br&C)>8Y^$RKh7^lBMQR4<C^MQ5RdO`djRIcbnccbY7a4IU@2%3!M9[6CtHIQV?&c2fZNkCnF0=dlqQ.l8i(c0p.1J?q>0A/7P8Ap>4P).gUKPe2XD,f7pAV:<goLf[JFeEED/H,<Zs%VRV,O..7=<SS[/1gZE*3 U=t"1KNt'%W7]n12+C_Eb*2"]'oOiU3q::&AUbZA[B#>aL^d,Un`am8iJ"+o;p7<(VIN"&q#g's^eQ1lj<G?q597IW]g4! F=<7I5A[,H@5GlLT"4dslHt[^Bl=0fT\3sY Bs",^K.Tdcj1H#Mfb\@cb33pkjI<'\dAk(se592g-ja-6Qj^(PgBUL"iSGhm/-rs1eaG2meF%8i7K0besQKi_?L@54>k&LhTHR!F<92ZQDZg0"GKS&9^eE]$7-fad<V.48j)\=Vn[pl66',-7VMi2!_ "!3ED)fsrd_KD-RebP^>7aLC=2]h.4IT'`XR(_s&#NEptr_h5^>5[2Ff@O[gNZ?\Pe5k/AO?MlfOmHL&jk`ei$r9hArAXg."tEV1+1F^e6WeTS`MjTM4;/SpUt,0&O+V'41Mr%%<nX+!H!Dr=<GB12^olgI4BdbG-lj5#+;qV!TA(7dnFO@?#fd',Dmc9g_U: UcKOXfsJfU[_Mq I\W&,1j'GSsJADDAeSAAn&-ct&YE_Fh'GFl4tl#SE)#qf"#\dW<o/6s`XWfl;0*0j[?T7'rdhGh>ZI^t#gk]<]Q[Epr$VD^00[rP5lA'OdjbU;R1FO&*#)e _"N/8KCEOi)QAWFl<fl EAiOc7]:JKSgSACs5aZY48\Qn)BIT#^^W4E:ls#%X4bT<_`<Zt+p]%aTf?(k,MdoMaKH!rV0"/e5=_]rAMhC)fL&VkPNc8Me`;Mh@,(;.Gc(?P9$LqWrWq0@n8IY/$A]mVG#;\)Aq';\?8-@W*i-D_U)*<Pr!IWri;2J%k&UAL"k1qQ< F!NbLt?PE4/.k@A'$qV7nrh:;+G3b6T>;47_k<[$PA0RR c)HAB52JL<.+TLp,!2sJ;,UGVk&L#ii!4V\mibWR3Kr6hp5;e0<h^W36s,-UmJ)#a5pGJ&*dSNkNW]h(7E]2btEqDX,Qc@9Q*9,d)c#kIZO!X-hH[>>]d.X<d2C'GkH'$?7X+K7)SHl=^],S?dbX@PA)SFVoI'jG8sM@O^\@c;F6\3Bht)lm&s#A]9'6$tjXNNWM-9a,2.p)O4Q65;2ddWA]?V'D\"4qgnmA9-4\-fQOI8g -<.]QL7kiAtUf GBU2K)jG!e3Pb3G-m1hFt%![VD:K]g:WU#qAWAD93O/6H[&8i'gt/sRIrq6%aCBTc!:WK;bm>HrKMg2*#IWT@6#f$JR>W6U#BnqeJC.iTePg9A?T<B(&T]916Aotfn/B$XBV3_D:a-KMhL#(BGq4&r^ZDnh2EtNcH>E>cfs1Ip_N#L$s`X9aJN\Y^,2CTllW%8#r@MdsB^@7&MEfCMpFW0Ze#2!:S0Xm< +S]6lCPk9L%AFM$<.l:V5hF+eXAt]i>%)C8:VA&QY]q]Wg[;@G21#mO*5"3ACRjDO24Iq6pf8e,L_JWU )8_'+&O[Li'IJ#<&(IUnHnhP=7q)kf`2lX4m;fFq0!>)p9k+]a2 c*:'^,>BWlUD^W-63A_O&[X]Zkp\da)r !WRk#[j2H)N^4Ss>k3lVpgiLM&iSe\L4Tt"oO>s=Np)UqfAY/>LPQ[r0L=?5lMWFS03H,XM2J, VN,%O5&2@msR\m<(%sDJDPAT,`BL%sk@a9.sq7*]A;n5iHY^?&ail;J?0**s.^'C].*sAKEn4[D\Qg.gSg>jXFfX!%6AhFBt@mM<^8jOr#Ni6#U:icok"'d!r>k(=E*5sQkX?^<^-4R)X:!a%RCGU83k"P*:eNCCBfLjtA],k&+;oKc D+`slC\c.m8?LVsKJ*2Jc@%FC9Ql1*o%>!2hFqnKD0cUh/Ap(_4a!AYA(gf6?;L0"H0R#AM(Lr6%q@A#qfDo8CaZppKbk:H,UJepP'L" V2pLY@eNG`;m!OQIE!^?RABSLA_pb.FbkNoA%m_'F+;^&AfA@m]<*J?*!$NPKr-=Ze%kRU\gkn^gDsB0_?mk`QFsHcpJt3n;A`.0.5)5Y8NttXQ;]LW G7 b_3,XhdYA0Ak1Go[1j0K!-rC7X+1o;;U<UF+c]GFkWifp/XqsRTQI5PeL_1`b2]?(gs4b2PIBj8H$Yf?mq1fBcB3W8^#d90a2jCkkW&].9Dpt*)&3`=L_`i0UsGc8JEBe[HKqWJ?da9A)*hm%Mg!ajr[tm_V\/PK"A)4?>*9iOWE,C*tkLVZ^U-olaeOWM?hkQ2mFLlOfV5Zqt16o&,C;<p\4sI.a3-1n%"O%;]?@&&Kkb'do] r,Who/hQU<`Jt ^N0?d)pHl2h+,,m3o7\4k/3]4f78Y(=N"JRm0V1U``6Y&rBfgfp?'FG!bIFZ"_GefA#O.b>(LlZbfmbX N0q/c[@WlhTsEsWG&2CO=@@EFWdL0sAsk99o## L;[f4-*IE>7;%X+:A@F(=-U6o>nQ<#./LV7FPb1q!6aROsa[[\@I_F:/<2(7^TAL&8@Zo0ZcR.YO<+'cniABAE'>O:"iq<j/-P-VV8+7JALk;f<Qj:r9cA<"8IC?X"hrkV75ca$;EaA<_?`LFUiT(U2U)'iFY.2F2<'^;rcU'^[1MjdIs8pKcW\fo!<=8rj538'K.6"UAsU)IZHEs/G19N&;U!(ir@,0BK`O3@7\h !X%])j;R!h_A(NhhZQ4g%<"L=8A?6A'_Z!I= WDY4;>>^=5NB-'3375YdeL hRCPe7UQXLT*bcA[13a"@.TWjViKS^rVT.L.`-o iS$!Mq?+K,Q1Y %%94)m#8g*i QMdVkn5X*1=`$&8jNs?/isc=b,*SAmYT/^MWA]"@SM(*Je7G;7QtkMfCo416#Pl:.*NkfSc]T5J;)!ff0m&q]`7,nC`<t,>bMbpUn\)o7=LTfP-c%mTPhm:?*![U*"5((V?8,FC"$3JL]7n`.>D$AjCl?Y/E%%C,+<A[/;.9XpXCUb5G=n@Y(BjcjpQXUO^XYMqKb\#W-C$I]#n>s7\Ee&Ch]^ m-tmoYADoQX6Vj>df&lXVCc?cSBbdCXEVaI-2;72PVG b$RB*iBT]\O!)tOH&fTbp&LMY bAB$3,m$SO;@Y>&>"SqE=%gLQKq@9A<%'_f6r-9V]`eC,9`!"6cEn:@e*W%tI Oh?Y[j9Hj#"t@.#K5tC<rGR=lk;8)rk]BpIS(8MCRU1c<=oq%&ra-'kPVc(PdFK5,ES"@(_I*)8\"M7q^EeWflUAVCDN\M'MJsTZi+kXPX)43T$.aW)-s<:#o8*Hq0MD1=8B23Sj:>J]<f"bYDo]":.r;'L/[WUbel>qVVVN #A0/A#CMrgb2'slW>-"Wr4Dog[$-j]eo"P=Q-cEVCE.4_/'QR8rT+8=8T2h,A@'N/\NL8[.2K0T\;OS A?(AS&o2:S_TK+b`G:bm:e$N)[G=# ,@;\KF:R$&`D];41=E9aA)c b[Ks+K9l,3r>lZ%LBs`(AciUpF;A*$"^Nt-i,F6d22+Qmrk9@s 37'LPk3-dHad;Efkq$nJnleeLA$YIASX_A2)bq15M'1l@W@=7Y&`bqfWO,.6p/pj2^8/=C._bId'"Td*Slpmo9JY\@Fj7L"(YN!jAON2CAtF`:rDtL9b3JQ7\ZmWZ1LnD9bi,liT0(e HY);_0Re%r1=X(>fl\9`[Pb_.O)3TeSDF`+h@nQfA#3SZa@__C#65Gc]$6J2R(sB<T(r=cUZVSQ'1&W_r;I:-G8Ero67>FAj)A+VL/"LGY5Par[F^bo!m=sbTY-&aa^;LeRCD=*JNrF0H[p0U1*U@TL=2]O.?iK6,$T<`@/;Gme^Wd$\<S:W0S=//-Q@mim^i:JJ[7X$ '6Q5=jnGC/53rr[[mTgo<^:;Q)%PTYcli lDS_&F&"GRFhV?B<:&/\T5>nN_/b8Ra]pZFeq#g,t?D-V]M5$II3(^b.17rU:(%_I!:.j3M1oooLBP2SW#(V 3I$9CVNU4mdl1JpP&oq>,`mJJiIf5e@\H8i@IcP@8hk3]O,\;43*k4?'q=12)$A6>0DB:7B_el#XZ!U.5C ;/?r:qM]QbO3I&gA%#.RncpfG@UGTU#M) /SH+"r;Z(mJ+M?i]*CcU#dkn"J<4510Z.$YcW=Gs#0N:7"?0X9(C$7,ZITf$-1<(YV)i/8it@m;42Hs1b1JZnMC[t!4YHU] @*!q^3l;bhQ<F&4^(,TTgn]IP:Oo9.=?>sQGolboCh0L3oO\a%,eHENt Qc&R24M$j0Q;C?b^=I5=A.ZA>_j^GY]Ds/D"E(jRf@p%dkE13&O8AY;^Or,!?IYUH%F5k<BGsdi8df)7&IeBj@Dl+:`fgYdo(4A_A184r9q8M3&$Pf/S6RiOK<ThnJ<KN[CT@MLDJsJHN`D(+P1lMaDc=igP)Q"^dESaAE9I9>_oCpY#A"FUWrD*R9Gb8iJ<p0:p27%XHpYNSL7b#?KfJW5 $STpEPQ_9N!_P!3GT#l!rlA2o$D/U V;H3sQQAb&0c4\A902=W8ZYX*_a3hqL-5PiKYPp-)R^`2I!'\]_jgBKF!PeprB]:,EAd>Oi'HAKZ/2:RYhToX!qIIp+`N\Y2K@ e,_3i;9f.LMmEO.Pg\6b$tjF5[sQkd,3XHK&HqVJJZ'tUcnK\gikacet-hQlH&pPAD5TM[ehBh;)LL1[#-O.e@-*DWq?7aeI2;LG%UF;_QL*osn[`TKs^EqZ8oaE'#:p23P7h>HBHd`#R;9&tS(& qKeFHh<$4'tG!TdG[L*-';>+RKU J$aNR2O=E3I'B__9B_\BFolMh"6O\4rPq$f[mXa5'3Tj4I!5t!D1L4dF'rbiUdtFj!(*fhh`L27$# PA-YsF*:&o+7%AoK!"T^<,Jrp"WIr8BAB\mEBeg,&GUT"$k!0(Etj:T=J8W%G"1YGqYD9]P&nkg2-887t@d^XhEJGPa3RAeiAi9,Pqobp+Xi<0)h)BgrOI&YW=R(J^;;_HiX_f]aY_=8@ZQ4-&AKh<q!1-tspf-U6At:!pAGO"_$b_c3coN49QQ0+ZA.lcM\PqW!$GY-/XB9a$S<P&FXjFFdOY!d)10".lDKA1[\,5rP)h!Am?f^9iTiKBZmA`2kEUVrPFdK@]DspH-X7?0P#%RrH6O+E57JR:-t7iN!A?'7'L7ZelsZ=QA^WGa&&kC/;D9U,"9fGW1kf5@,FW:[b*QiZotGbY5(92X-mp7<+;ES&(::;M]$q4D4q=gWH"`80(f;MVO%hi/p%kl1< MM)BmWa0-BKtVt2\&Ec'KNqd5BnhZQ1Va,5Kn3Wneb79Hl^fd5/4)k?&7I\ods`$"A6d]cK-(,mo/<)5Ljii&jOH,AUKI0GHfkTp"Y`.?th.`eCEA<,@RLmsD1!I!oApIl?+W,G87jU\\qN:;Q,T"e&An;mI@Gt!4hMEEF&N1rIQh.<MKb!3r\CtGT,4J)E`P&gp8;#abj,gCc$H@2]j3=H5W!/li:UZ/7B\IeIH^9a^J*9tM@rgce,HO7%>*RjZB`rL"'rMnZf';Lr+M/E='=$VCmB)O@o6T/I\!Ut]RVCEM>o99`ZHXp]81FIsqa_9ab:+Z5-MK2ob:"c16C [p.IfG",\GPUBAA1JROjW.c,UpK,Dn`'@co6AQfr*G?TN6kgCX^dI]>Tb/H!IUWA`nU@Neb05D0$HQS_I`'Y4!dTl-&:p,+CX^MMj\W@1TC05 icp/=Ce*YVqS+ZHb)Xr*U[2(oN.=CVI[H"!;diAT_Fi!M)L&G1p_lR0NFYj.aB@@_X`sB YX*J9.9'r-`6C%ijb `F]Z6nAL1X/nUas1A%b<C]75JGGe,q",DDncIIX/AM2=,rC6YCZ>M@Ah3Bj]d@ ;"8DcC%orqsAT7)h9\QA=i4A+Ka)6sG,SY6X6qh)h$&*kLL^#&;ei!;()!dVO;>19A\iZajHd;Ihk)I?$orOYU:scq3Tr@<+&$E53g#k@;5WISMGOicsOOq_6n1D_Op4F:7l#&EhbpQO(r6r8aJlJL' d**Nrr/\bfhpI`Q_>q/-3M)!8b<seDU $<4 []6";L]3Og $D5SeY[d/Fam*c1e9g]qA:Yd<>+ZZSF[Y?: d6ri::(sr%,.L,8L;9O'A5cq`KI!$9b0O7A"\:Nc@3LYA"eK3UgBJ/$\j%OI_/D9<;2m.DUr`q4#eleY"&UL!AI:=8'g__)"r#:VN3D1#<CbE+^0Zb%8LF>Y82mEA+Ubb-\g,AaIN&>?POXk#(94`fIfA%eQG!(A(;Z2`mFGs]c\qmY:nXY6#k5"<7bO]>5A?(m?^3PQ^C<>Yd;WUFRs8@D\C9l+ GS9RC/+R2VWe!Q3*X5=_sj!3PDC=A-?"SM_`CG#^.j-E'R:7:MVMW(TL>lO?l=M*4rgI>:052*0b%m[dOD"f AI.3n.MjLTn8K:aDTH@mTqP'qQ.HaB=?6L?b!ma5:"A=3tY5C)VRF'GIdIEa3JCfKWnQQB&^e7BUcZ>Q7?WIP.2dP)Q#T^gd0&AS-<EX<:^Q?j0(W2#REkN2PO^hGcsBpR4jkrnC0,r6(XTZ b>0L<&@4\LB6pcW "VsjB@0LPLMr 7qm]ga1--#P3;Wf4FVM;l]I)[Vk_^:IiW+KG>(,SZr8_%Apa0>SUBh<AOT:YAio-E:q1Qr70gp%.i<*i=k poXAGj8qNT>AW>VY^3\JA\$$3;<KZ$4.saZo8V[QCi=rn.`hE?$?5]lO$h+`0]tBa,dW40!'s-!U+<A1"VH`UJ'_7A=$9*$QNo3.im_qr[5e[W3A62TIJZF%6>RfIph*9P\MbY9llP22N1%o^Y3oU2D#k)*W DCN&1$Y"@TSp+`4c7 ]t0mh(IG"/AXZ,D?i?_-%l.I#g(^#Z3%g'RmB4Us-T`G]:Xo'rE5ZDGl5@</<6WW$M%$DTW>,]3crC8_:^HQF6h>'d&!%3['k9O&gFO)r7SEe=_]=6Oe;DaK:XZ%VNm$o%'>;M>q5qH8@DFFXFU^t@O8DQP-J*'"Fj+N4Ur5[?7h6).#+C[:J6I39>Di2CF+] Po"7*"Ih";gA/nhPJ>EP_9"?e*m3*UUAT##9i7eS%T[/m$%Ab, S^!^X+DI!tf?cN9@!t*L[2NWOZPRfc=Ao E$AH=\("8?oe15>dT!B]T<ro+:pAF1`'aH;XMr*$U;)p%9P 'Hkj?04I]Sl;j&$(,S3IC8,\($%XND-+i IPY]DU7<HN>s`@PBo?d-bfZ")mOi#$b2J.A3A]Pk<c;`eYeeN7\kR4>RtQRo Fb6G4YJcKB2-i^Nn^t7)dTOdC:/WlkR1IoW)GF^*:=YFA>tV94KRfkYnFApkbb^qLqkc`7 K5m4"$[\RIIYJ-Ys&Qd;P&RmL;fs#2=V1LQtJ[K10n+DYg&ig <Z;* d48"QsJ>eYsEbt4EjPP@FsaUjs+^[<i4)Kh$2fe(`<n>b%GqZr_+lgQ>idEMS+7'V)&=nn_m1%=G6ZLP8XTP'rNo>%[Qb4/4seF[&XSB\EVi%!S^SrtiD:ARnB?3As,%L@_OFhm"@:'/=N*A*OMESS2@M1VpaXTd_ISUSkUO@ERQE`SaJm%V0BX$#WAd9Q>_#-]SV'[:N_,_W4/BeP(<,PA+A#lQc+RF![]Xs#_A1Y3Dl_A3,kXp@OXT(i'M>m: +#b9+IMkJ?!94+p`q0Gb<M341AoM\MbiCE6La`EcY'[j'= =k2>rae#sVoTXtlbmSFt(^3P,?jpp#&H/f#9T8m]UJKYT"N?,36RDGgl(5i#j]% # XE>6l$5^?0&kKs&9h#P-G?$q1NMUXc"Y[Re</N>1,K%2RI3D q8?7J6lbG(>jT??)E/F8%MmcChF3Ie1M*d21#"p0K<UMZ/)o[8A5qd=Xeb`3feWnq@2P0a3JZjdIIJ[;D7DLYK-a1KF&Nkas?7JI_GYrK#aiX`P/sm%a6@#+2 BpJ:&D4D)GI.75Hb^MA #"HRlLD7em,F[bXDP.qXNo,`.+%YMNl PKmbRE=Cs5btD(M^QOP#Ka+r<t]Sb%Pd2So',(=Kh@\_(s@T4H'7(X2Ss$N9g7(CjD)nd4f8)^RS#:J7L=ONW'=1(EDk#t\-*fYQL#S$BE*M%g:XWfFKmX9.c=d2p7A/m:g/9]\SqUb:p`p(TX(Uqq22R`1AQA$571UcW7EJ2G&,%2Bm;K=bb<Jd`3YHV-A3h^dK&F$D[[.'W>n0:Hp?8/XRF! $T%-<0f8c&+DV[ZCV#+;a\c'<+^"e`A8+9!<03(<FU"Ih]^.m8SAAI4gP#Cd4!onbCf]W)678X$(TY"C0=VNoZn_4%\4 #J-j`+:M[!LF)feC)R_1QWW4G'0`C?X9TAB%A2h@P<NhDD`%R&*ak3-(D:%-UdZtdCBE9C1ba]'A$AZI05+N>F">XTr0,hl-+pZlKA(9a\pCQt:QtMjYYman]4nI]-kD@`kO<D#+'42ij=b"N1]!?*-XAEZh0;3"n,.'E,-2RDKfs*$*pVVY=AmkCl-6)GJZ1,O@lBL W6Fm&"J>VZX3o_`Jp#@\q+hJ58LT_8El&d8%.%=o(,!f&"Kca$Q),D<F>BJ)_FNob(/BD5Jp36H;.R-.(fE(^HXHeUbJkN>X(Rb-<o!=P5l,68d'GSP.OGs3O$VL5?a)]XS.5"j!CX'=A2*O.K(3Oe^AU3Q?9Ft0Llm1Q;%"4HM; i,@h':b0Xo/icY,ZV1"W B .c2gXih(2%D(Lapp>V!k1Lth&XdW-Afg$@0'@[bcA52+=at?gA;4W#354d(Un]l`=+^_'P+$pA/4&STiO&>t5#`HJs4V%DTF@j<D]H>/.6Z&U<Kjt"Zc:n`0l^#]OBhO1]jInmJC:+nktQ$d,bK'NBbgX9`)A<ZrZ 9c_#f@*MA$DMjD;qL@(^.:$U+!EkPWp+j=jAMjAFn_+t!V!d_ Fa%Aj"6eX p28I4Qf$FkAfr=X3s3*C`Pr-^re=d%qRsqE;rn4fk[m0e4Q`+kX)&I._QTN\^pV(0:TZ&i0-d;(m,_=:kYtm$^[#g$06k(l+()tKN19A#!QTZ>>'*[da%>TkjrnN3\L.PS>_g#)Gk&fXrqGUJBo+7"oS?U5UeE<n6NGTUJJ3`1O:JKBdYL+oC _`^>'@A;Jo`;r9Tc#)Lep\scM8$--A2C(K?SZlXU0E1M00AJY+?XnhSE7WU?L l!S98_XBA3$ddc"!rtUcTDOe9i;hk1R+`k(?a@K1lmZk5:eSAo*Q&n>Xq`<`I/sg*Lg"=Q_VO0=pgqX1+C^rO-.V& :>rMD^#Mc@-!f--t:KR+ 3mC%[4&nS5!sC`E_W,]A?,5CDSA]i)k0pj`_ne@Fi9GJt6q-d]jJ-jh4PhR(KbmDgL9p:KakJZ8C"?iso4%Ar\5[!Um,i)lgXB6Xl-*U8V.Nm<%7Esb_`?*7tTMqhjqTGh0.3[%6+@dC8W+h(WlR2;27:a6_O$5k3gQ_o(bh*IE0H#E<PskG]_#m1?XG_+L10:\U#Ra7,63fKDN#k'pfYc*/[F*UE;dV j*UkX#`(jJ2@n</rWokA5L'ldIqt/[eAC80j*eV8!2,.]>).4b>9bm<%NEI?N#&GDtP6&N>cV3.C"_:O.=!23?!?3LHd5m> NRA)lO3c/d+\1A[QB`C\2U+57OpQEqSc&]@0AX!d,\l: H sm<"j5'(d"[gHX0Y"O#`$hU0mOkh01NWt90&rAen9)NA.io5lq#do>peBfp<>A1BeiI])fe!\R)]1\"OC?0Fc0k 409tn!#qQe&N@*E[FLpPR3HoY,PS,%8A9_iD@Znc! Kp*gIhA*nI"`>;Tsr;g[R`1cmt6"Fj/Pd#gLr!=8XR\:Amg \")eFXG <]JL +Jg@`MOD7a9Xe)C0oZPBE4ikP.QT;AD=3#d^t3sn1il3qM)!2>\c$\12;!jkUftXecD"IYgtr#2tR*Apj$rRT:*-nUY5]T6o*fFNMq#I :.G\ah3sq#`<QX_A()=YA$;/ 2,C43YL:Gn()AlA_5L(Ap0WpptgOlcVD6B%\Ja,4jCg?5\PsO\m?%bNtAnK&!$dR$&kS]3$S34A]Gc!qFE q o1BM_IsZWE875i"VIQES:tND# Vf<hG%TCMBWfmhtI35$A^]q49nrbnaNaomsDpZ<E@jX&so_PKS*_)UbsFT\4A\@NNkbN"_KA7Qt7LU-TEte!XE?iAL_ft_;,rT<cJ+)U<j^TL%&!Qac,@ET$i%>7mT[;2tW;U(Ps(ohs8?SStj13fULZHM2&-[9#/q V\fifI8dq+Bj:NCjEpYa\g<1ef3>cBJ\%8aklFb4V<-A3CW/+L#C(9r+XoaMar ,C:t>6r[KYT3XC#5Sr1oVW=q'/@58a@qD!/X)A<dg@Vp7"<>A_LrB?Z^V?j=WD)1%eD7=o9)Wti:`O3"]r+>KjIK/K+3+ki11&ciJ4+p>`lA#]p[int1`QTg1/K"d:CmhYG,h&@F3#>h2dZ$kYPIT#Bmq6m4f,seO5R)Xf1Fiq$Dk[kHP74lN>^mapAnWrCiSb4HsUYAYr++\**e-%UVjtfP1S7$K)Y6 0 &;OPXKY]L6Npc>SRHd`?n#A4O3[:tCR4*!;&DQ5c0`lL!])^HsDUJ #<t@+c+TaG6ScmA="V/,X%g?gTs'`acLUe.`kJ9!*$=!YSjjk2<=@ZDLlP4sEJd<T?dhb\%!B->&ZO1bXbe1$:q;/Cf:bH57oUE]H%iJ6H8^em60DEeAX6WjXhV0_MiJ]tdAaH<oh,]j+P"R^e0]sJ$AWa?XnK]hGCsYgk,ht]_7])nX2*,+?3eSeA0L^.OUq6&F^[IdF%I#ofm;/J^W#N6N,7(>o-k8\6FSN(a K(6?T($;dRT0Po5\MJOXqg^pVOI[.W<8\3Nb(s9g_-P](("A_3$Ra;b_tSYLb W3RKP!_JV9],P.q!O9>?Z0d^53"Fi+J=bf/0RFnPa]'f"iY-g\QK+ir!K?H&MK6K'Tm:[>+j7P?/>mZ[s9(/$=sU,q787+2bY U#h8<,qnUc6tt3nJ[d372 (WA&*936B1%+9m_]j8m2-Z4OOHppbR-GXQq!s?HhI:JB/4,AO1+b+CtmAAS.In[)=AkLOMbmcD ZP%sqqHrj]F*BeAaso=.5F#BQm7[`h'3l\3Y6&!S2j+pX"]Ma8M; X``jhK(5<%Xm_(DbU^I@1m6qGk0`2hXH5T4Yaa/#m`+cI4UiGc#^Sdf .">A+&!A:gW_MVb-TC/S"c^r;9bbHc6TEtWemNqNn8bbDs9=pGi7A(SoT2d&=Fmo6W!o'haZL>GG`9+DebsocV9q_T_g03?Kl-&'WqE%>sn`4>cA?_@-`p64Z.rVFfH>t:)d#Pe7B>oK&Z1]D^A"A%2`kh#>_[&o/HXjhH2LOC$fW$I1(.?r@VIH2sgDa4o4XM(1VTm4^!Ra6`AD6T;U9d@$;tNR:]4k^ 5l359gf'b"AA&9)^.r!>hA?)]]bW5F>U&Si$ss'7_3,6[`]Acck9AC8Ca\OL3bb@fdQ=VS(G=ieci2BBb_jFq)9L8>o0J)DAL4<]VG'E\a!lI1aEaG-$(3`N 2VrDrQm+!>t_O-X`Ze2 $mI9WQ2T+U;\1P;aAgAHl<i"40L_(Tn.U/97^@]3!EP9.!cG-'J57-Ri?Ms0')8A-_4WV18KJdI%.6W%nf!0I' #\A\$lKr Xsn#T.rE)1"1MW1pT2QcY.Yj 5YW_?41a`<H&MZc!9V.LW)J-8R)D:i#B:;dHF,O9#H_m"U?3D(Ml"BY$M1;FK(#k!8bk3[PBiB?Fq;4Ka]FkWHOOL*kcE\-<on1HJ'1<>^Jn.;-@TX2C.T2J\R9A*--2kjc_X&sk8r;^'$AoDON5=bbk6?1,0rpa#+R&?pGAl8f@_])G@lF#N=_ 7cLY[8JYO'k%d[XS$ LdF@lE4Sk%A_AZbP^7lZb62k3p0?XR$q74j`Pgc\Bkdt!3CODA5Et&8@!:A&Z7B4d3q2'ZH.EhAGt;rWYYo_e">WQ#417A<P=Q.$/)#Z;W.->Tk%'Ro,pS5;`5'&E'<PHZ$\62j3+>\XK>2o&B??IHl,4Uf>95a)qR5F9;Z _AS e-cWA!;?Qc,UiT?iHdY)5rQgD*:"-:* /l./Q%&^b)_`h@37IGR*P)V0Wj0<r[]AKN-d>.RIS+t _UMJW)d^S[snLfAocTL(GIB6ts4tr3%Sr6^S&P8:npYaAlVC>n*D``6F)`7-pdG+L:e_e7MnrfSJntJ GQISBRm996%%X?c<l?G1T'A@'Ih!1hp9U*[Rm,Y<@l.:'.i#`S0,nW6hKGn'\):IB#Na@$,5JA,VP5DnErnN_\>tKSm0);?L&`D0E`[;\Rc-9c\ihT/;*9\j'(V"-T@#>lgS$0]^Aj04nKC$<9/D(2K\od'XbO(J5F9PR6=BGFp#3l[p"n30&NEQUe(OkEiJ8%)BAPiK]L"6eM7Q)VO)FE\bYk;*,R %,K$,^#O2eX7#dEKk>]5(Z_p\B_Al`f1HMokqnGU)L8&AWEbl"?495+.`>IO;o0$d32g=b%W=n[>9Bn$iaB=Lr[gP3ZU6;htm_J^EpNtWp;;9cXO56Rro-'<r!L?`2D:K(/b9_eS&f$AAB0t  P bh0 %^X:fA#W=$$qOZ$W_O_(DVXBMrUPA^_iidVn"5CH%9`bmGMC+"C>13)&C?tq_CX[g'QtQ8fHeQiarjm3ha^q>L@Fd`A'Vc$i!FiSXKDh=*Z4(d6,`.+K>Kq`Np%`.4TZ*d-BAI#/q[Ns+(g(]0s:X,A08)o7ALtHHCOOL&@NqhmikX 8,>=;]!MCea7RC'0sHWnW'L,7E7'+o$A%t2Ff$$a(pZoc5_76#cs76&,b$n,XO;@M"5VRUld*"q7D+s6.kBY]VbTIQAB3PePkO9gIKTSVnZB&0m,AA^?_QRkk*\;:;UiS'6`N:;2.H85:h2ptSR`V24@ H g&F)&@T]A!Z3EdA\L$rnd &D9TN"hCrMls<r^MSD"7SKAN0D#NPe1n<<;e/%fhZHOrV"gLe$1j8Cckl=Ei0\#tpYJ?*pIXc7W,j7r-25<+K`7qh$,Q?DGdpNA7A+Ph<NfHb+jC)UIUt4GMo2rJU@BF5F4RBK>UiJ'Y9Lnad?8r^;^;t6Did,l4\5%jH[;fPN(0.ReEQfRcidVVY^lX]F:71LYqL;A`m$M*t<g]c`hKg UrJt>5(]c5d'A8%"7%!r'mtFDUj.+g&S].*+?7^DXAL[s+/;f-'#&sk&Z*"b\pcchVBdi*7k-Xf\+"-#A-AlbL,NfbcUf6">]^*PmcEOGU4SKjp,1&(]?/.rqk%Jr:UQl3H!X iHpMOr4)0ZB"-0jMqA!>21F/h@%_X$&)Ze_R?_AE$YP6o`,\6&L@tnB#Ja$n,YOF1;e2AZ6;>r9+&IWK5N<3Y'5 GrJcp)ZK>r`TXr%8QWs_m80GnWE[L%geqW7P_6XIq!-'(imGMnKg,ZOUf='#d0[b#&L<TB]iRhVkR>F%'kK@`;/edX)=pGqsjOnGG:467Vl&r4] SJ<NVU8GJ9IL[)HAh6a=H:C>%sI%/VQX#K363QfJ,*YGK(1hHf@G4'lTTTL9>>[T%'I3>rAG-:r=GnFE41HgIo=&PT[^BWH]M-!;W=)Ad!.MUs@p#[:>lmd9&^8 ,T_iP9"Tj1ItmHC;-Ib'[r,l?RRV2$V-j[#;h:HK*P8?l+h,$#=t$D,%-Xo)t2#)RZr:>T[i(jlBc)E+>iPIP+6h<Xe\\5FDAX`8@]aGHjX[Uq2k`tb<DZQl3Za%Q39bpPI'RT?O[M(/UAdRsOEqF6A=6#&_G?aeNHYItHQ"Sat2R+jpA`,RB#H9'WVA(45m#,FAR9&*7TK-I$+UgGmA+R9 PC%^hcZpYmO4f%aQe^"a)DC 3@cb"p,>k74K<ht$pKfm #fBm\3J6"!RUb<=g)Ob9@YV c7;ZZ$3=eDM&`HY,"J'7Q=`AhG6m97g(n=P2#e>WWML4<r38Jt-n@Y+)@h%'XYElcDEFe.dBU^J2/*[$3'I7>*3Lq/<L-5;cdQ22>#6[bn&_GsnLPMI-+cl>[mNdb"nl-$W']\'KaLPNA ml]t^WNOt\W3aS\7]"D5./8lS'5g+Q+<?pNBpNe&M-^g/fL<r!@@43)&t_PR52XG,qil%WH=^&Dqa/^p#Xq;aiNgpGH@@k%'VIOgF=V(fbAWg67@ i+)6W^*;nB!sfa@,"e()fk=""j0&Mp5<`KUNmF*bmWZMT"QY(^3'1L`g&c+,-1JUL#^_4:S8a1c^h#_8!K@hUa>hlZ&mm;OK;f"@%s]qkT1n$T6AHtX0FM^en7eIdsKZ<60;(:X<hIGAP4WN<APS"*D5E`]0n[/nB^)AJPf>88gEg1W@9f&[Y#j!;R_\7K">Y"35C0IXdi0O/$/jm(!l+nmON8=2T8fe&Tpf@YYJi;BrB9Oq&5gDl'j@9F4>/"5J0/Wg;ApWb::fBpp[B'MCUCsKnn#7Uhtp7BqAtS!9f(@Tc\>pYD& Cl&ZY*:5mWKZ3jDVXPZ2( U5KbP]\)#qAK-^NjVd.b#'qk>#F.Gt?ZK@rVt9FgG3mQ;iHIe&m57(h5G9i/8n`:G&HpfXLD:\g:RXg`P)X\k\V-`Bp8Q/[UP0<?RBLNT5Y(!"2fq<(-/q?>OBCCMHY$i"X61b>q.Y^-7K8ENOXTF%A92nmd>72e FEo(JD?ZNYM80>_iD+1.R^H;pK=AAqLFXnDD>'@oV5,tZ6rpcpAh_F-$A(ljbg-bS>N#i5 j%dT6I_[?_$`a-*)tAjP Pf$e]ak1";1#G/\k)%+c[/3P7\[qQ:\cAE+4M>^;lACMfV$_d hcesHeX`,E7a$_?sIZho7V&49_)a<JT* s9EW8"P_\!"QD)_0\bjUYH!80P)l6:'isq!t4c(Fi6Q>>X9]mhD""gYjf[9K1caC:Va$SPl_KLHR1jo?Snk[R-l$`'aWrA@_Iio^_b!2ZsP^Vg_6Pr`8@>BdRtLp2_G\#iSoJiI^jAj3bm[=T"<h?:%J)4^:NG3-SQ\'hOC/=s7mo=CGC[=V""af2R'=)]:f^0gf:e]"Za^>@Si FfG?o&r(?"gb>% =(jheYkR(BWC_H^Ki=1q-aZ=g*h:Ls! =EMTN[-n2 [MC9*d$s2tn'@0fr%KBG"6k784fZ Dg%OTX0PpR7Kb O5..q`kZ]CmirOg6$*Es#<5VXV,Sd1X*$*oo.&ak3N+g80Uje[H0$l+\1I]*lRi)6=h?T9FOHk+>)JT#a))fl Gd#/"!24O6G:6@PDQm/?4k_n7%[!Ei2Ap@VXmP_Agm9?=F:7WeW $NF\3C0%aI>G.ZNDQLQASrn(hjfH,.Z(kp@:<e0sjtMrSpU8WS<PS:Dng?D,8mWo._BL^XoIMU0UA"D-TYo=&pVOLi"tk2X?4r[GV6j*I"G?@4'&Xolk'<.ORsC79L^DjIj:!'C7q3'E`CQm>&jI^.?T2rLol<;8<ngkr4&1']A^?U1^<j,.oAsdf-9%3"P:%f:)koC-FMa/<se*FN+Y31l;(18;>o[P5tS#U9%6Z0UJ!dqs?(d7Lnm<'K%_)m6n^,IY;-j'OTCZS`A*j_^b-G'56kcZ'IGa^kNJF6#.=X4Y/VFIG[19(A`"`KjoTcQHfL9Q^0jkRNZK5I>'&YR#g"6.(A3nU?OIcnd+QL[&jN!<!g'`LOUoTWPO3/W^R^`#a]'En5)=N,?D;TmBitXdG0OG!JD=5;HkkOY>AVN];igf.:E*>tRBO:S[*mYjhPCJC)8Qg2$s+0AKeBd4(s1eZ3WD#_bVo'6m.)\&c-?V+f9=&A_j4L?9ZQ:-c'pW74U%r.m#DEH8f6F7H1BLDqa+eIq_cj&T]dr DLjep+oNt93$T10 GXAaL(Dsb(hT&(:FTX,OtVO\9I4#2%boc,0Gh5p(f]'bU$L1[0ZBkF#?ogBjUm2oQH]pTinSN":cD_FaEkA7_M3\*:Q)^WUREFZde1APMp`McO8pe^:-^Y&H9QR,#+n_JO&0Np+9re11>)YM]fYAIkCACaA\3-7fKIFfY7Xp[s\oM)f&*+p)pFXkpjGUalhQsV6iCn2iOBU"?19Ns7.m-_kh<-qI8OlU3m<\r;tM=]]b,/.]'%Lm*Qg1%jGlE4AfWh5TR,:nCU3ob!)XMF@^2%s<JY"@\>Jdi,@/Am2Pqgsa,nZm;*'%^XK3e9R!96eVbt'2GkO+s,%\F1Vcg^W"s`NR8eM$?&'MA?]^Kj<@nS75,jA-V,`;<J;Lj#K>=V:=p*@L>_Th2>&7TI=,.m;XE3142Z#0$m$8&(!7EC%J<>+$t#-;-"1EVJAW,`AkjOtXb:;IaS#q)lDk6J_DZaJ-P-7?]MO1XrqU4ad)G.lD%aH4m[:`_Tg`5^=Dj_nNSfQ446ffRC<t@?6VaNR/1fk*@-$qb%t#j]aW]n)EG5XJ5:K*=M.R=)eAgsTL@OQ?m$#6t@e-eJ'_J'1BRLF=gWN6;3S*CHM_iBie]VGUeUGI!.0*DR-\-[9L\mWgN8ebjtP\$S0?_cR??[`HX',O=>c=9#Y.j%AtJ4l:+H2oK`*5;d9mAIl_J5LX$S99sY#TA-=nB*G^m3/#T^"sLOb4Lg6(nGa_'L '7$i;bdDq'j@j5ME_s1BPYWDn!j2Z+MtB8*Q_V#ofZ7Z$?K\)g2Nrm@-6S@C=^tSl)`T$bm2"p3jj8a^UlME$JD1#.XNRk/$,A^g-\nj5@>&!-mhJ*XYNKHps?' jG[*S"<piI0HQ]<)ob]%A$>lgP$H"CGQT m"hkHk@U)N?"dVp!I(]]0$0;kc:)Fr2DsMXGZLWUFT.s&U@fk4$L5F*j':N&X(DQc.P]p*0ai)'5=^6r4,)%Wi]`O9,L`mPj,pJH)_S*IoN%X\[X'A+RoetZ*q4b<^;2I85HAbh%l5kgAJ8)+,bA1nL!H:8&F';1!V(6D'O;KDE&PhM8oRQViRNV4%Vb@Ab]qpP:Q^i6iqW%/'m&kBK:dd=j58ITNR+CRgI(g1.69cq'B+'+0Y[5[ti=]$0Pe9=7H>s$oZ,6,^iNoNJtg8,SkCjpYOPlSoZ3oP^KF-s1ME@)n?U*KtaWCpCSAFK?C*CGmr4;hCMd3]bLI2%]m*4'aPg%K5He #TLa@#%"_!KItS"4:;9lZEoTOSI6['*(_I^@qFf0+Kc=f3E.`(0hiK&C!jq/-@HQrk&8T*Y4\S!%q"-1H(_:-\nR?O=jKMFfFin0LqO9#prAm#%HHt[4jXK.XFEH?G;""Q0O\5>;jWL;5@c6E;`61Ne?G'T+Xp"-n7pF=#N=@@ri<G^jf oU\UK05 3*>kG,/Ze-3hB==Zs@:OY\AVX=_Y.UotK-X8H;Hk'\U3+dg?Y.W$_Cb=KUbm=j(AYc\CZ%82=JWY53$D2p_qITtj/.1M+:SGC/b'RJF67h7X=gEREg2[Z[9LRM$fRZ2RL4"r!`AYn+jVpPT kPZBHSJUq?AL!fBo`\ ToH1XVtBL0(r50hV['=UCt7Fr%@&e2K^5md;r30nn^'BL?Ra^ZWf&Bo#Xa@_FFUics@m[;tt)P!43p`hR\@O:eYqdAjmY-K<D6ZP'U,:A&jRGH/a7-LA(_J$-Bbnp%Qd#WEtd1HEq@6=lLghDO-Q%CtCfn-O:W*L1T-QK^ptb':`S)`]l7o95VbO&^CR`teXGj\:PAG!p;&3$_a<:a]JCgK5qI]TE$ipgnNJPV'VY`i93SbUqEL.t$O``NT<+rBjN V$-G5Dq%mO^AtlXC5b;UpaOPgUEgp*r"QGce/3?8q>7';gQ6Fqp/rKqYn]BsMO.-UaA$)#=-b:di#ZnVaSG:)*]AF]]q3L/0n<!AD6bAM1NNR9J"WjH4-^lnbT]Jo>GU"]2E]MLh-gp4s'QhQ0;oq3WOtNCi:ZQBf,_,"3Q;T&] XFgE'rg*;?MD3`*=N-7$#%nj9sUC%XN%,h#CA71ZAk>q%mKB0mO2n.I]h-1I#+!Y)n,R:rdpBbZ[BHlAV!q2cs+@PSb""Yskj.A81 A.rqFgiB6gJpSc.V3N\Nb&jJYI<(+%QZa7dA<m2MS/'R0\Bn!8Zp^0j-hYAjA?+iLbi)*rl,.XN57Jr0FZ7j1*o,#PD":h9O=tD'REC!#CpBP&Yk]MWm`>TpLH'H:F^3FS;YdGY25_U PeoQbr<>J<+Sh(`$P=kcM"0nV\O<OZ>#%lEcGnrN_=X<pG_^5Rfk@p2UPaY%&Q4>n?XBT13k=qq).!E4BsZ2"pqrGU\;l1<Vlb',Si]XHN</7X'l=SfIUMG.RaBe,`$fsp@Ug+H,f<)3F`ge1sNk^*Z9,cAS!T1@RJes"64iq'p;T2+J<'Z59S.-6<,[q?gAL&kC`I*?:RmKgCOsIAW+M5)C8-POb8BA"-JYggeM[-QX5I<8F#!g2H:8LDTcR4b*K_!@e#!!SXX-@='t5BG7o,QJ26>r:re`W>b'.nrZL2I_&S3A4OnVW6V\E%14qSG]FQHi?&2);SqGFPZ)q%bn!O<A' [7m*@$Y@IpG-3^p6Z3lBq'<rUH%^CUir,Nt=`ikL*it]gsAn,Cgd_SBW\s?=l=%D!%^R]Y:]_FBf2\,Y?@Ssfb6FKNrT`=]lhPXN/D] 8kTXTJ0Y`WR!jSp!M"(9TK,$s%=e9QT=?rQ0:q-; 6K0#@pIIYSfO3P_&Q7-,OaT?EjZ 6i.5lY8Zt7-0?0%D'MD4\*XE9!2<6@qsp-E,VkmX<RUUnTG>s(*`5C^(*>0`8f5.D*9CFf8,C3mMpmdn=5E!X+9Kp8'HHc  [%Llr?t-,*RX59hS4_I7gl;;k;%qG4bKscD+RO#go605<^JCZM5pBcdA,oJd'75+Olr=aUe`l>[rL!36J" Boio2$`)Kl-=Mgge*+@Cssq1n:7KE(pZ,2$dY.AK[ D9qAKrjo; ZeU:Xd+q/-KAI&1Wa<VO*Xc:Y_QU:N?sXKCd]R*FW0\0L!O"k,?C9*r:$5f=oO'g]-o>UhsJA4i)R17&_1LViJ!EDpiILQn^sp*1"$s(^+^&]57\5A9G,rI_$&qFSKBff/)WBe!+6ka[k*YaKYG<0RLEA,t:_"g.Y5A5LdTWl"/_UisPLQ:O'Y8-_`.4&gHYIj!1#PfbL7M]g:=hT@M>6<i;+gpeZj&DM:n.3gP/,>%1-t,!2*nXtltI8#X#<)T.L857G*F7JjXq3:n$5q(Ad(<V=+VjV0A<<0thM?eA0a!=8rrO'D,tpXh+GbQJJR`Y&g(:"D%`V<_q%Y+s;R3d('E*]+d`T.ALoYAJ]U5nsXl#W[F+[\n>8>7J#H=4si+]U5\AAE2PP/h*!cEG?JM0:8_5aC1o1.cI,h'd8B%6BH:E<2"]rrfbOEZ+=q4t$@iU2hF1[AmRg@>t=r);Z 3+Hbd4PcHV*i@Nk_EMD3?Ct0P?d<#A:5W_!F+MG"&kK]4j]-Xd Q31oql;?O7Qa9t@bNSe6A%)hRO12E@VNcsSf407#@?#92KeEU2=b<SY4L[?2mL5*80pj.=3P)9b5/Ri0[:`lmE_LkT5]gLKa`\V> oes)XZnaDg[eh)3PG(*G>DB/:^GsR^-)WK<&BA1K*2i8gd6L"nn2 ,8Z4O5[B22Q0p"r=T .]Mr6AeC[qY?5W)<t:nIU#1d[^3i)?U[nd[psX>d,72#0:\d]T4LM-2d1)>79[4qAVkE/Z^aSB%hq7@UL)iN!Q1=(-U+2WIBqO_RU\L$rBJ(q9oH53n9kBB5lr[D1*/fie8Q?LB\M^0dIih3Z*^J?)Z11k@,sa:p59]G""sB#2Q;LX@?Y%NBt?t8?p5FZWl_S(g[!U`oD,=A^_]3?8n'FeY(>,kqnsFAN)9nE>;YpIm+#\0lD/:mU0jDZ0+Q8BD+G'oAMtV%EC>FNl6Tn,714bS2_f`X!lJK0JikF#nqYP8DSi&d0+,%+CVq+V4pOd>Se5meYchh2-f4Uksj'3R[m43qh!'/.Z^3j]B$#CJZqjWb+XLUM&-a`^0)b>g2lFt3Ml%Z$g"D(i#H]4FbD E9G+BtjS?8[1ojO:";nU1s';M]F[8DTpiNP7iaPnr(/&1t,EW!f Ige-AD?U8EUET:3YB= &,E@JT;%7^rdl"-1A-@YLU%?sXNo?r8m,A[-H/2nS6#jEPYnV%?8s[ZEKI#;th?Gg`=[r!O=(PIh,TBX(g_14V[jS*oaF=I$]1sbg[.L^U^;gh(YWfco8K*Yo_1m:Y<9XcMf`cd>4B5_)2tP$jja#:\4!Q&4b7GY`NoO5)l:-NSdZ!odhsA<0YX:T`=U,f\%TD&t:"m`> M!V92(Df#!`WYAoBl/A#NLH"XGVXhdmrjc+[)dJ*dXK,\IGLEm)lgX-\MejV&!G=Y:j-ck52qU]f:?rkh:i7<OD;/I$4a:cAfF3^[WHA5&SP$$p',\i+GN.q@!-$`L#&XN\^sT-BrlDh:PdqS!e7`WBg9t# Y6rq:T@PT>?2;1Q-l21cr[\o+JQb/1L2)t5^A(K(9BMK8ZALi4=<=tND"j]nXAgtA(i`T%!"+;A)nFJFVQU)$Mi`Z:1]_AA[aVB@XD>;h9_6WE(l2Gt>I:nBrLcj(nb@GM"7=g=S T\M 6Sqi_o/_)cOr]O:QDt@qk`:jA4tO^+:j#MPV<1kV^;k:)$;)_?,mGqe*AY8#Ago.k. #OY5g:>?g`$qSg+7\>3k:ak*qmj; gdGUiig&5U,BYiB?$QXWArV4Kj*DB,%W\1*9ES^lg^=HB>8qa4%Pol\nnS8*!r`%4Nsqr15g[*Sp[--kpIAq&^N<OKL/OB'(rOcp.)'AAAgj*FZ^flc#UCg?%BjJ+>b91"\Tp_iT^&m='FeOUT&X*ni*rD\0P%LKUetBDK3A0^^EX08qjg+O2Wrc-@U"`M"3R291mG[$7G ;>pnbijT<Q]2lJnBc@@ra"WBtAUh"+Go 6U6,<Ns]kheJses]+A>)6F(,$e?88$sX>=(P;!]7e(ht0^MgQ``%7KjDdCmVbV1SLTeWg7PE0g[:e0Q+,4VPfHg+k78Hm^0UO:Ea$>AV\hB0c\#Y3NZiA$i(hPh>PN@s<X+e4SOTp\_o?B_7C9t=LAaM>_bKW!W_El%bNg^sA<)b*p66]'!R*Q9(K4'&YfSUHY>`J$0X.Q.m'j _%.LSMKF2 hcael/5(B=mNh&#@7pb'ZLR[41U60[S2L\Fn<pn]6AZrM]ip)-?T?A7B[dk`7?e.CI-9a$ejs%(&:bs,HV$@C?.=2)X39dM5i!`;h#@hn3AO/ pmFMOpIGA2t*@>@eRM_2X+hGYM^-7[G-^h.^4m_d=(m]5DYm[g 9)kF0/=]Dog=hA`@.A!0&'kK'<dg]69t`mqqT!q]K347>#l.2,T^qBde&[Wq2F.bl@[(-?d-,l>[][34(NmM8*/l,m/fjif[+b'7gn#A!8+H)tiOIfY-VqEbFZ_*d+(Gi3n^cWGP9"I$gpO)Tn\@m848(OA=mL'MLD+#aS^eo.mA0cDK@Ug5O`ig%s&b(t*&?T"O3RE;'g33#cEE.Q>B7Dl"&`\[DF;(RL8R9@%l'e4s$(;7Q3(Wo@Dg 1?GW>,B#9f(48d;E3nkY::p%B?E]4rUIIl/S>_Jm)dkbsPX]I1iedL@/lhDr+!)O_):A4=cK\S.U:*t%V<cAeeA1*5[q>?A3hk!"i-Cgl=KA6Xo:/DJ##(3"Nm(Dh+j>tg;ORJ.t'W;1=k.C5W1sm^T?g%slq,RG37+!"TtcTI$U3UA+B+=O8'F`?mh^5=beG\9,e^69I]@(&%moD-N!12*d]<.7Glqa!*ddYLqWLO5j#$QbW0oJP7XXJCRG,iXOM9&\=[HQ"L_I)^,EpN$[A@0&VdqbX`E[`UiCN%PZABVibPN)U&/l+h_E%h'%!t^k?NKmL9?1i^nB\OT?-_+,`*X4'OH8h%\#],cmg1Mr?M3elTGrA&po0n.XNh9Fk*>h$[(Ol cr-K S,)2mYCtm$HqMh,d(3$Q-Er+=6S\YWS'2tE(6">0]g3D.9*7t O!rO1C-g:JTq5Fa/>MoASLgTj9FA%b<sBjKpDQPe8HaMe4(J70%NpK+A&_>*%I\Cj1.jgkX?3n:,#WmA;@EUAEa&bJ$?=5(D.[*4F2ReSk8pq#oOWCW-k$1ks=<o'B"1DB_32:OW)fXK+hR-BpGCdDA5iXgdIa9s.Od6n-^L$A+J,\X4;E(h$sJYXmDel0FK_.ng-;-bKZlY)a-=iG>hN q& (PUA[]iq(elgSlXbZS"I%$iOcin8,_h<*!@@N\raX+JL 0Ln1GTjgIj)d,8ZU#A\<84AiW'@s%#FZ">/ #JaU0hgBgGB0!Qc_RR&rQQh*7 UR3Z9@k-(lDP)XnsEoXt"An-;LA:*4KrF*13/-n;Q&[\U&X'&e97jkU',IY7AoppX5nK<Z3k/^J)A_I`KVGU+X%&) ALWm11a.&;#V&7LYm?]h^"?$IblT7cE'ioPMr7APS+?iaY5:SnJdN?i$;hYAooWQT-oT>Z#s2JS_na@R6ZF2m6pE+%-"$6mt.t5\/:rcnO1B%KC@ r4sr`p0'RoCQ=lfNam6;^?dLp<SJ"di_"pHp\=@P!2`)Um;t(gRmFcqVUc[FA"*9)AbM,-!Z/7Ge@Ad8e<WP=aP#SS, BfpOcB-Sf1NH# #_,DkoqZk8?ADO34bJWaG*mdBVcPt@N@0nH&!!=3:2'["U_[cA4VYtFt6tLQs?l<ibB_:_fi[Us\%@^p<AU8iI<7<YbCKP^ghShis6,Ob;I ^>.'3SX;-pZJ?b,kdd;V 1#KB8WX4`Yd?ta$5CGBdo<U=Tjd;KI?tN-6hah Jj&_FdV'K]M$] r-]3t(++pSR&Pg$f8R<`Al6=RrCR#3K 59r07'5;";`;_c6&0HR [,RSAZ3%<1G1YdP@="),VT:Yeir44h=n!-Br-"a,C,+E@WQ$*%]/Tn`?ZX)=,3#$LNQboQA<!n6%H"YP\]mB5.;NX1pe'?`\@$^BNj<tQ/8-PpUdj_Ck"=&FO8EV0 ehmnK(Hk;n:fq2;G=_Yg(Xo8sq!*VSd5qfW!q6M7@nd$5ASh^2mm/[7rC/k4]5^>1" P+tR< ^o<i@X5f)\1:5JUnj+ CCbeK%jo%Ne2bDfVj;i(;*)7J$6g)BtY9<i!_PI@HYZ^ %[kkK[hbds?-tl%f_:_lgeXGnA5*JtQ&0t<'f>q-F=0-.J7Kj6)nmq9H>5(BWBc)jG%qIn*INl`TI/np<d'%:lf__o"[jOsqiWUa"1hK+"bA7`"/*+/6%?F$n,^rGfc?.&c\iFICkTtQeBgiR?_9g/G9:N$lKMdnpil^^p==U5)5?7BRiM0l?b78K"H]c%)GF^dR<4\tM"qfhWcKHcJHPH[i7a!>hUP<4<@19*b(^]?:KTZ+P?\/GE`[QMki%nfAV?A6l+(g(t$O`\-2pXCkcU 4p]AY;-+khk6PoZ>lUDbnGJm2``G<h@p$t+39jh;9h+?^4%B=VJ<Y3<</0$i9Fn,H>7^'I(_B0^ok/>K!iIe:rE"5UGl1c-;O@Z)ctM#Lft\65Yh<@c#js.!]J"c)jQn\GBaetQ[0WIGn$P(Y6;&:*QW38ffW4DA.Ah?;#-mJ)gi1YT@!fA?7`]Cq>[87HL)rgZ0hYj\<Nm$;h7A)M#PS?$Iq!oSjVCqpaS#WIi(J5=A^c*mX)/#S=%UI-LG!pl -(!pWW2#XiqffEASLdN,(Y*]FR36OZ[EIcY<q%S\?dC-]"I.,bf+rdB)RmB%9I7q8>/q+_t$%+.E7=XB`.PGg7hs7NiZm2`p)PM'D]*e"Y]@-a/7+)DAH[KJ%1?rGgE-G^B1EKj&'CE>-?`mdXs#"\b,P3LmFqOP^d7C:d,4OT2ZpAfBt*^]h"+Q/:8e.3AeW_9;4.fDW@]!!^!tIss`*le='i?_4.F=/L'N3<Kijr1"d' AO7(I#0NIjW]*O-P(R25<&`.7+qm^kf4tpUIJ[rIn F?k"]9mF`""k)%Nn2-+#Xb**5@om2 cV$KVc((.,&N(Sq081q$cI]"U23aRXeOOa7/KcCs3;IXj)1jYF?AG1\YEL=Det;,8Hi\AmQn`c1O&acs=]*0'DMfdA&s4DUl&qt$a6G*/B?'-_]%Jc%!gW-.@be4R?k[M\ji] 8$srTOm'U!jP;W<$pXL81bm5Vfme26?m3as_4?M/l6>(B[d$aQkA%4%+SF4Jr!AHRTWkLNlr+)_H',e:6sEWnF1YqAiDGt?(5Kgo?&aP/t"ZkJgf6CJ)&ER&^44_dnjZ"> @`1L<3f,*t5Us(Pb>bKLBA[*n:H5MA ;V='WQ@[iBiPFaWcj"C\=/RnlUoJ-HCTgEt>F,l.*f92ArUma2 3m5oT4%N^BS$=$_KW/pP;bL6E1lDUPM6$F8OOcI7I?.d>*E35",<tIg/JU%C/T!sWa4:;ohiZ0,mXUjpC9@b?TJpJO>9\>4R4>^8i=/H@%_*iXi!@Rf\akh(dl+#rsRJG]H)B5"+QEC[1ci,I8f`(QY+>Ws..DmH+/BDV@9PTTA5!?nKhVgAF?['JprQQEC4^@16rgRqELddHHoSl $:X3HCrr Sgi!AOG#TNg&*?r^o*Ms@< Ooi]j28T)^C=II-tdag0=:oQn&>)E-d;+mVrWM*mH1d%m@Jk<*'F$I@KJ>.:25Yh73gOQ!2?<AM\d+TY?PA26qtE$5<8lpqreQIpk1R2EAq=?+?P@?2qkfTPq^J[cJ+S],:AU*kW6A.IY?s8sQjTo2^_7m7llAi&:rrl+M,bKVM#J%RDlo;I^MZ^Ab[HS&)'JTm]U71fW=;!e<W%9P=#/#_]NRY@C)&W%s^4t,*rFtop.4\I&$/NK96VXVJ?aFY'A$!<$f>:O?2a=/(G#)\X#_rg35abm8rBj8K&OF7$QKH0YCp[D*ROI8F^$\"e[:rFN2J;W0a"-Zqa?;(Z1CU5;OdaHIULE$`^O^m=A5t &Q'\"0U#i\(EL,j)oGOKmU^b>\Td=.mn=9\EcLH`N9&jWAcsOE2!HEkag7:LefbK;MkAA_!<e:7:N!-T?ORM)mY!*^$!)t'(_,Hr$AIgU0@3EJ-3%hrNtq]Wf`p544k*WPMq#XB[N7] V)4ej[Bip(X(gJ?=`ArpfY&OK<?(6?UlD3jR ;,-M ?a*#>h?iAWBN^Di_6R[>0n@[ FHg<_A_-&l:HNP!A_j $<r<JL[H9]&IC>"]s`Q'*7dRl'd%F\B<N*3c%8>&P.%Q?L>q)\]B+ce )qT\KRgNNHQ#o!-e"X/S=(I2bDE3)FV&4:fKY:?&9;nS!RALA>q^\FBY'-4[>lQ,?]#3/8F3.8;J/FG>$0,mJ3dJ&hi$,n]iE5P?Il*"mr3FQ Po-=<)id_<r5!A@AgD3NF$+sHqgUoHj55Gfr2rGhVSA\Q9[P)2f]911O_5)*cYcY\KNM]V_YACfZ1$!tRADrAWc>X)e/ZF!)qCA:#0<M]`/ h33#GTP%#3X4l@jE\SX>Hlh9)R0L$P1O3s(O5XjCK +$QRLM&Lf#\D[tJhQ0g2%.Et.1EhW-I$@8PA7ElQ<D`F]FTQ^0lC^&)_qn$R2tCd_-pY#7B#0d-h?2mB*WV ?pD%.">FTX4 @Z+$[0ER'AX.T0A&m[J%F=lqa,sP]_2,KG6J;AN,EpcbjNpAM`HP,F2W%@,X(/9s7A1.haE4Z#FV(Ut ;DHrtNPr;p_V(@9<`YlTF2\`U9Q_82c#!(]T;r0&= kat71d";K$:+LnaWq))=ON$KV:rIda\(@Anf_Z/I:>&-k:i$jn-^O4!j#NfEsGh[#"Vq%5 qn3s3+)b(^.Xd07Qd$dL61bR(%V$D!s<dqo86T"f66 c'q^/lJ[1/"o:$pLILA*rA$G9R'#gY[OJB=(3\HJlA1hMdPS-[(h!9)dbDp/MOl,_:ebkl+V@NbsX\D%6-_dp3-Fn+k-,P+SG "kA-h3C;<Z\/ae2k1Rm1?g/$NDZ`Of/3(V].(.^j6V>Acrh"JG'FK&r,d%[thtZ1Q&MgV 5Aa2n6jV+Mp"?& "i8h+dmKbo@<'k.<mG16:-qL]OlOU7ICRT)""d$TBd*&4jfgFUV";gGKRK,dNB_GL-JneUoW`*#EpEVi5."M\2O_<OLAMV@9+C&VDX0Yh!*niX1@0Sfdf4;oIL<HYP#!#"?$mn4P>trdH3P('@$-kJJrI7^.*$"Xl'Z/C#eQ_7@8dEmsQ\L<(8lqhf8OlRSni=T$@'FgGqBD=Xo"m^O8bJANBdn2$78Kd)Tmn.Gm.]f'S4-XCO >b i@K#>bL!a gme-G(e%-kbhB*SGXF(&bkF4M5[B 2ksLC[]j=BIm_C^n5oMk7>mXr><^?YRqJ-88)nH.lYeBA(TlT.Xsf%bM&i[iAqhD2nk#JkbTS.Bm tnE:?h, HONo<Z.<h2K^2a)Q>E?+(+t'q29[5Gg7D*0"EgODHeaD'[O#SDbpNbO%h#Z6&7*0AW3*9%gZMk8C,_#4R*V5Z!5Aa``/PAcpnIc7)q3NakD44nF6.r\P(rB<cbE0XDEKF=G;ok@o@'+]4q +-[s%"?!t9p`A(/YO'["]$NZ9R6kOZZ0r>!`cQ#$>PE6rn,Q'jq2Z$.t@clQH/q)K@IjIV?Aa%+.qQ^o`6+`NT-Ac./4;LQ!"HJ&@)]4kS-dVEthjcMWCM[?Uj2l5`!(la4LYpAt120S[F,$+i]MY0q[j!bOcpABT<*A"Ge#%>>">l>J!E=#_#pd73b\J&81(+-=b0;ofqW#DAeENO26b=Bte<=Q:LbC/W4L'NOJi*]kC(<1A<.ne;_k2K'(KA!CN5IYW'_f>XmZ3J5E+YHf><U.Ie0TJ'A'9gpT\k79EXXKF8b0ZVM CHlQ%oK2^ZtaOQUMLc&hKAA8A3']1)ZTEOZ<o=W$t1q14YPAlP7>66pe(+W%MeTFtGO2C^kjd;c[td7:f"JErc^WWW9P<GpOJ+8?4&i,+SfH/_G4gqie$fM06`*M;nVL`BQOO=mGet9)$`o/]'eRnbqEgs+ee;b'JNQ1'rRh9F]?,`.?M]s7TbZ.-7X=gI^Jq[V;aDnAa+XZS%+X?sXr BK,.G8`7d<p28WBnU2:ph>8X"EGNb`\P!3@kc`]ThN AYGM_6jlqXqj8RaH`BpnJFO2G;^ _A$Q0Ol#6 m4hSdOQJMfg_"j>o5Z$7gnSf%i:A=s5P`M/6*>oZ72@;0\\O\NI!bo<H>0IG`/1l0FW/<@lnX6#\BVl'nb\s.l4/KP60orniFN!MnRO^2`l'KZHHne*0:lA(Ha<*Lq3,M'>&fo5';oqXZl.tbHU-`O(sJrsD\3KA^,LhM!:=YmKqDRCN^&^:L_#H2SUS+n0[(\SE?qGOYE\CV[7UEIk<i6-*F` :&3X4r!O5&F1#Lb(A ,iOq,bM;= KZm*4\8A+^g,KTNo7LM!.<5FW/IbH/+%m'bq;5@GB""IAA97Jt_VT/K;9EA^t4rt[;0^.88>jR)bPsA=$%P:0jo%B67\S>F'D*Y(onLJi''3pJpDW^$Pd4\e='d[lCfj5m"ncOQ;FIGS+"*#kB#*.@ tW\Z&!rZ/116]lhp23o,2?=qpc"]3#8>$/QXtslaYR2e^A%NGOS6?^h"1-9AS%H[/tUH9NF)0cKjLAl?WT85G:_\%28?)cM#J)@i0ajWF8h#f!%9d68&O2;LHS`G5&8hUra(Edco^\Af_fNcgaoXaLH)b Y9DI[]_8B`=F*8"H&*)hD;]5O<XF'lZRd:;TKHWGK<QEmb fq?t;J#0M32#G:5/%Eq1hD97-%5JN>!DI?]VPR+`VE/.L[QFc._d!kJD;5.;pG^`7\?O(tsh$nn62%X>5h2j B1*\can[?.t5>:OElXG]o]BE2ni.m4GkL,#AM5(=5h'o5P9n sZJ))QU/]T!3ngkVGW2:Y\\=A2A]VQ'$-g]taXA8jY6@8c"He4j4ai [b*5G^>bRXBCo!^f!8c54&.I R!a`b C(<=.`Lhssq:nHF4m8`5BU>Wf(Fq/AnO:BgHbAXd4S@TKWFscj3@(8DA fCt3Ap7Af=]JYGcIC$k[#,%/jE+X8 f7<$!kZpZ'sT53W@@oTiKOi*9Rsr1Y-JI;>BOIqY]S34A:*s-hhkQaL3UCsK7eGVcodIqGB<O*0@*(fgmF@A<)Z2fDN,t82a7aMX ^,o//oZd$Z&ZW9A;r^5`ZVRbd:#t[G@>`P6\(M$9>q$OYtD-_`,lF84SFOAWdEcsW8p1fn6\UUoi(3iXNt[M-7'ZDh*ij_rhO3dr_V*E/3[iGGl:G%9 DdO%+[L):QVF%E9oo6_+j_o=@hg9c;nGt;7pWCA5OSEb)beNGrl7Go*:Ab9/La (Vc,CHTp -ed\QeI-L%^$'Vp]YT"Ce[HsM3"7?T#e,8Gj". e06qYPms`_'mp:AIgealhh1Z7$o5sD[o+^XjmC5-kaX]kGZC,0Lo3S!dg56eJ$*G#U+k=. <3Y149a=1@ _Q8R!DPMU^/Z-WKoDM0@!E5@Ja+&)`I]-H$3-@*_tMdI7;A!Do'78BOZ#9RXOGj0Hhq[#^m4&75kF tr&mo6OD,#G (Db4"\e0hJfAj!I#aecb4UEfl>.a9tA'T&O5X]j]I=ia3HB0158N'.%h"6j6Ip/g,nke$",.('-%UQYjCQ'etA(]lGP!Cr0aFO1GBX\F2;Y<n_-XTO:(bsl$bs2]eT5QZ0k3:cQ0HF.0c.mG0-$L4B6[SQDGaO0n$ed$_9c_"7%E#qms2S3=%BP+AI3rA=Ugt!&%=BlB!Q8rl4(p.W;^ABkk.(+%3Bf!AF_P L1iF<&gFYhbO-0H@Kt$S8KQs(YLVFF]Dpe%ljBO'#oY%Lt<M(0m??4F99Ekc"s.tc=OtYXP"Y+0e381+5=h=e9QG,J(QV2?1`h/>n?j ?DK"]kVYLb%\1XZab0n:7\mt1sHdf.pUOS_)#B+lat?3L:.T."\JbMJ,EPN^2 6d+31P,TJ:\TMRa6)*]lT6iG=B/W9l1)MmQP+oBH<O"KFZeR,sK"gFfCD9&Ae_S>&&"Qcq4Ak+f$jphpbGUc\f[UZ@RXh7[G?O0eGJ AC=[ot6X5ls!ST!+^:`01dKna?8=_V0s#Lro4'bgM52UR1)!ACO4Vf>4'R:r=K-=6Y^j"RFjjL_R ij?@tpa(EQ%n5.B&bCY]];Qr4P;LHZSm2b)M?:0rb!f/C457tRmAq1Sg\=GtkG;saf9Ag[AS*qF:FYp7$rm;;ksPf3Re9egW>eLT_V4L(a<\LAGjmkD1<FX&5DEpmtU59b]1M32#J(:fCoWI&!AfUgghsnTb2m_.G.C68?*,PF#cd#^hO)nA@Wj>(so:)mCI\4QYXoXN9d_8R>+@& tGbj*f,FC>+F`'\Ep`J1Wcj*3N8#nm;c1=qIi<N<!(`%AsA)Y'-NAOhgnpKXB W-3d'RB?\/T?B8Oe :73r&Ac.h g!s8f!7H@)KAN'.@cs01Ac;r#,;l.%t6s@gW!&miGDTWS;OA3GF67]!7!4,;cpZN("8(`[GR*GQTOC(_)tr=j)Adh-W%\'4\LMU\e(W&5$4c'IM<- MUj\;1O=iHcA\9D:Xtd9^a#Ag:[m`deAaHbQ=QdLhAY;tK/J&LW Ld8W+GST@TGhh9c;0,&ks $TObV`+osdDbg_c<>9*#HMbtdk<A*<mEeoV=rb2Q#PtA,ANTN,=:#= Mo5M\;Eq:9lHi>J!q4Q+k?VIQ(NW&nU]DEA&8pMTVq@6Orq;NQ[h6q=)?AEoHTEc<DsXBMqqARD&9O!9EY<7qST[bGk]F@A0&-Z*KWTI4ip@cRr.SW/)A8/'3=K^ZU:EJ1q@.O+p_JCQ+7s\eYra8^CCFs5Ebd+Jas^Ga0H*S"X.:2@XT)8jHT2qP5Q>QN?DYD%F8N=7F75UsA=^DL(* Y:odI+^'3"c`OK.;G`c[8;?c2[9bUmA37!/EEfNIQB*A"1#<sQJ*[a0GBV=FH9VN'tD5?>Y"3_._Y/'Ug&C_`&5V'')6[t.4n\<b+X-a[rH8Ci^:E5a3b XkAjD]&HWWVS-8/.pNM/n+-AMj6=1P>+>[qn #=A66c3'"a?_'R\QjPd\-f?c 1ga%M`^3;c+4RUe+8J]Qc^c,Ea6qR:1N_@#i+BgPD^QC4$@[7'<8Xi8^F\gEH7_,mHW?ef.$QcN6:C/?-W:]`RDCKN`d8GV@@R*k=Eh Pj1@94h%n4D#m<QdD?a5a@ ,Ws#A8G\6AAY4.Asj(l/\<b<NaQ[%F-/%InEjS6E]gVdTLjBEAS:mb?H"$l1XTJ<(d1?L&64B[RAA`>A8Rt0O<(l7;R4(sg)EZH?!/(iS@WX`.fro5+$Bg07]NU^+S7&3Jik'IOK_ZfeGma;rK#$ZF-iPa5+d2LMWJR504_EW'/!&[&so,'GJ]NJLb2kEp'S87"_VCmX<USO8M4!6AQj>sKc8&pDg399c8Zcqo+(^9VV\-4QE'79ir/;2eI#HTb3i8nXX9po&?=i+75Cg$d8QYB"qAB0RUGUdZjq)EC)99>ednIT+rG2P5>/"l<$^#62@X.OP0<\l&t<i/aQAn2-K*bJ"JP1SB\44d,77@<FL85Nt_B8$\B#DQEni@^c_nX^jGZL]4W*WHcacrkEsZ3<0jWE9!JWMA:@4/B+sE_Mj O>K2fqSko[-G5+WXG/4i,lt3m7j*gp-Fqg,2;DQAA17Qs\*:UZgH@MD$7.Yg+jAnA,_E$[ZrA(SbGGRn$P[ Pn[$Ak]Kf1tm&e"7\3ZgYWh+Dp4r<`'ha;]^34 ^PTd8$Fd[_r#L*tL2S(O/TG34Te\7Kh%WSk`CocYt@2tI<ZU^"0 [J`;l!g;B9"jAtnG6gqjSh89#2Y^!DA8(lgp+EboS8!Q%)UHU)BW+!XniJb_gjI7jZnqj>&0YIVoa@#:@iq#5"gL79n$[Y7Esp?b-3Z+QjrVJ1i<LG]*UenM8`='sdi9B!)+^Zkbb,(R.+!H31&=XQ[/X[)oF2?GrLV\hl!`?Ack@P0fp=kL3o[g]__F-]<8Mp(2'f&YpA#9S3\ibKX"9W.,&RM@'k53k/I[M;?T1<^2E\K4tkf.:LE=*,0>B&m5p[nZO&j\7BHo@k(,;`>b@A]b)Y:*C*%g/ab=IG/^&W`7eG?"X>\"D':(p2`D>QANkSke_V6MeJ3X4&gB,fes+mGORj3NApg34f0\+L:%JPm\PA=;Gbh^D\;[RM9rV/!pB$qNAA9sno2"bCM\QRA.MZc4&Q`?^OVQ 9'DLP-S,'U3la.pjBK1\g5Z)i>)S33M& T52iAlVo0`A76jFEimi&aafI7>pOU8]_SroKVeW. ,lM]!(:Zf1=V2%@/"ZPF:XF8TXDtAC'&rc<GitAK!RO@EM33MoBTP3G%7U9Mab@8.ZF@1/9(&S,!8q1at=5*C2&57I?phjEH scF`K/(=2raBP`AK,!0%BlY1d0L$W)+mc+6,OtL?(t&qr)pLS9b]9ECFm!KZS(V*oJo:g8_X-rhI[p.A$OT$#D]\PC6G<44 +5<rdIKBI(.d_M8/`;3,m0.!V*,q+WqU8pBL,>%9T':;oLIa<&P(D$MF8KDsKMAGig]UmRaIbOn<YbsU=Di9XooN02J'B#YW/BU[J9%WD]X#8R"a#%Ffon0$9<a)QBid@:t0_Pd.EON7:i"'/%pEf#AKsrZa"F[De,F[#fSZacHt3BZj]))[jm%coClL*)lTOGrD)@>P?9.Yid]s6::3`e4[H*l0Eg)\At:J#o38<4!>Jb2/QQN<H2`Fgh65@1n<E5=?[e(P4"qIhU)C!JS$a(1qN9q2TYBkh(a2B[)15mFb)Y#dN^B[.^tZ(+XIBiCqOaf"k^hfCdt*[%O$HU+9*l+mG@a]TDBHWVZIb.HE%:KCUkgf;0,#WH+-E2ljPK85OPnd!<25`AK?5[p>E*^9An:I%-bm,)Ar'i?0,So/k-G)S_(M)sh></2S(%ra7cA!&,Y6_n-N:56nsW#Hq5V[9*BXWGM2qr3QR;W>TqJH:_2T9n^P\A>g)[Q:`L 9X4[k.#X424]_oHPg.faGtb,"!s8\ PqGBae+V9R42d9qQ$#GC?>fTUd8KG!VIAiV$MWr$aMAf>,e<2jfgkB=i@\;CD$Oro^2B=FN M^o+ n8@07?E!`ebB^@BWN1?IR];O_f(sPdLnd]6n;5"7?n>2I[N2L?69OH.>.iZq6&`;^iTaCK !?Ai@S.1%n(A2\$;/fJ!6P0[YL8XT0@:Q:i]C*9E[-S,t=Jqchq:UW[AKFq%A6I1R(F0,'DT3UZe5PbG*?FHaRoBd[MNja0sN@4@X2_T_Sd.^> 8Z]A(dD>(5K54HM5@h"CK:`F/4='/0+bgQKc >Vq]Ff.HK*Xm`Lg+`L7mk%1"32so5Nq2j6W8d%.QnNZP`t5eV, U3Jln$]5^5]^O4lT8@SgbpS"F)7'p?SYAjBSR Q`opb$BV`:"3bt>WM%_CT'(Ap3P>i_ C$rbf47bdK760,a3\&EdC_]d?:\Na$)_5XF;B:_ENnF&Ltd"XEF[&0JfAsID)k!?*21!rI&:Cp?/tkUh>:&:C6KAFqCRQe3h;nNtD$kAqj>4kJ#s@L'YCp-mRRZ[R^p^Z,BUq=6=`9+!)&5AoJEg*rWK]nnb@)'"/S)CsYO-<Aj-pAC+LR>X@5?dq.MF[PWEU5pt5F[]W[M#rZ\Isa%#;KeQ=4t[r%K)mh6b1o04L]N8jlEB-*F8gn5o$TcJ>T#%;1Q',oiXOQIi0Z_lm,Dh]&0e6+I3Qeb9O[YEX)VB*K\_1_t'N;nNc*$I_7'0l-_if0pYIRimXPt?ZGZIs<\>Vl4t]F!X4E&(rEEV<I'1!+9: S$Mg:/*p^'SN,W4_'-mm+F9b[pEa$Di1&jU/,n&I:H`\6"=!Fit"f+W^Z%s:b3-2D5,]aeD5%[a.=F50nZb^Rn$>o6Wp[Ei^=+r*q)(lWCFrUk 40p(TP#ATs//KMZLGDmD3G9nF]A>_E+*bfHq<nB]hO$KUAYS6%B-I:_]CN1PPN );>A.A_-X')92n<S]d^QJk4Wp7 0?YWF%382[T5>DI?cj^nTCXE+J]Jo\"$=Q`l-,.blk58Q3N<$X?RQdA5B6=B8pEDR6:KH,ppA=jJa+K@n6^bn$'$O/)Y>J?c$$I-d,#3j^]j80Wt41MWs\?WJE,;COD?4ms,oD.sIRQ9a\!i8t961pg^r4kF)6VXh%&Hl9b)q6K;`hc#H8^n2 )AkTmRhAMi3I"RWbVkaFcN=+%5FYH[*>XUn0/b8XsF!+f^5/0ZfClKWRFbo)M5tjDPecUD2m=''7eSmM/[mLm!r[f?JmZcrkg!Lh[1dUfN?dA@)F.J-9M)3$.Y20n8Zg`3!(UGd<GFWZ,OLk3V2A1'We#bKF&(.#]1H@&LS8c/[_#&paml4E7bisULq`>(MW(!#5ZTk2.M"2cSaNAOAUktY' nW2%P$'I>U\FeZ [N"$%gr1Uh=[6AGTHBICP3:\*l#_Y0k"Z+i)W#8i_:O a9$IBpl>:i(VYHQb=`r"6 _fW:gmJ[^6*`E9<gJ-2_6B#Zp_p.DK]LC%0K3col2g3_FWKZ9/R ge&+EMk </5p>21NAIAZO^#7'9Vb?oI&.\S7c%#^#opo9IXehk=\0$T0,G%e9#82k=g$S&G%6N#^S@rDA!+rrf1"bRe%AL (FOT^tDX"( `1?C:Ip4sIW(W%[>5Jh\UWaBn>X<mJt+@8EgG_lIbM+)O@NoiR)FB\fX=XC3_G FPq3:ECsU# 9on?r'd59J'^/>."Kn[=A.c7#a"C)<:kfN" 9JLLN_S@aRHtdj<[DVF"f*9?)do<>pD;1kP>]0Vi..`S`,5.>9fq^pL]A0`k3Vs6,]857=RYbq@!UHV7#9\,F6f[O8Rh5,X8b!*h[.&6o?BmZ#9/Z)=[Ff"EK@J`p.i7?7s%BA+n6$I\-VL0agqa7[42#t)+a<lkcQ,']@$RIUdcnnW%"l1oU3<4gNki&^=).I@U@3[aWLTn`'QA<_4$3VV\?9Za5kO_/U_>`/-F(Rs,.6$+6As/EQAETU`7_`*NQJaYlW38t<[FGQ,\S2*q!7mZ]E3a2[gBgS.p=<s2JStK"Aro<,?UZqPR$-1EOp_b.,kgN9:0qI$RfC)f]rJr]lPr`WZ,/IZYSCM,gTQIJHE8GX+[UUMLf_@FA=HEQ5W&>`(O20#3ZfCMTjW);J;1_>6$@ZdU &m[HUg>Q<tgQ_!)k_QE`[%.ZUB9]k>^^db"&rlbj?KDiifhg/ZZ_APqgXga]<I?-DH!WC33EhBEm:UqNh_a 9 3YZR`nlt3FRqXKC@5e-T8E)NmP/H)gSL%bdT^Ar6Wdlqbm,1;"d]hL]>(?jl%0\"OeGm?l*& ",ptA&]q;N[%KIrr&p_YC/BpJt>aANfsB" <=<80jfO3+pc`%iQ[G?YO6eP+]>d?nq"5,^/b+ZacXQa#(/!&"bCEbSqpD'3WPdblq$F-AJi5)2(B3>5`jF[9LDU@hh6=q_?L`R9H3&:TSj,hfhNA*J&%d2[eWol4`ZW^)Y0^!M8UM)Fcq<;610>oIQ6/7GKALd+o.:$:3kqk)Mot^Ne0654ciIqn%h+O@\$V9D+tt.B pB!1fVL;MUGE`s;(<\*ZK3'.?WPO;jH9K[/G&>P$8Z#-&E_i1Q(^(>e+;[-g0PD&.AIlFo?\RFs!T*Z?#W<d2h]oN@:2`R>7aB/.+4oOgQd@].*bW:=T.qJ3\j#%5^!N^a `[!tV*dojYTeUId.kI>%?8Q&5Gp#IL'^Tsct/5E\imT>p*oJL KO#5Dr>1.1mRS2eKJ_rZ2_cS+c>rs;kE3a<[K3[T*-%R^`@*W1e<i?XfV#qp'#7 <5n1(M8Fhh>L9&_&l#=3NW`+Y^]KVcg]ZqYG,l2Z,j.7,[02J^J]!oeoG-5:U23"5Od,da430\ZNXIHd.rJ*;jUt9d>(t*L^GPkX]ce Ya#NC7c#MGa)!7cN)j5LF%&X0?D@Jn%*/A"NAV$G#mI-+mj)#/^ecY`^!WKfRk[)Krjj1ARmUip]/P#qG4I9H!<]*fVBJ)k*dr3,gI*\'M_bb4C8`ip<-G_<?3qSr00rZ`%W`fA*7Nqg6m`". t] g2mdFdW]WAc9)4=#U/P>ngYq,YmqEj,$oYIi\#NF(>ZsEZ"JWrfdhTGDVP6tSH?`Z";]:gMo_QQYXA7I4Qg?Z#tE>?_t)*t](SE;r;J8cS3EP7.@3p'VJW<A)kt` t5"(Kq(5$9cM9(?7cZIbID&b=F%"\"=?E5&%5$i)AKY1&3IY3cQ@:\!:'BsHm)f`=W]7A(F+^glU afRa5_Q<KWr153#1Q[&B9g`J;O'7"?MJd-7]`)M/8$QBh\;e237ma/4!D9aN:FJL;SKAWAkDIt2IN!5'TFKVm?C_SA="(>gD(9.).N'LTH5eA(sfaM8)K'8QK2Y8*pNK9KN!%"6'@ho>PL,fHsD%eim[CThlG&SH>eTd-BUo]MC?D=gptat:;":Q(X;YG*5rU7Z<K*kAUA=/oY/qE%?ft`LdHnI-j// =(aqk\[K^ohBsC`$%LEs==T$M `F\]U[5WQVMA3oGd[p8l]AJ`m?-IoSR&JU\c\!&?,##nrQB:>HN&[9[!)eRGqnV#8A44nOnh(0Q#+G))c-nQl1Wm/]t4bfpO&A(p)H_8@!A_!rP+0#(8NNa\53QCFI<tk+AQG-.=cJ-#5RcTP>!Irc\#NmmKX;AX:haa'Xl)haG'N+(A@hWfd'QR(Xql,mX!#OA.-?k&Zl)HK5Lmf6&Kp!!d<Y\8W<][Q 2.K&b(7`4nmjl5ELj#PiZja&G-`!fXQ2q<VKb97D44;7i1bTe^JcPJ#;Yn[E>S[fh:rabYhCSl#c#B'F4ZZ-UZ\$5XJDf_X74K]nr>T+"jem!+*`s[Pq'$C$oc'/r=h,'6!O*=3.1m3.SPF4D]jS(X0#&@ZCo)[GG_?`oddGD 7s/7[bL2 fN#KQ:7i:B5(2q$;s=n#^1"c$,5G^6$`V!H?!I%/M.t5n;;?%rph(p0YP/[heg5E,:o3toP@=.OPOPUSnd%RH=7k[O&Pl6c&kYdi^%Yj?<BgZIA@34tffA;lIZ"1(r#Jo4`KG<nIp#A@^/9j)c7(?:@BOJNeI!&E=>"FEl-A>?0isP3KJ*=k$--I5Rr:EOJWo>1bA:n#($pV_7VoIs)GR2[p>C2C\p5A0X]o J?QjNBb$qIeSQL=@62^#QhfA*aYA%f'$XRl5l9gh_G,LRb7a7O1Zg_;r&A$tA\PK&B8sASCYObeOA=(FACKH3!`[DHfpf1\JQnEb_aOk@UbO%?'3-WfSV?b)DIcVD^I;eAU#9`ZH(rp!i.rf0tKF[aO9<,A8#or;^g50XfIG5;t:3<)i"gG9)7CQ5;7MLf>)nr9EY@kSD!Uis*c0/^Y[aIYBlKoX#sQTP4p2+]$ZA1;ZmF%b.aUTSi<"*+@A?G.\6d:EX2%=1PfD'oeF!UtZ^KJ"3JnSh]"s^8M4* ARL^S+oi.Z5-$j`6]%?H"gr;YNAr)-rNT!E6MgGkVN>8`9e#$ c#/`"FR02ME,e2)ber_C8^$#USH:EaV )pi;h=oT aW";R&&9B Q]P@K:!1(A&"G?]L4_c-j3lFVCCqRJo*<$3$!R56l<^*C;)1GBl.">LC2QnRi"AU.,%2o;E9>F.TW4rCOfo/.iH_\Fk'T9b3bR=T06("Y=C>A%7JNc(`.G":j!GCto[<hfC]9E!NOA@<GN1\fWZb[-o5W#!>aZnDR2LTk1C/,A$%Qna7/lFEjJ-dHFf6c3`2OQkYBi"9m"YZf+<l"qPc8%X0=#8ZIOkEN_EA-t\Z$)3bCh,A;eqX%i&0[iWm$n6Gpi&?]XPXZrMl14%H3+R"i#4Jea]3_dQ3 B1jsIVR(AR"r_r*T%l.b?%++-G4O5B%oGDg6 T/Vij GYeR,'#q3OgANWVsVdXRo'2Vqq!"(T3U>,Y%.&o*;H<*=r0- UT^ gp^c8J,5cgsUKleXTH^l?kDPC1 =*l,qpe@n>0enhaI!4A?OR6jb.ja:/ qrO(T;_9iTMME!F/]rOD0`%V.]BpcQfk]Po:)0kN;)d%.W>GCY/gjb,#Ce7'mCOW2FKb3Ea4ZJei%:a@^T`p>D9Q(;I?U;F7(Q!eV.$(O>l_q#olXJ!=B3m_N;0QB4^<nBB%N']-0si5Y[<U5:nKi8/BmThY,q/2!FE3hAA&_F^'101\sILD*ogY]CoKW]N*8j52&!F9'QEg@h[ d^\r*(rOm%+];!#)Y996'*PW3tq[A.:%=r705f?6a(Uj<prOQtaSNINUIK,7(;nXIp9c$g@(ID,N9THl6A[Sf!QXI6nF2A"ol3?5Z-X-8j/3gcm<mbPr3Q0Y&_R;j`XdNtL1Fj2l5mlcS6rf(IV=/dS?\\(fgoEfL&(9Y#*<F $K>pjrmRp-4.#=#)Xm382Yi&8jA[-a!(S2Mi6VZ+>Q lFe ^h6P)_N+0nsbb9Yk7R+FI(WZE8\nN-.eT;105'(^QCe<b_"eSJ^es-BDt@O!S"QR#o"NPm^&nM<: SpI.=ksN300qBAUQCV!Yqbcs8AJ%C\(dN\YEI8,h0OX` ,#:T#flVIA';T.I+cCrOb7IN8;LHLkH`)ri:t7WR>_E$J4e\/8ThAI:CU`R'&>HPL/pt(n"Qd\A.5G3r_>th%lS_^sk6H].jfmTNpsJ=",8$"TStbUY#&8Gc-q,Xh<gse$deq<a]F6FMYG2g6W`_oD9-%Ne;0VnpJaM\f-/obn`34jB1&Rd5sbl`6<:D[.A0[DStLA=[F9.;+ 7,48i!56#br/X'eOE3^)cJp$0#qWI36pjUq\Rm+Lq,P_H*[4Fg7lb_(8VYlaIn!Sf$/VBg(WFALPf=#,PpMT3< i2af/k]$=%[/W1#(dh+/Oj'PQjAU!4H*:KO1_Z\?;QL;'N4 "k-Ee>4]h.p4YZZ@>hm8^_tZ[@AK_h$Xn>47//PMT@Y!EO=m49=?CO_;(2+nS`3AgXf&][c_"$N&BUpnj+SFhTQ1a<dhW Y_NaA+CH ZWoE%e-%'3Vl!rZ"#_g>CXsZt&WFpNl66A&2V-Qt(&&""=IfljF@"'&]Peg$ik5L%TKo)_^7m=H37bb2(pOX-APf_IlRmiAE#c8*Z4MI.bJ1:``C@pSH):W8Cdo<o\co+>SE#mbo9G5c5"b!VC9IZ\6GqgGtAAlS#S#U6"kE@+$`P3YC$n>J52S5t5P\*Vt=Woj.->>WOg`d8:iidhR\F`Th[l?;m<,OAag'DY_DmXi-asq^VA6RW=lpHj*"3;J_dN:(AZ>CB<a*WrK"bUc$=EE@^/7k+o+L+.'jffPTD4B5e"^+Nb#tr:\Uj?a4(S&?O=l/lK$`%Hq`7cNh*7Pf;g]5.78]P_MN`PfVk'KWUL%HSgp@(Z^@#;nlJMXpSD56I^c0'V!+Mdi,pmK]L'D[orM<s,bTB.aEia>gWC&2tqrf]/*jl%:Y&MtK@?>\Saf.>:cmp(-\n9K>#5DCA$!_+k4kJN'Th]3Qq!dU2Wd!=QlT&n@^eBd#$`/rgc1`IYFjP1KAh7!RG2-%I\t"ECc`n6t5`sCgjHk/rMA5])U\7hMGh<(UAc0RP1M*VaqH9A;2XY.s^s8-KeAH#ipk+5@U*DF4`#+h"*,>3`6[cWB?cGR-TehldI1#E^88TCKd\m7&IQ=?!Tb;DM_$RI/&8;Sc%m: V4o;3[48$>5d0R\Wem;+US0E)+`G<2=]Zb*L$`W0[^dN^N1jQAWEcA$)L1sM 4YIaGB>9<s6n'rUAE=kM?OEof]"ng9Dt7m-b9LbR;Wj*a=^-Z]Z2OB\Uq)qS0%AUeJ,(?aK6i1$"RdFh61VO5*ZX/0,Js(jo'&ITRgP7nl/6>,e+4m4C1_[g5[s-S_5#L2f-ZkCFE@J"l?s1(&*":A-X'Ki@B*Z?AFdY5jlk5OaT,I^aTQd^V]iH2P9GY":ph=P4oLi-)3P&[LS3"cA.85a Vfbl5VA`#[(UDKh[fn8+MkV&B?]`6D3o#JZLa9Sfh0kp%Z6>$MMN.!ARk$Q3og AXd"CNCM)&)669T76A'*lB&A".N#Y0gsJ A3sc #/cL"&a[dC;S9$.C8R\[Tg`Rk)nmt @AD6>sk5+6-8V=]F"Y5`Z-^L>(2Q0_ pcig6GKqho0/5dZG>6.U__ S6,!L) sp8eYZ;<Dd#SYY\mmYt1BHO7-B=q>F`K7GK-]ViPKqkIrhM.AT%3H%eH 'mqa<lgTX Xii$IC"#_@t*KGro(4j;9"V.`tPX%3"#gt/73ta]@>4bh>\.3P)Cis(/;W<%LVXeQlQ5lO'31IB_&Ue0`<AdoC&s<bhdA4$^;-4WD8.=RCBq%OQ%p[d64UT^^9`9.ZYg Ak.\8oR6Sba!rLVn3'C@/AHHE90#GsphJ9Prh$8.%21jTjhN&l\#8G[!.3C4 ]d4J^PTVJMm4bpl*3PCkskAktVO1(8&!h>#KA;A*1oGdKf268<lLEFP"9K<!CA\qo 50!FH[;MPjtiG^N>licsVtcpU,5<#jnr*O`Yl_fTA<gX+?SqA\1<^"&9mb;q?$fn/tS#@<9nPp#b3;=]OGb=Set9!&A/,e1?C7&XNr4Od,OAV_;mRNEAgcjr(00X]p*n19:@inqWO3Z:3Oa#_+l0I@`J$br@?6E^]m'!$Fm^BF=CDlnc>aMrlPDU ;d JH4g1]Hqan Y*"qWsiA[0&h+6EY .D]4&<d$ t5-T:-@/Y6!A]7;@_#k-%]A`VO`h1gDR A!i>e#eCRCSsC8Yg?gRP9rhdg:@g.H!X2Ab RNKBsQ=>mde.t3)7&m#DbLG]qkm1Gr_tAc["br-7-,3#r];%W$ 3m>>K%JgT;,!@t`IH?]R9]CEq*k)At7Q9<@nKbX[8m!:OB)BWP#<_AAO89sON[g=LMBk3](F]A8\RYt[VmMs#,iQ[)eC6JA8r""")gW?Jq#5!AJf7nAa)R,3e2Q?cA`nFp"M^)kO[))qS6lq#%<8%%,N7A`#Lk= >kAaE``=S,r"EQN\3JMMR)bF/8!Wf.O%A'MqIg>EC$s`6%: >3]pHd[`hZ ,,j#dH1>OWPkL6'^HNb).YhY16B5&s:!k_,"&%A:!ZRpNfHVTO3q<\QNAt](F%K,B03a,MYh`k<ba]7R.,pOCE-_j.Y].?Sg%L#m_q3*(AC\rU$!1:CoYgAcF96VFGlK$:Vpn^mC0'Fj\/'HY6-@,8Z[c=p$dsqd6l2\Rj;3cbM$5][jhgrTQ,e90d_)l"EA[`5r1P#AXjeanD\%\&he1e!J&iii?Eh8'FoZ6[djVAi&P+c_4RZN"'SoH6&kb>^jreYh&?NCqF_H8\99 tWpjJJZQVqS?p.!-:NrIC7*[7g`dqa.M[W6i<c,VaV)Q 8'[>#8`I80ie6GGY+FWfAp6Oep^\=#=B#.rA8:X/=d` rP)t43i,s^bKkPBS4G?_Z]Vhb=HA)+7E0M ^V,&^`c'M&kS(r6b#ft(F*@rYg5Zb%4.gih[+,r '_V)d07/8(d7Algo)GEhW>.g#jhJ\`C\Z,Hn7k(41`o:. `9 pHBRGA0q/%<_+43<Q*U?Dj$:tMX)Y3SJ-U^\X- R[^_0H2hIR/T;-%@2PtM]c\??A1D^F&#`H'&*00MjMX>_2)lB9gjFH+OLjVa&:GrqR"$_'m0/GYKA`FPio<Z-#+1qf1/2YLSUW.:L<+ti7k^j(tVY131(Yf !Vm.&^rl"=OR-`hA-jlogkW]M.k?U<d_I@IXeR[c>D-2KlH`fk"Zh,@sOG30,e]#k\4a)47S:%)lhNd2-Olmb,r)hWDW^pq6t3](2('jj8V0oDRe)-r/[mfAHol)'>"R/5U"5;5lW>1RDc5TB7`gR<(%jmgVCl+.dLpmsb-t  I^&@.lA(99NA=eL'j[ZS5iQ7(27&-JjCTlHt&<4r;OorA+Qr/1-3=jc'g.*$`Ap>3)O'_M"h6Q2?ghgsPrJXRbA8T._&_)04!0k`ls3/]AH)Iq>s&aGK7fU55GEQLD$J9'W3'.`i2=]F7q)8e<UP`RDGKG>tEl!B+M5_Yo1bN-B6$79"0KM]CsnY6;cqeiHNdO.9J"BI[;MCo>R!rDX7T;*9[_ \s&=*p7e7>4L'L>knbW(n9K 45(T_<mYo`7FDa&cSJ.:\o<&%^t@OtRqnY^lKUEE\_]BSZQL_4;Gb^#C>G[$_4k3Y^8Yof)550FJ9,^6 #AXiQ/tekn]OA3Q_IG\;nbP^-@!EQP6n!h]`-AV*6Z8kUQ!<fBR-T"csCmN,b;8O/mpeIN-l.AaQ[Tc9X^.i;$If4_FV.) ``9,lNI\Mj omK.YB#j D2SjfaaW`?TKi+CY0dOpn^##5oW3O=YN')QI-cBXb-5EO+Y.^,;9nr2n+;or lepUg0'-Io+N*$1^[saO$<<n]Yo13^k`j+/UZ_gorfHm!tAmWiO(<]OcSQ1.$:F`bF&A8;4@MFKJe>g&dL"\@C&EP cN/>O<ElY c`Uk Zj4G]5b?+KZZr*m* Zl.pd= MS3JH!rOC%E(JG1DS$U&'YWbGn!^CL$SAd51KF(kL'ojFXsM%Ck=AGIA5J5>B#A<J7=\Oob*n38>dfA["=OW]s::[WLCfiRqa(9;ldB[REY^Ep#//28eMZ4<W%Df*q*D5AM*-*Bc"9?fN67E<P"en76$U,,!fhW;<-;?UV"$Z(H?1m-n]Q\?dB61'\+lKA]TCZ9H:5pQ-6=Q$G4729/#!n[s<!oUB@0Tcra$e.Db@dAFh2Sg$3'Zlbmr_oC"o?]>Q<L6[m#o[[HDXS>T%'6ZfDBlE[KP.^V3ljM3A%=?,>+/-P83Mik2hsGoB.a 4dne AeO7i-mqXo g"LQb)4!G_ [e">4Rg[Yi('P*Km3K\_=1(4IinfR:<Y6adAG eir?6UOAd'Be_bM6""?H;QAN]Y6leN`6TX(I3f$::F/ra@fAjpA63Yc %2\3rJS8b;qsC@]c)UT'd!A:Ak!'\i*P1 25WDDb'D)b^:so`E4l=?8F"lpb2nAp+\eDT21''$m\&l#h\g+%"<dO'#.aVE>R0lr8lfk=94PLDH.IoSBf,;]#nK"3kb?Z6RY\s],LZi_"Sd@NAI_$GHNBECT-grSAOcL@WX1,'FDeT2XL8OK;d-,L)lP,3\ngKVG[Riea`tK2rist,D&OfRZFD#p9]8CqpYIPq*n)pUEMW- FEpiW;_(< <6To3Jb?RdV(@1j?r.$#2^>U)#AT]+t?=FcB/aO1h',8peaN!_qE'CM;aLTPF(<!_[8;'07l_`OI1?g,^]fb=;<k6KBS0f(.6e)<l3aR>pF"b'`kk[*G@%bJNKU<a]Ij([HC'lI<h\JcMPARB* JC>)=]#?FpeV#28^Ffb,1+mY6<8J4+=$M'!7 =_"1PP12";)Zt*MT!V#B7coB0lRHT]rLXEY+3t"-oq%`gV)1IEs7F?Y,67h%8@6,[H"ihY9+5:sHTNc/qo-esI"_nrmHUZ7Y$!Gi*k[.TFrKaagJ#.ZYc`IZDb@S;$R`T([%\otr(7'-!-8_P/?#1qX4e<^==3L3codji\,sAA\)"NR^]KX38CDA_ZRk9g/*Rgd'dIU'T:UREr*9C]bR^"e)&Y6nC(fr]"=0?QX:6ldPb8)\o\Hm7b`:k_PNBYO(itiV"o./S.s\Q0g<I;qQ>(!@%qKX:32LDk^S(t:MBCXA<j Pn'4tpQbgBeOX(V5?'WgC,7#Thr-n K1VU<VKjE,23!,G2tG0'?.c"#],,K'-9AgQ>6NN1<q%ViZMW\OAk;aF.egS6Y+(g1at!Z[?N.IlpD6"BG.!J'7?;l3>AsNU7_-)@(He/,ltg[<=IUe6,KP$1APhQDl*O&lpe@2At-@SYUb0%WYt6-,Hg!)>DV3BDO:9I()T/t. dja7JL;Zl3@ )K7@*esQl?.:8Mq"YW@DisKkf@T:jA+<\AaFYJm>1d%;m:('"A0aP`C?>D7 eN>JIfTEIAS1Q@B4kRn<Bc9h?'+#jYqrEWN+n[.?f0%cVj<WmFD?\!EC#[;6$  $h)H0WGIS=/j8r,LP1tY<2ns' GtS=GOG)8mBnXFbFbVn>\/`4JId3a&'^,\n0XGE*Zonfp$1?rO3LT3Xol:O`46kib+<\F,ilohHRS1?<X")J'<IhYe'ZH:\e;C]m`Mpn65`r8Xs=tj@;<b9a$c!0c]<^_MQfZi''P,M=50C:Ac*#s=5p3mga^t=nK':YT=rAacMX50lD2S*56F;[: _agqTtBLO?&D AH0/]S4O%E,jjpMKkObY.82n:PqAD[9+1UUkmA\;HZ>ElmM(#eNE(!'Ip;L3O"t'lr[VhZQkcDO\5*,0d]1PD/( <I#:X8K:;9^m_[jU_EBFF$;<lCN@PCl*S\Kll06=FajDN0PgBT6MDqLoHQ_SC^:A(VAK6;*EQ)5^8oHk\A!0%K3SmDf_##tRS^c"t.3J-nV.&]lcC/=Icq,7&/p52G]idg2/s@[O9##!X'F^dmJ^Y@DF5>mf bcoCVi2chgQ^I%J1Qa3I+[#k&b;Rd?PUo$Nj_:*[`pPNtob%3Xt!Vm],\`G<V`]QiS<!l_a%AQ?"5D9UaVZ><"[AAYl0n$k>dQ[o-SNbQ<qTEND[<a%4O[?J/G_!^0[VPXW 5Xt.QDD/UG=NOsr?`q[?4.)QT9K'J^ipt=ek!g-9>'ZU,<-T"<B])n:GE4I$!4rRGAm8V<.XQUsiHK $aYTl0@1W@5<a% !pa> Y8Zp15qL@=Ao[NY2M;rAJYMn)X8p;c7o6*ilL(`mXG:aH3KO oh1=t_*QZ8?L6Mrs^+U9h%O:b^WlA9QiiRi'nZipZ._VbMVI$4rBg(R5pG!DD$bn=2:!*HVUHE(4!TDZO(A$*knR\hoWjk8Gojroa..Sb]Md;t>Ri49_f%8q6(p0i1+7//+5<KJmp)80\_m[M.qmCl_st06T0YKfldg$4N =/ MQKIhpmN[\oqOdb[L$A#m6_^H^bC'+t;`cZ,QRm\L48e1KgoZO,i/O3i9$)];(;=8r.q;i_?PTmK+A!Zq J8%fdh8(m]L*6?2jT8j<%!O[("MA3hX=Fl>P0Y+lso[="9V?)#\'mBrihJ9`0NG[*'KjpP(<ApQPWZpcG>*Q9ofL^e3h*kb,B5YJ'M$#^P>&Y135]ci3aD"d&9P,"%5"_YUXpO"F83JU))9PJk=?tp(f0.AO7SO$K>B4AIa8IqNl'OYbY"jA;[7n%Gag_9W+egY.f8(k.h)q%LB@G$:#C1FA2XM0>TkgG$kF5[gPD#m&`je4[-'8PrCC"VL!)sf;7E5Kbh)r,&kJHlgEAS\-`bqlN]0Ya#ka2*Mi;K+@EArBZUIp.E>NBh(j`U<+-ntk>t-QmF`Y,jA*I__nA._k/S"U[ql^[Ctc>e=Rs:/oE7/i(6A8^c[i6'\tlQ.q[#DoBe[<BS(GRMR8(f)LTWWh9pAD`R+Mi80C2?APkYH"nA_1^+osK\_brdlsdSbEetG0E5$Irk(:m#r_7Eb&'e\l$TJ/lAh%a7(;h`=rHol<5aqhl:E,jHcpPoY9sE$\,?A%! e>ZHk$ Vf1W5e?g2f\6bK*SSYEZboDaLqNrBB8nX(sIU+*Ca+!K:&/f1_`Ym9rMWU.e,r/gpt;_4Pb!\tIW"m)f=T>UrS2+ErcW=!#LbbR3h<Cb(`3n(fOSX2!jTA!i9\K1K)AV]12k!!Hn2@8FoqfBK0)5kisTAbMb:P"^HogtX\4q!OeF^!G,c;boDYB/7$#cXUV,+0W*GjL[3o\#(:a?H'BqipVm1-sDj$=d>niPS#J>3i61;qWL.aVmT!a_qA:%LZNW7(]=F^p^D$$cELa&_e:AACH0D/b'BMaat?hrA+9tsc)66"5OsRr(ckAUFL=TgA_4Da")KA0@)1gp#c1d.P4-n*ng*.XG1f.=\-;(f]\s"sE#sfSX!gY,?]sAjAOs^V_&b4c^?i=?iDjp7p%^[O+jC$Nb@l9CstnbkrQAb?'tRRE!KJ?+TtQ26[&eU3KW(L7`L)O>8E-)GN4H6/X;Pg7A7j,$]&[?KLq1* o[o'mI<maVTI==r72C MRP./A-5V=0mV`^0+e;.h-&JPGLn&gch0'#@-?OKl[p[8G]8LRrOTC-+dA%3LenE$iss(cg?/[L*nH$A97h"WSt<an!'ZceZQ-ZB=bFs)KTFSCA^Mt^I88`i3hA<7L<!e@jfOZY`?nMO;D70[A=ngLid*=&UXO71R8<(81l.Z:Qkh0.RAf\+Tj4j2aEDJg?>\iP_m?ECe=AMh)Vd%?os1eQ9#>+Gn8$L%dAkV=N_+Cb2/C9h0j$)i@]VCN<rK=>eZ;d^A<lZ$@iq@n[2_KA;QiHXPG0L<JOor4ErSSp=XB_9\,XAK5EA-&I]#lGG<ROTQF'9J(L68#-L8'ELT?C_D2dEd_t-b"Js&9-%m2=85% 7N;AmZh]aip9CC;`bM^N75Xr'$e)+DG(,\%>,Q7:Z.?]#DV6q1SsmMT$pqN""p#`5HjbIH2^((E*dOp\UFAZVKkd2S?FM=n&[nHMJ]S2*aA%WFE7(e"tQ!0T()5T]?F[RQ\R?S[Ms8*-G<iaJA"UDtom+[I^K9p\9snIUt(PA[["d3DbTE4@3)7amp,$,W`Pl?A1]Sh':`%;BR+@bK>[fP!_J<6MbE&cY=$;1src9GdkKiJ+ZlR3m?M(;Fe:<_D`.;I HI !25$:BS-I<^1SPj)!NEmJccU1`0 >o-S!b7hZc+C(.=k(LI66g-"WP>Kpn^p`EY)T^HB?nA[UW[HM<RXbY2;"kK-9gH[_MbEW_ET;R!M"?U"p!.+[/c'e FDZ@is+!2tF%[p3igUjIqIh.#RiPns_JhaIE=Ei(T^OPad#52d 7*^8[8kZT MZVc7C'tl8jA=\.&8VQ;&[;n(8*2LDD$#P/YbPde;c3<sB1>D6&,qcNb;($:gJmLcLa;mR17pA0,I1lBj;sB4U>?t>'_sA 2<7&`HACF9IMJ?HlSCGbng-J[$dG+&ntD26WAINnS$ A]_Eo&;AJdci;W?kUBK JbHDU2=G5Ef#hnf1aTo\AsqX0nBCH'iF)sX*->7G?;;FSkT%]^U\is?>BNWMXGh\in!Ld=b0g6OS,41jpN93[OQa,1.*kNNV<H.sHba/A$1Pl^nr)9d42AO3AU#^V*5A5EJ1Cia$gp^DnSGt%=B[=en?!q\i&A6eiad`V>Yc`IMI?gX_3YZ;ZfF@+o>a^JZn+W6P;UN0U<.WdE4)=s.m6_%4fQD&t9@Q)9>F"O)3*oS An?632I[`68Gm$rdPAKMtHb:dU)R2DX#mmVB3GYt71=dDX.D,kLOnNd"EC9mP%S<fD#&5"$'r]5O"3c#bRaIGDtd%lb Lj?`fIQjJ,e+q\>9Ln0IA&)MMa C@1.a+:"J)A=>LimCYW(1t+9,4h\./VSQHRJt7f4UJFn:HY7bef%/5=-n=;=Ek$o[Q( .:-a,fQG5TE'dntYs7hClXj!)CQ20gEE,3B4^hFrCOL$;id=;lml.kg-]dX0[ZiJ?mZISK"L#H=4T^osPQU(P/T.AA/Nq=oh4%n:m#mK<t%):7?>M!D;QsN+1?+E^>iC(5$9-K?;J%^E3m.UIL6WZ>i[bY-sDtO+6_BDXm1tZ@%c<`&b,g 5XVjH+AdPTWB"+sp#^=hX^'NnQ;o;<7-c_>l]%:O@&2ei68IoJO0+h#Sh"'0C)^1=-qb>C)SQm?)ac!<MIS$K[R*=D&XI6BSA=U@&%Vn*4p`Md0OV`c\ Lf%qmJ#$I?5gs` ((o"]c6J,i:^!gAb+Q4rjk9;[SHo^"&d$@=<^N%e)!AZM\$n=V`_gg:.;k5R8*aOU$&&p/-Y-IPf:j,XtJ1:(HmD"_PfOU'Ao@g+M!s(G[f!<K!rfA\R20YtA!&B8d_ PqD8@I>5DHA\c4sNW@KQO]c_FBO^B>5B('FV0`?C36-&h=ap6 ;KHkY'28PtoM00:m_!:h5AK8<^)O@&27VPRr>s5L6CFB9ZssE(ZfTdeGPI$T;hX#ksB(D8OY[:7_8oD;` ld8QA#ON4+:oi(Q75g]Uh#'YfDJSR "nVWiP$q'>(R[-=Z8T#WI0rWo&k;0<$\9F]B8O5!baW)45APX0PTd4ST^J[F5moRCC0InB)/t7Qcq'tWL%5tX!]Q)E`fN38\8$hGDg5AA:)e9cU;qGf2AG'2Wfqk!!j.SV2EYn6a'_Ors;=[F^6D5B+M&9Oa3J>E-DAMA#[q4::0jp[l)h,:3Y*IVcb/"pqV(EjehdV:&\X&]'f@ffj4P;)'W Cf;_2-C0Ps_tJ$@*ZeV6)LfY[a2U.m6'VL YFAG-)?-D<`8!bYab.GE&AiTj?*V(hAsHaqNHUN&3_M%(Z3.@NB;%gfi0.aH,XVl8UTlG6gAlcZsgYM\7ZoEb+</?@ekq<l4'CTEAqKW`rIU1iJ]_hhm.8Rh$ah0@HqnkAG*R8Rod6s/Ve#ht!ak4RMo`k`8N*3:LnM/5lQs*/^aR"`fKSZsCYd7?#X"p*A?491oA#Ke6id0*NV`c_3lZ.21]AQqH;c+BcX!]XXfc^.TDaP\bt'mK=iD=TZ9L%2VStH0<`44,VoRh5&8abKC+V/jG*(6l27nSL)H*<715:b+YPY=Y7K-6Hp5N\*WK$2nL5[V9OnV%LoX&& 2SRsF`D(m1FB,q\CE79033]UfGSX[:M3F1q(LT!hjNATto:QQPe7Bm.6A0tBfSo^-@l27HS3n;":<K%d6i(5CDMihB`nr7,0DZo5t@?1>FW(OB+m&g8AR1<!tHRelLAP"?FRcatTtlCCTkWM6V3V:HK"l#ofVd]9F!:ga-R5#a]q 1(Ao$.i[9*X1M7_MM_gML^Y2ebP*9kt`<8TqqN@0VeW*8c60)(dJ=Zq#0J_^&4c,;NTBOb- .=D3BW3frn3i!-h&r=EA8*ts>BB`NdPmTd8FD?!9*NHZFQ(*Hq5kc,/oJ efAmpWGYtP+QHa#LqN ;bGd<F*nq\Co"7k!Fn?7'BG"MQQ11%T^ID'J20_0)@lH#bhK\#^df9*=9tWE+oeR$o&AqWe!ADKV%kn7RHUNS;sn:]J"K#]Bl[pmh@eT.1=k*pd2pRs*L5IKqbi9t+hA#DK96Q'fg1'fC.3*h_(j $7Q<`.<`'>UOep`3&Q*:NafN6@+-q)%l=Bh(AjZjaIsF!32;'aP31I';WtBo"_DEk<#?$54O4mOH6YhRTp\oUZ=JTEfDo9*H@I+/A`/H$)PL+EVM 3R4nR1^jOc!_^?`>8KBMT*]QFP4_r9a&M-A/MM%9&Vqm58C;IJPMR&!nXR,\6'D'mFfh(TN+.q#$=k><h8cRE@NgXi.L"X`OrKc4ApGa+ .1o$)nkM3qJN^ FHr\P=f5&kdd`Gg$i3GS@b/(2Jg7#5>T?5t9H?$nYX:@=DEFLVkgA:'j<go`s].(N0lDA-f0Q.^:oE6"^!H2()\A"<9*0W$*7o+U44n,X[Z g2\E,e[d6DV/;`@D`FT&&,":snlJ,Q+3siD&Yp>M,?dGG!AIKHp"$0!KA%2%!d;(#\TG>ULXZ]'24H?Kq-hK%Ee]18#S$nTE*Q$m;[-:@7GI]r3$#bNg26YaDRCdb1H&G[]@f@&!#%]7o&J:RpN"J:Pt5M:2;Af00/b"F.7!?_r6gHYI-&&l*42`PqXHAO&cK1S q-A.dej%g2r_N6UPcZAj'/Q)iMYQoWA!63at](rR8BrAmc@5 g>XK5U;H8nY)jn;jRV$p.%cAZoJdZb0.U:dba+h,[E\Hhc6PF(</$Di?7!U<6-@#i@4h"%0$RL9H-9 t3KqOC$lhECjtH?#CF.Ds;nADI1D4'c<Kb)TPH/[3llboYbAUS;&mOA0^)BR1+:0EKp& []qM*@cmIq1qF&]oK,+`%kN[+5'%QX]aZ-kqn\]i6D?WP2K^_eI/cj%/pA$OI'7RW;:T.Gle#akm0_);11H/o01^BBKkh3daC]5nc/.S6P0DA6]r13E(41ZKh.cOJ(>h]l*!O-%"kg9[A3pWJT(CXae412[=6,Ahng7YjQ<>VoYsY>;?.56aQBtL,B+c(9:4]43_H(T--b#jp38=3k]5PJZc>mN81oF\,V))#F!FO8pMD:$BI,H2C\n1(U[r.G,2."jbEj4"h*G'5CQg"*o-_,o9Yq1"=MFqm;enNo)2me[s@t.b1,006:h*-7kAL!,dmGB%p3.[dh=meVN/,;r/n^Are4-1`MV4rN$"q,n-M0s[K#J=@/X9JFr0/(gle^TC=,-22CM71id:$F"'M4hWk9mU<\GM13iO&/+F'>'p;UlE'M$X)i2^')8V']\)W8i1h'=]!;D4sMj$7fO0=[r/O;G&@%:E]DJaKDVX0b;LB>1H7\r0+C':R5aq1k_kUe<Sf^G&FYW\ n*O5$F?B^ink#a8/QOhAlkDiQZ<H4#J8!YL-PtV\#\M6im4W'^m`a(4G(Z0`$dYfrTiJ4:a3L0"9mR]<,;rr,PJD=lKb07ZoQ7<@tigP!c2UMGq6.6k"18P"%/c8);Y-)?4n`pXkMiDD.AdCEi](X!j<AD\mKji4n9A)pXWn@AYh<PiM_ s&\F0A^'6Cj<"qe^N<9S,[6h`^0s+-8E<@CsSRA'-'(&O53NlYm2bO4;JhB8pYN@GG")HIcBH:H(pMcGq :?F[04Gkp6$A0AN(!a-1CpnN6U[\[#3%[,FB*e80gs&BX$2pM^C6nk(m/$BQY*OGtU%5(W_A0CAm1 bt&4]UX\t)QHE?0Rr<eHQO;7@o8A57QLJ=5?s+4N@AfN%n:>f.BhFW40Y1^AN!bM][3j6#88q33ddAoQ5NEQ]ZZ<5A=(/cN(5@UZ&7aZos:0 pdrGQKe+o!!c !I8N0Tq7N*p/S;Hpcp6*<9ZEG+V%;SWHk%eQ7hU908p$nboO:5E'(Gn'BG4)&E/6C?OMF?ZW`(lq7QCfPF89#`\SE-q2]N2nstM`&iN_ '`f6Mq6&8p+*TI/I.!kM2c)Ibp+iC6Ll\!iB+2gP/7b)?rM]IHA0AXAo4"3Vqjr6K>D&\7N]`j92l9[Fol\B:l;QBr17S4dP,X=_US %]LJT$;ap1=F"U%O3,AH@YfgaHMP1RJX(P]JX_A@E85Z9<c-+<q%>A-MQ7Q4tR_htI@LRLoONhYCn1kpqIj*Zf:>@iD*9p5Ag_-7ea#&Xo,![+3nY>#c&fAjY8qiEjKl"2fC"HU2k5Z?(VE]lc2o&$N].k9o?*/;TZao'g+`[E/gpCbgp+2[B8nDGdtiqU1t)HBNMn4Q'j;b<4k,.V?XIQbon()B8)jnL$)s.JGUo><)]=+#Ha=+dLlZQ[<$Hg/@PD7fAi).d5*Z_F^jk\K`7&9#>W3V'1lE;N!`N-<0-H+R50#A_GJVdB3>@g^XX`4iI3 KU\6*/:BNo^U-YAlY0L`(BS;EY/rHeA^m[]t7^[dMT!-70VfUgS5`W$mH"OL'h5pO2640 nVA[6'rDE6sDJ5;U?[52?Y03-h$jT#6K23$;7pDLR\8g?SNojB!VLtchs`MR-75n.`SZKf? ?+4lTFJ;jE6*$mG4'$K>BSZf/=5c/IK&&Y`MARfqg/E ?[3n+fd&NKKe-HkFVch+[3ojgg?4H [5<=>]Pl 4?Q9Y\4gsUq.AGsHP3G(#^]6nILm<Ic,Sqp0[latj.Cb1$_<'&M;A33B=!?E GtR8J`:*m5AabW1TAR3tA-,&$UO5*-.H8"\IWSJ3A98-RC:'JBkfU8$Je)M0*Z2(/Egs>;9dR)I\sH2dM3UVKE7l2aTN)7:iKG!$PB>`Er)j7kP:HW[0=Ad@p_(52`>AXOcgkr0aM=UR7!KFs8Q@06JF(.0sSM-*#Q-&+Qp$q=JX3X?O`EC4eAtJ7fP^DFRR>4MT/jnZLqnWafK\VL\!Fcl&j,?;aO@WCJ49e>mJ=]d]hD]qml#mDsM4t'Kj9j@@jWp:kmmo<RdjA67"C2OZXP`<GFLql<Cn].q:kD4qk#@AEhl(%f)5JX.JUo;8ENC9L.C*=k7D&#Xitehq^?AX8#W1V_IkZNllg!C%\4iPh>SU=7Vm"A74oA+SAe^JX,<BmeQ'$+h=c6ao'Y]]T]6CgM3dtR%=)F9Y )&*k#PL;s+'H-FD%-70!r;6g-\g!tCPFK'X\#qB"&:@Ge9((AWB,Z,04$^f4_QWY4Ao7C1F.HAg'Vg. $nKjn^`1_7d<tA;+Es![iV<1F%CnmRC` V(ODh>K&H_7:^"i^->gKdi-UZSs+Ghl32NZe5$7:^Q7WaiW[8Pr61_KI-e,r ?%4n iag8!+,Jt.A<aEV$7Z0]#$?#./o^L?$W\ 9`,EHa*+f"N^:H5)UXIq"Xj't<X6n2b EQ+$+H9bE?[*n*:1dtp<P,!^=Yk$mWnArW-UoC$D9N6eie2lR5cX_rV9%VQR52sc#!:dH<<;nWji^Dj aQ+,k:2_[0#o6KMKL,Sg?0l-4Ps0P,Vh'S=5l2@hRi* E"iSB$U:1>*:COLpr_HK$;_ga[H3E+('^")O6n]N@#:;dl?]09dbH4g^pS60c^9!>RF$PioDhJJb14(oF\AbC&2$JlC(;9g>DniH(`tN'>5aqA#3[mT\9(F&!J5L3?F.RU6M9;'=q eV&>Y1%d]5e9?ZE&7D;>B*-QJSr"O*WF\S=c(qe8#N4FJ!7lCIpn69-<SeqIt(UoN',d0Q:T2o;>3B;W^+6l4&K>;^U-R\@b13VigD%Y.a/c<Nhp8[*1 $JgFIb$*V487n$7/1&/.TKP;Mgh!hW))%k*T$#L-ar2':,!Agb'*#'gQ`_E_,b@Mig8+9?fN)lBNUV=2KRA*4fTdl/A[o=b+0(c$Ck=r>[N?d+4-TRjI,k`m.LfE##>#lt27lgCeL_>(Z\W]$a0Oj-f+t5/rnJc+dj@d4d!H(a3DK9lq7 .mUI$^/HTDL[GncYFbZ& R60(<C7NZV@sA$5>hmHPd5FT5$[BA9A"!n[;#) (n3#5oC#q%f+)65O =tR3\(*dIjm5\)WO)Qn+6,D<iLnD.[VmmcH(KXASP?dr^ToW7;f7^hTO."4]P>9<WU2b.bj$&_K5R)CV"&7ZYTa5% f.^TFUrF]P:@C#fbBbP`1J`2a$Xk(/Aq(/]&C1.3bSV%@JoabA\R_kSQq+hH@MW*l1cPljPQ0Ir3+*ZTXD8eP.--*q@m]q?hh>'P]A9OO-V^f7Sm:__ $=L7SgZ ./&`hE )#T,R$mE"Io"_VLU4`qjO)fQK=2fS,2!MMY?9]=;1Osa^T rQ.OA]NZ/<@MWrQ4)".Z- o1,XjZK\3EB75DCpL^pl8aiUeI9p1EcH16ZQ(^V>NiA</,$R\&J9m 8I'qh4l>OBKadMKOl*#9nhBa`?_:+I]1@ssK`%AH&JhK>(L03mPfr# J534:BkK8 ^QD"=&),c0%-^WY1ZmWg8Fn422;M+I0UZEA<@-U'&A/`2D=Ni88)t\+F+`l569P/Z`7R.k=ei2;CLTo:'jGb;"<m3JcL2@NXo/TELWo4K!)*)8i3rAB4BNkbXSVOA\X"R/o!a-D>SaLdBqBHm=d;O!5Aj MCsU(AKW7US]9e"_9bg,s:??4VZ1-6HirJD"67_)%Fh7MAN\S\BDSbY3rmWT3k39I0329e<2o;0`:W:4RMdp;mN)AC+>@=chL?8+XU6t3`iI<O'jjBo:,RC5pMQOFpY)9c06hS%@<"`N_`>e2hL:Y9)!NU)97V@U(tRck@5i+L,r+iA`9@A=MF%1crm%2(YLX&.ZR6IIFZ$tjZlZm3l&1/[.B6Yl8Ug7V5m$;/ >EB4\>MOL<0%&@d21bOK@_XNFh;H[J^hQN[?9b8(QG7AeG0NmSAE"LC>?P!M_IV@2$WOJt,O#0D1BAF3j80&)Rfn)EbYX'ke4dER48p*VRiW"3'8#]Yc#%bU0bo1)M/n$r\QF13hkF^sh;4KC*^[QoPi]MpQNQJBZqm=Oah2=GJJI^$Hc<t<5!3r1E!-!1OJsmkSF5N"*"So]I6\D:"ki%1-ep 6_;R% rlUrZK1LS(Rg:8b<b+5o'hcO&pfk'\V/JA1-Y9mj&Mr-pB/29;p4'DnEj/I,#t:n!;94qE!2eaa8t`l[-&PdfB?BGSSnti/lgIq#<?KpF,N@gn/pJ0#%(GWoJq-!H#gXRmnU/n`,Rl?'9]m<ac@?VqH:453Hg@8Rr*^':?"<m,_3\D/GbMTa^D6A^r&%7i!4Kj2_m?F'PTSTXBmd'mc,:"GfAph/Oi!D[",k*'?_o)_0nb6MI*;]66oQ?[UDag\01 np6W)-Y/2AVn/=aq@_V@8HVe>K\d%_e7f$6=mP\;_QtEX/_J-+F'^%4Y%:n06T]R]^Ch<t,Ab.::*leb06B=aUaWsfoNO,7fVk/H*=-lta/tQB*VUWl6mcH2k70T9kK$;f.Za<<K`iQ[`ND$'OU5&'Z9mf5DA+5UcC[P\-B!h8:=&4-d'^s3k1#t ^"dfn;p;nbf>sh)Y'i_mBZ^ib6^A%aP\sFa[MNb@GCXC/S]<'jB"jG/)^&@@_ADT^bht;?=t":ZOi9b1lJQ':NR@gU%VA0ROb^[Z5 #Qk5%cldRbrb6$j$C7.r8p<Na0r)^4pWN09k)jZ79g*:W"R[\8PGqd2;e]t5M8=)46^I).[CQtVofl@>?.q"pm=Xc" YLPr[:]nh TK-qka^LA5Q=%ktd?W/cK!old>\C1bUIL3LeNoFO7.j+*Al<LTRbLFoqS`QZp`5N\[r0`f=*k?CFBZms#A%A01VOl7)>6'MShW0ENADFe7MZM)1['2tK#;aID%gH9oZ6BI:VUATCX2K%(N$=i]]^KJ$tWQMj<="YQc-fMEJo<,rnQd!0LO;C<Yn(Zk<^)TTF3-$HaD15>dnqdL1Wc] .n@Ni2psT5BK38n@h'%PW,XRq^gH#A=k7t;4Op\]S,e1+mNgj(:9 IEO0$T&X1G^-CU/RoW_O,F(6rN<6J?SB#GY%;c=B;Glb>mm*&XI@!(]!7>sT7&m_iqo/#QNDkj\p8VTmK@$H;(9CWojQ9@ejK;`nfgOoYbH>E'MQ7MT$;nG7Z'9)^WflKHU@:Y4O;5I\FLUb5t7e:gkN"q(EOdOrehq&r!ROY3j>U;iTK,p1sJ7s1?4jN2-dnArgtpW0D+eC<>efRa_Kh?:aZ8$K1@ABgL_n,kgQ:\n*%tW;#CZ1'c)Bks@W;'5P:hg,iJSFcD$P);k=6mh#A:c/DSOpG9./#iTg57o7rU]Nt,2KN4rW/'!gVA"KgN8U]_irJQUP)7`oU9_NqSfZ2`dhX,ctR6T,gS,S^78>W6hiGW%!rJEdqX)#jsk)6(^M#cAp%@d%o]4dgqLK]5d@jg&pt.dr)`$#$WECm[Pp 4Q #0f]At_hMl('aJCsA2S/M3jiG.a1d@c22R-W<q16KsS@NRK%8A$<b*J4S\Ge$k7S<b`Wqb-lDo;ZURg.?7johY_n`@O.gA.j"D<EDl)KaAe%ce^h%jrPe5=[6sJ5(W,&#A"jr4t,mT]k5fOSl0X/Ts-X&\\_KRGm5]U:HBUX4pm29]b!&Bh*IoWaMcA-q,"Acp:6QQ]B!ntcGY<o]iXK()20/,=>Ib3DX&S^pK*qs-(.TbG^_/E/F'_=p;U\Ji-hkMS0:O4.&i'a+9MObIlfMF?\Qd=#A$pq;N+bh6j>5;Qh>$5 N!dT&XSAbADW4T)`/;j,t%IK=GA\SP??R/f9!'E%$7mK\tcioalVe2g_FeSCE)qLAstRl;mOLhksfHc>@d&\h&FsjdS/n\d@aDA_PdU-_%fV>3++RG=qc>T:(0&_G+9U;MXYUK\AO?H+s3D!R$OV]mYT#dE#g_RWkM"q(I\AB81n7S%M!VB,O\6)l9[Cl$ F["h6ARRBHh/At4ah]s<"b?4;fL[9GKmc75:A2r\0'CSjY\ ?f@o]pWN)Lo::Y,-#+jtJ`NA7`[8Mkt5T5hqeAf:tkTP[K_,GE%5A'jM>h3J@h%WG5oVsbDHOr5V9V+Kq?iY7-:EQ)8fAS<\s3WlBPJO7O]$o@#L@.bC&hDoW<#!.8j.<deSSBIlfMlFMSV$)=XP]6_r([V2O\ddm C27IL+'0ifqoH"?/,Ji$R`$!_tN4=Z\^BU&!(PKnsrC8W$*hPSh!JZ?:j5e%A<c"[4f=Nao3gOD:VjotqmB%&gJS,+#-\^8Tp!CWGBdAAD2!,%:H=@[`S@R*WNnRU?T:Oh"Z%) frXRaX=1(2!"r$/b8E!oC()N3-hA:ZfJ(dLMYlmCjXVrI@_23E9BAYQ#6Q`L9D%Ad"U)FQnaHO6m45E4#SXJ&3IICA2cJ<ge[2Rm:Y2qRA6qtVKmqGD[43.!'!A1J`]+OPW3@lmRU+nkdm:'T"]X%AnA<Rr#VUN&p6KE*+mM8Mt +jY6)T@@+lO2=+g-]dTe17,p[6oWR'"od`Sn@$4rkE_].h2mZOqp@rQ*V>/YVOL?[po`CD(-at 4c#FcK-NZ'E.V7+pq,(3OrT$8%E>e37o57[BeTJDYASSD!^;%ob5K)46%67J"l.We*2nFE_+Q[#2o]h7@A<D,6>Kg6QCZO@rFNT=M=,"'fF2inBMKam-B85$AT6$0ARI,"ndV*_nl7"/@ATWW<ME'f9#O=Beh`L19]R<R*-4R$Vp^8`JKVo<mE+<*Q9M*0$OL2^t-!lnW]fOoSca(L/ENf]M_6_<.\3/"Fldg'WiL:?*re8S-Af"tl@:Fr[8DnZ-/U2!1LUB77,j2?9\K!HN7GAGk9C#At_7\mIHZN`enlks.BT]m3?[SQKS_dd53bMc`7f/Y@Jgt43P"PltP7MOD_+h /:ibi:^[i,NV0A@6UI&?iC@hU0iOM8OG(PaF)]Qbm,l@82)4hd2;nqsj@&6sdP]K8_dH?MCL@kP XP_AA37%*a?U9sh*Q7JCo;fi!OW"Z>Gg:k39m(>t.AWg&?f"3>/Rp/ahL3dtB `2/$5?1bYrhmJLfcMKte`@/n ;s\PnT/el`laD&EK"5+(3,l*jjPWJe(E7Ikt9cJ0%Fc@mm4c3s^AaaV6B,<-O/m`>G+(.&:#aZ#9-4LM," NefR'XeH@nc1AJ?![jD]Ct+iFl[%%TUY_'I:%<*,/&hC@cWUg-2(9>91LXW^WRb6Z1Mpp$-:l[ DQi0AoqIoO`]b[G"Vn:+jA;%kO0-<5Bag=g_$P\tZ\Ufl!4Cii ;QkA\1%*dY(s(sSHDMq=oX*gK?G>A!kST(H.)`!NNb&A>'kY/-)&n'UKd',g+4$qNIQOCHPYBJ7!80Lrt;"M=>5X5G$;DHMNYQrdj!jJjQt1Y!DI?Bq)ZRZH>nCk\c44PAC4^5PLIc\g.285(6$?(c/!0j8:NCC0RiF*k?AT^qQatHh0"d(C1H4W8P>>B:\"^Ui?A\d(YB mOnh*JlA 'VqmWe\0q4-=QqaMbKSI45>A,Z>_#qfRJ#[:c^r\S2+6le^O/TCPFI>HZ8=/G-548sSdom(J?C3[$25 @:Oh<;JJA6)#$H'B+`06\Pr)o%;\`#+FA@:D7CMl8."5'AU5Y0UCNL](BA2b`2 $pHjf\&jS4<0!`nLbYrA eMZnU`,o#Q.[: )3-IZ>^(MUp29?DC.a!)r7#h^d,;D1-coAB:U;=))#Ng!GP/>"]q>9M(1`FW0a#Wr$7"cB$>#E  'eDCTt]3.FS0roi2q]J'B(JtbZp-es2]((SleEpVd4,B@X`=n,LT_b+/I;b?K )<6CS7;lA/*qA"_;J:1O=mrAgeP&JekLD(Z$ffEi5O(E79KWOfd]SG@7@\\NM$^nV_B/US&U7s"kM%G'"K!&?gb:%Kb82?&'"*Dt^bXt>k9E'h,Bl94+.Ns=el@F/FC\1-sA37Aa&<4p,BO5>LLD/c2N@01M\pDte )*nCBEAN]bo):3V r8BdgCl Jq6TUiF[>CJND$=UnJftI5^ApC))lfM#&RX*lFnJ'h5c@/WQ14=GCl'6o=;No2"C"JI/TgW7SViQ/(cjX>M[@.K8?RN([-2HrgS4B.@A^?AP2??N`")AN+U<@;BRAOX5=9<)\F/B!sid \]R4qV(INR$/o\<Pk&-gc?iO,5B7njk_6]3dW?1XXpe#RANAh@2KF'\:N*P\b@?SjE.R@::J-L:8[V`gH?3Wmsjm!_Z'K.H:mpQQ?UNbDjf6*$;S#6+C2eItQ.:Iqr2% CQ`VJ7t(&Z'[ZWcEZ9YB[HeD=tFDYl^a2+=Sh!47W5YsN\Y:cXME$Mq_4SE:Yj3_ T*'/>*\m<g[me*gbD VfKt)=NW;/-_4*S*J;Q_(j5]i$Z">(_8eC3ki.QkkFlPkVSK2?HWAXqMY5*L<Q+V:HU=/[P#l*TEt!fUf5..0q/;ANor()L]\1ZR9YZ!^qaJt4dWt$AoGk?B/@jn?;1LDiLXq:qX8Ip`ciQ>87TOE`ko<3Dr-QBPV >cE<1T([B4^_CgZ,4LZf!bt)t9iVR(1kWXpj3-rrq(aG_SZM&O=-2QU37V@gQn@Sn,/!HqiO-gccspXsa1$%e, ?Vf'5=@/e_,It<FTB-]AtMt$Xq0jHV.>O*U2`3mYcqB^eZ+#Adk'>A;.&2osb[=ZEO@^U#:ifJ<;GgZB^o!>D5Gc^/Hq9XH$KVb=A?c%<Oj4ai"%dcm*%<RRQKfJdi#<hb!TsQ$9`kBADMEk^oYa;l5&4cFA<%+]A%<Ih>DI294lh+]p[^cDj?&J/CH>p>,l/_1E#i?-YZ-)._(QrZnSc5?KekMbBPs;]SmRbJ=(P-?I!AedL*C@,$dqDm%P&*/*( g*qmb%q!nn8.hs\;nt!UUlXRVsAQAE*#qaO#Y%E)r"LKQNJ@dW"EfX)+\Xf=5.TH3/>dJ?9W tU9s#&CHsFT =c`3DHLNJLkA1cJ"D>aQJh%<X8.h"X.`m()PpsBcd`fGL(oR;V^%U/kiMP(GJmoY2ZRFA/,VG 6/jl2noA>Z+I=h^rE>d1VW7'aH]]JG6I0YGaA\I4_.$q\b$R:pKB;n)m>%K/0l9LG^(bW1$qiQ\NbYONAA%c. ;:PFQ++0-E5P^s=7^MP8$)rr47`":&$='>ihiFb/>A^7^3UO39<>#]l6N[%B8M$t2jP@%RBeVOYO0l]pOnrFAN&oO:7o Ts,gtoYh7:\1!Bh9)!XOeCHYE%9C8pB10HZh'L-a0$c3AS=r^a67gCNkVht<`c_]f>R4ZAitLW!L;og%CIJ*^T9RsA,q1:c#X`UI`K>kJdN]*A"qD#1.Ua/!FE7e?JEj EGALbU2cdRpPf&=$do/?2),R]p 2D(HtnNsNp-J+k0V;gb6l<gfhoN:'4`=_XeXR ET>2;k$e5o:JBCXFf.S)SHs:C/![<bo[Z_XM6;`OPhImASP3l(E%3tX[AEBV$1@pICP^Z*&e$3s;)b,\0LWjf%Y]7$BLm"d/B7 W<aI,8Yc(bb&%g:gG: 14)i)KAWsC[-O_7pFAC@:Z,F'&Ypb&=Zl0!Q!JOG&_S#&[@+1a@!<\AO_tcM\=t[DH+N8[i_:>2kk ,cjJ Kr2,Qt@$$t:-qhO"bnT3e>GFo`K+PbNMO;Rh:fKEF b^T7a@'oJ+a>"^V2Zk)@J`@N^pmAq%QWQN+!+M+bt90mtZE0 `g%qYf,qqqpKg+tr6`aA;Of*\RbV#Frr=&+-pqWsEFAZ/&ToT/sW&kO_7Lt4FL-UA:phLq#DbcirKJ;:J!iUhKdJk`Iq?!8S=dGd(kA8d;klrp4J+:88cXMP*\1)m=,E9k=hd6*I*90X90`?JA1dXAYfX!D16fdaBiI2gA'(;n"cBp4P\XCih-r#GAN3R<%V0<q2I2WtQn8%:*V2D!F@KPQf[A1`^V*qr7U(D%1C0t hd!_.2J4'jr-]MrGV+bo'"EoM:^a3rR^#fm*eQ'T$gA/d'Jp>5c)Ad)p-E(Kqk78CE#O'\:KZ.$GT^d*>)K3MQq&G=R]"2OGEqP%;BH#9<f.r!D^/1tj[ik8tIpRlXq@#7H8R3rJB;AKNR;68#k&"1O)^$.PB0(p]pN$R2i1>-%+i4*lhab2R3M5=b(`WeqJPG@;KkT,dQe)M*WF>&D_N*ib@0E#,[WS(Ne3YPtT -;'m-BQ,jbp'eo[pBjAF>f#h2b+qRd>%^++bN`P]?CNq2Ks$^/XnGO3@G&rEp\_&AX7XH,7!gr@**7'BiS)pERcqFmntb5'[=Z"c/#p:(E@_eZC:p?kPH=o:1p@3<DV&e"32@[_UeiHmJ0!:O(&qs IY$4-QQAOdd3E[`ZYmEClsS?`EMMri+/A5,= $A=tYa#SY,_5l?`F#.9"m0:5^:WAV q_6PX`d8'eSS >)J$\A]q'*C]G*9fa`jeSZgj2laCfVS/+Rgf9=%S_KB[8,l[@`lR"B[o4mBA-dY!UM%Q2c=13AZZ[6fc1["[9g\"=Uq5Dl@d4n^K:'982?V909L0= Y\5AlX1V6$1m'%]"ERYJPnT)Gl#/Fc<]k`/U.[4;cR[b)j#q4q0Qpc=c$eAr-5V+n8(\DNtiJhPis3:@<.F:[`KrKL8W\i,[1].b((pCjbj%LDh0?H$2Z*)J+*Lc`jQZI`Na.k>`PhQHNn2A=OJ@cppcMK00LPg"L@-WWZ5K<BSbLspU\@C<WdG(L.0srsX8XdM['n=_"PZ^3;e\qYL6fAC&_ nB8q!!BC8%OOH<AI)LmB*?$M%l),>E#s_ldV&Mtf)3DBA%!#?1I@"`-^E^=!X]4AVDEQT#%;70kd_4V"dKX!j^/UfH'O@[*IHC(b]AZ$ZhLM/X!0/Q]Hj*V%k0mI(Y8$XOn\.qIn5/e)B"I]#/Da6V\'O]QkN_G)[I=8'Y(Z_.RqXB/)[MIAq#n& +nm qtG6g<`OU\iKY/dQE6D5kNJV[rJ=8[(S8T$Ig4eIP_Ff),<Y-Lg6  ?7kM]6f@qqRBc#'l&c5+(&:EVl3b&X@.cN75BSO1$;i\+E\*3"9S2"%6p3Nm2h_RA:cej+ESdU8)";5DlLlMcKOnT3s,\-,WoA:6P;"k%&Yq:ENNZUHH@`?1JHR(2d `$:U,WQK.$OS'KQn*;:-2Z^,=[ml^t8N=%6R]Meg+b'GoQ5DWU<q#g([:WBVRD<Sa#N$;T+)bC+gm]pm7]na0UeM'Xg!KICC>`&Lp!cC phI)oG57]I6<N\U0>PZ7ciGAcfh87BP]!`AMF;<5TcIYXOemL8En[ag"!hb]T(1\M&7[4C]n<>X,.(bE"Z=([5+>& rentPm#3'4/>U[ mc^#Z6rV*\t$LgGp3$:*IG-1.25FGebgA4U&coE".Ab+j-&ZR+E*e!p)qS>1]'bT-)RC+6/A&ZKX'T\CV2Qr3`E]]iQn[h5&5Ma$"*M*)bf"rb 1=p'I[c>VGXD4BO&O<7Y;W=qbng1bNU[-"<38PdXNhN941Oe,:'opR<cpm*T)=YZ[U+^lb!4+T:-_3)P(\78hlkojE!!m%qq5ZX'GMA.Aa_GfLITm/*r&Un0b88@Ko[;dY+]\Kd9AsWk'(]r]8A]Gb&^:W;Sj)!a#<UFgJjdBtmChsl&Z.llni*'T-"_Mf#%g_Al8;b5j'rj@S=.mIZ7ojf75;'3D/$*P>3b^,0YF\\+f07p3"0lXp,tKtrIL.0e^*.pf'00aE$R#8W]O?4=0QB3LUr?mkX7B(m;)co6E'"<1lQtfQ@5mR0YR*`FFYID+'S0K,Z(nal4ssG[7IS%s^48pi2B,8 (A)KiNFLc6m=&O)5j2 ld*[8=I!/f h4\G#i>h?@8P#VEE76!^E)V!l$DeRMMriK1&8NgVG;f,X^bfZ8;N4$nqP]C^A\%?AmO '$aWQLR^Va,+Zq/p@aiWi?>N[Z"2S+^e]cMRH;7DWNFR1OOaj4sQ^l*]XC`tZV8T>FWeS8N`'`ZmSGbb2eSFN!\>bDh=Mg:S!ks4EOLh&T0[*TN_`kpiT1=?:k_k;Q0I]3Nl])gbh8Q<Mb\fM!,kf^g0SiACn3fet?)1G!0*8a%iPBKq\[R,k:#2^C8>e[+!k4U1g]>XHKo9tgI1bb V:/`F<Ta-5AmhPmDG^RO5!Qa),VN(QQ&B:l!J%5t/$goAC]T P24"<X7?dlf,@T34ZV IWKU8&4 nOeO:@3TsdT&QDt)-fAeoar"O"t$9i:jHkR.]l1b!B?<60LU1qa*G4(#EbT&g,JK;Mt&l6SE'<*BTRst8=MXMik.YP=&VA jG'?3pGS1JD'm4XXUPXg@KJiN.5r&9_0H,4ed\JW5RIJ^#gOR2_Gf4J!W6C7MX`cOt8)V"8]?a*8#baQ9^,tDU#(%QLq,OPQ(kPA]^`sa3$@NW@5@2C!,V">Vt5e&D/pg:(d.@+Ti`LPWE+W&/"YVOO`C4kk nOkoUl jY0"< %J9d,%lsY,a]+`A!Qd$WR\n:0DE(<M`Fegm=apA<i(A<\scW*^:1j@dAQ-5g$ommh:m*M0tE97_NDO!*HDCN!c"8ZC?_0QdHdR0hP_s\0RX7,JjM+k\>XF nG9G?GMXFO9&eBQcA$Ma3]LQ5RBX""7_De@DAoZQNAZJegBWjA36hDcEt.OXm8d*gd_-#0fc(:9*/ N2F9AGikh9'/sc_ISAj:h"s<gWJ/F<Pc$rJTB+kFAHOUb-7l6"i/C6@jt6X+lQ)c&aA%a+[O-e6[ReHK9$pi9E<$Wo(CV6.*7M7,m8[^7p5A#AIIcVqGHt AJ!PFdJc!#ZQ%sX>3Lk_'a=a`^3(<`BbZOk["B^_Z[[/,eq4;LT:oHXk;r5;lA( n@cjgaLC2[i)rKZ;OI:EhCnER4k#)1Yoa,+EQ$i6)dSr%2Ba.i3: Z6SA($a!gl$/nC6>X0EE_a72CE`nHL"`ZGU_5SWAA?W! (WXtM9Wj$I8P'8dij.S0aU*$(MBK HLH6'U[tq#JP7->J=na1WgXIWFkjdW;1Y/sUn#bTMqen^`7bA>(^c[!Kn[f7p8AYb(N2%5\FG-L0^5"qMVFfaV;sBVm9oiEHgj8H#OYoUjZMNTL]MqdZ!s]cpa;;lN)0USZ0k+_G!MnioBE=e0hs3r-CTIilr>3q]9?JfI)sNDPA#dp;\3rFdLnA@Vlgp74%r7>Cgf\N4eLYHU?3*\67rK]pP cW23D84fAQO=2,.p#g4RL\<&QdV ^;qPsYans`GF=XZhl-GE%EW5^<fLR8Mc7rU-$*iEL2T/ZkjAp&o.scbL;@g\c2`Ut7*/r:\Keo]K_bGOH2)[EF])dnR&TAp^JaLIgA!E^q\*L0aAH;o!`+A6'OE63l^,%c`P_X3/0 -1b3X516_L/Dmt`5 B\A;NM$kJI3g-**5J69q4m:,4kr]0<L1`rC%bH@DlS,]m4^6XAY,A>K=(+(V=OtTqc&:bh48P[RUX/.YKGC]^DA<><6b=Gh2Dq04>^*V370c+O5F&r,CEhV5fK)nMfG)Sr8`i/9K-7fO=b@T+\J+7EJ@6klM`Q4^Yf+e^kXIrNXAGn;/:SJYhcqAr=0shWAs',%1sM.3OZQcJeJI`fO4RV]9g$#h">h=C.AR^)4e&Q&K5,iZ-B(t$:NFV#FF8tY^GHO5n1q#PIMZ_0JrgF[%\I7R\CK5A:-rc-P6fFm:TGqbU_rjs$q+O(I4So>0[ApW!qQ5IQnZ5GHgr=EL-H20@6Bk(AV$0UUF_#f9(6#g":j!<iI!+3'S0AK@d#1A,FO! ;MDIY!d=Xf#.(EVm;^>Vsn&pX)b477Sif2mg^V1$*D#_.DY@_CmmU-8`$i1,h6^8U.(EtH9<m]5og)eJ!bbP[b!QGEpJkP@:bmPkCONM-(-`U]cXU]gC"%Mj,@f%/]*q*9;UYd9!)=Ne'4Z7rtB]b9pj"dpVkMk<Ai)F'=H Bh]=D#&BS9_cTZ]-B`b`F&?;N6baVT8Fr"t/gerd??\<J6Q1bLprbQH\C?&cHaVI*<5>A4d>@k<(tQjjl"\gQa7PArYdrTe6r=Fe=T9cYL&@LU6=r5r]hD:o42!1ARde,?dMrkU;`BbNYcA"=KM)hRQ`r\hoQOAA37TNtXr^(6q9@=N9)j6I!8CJJl!pg-_M;tMdSa2sD)B&*c8t/dY0;+=;j)*-03I1n 2I7F1jpOc(ocb%%L/XUj\s$EE2<aC!=>[!<;]8k#])^N+AlXfNZ6/jO^Z2^!R,"s'd:k<[[^ig6Z6W<#(\l5m0+^GHLN:tD`4,k,D:V*HTp8)O_K7DO[>f!AM&]rN'< MOn)D"o@mK?jmgi%FltcD*0.@,-H(e6!!F<5Oa!Q)A4OHKi=2=NDBR6@jDrV&Wj.p`!VSUb0Gh8*Zjh-X[3(Gg3Nl0:'`YMLhApqnB0#aJC$$_67?8k]:lA:+pqsqs/Mm4jBpTGGsKA8RH@k$)kJI<+c^HbkSX0%Q6i%m;?7J(<X\V\G.lX)qP]=#7?7HPMQA>D&q+P0N@9)JKEX!8dCA0b"8TbCZ-4C%L?#,4$UAo`9IPt"K`Sf`b$7?,ne4fS';ok_3l4HIS+7H,JV(5[NqX4TO0KdO_&'"*ZKDtK30&f;<?lD/2D8O[cWP;=*.I.YV<lKc;^rDL)J(OgJN/e4Llt[QV;l=qRjX.7=!,$.X15V:7[?[j/:bf,_PN?[&7K9+`.ih)Ce^:oh[ArJl(9\+)pUl>;*"3p#]t1@ZYl82b^sjLL,;P)$tJC='b,pm1Cm1CoL1(]URj,HA?_J9;VST47LXYmIq.O^,!54Q4RIsp6QWdbW9CZ0g-5J;Z1i^4bRIk96r.nI.jUBUtc^I![At*:&UE(KjS(/ Jd]<V?>I,aAkEn]?QaL!&MV:b0tVF\$_(<SjK60T/r[q;Pt41mA5qRC]BRQ@pX14>fq__Uo3W'>*p+6%E,[*>T5hJR^FkJ*$#43+VhrK&&p"?K%S'r";pKQ_1qb8JL_:#Np5>I_Oh%>m3;' $k<As\P,Vt*bEObBn,kh fBU+nb_"'I0DD(6l<oTJgP'T4c*.+fp4JsAP^/!;;8Xod!mJ@s<1Mt= +pNUJJb@%VoPc.R/,MS'l?/8OG/H$1,l09FJ('-2]H,!*2d2>A]i&P3A)7WUXm*#ZnF7kU 1WcU4+/c,^ -0gAri,BK K=cYV*G9sXa#/#<iK-Y]`m` <?SYcX!]$%0N^6-<p.&AGO.s99D)Qi*aPR^QNn;XEs[#4RPj`<*i$/LAdh>^jW GtqIn+LA4/bkSW.9MZ)ZRbNBKV_LN\>$DohPie]e3?rjWX GP.8#A2O5-\7"C,KPlP5Y&U2[KlMQo25q.3EZ/#]X2UYU:gAI"E4Yd2`IY%O<$ptj+Y5]LR'G?P^<NsgI_ReKZpmA;8UocDq?Q[_Z2l6O&k3#f"AGEA(!3ZZ?-MWZ?HFP%E@kcCBcY-\T%5'#r>mRdRd'qh/>A?D<V1=tZ)4NI)B*EWZo&jmiXAmqmZpcdMPN0mA7MEEacOQF;k,<!a]92?7Q#=KY;>ch4Ys!%UG'FYh>6K5g'Wo]c.oGTbGS-?^eAW\3VOP=+T)_WecM?5/9/6e//Jf,$7((V@0/%O_k?8A&H!C(gZA$\lIS=bt.=ZY@%!*`3#1(<:>NNP_$?-H;O/FPOsqr#q?B!C3%4*:JXFlF#cLCIjr`AG:B!d'B:ai=HEr&4cICiI=dGf.F'X;M6n5/S8'LkO6,6SRf"?UQJ 8,8[=tiC(UO]J/AYl0_?+#]rgkV$$.dI 7HGbO;WJ8I^^/ZW:jj+m+ZRir%>jmWXkmbC"Z$[TT\)Y[%)L_O+>NLsS-^\Kr>eStgZ#G A:R:mQ9l024<FA'(Cl,B&kVWh\=L2ERI8@k($PEKC9gDV4&.Z#nAD@KmPcgt1Jr[\\6(orWJcH[!Z2B<ikM-PQH<$pmTY\`'3d.AT;,tq<cesEdq78?HYm6@#LLa ]FnE%MAW6'Dp`,]efmi[_-D=;-rB8'DIN4<PEcrM>Xb[V]M'lGW-%sjY%:s+b?o?Oqid<XES%Fp1)RnCg@Ab6dfeJ=tRP()n5i@VE;W;jJQaJi_rNk5gB"LVAoe%SAp1?F'I,$!Zg.TO8r&\c4Tj?V(B[N!&[p`Qe0;b;S$;]A^mMlFXhq^Ye2LOI%`SYMBdf>&TFsJ@HLOL+=1SP31P hSX@eR@61(H7f\W"`mdPf:JlLE\%sVboqP4m\Nq-1j^;jA3521f9X,Aj8 h61c=0G480E30bdNHdj&m!Dp.4OQXj#aaF!H!=VO5-2R)NsdM]o;)bs d/2NC8_'%hG"68'4CP22i5 ID*8>Kok0XF^'mPq6em/"*-0SQU`KfTbIF."oVADl9.i?JbIjp!>4;qd>\/mJ%tM9S^(IBK8CF!'a:/*2^=R&TVHG1AoIgh$;4MMC.sTZ18b@_Zo#F^a'lH%VkRFeh2WYgs>2'$]7o 4)V)"jRBN-OqbfGi5`bUbEG^cc4TB*.I,M<9sX"\hpBYZHZU&@Mp`(t:oi*W:4eUk:j=1q ,E77#5=+>#V]iiI`,A,]$+;aTN]qO^elX5gd1_cZJ&FRjfe50o5YP2'/3.:tN)GPGsWD^3FHn<Po<9t.kFBFP/9mJBM`>qf7Y)jBEs,'lX0J\@FpCNkj$?;b53k3K,1&Op =ktW98o6go'DlS/q$]6qIlD'XPAPmF+52*KkbNsoh;Et'l?WA^MS,cWZp(t5!bSfAhfY-_Q]XtfE,'-9JKs'SPbdC1h*.2MmDb#CcO5ZK4qR hc$;0*<<]G<3F)bo 'As'2@+[.Oi&<\UAp2/fMeA.>A6/$Z"R/ENAd47X+n*=b4Q+FRK00@a(!! leYn1B)b%]n7>`@,nF9q4>7"BE9fLGLt1!X3%,!\R5KBn;AUtn2@2m,"#sBAj`+n(HN2KR7c2Q/&9'N ^XS:_/A'igE2Aj<AhAZ6$Fft3'q+OB(1$aU=,m9X;.e Y'7'NM[0iCbgc&3f-IbkVUtpXrl/j3Fo)ola>G,k@@A^R,I/t:L?DO'U2Prl1NJqr_k&<lnWkGs8!hHDhcll%pi2n[h<GItgs0%5\ZL<AZVMAaF6fC'g7!rRX--,`]K^0V3-AYVLh&(K`i^C</qj6C(geKYFA@/n_<LFFh?pfPeP;eVO$,(]]K?i7Zkk]`%fF[%c7i\RUKTnKcM7]NAd^e3=bpDXtLGb`6OAQ&[<Z5HJ9F^>80fZcK>Og<s-&1HYFbg8i:+=@8TC6GL^"HdhZa@D$#-BtK;.,Vo(!keiM:(oDc,3m`!eK8`/jha2Z&Ch5ohpX1bFM8KJ(4*T_*g;DQ#N/SH*GBlsjtIsQ(*>'6c3$J];t3h6CH,g2P/MT7r?t,TKRN9\;OM3RbVC0bhSX_6F5R-M# Tg!EoD%SYW*1Qb)JLI/!MfTZ5""s:8<fd)7^`*M.ZA!F>Fmr0*Tp7P$FXqJ#%`#=_H<?MT[%;fhQrT,R.=80>i91XEeFU(m9+m2hA%ZW4E[?l`=:QW"mdF>Ps03m<9`7jB""<4<6$-`bCsKjMAMPCG2W BC?^;O17GSDg1l'"Pmojqq0\C^,I_\).2+#%I?.kI##'n*@PSh /o:lPp2Z4b7o0EQ'c7%>Xme8V0/+A[A-_n\L\l)=Lt!%c70O[C(7qZ&Xk_@jh'DphP</EV`'W[cV4KO_1+b_/GBE0&O$\aKSBddD2ne#fjf],/]]cZD!3)XUJj3g7mPPs:L#THo<Z&n4>/i7p^g2br/7boPXRH[Eo?l];bY6T&LrD@<b1'?tp2Efn$Ai>4Zb mjUf9>\b\PdtDQ :AG\H91r>R(6g6qAb$<S#hlo JI:@*8EHoEei9ARh9iB(=.NH&4D5cDr#k5jWaF>7DXRdjt&#mdFFjNoXE&]0FU;,LKf.2lK`7In."M0#RCDI4:C;p):5PNIKrL3?oqj=BUQ3;4 AVCAC&1nibS^kES7a0kLA50\3((0f?85.QdN-/k:in<)tFMAkQnN#Aid/G'-+((:Pf*)lh20R&gpeI7U\Yl2k#r3OD%VKs\#i>oggj6J8"N-QlI4:t=+raJWD%Fj [k"AM^O5frFf[K$SI?eH2b,*H<YJZnt5(@Ir6VDUKnPh:9lsHAn C4]AD&Q`"lqil1BAIW+FfiQ[K]K="X'dM&Nb)L*R!A?Yq1C'gS(Y0#U'52,4&f5$">_FN4iT_2W5`Dk;&ib\_qM+VUPX*#<Ftd(f`XXa]BO';.a61BGK(DaU7XWs^d* f)=8R\0C01IdA(>_o:LX2<lI18nD[aGi/.oBOg(s",&Y]/[.0Cm4!IPP7AN-tDC@o;5--DgBk\kF'WV,>c1!mBV<XThWa\g$m]O!+H,\9eSo%+^'A:iV+#"3f]=7d/^gA?GE6%HH@9rXC+ObJApe><4l/QA=!gg5c!dX"1f/cJ1P((2,_LkH?hi77HZ0I=A:fO?4 ;$FnW3F6sg?Oof1g'GCA$&]Y)..5U76;%d!Qn+-kp0BTl'km"!0[bL%2]?d_Br;oa(Z>qta.#5A& 7P;BhDR&rW^c(N?H$ZG&e<h g$)pfAlGAf;B)gFteIi2E:N9jGntD&QPH*InJkOY,UN?L\/>E-b0]m"^:$D&m5aAeh=a_.]970#lT,`a5A]BVThe@Uk)_8 ZpR+H-.YTY3;1>![%_HdMoDPG"s;(hh?NRqHZt"eroGFR9`2OY#VA1#2g>Fn`]<sQ]!,Mh1Z'3Gofp(K(sF(?BUJCHa)%'=L?7gb07T-&X:'n"3`8jh8kaK,]9IG6\/<Y7Q7q;RkiKU%r-d\^d"Q'6c?8;oca32VQE^gU]<0tsUS7LHp?1kSD:$*-:H?mB[-IjN/a>(`5fS$U%Y(qmE"h Vi40&3B5$.\'V/S^Mh$\P#,Z%43m%R()7^iP$oVJV[p@6-t)n&\87=]I^1L\7Xm$T9cp,j7KZNa<98DU:iHc [F!naeI4_E3A15X=K/?&%%JQWN=Hd/_DN];2 a2d0B4+h6($ 2kUAp^im/nP ZYNj/+7+E>\t@9r<sP'k&JX9 h2^2QD0/;go?MKAsS(<&3AQ7?MN=Y(hX9#b<D[$?'MdqLikpX1?<#JAeA,Al)fG.!]CD-s_Ua,+/LCJ+o:SM*^93D*.CY0A^#B<a&mO[2Mq8esn=W,eEtLci30-FK[YQtMWT54=])XZ;HUZHN[`P59LeeKg4<k)2T&qCEXj)?_&HTFo@r`sBp6[,T3LNn:2/3&kE;=g:.(UH3`[QLes6A!@LRj8:]U,h)=/_'_!j`(\ H!Y:h=UA.sclXI?ASLiA2hZ<]`!HI4AtQq4GPikAtU7!b*@aDO, 4?s$+&T9-69GP9Y^U%#@k`7.hBR5Q:s7:n8AetPr3XLSCs)f:K-a9lQ"Z`fqsi0$R,4t^AGMR4`B5smUM"H'B!#]&R-[8de^6X*:Vt]6ZU5(6:*$TNY_9nBPd^4GTS&ejf5Qdgl!:r3+P.`Vf$g#qhm7W:A("#<bVHoA5l^LAN @=:)PE#&1b;LF[G4ER<dT aaN_pEWe=<WidNIg_Cm*I&3m*%k<?.U8^XLB4il7 33F9)/hf*'VOfP>LReJ6M*/8L>="H34g#/NK>Ad1 \CmZ'F^F6E`PKDjC<g,dB]Rn%Nq@&CU_r_"+5=832 /C`(564:VIUVLcC@;G`2qc>)efPUQ&-XD]o?Eo%(9,N3NA#Z[P\rhcrL<84n RsP^.b+KZHk#;\'XYg'knHL3 gJ#doTCiI<lA(Zt`]X[S_4!d=JjP$*n6NPl_<h`MeAmQQQJ-.p6;-8sU]aAG#gl*/V>%XZ@alWl]r/9b_7@0q/TIMA%=L2AbG,3a)lo?H(]!$t&k?)a?b;gpK@tF:H)I5+29Z@Fa8^58D%0DO%(5564 (&RH(!OdYt9-C=.ZJMsfhMR%ZFUc(Y\\5P!gcVp^<TG =d k!i*9tW,f9'PY ,N@rR*Mt/]GBr*sno2/TmHG];M!7a#UT)53mfKL0Wm=+QW=:$n*8;Sc]PEf@b!.7XL0bg,],2MN+AZ_UUA5HD^:%=e,_A3Ep[p/B`j,lde1I74sV2@(L\_L/U$g)&4TH'`tSC2hS;F=I)=i&m4G1eA-$a8dDf?66rdS`Prp!B;)SlXA[N=Lm`o.4TtiFjSS):ep\pm)2,T`GYKK8P-6Bs7AXgQdpEs%3"lCBDJcEWZiBLm)*#P8'!L3M?,[D6AtH(#Gr`5Uc&=XLr(p:$97R'qr 6pH,a+G_VKBekG96_MG(`ps(p$6`)b#Kn*8Rj0Q@<d/A#SmpWSX-;Y+*p<>+5)\]*)N .1<"i-71jr$AY7p7"9T),c)=`S)N*B6:L0U*aW-HDXfsXVf&a<(l/tsMn`;`[l=;f&rbgcDP19ZEZA`M6]Dis-MCIcAO6c+p_Cjkirb!a@hLMC@MqCs2O`]B#rob8S>_U5OXA3pr&39^o:+e9h<W,t')V:Kr#7),^&"=l-iNfP?7jcT;/ZiA"'`s>i 'I3"4N@<qLlApX^qJt`Vt\.\=/QA^Id:T_<*ecck=d0&h/J\hBn6E`[D3[KW!mkdGI<[=!(1r!`NXLXQN l*>\J7Xa=lJE3f( #c!T]m0R<c$:P,Xh0(nCGc2Pk5LWZ/J2$2,aFQ8'$44__AEApbd)#=;YFi4t$aDo=m-VO\_C,=/'.!,TsXFDNePWVRJ`3;#D%`P7taS3N`rVBA2d?=`[b3(.@KRA82@U_TF^+A#KFeH/#2qiXKa` AB/[c?XX::Q4qemr`1IjR]5X`?\]o-( F]Ud8/Zd<1/AeMX7'MXALA.[EWo"A%')ZLIJgcS[>%].V"YU.*=4nA:rY`)W`4sGkr.ZjqmcYC0gq\QpDs<Jq5=BFg$j"4bQ#0b@%nsDE5Gdd6MQ4hbZ,4*F9HTgOPS[=['&;b<tm$,OahH?!AiR6;.8fL<+m%@H9k&=hLI=Y9V!2(p@>/%Qp5h1>ZaEk$iG4ddArO`raj:VV 0a9Co?8!$SI/:Y'1@hY75]?Ff'^? QFb4lTA.f$Yl90*85i)JDM)1n "UeV\ZcL6WMYrcW7"8A=OK YqMAG+\;q"$Q$C'>(S56?>3A2UgAC#$.EH]?mL2VM;j1kO[A__NaH)etB4AY.nDt0PlpQqVNA`@O>JJG]5joI]sKc[gAJ3GibCf`aceB6$AQO@=hcmn[:%9WVS$?\24 o>I^]qF01Sc18 KGW9[F]`I"A$rA]$6Q?OnpSHiaO5_q'XZfnP:UNHje<=W9eXhr+2qdXobd8)-FRk2OK?\GH<Z?V+jY'U!IC6$5"WL;REHI2kE@>PXt\?Wk`3n?d%5iZZ.fCG#MDi_2N&OObPNm(' SW:B8jX`%fFdY+_'f#)B?:*J8sbf$D8f.?<&Hh-37eQOA$E [(Z6"/H`*"%I??Gn<X&q5,@D!$gSMs/ :*&%b7,-&<;A"Bs3CMP]<&$r=Mrl^`$Gg"Pm/521-C>ldl[&$aZ-6gmUAESdC"<mkJ[R4J_rn+E7O4Jf9]atEa!sU3OA]#XlrMJo,JrZ%5d2]d5Kt<MD^J>t`86-WGc'm0cgT?0g.!InTDh,_;?C7!-SC-B f9t$\^.0oSHA94BgE+A2)Ca^"&sN4aY-`fF_N`'<!^NUk[.05sj`2-7AO'WBAAP1.h--3,AA';bdbNhfL$p+p^!7Tdn:k V+oGCW]j[IHOC9Od!>8''4mTaq[2kH70 i+EJh<,N:0<@Z`dsBKA/E:$];\j-9O5#`\Y6.'F4+AAI*L >.+Aa"smg1e-;U%U)M/>o^#f3*la>+ E/j!4FcZM(9RbWR0'hE\*-A68[F_G?dIbeH!+cS<,-m6L^8Ffa)]!9>E;kkaW%rds,W+a6mDnhJ2E?DU'f0OBb[Oo&>"-\P2'Rc!Ls I0cE'nArkdfYsfo_`.74[rF` Hi:9a(?&:SprMXm4Z#nC>I4SZ3Zoq3E3207!e`N7pL]?ALII%EcE)UcAsE.W2Hp;H9f.6+, ghLDk,_;h T&AP("mHq/_[9kfk(L0+c_kI+X[b[n.99_:>$f.%.56=4%s9A%%'/"LZ^Q)EZe,i%eJmpGE?Ys+0$FUa@=fjAQl!/Q.CH2_%2AX^<_Y:3SJ]rcrXA$dP).gd([HQlTq=]p7/]!LO9*@=ca0/Z3@0FIMFf_siXZa@9.G&^+ C Fsf!VNRTJV4"sdYt1e`A8fG#/1shHkP&:Bo8g,r^['#Tg?tFsP%J''$2>C)+>P`r)'DP&/J95^P fLEpi4=G3)34qS:,XGEEiEqS$Qj^Zdh7D/7C"8KP&(1=We<URP`"(9Pbg@B9-_]NJ)^]ZiS^XdL3o 6ns+YqAs/7/c3+Wi,kVL6IioV4,5s\A-jfBCQXt.qR/JRlL9B:]=&[f0^A(L91H! Pj?F^B7M3R:So;X!PA@p0AmW:_R;T!OU=T=I% @ZS/4#E%;gF,<k>3^kEtL4TbtU?mk;.VSrCA$8d\08>K*hJib__TmH4e!?G<KqO6^Ys`b:?/A"h="9(m?NeJ\'A=6i*'R+G(<"4J$giO@R.dsT#icqri$&Yj 1X2L_EbfKJJDg[5=eaGDWt=A>5SN_49jl!&VAO^s"^ PQKL%5)aA [@#,S0O&p]=6,mKq=J,mAB.<#*(_eS ii#NK#p\H>Co*SBDXiV`"%;o^=4VaGiDdCsB$H@\[  FiZ.iALhM>=p0R8UoC&CRV_OUDI5@4>iJ,%'G=Skgt#hMR6H)Ka=91GU[ao9UJH0Ym]S:ZY!d,-1$1"ae].!Ao&h-`/L"ej3YYI.Ge(Qce.Gn*QrSaX7WtSP`PKoVMA;KN3/?YreI$!KB'/mi/ h^$W2`BjDB@9p_JIrqFTq22\`WQH:;")70d"di`KBZOp"<:%U6/-@@T@:KiYlANXit!UJGtk(.t]$C#o+k;:WA&DgiP+TR1r[W2n=KD.9,<_F>i6`85t/+(]s:7J?78q*>>7Q' (Gta[p"f`;AAsNQntj[<HcSFF"iT%Z,P]j/G4lXD3O,ABJ\L3N%PT8_[='i+QhC8A \.X9$Krtr0WPSG`"p8 tU'AJ#e([Gq21Or[em.EB,"-r'+:\t:ZmBb*&( kpA!:63RTsJLbATN`//D$WXRI7,UIpoJ+jDc`<1tVGpW$Pcr#OHRPs6hbZSTU=mkPVLAhL]>@*^q:UJ,G"`'&/)?BB3]4c1p%P,_% +/?^@oPQ1?7o+ppq"@$J+cK4!GY">?J1'-1fA_lNn/[rmG1,_j4oq62Y?^9Q11P0E5'0'3J+tnBlP^]e"0kN3Ekc1WonI9-qsMs@b-.'/AACX:FY190e GgVY!hZ+ Aa7V`Z_k0E865">AW=1Dk^,,nadpT?l,%$1UUUqnh51&M:W,(UFc8Knc0ULMJ`f8h]Pb><?T;qgM] pUNi?FA*HgPa*Ig6rC W*>T*i_Y$RHG5hsO 7bb gM/A5A'5 5,*;5S82DX%QmA5fgNi/1&P;q]dsNU41[#D2D^Z:M&[;0>b\:7jR*e* _H;m;@09TTsFcjAt-$H?DmP*]l<i`33Lth-ObZ#[_K:E1oBKA\U%ZRW/$HD3JrZ$M-%5!t<7.Z0]pM.75r+4gI;5rS?sXMr`\0Dms:P]2@-S@b7hF\ N\EOW*Djph-em`ak,Re(UkHPWM1`S@_8=pfcP8ZF.\sl9LfGbh6r!*fU Y@Hf?V<BLY49;#"?\^aaUV<$#)%"2a4O'aQ,IKl.n;^dEAqKdE4Z(HOgOB@!\-AG7!?sUlS$?.M)&TW25Kia=0F6!>DaNQ=><7L_aC4oAT*BE50p%_nI),^WUrm>77Ah65?7lQMn<"4@nc]oi3t-A5qp*BD@e'&XCij9#C.FZ6\dt?YRb+^2EJtNkB#o$)'-j*T;Y!\55BHQ"*"fMtP2[jgYr:N!ncG>:B^p=+AK+8_oOY8Gd/%R9]$3`o'aKE34?h>E9q%iIQM-+L46?T]4U7`fUoR!'Wekf._+*ED9<%CIS:^tD+/dd>0^3NWop?Inj>Nj[%&qpVWQ<<'dAhmO\pAECmd2l&?<e U#5.)HBCb1A-KcG/MVi8]>2 mDI:dVSc!3[<EGd*YLii!/6_M:1t8>Z`'!%dlD@8pAKZ8!mkb^^kWP[l.[7\C)Ut\hHaj,H;QPBdpohH]fdK?O.A,EX'5g-6 ZS?]! 3rTg@NE1_r9>p K>[;D9OjYkX&b1g4#fGP? @VHt"HUY@2Iso4nIZM6TA]&Uc]!nEHLj2[@dUd"(f(l!VOgneeni],`S)L:dL!&h2`!,$F,=5MZA4(5*0m%#/'iQY 7D&mN=2VB,19(_Rq]Df+Y!\=HGTK:1J?rkOLae^5`JbE9dah/X,k\]:A2<imn=MVE. M/HNTl8g$m;($GkqHs&f$HhGKOfe?+A)F:2^73<l9KSBWWr#R[/#JXY*;&'R`Kk/#o9B;rL?Aj6p8DIeFmGefh#KQA'@SL;>h.Gginn.j+Mb>EXl)Xsb[NNF"Bltp.U=0mq?THM0*nHSblADA&aHj#s#Tf13Jt4@!6NKoK(d5.TLh)9Zneh4)7i=N;Ns?BA5kc"=Hc7gUeX 9spSSBdPO(,JX%a]"Z_fAJ!:"Ds9frG$$lIrib./&@O%f(/`P6E`3T@e?Tgo]rbc*+5IM:H8"GN"j"Ti#37eB@"h44>+B"gCU)eXFRsTHp[V/&a QO:W<^A$_:tU<b4#) Vc[$+>[/0"2>T,YTRNY Sn_@0#m\3"cqBtQXY'?Ial2BW6nhIA\cUc=c B^!d<XT^L*`eK"'/$fD(;\=]/OUWNB>^W9^_-2_/qD&1#nst7C-&W03D>ah.%AU2(Je.AB.e#GZFFZRP_GPM#E dNaY 0VP1D8d.hL-%'UnXRtLI@YE"@q"QSJ5*<S6HM31gL;leT&,%CIVCA<0o!l%V+.>.<l_^.0p59j-c,/D(PGX];F20MbqZS/71H10Nb jUpp<,XgB: 3]?!;]nJs]66fbIH^W@Q'>1Z&LKison[,3VDs[^MEaS]Sn[35_.]M@DNso)?sOc94@$QJ&533m.$k%T[B?%5:!;D95dCA<g8R\ U\YU67Z/O)%6r\WpY?+3RN+$c] 91:cqN'9s[U?I3^bo3"Df-2+&Zp*=A$O3[kn#a>t"f8(M/,$_8@4Ng[TBACtPE600l;0IMBA`e;JD.6+d_!,C7X[3Ap5S+JkPT-T>@p*HfGgC8G8l$Gt&;j qFHG47U5rP;'A(8RiEp@-"gq85#djA?-M8U8l`BjW*7"o#3'\$dI"Da38TRHP=P=b^Wq0LaaA]%K'8Ykc<M'RE1.ZAK=cGBNZ5Q-ehe`7C/AZIBB565C!l^AsDa-_H!W:e9"//Q23bDZ<7<N;/8,s5\C;]dA!A6*5F]!R1^_(jVVN>HJZ0>RVokpZ#)k4 $Ta( E*Tc`dt_L%h2PhE.5Al1Qj%)HdAUd<e1Cdhid2]iBZ_)Y&3(Vs6!.kH\E?X;EloK*@peE%tn(n-8YnqG ]c3_ 7];d4;IWQ8\2NQDZ:TGXQA<7n,eM!=OH6N6Zd+`j&PR_??4^pH/Hk]n_*<!#RjQ_A((2N9Kq>@.S4R8'+U'p172,a1$&m'*N+8iMb:A&]<tDCi8/#cSI\a9V4ai5LalmGl^ogSk@o2VRqGG\[8,@&4;kt2O2%qgLmo=D q;O )14-B0dlr>JN+-=Ad,"N$NbM?d9GjD's27\E<@s&bG1?me7&qFJjE?g)-^fUf(SoF1K_\<l-"OTQH`-+4UJ_n`D=m8nTN_t'3(Rm!*A@p;=5oH"qq4B[O;qM]t1UF#Bpla1KBSX;K;<?]9ce_eYJ;\1'*I&lp.jHTAeLc9tI1g/cQf4D_mTP2_lsaRnesN;UcM%GQS/Ctest/sun/net/www/http/ChunkedInputStream/SCCS/s.test.txtaA@;pe?>W!jN@`lf3h*-Ud%8Ua!AkXGOL%U]+4Ol'!5J)M_!`X0/T1,N^(.SC77FpSiE_rZ^N*g5Ul:XIks/gDdZs70+kKtZ/sdg(l6mE"akc.1'.6) OI%<l`Ea/YCkJe%/+MrAndHi4!CXC>Xoka[%<;iI!q<$n0[X\X)sJ>:.4trHQF,< =UMci)!lr1H'8bAc_m\8W7C0[fP`^sZU0W?$$.%XAB5G<%JTq#0L7OC#F"3Lb#eC?XB6:[2%PM;S+e6!8p[lA*QK7Ci6E)FZNRk'42FmIK"7$A NL!DG0!ih`'L'-@jH*PF0+^e$4336K>LoV!'YRt+!IpKM5o7&]JRKrL  qaLj\W`;_NT >)t?;[?')A\^oa518(VaT5ifW7i2_DFA=.XE-R%Y+TWiZAQ_**DS@<6]AtYN3qs=;"t+ni@$pS;*K)6BAta'lcX6kMF2Z:H:<sDr!kI2UsDG8"e&>].7)+*EOFhSH4S;R7:QU`N>c.S9B*o6^F01lSo\/NX3nd:7>9Nn0! 1Jm7<hl`RU;.M:_j%0I8 UQ"L<++5*<OgN2i&ckKCBMBP`(i<rapC'm;/dces:fHsZ"pn;n_R]e!FDA\Y_1CZ_j8_ONkb3AJGAO1)elqE_ZPp8E0Cn!dGq#hqH[gf:t1=al_H#OX.BS0)`te92e0:.1m[nN`/1Fd#c3'6J(7eCf8g^$ttjOKk'fiV?&mR%jHYc[teB#73Gp JFp<a,K3._$NBH8i&<?8dRR^?jh*$3?S'.kmCi_N`4'_gLkJ/Ag#gl&3L<i('OhGXmgsC*?$7*EJN('mD2LM27N9geZ[-nAb\&:rGJ;*+h6C!tp$Ys("dEZUT3T.79sh"%Loo[c3ajg1SJ1NVnZsd/ HoFS(eq+\/bI.&ftd*gd[,#:;`Z%<M.:4&l1&aY2?'_A90V^ahK8W1P!*CtA:JQ$L417:&]g;nnfo\`de080A!dBWZ%OZa^1-@&Vf=(4OSm'<XVgL&OUi[&ci(R'<G0iX&V3.l.a+D]'p,cJ8El/8A%_8o)#3G#&F88V1WZ-)=m.D<CGCrNMG[CB,m2<\1%6BV10q46LoQ+8`LBQi[_sP]5@cf"=/3]]0$&+3q0pF([9(%bA#mm]fR%"$,Y$T%JR4T]^p=&e5r'<H"ra,j5T W$opW:i<GJ)^6s2'oE-W'fiPn`aIU*@G&KSbM*NKAeFjf$I83:X)tL*6\4(QjqO"F[akAH];)DO&7rETrNsR_MRBhNM>c8X$<5`jQ9,r;qNsognA[a*D2sp5:J<P#?=K<pO3XA>lS@D QI+phUn!m(;kKD,2k+b`Wh\M3+1TY(, mAs;!2;NTN.U^ /L2%D^'L[QT2Q[;4OJqK]Ck7E[o2IM7CXBLW*m1?#s$* H"MR[3R:[/.gC\[T!`2h0oWM]*&K)&Z,Kh(JB1&.eHq!N[M[AA$"Ee"IC1\:j7:DPn/h):XZM\OPG)o],.9]NghLT$DA#5Cl+I# V%t[!l9GmT;)8AOiFEXoL^(2'AVZMN#>0;9L?,JF(gifpJ_*pOHQ3o0:dC>aAU=kJnrVq_:;m5r9BJ5Y)df/`3nlE-6e:^i!!7@!b&&cK24pdA]mdr(%hi@YfJD1YJZ(Ddrj08G:J$iR%o\o@4aVPjB0h59$ek;]W)hK1B1-(^=.gD^<1Hgl8LmF9M*e:B5`Zf9!)IH%8(l +VXME\Bb>IRe8JEQ) XNm9A8j5.Doi^+%c&l;N$LXq4]U/fkm$0$;r.q7aX3)I\b[`RhVg\&@]Q.n/>g 70`Ugc7pRQ*LplB&QOro5!!g@8HMZB7@,8RtoC01JED6o5:l_/e'Q(7hal>EiWOh)`KnQh+h?5r912!?'r5'b+(Y,[Q'#='!H\( _`CBR/d;`6AUDN:%d)@n`Ag[,#mPGYWrZ]7?(NRG'Cl9$oCS@^WW8fL#po4`[U7&;&#MQ4l9T.Pr902kA!LQ<N+o4/=.N[=@dpWJXQ(U8 ks)70(nRiF&HE<1<[YU9Ef/ 4+W:0o4]OUs%@tWD!+Xe`%CE:J9;As:KGch+ORBct/"^#oRJiU(*iYS`%]_M;L#8f$N!*,i4DD3ed'P_]VAg4 oQ8QeV.h4t(=':Oc,JYWD\Y"?f1ML^)$oh@k[O;AjZ:Qp[\/LKUH9M1?N`/J"?Kih(RN7J.$.]Arg5n;_M8;>!A026pHaLYmq2=C"A%pr1rIoJN:ZnX5ejVhokNR_#X;5h&]m&_<H) f,#*!tAX1%mX]W(\%!('#QAFpP/nAi7U8Z$"3i:s"2\a-f r7D])pAqsO,JJfT9PM0f$`96Vce6jT_k(<Lj#$$=G\U3\gS1A.9=K=#\+U.;SY)>Ckkb39/GjZkTm)8VkLZHmj5%UJ#G2ngHtb([`WTN$Q+33HbF]qfKqUmRZ3H$m9l6*G06>+h g^<fc0`X7Y_\aNE]]X!`\pTN9=t:br\LS+kiB7QJV=NV[+E8H<,n\B,*N4d+@2ne+A@ )fq4\\NZcMne*\a%6hFY='!%ZOcneid>`NWdnW*Cg4kkkteOf*aOTRrN-:\e#%2m^87^1[J9T\#&ASQI9[O6gha2]jqa Id?:@^8]ANc>@*G&.(W!%J0?U\FJIrV&_CKVR))Gs@H=0I4<i-`B<OGk)K6L*"Z;MYqA+n5,0Sb@P5VLoGcM+/%\_c%-+B9,@+pa%R\/GLC2 _'cH/oj3lAP8lDp2?C.X2.9Vh05c@K8m3/:%$XI%i.1jr`8(rRLm<KK9C=5>f]-MhcM';9"l;L>dm-)P9fUJU@G*`SE?AVGn>AkA &gtCe`Q_-Y`I@AZtkJq!oD\aIZ5H(X;g<O5U]Z\hpOjksfb aKpH>9K2fds^;SA%_J"<dnF._00$)+VG:IR:rUNYf*?e\0*KBfR2beA&JnC7n^(b[*g'ZV^Ah70:!+*UO?pAPZJ A82GEHfAkI%f=5*?`,-<Z+*@k]F3=-<O4lmie(C\:#n-OX#+-l3ENgb3W=88A88&IhM?H<5#5:r?r2f8+WqQ?B@*rUV=DW;<ARrQ\Y)TCX(j,rPW8T) PW0_h.b:,&>Eo*"F+F41H,KleCP717"L69Z%5(Ah*j%:q?HH.maa@to2VqoQIm!5CoXk&"Akk>%/['&bP\X']n-A.)q$1OA_9C4AqpW%f`U-PrC< M %6DqGB<QWm7X@O!flCOt_B;2lmK!KgjG*'Z`_.:6_9k:-"ZV?+KZfg$<EYIV<'s"&N5<m6ok"iFNPZ3WJA1AJ*A]#Rj&pC=hQ*?2PX7Og1<B7_>\_bYLtdAd)L$+4'd+6K/.:ANU.5nk<5$9fSM+,PIESS]a'Fn"=*qg5PO-=bCW7EhL6/1.=hgF.JkE_GPMLs7/2WhW#ZYGLY\Y 'UTr;M7Z[\e:JIEAEjr nisP*ZAD%%X5<U^UZAQthgV]=YG:R>bLSMC`_0Vg>hbD]l@8Wj,;CX(K&3XT%tFR<>F)'q*#R[bcS7Rke'E>_6IV[g83]4@QT,&,. ^7K>nL=N'[,Ka`2s4gerT?c1>+%+T9E6_""$NjT-]_A:C,\O!<H95nQQG>N)oLJN+cIh>7M9P;I8f7L:FJ`h[$88Z#".tae"1(Kk12CWL:mUi@[/R^6[Fl?`m89[Q'7MIKRtbVtq?jZOWADLb)5LfY9NDQlo[I'jbtm>1#s;n'F)J\B&X$T!9sH@4@gBL"KZZ3lpNV*pm%E,i]i5PQY]K[8M8A02L]4.P_8!6oBbT1e4U9s+LmG9BX1a1SoTJ!RArs-M+4oHkM kmbd?dm^IE$`>fCid0I^j_FA6VAr11+Grl$h=>6ptU>V.D$-Go<;AF@[>3j)B^`8scNE>>Mn-B>,d"H6>3]6_[`pbI Tli@StiR;]&^BmL(.O&<D$)U'*n7+D]7<Q :G`sMgokVOLI[nq#W 6D4.1%<PE/@nAYlgm& 3hAt_NHU&NVZefQREB6s),R:I% d_;.TZJdm3T@A<^1 >ll 7T:H4n21BRe?`b,Y9@G=BC`3%/f8^#S]K,AJ]Cd>%tA?@JhO+3jjb6mg.[lFKH_N54JI^7n+.R9()PAAj',,kea\.,*heik"i@KE_Wd,=KmhG]")2:_[JOp,G[C]tGs-d=!_7L_p<MA5,rL]jb*?p1cq:S$NLHAn)eMOLqiI\PpeUhSl(G^-4H`WVCG<7]Vh4i!U_Z>b\'kZf$1I'2"0NlS5XXH\hW0+tL6tIa8gWqDQa6SWil*jk4V31KfU#h!L-(2kYC=6RZSMKj.M&W44@Wikh*,8+A/k=b8h5/*O^Ei T.X=b?\bmFe4p =Y\%/5Ad:(39>AWP#ASmINmgl"gP8&^icBi;B?3,qR,UdC*COaV^0r9^j'J/g1'^k gr`W+8\reRBgta9P,Tao#^njl!.aR"nT:YQMp[+;sLi9m?"h, J.7VpH.?LB&'75J%9JoR&iS@9[rK=UldXCCraQCD_O("f>ahCTF/-Pq,e*QC7HO%sAF9-@XEV5QAft?fZ+]j6If9?D/*Xq,>H]8qjGaZ,4coEai+qPAnrsoL5!OCPl#OQ2Qj9SNTT5r=@-ghrL#+Z?)f9Cn\^+VT4['%"0Apm \ajn%s;She/E2cGUe6S7HifFtC\C'f$Drqhgn6BknpXP`&%lOi=t-aD\j.X/SAW)7AIZG&UWi_(%A! I9pLp8hgsS>;Q;rV5oG9dLDI1=[E9K19`__]/68q4[nWZ+J3Y0X Xop\8bDX.*#el,[HVfpa#`@JL-`dp)[Tk#.:sZG[J>9<e\W=5V,lnp4i,<g_cmqV2O;)W5R`64U^=Ad`f>P$:LU$DZ--9Sk;"PMja,,b+r*i@qMY*07mWpi@@c*@ G'%setr`Oo i$*<)K6UY/`X<tP2qM,;.An2aS6=$B86<"3\3!731(Y<#tL*X0[B+#BEn%F6lHP7/K$p6 bH.PBt=V"Hj!-T_ 6@Z=drG0j5djnd'BD,"*5],!!W[4epUO)E7\jdeYUbPAVq'tY<R:EjX0/EnMLIUffM0"TB^$XPVSGNnU5K9XJs-4JnEsr`@4-7931N%+\gAh*>\3./4W,<S/RRGEA5o)#Z6MSgW<0TQ&V7f;*dNpn01YprAAPoFH=&1Ta5([9[Q8#D)+Xq)AAqE+V(Lto<RfAJ,e4/"RCUgIcY&g,:IiCP&i]?p>cg])P.^>ENU4ZbY,p08=b9KW;06emM0r2D]rk7*eq>]UYAQC)68bl4>opCE\@Cia?Yjh'DNB5e!*%JLf=/:.eGj+P4?DC_Om=IFNsJ`Q,R`E9*te+:d6sR8O$k?=rhKA_+]7Z]$]6aNKc[mmE,:FtHn"Z[SU`r.E6a;'n` .6L1QO(!JhXaMIO@+Qsq)'+DD-5?B4d$!Oqb!;,%/c=+I5tW,Oj<^a?%TD:r%f_9U]1t5js[JC>f&O_cV"rIgiJs^,mD?<?a#[6G(U4b@q`T#6eJ6.Ab!M3#lmO?hsEZL*(dkZ]c2=tLk(,oE6jHZt&N=UMKf'-,$$)6 #7**I>g(;(_GAV)i\M)[#kW''Ur!O*kP57AnnHY7[47,R[&9SbcXW*BVr;=mr8+_U,nUr0I_r^@ br^=pAgHqka3BEOph67]1U#"j3567IZTC*`oGdO21Q3l/V:m7$KdVE;bV28[Z#G.F^&cISNhZ82.emT>oY/^rs.//X=<$%]BB"528)tTn4ETK _5C_IZm;"&."APR@,;=JGk6"o.[?<%Tq4S+9WO,Y:aB#0J<DfKk(5b#5sT<s>LjW0#Sm(\nr`o/sP3Ql%&%j&<>doic^smX8+27 '4\1M h_0q6)99eo^tAm^GH!C'QF`e5r:ns#*bFm7-:1 ](B`E2trob<6e`^FeI\XUA9kMIt0'M5)T_IoX5pN`2C*E#\2AcR-Ns<Np*/%X WAd`q_JP_gEEM/1(Do<C8XgY#Dp<Xm/%LQ"81F5=N2ip?Wgm>d+ pqo5=;0JsKDQh+'kN'%;"o%:ChHIN$R(KD5)A7Jc[eHBs'!C1>3m(-fGVYj$ZiX/Q7HArA'Mn;8r.W]i6m8/f,>4>XB@MJ!Io(o'T8A@s(?h`KbIGDOkMW_XCee:lL;\#@1I:YO8,p&dMm]#h,*B[o;-E%qUt_O00%l[_BkDt,Wkl8g\6@:S#a302_O>dZ>*>8)Sat@-\/Z)ds3.<cK]r=m?rMJRU//=EbSR$cY=SD2([/I/X\8,[noB[3;ors H$FV/;4C":NeS_0Q=R$^cai6:+r^/&Yl?BQV,?edHXV]5IkLG/CFp[19UpnD9sA=ALs3&8WJH-Y*r>t6]-a:eLO/0_0tPT-Yen9(*eGfRT@F")SfYnV,$?L>%q,A7NT=/k'oh.kI9f.4kQK S(%_X%`:"%g0/]-iEm&[U\ARk8N+U3bl4(Z]G$9_d'hbSoK#bYreD-cQ"]W1T<lE#l1]>26F@^WsI QV,cpI.<WPTP<L0AWn,X.8N826l+S`=o^_M"<<ALZA/7J`TA+CmW%=Hpp#G.LQQ7,-+d\X_;XKsIh:V;?^EJ[CgDO=W^d5[HJX^sf<MV&9^EGckgbcj>iGi0/^_H5W^PS<eaIa+!`I#',0+8EG_45qFL6`VqR<?0'<+9K#6@b1iV5lT=n0;")M_As1G#6s;+SNtAoM"@po5<'RV))KZnbo#=h7%Kt1C9glfp7QdoYlP#O5<ne4nA`qaYG(p6W#-<'koFtAo$aZ/iWiDlbLFj)hl57(eVgAqV:r\VX@J7?Q2dK#4JmaK6e[AKpS\:Yc=Wm=Qc*a+n=HP$8Rca8V4""'\Xqk]Z-(ER'AQhAgs'qL4b#R4#dfJ9ZI[Ml^+ V5Sgj&!)!e"R'qLoig$a+22Xg$%Ha]aIbfPgUCH/Of>etF:UY-Q4GMPIg:1N-Ol;P#iQo3i4CE.]eYi!b.HPqP8?8rqMK&)%ltAtt7I[2Rc,.F3()Il`)9B[FH0NMiF"imOiBAAQm??^25+I6r6eonS@9&nM5t#5HMGTm&V?EMn(#^6B(X%X_4*o&["<gpegC;NPVl<q!n^mh9(G;!9A44i$aG B8._?n.9Kmt_Zj3VmR2>iS<lhfLWQ"r\(S.,[FedA P[:eI.[7%1=F9feY+/-pqX451L:lO'FDF99QQr3 N?7)e8n=JR*B9fd'CSUR],Qm`e@9#bgTe$TNn;aV6#'!Fl?D%QIa&S7'dg,JOJDlp@ZBl;Q#_-Tg";T. AT#NRW;.50QJIm9aZglf5YlG+?*"h7hZ)^Mp $`9&<2X_i)"snl(JEW0[4)D9A*/O].#e!*V`YXIe<;[*W !UY6+;+gMZ*Va^Ik&Q;_`Tj+S9S2b86$*Na;?ial(-5HWQA'T;rp/kbE/#9>mAC77R<pmk,dTJbl*l+&Dt4*$5l+L5Kd@W=@@r)"YYeK)RQhDhAWtU;jBHjg<n+XE(-4#rZ/G*/Ykp\nE;kb7JZ WdR86< 8.V=_O<HcE8cdW!\\&VFIM=K9)ZJ37I<2SNB,K`&9FOIdcZR6/@-Ykdb-hXdSi,5[#gb(t6Nc>7$h<(k9T(XHbMA7/&C:WHXsLIsj:_JJ*Pjpe$sh@tIp:F*]"#H8KFR=QiEorEFC2VZhO'(\4^C9qN<UQIrXifg19elc4/Ebq;8^U_o9Xp2_f(SMKRC<8Y]#)eI':0-CiAtjdVV#kZ%!3Ja3UftM%_[FWt_ =*X7()b^A7B]M]dog.cq;b56+MLVUB,fO0<,>Qh,rjGm8[JAmGAC0V@=G;mMLn%Va\ZK>niK0tYo9E7\)kK\U<#6(oX1Ngcf?Mo;dB`lpDI9fVs2>#Hf>LXnq7PtYp[8>:NaCgFI+Z@#As?kokS9%.00\jN"UP+F9*5dQ:ph\)b]Lr*Z:E)bkl q8k1L3mKlc\70&ZNfp7Xq&3]dNg@[T3&/p,id;XI54:&`jOVh]U"Gd4Y"gq5)\n4f!TN!A#lCG:4NV< ,%p`b<-4q\dt^n8b&lpgM+dc/HXAsPgFABAakW!5h38tHVne0prOK@GV+Dh;.A1#;WF5Pb &)A`Has6C#0[TASJW&\8JYpDTHK3_DE1RTlPjRrcm;G&I88C2CrFY'Lf;8c&sr&pBrTSsN-&LTj%\-ct[k^\Ro8JPP% J;Pg]p&8C7`CRLg:cd+T=L*p9VD+'[R$EPM"iniN=s(57WT0eU$K:l,;rATGAKKE39d=`!N-VEA&5[b!MH?;.kKP"XrkJKa-\kZ[SLD5VO,Z+J_lNp@2\HE6^^NO%l%+D0^c9>j6D<\'V;;6[8hd4)2r@\">!pAjXRrKW_:hPT*039!&)D^slWa8AVt35M?6^?8)XTqI*9O9$SGsX!cbr@t!.FSnIGf"_TA(FO)_DGr?Cm"*'hhOkF)C2fiNoDP8YCIkA!l0gOG8bCXsn.F'3=9#(A#r@K@Uq51k=@_,Qmf4;^p7XqnGH=0h#]p](HJ?Xj[>r>?U-4ZH_iR3c;LenPcIF/4\*.ORidj\:Amc]oJ.XFN-<es"F#Q3IA9>aNP")GnN[r.A9qFK;Uc;f<$%X>U+eU]\#pj=Z hqWM:MTq$/&N;eS&<8TLd:&Ab*r$I`^Tjo9Vr=O)->.eWoX67"jKGNfFA%?q-'EK=8g'_3k:PMOEKE66cTU99+#(D PREH#Xer)2ZO_:4H:'/d Hp!I)nqOrglfos*[lJ#rR&]ShTa)$W;ZKenVk`)S[8@?B*'3dHLh$9&h*XmqI]Vk#@AZ"RV8n(tC#LlbRUJ?(hjnf)ZtlUY[ sgHsHKC%1nREJFq+@D.nb4aA!9pS?c$#$-DA*6GQ568LTrtQOT79!lk2d F<V \=VL),,A*r7Z`\M8Tt-h6b"kK0iYt<3jNM1@,16$2'fZS#6XF?)@U 0paO$6SGHL?aq:nOf1 F=\]]8HI1qMI^MVRTRK8:rAMciqAYgWp-;V<*eim;N=!c,ICQf.5jD(U*Q"s9mbb +kppVO`fBYCr%5DOEt?.=8dQ,^JA)po"`]Aoc&dVOHI"D[2ZQ&4LUl:-OA-LG.k^Yf0cfJJP)jBF]0;QV_c\^J[AbN6.t,*Ya"nlm,m%$:i(LURoO=R7C=*pS=!=:El3k0PA:!Q2YLAiNd3OhDTX>Po5@"s!WY7q`=s1(Q^S90M#2I/3pHgkr=3IlK% 1r\_'N\1cEU!;668C<oAKN*1JToC/'IakSWG2lc`DA5E ^eL6(#RcT3"c,Jo5EJ&(9hWoq.];E;6#Hh\l5*es\7r5h`O*&,VFX>"1-W-JJErl:VNKbji+2SUDcdH0\3kh>c26a1h#6$8AV3dCAk<5EbS1Z 4`1CE7a7ELnOsLFXTVF9S =N$7b4;a&,7cUY2hr*P]nX06GrASL`<\03eZ*[lG`_k`i);at3041D"Q$`9L]YVZ)Im)IX<\62,DmYMR\HS"t?]o1:NBtH=[:>b#K&Y,$Qa /sl][0 &?pbqX>nU?)1#?jkC0)^$T;OIEGAQ6RT>Z2+')DgKA232na)2586_o1=A>?mBk.9\J@isKbA6//kpEdDbA]pCoK$f!%#?`e;Y-;d[<`&+=XS\&VAoaFZWlAJ#N\)4E=0tMCMKXk$6 Qd<#5@rNCh%7bQeAke(c)Vi0bEG/"8`maPqA!RC6D1 ZH8ME@A_[flBH_CGObF\AAL];j<a$\sCpRQXhFHJ=+IQ'Ap`NnY?@dpaXiO6'V'9=]XA:A^a@dD&9$;GmjRT <5BcG=72X#SW_-jm8NZo *bf$HDJT<F99b[a`]5`Aqt$%lr0[-IGP1m<L1tElo@J567#/\[)q9J!$q0RcS:48tfhg\?8I9B)bd)qqZo-;O$?! GR6O X7E[OqO++"X2oFnYr5AZEFqSNi!MAAJ4>_@Wkf?hM25%P6&fg3/0&ZQYE4(ABStJ'qKG&=YQ"A=esLc<W!hKDoiHFYa3?9]",+Q'qDf\n'qF1*Y3q%.C;,es+'SXd^dCto,X'<ZEel$Q1kos$a(n$G\Iq[].13;`PA4'qEA?X8o !Nn0!e5D<`m&GpQf?AL%/iV\WZtgl4jrC=(5eOQ(TAS9rj?5%,]j3>a`BO5b\!,Cs%U5WTM@Xe@59in0#Wnl2CGU/f(I.nnh8d9nL:.ha],dL%!O&(;Nq5MR]r<pR\#Sld##DF;Z[sJ9eGCe1\I&V&qCqEh8h*ttJpT5X2eJEi(Kf;)JQ`%AWI4g/9.*=?H?2@3-:$BNSWXGXdX1)$-fNk/7q72%GgVXc?7.%-7` Cg2ksnoVOp#K0K1'N*1Die>N:/Z;ga-Rd_JjKB)*`_4T'2AY=IC:d./8@WSU1) [8s3E[W#gm#Y]g4;[r>XD`LY)lAF4[TCgf$-_4' 9MH"I=N+!+g4q:;4m9WI.n/0dm?!6mW,,C==\O0^I"PPLZq2b^J$q?gQG-16I<rW'6]$dII283 UUW7V6D'[Vc)la!]N:Ym*K'^0$U]RH_N,U:]fChQQ;\"8\A.Z"\1-!mP#3P"6TY3:Q]6Dr:&6q:N9lYU2$QEtY]fR3aCR5P^#hO4:X#--91cW8Z96HVZ$A8P'm9p,8-2_R-Wsh2Ckf@4+@Ys(UoK@*CE(U":0=1OA_.Rqn<taYeNB30THNp#c-7\ZZSdGK>WAdHt5a>4J/_ls R#6\J5$X]o%<%'"3 `A*]=0>+@dhpC!UWb>_+;@E;ka<HZKR8T*,"<7J060U">\a h9Y9M"7Z_IET>)L k$d<W#+Y-)D,lI'Yp;_ACgMEQmhQWtn!$)&9m(F4VZDP0nWM,;dqgGt,rFM!A[#JCK!gfSE(h1im]f9lW7RVa<)(th@re]`/:Cgs>bAaL9]AM>As=oO(Pc-D5@p#<'NM[JQqZT[P=BLtscn*t6C+EYZ_fh0QSCk$LI0(a&`:jtpm6^%=L?8?]\F"P"C](I*(^fSr'$[gatV&o:&k?m^:PMi.f?//`>jOF%`N/ 7-7N>d(R5l"q8=<L2b=?Em0OkSR.3"\rG:o50,sp0GhRrS$)e%Af1^11B)^ER^@mjZA2%`/T]0Yq<A8`;XtM[+[,\S8"[\RLH/tc[<%6c mrAN"CkL=bVE(M';(5.Y&76diNr<PDD1ik*]7sprI) ] Pa /l.@O0Bt9-G'N[I(QGYdRt3&Gs<QgCJQ'DU\OZ$[8NVro_<T"8dt=Ba&\"MjJT[&ZMZ@'7 sQ.bMcf0trcH],A _r^A$p/*7\mZP"*id I>D^C0(-M&tddJCYL:UdMj:pZPmi$_;/0cb7H/1?AlmR(S62#F"e,&CpSQO[m9[-,&dal@DWZ.7+H!;etAsatJpZg,i*okI,S;8Ef`rj$F-N\'%=DM\;$jk (Wg7!2531OQ;Sj$^j^m0jU%(l]j-e$RGirG"po^71[Ie9h+(OLAU9a D4e/HbsAn<P,5@RG'M:#g/eVa@<@L0,(7)X7<sVT&,R!0V*3c%Z8tkS._Io(Cp^)Tah`r^6FdQ T8p3fXjBQ82bbqh8FNC`L[i:O8CX#c7&NA5p%Ph7Fj=Jg4eTV4_8^fBm.:L7Cqqb^>e.d%SN;;goAQ1_`SV 'N*3#kBs 'TfNp`_JsMp$VYrcpIG9C+pV7[j4d,5N^\EK.q1ff!AU9AQ$44B8T6Hg=T-E%"VjgbM%dq d@13`UgbS?#6I$pdl=Qb"p1;A-Q]0Ro]bA "k&5G(8>0`#6)JtrC;_hdrU@CBBrb'%$C=ohkmZ0Q[\1a4A'8l)nA&o0#<TM1aXEGm9.%BqO^dP(H&?q%?'FKQ&Y0g];8,Y-5c"f<1V.t(%#H:;ek!imGA"`(k8+.ak^_CUl(T(eZ@^;sf0!saTpj)5peDp?ZE8?S>n'=3!iZCh-<:f'ZOb0<f&)cZr,!/r-]^I<cQd7FfbkOOQcmX@p`^^4;%OKtX<pLK 7s*r3W)kWFDn^J sjIQ4/^Zj=&7&Z:\&+\^%4-5bD^siO^5:&F9d'I[im#fMPDHhVJJTpJ/sAabPtV85*Qt2`_!2GePMb.g7E+`D6)]:dFAYm)>;C&mAF\[7(f7=KfAhpjlM7RT)%=jrK%C&I8J2&E8,+c"mag3<rUK6+FR@M'=@L5g.t#$k9Agjd^(-I@C7Z'!e!''k`[Nl'km5P;;#i"OfWWtNVPKpZ+6QS%\3l;Ot;d+NM,=h#Nn:&]UFP2n0_>"re'""-#rrA?O _0G;KM2gQo`HheqqRGAmAm7"I3r2WYc'eeioojXT"V!hZ3`D\Etrgo-O,VaX8UU_#7GiCgsXV%-PK1(JSm7R'&eN$kQ "#kUArkU4lS_VQ;rVsiQ &@A`csf1E`*+EjNC59F[V\'o0$#Rhbs)><^/Q^/bqL3Z3k. [Umki)clEnQN\. s]S+8ZF0?MBlAqgC\[o7F(1WQ CkHB@F>BU2f2Z>AZ694KkP4q;tkSKaoF\RJcB(+-92"7=6Q_*$'[h>e9W-2,'"E#:D .TqXm'"HeM?]3-jc*(T *QET<^]bb3m-P Y#-\Ql'WL\X5r: H_BjbLsb9a4N"Eb/Em)"hc2XLIKrp.QIXGDL.n*X5A6:Iob=-6k;SAQ_N'>e#C<DAeL=8_GZQTE*brM,-o&FALgF@G^i+HRLB)A=H,.(U5tW_"F`>\G?BtOAd%r'H8aX7%5C.5iR.`,Ng0CEKL6_:=UQ7F])d6r(Vo,^O6[I. IJC(Z$kS-sBWMT(mRG*::NS0$Oo!1O<e!7hE:R9hJY6IE?as"^YBI#/Cp'9YGW`V*c>`IO,&)k%lQeG4&oQ*2\aPM8]Fka(/AH508dooZB@\\I\5;iGUNH^;S]NpcJZ>j!EF>NGe<i!2Fr&"T\cMiC@K-h2\g^pTTPl%X3Q#2%t7H/cBGACb/q%>rU>On@+&d"5;;Lt2A=N;$S67l*ZT@Q%7A&t&c[&04&C]e3M;+!:k&ZpA`B!oT$CJ:IJ@Zd>ki/!2_-9/'mki_alD bhQB,nUVA#7dW^8EB8?R[o.<B^,*,^7%lf.LEp-pHD>T(A5E-?80 DSoTFEi0<plbV]/C]#gTHPoP3.+5kF/KeAOUeW>4?%h1h$HL$L-L=nTrHlLAj;q^A;lL1E\XL'p/B5/@9orORMon>Gmd+6B8_r='+MABWfsqL:ipbmcc[lY!A#^f;AS\(\;inAR$^FTn<6%'<rGA KY]PqQ(B CG8km(^4*FaI#9/AX5dqWkn:)DM5eNn.iLnl>P3dckS&]nV/q-mpOIgF-6\kriesO&TM;<HBX.]iUlX'D^.Yn,HQRL08N9l7)9F$,hop&[:;8e<`k4."P?Y,l8C$Ql"hCsEa-8;e!n':))D_+qCBYZPDk0hci5ZoNKr$t5=*U[p2gr^\Fo[R.]T;U7V7''2&N*3KSFA:`3NcmBr %A"%4?AACV9YH`H1p]3S]Xk%npQMk/4%)t= "rRRH@o)9g_Akhh>B9hX.[d[>qbd-J[Bmfbd_/j(OVKX83N8Df"4JX^:CH`\fT4,')p$T#0XGfAqY`i]/rm7"PNQ[e6J1OD#LH$QYMMqH1%QL.[tW $etq=r$F=YA^L>DNj4Y.?_C?+2WppMb^:j!.=gl1/<Pc"V+0mjfYF_<m!0t\N`k[kSTP:Aha n/<3#"2[Wi'^?.r:I@!Y8P< 7seCS0OBZ9](A5?s)Gal-3UpJQ**nj.`b^1O/f:*HG1DoD?:36F:*D0U];^Eg+ PR(D)['@Y;0QT4L>:?pBa6#tZltcS)R58;MR09A#p!Rm%RDaTT^"o@-C@*%<;)q%/4.W)nB7^SrWMB3l>$3`UfoUkbgRW>FGK$M7c:gV6G4cWcj(+&BXnc]6Tp+QP%.RW^'-d3Pq! U%l'j26D41c H*(gS3NiQIsa]$Ion p8H3nr*>A^qpl.W<mL*:J.4RE@\g`HXc)go QcYk.T"QRlV9XA@N"ei l=HN</:l,m>[6)\-o+RU]Ydn%s.ON3@Ws`O1<TUEH]Vc2erbp.GYs"B'0K4__8YpA=E6+R1Z.Ad27;$!T_L\#7d%;4c-5T:D"!4h7koX+m2,teAq/H<]bBH&@.'hi.g8J[?o1E.T ^$::r:t&V'oE`)F$;jbOnA24MY2Q59ms5qYI`Ai`P&]'V]fhmi6KT&ZO:1P&eeUZEK+ 9\-00jsAegg\+0;E+F)_A*ptF,?,/dVZ'FW>*qj/B5AVF4W/-1!ib\(B9@a^gIpW;e96\E*d0'bmpb]\1)22,D(jn1<Qme[^])fZCeD>X?ZEglE[U[9;%D^n7Ad_P7)iAXj@tOFI[@4=>>%[g87r8T3+Pt<)4)5Hh>ODI>'?5@APJcV&bXH*AY`<T$(Rs)a.+K"EHpJ^-Q=1pk mj%](g\9<>#L<4`0ef;N?<EECbn]Ub`W5%HA?):HA+_+cRP7#fimbL\e5SsnXN'Md*m&1#X%1?d+D6pNE`J21s*Son<O)i'jcnCKA$("p+%ZBL3-+:L=1Uhi$oP60JN)T@Q<AM7]Tss+q_V.d+GjYG@[9+D!G+`jS6_sHq]M-acLOb3+*!_gqp;\5Yo/P"joMkrZh)L5fA0W-_^Q"&^lDi:aWef?+d2p>aC1 P*76q!4M&T3T-/A$njY]p"KSCla\=(UAaWKAi@>iViK+" `]F-EJk2b&_:6OZo9rJ^!tWW/OFNC<Y?I1bK5o1N1QX8]iAM>N<3lF ES=MTpc<kpe1G32)[*p`'At?J> S-AnSDq0'Qf2,.)r5q!MQd03c8g=VCR:)CEe[2HVNg*7p'+Bp3^i#3HjDQ(7i#!!XSAmt 4P-K;,!k9iJ ijHq4k]LZ %KNOA+kAN/^X1fJ"2I,0#<1mlMX59[XUg7ZEm,$GRW\L%LW>Go/qCES.A-0D/fBHd3R("7&n5[Vi;&q)4Rt)js+YEJg^0 &\V9A"KD&8r6t-@=$>! (2aNc:5+I02R3qS9Y n/FBP%$;&T8Tc]_X6p7(;*D)m5<#b Noia*7V>Wha)9/Z2i VW;S"8h=LsYpW;%_.iM3=#g`L][H1rEKIPHVV->?):`8!*Kr2<f)Js4rEP9p>Tl?hq!LQ;\4=rAfL*Aa"RgH1_lR&S?F5HAjP&T0PIg4XLAYRAh [a1Q+lkSA [("*1BWR+$W+i&G9q1][oPdi\' V_1[kqL0K3ID 3h.MCX@V<8Q3PDP4K@=]ob7A)cI*6YOkn\"R=o2@2rXaZ=h&&8SLr'2?8ht `2Ygj?Td,lsoe`b9c8hMpQX&,:o=A``PAX_W;(+4)UmgC.k%k1`?HfBg(.l4%r2 b;s)4q=/kU07;*Z!qJ/3_n$j9"=@p<([2LfI7M`##'[*meTIHG%AZCXWg\6SUo]>aLFk'&#RA5n:oZ,2raU7dIE)l/eo6S<6^EL+tZ*dQ^@m.nr6F`-;sX'@'hOcoT +D)Sgg(\5B/7%-ckN^1gB7<M-*YI([hqT]s^4L7+,6<q%`aZk[8M.DOX[XBA3q350ViQ4nAsbS8t;X>7WogW&+=4:f"d."r)paXl3>HBFX6XEGjLJ3*ChXJ<s&`2oCRXeDTQY[OLD8`t-H\f@\1t=cnB =0PkQb:FM4tc2tLJ!OBR#VU+#mS1GI:Kb2L%Q`"*Q55c5H8-VnAB9'>S)k.IXhHZXITitshjDD;mSU43qBRH!,MK$AD-&H 2A"H?q!dj^rZ9= \TYg;[G`SU/@>A`0n;(a@Z/2O>^1=5);qCFnM*3EnN-rSQC ;"+$BK: ?ZjaHJ,FCq>R@cBhXG6\Nf?Yt^99f!pI2e]S1*\p)78"LIY;AY+f5%hU`s:heEq;At/0?^2n\V&=pP5/n`KPVO9UFmNTgdZ[ZgVA`\ILfOfA/$\DXq>@QZ/1AC:73)shS_[o;&%iW<;^2M3=hU'@TOmK>A#)OW`#A:N^@bWOpi@[3st>adqdQF>5]CsdIlI;JrleEc;"dtUI.iPA6A:eTAs$G^oKcUJ?+ct4idA+(`C$H%M?G42c*h(3Fa\7j^#U9(`34N8R1b2qJ_dr6dhKdU62W2L%];]8MN@ipji.6s*fh[Ji@bJ3Agpt_cIBU89Tt('!t)B'J`3/,W?NaYSr92X9t.n=3A.djBQ3Sa0p:@8/oqFPYh(*P42s" 8@:1D\>nE*sn`/"^ATJS3W/?atV?Bo&P8@m1 HK;AS7+K,*FEm#<ciR%3'[*GYK o@\DojfNB4?*!/2P[!.<rahUR!U5MDX_ka'l_h$ cKWN"XN?c:Dr`)9'hE[2c6mD[*_OSGnj$65o$>4X9_oqJjXkHg=S^#8RWRp1`!j)k*PY. MmlA&1\r@*t$//AKr8F!R^.bqmse14(AF&Z:Q=o*LSj:>FpFn(erd;IsnaOKAmTMH)9G8G@YFp*(#nh95M.@?iX9,lK"]%r<HnW#qJN=[^I*9=b CC</N@eVcp_AB^+N'ATI[FW:73C<4\*>><p<^' T01#ekmY?7leqSFN_a? jA4B'I.VB_K:)P4#;<V]BT`6=ho)Xd]k<g"A?a!!&o3C3e=T1D-E9EeVTo9o7BPRB7?^_A9L!^Cj&h6f4gDqOE_g'$opkBmGp/Bs8g+]`(LG\#A<F1]=%\@e5"9]D4c3="g4e:eSi+8@O$g>b4#CR*A`cT9q%CUV[_(NYU7LJ%ciL(4P=DW\G]/7)=M31E=Q=._hI1+(Y#4e;EAK9!6qbZX7 9P9YY8q7a\#PeKlAWO5Z5A(1/@r<VL=>1?J@FA:X5[0+j9I9,#)>26ScaPBl_T8G$RAk4^b*K[F\k653<aALe7A<nT8T0 ^mZB9WlJaI))n!l??]`9SjfY/\Pti$+B50"hp#ZWBm5NW-j$bj2)02!^%7ZoFAZ.JZO$/%-2Yg>JaN1Snf^lBG1o=[$7<``l1jAI2TsIl-;#.16D%>E(C^t65)0Xm0(CkpN9F'Sg]VPQ`j/D3?$G+?L;)$[Sg$(^80m<].TF&C+h8%[-,ojf;GN8 qWYRg/CPL$qj7b?7h-D24*G1mC?c;"Bq trOD*aHJ+8:4M1'8AA,r2*fK!%&P)[.nQ'af=`W6<gE9T\?)l`+--aAJnQ_OSo1=dmnEZmdR)SD(+IshZn+`5e2"Ba7,Vgb/'#?qNL06;<&#BdQ]hS)MnrJ;XT::XPK!5"T&sc_@0X .h[1=.(;cf5*doeLi"=?Pk=Zmjq G"YZP&o4^MB("HBgZ?[k2l?WNBD5 :,,[[+o1#Y3koq(p9t0MIjV/dlL_-jJP6n;[/e*XWW$'SH@fo@j`(c^8R61arG&O%a<ZW'7]"hY":csZtB-IW2l[W)N53\_\ M DeXeR"9P`<>/0:h9!9W06U2&YW*=m/K2@ANJl&KPS"e:=S$)sYC< _8E*4`=d\]NMLW!R*=5H!@g4rV7F)AtX0!^U CFP4e-:b?0AOmp2+UQh[PYK2H;@\cmW*!QfTraE2BFWQ]\M1jBphT6>_?#8A]'A./9<kY=+Ip-?5l-&Y1Q./Ub@Bs+Ae.3s7:YTdSrKF]^li@*( ZN"%,FL93BPrOG.A&7I_Hk0*C2U *#WP3V"=ris;oN,*`o[iJ:"RrHIOQ:e$FQpcMqLF'Yc@ERqN&PB;No"YjE+JlADehI^-"5s+T\XNho-S<,0+7SF)g$!FkC@r3$M3 _sB_+'^'!JcQ6-qL"U<3=1o2hL,% :jV,:EJ_1Dft$6'^7m[A:alJ.bFa)MmNkZ^T-SH.4)Rk[cHY(7T2@I8Y[4XDd [!ioGAh$<7?)%i::pZP/p<VE"ZpD.@M)DD,R"Z^raq- p5%UNiX$_D..(1,6e1oeAFI7#n-C*eSlgjrS)C40pMteohS`(l(?$<TdWpd($/Dqa*K!Z?s*;$8_.XkJe&n;8L>'.[%o8W_KcWtoF:*>W,6PKR`P=$N#*b*R.0.F*gIQhgV`)j3mcLZDpnLK_*&=@)>B'.9sP4DQV%dnb]>=.f+bMq)#kHHUJ^dC7"RiAL@QDLj#r%A#QV)`5.<WMs7@PU5,<9Fspt[AO#1g kTcl+#^,ON`6;f;);<?a?g;rG.N_#eABHX1.G,"\Y`V1Z44DDWo^4gKGiWTAB;g]';)^E2t_rp29&-64<()@No1`q-#!VDe>6esha9J7*>-[C#:&N(>\tCV*aB[]$XQ3S@tE<$%^Njd>#n9>.K.0A\j@pEbP:FBAt9qap*"GM<X\_gV9.ElN>$]=Q7 7?kR7l6,)fXV;^^GfoFNL GVS.ni#P\@Me] <&>H5o4(B!g9<F\+7_YY"fW7'$\ebd_U.s-NeAi><a'LmjQiUj!@PB<Kp#bh1jPfhb;dKE@6m6b,T,9im,:$KL50lp=.g<>pUY5o%[o7dnYtg[PlctW`5`T.RprS0CD2m?*/a.?+sHk0BpAtr84RE``9iK"^$i=aMg_e79AMf_p1qGGjY,=@>E+E%5Ft PLFgKN$;bA)XYFNdg[1DPlck<NMsAb2! @0t=<B>ss5mfe"A>Sp@R`mL%KDnZ/=HU@ZA&a,N"cA?KOY*(W &UZ+f]Wd6R`;<p34mA>q)bgnJ(m>9D/c"!6(ki;AlB8UGY-?0m6l`l[q@J;.`RF!^^psAIHXr)CMPbDRNJ\dFA`oVG1l&\-?I5QpAQTF+RhF'!#=F\bOh.MsUKUKr;2:Arg'(Sn<Oc%2V=E0&LsO5$qc8dK"#`6a_>l$W078sP:kPhTiUGL[0Q<!sk8-8t(D&Bhs!nqg YL(hX!`Y03k:*R0'(f)A.,toa>!I$/!+)1i!@5+/hs9@El2XkddQ&JoX4f]cB>Q9#EfY':^D.I&Mtl.cAR@75]Q\]PbSlsX"G/Z6$NUe.$Q)+gGpF:I2iJ@O1HHEgA,d=ZZ:-jLe0U4QjDtN:pK.CV:d&_^:U(,EGZPF5rA73&L8V\ t E! Vr6\J;*\[NNE8QqA\(m1dQ[6VHT.\?PWq.O:l>"WAm+H^AdIs a_H\2FS*tLBZj=*oi7+Jf!T##@ <Kq5IqVPK9=WTOfIXX\Mm LmXd/f[`A&Y8gK)[;\$=eoWIBh<Z5e`Uq&^K2(%p.T JD`TIj:`nf*BsJIm\Zo`Y#c$3YE-PAQ24K&DE9t3a2rA1-JNo)6pL".L4apa<,Y@cO?f4d@d;Hilg[9-"kV4DKc45Z2'_?OnC5ZD$<`:A2+$%<KqP0W=)!6m(#1Bf\*r h'ZC:&"NGQ(`84k9(<U:3H[6t%@?OfjrtaR\+fJXFsGU&[tB23C5 \9h 4eF6b_p`8VsUQf1J.4M@DoQ\=hpcH>'gR\Rgh(GL0^)a\?aZ*53&&t!Z9_h)CCT"]^?XB+>/ZD>e,==9_YQOYZ@=4C%J)n5"t<7mA+<e55U)s9!.>s;l\?K%e@pCjq)Y5(QCt>[&L4m3kb&5/7'Kmq^pWUME.pNKcB Rn#b5Ti='Fr;c64M!@Hb:Y/O(=0T]K?8JnVf %(:H<59Vl&6o#ijl&r9SQl(#?Srmt'#?co"JSWBT"7)PanS%Z_=4aSf.:1-Oq>266R>OclW]*4h9_A,j/^V PDEN2e7cnnNn6Wb6qb4E-RXK/DC_nkW5roNrb0k/T_mjK:8)P@[ i^-:L]_?JE.S^im:89(g2?a8F\->fZ\\YqY$79i>p8l."H/EmBP=QL9JX[jB1N@,c,bg0f#=/nPLaQA0'a,oX)<B"@$GCO3CWHdAhP4PKJ$sH+Z3(`7t4b))T$WMgJGSp%. +?Y0[icHQ=e\GKmE5"pQ$>C0Q1TQLSYs/$;aGm 7mC&<o!2/ph`YH;ek;#pT7J+RO19@k7D0Xk4K4.sVX_aA3FZfX3(9Pko:q%PY.H:8@^G&pL__G<O+_o(Ua(n>5^![#d?bcRl-kQq+3WtiAr"EMiTTUB@Te@YkR`1W(TfAf8a?dP+aBj:A7C-eKSFcY?KOrl$U==9e:i"gA(?XBcK`Mo,)igG6btA:%C$6shNsn7=[`83AOth^RM*W%*oZ(I)WKae@:K-"Jno\#OaH!"gYq*Z^d@97OX4'%AN+lQWgEd*K,\=L,iV]!AY'o!ba+PXQiaViLAW P@Q$n!V9n;].sM$^o<.[mlHAcK?b*=XcROiN<Ch#k?6CicD4M+5'HA"JL'j1\s(gdS<*[^`:i?`4lPF?CqVqf,qm1MJj;o.V,X]50r(t-JTQ=Vht7!I_To!Y4#4Po'K'g#\;*%qRM& SAS/0"^]A]ZQ:X-VZk][D(N`A^7caVN+:X?%l?t,g>F]eVD9Yb*&iq&TWnlFgb e%1e1+-@ gN*Sb/1q;IZ%mDJM0r>Yo]i\ZA!%:8UF>@CDT-e&t[',Ag5#0GJhM''L'f7tli1A(rPBYUhe5U@\%!;3OdHa%qO4V>!B059/Z.c4-8GCm+=q0A]b;41rQ9W229`FprnZN1o!#.$^#eAp5R(*1K;/\i(I0<_ISZ>.?\^Wekbs]eZERn@5"3)OD=QBrN[krVmA]00HjR(j=.=3.#G&jDT%*%[0QUAh7RGV1=O>a"T/KV)b&B<%JOM?!dkEf-q^/d0Mq-Jnar7HsTWVeZ3j)ONakRK_FJN)[YTUQdsC/$^Elt/blPLHhiW81hWX?19KVeeB()c(piE0CY*HaZ ,dpSJoWHnrkW)BtO<pa?s;M9K`E+1]$-W.s7pCC(&AL Kp$dpX`/Y0@RZ5B[;1Cm"U%*D?.!__E<[s=$XbZhT2iVH@[a4JRDt@*XAh]eX<V,\NJ"hO1F@-! (BO:A<k7[F^_]2#B8J8%.r+Aa$^4AQ$#@O+Ig9gbX2Fc]=QT5)'8]5B2oR_:9]P*l+D?[V^!5h&3p3\]:5Ap#7LKtn<j0pmknLqK^H("h'\o( IIgNO'Y!i \nF@l<.\R2_Jia9p)89PC;McU4bKXm GCE3.BYl`Wt>Arr4pj?YM2555jKLI`2:&A^ad)s,#0K4mXTpU..-@*FDU@TX.N7>%(h:JBFtYkr!KEG>Gh5KstO#)H7Da@7j!erQ`_6qs3 $8T6D1gP!5H5\`nP-_TCk8CKoDJLNX5-jbnhU`g5:gTf>g#"\QUk=VoSJ4d@NMV)ZYmbP &"rDGK Q7roi.+^XkhrP\VX!m(:-,lEY*bd3B#1$*UY&ans$GBc*:E3=&mZM419#E/mettA@+'=grDQJLY^]GP42R;c?JZ5;;LCnD0a)nRYoftWdk4_c(5#A?M;*D.!O[lT\Mn(2A.$F-H&+P/rg&TXCZILAc9YjBXA'28IZ'!!F6A__mBA?D2CX1:H?hQ^54O\Ba;=F=?rYPk3)4.^c^=OV]b3??]lU%$!*g`YkAa!GRG+UQtS8=)A!Y2='d:;#Fp8B-X3sl'qg+iW.EDU5n3[1"]1\<^4W"oJiE@Ma*CdFJL9`K%-4 'lV:5'G`mj)[]bgA3W)e"3ls`aP%05SDcXSM]d$;-mOc/?H)NV/#j-bl0YG2K?_c(N\5AtW^7mP?b)3;!!$P8\2BRsML.(/,.9t+?d>2(BZCk4AnR?AG*Qfd=c9GAEfXIp9(a3T8Wbg&+A_MN]'p$EeTXB0_4LUB5YiXOsMigM*SY2?Z9+&=gHlk\i7*-M'TP!e,!n<o>b]0i21r6EY@/c,*np&P`( Y4<s^=Dgng' J"02:X%.ATst43Z;mN#hL6@**0Ytt>ntisD 'R4DV.h7e'=gchIDed:U<?P_d]h^J!(9JE\/NNZAoKFA1'''pWd]Z!HFt=+H\?U3-I1!#\;rHr+>?bR9=NO,s\3mm<lSm*]cA_`Tj"3964YZHtA :fYs:Df7f6OA>[#O+:8+6?<J6MVY3eog0oTM8!Aroi&1I//0]^EQk-kpob;S%kt11h,"s04 4fna\a]N)^5+Jt$0j*>hRRS@*VAL,UH\Y`"Da<J4R6""j5HnNI$0-iTl-3+Abj?DG6QMqq7iig)U^+$MN6$+dsm+^V4q9A3Z8!3i'ej%i0AS78EG2%rH=T5Y*aj@B=DnAgmMcU]W7b9-JY!+lVXTmPo(FhdrnS>ZcgTFqX<"UYE7F^DrG?A 2l3dZ<46f9*"WB"Cd]$&VAo!JK0=YnoF0QN*ATZ\$16RY(qg]2F5&\,(29'(H'8q!)V_'pI1l(R'm444.QZC,@;7AJmP.< QnYbCkEC]$2,%OIM)'snFB^4T%&X8RMOS+8Z\?J/'8/N\2Gb/<20A1\V0IN$(O.MDh]MhK+,NAN'$KKfUXb(L/A3EWKOk$Af7;ms"Jrs%)H#VL>#^90!4<KS35;e:oI%GRaF6""Q:l(Ch;!7I&-[_m[\Qp/U3_)a8s//PYdoX[##6TTXFL%HIY(T(;d\N#d8I55X"6k55Bmf1RcRB!(BB>2jF?(+btekZPD-_>RH/q[hY%eNS;MAMkAM3[E<2M*6C)HQ>3+I(I^hkgE*;Ai-e7-U53bDR.E?0#f2f4(gm"m%B[2J!3MPZ\DXn33RoBN=>op\XBU(.:g^)g@'<>Qc#9e?Z[55L]jnW_^Z5U/:+@/`c9s\K`)6OZ[go(agP,i+Vpbid'A:N5]Q8q%V@!+/*V%Utd_R?MU1e+;@:*GA/\DQjcO8H])p:4A^,i[:\<-1tj0VXI$->% /5m(OC&";77"BmI[^.8C%_;)AS6+m,;j^hKG0`Nenf!@%oT [Gnf.n'Q1WQ,SMVp\'rI-M!tHce><V6:k5-N`h2qAGfK%a,G#l^D/l q&@h0edE6.P C 0`3btXKsBKFg4:C!!lUiL"5D[+NStAEB;A@EW-_sjc4hb5GBCEQ3T7U!OE7dN31C]B_ &Jh@gN+^6hk\GDaJO0A>(+B67J`NiFJi7SP1>j>$)&T#)tF_b;p[ecN,Y?RN!$F!/_>;(>:;GVT\dJU#nO-qXhI],t$V1aD[/]-[2B1%l0i\E$fDCmGK?hnG^p?K_H)\#UCZ)O$C_&JDX$F/_o6UJ%'qg%#r,`1jE)lDL^B;TnsO A'mk5pi/1Mjmc!AET;Cot?F3[1J"-(i*X%eRGp$.nKfVJ=A?h)4B1W&b6=8P."oo,?VWWIo-<TdmdG2FEB>Y,DZ&DL7]laAWLW)$sI5\NQ5<.eJZ?5(h.L97rDJa4bb&AsH</gZ[5rZ\mWKlQ%R#6rcAbsfH1"Zf322_3l4(cT?q;dB;DrfsK\mtfJ12.^c!hlcFJZY7qY\S$OtHXpPIk<mY93^ %Q6*pEZKD@n*Z;:G<:sQN6,6[-tAegs4'`S>^!Q%=5iSD?h@%)<Te#Ad-R%\^Ahe\oF@*'f0 n-\5R:,lm/n5_]iji%d$;!]W06#\Bo@D:o LPPEM@d&JW\n**q&Y:R&E3b0>Aep ]PP*9f"q8-]Y$hA+/bfbe5b-p!"H(6C^P&k&sipE\-"cb],a[B.kh^ ,"A=/]B[)6L7'9B#LjOR ST/]7ID`Y6/n]D^j+[A@V.&UXVnS7.J0Pt)<-[tZqCi#sC2PJ*68,ngP?: D3P<!*)9ta/$=.'q^dIRP.*ec*2/^Y<k /V5DVNTMm%a!WONr<\_2/bWr:V2+islr/&*'Zk HO/d(QsdPjF0l! !-Z ; lG%9Kd[^5*5$'hPI4W`X0tse*k;Sq75g.s]:e"5Z2#-%]rg;!kQKk"gQBnL*6:\eQ]YOr/Oi_Fmd`)OB(1r<J,P=3eH'4n=$h%(-Y*;A<M&3?n?b&&J>dC&JB3Db^e>=g[lEAA"1G5p1`7nr@sDgt8AP7:\dFYSgB\e##sM)kQW=tmI?A)qqFKfGn\F>5cIs 3qM0\fC]KJL?A$.((ij8>";_a2[=Npr[H",#s(=I!a&*)TY]bt8L&bhPq2TK7kGdQQml<[*i]jF9o<lpXm7"R.m=nd@^d_*;*32P `cR:l#kfVi_Ct1!r_cb15R>7$]gK=dd ;>jU%4:(^nqQc/c[>T]iS9sXK_UH+UqrL!lQdM&_S7gr/tbFA^P2"#f[kYh.^Z(U(al5m@TL#Et$`(LO57%Q c^t1&\4dR1F lqANA+o)'@/IetJrJb%b/WR-$8N$A=d38K3[is;Y.#7=Xt)cQA:lX&.&;cdq!si125Nr#GW'f!"@jX#oNts9+25Fa5[jt0VNpBVE2<Z62'.@de_`T,K\!$P*R8R3r&cm+*q(dVrL0/]j1p/r0)LdqN;A3'tX,EmZ*E4IZl8ci6\^Wf:=J5= rn^2Am]c*r%3E//1#Z2VCD`\97!?:@qoN.#.%.@c'D7la&ZK&nAeC+.Zg>7/@4IPk->VGdg$ZOI`c? TP)OFJ8`%nhE@=SflQsXQr!T(@5hPA<A<G@B?B7)S>F;mVb@m6<2LKDedE(o@r&F>#F?,,\Xb0c"]!A31L(/7fUf4N!Z,&O7n4YhpK['K>FVE1R+oT'4)YR^,=FMNCUIa_hS=8''%VofLdgT,Ik*DggSD7*X0:C!'`PY]qfrU+76Xl"P?sZKmLAgn*LrcV^#mF=1'LN<6+[.@qTT0;0#N"FIV,F<_s=^`nF$tm"1h.-Q4Ri0*OI2,iJg05>*X"!i#_ctf)lV"?kn=1*0(p_]SU[%U4J2q,LAA,b-h q;BFRs6)kBgp'L/4EAU/kf2+KP_o";?t =44MWelLiom7@UfkO:N"k\Z2,=AhrY$s]'7&A&A;_I8Xc)dMP`-*Db9&U8>YeL<4#-d\eFCM3;YM1;A)8\LL9q1G[fCd*(M<R&ZTNICKqSkEfD_A \43Mn7e$1$oC&))W?)Y'W-0ebjkDZX;\5r+^b628MBJ1a+@brWkWEAagc8QihI#OP*Ai$KHhkpBW7.-(l:@H9,K$h=/E:2CsHP$8he3N7pql-?cPsHfmAXSROL`-GN'Ihe/I&ia'RhVNARA9a V`Lb!bXJWCn XQFG?]AN-?Q4!?sZZ``I%T<P l`&k#+^@3P"[ j/<#11rEF")YP<E-rPNIZ-Z;8 L!)X0kDa?-faOs0P"5D-\Y?1c6(;nUfh?CC)K 72J6E#Y^qmc)-)mmsA/28[9&4%-Jo>USZk"/LTs42#&YaFl1BFQ*-/)a>>@2X-(;ndjcTGT d`o(p8ESY&Edi;q9?#:qG'"AbAW2$aK/;.UjRU0-@Ih:[$n!c2I?n'^IFArki5)Dc2,'XQTO+5r5L(^N^PP $OQ',ET!pp5dLO-E1kJO9a2=g02OV?Z9DV@a+fASkLjo)aF"JNjgGZ3p^8g5^N:58?,)JK#Zn&4-eGrHXU2Z9OPj]p5$+/Z$-Q3=[Hib%jL6\6L3^G(sAZ;/;$!9MIe!sVY*c-)c9hX ^B8!`V0=CY5XW>FmA>3X+M2KiWJl#nRL/]<<=WG3Y=t;_j2hS?_12 X7O6lAq.%n)&@bbm-%g,e->2ipK49HW VD%@c6'SE/81mAL6?\Z0ig9"l(%-&bA@NPapRAeBosJ*H;e<K7<'sYW't &kP8%Be'C#,qA%jdM8%eZJ^U\0eTAbi)t?kZBO6`+rr8Hmorl.:&Y&XLTK%cA *6(cX*IPD-`fNEef;HtGD'N#7FM78r%)KdI8!e*ls7%6'(Nm+\/^%08*KBj4t(OU)6bdlc`XK1h3UH`(%o;10I7]=K-T-YY=JDoD<%HFfInO1Pg+NqW0Li]o>SBq5eNfa7KI\_`FAe?f<*aRKKmm4Y8\mY.E?a\AnRK-'nCM6R4_rZ&7@U".:pJcl[+SNVAp0QVkA.c_<3!+/-KpW#1#gPoTm$-AVaQbMm)+` #cY^(s1(\d3-pG[bQTS#X2e>jSN*6$6& :ZR87O>&7=1C,7q9_`l-f]fln ^b`^CQ^QI5%nAH8=j'Z5MW&BMi(Osr$*22[[js_:%J9Y7FH9^/$>%%L(e:gQR:f0;s24gOi&J%5[[39bQ&f/%CO",Y'QZ>>&g7=ag=@q&9Q*Dfp:7-"6hJ<"7dXNpIT1d;]"s8SV6l?9Ra7b=heU^<4Ackg^FQAVhiU;YdUIB&V_m2#B$/c.`Cf*AK[!*0Q@fBJ#X)cZpt$=pY:_&bJN<mo[hZpDtn>Xf@&01[g+j_Y<FH@@m/[oiHc:5gpsl;3b3T)Q(R^"tJ3>1bBqBk6tDRZX/\\lmQ&n0E:"@BrsAD#`8MX5d-;EU:ODs.Mkbf m:\"08hIRg^6C=kItD;WM$8[PMNbMJ)K'3#sbH6s>QSlh5o1Z367dNDXCRM4I)N>)SFn!:'E^GN0A@6-6,sETk?Ak8=rA$L_@39h]X%-5JAf,3eeCXHWgo^3VQCD mVqd!Hl\O$15c8dQfHVSnDCSr'0nDAS:Y/Em?DMWqc.hQ2Y*;WAK&CH7F'gWTSho?DTQOj2_!#LEBP=NA,><AaK_&KX;or*Qqc_A9t#E`p]$V^8\d'bOOG,p-S^9 Gn/iP<PLop_"\s&#fVQKZB(Y&X07"o'p7]sD)e/^gQ0JoIh^9)$%Ae04QMp*5#A+kg!e,l1`-2^NS[oJ8Q`(3,j1]81/!Q>KX5&>o;_PTQRO>\Y@0gCnerAWa!6D^+KF+YL.Z'b\-"6(F?g\OE;Fs0kDr"1qVA_PHSWXO&;Y+:2mhcGaHsS/G_Z:!'Ch<e_sN:0E($>Z7I^Z<+:?0.^-@IS@1@? ]: !"$s7!SE?(KJa*CJMmdD,1rRKD5O.6t:j6IddI-! UfW#H33O'YM]hLQY#JT;=5WH@V!nO@BSd-nSJ:8&k"0'S$Qt[-K3,m! RX'daCqMS-dfPHCBe\fEKRoF%ICJQ`NcG'M/SIfQns,7=>U[_4iF(LO(UgQt4h844%[s<n!gW<K?NPNA2DJT-6l@m_RX[HPt9.Nn,[rF/56mq"Xc`\&FQW:f[3_hC1!GGdd3'BZPt(st*/q"Uc9.ID(f9reXQlk XAA6#*)XTjWo>2_aP!mj4\1G"6fA:3./>Y!:&bP/+NL8:4c6+_-F +J_-[E[sV_J^Na&RTj._ 6at+M)2&DF98d.e;]b@4%KA9;F";Ag-"t8>l(-(54VB$\=lFO4[5tqc-,QtinJ*5]D#i14`&C@oSP9n,ma]*SXn3`;)fF6GA(Q_fl"K#gd$T&_Akelq#%h7kO2qN*YPY*o_8'2gXSmE,Y7K?"$7(KF[.C5imgT%87;WI^Tnct1@N\C!+qIT&a!0U"[)).N>,K-rhQ%p`W'RM<.JY@RHepUbb;?-3(a'r\;"hk^d[7H<I&3VH2EcAm T@^N>b-95b(/M/f4"so2f--WAPQ7-C<+!?B0SrE$eb.)m/-`A8+-j44d6]U"\QQdq`^if0mrDqa`P b0B/8cni((k(oTd>Z[]d8k\Glfo25A)^[)Z1pE&^5dN4HG^($FB4BFg%TK1^Y(:,M+>4os9N=d[AJ)qZ!o[J9$F:6/G2f[o[3D?+N@O4:U29OLK,acrJ:B..A%N[o=n3%!U5jleoIPD8Dc)SoT! r^B'a4=+%lp2%(*r"]ATCh^+\[KM@7 h7*9-S(fc_eaUK\AA`U+9P;DQ1HPb@Wc$NX%gOgQ:g2dR>0,e$g;\Y%D.BT_jso>FpDAFI$9I?FUMS1?$iI5enW`ICBJSP^Jmm)pjnB3.%s?-M<KLW+P0/njN1btYdLrSZc-Rt)^\oU<_=)`LsprFmOPC;^8@1[F61!^is3asPVVA'Eni)OdJK'7dqL^`:;t7^cP9#ph\R0Tl+J)=AMPBlFH)J,:&DR)OqXUt^+LZJA@(=0>H[t$612MJ_B'"R X\$aV".J!sEp`q<'>[nbZAbbm$Fl49A?LS%Fd%g;[ggO;FQ-i0B+(CS/-?g*Jm%1PH)gOR?4Q\IogY-JXn8S^Qf0AW<QC#]!sL1W[%rV.-,7s3BS#@4EF%<Z7\ao\Fa7Ib!//Pt'RPAM"^qK*8)RZm/NMaXWg=Z[(2Aaj^OM$MN!&$RIQnZ+g0s>Zt=HjmS[)Y'CjWrSUA%1&4>o`GA$gUU\LS[kB+,r`/cA-J.KWbjd4]X-*$g P\Al'q-d3q-AfbA@+_7k>AtIJlL$$M4qo21\SQFLo1_V[B;tT>!$^feIPTK)/)V>EYiEJOi`_) ?<BJdB<E`<nr=RhcJcqX`gJ#Yin,d?K.2 A@oo&Y[CAmr1j/1ij(2Ohl[p=GM:_1&:_9'RKMYPB60>c7Bk1)XJX#PtR#eAP&T-j2i6.=4tsZm\Ht9XAI+;M@Zj>lh6aA*P^9Ymg(-nB==-!A!JrP@Ujn,c[r*(jRfkdp?C`Ka'\tCX"c-]eWnE2]?!>E.353qKs7+!n 6#@GFonM(-?c#7/U `%=RF:Mq*<"(TX%6m'N##4BN`FCU]KA'IAZIS6Yl^M@.Ac9lM&j+B^nBPM_F8&U9A>4A1\,?]Dm"HjZQoeBS+g@P*r(0$h-(o%_)tF-^\Zaq[G!a!2*+kZEg1FIUQoQ'Is@!O-q6,RDW&L*cfTJMr;Oj@K-m4'q.h.&*g>6UZ=(NAE6(&A`Zt6_.a"'B,/4g6Hfhln\_$VK<9b%sD6DS1ik7n?VoNl2"AkNMRJ(srj,ggIqTJD7qinH'Dr"1T?,?%h<c-Uco<]qYh5_7APE6.!sA'D[Pcr+k]LepHG2bmBAdernTRGZiUJ^r([=(oV&OWNEHV^Z6icZ=$@b]<$9$iK<H 6U4<]f8HQ[9X-Q=o]LQtcYqe"h)`m&Oa*Ei1\nUCq-C:GABZiJMU.]5lP@ *5='qA>bS$j=<-khf7pSLbmIOs<af&TciBf.>&lf^:q)eJq-t<<Bp4MYX]R,p3l,/!L6f(Zp9$q/+Fn,<<qtY&;pLEPUnfo@kV6]lfE&lPW6+InXRm2bGg%Mo_Fb_#j.?mWW252os0'QAH9lBi'8c%lQ8\2sXi6gAH['BAoM6Jl+>clAMI"nj1["LM3$H.A[]_V;R5U&`:]b&6Y#jVf)[s2<3^EFT@'1k[m.sAA^O_^LFL5<i@I!Q<: 0afF/=fZ]gXKh1M'(5%DR%iJCa3faIJIN*dHkYY= Fpl1?Kh"<a558gPl90dr3q#brqD^Sl3bD>9`KL#`c@_.37hW^3D!7q-d+sH]H"PKBbEGaao'4X0VO*q_]DiJ#ETa`/.\VTG:6;/hY=Wa!&dS'jIhi#gQg53R29DWgDB2mM!@0YmiXSUjT D!&gnKpPXUESfKN#bk#]%`T&M!DV5H#\6\@D`s#Yflk3&2%qXLo/kH-T2+lB3B0d&IsS7IA^oG>>h%GSF V<Tl(c.j'6N,P*4^!dV)M/,GgO3Q(EU)KKAZ4YWF`Af<%3l#tcFXr*o*R0:;H.G*@s&D.3#ZRe1J7mFD[L1_J>]s/^>I\V7Whb<_U5;P;9SW;iK^'9MkJbf-b>'I^DY% 6/p1lqe$rmpi%@9QBQLOCh9Wa$ABDN&:17**U,7=]j`42D]FA(X='_`0=&J..5R6qj#'X=_SNl&n<0UYriB=h[1YL>bUtqiOrXhb)B t= cb@@148"gmJ<%kTK QA(<IM,'N[MkN&\``#J\(MJFkY+*hpVtsl_anG>T9]RnQM5*,[3K/00#\qa(\$r7<?GgZKV#$%Seam]F7HIVt6if-<f2DC8"5qiSVoLA]qZ<k@k37aQTED(EF?$5MFrVcnd7e bGbm%e*-./i!K78<[pe-RT=Z1/sDr^nNJlS5QWlI"B&dX'Fof;5?R2\pttL\cO> pID+>)5j.<J@DiQogea:[YWKp8$ehT/"\7/&GZ%&4TXHHXB'-bAHZ14tYFA@+gSEA$6;/Y/fS\6k87OCI"kiM*Pt2!1*B9SHM=KHiqXb4NpS:b USaOSpsJr8Ie,q&/00NR;XCOL**O]1D>mCf[oOPbk *Hq]Un-2Neb**1fRf$19k]UK#)%#/icFAV62!V2K=>\f3(@^SAhR6rO9i`c?MtkINO)W)6m9r(H2'PB gFG4,I[Yp0;d1!BqB[S;'L+& pVd.dlcQ<O]f*sH6qpk$5K;1cA&t7+67]MoX4rOq2tA=J7\lCKa]nH*hPS@a8H+SgosRb4t?=m 9A_bMP9.Z)>*bXk:70KQ;WC< <O4 0[T,\M0h3dL;rW*\m-A%C,B=p:F/QK'WOG47'$)1C*`/I.tc7*``C7q#;%Tf+P&?gn jN,t22cViK-s22LlGpZsFE.Sa;f\QVM!`piM`[X/BOn;b]@p1I3\*D<B#Fof/F:/4Jp5X`4!Ab`/ ra4j:RFrQjYq`!8AA!a;<G*is+]e:%)$;VJ<D')71 oSa<^&Xq[p"LB5[#]ESNE-El g9qtTB<n,\pCoOFWD3=>EFEEB.<f[50b;?X"Octl/m.=`A`Ac0o640&tI2VDri;p0^6los-<A4d`U(P1?*026IfW;UQ$^'as e+AXDDn@Y+rYC5$pA3 !"UmTc/WC 445`Ifc CfO$0)Z8W'*+2qlG#6SXd+NIbZ`Yjn8dBjYX!6NT8<27Th\HSHD2A5A/.,RMNe^8 Vs@?3<bA;:m,HEq\284<J,m\tdg"(C=LB')WU_b!@Y0R_>A^piDC\,Im^#IfeW(68F8jA%+/Q>s/BgLP1DB$OV`lJ`REf[-Z?cGs;A?ec2WMM)E5QT;A10:]\WaUT)s%-iC%7nSb6>=Qf#!q7Fjj+#Gs X$k(m9qAm;M_4/:AsX$Q_V!L5@1`aisf--I,&;AC[7`2P4,RNPD45@N?C`k!ZR_YRgfWtIfA*6Vok#S+>E@>19/TQVImrkno550EkE"V)c9'Ak:=[$#_,JiSFUg'rJZMD3D'fQUc<fT&:"hgO5pc^ZHWXNqQB(\EDO+m[!YAUldAB_H<nF&==9^g6=k#&Em3+,W.[o!T/<YIC4,LA;3AY$S1T4('W#o'bOi#aE]V9ZH$,T-qp`AFST\\8a?tk$20J<4N:SA*9HneA5r%VY" $E7K$qt-ng>ZsQ+*q/MbR]JtbAA;O?Qf.X,4.#q(WnbNEd7K_@]eeqZ MCJIP0Qjl<5XA#+c(53G+)42KD1'>-#71FPlOpT:)L=gpA>nio"mCS/C>c^t@An]C_<n#p>m?Kg$/\&fJ3U>TtJCaDf&!+O"S(\&i!0'Og;Tm1Z7t@"jbk[D[oI1qsV4"i@3Rcq&doS$0o-1+U*T:MB!>$E8qA:,s4*UFg]8P*P17W2"*NZWk6$'s2@ `bOp,s1C5>h0fC!gX`X@Q>># BH'>bB$BF%'kd/j/8KKIm7W_`R4Xa49b7+Fqb4O.qc)A`iVW&6%S!,6IE K4o@(lpLEUX96o=SU#cE:J1HKn5VFb3T-kJh!!eI.b-Mfke/EhEm7T0U7h+q7K`Q*]D0X6o$H Y8:Zi`Wsi*VFDtgRdiPY,A<:_M_`^h,YZNG%YhF:_I7*LF3`R.<-.0(o?; F2,A>sW*Ci][t3-=hpVaAQY?Vc`R@$2cY;'8+[,kc"r;fiQI(6[_GF@TU!Qi4NI*?=0/s$VR<_YZIdI.=9@]gakFqn4@on=`"Z"`/G!59#%^lhAi&:c-"Y1oN:dk;isr'Y7FC0`hEAoh6,2` Q-K*``XNoAc(gpA!A=[nB- r/\R;P`(=7j:UB/(W\F!L8+]h/#]*;tW<dP/ai#piqZ0sXqT_(LOb*8.=QQcln\CWLL&)aA)fGi=Q^DN$B 'Z/_^r$O$kW&dU39I"'[E`)$-X$\9 CI04eEc*'n(Pf>C&*A/Z0Y,Vgksst7)T^Rfi9=38]od>kZ\$]h*9cUU,DMlqhdQJ"?h^/;<Cj&&R0252VkXp(EZ!bWA=nn4a<\POCOC3TO"a-&O"a8Ve(ojXa!k#C6H-"-p#q9Hp-A'421cNd?;Oo\tf(j^fqkBQHM3fdQ']2l,Wa?i;:(<k,TL9^UV-Md3onB` O5?AM8Ed*'+J@T'?`'[>m:@:%ho@6ZU3'gmrAhEq^D2;"=8[O(h>Zm^,jO18*&>tSt4UreJ, +Fk<,;A1Jld[J(W2D"41o[jBL-P_Sg+RI)S6jX1.<>B rd.TsO%nj)X6l<bY>3Qd8@W.`WN6F^j+tJg]pdf4=?q@,eZg0&*-ALgS"qb*St>4bhsJcZWA2!A2X"Qb`'Sr@-MVjYLo."C@K*VC<!",q1ejO)A$'f$)<>FI 7kT1*A_HBA^M1i\j@.^b`NQU\o/c?'Cs6%hCQcD08#J.2$B;aQm <i f@.-%0S=al"^:h*7s="O)\W>nism8,ZKpA<W)YAEV`fS$Zic"4LZ0jAeYti/M1\\F55F"hgO_(1VTt5;\*.kfMF%^:QRBclt%EU$6SWi85Y?5m=;iL4f&("R]XZ[ bD!!n;21s&(='S)8(pOCqpi 'e?4Mb2o2BF8A<F14[a<A'$?m54Q5U'GaG9U; _mXA<,!OXR7SR#2J edc9 8H79p7,A?*qE\f_N*L'0MA-O/C4MEEXbDKZ>gh%.6-UU;le#=CURN+:R,$5oPeg7<.1(okE@\UHV0`\e @4Lto7<1I-jC=PU*/0rX*jjAO>U=7q*/-4\lWG>#KjftF@`/SB_cJ1h9L"as=]ZQ'0N&<Le1fAO[3qfr>0Kf`>Okq:oXe*]j'hn;[[dsd*q`5kH8_TkB_4-ESEqgMU7d02[s#OebDd8tBH+jo*<ZMWi6*K>MQ s)F$.-UKfl"9+f@4'bd<im8Sj-opD3J&o)hH(SQ-*:U?Jp!<^HnJXplhGJ)c%?Q$.ktb[-V4r8]I9b ^6BW0abHAhc-W9,SR17EE>0XsbR^=`NJ*#`.;^E,ftp;/6#AA1(VM\E9m>*4tY pe9V\+Odq+V4VZtYmNShEfd9s<a[$C`3tN%HWU?,p<CPL_@WU#Tnl/nd^ DaR"cW`HAHPW" 0#][5A)`<X-OT]Gp`2AsiC14S3pd(bsPRN&2<bG?/cSCd_o96R9\KG\/3"[,d6_G1Y9aTj",Q0da'mlFm=Q)\h6$aA?Q C<d-^&(>'LTC\)%4Kq"\2p`O,;(n5TVe.JjAtWtt%VBs^<`ZV(m@9W:hSJT#%IA,j5O+pA7Nac7B  ]b+__q9>JnP3Kd4,?'R$;$a!;PEoDHOL\GO3R\Z%*^0-7g_cpbSYgI=U%&?Z2JN*"c8+/g4n,MUeG.ACAd41bI%"%1=A->InkNKHVX'AU%LP^@0n<t`ijbI7&#@H<S.1Zk/*!5"@ rXh:#M<[sYS'NnPWWT<": q?t` GMBK^.+j7mdd9?snet0Lhc-C0lZ>4J=Z+:RtgP<ZPO[_9rJD;o>;#C4#r5!]4<XH`-.K:2=;ZQ1P?+&#Ap2Xii9DO3#$X /pQ^tTS*\a'U"CkRkAfo:NI*"Fa'$a/X!ZR1U]SUBGhN3m=kctBoaT&m6^)dB>kXAh/rtSRk/tah0h#qq6*UTRW)`?9;_&agZ@<J"L(d9&%$&W:rIWCD;q&OH7<8@nC9:@:E[7U/&#.SKi/)1Hp#1CV$[!O:(Gceg60Y!a);BjF:gbLWW3,65%1qEJ Hj;+0)$rN q'#g# UOcf@p,^WAsoi&Y4o(ID6&l5%sAjAq-+,"`JUV/B5HY070!'F3kNWTSb[A9!gNFG9%3-\^*Ieh#e9'_2]DnEg3<:&TeN#WSF'0,llsE+^C,,1'6\LCg/F/68aJrSHjY[BI1'&/`Z08'0YJP9&<=m,jYFBl N'JJ+=t>UYMrtFFj53\c.Ane6QQY,%FtlTt[: _>\P`WVoMnO]E"ne- BL>nM?r_L(.7P,$l <'oV0+_+h.-Yl5hLP_tRUMYJ]#`/5@aW[0;rZ(\DmXN.XR@N&jW8_RL",/`s"4V-[l.VF&DW1%c.<-5p:fY$"bCl3CNM[-9Ji^tngOUdo9WODbYcd)3@r3#hHR'3/K&/DLA\LNkD dM:XDU`=)S3tKgZeTSt^?@Ye&1];%b;NI4qde#_^Q+mSk"caS%p.NAIU/6/Rqq9J/?X_e/^W6"Osj&3QAcf,A)+s$NA7=h2I*O PT7!jOd/(5RU[j/[J+P`2XM2JK+q_f$bGlJVM*B9C@IWNoD-!>Vf$ClFqj;J5\@PX i8T<J>!PLA@M69mfY+<X*5AH"`:nWr/R 4[Ei<d(?-5a:(o#T_E3UAI/P7+LsB;&3Dd \:h?pJ.J.Y2EmW+%D76]`[>$Hj&GV36ko?,P1XL#o#5N]+.>Z&k])W2JOC-,Fe,@o>@H+/];/0<!Y\V3DlZ>kkj+aTqAHmYBfDiW_:I!JApEq<`,oCX2DI3I<V1G?a"\pQ<8[WA>8ls4ZX/CmRi+_LMX4)`/b+Egj3W<&Yb)-,mq:[$).fYR\230Q6N9J7pJs#g"EQ\:O-#lp)@e`NpB[LHo$_JbNJpt&-5..ct@gm_6)]A8qRtA-P1b7-r3X, V<^OHNB!VLciffttgVP`1XLDJ!Us5H?daa?nspLARhrasnA:iF[PYI4g]5E]6X3EUe5-3AQsMm.*[J#*El(M:SIf])\A@hJ6?U &*Q+sJmVC sE[ n5!WVkb!?+n"Ab00Z8gnQ?i=FC2B%gg5qi;k#Cg>8"2o*6YpO_5p7D4g/c6ESf&'Ao/TpH>WhrpA8U5tO-g#>t?SAgG/-h9<lAL54>gYZ9sAX\Gsc0m$lG^/%%H(gY+E#!.iN6BnR`Sh8;7.-ndY8j2jrnC92f6GmAq""UXsE8-(s+n_3rN&04pj]'"8#TV-W/etb3T;$q=%>Wf1S^CEZVr7q6HV21L`<pg-f\0`ifI`/fmVe<R-5.[iN=M7(o[d>6Bl!F!#'UcL 9A`Ltp$=bS7kn3*8cc<+3t6cr@^Rok=*17%(KJ; $0WRPg$7#h'--o22?aWnC29!Y<B2009oY_&"(2@l<D/<BCYQ[tY1Umh++L Q`97*!ZN.V!elE2n0a`[IEQn<[07/08/30CTIVE`&"U#Ih;t:YK Dk\&0BKkQS\=.Yah2nZU$1T/-RKXi`rcB86C5\E*L^Og!s'?s"aGp`#_r&d;>Pe:b$mhLU\XU0&mp4UM=Wqrs^htO1\<ej[8"<t7r\@'XhL5./X,>>aCI6X99s_9C_09XU>4?E<(Di:\Rr&n*^]DWsZAI[iXr1Nr?j;gfRdO654c*'/k-D-K'k^/)NTL5n!63.>(&`hrYB'/-2c4lkKq]G YijUHe@% <O]%H<'Wh\9,t'6BP1%&iciP*Q5^S%]rIiQ(=8^D*t2be2(14bZ G^c+I8%0n^,L+fb9\Y`8.t?GOT9F6BT_Rg68]I<mUkAAH P<F6;hcT-Bj,fi4. jkE#jik[n6@o38=37"3&==8;)">bSaa!<HO#4Ggp5QU_ho6&n1T/Ch8e0E$f*_Gkp0@n;e.;.$Zo_9\mJMK99D8BTjG:>gbLLK,NANVFKeKsmA^pb0qWgWt6K2iFSc&h..4+l)q.%)F$C!Jg6*ofZt$h'"\Y''*`SRa.ct)R$ P2JRs0'eos&9V5Gh"&eaT&?HG.ZUBDEH*gD&TZQKTY07"i]t1'rY8SCMZK5f`A5pF-n`b)U&J=p8?^>+&SG'sn#.X(=Aqm^6S)KD@8mqG/(5]^Z4LG[kML3$>>rUX7]Tr,kA.s`RNDea#oA)8Vc)F;NL:JSMt_`9FMlVLi[MLLAU;Bhg4qXW6SB-6S+]!pkG&/IZE4.J&p\=b/Z6EN9*!Sd Q,S t3mfRlZ:$Cs6d9f j;BU&&\?Uks_bSLr<Qg6XoeaXK?M(U-TeeB@oF<S*<lL$/&1TI>NK_ Y S]tnmL?\SgkPL CKVOdIkl40H<M,sS&B2c#ommg,\J!>VapSC& h8le+Ob"7 J@#(E>.`P`IO(gGW1$&)m,j8)]FGtht?s_B93RKA0!^?f4_G!tET9hS6Q0/33RC$l'-FfdHs)RAH17:IsPSD<PmlNIpQgcWUs0=6?;s+K@NAFd.XBkP2q5XJ%Xcairqr_qfpS.F=#\']lSo1pfm-U\it.)M*HGJ<./SlAiT87eU4R>3Y+L8\e-)W\d`qWrkkoidqt[A6PhNX?Hc,kh!,?,0i#TJAdmoaok['CQ[(*J`8=@FQjRT@N<Q:'-H;2QnVbZC@1"f7'd1[psWO4Amt+]ek!n$jA!cQBA##/-KsD!M@fEI&6?KSpT*pA_.?IJ0MqGQ4*0(_ZG?1Z64:e+F!kV\sZgA+_TAD8EF_T8psFsTYYmKtU)n[4I5Wr)XJXN1[$b]8J9h3[3RLCfLY78a;gq&Vn%: '\*oRpI<f/K*=W8FS\<t@*;^[IeI'U0U&@`qp-h<P4^MBLP.clB'5UpY?@9*Qlqqr!>C31hk""_>[IhkY3E/635,_J"A<c#'#a3f<l0bSK^-m/b1-8PQ2I%aB6hE!"]`sj%K+@^B2+K\O("Z<VV;bblt9p!pQoVgp0 bcc)MeJ9X>`H_8GP=<.%rl'dpY/(`9Cp&Q=>(t<$fm<6:/a!O ^Y,%1&0 ghC&!F0'A5dqn/LW?7ehD5?>^Q=)ZB]0&lUPjW3B^2S1D&%,c%m*f^ @NT>Be<9O0No`VlQOVYlRV+=.sA_&ll/5n,@@m+RDkB(0Oo-E6$VLZX5kAmnr.I<qS<ZmO8=&)*;jO>+?h"Yte6A'Ia"8,(=LJWQ_b-#UC%m1I)6AS6<gO[Aq]oZ)RgP.[63 >$rJ1G$>Y(C;;A77A!C/B2X!Y1$L?Y;go.JT2WpG3O/al,H/Y4TP7\ 5Yf'A&^;(5d"kSGmmD/!7(C<la8B!L#:b!_UHm9,qcc9"DYAQ't=$jhcAQA3"[&tF3\rs;<"hiXI3I(#CMFk0&^73Y9E!aU:m*27;!4AS`,X`K9JgWoa?<V@r>N>1?a9Tq/!BmS%(+n8iJ#P[C.9\h6>1<T(&C!9)jT$8iFGC?fj;An]F\3K'Se$93Q!WqHt"O(D_ST>$O"5mZ?=L>UU7+r7A)g?g;)Dkcf`Acq+bUWt;aeqJe&YNT&U-^MUctE8=P@"M0Fs IZQiji)(!)3I%2:)k&Mef.MfPP2-b!\287:Q O43G%D^9T1e$/B6-_8JZ[ 'JKt&MM9+?&d Bb8IX-'tSaYlD8.=hl*Rck:+T!Y77.9I ib2EtT'^>A1YnIIF(A?QPAL-]4,jJb'g^f@[NRVO\bU)jTfRmX+m0+B+^O)+FDi*4IYq@m:#be*i"F^8N8^f^TJ!?W7$Ho"65r8@s12=X ZgBnWj^XhnL5i],M(#oFKs,YE"=Q<(2.s:0632=M_;Dbeb1Ka3K:I#NQZ)92HD1?O%e]Q"/0iWXY&Q8,7!HJnNs3tY6-($@L%^Hh8EHL(s)tlpa_t;+lW,]"sR;6(AX 08Jb3_VEBs'i%$k."rbc]Y(J"CnC[ES"Z?)`pQH&)P^T#V^J3Uf%:B^:1PbkacUf)p-T8Sc]AF2:j0W:b61-]N1khkK;^T-GD,1Lj`G\S93cH;?;df]meBX"@Q61BW?;N\>HJr@b6Uo`e/FJ+=>Gda\7lQF`2D<Y2glUisK]?(EO*NlsNSt5<N"#Vb''%%nE[@gL* (&/UY_&I=htAcTt28DZ7GL@%BBht?d:37!Y _5dG\_[-qTo6hXBM36q_`:5*DW -cG4j.FA,7`@Gp<Z&/tTo2 ?hNj>@pQ\rUg:_M)WfrR-*a(:?\:BnTFNmO3)_*741ZFb9?L\VNWbUQ\ iNOY<'=m[!K4<:N&933(!kAQO+0ZMh>:<^.!BL-^LXM:sPMhE >K<& P$$UKZ3-Er`ZUO'Oc010APmiXmC$YYLmqD<c:K6Y<WaIHH]c>OB:&JJGr0p_h`U^2!Zi$O$+qqr:X2QU7>g-j$rBtt$:=st_ST#WiWG]Bh(m#U?86]Ll=[#M)r'K>Y(Yd;*Z@OPnc0O6WBIAWqE%ChqLXP"4XRI6g>d%Oh2c3Sl@FcA+]9TN!1)5Z_4qNR!JW\(*OHor2E9Z Y<c]KoWZ@NAB7#(g1!X'?8Rn)J'cn'O&h8n:LA!qNh-URea-o;10&.k+sZ-Vb= B_;AN7@d#iE/O]`6I(Crn(`0U-nYED8MR?4]4CZhO5`>F#ZW3%GOHbk<N=rm<I`\6PN]ZL;4J/e_W<B2=%[OgQ3"fOPg\fPLq4jY. NfR).k@s;6*m0,(D$oW\O1Yd9m;'(.=4'W@-2 >er*[$1[)V/l'oNts%P3Yq0hbc_\G:!%42PVKSTE<e+a#P>Xk)ZL,`sRD1Z>Ht]ioAri/5?oa:%rO%/f\+lI(de*J(!W[Y:,fF+3`T2I12"[ceY`4V&'#Gtn\ H8MPfCF"l*d1/4iHnaFoJHR7tG9rPtsji[AL: pY?'VlW;I"31P ;SQsd6<_88#Vt?#0q-gZ?CY%]D]nan26_$07m[/5'm?0>)^EI@q>a N:g^9DMY!#g%)ZmtXr[T6"[]WH&g#Ds0tq9;WH9RAra!0qPA#0^AM#s_&OM0Arr/Ng0Ym*A"MY`+GmNeHKVI#Bk4& Q:oG-<J@=KXRgr0=A3A^P4BnL>oWQe9t+QN#GW57cYNorf(ETGA<MeVgorXY2`U6!=Qs/iU_fDe:N#IXs,)iA5ZB>(T4P(^CIF;\0s"r.T3QQ$Qn1.mk6a,$m"[6d@91Qrt%s!4.c7(nq[n'"*c0A^I!JoZ^BlUrAA;li[E-fC-F_chc>/IW,/VqFPOM*1+)(f=tmCBeJ`CBc1jAZ<'E"!pa%_Ig`80;/4H ;$'Z%9eJb[?W5NaPtG9T"tfC<=HRJhdRT2GRK5rE#9*>)5kJ8KD,8ap Ap="lA*c##gWa4A-c`if_oLc$L387$c)*TNVJ`'\L?Ok8lsV!A\?;?]46HkkRh,L>aV?"A2I$N60>K.06:4XZDh=6MGRheK(^]]EIID7ocQXN4B5HL4q;QS\>6qp,A3"G"GJCo"Te>5ihQ3`3r<(ctdP&!s)3ET*8&ib:1Ak08U0G`?7rg-AAN7&"lc,r?-6@%T-If4`m`/1Nq>m-Uq\hr\tl=hM:DH@YrM+n`(Qo$h9[[!6AsA7(JCm4J"-D0Lh^=$_OpM##ZRb5-&>iT-,l](anU0gdZA-=&-ag<7)glW=ftg_kRNQ043b%AI=r\!Ab6T&I!QCGQiX+[ADl:?%J,AOm#HF5Y6>/6Ls(U?lmlXW\Di?C6[a-[%$.Gl$&]9#d:#)rk`6Q`HEQ/ZR!dQr_K?;7/]>l*VAf;6-2O"#mFDfes+.%=CPbXX"0s.=C]Zhq%-r$<rMH6F>GDC1]fO('PM*K>qB.H?9h8T0pZ.l<9EPlClV&_C:lPmZ*P+Q0\;c]4WdZ%==5Lm/BXMVTH_-d`::Ol*7q1c]A*NNWKM=-/>O@H$a1c@r.=0@;M*FRARei!@a:#O9GAAO%Kds&>ddJLcVT?IT$-AKATC8^MBRmm(GW\SX/WOIPH?1imPf(^!U&2A=(nXd&^(]XQ"AB. =KtFE$A,-8/Rkj^7>cYE,f?Je-AF"l,CA,jS>l`Z?&00JV$_X6262,/n*m+enS@*k1IUG-1f'C9QR2lG,\NcdHf^*N$JZB_#m"4`<i\0oJC;?;>Sl cpW/6,)5nI;j48=jiE%4X_PFnH:EK"QRW?HZt-L6C#?V6ng iia$VRY>/X,1)C6*aU-mO;Yp"`Kb\oI>?9.<A@?nLG!Y'^<.f.(ZfbV/^jeH8bWaF3;pO@'8[+?8qg6)%]q) ^]>0_E3bM8F)%3T<HS91m(0EYPC<(JE__6O_.;QNY=-+K<>:=T  98'L^C2M,'t],;*2d=(AJ?AA7LL>)+cp^F+5)^?Z \@b.#E=m%WTs!3?5A+Il_aA)*(1H>]nC( [o9'5b5%Bc!k.I-(?Ed/Gn8:sl-(Z\LA irQ+LAqelk@EJ!C`:":bpGCT-%Wism20#Nkm0lX@fM1*XR.Xeh4pHSHn=0HUL Vf1_r._85CGRJZhi=Kf=:<Na:JU N2P_aPt+D*3qZmD2kE^Vq:Q/E^LR?Qm#O!NO^W*lIApPRDTj59oH*lttP3rFKe$Bs3.U:b_#DS+E`Us<BZLX3=4q/cK:aL8 /0T&47eC3ge:Jl6n_N6$<@,Nk&`?bFIldGYXilP$C1MV4'EDA1[8oMpHq F:FD_ZPjX'>a7(_(=ARSeai-bX "*&9TZORq.62:6DcMOFA(=NN37F]q1Xd)W(^L<Hp!"DQAgg_XTqP/(0CoEDhR+@Wnc"@2Wtod;\/moOnlSqf`VCehK]cI4%5&=`MN558%B=0E.s&G>5mj<,CZP$KDAr_[0kb7b4K"i#>= "[46g0F/0pPWVpNXUHgOfiV@&b=r* %s2?([p*jG7&re>C\qtb^_Y.Y\KT7GS0@m<0E6766[?_(c)H7JSqT67AQd3&0lUp4.`jiQ'41[,CQe2LU*.,in47K(`d/$C#"qCDHs4?L)rb4,H!]Tn7Wj<;j(f`rI90'$HQL231/4fq3A"cCd]Ob-HH"9`t?89AhYoDV#<\4DWdo0;9PT+9ba;E&.5&(s,,TFOGO."Aq\gn3-r\5#a& FAVPE(-fOUcJ$;*JZmD\b1fZR:'2'dS;fkfEh7B-kqL;FDp#s+[T'tpAb+cMk\819^86`6@'@k'mm!Ci3J1%T; p1TgG1mlKRe:C>H@N&lpR>_2'RG-7')C  35)H0R\88.5lFP0EhdH_FRPRRA/U*7op6<mg5ADOq[;NoXZ]j#\7VkPZ&I4"Q:(DQ(8#fH"?h ]!q)FqVd'`5K?h'.B ^7QK aQL!YhTiNYWtJ)Xga#g)1b>c@HrKbo(_6InOgZOL(I"d12 .7';]bcB=PA1\tD^J7q oo$"`"=AW7o5M#PclL?%Y>9P+/+4I^[k<,08C\`o!=?MQdHI]SQm$SGZ%r7LWG<f%IJ2gM@\mi[sTCrBm8Q*:8s^a!E5";IVAWn@@rXErsrRo!n^@WNYAn8[%B7C/YkZgi)F&2Bm<gS>Z_]Nm[G1Qi9,Q`Y!bUF5o);(q5rdohKafk-/)pi-Z/i#E/1Fpn&3fXEAl2$gAo%!9@*RDtW/")#H&jF!o$4HZQd(k#bT5]1qaY55B5NX*qAkh;^JAdlUt]tG.%AK6)=G>T0Q[Ld+$M;-U5mE8jc7%!QUiNae55V"1LMVqO%C001oeA9\UGglJ2QP>,]j[F?3bV&_X?N>$ mZY<\Af06H.HP"t\*a8!Vck8PR2io0\9!?[!>#]lZh*i/l(2m3%ZkF513FWEET;5f@?OhF&t6AKbYOn>H2g,$[\F7Do9-]dI!#!!=3MO*])A2L`Ii5)hV]*\n6;L4IDPgo.Rtthd<>HN<$:7@K9:!=\/0t'$CPsc(lF?jXTm*gA_5+X[X)d@EOnQjd8f'+ho-P7 Bo&02Fo>BaU<5jFKWrmm*3=9:M)U6<?;M/4c>MtbAX9_;cq$8eWP+YZ-VsB7_ZNntt;!HY5o0%NUq"7Kq]D`r<!6"W7$Y2P>Pf"%!@7Bj?nK.t6L%(H(:r eJ@A&)sjLF"OI/f!h#rS%lPRV:i3fhld]%\*;C9PTAJs_+F+! Srnq]BHjI4h;6AA&,7&j];Bdl;]X]Z[;H+.IC.537HVN.ZM1WFfK^o4aZ4#f:.Cp!rK"n+Q8q_@+99&AEILR4EF1*kV#Zi17-M`+#B-%C(I\ 8D`9EkPjJ:t@\;LAc(P6#%em7NMI9HhmZ,]@[#lH.W%&ejsADRKVa<o02ALDh ?m8E4d!LI9@S=35s%3#IhhDr/_ciln*:U4I;li$!p TM3&'#opi3#Ksc^^A#EbppbXQO$Vs*QhpQo[KN**(m^bU!P'dTk5<ThQPp1F"t9mKcj`Wjqe]#%h=A+Q"&IbF6<l^^&[%$&;D-bq?,?p:DpA.L#Y`7fhUd:XC8RD>!B1o%!RXJa)%98 arX7!r3!f($ZgAp%d:$9;8%Xd$1.a&kZEKbqS1 *TPbtBYQ\fY!Ct\- bBAt'And8N/Z3elFBm*J/J5:qY)A,o@&`f,<DK31#cY! F"7E(Pq\r(C+MPC5.DAqjth%nsOZ]`$*SjXap#P*-WsT!T*X)\*j?%dokd>q\Pp.fCZf\E5JB>&\`2H\1TP4Jj*&IZF`7"h7MgNVV)(Jg[2HC_O)ipS8<P&7^Lm'23qqO2mKKOngHAd&Pq4B#bOU0ZkQs-2UhD.DqA?JhU#%J;Ck$[h>L[^'K!lp3<O1XR?,K$MENo)9V*_"^bl7sQ4A2Oahh gh$%s\Gtppge(EZq:=3OY6 MZ1oSGmTqSL?ARR%= 3*Xf3g>re'pN*E"$M!GG]_f-Zh!]jMotT(32."?4;=o*"&Kks9sBRc98c=gGCGoP_=EA0R&B4;qAQ>95+4L]mP>%,$(6=@G-GO'* F@l>I-q-RqFB>?8@7<4Hb;(R3Jo[Za_dIN$=I'W*r-/.Rb&.WK*lnL`iVrlYa(GNh62Gt#Z4L^L(o>pkCn"oNI6sF\%0U[tLrdpq,l&NWt4giAdE&08K:ar6nBh&kH+>,5O:EQij+M_[@g5tM%TFAo#^naVFUEX `cEs/Fo-D5i(WNQL:4`WQ/&#LR%%>t 8).'fUYtMl?QI/3KE")l:.7)J0)Rr4p$Ui/?rV_Ui%YfeV9i=lGNb-I$HmR>q3(kdPB`LZf"&*%+"X*O@>nim?@nj+Bdd\a@i7tne0:hfH7WIJ75M*)?FUtYk?GXY/I"GR]gl/th[Liff+Q=hc.U&p]r<7Yrl07:T=\:(A1pltB8%dS#//>7%e;K_""NbN($:BP-i.aC*T?AmY-NM"_oDFrY3-pkL!EkM=ZFes&KC\/+:b?iA-KHX"AESPrS(*A>F'X<D,=9ih1FUanAA2`4gp$<=.g?TYcF=H"sE(#7PkcSO0.m0I7*.,GcKI8k]>)+=s/`!pPje] \"(EF'Gc&QT]n`9CM8W?4kraj?*iYB,0[FTt"3#@X(.\VHE;20 m#_da\(c$]3@CS?*s<ld9Dj^AW"k0$htA"BDK`f,/B.Wp=1W)LaA'Ok<dHp>js)U-m L[n3V@[<%e3-gC!Z)+_f8i9p.'p3 #/940)^4&P1SB#.66iPVn:T7c+/rtgOA-CaV$%8jEc$ 23QX9j<9lC[Y_VJp'1?l"577%U>>(HO?qmi\^\HFeU:R$Ik:^*C<m;Y 5AYX&!W(VrYMUnP876)sQjiNnbr3''%QkEE=?$#-&0QUXANki8723SiDB\0 %!\%6pHLamb3&eMWh^,I;,nd9MVKT``F=2R^09a0d.GNo)jj9ge)A0)k!,3gt8tKb4d(Ef_^H]%] H=U]9N)QEdsq24ncLar#O:R<Ea`Wj7@0s&q=5lD&@'nZS>@d?Jet.3@`=Ws::id[qSspkk6He;"kGSOpl__Dn@"!&9$IEUQtUM !i:X'G\LDpeEs:h1g4PJ]GmO@d:lkc^t3(D2WFM/l_9L5Z4#,/` F^&1:bXk9C_0jM!bdcd.j.1?s8O9i!Wg_P8=W13AMS+"MEf9j-'Q)^,o$hnsl@)d#e>l&+Qjh%hO=X_ZrARVQlT3N4Y![N`7,h_VXkEnnP`nTt\!\7!R:QTEK+'fSo%)kD0:#ZWe=*FO3Sic]i`F[W1)aY9kRIaS`@1_H<`hA9.#+.W^`V)Yqq2Hn7f:.2;a PZJEKRJAjQUq<?=9HI5>DYU.`Rm4*LX$Z >r[!R2Y*.ROnXYk?+]JJ`H/K6(G+(l0n/)tHFN%$P,R5_S]B?(AZMH OPbCX$*)T6"YjcMQI^B+; %:@\&+A$KTVB `M+)<@TZ;7$jggJ@b]V*[.jp3;I)$" L**>X+KHgQ*N&PDG6C[Ccs"MN-gl;jPbg)fdR+^_Ds7'`UeMn1,@a9`A:SG]UO]rCqXtQ_C j>AaHtKV,$-cN@D[O`?-A,<qk5cW((T`-%C_?A87T>nU1#!1Zd!R7nb@ZG6+6P''^ZhCNet:lR";8&l=3=6m'p9lA7m=Ht&g,?H"A`ah=qK\O]Kn=<N"1np-TWPq 3C"6+IfQA?DHK1""R6GYiaf`Z*+E1bI:@H?s,GA G=d-T%p1e3$h(gsml<dFK:q(1\RCIc`WIj938[tL;nc49'Y6MW#a?^@__*%(2IDJ16IsoA\bBH2km$\;I7#l5.;4t/F7"sYAJ'0sq>US6cJBAt?5Ti)Q8!K.MeNKn`nAU_Dh)=Zo_,R:>sQ+]O+tX&b*Op5*N__mkJdO*-+#n%3pn7?E 0A/pS`V9:VCi+*40;nXU[WBG]t=O2aDBU9(fLUH`AK(TYD( 9JJ/[#Cbm19n'3H,b(Ob:rprqVFfQt; )b&@WZ(tgah#SAJo+W%?6gh6k+*20T;Dh,,XpS36`4"6DX-nB$7lNq&X;b N,f)T?9lbGVFFL$B%9ofD5\5o)CtthNA]CWLAn67h.VS\Qp[7++]s/iZc,ZBJoA1j,C,A#NIBr6&!H>d;F37(A59@btq5<V\04NCBgA*L<BVF]>./1?S;.F*94=?6@PCIln`M1AaBoge7C18K%JS0m8_D;ZQ?W*4l`1Qa^ [[[^SG U%ZMXP:.4>FpGV('i@fZ`bD8S3<Gr#eEC%j.tL=l<;\0e`p&`)Yc?l/YHRSgDoktZ[\-N^4k1h!-VtPkY%WCX.R-^^Bf"Rr\^rB4I[M_=f3Z\HS-=[LM7;! E2*2'N'D6H75D7M+KZq>4<Q';J(")%BkV-jk2c?RljcE$Z"!FlS/( b&k+e+o(3](Mj=jl#is4A&R*Wda-UVGdA;NpS/NCB=3Z_m-+fs2s1C17;qf*]k:*EYe-5)oAS=%"g*_\pXGSAb&doD0.f\SUjKO?13_1+9X[\=KbSM!0B0C <ch<&3,H(JIB!!g)!>5PtgN( m?%;gP7rG"-Y8,aqtBXne5"_7!*0i/hG&jNV7V5FEGY3TW=L$^O2flhW?7.T1["^Ef+fk=&h!JSi9J_+t226p>8K:`[l^[&%AOI)oI1AIE0<eEmL^M;pWhmi\dE<^$r(2Th<.BcP`a#mM2X!8oAi-(6\_(63<4AicTAVFJn6XMIQ]'m7UaPbb&/b]M#A`naAB':@^l3EasRJA6Nod>A@2mNr*MKAP)W$>l-,.s$614h&b:hW@eWaO+qS7/`)EZk=P)@UtjI)6G^4DiWRB[GpK)=:&YY @ElO5-P+%BV\8;_H=0QV*En\TG%_YM@@7,c@%[3TDLVNi33!2i3-p4UP.$i-653qrVn0&A0F(n<YXO-jKZjVWbZNRb(\U]Vt$C@?AfeCm#KP\lN:B,;8k'T@G/l@l"AiWQV5Zc"E%QTe$m,'LHMB7ht3Z[g27pa,_\(<XODta 7#f <gZL)LF"gf3='a!#$`h(ieX!AYW)A:9^KNJRAAB"1q(f0J2kER"A53,[G*8Ds*"k^`IU\FS^7^A"0Kl?9*V_LlF#Y<4NUJti6ZV_MKf?p7QB5SCdk4`j>)8"#b@\$j\\o1L_GY]F>reb8%k!A?W'7S7g2GF-4`  .`s]H$2KL[)e$tW$4%(E1T+go"ZJe6N8?ftd'!F'i(IooWEIOCo!F:g1o/9LP.M+R`r#[P.I(-S"bhX1mGIm!T"<V39KCB'_C3i,k6L=8knE[Y8Y$j5rqHLAM[K/h2R&2bp&0Nt%f%aG9lIc8fWNQL/Lq3ZEWOkO=r79Aajl'^a-T0ae(+-,.kgTlD7tM.cnqSTX`55tp_aZNQM&k)?maA8L[J]Ye6NH>5tPm0o.l/SWe%<(9$pSDml_9JgoY)\SQn6:b_>TY&5/9_BmY->iD!@n(W!0\2kS!928^B  Jd%jKS?l+S% GiB$Bk(N74jEcJeHF_ssI[&E3T\R)NE0iqRk^c9>t H3MKKH0FU73U(MU&V\IW\F"A%5";[ri=#A`oPY$=Vo=/%il;!A\*D8_dHL%6S)Kk2IIXBBY]3s9F)H!&$ahAOhS1?18SY.b@WX,.\SJEfbI!78Xg!U5(=N<)iYWOJRQAEIi%s!#CN_[/ 0#aO\7@2jepFrO\^ToBUKf@74VT_rg6/_:kZ2R?,si Ks9_oZFd:A/@\^r'@k^mr'6$KICk,F$;@P]1H[fZrfpWFbg*,f7[Ln$4m.+(;3i:]/A 8#P&fU/\ZI*\O@Y)ai64fi"#_G<@4N2>TD<FCfh&NiF"0Q@F]n>lRMe-o$A&a=l9JWtY:;*5*L.>'rID!qop(R=f0SD*S"0j7Sh!@M@HWkOBb+QHbL["*.#eq3,j;Ri8sGq:#6JRj)Z4?m(WtCZ@DHo>W$<(=mS7*dI :.f$X51B9U`"d'QCCr7s1E_,GfqS<i2%/W+NK2s#;;t]IILa2[/d1`W[FeV14 jQ61aU,_.r#od,%'0l`e"FUKO/FJAiOYKD(@1UWC@s@,d4n'Dg\*_;/+*rSon#pdem7'\Ss2H)R&XK4Gqc0;V]RAXfmJU:)mIGA)*[LB5jnY1FArIG=.%AAY)"<.ZqopOfqcT<sBp@#0AmBA +hH`gIA/= %LL0mb=P4*rN X,8B(`7<eAlZ/i %j$e4T<EVEqJpV:FbAH@.K/cpAnO&5>)N4Q](>[:4m14*k/'oW&g")9i>F=mZ3YL=">B$=T1O=M4Y@AdaI7\)23KEcM%-B5cQ'$lp]g\1LLm4Do'I[[+[.KSY(hj,[=A'QAHtZGI)iSB8.O-pDH:K6Nqg_AY,aaeWo;9&.Z6!lSP8$<M$SlHA:C2_Ns!3cJ<EXmEA"O+[qEm:2IMjfc aCEY!nWUsen^1:r3QKdp+;p,P4q@42iT4-h,X[Flksgt!lW^j6Wk7Z6A;J/'04NoL.ADW>WY?%Ucf*l,m=.J>X1(+=ro)$hWSRY<[R*ESAO@kYE,+ZE=B12;UBgB[r.`HektD.RXZfAd=6tMIr0mkAgXrBbm]%hJ$Ia>?]p]>.5>a;8!ZLoc-eC(KB?3(+^o^to+Pgt:LT4Y(A 70sos!rHMEpW@T [=`SA-,jTCB`(HbKgY(!]S=OiPMRDP_kLd_V\?s`^* a,OXlt>i+6Le`,t'^_t[@1,q:dqPA855MEc4&m65\1j3n.+<sp8IH*CT-?`Y20$k,b;@mn'HNlA`giV7KUI!29;YA"jZd7=Sn=nGB&`+D=Y@VMpSVK/cYlg'hY/[V$i']#t(?\2Y=s'AnDPf>_J0-V 1jej!PM4LYrW],HA]3GAtLF*c%NpR#eAK7W@.CD08 .K-4QeTlr2A\R#P6:t;npdCXPmE;=M)H.Ao2ki.Gk^X7OS?jRr9I4D cg7U]'e69-f-Gj'2(h*.js:I%FpTdhnfDI MNLcQk7B+XY\AQWZ.M;&N)l^W9g*g1)O>cIh(t]l=:g.8MNR[^^HpbAEKhN_VK>=/C]'e@TKAiigaOjofP"UTKJ4?g)N,ro=C:q:<=Sfg4pO#BtfCrk^4*<$M_OI6>\V)"m[8?)=9K.!nH_\@,[J\l&$o4ZS+W_32GH\QKWpRSPo\9ST>,*YIQXj54\O<K@R9ocIYA#a@n!X8+IUq'Dg>aWT+KqQg#rCIpL%:/^A/Zk0!&Q<q;0VN7$2r`"l%Rp"dEe3+4,;AIjEm'f6&qljfXjQEAWO^S?;7HQ%*)0HboA8:WLUpX%dRANd:UE\kYPfSgD-C\,dh#E#F%!c/oYfY^Ho]#GHD#;ZFrAk==(c2Nq@ !(]/FTq.8Wmea XJ-@,.X'9r? !LB&arUD2Ai;LjC*KaIA:EEK-,6&'6Y)$jYdf=QM7Coh5fVp]B#/(E($(\b7"rZH-!sAd*VRWW(c3F6 :Jl;'a\."VDJZ"NsMr:30E /]PRT7d.H_ma1tsM&UAI)q!jRH7Aio 1=IANt.Z#3k[_'\3\h;s@nCH/2T![ZJ:aBgUkOP'p4pEPNU-rAGAk,:_+nFm,:b/4AO<b+rIA(.kGt2b\T[d63hjELNXIVqajbG0:HKY+W>MFDtt7ceOoco(0Z9$o:1EV,bq!hT7QjUBK@FRVXA)b#FAG<;c[Ad_&R41&&P<CcTR'taj]EF(fCsFb'/$Of?@1M$!(.'m:Kb`RAXh[X9IHp/ ZG35b.TZjN*!hb(6F+/qUs'@A04<TqGD?%+3jI3`q3ojQn=%^]-PAZ&m+QKl@57 )!p0>ik-#?=YWgjc'Y$)47J*>">o<t:b*M@6a!$F=Zfco2fWiKB%P,_a58kf)'UU>U5nkr'tNTC&bnc,nG*!W5[`8sfC;aF+tTG8t9>1jIf@nOAaEr]DU$chWZ61 )fB4In+i<.]^0af-pJ/C8RlP(ZA`\mP;T4h"c[VMr1X1%fmdpk)4BF9#i&*WbY+A OG;2"V'LML,qI>V4P@U6H\%$lg+D>=B(I?-Q+-$Z&+#mL8f UffC2&RTX"hk7eYXi,55tjFO41th)'T*cSD/\YDiRmJ&4lQD]rrF88apB\qZ[Bs!OX64<PGR$adA:GTfT70q[W*X^<0:S_aiHQsq2%tT3]HYs%IYU'm7Ke\Jiasl258g>L*9lPXApK`SIA49YYMr/D;%*1]8G1j:A#o*MP?N.+=4n=(fW2KLhMD)CQ000_A%XAa^n?a1!ts1sg/V7Cp-:6[fI(YQp*i6AJtf\):mj+)`"[G=P9<V;;`KYh2jW N>FVQJ\H"LDYi/<\I#aKdnn3,$eeltPj#iEJYG\(R[*.s&U!KcS).Vm^tr;gA$kc\P\?=+AhU2%V<_Cj/KS0sZ4^QR]pVSZD\:is+:-GUH8i4HIJj7B:tT63-B_m9K>ChXigVt\MN@BUmBDig5A)4?;TjAPpW>6Ab(jdh'\!lF&IH,AN!Wbq <nI @GWt*"^a%HP@8Rf2!7""d4iC"0^"m=kQpiEEZ(/lr7'r&;@2IY B;ZVolI=3<cJhn%@39A4G<q##4n#j(Vk"b*l)$q=U3>E&=ZeNW6:ci%"_Krid<\`No2Vq^]KG>RW'C63MXS1o$(jWI/J>Xp5=N4Ns2S4d33ifOM1!A$&@4VU$1&#-btCrgF""Ge^MR<s0(HAAiJ%RBcKkICbShQT/W6N8D*6.[UlMh6nU"YgB@FZK4PX#,_o<p?HRm7')7gPW5QV\aWA_,h711$_.0nhh@&+=-)&O<>@TD6)Almk!ZgqKC8OgppkZJHl6ZL tR#n,31n]$i-)AO4)LKM?<K_e`hR(=^5@tmsQ'Z+<'#ZiNL4%[iD'1`01cC?=C37=KaO<<8?.A71,QMVZj%EEoZ]cF".(ta3.lA5QFllF(HEYg:;4MqAAnZWKqd agd>bVV`b[*A.k^R8 9>/ZV+pP(XNi),k(\X F2)T9;*?$9K"-l^#K``8m<@Rd'\LCGqshA9FJs[2Nqiik))Ek.M fgWa[":])lE ^igSa+'4FQ8?O*(DBWH\?8L1qXY(h?k,=i*/=_]l$%d$*cW+5KP87`6RF#c,1r'K6Sg2=&74Yd@7,b`4"95bD(e'UY)YR#kX )A*9.q0sl,j)R^(O'5kP7!jMprGFM*!r5A]BJ'&pkPdeO@Q[B++1KEPLJ0`1MbqoS!GgCZ]-)aDiol)cq@5bkCAn*@8 s-JT!R*mo7PX'&]\A&Cm)F8!1+a!rpK6#dO8;0:gC$?XEb6N.WQTK;cS%KF0*mraSTAP-E[aSVO@7>5$1E##aD5&,aIZTkUE%#9W]C.5@=8(/<XR6p3ksfh)NcQH^pM?s1D^4XKaD%E7f>KHW/t.iDZ]QQ5I=ErFf)HqLV_J)#X&FbIh*QJT[A_Os-/#f!Qgb\!KArLj!UGN#9gl&k3*X3/g;:n`dY-!Y&#RZG8Klc+PSQmQ:e\BMCgJHQ\Oi!jVO!-6g@A3rmb\pVq*B0@5r*ktX\BAdl-L,@@GjBGS7AO^.!jU%icc-^+@!!nTN/E#9)1"m86qQJ$)i2^"<E;V-I<Q6h@)QV4pQ bUcFCU>e>4*h'&'=kETF-3I(=5c7,bqY5Mc5c,'R!n0hr87*phBM:%t(44jM(!F04pg"-R]DIn@"d`'A4##B;X9d`,R1S%n boGUpSY!4helQV8#69MQRj.(fRJi<;'oIhK&Va@g*eo/k^3O+9tOA)V>;gZ*M!CGYoA^Mek(+p0M7AY9ZY:sS)&7Q+(h+t.NRqX %`1)dh4q$.Ib7s ]SGKn[Q0h]mm+G3IUS@/bq$C%<#2#k9scGN*V$/6gL!Tf@.FF//.r5gBY?9D[#mGbQ+paH4rlVGsXXBqJ-E.ZKeP0AKQX(mPh?W_l.X\I@UKb"rHrQ3n*5nk3L_jA&4`@SkL/4f&,UYsrA1\JU75X `<2QeJ(4,(s*SYAO5<-tNh>V:F^p135lAmDd"#FA2_U@raXOmOqjT&=IdAoa"88UD_5e*=7Yib-q=ier1/b>(\b_?%D)kh(A;A,9Y8ob.WQbi'S@QsRf`%C@%F]qsbq-e<XP661H80!Oa'Z<\1;4i[?l[BQ9GG6%Ds'HT\_`@)4n;H^aCG[J?$^N.)sEgR rh5#p7bR(A!8t5nT@c$0eaP35JL*U+A`=Wb$AgWhm0Y7)[]j`,;\4Adkst[$7Wnl;M_V?lonmaePN)HK5V"g!nQ=`"gpf<B2U@YWj)jnIelhP8g$6+g:Ft&6jV (n'BmCD@t$Ncg7TU=fnRLC!h3DFk"NaVL*6(c\kd%Z>&il3-&s/`riH3;+8M7>am<sT.R>MpJXI/XoHAkPKpXJU71$-'?>eo:XbD^N>1J]NBq:Xj9aW8L4"+<Hn?p+tp$R.>\f8[r(Nk3AB2Ca3:9<OA"(`D9l2EmmQ`d@Lj#HskG@PI5F&ckNnk4e>M>>(>r3ZP%S7K:Jh5'_)JiQn"2_ff6>#0K/hh2,*,dUbS(UhFeRsr"ZO^p*qM'BW9p8 (/EOjJqM<[pbme&L`2XT/b&$ 4R[GI8.6ReDO#/HEA.2Md]DH0<_YqiF;]mFEX?12oq,NnE5qIV7mM<hHb+PZ`GS#rUagL;-TN?lI!kmbT_,CZD+\'*NTI/%LTZL5X_gKd*DRd@Ve8ZG1#fcmM6;Q'hFN(@+V;9j%NC3 &]ohb&X$Y"W[/'g0Ljo3lOIDQ-U4%%"#?]g3:dqA53k+8tAd!aM(<N,7-Y7+'B0VJ7E6B?MRS&Zj=*ZU;!S8a=qA^?g<?<C\AiRF+q0\?f#bTcWpB*4:`7JAG(.rMHmq*5A8>, k+a*)D3SQY9*9!Q?=g[m!<K,<]"3`"(l:>mTe:jmq&jAQeCad4Wo^c34ttXHq8Bf&_*11<t?E_'NI6,6N9/! 2E$"Ctc-3[F@`:+9f69b1o2"'!l`o[iIP1rgX&9r^]a58n]%/Zo^XSA+llTTYEGAelN4D_h^,.rndN(=&AlntlF9R:i6gNf;#E8@Ni*:3]*Y7L`PPFM">a90K"$Ti7V-LCJ$_\XHOUe9';=>pfk5TFBpgJ.\<BA1RhL6Y7^tP6=3EAG=JlK\e<Mj^a6c-[d=VG/#L-djIrjB._(/KosS>`)$rV#[kDp@M@%)Z`2MQp&=kq-T*-T!`.D7*e*_BM:oA$`O?/,$FB>,^7Rb<`>?QNp0&P?HH\6e\ZW"+]M.N3GfLPSJ,&$<b-a.?m4LEMbt[FH/.LX%]!'8S<`kL7H'S;%Bhml-O%#A.AQ#dl$+PXE8!Y!2%aCt),+ NK>UHZQoT3qk<7r'RJD9oFYcY%X*LdK5l\M=VVG%Cd`1V;0AV:/@.GP@&;pMo/%70[36V@UbeR/bqp(aA;/8, h3cYKhm8-<pXs3Jobn",N[H]FSfKenq[78f#4Oj74\:L[`O#i=?Un2tmI/mD=po'i-,0oBQ4JWjP=9">!X>`Ak@.=KF/Kn*Lr9A2HBMb+Ma5=6GlaJJ7D)VNsYn>kS+[1W!rF-2=/LV(7ee-LM%)b]Xf@?MknFlJ?6LAbX.H7toG'U*ZhALkX>'`/Z:O7Asj29LgT0&V!+/ABRn=aEK+qI\,oU0sMsfo0e\[YXY]+Spbn67HIJOfCgJR3<43tZC1KnJr=f4fr:.#KRfZ(M=;!k;@HT :/iZ_H.HTPn2VkAnn)s4A1'Y]1iV5#,mI=m`^(4@+(`^%-ia"oh<N:@Nttel]\]Oma*LdIdFt+O6aV/t7MJ0c&8Q%M`attI'R0ij3hasMh]VJj?"Hiq'GR4MWn5aOt-K+DWJ\!\mn[?LXWA?MRs9 ][%Q7+=ZfN>6!%g[_/D&;8!':E1NKG&4))ARR-Ar6=)@Q &&)>/f/=SLQ_#,efRaiKj:*4G.8Lc*>*BkJi#bXoHQr&^=aXB0\-m;?\^F_<ZnUT1W8IsdIVf#q,^t=o*%PXj<dN5W40HsbA.FdR-Ii&0All\>AF?r5oA\EI`X23a=8RZR3LqN#m,VE5+C,"Lhs*mrmFKG^(4ffII==VkpJ"f)T*qO_ja9,\J"-Qt$"AClXSUTAc/t[-dR/?&fV0E3r-D% ]M;SGmMo>h[H`iA%a@.N\D+eh@*-`Ap##HP&$bIY!-Cm14pK7X@T)^%b'bF7M`F;)Lh!SN9FTG*dY_rT\pK;8A#6lINMYs+JGn9Q`?-oKWN.YfE g^?#n@ZFI8"a9:sc5$tKmD8o-;CRJ92+Y[3cAWNS:Jf9/T1#Y=F-64BiIRiQB3qCbIU</Rr)T$iV)q\ r/cAdd:K^;WA?b[b<L(CpHRk -&%PVE8Ng..Nfc_k\Pd3AFA()<3l<4CWAs FcSbb%$j6WEZ,_)O(?(&)>XX=p=DA*/j=nrPcOsf`Ja18I7R=_(g5mABgVD<M4EFPUE9+ *>3Y&*>JKP')OWdVkC-fRrPcX0KMt2 C`Fol[nRllZriSWs']A=LX<3RPV`?cBfY#-A:#F?Y[$Y$5.@2sW7T?L`$;QH$$VgYkr4B_"eSC[a36dC[ cT%*a(C%<%:X/_R6Fq;YBAgd 9)lUFXg$PtnA,"EQrAq;:Ss+tA"tF3VA^7$\]/!*]2+8/ ,0ES-1??Wq[>_$`;2kf8^lt-fZ>h[#5G>j(BNG.'Xqk]?n$cLOOLhU2F?W%MOLM%JsHp8GJ$VO=3h3P/*fp1)hl]iP"32CFGM@_$,G!`KHh#d0L"5EeSn hj'.3Y06q`#_%Z[%7PZoZ;YgN)b^@&'Ym_,_l_q"#)gK(#6U`k7W,ie/W_)a/Q;r6bl<q0EAGX:^.P@Ol')E^/@EPPjaHoM9JZjC6+ki@J^\q/'#sRa%H1WkHEG/+9%KWamAsUdU6rp'Xo)@@E$Fq"KC`W/jLk.Lnd'CoEcA2N36E@ENT8pI@9J:R]^O3oN5YY,^ JV=6J\bmaR8*A0)&</R(t`/+(NC[(6TD_'6Ul10n6Wgd5b*/A1`$fciafJ/@*4UY[[0[N!6?gC389H9]"b]<ltnA@.QYJ#X%'hq]&BX;s5d36g])4Oa:[0+QZ(MQRmsKS`(r%&mG_2NpF"ATY6EqGF68OB05o0k4BU&DEh!(.7j2k>-:@2c]KGGY5WW iKLZe)WWjm 0:;Nm[dF/$%U"f:DoeGgRmY-Lf:tf:a!7_>G!lAB663CedhibAW+PYF-,_"26:NRO@:B8;>dBk?Ej(%NHQ_2:p"5aR#<:N6+]b3J4$31\a`B-,B+)M\0Ramq(XMV>jNKA=Kp%lXbN+E;#EbCHsaX00jg.iAXL:q?\L#1UFRm_%K]h,C%9mo^h*Q,14#^+Z@m<FI3En$:niO.5;B6l,5b]Tl?.!cT1].Ke7SeQAC7AVM^I4U,*>8]FqVtFL\BH.m$t8SqGpc?nHLlMJ=@.SCkXhjE5-lqg= BI9Rq8PSf;LmfJTa>jBUaQ,p\,7V]"4jf@dT+<ft+"3 ;FrUmt5`^<L=h55./CFW3gt9r6ctRCe6+3lZKs['it`J5jFH2@V.7JA8E?RT; UQ9A7BoM%*@2eE![bd\5p9]CPGK;i 2EDGr4(Y_T2X5mef,sH0+Ei3*gVD3=Y.@),$pWir3YV<\*)At6DqAm``JN/6Ld$*nRPSApMdsB^U'RK_tOiEle/XZB5E>,T(r^B#)gk3*FR;'*mq5!2)@N0AK/.`^1tp_p^VZ1,\O3"S]qO9eNQRo`L.eG?/f7Dl.2nZYpd aW8o03SA%ZDLNP3G8*1<6:*hVoJ=TrVa&!t(I+DoLW6h0tkmAnehjg+>UJV ]JTBnm ;hN^l+)S.CG:\j[em6m>;TK5Y%;p=>H.8ZedEk=BN?\\DOG)PP.S-!lT@#&HB9)FOII[CO(e0&JL<O)gX-CiH=I#&q(dAH7$5X'%\G.N,75ogEeb]LmLS0)^@=qAgZ@e+De!<7JAY\#6N2oT"=:g7k\S]?WJ6gM"]bJ.fZ>LJ7V=d(Lr:=dm]p3"SL;'*_O)"6V897cWP$s>Q*<?dla:j)rV1p#KDA&qj.m>I\G*JHZY6/9c[/.!:31'mibAEiEkRa_%]d+?)bna.,ZIf)cfc<L8j%9X.330t7\oUlh%tbH3'kF`'8ZLk*r,0`ZTOo\]AB5n$^D+3l]dNfPS/c't#<aT&Z=kd3Lm\)s+?P@( /^Rb@FK"Wki]h7XBNFMt)lh@aGT%?CqHV*`==Hat#^4!DYTn@Z>Chc;gFc.e'[)<tm]r)As!Akq<(]9<tiZ92SA>6.eV#/itVK+:Lr0HC3$Z4*oLk%0mYLj3#DU\4qWqNBsNS'_B9d-*09U9),e'>bYi?#&dAl\X(7?0%eRQ:V*hDeI84n"X1a/N,ITr5/N,S2"3Pm,k5]s5gf7WU`NkNrdFd(7P:,)(nPD=jH8c4ksI/<.WUfE=_OF7Up4H>qic<.r05nsEoeXfgB2$ ]MVSj5Hj=GsCs"\hA1>c:9Uj?%[Y=<N6*`QE*L9M4K'k@j!eYC/KDs5AbA/-ATEn5F*tG:KEVSKsbc%TMC"tV]j!LA[8EG*-i^TYY),3hZ1tlKbf\(Y/o66iNjIW-_g."piGg0kT7IlVDo1e$ai'iJ 1k$Z%gJ 3n(ZmD1X]IZYZgHj_"hP-a)N5FCL9c@s[j-9SF-RAeDU)eL0oNT.\nXZpe$,ZHH-:ch:.6:P"cL(09m#L9&g_F)F`kLBfC+n&`MaONb\L8&'XOjW&A5V!9FqPYk1:i9*J@<RV.7Fg8dR[!($0RBG8JAjk)CT^*80]\.U.Ll-<hW(HF_';i9Bt>1/=4<T1H[tm'@W,.^J2%)fUBk+SZ(_5Frl4B;#< @<n&qeFD^ 0=#81[sSo8@@tWDO/S#/*`Uh+NNIRRONqtgb$>jA^TCVaLePTrY]2IlGI?SXRiA\0loHkLs?`O\8&?<>3!?SM3AmB)W>oRDU$[2k`7_>Y,a,+C.e":sEb&fTD0EA5.XdX2#ZTM>$X93b37.*$+YrFTorc85839WA[A:7?4>X`VIN3`<5!ZH\h^4pFA<mZ@[c];\6MPj.#c;3.3@6c;<p\gQ9IAH<i;G+'l_8>^JAln:8Q'HFG`jnAnCRf`8WHPF]]$k[B#1;LHW?)W5IS4@C=O$4E"]4!Cl2GpA ^Cm/tJ *?`6pLMkVdd.iMlo#[/<l\b=JZN$S]G]#Ee&/pd.#16olAklO:s,1e+9d2;SA 'j@VP3BEFcAUh_9Y&Y!cnMsh3>af]Jc#Jn^tn?BefEJ]jMMkWIh`]sha.f+e< 80^_)6 `G0=YPUDm_Efb*\&*S?Op6kBI;Ae!C)-(DFT<q_<TF=+ei,8oY5NDA+1r&qr p?''<`Vnp;SU#9.>>2iQk2tOftCQ!M8V(>S=@$RNZ*n=ANm2B1kN#I)PC\G;\aEHjW#XrRo">"YFD(`pU5tf)_T^8SLUZqU#.2C6`#EpJtZ^KL\.(n/&-0WWO&mr`1RAF"&LtQ=`<h6?#:aJnh@H WR,p@l@+(&;2e]NC?cj8e\'!Xi!^7=dDl[2^QfrrXMM0#aNVXB9&Z?02.^4AT#Ln;QLCcN5P&45B^cU)mg.,IJ'/gN7?>i?5opDmm`Aahli-r,H*1(32^Lc>n<,]]-^]0GRn$l5j_N#hr4;*.e6P?-$+Sm%PU>9as`Ls1-JINC"eFPC%5sATQF#,s`I;SRFCN@:- C?R)b:tX\:iVpK<`0FR`].7k:KmlBjI[,Kq"@QGa*QK.mkd$CnOp$5WW@GqDZnJ>p'E4,/j[_hX"1@)O=A>`-Qb1Re+b'!': $kU<W"=s)AnJ4.:4&'S&IY%#CbnJS5;_`!42!b\c*%%+"@F^n]5PfCjORH.-^?_t=:Rd;/lb=B8SjC35 (?e>B`bgrrJ`&"9V7e/)i,(:I:7j5gh \,&I5>&h/^C0PctX-3s'VAdCB6sO(F."4:OL50H3+o("=n.AU13=OsE-Y$8a0jSp+!3OS0Kn%TY1VjAGI2EcnJ/f,9?RRWUhd^AHAcq=%NF"c_O6\5>lK<IKE"!6G[/=OP!)K]mIYCL_T*U;BmBtV3[1j%_t"OI"c@`#Ib2mim6e*#KG t3Xpsq\MlB>L45A?.jr0B.]XRc(?7?6MB0P1VWEc1n!'/N!75,.=!D>92_FPLHmPDB"qrJ'BK978B3g.6(Nh/-#\"SsokOb>DcfJ^eEa &.ccAH2_bdA"")'I)7Y$3o%@l]RPrAogDj;60"LXpE/VtkjV[%4rYh0NAs\a'_0/Uc(iVb_i%<A$qs>?>[GTP\5@9%iiiB6r91qf0At[t$D-_:5^M_7g?M_ZQX][6OMK8"S,Um8@S[Z3M&;ZYT)N&_LA.=c PAl5A@(\5jB(8O!t% c$s?+Ga?,JjP.,#B_DI8,PPjK+!e"^dqNKdd[jHL'\/_eaPifs[2CiG^nm:.gjV`&qak@BJ0SRVSQhtQQ2[A]?]k)o`lln\^4I>6*SfJ#tc-'aqt7+?h-.Xsn!B*AKV25a'NH,j&YQ[?)@PK8L'PZDPtK>n)+F6^Nnj,ZrfpjWg:H+_*>/6K_]a?#mn^dAa:8tDLa3hi2_bZ@rk?g9%a^s&eW_#k!9Sr(mM0CQ2Ot`qnBfR2Pm`8hq6"g#E9XNF)th%(IH=^FM'bso!)n7Jg3o?\6mQ#jlI0GU5G+#DmC(V;7@(^gs(t\mJ*V&\V\@Ed[b2[[>N^;#SIWj#Af-cF!m,=1Hh$R=VSclKEqnom[0,QV-s%K#!g9G;4o@c^?;D,jRFHaaCUh-L -4\6TX)`\IB4:4(+Adeh9CQf=t0(tO>n;C@Nh__?Fo&Z8]TO:hMf_+B D8?+=PA*bE<M'6@Y!^eS:G`apd(:5)Q>[JP1=Hjn aYs>SRl"ITj4qL)ILm$i\f^Kmg)atqED,]34Mt+IAA,%Y ignFm3&[4rbl6#c9+aW9/R+HSXkAA'.Ij2>1(OJWF24H(SBY^;V1%&Ora?U#(mr]de`@&QJ&(^Zl"9%N"`t_[]E98>c?sGjo#;nd*,kW=>r_Ddt!Q,Q25FgH72eL*fW2f7E+<aAn<gZ"PaYaP'p* OE>[hihR;bqmDooi9`jiLm)PM-(A:i=D2%P/MB)k@'dTBLX@:EKK4`A0"A)`1LmBr U$ql2)AtCmUsDiAVAWb8""#kV=b65,&CX!H(Da7sdd-<=hHHo03,OLCcC6* \?(_T)47RfWfPYc_eZ&%1lj"0W/?.=J?M%orZT5<qA51WSnfroD)`ccg-\K:+HQ'h8E_ALTimoeA1dXFP3 CI/c9_0%J]DE=(Fa''lR4<9B\'5s.2Co580Sri[A85n<1ro/"#)_/-A3*),@mmp4UJF4'j4FM[tc6Kj9&DeB<gH7=1AIN3fB):e@@jo\'-teO;2`M!P_Xga'C]U#mSpV(CedWd6/:\A*k6_3S'ca? $hei3j$_8JB-W_[m8oDjQ++m5lj*moJH$3\hf_<92:eg:^?Jb></is_#l&CL7<&b_U7Eh,c]4B9j*!,_5pH3<+BRc+n2 'AB])MT\eb\-XF5X^+-2DDJ7 FN&ra,T;\97@l>?9C;<TElZRc'VNg._V'Hio+fm]NosF&s(R#$tOfd=LdVt X?8E^W /fMI41;Cj]e9$=^m3<m?O:%11F7P7h$gleBj+0!^0=;BE+4+`Kh8Z[T[6prYkF%]_a5+-pk 4a/$BrLkY>#*N S*4l6*R_70:fP>"mlEA-#DPXVdfF>A5JJ*\Lk&!.@CNtQLn74,gN_NK=h'I`RAc'Kt7^AslCRjMGc'j+[,W6$LbUJ0@GLd3FK)]81&P8b]DT;@^7??c:NA]8ptTrR&,/eX)I]MK&'q%TcPe(TaV-er!'3j.iXGAmdG3$GZ&G$')>/AhbOtm2T@hNq\\sfps -L248n$^ALP]ho[@1/.ZZq3IWG!*2WXPs%[S-$**YGC?($A-;.G-NOa>B&)A0_.`Cr'QlM_=>GA(Q%Crtn_6Oi+pj*iq@eX_As'nS U[LJtt4p3Dn6FHIY(1I%D4\>r78crA)<OVqpHbm9k!Miiis $I[O5\HVS6"Tm0L$Z;k6AJR':(]^c&C2)_cALI:8^P: GD+]r7Qm<mf*?3@Gq8 fP%YFr=JB#3j"[I7FM+A?Nl2qV((8N!ARRZEFm.Ha_C-"l]fTJU'-eD/+().mkYJj G/":CE2NM_ngf=(frO3NW4KfN@<%"ltQ;6`MMD9YUL?YdKE86Wr-3@WP->E4aD#\hU!][mh3)ME5bCo(OlVLEU35q (fjKUlBq^qCn[%N"WAV_8Tb-EA3IM]4S'-5\phTYY3SFsCn'( F<TWXKhQ&!Q,Nj*!o"],M5_YfG6*EHcZ=P(SiAY%1CZmnIfeA;Fb(hIdH3WA#$?mHK@OFcrF<.pBUQC46T2'?qr5`>l<(cLB<p:*jo5FDVd=6+NB1>=XG#rVjK5P"b9%bJee_/_AL>D_Oa;XZs\ JFHRP"n+.#AY^.$a1p'j+;3@Ho4^)W(C<;J+PfKr'DW(qKn/L^lB@X`8[9\.$#i^,)RCE).`gMXC?p_jh`.d5$<VE<n`!f&b-J2VHDmgXs_2T3c<84Q`r("Ua"om1.F8OWPc8f.CJ=^n9MC8P-50PhA"P2Ibm_EWGs*HNR)+'Se-;#X9OC)B3DPjO%dabK]:^VVEmM*6_jG)P\IJ"gpKm4 tp[^N6;6!FR!nVFT^<gL3%$FM>Vb4^h\b;Q5LY&&7"BKkn ]$^-`+S9M'=!f:Vh643P-OraoJQnn*@AE3n3%kcMt"dh'CRBK',l@6`?Z)M7_1<DOZ`[K3h1<.FH?lc9-_:Io&d2Ta#SDr"_tRBjI8<co`QL/Aid)lOYW-Sk%*eNch3K8`<N-]X0)(Q!`HVm $^%LB9paS;qK Ad2t9c<:BsC!g#NA)V2IFnr0kAZN/..P0 $B=moOAaJM*<sqLUPpnHK/E5-f 7YM=[F$>*3gg)].<hAk\,72dH`_2'eP'36F5%pQ8+:FH'Q:;2ZXXGIApr]q[s65"? XJ g&r^=7K;G+?2s&->:Vad("+gft$T3aW]q+3o(d/WcSW:_B2#e@n&mq7N7W09],V[Hio8!6OZ%nP=LjAl"]h1@&T`8XDF-3F,%MD=.Y[j8#Wj6>=8;2nLO`93V8HiB3GYjW4CBdeI<)W(SZ8cm;SCGgC`ZK!$)Z\CM>W!Na/:VK`MA[-YdoS->HZ5Nm+^R[W^NrOI-(c)J6HCC7e'M=-DaNcPf]4r;rTdl\0[>6"\1)kHV,IoaP2\F!PJ2jL1G-4Y?)ML"a:G^^/EkX`>)@_#r$TZJg6;A7YWf+rJ5hec<&FJ@?3%;]GGmB9DmInjAY@^AE24MZ2Sb#(:!ke1J3mU0'q;AM8XHLgrj3<&Z-]l!M%2A5.a<RYhIK[!9n@8QDnJ6=]^OVR:6->f>ZRh!qLr)MJn>>0bbDLRR<[hq$8oi'2h.blNaY .N'L/'h[&3*\Onjl/LUoMjA= FQj<2l4[>JGsCM:`Q:#[QL9/U9V>LZrfl%=9OAtLg3.'eLrH75.:Nm,i>Bd7 3n<2-q8p=?`FM"Em6g_ngd*WND4PtcgT)ecQe%d1"8A_(qPr*iW9N#="aBd8N3bKONV* -p[^^h`/C$Oc[b':)#W3>rBBtQ<;giCQ?/kSK'j.gMK8i>6`c<B'gC2D?tQdAFOHra3TSQ#qX]a8!3GC)j!35KLV,j#]OYJ,c*E-^&OFM[0,9j)sf&ORm@3*2tUcW8T5%c"OI#-tZS;=+5j#0#4GPAN[,E.ptI+g/BX_GVN`/)OAA&phEaYAT*UJ:9Q%BA``b7q8A $?CaTPNVXj8R"#kE.22A`Ch#,stA^Or8i02;<qm+kF!Cm16 V'Or& )KQ-L.o>^h$6rX>,2t#^r$6Ai)Z8q^=8tr]BdP!WAb*5=[J]Fl $c#Q*JPX\^PnSB8BBSZQ2aTH5qT;:\$en7K737i'C.14gE\/ FK$.`6Ps>k@6+l0G^7fAmgEb\siM4rVF?]2X=Y'(4]O)jBFdVQ#ER0=.BZ,scQ \;l`>Sc3Sej^,YRk+ka%l,eRoANq5+E*$=edWYdJo<#j,8]YIK+t/&6<5.WW2& 6J$i4l[gj.^R&KtPq:+\:AR:cpX4M30_fl77Q*j 196-t9i>PfNLh$/#&+-:tIq__jbj@fj@:.>e?Ysd?=WF`Nf:mSM.0he25-Gbb3s<&#9&Df :$OJ9X%gMm"=`p,(otl8II&M(kn$3M!UI(M\Y'/Cmrl$@AE9 _;cip2JS_e4plaNP)S(9;76Mj]deeSaT.[2b+ZJ1A<<n,>oh_/t!XWI\Ac0#@_m^aT6Ng@0Vl3AscN,ib65]4QoCLg58d)g<O87SsN_-eUS6#nccYZrI<K<P-+QX>dO<?&k?M@JspW8GM2hG=Tg2q83k@ld'+:#(pfRr#09qc3Ue&!PWg9"hYb^>(&&qJQ=J!T^2;9)d+0WXp@E9/n188"eMrV4`Dt06]dY`pX;hE)!PlT(CAa+.MNF3C@CCG<71rkh;PN]Co0VcY%biWbOt]tLB"__IU:L 0? 'CS5ZlWbAlG#$"Y[7rZs=4UiCPKiHQO[ai`Ocl-/R@a?FSFaEJ>%>:qhrPK7O!qS;#EI\,Z(A.nl>r:LY2N47la4e]obrh@0k->>sTFQ6L6T*$AKBJ43DHNtij?HMh r#d.WLOCC"@LPX`-_q1Y3bUHA0<\K^k0nS0O,?f[lM'Y(tBM$2A4Hq-F!3X+,X\"MH?M/6G *NTRg\T[ol5"V+(T@tf=a5'g1(iDWr?9b^D12@6PX1a!C3B.M%PmMNXI:1k9NegL(#9D,T]c;ZhqWj;:[CVs-nflL+A\:7L:1Wk=1e+%4`J9go(4ap9h(trBJaP+3!]LJA-e-lWMp42AfV",>7<S;04qKHDNAFrk3<ATKbfBdKr.;(X/UFa]<h%-"IK!t55i369VY_f?@=#">(5$M58/_UAs'9m$:,J@Uc8jefpVg@PNXiF/b^bV+],1];Um31DAqk"nE"OR)VR/^nN `giO%X 2ZX/S`&rr5\6Wo7ZN3^!SN'nq+P!$7S]H`.(&gAs!?V[6:GptG1Z(Der*Rb]1^D--jX(gPGZ4Le<C&.N2/no<TT"lV9O`*WfRq%oBJ2dKVhHq"f$tPUCI0;BYZJiK"^A^KW,D]^3Z:Af&+6L1A43J%I0YCkAZ^7Tf1Z<[H/?4o7eWFCKEX8n(/FHTpPg]%D,]T%d=rD\9-$sY\O[qKGVL]^A-VVD(__5%t<H.6mlHXGX;!jg<#/p!_bLmP[dV%Rh\ha(US> ZMP*IcX_A^rOeOC$To5YKg"%r/+-%h%iQ>^0Xl$\dX@I` ]T2h$kFhcQsb/VjV<rF]D$!-Q9BWfQt6V<R4V;2B?$LC4?G#[YS3rt)0IdT7*]b/Y6;)pCD,r!lMFcnng_+hVMtjD_VURmL3=jh1C=[<U+Oo!^U"'PO;f)spBB(@tgi4fSQl.%]*pM-^5F.ddTN(*nS<9G1(=mr^b'b0Zh+B*IDW#SF;NS;#F'q/FDV2^qsA1cWZA< bVr?s2Q4@=0!,XXt%/Q>&g s^O,."(KI4h+ARfselg[`Z;WIeV=A1c-jfNF$s6$/3\ek;Jb PHk-X9WpV/"JMT1r4/iV%]"UDg7%f/k#N\!ioc2M;CN1:4!@+XY4d`K*&/Cdjh)KO5@YDm?8l3*2 cnSV2KYg+-S,?NEAF'7o8gE]iVnYNXG9mPb]g [j]1(>!(l1]j5`7E)D.th\X 8?G/dOP.)@)GRSn(EW,,<<E; ]p^+6%sP%jFm8W(aiPTNnPhT%YAfEk_dkTYt<Y9 CdY2%+HA1+3A,G;A8UmPYDa8A74.'=t&B4ns]lo6[g#[UnH9#phl!^;(ClNtRppFs)f7B+@IoNNNSLpj)";cNF"liZp5^gch6#9:03,:"BMC/bJD6LJVho,.^Blr0l$#]#oA0f!-8;?iK0ngCPdtjc8RDUfa9Ql'CC-O>JAl,,"PthC@,<H=2#t@1G$5*.'#0f1m@+M R7/Vii`sIJs+7gp%f#;*I'ZgW7$.^-J1^L/a+P C1E66fA;CAZCoSaR$%q>(Ttl3]S+2e&%>.j:)0#[1*kD$]!+[SA8T@jt/^iA,AE@YQ*a/[BPH+HQ5 FSG*S:,BiW@H_MdBK76.<-k75-AR.;6"PD(%0INhS7ePls57q;J1`.aK-E<pjdAsd'[noGf\N5*gd`Q58n`VddhUJ8!B!AlK3_aT)[=Q9O@Z-c#scjPlR0sN.A_HL-YZR]8O#SigH"f#`mdFR(je> 7_W.mK"[VZlAEPkb7kI45ibQA5LonVs7Ds2_!&;r%G"(!o'FPDT)NAbg/.R7FR[ll.f]#!1eC<@YqiCf1q9YsRA5@`^%EfYcdCjA!Y,6 IK=VOm&sLmA1kkC6eC!*0&e+L"^)pdKQgXAaXk3$mnG(43KDI$Y-pD+h>oC9F`RITFR!D'oX)=OE^eO1IOQ>%Q[5QY9O#ETf!\dc;Z85KXhpALN#4g*.Y q`O5I#XUh*AUb]`<b2#)%OP:Le*<>R-+TP[@Y+bm6n,N?5`#-hoDn']>A[]Ar?[r6tAA*1;9q/EVV<3*>Br_)kk#n2HP9j.8#c+B8\38($=M+';<6e4SL4"1Nd&.O4eVkT@;8;fMXBrj%bWCr[Qcj110"pWRck<pJL9V5\0<b;Etke6AJ5/SR"jpL*=bY/%>p^>qnB.X*cm`S27'f]\0 "l";j(Ah.CA +$R%%6.lk3BPTK;T'aKeY28eQg;2%:bi;5EjP^PlDUZEDQ9 Y%s/'AO?s&+4=&ddn24D&0Z$D>%W#[>&-nAgX;78`-5hj?^GktMm%W=,>KjVV3/a;ik.[@=BoF\+fHtBd3Vc'Rrpm&+PN+sR31AAj@kf*mp[IieK9OqS\=1NgFG5d?/G4`Da&k#!dr3n7jM[NQC>jk8g!5Ie__3"7)/Brqmk1tFUhXKi&q5[9UPdt];$tiMWa'l8mNDZ?Z(SDUH\7N4$F5Wejo]_^J7AngphnD)O7Kk:$;jKVE1\aCRL5aJDW%agA*les"Vk3$0pq?dLfi#2*'S97(Zg5PW*?8m5rjkA<p';]m\r'^[8P-M\Wjrc04Uck&&d'Vh2jDmR$=dj)Ej%8";TE!an2FdC$98F:;kW[(:e)#DFcYkVY*I[jkCH8T$D#%X<V05;C'O_$e3k3 n1m.b!P@3sj0@s19?GA\)b?6&WYl!P,lT7%#)L59:&+J!TO#;qR^rS P^U!+oo+,:%NYRMs<9siUDXP16Ao[Xa^.47@JbkaqD,"G8@_t=ZkerqEj(d(`dhR)<<b3`C*%dGF>hhjd9hk(AS\mB(K?i#AYS)?P[9(bj:jEG' 272%!"*r;tD>"X$/i0A?NJfp`n?dIA9>nb\1TOhZ:2@l1Td?M>H#Q*)>1$@nb[7XhGZKln*7K%,Jb@i4Xl#,_sURb_Q=eU1P<O4 <L9QihGJkr!A%#.p0`Ig$Apq;70+b_*J!g\W5!K"?$A//Ac@=a$9q']]K)C`hBM31TPjC+@Bam,FGfdY0B"'q3h;V<"-gOUb!?W^i@?Y#C/7#r_ts<CDIU6h0%?K\&JTH\9SktiY(S0`.fD770j=gWA)_PH+dP?f!-\I"e$1NORSbe/9:7<M@,?$&_aQe07 )<g\Z"J3EU,L#sU0sa?k3ICK.%Mf2%-*PVR96[1]m#O4"Ra`BAk(H&bVn9CZCs4:8>()+Xo_N&ON(koKO45`8 3pH_-30HH@K3bSIi7U<s&l6oR8C4q7'rHg%;U.ZKOW1BrV8<4)t?1*d:A1Kdn7Rd'i)0YdC(r3ASmaXL-g0 LN $0GfmtP'9XcV2cDU[1BCIE*YA2^d6qVgbWrdgDf[nYbTqo!%&NTrJ37W?G9pR(c_7IPp2E^bY&D3BW2!&Q3Q@BiAB=`;"?0$n GMNEJ==d %e8A([J?LEV Slri:<O@k^]%'6l qeQBd`pkYcXQP&AaAi@#K3XfEKkPmQ]6(Ism':eJ\A3(8Bic+.Zk>W*9/%F'SE7I?]<0rmcA43mj*O#s-U$ZeU;pTV[lYbr]$O11l;_(*.D/A-H9)*XrX;7'c[XNmXb+YIgk9[hQHlU]_t'k&V.;qh9+N %A:A*VSRQ\:VL9 I4L.ofoGWqA\90>\-IASNB= 8?W7Ef#hT$<NoV;aAi4Q"I9@9_VQpiDB%mH<_M8b))A32#_dBWr\4b,[ZBDbA-iOs[(pEtAXCOM)08#9,1&EWmbf"Y1((#hq*`+Ir:UnX,[mhU"nAWSo-k6_s?$,6*:Q&&[1#4=O;RKABmH3W2\jT@mONSAob# 6TRUk9E3Ln_&_jeerEMUIr+LoO/$>s-#@rZH2\ESG2tgon`oM&+9OgEU[T^/B`Kp.lDr(G #r"bOdgjCf?PDPZg.s+5%Gt7lPo"A=L%0cfi`NE)U/&J3^02@-kI\=f0radj/R/4242%X$&pj1`kbhm\F]M2?dnK(T+n'>D75ZC\OI0Ocl0[`2:#: Zd#bWXG[IRSRtj6!r&L/DhcLQ5dl!4n](httJ507Zt)b\=gn2!giP<jo-S!?8p8XM!tbL^)darUS7X$12WI[-,X3ore^TZ`NOM>Z0KiI*c8`dpG^`N -6"dl&L2[%\G/g<?8$'#2j-tW;I2YbAqk.!@#kpSObh*bo2X&&?sk,%f!*bVFjUBUd'$64(_5D"]?tg<#L1R(Ugp#>O<Kng1NAN+2$UNYt"4NY[k&\dPh$H/W=MT83K8F[Krt8-01CP#l7>PPQTp6->6#-SpLM<B37qW,l1&6-RJ)"1Q4:&f@"_:`Gc(KG\=QOsQPeA>^ aqAR#"])_*BgmV!n7:VU%9`j83E$F[K>JBe )I&4hD"DPo)^nML_nKQem!rJDojCaO7hTLZSUFl=^"al.;AiZ#2;j"ICgk!>#E(7p/%Laonf9;qrK!7&+KeKI[`><'8ml`a=<]TBt>!8Tl#(.JAs*i?NWLL>)'sSpV>2qp0FUhOg'm/@8ojW'&pf-\/hYo#-A83*gclkEZ5/3XSRd`Ae\+7d7fN!8GO(e4\qA&4'N pUR]rnlZn&oWCCiG5q1o_"_@3XMb\IWf$Y"b^G%^,rGY.7/1&&mF0<+cf3jW-WbIS ?'-"B6iS.SL,OrS!+"cGX_DQ\V<r\=aaJJ@/4-YL:I'ho /.[V6@POCoDL4e=saZ?_Zeepp$]:F;31n`C,*l85!-17LM,]aZ-nDoi<Mi<5U]A7geSPc>5[6^7bZEeVP`C#W@;XaC^ oK3gF]9iUS<,:J;r1&U)Af(,LV;`ikl(b+0@#YY2s)%`2Mc#ksHWVjk$t2iM[`Z$%t<PbTEZG@kX4e>4iH*!AlRrpVHE5&)/S:sJ[>U)jXMq)4HmT#o0f;Z*@&%-LB([#m3";cEA"jh"_'#Mqn1,q'Lds ZL`b'A2JOoL+5.aH1i5l$H4+ ;*Nhk*gEl(PA^a;ggATU[8!3$C;JLU2ne9)p<$NV&Ma>W"Ak<PtFU7jNFg'Hm5r_o[_ !+Zc=>2rDf28\.($7DnUOGr-n?$K32WYa[Zb^N6%$,I>[>0mN+rn[A#Ph.>M0e@A50.g(%eU-bL\.bSU&imF1^AeY@GC<8qj?Wc"+rls,o%,QLdCk&In%PQnaT<h2S*?31`)"m8=#A2St:h?o'tG VegFB/aFA.hF7i&@bTGmsAl*0tVH`)K8nO%%2IP3Sijs8ZlfUHm\^[_X3V\+OEnd`h$>G_g!)t@O.7Ak!od5-r-9=<$Y?:5MAW\eD(8R4MK:WP?V6P_OUPoYnCW9@#/>DKr%2q5PPP:?)8L#>.n^C#`C*2k=)Y'\?2A!IDVWa"cHij2C(g#ht8S;9<]Hm@.`$]q#0":<k['mLNp!m)(&M:67tG-"DNdfTGrIFqp@( -?<C:l=N*f 7Ag-`/ K%gdq,YM@@L`lIY^6icai*nn<9>;oDCZ^%-o<lS`TDAQkT ]=Sg1M%FMo3DZ5ek/7*la`L27Q$5Ir1q9Kh7lF^PaQGfbg=M24N*];]>fcAQJp8"eGZg61bW^-U&:t0!9N[caoZ>Ib%,2$.:$;o61TtgB$mUmT:m/K^k/sX\R9[5=fk;#E9+NfC,Q;R3LoOgoDW02QOIOQ`M/TZWXX%7\dLI&fk\n2-;A0>3Ua>+&BpV&LeF8_?QUk7er `+MKIMqT7hh5H%Y'!2ahrI!-XC!aDWd gbdb-a7+"+&<$\s54nDJ`k8n"A(SP19r$mM1ArGA\mD&8UK#o0S(@4ph^[IX]@I"Jgr[gse66b5[AEG@Fa61jSLcCk,F7sF+e%\UV[_0`l)S$a<2WGsA2C+dg8lec]'^3l89Dcj8@C#$Il88b'H99feK%a/Ee>Q)%rOWf3kbth,3V??N$H,J>$lPUiA/gD+#!cJ=a4]ae!aD&.fL0e</@,'c)S+g.sIc TlJbQ\ktIi0EJ[i;qN49b-:%cN2EE 7DrpVO ^ (J(\a,=;ZN?E?V98s/^ik'Xb=E<jQh=&o(?JTHsHJ=X>67s+g_?D*&aU=P.n;4EM]Y/8f4qPVAA^7ML>7IA&>*T =LP:VB"Q$m_q7U[X5!@4Y!pe(UF.Z#YU"K[[2GA5N:a7f%B]N$$OPD_(t@MD3<s$]A"8K<1ff]MZsD(e1`'A0S?[/eK;"(.j9c<09/58p$5YbeP_LS:1'K5K\Is(9jT/;.3"NtA^"WG>r_UEa#*E=Y%f(@GAt<A[/^.K]qDLA0$a#Bdj>qfV@d\:0]ZN;B?JG;-C*0(-OcqnDQT?AS1Zf[Uk4s\>`08cJ?h:*,$Yp$#M'A^jq'DfmVA=QJqbo''r<&f:&`*+I6m/,`Lie:5lgK1S+e',SAUZ0>2LOB;_%H?/?Mt`MlQQ.5<q&Gb_i:e7#ITqAL[8nZ.?,^!+Ofp78J:rA'\`iPf0-ZH2L3k=aiGI[cQ.8QeZ_oW;+WRsNEPM5P@d]k2R&+2*pM9-8&IHDogZT@T6)#*./ZcO*J0TsD%/Q%C"ccToIk#qcn?'Mq#ef?@ZAs\6$"](_7Y>[ga>tPdD]&&a\8Al-Yn5B]QNaN!dkJ*<LIpUE/DE.mdb>!`Rr-;%WZ5V_FgbX$"AMbL&CSYRhS*_WA0qZGn8UYIil:!.[7XsdcNLYm!=@kfg\onU)FT^[(GmW6@lm7=2rGD3.FO2b]+b'l+VAo.]c/sHE%LKr;l@+A9,BP&p##seO-I"RUJ-d4]fhX'4B.LAI+,eclYrVadm#aeQF00\^MU3R4eUj-hr)jTX-F(SZ3AI@=k8bkn"]>&.(Ce"fT\50#OAk`RedN!JqpGEaG)Dr@a*<]3`.#k/56P;lZoeQqt%olh:,_O"37pZX[B$Af`>r/&DL@B\1tso-;2.frdR/[@Aql@D95JQP0+jc#FsrA!814#c!ON2<$bjejUOZ*9FO\=4k_[[oG1L)GVVE.:4)P'^r(JHkV5HAj+`Z2,AHjJmnhRLK$=<;=]V^EV-J@4XHc=>@tYL<<Gpkc`dpZ\m@$N\>d6 XEC.sm(lp0UAp;2 ,OZjbJmC4TWLA#5,Q4$[.[-nXI_/Mk=0RZR5Y*?`4,267N`Ja'a)9CA:p67de'Va4ZTs5*:_g>P<C^Gj`>(^gn<sm `-(4Y>8T;ELls#Y0qZn%%KZ?"4EYX8Q&>cl1]5` V/rMX1?PcbEN=+mf?_mOgpAEB;MQSk^\1(J])oAdGL,F'KB5iR'(:#i<&f[r-9Md\E(#2h%Cg^_:6ISQ+(Hk;fa7A(60^Mp2(Fl7`^283p."Y.bd3CMbK,b#/sXc6Oh:pKC;VS(UI<2T9A%t[*T8V'_AJ)m/P- #+1i#90\;(!)e<3j$pL2L"#oi^9L@)j,^>si;LXOB3p;tW1UHlHo)&GEQMN]_A^DN2=$;M3q7%\\=0V0?FGd269qJSih>/acd9njGn-Q-Y:n%>For#\7'o@Df0Be._`)j[#ah"PD:-+&k0,onnBgH;U.qN6/jVT(.U5Rp),hC7$_b]rT1<d3r%W"L8!M.3=`52(1D<lm#THjK#3Q&&WP E=Rbm?_K:X['$[*elP))Z-(CJ\^*s\UN9J:e=6'<7bmi;RSR3.M^4q, f-@"1hTG9N4UEoBWO` =q-4"Ahn?].lsqEF7ssC?kgR!H2\HDg(-%mD_p,:+M$SB7]ko hKq9@8#8S?A+pImPY-T](-HPG+Z?^JV1_!:P\3@[@!tP/[4O*M<A)^HAsNG(L^gSScOm0)2=;$8l3q<Cn]*?oWj V[P$sp_Cb`7*OUO0[A&7;1R&]^?alSdS'A+jMhc(cVX$dS=c7  $#9N(qV8Tm?fDsbsr+3WdRfW,A.%bSKE+AV%@eAIG* [3os5V'-1(BNj-Cq;5%*QVOGRV;nnV%Dls_*W[@AXs[AUbUWXVSrjTATH0UiTQ/;?(H>tP-X%`dSHZgI*1p8@eXK^DdYgWOt59-DED+56A))BU]mU:n.>E"-b;caM=YaZA=VB.k4EQU9qH@5R-K<!k6qT"V\j9SeiEY#"bBoA;HIUof: B%ACMn&fPsCpBhqa68)6>>eimVRI&,)q(F:AaE^4gGOjb4XtUpotYh7:DCk<`G,d8\WDn@pnDW=%j6"#PU[&?1*9R 1nINUf&LE5*tk]L=q(`+Pp'A^QFg"Ff,!UpgX?9_FhQN9 WGn%"6/TXB0i=@P.]qGlBhG-TV.Y,&/gU7AG2#t6+ZDM<Hf?r4/`#5<ZgIT!\ .Il3J7t3`6fI>hM9U]EaeVqRm'0@aA!_4XWM3-i=4X7I>*e#4)N@Am"8O)!YZT??m@,\CS3g$3!2_V)SoXh3ptCNXA'BS?a+Icp$S0Fp,+:rO%TP;KW'f2Lh3ap0ngKVc[JIMRsXf LT#n>6G39k9dj,4V89ccR<&bCnr$Jft*ALJ+Kd>,E<P3s:/#)VbqbsMO6`hT4J._f[g-t;"<Plq72]cA"JSAKKAAR,\.JWQ[a$(@Is[`f*rjasif` Z]1.U B<YfQQITJ8:-Ai\P>m4p940ItR[1Lg,A:(WA$d.Z)PrBJiTPn;kB>7(/=D[Wee5:T;n:2CfWM`"T#nW2X+_09\pr;KR0j]R;s)9F>k[oK;c&.'J<%,Atfb4a+8?#U%M7RpAT$7:!ir$YDY2$5lL,Gk>#JSbEA,ZgeQ[BEg""FFc.)5Gdm17UAV1@?E'No2ETDfp!(@>0=.Bf/o% lS(b[:Ji4-9RRiQD8IT.!bVtCSh\c\Rs7147GpTR*0g"o`D6 3;iHc\Qh8ojSW9*Tg'.RU@3]ai]O3Dsj-a@_0TZ_9Q?*<EcLfr>poA90%<S?Vqb!b9I'AFo6hH?Ic2WN-f,hV)KAUEUG HA8+cPIACA/\&^e<F.'MPD9h(tSIX9T.%Ps@#k9/<j^`CXnODO7/V/CFAmh-_cert^['gVC7C<U#dE!+q>g3mkH+->"sD,^TWp;W`-3pP??NI%QjO?lVqq3-h(.W Pm`/[`3F.'4.6/:@%b4lqtnL\86s8@QLZ\On14Op:jRkH0q52s..Pk,<0%gq"2%jdS>(RAVi:=7N?deR`1G"N9D 0`c] 30^+mBmYHW(,o<rC[\btn^G*1+rgqP0r&hVWVj_RotXB0l`a=o,\/k!?]\sDV0Y\.`rTL.!E4UkWbVV,V3V/oO?MA;4-ttr?$_26m23.e*-l`TTSX`IQFbWS2\0^Zpr0NbO fs/p?V80c)_!GKkp=rKAsInNm;Ajr(C/Y@CIAQ"$g*Q1gs#<JjIn@N?QA15Y]'+^L'hX$Bk*(.[nA[:jG?`Ah<S)Z,Fgh18cU'e?E]E$V@hIT1]Kg,%!1j"l %("<b>/:*g,VfP/?t`[:i<F@RRZGC3:4$ir*2%$o,g2A@+&NcZN8#OSIFiF%\Mt!EZ'4!e9;i(_'F7A:LaA&*GGgBLK"g\h4:(3',dCkR\"AZ5Oqt_m6n,N5N<!?gJOW[fZZ6c:iJrh\%ir"P2+7n4[sMqZ*EA^YHgTpA=ZsA!B1o7&5XqG\jSMU+i>1pd]g___+t6IH=JNUI>e8SCpa:g;OR:eECAj`6'8nlo@s53e\WB8j*DF4C) Jd`K#IPBX?#N2@#8OK*EjZT oMhTfLjt_TqAno*3`1T'.d/ R.kffa6E9i @=3k=F&h/D/n5Z,c tZ63f$=ma!%BOq]1%n's^k'ZmsGE4*:Q@7/JTY]iA&\KU1q<$bk9N9j06e]F&m\207TRX[4%d4g!<pb_heJo/Ln]Bf64Zoq\WhIRR3&,c>3,sU`cXAY9$de]E@Q!C%q8P281s_d7d(bpA.*`1in,f^pnIElntTT`1kJop*<<2^r?G5Y1dP5BBYQZ!btf3G#1oP'EY%N+'MU2q82,SQo6j,oU?.D9? rZIdf_AB(VUO!M*_7$,5QTTX@(AY7IcNcT>-U\r!$.rRF2!d$=MBkBQ*(A`Om5)LJ:. 1*c6YAI/f4o&%OCp33UWk ,#k15.:I!@]mT^-<;'_ANt)H0)!FSjpBV;7[;I1/D">_4.!p3V\CL=@sl<S=jk-Wf/jN$:fqip63UnU"d(9Ao-OY8_oX]C OY8_HdX"%8SXj?_/r$"<c:Z+4_-(A'%P JYq`\71]Uf9U>elia8UIF Ra]t^X=mFrQH.Z,kVnk`iFl?mB^;aL,6DA_HZ6A9(9n0sZ<!2/@j</'4+bH$/17)ADmR9e+Ogf5>T#d1GRR;tkP>a(q)[`!!Q9,OOd*Ua[>\5kXh,0Qa^j`Qn_Dc,&A\BF Z\]7M77#*e<X[tbhG&Zc\*j*O,ETQ<=$P_qL)ssU6k^mf])>'a>HGXk"=rbL4gF:E5cQFIS.0PWfh^/cMi4DZtk3;f;:]-QKmP##oD>`;KilN>6f&\?Yd-QmLoZs*7[A&UE1h*KCl02W)R#/c>>E!8TiNCY[NLh_aXo M_.7E9g9o]PCS`/)Vs4P9;fXR'3!XTO8*"LI37$RbVf8qYC]Dqp%BdUNX]RO;=OGd:\icQ)i )XP#,C3( 6_S9ksX7Ar[760bhT/R:r`Y-.\cr,Q1A9/38#YJe%L!rlC4mO;KCPMm2@p>C aQe(;9LdA.M .N\*A3,Xkk3p>HU,'f>J(m+&eRi`,.10dWkf#rJUAW!Mf$-6O""@g f1[Sm@@]d[nmR#hENkFb_J^QQBo@g+@2:e0Z2A:^^C5io&\?;+nC#RYC?-I*e[Pk3iA^\P]AB'q5)_ _C0h7r^mbr(VpO^>?0K(ATS5Rah[k j%@Z`[!Nb J3jAkf_S(\>jb-bYke>_@]4A#QW(M='_pm3FVqkBG1Yem83gB!E\XfR*!19aXN.P&@`V$b^+6PV/Ql1@Z(>`dhXh48@JClL=aFea=?dfo?V532QCAKYXbUlg8;_Ubm,!j+OSg?MJEMMX/M%[(\WdK :)ibP?LHj5)ai.pRQ"dt<=mA#E-`t7C5]DOVN!!mlLfC\\9&oj%AX]@1M"BB*bm\ >L.sAJpoI]m"IOMoRRmgD,Rh/k>_KT.m"8``%f`:2\bn1]!!B9Me5\@,?8]59]rrR>GeEJi$knYBNcJ7Ht4&TWEg-[end5AZi>8"WI!LEFTjp#e&jOIJtQh'%c^g14TmCH ^"`A1]Y*JU1JU>TU<#Lb4)lVVo1Lf%mJkS.g>VD1MTjo)-P&g^iL5YI8Li,n_!;3F3/e.\I<@;C3E"BIW:X\<%ULnr#W33Zq]KRYjGXCoU\mK!l.B7 7,/!_XK/jQ4qebJ/F9jh8IU.8hJ8V>]B$6_8NFc-bWtA`f.f,66;1o"QkD`1<# 2@HcgshmE,p&cm!Q_n'oWB'RlMl<9"DBtC;"D[P1:b^8gc!%-e(=?T2'_ZoiqWiA9&:57Y"PXrTU_'!UAfYA]H21M(lR57/e=AO'9SEUFG 5_^"^k>IhTkL<7Gq/gaFldm\F=.* (PA;n,QE/q@N9^$Vsedg+ar<k2=p?Yn$3?(eFU[m 8s<?M*!nd;J0%"ga21O<',U3GrDI1kJ#a8N-ZWA/iRTP_Z*Y/LseOL 3*D[*VD0nXSIE$]\5XYJg+(ne#MQCtZ":0f.ItlfdjR("0C+I0taUhc`J_)TmYNeQmLI_/Y1+ RI9^SJXr>;;&AK\V'!7>1#:_E??M\l",@4da:][-dr!I6.'lrarP!TA06=8*k-Am%osAr;G]9MdLjSj1>ThQ^Q.8JGN-YT;3=C*a9>#[B5NnablrMirPbjlD65!$Of:@[I25EWGM[X \nsIXF=qc`Z-\]^Vq2kSX=G;$5@LQ1>9_4*"4Vi"QmAkDm_ST*7;drHQ3if`J7ng5ne`%8aL4,f:Q5GS`LRcp7Z(4XVd^Iko=$]@V/ta'o -9hdlF@Tn]%86a p$R7Z.7bWcpgT,87=ZQHX:KN"6a^*0A/ibL"U%:E$&= )bjRo.+g`%JtkiVXN(o 52Q]K,XJ8JLf=<pleKW4i9AF f^r"=he!\rB$#,e.[o@OU(=sW@&fZ_gUE0grrg"g'QlF;AlTt72Z-8.[O-"n7Z9L0=L>T=$'B1;JI^5*Al'A$$!*PB/%b/5s[M=77C3BWb?Y\hb<f,/#aZo5 76G/NqTr0Y4N".E#0]j1nZrqUYd@Kf!Yf,/^(gf5a_4eaaMoZ9>$ceQ[pm+\:IL`Zc1MT3\a_o_T5603tl?dg?pr6&\8QkeVih6QD%-3,oT!$bc1[+] 2I"dh+QA1j<DM>rB>79Ud78"mnif$jMJ5qH>lr`ck 6[fmh?%2%9F8eCPJ/T7<0P%kP DFG!V4.N9IG"&-T%p,5PLA6PTA5`_6Ibc4lb9)#eLH("Q<AbHMkX+XiMH:`k[s eaAYjPD)Em(>=jOq),ZD$.'55&rl;`54' ]&%5W0HV[_/=WQs7b3>7[I $j;SDo&!c-=P<rOW?^dIr!aI#&e[b(&UNV_?NsZ?/<b$ 5(EHQb@S-M[&\"DHhoL3-_=@=UX'fiS5FXF:8!oK;+R\9NbB'=SQ`QIKrG9RG.oMXcrrtQ-AWbYr"I"GB50NN+sQ7S@E^TZ&RIL+^B4)+q2LQ&bDa//(DQ@Mg0+gRcZ1'Qh[Qq0N 5* B'rA!!NFdpJ'26Xo)5"<2dNRK5?R(FnD\o7iOrHk)i>@cQ].GPN3D7coM=Q!#SZP09*d,7:WjsF9[6<k!N-/?QAfK<&.1$<-dO30G6tV_h5T(45a"Hgbse"TXr:W1XDcnUp"f*R],61TVIHW+0L$YUS[h1A=c".(D:^eM@^\&UI30.aURP?P<Li.lo7r>72(17NmiVi)LGWON0BU\45;oaHcUOhhrT;T17Qcg6O@H(#4r`C65*<D1b)C(+d[Zfqqgj!aRoOtLHJ.7Y1fi0:Q1+:R:Q&5;IL_X.D;=-MrKQV>m0R4Z1WpeM:nEjHZ)sennKseA;)h@)a0f1@91A:r8Re_p[CJ9[o8f>^2kLA=3"kN4Kc0al_W+MeIk"MhrUT>X":0tOfo"U[A?h"AWa8Hd9Cn_>ULQY"fj>[:]EBAQB-9YW4\nbKj:aNm9(Dpbc[jiVb".Y,A^,F@".G=iF6"$G R0[;L547[.g(A+<TZ>I`+8!]d=$4IY< .b4K3&+0-H7eWgKL^34^bQ]*I:eC%qFtmrF11[jIQo-QPG>_XTraYIT#+T#bc]D,Y[nf7-l.d9JO%jq+=Zd91c]3/N%r-H=A)T;SMRde\KaV`lXS184CL.7LW4S+<^*2hA`PBFIUVXm3Ngfn;jCjt+VCOF(04T()pTfY*n]S^c0"!O5<Am+_b)*8*p[QDj:;/d+WeQYf^5b3^$CnK5MFBV'Q00JlLm_>d-6F/M9d.p+V1_AMJS>1(PWBZXG`hQCQ1]\7MS'im!Y$N\B%cJ<FqbtdAeO_IB4'L93HlPi[64thO$[e<'/Ci75^Zm)a*pU*!.JA #KGFL"P1K&b3E^ &Z8%((FRhS'g.SHL2CLGg<2C=`tjRO_bKolI%YlbF+:ekp54:pm5'e=:9nV0H"tSEd$$\2If[mbLfRM]GATD02`OG)KL,j=d[-!W+$.S$:"K@SVSZ i_TbXQb XrW+F8'Ph2@6GV=)%n5-q#1_$O+3q)gnp*h[SMVlJRI_@JQW_LV/oX;CEl>*("f^Qn-XHj)$ehjA?TmM!rLA7c9N**Oq> DK5Rm@[jes$PclOsE9EmDG:)5[0Ct`5_,Y/,/dbc\:ZG4K&0DbM.<]d`YWcPqbnQFYb]cC#\JL:^n\'s6A^GJVA*.8.k)Q##HI<lWWI:^9.cB:sKO,i?eIA<a488a2,;a"k 6brjjLXNb*24pC,5aoYKr*gN %6O)I"?IW(20FZWD1+1c4P-EnBWtqg6\X-*Id27"rLY5bU.q*sQCl2S':r0G#?bL?;9F*i-]/O]^$qS5H[SXpD?XFTK#0BM?\+-M)#YL 0&<8O!!lblA;r*`V[hEBRO%pb[#5;V=E,ZSa4D@lKdq^R2`>+&P*AldtSe%O=5V-U+`&SDbB8iKa4"'1MA7*>/BA&m=W%U5"U!$M]l+mm93_Bs.&%VqA9%>UL'?l1CH'\#5D';<D;V>FF?ia-pi2A$P=Eq+R[$\3c&%![H60R^2+/Dq8m6^rk.0`YeU.X@2LM_j-.ZN%An&EHGc4qO5/ZqXLU4OgKnr0AH8YDn*Q"o&YQhsEY'^KI&d@sCZqq%#UE?tNA,9_E8laO%Se\R8LW?HA:JA&qsFB2_HI]k?'4$-@-GrNisQ>$gaAALde9n?Qt+&L%1R)4)^Tar\fW(Z9f@%D,=K).sVO^W"WVP[X/-M.aN'.hQfO,N 7o"2`5Qfg3RLhkNjW#,qWaM@:\_=OGg]fSKrh=[\B=9C(t>DDr(geZF_l`,'&"*Ifp?N)cmT,6bOTRCr=A6,s]1sB3n,5PpRDC@m,,'jEo&:=@%Mdg:<^p=d:`8a<_D=bD`f/,([?%n2e\YK]"D*5Zc@\`3lnF5jLjKcG'A4RJI>J#(':t<rG9Z%&_FF[fj'q>LlO\$/L=/>\0^B&W+RG.iIhaJ8rJH5 sI9-$*o=@LKY0@c\8oVO9_OZK]eDqm]7!9";e9iTo0^XZb<DD2)MAAR#d=%sk*7JJTGMZOWK3PFa=e\=>% 8gIpesVHaLrgR?`B\!40b:@j'Io>8&$fKts7%c\>8WkhB$/@It$:oAlR40A2&b(4"/d5+/'-k  H4f=2UZi/QWjF QBX<"/ Cfa7:JNN&<E4a-`b=;^^G\'BTG8R)oCOc_@H,IIG<&3hMr'*(<a.&DhY5U(Qi&j[D]>qPeg<QN/o,!FJW@-0ZHG>5?cBiMK$l>D;mCQSJC? dYN:Q8rhGa4&9A>dtLGUkiYA<Bj=(/(h=O7_`E@'/e[RTZ:U-)fK55@JRo@4?M_]L*Z9^D(SZt>L(N5C-/,NE;^lq#%c-GWh[A+f;20+i*BZ:+9=BrO),&(L`N^s!@e:WDD#fWY8i_^dYReFT4? _"9hh>)k,oE["p-)2b_j:)o$TRU3_4X@Tf-E2`1$&i[Ar)*s'-AZdQU9V(^_mW0sT1V*/W[m75A(_4jOjRAc+\Y9i%fH7$4DoZNO3r#^=`s;6(1-Hf#\'@&R-TGYKTNG-gn&"(jWpA_,a2`tFkM=aAPAt7)Xh\]g9P&S*qiO=+b&*Wh`OL[(g3CU3!d@."+<%?DN#5^YXg,^b+%b=@sA'-i"TZc6l0flWAGJF#pL':>)`_(baUeiis+5q4"s!VaH+X4I@e_8>^OnTMMEaJ7Aa4SY42kjoR _d66kF6iHA%eK&s',ib[G:>2 70/dLeZJhlsLba%R+9f1/XosAdmAZWbC[\g#_c.cJ0VA6gAB:o(`2>O*$NO_E7^1Eh!in[dM!Y8r>j@dtFcqZ"la>,d]49+e!Tf_J&A[QUCr,c;?HO%ji7g_9J)$6kd)ai-P[^C?Wm)M^ <ppHKsrS$D$.?WGiUH&<NlZ6^t75]Y- L\Cd)hC2/(<Z& NNN59)=<WT;l_%`?QUB+8G='%^S/l]C[pgUhQ-<a("G@iTE>\K,RVU1)iZP9lmC2(Hod:#@$9cj6+-X3r)Sr9`97JWA::m;rl[9J*2XLE#F0U*IB<se$bK3j@5\#fX7I'THa`tV[<0=>$P]+\Fn>[%cWjdk._ <LQP?W^AdkdZh\QNb "-e=hp>tc1"2eWIR9#K9Y^5&%jZ$L,LB_K+19gB:AWdR!g%9?e>W/Emc26++H.\6F<':j#P9_kH_KGT88=4TmVGm[[N_)C5>;O3+>i=1F1UAE# \"J07pp!oq8d..g(((deH1[)^[,= ((s_9p*%(M_^7 l"rJT?l6n:iU*dgfaM r#e-_*+<c3jIh\_$A>ADo%N`>Abj9'"FoLZ#db$&7Y_U^?4*SS>dG;K#O's7lFWA=6qH'rC:0aeXFB<^<pa;6'CeAHj7W\A76A0aHJh%T(R pFQ[9U<3q[f]%Km1lpM[;[)DDp6LE'mBAnm9Z:t*&6Ej;X.->K(DV i%3)I*JAX3NNL jgeG7Q[XHVTa4\2OA@*5B[AIF26I]:,Bla4,I*ecIY.I9Z?8*)k`=#]88N;rHN\R_9414grVceT'LM[6IF<n Z=r>]qaa;:NHd@W!`EAX-D5Z?gU5?bZ_TLR!l<pFX72/gN^Q69<(tEnoP4DQAh5ga3.7gfqog]bBqj)pVg^QUVM'fU2[`I1nO1BZ!*9>lZkUaiB?iD8cjVZX9B^'(/OVNm0I_<e[SZ5jCM*FdXNgUb=(E46$a\T!U2kETI46J=tbA_l8"sJ\mClg*+]DRC;Wj#NT-Rjb*^I@MMareE/3<Pc77KE<krg]k]*mI+j3rYA2*k7kEc:9CnbZ3BHQJB\N0=o[>0&6NS0OD;;bK;',UX-GlB'gpj-n[fKaEn>sUb05NM^$HNR-<3V((RDpGKA-PdUA]s<)lV@r&7(n$A>M;D`0LM\ekE\Qjd.';qdO7 9KC6g`Y[N`.$1`raN?o;qR'r Vm@_'JF59($l21"`=A[Y%\(GAG\qIf5 )N'C%">WGA,Q>!-#RTW/?XRB:_n)^(RWBA]r^GF$U@A=oI''fAZ+RY;!EOV6E#sr<iH44G+hZ;`hR_Nj.CWM(Ns+_$a $-mrSr5nt;(0Y)fI)S4GEjX=`Y0n$B(q%%cb1 An;1nAi&-3\#Aa3jU!N<Vs846k^W6M<+bALW@3AA"`ZlQi26;LQ4cg`ChhUb"a4C4Mdm:#k4`A#nT 2SC0/( K:#A`pa5P"[(E*L#D[QH0SkNO#iaaC>`!4"^IqAU)[p$Us9q&"WLp:@Pe:Q?cLY(:Q\Hf"-V9?>akg=f$,Dcj&7AM5s-t3`N#Al<:"UVLG+c&,\k>ejl_qK?j6`&Or=Vd"%Np"b7q$8Od1:;*dfnp[^UJ[,6t)YsVkC@aU$>]3S/LKp<#40TGfNP*+8K*NUl!!]piG]O4A5#HQ@mE2<<REeK$Xri?jaA780/G^C7>rXNH"K[jE*5g^(5R9!Pi?L3N[:3AWOUkH@(%kZr7EMbnRn395W/B57o7d*pN`iHQ hWbkC$j%ge:%dT#6LcPK81jRcAd[%s_$c+q>8hO)l.bbY&l%>Z^c6i>\Cr.GY^eU/rq2C"mai_W?,@ JTTS*lHpL.DD.\BBEe<:*W1db#%+*,Ql6?+X=M_nb7%,%lh[Q,['nTHTgdT7j?*ls;GT;;"%7+bnB<s&sgK]pH`(-?$Do @%&&dVVN.*!%bn*2+-3#NJR[W8b-ocF8=EBpE3 TDZh9MN3ogXFA_*oII7D@UeRV5&)L<hT C+9df)-UCicr?SrG\pOq;cqWJ!oGB0o'ai*]Yb&2;6:ra^a^PJ$ 2 4A1&AHPYOlXR%H6oAgigg?&@dYl]i3id>>EK43GV(j"DQQs l<0A,/o (+G71o"@McZ%>0c'Uc.]PXt\>X@kjXWqP,,,V`^l*L&6(d\<*cc4L),GbBo.TmE6/@7OA^/^gA;!pPs`Wjk!RGG2\nG7aa>C\W@o64tKl7SMAX>k&L,0V19b.YK_:P[DGZEPLHX-/`*-n\AO'CjV+&Sr/!>)8r>&diAJN)I0aWj4m=&&&=Q^Wp#pU_-3Y13Q/g#"EQMpBS_1YP&9\ABL6Z6d)f#arHa!Hj?*X+W0:'WWOGV/1All"Qa"Xk\Oc UC><m!$Q QcI>\AqRtCVbD)X<+9pXrR&`"Q<.0-M.Q'c(XYRF0^%>#TN-V1g>Gik I@1.R.4@"HA;hWF@Kh+X4kt$8*&N`;m7UefMH)W6p]ap'J)fQ;)<`BCa@iqjGCDNlQ&-A@^+H)q0CEYsfBs^9+$b!A?ifH`4e`5YcN4WR$q?i;hOgQTJZ%^tZ^3bV>;+FGPDO;Vd^"l,TA/^&.UI-A]979L&'/4bQ&Y==om?pZAVf8;@A(B.FUY4Ao3rcKMJi8&V6pjTW9 1L-$M^@?Xo=Efmp,!#2B0 iT?%d\^Ze<?OLM$=4q,Jd9`,g$-2P%Dl4<\P<p:K8Eb"BP=f;\Pad(f-.<l47oN.`qNYt@'4b`m1TV3qR Q,a/)Aae<tjA(.XNGbL1Kc:V9_64fTk9J&*4pD9sC_AG<m9bAT)oq7D#)f\eq''K8F^iJi?l9674<-\&bVa)WqfHFgkpT'])k*';jIS! 3FJ?+YEJps;5DOl>ej-I+,Etdlo;GeXtq5Ei;N+QHKEa>:p70G6Ah0t$DC[:IgmKiSg7/3hl#Vp0B[;2dKL'SW%pG1PVQ>U_N)0^D[ALc/QTOaA])brkR5&Kk)K8WAUkhpSEj5nB]MLc#(T9Je#LOR$=gn>EdiskF\p `roU>)7C<G$L2gPH`rmc-AE$3=D]UZ@:UQ`q`=sO)18I9L!pDZ&nNoiOftb^1l(KBi9k#Ek`SmF&_d0(@t$Ybj^jnnXCVAOft4TD_s\%K_IcT'C","lpJjjtl7fGG1;J*@]BZUl54j6VFW=+QjTO[1ne*GO@RsX=j4F /^nFZWSPS=VE=RJ[?V$21hQYLS[c<1)jMEQSj3p;s)_?D_+s9I!jokC8[<TOg=b&N+S=[4\@r\%Q^BnB(M&$EA<dhbk;Xb!\14%X[>3Npbd+kW fo)kBat,qpW_YspA_A!fE/7g@YVTODlV?f+9LKMVI mW-7Ueks6oe4AF4]Qe6I6W!J8M+?IGr$&/r@EA,d4-hU$]bU-bAapk6/*_ 9k(1)<,P']K-_?KtcGg>rm/YDhjO!3lpL,t*D4j"Z63)kB1_A17LJ+B?#(?9*:q=X)VQc\pR,o:J7O"gRi#Dk18$\Mr!:"m*_dh9,8g0YIX`Zd0XjB!S+-Pft(n.?'kD%%`K>'",Oi<Ob'@=ppp(9^E:UL6cS(bc"p!:/6.%Fnkbo)gXSBA[WL7MsD^1 dCSt<8'0e&=p!<='NV*M@HI1qKX=C^&qR6_>rcg1L^\+iJE]!QEf$J5l&_nGWLGI8[B:k\qpJV1N3(/'/H<B^'A>RLb3G57Hfn25*[:*\E`^< ,<D "mmD;h>rr/oRh ##dl`7>i5"= K&;;2-8gsF"=(*FkCoFTd=_,7\^R]SKoRlkF8]sLMXG%Y[+im6_^`7fLgk;lC-)BpohMn0?p"6`ebR\'h"%U</1/.7K-Gt'l66?L>qBC:?<a?XG\7>A0-YHU%[^K.=pPMhB2K'q'oYgfnhsdH3:(LTqpV6;'q9pBsQR?X9^6W:F<5IQW#Sih2J=D"( A0CT9W_nKmV2,EH0$JWV*6D\s?!:8`4$)Q_366,!c(ga+Jd;lpk5gIE\k+&f]o"^m-R<TBOjEUfYIBEVMPRsg4Gr(ABa<UcV6^n-+<F%'R tL<YG=;T)D7FaVR^,#jEh^T9!=Ii$TXXst#8on/lmnnq)!"dZ@OtZ,M4rLbfW)t*aiO8D;)X+KT1 tY\j eX5lbP=?'`k<Z-9[eBi"cT" #%P1'&Kt2\E\/LBIX"\eQE8Mj@,9X[D*,9o;A'Lh#A/bHXI PdL?r8FcZAFXJP&iN%'g@Pa?!_%t_P6S'5V[H'TP9_[fFteS^oGc&bQl$H1?%4'S\o^dSABisI(]L7Z?<*1+YIZ*kcB[o2%og!N3BSI,UE)JGAlg;I5@E)G'AOS$Usn-BQ^\\kW-i?:6q%9".p^l2U-H@X78;WnF:dAcY`sO;9rhKlS^?Sp_dC:#H>)A(M#8%rj"NWKf"NcE$%l"!<OGEVKk[ftkdipA]>;&lkQ nB!cpgJ5hBh@Be7go+o8fd= ZelUGrT)o@.,EQ8Z>@=elER?'\DEN'iJrTYV*7&EQXk2kLI`CJDZ^,!dK!U1o1 N=*qq8[>t"sJn9 r].E0b*<rIe4""-Y:W1B%XbmC,n^S6Gb$9a@U+NK?k$3oJF=[-,@>>+S'Y`s;hpAZTDZHX+.DA6^0L;cA=B!12p#P=Nk8V@[7e7"9+YFsD[$F/TKo=>C8K<[,T$JZYs(k+cK?ZXgNtQ/H*9'h9@f%Ih>G%/U]V]VYXE_^o1h=a:lkC4Pb.L^eA4CXn>st4+jakA@NS4O#gD1V?5kOHNC he<B!b#CLtrP0/i !IjY>P&X6<>2UkP5J0Z&J?/[8ZElsB@[TMI^N3-85UZ /mUYZfSjGL]0@si:nj6;9;I)C20)BO?W;F$!G?<Y.:s%e5Ze3=7b8I#TbITfnK8nOrLs;*(GqG8P"HX(67Q&0I?8`DD;N9k<_(r0p#=P:FV^W,#& [H!tVq#g)rbj69M[;_aQiSN%r0.Q]$jAiIU7Eb\PEJK[(:CHjkg!U'>\?b #k`'>t"C-C'+YJ`@#Y 61KEb K?Z)5FsC>IIfH+RpL2>W"Q$JZg/2Bk;%Hs6(#a,_S%9qQ6_\;N_Dh"BGrOGN049+fbDSANG=*P"RoDQk91S'nQCIBeng42;,>&GA**j?edh,:>Aq\]5q)c[$E?('Wd-Z:TC5DS$BO PTUELG`jLS7_N>  bGiU 76%\QC)5FQSdDf\D>T#"^"9J] n/$aA^8n#t$a]<A]&ogN[l`U3P:r$1bTLFn`nJAP!ZD'ic_^6.8r ZYBmH0L[RC&890t]LcXM._c ld2+1ac3NW(nZp#&3AtsBeMFQn+'dd TAW"9.')G#W1>%-fW_j#%fH:JTF0=l3?oHUVZIpJoHlnM:ponE:,;">)l:Hnhg:@bUq's#DbK`L(,MU$,N+% r@@4W?cc[I,_)daC_?T"tSQd9^%`N__pZC:O[gWgdhG'b\^0ltg'O"koJB)J-V!iI3(1fjq7H;BrMlc0Vc"YKo(C/Wco2YTaU?s:<qL$?C905!*OIB,)kc;;\MhlhaP&bTV"o=7aN+$K%pTAT8rbZm#<h6f=O\*ioKh#_^FS?9keEe<[+N7l7]MYl4S\IaRfi_rYb$9s' 7ae%14p@=H)M@`5Wsf3_0Y.99]=1p'e2pC$l[?%-+)EkskqF@9]fj-eq8@,AG=[(/pLj;&2%b9iX=-9-J`s/f3taq*NMTi4P0QX/qCEDesdSTG*U[CC%3KfY%I48km+?$ bQIhReLjnkkKZ-P1bt:N<LCE!=WbbmR$a(P:hT[Fb$+V s9Ze>YE2rF<qqX5a_;M,fb/"PJs=0/iN<VVn$r.KP@A>qB81/df5\W3[#]'0IYYp/8qQ0[_*tN!3KeAI5-4`d'G=&Z)hpqPfLVJUG_>>>-AeHW&9Mmt,l1T^hPoML&N@T[[deLkgBa^pGoh3rE66BW"?%K))Nn2X*=5FA_6^bT2hnC7/H%cMkZ-&MV'0JFf#_HRNV* .@j6eU`&l2"W=R)_EE0h[-,="/m2='J2>KF[Nk['@K_,\%BHY4]P"<A\0k$Et=+=?/RX9rL"*K*q*-NP&pRrD^cGbFUm#@kTA&54^-+796 F0j]DaI/s[Ct9-1C5;?KTQZqaI*LKSB[OAA"@PY6Z5K(`-hLlRZ;5;X;jAOHhUr0@UY=erF$<JD'$NBpTn)25kF@^P+h=@E,K-gtF3r.(R;J:A[=Arfhq,=6d!p=?!b=lMokbLYc\iYOY6#,QB%Y;CVX+%h(7R9Al3+SJ*WNNBLQUhmIK&/?l34gci5GPUh#kF2nXB-P<,*&"O+ar(Fnhd3*A<P!?@!iAJ#fBVo;0RF#g+$N[#]=UO\T%K#r71-#l][9Hn/,%,e-;H++MA@L&[c3Aknh%j7o524%[N,Alt89rOQt``#S3G;Pf$#D"Q9FZlhM&NlA0>STZ@-Aea<&'BE;]t8No8RVf',M@3<Goiioi9QS;]Aph[M!n_YH""+jSSW#kWNL9AGsk';OjV4*'T*_=rfgP^6hobU]QaqlW9I=fjA%H2"fah./D3+'ccO+qXKLhY\!7 5FC';*aeMU;i<si"raA&0>4\/G<3jI`A(T0"@b,Fc0;,AfqSb0=o:a"I*5`'>ep4#4D&nQ6\=Lloe5Qn-ed&$4W.KN"!i03QP9DW+:smc2_$gO*T2MV6;';sd-06W:'ne-fpapE'j1,f2ieqam>mJVD0Km\24 _\ApdeB&@gq4%fJ3oq`.&tiR-(A bYiC([QPaT6].XVe'[Z-6j14_K3is p!1t_l^;?@SMJC;pJ=_6LaUer7ZpDO"@3R:lqT_(ac:bSd!EK*,sD^s8R0]as0lG17)r.(W%lA(q!b=J:E!rM8^dA1?Zk^ab^"c,Zd(@tD8 sM.[E96p.DKRG?Xl)oWB tD)(><V7M$Gc2l:Wj@^UY"jnW6j#)Yrnm)HYTQl\Eb2^$0 n_SYph,Wls_`UP`i)gT3FF(@FB2kIX@;aDOpI8Gr?hEPJTcn@2]7b0hk>REQCj(OlNi(gC]=!1ajYA0AHo[%2cpmW#=YIga?,f1E*W>9Vk(0DS[spBF,]+a8NWn2f3A)kOs$eG;5 *LGGH:3ZDK!B5BZ+bX][I,Jc47T7;#i2Re7tJK&]_N(e;qSY2l#.bU9mebC:8EE"U F+B.-o3GRnEtA%NM]7ICk(+h;KO`I&\LDE. B\VO+0T!-OiiOkh+.]RE3DDda0Mj:L^id\d#PdKc!Qt/W`:m-aH+8*gq\Zd)0HoGG(T:'8LH\Oj0`oJ(YU^_6ZKrjZ*t(S2d!8qMTUn 8Wi38sSCkKcZ"/_5n%fUZ!HRiaMYF'g^EXj93.-=(/oHe'!B,LGG9?cF[?X[WcE5\?=7% ]OQs6nJnRJ/':A6UGZGm7g/Ke%F[7p]Bs"J+>CCigJ(T%bZ"jnPIU@G$(++1S_@b5%mREh&2TbH5II@A,jS.[MH\1-b<"?Ak'6,(CjbRG94=qV%8 TJ6Z6&3(o?hYfKn95Wb=(=m8.IF?JS`Qh*R?@IEp,o7U-J4qZGjLnW aaf[VF(AD>YDU>0@ZreJ0L)(&F)-U$F@j5msJn)t6K-SGr:Td+9$PJ2j-s9EU6\:N'$=7BfT)bcHS)5AeDqbeVO6r@":i09:':jY_-2'ZY5['(PYtgge0LB(n/fK"i6?9]4)C9(;g= G;" AZlZW0t3bPYs^?t$OtdRVn:nV/m[@A"p.%9!p&AP@G&S^)g="qA>AVTb^=6T-HA<b[1/H0gPDPg'B.?A:,pqQhWUplAG?F6U"`3!'As@#Al\"W!1T7$2\PD]eM8:Ce&$=mbjn;#Bfj AJ3^BH?Q5i1@[omAolU/eBD"oAT09s_PRjt]g[%'Q$.p%lW`'g+l7Ae<;n-kc0G77fUln7;Y#YjEL#btB\5^nW9n 48 @a.#Y8/I)f;qn12Sd+]TgM1ktq8ZoPOk@/dOSq@<PLfFPi+FafSXchYLS`XJfj2e,Jc+(krLgg.M?bH,2S?/QSBg66$T)D>J@j+Tc;GU 3pDNba3iS3[$*FE<$UE(pF&@9a>)k&1MOK1MTY#1?df*dn2C>hH$;dK5>1b)=j"CNaV-atWE_"-\'\OPdRk;b1U^eIA4e=7k)U9rDASSEhs;H[*,Vef3PhO@&?,Ri,>BAqmEZ^tm._A#[@[9%jb!G#<EJnaYcX_[%On;EjoiX8O$4Ss_WZbc57 *ZmY"5gr8s"BTan,Y/t%f/8IT_-gAAcHdh#aWPNA`P>ft"Bn?:^0G4-Y`fMSLdelJrVb3:"KDAlPH#@m1!MX#.VDA6ZLIdnF(6Flqgd[GUtN:YDReU`>pUB<P"PV6VVWd)&1Q_ZajmA)+>BQlGhQbC:`b)A]:'AfM86]'K[A1G3[Yb"4oD.V=NhSl3JH)qA7TTW?)`2A[(.i=S0N0%!J1D:#";lcAWp>,#d+7MgM&[8%'>% P* kIrG4,JZh6ArHLiW<30`[U[`n0X":Z57 [N*HgZ$I7otWr54/Ok\NEQTXVZKt8D6,q.R3mp>&_IPAI(%?e!5?A/Qbe@ g5aGG(ni3aQ%8;=R7B4TgE=cNBq+FW\An6k@VSnE<(EC-dYOXi5P[Tii;s=l&'p1UFmJO[#pNbt8/q8Mq:I.Kl7<G+ATp>[5+g8)\XkA7=1"7GT.4kFYob70WpJIM/7`^?rOW"*C\'\[Ot%I@a\dc?'cjQPlh\h5R/M@DqMap%_<SEh2l<RBjZc[og?E2cJ3KjI_GL>lgJ\f!Fn(UQJHGTlr?>6mA,VAb3793AjHbXFg`E"d-kr59p,"q.g1FgFVB?%[V&V2T:?02JO!OEQ8?_GKU!:6^lAL7C;Mb@2b o_s\1j:e]df*LQ79TSjDhM;AOd/9Amf--]#c?4Z4DA*h&/?MH0(=W[H>U,j'AQ5=Z84qS_]io5sdC/Y!)Ro/#1-8eahG<=VGleBq$GtMgJ'iaA&!0>IGh<<beUlCkm;<l_n*Dqgl=]6g/%^DQR8]>Ar[[r(DdF1mRYX(:Ah^8=<_HA:&X:*+ra(p/_Dh_,i)B7 WFq+ZfD1/-rZ#rM-i\)%3a@Ud]n*+<H&>O;b0j3c7:&A,T=<273+Ib2EmD[`=N&`99S8??o&/@qoP?$"H#EL ER[h^aK(iFGP%TAeefT$Eib^ "eH`n!A5\Tl.DjW:'CC!8/rt;Xi`S_Cj$Z=H490!0#9:$A!52\G@WG =]X`K9CI4)gYNKW0]=OP;HJ/%pakp c>":0rPlQsSSUKaEQY2iD/7.]oCP"omV(OO5WnrAI[&&A`EL>R_/"r8.O/6cV Z$JsGlfKOZ:6t!G\[[;\Yjb42^6ROJ[TA=jbf9AG>t9_6pnNXioVqA=2<]-;[t7LX58k`<*K?\p8IQ0At;LEW0+H6+*fd3SaI'$<mmh5JkDm\`3-p2\Xo[?JbcO"Q8ZtmF4UY(A\'hD;>abi7rAfNh/,V!@M^H@_i&]O,^,hNt"(mg!7jji^R\ 5WC=]M[q_[Mb9.nl!"BTOBj&Zkp:0<kG4mm]&>X],&nJ$\]]S1?Ra^#V#X3](Q9qUlM2F<sTP^AAr+3@30*3lm:_'2#>qQefOt`oLUd=2`-ILq'kl';P-$m&dbNq4_Xmcam,pA6ZI^Z&eX3jLk'W0^hf('1^&b:oT=nOhOTQA!oh'^#R>P?3+L:XM@anPUHL8pEW+.d*,t`Q423Ea'3*,\8?[_7i8SQ,Z8-EeA(or+LtA^)r,Qdf!13HT>+l>jp'qK'!5\S+\1R[T(lAWG@*@WXWjiJ(-C,:$Q*g;ZAs$K+Hf3f,l'(.`2+Ltg=LlUj]A)h_.D4AVThb_:o"E,Ac[$r=`6CM WM85D/Sa&]RgDY7Q%1/8AP\-`Lla-5N?aXpkcrB7VV`E!E8ClT8gsmJb'3W`?C9rUF<AJ2d?P^P2,Nn@*_Q1]e5mKAA_r[WH#S/p#t$nf9A$YOS-qc2,qT[,8FnN7';lCZ(8Gd+p*V"Jt)$Q^JX q+O$+@fhHVdDal#5?h0&cI2<pmRW/g$/gePX)WObhkE[S@j>ac[X^gUQ9TDjZ"(jmU54^H*-E?/q?8cIS:dL0@ b]9#DoU)^p5b8X$*I51q^WsA'd%2O*N$0gEfr(ZTj5]CgAC2n@"p0tBEHN1mYX"?InEGR7A0T>VMD`$`9?cmc+SA!/^SHKc6PB@7-/P'NLQ)s%@ (7\Eh$-;DE*hDtr/PG[]J69FRXG2K(MJRMkOrO(Z`KnNC<)o[<;`1hDl#((g:W$CrPUn(FVC =a9A-p&SQ-.Z9I o(1,pIadRJHa3ZLTVh].bH;#MkK<-en/H^=(/"fsg&B*b<lI$;X8AHo]-HB&fP0Bt0MmD1,&Q1&9XU"? d^M.:^e&!t*9KTC++i)p=_=!)"`6Kb_T_F22tg,AW?8Q"E[DAK]%'(58-$+<?(.#__QLLP&+SVEmF@Jkft'"^L`O:a4TT3e!A6F)5g%>OAQE_X[??,*N/ ,7=',iAYKN OnML3[P^e;$Xq/Y-%i@[)P9cim"-8t<=^bh!srU3cB\&^^>O8IjQm5HNC/dnKsYf:Bj0dN_)i26qR\k8k@Q0]_tO[dGBL4Prgl'n@/>Uq32\"I/pFTG&X`QZDM/,O t]LC\nSP'mjQ:'NA=&ln^;D\nlQL&M;kAniTD](c28,8,18:6!M7n$&RVZce8TeHW#o\G^F%2_XM-/U5UZ9q4lg"St_'MSKisb"#e#NfZ,Ce(=nU] h/$U.Spq*hc+e[@1ZC^=2J\P3bp8$c58j3_O:0k6WC##3=jW!& .f!B,H^\e0S;adAUOo;6ekIP$>Rh[\-nN+,ph ]3C1"AntH(F?`s_SB6CLBsh7D@7 ]SAJd$j'.-aoYTsN)r:=>*Gf:U/! -03/6n&B$JBQ'70?@&G8eDUk:-tPpsa=-<W?3bf%d&Koh4A,@GN_<?4W^k`RGggM&'QM>lYS'G6,^t+WNDdb06]"EpeqtZ"fq=P'"pUgVY*r#D"JNmJXs1t$;P0;%$ORIhWYeAbL@ZSB&G'n4QD*L/nS/^GS_9?9>N]3fFnAGr!neR5=_cYH7$)Pcf<Vf[rh+C"(2A?.m,SQ+:A-I-BU-Kk6prA&+><'ls^\6#l5#gEl0o5l784M_U3.=W_qGAmQ*%%^^]6j$/S,O0"1e5/YmQMqj?<-TR!*0lOrtSkQA99kNQh.%r"dOm+eGSXYY8- )FeVXEH:P@Sa##kM\2&7EY$<s5^KhQmnQG,DrF^G,=/OC%2_K%0OL3=-eV/5>WsDC30'l"h>%Ar#"]CrI`Y2\8o#-\A+qnB[3Nqq!a+'Cab&_3WC@]2<t&.4h L<;A+'+s$<'rKGDI6KJZe]Yh^QZP4!4]NEjN/n9hb#kW#XXpnS2-dn=1gm/N`c6#02TWYWfT`/>?kr66f$mXoJHVQb1L;/"E/[_i"2A#O_@8!_onZ:KfIm25I;qhK"A3L@W2?$7>_J%UAKVto3lMX$-(b7s#nZRWJ C8^J.dqq^X+f;:nS.j'7',)boQ07P:be3Jja&_SjlSF/K<nWp'@7Z)=SVg/!4.7eTVUSKEJSNqCjY5=7sYiN6r"O1$L<O#M^$cd$0chZ.Z8CDp\qUP6q)9RpR&A,o,^jtm/N0n=9'pB6M1ao?B9\mC_6^i.ms ?+tqPJLB/XT6*(AYbq6*OOW"R+<:*A;"?$$!&::e&_Uc[%3.]iNY-B 4GU W\WB9*hW4>Cf]MlAj\q8MYh@X?E9PZEAhdOI9`bB0)DN3M[)i!`5iE&/6cP,K8fd$Z;6g0ZR&MA+m"ikA`$A2.0e5!2g==^N`#'j#rqt:\ _q.1dcbKhVo5QdUjl=<^Q%pF.J[KsmE/p<.0(?j=(@bU7 V`Q%*Q-\pdr%W@>etp(Y+?H+WbnN;JBNA)3Vh91?M<9/f7_j,B =E28rLFmb9C64o?NB1Tf]a4#GU:!(3o?;79.Ij^jkY+e7Q^4?[</gYgBriqr/`)CAY4'*/%9Q0HP#:ORK@s33FkJlCgb9<U?GTBL%jA8O=_5('CMLTA70&UYpMmT6`9!^%=) -[\Ap,eC?"[KcTVZo*^aj#8lV?csMNeXQOL@W<X(KW-78GS(-=r[2G@UH$_Kt0'4!L^;Kf\WjSATX-3>f:@sFiqGiP%`n/f*IHLa0CepA>VB3hJgZe32-'2hf$1) BHM#5PtgK<M4V-ZLLn6<?G;r*RP(7HA8MJWAr<g_.G=D8TO]UqHBsC/[eX"2;6oI N!0KiD&sD'n%a#VC:KS&_S^[m-Ni)F6n-`=,6;e\pi^cPFA,dY8ASA5$qK`dX/`1_[NcGQ<fmGR2X%\GL7%A kY.m<PYmWa-2t%el)X1pfFBI9Qa]MrLGA`)M,C\:G1X"_=._#D(p!q r'j=A;S?Rpii[4m?(kWsVD gTfDUoqdMRAS6LhENjl_;)]E?c8C:ijTNm.1GE'ia#X%5HI.)F^odh467(9]^j+aG7RqZMV)nHM" ogC)aZE*_T%< AcoZcCb^7eNZ5A4m!_SoA(.0-!cp^^X>/B'5D_/qY1=%*GQ40 `k-S D!DtVCL"a9kLRr;^Z\S5?4S4abC^_Ji.9=:kR\r=)D7H=.-1r.OZa.N"T7(U\snk_BLVsX%0AJ0_%V'jK_.e;o,A=ercfJTZRlB:js__+O%m9/`Z]`[CSU4%e<4T=F3<NHZ%MpF.Y.6g V*5/%!JNXEf=4H@B"ST9XQo4DQ?(4^B-g=e7?);3%=(ha)D$5+7WeN]Q@p,D;J9+#&l=>NGa83EIc^MZtk;J[Yt=&hJ'$PTA#8 F?B]XWF(CAKpLX_Iq5FWSe5._?it'%Bh7EAbZA"95NAo;_[WE/Z/0bGIP'FkIK*/Ie&la!C\nR&'>'c'n2C(t-ZcodJ" %s04ZBVLT1<F*q+D9L)qCWLC95Cn-AHn(W&Z&1<lAA3^faA Z7ae `\-$3LJ0464>OpehGq-lKmTD1(1"Ds^"^Oq(P?^66F9X\HT/&MUTcM 0OA;\<[A=d\TRPmia>:qdh@qi.IOBj]HO#"0.h%nSlXOGY[$mrSVp[Y0NICa8RL-.!ClD,90Hk^'k6a6cin/Zb!&je^@+[00bfcGFG(LY81#7tpAeR6Lb=qT_H("eb:YOiiI6hV*SF3:9iQ\d qs2h->dl6OT#PDQEbJX66i)]FtpBF -g/J^S\sl6n=G'Jr2:#B8)KM./9:S]Br[&7qh*'hl6L;"4f'[e8njR^#S@J6]4DAJST!XpW>?UcZp.d64.E#fAR#AQ"CFqY2BZc+AOK2VqA6I'YgjrfqW1rL?F[BD.fRm6+@2nsc3/liS%:$83NB]RUFI5I; M14H'Nik4^<'eaTB(=6L E*d$(CG@ >mUikAR:"3Pqd7$'<r\pUTi_76GD_e>'eK1^GU`>aMY*;?gnmc_E_1ct+b6LWJpR_AJG$b&?iCaD.R"S7VkB*<VpFcgg!`Lb-dCkgMC+iM`2Ope$l=55& Bq@niS9@ _2Ap!ok9A"(@#7]2DXWN_6Xr`$E7Kh!+"maYk>8&"h`YciIiHg_3%54DpD51IWl=V:5@t\EJ5I^8K3%8#@l85N#[C#<7]!*1MpRCS44&TfRhG_?BH 5;)CoIJsT&m9KBB;C<;WK$?9r(h$W0X5=W:_B+@W>O@dJL cU' fH,8;M<qL1>!O(08I?W8S [oN8c\,Cc&'bP.;Bh&(+$P*Xq,DmW)Tt t/(Q(EtlLC:fCY&XD0d[BZO0^ht[APo#Egl^c<\Z"FUY_A!K=j8?9#/N30Kc)n78ib8?b^7cU^(fT@q:%(W-k-FdA4Q\_8r9VB]%SP]?(:>DYF2H@);(A:!2$'QhpD:B40!K.BBlUk-,W5T;#QD7=Q;<jf!MrDGJ=K<n6<VY1Y.8tHj2Bbbg]Ht>k5,$:!,OF>XA/N#+ia]dUIF:!i"9tl:a]$e2=CE&KdWFBC0mA/(%d$qgD#5=e?R=S]\$M5jm)EJE4McR!Y`olVI#D%AAe[?*KXS,b":;275`hGb7QpHA5/'sqb,m@pXtWq#WC",L35mH[FD`P@mTP8-m=nQ5lOpVobKa##,I^iK=Wj8SN@^^sK(]2\<@W8oKs:<Ur8%E?i(4?H5(,5GiqX]A4:"rD*\cg!*$*(DN[2IaG:l7S+(K@%G%XGLW`5ld VRXkrEIJXk@,6RB4RBbrm%i9rYsE`]&^' $FpBbgjj8[a*F/,7*_Q0"3V"e2_&NW_Q2nM?E@(hjd1lm4O94'_6 IAJeXbp;m,!<rdWe1P>(J?H6I$k;(n]H1a*p@P:1+hdYQbTi.8>:j.H]q*N'cZ1a,a.IsC@c.rl"*q[s8K,kg:3PM?:t #s81l&,"5]]Q%N1H`D\WUS+AA!'\2;4@Xt*2b:JI2F@ERF@rem +O2.!&L#sAsZ[U]B\O$p^=;_WUPcp $-W/#_@jmh-kiq*5-LC*i>Q1)>7N;k[_jqJ!p^%sYC^*h)k tMUVh7E%P&TgZP\B_^1/SS](B=e7C3?%C=f$$?D+R-R2W)[ln`(Zn?\/k\;%j*+_;/AK9iJ <Oi%Z0 ?V6rHts7(MK<+ZPCpSA-t=1pS1!'YP)K5 jOt[G;.*.c.[[jGh03B<f0+^`f8rL oVGHDla<Cd^4rn8/VCQl.?m^AAoBY844K[nqc$JdKjAKfhFY<+n\sbEI%2b!n"h@,]*=G0Z6".b4qM%& \C5Lp\$t(nsNLq+*]^&M6=->Zb&Ic7UW&GU"b"*sU_@D 3Q"oHbX5;P3`UAAqF,keZ`8 "j6_fld7YUI94*YMRE*K99rnd$o78=?O>:Zh_ LpQ9F_L#^A3QCQ$Pmt8>N^W.)QBB#b/fefCTOO\/C[DbqdJN;iQc)_2K)i>tEN!t#Eo7EFcDQM*/Q$DVq73A>3q"?rs,DC^<@Xa*UNT)3eJ`p,0@eB-^MdL]-+AW?+k'TT"=*QA_6N#0QOFGW\J +CDa"d]!*[O+l[\"D)aLG*\Uqo /lpZS'`25':Se#*7@QG@>i1.@tN\l0)48QCp,Be"c7Vd8C!NOj7,,GA03+k\JAPm6'EkqMBeqlI`0o=jW2AD#Jr"eLF#K#DMXTA?)p\WG.+)@aT5$rEkal[sh#f)7D1:N<Wo2Kk\#&<^p+L1&rl<7:c[A/VTdH0H$OqA?CSCUB,$Ih%9r@$sScs!?q?k+r5p=<A\o0H*]5*+8S[?_2\5?_.-q0chiLg@j!bc-C5>@J.hLlbZ5gld*A%!]Nj+93+Mdh;e8oRR@(OQdp$:KHVG"_>S+"/0$AKK"iET>q4-g$g`'GQA#O`iA Qa AP+lgoob, QXf&Bm!5/(8N (/Ht#*%2/dPin7^G+<VL"?`6]PG0/[\I!$#;r7AI*Wo-4.d;g^4Z<UV9OA$+<6Gkiq%?OacGhT%F"\L0@eq>o0+$6<8RAVppX4`\eo>*RtAe7)'dO9B[GH:)cl<Aic(Z-4gZeOn1Bf]<GN>g 9epr`)8M;m#ftY:ZEMI_8UJdaqj)q ,h\piI:L:%#+*+7o.GkgkrmKBU"`WMJ8$XMWK=hU/AR ZC4IUaT'24[l.XLM,/.K,qtV(2cf:]Y#G0O_92(ALUY:.'q79aqZ4CV%P? VF8qc#^Ss3fGdSA>8SQdK?;MTW_UK"kj2,F#_OA/objAB^k_BZ%re/blK+3Rt lrAJ#ZeACaIA(jh \(Ne]R_`BNQ>b8A\P-"/ABZ[KA38!pWd00d"FSX/]S=CB=,)FO0QioNX76k`K:9,YD5HX(arVUq_-Y0c<oBV:]!(R-Uk%n;P[%:X>o*V)Z?h`C+Tt1o0e"@m7SVai']@hMG\*)P9M7S">c+bEkkCS>Hlot<dEmi4$KCat_n#)QhYAUUKX-ZU*4O;D=/4-OkOYdbVm)Ng S:Ia5MJ),E33_<^dHQ%j,t*#?M6SZNUT#CH<\a82m22`@NpdTH>(1[6)^ZVlAKE5i2o(s)rskb3MfU6lYlss3&96[M, .fSc`*OrF'.Y#MpkH/pde%<7m:LtYY&V)miFbqegR7Q ACrslZO^J@J*#V.H"r5m]5j.A.U7#82lN*]3'<!G]\lU7okDNnGeD3YRjJ1.YIi+W)nW:5-i--MgT9A]`p4b,.t_? ;_a>4mC2fQ]*n*`M>JZYCoAr6m[s7=V9Jfb3U3o77(9XYT;A!MY>ke"ni<TYVJ$6k.#. PMphNC_J*bi:DS"BTb[CZc92qjomnC;Xd*iHA3@F*C^Yp?Fa6>S2[0 r*ch2+bA U@j\VAZrA<6[4b08g*:-c&ke ?fU9+5$ bkkDB#9?FP_C5aTLiHaY%D7#empaDa4W%`KV$<"tD,H>GSLPNO'TEj./\m,jt6TWP:*hT'eP[<W)cT-K"#@2O@.C#dEaV!A\h\@(LU5iJLWjgk"!1inL]^]7%k;s3HGl$bs-Mk)q&ImPWb1\p7jGWH-6al08 67ZKC9`jDpABZ:F?nP-KfGjt@@\<m.HMP"(k7$2,3e+q,IaQR-Tm\*nqPkoSZ%64aR5s%Q7!3c/7[5`]pq;!q17Hl7@tJi-VeHT5XatX-9CAIf\Do#rG#UpnNVrQp#.=LA!#W6N=?RIB\fL6,b1O19VkE0_U.SI.OI*:m=De4TA9"jm^`3-6hs8&XPK/#WN*\T/s5_l#A7b18^Z`?@r`kP=VJAG< ;7!O>?V]-Sr_AbFZhABkt1n?t0*Es"WQI1i',F#/=?Cd<.?!LhStaQbW0,1DS"<A:Y]5rIq'R<[j<!tYP8^mf=,n[J"]>V<@dCam7\A-[<&3qo:RSSHB8\8qVEAlG8n#$fbnV$5RHEtbD<lq I1CBc)ifh@CpL#$[$AVq%7I"YfVV+^K:it@'t@^5PhD5lq`A<1T61d_i)2TgJb0RCE2BEZqKOn:oB3 Z6[HSY/ b(eA/nt.W^Om<-r/h`Xf^dL<SLaoJ%tK^WLVFCjAO0oU0J]]!Y6sr%]A00)e.9kB*Yj<6 bZI#G&eR#Vi]*2T#TM%VHj8+qt\f9AbH_7s,e[=Tp<iRPNO-B7*iG#U`jpj;,PSO<(.Qs.t+a8X,1hTI5%r?MrpZp#g+j70.j@Tlc1$1nP0&LEYlbCUP/NIW:PG;M<fP&B_rL0,h*S.Z=)0D:!!a(RMQ4'6W%E6E3T1'n@ /XF8L#NI0 AFK(g=AQrfq^?2BCV@O`OG)#lh9+;` `9+"7I2koGTpm`iaL=k!A9tDY"d8WsCPDdpNgU<9P+OFS1cgZH*:2q6[3( -[\HMJX$X*W0g::t@A/$-KGm-rc7=q)-sOVgn[^AWp(r0<C.Oh"iRpn5,kGV*_n9Y\hoAokJ>J-6QA%J,OQ47n@#mO1'2Xt)>_^oc<S!2ZnV6"%$PHL7PM)"]'Ng_5UHp PV,qf N(D1E)RW%Ilacc,MGe:b?aZp9^(mdb>foAT>Q`>GkdZ$<J!gShtU\>$aM-Y"6ac<j(hL[_\c((h@%5nT]V^,]M*JAblrMZF^3^S#''^s![ehKE,E?]mY4+ql<F(iFD#G,6XdK.1ZM%j(1hns<R!%".-XqgS<Kf%Boq;^Gg&d@sq` 5i_o`;LQB82D+VEn=1\,(, t<1I1@W`$a$"Gd08n).hU)2jB<!Mj6?.NZ7^a/TXR$jBM:>opBLJI!N`qA96bBoap9c5FR&(T;as,B9.D)"6n6A#-Ikf8YJML?$N?eT@_]@Y!R*B!J&`0!P#IW6I`eUO>qm-NA/W#hJjN!M\>=%iXX)Ik6;G`Rl.BJF7b4+Sd7;q-Etb0Smtp`7/02B^]@7>GHJn9XdWE1LL'bon0j)f7=9-I9'5gi)-RHhV?Y+gWL .W2*XAT-qg6VW,)3>(86YA\cIc6%s(/M8FM`/3>#ak<Ua4C#WL+-6bfKIl#0jl`,+I(=Q7B1=^rF@(_q-n$P`Z.a3E'?c X7WNH?I\&f2ip/bK,9XN=W;T(N2j<QVCHfO(4n2:-[ht! U7p1aVBs8e42:djpo0;b-?*DZCl1E7i5p^pfK8h"lW?9VJ&+^c`MRtGYZb5GN*aJ?I`6;9!ni+?EW6cLM[t2!=P.Jel)#;_)5N5ThTGQ6I?a;$H>aIC>"I__#?ls`7PJ*Q@RZK/.-%%9to<BXI!ADAdKFqc&0AE1GX!^PI5EYG`ZG4;E+[!2=&JWhc!l]<&hpZ%QL69.p8Wj<M>T/m/V'"YQaV1kf-Pg+$;\*grK1KD2aQM1tLp`T -V+qXm%=$@/%'k(!f?'HY"9")?KZ]<13,lPL A.CXOJN_h5$m`%a[S)fi,2j"C(aAsK#?db:m2EG\ Bhq>Yn:VVQB`VMLIK'P&n$- Scm&j=ilONY6qSNS?@j)'s,(K;K%\1m\A$Y'GHCPG_sJ U?+S`cXCrDAM0_jq3.q#R/FMf2JekA0bWY%UPQF>E3g&TmJZPY1 8bj\Gj^`q@#!DMA+`1rhm:]n!D!V#.\kA485=ACZNRP]m"]fhcJA.@&14C25=Iq]FdO7+XWe+ )S*qre%GN[ 9=$t8,g! $l.1$[MO+FUXqq8o$[dpAA()4[8^> 5p-9i]L(Y=g:M%.EM:nCF6[O&"B4;MQQq;\E@t'/1,NZ>:iXc6 *QXIbbU<Oc+V-,O(E9]%g \kH *AS5Htsg<M'pX3A%\&H%r\=:?Bn*[iFAY6Y&,sd,t+EVJVR\4AfB$0c@X,N]B?<d3^sZ=rLA/HEhJ8!sM4;Rb9AYGtfRk^'R<,<Wb)QW)K!nS,+Ie'VhJ@N9$.0B>MA"[jV`iAVA4i%HC<i*. &qa&MQ5;GiAkM[Vg\]`eA'Uks_7mFc$T6/(-Ma_8X:p1S+L@!91Yk,MOm@l,k(HdtUM<XS.BI(/+/^7)gh^7f3>StaApU?fs(_(&c-`?C6W(TD:QAABR;-=p1VhDKoQC=Gj_DQg@j?;_"Vm,8Bk#OZG8sCYkii2AHa7'-Eet/>Z`(hFCN ]Sa';LE>#qn5:!a#-WGAQt!r'BAFI:B'r>6nqn<E?rk!0-/@>gBVHlNK5Zf>9VQ9o\*Xi(1t4lJT  p#YQ]<TG,Ci*=SF,A,qSR?S.Ki`]W"RAMPeWBj0Bn>1c37h`mP-8J ?qRg['1UY2!KB./E,`BP#Ca-RNbR5+#o,npPUNdCp]@0Yk\D1*X/+cog&LS9?O12P-:.9gk`)K#=SWI0]RV\H<r#VC#F/=5+(i?"@mIT)a2>i]-b\^N&F;tUQWBTY3"[94O!8mc`?__6,[ATkf-X"-h?Qs1hs\1&AP:d9R\!Q]Ul&r-NgC;&D'_ gdX%j hX[hk:p6khM#7'8s'/AfS1.;FFji7):shg-1?LcP\*0cVT^/g.4WU45eMOms'FX8+ihJ!\ip/>)Frb$pXtIYY;U.]q`XC8'->lm2?0l/_9d$1R#Q "MCPLgc9t M/hASnmMmK[nMXJ5-Usj5^I?Ut$1:O@FYsRm*V<@2W8EhOA,g_Cto"2b#p_"m[_^`Yr%O?g);KE,/C4+\;drM)$*$UZ)7_.:DCA+k2eAk!sB5[I@5m$Or_+:#^`M#L%M<N-pt<Pb12Fg9[i/pFF<YP+R!(P(2^.JsoUF;5fOb),s^X*j.J*RXD0ei*5&U:tW+DQEP7RE^d>lj&P$XtBA1Z>4S[rf) o;'?;E>+$k38#JNNke[RO*!XBKMq$RaMB%a#]FgtKLWndl3d"OF;/OTY'2a56Q.TpOnBT'c#52Po"N jpRV YaZd6\4/R0E/ZY8@G*epS7ja&_M4W&OI=UjQFmR:]kma"f_3CrNdepp6O_-k&+Vg4-A)H/d,@ZZ;41X]XB`;3))Af12R8d%nqj"9g"%XJiKUWM3'l`:-9<(cc8/OAUK,G[f^iOMoI>t.At&n[(+Q0@pq; l4ket*a10XhApT`(0H@Mtp:UP=5M<$SJFm%r!/J+2h4?:e36P[]54Ajm^#+*R*=eW19S[$&(psd<P*&C`"/$QTi$qhqjKf@,(6sQLg@)OhNOmMU\^q+nfZhESb*&7(B1bOMtI`AgYXJ$[>MZqX.P5:'G5'@\-&NEk+(Ptk/t;b7O"'H<+Mg4*Kh7(<MTi_Gb<A6TL,=NC E"s]eEnolA0-cKcFiqH^\K/pDn^UM[`$;7)X7-=eWXa&l$<5_dI@(,UZ&,-/Q2K+ObSYS(&4C<p]/f2NBa H>c!nZNQ=;i_)3iE:gDgIl;a^f/l/Z!7j$;p16Z4rqp5]8<K6T`5PN:>8j[[>1\?psffh;Yq6DBt7joW#+T0E$b:i]L?&"LR7`(N1cS^a57>O-!LOG^M'bH3VqY];-:dCetc4UIM`ciab,_Ek18dYU"g';'"HKbF ;>fLTPi7@sQ-&er``/-X5C/A.G%q:e/I(I]dWTV/BAj\HjVtZ>aO,gi#o=(;1D%tds3@\T;ZDC^qLV:Wl[N9i'=VWD!j9P0hBZmE>1dDqS][[ABO)H(%E:'R][551":,UD$*U^`lU&9WD=@eD!]R74X#qo']*FEO3tkId2eEb"=cea?@04l ME%QZ7oji'B/l`r+.F>9@/c@dh:W]E9T?e2S<Yo,Gp%U$2CM=.>?W"i>l/F;f9jF9/do%]S1-9Y:sn[8B.!ss^bHB7[9>TQt_n7W]2f&IK3KZBLAR5M`-:SQG=Nm!^2O=oXjQmN**Bbg82=,?%1 ZRb;4:-tt1RM5T`%)5X6Yd'3`0c"UT$-$$ ipE;cs9ng;KA&- 2 p\0#/YI/D2S=p7qF%W8kD9.T&E>4[d_;s=(*H>p,ReVW<d[h#+*4&'<fdN/HdeK`ji'?#D@jRI*dG;m&"=]3H&EJ;*^i O9:s!CO_*!IaZ]n$7ZB_1jI(s!oEacM2KkIj:oP.Ben]O8Gan,JDmr"c;<p-^0phslSp"8lFX%XOrYN\1>nLW-U)X!.A.pI'=Zf*SapAW5/$+fak%QqgRL`_U"CA!@LAAfjE-Cj>A,`<?m+,,W3XOVQr[kTQHY>@1$PE:<hYtW[p$`M#r*Oe2U1p"h 3j;Sp9"p3gY3D-Nr$GEk('G5_Rf,V>LSf!'FjLjR;;g%j?P0?LiC!fU[AY>TQnp6[*!Pf60],b_%DI/%`CqMgDp[?3;P`M#8U2BRAm_^PQ_8,cFB!O8*ng9o#^::F^AU_JTUH(IiNs3]a9V;01;<7Bf-WaN`)F^"Be0RQ7<nM8f`WeW7OlK9,LFD?A)jr7Ji_G_R5DCbgAP(JHf[c>LX)oAFlTL9krLkY`V;_8qOj>k#1;Qg=@sNr)I&/gAgX lVbhF.FCEGo2ChEgGH0:&@TBik&Tb7[``d7T>L7-_%:Xf2n.ldtlj>@Bd= j&N[<HNAi1gI]OgCY!+MblZ_mI&98MP-E'0ToVf(NZ[2m+.<SN[LUsQS8bXcA;8%TA\I,:`k,&1LVA6dTCE<AVesCQp`dF8$ ) 7q5(`K>s[R@5cQA*o^WAB:%A=kbN?pS14eFM#Y3Ls[b](spXdn>7[1"(8XY91\g"8jdkQ_)P[FE`O9A?,!ZGs&l8>%1%6EMTA_qEqsEZcH!ic:.=[IP^7/q0"JX<n-A5nZdH0gr(`sTAQli!se0CJ,EY/,0=3a5q<PKSoe8Nl%HfarS(8LJC9@RgcAf];$7l0jD<Vn#VNH?tE"[_B =7S9e-0 Wc\#MJi,8Ose^;i<EQ`-qA>Id2 8Hs+2AtK5l5ZW^%h8([?A38LIPT`PAshLUs,''dC.6i0j^l.'U%9Z!"YEal*$6s2(N$nM21&T')KNc];JP,K1AZ&HgQ5g0i<H*&1UYcE2%M(".phj%9E3sgKQj'A0lU5i1@4>;@Alof@02jOWXa(mdOktRImheaBTF"+_G9S$6RSn';FoDmm?QeSKHkA7.DfA]b.Fi1k<YM&OA/(pOL3AK&<natm2/qhjT@D""tnT!+S&^eI#74tY_6ASAaIN-fMR[e#7SP1icW5_/MmKZ'2?.S4U&'EmM^qn5K;&+tA:SX.m6K(Ts6jEn4[YNB7,IN44'tVRH4ATc0/cUch;:4RIIZ"t$jRq7"[@mSkpqC,^E0pDC^8`%Phc6@)<+C`dVtPA,j*Kf\QeY"(BYU`%^]5"LpL].bZ5j2&gT_Tp2MB.q%aV$PRl5eH9eon9S[3%+E,,o.Y:,g1C oQe_.tqJH:T,"VL6=WTKB0 \)C>1LBMXk'>K&Al..qA1daLmIQAgD =bl(WW rKQ^kg!0_HL08,_&coL3"L)8Zp(cm;K#J5-)#V*._78W_AR($ZKHP4-:fPm0@/k1!8^[BXSoQD!o:Yrn2"2T^"Jb9s=UDLX5W@Nr@'SmXd'1c'VspfP#7b4@btdUBJN3!^Ye@n\;)Sf#HeATK9mrVQ;='!-::"IJk[^1n2Akm>Gi,e,aIAZ783dI&Ns93`,i)Ml@%l^Z J-sqj"b*a$$9Wj?h)>a6(0a4@^a`NoF>EA2Z"%6<RnnkG*bZpe^^Kmon;e?a9sWl$O1_)AKS0t_c=Ye$TYTM8HHQD<&O>O@'9%.2PaXIDk-MB^h`RTrFG"Ki-]4k,[2kB63/da"r,g)*cH;HC-daTZ_,Bk] W:? ?`,e2`=TCLJ@knRUkoM*i`_Ah9PKTTIatn#:pp0;T_kfn+$c?Mq\S$_^Yj/?fOK^&Q$-94\0iF%'8D/C*3@@Xf<aQ?:f \JKB8lb(1mk/tCA$UK@mZiIL%OMg[6fD5UTM\3KXYTI3hV+%[AheA=3DP j-)h7qo7 0.P;\)p1DE95)r"`@M\&/^lS<Q"NEn>cGZ;K]E*)T%llg]b^SLSt Vrdt4)Q>?k0SQQ6:Xeg@pm0]1>,TnkC s&LKP5n:EHp2")g='d@s)2;-Y(Ud!A-'AE4R dVZL>MT)q4<'9Ymfs*9?Q`d)b2H]Om:]r+Kn`gt"_>:)t7!GA;&6'h'-.\lr'erd(b?#9?9Yk?T%;AXE?=09Y[DSUh4)8HltINi0J#b]Bdt"k,Fb ]NBR2/8_AtKDN06M,(Q*0IVE:pG[%)2l@A`(R$%8frtGF^i!6c*[)*Mc%?+6q[0@Zq=V^]`#/U&BT_'6FD*mS,AHh["]`N(QVo'7Z-f,1_^s&)nG!,A4j53m`k,%Yl0i]A2S<lVjH_)@P*l4Drso-5,1HPtCnP7L<:1-\M>6"DHDUN_,kR.66#dN];A$\_ggOGpVsS"p9]cN)rL#C511GK*j9H(K(0dqSJ]Gdb5A!Gmn+hFB2]jA>'@8iscCUTqIJ@^Sk-GT'pR9<P_Wql2^,(O&'An3Qid<k,/PQA@ 2nUm9,%OOK=?TT 6Ei4 KsKVI[H4t\0 cs+IqfMO)U/PAJc<A>Ahi-0VS=^@dbe%;!On(OYba(j[*dJ>5b16&<;>3DZ2G L0,]6V$0)Q(fK9o6g&439WHT?C/W&Mkc&&&7g2V/Kq"_LqJeGEJA,U%Z`^$eT reZ34p^FaPAKF>]3RJZ_,)>=r\E1 I-K)$b+ -@[&ZT,mc0b;C4A@T3,]Q97>AC% ZHN b"f8D *a(! YCXb+^Q8j4V6+*:<]j+De"ZeR(fL(/@Njn5'&<Um%&YssN+Z@_\K:cBZoh%.pLKn0Ho>JG`?@f.$AL%Ht-:iLUCa*hl17k([ZY\MB kDRh#JS]J.jt@S?LBh0SVG`AN.?!gqAH,4DjnOmK&iG#[P2X"H!fb(35A[cr$HLcY`cp^Sd_7N[]@o2i9,N9Z7:STafZ@E>,"oXL>W""!IsW`n'9%>O9 .]!-O``>qCK02AHnPOA</-Ql`?=`e>YDK:f][ZX;^E.mF-#JpSNM45q;7Npc;JsgQVtD@dnT9n,SN4Z_8V3ML .Bd1brK:0]9[-'!?gqOl^$g9#<IWS_Ftih4UP1S:e3D`&2*KVC=ae#m5qe>he@F/#0AFi44-GFOmX;1Y:ot=40rm%G)rZAp*;A#$]bXcR)FL.ot!/ HGcOY6eboK>T;c`Q@YZ2)E95k0(Q]Qk2mG!lA;3=?"f+s>Z9gOJe:`%EA]IsP^bL%a0'Qns/V/oqN*X\A*SWV1 7H.;U)V,f?6l26J)'r9%S8DHKYBSA'6>d#Y5bHErPHIH)h ; dcmLG9=WNP^dV2+N;./c>/.'Yg,G!Z ^"c6S3H+AJWf =i\^<knMeM?pB_D;qdh5fq^[ ?H-5Rk[OE6XOZJIFDW_bsc$d+(fGb&32K],qn3L,WIrs?9=/*tX*A8)t @$(OZ1=.g'PoJ4$h!jLi$8qjgG&TO*:TJn2(IqcWXjaY@LYbT*Bi#s&.\$^XgkpdF+o3<N%X+6T!WEn.s_Hnb_bo_>@CX$IFJnC(,AkAGfY;jttXd;0K+,#j 74DomGDbk'5OeaYs;*0R0b]$N4L+#f"s?8$`t9;OG%Ya@kQfAANhdLr=qRH:2e"T)/b`Bjg(gD( 6Pc+^[&VdH@`B>"qJ8NAa]8A@t%qd>[l]RHQ]pZp2\In6]5?]l%j`&A)5r2IQM:;Y9rN+PP*lL`ZCP_@tq:r%T?B_$39l r\hehLm38iF,_7?jQ"=.\Hs^+nEs0Jp3[d.3mjc1]OH#`oM#1ikiAL`]8p&>Y>.AKBB4KGA2r%(Z0K1\QW7!X- =.BLhN=d3as/*B^#MY7W>5hH,55H1,tMY9]Cs?H4/6da 2JSJa/t.(Ms+LPPirD0MXP0!NF6 =`!+`A`RfU,&d3Q+lK`,e)6$IcpA]r0mMfncKc[1WetLAXiV7]U0AHB3/"nBr'kYZU_/3:joQ-*(OE.2,@L`K cM;WT3sF>(s3=-i`o!-XdtHROf@RQK</!?qD&n$-jMR,\lSTen a]8`GT_jX!+Ed+Dol3L=!A^&ef',Z]pm1`t'<5J!0UP0BehNE_0Xi@qjBF$#on10Z2cW?JW]EC b?QZVHjIbs>dIh<+\b,GY!d$r.8ho5%KDtFok?`?bP6:T+D?(qj_=htP0r<Do$ Zk8%:.!0QRS9c%co@b$"\dEYhQms7,>*[6B'WEt"m',f^<\`noMW!_e!c3Gq")i?spm/#Yp BAQ2jmc9G "]FA`L@8h<aRV/se"2iUcA<?e).bMNmnQQUR9?bAc5>2aSZ9X!Ym`fKQg%ViTALaF&-3%q/BE(s/%`A7q_lf8DJrfgT,'o_(dKBR7j=o'G2Y6"O`<-OCWTGRV/=f8HPB:d_/tg)@'" DjV?mI%[4fE^MtHE8eeH"h2pS./3#@Rt0%T"-"X'aLPgmk&1WC7^$e,Sq%Zm;%.+=c)2MMg2@k1JfBNFJO20-$D=@abC+kKf5`\-g9L:tl<SI"+ZGIH$\D_`2%jb=\G9#L@"LtTjSP5%t>l4(mq\6X9jH(?dUVK#t>9J]H0?EtAO&:BW_pV(mCX1qoP1&ArT[oU_NWphc14NNs60UO9]gbTH` >n!IH%IO*(FaeHm-ePb(>t<i1$,V*-/DnjWTK50\H\g.:ZCnLI4e[j8&AOd$2N:W(ejK5^9#q3EF8@5Yr#*jIV/T=#n*iDS2at#GX]hrpNYi+d RpXW30Z%":PKTG,4%Oe"tp1(LmY#>'beip%>6(FHP-)+JGN`C>D4ffmfcYsWcmJXBpOVON4``0Q SHQG?@!cW/hoZ ']MH'^0T!5"(i)h]Y\(9FTfJV:4Q&ac[Z*f:,@(pL'T@0:ooO73t*S.S R?@3gc+=bcCM%M[$P:K<;o$J='rX9Sr h(fI^<TnMj6)h +1ph7O_jnp?sn!5OoLBUT(f`ICL0jFGm7LOhSRecX[UU?B3Zjl'K$?,V2Mn?2`[X!4n6Z/1st^F*\G,Y5:SNHYpGcJA(#'RB_$gW5gV-\c2F$I4P/+< [$j=j1o=r#'i#!RgPKn<W>fR\'E/#][^@Y$OZBe;-88NUnS._L,N\$5cs atk#T3A$ffIU;''(A$%rrsBGD;)f.Ar(>3/\BQr\Tp@LX^_71-\)@q"5U+dG\m45Z[RWI,RY]=UE=nSh4\4*(F4K?&Y-XSFAP-irK]<">lYQ-?o.j_N5>#L:^aaA?%Vn8VQ3'@m*sF#2Cr^CNV!f"S_WMCICaMih:_?p]%MLTPB6C3o^&L!<13?gm_qY)o9;2hGRSJoD;Dt-#Yn#e;<1=OL7LD74Srmp5&UAq(t2;"bQ/\5n.@$kZ5VR*<d\hC3%kp^M]JHpV3Q@,QCs$Wn!bo%d&H@!eY\e%pIlAi+J$tPeo4"M5hT/:NVP @nkMY9n  E[Nl^"p6P*R&VU&AOtBA66ohb4\f(9jj\fI0MUm? i%\ZJ-$Ea"W0X,lm>(Pd -Uq%T`9j[S4J@*g14fA-LLted[D.m7f?"#0olA3Q8%m4KIoI("&Ks,.d@5.m%7S.D*M"XSC<iUQRKUHa%e%8LWNS#]I6]](9""8pJL'd'ba\l%9Rcq%n^hZ6'=pF7^rYsoBnGcg_T+MFV<k0-h'*YjT[-#DfD/L`6g<e#;Y,9mb>qp<4M^M?<`Dt9NU^!=UXV*Y7'P=jA.:-^ _hP5oYKAgO/-VA];+43=cTaOg"(G`@$6M-J*C2.jPo9)Z%IOq7K'5",U#XK(WTc:D*s0oSK%(pEl.Do3Qof+P9A"Gs &o-20FR_;G3Ab:KV!q>'JBX,2'^>->L`,,8odNI"\<&PEk%E99kZB'#\R:.bgbgUj5**>=NE ok7F-:0.&DXk1Y_h(3SI4ki"GTe@%(rc=t4>jk#o!@rTC97+bJtVnc^[*tVpW*6NIZC* ;kAf*))ghWh+T`47Y^6h?s<P*0ds(h*"8Cd$ ()W&_95S)U9>t\MZHTgTBZ01;3;TQIMbjC\PA]r0$D8Oj3>n=O ?N\)E e>a@\+AS77?%N1K[qjLVAgob#IUGIFa8lQ%tCBIYXCjf?iH.5]j5+*!k&DsG_E_H+Z"(PJ$+l'PRmA XO>5BpmN(MqiNP*A,@?9Wi44tbi4'0'W55LNmM2AZfU;DGU^l,g-XENS,rh"ZU$E3\=S&DAEm9r;i<FbX]ZVKNDr!`l703Cpq=jl^0;"8CIPp>K^N-]cF?I>n*ZLbA`2<5[7KBDLZlA1r1%ls9R;oNZJ.9R,]eQCnhBnF)bUL&L.?RYSbFONNqAka]OVF*#biD75m(&]@k6d5%dNiCs#NN=e\=^itmKL*UX )q\j=hb'J=.s`QV2hFD1K r(oZ(lmdXR7kK9`j?MN7,ghZ`<YQ,TtB7r7Xa:JYSbiCrXN8\iL a@gA[*!aE-e6pQ3o_ef2&g^Sk7'QH5cs<ae2%L8-`g:t^sG_B+g!92W*DBZ\:@1/47O]Sqk:kORW0F%A^<;W^/A%bkjW \&:kEh#7)=+b\kcCf\=(JII#_JN:=K r<N'^g0a_rc)B'F1B2%1OdkoF; TbAF]18 UK#TW>r0N:_>A Z#kS(V*C Y7bAeYGTpK%;tl6P!>Q1W!SKT\FS8hq4MV*:leK^H;N>pFkI0)F9K7MZ1Jpi8Mp2T\_(sjO!b-Eq2r1:[4%3V%gC)pmecS,cs0GP(/(l?X260AgGL9:&)hbAUX0q7Wl!Vk9$D3.X8#,COLJ^a"B.KbmT.*%eJLl'HM'i81@)>>qfq"HJ4IZ*e[&CF_FgnM]WT%;Y.H2br/ir><arAedo2\$3HdJ9I]8T8jm(88W9HPRp?rG4cs]g(*50e;0ZX?HdU] r.+TAAPXo,3DCZ)VsRB*>G-]="3TJ]/Z9&1i5a_DArr$d6ST?+ 606gF.trN;AQg?2TXfUmfNE0P*Tt&AGpK"*,,]\k':dVcTY:GPXXW=6\cf>C$F@-KJ$B6n2ZR6U tYkl-'1D\A<l=2E9TBINsjp1(&tsc>Z $"%O+e(QUcGiXAO8JtZ8 !K-O]NEbc&R*G)_:D^nfU7p->OA(Td05<Sj/%;M!dn sBZ=NFGQ8*'M#7]@&gG?sZ[j@m>*?\`A#D1&$Z,L7 3Qh9i)b=L737;!*a8$%j?Snd3\tr>gd\5tXUWs$!aB*-67+&l*TL/`G;c:^\L j=pV5:[,pE`tKNIm:"r%`b&^61IJ)$2Af86;=AFkQ'4H<`L/S'X.3[?VXa7@WiOQl'oV?Eg"j;m4Zj@$][-.4Ak+3DqADc8+<9rZ+h/%:6+OQ=4-(^Om*s"6hnAW_3tb=?H5>"f5k$bD]a1ULOWdf7I$/j6YeaFq+5rrJXWkAGL!;Cq.P&KD@IJR1 ah[nI- kM"l5=bj 3O4F%P8s\M4T:#aZB 0"dgA.V3*9L[n s>F+RW35/TO<.5iX!P;X@OVeZC=p&]LO1P!aGRn\!MiYF>n`ORkFbOenKAD!FKg.RNAl2jiE t;,;,i#k]n;SD$c+1b9'j471C!/0I RFm?:h,Ac_Pl8orLp4&A@oUX65JFZ7,;?$ZF$c)!Li9Lh/bLr]gCRKA#U)ZiE>g?jIrAR-d^Jom7ON9Y?^kaokCpR'QhF8M86-4g<TF8\clNT <WI3-Hd(;VkLg\V^AM;>=K?Y',qiqE&3F4,T VU8f`K57\j@!sO(Lbrm$c`GYK%Q$fn0P/,telXc->@[Bn!UB+l')=]A54'PjY3$-4870FO^0+/8_BDHd.2^4.`(/I.dOY98T0NA>)t^h;5*:+KJ-6#@`=B/t@hHR#p^m&k!;4K9B^4FMr &70R(ErANQ^7U 7E123;pZtT+72f69F>4;HDg`kAg<Pp0IBJU1]+cpM9Pl,Ae8X5Fo[Z9[r(hEd(>hLH@: slgm+_4Q@. =qXge<."NP!0A5]frD]s%/;TTUDfZ]*\p\c"HW$=&-#,MA_VE".&+o%3*P+O?E$oE>2o/&R.ce-ST6kE<U.G^PP<pHF?@OXAa&\4'.+%!%4G/?"IYF<@JM+WBRS1$"f;tLdK"c;a@,pAX[bc^p915SX a8,'ksR3:m'k9CE<1ltZ*"]4gmg]`ZFQkF,6CV7(-Q3%:==$$Md>ZG#;,8:E?b<`3QWMa>!X6NOT5CtIc9D9\h&YbD%0WAPh@#3KK;UgB'XOp0SP9/6T"mA`>CaBeebX4eCKBWtOc"'HjS6[.*YMZ5'm'R)_88g?P.cEnRBb+C7q>Q@TVX]a-DfE,;Z4n[0ZV:TGQF4>cc\IeJAlhNJ3`m4A.4;fOtMI]E/1C,<s+n.)bGHMoFpA^BZ/Q[L_@(2ddD2<Z9!Y*K@&_L0N9icXqW:ZK`RPEo2TM-14I&)d%)DJdpF3kFGgP[isS/glO7>%>UrO,spXDX^7pZe/B5@='S7ChLD1DiY]U6"VJ3"pUPJC!`A"2Whb4]c:.]4B3"#O+Z*4*%aJ8BkP+7E/jDcH!naD+iDmS`3QS%OBM>Q'cZAaZ!a#Hh?A(=H%k!;]/:AnH5o&JrV8.sZ%c=S0)oA-lG[4_Y2TT/KW@:^gtt$eq?q]R?)ZEC`Y!^O&/k,I?A3:]<`2:As186Y0PPBfDm34gtctp$8@F;BVd(,4h4[QAY-tH!TA*nY []?mQMIe^R"jrNMqs*?KF$q*00tT.l7t0M9;S>]MOf=]62.RG`arrBH.`(ZP5&3POn%=,aSEW >Cb&Zq51r/^MqQeX!a4U`H2]$$4OhKag8jdpk-JALjcp8M^J7*ga7J0!jTBPa AfR1_1aD"4@CUe9) k#T(*3WG?j2%-m8$3>.A02XQ$(P3>IC7AL:kO$7kJ'pdWi]A-)tlA&3 9dh@ L-!oa0r%7fg4i<\TejfAKt?FVHV9b&3Kc;fmBi`TF9f'\Sqo-J%`F8,;-&i3=B+F+>qWglV;!\T52SeM0X^D7nYjm<@1i4]j/X2Sj[L[5-8]r*^h2_Ega6##!<mVqc*E,g_RkN%ZjAJ(i]4:n4A>9Jpr`a%>+1RDg/9"G"@><RfJPUaE5^jsW+ds'QIDSaiYPc@mn><97=!nW>cg,r=HP2j:8Z%bM,3)&^R+=dqhRmLgL*p%Qd4cDnTJA_\kT@E=_^t<3 TbBON/N4p+ohs=)8d0AT&[[GU6rQ)U=@AS3!O.:ae%$^a:eF$E-B*)NC+I]RMb(OP:DcGh$/kmKC^Fa*(aQUa%<m.*8<;Rj3r:,t5e:\ghMEa-c)o DZ\fsc\/#Ue/Q pO]j?A=BILDDJ,]>aIhe@fTj`SO3p2hf^cXp],Pr+?^N?qi7.+PdZ.Mc7gKP".^,^M^>)Tkg,15F*OZebWqLVtmjP_'tX "dJgUs^=('a99?t%3is^Xc=b?$+R.TVfX7LQ_4ZsSs* V<E%#6d69WI>:bQRrr<="DSFR;h[*=Aj4j:3:3:&n$LA'="tGLIqr>Ho4k0[/k;$_abW0=ne4`NlXo1!VN.sA'5'eZ&;%9kq)#s!IAfo(KD+?ds*nYSVcOrhn%PFM%hQ*Zh&ArDNHq3p7TS&Ans>Z:;<OeJeGf+HmI69$,)(e_-TEbl$-,>@:a3:8-T#rQfUdad/nX&B/1%4SK\2H[]k(42sTnPa-om6ofNB52NMl('Wf\R;G!h^WjmtRS%`R's ?A^KUf<>E)aHs)mUo/U_-,1A(MS]C,0,3Hkk6QKWYOCBhMp"o.T/mi]3Xd8e9%296>X3>Kd):Fr41"T::Fg&<ht[WAFrshW4"bL+TmSsj."XRSW9gV:hBk&/'c.K_&G8tf.$o(W^'EjdR=m>k#S'JBX4p`d+5[V'T!rHTV!fbSRST$kr8^*s_4,n_HRXCOUb:Qh<:f.^A*6T@nb!eiPa$77Q;:-2lE=FC9"Qg<9>8API'1:-B=\_X=)8'UrRg<?mj%fRb7aE/'Q_TmNBEdX"G)KE3&(4C:]_$c (\83qc]!V\j`(B:]3LfAD!nq(0"YfM$i'(l:4tWSane@,_9V<1Ld">U"'4>V7Jr9k+lPGT*tZ((i.OfYj_N\PPQHXA23G5pC6NgFAYJs0#+'Ha`1hVf/>td- ]8T[c:qm^IkKp1*!c1)m1lYmKj@V"GcI?^ss;ZJAk%SnNfbPPI^>t:Bh-BaWK.l>W!ChHrtKEZ>ee_\MC^\C6]<:C$]Aa=PnMq(l%LsV`b&A/?iCoX;<jamM-"`(.*&;8'Ub0pM6Nc.Ua_F)ic9FIE,,1F1X-Fha"i#'@kO9P"X[I!oAXIDj)Z5Y0?T]PBb?HhAWgon;\ep1P]kO70_:C-6@%`)9N&2iF"Y>oXsj2Eh-NEX_'"$p`1SsA+Y;@/U3R"4TmTtRS1PX2-N(p(tE%E[!f54H X:=RX]04.tMH>kd"_qmXao4"PhQN [)2E3X5^KFGUs^*6nbXPPB>`*m_X"bPRr_j09<9&MUXsHee&m=pR[d4; GIhr<dM2n_H.@0eemZa*)amJ-tf7fY#ce/^ZiMOYQaI9q4`fHd\5ANs_,qsG<#`+l";l<1B*<"AC*SiJ`ljgt#T*_GXk)&(5FTY9`XLZ`p:h_hYhH-2YaIl A_fN+aBekG<`,nXK.9Z_WB!A&.7SjG`9@,`A7^d`9p'eFU8[H!9eHk;$#Vc1Fm&!DegN(W^FY4k(.mL;sFAZ4n%50%5SQgto935ehGtr=8@&e*W7Xb:2@ZZ!rV*34+YSMDFf8=>[^A-m5:MN 0BfKb"V.72m`$R[rbZAk)o r%KqQXP;kG6AS9oUk`rt#i\T4@'EhXWqDk)s2%VVKYrf]>lZf;4CrH&LMT-4_(AX"amL?UeerlB<NofC!2m4A5It^qM2.Obr7FQX ahmRtsr[gh[ c=knp)htn]=!B(q>:f&+"ko?:K e4m2!=LI55i;jg,-;NXPU3gAhbO_7Ga$,1FG<)lKK27]2468]I9NKi>c"&B4E%Ga!qWcc>A0Rl\EtN!dkfkBM@.+dS^`+nEAiaE jP^7"k5do[g*R"eZ!NM1_oeq+?E95+SRZbZW#mq/-p#jL65sA[TfB+V_+8YpG%CjS/R=eX]F@hf-H8cARJP-s2/A'A[s%+% _d_roE_7!J] qm>F1&7,=@0c%0o6NGP%BA*Fc9@jmKL_"Y9PSG"'FJs#Ki+T'cSb2 8ZA?:kYUQ[UTY_Cl)%9.'YjB c%[-c0/h!S>fOFV`7pFcXEo$/.k^JA:XAPqg@\ ?tl A(;C,llcO%HbKGJiM7);(PK#*6"df'QK@7>%_ils n(J=\(=2mLPK4#@.k_RRKX8qAeoR%-'4(#cF!Aa9^kiF8gInAM@1J#cHN)D]eUSh%.U=4K#<:R;]ApDS!N/UAA[@KPPQG?j'-5HoMK"a"P+=6E\#a)\/'$XH:f9AK6lAPk=HH6)&a=,[<c_('E$,f5CL2kVGUYD<;/V_l>L\[00iK8Jbgj-lqA2jX#fp^Vn+D"'fWg%pGM0L;eLW-]]k5a/fhh,#7`75hhR/a*L0;3pQ7P8$+le8YQ0$lGoObrc=N@fA`_m`^S-C-:e"!/GZ@"g2;(+*7AJ*K8E''4_Bh(K0;,)3, g't>enZq/"VbTGnJ.r`9Z<eViH-Y91GeV^n0VmM 5,NL -ZHCAEAilhWW9W\e])(#r:W<A.4rh6kgMj`9cI<@lp')TmB*Q% `L8%^!bc&W#@#*-iT5</f?nmFWLVAciR"Zd44T'E12K2J\$5*LSUoP-ch9PbP;1 X@=4>m\P@MV2Pg6b82'$X5%C*ccs,o8>G'2Vnmrf%7- Y<^>TL#be(V*ALae<3r30r\^=a#^o!OA"@F9=CAgO^nUC+*_%b:VZ<0ka>XB#,t;4]S'Lf[3j)7,Yl=TrK KmJ1@%QebB.J7 ^F=g)"QP,LH>45bAF*l @Jh<g4+[7M.G1SPE/nTA6PfmA'GWU?XXkL0)pMo5Z<Ap=Oc@`A;5:)^_M`#"gi=@sN2o(:L&6<=)iLhrp1[E_=1=tf^-Mm^?>!ObUpj;;eH](mN#gAiYNW5VrcfCc6GV*aGnPh'S@0@0;K\it@r`lsn`hWXa!mQ"Km gtp-:^;>O-4kHE`*MrSq)F^0RI<8mBbo$=0e%;)YT&2+?(!jjaT=2Qh+nr=#078':9DA9m7 jH3gh5YM\]XBls%gibpM;bm(T)ResJ$LGs;W`!GNs7R387UL3@CoMX^,BaUT-Xaj'6$,30i/VlT08Ftl^R M>`ltK`/?.N,MLGN]?T:<Hl):)U/dG@X<UYae!:lB`4X3S'U:4]ZUDYK\aFQh0jH)1fj>:Ap'k16(AM-KPd3]KQ%/=eGFLi`UUr\:?>A+JMa=C^?&(5GchU!AG]GlO<`(qinQg/2t7;E[Q4>8^(A[>$MNj4=/K;S53Kj1_[(7%aL$.t^XltDja#<0,.#b0lYG%$9SAALMIcSoa7Gl:`G#W)4\mH5"MH+WL7FF0EtR6K'.^0Qbbb6pkdB<bC87nI-"1?QKmA>>]6/Fk#`MPG5BC,V6BfQA`gpEEs(*M?rl>-RI"'b=jEAtl9J5Fhr,BS?EN5#83F<").-s^i<G(pF/=BbrD.o;hgGmbSC"0Yog9B8i,??ddI#/FD(WZkI^?(G6,$2[nE?QF+THAUsc*SRE2QaA;Z&'d5QFW/F/K*HB]%VeNK6_'XQ>">GXVQC] 0cAL$p01/sK\ !gR23"/_nA g5\"'Q,(<?VG_`@;k5$6-Zd/'99ilnA6nrN=!O$]X>mW@hMd`<n09-A?-?HTmGjP`trdSt`>;-S^A\d_d=PP2AP'VC48n=&[(jA\Y0DRiID>6$hAN@ M9=;=Do7=MipjH\DMefN/7Yt/h/e]AZr'6XQhPVL5b/.?Y;S6h-cMK`-Znal'^>.E>BSW"<*!)h]TgMVSBeV<-0X&olt*fk^3T1otA@N>Gb,Hm*"MY/%e5[j6g5PFUo+.qO$i_1=s8mf]I4dRSW:4da'CG%"H@m$<_cC>*#@V\k<CUit>TW6+6i1&Fqa5Kmd0LQH7[EV``MZnlDDoTjQfU[eXQ3RN=SF+pVc5o1Q:EH4gojn2$Eo&Mf3D._j(`fcM;'gQI>6Ec&qO%55jKt^'5AF=]$a".(A_Q(p_KhMeD<f;/Mm;s4kmsXN\Jk"h["%DKX5g'N=k$,IkK+B)`c[VUrmUM C%$82XHqG& f]D'"T#<8qch#mNZ%"JB@r-((;!HJ!YBjZs29?0g[;U+WUn`LE^r1YY& /?U7i _.(>(mJ2H<pKn=kDM]_Ya\lY8.cH,5<V^6]b[&+tp_Tgn!+MZY,]EEo(k%(gX 1\bV*,U.&>)=gm$L"`ED1hb.FY`kR2>FcS6Wl4(7*=F9l,4`TKEB=(5Rr5<A5?;KC2Dd\]K!rY1)jtA3<$T)!N#;g\fh%.BisR3AhUHfpO52X(t3fMthhYd,br9O[E<EF*I?U/)T/Aj\"/dC2BQl;3XW+k(Xs]N1be',?T c=XCf s`09F2&Rh)*.4bm+-&-GiNnn+e&ed9X=jC`MSA3j<5_ec?Hd)!cP=f/9`]B@9c)N`imVYZe(pT`4/3Q))UG4%t$&+n(F>"P ?h4$f.@p"gQO[C>n(gPR&l>gU/I;.PU1dF4DO?%^m?AM,aUCGaP@8_>ABJ>/jW)m4,'jUWTFga=LA9A6GnIr[*r9NDRPd,8\S%JV:b?8J"Af8(tf*6LS3^`_sh86/FZD0h'.OXjmoOOipn_5@6EhHgg3Em/k9Z>C< <tl#0:CQi:)8Ld&@XA6LfKJ%E,Y19X>jP;[EN4iLRPa$\="`RLH/7NS?OA /kCX/:Kl6A[qZUrl]dgBfYB^WjFj[Ho&`9:s8a8ik/ ]d-=[6F[*>30 )c0"JQ&!n1pde8*2Ug?0"E>S_1+lL,eV_>16D%8iWW%?^\cbN<Jne<a8:oZ97nO>C?hQ/mNla l;fbt_!NqG!!2rO\=pH  fs`.=XdqGr!AA)H7H0lsAhj;O[I*F^[T"Nj <,8'1F?U\': ;JB=E @L0B&&4E>k^=oC;<jBb9-A5 >(ARWB>RM<J#Kj#"_X?por7Gb@D#hlmUmllT?E%3CJ:6-/$&[j &rc:1%_aM'DTZ;LE&qR6\sr5s2^1.q&hJn#D7?S4rHR,^p9hGbKr*Ga=!QbN;1_7V&ht[PsU1:o?2R9\-emDL,0PR4t?,bH8Btb62>E.iU,nrF G_U-IM!MjZC:5h4?tfT_GFe??DS07>U0RJ(r6&RtPR]GSi ` L!aebX\<#;-L<Z<"_-%tq^sN9]7koQ!c+qT]j* /8l2msVpt:3`q8n+JB9"f*:?YY`1EOO+sFVA:YWaZ.'67e#nMk!mQ;@Q^iV1Rg1nf:N<clPqrQg?/jVTFkQH^1lc/CI`2?5gL16R]b!hna0V"'*EQB#F0$9pX &jS_^E=8can_`DZrl)0J*okpR8j,n1fD="W]4e:?UT33oBSQjO"ga*kO]+dB2=N0#mBRY.%`GR@!?$k4D'6knbs$@4rHKRU2aI6<@O]D$rWEh Z?Z1[3j`g'jH@FR=5S3`.,ejFG!aoIm*?*FYnYs@j/VB_r\h:K)Q'0cRi?JOFtL$("ol[+0E*YMF1_G$E#9QCSP;@*:P8m.'r7O[+EB<MkS>9ZbAR3f\cs0aXj=/I(57(P27:)?i,%[9WC##2I@l/MNB Tq4g^@PX"f1R3`)c(G?AWG9]UUE\G9&s&05dOAJt"nmF7I0rTe\U"eUm;H&]Nb*J ;k2?fLYAetX7.FH;qhPO34e;dq?_6 4W\pQ[-b0]q]f@8rSkAhb,[0)N3t\CM$%I]T@J&1McJ*QQbK_%:tH`2AAGo/nAN_Jms5N<P>f2Y0Qs3k`<9p5Lm<R47O)^$EMj`B=WXIIe"U^qU[83`ACkidXHs?Ci=(Hj,5jl(NM$lXD7W-P\ /"I&J9AEo$!,;YndRW.Qp ]:YCk+RAL_&p4]Mc-?_k^6 Y^`gYe_3S4*q/pq>/C1[N#OGK?42e(7Zg>J%"jT<J7YQ)$f$5f)^!8-1P.cc1E,Jk*"?TQF4HV"i?%aEc/aFk"*.s]^?)]tbC)`iI]R%s")1\j<0Nd)%SanE`(p5QNlg)B#eZ$pSs(GYmJNU-R%Id8W0_.M9dWC!8JE8crR7*U]e&ZTfQs+O4]?p&il6)qA[?G=6iHd;DAm"K&9V!QEJ(/JZp+1G]lX *rla-K#Ji@B1UnaPs/#Fa19 _["Y0K>"LE]pJ&fMAA,Up+Jogd#?A+HI[8m75=C5/g.SpQC3bkVMlA-ne\9Z%^Mb:G_*P>s9*?l'NU_OTLIQ3lgp$`T-AhF?Q8W,]t;j?m^1"C0%L`]9l`WA%A?AEhEqagE]l*c6;AK7HBsZ!O ]!BSebksPB,p7T@Q>5CIsRh[:1Z-*(g,s\I8o;ZFbE[R)QO>&.1fXW;XUG#7,ibDMQh$QA#,cO\pa&G]c*"2!rZ//k<WVRCk)t,9Z1e((-;5r)Spe _"#Af?#9+!X#q0OF-%C;qZ1tB=0LioQ+&W6I.tJH^[]<jUOh(PK$ql=dNAt-Bl<-e=oYcQXi[l4sC4Q,lF`,@)*9&2EpD""Um hh$b9qFYURhlre\2&eYe)LH%F#1$j3d84^!ImdBA%/ccf/<#Y4&eGs\\d9PD%_9gdJ>0Z':#"mt&!)[(./8VSA\X8%teD@itpI6 8lQ/1^_]a cKtH6o%*C=AOC*G+Zh,7K,);9iVc?bm:VAHT?/_*U\mAfAm)oGOA2q!6!QJi4"`hsjR36p4K+LA'pt[J;1tEZTs!h\V>G<,pVpA0B0"D&ckk,QCRX]K2]*BU>8![4U:o7K#F3$H4mI"t?r=%3rj7_I._+CBYa]V_"% n%9cN\)+FH2^cl3mE\=`)OLeEKs0AFIFBlGtd> kT`s4Ql9A@m54)'DpL5J:Qc3:gK/`>1AfWHcA(+6e>P&]9'/<Kib&\h2Cmrh4sA<;&Uk!G'..MVl`DB.808ZiPk_Rab@HcYoJ&Y:or\gXkDl(9d)UA?0%R31"V`qX*?OH$N\KkYGrBU*b.2#lGYRK)g!B(-U3WeS#EM50 aI<XiG4*p6<ANTG4,d2U6'l@ScS-e_%Rq#Yt!T3% @4b0\pE"X37N<FO4ONP[C=$C8RO%%nR]Pcsj!AX>0U`(NpFd)A$MIFPM'ansaARG*TH$dHp@@j$&T+]A75M7)+gbBDI]ACmr"E8kDqA$JqXpEtH3Va?QOY&!A_=/=7p.&c<pLfKgIMNg3L.$i$Q9V68Z6Z&S(P/CDEr^Z)*7jUrk<LU+EVqNG"KJP ^A*bI:4PW<bkBF_dg:#4,I"E@9#Xbn7piL8-[T?GmW/9MSI6/^OZ7h>G5_K8Z?+H$rdV5p?3ATY+.ea+k[8-Q;]!V2\AAc5g24:,^MW?hc= 7tAeqM='\hjSp.?p:O2BF8$TkH>#=6:Ddd9,RDqm61SIQ(+_d4">YB9et:P[4s>6>ZYeL*E415.\=PJ;eWJ+kJ3':`s^H,<t<=gRp$DiS\A$"?*i:3\r/'^b@Aa9%"BY6p1:AMj(EO\0BjrmJg[U$637drO:=m\U/Q+_G \Y@nV]Dth+<[& d`[<5;,Omfo"D*]USf&R[q_bW#W2Gpp3/!AtbL8J5)Mo(7MjTB-<e,git^8m;oA$1/SkGI$#I8ss+1OFKglHp#"FS9Kt/cUq^r?7sA$9/jZZdT0lR*']D#@1=/&k-ASk\mm*bSL\"@PW+M@'gt5qs_@?HW/V%%D=T=bO9OR9aT#*_D4h;5fgGY6&t-sD^]sne/9d0j7+[YIgA4kDUBXM0\C0jC&:Mml'<6h%UA8"2^mCsPWWPn/=jqpX,HK,4Nnq7lHNUeg;bZ^q&"8CV):pf\\tRh;7qa;dh'46Mr7hSJ1.6d/`_9`CrBL;N]Q8QAWk@"\'R8EtF(W)$D:]:h*t)lcXBY#8"M/8'\g9ARNM sA2L-\8JAkAtAYji8Y^7SHNg@aJ]ZqlN'sBa(ANIilhM=sc+2YDZ[q`Ab`08Qbe9C)Fh6V&aD.PWs$hAK4!'I-k'Nc:jAEaEUsU:nPC9t08=Z(9MDJ:`1oG+>/7:iY1=Ek5UK^8<jN\t`-R,ZAb+q(L9f_Q^H2&k-;iB'\:'BV7'TkL9]Zl %)E5s(J\>CnXV[@^ dEACT^^;0^H\GUFTa@oRb-LEcKo33\Zl]0*`lWW4:"SbaDkO5)"+3X_,_!J5c*Qfb%X#Va^6oV_/V^[%IVlYI>r)@,*D%dY;U+B[`\L&J/XBhMg9CrTl7FrJBJ_$sE**8i2ae:E68aGQVX+Om^q\GM6q2F[m[[B6'h"lQ<H>.Xejf,5`H%[Rh Dhg59IPkQg[@UG6l->.YJ0PchkF.jU69ia*L]NBA^MLliPJO*UI&AZNDf%qX?5UXW_1:AOFkC$I$Q6/"RMZ?' K;#b[7IZA:;)'mn9oAc'1"'QM?#!IfT!tq+<\A-51sS^s97deem-.JT]q)7S`(N]6,,j#8G8TCC/M6'tjhLIs!N?7k`F5jsXQ/^YV<1l,#![c`mT6F',B4 ZRb:=m>!<Ff\LnA)'-&4sjK+;;JK:5.,Ip^,PT<?o#,AO'":.q!<kZ_mq0BbmgNr\6&C%P=n?A&EQ;MEH6E O5]A5H5n0M3,T.@Ll]rPZbq]1$mn7MAmLXT!4Rch^Le%G.3WU5dg>Fq;jfLX:;9%tQI]&NDA7U1a8k=)"AY5I-tPH#$tCOEC,->'se."W%R"\hAiVcnMr[[;,RP8#+g;.1TYIEK`&NRt^MoF7f+?>8`k 4Vckq,7.AJ*%U5nZ&1<8B6d 7U#aK^NeRQbBDWDhSD!?q ;AH0#[b/M$0Stjd?p[*rM-PR8I=rT,U(/E;g<I6:)F?N <hCd9BGX,6FA;?GZ Uq M^/2k%iW"FjJ4@\ja`g-2a)H3f`#ZSN) O?9Fccj(3TXS%O'+D1a+TAj_=cd+K6jH38)?cZ[Ftg?<Zn20RQ+*a=L 0PDJ_HZiDR8imqX>P/\@Q$ZO.ec:)bfK^189OANN'iYO=PEe!99Gek=2BAq\ctHAfK"A9B/Qr#"=YSY$N$;OE"Q*Hs<;N_OkJ>U:(BSS[NALge&RO5^]XqCJqGoq5MX)b,eBV,6i]Q)a.GcMpK#E8ZEALQj`VT"nA_VCjINfki8V1#KOMYVs@6*$nt". s^KA<ENce=1.Y,aC8!oMU`,It+ch!r7iNEiFC)pe3,0tVBWbD7q63]Q,TI,-K;\t!]g%:_i\o#_a`<.2Kl.e3+*\@;]AQ[jq,]d-Xdf\Wa[I9Hd\?g6*6m4aJZ: _UII lHOY3%+b&_I]6[%q1Z%daj&^Hcr1Y-mE<X1`& $R!NYjt.CdZXi=fra:MJpSRU;B`LA*\Gp=cA*]cGp^=JS/cUe2'b`-B/i"/cZlC^PmB^d4Df`ID7XmAN@M#%BWJ9[k3-^c+,n.PW.m )OnT*Z7WjTb'q7sJ4*/F!qA7A%:([<nWsR&%4_tFJ<ikBJ%&')Qnb`I/TMD%*+M;eB(`!N?<]6X>(4B-A%>H]`[Z732#CRNFEZX0*XmWcr`V$/#DNc(a. N 9NY&-i!D&]ET:/pB1<o,#!UY+<9jFkq'-Ma"JR]L!HY["<Z8#W*ot*WQ XW`t8''`$9VT>AFsBQZ<s67ITFhYE`m2H1V_V5Pf:IM5o;=8Zf=U,:r:`tU4p'MA?QRnZM"nPj,24).Pf'Y1;3jicjP#9ehm!MiGGbHVajc1A[Y<i8=/+8?WVJ#l/KG:7H*PoXN/BI=S:!U?6_ob,A$tmQ=6to_GX@?7P'JdKBB&CO9V(Bq4<ZL/'d_J+"#CW'b@>0>.U!7f4pAn_rgO8VDWY7ThT)H&3C5:T%@AqIK50Bn2:f' oG]8^$Q7VQ^N=TQPrEm)^IIbDB\oA;AXk&F<Ic7^kj(UaT0E5NX_A!iEYb1'?[TJ=Z`9^!+=Kb)TSIZ`fab>;*rPl=CM6-5fB(ZJ>#l[+(=0[HXjC='iaOHfO"^BFjN7YB'o[,p:Ei%HM7&kZp9"403BHU#?GPN m+r\2j`,T*XL-*d<n/5gnN0).DnQo#ceG,s,6[J@R\1:!d?$=TYKjW;j`Sf0 BX(D\!F e:$U09;k['6d=R HCZ5s8)JHc!3SDSUc5ABSBO6QRQ#:enFr2*jXoc[Zn=H"%Aa,M1+LE"S:4TL(5EV==C_j$pj$`+b6i2+sX12'-qo&K]!^.^US"Y R[t#3r8Wm0g^WndCcle.:6e-2t4=jZ-eKS&CKsU?]@a5U/9W> LabS7 Ke. AtPe+9h5A:rBbLDU&MYk,Qg.V;l30V@jM(ZsZ1.Ic2A[oYE/Hl`8'1s.AOC$* 0q(^1At6LA.7Pb1*'ElHDN"CZknM&pK@+MG;2r8SCWF3g'YRb"!CcY!+$rc]Fs3W,jO'dFE_7Bs;W2`SK&qLYo=?N<A%<VD!nAo[Hj?bAf_A*Af*PpIfE4Qo*9RH)RKTI-gdD6/Rl:G&gGG.\t"DeGGm`.7oJ?#?3>8q8<`CE$>p0h0pk&E8!17`N7?XmSEZ4jA[5]&99$PaNUH(-biCJc.IGrEP*0"Y;J%/Vm*A`mmT2KN)iS%BG 64Qk?@P/a-Oa6f5@0W4*I>"eM`q>X)_-L[\mmm9Zqbd+#rYi&%@\doT:s^nMTa5]].d?< _,r"D(E5HYdk4GdYYbN]h%QZDi7]oc+l&b`Ld>o;]40]V"V.FtPF`(E`nE.]c)=NfAN0<&+cRhi?>[e1/i9m4=RM&<;GW:VYO,$8gb.M;4>_7<+DM+.9/C_[F`DC8iQ<qL#7+sVV[kt$mTKXCNYK5pb'LL)n?r09Ch".]j:A^"=sFOcNA*;d<`K<j,CQpXHLqTUS+?SC(A (CHbJdIl71 -L2)JSJ]8)`*)jZD2apUJAgS@CqF10K=A"d'k^=BYU_rR8DR_H+Q8R`8:I6AD &F@V$ZZMY'KSldU4F[%lL7BagH 1`\,A:BnAMsJq:,Xb9I&Ls #GR":fPSG6)gmj@BU&amZh6Z\q'(]aPDq>@p;:ji-n94iBF-D8o'pO%9%ANb>4($nEgT@k2bGKXUNp=V"Y!ZKfPr3BjT&cOLLA!/Ne`o^+W02Hl3J]_9q)AEqE)MdYf;1tQoA#N`jb"*A2FiY!-E#Y(OArJI+8?#$?Jre6gmP=R#bc>m"/[U0N+l# k.5IN%FrnJ`qIerjU(:D/\ZF5l4`3qYppHj?q9A9M rVrM5M!ng9>Z .$^2Fs Y:tr/AgR_]^6^FRi+8#kss[PBAcW#KGe@m8?PVRq1A#nkFNiT`_QfJtM'M-sBDdDS*D9b57SBX/e4hR+b45<5<+X6i22k3LP`.X1:gOVH>#m<k5'Y2g0010lM%"Cb=]CV70mEA@qCE'ImY:.$JEn=pn`m@CsI8K<KVp 80GVqkLeCNeBE[>jAcq-jU&f$30$II3Jpl76qKf42O7t,s_%NRVQhmQ2Zfh/?bX!S+f6:A2O1OLM4-o+KJrA1d>2B*\F<Jgh24C4*b8P&)[aIZWCo5,%<W)T>@o2g25^LYfP>r,!gB.DbCs>dfAn?p:LZ2V2o+&$XaGhB&MBZhZUH)oXgD6:pn*(0j6K=rH;6??\Qn7Qd-XmqlA.$YE]`54cOA3(["9-*\#t&jd,6eaDA6"D,\2D8"mCM9$S*!YB8A! \<1P9MVXgVjp$V*ELGEY*>2%EXTrDO]^.9m:mmh^nV#,o5)$2.!["@N5PF`:(ljL[^ES^"1V5g,*%\UfYJAlssgLlT-+b%kqJ hifHU<e(8nVIaH1Je4MZh,Ie5lhm7Q=3PcX`q3395hmU;X<<f5An^TseI[C4bZ@g(!a!dcBl<d!+,-2[i*Obo4Xk2b_]sg\">KKTc1`hB&3@Xf/Sj;((5HM%j hd-i>k\4(d\@8t1gY!Q2SF>t*O&Z[?QYdo<mNp.om6&rT>I_K%NG3"-dLTco&-,A\LY9s8SX(K_S86Q[I E0*;!HU-)Nr* d1Dhll_G_O[c6^"3U_6^`O#]8.6lF[1AZ=8&lF-TSp9N^9Cm'rR_dfblH%KZlFl!Q1ZM]`oBi*YA>"dJSO2AU[5/R+`-QI+cl(08btkfVY^$)TL'7W`#,[*Xg%.=sgDW:D-$!97NarD.k"Ya@XWOA:Bjb<B%6I4p7cb6q(*D]0+\Fk%g-2Jfif1pkcs(!ahc.+EQE_e"?=H<`[Tk<ts^=K4bX;5lMB.D%jIGc6AHBc\gUP#:f!89g-%ato` h>TT;Ne>bo=?cSkQ/ n^lSUMn6k^+;@]n`0&"V9tqlOi>9ZCjNr#bof6(12\^@fEqP?F3U!W;6D%WUd[>.SQN@,*j:g;g.hL==7YMI4$[g\8 cW<.:8gQgI$n$=+kT F 0`"e+-mp9Nk52!"srFN-hh9ft2 =[q7YDdknBcb(_??0o] K\+35LFQ+SKUl*f^8G`b1 R4NKb\4Rfj4HN8V7>"Fp-9t`<R*H-*O^2QTEh6ScZ#o<!/D`C>B AnS(7Y/40ohoYI`+!Q[2(s5aSOOQ;0gA5-M_SEF=0O/4FE\!C")m:SC"]@^6=%6,BPGNM2mc'Qf\8<=.sKAM)Cqp="[(7`U(QL*+JjMnVo-d-J"'0,gWsff6[3/<;=j@^Sp? 47p3P<&HU;2G0;G[QhJV.(m8Bi!DA&GXQdZ4>kr9$Q?+%4ho=WMFE&B4Q5=AT6Yr9%?[4]&6<elV0,,p<?H]f5MQ+gkTIDhq$^5PnMgb>[GMo.1o(gj#>W>]m6g:`_DC`B3!kD\-/FO_5/iI+5Ls[p2A_b,8g_aXt^g7ST!"U\<kJ1CS.c*XUDphPBonh4>a&AfN=UF CG^X7I^5/VL&T7pD]A:E0PQg;0R\Hg m&jW:= ;tQ.A6=F=<D-A\V-6Q$\17LMJ6mi<Zb_3btq%QOR>%:02SI"9 ^EZg11\e0=2eF^/ZSZ#h&bje9%.H4q@'p4*YrB4+ .ZbA-CdN\30^(JNk6cKJ\Y"EKH+STS;Z:UVSA1mtd M<Dk@:T<%flQ.\I:2He=A[p'I"?tSSO9.*ded%I]>Xd>*hfa'(A]?p3'?ZNC4p82 fn*eZLC8Kp:)0@mIj2)";9SeqtBB^+42=Nd3Gr^Vns3<-"+WF%7$ge94WS"+%[;^#8Ug%R&spIBgUX/HJ(^K@BJTeFYGI:jdSNX1Qo&a.OgOt70s])D ?S`\<#-[S[W"aQkA0m,FaN+4:_%F +m)a%BHkXB@Y61/0 YsS2>.NlnYZm3&n:rQEVZ'h<4^/M[@$qaXM#X(O7j/_iekr,*7M#><$o:f-3D:mUO2gTK82A5,a.IP&ScI+tIdM$)E%T]WnEooPL&$JqoPY fb^D^&.?\.c:_tm0AE+MB_B.'pnltbInSb[.o8!2)I(XA3_+a?#DA4o[k7]2%,B]I['0eoZ]t,,sXd?D+AGN@-9c/2Q9'p(e:,hh=5JZjZMg6\_.n$#mr9f[-A^kY%@s(@Z [8m24'C!,q)=9*Wk$,,,W:#\?HmrlG];sRATTY!29P`MR3B0Di&b+_h_,jrA0:E54>js>bs%8).Al9_(?6Zn)JLa]S9JIApaomLeo0$sDEe0V0,WVe(WR>Gb5#^J$n+7_c=V$:l([4G*eX=2b3pJ<*j.l<gA2kc.Ai-#A8?.A'\cSZ#&WbG+-l\qPg8m#@CT(dLiHD?P?ONMt8G/P W.V'J:$J/B-4MOL<_eq]r9(/05Pbrmg*,X[KX!\U$600]RTq0Lc8!"f*h7C?[l_q)b2>='>A5OhP\;D1nY%91q)!>*^J0G&1&k#*3Spm^]3r.rHZEki),`@4CI,2>mJ"QXYP&k^nI4K8:G/2Lc!36TC$%:0 AAgP_D']j.)sQ =80_XNqYt?E<K:e`]L6im%"8O6,*RkW?F`U?1(9?'smBAW=5mE( &AA5*V+>#S59#CR`B]rG';Q#tj^LJi'SQ&od9WnN]CrNf&h?n1lMD[nHA>3FV%=J<e8,IY1SfB59^%qcqe`]#@>rh\kj'$&$"YrQ0k$2I:8#.!07cL1#Y8a)K[r:eAXSOJK/aW8WAd8Xd>hWLfrDk_BPN XW4<D/F]R5:Bo2A[X<$(Bf>4E]h:#ai*4)k%*638_nj^;grgpV&H%"4Wti8lG"J@>J+M)#hdtZ0E7<SZ6BWe.^G7Q#mm&l/l2Xm^6F2I2C#<i!pg @Jt+XbXj*l%_h<sT]fm-RTM.Q!%(pI`[5ZV%bbR))5"h!"eMJKRsjYb=T8Al^1ZXioWg]H4_b"-!ttnZWtS@(\%TB:1->^?7`Pac<lPq9!%&5d=LNtAi+qAVt 5?n!g0GgmAtS7Z4Id:g1 AG3("<s8R&i1e_gge1HNEl<_qM_LZNA4L8t2ssC?''$i"QMgQk?Fa><D!0+<).r7Gfm\A%>X48dPYEk<#TPH)$_Q#,d8qi`IA$!ZmYB/rXIS];mFSI6VUAr`om't&oa2g`th1F]?4\G,o%>t3b:4UgqbtAqHbS$#cD8I8k([]Me3Gm@)Fq\H"$V(s1h?>_^Vc;a9]kg+5\)^+MjVj07]=JY6mlk9qZ_:g+Jre%+T fQ.cJ9TK%YG,71(:kV74(Yir%i$,`g#?sM2Q1a<]VZ07FX/A=qb[?1KH!\nSq:kLTXVBmW?WY"c])sTX<\6rGL3FiRU3.sB<60=/,h's3N=>qs5Jit;O?nEam,7757l=6LA-.mGbk3:q]=#oC8S_$c>mGLEio1K^'/h1.=9pBB!9a(-&VgPglM A8c14j1O/'8M\M3UoBUccC8roZbLOep$ND=bjQ(2%.1C"M$L?m$3W\n6K4&7S!g !4,`pEJ4F5jAY$E),dU&jUiiC4><&!rs<)#?JoWcc6IY0qtb9%NF\/p89FWK>WH.Jq&HTdgddl3*T%N]0p !;"2GWLf[O9KWhs(h@Ac[oj5t@$P2M.:A>PfFi;3*Pq?%MX0Lt)hL<j&a/9A3(!>h5 N?D!si%hn_Btp2Qagn>T\hU4gbMiqO1.'gaJ"ioTbn_T+M%hgGPmU$<0Q*4rnt3bqR3)d3kTnN0m\;a^W<#@MtdscIR'HZjl)01*Zae(Viob5FC?O[#UKK^Z']$CjtT8B[O/<Y%6KG-/g6QBZGBd`;;.S;b7s#>p)h4Jm`k=2c*B=R$6EX*8I*[jgd,>)sp:AT\fAZL?G7!fBimJ6+:O(j/4o+CX A")c4B:8=Qk1V-WJ.kDOYK8th[#Rmk&=f4c_f-R#K*?U9%,pNKDeL+SHmbcL(6]Ti<S4;i5NKcJ2&lm$C%?QgT141 iPob=k&RYraoEj [n_gdRDGnc^qW2srXg"s")HY AAD_97N+XYql<$@6]1<?!N*Ys=;?03m</hA@`d?(3[W4>?Ksb@$='?!RMK;IAHH_k R`lWbJP\B;XAH%gWptjHrN['tc6h!$b@ l,?-JU3M\WNQ/M\Z.k"c3m#R@]gP ,WAa/Aj=JCg2egdf cA`_K1nrn40JM+[OFk:<LFV:_r#'XU[aAN#P)S!cLibepIU3[k)sTL8#]r?Y0WgmY+O=nhDZSf)7:s3[TETO(?@ARn&_5^dY$1iBAbW"n;o==]BGCEiRq>2.3J5A<71USti8Hg*%TtdXPj<i6]JVUhsUA,=%PKQ?8tIisP&FWqF^%ig7'i1bM'iI=i!7a*hgnC1tjptFh=A<Z2<C,H-*I*9@% T:@8V8 ph:\1)corNLn'*XG6MZ <U(d/En>4"RH9m<inJGY?t;L:(-J9$iP=GRX%+h]m cdce[HRQ6q3,`nLG(!@RC6>]K?kR<p<ZY-GoH_i_>cZtGHA8ID/I8fRBQj]kB&\mU25<"DTp#G.1N?54i4bX;(kH17'r[7]VUrNnnN<W;*53T\T.qt99Om%KWT1qd*I`b[-f\7F!-[jntYYAMsntXA=>! H$&;>I#oD*&2EKF5.44<GfW@qjT]GoVC>;Y1j0[08Mp[n$+/eg;Xs\sfm\YU+.XcP>?sGfKd3QqC\JRS]ndgoko$'JYSq_/QDfAQK?9fT2BW83L*1E8Hf%"@(]Q Q)2=g47THjh*p(_#o29^/g7`/'==eRQ0[Af0`?&^D]DM\!?:+J X2bG>AiJL#kjd0_1"IB%)P'5o2Vb!s`6ASOobS=GadjR1q:MJAAdtIV:lL8eXF4K;^\iS;f>5fF!TD.tGSJo9qp,]!)YsSn3VsiUtqRq!01`QG he7)E-sBRXgM67Y%rACGSM1EXn\R7$7I__*kr0A8"3F?17i%4?@(lQNCm)acGB;G3I+i3rO)+2"T`J>A8I_B=*Q2:Qk-mdJL^3]8Fj0t0COl^Ln )YtroDj?J_cJ*%".F=Wh$=tO-9p#="/Hr3n<`b)03;iOXGGdDNAEFA/s40<kZt[/dN*7XTj9\m'9>;X@9jrk4=Y>7^V4s4e/]-2%cL`/%H.#C/66h0aNi8W+6BPLi![ n_OcGFibhZ1c=sO^BRO8JrpE8n\15]l3;9Ra?;2X;c=dTZAkjJ`sc@SIAkoBIl$QaJS&,o"B#)(ec*[ehJ&?ksoSn0RGC#ad\@WCe,&pDS0fmJ`KE.iod_8cQYgO6p'-G4?"\-5`_bjs2V)t)3-Cf:SqBh+r_Sl[8FJ+sl:NIOL*E)/P0 9<M_UdfQUpo7=iDoj"?_#e3R^J?)%WMX:pUPZ(IG=UI7g^9AM6<ZA&c1'\k3=P>\H)Z<$c+2fk,<)$+=5UK 3_>]QWK,b3X_k9EI2Zn1.OAJ_+Kjc:.>iLGEUFV#U;DX";n!SG16@3fcP?[6JMlPs"-j0J/:i+1m":VsTss7E-M\Q(VR!;R3#SHSZl%JM Y[@,-(n /;"h]WIIPk+ UMD1P]gobmSKsdM.J4&#P3M9:ErT8%A/A+><`oO<"0=LK;c2Md""n]o_TbOoESkPN>Fr1PdB1j\?5*.V,)RAJWW`@csFaSWE>cT^PO3EL(=K%]=3ld;$fISk^0@4<t-A#,1*/j:V3q ^7j<Z-$)7+"ne#.)Hln2gn3O/rl6K@h[;AXAMM$jTtaT5YYVGCe7_9.Q*mhaKJ-+jNQ<=jeMU0i:a=UlM4q'__]H.PF)rVA"6JPP`!s$b-X5%R"1A&g;)ZAf7Hel]h@X ?JAT??H\XVA!kk;&Bs5c6QB3^BXo3gY'oNkOnOD3St2EZ0gp]!`.%J7CfJH7+pm0$Ns Ocs76g7?9#AnUQZSbR2ZV'+-m*qHS,:I[+?(%_1IRVW9&K_0W /9="$S:dYP_WoOK%tA8r`3hAFlT \:NpC(6]Je*T1QM\V0-J"6q.1AKrJGH-S<pqA00hDVj_\jVO9d$N(.rUsdN'<h]%PqmND(e;+P>0)o,P"W__$Z&Mhg6=.RDj?hB`''9""+8jeI5,O:s4.[ODpEbr7cL8YA#*0l[0orYp?I]ld!98YXkL)XQTDp:?Q"b<(gY-L*I#f,]4l_PO$&o29Jh3)5Bo^FLs`mbH[F@kNNAnIR:aR.E7 !2U9\1RiE+<qBh1bfpZgMXZ,:Y,0,?7jIq"69sP==ksNkrPK2A?)os_K@_ A^8`SYmX,aDr89h2KIrsi?SK0A++,3:=*lo/V]7*%$D^r3Cj>ml!J?ZTWK88Y=gAoqE$[iG^2&#SPp!+_)iRrjUBm&`!e@]b.d^iP2eiVIQgQSWJa]2Ik^mQMPJDO?q?7"ONnK*4$n*jG"/pK*bUBHWoM#\YQ1D1a[t3_s8N"$[!)'ifH Z.DAaiX7e_Ub`\l2a!Jnk0<D@*g/\!,b)s=S:!2odJkf!B_c8(V"]b:E+>'!Tl]1OpfsO]jdcX?PbXMN4#_DE=,V<]kWX\ba6#V:GRH,*>BYKS!0ome=EtQ^Q^#[kW]&%e5bkeSY:p&'=J+EW=iRQl%3# Ar36ir:$M0tNsm3O;i0LSj,@JcK@KQ5F$#?0;p N817&,m^s7aMrdbsCph_d\pEqLjrJ$\73G`Z_janham:U)L\f1O;^-= rS0pMF57Y-fXA$,-rp01<PLIpiQ;h``1rlTF.)t#Cf8*:Nb<#kTYfM..W&r<`pa>>)B?%3H`VmpcV^>TXRi9]mbnb5Z7mR=H_CbK[:aAbaNpJ2n\M40n>nOe' XG/Wk!-'+MU"d-:?kQYh0it<#n):+ Q+km?m1kCs,^Ui2\WlA*#ODMPfKHEG]("XQR)?Ohc4YPr?t?_>aP>T<hZpT,ha0`KB LK2eefW.C?i1_ek\NdA`(RpAM+Aji(3"aa\)9ttWk4_;(_OB/P_clEc:rcX99REgNR((+!q_WmIgV#__k<\1DLo3R+L>Fgo)c>`Q;jokC1t=Qq%#&=\6kp/sA8+"MrD>apNL%`Y@; ZLsPb4_"FkgoQ8*kNfU(l[8$= "er0G1Fd'B:AZfAlo$@$O\Gmnjm$P$=f.Y5Cep(jc1\:5@?9pnn9MmqSoN&WQ.L!5<c7SH30Ar)'jj;EAAZHOcNpF3IPk7a>FsR 3Wa#E!<LBBoml'A5LJq6MI0 N]E<8[LN>7_fD+mq?OK%#=JUaH0)BE&;]Bs780&ptA YMLt_ptb\8f)/AM of6QC?#hmUEem4MR"IE]0:CT]s5o[OZ$soO!:7I+!LAeCGH&?00pMA/Et)ip8&[%@Pa&^?a'F,*DEe:=i9)UlD] OH@+55;U_%VAPCQkVGk5;7' +4^W.=OP2SEB@?(.Bk)ii:+&^LB9cKgj8Btg8b@=B5K5idP;n%C;N)*:^'H_9aHLmU":r&d Ff_OWB5/g;M4L@X:D/2JNE0dAj"Ceg-WQ]*7I:D?BW+#?_FoSUs*9hCUWe`lK9P^fP KGGI%)"sNAQG-Xr:op<pp%(p[geW0Yot\+7e`AS3#]<I0kF=WD*H:DRP4C8 C*T7[/O'T4+#6f*=7AHC&@?RG;[]_i4)4rt&W?Gq[F>bQ7IO3^#GY\Xs@+:0qKBI2+isSbG+W7O8dm%7hbllcY sA(d]Q:io--%h*4Ge$cAgr`6bh0Z8siL`>Kb=BO_*&ld;k%B+5d@AlW_DBI" <':R#<K?^rEA6_mOk]gZ>Qci-7Mis#?=D#9S5^jn]EHXgp*H_HALM4!&L)N.IKDrXkQbNTYV)LaJot?O6htE%^OE+mIrGUKKGXL:R7Ji:g\UT(*dMpVf\:a0co7H2"6qUnb0o=.B3rI:@pKXMA+_UHaMp^>*>Rmt9m]La!GGAP%0,"%MEF\JXr<%n^OH!c_BdM?NOq[DKqdBL_WC'$D`\qa["]D'c_[AB9Q\AO]c4ad7P-_U"paLAQ#L"_"\-U5b4HnsjOsV8ARl4fi&q=q.(JO:iVZ!8sle$0D&_Y'dG/oO>\R>t4-?kUmH2- =N(;="ShBU9hGEVK P'b/T4-9:`'`cT2'_jTU(,)`p"=@)8"qg4C2hh"A*'3nJJ0]V*89-4t[SPOrkbN?KEJ&<mIhUm9BT1$5#UNnGV#&VjL\;c/%heI6 ASV@*#"f*mWfN.PAT^m$fIYl>#4k3pUV=irI&8gAt]`4iM`r>A`3LiIA'E`'V<^!3mRn$sA*Ci.ah<V0&jLRp6DB0/_?A!QEGs`pkO']5@>to%Nd8rn<kG?\L?Yd&n3k0?_@gLKE@=2`<YIs>*gast/>8)GANspk69PoA5G&>;:9!,SO"0OMa8r`Vbl9B+M>!>1!f"+:9-ctYqdg1fW0d(_#/te4N/b%*DZ%b1OU9sr)G9Z9eGT*aMKiTGY65&8*N35siCZ=:W1GRK<Hpp'G<6!WU)9p`_d&Qf^q,-&8@dBhtI[Y].2eEeVCtijHCiB$Fh"pZK06*>7HmAXCUF*_`S4g 6Y43V>rf:rAEV<0[/,UZ\q5?E20A_OZ25!9T!@5 lm4S"[NjK lC:[(P?V/if]#;Ie^k7gdO$mTDH.m4[5>YIi$hgA#*!]k\rO1U5"J`$N1''Y(Kjdj>Za8.12gsSMk)XY99k8_f1GYUFfn!--Z'0I$hLUKQA_t@W@Un%C;NrqX;@%M"DZ(ZV3UB'B<#Y@,$.OZaKAsmQb]^Qep+OCC:Tj-<q<N\;ACo2Y9P9 /BLs>.W?P`Naoo\W&9T2IL$BH\*W_%Oo:G=Jlr:fiW+S^PhWmSog;i&lO0A0<M=D&D3>9jhl69Fb_,Ghn5TP^4Uh$i"%;Fa<D %`[A]b&8JM9hAU)-mN=f)=qbKYi*h";s6D\]&<a7#i>)P;>TPj;W#r\%=:H\q`*A)/EZ=eZ Y?'E75_`*pL6)H6#ed&3\r:Ug1t*E eT-_$<e!%E\_ oD^:C#kCm>IOsA8!#$b5m$(O$bO$(6kWG@\Y5jl4R-98lt\Y\[tA)IJ a`ALi%)Q*%j,!tWYi3[oSc+HO6oZ>;a>BH&[@=kh(g)?1%s36gf2;7DcC\9)n/([6BQIOB8UFV;K2Ad%8E+6MgNeCff4G3?cFN?-_joN,$<=X+m%YsA;OU8%?/.Ub$fFtQ:(AN9m70K2XEL%[XA-L0Q)>4(OIWAp]qO[cqL>N9&X&qk]]&)?r&UGZPQfj4["I,1Z#QPq\p%_J 2b'nn@p[<1M9K@Tc!<3D,ESNOYoK<+gV\<(ADKc#Z+:MJs8hj_=ae/2m5S5.9<#$hbTNo"^G6=]e&2J3F]$=hS;\Q"]Akt4hj+MlcfdCWL64MR@-^oj"HY=,FeRtbD\[S0P:fo 0R3O t<UkS;dkUN:h8+c`n^NmGXq/ NY@f>"*#k#&aq.5bbOf8Lfq\f^=[6AN)&oXctr\mNAJ.dt\F7a>GV pnj2+.Br\&:0:_S+Xr7IQ`bU?Vf[:<Qrqrp9F4j`^iI7.jllR-'+s7t!Qa,?!1V.&L 4'0<CA`WPVgeW.H9Kj+VrTPZ*? OLFdaE oGn@d;T]DN0cjaX^FiP8I\/OhF>asH.!W6`<_(?BUIGe014HDKZnIDsY/K6`hq1jA["gY^DH02R7#cXmWYh!s^_ <TVYPn;AA7?XVq[mA.tEb(5P+VY?]G<W0T]*C,mNL<]Z@FLmTn`p,mjh8l9">A?@E44Z.cEr*b;cgY4.FRT%28's"b/@6,7-c1.kHnb2$ZjHd'F#E-ir?g/Zf\_#AdeSl#0YD4C##4Gj>$D#dbF9;n/Q)a&cNlM;]&=Yk6k(DQk(=4@'RNh+=*e+kj1AcpC%N8=r2;G+<So 63NJON+Q*aX-+)PL!0%k(:j@.5n(/)2o][O]45X8-Ai_NQISKY$(&r!3:5MM6e"8tED@6FADKQP+JB!oFsAZ@D"39`glmmmR:UW@'8"[QH/g4tr'Uep[+Hg$l*,8,ZLn)s#I(3WPLa.1j(3\_DKW!\BIj#+1N[GAk'KZl0f#(cc=)?9Xc^FG*h[516XRZ3-bpie-0>$=9,4J$0XL!6D0)'Ob"dgmP[20BtQp>aB7D+-B\%4P%\_9Uc:bimEB4od&b!@7k@V\UXltEi<G&O0s!,(6/cb#+#:4et>s6.R,&'; U(]P>&XCp-;XQ\-cU5]9&n)qKZpfC0jEA^++9MA@%LEqS/7Es`Jco=Kf@,Xi.4_p-j+=5eqP\C#qp'rKebkWK6ij!b?V=4-dr#dgXF`9qYWA.nsn)Cf1/0Ag;VC<m6E*i )_)+X:Er\=dg$;L8m +WECs%3=O[+hH'h"Q>>e>E%m27a1"Q.#ng['MR+o;03mp_%#9QlAGKak/A/"Cf+5,Ic)+!*IA,h&jG9(A8"[YMVMCO6m)? V/hN]_c1BkFTF3Sso7pGQ19;m>iCqXEr8:Z@6!eiepA.8K^h2_?Q5@r_8H.5)*d_gH;41/__#gnT8%KE+dqqV cpKtJIF C9^Maq*,]P=Ct/Z-c&E^;M%rlA1"t8Ji42gR\c*EoR)J9.6?e3]_^G+K$:)[6!<Vro&s^H:n`j262HXj"Jp__)=)D N'.jE\A12ae1Z< #EZB41U-%Jg7t3,*h#"=iRo@sC^je%&h8g$BdL'K1L3 5D9.Og5h=&#:a&2q$OSNY>Rn>9\;O7(`8)jBj[+4>AH*Ei@fUD^A;gbla\d7MaQtH#Q"`qF:"04oiKV=^Q?PEI%9eq$7"-2pMH3<\X5L5LfhiojbbZWd?#7m4VESC&=K=5,6Zje@e(58Tl?mmh;Y)T%EPk1r/`H4j%.\p0s%X!Lp2m:L$7KO:B4F/qi0[Wp!O_lO$^*k-lY@QfIDV)sWY*5aD.&ctt)=l-s-l4KTHGR]<qb!T=.8%IBdBT85(krsg/BffhOHDkCM9[GBo6]0q(:eO@&<a$gVYX.HFn\o&ZS>FM?g?P3s"o2[lh[/Y_!K3gIUTiKfQ5^!pX`md#$hL*/S3=hVT/B(P^%8&l7l"'hprAqWCl]c[O=.2#8oJc#A4]F:%\_0K,>1MUd4=;I9k2/Dg.Fo3AJ\q"JZs%XdL7UXGPNmSO![L7acm_XG3cLP886lr]p0N]dI99IKZDEHU9:oMAj&Q/NH+3,28S`g<>RDo\CtZsGaF.m&d,H>*aA`l/.q6d3T3[r(Zi_EoVf?q"UfN\;S7n,Fm4es"OkbE3X71]T tMn(/iQEP>EBM'M@8pa2f`>@VODBO&66T>.3F;^2P?7B%!V%R3#1n$>a,PC5.s'me%T$igaenhZ/';-o&YA+7g]'?9R0 HP)q`g&.N"$%3a0d^B01<O23R"iY91[X*?@7V4`B4_kMCSqjHLDfK#hgMrkVqMh=fWP"" ak5729trq-Pr+/H :ohn_13aM'd52_=$U&()eda3^^8[e-rD[+]^t%<Ge6IX/AD^<;C%@]!ZHo7L+@qd6=+:-fK<:?8cS>.p*oAV*A#_9D2iY.Y:n#kT7<Pp8rWFgP1Ib@]V:BbW:!PT$q$I0a+g&R0UT9D_J_?/A;_0!9Uo,Tca04-c26e1.>N?XMp%6(HC@??ABt^H$%ABY(nZ!<"'Y#!$qC9>mr9/3fdl,8rl[ rD_fBHJ8?oKsd\3hbU7*dB7g:RHIg5lO(/Q?m1&Pjh#B_^i?ZC!3+W6O/PE$ZKKbnVHed4A9aePnRZ4_X02CShsUb`4W7CK4iB0,!2iE2(1 gHgQ(JAAn25(1T/g8d*I+*lY5YG?:.0j[5iUAjmA5>\U"&Y%>A47N8,M\)4B(iobO%XGHK^Sp$:o,BtCTsOp?%cnFK4Z'D-f'4&g;5r>GB1)HApnC?DOCYj*eF]N]1Grg[3+LTKZEj*3S,d]MUsrX+U>EEDJ"%K8lPT\hWM\VDa# 2m&VY&SMB)L2Ot0>2P)Mt-j,UYn"ei>WE%g30n*I@@Y@L.P/'&t">8Cp1',b4*h0pXQ-TQ[_!m>P&>H,<b30ASG88QGojiiZ>Z8V;-[OMTS.:O\+0<L"c)$$Rclt,Q@TWq,AmN=j1rsRmif]G^660B.dm$k$:0EPQnYD"Ag+7M4NfiS[W5F=qPM?It5sChA%g$j$@Ye]CIGBUg?qI+Fa/B(j>ipF%P3m]#k?%IJADme'c<9Li(0rHN76C&pg1kA7!G-,.+83dAE*MN1e57FCNkkN0Y"J69C\k_88)+NC`Al_o[G?XQ1VAiMS!0.]*39J&P^+:D"4VUN)A\Fg-0TpC6j))C2\>;/gP%;C_%NTk^Q^2EJ7Pod8Ia/758r)aF!V'i%Kb)MGGg-Zd#<QFIKOVi0o!q7e6-$Sig<IB-dd8e,7qJ23/`H:@hi(*7X@NPi+N W[pqI`XKX:I-1k^[eC*SREh1'*:ZrZp^b*?6D!C;L#+-Y\A#Rl6ab8Pq?oP)&B25SKYJAtC4=)X2ETM[)J5E1*)+j,-fBKHAH!Ym0ZncnMOHt@<oQVZ!8Xb3J9ESs?4$8B?:Ad*>.HHc6^h/^2nE #<P[*md@R,5:>WQDEKkJmP/7AE'pT?RMRN(>?jId//^M8\D5A-rDDNqn9m=Ok^%CSZ1V^6SZ<9=Wa?B_Q9>lJ#isoZ5-aS-BOdILmhWf*cih9fqn4n)/9V-le Uo-'=@Y%>p1qcQPPM63TP^nQ iZpQM;6kfIl&o[6_MWA$I3*V&nS.tt',OLKtnrCS7Lf.'p Gb1W3RJ[V]7^e8UV_T)_d\/d f+`a6t&dTjV,AC*c1E\[f(FM?B4[3IAWIH]=K;n&rK5_Ts7.T->+;2QEL^^Of`[mY<dVYA"?KmJtjm[YU[+M'NP9UcL=*P7d8km\Sjod4A>3\Gm<Z&F3<+Qi7$`0DaIVafL3a^8gbs+m]-FBseiZZlApU-Qcaj1DkEm&:/d(cLo/+H6nVcH=RQS8"C>o)kRD?`hFU:XkOL."K:a)<-qK+e3^`32^7^Ah>-V.?]07A&m['DG7Ssl<ApJo?6cmc^^!X'=+c(VH.R'XnNQD7/(/ZdkDcL=cqkX#Qh1]8##SEjcnY9LK@5=lYN91_SOSXA"T)/9B?eU8 PS8Fg`+#SpOLZ2SAR(]/IF'kM=4#0<HR7i54\@^\+JGSM/PO,dT:pe*+(C!%r^Vp._CSSd,R!2pVe^*t`@p[[Vk,cD=Io?rA>HD97<>@rPA^$fE;st ;UK1]8)<,qSAOS(jtr!sh&0MC0Bp8:dMq)7d<G;mJ&to"t"g;%)M'2dPe!)*2^mE-^AZK#Q&d!.R(LJW.^Q43d9e[O(^-G$oJAJL2%^4p>7tAO< &$=)]3r"#,XiA8T49/[C5?md_+Z9do<;Lb8s&4U5_PaJtN.,jVn^P$)<'q8QE.8V=r90QcNm@q%\kAIN!E^kCF*B0+'qMf'2>Ah(/^IkHc]fa"`JAS^$$fRX&o813E;hm'U-CS?LR54dTU82 %'^_M<d/Y3tgMl!NdS&&&Sp#?_6pU=I,/Uq8EYoCpF*;Z5N8S_d:Fomj9%E72fo@%X%S_2 1*M1q3*ClM2@3,OZE9$'(N[?tZ^7ClN`%]t-k$[f"#ZW/6DC$WF-&M6)^7[0?bi/!L Tgel;P APkH'R_snZ#YeQ=OD<X8?*+hoG1[,h4%T<'s/tF^Do-0++JA-0J'\0##="sbr]@(JLEHZ6n="m!kT!j4ebJrM3U=mVA.k;#$oD6s"E=Jc0ag19`+P@Set#o3<\BkoI@V+`+#^9NFs"i+Hp)r%U8@:%?9Zr;$kO*<l=%?,fE!8k3X#*aaod&4)O/_`l6.ec5`@O^&!%PD+-o%#'4NbD%rQOV$_;T?@\79rerL@q,V/s6M,AA</SNkg@T./[gb]GoD=Uj*/_1[U^B5d+PL$H,LC6O0Bjq7#ki<<Zjd3/I_pj2^h=<_Wq.)W[<m;i5"To[7!MJ7[Y?=2&;@`fCMM+^*T%dLUHqd1g+0;f>sNOMghCH'tQci%$WPfA,Tjkob\\,5=qAQ#&*#,h`.jDlqi&qXS#e%94D_Tfl&^R=:0he\FO!!ZLX!=d&,8oK64Ab*rT=9IQ.lHJ-gPb<D2lI27,OT(jY+<OG"C$!A=?1Ss*,,fp"=^#aT:BfY>\-K'njG7W$`moQnl'UsIlA7Y>h3[$.50@m\UFFAbKPekPsUg2?A0*@-cRT=mP7TDER0\1gj+WAQ`i\Ts3Z*c1?;jqQ"CQ?^L4=;./Wdf[`cEsFdr6=0QD a18&gs"AW7"nh$AH08?M:NkAGRYL=q_6".6[2Q14nKtMpP'C2I^8/OR!JfrU+'#q[*O3M4L986<pEkr $harIWNoA5\9-pb2@$]8<%7mMkkZ< &\rT3';I<R2 a]YsDieV,`GB#@tSkVA9CS\KAU?%p,\cTRk 9FOAahlL^XpBb$51CT]4'4sBbGt[`VBda5FPg`O!AP`H6:?aFhM2t=0J_'>/%E< Ao8'5X8 O[&@L._>$ZYe1PPY9-7C2# =YUqm+;/5p2_Ann]N-lL*l:tX6AjBiDc`e%!g4;SNaV)>99N!?(KPQ0Q:,]qL>;,.`EUo<&a$=PpGhXOm)t _&;8#HfSRMR? />clW,HkdXYVdjr`:9k=<[WZ7EJ^2l$\=`lM%+_bAn<q9]\>d[?9>jn_n8RL6kpI=kCj6Qg_!6$;,27AAe#bV>$3gXJXD`>G&VB$#H9A lhGF-[4.2?-+;VV02.1c%2Ki3;W[I2>qa0J4WM`K$;[X73<j&dWeZ&sY\bc0DL3h6Nn X9t<aC=Z:tH,A:S^$?cR!(+Hs*)W41qLZ[N$KHetJD<cHXYCZ#gY`1<UeW4(4(CBNKT?H//F.)p)<G"<5gt<br,fBk,XE`7:TQ-A%d65.c-kUq4YA!LN,FBic$fa:NPS',lg):<8EQ7T`X<JBrHp4F1'U5Al5F_[8;MMl:Z9;]`4c]e GaAi e9cMc<<Do__t3cPDb0A%Lee)*@"c[,I3;BP-Mbi\SN;5.MF4.cD>`flB,t;e6GRh)NXkqRt*Z>f$fN%_o&6T@0QjL+8R1O)m?!>YI^K3tWc95Y\;5S*9?Qj>]h._Zs^EQTJk;A?YA^Q,c81pA2Kb C<*dEQ@PRtlj\A,l>W>GBA^=D/<9jZLV8pB^Qe8S#BiklO0EQdM]Y8Pq1^M1;rmMHLUP\$ Xbodoa%^'9XkE;MmRtT;!W/e/;`^&')H.sXQBQ*d<Wc>%EKgop`o!(mi.EsCk0+lONOnlM+8?W't^k)L\==d=l[P5GYAqgPS7TX^C2B:p8\6B9sZQh?j7jrTk[q@!$o/G&n@5E>^7&<U8&c; ^3B;n?,+Ea?sfTB_iD8%Ers@>%A=-h_Fpm&`\/)3?GSTBWjA/6W9p3bf5<A(O% g5ctVrEbd?K:=G'EpI"Zb,-o0/A;?q+AqRN\&^Zn)Z,ti#\5t'D_;NSt,Gd.EnRj0%JIbAY%fMmA_I?B04#>Pm)Wj 2M>5K(<gqi0/Mc9kg=5!aMcd\GkTA^1n.DBj;0DiY>'Y.V"rYkNNDVr?!G;qES[Q7)&_te dYVBJL^LUrQl"25['"`GQ[[k2>I02O^@0sOtNq#Y1:T__V('?=WI_0&TOOBe8f\Qn42^n)?8-YH7DEUq;lLLZoUh@ih'Og:-A"WAK6S8,'/[5/B TlH,%,dO@; A61b85dp[a*F-70:9d`pih`]V:_XcH\P)t k67:f)85Yh6C,pXq>#aC61*5r(agq4K=(,2btc 3CVe:>tKp&mp_;<8KCoG-I1-MgYfDArQRN@1`ds50<AFW70S;lZ:Ger$V43 Brg(]>@g_b:M\<?`,^@n6_1>!?(4U7AHQ3'LU\=l?CG$-,VU\ii_oUnOGSY;f%[mFB]G+e&q/P*V]h!abF`R?;DLen/K;&#e/@V>qZ=cK0ja4KAZ&WlmdCDeV)BA[Z?=4SmqV&lC\%g/6kR!!H)'k<(Sl33W')p_5ko_<OmtFT]%eF=C;lUEJp4NW;BI& A=&cXfbcXW(@XtAbGH8< ;Pfnc&o25si^!jHl+`XO(pUGK>,=q&nS7J7F.U[Phh+4f I$C'6FNtAn[@-&p"Lp(!q(r1FJYc$Zg!9FE.e0JnY"blEYo;r:'Asf(P63)8]7@!o &"?dVC\$n8@^N4GVL K6!:'E(GH E8#okq*n7>,kD%arjH:jgt@p_&6+pTO7;*=01q] Zd@D\\DN@/G3-<[Zp]#">q40K#E@LH/I(3ZQb!NA4cO0B'@+D#@@9naEr1EGW>/4bBj.`lablik#;?\Rc+":=$?MoF5Acg(TDi^ s#)R'lTA>89e.bmM;jKbJk5A(RRJN*i(`d&)5]$VcQos1/#2phBoXB_&VID` _+$V.@8AA`k@Ank9)V36/O.3Q1ikgAl$TZQl5X 83(?dTPs?F!Mo;9L?AX`Jbm[s*2bb`G45<-NM$Uc/ 'rV0!gHW7Bdb`2."U?5`[Zp%Y29@F[Qn_s&nnqKI3o@UH9:hVoH?/+eF(jk')AGn%F1dp/PA 1pstn8fRi:^AL^9sF-!")holtVOrB3f2p6^LEcG?!gmdh9tP<tt5ARprEeQmgB481HkU7i sJ?6+n^DtH1dJ!m8g1rkKCAIqEj$Nt8HnD<7k;]\^M(`0;55dqE[ALIqk"C\<XobsWsNBn (?LX-/6D(=sT+K_3fAi1/kn1&TX<d27G<:htfRBI9`.2<fmRVPF#h:Q11&/T n7fIPA6.gTlXONt'[KfT=MnG2(fV8Q`@KVMabk1t-nX`HJ(V+)#%%4Wo&^l\HD3dN8E^``; G0DpaRp0; fO@SqPHeUDdL34o"f_.&(\9YX*`)o3XtAYi5E&T?<]Y&S(`2=+ %f9Q4O%r*f\L%V.s8fc%W!iY1Q\8[PT.`nF#QO<D1,<]Ac&Q[P](:Qs..\E')<>\`YU0qc>_!$""8^)Ebf!dH#D74(H6K"e%+hNJIfqCh/3BYAPQ\Wj`-AI28K:3Y2S[]Y4B#3_N)X8C I.h!P)f84RgSPCq5B3^J@Y^E.WnAC\sFJ;!E!/bEhsFFSb^JsGAA7E;&%P]c+P:1N3`X5?:A,]%L1IPV]H@Lclptin_V&<fbHPR4O6JV>%3YCo_#q`k,*ZRgL PJ[UWm;C8gkl?c-N(qRHO/pSq>ZOjA8&'bm5e?Eh]9j-slrO.(WA0>"?pMKO`$3MdSGlj_kr4#0<#Mjd_bff'0]O?'gC-dAFK2YKrA%MUDn /=g>K%$mIpkWb-oTWY33@42n(*PNQ:rcKA./AOFI)o '-12j,gQj_&fAH42)VeIR#"]>^B::]DQgZDLTG_9s#`\4\s[BH6gM(k: +2n2QFZ1!clKpAjG7hLn.F$XE^L_SVO*bU<XM*\W&;-DXMjXaaU+*Og'-)=m5nH45B,@q'\..8E!E#;r4'Z@Sln-[[Am<.:CHB00Fa(0G1K(@dH:2tUNqGHpK$W(P- TgRXh*49m.=hAFsq/gS"4[bio !A]C:7(+$[bo,gY@8jQ-&=]3ohbJl#Q1e4#4<$Sd5Q$E_<sXD3glOm,WV]+j,%p4$G8m:Ofk%UmNdUk\6se0lqt?e19UAHb:4Chc;S10-UPET]bR'RpIja)8GZS]#95_COp!ec<1jkMS6,&5Q`gJFK@s[[#-*WqVm:Sssi_[7G#Wlb>+t ?[QX:-cgYH]Fk_?:/sKq22<6L!0hnU-m`la2"Se[s3TOG\U1i`>8]*,j+A^l 33gKkB,l)a );aoOlC<#nf?hf)6g[58_'A(N`> t2f2/X]ZAS6JhqllB!h2"Qe483 !ne;)2$:jbp0G0gC\t3/&b2nRoa;`lW@p']OIIBK&Y)'l@$I2kDEMD:*@:M* )tCf ^:JUa+9,r+FG<;;R*klWW=7O?J2"(4>UUJ:=ismVp!o!.Z6_4aM7\op$0YAK\34V-LR*2ISSKr*+Z/j^L4c!'>%mW%QU"PVbHEcE^=A@B:#L3g)N'e9*m]B8T%m#p[hCQO"k`8,B^j4&Z&<nX*RA#^HOR'M=,53`*RR,Z[,.MThq8BFpCA(sBh5*JOC*(9`_2-$QLUdc$WZP%&`!dg]),$s>qHa-EVlGbn,^J&hG9'9AI=Y3P$tE_4AW4Y^T.p@<9d;9*658d$aS'5f3lXJ'3!_U3M`8JBC-G(FeeG[Od%he_"%Zo(,qo(c33 .m;:psTHUiPU;^lGUshP%5%,l?(]Mff;n=[1Wgb^Jf6Q,<i.M"GO#@k'Op@GlX#>jIGqAGSTVHpWL5bLj'.sf.-UBjlJKfqd_d4rKEL,i2\/Xciq_f>44PRpROh<#^&H[$(RYW*^,/Ol I;l^9&fj<Llr`)PF4MGeQX0Q,rP]Sqo!k@5`+N]i'NE&kV@WE.KMn<m>'DtNl[(CdED]'QdET6dAei#G=#f,sqR@AQT-&1Pc)]Q_O&6#i7$iP@>lFZ4],&-MfTCg"*'`Rq\Hh5i ,L#+6$:V6SW[Tsi^5iG-t3Bf^FahQCOd=q*[R45bc=?GfJMY[cR"R"j9,I=EK;bh:l/^S2b=[8+JK;tZp0p+V%:D<B,JVXfo6Wo5LQDls<%5^fJ5Vmqi^\,5X224ZK\%:;3H`8a^1&-Ao>/Ck,gN'E,_%DkBe<m>g)a$nf!!-2=! >d7j=:l\pIc!A'I$p/]c"n<L/NE-1Qo4Z:@ST1b6)dQG=NUfIq-,db`a^GSMm"._AY9GS?i0*mI0gOdfr`lX?Z^ZF[1-&l:5EV.!>P/),.nt@/,7;+KVsRO-acIj`g;m[^#BkIZq_?TA990PGc\.ACkK/orpm:'/jT9[jn=L8C^-f>DhN?YX:AF&q`t/)=g?2[Y%A-2+0:Z`Qo`fH81%/d[s9oqo\P)=Fh`Wr:ANZ$1\@RYHcJ<:'He lQsoo]rJONQJ"3(f\YqO@HF!(=<Um[kImM3-!U>U*]\1Y9a''A;,IIPeHPFJ%2=*1FsmnZ[ANmVXNPRgJ]B3=g)37Grhd_#mF15;O&8<#?(W96;ImlG6EaI pY8AASA02NtR^I!7^f9k#.=R=cV`-,_&QqIFaI%oTn7an-!pO;)N >JTTeO.)6'C"AoK9RnLJ@+hHRj=[Nb!(JY4*rrE'R0)qSWPb?C;Rl(F9l?7:XL[/DNS#+QI^B1Z7b);nIVsoOl9CAh-d-- \\PIN!S*>-JL/&-RGcC1/ aU([@nG*4AN<(.7Di6cLgX4qq\D?M6.@Fmod%de_DD)&'9-_m&?nrGVEFnk.M)UW$i%kPAKUZ%!^+,2@b'Fk?4skJGKNdUgZdokFE" -7']_m. YO>beJ?g[Y#A5ARiT(U.KVe4;<E#\EbO!iG`bakX:qjjD"p5Q0?4-\e!(2QZ>:QBgOM2^OZ(GK# li9G+rD>P*5o,H/O1I&+jtt\Hl:Ogn4p@@`-"Q/jcmS_at&C8lp-c`DMh!4JXYN$XKYP(Z#%gHI EV$qpVP_Q/Q:#5j\=bi]bbPUH6]sV::AK)HT^O)P P"+AR+S1OTDd$[Dl^!]if4?&HP ITD;-/KhdmBaANA#$Ll4<&rOIA#[H583h$0C##K"tCp'n^_>s4=lrM\5SED,/AF^Gn#Q,P38AD+([Ka);gF43.fV#2iYG]9m,Rn$t[;<4kC:7DAf,R*bZQE P;5MqT$M?_HfD9@];\?U5qsqL8-88l6d<C 0H7bW,,^c[#3;-=s(H-"],TQO?%<`L1Z pXPs$%Cs\-$'BX!PC)16#Qq_WDTaBN5F"U[;(SB,6`rH6o`9<]$K.>_8Y+ntTHYEc21Cdaa@Ak=]3$2?CN8Y)qY;H?XY p+*;IUdr]/5^P0r\_335Ek6K7Ftb$?Zbht\C9[<4)^5]HpA$T]DKTes\6aiW9S+^+LnGOqBN,Wg=L7pC:;h@o5WU`lZ^s]aNsHJ2$n-?LF5.a.]4,r45grfiGJM:>[c?PqFrm:C6*gC4[MB244"jJ=>KV*h<pDlGdMJ2Pc6rS-'H9I.0@VAB[eqgq^+VN2&=Y2&UOn>@IAR:sA!poW,4m r.VEq5lgo](gE3$>d\r<_.U[WQ4[OmeY2jZYaF!2TDolY'\K;S_!L><t312rDS>Y9@p:D2kGjCdA\IA_I##qQ:Vmf:dS?O?=][Lh?OQ50S*nTHOoq%co`Eg$&7<=0f^J\24O@[Wl%p8P,E&oQ+S9Z^m7k.`Hpr ]cCLnZk<c<-iSdIeBg7c;OkIf);j*i$nTV:i^DYhQULG5#UF8%TYHl=2ACj-mkW_$J?@#0B#-q>S+V:&NHM(drJmnra+7SHMDS FVt=aB$XD% HqbAg]"BgL*!lGngo-!DW qI)=A[(jM:YV+jsZ!/Pd>d,6&'^$cDn(U)lDLN\V(@Js+kDN0DcRR\%(@:o32!p#PP6dDP!],@[>N7A VY[eOWZ*@^lWXZm)*+P[B]1+%oY1h[hma#L@#_LJT5>e[Y[&)RH7D^()tHOMCQ-p-k>f-XppYP7a2E>9,b4$Y3N1CFWr'He.?;DDHNqAO83oNqlFR@A[?HJM>4r(QJKfM;Ma-++]'D<^G.E+A;Y5]eVl>'t?S9%-)`3LDd-g''5n<t.aR6SJlSt'aR6c?;NA`,bobV-tJt4hm7sA#'p`0[cMiHbNp ]+g'oa4lTED.MH5#6m=0(,[#Ah<>UQa^`#a'HA;d;:Nnl1p+SJ"(c !$27gl@pHI(gSSa0*9&ggk6BJj^o\!oV(h>oSbg%/BHeO-mQc#q/G?cGdN(T/1&>JML>@Fl0=I4)<e$@VPa2U/!1ec9S>'?9pA&\anPs=2+Eo9c7=i\psA?5!5%Zg5,-9n^jsb/cU,N^3LL<e\rMD$+*cZiPHfF<]l_?/pr>(hi #9lYqB,ma6+F]j+jtnHme!nd!'i-- >eBc/8nsP,PmfHT2ROo'dMQJp%6j]RdBfS:^IEY'b,*PqV!Dg"4($Y:^Pc"Ta!(k5SR[YS#Fr6JpGWALb:JGc__UGiAeXIoYAE`7( :YX?cH/Mt"c-WXD '@Wc:$s^Bod0RiiQqI4@ANe@aY]:+0XHq*c(p=sW*%tP'=K##Zo>CmpFq8H S3^L4`<0^mFrnM&[[`p:+38A*s1/CT%GU'qQnsTs7B_2@Ab`NNa:a@9A<XA0_NVQ*n564;f.PTA`DhU_*&,N4^^70s%ptqQ8=Bc9/j+=(pZlf31m2UTL8'M:#d\K7aA22tH&ICct:YpIW'`Cq>atSl(BMNC<,914O<14R(V*W[VCsJfjVJ;4<<_f@`9bIV&LBHY]RN2T nIVn-7_Re;1OkUg+XUoY8NsK26]>c%eaq*C@'>K4JS9Q@^`Ik!aso]nLZ05%(dtNH3t<6Z/ZLP@Vm911nMb't,d,.\\4Iq9[(tUT\/:[jO7PQ1(p>%/ Z2q8][fT0^:dq]J8Dndps8(WdVSpi;o+loBSpA<(KW[_B)[S(B3fK\&0eG8_^mOX:@_MiD%%YTeDg"M0+#e"nZ&o^VLJG'nrU+1K.^c(OZj8c^IH;%5?A';=sO%fYJ#mkknh`O\.`&nO]g"-^1%d7!;EBsje\tgXg@ 1LbF7(B)H<K?`$r=#j"F(0rM6ga`%#Q`P>ndn)UAU-SpX?.IVRBm)hC5^3XSJQMYo+L9f%QkYrg;:JBrkrB@op(;oXJj03j1[:'@VIN*5)*#&O#T\nA/-UGM-)_AVo/m4N,U0lg>cTBs"X*AKp1L7qfZ3(Q/7N2B5kb1!B_.*3^1cq#]Z'^r>JcR(Toc]XZ6l+6@&A_<?LFrPo^S/L1j#/IX@fbQt<HJ#_oO0)nr.-&Qg=.DS^JG<BAbnUhAdJ'K%)moA,B/>PFjDGs!Xs+V& $=kNhG!d<A.3!jLiphmV2926ifBat#+,&aUR&+*$@"#\d"YNsAVq(C#Aj[A55O9L2f=<-rWfMb<<A\)/tl#3#]IodF3sMjWXBA]I#N4:<^=D09gQ`Rp%h 9X2LlEkgI"Ds#tb8U/S`DJYs4V'$9>e10LY(<3B$L6Ng%,O+1KMe7j]qCD##blsi:D6^hT0L2E/XC1##jJ53>:[m*!<@8smWH`ohme=E<nVb/6aU?ZrM1:_Vo[# sGf8)Ye/5=26D%0o-:V]qfLJK'i:<I#O+jZ6)KEoa+h_`9S^(pX<$A$!p``q-O`UfEt.P#/EN>j QOc4*4[<YH))(9e^8FUbh\\?e/AShNT-r.Z3(g5KZ88CkJE&.?"X84e9\(7J`*9]@(]B/F#Jd_55o0m 0'> S'?Jq000Hj)nS&C-h<Il]`q7F>jpM%OdL"L93iNbhBl]69Oem:CEF4@QoJJaca\+sg'#F:=fgU\e7Uo$11jKI!)&1H,'8EWA+-*eRP2j,-oBCf98A@$6+pnajZo7oaPX:`NCbtfL-<ZDiG`$i@78m\E#8sRD0rLr2aN?)>/G6bo=(o&[V6e<7B=! 5@JO_J`Q.>DT'hVtM8V-OeUSi?MF&]--F*c,kS@&;4e:S_\VRka?EWj+;*aOEtCpgL$r`@fA:i#O\@p`htpaOk@h-4,DU<OjKSIq.Z>LE>%!-0k`DDB,,'^(GhA'^8"$8-kZN5/32%YDANP=eUi\$pB62fL",W%.lSaQTa3.?1"Ye54\9RtZB+l_e%>RT5bE;RcbmS+e%<r))S2t>0 &&eg/UnRGIHB"]6 ZiA(hHW18NSP40lcp.BkhpC\44KA3 G][Jk(YFR]t-c9\17nV;XI?4l_>IsZR3Ko9-WNm7*fV=5i#8FE9f; sq7tdJ9(W-WBbl+s0-F#h>H8K/Z_[B\Y>%5i&VUIT&T<62^%cH6D&r%U]9>0M^OC1\P gd.4?^H/mp[A<i/+72`!Q][M!).hMV9Lg0&Ue RWH:>^TmW<0L4W>1EfDOG:M6r#/+TTi*of>6k5BTlGm[)UIJ"=8]s@s=G9;^!=7?4'KI$"9'R%l`lpGhUBJ]8ncn>D[?'`"fCLit50"Yd^Xt^Q!Xs!>8=j]fn#=Ff9F^b`Q7p*$!)Yk\=hps2(4"sVC"o]k51ro)`1_6[,@<1DnsYa ncRro!mM!?$n5/,?'rnO@gUMmaW:Bj%M<G &6]8^1Vk7\EIS 7.hEOaf!`@JkdTni7VZb/HEI_lP%#`,sJ7bKioQmU-\2An&C)8o1A@#LI?6eXh@c7nXKCbp'l7-6UW0S=UbY[^?K!(A-ss5RcH]8$rnlA?255qQEYR^gSD/`3jh]8:&jre/<#%d1nX7-$mH6AM!2S=dUQ7')cDIshAQmChF#5^<[t$+QXMqGf*5ZS\kMsR"A4+&^\si$6l709m217`F9&_r--k[6\?>bI/2NVWgJ)-W^_#93Fc35fm"M*&H;"HY;A85+eKZQ&o#'%^QUID!nsAm2+IRWJ78+-Unb/<=bpZrO";8mC5$j5q=qcmg<JD/D M"l:IWY#9B-EE4\q0QS]e).[]ap9M7U'a0bPA)$Jdk9eDKA_]C#))`+oI)jl^16eA2-qqGD0Viq5L/40;?5V'kM8sUqbimrjr7$8 *W2A^]\,]4Z+jFG2iSQ*3'ibc8n"Bm@`#<"4MS2N9HZ6:/pd/D*_F2OD"Sp]Q1*84BbMNg/REY+7O^WJLA3r\jF?5?m9?hI](^ 7pfcSO5)nO`,o<C5SG=Qtj r7.^j?8$6a5LF`7-;,lED^KOI,Uq`,7)o9'+eLiZltend`rq&]4YM.QK2hCt/NKUXH<HAU,3LE$9.<Q6I#VV'AcJ4V+l<FQ+`jbSO.<KtM31^V #+LE;hYMe5;ZiL N5]l\.nTDUoP, p/0+KAf-Frf.`9/m4.;fWC0e8*Ak*8Kid=rcLQ/]0#,n&NOi41=(PVU0e,XUWLO2=[gX;[l;s\5DM-/(W'M]1J\79.JtP, 7mEQ@G.=q?40Fe "\.^4q9j67(k%*9He?Jr$Dr4(@LB3)!'(g A<]#/J0TU4io]AkCQC#MI>)WJH`$D?>l+0k<.+-YmXZ(,T6"6h1QA,8>D1p'!(N=!:3&gO:C$9o\>95oW'Q*FC-iK>`IW0:[. 4?FYIM[@%EO;legl" 1F?,GoqD[B5*3NhfAj[a5oOk#dWAq4!qhpi=67X&-N+J9 ia@d.VYOe.M`K@,"""fE2sa]I=-1o$  U88DcaJX,X(FTXOb87#\W1@='4"3#.BsP Qm@s>$I5+cn@>DAn_RB.Q!>[q:p-c_Ebt-Y4leG0)8nOQJ7"5Fb7N(*+)9WtJ1a[=j4A@CJ!T_r/[-!gL[JrT,t@k^iPAX=roY%)G=W:mjl4-rZ7bK+(B[R>6LmlF]]nb6m;".rfrZAHWoZ_bO)b6#?lNc^ 9.[UV+M1Kgap<)9>],RN9(3MF[Z.Ro5a ^bfm,09"iFK 9S37-<=A-2n1Dmrq4rA<B2T-%/GZEMM?Xnr7oC>YbF;LJ++UXR_E[jk`tdmUEaEB\TR`^ZZ5+A0i_?gHjfS^c!t&pHFc73YsNVI<QXs=]J"RF"AZS1%X2k!=7DN`DYr@A*%L@$T>[)_Ut-6'e9U%2N&&r>\HX`'GPo716A8R3C#rN[<2,V_lZ[?QkL4>R>f%EB5_*Y\2Yn2q6K@"7pIlen0cG=dC$hen\dj.ho-0'Ik. c:8(+lT$Agg/`LIt/<2PH3>$oW!Y+DAo1T-"YJf"_`nWT_)-F0-0#TV"\*,/Ai5VT@iTnbAI0ornM+k;QZ7hkX*m=LeIHtLUPD!i=f4E0$h3^C/s+".a0/jgoGb0d/?:ID0jt)T%EL4PLgpqkWU&;d2"]Op#Or@7c#p1r3K&KKUs!3^q:W<rjDEAdjfKj9DBfaGkK]UftriLm@eTU9^YZgAq'&lNr=e>-B3eAfc[A_=nR3lN\hG5![te4+Ealfg517GpXQ*cZs]US@No>\OtkFUXqs`e-7#3TYYX;;p= G`kGU6JJQjAChM9^P+S>qb%ZVL*a5LrMqGjB.h lTo@_H8AlHXl1s_LHZTj6TDPX#KjrO1Ph,rBN* 3 m]dQ(#QU#5s3shF,*rZAW$6Sr9T;4WAQhtZ%3+ r.$%pDG8  <VB>M7AEZ*m'k-3N@(KnjQJ3"A*EF/h/qst?U:Jfjd!)MmP1!#PGL9:J'$sE M.Hf]]Frld-%*HUVWsUrD%?K"F/gXPe!LjmKNSM1tJC$NK*o5Le#ors`6iLUg1=2MaD02aaZH[geljDkU'qc(tg&nL'102,0V>W?pZ<aJ2X7@_D*K4\jmDU! h:iJkSl0bA7`R_l\_W]Z08([5@a"ZA-j3mk[]PMZ`$f3(;^Fr./Ib%d@thJMa3=tcLm"V'R:hkKk 7L`oiNn$U('&*q5ng\&(bA+(XWK=[^kEdd+b`-+/W$:t0-AA\Y#m]ZMdg&-n0l2"W#_hMjBC6fhYP@ATY0H>-CB!:$H\(:dsB@b=$R+"Z_*ZFTDkp"TAD9bs.88&8?BG0oA`/6_9:Xfeo3J+[BYcc&Dk!DAhQn/HO&mEGsZ1A1\%+HmZ8AO6`J T!3:Ggj/R4V"?gW2sXh.2G``LIHD`N5lC8-4X4-9nBoZfAH!;Fg(<LATBWW<iHG N;14)WF<AdA*dQ]%#JSJ-^U9I#h=@k\*X)Ij/>mq!EO<j07jU^?0JMt38[PB:3HH)i+,+V#1,UNOs91c-i4A8*8+ec0KBSee(Ye#;o%&ebPaoR4X*eP#lFiL&e=A',3V>!#i%Gc(1ZE05MaV>"b"OT%F[U?Y<ghXN^:[65iD\*&2VNb!d1(aHr9`c@V5DrKa8\rK^W=t*jhp4 )?g^ McaP"d<m3f0[$1Q<=)LDDH8;& ^X^^?RK#=e)rqV^F^lB2@EDpGi77t=tO)GaAXT$=]`@!!L$VL,A*cA\R'XI_18K3WoC6gfpRcM+RAtYQF T4)!FX^JmrM[AbSE#`gZgMM=Wi^\UR06PK&fegH7NfWAr^3>B.to1!4S!WG#g>I-YU"s9\s*H!RTr]jS0Z)4[9ig)'"brRKb[pb7 7M[k8.B]i.*)oHiFnK/Cb.qr*OkY@jc5>^K8g;gaf;Eb %"#?EZM"6[H,7a+s(XFiP)>dd%(lLHTUK#4pZ]&sJOa,&MRZ!$2oGO&=7Rj7R8\pA/p)0a?d6htHH19G)ej6sGfjWsS2@*1^c"$'0LEI5*!X8CdC%j-99XcPs8X+s7H#H06$*4h\^KfW.U$r#Tb+E<b`OTUS0 ^P;h)/?IGb*fCZn.]LA7A^`C#(h`QHQTVCZM-/)VG:j/^Q]40b!jN!o b;e1=06?jb6eL(kR+en:g..fC.1%9?Qs4>G@Vf6sphpDc:A5]9hkD7`ijZd5^00%_N0B$5,RMN7M>Aa;*Y5.F;rFnK;E'):<U&Ks+Z]5>kMST!r\G=<W.@95ZEM#((]-A;9@-fH9R 'W:7Sf?f/1qO! X:G.*C"kA@<ZF[iV_ZnhI!5-dkP3[E-P`lSQ>^DjsGF>!^\4L8>VY4$VJ\WUpegjJb5ArjLWkJ8@W'a#p(VW%7S*YSI;IH@A\O9)Y(`5jb]F )5S?,I,F$./qc@SFmHfnFf!$bW+erR:4Y99,OB;caB.E:G/B>AnN)jF^75Y)Mh'<<\1PSGUta0&WVn>&c]ShG#qb+)fNmE(tX/13]n!'<J-#*1c^feCND=^TI:"ssoO's8GF.C._rA9(202EWB0*r384ahQi,Y6-hA&g1S_1Gt'X0]'OFbi[cF>l:EM7@M9VX_AT$\[IsHA#NQ+0:gZq'@W"\XP,<*tJKl#E$*0O[M1$ii3;CA.>bT8(1pp4+Z&mlV5lspqsJ)?P0eXGmV%CqZ:P9`KJc9TQJDqa_AqVgGKJQW`\<%>&@"2W+Gg:akVgpl1><:,N[K(d3H[;d$L8)!9tn7 >P,YPND1Ij%bJ""!hm!>VK"AoY8[)gG\@ F1^G[m6=5Y]r$knf'G)e20=.Kd;\c*^*;"Ds*O$K/kVOp%PE33M8C8-3]Fs=HH L](7Xi;BBRDW<`p<&^(IXmlpmT#oQtY>:T[?W`Ze^_' %2.93Mt. $`@c`k=h/nPPf\Gl655MMb//13lm<foXJ 8 +AqqQW_!LBF_,,KLLg@bNOSkK(?YSKPWc:+`1L0l4D49UQKlkCB6MeYp@Y@Bdh P9P"WVA@pn/cd\N&LU^96PA?&FZDsM8$R'YAJi_b$c,_# i2g1+BTg: .%6HA]ZZ,U2J8W'Qn!Y7TF+t $m /5R#RCiRY=,07#S:Z\0Xl$4T\\@>fahEaDQ(+47_f6g)I?ok6C3DmAbbj@Erg&S7[eK\[C2-oTtY<`7AU+?tAllfsA9AL^+5!EU?bD ftpGZD(COq/dchiOg;]F7b2-Y1_mcq"-d^ 4d75YdVN9U%AZV:99,YIPrG'a2-Atnt<q.<&-gC0+1*%F70/$kqf8lH1i"9/dIOtnl8cUEAqkc_\lG6BQFc]p+m8](X)i0:9I=8\lJD\r;5et'3ed&6%$g<[M.kCG[ifSimQ%Qf @OD(jJT/aojR\2_jY\U?TI:IL<$V``i+[O%M7kh58B0p_5QUrB[ ]3C11$<phVV^6Ga>!<_^nER.*g\cp, QW=?8AnA(A+eLrOJ9Ea4UeLi6NAWJJD[Ai$+E?>R*o(WHjq1?"+n?`",]k3kX;'^SeI)]2."\9>EqQo2K?^iG)TmRKp?=Q\DZ"__Pf^MW<KFd6MTqG<VL2*p]I8O=,(T\^hf+-WI6El;9Gr"'ZA"p+?\+k]M8lV.Ddm50qO**ffH4*Q,bkBsTdUT=g[4*pF!\ir.jAN\<9>#&+Zpj=/B<Gj8PaFnMW?AfSmXqKWpU1&O`/A@=O`QX+30>11Wa'Pk[-.:pr_1.L9YfmM2NT/X(6-NEnK'Fl>t\__fN- ;baPoO<4E8tNq8UpS.(W8t[_B]oSl/A:& %(Fbi7t55lf3LigGUo$s.I-_=4,^I;^)$d&92Y$_5McBg<Kdq;UQIs` 8^ssWMa@[580862!#5C?S^T6;1cOOnm#(K<P,jn<H(j_/9$@pZF,hZt]7)RL(V=9;`9paOi7%VW63t0j9T].9=\.4\]ePD1HKGBoq 9/#Kk"QWWcoWk4cC@=on8CK`1sjEE[YIW EE6r9)$>`]bD0npl#ILcRXjMdP<&@H8HQ:%W'!p-b@PjasM$c!tKpg`J-d</W!tLM09@5KD1"*:T"+Ahka;eG>J-1sjS5+cAVplC@Cf^<AqsfQ^rEFgjqd_<o/47_mP"mPLk!>F(k%PSj4/Y6h+!:2pXa#55p?s0)oMCTgq+mZdX*%,g:L)MPG`qi(PmY8V=9:DOa]`H\MeX2BUd%GYRWha;j8kkdDkb!o6%.c!^o=L,U/Pnd[Bm35ED] @N&;,!'_laMA8k44iGQlM?S'F1\a[qAlX:$4@Q/^jMojWh1jTBTF@$SDRlP,%"W7X.-RSkeK*KV;:tDILZ5tQUB!%\P.HA5D>m!q,qVD@r1+lOFE<>n*7D0.F`HHhn0q d_0nFK,1*b^^40GoR@1lSKZV&N3FQ(BDcl^B>3!PHCY *E1bHs*Sr[j=BXR-k/6V0#6_R>VYs:VoaBVCNA5,&r#;c#F@A1$tH/V@4HTFTHA>%IJHFV_=g2_Ue;-b?)pM&0BA`(`h,f.XL8U2<F(IX?UbDDV["!#R'\4QmFA9EP\fkE:qE%^(P+ZnT'P4]22'Q$ @$H+C'4S08@G9A)?HTgXJpX&Yf*GnhAJB"7"f3/2j(NrA:C+i)g:]Ss$ TsfFbZ>CB9Pt#]HNdPKsQ"CXQ6MhQ )poA[s&c F"RZq;i!=DE[Xl2MH"DYV`D8<*UcPWP&i dbA[((MNLT>hFpROb'7W9*&m,`%@"40b>aJMl! 1gD&sDRtAd3I2llc41."H37l5N;$hj,qI.M0KO/:Q3.f\hobc1^e?4CTh/HL]9[A)-c d8OZG J>eR#Y/EIhlP`22ce&C-S>c'f=_m<I"\/ABk$a3Z\LI5Y*S:@0L%>S5m39X&(JL0B?>B`4;1`nR$DhTHFQ=*UdSa3:BA63T/D5-Uho >6iZAH.[.q$jVZslOnD)T,=(''GYSAA]t"M+)H>"k8; U4BWgsni\beh.YDfrY(,LqTUA:K.OlE^Q8f8%Fg_+eZFZfn`XqhQ]?%@,X>,nd.V<$]KLbA1k^[M'?,ZNBrEiS7s4to=(bAJ6;O7C/arKE$qk5>2KkO)ic&hPmV,@!Q"2Xi.rZ-i-tT:t^t,V9%rP8I^/nRIR-H^bKP Un)CRl&BYVMc>Qf?tN]8'`,-j"!["F%"/P5:QcTgZVlMXJ']t2A,Y?(lkdTZHnio,ta4J`QQ-Ro;)0[.=D*qSFa!KUsM n.A[VN3FqG:J7%THcciT20Z$-.Og+It']r7]meY3A$`*)UN;Ep9h3hEULe"i<f:6Q3GCQYP#)U(F> a:'^bR"q-J-1\V>CmA2liB.fQ\.>`oNB!l5Af<[7_;5Veg]JS3MUq.t2j19N[kMZIkodDDhXNNl@Lk['\(\#Is_V%M,li?I]V*EI@\sJQWRe6/QH:k<NH3Zgg^W`Y*@-I^_!DUae3?_^V6S=]\'8*Ehc'0E6qLPgL&4X*!DP\n&Uo94>>9[pf^+[C71lGU<@Vh>5Br&3Ss9&,9M?QXKL0Am&*VJAAs>pIUjNE"-/T'@gFoAt"*d;]qj gU-/lRArHsq]5q =UkR6(Rm'(++,o;3[Oo;WM6U;'$2X)/qY?JG+&1Y7;EGl"E%!rk,:]A@j8*]A!<Utcd(TZ7CkEa6_]lJ@9>3'-rBrKlpBjX[&KS[\@0oKa%/@F aGFpV+Ak1$@"YBk/,e-Fh"S@JP]IX[@ZRCkVb9[_ks`jDFpC26A\>A"lg.q_q/?BVN(PrBgJ.(RG<if(tY#M47G<m&TE>YArD'Sa.1 <kh?VXr')f3&=BXS?SRJH@tbLbb+!V_NE'DT=AAq S9hAOSj?LO$PY#*;+Jt5hW;t%XT@Cga[KtT(*4Y]B 4d=*AA)J5.$V`t+(kccX'KAisn.jsO$d4TY.H*^abrt`&UepA`nK/+CEjDt,FM>UAC]P=_1_Qs6%bm$UgJ)..gWeGilHJSqjhYAd+'8jYZ)[YelNG2%T5F#."W:S; m_Jm`#) E';U(]\\hosFM&ib[@OdZj,mdF-MHs"mI"0]JST6n=e>s^]>*A"P/a)#n+t9,V-aI3Djm(FQ70R4E:g@CJ##3IgOW!qe:hNGW.m`0._f":9&ZmoaYX`e@*eC9isRL^iesY#</Nc55Znl0_/+tVD:9"bo#qrmLf?m!C7KP:3q8P+39sjn !ENR_%]%P4$T)?,6D,PSnpJtC+AE]IVb)+=4Z9KokDLA;]X]``a!Y7gD@O#<YWR?MCQRH?)5++^6fOH(ZcB<FAmNo.][>gjoFR0K?$!\Xl8_11k&;+!%V/QN/;G"g"7]4*BX(.F'#[ET0[b8sO>:A:daV2\OL8nIQ6PVqcVmTFb)qs%$D]-:Am>re,n6>MI,4<W8sYBGhI#KfkloZjZpBXiJ3)^SP_[[`ca8S<MTrf+a9#@;UZG\h6j=o@%1X/8P<([@,B./Vic^#Zjq4\_C#+%_P=]I;R-/S*h16<GPe5,A=<3h"3""+KLG8H*>DZ%;CPf%51m?BcB%"]=snZ9BU9[ X/d8-Vc=tqI&P*pCTrS8=VW2qQ[_o'*'AENb$ac$nTZ^6oMUl>_EH)S(8>Bn6K);0Wr(<Q4-(nR.E@qAn'3m$*4_XB:I15Z4V@%UY5 (MkD4i+HkF&trZ/5)$Y&p8[Z'A5$h">cfhGpI=8& on-C)Re4A%Z9&L*XsAAWH=5:tXD-)<C)ZQb$BZh%Wl< LDp6=U068HIT'3Ced,:M4@Qr>ApKHW;AM5X;dd`R)3<85dG>KD fF+`oDgsgL$knXJn!(`Vs o#5mg=J*@DK<M"'CrspECPY.%t.J0>NeAgTgPEQp[(]me.4H=`:\HnM*j!eg*ZIb+EfU_op"/FWl.i&TI]gU<&aBmh5:/HG7ct`aFABOhS);p$q(M(%<C\X>85[[$X(Ab>=%rAZ^?!>D#kmq[OA;W*^Z*R<XPn^ Ji=k`ZHj6)g`Vpi ^H>#O^Q@]HnV(7T.\@XpomAO!o2fP#nsdcZnIl=%eA*YoA>W?^J+Xt>ZMeAcHLs<gABCAjf9SqT4*[g6j(.^DqC=fecRK32iUcQj^)YSp<MM4H"C1KeAn2r5W`(F_ q=qP#qGKMh2l[K*P k")41NAfM0_7&Pd.c$5['?(kY/_>`D_1JkBtWt>F;06h5#4O[4+p.tC5K)L1D/(0:^d(lmalVL[Elc)cR06B^%J>^s3DhVi^Z<Z6iWL7B`2SPe+q+5]9e2bU&h&2nTag[LV]S9FX:jR8^n%6f5$MTB[bn\sS$3h(5ph,Jce@0lP'hcFhQrChf>o*?C+>T/"J4-6'J%#A(o/?N4*lc5mOfS3N,$F4AfNMj8f)l8p iYFiO@2e"7/nE,GCblomBE7AJ9!p3:AMPme &Y`o_Ork6`XNEMo_otZa2N3h4.+c$!+4dT5C1os+jGG@pom5=sbo+'2TtjigZKr5m/pMP3@/+#%HSt=)SfU\329H^*NA+,J\OAZId;&EP_j'j<#/@a,%r=L'1BPiH+.LgHOA%'%?W+lO"RgJ)e<K=#8?Ybd r>`o.[WPo@$2)GEF1BG5%lZC2N7JCB,L5h!3bIX@AMj5%W2LI%;Zf;fH1`PTIQD'-r@48"V;p$iP3KJ.U!*E!n76L64O(oW7?CV7<8:ZhPPZ\E)AL W@5e%8Oe2a9@BqA;>k%Xq&ocVJb,+UBig5<$7d6P&[ \-oMN(V$L9-Zh:Ad5:BX,MA;DXKIfk/^N*$=Jk.aH`0@J[!j$2=:"n`MBMQ9i7^=3*,1C>(CCb:d>D$E:<SS_sDR#Li'__=0@P:8Adk!@fp #VCV-.7f-oomcijYrlRXn=GJBJYJ22?V%('PY2M*r-WoYMO.^J"ptAmhE:S*D=H&$2HjHj((N9@m"hI0G3:GK!YP?n:\9@* m4eUI9YWUUKmY9h[40oEmd+dR&RNtFKHdC`-$C\.JpW-F1C3b-XX9DpNSTZ+o(Tli.a<?IaY#)InH4d5%DI8/9V8n^ M7l-YLA+3H?er.9P*MsCAl[>=+H^A<j=\5qh!m+C9fA5A!RV]M49;+EL$d(o9^t;K1,7XUWcF R$<gLg"J`c6k=7tBD>p.th9KA]j*FQ%\FkMeNiq9+?D"mZS<[Qi(O'Ra"22/:)']K/@NJ)pTdka:"<Be8apUmBr70W&R=NbQ'G2+%hsSLV9Wo:WfdWR*APjM0`n-nDAtDpWWgB.e>5kfC$/ljl"[[G6A,o(r_eKjHPWiJt0iJ@3FS!^'rcg2:]^t/(6BJ[trtWG+DP,b6;l?K:[]/RDo?>!a%e'*NOcmqj #^3N#A?N^M49AQ%-cZoMAm)a"F2EM3;Aa`_\:D+(c137HS3F-2T7VYJ)U6'Gf_i-NG89'R'hg+GX`j<r:K$VK6I,SdL/giQc$E\Hf[^C%C <e; Y03*L]L-`q;@s/*797rb)s\0j,#WWr.He<8IT,ES-3-Qnbk>k!7"lZo8@^"*Y[\X\lI(pd>-B[5PP<jN1>FK3rC2Zt\[q->#*e"$f,dN$[k5k&V6:C6KI8fNAD_SIW>@!k*o Bf@&m;H<jhQ+U;+gACds(8qTm2#CQ7J?.CWAVq?7Jce5H@(CQ$IX"7$mATFZC@i>r8C]IjVF_#Zc>q'5P*H6iARNP1B&)$oqWLG#en5kT,em!Q"c1J / hZP _b*6-pp-0CNBP#?^K?\&\a:`T1Y.k:hh:eangGB8K"HY?n 5Hg6^8:oo>=8tKoIPkWsZUg<L5jc/AZ,:A$]K%oM@"MBBY=\P6:;V`!to2CFRDeh6No1/R@n$7rI+2!]F!;VpFaY#)f%#4\<-r6CKbfohI+sMZ Gp/"8(4_WJ>SjN,NIY\nhf\S$rl<#WmAf%j8rFg,K4F3`]8$H=8N';0n+D$oGnVNKU.F-Y7r0Hd*&`K7A7E5X2;OMSf9,LO0Wl]h8U/FW_d ?Upf>?XjPaO.iN9:DQKA<r_2fo'eNeeW12L%-Gl_*$0]20q+;&[391ji h dAXOM7)D)=ZiF7;1+JS>&M>t60_t)/;(,>^LK&eIknR/^DW#U/.m13+4a"V?>#ABV.>*^;#k9&^ZC2.sS<K 'Tc ]()h%]%D_AZP?Jri83@.[C=!VJHM[>o:2aH%=iaA;*TdSZ+?NK:O:LS.[&+_?>`W&7Y**P56Xsd-gE3rO_b=qHI"%^]X76o3 Q )2^(Y^@ZsHYJsq@A]&J4l+E]HO=T7p(`Vs#/bAsTCLE2^mdoZR(,.A8pshE(kWn=EtMh?_h2d/=-bUH^F<'q4.f%H;Ia-BY<A?a<A'[^oD]TUFDen7kF'+AS;\4$@QLbK`!!!Al@I*/B`HrFcS;#s6*-Z98Nm91HVMq.N#Wo)8c+[_gTX3RXlX*?iqqKJ\^r8cX\D>A_q0jfH3i=C+jmYk0+CYEhH&&^<k(kMX?7m2#sF2TAD<`(Q07s7S-_%ijjcKYa.H1fY.IH0[!"%k9N98B3"Vl!UI3OpGA>D+0 (X9_NUfNDd.*PIHHhL;pma#bRED'W#D2f!P1^k9,#<32j+ Yk&UMl,tgAG]Q79kf^s1IpK'1b9?P`:agbT!eLS@+IiIHI6asRAAf,`4WaiXtZ+A<BdQIq/%UH2CCiQN%BaDrAc5pa(OZmb5!fBsO>i8 Rdj/D8UgIo6=g7fc`*YoXU*L[>H*lBtQTA)=Z.OA'f-F8:jTsoDYLr?B<OC0djT0Fq4$qR$rFha3?4HTMIL+0EcXa3iL2;3YWgee]qGV^4J*:h",BA\>]/-ns9,F>^<"F(lH4KmOV8I_M_#ioPU#Wi;;2r*h)a#tr[">j-Abb!>13#]!WK53-A368__:9$hC9h7P?tnB.'O4D*9>7/(nU#\pAGQ9'/ N"H<_f.XbTYln786*;mFsQ.0hP9X'27a8047@Qd%E>a^s>L$:M!Ej07sZ[/IOOAiU,;[9FdG%Xpcnh,\:qc3:WS^JBH[S>AR;bM$OTP)2'QU<hK7J3$Di _mK&H`9M)j>o1.7i5Ucl?C#p6^btCI0) qAl#l&]p(00.8W\at&1CUAa)Dj ^^!IY?d#.K20Q\rAhXnj1b;Bm\")io*SSVTd_P*$+>' jQP*#]re`4@FL)M2!i;HYZ_k pN US1gq*%UBX1fpgiM'+7KGXF4o`-RYY9O.; "g<hBOYXQ#E\lSA4_F4[_)OAkM'i@Y4.?n7\Aa?(&FUtSQWc_JiG-'gn4;g7La5`tHQp0h??<$*mN==;oiD'Td4,^48'iF>>`g,Vg?NZ3<V2J'Hq**>kgA90(#Q1aqkD9.MG&4DFnhr/3Fb:T0`GfgoXL T'S$/X4_8nb1I>SY@9E)6?7M)iS>QfQC*;r&lRCG,Kleps"JCo&T003jGAU.(#"]WnmAG^rHh\h>6qcUC#l<P.ga#j-?+e-S:TPQ(3pWD?[4WRWf:g.SUL2ma`h,LOf!<WMR+'P:n@N2a5,ZoV"nG"dGe`Mq8f#6`9nAkq.`d,;18$@6];R5enP&-GL1HbfT>dB4DHa(T$^$*rO5[hlhLS@q@ZAOlaid]-O['(8o3=.8>?gA>jM=tPW'pX!aX#IgNA<X:QG_,/S` Y0ip/k0g-Y;lc&#RKVJi#Chm%2X.-3qJo5=Zn&GSC<4MEo3<Rq]"Yn4_gl&/\l@b,MsmkcVqN+/JU9XB&ESQmGndB^E'+BX1)LXqIn'KCl)poR0I/?9_)[dML\O&QiNg6OWrZHinWK,-V4R(:e=F&\6 \-E@@&R\?n:;on`&T1$]5@@%kNhEd`@gJ>X,@)]!e;Pk^"\-:mbU*gdLFt-CmZ@3W_567]2V.I3ntMIYBe<MWtZUs&Epl_jaFM"AKZR$ij1n8t8c>n5YbQVaAX9] rc.Q#K&gC`Q%b`NaH1FAIe]A0%qlG3WhTE13oHrOs0(A,[X/q6G8VAT.%gk>+>;;Y#B1,1?s]sWa`'/gmT_+Dd+lVGCLskmrf;T]FXDjit@=b.`mC(LIiY mK&YFUAi$Ka(,,JTH!)9p^-NkGm1HlQG/"%r@@@c)>]7TDL*G$_1l]&=_('hJ2VpX&NE7$(etCjPf"nHDiN/%>KM\@e/;8C#LJHBX,XKl0$tKE4.:KL<BOq4Y4#A?#<dFXjopW_C7sj:bWOT.gr[AO:p1p7UbRZTeBF)p.M-J%WF60^LO5h'K5A?JcNm_Q?'<$)MSC"EcFE6F;"f>;DHF52IVY-aAmsZFX_&7=_Lr;VDip[U<K/_&q' W%O:,nqc6iN:ARs.*c2$[SAi2 E^_#D/8K\=f-&' N"J]GrRQlR!;\3",\plfO>A2D36E[P=^GPJC(:N_[?qZjrI_)ttY9rF(F9 #h"(<@k%A8%"@ktM.$)>cSd.1KlK7WkQZr[TQ]MK+rZ35A5il]IMnqMJb-U92HRGsAXbF_&[hAV4]<G)teYA(g)eIo0cNJ@RR!#KmAG+=5hK#.cS4[Z@MGqnB j*=YBV1?Q."K7fI[_D\]^'rBM0NTDt$2dk!X: E$=1Urh:0?$7a9r;`pnq7)M^i^+a:UMp.A_2:_V2JV)Hag`R=<rr[`/EEk[B@KP>02&;Vr;l=Z(I4cG*0f/91;r/1d*QRY//(WV J_tY,EY+_9eaYE>@tGN=[ ;K0#E3OeCP1UfSMH14#P;(A&JCod>`_qB9H!kDG,\GPVr.>*OS?  Bg>,m@0r f7&G<qRfoS>XIsjJ?]cK2?/^#)snGVDjB*hmgik?/SpPL<]$*,HkGbmPJa7Z,H<;l_"-//L$Df25%(g +G`X>HiIa<rqa `R$$\ADIUrCd'K>m< [A%dkdB1856D3P#dGQg1?_a[Q8bnRAmskmAkH=p;?WMKgsGB9HB"YDEZN/=Eb[]C&!+Vp@^lGRH1p$G_FG;O:AA*hGoe=4>6:C)ABX5!;/o2M+X? 1t&>8^FmUO\s.UmMO(>a@mR08HJA4)@dEP2mn`/'&+]k!e8L2Q32*'r,Ad;D?ACnc&*o9p@rEV^D7JG$SZLS1i2q51:sgrDtWXI?4Km1c,NHe&P2rUlhea.f"*o+ksBL<_F\pf+sD`n8](PWH$h/G4df`THCo7-6,&4d,C";%*UFQoWOMWrG#T_a+[dQH&[1,\#!Freo'D1">W)d[=bh6YD/@YURLi]GDU0EX1f!Nj(f'^Kea5K1+UO#f1"O!q,hA`]ior/]BZ(iQd#H_2jj.*kcAtq[Bk@hhCpB.Hb+Ud%@A]NBY,^Uh4^m)?2ORP,C$q#pNBkU6NBB#_YV"_,GeZU-'VSU.RRPn5r3'rm3^mXr*&%$"diWq&[RM$G7(+PjT/plUcS\Q*UA-YWn\4;e),MoMYMXV3Q/r$MoHnhrnpqn/)#InrT8:G\JRA>GRfk@t(FTpr!OcjJ<W6GH6DV\Q@M-3ikN51o?RWO'I)$'Kk3A72P.-iZEJsUW3`S=YYth)=,LLDMiWK!EO4R4kT-&*=^AA#ZPi-74k2H=Bo13;m2.%AGP*cH3?9n=2m-"9D$`f5%>_=K8(,`_Fo<gQL%>U[-A<4@Ip3c'M36V+2EmLU/2sb?Ad9];d>t&_NEGhdbs_<#['6:N;tnY%Uk#-8;t;VmFEms(!&07?`?2"0VR"7Xg%/?A;k>A\,(1,Aj,srR9)%qJd<l,g3s<f.K05L`\<$A]4AHnZNJ<\OM.m[LJRU+);H]_']QV(i$oTOfHDaj<BkZH@mGif$*e@knQlPnq%dhS\S!iLoe$&'_(@lK1gR@C<Qjq8>ji<+M*5M+pU9H"eW?3jrE`apa!;qV0UKIT6R?\TY,a3oWBl9k<pXr;.*r&[MmmQAA%$oLI` GEkfsTPN-%5r,"]B=Y[fd39P`"HnPA7lAGsHW@NP&oN!>34;P49"mtO/RK EP6mMmi9HYi%TG$AslA@=M]cN8A'M>#=-[bGdLh9cOXh1.N)?H_kHo4nH\6II>Lq5'VWI&56#\'%qn,L[EGALMb<q#4nB+Nra<c7]O;((3`G=PrQ*=T>lWhAE\]fTQpVrbO'((nJG.^]=bS]'A3_YL^(HM%V-GZS@"B[UtH1\%)-eN9=<NT=e"V$[N-JMAW4*AfN=N&Tjr#5U6;AE0lAA Y:/hmF"&1\/GoZOC@7T'NWX]r_47d6\g_kjXgt#E)E69NBN9%(5X;7n!L*H:.Fc<lU5#,H,gglb>R:Bn6S+se&9M9:gP81lj*h(8RWj`E\Lq"L2$W/rUCCI:Ylb'2XWA?c&=C8_5/P86_fhg05B<=NLpDcR ;rg' SE8'L%mUI-9Xa**8@6'WJ,TTYjO66V`8A#olMgs$2_b".Q23Ai"nNI"4ECibgbEnr$8OD 4]3b=#;A@G-.VYKM"PKmq0P7,-0eSZgl>=Op60pU6=;A%U'LW4 MI;KR#qa;"ILAqjM000Gkq9KkH+;(:*.!c8<1tjH$A=c@Y./ikk)r;ZV*fJ]<(JA$teH/<J04O=0VcRUXfY&Zed]*E(B?4G_2PA9cAUn%U$\j^AJYc1,UA!SkheN.Ve>'Eg"Pfo"+8<H=Fq)Hijb,J@;E\KKOI>`/TB-r(% l2K'E:_Wf;5t!rcUpA%Fr3#5(\+PV0Jl;;Z'+D''@FS%Sr^Pi'=sGE'&;ATs`;GiaSBTjPkdiEce?k/a6+16dKP.?n5h3SX<hbR+Ms>Oa,c@.48=gqN/!sRpJ5G$)J2Y#.8no8d^:fVo\Q30HaWP1+l/]"K.oG;H_4AE,rd]L'G5(:CgAqFsoC:2DtH94<,D\=!CiYV8d0(j9rt-CaR*$#'pL_kZm????VMfoN?tIlB=cJ>HOVH:$]P-1mHoXXZ"I00Wdq5j]E!)&#S9n=%VV67\@B*9?CjlV>AD:J8/o%PG9[lBV'3)!"]%Z-p, -B#[a9MkZNTQ(V>Oh1+L!q6?]jc()`?20W"6I8HA\%4'q9J1S]rAb`Pas.Ts%7lWog6XQ\ *S6dMc,-Rd^C?\@bIFq` 3jO+o,j-29Wp!mN%e3P8_La[A!*UbM+mhJri`a!$#8=\,J.(->;/%$%L<^MRThi"s%oPQ,=?'4\1;SF3b@/$HeC]P&,(^;Sg0V6ZJ<NGL*Q1g/K$?F FF6R0Q1^e]nX3(g08HgECp[HHH*eG;+K>/O%k_qF:H+!q<)b(]3>^VC(@e,FT1l6!j=Q\"rVSSZjR9N]_<\s*@15N#06gt:J%8%4EFbk<e;HkN(H7g7<G?L%R-1Sek()B\\%#E=E>tD1BZWA`RK/l@K43K#1.W:;jQE)cN1Cp@A?@RM;<lHd)q!oq9[W O5UKpC`#88Aja0i.fn">`%>+]5[oDL;N(+Bitm"Vk^6VJB-[rJ#6#GMH*je^)pM).U9lZGQXE?h?jkXoZ .G:T'E<\3#0apXS(#()fj@^0A8l3S"e?r3E/A2]hbSU\Y%JY$<&Zd)"cHs`jNf_8)*K75EGXaG02T4GY42/?X>#HNEHP?]ntgZ'l=I2CTa"TJ#fELgaMTZ@X/0%?s3%c&#Xd"$Zgo[oG?)?TBSoC9^%"\5)4Ccs$l"k(skSq`+C;D9pCgi$PkmfV,sBPInTf[s) #"q=KbP\lE$Et\pfaepfX@<=qHrj1) E!A2W:oFRZUed;2ZF4V9NqmU$>/e$2h]rHJ2bl.1H61)5bZ@H4I/e?T.3cN=YA3<fpigZ"fJ$$!$n&tQ2N:fO'Gi(CHMe0L2H(Q8M"7Q\<#n?gHFi)# Vk+^pp:rfc`cA<l\T_fUFT<P/5+<LMHET\=@SJqE=R@DMj\gjZ51b^=(mNa .:r)YlhTI-/4nnZ^tJ@=LH@SOOAS4.Hq.2 QseF]ZX?R QdN]`TRjeb5p!IUjr(nte;KaZ8Hh=]>qarbFsQY+;Ms_0/m&d$l-.+SaG#GPR0\K/;H/E9S-9llAZ0Ge&3-[X>B3m[^;$r\NlKb=ZgkVl0P?OrNR(F^^NDQgV0\N_K$8h&.1?QAE/ada%f\"NL&VYpfk_Ah%k.g$VrU%15WYcA"bdAKY<KP:fs9a6d<j\XaGI4i,Ui^e,,si>b@*h/<&O5t` 2dUJD@Ai. [nKs:3.U9iKp4ANWJE<Xft@nm/K5opd>MZN8n?CrqG_Cr/q+h#3L%\)HkT6)OP4o([CsG9@L;-0#f8JNGYFc %o]n@IjLJCg>af8B89D0`mmRsTD6QPP'2EUOdV02/23/07NX]dBAC^CHln(7b&DGV4GdSVE>5MT@:g'<(I%E@Eoih:L"D@)2[rg)3@Ctrb'2()Oe1/7MpO"2A!57c_[-A;*]<ab6$hH_FoFW.%r;S>N_"2&;A/k9=!Ha7BYAq+'1(N;t_DA32ml09.J4RXaI4#NK'=8>H2P8g]9g;_#E'H\7R?1'%l3RUl;WT[i>.YkaKU#1IH4?YI,,CLSHVBVr=S@Xk4TA?%K`q#\YjT$Bq:Sb#U;R;%WZANs+Wf/eWHj*.,ZRi>mh7j$[Sn7m8H_&gH+-!e(Z7TLDOqI;pbJYA,aF<Its&KI5Q?;_E@hONF:Pq(rr`smD9UoHEaqdoj7 qm3G(c+P7Qcm[o&:+LC7]p/GXXH80F33??MYp l_8q5s,)VkZeJ?#s)cq(/fAh"g\n`j$jm;afp.&SqD$&]X,EAK^8D[Ag>MX#t*/ASaW#+)o9gr:/]9>XE_es6dO3RUPQC>]HS%)#b_%[Z^g0rm^q5W>[Y424TcF,mi0<'JU3o_eGcqKE%)Vj8+1MM7HFt5.Z2YcZ<f\ieZ*tWeh5POX]M69eib0s`T`VN-g-)Ai3ac8F%qN(+o Mt0:fTXRJXA'X,45k',JrAi_\RB-mVAS 4/a7A'm/ A./Q$bc/0JQIbsR"9&MEdBsH4IopG:mWt!N`-8kbFXdMNB(6?!^ag!hF"&,*oe@?9ttjm9i&DI2a#()7K>?WW4W*m$U@(O1-"imf_%1kgAVHRJ(:GptA!1id\<;'3mV][Q,bqEk%8 L/[KbsDk\h`pirL5\pp/?to+NK=Q= .s[OHR. 3>*\Yt4=6G5&2U1Oqq+bm8dZEH.Qd_Gc)(Ze;&Zn?<R^f<=.mf-Db]q,dKNX;2F5/dde2"'/QQFLe+qDI`#kP;KiWnG !J:r^IAU/Pcr3aPf:0Zr$Gl']d2&VGS;W1&4-!PaKF]B&RZ#c8tQ>:jC(3^2-W6*m*5:GrPS(JE&#MDIL(Td&3nrl-ge87?mtq )"(3$r_JCWcj'VRmd-24+.j3I4&X5fMb[sntUDWci$*K 3U:[]/YZLn08 %hb6GRFRW2U(p56 /Nq-Z]3r81kDG#p+E'T-Hhq$"5G"e)irQd0J9"&QB`ZffD&5!e]$];IfWsQU?gLS+9U08.4XroA+;s?0-k2d2R8`.m/UlS])l7$J)j`1:I-tffj$DSX)t#U;KkO/P'0^o@Sj+MO^lF!tAs<D\^<;A6`-An;39rpZW#02dl`9^4A^s5A3X(UFH@[Bs1D+V[bg2VIfWcb^@Ltj#OP MW[7DmH41Z$0CIpW%j4eU0A3PgqetLjC,=sD)sYWS#Qg&Hgd4j$oG>>m&%XS'RYdC4Z<1_FY'[H".-;[&NP^ ]2nHOm!^RO:V9GEm'8si<nHJf(X$e8+JhD8+U/"^,CsYRf(!P'ZA$mgPZ:#dg=+gB&<mS>fqpcZ>l6Z1OiJkCGse2B!IL7\YP'cJ_6!CEg.J)fCi <5.UfrRlDY'&""3e`O"?sD7e:YrWai>;a_Bn#fZF)#8h_G5$Bisde?Jomn^@o'1>5LO`NbpW6?NJ!S5'iVQqi1862S_)o7><'O+ p4$/d!dZR(.&iplrrV7Kr@Vi ^G8?P8sn)XZ4<T^qU .j6tQ@a'n(%*?Grc[>)1L`^F/K1Q?`'8lA;DLDDmp5VMbpi+7GOd2$:pD<6%AM(Mh0kg?jD?NBSFW,6L&[PXNo$YgY//Ac[2+A7X7R7ZP#1')sAEN]_A2[K:M9h9lVE#\=;+Do&cnCp?3"'S$0YsF!7Dt><V:!X%lT?orUNR)A4#N:Wr'FMKc7_fD(e1g_hkV^'-<cX'9P=H+a'CV=p/?KR]ADqm->Sa_MIp4BAFOHZBni2f$(1jQ1@C#no]N#j)LV*p6MT_)Ze9rF9ql89QBsGj2>3%2<_@#.W(\G+mcm'+[q'*Oc4a%E/A]MSncGaf;B(',QCGP2eL@%7D+g0%!FSLl]]L*.F;o)qZ@63<&F\).cDE<&2e -(5O<;2G8X5e[j:U]G-5U.WM)5#40mQAUSr)E":a*l7I&W[@*ZlT1ES<N^/Es:#1K"&\+SA@Z=nK.1"Gij5<9$]Kfdf0UHC-!k*_Z;Gjg=V>J3OQZ1@1cL*Ac<]MJd<hGM;pl6A]T\\bX7( Lj',)2ttD'qk!Pk9D:i^GOp`)eUE.KKsD)H]cBi5YJh<itnm&TS2d(/jQLQ+d*DRNs$!LanT  P"$'A R]pOo-3I/#?CC4GPR5GJsO0ijDn8g97>+%.USp+(=CAcI)_hnADV^s-GW6Fm+r,?$S28i^PJ'GsY<>)7<+b$PWq c'jtT#nr#AXVBFX,pcM`%OeGKWT7/!SqaqH9@X57F#JI*FKA_/1:*s&H#XO;-sOOS&G0i`]P"^1jo5W6>$%Bs:HgZ.9,WK3DcQ`W,aP+4:s5AWjM35_1)dks,7`f-VJOsE;D:c)H=7FZ/VC,t'csDfF%/Fp*T<ZFj?a(oN^hn:]s)#:OGSs*$2S$;,>?@ie*VKUWkGTsa<9Ud,l;kR>/7jjs-eH4^j=VF.l@Tl7a,ApLb<HTN>j,?PmL*t37#R)TVNE>9'LjZl^+@ha;WR'X9FjOU*Ot?k+#YE:7G>nW+<AT'8p!TUpZ,+]V>rDPR(L9MJY>ap?'1 A\EZK$bliYn&5&oT<Yl>P!D!K%BS[U!j;b0pY2 L*gBC<m%C\(L=IkV756`'1SsB(H!-k3 *5Cp_??X"'pC+0rtdLQ*BSAV@Bt[tcP?DWT5b9M9X&04:dj]&+9"Z*Y](68fF-,%BL5#V6tDV%:U!+r#q<#KG?*j,nJD\i[d/hM)>lCjlt*&<1Ko`FXB\:*ZbD]9K#`-YKZ&+g5h)F/^=97iE!ApL^rdR?1".l(e)t!h<0lg^;6!4@#1jn\Q<^$LBt\;  8`9V<`g4LC(so`<% sAY*a.P'Y=M>q-C?;k!?knDk!pZ%%$5K`XW,b8H1k9,)sEbWjs4*AC;!&H6fafG:Al,0c,eWQ4>,lDnFSf.DK;*`F7`b$WmhO_ZdOa01Uo#A?,RVD=,@H-%;/\CBD/-Jb")HH!(0XgSnIhK[%b5-/h^?Wq0Q'n!d.NHig]\K`5c"X^b"h&t,Pg- W"[X(gqPQF4W/$GtB;%AJ6[#VaHTgV8HNNV2^rKR%R_"MU:Y+-Ms4nB,1#ArtADMSY=\dYXe<h>Q])g\M!2cJg#SPCHqh711ObJk&HV"qQ^od<LfK@:FV'm;$t^k:qE>*Jh2f/+m9;\Q"@IG$0JE/Sis9XS_2T!;K [nL+VWJG!s0&:@klHsX@(f*4R/`sPYR'>8og.[LK-Bb cq+Zt6JFbdaM\n;o,ohqe<mOA$3@5dfO-)pI,e#[QOo.k"Wl2h[Q'jk0[:4p!LVWA.+l\,1cRTL.oogstQ#6:.1=.4)9q92c1]LcaJ-K'n=W!^^Mpg`5/<(6>1r 2p&'i)&bEGE.ftQfZIsRh\C4H=>3M]d5@c+3?F`]MNZeKh:/[(JWbXNa]q`?F4jl8OJEQFI\>#B-t1r?1m_[I= 5:BHcP@3$d+aG"8;Mg#TL4.lT2A"pmGo@a"&nbID9)DCW_SVJeZBCClsPG/03gddPG7D@!A\Y&j5s93d:6kT'LX$Yt7gEP_L?(p.#r=*b-'sc@SE6F[(>4nn(ZoC<8AJ*k@(Ua(mCNt,N@b>qm,o^LQ9W&V^9A5I%Qh;RJ\E+\BQ%IoG(!3GO>l>CAi(a%mmB*\4V9(lAI2J%?7dS^3/b0--0g25foi="!]`r3B`ist5eWDsqF'GNI9q%#TmbQf.L#ReE<pcfAT,ODsQ[38^4 dQC[NUX3P9ZeL!J]asH>ont*o+oebK/OH=B+;*tiAsbQsnUFeLIQ?j]kr1rjM2TWiEbkmP1]eKPmR9/A]t!Te=W<JgQ4Q0/b`'Z2dTo?)_"hmsS0EXLo; Y98sYA;nh[NAKRd;0gbtB/A43^d6"IoRjt;5&j>>9A57.dQP^mn2Vob'5jY,5orT*p5*`'@'^GEG[C`A-saa<Y)pjZ"O++=,Y?BH_sB-[>a#cQUo^#>i+4H6<B!1QeG]PBn;8jSNcNlROM#Q2VJGS)E\":::,=0,SBCbO6QMNB.6FlAD"Bc!&H]M=f/>tEkHi4@6(]#W.HQT0FQ0IL%=-(!r9^!k2MWXTN-dt^BU/'"0f4tZ>gQ^4/6>3:kb!8h <NN2@l!ke8s,L*i$bemn\bX?h7&Hl(1ZC>gZ#`[kD7QBPK8AH9/loBF`d+&(.72#=JC!egf 95%>9#IF]0.T-&Y%IUD+tLR1:C\&R!rZ9Uf2>LjOMn%Xn; YMQ5C[f(UhZ3nAb,CO7LW7$^!o,bB5VRhSt"i4i::S=7J5X[ .Rp!-E5#FQN;+qI]7,R(:SX1%qCWK,m\9="cesMOMHp$pS1T0 \C^,?Jt;_Mm4]=i1X<C/\!][_>CD!spSN?1KInk`qiFiWF.]NS(HN]_bh:VgO7'\etNMBrm,/4>&o`W+tf4 -FUmm5\r3[ALm9[dUJ').^8);Y^`3P'A^iVS<t ^r_.4hA5Gb3L"oK2-X0CK?l0&@(O\_RZ+@__a_MCgFHIh>jaXGN/sQhOITrQaU"p&6?$4!q6CE)>Glm2pGe-)AX@4V,XDT $`)7npm8=e%*!>2FF^aXQYV_[2d5C7I_-[j]DE^\J#Q&AMW!$W]G3+N,.\?h>%o0s0o\gqVHL:%N]iL=]9,j(m/Ap5moYVK^T"Sc(\^qk1pe33N=`j(<*V:b,(#h;6rS8iq1A)RBW@!G7O&V]l9?B;Mm+8<-fWe]Zo5d%VXW\h9a4%4o`NKq0B/n<Qqg>]i1@%9GQ^2^Q5k*.$=LJQ8kXREg(8RK8c#.^FYVT@_$.N,j'sOiLfPX4ePXH;)c3jd-[9Te2f;dqhqs=S1Xcl&KmS%I(;Nrp,*7Z58NA/4OXlQ?[%3.2co(`#KCT;3SJejOR')!?]^^1^-UYY/.8 823gU]>h=#BjfAn=*&mDcSKpPsL(G4KgA.5%@acdimWp?ef:eiQ*@X)Z)MZ-pe72V)P]e l-A!=/Z<%80KA5*$0F@:Tt%qDNs4^e.Z]CFA^S"JhaB7r?A-n=otK*Vi#)<58lo/R4l).aDAeLSFsno`1Z#P3t2GC3FAal78/hoK,>'/'Z>h`:8[-`^7G-#Q7d.Vp.O^b-\#E:q86[UP@32gn-R4$-dN'48YiPh=Wj/H.K[^>0e],)7j6tnNq=G9(lHZd=*24"@WP!\.rC_R3V>W f0CF;SKZTE1ZgZc?$p&`.eE]:5^?<`]T")RtQJiXFI%U$Y]+cc[ 33SM^_RGC<;&B^XnoL>"4g)6RaHjX:)!P%EA_91FCViV<?f`Mp+$9Q'@=01Ct*#SLa.Nm3aJ#E/iHq1+[%F0!VN91T[02@_*^D^ng:#qUmANIgE7S)_,@0RGs^n$asRjL"/[_dQ;WB(D@i]m0lDbUF4HEd4pkdbEO-I@W&S0#J-G;R%`S-!BSR3'MP*H(Y]#kOg_4<>7)"lR3HYXWpet\#r>+f`X&g[tAHI9iZ+RB*!4/jP:Wn?`*A5Y$b!eWe_[Z$M\<`@OQm4&(RWRNg4<Q-K5Xk67/??eG+CsL^`(#GWOqedc:](f HK9J\R>@k^D(KhZ.*?K#=On8L5sGd?::5C67$Aa[.t)9S\1"(id(R)-O5 GIcCO;05;l4;MQ4)K^-i;UHS ^Y2]!ac8r=K9#i0(YVENL_>WO`dk'?[m0AQOSqX_UDGWBkhS,.@W)J6s0aAdj3Tk>I' $ghFc!V[+,SS!:sAIg*lao;?1Ule(YLR*M5hgS0sRY-ULD%8"6"Y*CFA(V6hW%KE\=V2D%:,63r^g08WZV:OD'?-pdNq7Xs i$aSa^,'saNZ.?M+g!YO(Qs]>N?IUY?TSA)=5QmS!@%U6W!MQ#Q3rS[tnb._ab&BM,OnhAE$QlJXT*H3MH$jKa.1sV+aEY5p:[5LgFE[+n01)l/B6iA'4kB6NV!#.,^LAK]r9Yi?mG?VoM9RkW6j96cnWCLG`4EGS+b)'_!4tAfYJN)H,'[:^'7G02\eEZVFkL^b1C5V<N/QILA0JP4N5e7[lRZ!jLY4#!>W5%-HC5 Rb8"E%5!fJ#@l51_4a+j>&\36@h;AW;GpNcg)QVBS:SJn.CE*(5p'FqT_fe$8=ILSaA]KqU-'S-51i*AQU5d\m<5'VZt_nJFYYPa$h1N<aOY7$A=DAQ`pQ>WY^[2Pn8rm[^A$K5!86p8g@_m@i6oAIE4ScABg2^@1#5c&V$G%b6qXMEWFP=hZ1I4@2,Z9OE6AjkPDrgAWXS!Qk]M<*%H0ck/5Q\[B/%)R`\]%?/8K-\VM3NF$W1s@Dp=6+bk#H2KV`b989I@RUiQ2[\5LJkcA#MD/ah$-g4GFC2&/>F][OmO0nT'ATVfl+JtK?5OeOlmXOsmW_]2:a-*#!EDefH(RA&d3hBVH51b`JNNcZjFmZW8LhhCfRdsX_;[LPk0^Amr'Y]MaFM>&"Ah@5oag&U>0sgOh4mqCk96t-5CDAAIrtBjMt6!'K(j/!Y (h/'9m3N8:?B".D<&37kX3Vd?kdMId!r2N VO :#/M9pebF+)s8_`k-jZ KhD<2Qi; ]"&.X8Yh=`_iN84L^>.,okJOs#e\:V9)_As;W7&fsW\9M9A?bpeq4[BAJj)^GanF;dRBATt!MoskAbDbjmkS7)(,J#<3n-$hfAM lP\F0Go-'khS`KU^>%d>-ROR%t?Jst90nsR3`9OO+mE6X\japPR"54,(bhMjc$";$h-e_H5=tp,[YicH^1Y`<AXO_"0M`/Mda?f4A2.oYt0CKf]+2D$h@C<>#K5%o%)D>QD:  scf`r2dgX">cHlTH:>O@ZHq=r1MS^$gGN'Q'_MHD5n%7m9At6WGIAXS'%V*C%I(Hc@=aKUe]sWo LZG9-<nfnSKC.$E-4H RAi9N)C]jMJ]]n713<10-g^4@GNOiKK'M;3dM%Zgns9dALe!S_;b-N7\_V6-b ]Z:=+idPs8X.[G/6NRd/i$760^(&)m8U:sq/4TX#[Xf(<Oc[[%aip8`-\7$[o[(]V]AKF[4"T*h#4KapX^t(X(<?A./%YC)@F66Q&R<U7kl"G;"OCU:G;5bYh(Y31:N=F\]eaJBW0&'U3t3N+=b$$4Q*i`%Q?GA6Q qf0#0,: blqbON(T+J0$D<aD?;-%#`'Qc+bh.7ppWMO@a#^$l^+#Jq[B7"kYcrpXURd#0tV!KA^@bn@'!nEW=i&o .-Hm[.B:Y&q:dT+Jd)4!/:Hqa1R;P"q- s/a8#:BWc$^ VO2_\aXPY/p[<@oIPZ.m_&A+>?USAg,kG:bZNZ\<GShNa<t)&ROnCA1S )RZ4@VQ<`6'(RA>Q2Z@-aM^l5CFCQKa%(M=APehR>Q;-8-0P/!-'q 3#apC":a*D'E*a9[*!Q^"l-Bf=@@Llb6AtdX@D]E)T@rUe^+CUqm:o'']Tc>hSVnI0*mTmJ@r5`k9@Fk`R)2 ?`!FIV[Km(<W:a`+GdRnS^/q]o<>Ps)aAdN?*,Qk!,[^72@"0Fc!?'pr2jVr;W,Sc6>C*Ttp33,+@[p,/0^N]>b")p*3^c:p1UULHW'`Be"Q]%:>>!lJb:/f`j-Gisba?UA#G)FA^tE[=KQFMt-s-NVI\03s>h;`@E-D6t_6L @ Hq(Yf[.O(@;"<em,i[#LGKDo>R2i)7l/>4_`_NaT19i26)Jr_+d_$s X:\&;O%@[( :%Z-,$!9Ee@r5MHL6G8&?^!Adb]e@oD+9ghjPrk8-A&1KfVNA+1Yf1;04dqhb-<>5[#LJU#;t1K/!e;]$c_eMG0s+F%Y'6$A/5GJ;U])jA/JK4Si03G$`^7<RL&jVLMFT<-ZXTDbDX3ld1)J1Cbhh^/B\_ErP#'X)h#l2f4M6tND7o2H I1,[N6(Tp3Z=eZOL(CjFp$:kqAnLJ9,LGG>A0J@g10a;Z*B3IjG4@@R$G&oYI0W=!m6CaZ96WZSC7"=QM=FKpoGA)m`Md7:.amAMa5BToXgk@PAYXElF[]A@U\>AAU]t>MALHRkqRZ<(*o8coNQks[i(rlXl1>/#Nn2`GSaAE=ab>6Rt_` +=p'e9f#9QVU[#UgLV7IM*&6lRf8(.'-DNK>ZTA;/hkV`1&k+A8n9!6JO(3fb_;O3.[ QX4+o^09RMK0-'bi']\J\g+#04UmYei)g]%=#-ZG&PYQbY34(8D$6Q!PKT$+U2CrpR"[K6,\XAL'El-h&TJ%VJ'-qsL=qVdGNJo`V0bn[)oeX7S"qqLl50T=h*(d]Y<Y8VSSdiF5RH('QbC$Bf=O"D67NT7305XY\ h:D3X,]a0/V\MCg7T)g1dsbWM0GtOtk,;$3+aorA_K?1fY$qajObBWn#$1s?ht@SKDj"mt5niIY 3Y-o/CU)9sWM]_G.8pk?P"3S:B<@$PdEFpqD;#,+:T[K7"'ABO%bFMoe)8H!AK]$$)ljk)'pMCI=)J'mo!5>o@@C)+)(6QDJ_[O&I=[:(O6ABIPAg"jFg+gm0=kl,GMtT<#L@<Q]7Dr\'SEZo> !sjU%S85O.iG`1SptR!Bks[AQ':h,\FM_#p69ZCI:VR6M1M/?ASYkm \ng;kEZ"<+31"U@(`*ar^?jd&M5Aie`T.RNs2$H;0BZqep.33K $CsM-4)9Af16*)TE>rZ+5b0;-"' &edIKN(`N7A8)8qsrW>)_s%d4f3o)lsG9jMBG ;1nS^#QE#YkA?,R6R>JfK=%&j]0*(&6p3icNN$h.:P1_t=!00#0l!SXlAPP?>03)\99)GUBkPlAWf`6&?@!l.BZqq8D n6sCeXg%M:EK2`%m1C$_kF+PW%IS@.%9s/CF(Og_:hT5 MJR6W<-:S99' d!:PgHA=.RG6-bUAcd1.5eY7&g]Ca1,;U?XLD]J)\l\rkG=Q4ML#9;HD$> i:;On'i:k4G:%F_6i[FG'2V<>k?^b6.lF;leO!G<Z-8O#6C._b409et0Kj5+R'>N>`T]$\mH.J9*mdF^0kNC:24 !5(S<Yp-EAT\_FUF(H n0ZD*M#Z' /.kCt)0V7Z/c]O3Uc&s:3r9hrb;Z,1@i]1SXUBH31IG0TC*=j!LiqoAPG;seVIL,qk`!TUl6f`n=R]YGQA>@X[AJ7 Q2h[K:1^Ab*J"56tm<F/d)&@'B/5l_TWcaVrsH@:fBV ?@,k*A[A$;=.%cI/LjP`%q2ERL,Y&"MX&tP"PP]H7M]Sq92W1r4A>B%7$Rln"q&[h&=,BYh_At:?asAr#-fM)n]lK@%lA)h=%.%-X+LM8b=K9`6&<oH-4n=2MKM.GK,2-<i:#U3cl$9`$j?go'q<H1PirCsT]NA"&O!@./N\S71$T?<Gg@Z[pLsh6fn/46s?PZGT&  sVC/ln3O'Y@ Cq3jnT,3RP^+UQVLUWcL,mQhb2CMk?X3dHB$W4$0:,e89_Ith/_BH!!e_+BZVLE_CaN(%+#)2TTG'XgiVDP78AX*qS]'XFs"_Cs.lJp%J.7)dI?MIQHhBI#!]`cW-*bXoR[Z%d^/;3p! Rkhk:h70^!LF>;$0<iZm8b@KX)5^%hN2fC6'"Hs+e2ij=`;RHdXch*aMf*;;X-Fs$_)C$+*Gbb5rYOtpcOX0("e=j[O$D4P[Z=) q?4;)&l]I; B,=gj=/DlS(7tBs(a\dlM6E=[" A&/G^`")L*M^Gt=m"/CSJkht5$eY4I/(Ar+-gAqSD9Er<o8r;hYj#@rA:H*W@SAi-ApE-;K.V&Sc;LC?1Tq[0%@Aagb11@</ lQ0_2aaXcQf?0aT,;Y$iqdWe`>D,5X$QHS`hNP3m9tZN=s#:5kd6!Tc=&LW7br/$?6YN@L0E4h/Y&:DeAB64,D!osg%\Ij0A W(0A:QVGh*ne^n$m%K0tPW969Gqf85jH[*=2;8V%gpHV3KH'bqZj#i]QImc!'!rKVP5AP6l1K9^T:&DmQla*='?X1SgmA>;@'>K!n7mL%]]L+L_)NE*c36S6pRk.&P,#AFhISXq1d:(E@)ltEIq2Ik&KN[.<r%g]Q\-FiNh/1'$/EfYT1P5n=#9[AEJZK;pMZ$D<gj;F[!q^MOT\MIjM9JWkR8Qt0(4flaaE.t\Or^!pR*hS?AP(IG-H--$XOm?TE<H7V_UWJA@aEX`I3'H)@b!#obCq`4b!8_XIMlshUMAW*R'+,M9mfI)jF[1H"dA^AJM]#fXN$Af3F6"a9]`.!FW8h<gk;nliho6mfgYmBs`(r=@9Bl%&/STZhMnNkqA4jX=LjB5aN;a:(pU[@e>Ln(AH\qqX/[87\(P]rM3Q[F 8hE:![%M/*2V3U.Ncn$8eT20-@NA*RNt%p_-"W]/fsC(Nop\Am"f.VW[0,jQfLCPm#XBBE2U^sV]<H9&NTO0^gG8 M$'Lb2XLO,+Lc7+pgAVV\NO/=@:$5ACqg3$_krG^q:(KJ;bRD-[`/`$%P,ipR*5Ns+f@SdO?o41O6gPbKd33[NQH%;0S;d(-R@ P<_;.> GasoT^9Q (HDl.MMKbU,fNR>.[N28U;d>Q<NcS*c!1Aka&Y@rX0abd\tHKDEVgKo5dBfS#qgsSll_;)EFE.c(/0s+?<0,m^76Keqie5]oH(KXX6NsbAlBUleIO?J6?a,$:j$!j6"HNP&$K\o\AfDK1\F@Ie,"AdK7=Jg16bo*#^KIm$`A],19K@*J3_b.j:Db 1 QAn<Lg-ADSI12S;,7F,EX#/b/D(',e8=sCVAP)nVQX2(Z2o5K<g"Kj1]I4A6[d7M+!*_gP@gog$X7e*3:2h'gMc3K;0>Heeg?RrMJ5diRlXW4OdOO'Y<sO33AnBs2ldD1]`67W _`^/#+5(aC4YCA@lh?& ^``Ab<kk=apN&1l!:1YgajhalDN)Ek>SL[Tj0KE2k1A;g,+3da@N>X&iR*DVB$hgOrB.0q%iA[/LU!#f-s.1gh/nd,8cK<B0p-.p')jE[X`VR6-2V9*0":](e<g6fHl76l[9+TFDN5P=t;Qk?(tl^XccUe)QT'4^51$*NRh#iW@OC>*6!p7sFhgmi0a*q-g(t]^eOQCrO"-[SH0#0o0Z^pJZXOO`Z9EaV`C?^m#Iog#sYVgm-hfNIBGUR3tebZtKE'aN#Mr<QcE@'<M_<Q/Lr"oCL&>Qo6<1k,s(8#k-p4spe`o#\eUG?<n0!i@$F]M#.N.AVCZ.],UR--X-C`,@C"PUjhK(Q0N[T3k]79*lSX;DFl >- .;tNl>H9tlP)mr3Z$!'o+jX95fDM[t2"1G?ADrG9j7EM0<l/R1G]jl!>,;WB-FpEm$sE[&"::Pnqq3/@H(,bW,f/KJZimq<PPgt_AK\bmbD&DVao2:fV$Bdk3t.K5N\&h:?=sh33e\R2b=9lFS.P10#K.k(VeKncUo%/:m[L3f+)&8,fcf_k<9R[*K=[Q<nX,^UYSeUOG1dTB2,)-ne.LXMrB9#N<smqQ),mFIpR`gC6ct73F)hpY8N.bhVGhfXb&DJR9b-[" \sg`Dqf4a`mH7c1em3m<1Pl4KX9_`cg)b8jcVAXDIQ]dtH<`3^n\?M?,e)]P+RV4`A*CAN*tdEE2^ffnrZgAKXb"'@K'J dX?)Ka 2.>(WYlJ"eRMO`TXOpSYM6-Ob&d6S+Sf&+!Yg]4+A=qH5S)3d7*\mdiP?Amt?[ANU>OW#L8teRfSZ[^67<[f: _tX'AEHnAE[W.oCg8a$Pt_g`'hUe9L]R)93.*,M<X0R&t@#q\qkOhcn23?on@ZHTU-;\qS@%<;P:?h>W!-2]Z`.hh(;BT)2V/2m(LY&)<Kr;3*d5[DL&?fV[n-OCocEE;@Gs'd_.%,sI__2VpRl*CpYCnVl0l7O4V["'L><[1I">#]<<LW]%L?,[pOC<!` JKt*S65UOW;AVD#.KbR[<q!D&>[nSVMi+"9Nf1>_(KKoG<m^A[ATiW!kZ)F+$1Hoj`EBRBOaE;T>9mT&s&_k\g7%o,qZJDOtRAl[#@\AI&^*<VAE49^JjXON0(7pqP%`,!Pbo>fm!No$e7*4r+i^E^T<k>s/=osO'Q.<t')"5*1/D3Ng+c!^PeoFI?PIX'k1!?]NeMC#AGT"GqEZBf'HB2U)?#j<$%WZcl389349(Rin)]>`OSr_Y,L0TdQO!Gt#A)+2t^X?Li6\p+PB-4A(eI4$G<G2KGQCFMGB`8ae;T.@a?S>BrC47;&FdG2AB.#Mf-_fP#W@ro;\jcEr0/ct12[+N%<TWbK ,n &m!ZBKtjXU]f?C7\lVc[Q/PRQD#jDUU6<\@9Do%9S'n1cC3E#<*&^lW:VMc7%mA>="D"UF\qhD3nJCm ptMaZ!-bS2:;0P>&[T]k]a$b-3XT\-'P=KL]A%Xh70nX:Uaff`i#Pgf,edW'_GKg<gcCaiTOTpt/Te5T81ALM\++"$7jOIBZ@GZ@J1@d_UKg0o?[&'U:Y@4D")CUMik)6'Ob="2E@5\8mOs;$4SB/49L+hD)J;m_dSZl0.JB`=tM^bg4m?VN.n5o&bh@hR1&.2LP$Lb?gRk "c?"[gQ/f(d+tJO9O flH_$\84^ +T&5TFSD9B#ae>7)g5gYt_,9\L]>go,jr!tgjAOlRTI"3DnSX(mtXKlKgA9bD35!>>*1_6/"@)NkVS%mKFfHmqZ7`.LBR;,p=_Q^D63lt\Z("HjpNb\4^0<m%JoPS:ST9?D9YciCmG2iS5Zg<02U*Ai?nLJ76">-<L9\PU Pk?V7NZ'd]t-AZ'dlO+>U0cth)+ZG"<2g;Xc.n]L$btADVq.e"VWSL1rV>=4C=0;o8:9to5FBNO,nAm^Dh3fR1j,!M2*\*;0e(C_i,km\PAn/fJ_^5nfOMk<WIBXL);:7L3SGnnT5S]U%jo"U-,@kPHO$HN]/q:QQ:2X\Y[VBACe&4[=*FT+)Q,Vsb`6obVQ*$r$[@t-p?"I !6g6aJ% `Z@4Goep^#q!_]F?P%>8=>,d;!ZB(#TKmVTo>;U\Ckq5Y>[/b-JPf7L@tL#d6'&NBV)f],\5I-S:#ASCGF!XI3BH^=breg"m8lAAbV0k_BSC2BZQ:U5"C0Jo1GGd`1gTH&N,IhHff.UnfZTB_WfS2Zn.Gqlnj7sZS?L%R_S8m+P)f#BZ,.]jj9;Al#9I";l:4Z2-IMIZl\]4KFmiq=(t1N&BA8L[H0r[Wl; ++?AU3o.A6T)cjD()7_99M"mVd.S#"LIoicsog^EW&k?V*X_Y?j-)4AT?Jr^58IJ:!p2G/q;iNrQXTMOF=JOBfL:ZBlh"L0"PTK5Q`1p\sK0Ne9Jn[I@ P&/e<:,>J<j%XEU<-@Xbc:f(qMJ 1BQFad,.,p44t5/5r)Vq=c5(>!0k0iVd( -oVhY$&PS(>6#6D<Lr(322AeR`1Z*?O7WNHJW&_CHKa<5*h9@tn$GWmW1 F*:'A`,%sni`_trc;RL-M0soZs9N1oo7X%'D;G$;AeTt(5dm96<24-35clAp1</D+DBm6`#n>0R?@"/G;cdJJZ'kpIYjE0^W;XF)@6)ebFR5 D$<WN,Fch3(1j? <0DW?a674XLcm/TTJkg(ScO[?2nlkA6iin !4D"iL!/W.>i_h?4'XgH)kK9].eX,I+<KN?b#7CWVi/8a4R/a(4n>d 5@IUTA#m/_>^LdkKsCGg:6%?`CO-*2AhY=cAfQE:jq/LUfKS%Oe_%Ac2571+OS^:q\+JMM#DTiK$?qs2qAD?fp6Q'!4H*<07)Q`Qq/1++o)VCNW ";j<S&+-[ois:kC)MW,Ba'35Yoh1hR#"JlLPpPTXZ@Mr:fW:<S[T)tin[%D6V*KYcI=!;Y]AKQ&o]%Hl(s(E*6A#q@%S8Wdt]Ff\q9p6FEa\^GSZQ dSk`aRn!` :,\='EGl/n[+,6BK3J9OZWbV'q9&1'3;FmW`QK'?%mGGOIkX]F6\jDnTN!n=:2WnA%$?J]#P(@M97go#PRJI<sj3/aQqmt$Hi!!qKr6;?`3XP0bek6AK=q\$I,&^sNafelHaHCA]U?rX8)'P2qYUC:#I7>PMcajPaiR,"+a_3$A%YA]j5SdVR**sM9K!(V/G!#>0_l/:*MEAiXIPP&bs6%ea@Z=[;l`TqM1!o+<ca09%AQA dOF:LBY.8W=lki`rAUP0!<bk[LLFREC9P!dq`(=$lVl=Ct\Z$'lHT`EADl)FZDG('S/NZ4J#+<W5t3' VakY/I9^0;R?cc`qQdq*?C9R+3YfPmG_3;O.3QSPA2'q-8HL(m"RgelV)RW@H2!3ZrmX3h0d$<*Yq_P(sD:i,NftXn^C90g9BR!P\)&qNYte7U^BNWS;D6/15o&qtTG-H&bfsc2[oDAV\5N5RKA&[[>7mHg-YD?3m%1GS00r<P5t_Y3+jVHRR-*RLOCFA:="StiBqqsoI0fGl!CV]PeACc.%SA"gn%jmS/Fmiqq&3=X!NUBc]E%k!5nZaJ)VVX;9B+pI2fO7Fk!"Afkr05Bg&-_A<J9DYp'o8`oHdc;>;IIc<NalI7=M'^EXK Dc&\Q"P \29;7n1G`QS6=n].\*o1t(,">QW1EAK83'=;% a.Q8sA.fk2.Qcdm`,g=$CbdABJ)[&F*n')mgl`Hst,f?QW"`rU(a9([[\2Ikeb&,_"i_"r!E5\rhS6>^EK@J'=L"Lk\"A,VSWrSAki;r<'_nj>'B4%O*TQo<CR6.RE .0IUP_ngW5TZoJ]1dIAFPpgq.m)3Sm,T/j)kVtaIA7DDeF09<\^g1HsjB3jQ!3o+M$:I#"$Y)mBBNJo#Ks#],Yo4AW,l4F1rIegpDd,R<Dd<+R]d.^aApA^WoV,H(DCGGIU$II,4(A5fP;VVbG$C(Yr4$/3ic,QRIZQV`ak,"Rf_N0r))A0T)nAVr#`t$U7l&RdH,pG8g+$L#q_ 'bjF!j<s%^s$_6sII<2)F*`C=LJUsAq"rZC8%'?$DnS%Uj@Q!T*N60URM'o"ZGssBF\@aiQJpc)CM5cgc)O6Sih<!:g<7:gFgTA2bS .')se-8*&EA_ r.l&[0S/XJ\as=/KfV60Ai%,2!O@S5dF@*>1D<"\8 A J;Db)5VXGp.JEDoU&cCGK8:DqAh'DJ-@Q@9QmL9"3Vb6-P!IVl_aXc<WJ@K?a$.4=;K]6t5sE&ePgVc"+6(Wa?1W]]Q?,0/,l\AAA'$XK2,FZ(;ORP5jJ`<I+c9#A`RAKi\Y W9&Z&Ck[XP:[pf3'1Ls]#ALd.C7c nQG" >_Y`6,d<g2L/2j9ZCN@3Rg?UXpDCot0O$Dhnc6P.RX(e.#4_c>4W1#9P-[O^$-$XpP3a5TP9QapQA.3Y,>S\9VE-s%!'-:J3[>@E&RU!B^l`5[/]5NF#E)KN3iJDVli&(^APc=W;C\ts_-A DQI1G&DRaQ["gUk'[.-qf<_?7:DTEOcsA"WZVI!1DA?6jC*3"KF1dik<9ZsM!*!sIW9A]?1A3H<dr8t,XqXSo$;"tT2btf;pV#F $mi@U_#S!/F*)k1_.j090<s2%C gW+THP=kikhtj*?4nO(^_,-jl :[lbl_SlAHn]Xe[A*bGOM>`Ggn."5\R"m^cEO0nP`UXAT^:r@A=GtfQsYK QCrXn=HkrAMhY24e-qFNG/N(E?tFiAS>++fFKXh_MKkGI$_#BhA]fm7W7nL4b-3>dsLfceR=.-644QJa@%SREh[fB%lQ L2203F:Z[re0bL*j_M<nstP<:#;\VKQGLs'U:K]h&N[Vb4kQ&UYN,-D.[0S_cUkC4G1f70%nI%T&[rTG`WL'E`j:Tk.>qpjB.=$=)1F6rVgEehOOA?,8Q/AL@^'f.=D&;AFKtF1!qa38E_e4EY.Ul/.qMA-^'-L;nZ2+k<Pt&-M8'1HpRR De9',k/MIA?q;n:qXk!5bNdlG;"YX@G20Q.(djFLeZR@F)_\9*_BCp.i6smQsIXE>_!s-*Z\f?P&D9e`+T?U;X%EpP)+m_e`WaKK*S:f%.L[9Fsng43neJVmSA5VhlEhYV<4Qk/0$?7?!OIH7/%T+k;h.d?e;,Hp,FMVjL*]ZBAjbHL8e<:)#m HZC<]:3D\!gsl P%%k+#`ep.P@V8@FE;89DnX/oW*/Qleh*]5O=#eQ,h)6^XMds1%Sc?s*DXTj/F" cJ=\WI%pj;dpFa2Dbs0!g-JcCql!(t61`Lgg s3U-4*:f)@SG&dS.P5i$9[T/^ATKIBllJS$Z9-_!Y7[/`<Ao\GJT>QWbd]X9K274$"[1K.<(j;7 h=::Sm_hEn>l;kaZAnVtEV/C*f^n&At1FDY4nqJ=f=( Jnro]cA&UqH`M+Id@9h7ABJ)2&6%@#bbRJG5reK9l3ndDB]KoBnB;)/t 7QPTpk@6g(?q,eF'"rBXXI_-LqfA/cYARq0Ot?ANt95D3*f>1e'#2o*D^->`HJ(@q5E ZE%&hM'okp0R\*\MAAMoAMje-0SAU)%$\&bJ]49!njTfPEA*?AS`%2ecd)A>j'@S(Sl<W?$G-\e>8:@@?!]`;6o,$k#J,LI`T?.; DaUU9)#^nCkr,-I'/*g>QJ:O<!$Mp0#,ZU6jADjA+_#&8AT'nH pZ,:c`nBrO\QC+E4qCkZ.QgY530>l% [<1KRqcj"TD\'O&Y2<%X0(Am=7o#VXg[h9Y"@1tV5&#@--Sr.(QU.0nf]P,4MRAl7\_H7-f0 \M/l.UUg\t/jI:'Zs!r'a%^o[k8*/hA0g&Ht6L(^A6Z*l2HK$1*PAZCN5fM(G^nT\V^O";<Rt404c #tp_FVs^LleG+8!(Cn=qX<_Uk0"UClC%'`m@PrpI6jjGbBcrj9qN!#\"TWdoI-S83tjGV7B7?G8l<M:eId1JITBn\o9`$K!#/iAFG4GA/?a$`Ai'G,<7_C_fRWq`CK0S1;8IZ2OsS(?L%dABGaJ4-H'gOAB%OiiD,?0RT,cH%!tRnL2RULg(ab^X^Lg'LYXXo-'I":3*\L38B;BZH4D.Kjb`T,1$!(.3nD&geq>oobZb>;#1WeTQdB;9%t%E9PtXBsN'QkjAi_CK<1*do1HS$lVpatOaAWH4<pgIt]>`.*)7mP%gFIAo:A37TFF?Deh)B-PF)QP<'8p>A-D)\GLG+o_>+O*YepW=P[b]n++Sbn)0J?@ehKoD?VSmHiK++E\;$,#?,j#Ks2a!c3_R=K-DJ7.N,8aJ(gIfsX3c2)r]W)=@e:!-CDW`AEM-UBa7/MCc\GVGa"C+pN=B6Tc)b-jcR)?`?ljG1'4XU/7j#qFqg8><qtKJnQ0f%JsU=-b)&P>@MmXD;,%mni&W6U-9%.#A#J1)j6S:qe:7HNrN9f00@"=@g+o'=bA(LB(#M2Q0#(15*,#hI=0ei7nsbYW?rl0Jh2_'m9.CLpb2f^DLI4'h;kDoen2D%[njMd*]Brq',GS%4Ti'&lri]L[^1,llHKBI#LA_]"5F,^ .G&,@/ATTj67<&QA;A\[C5bKT>p$*d"-I?X+RFd=Pcm8WOk-O(+j[0inG64`nWU)>UX2K+8r9]8s)NXL'5L)Tkn/i>P\UKVb H-#/$Rk`J%S<Psi0%O-NnsM1Oji&rEJ AH8Ie*Anj;:/?aPA?,q+"rGam:f^@#Yb>ma#PO/=H+gBY"1PWQ]-$?O/Xn"k09lk-i+t$&aEV!:tgY?5>k?Q"f9#HmnZK!Tt$5Yck7V3c?ngJ7sn4L8'kW[U7CVAjhCb`F/Q<RU*3?kSQO83c!G]=76=C6OENoL"J>q/6rP6-eIQ[RNfOihrr%[ta3RXVhh2Nj4A2Wd&<;sYQZXpo+4Qgaocf]b 34B;59\?%Zp_8TBbO/`4g2lAm'H/2%9/;eP<peJ]:)M'fXA(+Eg^cAU/Js6CN_!+1a'\8nW=XQ6T%"^)&U >-0.U`[,SOYJ:SVE][itH,RW"PbZ!MgHV4%[&-9LQS^O\C?B_YL%W r1/\2l`r5r-eTKc7:jRFI[3k(Bdbk5$3E'NGeg#!Y),<%'`Q+$Zh>N! ?K0:2:H`P`H1mq9kG+',b]^`-TJ6!VDE kXq7ODPC'db<HTc8Y \?'3<nWDGj46c%C[=8_PPcC:H@aUJQ@jc,/e5i)MRWBH) 0] jf3\+UfB'Ks#WP"QB0i6g0Upn(Q-a:n)^^o\sh<eGA^24 "`@[8;.F6FtXr\N=5bKpt!>?CLLWB<58:Aa3G$!YP9>FaE6>YRi08]PTC*GQgeXpnS9djJ\/8B6\i^40"ZC=e[O:-^5'F#3B^MlD(j,SCA\OLt0@bK:_6]i^3/QrapY0OcsfO4F-h(n\FqE5JT[?s?qF._HG JiHBZ`;*b#m]=(2%96l#.!rYe4((6K>DN;40gp@=iV_4=@33s=!+%_Q"N.7W)Hb[_/Kfh_gAKBL*NtJ-_!U(ms5KnL`.37@`C"sO-R#rNf25)WKiB`CM'7FJ,!b9#&+:J-6pb52+F[XBQN4WZG1fJS!Z*s,JmA6[KV`g+q6pq4EAc*5!WA80f_Q[>0]2*[tA<G$Aci\tYO%Z?37[Xl-8)9(<'F7r'lO"^*"rf#h1Vi#6=TtDmi0@#5D<ebV8SZE/S9Tc*,b4e"ODGFVLO8G=bO((lg##k$-8A<9-VYbi6Ai"OJ/Ec9qc!(_P2So@aOB=/jOML8m!:;+\/;LDeA&:JRrA'h/0:$)`grlU5^7#[4)Cl1H3'k/Cs-+dDQ<i'(/9(320V0:NpUH;)Uh0>3?=^Am`GiK"R:N7*]<"c4# ;gZsp:3<69dbiHc7CG=Gr1Kgr(rt$,e7;.(oA3C1AfXY`q6pO0%rB!M+a_AD4Pj46.O2mI@7n/Q<[@,n@t5C':,T?AN:^[P57m(nl+Ud4el*[,M2jn5!(?2'M\S*7n(EK$TqA?THdj*g"?.YM3F'\atVAkckL:E;CKEA0_!dMc3n)h\Or^A'YiLPW&I3=NL.Y+B@tATD6MJV]=j[F8N'W*nA'hWpm(^(,*p.[BYnF84Bk??ZfX7(/i3_Aj=fKl/N&#kIi8dIAM8Q5Z%.Q2A"KfX/or\San76C0)s&Dlc!MY_R+-f4A.H;'$H>os4rf+#>f;'9)t7KAqc4nj+cB9)%]UrV6P\pS abT$k>HB YaIYN]j3r[RM;I&#`T-ADV52bqOo->D'X,3R3:=f/$Le%Q#g7qb)2[]^mJ<7+%N%%!`#A'L!tQ-s?Ri??bX:etWR_)R:."<%g2VUQEe(&'H%/4k0eD,Q%g9+ %O9\0Jam:+d5.aE+<Z-D<9F9`_HI<hK$B9r<]&CT,odGn,&_;2sAL\^CniFnAEn*&8FG9'87D" I0OPOhWIHT<GB%N"An(M6OUjJ>):XrnrDCZ)J1MO&=)5G@<iNYD%8@<GlIoM>`bQS[Hn#E)N_Y$j'^N[&!^N.KL!^YXKH6=JRr?)Qk$_c+N(38A=_BrTSJLh;s].,D^-)U]H!*80l@_XA]<'iCPF$#ZGM'2,JWo=MP'&Y?HlMKd;Q7L<1#U(3f%8"iSNFfh.iFXTSAJQFgYp6\B)[TI)]N\ZNti]8+$OKoF=eI"AhS.VcC?E+7I1IoFV+R`]dJqfrF#@?01]/QVYk!n2aiq3,RWOJ.d!VR&h.RRm5"C1-#hSAI1NdXhq'b.MAP#YF"Zs`R+Uq8tV[KQs!bOlAG35odc0aHh=3qirWA<ON^=YW:_T6+CG;qT(<HF>d"?Z6I^.4lb^XHM"'X4E=[YDbS%I9pR[.J"kY6H,)2^Gk-K9SiUN"o/S-;0_sgoNSsh+kp.GAX=J5,E>\l'$. LGU$=Q$Q..^_Y%gf<X<cAI`=IC+,aGb*3U4Mc3k@gh58D<DZdm(+Doc1<UYo.2a7XCP^0=7Y+=F2s>5ft@6)hX;6SSVD(<tbBW8`MVq:;(/-A91'9P4<Q6ss`87+P$@7]V8ff-kaY!*ib'9>2ES,cA,i9;&9p;U`sirQZ[_n_QP/,lBIKpaEs9=#l+*n=cJ&3bto9DC9UN%ZWiW?l>TE26L`D%lcqQ:U_Cf*5d+3%Il0k9>Y7D[r`#pPm[8,.]EiKIIVY:jI*@tNioeS-plYcaZ3YKc^3rUr8kS$a1:Ulll&Kbcs8a)cCXO.n_/?DKneYMB_AlA"giW'AkkjhA$5#Fqo%4khT_2ABAA^QI 0JT>b/E`r!bNVVXXNG!.*]i!PVfh]MT q@rt@:%d3mG8*qq b<17hcTcU+Rk ]d#.Aj0:Sgh)R^:MN6o[R&2i,+GdVdj-0-QIngWG;N`$DBX]l)K0%n;3C)A6$N:Uqp^=2(XBb!]&AS;Y1-;)IAY(o*3,"JEAmOX O/R`(q>=0P(3`rSP?:`mR3N-#En].K6e/h>Qf6[>WT"*pK0=6cMAUgL/hR=e(%Gg"nED KptIn1S_8P(ab9M?RY#^]G\3s(^qcq-6E_K.]hRDiM"sEU\ UWV\4Q7h;[2V9Z+dj!(E+W/Fl//UFb\`QLN%>YdO90@4O96K;_:M/4)W*Kj2e,QZXo!Xq(l@6<'+L=c_?,B3VA2AS?AfU<CkU%`V8&r'fnT  o4;XCg3cRmNp&XF`B/3F&(kD!Q)b.bi qO+=B8G,d1j@Gq&f9NOA60V4'm1_A!?Q4AXINT%di=,ih8D0Ts/i(!'g4/[/c/hN+d.+aUOOKGDD_\lA%-C8e%OO`91bt=gb<`2U'^K,Ujco)rreIN&b`HHJJ*],A$ 9d'VUI5gSTJmoMaidJlfq$3?+/1N> R`X js9,kLt3$GCS%21rQ9seO!e&@;3AVdl)&3s@HCfAj:H8l,UUE^*b!0Q-AL8l\:^#2+ $KLAh&@C[(Sit(tV27A*6r<X=`>lR=>7>6dM5hHA8AXh](F(==jB"mT&mA],Z#nU(50e\=8lQj[Y3d\N/XQFsHs<bNM/_:Yd+-iY2O_$QG=EBqmg,[LGP[d0cAhd_aXZ]0+TY<K]oVr1+@<?FQ8cjK<b3 ZaTEn8A./T>T4&`tY'*H)m!ZR[$T<V99:HA[%h_>?^Vdp,RI;oJVfKp::cpH:\POOh>7Ye^I1aW_BoEl'B@cj'pk]]3EcShAoPXg7jqHI6!KlVl(kb1"]6W?7c>Gg!,;<l2Z=&@QQ2CACig"q!/F`=8_)*e&Lo(4f%7la3F=trN7i95L2$q.@5t !dO@1adiG7"h:7VA7j5m3R+6_k-6hBOgIi0st[<9b4O1q=HOfJk7"TPdB:0NnUf5hg?HUhOO*[9j\=QH6J!fe/f1F/G=O;A*qHa4\%A6B*oFLtVLhNZ,=k'opTa`ao0,]onfJC"`K,CSp6K50ID$C2'A#,)rQi" `bdXVd^7L@5GZf\['!kXp'Zt$9nfEi6$=&C?/7g2$gr58BRQ=*#j8W+J!*,GO`\`Bh<3gP>m4<]'.XQ[DcUA.9/UnWfWBf`-%DTS&g*O#NsfW9P#Ags_HW'$%0RpUZG&kK45VaCW@;7TSA4,[Zt,,-@b18*@BY< ,1.Z_nlhV;:SXo&TpqJGWb99j^lX^,qY>%dSGtf)M'FgMW,*c27@0]ACL4fH4HH4rejDXr_T@0IA+LW K2nA^0ZTG:[B.s5J`0 ih'!10=[:OtA*W>8Qin#'1K,OrS-,1GT!,5,+2EM("!k9RAD=M`+p";q!S76o79;Ii7g"WD^DOT$k4X7E&-mZj&GfkZa sl:G;(05#jSq1Fm"Ym9q 5K!U.G%_@Eh]=,M(c5G[+:l-/)U,)Sl*%A\$3rW$X;AOXhAX'sf*7DBTi>9skJ%GQiYSk');4L"tMK<\(HVF%E&,coajVoUP^V_T5?-!MIkCnGC-m(2`<f  :ZE/XX1XY0A4U^c,f9qs.m`cpdkX!fH*:og;q@KEW(*enVX&$/Cl^' /\EU+NHe!t+I1#"(-h1$!* Nrg/^XG%AWrVIM]]5AW0i$n.r=#OS:E;gk@>mBGWj7(5T?(9AQ )0tYgAo?&:U=Bm"7ia[?PC>0)_qWWUU>/jP(q)+OWn6LTW \gfa>^kXsO^qQlD33@qAUseAl> "FdoEpAY7jtf1mJNj0=!/sSpBU[Ghs\q4j0abhL,A"f,4U:]21a*5!N$p$&9<Q1Z-8$jrGkd6dK+aY`T8V> ]0A;EOf67e\04b.-+3d].\mAkfdhC=@.ZUgng!9dqF$7R;l7)&lE&mjN$/"E,<GiEZd?i61=hFVp<qPGX(j%-5*,3&g=&A@/m=9Ai,RaZB/R>MAsGAQY<4&AF'[s:lG JT&lO=[ck6$$TQl*B@ViB#gPRaNF:oKs?GHXm$91<\D+J#AScG\fPC_!D:5iHm0QoU3aUL? 3WB>`C]7QB]pQE,B#!]CGCK66p%EG6[8AW@"*Dm<8H2#(:Fgtae4#<t,!W'TBsO,"ns&9&'(a0%.jNX@92"p[_l=r6*A>!&CAV*?!A,>/5j<k@nW9CL 2dD!!.#VUC&X&+Q@&+KMm.#oSInWX/I@`g)4Mh[f P+X4sL,#=rG BAaPKtP)`Tao!aE^_Neqd^_@P1[%haI*`)<.sid4>()QJid19Wap'025k,sB(-1NVt\KAlm;/6lnQ'=$EoDl(A!I^6?0JVOO@t5Xj6a]glpg`Kb$pAVC`$Z`%*t4Sr^+3%CT?H'Q8:_C9q$qeDB2G@&NAN?3"2ct2!R`J`_Rdk<[2?#'4I-&eWNbEcH5O^A<,45kbAJTng5cjY3a$@#"7D>DgbL_oY[>2N<37$)A1o52B\fR mdT>'igh2Ij)VtGBU\6;<?g$APIHf EQd)f%VgQ0 &cdkjm\W@4KrXW09na.=?s?6\fF8f#<A5dDVV:peYQf+2i`FH2l+5VNKe+JM2i>d6C"t`L5eqC[KAaP4XPLQKYB?Dhmo?,Ul3(f]AdVF6E,#4?N;@+d[fAH`GcpAl j %m>5q\/=_HrDnj(S=l)gqNXXt5i3tO<G++Yp&["Ds2GdOLaD%Y2sBA*CF599bLj4b))R(*Z8_Q'4A.AQH0RCA3*(;3i"Rb_.QK&$mp56-qQftE;!`5[P"Kgen1K9$;MKLiqCn]Gqf2r5]OUOsM3krBF2=)d5-*1AWrcB.=cQ1W;g+C@RNYI6k6e3Y&rW6XnlOp\OeD:-Kf1:;2HiN`_97?S(,@I6saUZOCbQ,K!5MY!>l$/3P!5&dINtg7XbOR)ngTV^`f1!#/<A86kXZ,?pIg#5>[-;Jp<RTNAm<5KdL)UHC'0)QMpcX631'k($pk^g?nX3\]GMF\g!:C7Hq\="A61_\obIP)fn@S6LR"SiA//eIY%2on`7*ER_3&nS6\[+?a8i7RC 'nACe9sCGZ0\r+A="S<W,!PAd-AABAk'KW@qrm%FtB.R1hibc*@\W=DqaRY?Hp:(PX[*`N8NBGr! 7T\(:Yc(A5\FN+S$(\7'=Z^_^m;L04$/r1D.*%C`&4.Djr<AU<.0FoGF*+<`Jfqlc%4Y?;=$3T*.Lt%F+J;BR%LD1g[\%"F:Ao7A='QA41,ArGXHZ#9 Yr]DnmUGYqH;Z*A5(n0M&o[@"(hC*Y;H AD_J4"lNU*DbhD^*(M11@4bY\)$G]Nt\FYG;>P?kH;W-QAb*iqI'Zcp@Q\P?$%*qX,Lnj4/YT@1Am[Q':WYY[s-Wm;Y`*n ]cmojAboKS"20Coaf1"(Q08XsBeVUMLN`B]so<]%1n_H]9l\j%4)-A;0%4o7H/:W,^`T.YXmMHjQ64\]M#_NG9q<=Kf;(,=f`l%Fi4YL)/D[Q1lCJ1Vq6kpFhBq$4TAVY%<Y^-53WF9hM9bpa.b p*O4odJkj<!lj_E\^gAq"95Rpb>%Jf$@9VtfOQbhA%%AbJ-$@/Tgf#p9ndpjVhjT:L0e`lJABr5<-&Mo/+m9:.)>SZ*%LXfiJLOT2g)HM,+D[U=7hAO:oLej8=eg7#`TK/@FFm8/l M"oXQAgoEK(]IfTt16t]=Cc9t1RKc+1B9ZHU9B+Xi:j^Mdh;3QkL42'MUp$ke?IdFVP@'>-W[PqLNLQ>P<Tm0gJL0NN2dE3]WANDlOI]IK]R?Z0MA7E_`n!UR<d*>[P8Y-,ZtJ.2rlLo:pb1AXoKt^Q<k/o p"m\I2'A[20^#8Zc%]6hj@_AEY^S2:qA`Y`[g1NCYfh.Qd\(b.6.j(/k2;` _3"c_:?H%CE :Z#< .>l]OTo/5DMrp_DDiAi#Aj0];_#:9LB]2%Fd4ni(*BrD=7D*MfeX"aF*0o]Tb<4mN;!J"N#g.Z<CR$@HhB=/HP'T>'8p>8AAqrY0< d*PTA_9JA6<^^cW(E2g_,.O]B8XR<cQ]fAXEb6=-"W^IKSRoL!I5A?ZYh))#FZoa(ir.?JaCrCl;SQ`5alDo:jO<0Xj[o0^=YhC))"GeL-I.c.0>Hc9 g_1A)f(*o^=.TQqIGp1>6[Hhbk"I"rJ'D3Gs2*IA*['9aiT%<#+UB@_Y!IL/`k: GSk7YW[">kK=YP[aj8^X<`&?;*189@+<op[&I@3[)%dH> 5A!';)=k!n@&>K 99BErIqF^-HYH(tsdRoAD,-B>2K]@SkUBhFWd7/7L>ABL-6[Ai_!!X9khq_IRcMM<_$/Y]rBa@t+ab/`maX2JBXqApH<N!\6%Krd=DW]&Tr#r@ItH_3P5d+f[rBa:!S0Y)<]<X)A3WT#Km`-9]%sePdTAeY'[H)@#MkfcG4/j#aV^t;G_$e=Kps8\pSA%s2^1@3\V.qp:U\N<CYZW>G[0>sq@o]A-"EY7f&\VPn)A(%H65WEo.?d>CJBMnB/sEDOU&6_OtY,.)QE?j-`;qF[MQN?[%l<W;,YP0BjF/V4Oj$#VYP.e6kpTB[:hNYeNa8D<VG6@J=o?d2A8rt4^O)LR3mnUWGH:OYCP9)e7;gjLKJKN`2a!M5jS5_!b3/JKcHZm8TJkeLA(OQg+M_&SeI:h5+rM3&cHs[#AZm'C(Hk.73t3!@bhUjUj*b%g6k:d\2K*b5EC^-6FkF $3,<h;-lZMs;d:\2<DD<pX&@+<s1ai L]]LM8N[E>(8M6)6(50.^^!8!GPGer__c-dA:TU]Jd)K\ oC+,0tIjPR9:Y&jMEk+E'p<W%IQJ=2g?/tK'0f.fIsHECsBOttGn1VIjb*LUh^h4J4^KiK0';thTCtSt:L8ke(?cO7AH3^\G,4*Kr)aOR;SE1ECNp2W"E$m(/BQr1(^kmZ<X%hLKID.XQ05DT&&?RN./Q"!HHs^N/ `F=09o'*i]o<J,Xbr3$`n&XC[tt0C3Z*9$SPo:NnSBqb4W[/E6:lKc[lK<pMr> Z?-S?>Mb6eb3(j[+8^-Il=2<#/OH2hT0k>Z0[[ssS% jc&jJDqIj05q 2H)_4:tIeX,9O#k<@3j_kI(\mG`MJRJ&lq6Rlbn(Z(iXCLs3W=D`7O=%qE/a3L@rF,2 LHMlOd/+O85Kf%FH:Z5th-l%DNoKcPk6qHA0 SR`ng%p*^tf^hl;pQaHdRsaNiPIa%H$Fj['!_2IARV6nks2EqA$2Fg)]/dGf?,7HMD)#;=[es(W=gOOrQc%Afp+'Mh<1#3mV71a0a`R(b0BEm%<ITiA8Q:$rl"^ QM_0(\Lf_X6AnUU$*:JH)p-cAf`,-<+k@YnA`6HR8DZi$1o=h<gVr?=26Om?E=KWiN1R-9+clIIYmac58&3)(78U?U4#hKm!l-/OWFWVH>H1H-j-YNWd338:"\d khVYX$npa2m\'p,$/C/,iPi<dfr[b0o%M<2`22AbjVB!SC6dJ.m]"159!!nroqoeTOcQ).snY%++HmPN#:9,Wb`@ds+R5#V<VFS0qrRh>jo\,'$+)$VA>fX(BI=5L$Aq9U3j6gQ#&A1,V]="AX["74tC$$h:@12L8BIYH#2`h>#p)8,PeYJR%Ji?f,8aH!N<j)5NT/k)!^[2mPGL_P9t%+RYM)K6[clBeL:mbt6f]]e\,J+_@s7+@-]3YF JY2hM2UW`!Mh\Hs# 1DU#VgAa'iFIh.&5.7;]3AG^fmD k;A9*?aS20KsbA+GL29'5A ZB=iAkm%i.dN90(ifXAdf,WF*Kechl>6oQ)I%_d[+0aE$a--fXo"o?P-J/5T4&& Q]@ZH<1hindE]&N?!fBjUs Nt6>.(*Il"`3bH2M;,X[_-tGAY-or<3<e[>jPBii^BRB6e\_]%/='Qm?YO=BmQ;\o>6CX<n8r_B7AC@:]k6$ GrWW6iVAMRTPLh`%S-PcHpe:lYHME/F<g-J^!DOFNeZj%b5$To^!)6(5LbImkHQQiK&PIc^biOj,l1(KT`dl!:A*D*V@&g.e9sJGkL%MZb-:+;=TqSllktIft,^X]W7)#4eirn Er?DQ^kBH:*l@LG6O,sI-:s!XZE\B%HfM]r`65f"#U^" &q/VYkjtAL,,=`;>b _jV-p9Gi32@">$<__8(mV-2onU;SI4D1 @+7H%d<Xn&4(>3Na;"0MRd( Ip'GR;Y9-U+%tN;VZVe!C ;DKo"FH69j$OM:8![&VrKWlmb`m )W_hT7m1Ki"lERR )P 7Roe/E5T+Yr6 aF/*4\VFg?),8H'0<19moRd.P:>;:37Eq)PLcE(m+c2_i`L9Et+a[%QA#dhT20^;fq4Pi.b+dYh.fnaQ`K&_s$;7+2DK=G2sBY=Q]D05AOSgkW;gMpJk]/^e_8Y'HTa@hQ_4 F4k[Q.X.gH9,Z]MBh:@O,%m1<&&%q87meWipq8<R?WeZ$;XV!A$\(`Bs?a'Eb-XM_t7h.Xc`;;*r(#4S$n&DX^9::W&m6ZU"&$=cq=?t:U5`VA"noeH2]01.mh2"@;Ahd7f8<rJ;jA.mhBYQ&ARR)0Y/W#(+X CDpTAmf)-\+qTo*X+i8:YP[tC#4%0S5jnpGl20<,1)o3Cg0\honDGkW#th^_a?cJ`1]$A2'dis/rfTk?LeHHnqh!^AZY>,BTSRh1jn2Tg]tJPjU4(J]$PGCb!jCYjt(=e51DQ:%4ce_e#61K!brrMtO0K^)Uc+qA:"bj:P0d-9HL2oj%72HJGJ^@Q)m7A(eMC"AM3CHg-@6plUUiJ-$M]0V!>^E?\M`Apcf&@YKq33(Xm]O`:ARIe@QAfsF!.QnrZ1"11A;ioWci%j3rETcn.?8[-b!^Am39b''D _kt,;D&^\moFpEbaFQk.iL0gsh!7`g=!=<aHm`0!SC=p\k;sX6Qhr)?]4U5j>Z2mIS/Xi%A,sJQnE^o"642#0$%?"&5of9d<..7 $![*BQ#DhFerH@#oL*K2[oPr=8.pr>,Y%l=Aqar\;<V.n(['6@5QItd[Xrn"k=E4jr_)A+N=[#Z`T[FALCVZXqm0C;DqSm),[F1/EV?kQ7U;M?8&]/ALe.3_ABnA22V%g?\p24; TQpW/e$Q;r<[0_6]d)8m,ZWo1sk36>_UVZ]YBDO[IjF*M^YB;>ec<Fl5J6r]dY?38)75?9eA?(^ZVM186JKCpO&gg,oX3C9OrB'?lR40s\97q+kpUMd&(=q3,L&b0)\FQ*A`r85d4AJ@.Ih#*VSXa%2D)/]Q4S-t.gN_!D&CdF)M]U'O!5eVR@(7Qt1jA:5e(QQ*Cp56"jIXl*U"8eA5&47p6[ZE58*c9VN$9+'n_2P<m[n@M"qFII*C !b6UM$G49sAs6&R,8%iR,9(PZl;L_+hXd<[?6T,:'r,P'Gp Z9 0/[D.((-Zbd7^fAAK"'5A=A<=V!dUic$<IGaXIjNJhCC`]O'A10Xpml68Z2L`fUk"Y;A[iTM$W\n$*[Jj((A12]cZ-0W$%gO,5Sbie4L-pmn4b:fn.bI)KhkO]&Lf3$UiPm;'^(LeLW(EAh\m/"LH0*]9#bk rpeJ(,L<q4/H&'LiBY&4B HL]@/dr#+!2@J"$2q?3sG4`,L+0\K.NC-JpU9VIs'.'';r<3skO&Vn;>Z@OO`!t#!jV7C%;bAtf%:gnfgDhkb"B=_pYmF6%WE@_2gV9-+<$cCNL]oAaM&5)m.GrSno/+>Q:^f&POh#KblmSf`3WtZo8.\TS[.6GLB+a6"%m3m38>n@KU\K90Aqn5j+,`"\F9Ya%\@qpK=Sa<<G"cLADD(a@]3Lr6g:EXR5AL4@QVB0a=3*oH6U+haOdOd/rANcqBd,AecrR8s$Hpq(^K(RlcjT,(T`>T!33fYi=[2jmA,/$ r0a.C".=aZK@q$$ Ecg_kl.5^Q'Se;=/UT.age >g3km P9- 2,^RpC[q?9r[:m GcQJ/.M$OO&b.r! /X b.[_\moe/C-kSpon'7eK.g\Apt]612!=B7BS+)h*MY.9Y5Nq'5l\?%6[Np&!o\7!B)6]O#nDP,MJ-/F4PKCL46[EXg->I`nje*+1EJQ4_Z!W?98AD0t">@J1S4" 6DnV-?T*r"MH`!$Ec6VU)2gH##7P !/.Z';K8R1Ns/$0A10KQ9RTd/nel7AndJRfEAf24+#[C/c,WeEn4/Ws ALN+QJ!Q5;ib-Ucl5>O\%0//.fFi\S,c)%,K!,Y_6n0^nD5k\;nmbSLf_l <Yf.cs"o#gAZhK'SBW1-'&q:@-p65<UJneQmSnJ E`Kpe>!GQ_&Uo!mN:kRl\=8_8HQLX1TaOANa/?(8NtU#i<^T!&ABOS9:^:PULc"ghLa6<9ms-QL'E0UWUbYIQ<.hIbP]JA8qgb17+l)shX(Lt8D.8?d+tq$Ym3bGk9Ng(Jq nOlf=C#O9+Q:k^cE=,]+c^T2UY$GmPqRK:1qdH<aT]JNrO'"d/ )b+:<1q0pfm(5OVCT^nZ@IRl!VErQGt\WPB\):iCc/%5so!/-VtIs3\#ab(6lr'h8nQ&.qX],[iCNCa. jU*F,^Z5O&tB.ISo8eAPDW121PX!5k0/:qc-d44p&W2B(0-N1=HPA[AF,8 @.]>&eH\b%N#0d#%P=%5Y@pUa(m3J=^.OU97naP_H^Q6=X5VgnEB\Rc\R]_rPPF +CjPJNLVfJ(^M9:L>C:RaAblU+[7UAfQHWP+q.`rT,PLWD)<8PB LH@<*lanqM=l/.\OkXJEFFV0tA#2'o,Bt7#PZ:bb3q0To=)S%N&rL30f.Id4o,3Ie1Vt= '^'3'^i<t"L6@j(E[['tK""llm2MR?0j[#c>9psXE\M"MS\,?S-Z nG8[C&V5TMabH4XVi9Gb.GMCP"D*ma7(#;nIn(WfG*hp;_2HsUF#GUd#<XMq97(.YXN*1rE*][VJWqlFb-0KSd!09$U09:/D4!Ft%O$Z5SPU;kAXL8qLhn$_3XJW6%%r8_rg"U+jf2!/mriPrh\a:jHC[2+NT&[<m:]Wj.ESA2Eal!GRDOS5N_K*<"lrt :5mk4!]@^thj3&Uq)qKf#tQN$=cY[p`=.cs+3ti+iEAl qgi; Xn7_>=&7XL`[sVMi%j2)/-:->AUAHiQE"GXQfp5Z^@TKQ)YJ3E,)!AFb\IW#ETD$NZ(<;)L4D#Lofa=)(G7QR MNZ'[)?*"K f3teIh<pD;<"p#IVEMj>HA&A+Z;gN(2Db^A,M9Ak7 92o5EOtEhe%H4AC">Bob^kO_ o2)`2'1Y81je?]k_Pn]cY&sg\pb?c]"_ERiNa(5Ih$?aj`>or.b 9ef3`lX+^WpEDP"sAK7E`R?t*R]""hf\a.5ch9@FNE/k`-d$lO4,S"PLKkFo6pmpNX?-!.fN,?rMeIA5;^:m5AKA3h=<m6>XqIRgrkS!XW/W]RtKDUVtY?/Hg% ^A_#tU`%HI7`O;:=fi;CO]t&+=cWkkO= qW<&>Gn4DbX%WG^@LMiOA:DM?F_noP<t,j[ci`IS"?)HYV1_7b=BKZ\Escm41 LQdjItR?ssdT.2)$5i0RD2TVbC:WXR+hi*ACQk_'L:nb.k^<E^#""<C(SJED(p'[lkI@SXIs<=LPV#7' 1SgT=k#:QKgVs-aZ?=Qe+1AUFt\Lj9tdW8qWfBU6WHQsicOFOPVf.JDpnQER\4CA&D"]mt?3E"*'#M0sZN?s$TXXmsA]W0(`Qdnm,r5`73\UY&_qkm7>0[ti4p=eb=jUlQr-%?=tI_*h;j,FGg6n'[1+/YL2e%XQ%5Za?H1 FijKT=bQnh)Y,L5jJ'i(CiWe@k V3I(3\..UG^D,1c$8'^E"d1&OPb3+b;9'"4XIGCYW"3rc@7dn!lHr2NVI#-@GlePX,B^-/%GM_?AWi>=UO42JZtbN[=hB:__5lCt+\W_,4ABdQ,*aU V]ZJ8>7g\=L>KWe>'!C?6+Z)-0jRE&CA-Rps5K(70Sl1roE&LBrla.XhSmI\UtL1mcQ8be+cl4S+-aTsWbdr#fJIVl37Ap$.$"jJ;B'nQGQWIXlTh:(\9L1\kq'h3B9nm5h?D0F6"mHe:8WfR,:FZ`?B:Ls;/A *\FIk_&W!4'B[q=eqCG O74/*A)T;>1s$\fnot$3M/YYiY]U*S2808n3Qfk!F=@lZ=D(\N6ZeFj+6"g!$.Q,J*0,IO@Xc0m+/P )6J-K_8@A,(]XdT]DQ5NdUq)2]a ARkg"jCl.Chf?;X+#Pf4UtXtT_%I$L7&;t.4dr3A^eWFCM(l0]BHnG"r<_ ]3+&RcIbb4/sFEg=Jlo  ZO+@;_]qG09Pf/iN+o*njqQ*]V6NkkH=o).iL/N(eaS[;Fm37b]/hhD9e)Akf;iWg:Y@#=RI`ke$N(M8/Vh[ih9YeB/kE/]6ISo:h>t4PVNP#d/I0jN]q0-]U0)5RK/B8E\ D6.O$J"^tm">HrScj`3pl/G<h+mG%\Ki<IEE/JV4TQ'`mhlkVfaC<QR4N^RSm4gmll`k(!a<TLI^asG2@/jAlO^/YkP k#mSZi7%9]#lrDF""F=qMYIA3jq+mIH-jcd0Pos2U^.kTlHEd#DQ:I0G3=:Ae"C$9-N4UJ&7<+X?QbRl[Fa1@50hoPFmXdG>2JHQ[&VaN/R2qUiXES^'\*L5AIV9;I/Kj>@m[_tl7LZ"K_V*9_:toSt`Jb&HKZ59Jd)M.U=2L*MK#RK]D+k_1O \rN$SjGgbPH6c4q&9<i!ih]RItn$p"i$>40efHh`_6pfr<`;mZ!+'%QF #Z"NL;b2tObIKb,oX_<]5?L:4H@.:^?Yr1N0XKrflHFe08O8iAoC&%_]5 rGLQ:;+];W-d5Xd\m@cMfo]n$$nbFR$D=!*sFI9g=t:UA9pGhX;Z_"G-j[XieTA@N8=8)$VV R#seSQ/-OO1g@ho:05*ZgY?=F$L$8FZ7isK[`M[P"#r9.8ij22-VnZmCmT;Zkg]fT_D= kCt`_MU#4HfD)7#QWf8 nfI<M>KPKFK$lS=$n!\5YB)*/2<)1iAU2"8;OGU*M*j%A `i?USbJHUGmrenT3\=<k-J23`n `r\71d3Z3qp<;*oA2Vh,rd2A5/0%BM18]8j_!QkDN#6oTX?E9E?bcPpA$A*VO!nd3?Apg60\[o"++YAJEYigSs'(p9adY[0>#]A3NM$AnIAo J9E];p^10fG?g./pNe&$.o>&o>1eI/e &n^0m'Jc8eYdG*AX4lLWg9eAJ/d5;Kh-T'O%I\0)\("66bIG"5+2D@,C*tf#)_]ElQom_j%<o`DK^.B)o;YAKRjCPAkAko>%ndqP2i]esMMcetM<`?5+P>K\?9?A=$*OQ#UA]\b[o+diY#>"0g8S]475sOa,-^)"nRcF+)ALo_FpEA,+/j/5!/4pR l<^g,NCj)eD]OW,-T93p+T<*e++H.#Y=/<GSn%r:Aqgh`.0#8 BOHC8U+\%(:AK%-L1aK?bT-dr7I2]j^Af*tf;=-Yr`qNJ,I'Or\&]G4$A5cs(MR^mL.dtc:69/(grAXFK5QC#_I+#pZQJ[W]VjE5tI9P?&tbRD*90"4UQ_9"Lb@-dTB&0VH"F\8i hB00'plbGFAeEn43<iE'+b-9C,,%#87tB*4.8@aA=Pt!66AEXo`/9n/M_\q4$\25!@_]0b?;VhNCVI$d,fZB jG'N:]+P7&*l3d16IQRhlDaimVYgCER^8"UpmE!9#X:;NJB^Y %16FGrJC8Hd[)EA2?[InP)Y/B/d>HAmhBtKs!7jc`pf6kV1aEA( 5B]9KBeVop.NV(:%GT.b.Fe`RcrX$-]aYZn$m@4t`7n[GVNm=i`0sP_$[;,2q=_4QW @bTWV`dCb8<^hcrBaqNB59ERMDEP[ps"4lRM0R<50k>osK$U0s's3A_n`1]6igsA1W1PiqsF3X'ccZ/9AO,YBP%m]q7N&+Vbcbr8_b7X8&n<3mbD/."]38%>p=Y!s1PhSV5ld+qO2oK/t"D<d"fSaGINFrNBLZ+(hpEA7[:J>2mgS)r="TmFF0^5 49)qG-GBn/k X`[J,nI/.>Wf,Cm'mI7B9\PX=.J<scG*mj/ 'jAY$$E rJ_ DTqPA80t"Tl_b6e[M:%-b)=AT7k`!+;t\+2?k4fge$6R+NXa-ElZr4L1K%%Co-\L)-ZIM2hr+<]qaE(68L[)KRlcf.Zd&elS6l `rPBO= $2Jm]>]00CBkj)I<X<dEaVT66!,Y0P+3qG"9<0>oSG%isn6.K`cS4.rX-c#`.IPfP:I2Zo3'F5Ybo7Q4.24%+:1Z#CiiK(Mf9,>VBh'qphp%]56afof\X;UXnqL5&qT*f?%g2RT5AL R $j!.baUTI57,H7"[m:A0g;KjN,g9X%4bZl,f=nQ6.r;$'2=('\pb5&1hAfB"A1!F2!Ig>M5`Si;dk' Larm2<:[GRk%D6WCL_%K*to=+]RhCCqb(\EZE#.XU\geYpA]Q-S\Z24Pf(.FI9NopAptQ_94Fm#:kFBj;DW'K$a3tAnF3#oY<%EEiskpRq-"q_sPeHPIZ]O7E5E40TMV q3kU MNVRlRYRWI?tLlsb!A&-ZQ2Q0:j'AnA^NC*_N#Knf%+RO6EWS5b&s+hp9n7Jjt`NBHoTa5>*$C=q5=Zt[*jhRQRYX^#NaPfE;WB>NYk'PELnsn5.a N(8QWAa@VpQYUMO."U_U'j7XFVr]T ?Pk[HDbi6$Y8)8Jm8ahPI^3]$lLe<D&NgI!1G.pc,)kDg$2j 7GT:`R?IH$iW!Aaf$m=.@[CCZRhk$aMoISYKIjm]T"(VFbr"pre5>Rte_fA7VA.._H-GcAtMsC%$k&Er5QY>] $eLqENb)rRA&]"L^!0p dUK!l1NUh9N\@1rS1MiGSN4r&B\Y59U38)E+C:[(=bi)ieLR?jTRY;6,f%A#^(qC%j&2:[bDN<mEW&l5Qg'W YR2AX cRi/iA;oMJ!%^Bm%\hBaqE>:o*thZI,HHk7`?o'WbA=$TfE<g?EX"(.Il&HEg+E+3G+/L*>nGj3&^@<MrOK8LZsF/ie %+87>agOQJcpQ-[)W?IgsX<csriB-(A>O4Yl0h;fnKaDU5oI&FdiOeC$S2=p\SPR2C.pdn M[.65Y:b",dsJQ;acF=pP P)Q=OZ3N3@kMp\GdI4a7DUF-\r=^^jJcK.V26Ul#2>=A260Y8P&,g&aYR^fIh(rV5dRt;IcInk8E\Va:++%D<+1ETI>_:#"mjF/k(SYr0 +-@.+mWLM\=p)%XBFN/#Ao5MX7>$BFYkq`<7O9[;nXPLO)Fm$h!)[O6V(/hraN_=1m4o1q6benTM+U-FWJSEtI$&UKQ69cA;Cf5qOaE\A$B$0W'ns/F1<imRFbT"E \NN@_Tq_M?%BAHa%[RQG`X^UkVKsDa$@o<9pb&e$=T.-].[r"Y2K9J&cCpb_`a9THa\YZY0**\CESsX3CK(8Dq l!rnO [rANI#bd\0N#f-S+(R:]&p$7thil[tC!cDJ :*ZJ"a(!A7fAe-rFJo/Ap!G+BN@*&m$KplAA'7qF1bsreDKeahX#nQLs.mANJAMif4OQ>lJ3]sl"q`T#b)o6@CGfs3N+i#R@*dsA;bicGN3I`ABl0pN1[UA0HKOa(RKdS,>o`R>?r-D'hWG]iTIAA&GJ_T)!`0I$Qe9MH[]3Ar33D4nd5(g><^5 H8-U_0 5c')PJdA73oOW?I],hh3C1.m3Z?:AcWU=p&7P!<^>Es_NeEiN-!$S1=r6/4WA@`LamN!o7>Am%Z@"\fn*O8IqFGp3fr6SGN*6BC/`R?> bt\R3+3K`2"C&AbU?>pk4]+MjSTrHs(F-Y.S4[9[ZL\@$IIB[W, 5.AWBXqJ9`,9 /k2)G PXeir$/jEdp<n2G<iitj^R^[W'Pon/.,qnj0&MqBL&N!V0dGO0.(dR3/_iW]BK'4^C:lhUG]7(F;:.,=_JtD;s.`4Q=VBrBCNe-ID#03cmmK"E-0P3Mf 7A-t>^rdN&A JfUa(;<6\4/`_^OkN91CJ*dc<ZRSc\T%,!*ftAMQmb=AZckKA4P?k+&&ZQjM/K8PNsEI'#K5<PrIS$a1sSr*qBl)e'@3UsAf(7M)5YSXVBQG.n-U#8hM#(gO+ciSfo@,^ITW*&[H0D(UAkED2$cg03V&,s8Wnte:tQjR*S]Q2KO&YA-^qXS) WH[D\KUA?)] :T ^+cp'<kS1RDo;cILl K8XeKSCSCA.2e4cH-*j^(B;9$7K3%\s:(#AHR+Y&M@R.qU6a$K@8totIK,SOVgK0Sf<">#bjc^31p*Idd@hkSj3)Ft^P"oI*Rf%OlZI8n):UC`R9M%Yd$>"]25-_,o9"[bNAm7!@4HeP/9@O>rR]HGHhJmqr$Wnh@:Uc6\9.bB7/-QN,3le@Zk.T"#O#;g8[lU&3J>U^G;emN)b7gHi*^i,h(^I6riL0q>V6%ON$[5 VU#k#O&KGXUBAoi":>TKBbOld8Cp7Z*QedV!)qEp;GeRmL#0L1t)Bg*SEp9ZFWDZ!pof[[tfifAtE'[_M2ODcYe8G-QP\%`JimAQM'2=bQhXtt.=]a\17:QZ]>^[KgnAgU=HPk0\Jl2\<fr@H83=6]+;d)J#PN%*`<d#+?E]&Dh;`'Nj<7Qp#b.;8(#19a>L7=c`E.=*?kij%`@&C6fFG73qHg$%KAP6r4CFOi;7G^Y`3i[2Y>Ub&rLr7mp1>Y,F"]_0G!b*/(rC$Lk5F%`'BHD%AU-s%oSq[Ti-#[&^0Hr^j4b^+d@1)J'on<Wr:M:>Fnf"KL5;Ar=E<fd0-<Ii_<%OFfnPYGS$r-`5C\A8r&RA/J[[MtlI ?ir4sO?Gp,U7q\=pcY1h:3=Ajb=kWP19A!P$WX=(+d=h\Z8 ZjWmqq(4R9[=]Q0 #cJ'?Z5&ch4BDlL[=TdUV<JpX<_);ak/+ras;/ 5m4UVp,_l=H8YpZ"F+rAt6q9(h%1J)hXF@"Q[)EDHfZ0YDP,1H2%8?K&ej+.VG33./rEHXA^2PAd;M!/aI.]e;)k6qT?A'>o>,"#>TGm_(Z\/<lW"5Z`CErlS*G0RFP<&^8*7XAqBM'@?4+8;W-B)'rjD*_@tm)'tfoXspP7 X!"6n.]WGW5W(\>M>JXZn!-i,;&[Tg\`TqnFRTTAR[7%@_C^kA_nfNXs's!f*G;-ZW=,/%mfR?p70-Q-iA`"Z4:qM0SX?tB?ao1,O%ZS4aTe4[_(P6*g&7,DPj%DKp]oDtlZn9sgcK&jaFE`TjQ[B]05&\E^n4@e*hA]ZnnhoEA.sX\MJ%aNJ]NQB3WH]`[6d!$[m X ?XZmc41Hj3A`gd\,XKf#X)oCp7pgFt*OtSUEe>SdPD`.X;b)JaNA\^n$Hqq^Mh3_r?+eHn,8$5)cDH)M-!<T3CpqYk@e_i^hR/>eWgOZ(]mlh`AJ^,tDp/$$J&;pH\%^\Y[API<t5D-L[%%W48q<ksCt/.-+l!0iA1s0[ZD%el;G=#iO^tNiH=)s^7mW;FS$pN81DN4QA)hA_/;AV3PFbYYg<Qc6e;T@Q\g%p;;)$.\dEbNA!]B9dmXlpNro%>^i+AHK/i,3?26(PW55Hd0RC0VVPF?@Af?AViM.k brkN5LA3M?g_dD+(b8.tq,2S"F* Xtj.VbXlpKtTmP,mHh`)HLeXP#tpcBeZg-K)tlqbaXl'!E9%Ejo9P?0<=T;,ANC"5Bn#^H]?-d9!Se'+mp&o6YR(m25k2Rf@`CFUD[kdAQtj'I%NmQ/`W,BFdMG;;P%XaZN@D_.TTS5KfG3W]br<.]YjY'k.V+O#[0l1O &#g6C5AM(#_I.*\F.No3^C#s6<qr(Se/;aV,r-FA$40"NL&dhKg./L_#Zb %ipAa:Pr<Nd1j<mme*7J5;35_E+!N.*5A1f=i&!@;2iin<c-@ce%I@$U^?U hG60[Q>][S8\MYs[iG2I2dPPG]W5JAVkl<U2[7?6E<%6YFlr45q"3^:eFbi.;:t($pc6&Kd-:U2\1)WK;dlp4AARd7!]>Qg_EG25j7`I'(jKo'IQ?0D]L#X,pf6=<j^d^F=p1en#"L'rCspF`d1oRQ'4jj7ZSi1Wek9E1X+?j/+c;gCB].IQ*sbj],2RMF`pdJ2e1Xfqs*^FYfZ[BR65^sIci'][RNaEMQXW0pL^)(1g;b:YBW,^$.SUke>-RSB9j),A@6.+@#EM(_esBY)5>PX^L]&F"fgaFS]2TBfVJ*BEc9@>K%D#:>Hk9R#n8Hj;n8F]:;Et8UD)ArC:15Q0+1snt3Dj&\P.<q6r-@S%abjA)K6qe*+\#tIlsb=DQjS=.[[OD;&k;T70#&X$'A,>W/bPTOr&dUS..Z1GQK*KA(X%%$k/md0ZmN+E21iLMiJK'GFdS'@5L5!$j!JD#hJ>9s#UsqU':$(#)!NoWq*k$=hsXj=n`,AA6AAP"]Ak*5_P>0.VRZcP.A?0]$^P.94Xps^Me753/ONH_i*`*7oG)l!g8CGG%=1-fH^BIU_t\#?Fs);Gf('Xbae<<=:l)j#h\e;rY.ZU#F!N-:o.1-<$Qk. /M!rbGAc&r%=Vj&_,i-+M-"G]fX@1Aj#j7J+$/5hfbHUOA>bmb(7]@+jYCNCg>B>9M;0#rCq5oZ]r9@hb$e$R:P"+2D,'J '"ps:gb'TGEc@'t;"4DJ^k6aM-)(E*pScW4dAq%?Yr<T?:2te8*@1Edk1Ef!A'b;^.*O9q82Ps_>^,[!`.FW3q?^6aF40AYUWn,GM$Q3ZN.a2Oi).1P$>s008oRAV$XmF(!X:HeF:EJ`E$tnj,RSAR(`(Z_2"=A,)WE(j65.=r-3t&6b4[>/EQ5Iii1OBA:o;''k6q3W$N"+DnJgN<TAod3_g_IB&sd0-E<-%f/0jL<VPh8]`5Fkln!clZ97BarE(*hA&7DL(DK+1Hj/f\pS.>KN^2%:[Zk="Xpn[f@7#GLKdFi<[>ZO"Y@ 7R#Vn5DNP]kl.6?QX<]JJ>"U(G>6;TV,'>X`N/>^<6e]Y=rEG/maO*SWSH5cMYhpfT:%TC3TAgm[aO&f2R"WSX39mtB)ED:`;-;W*7?*Oa6_I0YY[HPeFAsQ'A"5s_f'H^%BUN]1f\] ?p9LX+lWWreE"PZ].Ef7Qe2P?s6-^$t&'T&[0,EaBKthk\9*AlDW$s)CS[Qlib6-r[q@UshcoJBUc7ndrtbQPM2K#CBm6SI,i&A5:]>C +4_ZC#R%:mKOq0$FmMCUeP!Hg^Jr8P:% ?e%Jq19AG.\OAbFGV*\B9Y.?j98=S=bJQVrOjV&hHGTf+kj6@%%l$El[B-U85[bg""pjC6;r4Ya[dN`#[N/$1\YfI*l:DiL%?#N`9AHh6A2rLr(Vhc$[Z*C^U?SM1I86hto\\Tb6@UsglAIo%L\"lbh>h]G8/s+4)a *4olRYgfXB,!]:BDb=DA)ICp#)6c!BZ\])'K>PAX$,'0]5^E-Z<Oj*(F_SpY4'9e 7$!Y4,)cLF4QN4dX:SBtPG ELLYK^5AtJ$B:Of8"pFg:r?D*5);**#/r="Eg-GlT!+oAINJVC;gXPm(dhblN;EAYE]>I4MEh(!YME9"dkX &Ar]K?`R[o!*knNfEs7,(MsWD-?Wibj_kj`#$KY]X/,AohF1U`tdg#-3F"J4QOrsep<3#g+*'3.T\2,3l$>I>MGac F)J<rZ&n%^'C#n/^;EoWS^'j7?cGhVS4-mY@jZN'UR14NsN\_#"i m]g*5_s!9k_a/HF[0G0*_h#.af3s?q3]U<h31YDM(0Nr>p9mi=rhr"%n[W*BMPIHkU"_:]Y?P*\N]AfdGkR?HEoOn&Ge9)BkUjH ENcm,MV:EP?QB>0B!SCDoBWb%I[A"8A7Ii5A2A)>e;ViJ#bC1XQ.g9jqLAO$nQe'g@ISjnFkg\t\Q^EVg:e(XaU-AT2,Xe.%D-<Ta&s0NQ`?A(s=JK8P)-P3A.Yhf?Zh:kd$88sC0N.C*a`d&j9512Z)@+3NhHg4jMD\?!d&J9!,]Fhl'tm#e4_FA*IJphtmgdZ00*cBAkkAW"t0"S],DoGBf@?l]O$%SF!m57pb1\EOOh%L5-W$LT`4lsb7MP^2"d=&;tW5Af\ ShQ<D"3RLP3b- YWWP5K_HCI\ZL\]1%CM^>g`<fi]qA2qPtJ2:"-Kj;Q,`A;LUqAm<cqA-=X4edXjr^/.D)\`[!U0Gra!^=PbU5<hD3nKi"i#%l& o@XN9k2sg/hXsL2j2G!!DnK_Ik -O_E9d?mAM>W$PFDP7c_C1ln8Ui]pp@U*/2)'lc3Q>J$_5Nl%.a.=1<<46LR:WBdA2ETem5-^'p[6G_n;\gN=)N@E0DP>kfn!_46eMq`2Di4(K;+1G,X*!KZ'&(Gs6IdK_c<4n)p'gP.K!hp%g2+'pAHPdX.kq4.H10aO($ns)&JtK:2?^X=L$T!nd`:oHb$,O/$PM1 hGkFY5mi"^ZHKFN<0*\0rkWB[()Fg.1'^8pd#G`sA!X'r,o0[eiF^CM%G0pmYKKHg%gIWJ I1']6cLlFKg5nW:&:ofb+Ejk&naPs3iQBTG7H`.UDg<P^Oji>;n'<38XtqH6-NX!5<c,K@W#GU$3FB3Q+:&taRkl2'?W/Vp,I?*+ SLp(a6f(*?90(eT0<drjk_':;\*i3WI.2T]%SW&Nn!t%?a? ;^@0af/pB^(c6S+8.N[4:U4e^nq/38NgK)76QK:cor?:lh G0YGJ.gZ9FS/()) -4 2Dhaln(^p,H!T7%&iAa]Gk`:i'UO_e/Z=JR6l[WV"I];WTHU[^l74)cOk1@(Ho!2UM3SW-[-]J@>rG*h`n>r@'`.c9&F"eG+A?3G![`;O%*LiB;koOJt3a,\aG9L??iGc?RF,Y9)FH 19=WQT0W_bU -:J/!3Q(R5f! gD9&5HK,$B=<S<JQ0!qV^-%Q.Jk9CYPsml;>d)1i-#,bT9Me9+PEY4*#Lo#bK6(ADp+_8MLO0!R/esc`#W/,ksGpTGJd1k0Zl8dk"LrEPI;`VfF"&]`bl<$9A`NPBAqEV91:IH4-mH-b$?W7oHKX.07\hlj]G`&QBi 4R@+l16$ T&P7KhnF_LKNG;DtSR&ch&;j$&828OT==(BMt,/WGBil%iW*j,HZ=HRO.TSV7m`>kbWTo9P$;l#2;spkK\j>E3?h-ZpNH!:&50TC]\&0-%hiHeZf4j<39n1e_Bl^+JhkBJA? DAatMI%1rZ(YF C_c!2D+_`t+kAFF=9@S)fjBPD8L]Oj6%J<Ul<`mbNC_bk%?4SE89r#t2J-q"6! mK2c='Gt?%*!VcRp90]RW"q`;B2nXCMf:.^(_=aM&VAIZLo@mm(`oC034mbr6/r; /.T#k%+7!H"/+N92`nfL9sUH(q_bYJlpS,6*1A>s-X!L9 =(m'o;L.:DWGC4TsQrCiL,t_RpDC:#]"lAeIjm:fFc?@=, PdaqWbpis'*NoC_KRFlgiUe=&K+4Zf7V-)MqASmc)6hcfja5WlS4oN=*Zbr?d>"5A S`4(OidbFqk",r-O N^g9j$C7Io9^!]KZk"s:m#90bM]D5E)js"Qa9+lk'Xb+ONY=,(-1 4aA6OgC(qdOV^"N] $AhU-9&2Kd;^UM9K`7$6.W3F1Fc\sp]/%]rG-Fk-(jj1qNr,5 5QqnA]@A[Nt/&0U1?eA?A[r6&Bk3,DjS17B@g4o[6Z3lAT>PXK"MG1fl`U27L<C92i`6A@^\%Ri=F>-7IRk-//*\ k+6OJC1M;X<nX(IgkYR^(%3rJA@E7]8K%7.DbQ'P]P*ef/f&L4M!]9F/TA#]D#+h3J<D\2AIA*X?.!Y7A7Xk#B:%4.'[(AS,a FpW>:XY?s9-VjH*AOQ%QGK#o]bm$,`hQN&$0QF_.-(2`$"cbE0jQrH7pWZ99Z#%]*s&i/ctQ?r\9K%gjYMg!ZB48"q/q+n.fW6'*`0D3]gGFQj-B2X`&e&*Md%lgf-2:>lk1AH7h5>6pL3p"PSO)^)!=/?7(S:5%fpb<.]"!frm;o5/.qtpr4G,=Et+<?\Kr/3h@_m>A"-_VS:Q2Ph&A#?p*FVUi9OPj)sYJK/d#Pj6ZU =gXMCK?h$WTY:#JjN=AA]K.dZY,B;AGO56C(c'g]$P-(\/DF*X"/jl96JA+gJn>l;]RdWp6jH#pNdt'1U7^4qgNl7K#O;PA&\;1a/s*,PmG$BZj6L,5+dO^Hq($;\je4;`5`D<"Y0-[o1_6\r.AF.emOM71,=T])=4RlPMa5g6.)mheX*t6)M7cVKQ8LV!BEd$R<. h2GqHFC0Ns+s?JYeXAt"C=H(apc;]J0pAnML& $Ma55qhEp&k=:9n7mPTOA7P8rS_E%an7;M^(:aY,D`U?3YH*^Zh)^na=bkW@JOo&f?E\qNC+Z(ck7%Z/<asX>r8F]c]M/si't?:2I@;o2?FT8O1,iGhM9Lc/^EB5lUKa-Ilj_f'b?KH6U)A&A:YnG.k8;.gc#iYhU/5PKO*2CkC)A=Wm9hAF[I?7rA=J;Mjb'9n-nQ7c?_Q/$L[VOe^_q;%%t)@\A;G&r3E1-Ce6hG(sYt9<qAtqC/q(#h82JgF[K"s)R\>)qtJhs!gjpPa5H=Y^sj`7M:3l')69]7h/>Oo !E]7oAFhAf]O h<=)V+74ipr4'OWir3bB(rp](X@B9(j>O)&UV29,=r`\E\pgD6aLVO@4]p=QrA^d"48KtpS=JAXLU'U)FVN4mQ2helEl]%kf L/aPr4R57HoT+(JOA?Of>:BQ_fEV==N#Y=D-!jeEcm"U,a7HE!AI#Ap=c=p!?jq8rl("H/m*:3iN*+YI"cm?&!;ESGIao< +`8Uj!FAiL+r+lD(oh(\G\U<-mb>Zso$QRskn#&=QLl+)M\&D,mmcP(G.V@Q&\l6]%WSNUaJ1\EV+-Mo,H)f0c<Z$>@?=/-?hU\8n T8 9o4M.!^]X%i5VV7kL[l$UT4?D!aJH!:Lp`MgXJE_2LYVSA0s%P-a0[p596d%s %V!@0t5O#e(+ `E@" X[B  >tQ>ai%n/D=:Oi&@%,Va'npZ so4N$!)k,_h4mpg ClW+6jrf^rt@\7:L0AUVG6j30g+Dmda`I*AcG[r-J^]S5ER:L ([\ 'Oj^$!PT^/K%qWl&^VLV@'Zq`WcbF+tL`M E#RJfj27.I$rC_hh.W==$s>Wo^8U<`3p'\)>6#:Kmt[IS;/FA1c3MOO;15qR\k%b74fT`^j8NQ]kbs%N<I[E)@jiM\6`4]ni6eppR6KQ`c;cl(jM2U-0a3rMH`/qemm[UW%</)WM>.5k2))<Un)f<Je5:;NZc4M^GA;L6YF(a&Y)p[:+*lA/Hh.H1V3R:0.2JiY[`0_LaW^qNYR:.^lJ07ImZKDCZ%AhjEJ9-gH^Rpl YHX8nCPVO.(P^5.'h GS@\W%\I3"JE]FtA,ZFGo-t)`5$m$80ZY]M\#>oGJ]GVe\gY">Cj+cc^:RgbqaGOG7*aPjU=4I1h8%Ym&)O/^UdMO]s_i4aCp&:Z8C2`R2BDAj['ZE(bY 423me^/KaMH04tC(Q>3 V fiIpUX>EKdp_.bCc2AWW\Tk>?KA-Z&jX$iQ/*iZO#HFd1:SrVX#E[ZkG.3hbt@*r44i4&XC/K]9%?Hs3caUV+&fIqI21*h4nnW4tVD&tVK44p];U,Y;LsLM8&>4<jt1FslI$k)OY@ASS-q;l-sckF)4oR<)5Gi64:"F@j4&?L&JE9:JX RL`>l3r.:'YiW>)q2=K^!3h9O29F_m40jW7Bi##fM1^DnJ5oWrN_O:d;&SX=e=Erqo;JHn\o9CD00qVpT4IjMA`<EhoX&(F4Vs0=cZ^: c:jadc6q%'Yb]](p[7*kk&-;3mjtXf?"H@AN6R*N,f+WpTe9g9 n"%[Ki`"k,I/%;cp9 CIq#fsO/A g9#p(AE6_cTlZ8Kb0M9fesQE1#FpN[L=%ef0UHakB3V^Ifr6dta%pGZ0hqK%WpD)B!1IPsAgc&;.8%Hd1JS[Ra(&;A^ls=d7s?:#3ttAqThEs^k=hMSj-qEAR+a,\hUD./-=XH1Yr`!Nam)rih#.=)5j^_Plm%.Er3F#:;n(,f()%62NEf0,IGbmK9hfc2X1M8Y^`"QW4t'&JQGpp?k&,.\&%S_3XaetpOT'>r1')8JY,(p8d5FAb1ERtAsArdH+)1!>c/As.1Af4q,Ads//k1^V%4q1htP*"KAAU$:8Tl#Xp' SY7!a0h)GrV2.g'JmbYRLO)LRA<4b>"`LY([l!QIeWG; gd,hdog "Y`#g+M:b_O0"\.f9E"1'O*o'eML4nD@:ARo5/G>7[rpTP\i:7 tU!rb#sBA4EEN)o)Ni[ ;2/-_A>F%U)GMj c[_s18UoP6k-A-t@"aN/KX9cA'Bp'hAc3Zp'i.O(iH=o4b5JRt6&`C\RE8D<.*KA_2fRf-IR?<aDo#7oeI+ @cbq@6QnaPeG+q@RXQSS,A2]J:ce.[VMq-8H$dJ2?Y<p<t.g]Pd]06^W.C94"7m?6F]<r&b&4$,FTt;FLt?skeb(&`WCM+Bf@04l.ECA_^je2A/Rr)%X.SVaSj0W;AaJK2^?m`Wo3N;[ eW[TSiFn*e%=h:6KULm*>PGfr,$a6gXYkkZKCoEYMCe*HFbQCgYn$GfFr6ELPGH=QF<Wi%7-T8f[._L>7g%p;aj)dPeUmISchF\"]6P'FAH0f7iDjao-n'[qXI"PT4la?DUfc9k?'m.-N\i_:dC6/'UfH8BSZ!rAAd/+58iD,\I;#"kZ-NoUr$*li&@'0d W'RnmA%&+R^lS]WQABo2P3P^#>;>N;G2K-fTeXB%;%8fn;A,Q%%ns?><8o *QJF]rt7:1#[loX+;0\@"RL&[*9+.d^2Oa+2cc<d?\&kY;#g&CC`ik)@6F&mP/(#7>$(O>kMPCp3&$1aAV&(-aL^I$QM6?5UnJ"@]_Vs dBbJl_681=,g7pNAcVD@6MFFR+p=Na^QKhb5" m)1P&9d](6!0QB;@ZNN"[^RIGq?dteA/H<n"\?Y?Rnm7@kqdK/GqnUlq63"3rEJB>&Wg?!NmJj)n9j?;Xrn<t,8N<<IRL5c*c=_AV-Ddd/"L9Wt[:k]q+D6A+tD=Tcb%Yo>)A.G000"[<X2lh.ADb8ZAJp*JG:XqD0q s^T3)jbPK3aX[)r+Dd`Kg;3YfeVEotW^Q3f:]o1 b[h3#t\T0%V8Z'q#lo ^'Btf6b:(A'j_*J][YQkL]tE<U6^<B(tIX":-[>?bIi982-n6rAf`gnb]Li9_pD_00p\O!VJD#RJ:SM7,.OBk$a+/%ehlgR/`-a,3Dl[6U437I(g-dFm?3a,"0WAS`MSdckj;^91A,DS_jlfSnr'NBPn9An^:<>2,tT%e2IF?MH:%T:om3@b-H's/A8hT+",Ho@<0.:MHts;XK](7P9ro#NaFHsR6n#Sgd#56*RM+t95gWAo6;/RK5Z\\kSam[(9@)/;_!H]eXco]q3+hUF Op8eZt4 `OKe+LDOF]qTMDnY9!M@Fo_i2LFLsTlnM@cqcl(t*a/Sd$Vl@8Jj;a*@diN/...8;bboWLH ";eF<?%>tsQ3!S/U;]UA_n@+n2://?H"OZg!t/8BY18p7HCLq,]h/O$M^XNV[]B$!2mKZ&Dp#0dPk1lc\9`"OC!j^ KqIoc#/s\GAfsW18)-XA8fkOT7W;_BJGar%p`pQGl->3%W;3kb`NBh;jlPKtiT?opK"Z)m#(?2jYIt;c_Gi=m)noCh3nM,MURUo'"-A@Q$E!/YanjTG)F'>lV I!6D:6iX]8;[">h:$aQZt[I8J5b5ha'':)oK';Ah",Zk)mj)$IJ]53kP\9%bPcf2q1>J q;4c/b7U 3]5<Ji*PH&"e!2&i%s,PV&:+mM&gT^osaiZ BA6 jIsjqOJs[*'2pJWZ2?!MPBB[No_QWpD*8=41&0ikriorRAi3[<g(o5WNi-'-J>QaID5ki5@SIKL-P7`a h9FWc./jQndQ3gC&mb&>EHe(m;rHk*JW</1(VW&be!-A$] D@rmnq2ViiH:.C:#7WS@?a (r\C?a:A39Ms<sRc'+[1DNX3,!)q>SC `[`6o'U#MGFW+=#%]>gYQda..\Uai?714@2"n`26b5N]AKfOa"@himgc:Cf-?$K3*Na%'2P$R)OmJ48%&[i6c?+#f4@t?<W!IF0Rq^[V&JqSmAMFB9+7\r=F2MSP^l7]/!RYS.INp?4,sPX!Mt<M[B8.A_)Fo8!kW\f8QEh#&3B3iBXH?X'J P%2i(tAr$AVa5@f:4BT!OGqV=..\jL) 3dEfc%lYY%0_ ,NNhQd=l8SUT.clsJnDsMcT5@i`CZAT?atToZ?([ST+/Yj^t)4Pi.o>A!jBGktEl?gF^"=rbPBle;s0WfFpiWKpOO;#<Wfg&UN%]\Wo*aG$D->/5`\Qnghr'\0&QMbrZYB2nrrB"E?n9@F;/:;!H:/a5`YB4"L%+ Vs)6n^F'R\fA(C^n3f:AM"`+!#Pr*!k='5ZS'<lt8a0qpkHDcUiL')5+0S6>Ka-B!S]7\]W5DnaQZLXfeT0+l:PR6l[ZhB<6p2m#$XUl4K=-00dVAat_b371"\eYVPe+kK'?gFA9T;PAG5SFqN%;Jl.&FP&G?KG?`X,hdZQr"3)D#.ZrP&"eFHP4\>,>A9e_M@,51:Oc6,Z*`m?k]Ej@9B/l1e[/NSA#/PDK`+R^Z0:[$_9=1R,$!PhSOY_#c0\<<n:TWg!J;JJ>;"J$tt:>s.0Vn\L.V07Han]b4!Ti"d,M%5)AC(8JohVLR5qJkkhB 1 4h:t()$A0d4>=k`nS$<^*T`,?-#4Lb/A/HC7<l)I)%)T,!lCZ6JF.sX$>Jfnt$Ys;@p6%%ofb1eg1d*[Ob%,S?DP#"[2Vt3,D[A'')R>XQief!P!GT>PaSE4cD&5d2D B=1b-*9`kAinr6pYq7QA']!%JA\b;QE&-B%76m*3T 1d[lW@nf(o(264V s];P]5A=;Ad#a2BsM1>oF^A+<U%UtGDV%G20PqPATl36MkMK'50G%:d\> 0fTQg]\ofTp`<&_e[A>YYFAo7b%#?\QUVS]l^AQ7@a2>WDBm&T)[CkA)H>h7q(m4)-Ilf6Ah%*rZ&Od!"no"AFLQFg\]ODV+j+_/Y#%c7fLZHD*USnfmKn=W+J%Y><F(Td3NK_(/F=b%;?)Q.mW<c0a_FgK;Qj'Ihd&]RX*?7o(o]5aWM//0r2*ciA`lRBLh2N8!W$#Ha0[T[[U Tpo4oe>\$H]]a&eIRgLgm36@KthJp)6^6r:AcJjicCR+dJZ)8AmNFH^MkSoG9G72Wq"oRn8bM+4Sj0Drg&)b<9s>+SJ:H!+B:.R$rCl%@r*8VGd7lmX[/Bp(\nhtU9No7OG%Z.n%!t40&=RA);(h&2re#QVjaI">Ie+&DpW"%44A@l$_?P*S.q#Kp;-?\1<n0S,C+^h;RfAG;@KdcrCfFcYOl3+DW!+89kD$>`((G9c\?G(O%^A6I1(%j"6_;(h-oS05i*]PVsl!B1bGr+,#F9B"Trdq2\#rXiV>&q8BTf8)ZPl`P[0dd&chG=?GiW-LC80L`6GP8/sf:S\/7CJ_,`sU!VeToliSQ4)oN,E2CjEt96D'A'$Jf_GHlPW05caah,O.?AjL3EcW0 U7,qU-E!pKce(2/0`8"77bgBQ*"q2Gh.+[@.E"tn=X0[h%CU1g?Bk&,>2d7nS5qtU!%?b:3<7O[!Ym;Ws&F.bq$$8V/-@D38X*<\46*T VX7rg$cCG?#W9 =CEi(:AYk38OAHBbo@6gPSM\)FF29a!l6U9A9iFq..l=45o23O-Y"ql1KW?!;O=7TFBdokoT5s(XkbBoRGs7pZ[s]k;;'`i*2olK%K6=]eapN&*G/A30`..,U+_n+;Qai_1\t[4%iXHT''ABsqHAWO4c7(!sY7@DAt>rS^`LJKmC)62:KCh!L>1>M0Zplodd..Kd9 U^c=h)_c0->jP=W+9Ip=c3q]Vo93^ZMQOG:!#ikFbN[dV0*+sK]A"q^V?e2?<C.b+"dUB^3kmf]Fj-3Gk175U^\&A+_aD0G.98eOVRW_e(* k5StMMQiqkA`,tI+mH,3s0>YbA;()aF5od-c;Uj:(.d/$C=\o-lHB)4+0KiAr`>Y%A$A47US3H9Ml!/i1I=&!Gsn4T6qY/N1Qio+m$p9'F:VhR q&B>XDo6'$>e6pdh*WYB7[5`k^"HtY)0?V]2_>BWto!K599ds]mUt,1KOt=3B!lcQ'E,>I"A?O`@9qMec$5$U-5\3pE:TQ7F9+]!"p`K=ek@>,dC#O/$8BpkYbVL\*6Wi8f2o,;VLS<qhbHe%,<,?sMq\%rp`UG, 86V2T)Pkl/(`)=@D&ctDt;TE"eeb+,MQ9nHV\0(KX2_gL1ADp!=#n]`fq)+s'ACJ8d%t57UXV>@RHr(]NkRQnk?8<fj'p(8F`5\d`tN>IL0oKLj'*N\Vrq:AN)aZ!"i;e(D(`*F:_.$f',ZEg]NdGT*S.:A6PkGf0?/@dmLP^A) Jh3rjQ0-kZ@OA^T41[DLG)O0Jtg'A#G+c2^X>l8g]1A\lB*)c&bnG8imS[ocBS.AXL%K^ .*L2`,CUAE.'DkbK4LZ_@)4MZS:Wlk('RHFUO&WsM;tK5fL5dm<-G_tmh><M48CSG#aDd =eP*OC;Sr6-64e74'>aA/"Rn>e-@cKaUr#`D"A%Bp2)>#0 Y-=s-jr:ita j_jD`jN+i(GL@)Cm%o@Afc`c$66HAt[k5gOGJt-<Xl`Q@-J0e@ZMq082A]Vcb+#AhUAG#tSG!8YNLYDPh-ge(BJALNLL]jrT)LcHXf[r^=ZXL:dp'AUr%l"11^rhds/@+M82o&oa@MdCgB$eIX)2`CdR9V^k(L]]C&p:<.^;]XqeVQ&@ F[DAGd3!)q^g1*:2[\A8M@h)][7L"(X;r([rA Hf8rN&*A5=$oTo5s#;GCZX
 
--- a/j2se/test/sun/security/provider/PolicyFile/getinstance/getinstance.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/sun/security/provider/PolicyFile/getinstance/getinstance.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -23,7 +23,7 @@
 # have any questions.
 #
 
-# @test 1.9 07/08/16
+# @test 1.9 07/08/30
 # @author  Ram Marti
 # @bug 4350951 
 # @summary 4350951 assumes permission constructor with 2 string params 
--- a/j2se/test/sun/security/x509/AVA/AVAEqualsHashCode.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/sun/security/x509/AVA/AVAEqualsHashCode.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 1.5 07/08/16
+ * @test 1.5 07/08/30
  * @author Gary Ellison
  * @bug 4170635
  * @summary Verify equals()/hashCode() contract honored
--- a/j2se/test/sun/security/x509/AVA/EmptyValue.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/sun/security/x509/AVA/EmptyValue.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 1.4 07/08/16
+ * @test 1.4 07/08/30
  * @bug 4721433
  * @summary AVA throws StringIndexOutOfBoundsException for empty values
  */
--- a/j2se/test/sun/security/x509/X500Name/AllAttribs.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/sun/security/x509/X500Name/AllAttribs.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,7 +21,7 @@
  * have any questions.
  */
 
-/* @test 1.5 07/08/16
+/* @test 1.5 07/08/30
  * @bug 4244051
  * @summary Make sure all PKIX-required X.520 name attribs are supported
  */
--- a/j2se/test/sun/security/x509/X500Name/DerValueConstructor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/sun/security/x509/X500Name/DerValueConstructor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,7 +21,7 @@
  * have any questions.
  */
 
-/* @test 1.4 07/08/16
+/* @test 1.4 07/08/30
  * @bug 4228833
  * @summary Make sure constructor that takes DerValue argument works
  */
--- a/j2se/test/sun/security/x509/X500Name/NullX500Name.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/sun/security/x509/X500Name/NullX500Name.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,7 +21,7 @@
  * have any questions.
  */
 
-/* @test 1.4 07/08/16
+/* @test 1.4 07/08/30
  * @bug 4118818
  * @summary allow null X.500 Names
  */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/Aggregate.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+public class Aggregate {
+    static {
+	System.out.println("xxyzzy");
+    }
+
+    private Aggregate() {} 
+
+    private static double hypot(double Berkeley, double SantaCruz) {
+	return 0.0;
+    }
+
+    public int hashcode() {return 42;}
+    public boolean equals(Aggregate a) {return this == a;}
+    
+    public static void main(String[] argv) {
+	System.out.println("Hello World.");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/ClassAnnotations.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import annot.*;
+import annot.annot2.*;
+
+@MySimple("value") @MyMarker
+@AnnotMarker @AnnotSimple("foo")
+@AnnotMarker2 @AnnotSimple2("bar")
+public class ClassAnnotations {
+    static double d;
+
+    public void foo() {
+        return;
+    }
+
+    private double bar(int baz) {
+	@AnnotShangri_la
+	int local = 0;
+	return (double) baz;
+    }
+
+    static class NestedClass {
+	protected int field;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/FreshnessApf.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+
+import static java.util.Collections.*;
+import static com.sun.mirror.util.DeclarationVisitors.*;
+
+/*
+ * Indirect test of whether source or class files are used to provide
+ * declaration information.
+ */
+public class FreshnessApf implements AnnotationProcessorFactory {
+    // Process any set of annotations
+    private static final Collection<String> supportedAnnotations
+        = unmodifiableCollection(Arrays.asList("*"));
+
+    // No supported options
+    private static final Collection<String> supportedOptions = emptySet();
+
+    public Collection<String> supportedAnnotationTypes() {
+        return supportedAnnotations;
+    }
+
+    public Collection<String> supportedOptions() {
+        return supportedOptions;
+    }
+
+    public AnnotationProcessor getProcessorFor(
+            Set<AnnotationTypeDeclaration> atds,
+            AnnotationProcessorEnvironment env) {
+        return new FreshnessAp(env);
+    }
+
+    private static class FreshnessAp implements AnnotationProcessor {
+        private final AnnotationProcessorEnvironment env;
+        FreshnessAp(AnnotationProcessorEnvironment env) {
+            this.env = env;
+        }
+
+        public void process() {
+	    System.out.println("Testing for freshness.");
+	    boolean empty = true;
+	    for (TypeDeclaration typeDecl : env.getSpecifiedTypeDeclarations()) {
+		for (FieldDeclaration fieldDecl: typeDecl.getFields() ) {
+		    empty = false;
+		    System.out.println(typeDecl.getQualifiedName() + 
+				       "." + fieldDecl.getSimpleName());
+		    
+		    // Verify the declaration for the type of the
+		    // field is a class with an annotation.
+		    System.out.println(((DeclaredType) fieldDecl.getType()).getDeclaration().getAnnotationMirrors());
+		    if (((DeclaredType) fieldDecl.getType()).getDeclaration().getAnnotationMirrors().size() == 0)
+			env.getMessager().printError("Expected an annotation.");
+		}
+	    }
+	    
+	    if (empty)
+		env.getMessager().printError("No fields encountered.");
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/GenClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * A trivial generic class to test the fix for 5018369.
+ */
+
+class GenClass<T> {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/Indirect.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * Class that is used to provide a pointer to another class
+ * declaration.
+ */
+public class Indirect {
+    Milk skim = null;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/Lacuna.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+class Lacuna extends Missing {}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/MethodAnnotations.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import annot.*;
+import annot.annot2.*;
+
+public class MethodAnnotations {
+    static double d;
+
+    @MySimple("value") @MyMarker
+    @AnnotMarker @AnnotSimple("foo")
+    @AnnotMarker2 @AnnotSimple2("bar")
+    public void foo() {
+        return;
+    }
+
+    private double bar(int baz) {
+	@AnnotShangri_la
+	int local = 0;
+	return (double) baz;
+    }
+
+    static class NestedClass {
+	protected int field;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/Milk.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import java.lang.annotation.*;
+
+@Fresh
+public class Milk {
+    // Moo.
+}
+
+@Retention(RetentionPolicy.SOURCE)
+@interface Fresh {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/MisMatch.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+
+/**
+ * Class that uses constructs whose language and vm interpretation
+ * differ.
+ */
+public class MisMatch {
+    static final int constant = 3;
+    static int notConstant = 4;
+    private static strictfp class NestedClass {
+    }
+
+    protected abstract class AbstractNestedClass {
+	/**
+	 * Another doc comment.
+	 *
+	 * This one has multiple lines.
+	 */
+	void myMethod() throws RuntimeException , Error {}
+
+	abstract void myAbstractMethod();
+    }
+
+    void VarArgsMethod1(Number... num) {
+	;
+    }
+
+    void VarArgsMethod2(float f, double d, Number... num) {
+	;
+    }
+}
+
+@interface Colors {
+}
+
+interface Inter {
+    void interfaceMethod();
+}
+
+enum MyEnum {
+    RED,
+    GREEN,
+    BLUE;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/Misc.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * Class with miscellaneous structures to exercise printing.
+ */
+
+import java.util.Collection;
+
+public final class  Misc<T> implements Marker2, Marker3 {
+    private static final long longConstant = Long.MAX_VALUE;
+
+    private static final String asciispecials = "\t\n\u0007";
+    
+    public void covar(Collection<? extends T> s) {return;}
+
+    public void contravar(Collection<? super T> s) {return;}
+
+    public <S> S varUse(int i) {return null;}
+
+    Object o = (new Object() {});	// verify fix for 5019108
+}
+
+interface Marker1 {}
+
+interface Marker2 extends Marker1 {}
+
+interface Marker3 {}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/MyMarker.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+
+public @interface MyMarker {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/MySimple.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+
+public @interface MySimple {
+    String value() default "default";
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/NestedClassAnnotations.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import annot.*;
+import annot.annot2.*;
+
+public class NestedClassAnnotations {
+    static double d;
+
+    public void foo() {
+        return;
+    }
+
+    public static void baz() {
+    }
+
+    private double bar(int baz) {
+	@AnnotShangri_la
+	int local = 0;
+	return (double) baz;
+    }
+
+    @MySimple("value") @MyMarker
+    @AnnotMarker @AnnotSimple("foo")
+    @AnnotMarker2 @AnnotSimple2("bar")
+    static class NestedClass {
+	protected int field;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/NullAPF.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+
+public class NullAPF implements AnnotationProcessorFactory {
+    static class NullAP implements AnnotationProcessor {
+	NullAP(AnnotationProcessorEnvironment ape) {
+	}
+    
+	public void process() {
+	    return;
+	}
+    }
+
+    static Collection<String> supportedTypes;
+    
+    static {
+	String types[] = {"*"};
+	supportedTypes = java.util.Arrays.asList(types);
+    }
+
+    /*
+     * Processor doesn't examine any options.
+     */
+    public Collection<String> supportedOptions() {
+	return java.util.Collections.emptySet();
+    }
+
+    /*
+     * All annotation types are supported.
+     */
+    public Collection<String> supportedAnnotationTypes() {
+	return supportedTypes;
+    }
+
+    /*
+     * Return the same processor independent of what annotations are
+     * present, if any.
+     */
+    public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
+					AnnotationProcessorEnvironment env) {
+	return new NullAP(env);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/ParameterAnnotations.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import annot.*;
+import annot.annot2.*;
+
+public class ParameterAnnotations {
+    static double d;
+
+    public void foo() {
+        return;
+    }
+
+    private double bar(@MySimple("value") @MyMarker
+                       @AnnotMarker @AnnotSimple("foo")
+                       @AnnotMarker2 @AnnotSimple2("bar")
+                       int baz) {
+	@AnnotShangri_la
+	int local = 0;
+        return (double) baz;
+    }
+
+    static class NestedClass {
+        protected int field;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/StaticFieldAnnotations.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import annot.*;
+import annot.annot2.*;
+
+public class StaticFieldAnnotations {
+    @MySimple("value") @MyMarker
+    @AnnotMarker @AnnotSimple("foo")
+    @AnnotMarker2 @AnnotSimple2("bar")
+    static double d;
+
+    public void foo() {
+        return;
+    }
+
+    private double bar(int baz) {
+	@AnnotShangri_la
+	int local = 0;
+	return (double) baz;
+    }
+
+    static class NestedClass {
+	protected int field;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/StaticMethodAnnotations.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import annot.*;
+import annot.annot2.*;
+
+public class StaticMethodAnnotations {
+    static double d;
+
+    public void foo() {
+        return;
+    }
+
+    @MySimple("value") @MyMarker
+    @AnnotMarker @AnnotSimple("foo")
+    @AnnotMarker2 @AnnotSimple2("bar")
+    public static void baz() {
+    }
+
+    private double bar(int baz) {
+	@AnnotShangri_la
+	int local = 0;
+	return (double) baz;
+    }
+
+    static class NestedClass {
+	protected int field;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/TestGetPackageApf.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+
+import static java.util.Collections.*;
+import static com.sun.mirror.util.DeclarationVisitors.*;
+
+/*
+ * This class is used to test getPackage on classes that are
+ * not already loaded.
+ */
+public class TestGetPackageApf implements AnnotationProcessorFactory {
+    // Process any set of annotations
+    private static final Collection<String> supportedAnnotations
+        = unmodifiableCollection(Arrays.asList("*"));
+
+    // No supported options
+    private static final Collection<String> supportedOptions = emptySet();
+
+    public Collection<String> supportedAnnotationTypes() {
+        return supportedAnnotations;
+    }
+
+    public Collection<String> supportedOptions() {
+        return supportedOptions;
+    }
+
+    public AnnotationProcessor getProcessorFor(
+            Set<AnnotationTypeDeclaration> atds,
+            AnnotationProcessorEnvironment env) {
+        return new TestGetPackageAp(env);
+    }
+
+    private static class TestGetPackageAp implements AnnotationProcessor {
+        private final AnnotationProcessorEnvironment env;
+        TestGetPackageAp(AnnotationProcessorEnvironment env) {
+            this.env = env;
+        }
+
+        public void process() {
+	    boolean failed = false;
+	    String packageNames[] = {
+		"", // unnamed package
+		"java.lang.annotation",
+		"java.lang",
+		"java.util",
+		"java.awt.image.renderable",
+		"foo.bar",
+		"foo",
+		"p1",
+		// "p1.p2", // class p1.p2 obscures package p1.p2
+	    };
+
+	    for(String packageName: packageNames) {
+		PackageDeclaration p = env.getPackage(packageName);
+		if (p == null) {
+		    failed = true;
+		    System.err.println("ERROR: No declaration found for ``" + packageName + "''."); 
+		}
+		else if (!packageName.equals(p.getQualifiedName())) {
+		    failed = true;
+		    System.err.println("ERROR: Unexpected package name; expected " + packageName +
+				       "got " + p.getQualifiedName()); 
+		}
+	    }
+
+	    String notPackageNames[] = {
+		"XXYZZY",
+		"java.lang.String",
+		"1",
+		"1.2",
+		"3.14159",
+		"To be or not to be is a tautology",
+		"1+2=3",
+	    };
+
+	    for(String notPackageName: notPackageNames) {
+		PackageDeclaration p = env.getPackage(notPackageName);
+		if (p != null) {
+		    failed = true;
+		    System.err.println("ERROR: Unexpected declaration: ``" + p + "''.");
+		}
+	    }
+
+	    if (failed)
+		throw new RuntimeException("Errors found testing getPackage.");
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/TestGetTypeDeclarationApf.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,140 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+
+import static java.util.Collections.*;
+import static com.sun.mirror.util.DeclarationVisitors.*;
+
+/*
+ * This class is used to test getTypeDeclaration on classes that are
+ * not already loaded.
+ */
+public class TestGetTypeDeclarationApf implements AnnotationProcessorFactory {
+    // Process any set of annotations
+    private static final Collection<String> supportedAnnotations
+        = unmodifiableCollection(Arrays.asList("*"));
+
+    // No supported options
+    private static final Collection<String> supportedOptions = emptySet();
+
+    public Collection<String> supportedAnnotationTypes() {
+        return supportedAnnotations;
+    }
+
+    public Collection<String> supportedOptions() {
+        return supportedOptions;
+    }
+
+    public AnnotationProcessor getProcessorFor(
+            Set<AnnotationTypeDeclaration> atds,
+            AnnotationProcessorEnvironment env) {
+        return new TestGetTypeDeclarationAp(env);
+    }
+
+    private static class TestGetTypeDeclarationAp implements AnnotationProcessor {
+        private final AnnotationProcessorEnvironment env;
+        TestGetTypeDeclarationAp(AnnotationProcessorEnvironment env) {
+            this.env = env;
+        }
+
+        public void process() {
+	    String classNames[] = {
+		"java.lang.String",		// should be already available
+		"java.lang.Thread.State",	// should be already available
+		"java.util.Collection",
+		"java.util.Map.Entry",
+		"foo.bar.Baz.Xxyzzy.Wombat",
+		"foo.bar.Baz.Xxyzzy",
+		"foo.bar.Baz",
+		"foo.bar.Quux",
+		"foo.bar.Quux.Xxyzzy",
+		"foo.bar.Quux.Xxyzzy.Wombat",
+		"NestedClassAnnotations",
+		"NestedClassAnnotations.NestedClass",
+	    };
+
+	    for(String className: classNames) {
+		TypeDeclaration t = env.getTypeDeclaration(className);
+		if (t == null)
+		    throw new RuntimeException("No declaration found for " + className);
+		if (! t.getQualifiedName().equals(className))
+		    throw new RuntimeException("Class with wrong name found for " + className);
+	    }
+
+	    // Test obscuring behavior; i.e. nested class C1 in class
+	    // p1 where p1 is member of package p2 should be favored
+	    // over class C1 in package p1.p2.
+	    String nonuniqueCanonicalNames[] = {
+		"p1.p2.C1",
+	    };
+	    for(String className: nonuniqueCanonicalNames) {
+		ClassDeclaration c1 = (ClassDeclaration) env.getTypeDeclaration(className);
+		ClassDeclaration c2 = (ClassDeclaration) c1.getDeclaringType();
+		PackageDeclaration p     = env.getPackage("p1");
+
+		if (!p.equals(c1.getPackage())  || 
+		    c2 == null || 
+		    !"C1".equals(c1.getSimpleName())) {
+		    throw new RuntimeException("Bad class declaration");
+		}
+	    }
+
+	    String notClassNames[] = {
+		"",
+		"XXYZZY",
+		"java",
+		"java.lang",
+		"java.lang.Bogogogous",
+		"1",
+		"1.2",
+		"3.14159",
+		"To be or not to be is a tautology",
+		"1+2=3",
+		"foo+.x",
+		"foo+x",
+		"+",
+		"?",
+		"***",
+		"java.*",
+	    };
+
+	    for(String notClassName: notClassNames) {
+		Declaration t = env.getTypeDeclaration(notClassName);
+		if (t != null) {
+		    System.err.println("Unexpected declaration:" + t);
+		    throw new RuntimeException("Declaration found for ``" + notClassName + "''."); 
+		}
+	    }
+
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/annot/AnnotMarker.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+package annot;
+
+public @interface AnnotMarker {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/annot/AnnotShangri_la.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+package annot;
+
+/*
+ * This annotation is used by the tests only to annotate local
+ * variables; therefore, this annotation should not affect the
+ * discovery process and should not appear in the list printed by
+ * -XListAnnotationTypes.
+ */
+public @interface AnnotShangri_la {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/annot/AnnotSimple.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+package annot;
+
+public @interface AnnotSimple {
+    String value() default "default";
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/annot/annot2/AnnotMarker2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+package annot.annot2;
+
+public @interface AnnotMarker2 {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/annot/annot2/AnnotSimple2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+package annot.annot2;
+
+public @interface AnnotSimple2 {
+    String value() default "default";
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/apt.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,151 @@
+# @test
+# @bug 4908512 5024825 4957203 4993280 4996963 6174696 6177059
+# @run shell ../verifyVariables.sh
+# @build Milk MethodAnnotations NestedClassAnnotations StaticFieldAnnotations StaticMethodAnnotations ParameterAnnotations 
+# @run shell apt.sh
+# @summary test consistency of annotation discovery
+# @author Joseph D. Darcy
+
+OS=`uname -s`;
+case "${OS}" in
+        Windows* | CYGWIN* )
+                SEP=";"
+        ;;
+
+	* )
+	SEP=":"
+	;;
+esac
+
+# Construct path to apt executable
+APT="${TESTJAVA}/bin/apt"
+
+printf "%s\n" "-classpath ${TESTCLASSES}"                    > options
+printf "%s\n" "-factorypath ./nullap.jar"                   >> options
+printf "%s\n" "-sourcepath ${TESTSRC} "                     >> options
+printf "%s\n" "-nocompile"                                  >> options
+printf "%s\n" "-XListAnnotationTypes"                       >> options
+
+printf "%s\n" "-classpath ${TESTCLASSES}"                    > options1
+printf "%s\n" "-factorypath ./nullap.jar"                   >> options1
+printf "%s\n" "-sourcepath ${TESTSRC} "                     >> options1
+printf "%s\n" "-nocompile"                                  >> options1
+printf "%s\n" "-XListAnnotationTypes"                       >> options1
+printf "%s\n" "-XclassesAsDecls"                            >> options1
+
+# Construct path to javac executable
+JAVAC="${TESTJAVA}/bin/javac -source 1.5 -sourcepath ${TESTSRC} -classpath ${TESTJAVA}/lib/tools.jar -d . "
+JAR="${TESTJAVA}/bin/jar "
+
+$JAVAC ${TESTSRC}/NullAPF.java \
+${TESTSRC}/FreshnessApf.java  \
+${TESTSRC}/TestGetTypeDeclarationApf.java \
+${TESTSRC}/TestGetPackageApf.java
+RESULT=$?
+
+case "${RESULT}" in
+        0  )
+        ;;
+
+        * )
+        echo "Compilation failed."
+        exit 1
+esac
+
+echo "Making services directory and copying services information."
+mkdir -p META-INF/services
+cp ${TESTSRC}/com.sun.mirror.apt.AnnotationProcessorFactory ./META-INF/services
+$JAR cvf0 nullap.jar NullAPF*.class META-INF
+
+ANNOTATION_FILES="${TESTSRC}/ClassAnnotations.java \
+${TESTSRC}/MethodAnnotations.java \
+${TESTSRC}/NestedClassAnnotations.java \
+${TESTSRC}/StaticFieldAnnotations.java \
+${TESTSRC}/StaticMethodAnnotations.java \
+${TESTSRC}/ParameterAnnotations.java"
+
+for i in ${ANNOTATION_FILES}
+do
+	printf "%s\n" "Testing annotations on source file ${i}"
+	${APT} @options ${i} 2> result.txt
+	diff ${TESTSRC}/golden.txt result.txt
+
+	RESULT=$?
+	case "$RESULT" in
+	        0  )
+	        ;;
+
+	        * )
+	        echo "Unexpected set of annotations on source files found."
+	        exit 1
+	esac
+
+	CLASS=`basename ${i} .java`
+	printf "%s\n" "Testing annotations on class file ${CLASS}"
+	${APT} @options1 ${CLASS} 2> result2.txt
+	diff ${TESTSRC}/golden.txt result2.txt
+
+	RESULT=$?
+	case "$RESULT" in
+	        0  )
+	        ;;
+
+	        * )
+	        echo "Unexpected set of annotations on class files found."
+	        exit 1
+	esac
+done
+
+# Verify source files are favored over class files
+
+printf "%s\n" "-factorypath ."			 > options2
+printf "%s\n" "-factory FreshnessApf"		>> options2
+printf "%s\n" "-sourcepath ${TESTSRC}"		>> options2
+printf "%s\n" "-classpath  ${TESTCLASSES}"	>> options2
+printf "%s\n" "-nocompile"			>> options2
+
+${APT} @options2 ${TESTSRC}/Indirect.java
+
+RESULT=$?
+case "$RESULT" in
+        0  )
+        ;;
+
+        * )
+        exit 1
+esac
+
+# Verify new classes can be loaded by getTypeDeclaration
+
+printf "%s\n" "-factorypath ."			 	> options3
+printf "%s\n" "-factory TestGetTypeDeclarationApf"	>> options3
+printf "%s\n" "-sourcepath ${TESTSRC}"			>> options3
+
+# ${APT} @options3
+
+RESULT=$?
+case "$RESULT" in
+        0  )
+        ;;
+
+        * )
+        exit 1
+esac
+
+# Verify packages can be loaded by getPackage
+
+printf "%s\n" "-factorypath ."			 	> options4
+printf "%s\n" "-factory TestGetPackageApf"		>> options4
+printf "%s\n" "-sourcepath ${TESTSRC}"			>> options4
+
+${APT} @options4
+
+RESULT=$?
+case "$RESULT" in
+        0  )
+        ;;
+
+        * )
+        exit 1
+esac
+exit 0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/com.sun.mirror.apt.AnnotationProcessorFactory	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,1 @@
+NullAPF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/foo/bar/Baz.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+package foo.bar;
+
+public class Baz {
+    public class Xxyzzy {
+	public class Wombat {
+	}
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/foo/bar/Quux.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+package foo.bar;
+
+public class Quux {
+    public class Xxyzzy {
+	public class Wombat {
+	}
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/golden.txt	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,1 @@
+Set of annotations found:[MyMarker, MySimple, annot.AnnotMarker, annot.AnnotSimple, annot.annot2.AnnotMarker2, annot.annot2.AnnotSimple2]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/goldenAggregate.txt	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,14 @@
+
+public class Aggregate {
+
+  private Aggregate();
+
+  private static double hypot(double arg0,
+    double arg1);
+
+  public static void main(java.lang.String[] arg0);
+
+  public boolean equals(Aggregate arg0);
+
+  public int hashcode();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/p1/p2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+package p1;
+
+public class p2 {
+    public static class C1 {}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/p1/p2/C1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+package p1.p2;
+
+public class C1 {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Basics/print.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,73 @@
+# @test
+# @bug 5008759 4998341 5018369 5032476 5060121 5096932 5096931
+# @run shell ../verifyVariables.sh
+# @build Aggregate
+# @run shell print.sh
+# @summary test availabilty of print option
+# @author Joseph D. Darcy
+
+OS=`uname -s`;
+case "${OS}" in
+        Windows* | CYGWIN* )
+                SEP=";"
+        ;;
+
+	* )
+	SEP=":"
+	;;
+esac
+
+# Construct path to apt executable
+APT="${TESTJAVA}/bin/apt \
+-print "
+
+printf "%s\n" "APT = ${APT}"
+
+PRINT_FILES="${TESTSRC}/MisMatch.java \
+${TESTSRC}/GenClass.java \
+${TESTSRC}/Misc.java \
+${TESTSRC}/Lacuna.java"
+
+for i in ${PRINT_FILES}
+do
+	# Delete any existing class file
+        FILENAME=`basename $i .java`
+	rm -f ${FILENAME}.class
+
+        printf "%s\n" "Printing ${i}"
+        ${APT} ${i}
+
+        RESULT=$?
+        case "$RESULT" in
+                0  )
+                ;;
+
+                * )
+                echo "Problem printing file ${i}."
+                exit 1
+        esac
+
+        # Verify compilation did not occur
+	if [ -f ${FILENAME}.class ]; then
+		printf "Improper compilation occured for %s.\n" ${i}
+		exit 1
+	fi
+	
+done
+
+# check for mutliple methods and no static initializer
+
+${APT} -XclassesAsDecls -cp ${TESTCLASSES} -print Aggregate > aggregate.txt
+diff aggregate.txt ${TESTSRC}/goldenAggregate.txt
+
+RESULT=$?
+case "$RESULT" in
+        0  )
+        ;;
+
+        * )
+        echo "Expected output not received"
+        exit 1
+esac
+
+exit 0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/ClassDeclApf.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,120 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+
+import java.io.*;
+
+import static java.util.Collections.*;
+
+/*
+ * This class is used to test the ability to store static state across
+ * apt rounds.
+ */
+public class ClassDeclApf implements AnnotationProcessorFactory {
+    static int round = -1;
+
+    // Process any set of annotations
+    private static final Collection<String> supportedAnnotations
+        = unmodifiableCollection(Arrays.asList("*"));
+
+    // No supported options
+    private static final Collection<String> supportedOptions = emptySet();
+
+    public Collection<String> supportedAnnotationTypes() {
+        return supportedAnnotations;
+    }
+
+    public Collection<String> supportedOptions() {
+        return supportedOptions;
+    }
+
+    public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
+					       AnnotationProcessorEnvironment env) {
+        return new ClassDeclAp(env);
+    }
+
+    private static class ClassDeclAp implements AnnotationProcessor {
+        private final AnnotationProcessorEnvironment env;
+        ClassDeclAp(AnnotationProcessorEnvironment env) {
+            this.env = env;
+        }
+	
+	// Simple inefficient drain
+	void drain(InputStream is, OutputStream os) {
+	    try {
+	    while (is.available() > 0 )
+		os.write(is.read());
+	    } catch (java.io.IOException ioe) {
+		throw new RuntimeException(ioe);
+	    }
+		
+	}
+
+        public void process() {
+	    int size = env.getSpecifiedTypeDeclarations().size();
+
+	    try {
+		round++;
+		switch (size) {
+		case 0:
+		    if (round == 0) {
+			drain(new FileInputStream("./tmp/classes/Round1Class.class"),
+			      env.getFiler().createClassFile("Round1Class"));
+		    } else
+			throw new RuntimeException("Got " + size + " decl's in round " + round);
+		    break;
+
+		case 1:
+		    if (round == 1) {
+			drain(new FileInputStream("./tmp/classes/AhOneClass.class"),
+			      env.getFiler().createClassFile("AhOneClass"));
+
+			drain(new FileInputStream("./tmp/classes/AndAhTwoClass.class"),
+			      env.getFiler().createClassFile("AndAhTwoClass"));
+		    } else
+			throw new RuntimeException("Got " + size + " decl's in round " + round);
+		    break;
+		case 2:
+		    if (round != 2) {
+			throw new RuntimeException("Got " + size + " decl's in round " + round);
+		    } 
+		    break;
+		}
+
+	    } catch (java.io.IOException ioe) {
+		    throw new RuntimeException();
+		}
+
+	    }
+
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/ClassDeclApf2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,123 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+
+import java.io.*;
+
+import static java.util.Collections.*;
+
+/*
+ * This class is used to test the the interaction of -XclassesAsDecls
+ * with command line options handling.
+ */
+public class ClassDeclApf2 implements AnnotationProcessorFactory {
+    static int round = -1;
+
+    // Process any set of annotations
+    private static final Collection<String> supportedAnnotations
+        = unmodifiableCollection(Arrays.asList("*"));
+
+    // No supported options
+    private static final Collection<String> supportedOptions = emptySet();
+
+    public Collection<String> supportedAnnotationTypes() {
+        return supportedAnnotations;
+    }
+
+    public Collection<String> supportedOptions() {
+        return supportedOptions;
+    }
+
+    public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
+					       AnnotationProcessorEnvironment env) {
+        return new ClassDeclAp(env);
+    }
+
+    private static class ClassDeclAp implements AnnotationProcessor {
+        private final AnnotationProcessorEnvironment env;
+        ClassDeclAp(AnnotationProcessorEnvironment env) {
+            this.env = env;
+        }
+	
+	// Simple inefficient drain
+	void drain(InputStream is, OutputStream os) {
+	    try {
+	    while (is.available() > 0 )
+		os.write(is.read());
+	    } catch (java.io.IOException ioe) {
+		throw new RuntimeException(ioe);
+	    }
+	}
+
+        public void process() {
+	    int size = env.getSpecifiedTypeDeclarations().size();
+	    Filer f = env.getFiler();
+
+	    try {
+		round++;
+		switch (size) {
+		case 3:
+		    if (round == 0) {
+			drain(new FileInputStream("./tmp/classes/Round1Class.class"),
+			      f.createClassFile("Round1Class"));
+		    } else
+			throw new RuntimeException("Got " + size + " decl's in round " + round);
+		    break;
+
+		case 1:
+		    if (round == 1) {
+			f.createSourceFile("AhOne").println("public class AhOne {}");
+			System.out.println("Before writing AndAhTwoClass");
+			drain(new FileInputStream("./tmp/classes/AndAhTwoClass.class"),
+			      f.createClassFile("AndAhTwoClass"));
+			System.out.println("After writing AndAhTwoClass");
+		    } else
+			throw new RuntimeException("Got " + size + " decl's in round " + round);
+		    break;
+
+		case 2:
+		    if (round != 2) {
+			throw new RuntimeException("Got " + size + " decl's in round " + round);
+		    } 
+		    break;
+		default:
+		    throw new RuntimeException("Unexpected number of declarations:" + size +
+					       "\n Specified:" + env.getSpecifiedTypeDeclarations() +
+					       "\n Included:" + env.getTypeDeclarations() );
+		}
+
+	    } catch (java.io.IOException ioe) {
+		throw new RuntimeException(ioe);
+	    }
+	}
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/Dummy1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+@Round1 class Dummy1{}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/ErrorAPF.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+
+
+import static java.util.Collections.*;
+import static com.sun.mirror.util.DeclarationVisitors.*;
+
+/*
+ * Construct a processor that does nothing but report an error.
+ */
+public class ErrorAPF implements AnnotationProcessorFactory {
+    static class ErrorAP implements AnnotationProcessor {
+	AnnotationProcessorEnvironment env;
+	ErrorAP(AnnotationProcessorEnvironment env) {
+	    this.env = env;
+	}
+
+	public void process() {
+	    Messager messager = env.getMessager();
+	    messager.printError("It's a mad, mad, mad, mad world");
+	    messager.printError("Something wicked this way comes");
+	    
+	    for(TypeDeclaration typeDecl : env.getSpecifiedTypeDeclarations())
+		messager.printError(typeDecl.getPosition(), "Boring class name");
+	}
+    }
+
+    static Collection<String> supportedTypes;
+    static {
+        String types[] = {"*"};
+        supportedTypes = unmodifiableCollection(Arrays.asList(types));
+    }
+
+    static Collection<String> supportedOptions;
+    static {
+        String options[] = {""};
+        supportedOptions = unmodifiableCollection(Arrays.asList(options));
+    }
+
+    public Collection<String> supportedOptions() {
+        return supportedOptions;
+    }
+
+    public Collection<String> supportedAnnotationTypes() {
+        return supportedTypes;
+    }
+
+    public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
+                                               AnnotationProcessorEnvironment env) {
+        return new ErrorAP(env);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/HelloAnnotation.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,8 @@
+/* /nodynamiccopyright/ */ 
+import java.lang.annotation.*;
+@Target(ElementType.ANNOTATION_TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+@HelloAnnotation
+@interface HelloAnnotation {
+    Target value() default @Target(ElementType.METHOD);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/HelloWorld.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,6 @@
+/* /nodynamiccopyright/ */ 
+public class HelloWorld {
+    public static void main(String argv[]) {
+	System.out.println("Hello World.");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/Round1Apf.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,121 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+
+import java.io.File;
+
+import static java.util.Collections.*;
+import static com.sun.mirror.util.DeclarationVisitors.*;
+
+/*
+ * Factory to help test updated discovery policy.
+ */
+public class Round1Apf implements AnnotationProcessorFactory {
+    // Process @Round1
+    private static final Collection<String> supportedAnnotations
+        = unmodifiableCollection(Arrays.asList("Round1"));
+
+    // No supported options
+    private static final Collection<String> supportedOptions = emptySet();
+
+    public Collection<String> supportedAnnotationTypes() {
+        return supportedAnnotations;
+    }
+
+    public Collection<String> supportedOptions() {
+        return supportedOptions;
+    }
+
+    private static int round = 0;
+
+    public AnnotationProcessor getProcessorFor(
+            Set<AnnotationTypeDeclaration> atds,
+            AnnotationProcessorEnvironment env) {
+        return new Round1Ap(env, atds.size() == 0);
+    }
+
+    private static class Round1Ap implements AnnotationProcessor, RoundCompleteListener {
+        private final AnnotationProcessorEnvironment env;
+	private final boolean empty;
+
+        Round1Ap(AnnotationProcessorEnvironment env, boolean empty) {
+            this.env = env;
+	    this.empty = empty;
+        }
+
+        public void process() {
+	    Round1Apf.round++;
+	    try {
+		if (!empty) {
+		    Filer f = env.getFiler();
+		    f.createSourceFile("Dummy2").println("@Round2 class Dummy2{}");
+		    f.createTextFile(Filer.Location.SOURCE_TREE,
+				     "",
+				     new File("foo.txt"),
+				     null).println("xxyzzy");
+		    f.createClassFile("Vacant");
+		    f.createBinaryFile(Filer.Location.CLASS_TREE,
+				       "",
+				       new File("onezero"));
+		}
+	    } catch (java.io.IOException ioe) {
+		throw new RuntimeException(ioe);
+	    }
+
+	    System.out.println("Round1Apf: " + round);
+	    env.addListener(this);
+        }
+
+	public void roundComplete(RoundCompleteEvent event) {
+	    RoundState rs = event.getRoundState();
+
+	    if (event.getSource() != this.env)
+		throw new RuntimeException("Wrong source!");
+
+	    Filer f = env.getFiler();
+	    try {
+		f.createSourceFile("AfterTheBell").println("@Round2 class AfterTheBell{}");
+		throw new RuntimeException("Inappropriate source file creation.");
+	    } catch (java.io.IOException ioe) {}
+
+
+	    System.out.printf("\t[final round: %b, error raised: %b, "+
+			      "source files created: %b, class files created: %b]%n", 
+			      rs.finalRound(),
+			      rs.errorRaised(),
+			      rs.sourceFilesCreated(),
+			      rs.classFilesCreated());
+
+	    System.out.println("Round1Apf: " + round + " complete");
+	}
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/Round2Apf.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+
+import java.io.IOException;
+import java.io.File;
+
+import static java.util.Collections.*;
+import static com.sun.mirror.util.DeclarationVisitors.*;
+
+/*
+ * Factory to help test updated discovery policy.
+ */
+public class Round2Apf implements AnnotationProcessorFactory {
+    // Process @Round2
+    private static final Collection<String> supportedAnnotations
+        = unmodifiableCollection(Arrays.asList("Round2"));
+
+    // No supported options
+    private static final Collection<String> supportedOptions = emptySet();
+
+    public Collection<String> supportedAnnotationTypes() {
+        return supportedAnnotations;
+    }
+
+    public Collection<String> supportedOptions() {
+        return supportedOptions;
+    }
+
+    private static int round = 0;
+
+    public AnnotationProcessor getProcessorFor(
+            Set<AnnotationTypeDeclaration> atds,
+            AnnotationProcessorEnvironment env) {
+        return new Round2Ap(env, atds.size() == 0);
+    }
+
+    private static class Round2Ap implements AnnotationProcessor {
+        private final AnnotationProcessorEnvironment env;
+	private final boolean empty;
+
+        Round2Ap(AnnotationProcessorEnvironment env, boolean empty) {
+            this.env = env;
+	    this.empty = empty;
+        }
+
+        public void process() {
+	    Round2Apf.round++;
+	    Filer f = env.getFiler();
+	    try {
+		f.createSourceFile("Dummy2").println("@Round2 class Dummy2{}");
+		throw new RuntimeException("Duplicate file creation allowed");
+	    } catch (IOException io) {}
+
+	    try {
+		f.createTextFile(Filer.Location.SOURCE_TREE,
+				 "",
+				 new File("foo.txt"),
+				 null).println("xxyzzy");
+		throw new RuntimeException("Duplicate file creation allowed");
+	    } catch (IOException io) {}
+
+	    try {
+		f.createClassFile("Vacant");
+		throw new RuntimeException("Duplicate file creation allowed");
+	    } catch (IOException io) {}
+
+	    try {
+		f.createBinaryFile(Filer.Location.CLASS_TREE,
+				   "",
+				   new File("onezero"));
+		throw new RuntimeException("Duplicate file creation allowed");
+	    } catch (IOException io) {}
+	    
+
+
+	    try {
+		if (!empty) {
+		    // Create corresponding files of opposite kind to
+		    // the files created by Round1Apf; these should
+		    // only generate warnings
+		    f.createClassFile("Dummy2");
+		    f.createSourceFile("Vacant").println("class Vacant{}");
+
+		    f.createSourceFile("Dummy3").println("@Round3 class Dummy3{}");
+
+		    // This should generated a warning too
+		    f.createClassFile("Dummy3");
+		}
+	    } catch (java.io.IOException ioe) {
+		throw new RuntimeException(ioe);
+	    }
+
+	    System.out.println("Round2Apf: " + round);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/Round3Apf.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+
+import static java.util.Collections.*;
+import static com.sun.mirror.util.DeclarationVisitors.*;
+
+/*
+ * Factory to help test updated discovery policy.
+ */
+public class Round3Apf implements AnnotationProcessorFactory {
+    // Process @Round3
+    private static final Collection<String> supportedAnnotations
+        = unmodifiableCollection(Arrays.asList("Round3"));
+
+    // No supported options
+    private static final Collection<String> supportedOptions = emptySet();
+
+    public Collection<String> supportedAnnotationTypes() {
+        return supportedAnnotations;
+    }
+
+    public Collection<String> supportedOptions() {
+        return supportedOptions;
+    }
+
+    private static int round = 0;
+
+    public AnnotationProcessor getProcessorFor(
+            Set<AnnotationTypeDeclaration> atds,
+            AnnotationProcessorEnvironment env) {
+        return new Round3Ap(env, atds.size() == 0);
+    }
+
+    private static class Round3Ap implements AnnotationProcessor {
+        private final AnnotationProcessorEnvironment env;
+	private final boolean empty;
+
+        Round3Ap(AnnotationProcessorEnvironment env, boolean empty) {
+            this.env = env;
+	    this.empty = empty;
+        }
+
+        public void process() {
+	    Round3Apf.round++;
+	    try {
+		if (!empty)
+		    env.getFiler().createSourceFile("Dummy4").println("@Round4 class Dummy4{}");
+	    } catch (java.io.IOException ioe) {
+		throw new RuntimeException(ioe);
+	    }
+
+	    System.out.println("Round3Apf: " + round);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/Round4Apf.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+
+import static java.util.Collections.*;
+import static com.sun.mirror.util.DeclarationVisitors.*;
+
+/*
+ * Factory to help test updated discovery policy.
+ */
+public class Round4Apf implements AnnotationProcessorFactory {
+    // Process @Round4
+    private static final Collection<String> supportedAnnotations
+        = unmodifiableCollection(Arrays.asList("Round4"));
+
+    // No supported options
+    private static final Collection<String> supportedOptions = emptySet();
+
+    public Collection<String> supportedAnnotationTypes() {
+        return supportedAnnotations;
+    }
+
+    public Collection<String> supportedOptions() {
+        return supportedOptions;
+    }
+
+    private static int round = 0;
+
+    public AnnotationProcessor getProcessorFor(
+            Set<AnnotationTypeDeclaration> atds,
+            AnnotationProcessorEnvironment env) {
+        return new Round4Ap(env, atds.size() == 0);
+    }
+
+    private static class Round4Ap implements AnnotationProcessor, RoundCompleteListener {
+        private final AnnotationProcessorEnvironment env;
+	private final boolean empty;
+
+        Round4Ap(AnnotationProcessorEnvironment env, boolean empty) {
+            this.env = env;
+	    this.empty = empty;
+        }
+
+        public void process() {
+	    Round4Apf.round++;
+	    try {
+		if (!empty)
+		    env.getFiler().createSourceFile("Dummy5").println("@Round5 class Dummy5{}");
+	    } catch (java.io.IOException ioe) {
+		throw new RuntimeException(ioe);
+	    }
+
+	    System.out.println("Round4Apf: " + round);
+	    env.addListener(this);
+        }
+
+	public void roundComplete(RoundCompleteEvent event) {
+	    RoundState rs = event.getRoundState();
+	    
+	    System.out.println("\t" + rs.toString());
+
+	    System.out.println("Round4Apf: " + round + " complete");
+
+	    if (rs.finalRound()) {
+		System.out.println("Valediction");
+	    }
+	}
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/Rounds.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+@interface Round1{}
+
+@interface Round2{}
+
+@interface Round3{}
+
+@interface Round4{}
+
+@interface Round5{}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/StaticApf.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+
+import static java.util.Collections.*;
+
+/*
+ * This class is used to test the ability to store static state across
+ * apt rounds.
+ */
+public class StaticApf implements AnnotationProcessorFactory {
+    static int round = -1;
+
+    // Process any set of annotations
+    private static final Collection<String> supportedAnnotations
+        = unmodifiableCollection(Arrays.asList("*"));
+
+    // No supported options
+    private static final Collection<String> supportedOptions = emptySet();
+
+    public Collection<String> supportedAnnotationTypes() {
+        return supportedAnnotations;
+    }
+
+    public Collection<String> supportedOptions() {
+        return supportedOptions;
+    }
+
+    public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
+					       AnnotationProcessorEnvironment env) {
+        return new StaticAp(env);
+    }
+
+    private static class StaticAp implements AnnotationProcessor {
+        private final AnnotationProcessorEnvironment env;
+        StaticAp(AnnotationProcessorEnvironment env) {
+            this.env = env;
+        }
+
+        public void process() {
+	    int size = env.getSpecifiedTypeDeclarations().size();
+
+	    try {
+		round++;
+		switch (size) {
+		case 0:
+		    if (round == 0) {
+			env.getFiler().createSourceFile("Round1").print("class Round1 {}");
+		    } else
+			throw new RuntimeException("Got " + size + " decl's in round " + round);
+		    break;
+
+		case 1:
+		    if (round == 1) {
+			env.getFiler().createSourceFile("AhOne").print("class AhOne {}");
+			env.getFiler().createSourceFile("AndAhTwo").print("class AndAhTwo {}");
+			env.getFiler().createClassFile("Foo");
+		    } else
+			throw new RuntimeException("Got " + size + " decl's in round " + round);
+		    break;
+		case 2:
+		    if (round != 2) {
+			throw new RuntimeException("Got " + size + " decl's in round " + round);
+		    } 
+		    break;
+		}
+
+	    } catch (java.io.IOException ioe) {
+		    throw new RuntimeException();
+		}
+
+	    }
+
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/WarnAPF.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Map;
+import java.util.Arrays;
+
+
+import static java.util.Collections.*;
+import static com.sun.mirror.util.DeclarationVisitors.*;
+
+/*
+ * Construct a processor that does nothing but report a warning.
+ */
+public class WarnAPF implements AnnotationProcessorFactory {
+    static class WarnAP implements AnnotationProcessor {
+	AnnotationProcessorEnvironment env;
+	WarnAP(AnnotationProcessorEnvironment env) {
+	    this.env = env;
+	}
+
+	public void process() {
+	    Messager messager = env.getMessager();
+	    messager.printWarning("Beware the ides of March!");
+
+	    for(TypeDeclaration typeDecl : env.getSpecifiedTypeDeclarations()) {
+		messager.printNotice(typeDecl.getPosition(),  "You are about to be warned");
+		messager.printWarning(typeDecl.getPosition(), "Strange class name");
+
+		for(AnnotationMirror annotMirror : typeDecl.getAnnotationMirrors()) {
+		    messager.printNotice("MIRROR " + annotMirror.getPosition().toString());
+
+		     Map<AnnotationTypeElementDeclaration,AnnotationValue> map = 
+			 annotMirror.getElementValues();
+		     if (map.keySet().size() > 0) 
+			 for(AnnotationTypeElementDeclaration key : map.keySet() ) {
+			     AnnotationValue annotValue = map.get(key);
+			     Object o = annotValue.getValue();
+			     // asserting getPosition is non-null
+			     messager.printNotice("VALUE " + annotValue.getPosition().toString());
+			 }
+		     else {
+			 Collection<AnnotationTypeElementDeclaration> ateds = 
+			 annotMirror.getAnnotationType().getDeclaration().getMethods();
+			 for(AnnotationTypeElementDeclaration ated : ateds ) {
+			     AnnotationValue annotValue = ated.getDefaultValue();
+			     Object o = annotValue.getValue();
+			     messager.printNotice("VALUE " + "HelloAnnotation.java:5");
+			 }
+		     }
+		}
+	    }
+	}
+    }
+
+    static final Collection<String> supportedTypes;
+    static {
+        String types[] = {"*"};
+        supportedTypes = unmodifiableCollection(Arrays.asList(types));
+    }
+    public Collection<String> supportedAnnotationTypes() {return supportedTypes;}
+
+    static final Collection<String> supportedOptions;
+    static {
+        String options[] = {""};
+        supportedOptions = unmodifiableCollection(Arrays.asList(options));
+    }
+    public Collection<String> supportedOptions() {return supportedOptions;}
+
+    public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
+                                               AnnotationProcessorEnvironment env) {
+        return new WarnAP(env);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/WrappedStaticApf.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.AnnotationProcessorFactory;
+
+/*
+ * Pass an instantiated StaticApf object to the
+ * com.sun.tools.apt.Main.process entry point.
+ */
+public class WrappedStaticApf {
+    public static void main(String argv[]) {
+	AnnotationProcessorFactory factory = new StaticApf();
+	System.exit(com.sun.tools.apt.Main.process(factory, argv));
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/compile.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,500 @@
+# @test
+# @bug 5033855 4990902 5023880 5043516 5048534 5048535 5041279 5048539 5067261 5068145 5023881 4996963 5095716 6191667 6433634
+# @run shell ../verifyVariables.sh
+# @build ErrorAPF
+# @build WarnAPF
+# @build StaticApf
+# @build ClassDeclApf
+# @build ClassDeclApf2
+# @build Rounds
+# @build Round1Apf Round2Apf Round3Apf Round4Apf
+# @build WrappedStaticApf
+# @run shell compile.sh
+# @summary Test simple usages of apt, including delegating to javac
+# @author Joseph D. Darcy
+
+# If the file *does* exist, exit with an error
+TestNoFile() {
+        if [ -f ${1} ]; then
+                printf "%s\n" "File ${1} found."
+                exit 1
+        fi
+}
+
+# If the file does not exist, exit with an error
+TestFile() {
+        if [ ! -f ${1} ]; then
+                printf "%s\n" "File ${1} not found."
+                exit 1
+        fi
+}
+
+
+OS=`uname -s`;
+case "${OS}" in
+        Windows* | CYGWIN* )
+                SEP=";"
+        ;;
+
+        * )
+        SEP=":"
+        ;;
+esac
+
+
+APT="${TESTJAVA}/bin/apt "
+JAVA="${TESTJAVA}/bin/java "
+JAVAC="${TESTJAVA}/bin/javac "
+
+unset CLASSPATH
+
+
+# ---------------------------------------------------------------
+echo "Verify that source 1.6 is not supported
+rm -f HelloWorld.class
+
+printf "%s\n" "-source 1.6"     > options0
+printf "%s\n" "${TESTSRC}/HelloWorld.java"  >> options0
+${APT} @options0
+
+RESULT=$?
+case "$RESULT" in
+	0  )
+        echo "FAILED: accepted source 1.6"
+	exit 1
+        ;;
+esac
+
+TestNoFile "HelloWorld.class"
+
+# ---------------------------------------------------------------
+
+echo "Verify that target 1.6 is not supported
+rm -f HelloWorld.class
+
+printf "%s\n" "-target 1.6"     > options00
+printf "%s\n" "${TESTSRC}/HelloWorld.java"  >> options00
+${APT} @options00
+
+RESULT=$?
+case "$RESULT" in
+	0  )
+        echo "FAILED: accepted target 1.6"
+	exit 1
+        ;;
+esac
+
+TestNoFile "HelloWorld.class"
+
+# ---------------------------------------------------------------
+
+echo "Testing javac pass-through with -A in options file"
+rm -f HelloWorld.class
+
+printf "%s\n" "-A"     > options1
+printf "%s\n" "-d ."     >> options1
+printf "%s\n" "${TESTSRC}/HelloWorld.java"  >> options1
+${APT} @options1
+
+RESULT=$?
+case "$RESULT" in
+	0  )
+        ;;
+
+        * )
+        echo "FAILED: javac with -A in options file did not compile"
+        exit 1
+esac
+TestFile "HelloWorld.class"
+
+
+# ---------------------------------------------------------------
+
+echo "Verifying reporting an error will prevent compilation"
+rm -f HelloWorld.class
+if [ ! -f HelloWorld.java ]; then
+	cp ${TESTSRC}/HelloWorld.java .
+fi
+
+
+printf "%s\n" "-factory ErrorAPF"            > options2
+printf "%s\n" "-d ."                        >> options2
+printf "%s\n" "-cp ${TESTCLASSES}"          >> options2
+printf "%s\n" "HelloWorld.java"             >> options2
+${APT} @options2 2> output
+
+TestNoFile "HelloWorld.class"
+
+diff output ${TESTSRC}/golden.txt
+
+RESULT=$?
+case "$RESULT" in
+	0  )
+        ;;
+
+        * )
+        echo "FAILED: did not record expected error messages"
+        exit 1
+esac
+
+
+
+# ---------------------------------------------------------------
+
+echo "Verifying reporting a warning *won't* prevent compilation"
+
+rm -f HelloAnnotation.class
+if [ ! -f HelloAnnotation.java ]; then
+	cp ${TESTSRC}/HelloAnnotation.java .
+fi
+
+
+printf "%s\n" "-factory WarnAPF"             > options3
+printf "%s\n" "-d ."                        >> options3
+printf "%s\n" "-cp ${TESTCLASSES}"          >> options3
+printf "%s\n" "HelloAnnotation.java"        >> options3
+${APT} @options3 2> output
+
+diff output ${TESTSRC}/goldenWarn.txt
+
+RESULT=$?
+case "$RESULT" in
+	0  )
+        ;;
+
+        * )
+        echo "FAILED: did not record expected warning messages"
+        exit 1
+esac
+
+TestFile "HelloAnnotation.class"
+
+# ---------------------------------------------------------------
+
+echo "Verifying static state is available across apt rounds; -factory, -cp"
+
+mkdir -p ./src
+mkdir -p ./class
+
+rm -Rf ./src/*
+rm -Rf ./class/*
+
+printf "%s\n" "-factory StaticApf"           > options4
+printf "%s\n" "-s ./src"                    >> options4
+printf "%s\n" "-d ./class"                  >> options4
+printf "%s\n" "-cp ${TESTCLASSES}"          >> options4
+# printf "%s\n" "-XPrintAptRounds"            >> options4
+${APT} @options4
+
+TestFile "./class/AndAhTwo.class"
+
+# ---------------------------------------------------------------
+
+echo "Verifying static state is available across apt rounds; -factory, -factorypath"
+
+rm -Rf ./src/*
+rm -Rf ./class/*
+
+printf "%s\n" "-factory StaticApf"           > options5
+printf "%s\n" "-s ./src"                    >> options5
+printf "%s\n" "-d ./class"                  >> options5
+printf "%s\n" "-factorypath ${TESTCLASSES}" >> options5
+# printf "%s\n" "-XPrintAptRounds"          >> options5
+${APT} @options5
+
+TestFile "./class/AndAhTwo.class"
+
+# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+# Create jar file for StaticApf
+JAR="${TESTJAVA}/bin/jar "
+mkdir -p META-INF/services
+cp ${TESTSRC}/servicesStaticApf META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
+cp ${TESTCLASSES}/StaticApf*.class .
+${JAR} cf0 staticApf.jar StaticApf*.class META-INF
+
+# ---------------------------------------------------------------
+
+echo "Verifying static state is available across apt rounds; -cp"
+
+rm -Rf ./src/*
+rm -Rf ./class/*
+
+printf "%s\n" "-cp staticApf.jar"           > options6
+printf "%s\n" "-s ./src"                    >> options6
+printf "%s\n" "-d ./class"                  >> options6
+printf "%s\n" "-XPrintAptRounds"          >> options6
+${APT} @options6
+
+TestFile "./class/AndAhTwo.class"
+
+# ---------------------------------------------------------------
+
+echo "Verifying static state is available across apt rounds; -factorypath"
+
+rm -Rf ./src/*
+rm -Rf ./class/*
+
+printf "%s\n" "-factorypath staticApf.jar"   > options7
+printf "%s\n" "-s ./src"                    >> options7
+printf "%s\n" "-d ./class"                  >> options7
+printf "%s\n" "-XPrintAptRounds"            >> options7
+${APT} @options7
+
+TestFile "./class/AndAhTwo.class"
+
+# ---------------------------------------------------------------
+
+echo "Verifying -XclassesAsDecls handles class files properly"
+
+rm -Rf ./src/*
+rm -Rf ./class/*
+
+mkdir -p ./tmp/classes
+
+${JAVAC} -d ./tmp/classes ${TESTSRC}/src/Round1Class.java ${TESTSRC}/src/AhOneClass.java ${TESTSRC}/src/AndAhTwoClass.java
+
+RESULT=$?
+case "$RESULT" in
+	0  )
+        ;;
+
+        * )
+        echo "FAILED: javac failed to succesfully compile."
+        exit 1
+esac
+
+printf "%s\n" "-factorypath ${TESTCLASSES}"  > options7a
+printf "%s\n" "-factory ClassDeclApf"       >> options7a
+printf "%s\n" "-s ./src"                    >> options7a
+printf "%s\n" "-d ./class"                  >> options7a
+printf "%s\n" "-XPrintAptRounds"            >> options7a
+printf "%s\n" "-XclassesAsDecls"            >> options7a
+${APT} @options7a
+
+TestFile "./class/AndAhTwoClass.class"
+
+# ---------------------------------------------------------------
+
+echo "Verifying -XclassesAsDecls works with command-line arguments"
+
+rm -Rf ./src/*
+rm -Rf ./class/*
+rm -Rf ./tmp/classes
+
+mkdir -p ./tmp/classes
+
+${JAVAC} -d ./tmp/classes ${TESTSRC}/src/Round1Class.java ${TESTSRC}/src/AndAhTwoClass.java
+
+RESULT=$?
+case "$RESULT" in
+	0  )
+        ;;
+
+        * )
+        echo "FAILED: javac failed to succesfully compile."
+        exit 1
+esac
+
+printf "%s\n" "-factorypath ${TESTCLASSES}"  > options7b
+printf "%s\n" "-factory ClassDeclApf2"       >> options7b
+printf "%s\n" "-XPrintAptRounds"            >> options7b
+printf "%s\n" "-XclassesAsDecls"            >> options7b
+printf "%s\n" "-cp ${TESTCLASSES}"          >> options7b
+printf "%s\n" "ErrorAPF"                    >> options7b
+printf "%s\n" "WarnAPF"                     >> options7b
+printf "%s\n" "-s ./src"                    >> options7b
+printf "%s\n" "-d ./class"                  >> options7b
+printf "%s\n" "ClassDeclApf"                >> options7b
+${APT} @options7b
+
+RESULT=$?
+case "$RESULT" in
+	0  )
+        ;;
+
+        * )
+        echo "FAILED: apt exited with an error code."
+        exit 1
+esac
+
+TestFile "./class/AndAhTwoClass.class"
+TestFile "./class/AhOne.class"
+
+# ---------------------------------------------------------------
+
+echo "Verifying -XclassesAsDecls works with all source files"
+
+rm -Rf ./src/*
+rm -Rf ./class/*
+rm -Rf ./tmp/classes
+
+mkdir -p ./tmp/classes
+
+${JAVAC} -d ./tmp/classes ${TESTSRC}/src/Round1Class.java ${TESTSRC}/src/AndAhTwoClass.java
+
+RESULT=$?
+case "$RESULT" in
+	0  )
+        ;;
+
+        * )
+        echo "FAILED: javac failed to succesfully compile."
+        exit 1
+esac
+
+printf "%s\n" "-factorypath ${TESTCLASSES}"      > options7c
+printf "%s\n" "-factory ClassDeclApf2"          >> options7c
+printf "%s\n" "-s ./src"                        >> options7c
+printf "%s\n" "-d ./class"                      >> options7c
+printf "%s\n" "-sourcepath ${TESTSRC}"          >> options7c
+printf "%s\n" "${TESTSRC}/HelloAnnotation.java" >> options7c
+printf "%s\n" "${TESTSRC}/HelloWorld.java"      >> options7c
+printf "%s\n" "${TESTSRC}/Dummy1.java"          >> options7c
+printf "%s\n" "-XPrintAptRounds"                >> options7c
+printf "%s\n" "-XclassesAsDecls"                >> options7c
+printf "%s\n" "-cp ${TESTCLASSES}"              >> options7c
+${APT} @options7c
+
+RESULT=$?
+case "$RESULT" in
+	0  )
+        ;;
+
+        * )
+        echo "FAILED: apt exited with an error code."
+        exit 1
+esac
+
+TestFile "./class/AndAhTwoClass.class"
+TestFile "./class/AhOne.class"
+TestFile "./class/HelloWorld.class"
+
+# ---------------------------------------------------------------
+
+echo "Verifying -XclassesAsDecls works with mixed class and source files"
+
+rm -Rf ./src/*
+rm -Rf ./class/*
+rm -Rf ./tmp/classes
+
+mkdir -p ./tmp/classes
+
+${JAVAC} -d ./tmp/classes ${TESTSRC}/src/Round1Class.java ${TESTSRC}/src/AndAhTwoClass.java
+
+RESULT=$?
+case "$RESULT" in
+	0  )
+        ;;
+
+        * )
+        echo "FAILED: javac failed to succesfully compile."
+        exit 1
+esac
+
+printf "%s\n" "-factorypath ${TESTCLASSES}"  > options7d
+printf "%s\n" "-factory ClassDeclApf2"      >> options7d
+printf "%s\n" "-s ./src"                    >> options7d
+printf "%s\n" "-XclassesAsDecls"            >> options7d
+printf "%s\n" "ClassDeclApf"                >> options7d
+printf "%s\n" "-d ./class"                  >> options7d
+printf "%s\n" "ErrorAPF"                    >> options7d
+printf "%s\n" "-XPrintAptRounds"            >> options7d
+printf "%s\n" "${TESTSRC}/HelloWorld.java"  >> options7d
+printf "%s\n" "-cp ${TESTCLASSES}"          >> options7d
+${APT} @options7d
+
+RESULT=$?
+case "$RESULT" in
+	0  )
+        ;;
+
+        * )
+        echo "FAILED: apt exited with an error code."
+        exit 1
+esac
+
+TestFile "./class/AndAhTwoClass.class"
+TestFile "./class/AhOne.class"
+TestFile "./class/HelloWorld.class"
+
+# ---------------------------------------------------------------
+
+echo "Testing productive factories are called on subsequent rounds"
+
+rm -Rf ./src/*
+rm -Rf ./class/*
+
+rm -Rf META-INF/services/*
+cp ${TESTSRC}/servicesRound1 META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
+cp ${TESTCLASSES}/Round1Apf*.class .
+${JAR} cf0 round1Apf.jar Round1Apf*.class META-INF
+
+rm -Rf META-INF/services/*
+cp ${TESTSRC}/servicesRound2 META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
+cp ${TESTCLASSES}/Round2Apf*.class .
+${JAR} cf0 round2Apf.jar Round2Apf*.class META-INF
+
+rm -Rf META-INF/services/*
+cp ${TESTSRC}/servicesRound3 META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
+cp ${TESTCLASSES}/Round3Apf*.class .
+${JAR} cf0 round3Apf.jar Round3Apf*.class META-INF
+
+rm -Rf META-INF/services/*
+cp ${TESTSRC}/servicesRound4 META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
+cp ${TESTCLASSES}/Round4Apf*.class .
+${JAR} cf0 round4Apf.jar Round4Apf*.class META-INF
+
+cp ${TESTCLASSES}/Round?.class .
+${JAR} cf0 rounds.jar Round?.class
+
+printf "%s\n" "-factorypath round1Apf.jar${SEP}round2Apf.jar${SEP}round3Apf.jar${SEP}round4Apf.jar"   > options8
+printf "%s\n" "-classpath rounds.jar"  >> options8
+printf "%s\n" "-s ./src"               >> options8
+printf "%s\n" "-d ./class"             >> options8
+#printf "%s\n" "-XPrintFactoryInfo"     >> options8
+#printf "%s\n" "-XPrintAptRounds"       >> options8
+printf "%s\n" "${TESTSRC}/Dummy1.java" >> options8
+${APT} @options8 > multiRoundOutput 2> multiRoundError
+
+diff multiRoundOutput  ${TESTSRC}/goldenFactory.txt
+
+RESULT=$?
+case "$RESULT" in
+	0  )
+        ;;
+
+        * )
+        echo "FAILED: unexpected factory state"
+        exit 1
+esac
+
+TestFile "./class/Dummy5.class"
+
+# ---------------------------------------------------------------
+
+echo "Verifying static state with programmatic apt entry; no factory options"
+rm -Rf ./src/*
+rm -Rf ./class/*
+${JAVA} -cp ${TESTJAVA}/lib/tools.jar${SEP}${TESTCLASSES} WrappedStaticApf -s ./src -d ./class -XPrintAptRounds
+TestFile "./class/AndAhTwo.class"
+
+echo "Verifying static state with programmatic apt entry; -factory"
+rm -Rf ./src/*
+rm -Rf ./class/*
+${JAVA} -cp ${TESTJAVA}/lib/tools.jar${SEP}${TESTCLASSES} WrappedStaticApf -factory ErrorAPF -s ./src -d ./class -XPrintAptRounds
+TestFile "./class/AndAhTwo.class"
+
+echo "Verifying static state with programmatic apt entry; -factorypath"
+rm -Rf ./src/*
+rm -Rf ./class/*
+${JAVA} -cp ${TESTJAVA}/lib/tools.jar${SEP}${TESTCLASSES} WrappedStaticApf -factorypath round1Apf.jar -s ./src -d ./class -XPrintAptRounds
+TestFile "./class/AndAhTwo.class"
+
+echo "Verifying static state with programmatic apt entry; -factory and -factorypath"
+rm -Rf ./src/*
+rm -Rf ./class/*
+${JAVA} -cp ${TESTJAVA}/lib/tools.jar${SEP}${TESTCLASSES} WrappedStaticApf -factorypath round1Apf.jar -factory Round1Apf -s ./src -d ./class -XPrintAptRounds
+TestFile "./class/AndAhTwo.class"
+
+exit 0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/golden.txt	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,6 @@
+error: It's a mad, mad, mad, mad world
+error: Something wicked this way comes
+HelloWorld.java:2: Boring class name
+public class HelloWorld {
+       ^
+3 errors
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/goldenFactory.txt	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,29 @@
+Round1Apf: 1
+	[final round: false, error raised: false, source files created: true, class files created: true]
+Round1Apf: 1 complete
+Round1Apf: 2
+Round2Apf: 1
+	[final round: false, error raised: false, source files created: true, class files created: true]
+Round1Apf: 2 complete
+Round1Apf: 3
+Round2Apf: 2
+Round3Apf: 1
+	[final round: false, error raised: false, source files created: true, class files created: false]
+Round1Apf: 3 complete
+Round1Apf: 4
+Round2Apf: 3
+Round3Apf: 2
+Round4Apf: 1
+	[final round: false, error raised: false, source files created: true, class files created: false]
+Round1Apf: 4 complete
+	[final round: false, error raised: false, source files created: true, class files created: false]
+Round4Apf: 1 complete
+Round1Apf: 5
+Round2Apf: 4
+Round3Apf: 3
+Round4Apf: 2
+	[final round: true, error raised: false, source files created: false, class files created: false]
+Round1Apf: 5 complete
+	[final round: true, error raised: false, source files created: false, class files created: false]
+Round4Apf: 2 complete
+Valediction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/goldenWarn.txt	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,14 @@
+warning: Beware the ides of March!
+HelloAnnotation.java:6: Note: You are about to be warned
+@interface HelloAnnotation {
+ ^
+HelloAnnotation.java:6: warning: Strange class name
+@interface HelloAnnotation {
+ ^
+Note: MIRROR HelloAnnotation.java:6
+Note: VALUE HelloAnnotation.java:6
+Note: MIRROR HelloAnnotation.java:6
+Note: VALUE HelloAnnotation.java:6
+Note: MIRROR HelloAnnotation.java:6
+Note: VALUE HelloAnnotation.java:5
+2 warnings
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/servicesRound1	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,1 @@
+Round1Apf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/servicesRound2	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,1 @@
+Round2Apf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/servicesRound3	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,1 @@
+Round3Apf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/servicesRound4	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,1 @@
+Round4Apf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/servicesStaticApf	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,1 @@
+StaticApf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/src/AhOneClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+public class AhOneClass {}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/src/AndAhTwoClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+public class AndAhTwoClass {}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Compile/src/Round1Class.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+public class Round1Class {}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Discovery/Dee.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+import java.util.Collections;
+
+public class Dee implements AnnotationProcessorFactory {
+    static class DeeProc implements AnnotationProcessor {
+	DeeProc(AnnotationProcessorEnvironment ape) {}
+    
+	public void process() {
+	    return;
+	}
+    }
+
+    static Collection<String> supportedTypes;
+    static {
+	String types[] = {"dum"};
+	supportedTypes = Collections.unmodifiableCollection(Arrays.asList(types));
+    }
+
+    static Collection<String> supportedOptions;
+    static {
+	String options[] = {""};
+	supportedOptions = Collections.unmodifiableCollection(Arrays.asList(options));
+    }
+
+    public Collection<String> supportedOptions() {
+	return supportedOptions;
+    }
+
+    public Collection<String> supportedAnnotationTypes() {
+	return supportedTypes;
+    }
+
+    /*
+     * Return the same processor independent of what annotations are
+     * present, if any.
+     */
+    public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
+					AnnotationProcessorEnvironment env) {
+	return new DeeProc(env);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Discovery/Dum.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+import java.util.Collections;
+
+public class Dum implements AnnotationProcessorFactory {
+    static class DumProc implements AnnotationProcessor {
+	DumProc(AnnotationProcessorEnvironment ape) {}
+    
+	public void process() {
+	    return;
+	}
+    }
+
+    static Collection<String> supportedTypes;
+    static {
+	String types[] = {"dee"};
+	supportedTypes = Collections.unmodifiableCollection(Arrays.asList(types));
+    }
+
+    static Collection<String> supportedOptions;
+    static {
+	String options[] = {""};
+	supportedOptions = Collections.unmodifiableCollection(Arrays.asList(options));
+    }
+
+    public Collection<String> supportedOptions() {
+	return supportedOptions;
+    }
+
+    public Collection<String> supportedAnnotationTypes() {
+	return supportedTypes;
+    }
+
+    /*
+     * Return the same processor independent of what annotations are
+     * present, if any.
+     */
+    public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
+					AnnotationProcessorEnvironment env) {
+	return new DumProc(env);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Discovery/Empty.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+public class Empty {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Discovery/PhantomTouch.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+import java.util.Collections;
+import java.io.*;
+
+public class PhantomTouch implements AnnotationProcessorFactory {
+    static class PhantomTouchProc implements AnnotationProcessor {
+	AnnotationProcessorEnvironment ape;
+	PhantomTouchProc(AnnotationProcessorEnvironment ape) {
+	    this.ape = ape;
+	}
+    
+	public void process() {
+	    // Only run the processor on the initial apt invocation
+	    if (ape.getSpecifiedTypeDeclarations().size() == 0) {
+		boolean result;
+		try {
+		    // Create temporary file
+		    java.io.File f = new java.io.File("touched");
+		    result = f.createNewFile();
+
+		    if (result) {
+			// Create new source file
+			PrintWriter pw = ape.getFiler().createSourceFile("HelloWorld");
+			pw.println("public class HelloWorld {");
+			pw.println("  // Phantom hello world");
+			pw.println("  public static void main(String argv[]) {");
+			pw.println("    System.out.println(\"Hello World\");");
+			pw.println("  }");
+			pw.println("}");
+		    } else
+			throw new RuntimeException("touched file already exists!");
+		} catch (java.io.IOException e) {
+		    result = false;
+		}
+	    }
+	}
+    }
+
+    static final Collection<String> supportedOptions;
+    static final Collection<String> supportedTypes;
+
+    static {
+	String options[] = {""};
+	supportedOptions = Collections.unmodifiableCollection(Arrays.asList(options));
+
+	String types[] = {"*"};
+	supportedTypes = Collections.unmodifiableCollection(Arrays.asList(types));
+    }
+
+    public Collection<String> supportedAnnotationTypes() {return supportedTypes;}
+    public Collection<String> supportedOptions() {return supportedOptions;}
+
+
+    /*
+     * Return the same processor independent of what annotations are
+     * present, if any.
+     */
+    public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
+					AnnotationProcessorEnvironment env) {
+	return new PhantomTouchProc(env);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Discovery/PhantomUpdate.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2006-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * JSR 269 annotation processor to test combined apt + JSR 269
+ * annotation processor file generation and option passing.
+ */
+
+import javax.annotation.processing.*;
+import static  javax.lang.model.SourceVersion.*;
+import javax.lang.model.element.*;
+import javax.lang.model.type.*;
+import javax.lang.model.util.*;
+import java.util.*;
+import java.io.*;
+
+@SupportedAnnotationTypes("*")	// Process all annotations
+@SupportedSourceVersion(RELEASE_6)
+public class PhantomUpdate extends AbstractProcessor {
+    boolean firstRound = true;
+
+    public boolean process(Set<? extends TypeElement> annotations,
+			   RoundEnvironment roundEnv) {
+	if (firstRound) {
+	    verifyOptions();
+	    printGoodbyeWorld();
+	    firstRound = false;
+	}
+	return true; // Claim all annotations
+    }
+
+    /*
+     * Expected options are "foo" and "bar=baz".
+     */
+    private void verifyOptions() {
+	Map<String, String> actualOptions = processingEnv.getOptions();
+	Map<String, String> expectedOptions = new LinkedHashMap<String, String>();
+	expectedOptions.put("foo", null);
+	expectedOptions.put("bar", "baz");
+	
+	if (!actualOptions.equals(expectedOptions) ) {
+	    System.err.println("Expected options " + expectedOptions + 
+			       "\n but got " + actualOptions);
+	    throw new RuntimeException("Options mismatch");
+	}
+    }
+
+    private void printGoodbyeWorld() {
+	try {
+	    // Create new source file
+	    PrintWriter pw = new PrintWriter(processingEnv.getFiler().createSourceFile("GoodbyeWorld").openWriter());
+	    pw.println("public class GoodbyeWorld {");
+	    pw.println("  // PhantomUpdate Goodbye world");
+	    pw.println("  public static void main(String argv[]) {");
+	    pw.println("    System.out.println(\"Goodbye World\");");
+	    pw.println("  }");
+	    pw.println("}");
+	    pw.close();
+	} catch (Exception e) {
+	    throw new RuntimeException(e);
+	}
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Discovery/Touch.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,116 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+import java.util.Collections;
+import java.io.*;
+
+public class Touch implements AnnotationProcessorFactory {
+    static class TouchProc implements AnnotationProcessor {
+	AnnotationProcessorEnvironment ape;
+	TouchProc(AnnotationProcessorEnvironment ape) {
+	    this.ape = ape;
+	}
+    
+	public void process() {
+	    boolean result;
+	    // Only run the processor on the initial apt invocation
+	    Collection<TypeDeclaration> tdecls = ape.getSpecifiedTypeDeclarations();
+
+	    if (tdecls.size() == 1) {
+		for(TypeDeclaration decl: tdecls) {
+		    if (! decl.getSimpleName().equals("Touch") )
+			return;
+		}
+
+		try {
+		    // Create temporary file
+		    java.io.File f = new java.io.File("touched");
+		    result = f.createNewFile();
+
+
+		    Filer filer = ape.getFiler();
+	    
+		    // Create new source file
+		    PrintWriter pw = filer.createSourceFile("HelloWorld");
+		    pw.println("public class HelloWorld {");
+		    pw.println("  public static void main(String argv[]) {");
+		    pw.println("    System.out.println(\"Hello World\");");
+		    pw.println("  }");
+		    pw.println("}");
+
+		    // Create new class file and copy Empty.class
+		    OutputStream os = filer.createClassFile("Empty");
+		    FileInputStream fis = new FileInputStream("Empty.clazz");
+		    int datum;
+		    while((datum = fis.read()) != -1)
+			os.write(datum);
+
+		} catch (java.io.IOException e) {
+		    result = false;
+		}
+		if (!result)
+		    throw new RuntimeException("touched file already exists or other error");
+	    }
+
+	}
+
+    }
+
+    static Collection<String> supportedTypes;
+    static {
+	String types[] = {"*"};
+	supportedTypes = Collections.unmodifiableCollection(Arrays.asList(types));
+    }
+
+    static Collection<String> supportedOptions;
+    static {
+	String options[] = {""};
+	supportedOptions = Collections.unmodifiableCollection(Arrays.asList(options));
+    }
+
+    public Collection<String> supportedOptions() {
+	return supportedOptions;
+    }
+
+    public Collection<String> supportedAnnotationTypes() {
+	return supportedTypes;
+    }
+
+    /*
+     * Return the same processor independent of what annotations are
+     * present, if any.
+     */
+    public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
+					AnnotationProcessorEnvironment env) {
+	return new TouchProc(env);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Discovery/discovery.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,384 @@
+# @test
+# @bug 4984412 4985113 4908512 4990905 4998007 4998218 5002340 5023882 6370261 6363481
+# @run shell ../verifyVariables.sh
+# @compile PhantomUpdate.java
+# @run shell discovery.sh
+# @summary Test consistency of annotation discovery
+# @author Joseph D. Darcy
+
+
+# If the file does not exist, exit with an error
+TestFile() {
+	if [ ! -f ${1} ]; then
+		printf "%s\n" "File ${1} not found."
+		exit 1
+	fi
+}
+
+OS=`uname -s`;
+case "${OS}" in
+        Windows* | CYGWIN* )
+                SEP=";"
+        ;;
+
+	* )
+	SEP=":"
+	;;
+esac
+
+TOOLSJAR=${TESTJAVA}/lib/tools.jar
+
+OLDCP=${CLASSPATH}
+
+JARCP=tweedle.jar${SEP}touch.jar${SEP}${TOOLSJAR}
+SOURCEP=${TESTSRC}
+FULLCP=${JARCP}${SEP}${SOURCEP}
+BADCP=tweedle.jar${SEP}badTouch.jar${SEP}${TOOLSJAR}
+
+# Construct path to apt executable
+APT="${TESTJAVA}/bin/apt "
+
+
+# Construct path to apt executable, no compilation
+APTNC="${APT} -nocompile "
+
+
+printf "%s\n" "APT = ${APT}"
+
+# Construct path to javac executable
+JAVAC="${TESTJAVA}/bin/javac -source 1.5 -sourcepath ${TESTSRC} -classpath ${TOOLSJAR} -d . "
+JAR="${TESTJAVA}/bin/jar "
+
+$JAVAC ${TESTSRC}/Dee.java ${TESTSRC}/Dum.java ${TESTSRC}/Touch.java ${TESTSRC}/PhantomTouch.java ${TESTSRC}/Empty.java
+RESULT=$?
+
+case "${RESULT}" in
+        0  )
+        ;;
+
+        * )
+        echo "Compilation failed."
+        exit 1
+esac
+
+mv Empty.class Empty.clazz
+
+echo "Making services directory and copying services information."
+mkdir -p META-INF/services
+mkdir -p phantom
+
+rm -f touch.jar
+rm -f badTouch.jar
+
+cp ${TESTSRC}/servicesTweedle META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
+
+${JAR} cf0 tweedle.jar Dee*.class Dum*.class META-INF
+
+rm -f META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
+cp ${TESTSRC}/servicesTouch ./META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
+
+${JAR} cf0 touch.jar Touch*.class META-INF
+
+rm -f META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
+cp ${TESTSRC}/servicesPhantomTouch ./META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
+
+${JAR} cf0 phantom/phantom.jar PhantomTouch*.class META-INF
+
+
+
+# Jar files created; verify right output file is touched
+
+#---------------------------------------------------------
+
+# Test different combinations of classpath, sourcepath, and
+# destination directories
+
+
+#
+# Classpath on commandline; no output directories
+#
+
+rm -f touched 
+rm -f HelloWorld.java
+rm -f Empty.class
+
+unset CLASSPATH
+printf "%s\n" "-classpath ${JARCP}"     > options1
+printf "%s\n" "-sourcepath ${SOURCEP}" >> options1
+printf "%s\n" "${TESTSRC}/Touch.java"  >> options1
+
+${APTNC} @options1
+
+echo "Testing case 1"
+TestFile "touched"
+TestFile "HelloWorld.java"
+TestFile "Empty.class"
+
+#
+# Class path set through environment variable
+#
+
+rm -f touched
+rm -f HelloWorld.java
+rm -f Empty.class
+
+unset CLASSPATH
+CLASSPATH=${JARCP}
+export CLASSPATH
+printf "%s\n" "-sourcepath ${SOURCEP}" > options2
+printf "%s\n" "${TESTSRC}/Touch.java" >> options2
+
+${APTNC} @options2
+
+echo "Testing case 2"
+TestFile "touched"
+TestFile "HelloWorld.java"
+TestFile "Empty.class"
+
+#
+# No explicit source path
+#
+
+rm -f touched
+rm -f HelloWorld.java
+rm -f Empty.class
+
+unset CLASSPATH
+CLASSPATH=${FULLCP}
+export CLASSPATH
+printf "%s\n" "${TESTSRC}/Touch.java"  > options3
+
+${APTNC} @options3
+
+echo "Testing case 3"
+TestFile "touched"
+TestFile "HelloWorld.java"
+TestFile "Empty.class"
+
+
+#
+# Classpath on commandline; class output directory
+#
+
+rm -f touched
+rm -f HelloWorld.java
+rm -Rf classes/Empty.class
+
+unset CLASSPATH
+printf "%s\n" "-classpath ${JARCP}"     > options4
+printf "%s\n" "-sourcepath ${SOURCEP}" >> options4
+printf "%s\n" "-d classes"             >> options4
+printf "%s\n" "${TESTSRC}/Touch.java"  >> options4
+
+${APTNC} @options4
+
+echo "Testing case 4"
+TestFile "touched"
+TestFile "HelloWorld.java"
+TestFile "classes/Empty.class"
+
+#
+# Classpath on commandline; source output directory
+#
+
+rm -f touched
+rm -Rf src
+rm -f Empty.class
+
+unset CLASSPATH
+printf "%s\n" "-classpath ${JARCP}"     > options5
+printf "%s\n" "-sourcepath ${SOURCEP}" >> options5
+printf "%s\n" "-s src"                 >> options5
+printf "%s\n" "${TESTSRC}/Touch.java"  >> options5
+
+${APTNC} @options5
+
+echo "Testing case 5"
+TestFile "touched"
+TestFile "src/HelloWorld.java"
+TestFile "Empty.class"
+
+
+#
+# Classpath on commandline; class and source output directory
+#
+
+rm -f touched
+rm -Rf src
+rm -Rf classes
+
+unset CLASSPATH
+printf "%s\n" "-classpath ${JARCP}"     > options6
+printf "%s\n" "-sourcepath ${SOURCEP}" >> options6
+printf "%s\n" "-d classes"             >> options6
+printf "%s\n" "-s src"                 >> options6
+printf "%s\n" "${TESTSRC}/Touch.java"  >> options6
+
+${APTNC} @options6
+
+echo "Testing case 6"
+TestFile "touched"
+TestFile "src/HelloWorld.java"
+TestFile "classes/Empty.class"
+
+#
+# Classpath appended to bootclasspath; no output directories
+#
+
+rm -f touched
+rm -f HelloWorld.java
+rm -f Empty.class
+
+unset CLASSPATH
+printf "%s\n" "-Xbootclasspath/a:${JARCP}" > options7
+printf "%s\n" "-classpath /dev/null"      >> options7
+printf "%s\n" "${TESTSRC}/Touch.java"     >> options7
+
+${APTNC} @options7
+
+echo "Testing case 7"
+TestFile "touched"
+TestFile "HelloWorld.java"
+TestFile "Empty.class"
+
+#
+# Classpath in extdirs; no output directories
+#
+
+rm -f touched
+rm -f HelloWorld.java
+rm -f Empty.class
+
+unset CLASSPATH
+printf "%s\n" "-extdirs ."              > options8
+printf "%s\n" "-classpath ${TOOLSJAR}" >> options8
+printf "%s\n" "${TESTSRC}/Touch.java"  >> options8
+
+${APTNC} @options8
+
+echo "Testing case 8"
+TestFile "touched"
+TestFile "HelloWorld.java"
+TestFile "Empty.class"
+
+#
+# Classpath in extdirs, take 2; no output directories
+#
+
+rm -f touched
+rm -f HelloWorld.java
+rm -f Empty.class
+
+unset CLASSPATH
+printf "%s\n" "-Djava.ext.dirs=."        > options9
+printf "%s\n" "-classpath ${TOOLSJAR}"  >> options9
+printf "%s\n" "${TESTSRC}/Touch.java"   >> options9
+
+${APTNC} @options9
+
+echo "Testing case 9"
+TestFile "touched"
+TestFile "HelloWorld.java"
+TestFile "Empty.class"
+
+#
+# Classpath in -endorseddirs; no output directories
+#
+
+rm -f touched
+rm -f HelloWorld.java
+rm -f Empty.class
+
+unset CLASSPATH
+printf "%s\n" "-endorseddirs ."          > options10
+printf "%s\n" "-classpath ${TOOLSJAR}"  >> options10
+printf "%s\n" "${TESTSRC}/Touch.java"   >> options10
+
+${APTNC} @options10
+
+echo "Testing case 10"
+TestFile "touched"
+TestFile "HelloWorld.java"
+TestFile "Empty.class"
+
+#
+# Testing apt invocation with no command line options
+#
+
+rm -f touched
+rm -f HelloWorld.java
+rm -f Empty.class
+
+unset CLASSPATH
+CLASSPATH=./phantom/phantom.jar
+export CLASSPATH
+
+${APT}
+
+echo "Testing empty command line"
+TestFile "touched"
+TestFile "HelloWorld.java"
+
+
+#
+# Verify apt and JSR 269 annotation processors can be run from same
+# invocation and both use the output directories
+#
+
+rm -f touched
+rm -f src/HelloWorld.java
+rm -f src/GoodbyeWorld.java
+rm -f classes/HelloWorld.class
+rm -f classes/GoodbyeWorld.class
+
+unset CLASSPATH
+
+
+printf "%s\n" "-classpath ./phantom/phantom.jar" > options11
+printf "%s\n" "-sourcepath ${SOURCEP}"          >> options11
+printf "%s\n" "-factory PhantomTouch "          >> options11
+printf "%s\n" "-s src"                          >> options11
+printf "%s\n" "-d classes"                      >> options11
+printf "%s\n" "-A"             	                >> options11
+printf "%s\n" "-Afoo"          	                >> options11
+printf "%s\n" "-Abar=baz"      	                >> options11
+printf "%s\n" "-processorpath $TESTCLASSES"     >> options11
+printf "%s\n" "-processor PhantomUpdate"        >> options11
+
+${APT} @options11
+
+echo "Testing combined apt and JSR 269 processing"
+TestFile touched
+TestFile "src/HelloWorld.java"
+TestFile "src/GoodbyeWorld.java"
+TestFile "classes/HelloWorld.class"
+TestFile "classes/GoodbyeWorld.class"
+
+#
+# Verify running with badTouch doesn't exit successfully
+#
+
+rm -f ./META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
+cp ${TESTSRC}/servicesBadTouch ./META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
+
+${JAR} cf0 badTouch.jar Touch*.class META-INF
+
+
+unset CLASSPATH
+printf "%s\n" "-classpath ${BADCP}"     > optionsBad
+printf "%s\n" "-sourcepath ${SOURCEP}" >> optionsBad
+printf "%s\n" "${TESTSRC}/Touch.java"  >> optionsBad
+
+${APTNC} @optionsBad 2> /dev/null
+
+RESULT=$?
+
+case "${RESULT}" in
+        0  )
+	echo "Improper exit zero with bad services information."
+	exit 1
+        ;;
+esac
+
+
+exit 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Discovery/servicesBadTouch	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,1 @@
+Touche
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Discovery/servicesPhantomTouch	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,1 @@
+PhantomTouch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Discovery/servicesTouch	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,1 @@
+Touch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Discovery/servicesTweedle	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,2 @@
+Dee
+Dum
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Misc/Marked.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+class Marked {
+
+    @Marker
+	class marked1 {};
+
+
+    class Unmarked1 {};
+
+    @Marker
+	class marked2 {};
+
+
+    class Unmarked2 {};
+
+    @Marker
+	class marked3 {};
+
+
+    class Unmarked3 {};
+
+    @Marker
+	class marked4 {};
+
+
+    class Unmarked4 {};
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Misc/Marker.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+public @interface Marker {}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Misc/Misc.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Arrays;
+import java.util.Collections;
+
+public class Misc implements AnnotationProcessorFactory {
+    static class MiscCheck implements AnnotationProcessor {
+	AnnotationProcessorEnvironment ape;
+	MiscCheck(AnnotationProcessorEnvironment ape) {
+	    this.ape = ape;
+	}
+    
+	public void process() {
+	    Collection<Declaration> decls = ape.
+		getDeclarationsAnnotatedWith((AnnotationTypeDeclaration)
+					     ape.getTypeDeclaration("Marker"));
+
+	    // Should write more robust test that examines the
+	    // annotation mirrors for the declaration in question.
+	    for(Declaration decl: decls) {
+		if (!decl.getSimpleName().startsWith("marked") )
+		    throw new RuntimeException();
+	    }
+	}
+    }
+
+
+    static Collection<String> supportedTypes;
+    static {
+	String types[] = {"*"};
+	supportedTypes = Collections.unmodifiableCollection(Arrays.asList(types));
+    }
+
+    Collection<String> supportedOptions = 
+	Collections.unmodifiableCollection(new HashSet<String>());
+
+    public Collection<String> supportedOptions() {
+	return supportedOptions;
+    }
+
+    public Collection<String> supportedAnnotationTypes() {
+	return supportedTypes;
+    }
+
+    /*
+     * Return the same processor independent of what annotations are
+     * present, if any.
+     */
+    public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
+					       AnnotationProcessorEnvironment ape) {
+	return new MiscCheck(ape);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Misc/misc.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,75 @@
+# @test
+# @bug 5007250
+# @run shell ../verifyVariables.sh
+# @run shell misc.sh
+# @summary Miscelleneous tests
+# @author Joseph D. Darcy
+
+OS=`uname -s`;
+case "${OS}" in
+        Windows* | CYGWIN* )
+                SEP=";"
+        ;;
+
+	* )
+	SEP=":"
+	;;
+esac
+
+JARCP=misc.jar
+SOURCEP=${TESTSRC}
+
+# Construct path to apt executable
+APT="${TESTJAVA}/bin/apt -nocompile "
+
+printf "%s\n" "APT = ${APT}"
+
+# Construct path to javac executable
+JAVAC="${TESTJAVA}/bin/javac -source 1.5 -sourcepath ${TESTSRC} -classpath ${TESTJAVA}/lib/tools.jar -d . "
+JAR="${TESTJAVA}/bin/jar "
+
+${JAVAC} ${TESTSRC}/Misc.java ${TESTSRC}/Marked.java 
+RESULT=$?
+
+case "${RESULT}" in
+        0  )
+        ;;
+
+        * )
+        echo "Compilation failed."
+        exit 1
+esac
+
+
+echo "Making services directory and copying services information."
+mkdir -p META-INF/services
+
+cp ${TESTSRC}/servicesMisc META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
+
+${JAR} cf0 misc.jar Misc*.class META-INF
+
+# Jar files created; verify options properly present on both initial
+# and recursive apt runs
+
+#---------------------------------------------------------
+
+unset CLASSPATH
+
+printf "%s\n" "-classpath ${JARCP}"     > options
+printf "%s\n" "-sourcepath ${SOURCEP}" >> options
+printf "%s\n" "${TESTSRC}/Marked.java" >> options
+
+${APT} @options
+
+RESULT=$?
+case "${RESULT}" in
+        0  )
+	;;	
+	
+	* )
+	echo "Problem with result"
+	exit 1
+        ;;
+esac
+
+exit 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Misc/servicesMisc	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,2 @@
+Misc
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Options/Marked.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+@Marker
+class Marked {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Options/Marker.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+public @interface Marker {}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Options/OptionChecker.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,117 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Map;
+import java.util.Arrays;
+import java.util.Collections;
+
+public class OptionChecker implements AnnotationProcessorFactory {
+    static class OptionCheck implements AnnotationProcessor {
+	AnnotationProcessorEnvironment ape;
+	OptionCheck(AnnotationProcessorEnvironment ape) {
+	    this.ape = ape;
+	}
+    
+	public void process() {
+	    Map<String, String> options = ape.getOptions();
+	    if (options.containsKey("-Afoo") && 
+		options.containsKey("-Abar") && 
+		options.containsKey("-classpath") ) {
+		System.out.println("Expected options found.");
+		return;  // All is well
+	    } else {
+		System.err.println("Unexpected options values: " + options);
+		throw new RuntimeException();
+	    }
+	}
+    }
+
+    static class HelloWorld implements AnnotationProcessor {
+	AnnotationProcessorEnvironment ape;
+	HelloWorld(AnnotationProcessorEnvironment ape) {
+	    this.ape = ape;
+	}
+    
+	public void process() {
+	    java.io.PrintWriter pw;
+	    try {
+		pw = ape.getFiler().createSourceFile("HelloWorld");
+	    } catch (Exception e) {
+		throw new RuntimeException(e);
+	    }
+
+	    pw.println("public class HelloWorld {");
+	    pw.println("  public static void main (String argv[]) {");
+	    pw.println("    System.out.println(\"Hello apt world.\");");
+	    pw.println("  }");
+	    pw.println("}");
+	}
+    }
+	
+
+    static Collection<String> supportedTypes;
+    static {
+	String types[] = {"*"};
+	supportedTypes = Collections.unmodifiableCollection(Arrays.asList(types));
+    }
+
+    static Collection<String> supportedOptions;
+    static {
+	String options[] = {"-Afoo", "-Abar"};
+	supportedOptions = Collections.unmodifiableCollection(Arrays.asList(options));
+    }
+
+    public Collection<String> supportedOptions() {
+	return supportedOptions;
+    }
+
+    public Collection<String> supportedAnnotationTypes() {
+	return supportedTypes;
+    }
+
+    /*
+     * Return the same processor independent of what annotations are
+     * present, if any.
+     */
+    public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
+					       AnnotationProcessorEnvironment ape) {
+
+	if (atds.contains(ape.getTypeDeclaration("Marker"))) {
+	    System.out.println("Returning composite processor.");
+	    return AnnotationProcessors.getCompositeAnnotationProcessor(new OptionCheck(ape),
+									new HelloWorld(ape));
+	}
+	else { 
+	    System.out.println("Returning single processor.");
+	    return new OptionCheck(ape);
+	}
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Options/options.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,91 @@
+# @test
+# @bug 4993950 4993277
+# @run shell ../verifyVariables.sh
+# @run shell options.sh
+# @summary Test availabilty of command line options in processors
+# @author Joseph D. Darcy
+
+OS=`uname -s`;
+case "${OS}" in
+        Windows* | CYGWIN* )
+                SEP=";"
+        ;;
+
+	* )
+	SEP=":"
+	;;
+esac
+
+JARCP=option.jar
+SOURCEP=${TESTSRC}
+
+
+# Construct path to apt executable
+APT="${TESTJAVA}/bin/apt -nocompile "
+
+printf "%s\n" "APT = ${APT}"
+
+# Construct path to javac executable
+JAVAC="${TESTJAVA}/bin/javac -source 1.5 -sourcepath ${TESTSRC} -classpath ${TESTJAVA}/lib/tools.jar -d . "
+JAR="${TESTJAVA}/bin/jar "
+
+${JAVAC} ${TESTSRC}/OptionChecker.java
+RESULT=$?
+
+case "${RESULT}" in
+        0  )
+        ;;
+
+        * )
+        echo "Compilation failed."
+        exit 1
+esac
+
+
+echo "Making services directory and copying services information."
+mkdir -p META-INF/services
+
+cp ${TESTSRC}/servicesOptions META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
+
+${JAR} cf0 option.jar OptionChecker*.class META-INF
+
+# Jar files created; verify options properly present on both initial
+# and recursive apt runs
+
+#---------------------------------------------------------
+
+unset CLASSPATH
+
+printf "%s\n" "-classpath ${JARCP}"     > options
+printf "%s\n" "-sourcepath ${SOURCEP}" >> options
+printf "%s\n" "${TESTSRC}/Marked.java" >> options
+
+${APT} @options
+
+RESULT=$?
+case "${RESULT}" in
+        0  )
+	echo "Failed to indentify missing options"
+	exit 1
+	;;	
+	
+	* )
+        ;;
+esac
+
+printf "%s\n" "-Afoo -Abar" >> options
+
+${APT} @options
+
+RESULT=$?
+case "${RESULT}" in
+        0  )
+	;;	
+	
+	* )
+	echo "Options not found properly."
+	exit 1
+        ;;
+esac
+
+exit 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Options/servicesOptions	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,1 @@
+OptionChecker
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Scanners/Counter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,108 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+
+import static java.util.Collections.*;
+import static com.sun.mirror.util.DeclarationVisitors.*;
+
+/*
+ * Used to verify counts from different kinds of declaration scanners.
+ */
+public class Counter implements AnnotationProcessorFactory { 
+    static class CounterProc implements AnnotationProcessor {
+	static class CountingVisitor extends SimpleDeclarationVisitor {
+	    int count;
+	    int count() {
+		return count;
+	    }
+
+	    CountingVisitor() {
+		count = 0;
+	    }
+		
+	    public void visitDeclaration(Declaration d) {
+		count++;
+		System.out.println(d.getSimpleName());
+	    }
+	}
+
+	AnnotationProcessorEnvironment env;
+	CounterProc(AnnotationProcessorEnvironment env) {
+	    this.env = env;
+	}
+	    
+	public void process() {
+	    for(TypeDeclaration td: env.getSpecifiedTypeDeclarations() ) {
+		CountingVisitor sourceOrder = new CountingVisitor();
+		CountingVisitor someOrder = new CountingVisitor();
+
+		System.out.println("Source Order Scanner");
+		td.accept(getSourceOrderDeclarationScanner(sourceOrder,
+							   NO_OP));
+
+		System.out.println("\nSome Order Scanner");
+		td.accept(getDeclarationScanner(someOrder,
+						NO_OP));
+
+		if (sourceOrder.count() != someOrder.count() )
+		    throw new RuntimeException("Counts from different scanners don't agree");
+	    }
+
+	}
+    }
+
+    static Collection<String> supportedTypes;
+    static {
+        String types[] = {"*"};
+        supportedTypes = unmodifiableCollection(Arrays.asList(types));
+    }
+
+    static Collection<String> supportedOptions;
+    static {
+        String options[] = {""};
+        supportedOptions = unmodifiableCollection(Arrays.asList(options));
+    }
+
+    public Collection<String> supportedOptions() {
+        return supportedOptions;
+    }
+
+    public Collection<String> supportedAnnotationTypes() {
+        return supportedTypes;
+    }
+
+    public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
+					       AnnotationProcessorEnvironment env) {
+        return new CounterProc(env);
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Scanners/MemberOrderApf.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Arrays;
+
+import static java.util.Collections.*;
+import static com.sun.mirror.util.DeclarationVisitors.*;
+
+/*
+ * The processor of this factory verifies class members are returned
+ * in source-code order.
+ */
+public class MemberOrderApf implements AnnotationProcessorFactory {
+    // Process any set of annotations
+    private static final Collection<String> supportedAnnotations
+        = unmodifiableCollection(Arrays.asList("*"));
+
+    // No supported options
+    private static final Collection<String> supportedOptions = emptySet();
+
+    public Collection<String> supportedAnnotationTypes() {
+        return supportedAnnotations;
+    }
+
+    public Collection<String> supportedOptions() {
+        return supportedOptions;
+    }
+
+    public AnnotationProcessor getProcessorFor(
+            Set<AnnotationTypeDeclaration> atds,
+            AnnotationProcessorEnvironment env) {
+        return new MemberOrderAp(env);
+    }
+
+    private static class MemberOrderAp implements AnnotationProcessor {
+        private final AnnotationProcessorEnvironment env;
+        MemberOrderAp(AnnotationProcessorEnvironment env) {
+            this.env = env;
+        }
+
+	private void verifyOrder(Collection<? extends Declaration> decls) {
+	    int count = 0;
+	    for(Declaration decl: decls) {
+		VisitOrder order = decl.getAnnotation(VisitOrder.class);
+		if (order.value() <= count)
+		    throw new RuntimeException("Out of order declarations");
+		count = order.value();
+	    }
+	}
+
+        public void process() {
+	    for(TypeDeclaration td: env.getSpecifiedTypeDeclarations()) {
+		verifyOrder(td.getFields());
+		verifyOrder(td.getMethods());
+	    }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Scanners/Order.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+
+@VisitOrder(1)
+public class Order {
+    @VisitOrder(2)
+    static double d;
+
+    @VisitOrder(3)
+    private Order() {}
+
+    @VisitOrder(4)
+    int i;
+
+    @VisitOrder(5)
+    static class InnerOrder {
+	@VisitOrder(6)
+	InnerOrder(){}
+
+	@VisitOrder(7)
+	String toString() {return "";}
+    }
+
+    @VisitOrder(8)
+    String toString() {return "";}
+
+    @VisitOrder(9)
+    InnerOrder io;
+
+    @VisitOrder(10)
+    String foo() {return toString();}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Scanners/Scanner.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,123 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.util.Collection;
+import java.util.Set;
+import java.util.Map;
+import java.util.Arrays;
+import java.util.Collections;
+
+
+public class Scanner implements AnnotationProcessorFactory {
+    static class ScannerProc implements AnnotationProcessor {
+	AnnotationProcessorEnvironment env;
+	ScannerProc(AnnotationProcessorEnvironment env) {
+	    this.env = env;
+	}
+
+	static class CountingVisitor extends SimpleDeclarationVisitor {
+	    int count;
+	    CountingVisitor() {
+		count = 0;
+	    }
+
+	    public void visitDeclaration(Declaration d) {
+		count++;
+
+		Collection<AnnotationMirror> ams = d.getAnnotationMirrors();
+		if (ams == null)
+		    throw new RuntimeException("Declaration " + d + 
+					       " not annotated with visit order.");
+		else {
+		    if (ams.size() != 1) 
+			throw new RuntimeException("Declaration " + d + 
+						   " has wrong number of declarations.");
+		    else {
+			for(AnnotationMirror am: ams) {
+			    Map<AnnotationTypeElementDeclaration,AnnotationValue> elementValues = am.getElementValues();
+			    for(AnnotationTypeElementDeclaration atmd: elementValues.keySet()) {
+				if (!atmd.getDeclaringType().toString().equals("VisitOrder"))
+				    throw new RuntimeException("Annotation " + atmd + 
+							       " is the wrong type.");
+				else {
+				    AnnotationValue av = 
+					elementValues.get(atmd);
+				    Integer value = (Integer) av.getValue();
+				    if (value.intValue() != count)
+					throw new RuntimeException("Expected declaration " + d + 
+								   " to be in position " + count +
+								   " instead of " + value.intValue());
+
+				    System.out.println("Declaration " + d + 
+						       ": visit order " + value.intValue());
+				}
+			    }
+
+			}
+		    }
+		}
+
+	    }
+	}
+
+	public void process() {
+	    for(TypeDeclaration td: env.getSpecifiedTypeDeclarations() ) {
+		td.accept(DeclarationVisitors.getSourceOrderDeclarationScanner(new CountingVisitor(),
+									       DeclarationVisitors.NO_OP));
+	    }
+	}
+    }
+
+
+    static Collection<String> supportedTypes;
+    static {
+        String types[] = {"*"};
+        supportedTypes = Collections.unmodifiableCollection(Arrays.asList(types));
+    }
+
+    static Collection<String> supportedOptions;
+    static {
+        String options[] = {""};
+        supportedOptions = Collections.unmodifiableCollection(Arrays.asList(options));
+    }
+
+    public Collection<String> supportedOptions() {
+        return supportedOptions;
+    }
+
+    public Collection<String> supportedAnnotationTypes() {
+        return supportedTypes;
+    }
+
+    public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
+                                        AnnotationProcessorEnvironment env) {
+        return new ScannerProc(env);
+    }
+   
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Scanners/TestEnum.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+public enum TestEnum {
+    QUIZ,
+    EXAM,
+    MIDTERM,
+    FINAL,
+    QUALIFIER;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Scanners/VisitOrder.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * Integer to indicate what order a declaration is expected to be
+ * visited in by a DeclarationScanner.
+ */
+
+@interface VisitOrder {
+    int value();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Scanners/scanner.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,121 @@
+# @test
+# @bug 4989093 5009164 5023880 5029482 6206786
+# @run shell ../verifyVariables.sh
+# @run shell scanner.sh
+# @summary Test source order scanner
+# @author Joseph D. Darcy
+
+OS=`uname -s`;
+case "${OS}" in
+        Windows* | CYGWIN* )
+                SEP=";"
+        ;;
+
+	* )
+	SEP=":"
+	;;
+esac
+
+JARCP=scanner.jar
+
+# Construct path to apt executable
+APT="${TESTJAVA}/bin/apt -nocompile "
+
+printf "%s\n" "APT = ${APT}"
+
+# Construct path to javac executable
+JAVAC="${TESTJAVA}/bin/javac -source 1.5 -sourcepath ${TESTSRC} -classpath ${TESTJAVA}/lib/tools.jar -d . "
+JAR="${TESTJAVA}/bin/jar "
+
+${JAVAC} ${TESTSRC}/Scanner.java ${TESTSRC}/VisitOrder.java ${TESTSRC}/Counter.java ${TESTSRC}/MemberOrderApf.java
+RESULT=$?
+
+case "${RESULT}" in
+        0  )
+        ;;
+
+        * )
+        echo "Compilation failed."
+        exit 1
+esac
+
+
+echo "Making services directory and copying services information."
+mkdir -p META-INF/services
+
+cp ${TESTSRC}/servicesScanner META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
+
+${JAR} cf0 scanner.jar Scanner*.class META-INF
+
+# Jar files created; verify options properly present on both initial
+# and recursive apt runs
+
+#---------------------------------------------------------
+
+unset CLASSPATH
+
+printf "%s\n" "-classpath ${JARCP}"     > options
+printf "%s\n" "-sourcepath ${TESTSRC}" >> options
+printf "%s\n" "${TESTSRC}/Order.java"  >> options
+
+${APT} @options
+
+RESULT=$?
+case "${RESULT}" in
+        0  )
+	;;	
+	
+	* )
+	echo "Program elements visited in wrong order"
+	exit 1
+        ;;
+esac
+
+#---------------------------------------------------------
+
+# Verify that plain decl' scanner and source order decl' scanner
+# record the same number of elements for an enum
+
+printf "%s\n" "-factorypath ."            > options2
+printf "%s\n" "-factory Counter"         >> options2
+printf "%s\n" "-sourcepath ${TESTSRC}"   >> options2
+printf "%s\n" "${TESTSRC}/TestEnum.java" >> options2
+
+
+$APT @options2
+
+RESULT=$?
+case "${RESULT}" in
+        0  )
+	;;	
+	
+	* )
+	echo "Improper counts"
+	exit 1
+        ;;
+esac
+
+#---------------------------------------------------------
+
+# Verify that members happen to be returned in source order
+
+printf "%s\n" "-factorypath ."            > options3
+printf "%s\n" "-factory MemberOrderApf"  >> options3
+printf "%s\n" "-sourcepath ${TESTSRC}"   >> options3
+printf "%s\n" "${TESTSRC}/Order.java"    >> options3
+
+$APT @options3
+
+RESULT=$?
+case "${RESULT}" in
+        0  )
+	;;	
+	
+	* )
+	echo "Improper counts"
+	exit 1
+        ;;
+esac
+
+
+exit 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/Scanners/servicesScanner	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,1 @@
+Scanner
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/lib/Ignore.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import java.lang.annotation.*;
+
+/**
+ * An annotation used to indicate that a test -- a method annotated
+ * with @Test -- should not be executed.
+ *
+ * @author Scott Seligman
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Ignore {
+
+    /**
+     * Reason for ignoring this test.
+     */
+    String value() default "";
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/lib/Test.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import java.lang.annotation.*;
+
+/**
+ * An annotation used to indicate that a method constitutes a test,
+ * and which provides the expected result.  The method must take no parameters.
+ *
+ * @author Scott Seligman
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Test {
+
+    /**
+     * An array containing the method's expected result (or
+     * elements of the result if the return type is a Collection).
+     * Value is ignored if return type is void.
+     * Entries are converted to strings via {@link String#valueOf(Object)}.
+     */
+    String[] result() default {};
+
+    /**
+     * True if the order of the elements in result() is significant.
+     */
+    boolean ordered() default false;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/lib/TestProcessor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,132 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import java.lang.reflect.Method;
+import java.util.*;
+import com.sun.mirror.apt.*;
+
+
+/**
+ * Annotation processor for the @Test annotation.
+ * Invokes each method so annotated, and verifies the result.
+ * Throws an Error on failure.
+ *
+ * @author Scott Seligman
+ */
+public class TestProcessor implements AnnotationProcessor {
+
+    AnnotationProcessorEnvironment env;
+
+    // The tester that's running.
+    Tester tester = Tester.activeTester;
+
+    TestProcessor(AnnotationProcessorEnvironment env,
+		  Tester tester) {
+	this.env = env;
+	this.tester = tester;
+    }
+
+
+    /**
+     * Reflectively invoke the @Test-annotated methods of the live
+     * tester.  Those methods perform the actual exercising of the
+     * mirror API.  Then back here to verify the results by
+     * reading the live annotations.  Convoluted, you say?
+     */
+    public void process() {
+	System.out.printf("\n> Processing %s\n", tester.getClass());
+
+	boolean failed = false;		// true if a test returns wrong result
+
+	for (Method m : tester.getClass().getDeclaredMethods()) {
+	    Test anno = m.getAnnotation(Test.class);
+	    Ignore ignore = m.getAnnotation(Ignore.class);
+	    if (anno != null) {
+		if (ignore == null) {
+		    System.out.println(">> Invoking test " + m.getName());
+		    Object result;
+		    try {
+			result = m.invoke(tester);
+		    } catch (Exception e) {
+			throw new Error("Test invocation failed", e);
+		    }
+		    boolean ok = true;	// result of this test
+		    if (Collection.class.isAssignableFrom(m.getReturnType())) {
+			ok = verifyResults((Collection) result,
+					   anno.result(), anno.ordered());
+		    } else if (m.getReturnType() != void.class) {
+			ok = verifyResult(result, anno.result());
+		    }
+		    if (!ok) {
+			System.out.println(">>> Expected: " + anno);
+			System.out.println(">>> Got: " + result);
+			failed = true;
+		    }
+		} else {
+		    System.out.println(">> Ignoring test " + m.getName());
+		    if (ignore.value().length() > 0) {
+			System.out.println(">>> Reason: " + ignore.value());
+		    }
+		}
+	    }
+	}
+	if (failed) {
+	    throw new Error("Test(s) returned unexpected result");
+	}
+    }
+
+    /**
+     * Verify that a single-valued (non-Collection) result matches
+     * its expected value.
+     */
+    private boolean verifyResult(Object result, String[] expected) {
+	assert expected.length == 1 :
+	    "Single-valued test expecting " + expected.length + " results";
+	return expected[0].equals(String.valueOf(result));
+    }
+
+    /**
+     * Verify that a multi-valued result (a Collection) matches
+     * its expected values.
+     */
+    private boolean verifyResults(Collection result,
+				  String[] expected, boolean ordered) {
+	if (result.size() != expected.length) {
+	    return false;
+	}
+
+	// Convert result to an array of strings.
+	String[] res = new String[result.size()];
+	int i = 0;
+	for (Object e : result) {
+	    res[i++] = String.valueOf(e);
+	}
+
+	if (!ordered) {
+	    Arrays.sort(res);
+	    Arrays.sort(expected);
+	}
+	return Arrays.equals(res, expected);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/lib/TestProcessorFactory.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+import java.util.*;
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.util.*;
+
+
+/**
+ * A factory for generating the TestProcessor annotation processor, which
+ * processes the @Test annotation.
+ *
+ * @author Scott Seligman
+ */
+public class TestProcessorFactory implements AnnotationProcessorFactory {
+
+    public Collection<String> supportedOptions() {
+	return new ArrayList<String>();
+    }
+
+    public Collection<String> supportedAnnotationTypes() {
+	ArrayList<String> res = new ArrayList<String>();
+	res.add("Test");
+	res.add("Ignore");
+	return res;
+    }
+
+    public AnnotationProcessor getProcessorFor(
+					Set<AnnotationTypeDeclaration> as,
+					AnnotationProcessorEnvironment env) {
+	// The tester that's running.
+	Tester tester = Tester.activeTester;
+
+	try {
+	    // Find the tester's class declaration.
+	    ClassDeclaration testerDecl = null;
+	    for (TypeDeclaration decl : env.getSpecifiedTypeDeclarations()) {
+		if (decl.getQualifiedName().equals(
+					       tester.getClass().getName())) {
+		    testerDecl = (ClassDeclaration) decl;
+		    break;
+		}
+	    }
+
+	    // Give the tester access to its own declaration and to the env.
+	    tester.thisClassDecl = testerDecl;
+	    tester.env = env;
+
+	    // Initializer the tester.
+	    tester.init();
+
+	    return new TestProcessor(env, tester);
+
+	} catch (Exception e) {
+	    throw new Error("Couldn't create test annotation processor", e);
+	}
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/lib/Tester.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,160 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * A utility used to invoke and test the apt tool.
+ * Tests should subclass Tester, and invoke run().
+ *
+ * @author Scott Seligman
+ */
+
+import java.io.*;
+import java.util.*;
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+
+
+public abstract class Tester {
+
+    /**
+     * The declaration corresponding to this tester's class.  Set by
+     * TestProcessorFactory after the constructor completes, and
+     * before init() is invoked.
+     */
+    ClassDeclaration thisClassDecl;
+
+    /**
+     * The environment for this apt run.  Set by TestProcessorFactory
+     * after the constructor completes, and before init() is invoked.
+     */
+    AnnotationProcessorEnvironment env;
+
+
+    // TestProcessorFactory looks here to find the tester that's running
+    // when it's invoked.
+    static Tester activeTester;
+
+    private static final String[] DEFAULT_ARGS = {
+	"-nocompile",
+	"-XPrintAptRounds",
+	"-XListDeclarations",
+    };
+    private static final String[] NO_STRINGS = {};
+
+    // Force processor and factory to be compiled
+    private static Class dummy = TestProcessorFactory.class;
+
+    private final String testSrc =     System.getProperty("test.src",	  ".");
+    private final String testClasses = System.getProperty("test.classes", ".");
+
+    // apt command-line args
+    private String[] args;
+
+
+    static {
+	// Enable assertions in the unnamed package.
+	ClassLoader loader = Tester.class.getClassLoader();
+	if (loader != null) {
+	    loader.setPackageAssertionStatus(null, true);
+	}
+    }
+
+
+    protected Tester(String... additionalArgs) {
+	String sourceFile = testSrc + File.separator +
+			    getClass().getName() + ".java";
+
+	ArrayList<String> as = new ArrayList<String>();
+	Collections.addAll(as, DEFAULT_ARGS);
+	as.add("-sourcepath");	as.add(testSrc);
+	as.add("-factory");	as.add(TestProcessorFactory.class.getName());
+	Collections.addAll(as, additionalArgs);
+	as.add(sourceFile);
+	args = as.toArray(NO_STRINGS);
+    }
+
+    /**
+     * Run apt.
+     */
+    protected void run() {
+	activeTester = this;
+	if (com.sun.tools.apt.Main.process(args) != 0) {
+	    throw new Error("apt errors encountered.");
+	}
+    }
+
+    /**
+     * Called after thisClassDecl and env have been set, but before any
+     * tests are run, to allow the tester subclass to perform any
+     * needed initialization.
+     */
+    protected void init() {
+    }
+
+    /**
+     * Returns the declaration of a named method in this class.  If this
+     * method name is overloaded, one method is chosen arbitrarily.
+     * Returns null if no method is found.
+     */
+    protected MethodDeclaration getMethod(String methodName) {
+	for (MethodDeclaration m : thisClassDecl.getMethods()) {
+	    if (methodName.equals(m.getSimpleName())) {
+		return m;
+	    }
+	}
+	return null;
+    }
+
+    /**
+     * Returns the declaration of a named field in this class.
+     * Returns null if no field is found.
+     */
+    protected FieldDeclaration getField(String fieldName) {
+	for (FieldDeclaration f : thisClassDecl.getFields()) {
+	    if (fieldName.equals(f.getSimpleName())) {
+		return f;
+	    }
+	}
+	return null;
+    }
+
+    /**
+     * Returns the annotation mirror of a given type on a named method
+     * in this class.  If this method name is overloaded, one method is
+     * chosen arbitrarily.  Returns null if no appropriate annotation
+     * is found.
+     */
+    protected AnnotationMirror getAnno(String methodName, String annoType) {
+	MethodDeclaration m = getMethod(methodName);
+	if (m != null) {
+	    TypeDeclaration at = env.getTypeDeclaration(annoType);
+	    for (AnnotationMirror a : m.getAnnotationMirrors()) {
+		if (at == a.getAnnotationType().getDeclaration()) {
+		    return a;
+		}
+	    }
+	}
+	return null;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/AnnoMirror.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450 5014539
+ * @summary Tests AnnotationMirror and AnnotationValue methods.
+ * @library ../../lib
+ * @compile -source 1.5 AnnoMirror.java
+ * @run main AnnoMirror
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+
+
+public class AnnoMirror extends Tester {
+
+    public static void main(String[] args) {
+	(new AnnoMirror()).run();
+    }
+
+
+    @Test(result={"AT1"})
+    @AT1
+    AnnotationType getAnnotationType() {
+	AnnotationMirror anno = getAnno("getAnnotationType", "AT1");
+	return anno.getAnnotationType();
+    }
+
+    @Test(result={})
+    @AT1
+    Set getElementValuesNone() {
+	AnnotationMirror anno = getAnno("getElementValuesNone", "AT1");
+	return anno.getElementValues().entrySet();
+    }
+
+
+    // The seemingly out-of-place parens in the following "result"
+    // entry are needed due to the shortcut of having the test return
+    // the entry set directly.
+    @Test(result={"i()=2",
+		  "b()=true",
+		  "k()=java.lang.Boolean.class",
+		  "a()=@AT1"})
+    @AT2(i = 1+1,
+	 b = true,
+	 k = Boolean.class,
+	 a = @AT1)
+    Set getElementValues() {
+	AnnotationMirror anno = getAnno("getElementValues", "AT2");
+	return anno.getElementValues().entrySet();
+    }
+
+    @Test(result={"@AT1(\"zax\")",
+		  "@AT2(i=2, b=true, k=java.lang.Boolean.class, a=@AT1)",
+		  "@AT3(arr={1})",
+		  "@AT4({2, 3, 4})"})
+    Collection<AnnotationMirror> toStringTests() {
+	for (MethodDeclaration m : thisClassDecl.getMethods()) {
+	    if (m.getSimpleName().equals("toStringTestsHelper")) {
+		return m.getAnnotationMirrors();
+	    }
+	}
+	throw new AssertionError();
+    }
+
+    @AT1("zax")
+    @AT2(i = 1+1,
+	 b = true,
+	 k = Boolean.class,
+	 a = @AT1)
+    @AT3(arr={1})
+    @AT4({2,3,4})
+    private void toStringTestsHelper() {
+    }
+}
+
+
+/*
+ * Annotations used for testing.
+ */
+
+@interface AT1 {
+    String value() default "";
+}
+
+@interface AT2 {
+    int i();
+    boolean b();
+    Class k();
+    AT1 a();
+}
+
+@interface AT3 {
+    int[] arr();
+}
+
+@interface AT4 {
+    int[] value();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/AnnoTypeDecl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450 5014539
+ * @summary AnnotationTypeDeclaration tests
+ * @library ../../lib
+ * @compile -source 1.5 AnnoTypeDecl.java
+ * @run main AnnoTypeDecl
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+public class AnnoTypeDecl extends Tester {
+
+    public static void main(String[] args) {
+	(new AnnoTypeDecl()).run();
+    }
+
+
+    private AnnotationTypeDeclaration at;
+
+    protected void init() {
+	at = (AnnotationTypeDeclaration) env.getTypeDeclaration("AT");
+    }
+
+
+    // Declaration methods
+
+    @Test(result="annotation type")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	at.accept(new SimpleDeclarationVisitor() {
+	    public void visitTypeDeclaration(TypeDeclaration t) {
+		res.add("type");
+	    }
+	    public void visitClassDeclaration(ClassDeclaration c) {
+		res.add("class");
+	    }
+	    public void visitInterfaceDeclaration(InterfaceDeclaration i) {
+		res.add("interface");
+	    }
+	    public void visitAnnotationTypeDeclaration(
+						AnnotationTypeDeclaration a) {
+		res.add("annotation type");
+	    }
+	});
+	return res;
+    }
+
+
+    // AnnotationTypeDeclaration methods
+
+    @Test(result={"s()"})
+    Collection<AnnotationTypeElementDeclaration> getMethods() {
+	return at.getMethods();
+    }
+}
+
+
+// An annotation type to use for testing.
+
+@interface AT {
+    String s();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/AnnoTypeElemDecl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,194 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450 4993299 5010385 5014539
+ * @summary AnnotationTypeElementDeclaration tests
+ * @library ../../lib
+ * @compile -source 1.5 AnnoTypeElemDecl.java
+ * @run main AnnoTypeElemDecl
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+public class AnnoTypeElemDecl extends Tester {
+
+    public static void main(String[] args) {
+	(new AnnoTypeElemDecl()).run();
+    }
+
+
+    // Some annotation type elements to use.
+    private AnnotationTypeElementDeclaration elem1 = null;	// s()
+    private AnnotationTypeElementDeclaration elem2 = null;	// i()	
+    private AnnotationTypeElementDeclaration elem3 = null;	// b()	
+
+    protected void init() {
+	for (TypeDeclaration at : thisClassDecl.getNestedTypes()) {
+	    for (MethodDeclaration meth : at.getMethods()) {
+		AnnotationTypeElementDeclaration elem =
+		    (AnnotationTypeElementDeclaration) meth;
+		if (elem.getSimpleName().equals("s")) {
+		    elem1 = elem;	// s()
+		} else if (elem.getSimpleName().equals("i")) {
+		    elem2 = elem;	// i()
+		} else {
+		    elem3 = elem;	// b()
+		}
+	    }
+	}
+    }
+
+
+    // Declaration methods
+
+    @Test(result="anno type element")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	elem1.accept(new SimpleDeclarationVisitor() {
+	    public void visitTypeDeclaration(TypeDeclaration t) {
+		res.add("type");
+	    }
+	    public void visitExecutableDeclaration(ExecutableDeclaration e) {
+		res.add("executable");
+	    }
+	    public void visitMethodDeclaration(MethodDeclaration m) {
+		res.add("method");
+	    }
+	    public void visitAnnotationTypeElementDeclaration(
+					AnnotationTypeElementDeclaration a) {
+		res.add("anno type element");
+	    }
+	});
+	return res;
+    }
+
+    @Test(result={"@AnnoTypeElemDecl.AT2"})
+    Collection<AnnotationMirror> getAnnotationMirrors() {
+	return elem1.getAnnotationMirrors();
+    }
+
+    @Test(result=" Sed Quis custodiet ipsos custodes?\n")
+    String getDocComment() {
+	return elem1.getDocComment();
+    }
+
+    @Test(result={"public", "abstract"})
+    Collection<Modifier> getModifiers() {
+	return elem1.getModifiers();
+    }
+
+    @Test(result="AnnoTypeElemDecl.java")
+    String getPosition() {
+	return elem1.getPosition().file().getName();
+    }
+
+    @Test(result="s")
+    String getSimpleName() {
+	return elem1.getSimpleName();
+    }
+
+
+    // MemberDeclaration method
+
+    @Test(result="AnnoTypeElemDecl.AT1")
+    TypeDeclaration getDeclaringType() {
+	return elem1.getDeclaringType();
+    }
+
+
+    // ExecutableDeclaration methods
+
+    @Test(result={})
+    Collection<TypeParameterDeclaration> getFormalTypeParameters() {
+	return elem1.getFormalTypeParameters();
+    }
+
+    @Test(result={})
+    Collection<ParameterDeclaration> getParameters() {
+	return elem1.getParameters();
+    }
+
+    @Test(result={})
+    Collection<ReferenceType> getThrownTypes() {
+	return elem1.getThrownTypes();
+    }
+
+    @Test(result="false")
+    Boolean isVarArgs() {
+	return elem1.isVarArgs();
+    }
+
+
+    // AnnotationTypeElementDeclaration method
+
+    @Test(result="\"default\"")
+    AnnotationValue getDefaultValue1() {
+	return elem1.getDefaultValue();
+    }
+
+    @Test(result="null")
+    AnnotationValue getDefaultValue2() {
+	return elem2.getDefaultValue();
+    }
+
+    // 5010385: getValue() returns null for boolean type elements
+    @Test(result="false")
+    Boolean getDefaultValue3() {
+	return (Boolean) elem3.getDefaultValue().getValue();
+    }
+
+
+    // toString
+
+    @Test(result="s()")
+    String toStringTest() {
+	return elem1.toString();
+    }
+
+
+    // Declarations used by tests.
+
+    @interface AT1 {
+	/**
+	 * Sed Quis custodiet ipsos custodes?
+	 */
+	@AT2
+	String s() default "default";
+
+	int i();
+
+	boolean b() default false;
+    }
+
+    @interface AT2 {
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/AnnoVal.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,200 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450 5014539 5034991
+ * @summary Tests AnnotationValue methods.
+ * @library ../../lib
+ * @compile -source 1.5 AnnoVal.java
+ * @run main AnnoVal
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+
+
+public class AnnoVal extends Tester {
+
+    public static void main(String[] args) {
+	(new AnnoVal()).run();
+    }
+
+    @Test(result={
+	"i Integer 2",
+	"l Long 4294967296",
+	"d Double 3.14",
+	"b Boolean true",
+	"c Character @",
+	"s String sigh",
+	// The following results reflect some implementation details.
+	"k ClassTypeImpl java.lang.Boolean",
+	"kb PrimitiveTypeImpl boolean",
+	"ka ArrayTypeImpl java.lang.Boolean[]",
+	"kab ArrayTypeImpl int[][]",
+	"w ClassTypeImpl java.lang.Long",
+	"e EnumConstantDeclarationImpl TYPE",
+	"sa ArrayList [\"up\", \"down\"]",
+	"a AnnotationMirrorImpl @AT1"})
+    @AT2(i = 1 + 1,
+	 l = 1024 * 1024 * 1024 * 4L,
+	 d = 3.14,
+	 b = true,
+	 c = '@',
+	 s = "sigh",
+	 k = Boolean.class,
+	 kb = boolean.class,
+	 ka = Boolean[].class,		// bugid 5020899
+	 kab = int[][].class,		//	"
+	 w = Long.class,
+	 e = java.lang.annotation.ElementType.TYPE,
+	 sa = {"up", "down"},
+	 a = @AT1)
+    Collection<String> getValue() {
+	Collection<String> res = new ArrayList<String>();
+	AnnotationMirror anno = getAnno("getValue", "AT2");
+
+	for (Map.Entry<AnnotationTypeElementDeclaration, AnnotationValue> e :
+		 anno.getElementValues().entrySet()) {
+	    Object val = e.getValue().getValue();
+	    res.add(String.format("%s %s %s",
+				  e.getKey().getSimpleName(),
+				  simpleClassName(val),
+				  val));
+	}
+	return res;
+    }
+
+    @Test(result={
+	"int i 2",
+	"long l 4294967296L",
+	"double d 3.14",
+	"boolean b true",
+	"char c '@'",
+	"java.lang.String s \"sigh\"",
+	"java.lang.Class k java.lang.Boolean.class",
+	"java.lang.Class kb boolean.class",
+	"java.lang.Class ka java.lang.Boolean[].class",
+	"java.lang.Class kab int[][].class",
+	"java.lang.Class<? extends java.lang.Number> w java.lang.Long.class",
+	"java.lang.annotation.ElementType e java.lang.annotation.ElementType.TYPE",
+	"java.lang.String[] sa {\"up\", \"down\"}",
+	"AT1 a @AT1"})
+    Collection<String> toStringTests() {
+	Collection<String> res = new ArrayList<String>();
+	AnnotationMirror anno = getAnno("getValue", "AT2");
+
+	for (Map.Entry<AnnotationTypeElementDeclaration,AnnotationValue> e :
+		 anno.getElementValues().entrySet()) {
+	    res.add(String.format("%s %s %s",
+				  e.getKey().getReturnType(),
+				  e.getKey().getSimpleName(),
+				  e.getValue().toString()));
+	}
+	return res;
+    }
+
+    @Test(result={
+	"byte b 0x0b",
+	"float f 3.0f",
+	"double nan 0.0/0.0",
+	"double hi 1.0/0.0",
+	"float lo -1.0f/0.0f",
+	"char newline '\\n'",
+	"char ff '\\u00ff'",
+	"java.lang.String s \"\\\"high\\tlow\\\"\"",
+	"java.lang.String smiley \"\\u263a\""})
+    @AT3(b = 11,
+	 f = 3,
+	 nan = 0.0/0.0,
+	 hi = 1.0/0.0,
+	 lo = -1.0f/0.0f,
+	 newline = '\n',
+	 ff = '\u00FF',
+	 s = "\"high\tlow\"",
+	 smiley = "\u263A")
+    Collection<String> toStringFancy() {
+	Collection<String> res = new ArrayList<String>();
+	AnnotationMirror anno = getAnno("toStringFancy", "AT3");
+
+	for (Map.Entry<AnnotationTypeElementDeclaration,AnnotationValue> e :
+		 anno.getElementValues().entrySet()) {
+	    res.add(String.format("%s %s %s",
+				  e.getKey().getReturnType(),
+				  e.getKey().getSimpleName(),
+				  e.getValue().toString()));
+	}
+	return res;
+    }
+
+
+    /**
+     * Returns the simple name of an object's class.
+     */
+    private String simpleClassName(Object o) {
+	return (o == null)
+	    ? "null"
+	    : o.getClass().getName().replaceFirst(".*\\.", "");
+    }
+}
+
+
+/*
+ * Annotations used for testing.
+ */
+
+@interface AT1 {
+    String value() default "";
+}
+
+@interface AT2 {
+    int i();
+    long l();
+    double d();
+    boolean b();
+    char c();
+    String s();
+    Class k();
+    Class kb();
+    Class ka();
+    Class kab();
+    Class<? extends Number> w();
+    java.lang.annotation.ElementType e();
+    String[] sa();
+    AT1 a();
+}
+
+@interface AT3 {
+    byte b();
+    float f();
+    double nan();
+    double hi();
+    float lo();
+    char newline();
+    char ff();
+    String s();
+    String smiley();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/ClassDecl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,250 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450 4997614
+ * @summary ClassDeclaration tests
+ * @library ../../lib
+ * @compile -source 1.5 ClassDecl.java
+ * @run main ClassDecl
+ */
+
+
+import java.io.Serializable;
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+/**
+ * Sed Quis custodiet ipsos custodes?
+ */
+@AT1
+@AT2
+public class ClassDecl extends Tester {
+
+    public static void main(String[] args) {
+	(new ClassDecl()).run();
+    }
+
+
+    private ClassDeclaration nested = null;	// a nested type
+    private ClassDeclaration object = null;	// java.lang.object
+
+    // A constructor to be found
+    private ClassDecl() {
+    }
+
+    // Another constructor to be found
+    private ClassDecl(int i) {
+	this();
+    }
+
+    // An extra field to be found
+    static int i;
+
+    // Static initializer isn't among this class's methods.
+    static {
+	i = 7;
+    }
+
+    // A nested class with some accoutrements
+    private static strictfp class NestedClass<T> implements Serializable {
+	void m1() {}
+	void m2() {}
+	void m2(int i) {}
+    }
+
+    protected void init() {
+	nested = (ClassDeclaration)
+	    thisClassDecl.getNestedTypes().iterator().next();
+	object = (ClassDeclaration)
+	    env.getTypeDeclaration("java.lang.Object");
+    }
+
+
+    // Declaration methods
+
+    @Test(result="class")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	thisClassDecl.accept(new SimpleDeclarationVisitor() {
+	    public void visitTypeDeclaration(TypeDeclaration t) {
+		res.add("type");
+	    }
+	    public void visitClassDeclaration(ClassDeclaration c) {
+		res.add("class");
+	    }
+	    public void visitEnumDeclaration(EnumDeclaration e) {
+		res.add("enum");
+	    }
+	});
+	return res;
+    }
+
+    @Test(result={"@AT1", "@AT2"})
+    Collection<AnnotationMirror> getAnnotationMirrors() {
+	return thisClassDecl.getAnnotationMirrors();
+    }
+
+    @Test(result=" Sed Quis custodiet ipsos custodes?\n")
+    String getDocComment() {
+	return thisClassDecl.getDocComment();
+    }
+
+    @Test(result={"public"})
+    Collection<Modifier> getModifiers1() {
+	return thisClassDecl.getModifiers();
+    }
+
+    // Check that static nested class has "static" modifier, even though
+    // the VM doesn't set that bit.
+    @Test(result={"private", "static", "strictfp"})
+    Collection<Modifier> getModifiers2() {
+	return nested.getModifiers();
+    }
+
+    @Test(result="ClassDecl.java")
+    String getPosition() {
+	return thisClassDecl.getPosition().file().getName();
+    }
+
+    @Test(result="ClassDecl")
+    String getSimpleName1() {
+	return thisClassDecl.getSimpleName();
+    }
+
+    @Test(result="NestedClass")
+    String getSimpleName2() {
+	return nested.getSimpleName();
+    }
+
+
+    // MemberDeclaration method
+
+    @Test(result="null")
+    TypeDeclaration getDeclaringType1() {
+	return thisClassDecl.getDeclaringType();
+    }
+
+    @Test(result="ClassDecl")
+    TypeDeclaration getDeclaringType2() {
+	return nested.getDeclaringType();
+    }
+
+
+    // TypeDeclaration methods
+
+    @Test(result={"nested", "object", "i"})
+    Collection<FieldDeclaration> getFields() {
+	return thisClassDecl.getFields();
+    }
+
+    @Test(result={})
+    Collection<TypeParameterDeclaration> getFormalTypeParameters1() {
+	return thisClassDecl.getFormalTypeParameters();
+    }
+
+    @Test(result="T")
+    Collection<TypeParameterDeclaration> getFormalTypeParameters2() {
+	return nested.getFormalTypeParameters();
+    }
+
+    @Test(result="ClassDecl.NestedClass<T>")
+    Collection<TypeDeclaration> getNestedTypes() {
+	return thisClassDecl.getNestedTypes();
+    }
+
+    @Test(result="")
+    PackageDeclaration getPackage1() {
+	return thisClassDecl.getPackage();
+    }
+
+    @Test(result="java.lang")
+    PackageDeclaration getPackage2() {
+	return object.getPackage();
+    }
+
+    @Test(result="ClassDecl")
+    String getQualifiedName1() {
+	return thisClassDecl.getQualifiedName();
+    }
+
+    @Test(result="ClassDecl.NestedClass")
+    String getQualifiedName2() {
+	return nested.getQualifiedName();
+    }
+
+    @Test(result="java.lang.Object")
+    String getQualifiedName3() {
+	return object.getQualifiedName();
+    }
+
+    @Test(result="java.io.Serializable")
+    Collection<InterfaceType> getSuperinterfaces() {
+	return nested.getSuperinterfaces();
+    }
+
+
+    // ClassDeclaration methods
+
+    @Test(result={"ClassDecl()", "ClassDecl(int)"})
+    Collection<ConstructorDeclaration> getConstructors1() {
+	return thisClassDecl.getConstructors();
+    }
+
+    // Check for default constructor.
+    // 4997614: visitConstructionDeclaration reports info when there is no ctor
+    @Test(result={"NestedClass()"})
+    Collection<ConstructorDeclaration> getConstructors2() {
+	return nested.getConstructors();
+    }
+
+    @Test(result={"m1()", "m2()", "m2(int)"})
+    Collection<MethodDeclaration> getMethods() {
+	return nested.getMethods();
+    }
+
+    @Test(result={"Tester"})
+    ClassType getSuperclass() {
+	return thisClassDecl.getSuperclass();
+    }
+
+    @Test(result={"null"})
+    ClassType objectHasNoSuperclass() {
+	return object.getSuperclass();
+    }
+}
+
+
+// Annotations used for testing.
+
+@interface AT1 {
+}
+
+@interface AT2 {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/ConstExpr.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,116 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 5027675 5048535
+ * @summary Tests FieldDeclaration.getConstantExpression method
+ * @library ../../lib
+ * @compile -source 1.5 ConstExpr.java
+ * @run main ConstExpr
+ */
+
+
+import java.math.RoundingMode;
+import java.util.*;
+
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import static java.math.RoundingMode.UP;
+
+import static com.sun.mirror.util.DeclarationVisitors.*;
+
+
+public class ConstExpr extends Tester {
+
+    public static void main(String[] args) {
+	(new ConstExpr()).run();
+    }
+
+
+    // Declarations used by tests
+
+    public static final byte B = (byte) 0xBE;
+    public static final short S = (short) 32767;
+    public static final int I = -4;
+    public static final long l = 4294967296L;
+    public static final float f = 3.5f;
+    public static final double PI = Math.PI;
+    public static final char C = 'C';
+    public static final String STR = "cheese";
+    
+    public static final char SMILEY = '\u263A';
+    public static final String TWOLINES = "ab\ncd";
+
+    public static final double D1 = Double.POSITIVE_INFINITY;
+    public static final double D2 = Double.NEGATIVE_INFINITY;
+    public static final double D3 = Double.NaN;
+    public static final float  F1 = Float.POSITIVE_INFINITY;
+    public static final float  F2 = Float.NEGATIVE_INFINITY;
+    public static final float  F3 = Float.NaN;
+
+    public static final String NOSTR = null;	// not a compile-time constant
+    public static final RoundingMode R = UP;	// not a compile-time constant
+
+    
+    @Test(result={
+	      "0xbe",
+	      "32767",
+	      "-4",
+	      "4294967296L",
+	      "3.5f",
+	      "3.141592653589793",
+	      "'C'",
+	      "\"cheese\"",
+
+	      "'\\u263a'",
+	      "\"ab\\ncd\"",
+
+	      "1.0/0.0",
+	      "-1.0/0.0",
+	      "0.0/0.0",
+	      "1.0f/0.0f",
+	      "-1.0f/0.0f",
+	      "0.0f/0.0f",
+
+	      "null",
+	      "null"
+	  },
+	  ordered=true)
+    Collection<String> getConstantExpression() {
+	final Collection<String> res = new ArrayList<String>();
+
+	thisClassDecl.accept(
+	    DeclarationVisitors.getSourceOrderDeclarationScanner(
+		NO_OP,
+		new SimpleDeclarationVisitor() {
+		    public void visitFieldDeclaration(FieldDeclaration f) {
+			res.add(f.getConstantExpression());
+		    }
+		}));
+	return res;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/ConstructorDecl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,199 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450 4993299
+ * @summary ConstructorDeclaration tests
+ * @library ../../lib
+ * @compile -source 1.5 ConstructorDecl.java
+ * @run main ConstructorDecl
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+public class ConstructorDecl extends Tester {
+
+    /**
+     * Sed Quis custodiet ipsos custodes?
+     */
+    @AT1
+    public ConstructorDecl() {
+    }
+
+
+    public static void main(String[] args) {
+	(new ConstructorDecl()).run();
+    }
+
+
+    private ConstructorDeclaration ctor = null;		// a constructor
+    private ConstructorDeclaration ctorDef = null;	// a default c'tor
+    private ConstructorDeclaration ctorInner = null;	// an inner class c'tor
+
+    protected void init() {
+	ctor = getAConstructor(thisClassDecl);
+	ctorDef = getAConstructor((ClassDeclaration)
+				  env.getTypeDeclaration("C1"));
+	ctorInner = getAConstructor((ClassDeclaration)
+				    env.getTypeDeclaration("C1.C2"));
+    }
+
+    // Return a constructor of a class.
+    private ConstructorDeclaration getAConstructor(ClassDeclaration c) {
+	return c.getConstructors().iterator().next();
+    }
+
+
+    // Declaration methods
+
+    @Test(result="constructor")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	ctor.accept(new SimpleDeclarationVisitor() {
+	    public void visitTypeDeclaration(TypeDeclaration t) {
+		res.add("type");
+	    }
+	    public void visitExecutableDeclaration(ExecutableDeclaration e) {
+		res.add("executable");
+	    }
+	    public void visitConstructorDeclaration(ConstructorDeclaration c) {
+		res.add("constructor");
+	    }
+	});
+	return res;
+    }
+
+    @Test(result={"@AT1"})
+    Collection<AnnotationMirror> getAnnotationMirrors() {
+	return ctor.getAnnotationMirrors();
+    }
+
+    @Test(result=" Sed Quis custodiet ipsos custodes?\n")
+    String getDocComment() {
+	return ctor.getDocComment();
+    }
+
+    @Test(result={"public"})
+    Collection<Modifier> getModifiers() {
+	return ctor.getModifiers();
+    }
+
+    @Test(result="ConstructorDecl.java")
+    String getPosition() {
+	return ctor.getPosition().file().getName();
+    }
+
+    @Test(result="ConstructorDecl.java")
+    String getPositionDefault() {
+	return ctorDef.getPosition().file().getName();
+    }
+
+    @Test(result="ConstructorDecl")
+    String getSimpleName() {
+	return ctor.getSimpleName();
+    }
+
+    @Test(result="C2")
+    String getSimpleNameInner() {
+	return ctorInner.getSimpleName();
+    }
+
+
+    // MemberDeclaration method
+
+    @Test(result="ConstructorDecl")
+    TypeDeclaration getDeclaringType() {
+	return ctor.getDeclaringType();
+    }
+
+
+    // ExecutableDeclaration methods
+
+    @Test(result={})
+    Collection<TypeParameterDeclaration> getFormalTypeParameters1() {
+	return ctor.getFormalTypeParameters();
+    }
+
+    @Test(result={"N extends java.lang.Number"})
+    Collection<TypeParameterDeclaration> getFormalTypeParameters2() {
+	return ctorInner.getFormalTypeParameters();
+    }
+
+    @Test(result={})
+    Collection<ParameterDeclaration> getParameters1() {
+	return ctor.getParameters();
+    }
+
+    // 4993299: verify synthetic parameters to inner class constructors
+    //		aren't visible
+    @Test(result={"N n1", "N n2", "java.lang.String[] ss"},
+	  ordered=true)
+    Collection<ParameterDeclaration> getParameters2() {
+	return ctorInner.getParameters();
+    }
+
+    @Test(result={"java.lang.Throwable"})
+    Collection<ReferenceType> getThrownTypes() {
+	return ctorInner.getThrownTypes();
+    }
+
+    @Test(result="false")
+    Boolean isVarArgs1() {
+	return ctor.isVarArgs();
+    }
+
+    @Test(result="true")
+    Boolean isVarArgs2() {
+	return ctorInner.isVarArgs();
+    }
+
+
+    // toString
+
+    @Test(result="<N extends java.lang.Number> C2(N, N, String...)")
+    @Ignore("This is what it would be nice to see.")
+    String toStringTest() {
+	return ctorInner.toString();
+    }
+}
+
+
+// Classes and interfaces used for testing.
+
+class C1 {
+    class C2 {
+	<N extends Number> C2(N n1, N n2, String... ss) throws Throwable {
+	}
+    }
+}
+
+@interface AT1 {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/EnumDecl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,127 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450 4989987 5010050
+ * @summary EnumDeclaration tests
+ * @library ../../lib
+ * @compile -source 1.5 EnumDecl.java
+ * @run main EnumDecl
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+public class EnumDecl extends Tester {
+
+    public static void main(String[] args) {
+	(new EnumDecl()).run();
+    }
+
+
+    private EnumDeclaration eDecl;
+
+    protected void init() {
+	eDecl = (EnumDeclaration) env.getTypeDeclaration("E");
+    }
+
+
+    // Declaration methods
+
+    @Test(result="enum")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	eDecl.accept(new SimpleDeclarationVisitor() {
+	    public void visitTypeDeclaration(TypeDeclaration t) {
+		res.add("type");
+	    }
+	    public void visitClassDeclaration(ClassDeclaration c) {
+		res.add("class");
+	    }
+	    public void visitEnumDeclaration(EnumDeclaration e) {
+		res.add("enum");
+	    }
+	});
+	return res;
+    }
+
+
+    // ClassDeclaration methods
+
+    // 4989987: Verify synthetic enum constructor parameters are not visible
+    @Test(result={"E(java.lang.String)"})
+    Collection<ConstructorDeclaration> getConstructors() {
+	return eDecl.getConstructors();
+    }
+
+    // 4989987: Verify synthetic enum constructor parameters are not visible
+    @Test(result={"java.lang.String color"})
+    Collection<ParameterDeclaration> getConstructorParams() {
+	return eDecl.getConstructors().iterator().next().getParameters();
+    }
+
+    @Test(result={"values()", "valueOf(java.lang.String)"})
+    Collection<MethodDeclaration> getMethods() {
+	return eDecl.getMethods();
+    }
+
+    // 5010050: Cannot find parameter names for valueOf(String name) method...
+    @Test(result={"java.lang.String name"})
+    Collection<ParameterDeclaration> getMethodParams() {
+	for (MethodDeclaration m : eDecl.getMethods()) {
+	    if (m.getSimpleName().equals("valueOf")) {
+		return m.getParameters();
+	    }
+	}
+	throw new AssertionError();
+    }
+
+
+    // EnumDeclaration methods
+
+    @Test(result={"stop", "slow", "go"})
+    Collection<EnumConstantDeclaration> getEnumConstants() {
+	return eDecl.getEnumConstants();
+    }
+}
+
+
+// An enum to use for testing.
+
+enum E {
+    stop("red"),
+    slow("amber"),
+    go("green");
+
+    private String color;
+    E(String color) {
+	this.color = color;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/FieldDecl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,161 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450 5008309
+ * @summary FieldDeclaration tests
+ * @library ../../lib
+ * @compile -source 1.5 FieldDecl.java
+ * @run main FieldDecl
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+public class FieldDecl extends Tester {
+
+    public static void main(String[] args) {
+	(new FieldDecl()).run();
+    }
+
+
+    private FieldDeclaration f1 = null;		// a field
+    private FieldDeclaration f2 = null;		// a static field
+    private FieldDeclaration f3 = null;		// a constant field
+
+    protected void init() {
+	f1 = getField("aField");
+	f2 = getField("aStaticField");
+	f3 = getField("aConstantField");
+    }
+
+
+    // Declaration methods
+
+    @Test(result="field")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	f1.accept(new SimpleDeclarationVisitor() {
+	    public void visitTypeDeclaration(TypeDeclaration t) {
+		res.add("type");
+	    }
+	    public void visitFieldDeclaration(FieldDeclaration f) {
+		res.add("field");
+	    }
+	    public void visitEnumConstantDeclaration(
+						EnumConstantDeclaration e) {
+		res.add("enum const");
+	    }
+	});
+	return res;
+    }
+
+    @Test(result={"@FieldDecl.AT1"})
+    Collection<AnnotationMirror> getAnnotationMirrors() {
+	return f1.getAnnotationMirrors();
+    }
+
+    @Test(result=" Sed Quis custodiet ipsos custodes?\n")
+    String getDocComment() {
+	return f1.getDocComment();
+    }
+
+    @Test(result={"public"})
+    Collection<Modifier> getModifiers() {
+	return f1.getModifiers();
+    }
+
+    @Test(result="FieldDecl.java")
+    String getPosition() {
+	return f1.getPosition().file().getName();
+    }
+
+    @Test(result="aField")
+    String getSimpleName() {
+	return f1.getSimpleName();
+    }
+
+
+    // MemberDeclaration method
+
+    @Test(result="FieldDecl")
+    TypeDeclaration getDeclaringType() {
+	return f1.getDeclaringType();
+    }
+
+
+    // FieldDeclaration methods
+
+    @Test(result="java.util.List<java.lang.String>")
+    TypeMirror getType1() {
+	return f1.getType();
+    }
+
+    @Test(result="int")
+    TypeMirror getType2() {
+	return f2.getType();
+    }
+
+    @Test(result="null")
+    Object getConstantValue1() {
+	return f1.getConstantValue();
+    }
+
+    // 5008309: FieldDeclaration.getConstantValue() doesn't return anything
+    @Test(result="true")
+    Object getConstantValue2() {
+	return f3.getConstantValue();
+    }
+
+
+    // toString
+
+    @Test(result="aField")
+    String toStringTest() {
+	return f1.toString();
+    }
+
+
+    // Declarations used by tests.
+
+    /**
+     * Sed Quis custodiet ipsos custodes?
+     */
+    @AT1
+    public List<String> aField = new ArrayList<String>();
+
+    static int aStaticField;
+
+    public static final boolean aConstantField = true;
+
+
+    @interface AT1 {
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/GetAnno.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,167 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4989091 5050782 5051962
+ * @summary Tests Declaration.getAnnotation method
+ * @library ../../lib
+ * @compile -source 1.5 GetAnno.java
+ * @run main GetAnno
+ */
+
+
+import java.lang.annotation.*;
+import java.util.*;
+
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+
+import static java.lang.annotation.RetentionPolicy.*;
+
+
+public class GetAnno extends Tester {
+
+    public static void main(String[] args) {
+	(new GetAnno()).run();
+    }
+
+
+    // Annotations used by tests
+
+    @Retention(RUNTIME)
+    @interface AT1 {
+	long l();
+	String s();
+	RetentionPolicy e();
+	String[] sa();
+	AT2 a();
+    }
+
+    @Inherited
+    @interface AT2 {
+    }
+
+    @interface AT3 {
+	Class value() default String.class;
+    }
+
+    // Array-valued elements of various kinds.
+    @interface AT4 {
+	boolean[] bs();
+	long[] ls();
+	String[] ss();
+	RetentionPolicy[] es();
+	AT2[] as();
+    }
+
+
+    @Test(result="@GetAnno$AT1(l=7, s=sigh, e=CLASS, sa=[in, out], " +
+			      "a=@GetAnno$AT2())")
+    @AT1(l=7, s="sigh", e=CLASS, sa={"in", "out"}, a=@AT2)
+    public Annotation getAnnotation() {
+	MethodDeclaration m = getMethod("getAnnotation");
+	AT1 a = m.getAnnotation(AT1.class);
+	if (a.l() != 7 || !a.s().equals("sigh") || a.e() != CLASS)
+	    throw new AssertionError();
+	return a;
+    }
+
+    @Test(result="null")
+    public Annotation getAnnotationNotThere() {
+	return thisClassDecl.getAnnotation(Deprecated.class);
+    }
+
+    @Test(result="@GetAnno$AT4(bs=[true, false], " +
+			      "ls=[9, 8], " +
+			      "ss=[black, white], " +
+			      "es=[CLASS, SOURCE], " +
+			      "as=[@GetAnno$AT2(), @GetAnno$AT2()])")
+    @AT4(bs={true, false},
+	 ls={9, 8},
+	 ss={"black", "white"},
+	 es={CLASS, SOURCE},
+	 as={@AT2, @AT2})
+    public AT4 getAnnotationArrayValues() {
+	MethodDeclaration m = getMethod("getAnnotationArrayValues");
+	return m.getAnnotation(AT4.class);
+    }
+
+    @Test(result="@GetAnno$AT3(value=java.lang.String)")
+    @AT3(String.class)
+    public AT3 getAnnotationWithClass1() {
+	MethodDeclaration m = getMethod("getAnnotationWithClass1");
+	return m.getAnnotation(AT3.class);
+    }
+
+    @Test(result="java.lang.String")
+    public TypeMirror getAnnotationWithClass2() {
+	AT3 a = getAnnotationWithClass1();
+	try {
+	    Class c = a.value();
+	    throw new AssertionError();
+	} catch (MirroredTypeException e) {
+	    return e.getTypeMirror();
+	}
+    }
+
+    @Test(result="boolean")
+    @AT3(boolean.class)
+    public TypeMirror getAnnotationWithPrim() {
+	MethodDeclaration m = getMethod("getAnnotationWithPrim");
+	AT3 a = m.getAnnotation(AT3.class);
+	try {
+	    Class c = a.value();
+	    throw new AssertionError();
+	} catch (MirroredTypeException e) {
+	    return e.getTypeMirror();
+	}
+    }
+
+    // 5050782
+    @Test(result="null")
+    public AT2 getInheritedAnnotation() {
+	return thisClassDecl.getAnnotation(AT2.class);
+    }
+
+    /**
+     * Verify that an annotation created by Declaration.getAnnotation()
+     * has the same hash code as a like annotation created by core
+     * reflection.
+     */
+    @Test(result="true")
+    @AT1(l=7, s="sigh", e=CLASS, sa={"in", "out"}, a=@AT2)
+    public boolean getAnnotationHashCode() {
+	MethodDeclaration m1 = getMethod("getAnnotationHashCode");
+	AT1 a1 = m1.getAnnotation(AT1.class);
+	java.lang.reflect.Method m2 = null;
+	try {
+	    m2 = this.getClass().getMethod("getAnnotationHashCode");
+	} catch (NoSuchMethodException e) {
+	    assert false;
+	}
+	AT1 a2 = m2.getAnnotation(AT1.class);
+	return a1.hashCode() == a2.hashCode();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/InterfaceDecl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,243 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450 4993303 5004618 5010746
+ * @summary InterfaceDeclaration tests
+ * @library ../../lib
+ * @compile -source 1.5 InterfaceDecl.java
+ * @run main InterfaceDecl
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+/**
+ * Sed Quis custodiet ipsos custodes?
+ */
+@AT1
+@AT2
+public class InterfaceDecl extends Tester {
+
+    public static void main(String[] args) {
+	(new InterfaceDecl()).run();
+    }
+
+
+    private InterfaceDeclaration iDecl = null;		// an interface
+    private InterfaceDeclaration nested = null;		// a nested interface
+
+    protected void init() {
+	iDecl = (InterfaceDeclaration) env.getTypeDeclaration("I");
+	nested = (InterfaceDeclaration)
+	    iDecl.getNestedTypes().iterator().next();
+    }
+
+
+    // Declaration methods
+
+    @Test(result="interface")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	iDecl.accept(new SimpleDeclarationVisitor() {
+	    public void visitTypeDeclaration(TypeDeclaration t) {
+		res.add("type");
+	    }
+	    public void visitClassDeclaration(ClassDeclaration c) {
+		res.add("class");
+	    }
+	    public void visitInterfaceDeclaration(InterfaceDeclaration e) {
+		res.add("interface");
+	    }
+	    public void visitAnnotationTypeDeclaration(
+					AnnotationTypeDeclaration e) {
+		res.add("annotation type");
+	    }
+	});
+	return res;
+    }
+
+    @Test(result="true")
+    boolean equals1() {
+	return iDecl.equals(iDecl);
+    }
+
+    @Test(result="false")
+    boolean equals2() {
+	return iDecl.equals(nested);
+    }
+
+    @Test(result="true")
+    boolean equals3() {
+	return iDecl.equals(env.getTypeDeclaration("I"));
+    }
+
+
+    @Test(result={"@AT1", "@AT2"})
+    Collection<AnnotationMirror> getAnnotationMirrors() {
+	return iDecl.getAnnotationMirrors();
+    }
+
+    @Test(result=" Sed Quis custodiet ipsos custodes?\n")
+    String getDocComment() {
+	return iDecl.getDocComment();
+    }
+
+    // Check that interface has "abstract" modifier, even though it's implict
+    // in the source code.
+    @Test(result={"abstract"})
+    Collection<Modifier> getModifiers1() {
+	return iDecl.getModifiers();
+    }
+
+    // Check that nested interface has "static" modifier, even though
+    // it's implicit in the source code and the VM doesn't set that bit.
+    @Test(result={"public", "abstract", "static"})
+    Collection<Modifier> getModifiers2() {
+	return nested.getModifiers();
+    }
+
+    @Test(result="InterfaceDecl.java")
+    String getPosition() {
+	return iDecl.getPosition().file().getName();
+    }
+
+    @Test(result="I")
+    String getSimpleName1() {
+	return iDecl.getSimpleName();
+    }
+
+    @Test(result="Nested")
+    String getSimpleName2() {
+	return nested.getSimpleName();
+    }
+
+
+    // MemberDeclaration method
+
+    @Test(result="null")
+    TypeDeclaration getDeclaringType1() {
+	return iDecl.getDeclaringType();
+    }
+
+    @Test(result="I<T extends java.lang.Number>")
+    TypeDeclaration getDeclaringType2() {
+	return nested.getDeclaringType();
+    }
+
+
+    // TypeDeclaration methods
+
+    @Test(result={"i"})
+    Collection<FieldDeclaration> getFields() {
+	return iDecl.getFields();
+    }
+
+    @Test(result={"T extends java.lang.Number"})
+    Collection<TypeParameterDeclaration> getFormalTypeParameters1() {
+	return iDecl.getFormalTypeParameters();
+    }
+
+    @Test(result={})
+    Collection<TypeParameterDeclaration> getFormalTypeParameters2() {
+	return nested.getFormalTypeParameters();
+    }
+
+    // 4993303: verify policy on Object methods being visible
+    @Test(result={"m()", "toString()"})
+    Collection<? extends MethodDeclaration> getMethods() {
+	return nested.getMethods();
+    }
+
+    @Test(result="I.Nested")
+    Collection<TypeDeclaration> getNestedTypes() {
+	return iDecl.getNestedTypes();
+    }
+
+    @Test(result="")
+    PackageDeclaration getPackage1() {
+	return iDecl.getPackage();
+    }
+
+    @Test(result="java.util")
+    PackageDeclaration getPackage2() {
+	InterfaceDeclaration set =
+	    (InterfaceDeclaration) env.getTypeDeclaration("java.util.Set");
+	return set.getPackage();
+    }
+
+    @Test(result="I")
+    String getQualifiedName1() {
+	return iDecl.getQualifiedName();
+    }
+
+    @Test(result="I.Nested")
+    String getQualifiedName2() {
+	return nested.getQualifiedName();
+    }
+
+    @Test(result="java.util.Set")
+    String getQualifiedName3() {
+	InterfaceDeclaration set =
+	    (InterfaceDeclaration) env.getTypeDeclaration("java.util.Set");
+	return set.getQualifiedName();
+    }
+
+    @Test(result="java.lang.Runnable")
+    Collection<InterfaceType> getSuperinterfaces() {
+	return iDecl.getSuperinterfaces();
+    }
+}
+
+
+// Interfaces used for testing.
+
+/**
+ * Sed Quis custodiet ipsos custodes?
+ */
+@AT1
+@AT2
+interface I<T extends Number> extends Runnable {
+    int i = 6;
+    void m1();
+    void m2();
+    void m2(int j);
+
+    interface Nested {
+	void m();
+	String toString();
+    }
+}
+
+@interface AT1 {
+}
+
+@interface AT2 {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/MethodDecl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,244 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450 5010746
+ * @summary MethodDeclaration tests
+ * @library ../../lib
+ * @compile -source 1.5 MethodDecl.java
+ * @run main MethodDecl
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+public class MethodDecl extends Tester {
+
+    public static void main(String[] args) {
+	(new MethodDecl()).run();
+    }
+
+
+    private MethodDeclaration meth1 = null;		// a method
+    private MethodDeclaration meth2 = null;		// another method
+
+    protected void init() {
+	meth1 = getMethod("m1");
+	meth2 = getMethod("m2");
+    }
+
+
+    // Declaration methods
+
+    @Test(result="method")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	meth1.accept(new SimpleDeclarationVisitor() {
+	    public void visitTypeDeclaration(TypeDeclaration t) {
+		res.add("type");
+	    }
+	    public void visitExecutableDeclaration(ExecutableDeclaration e) {
+		res.add("executable");
+	    }
+	    public void visitMethodDeclaration(MethodDeclaration m) {
+		res.add("method");
+	    }
+	    public void visitAnnotationTypeElementDeclaration(
+					AnnotationTypeElementDeclaration a) {
+		res.add("anno type element");
+	    }
+	});
+	return res;
+    }
+
+    @Test(result={"@AT1"})
+    Collection<AnnotationMirror> getAnnotationMirrors() {
+	return meth1.getAnnotationMirrors();
+    }
+
+    @Test(result=" Sed Quis custodiet ipsos custodes?\n")
+    String getDocComment() {
+	return meth1.getDocComment();
+    }
+
+    @Test(result={"private", "static", "strictfp"})
+    Collection<Modifier> getModifiers() {
+	return meth1.getModifiers();
+    }
+
+    // Interface methods are implicitly public and abstract.
+    @Test(result={"public", "abstract"})
+    Collection<Modifier> getModifiersInterface() {
+	for (TypeDeclaration t : thisClassDecl.getNestedTypes()) {
+	    for (MethodDeclaration m : t.getMethods()) {
+		return m.getModifiers();
+	    }
+	}
+	throw new AssertionError();
+    }
+
+    @Test(result="MethodDecl.java")
+    String getPosition() {
+	return meth1.getPosition().file().getName();
+    }
+
+    @Test(result="m2")
+    String getSimpleName() {
+	return meth2.getSimpleName();
+    }
+
+
+    // MemberDeclaration method
+
+    @Test(result="MethodDecl")
+    TypeDeclaration getDeclaringType() {
+	return meth1.getDeclaringType();
+    }
+
+
+    // ExecutableDeclaration methods
+
+    @Test(result={})
+    Collection<TypeParameterDeclaration> getFormalTypeParameters1() {
+	return meth1.getFormalTypeParameters();
+    }
+
+    @Test(result={"T", "N extends java.lang.Number"},
+	  ordered=true)
+    Collection<TypeParameterDeclaration> getFormalTypeParameters2() {
+	return meth2.getFormalTypeParameters();
+    }
+
+    @Test(result={})
+    Collection<ParameterDeclaration> getParameters1() {
+	return meth1.getParameters();
+    }
+
+    @Test(result={"N n", "java.lang.String[] ss"},
+	  ordered=true)
+    Collection<ParameterDeclaration> getParameters2() {
+	return meth2.getParameters();
+    }
+
+    @Test(result="true")
+    boolean parameterEquals1() {
+	ParameterDeclaration p1 =
+	    getMethod("m3").getParameters().iterator().next();
+	ParameterDeclaration p2 =
+	    getMethod("m3").getParameters().iterator().next();
+	return p1.equals(p2);
+    }
+
+    @Test(result="false")
+    boolean parameterEquals2() {
+	ParameterDeclaration p1 =
+	    getMethod("m3").getParameters().iterator().next();
+	ParameterDeclaration p2 =
+	    getMethod("m4").getParameters().iterator().next();
+	return p1.equals(p2);
+    }
+
+    @Test(result="true")
+    boolean parameterHashCode() {
+	ParameterDeclaration p1 =
+	    getMethod("m3").getParameters().iterator().next();
+	ParameterDeclaration p2 =
+	    getMethod("m3").getParameters().iterator().next();
+	return p1.hashCode() == p2.hashCode();
+    }
+
+    @Test(result={"java.lang.Throwable"})
+    Collection<ReferenceType> getThrownTypes() {
+	return meth2.getThrownTypes();
+    }
+
+    @Test(result="false")
+    Boolean isVarArgs1() {
+	return meth1.isVarArgs();
+    }
+
+    @Test(result="true")
+    Boolean isVarArgs2() {
+	return meth2.isVarArgs();
+    }
+
+
+    // MethodDeclaration methods
+
+    @Test(result="void")
+    TypeMirror getReturnType1() {
+	return meth1.getReturnType();
+    }
+
+    @Test(result="N")
+    TypeMirror getReturnType2() {
+	return meth2.getReturnType();
+    }
+
+
+    // toString
+
+    @Test(result="<T, N extends java.lang.Number> m2(N, java.lang.String...)")
+    @Ignore("This is what it would be nice to see.")
+    String toStringTest() {
+	return meth2.toString();
+    }
+
+
+    // Declarations used by tests.
+
+    /**
+     * Sed Quis custodiet ipsos custodes?
+     */
+    @AT1
+    private static strictfp void m1() {
+    }
+
+    private <T, N extends Number> N m2(N n, String... ss) throws Throwable {
+	return null;
+    }
+
+    private void m3(String s) {
+    }
+
+    private void m4(String s) {
+    }
+
+    // A nested interface
+    interface I {
+	void m();
+    }
+}
+
+
+// Annotation type used by tests.
+
+@interface AT1 {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/PackageDecl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,167 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450 5031168
+ * @summary PackageDeclaration tests
+ * @library ../../lib
+ * @compile -source 1.5 PackageDecl.java
+ * @run main PackageDecl
+ */
+
+
+import java.io.File;
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import pkg1.pkg2.*;
+
+
+/**
+ * Sed Quis custodiet ipsos custodes?
+ */
+public class PackageDecl extends Tester {
+
+    public PackageDecl() {
+	super(System.getProperty("test.src", ".") + File.separator +
+	      "pkg1" + File.separator + "package-info.java");
+    }
+
+    public static void main(String[] args) {
+	(new PackageDecl()).run();
+    }
+
+
+    private PackageDeclaration pkg1 = null;		// a package
+    private PackageDeclaration pkg2 = null;		// a subpackage
+
+    protected void init() {
+	pkg1 = env.getPackage("pkg1");
+	pkg2 = env.getPackage("pkg1.pkg2");
+    }
+
+
+    // Declaration methods
+
+    @Test(result="package")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	pkg1.accept(new SimpleDeclarationVisitor() {
+	    public void visitTypeDeclaration(TypeDeclaration t) {
+		res.add("type");
+	    }
+	    public void visitPackageDeclaration(PackageDeclaration p) {
+		res.add("package");
+	    }
+	});
+	return res;
+    }
+
+    @Test(result={"@pkg1.AnAnnoType"})
+    Collection<AnnotationMirror> getAnnotationMirrors() {
+	return pkg1.getAnnotationMirrors();
+    }
+
+    @Test(result=" Herein lieth the package comment.\n" +
+		 " A doc comment it be, and wonderous to behold.\n")
+    String getDocCommentFromPackageInfoFile() {
+	return pkg1.getDocComment();
+    }
+
+    @Test(result="\nHerein lieth the package comment.\n" +
+		 "An HTML file it be, and wonderous to behold.\n\n")
+    @Ignore("Not yet supported")
+    String getDocCommentFromHtmlFile() {
+	return pkg2.getDocComment();
+    }
+
+    @Test(result={})
+    Collection<Modifier> getModifiers() {
+	return pkg1.getModifiers();
+    }
+
+    @Test(result="null")
+    SourcePosition getPosition() {
+	return thisClassDecl.getPackage().getPosition();
+    }
+
+    @Test(result="package-info.java")
+    String getPositionFromPackageInfoFile() {
+	return pkg1.getPosition().file().getName();
+    }
+
+    @Test(result="pkg1/pkg2/package.html")
+    @Ignore("Not yet supported")
+    String getPositionFromHtmlFile() {
+	return pkg2.getPosition().file().getName()
+					    .replace(File.separatorChar, '/');
+    }
+
+    @Test(result="pkg1")
+    String getSimpleName1() {
+	return pkg1.getSimpleName();
+    }
+
+    @Test(result="pkg2")
+    String getSimpleName2() {
+	return pkg2.getSimpleName();
+    }
+
+
+    // PackageDeclaration methods
+
+    @Test(result="pkg1.AnAnnoType")
+    Collection<AnnotationTypeDeclaration> getAnnotationTypes() {
+	return pkg1.getAnnotationTypes();
+    }
+
+    @Test(result={"pkg1.AClass", "pkg1.AnEnum"})
+    Collection<ClassDeclaration> getClasses() {
+	return pkg1.getClasses();
+    }
+
+    @Test(result="pkg1.AnEnum")
+    Collection<EnumDeclaration> getEnums() {
+	return pkg1.getEnums();
+    }
+
+    @Test(result={"pkg1.AnInterface", "pkg1.AnAnnoType"})
+    Collection<InterfaceDeclaration> getInterfaces() {
+	return pkg1.getInterfaces();
+    }
+
+    @Test(result="pkg1")
+    String getQualifiedName1() {
+	return pkg1.getQualifiedName();
+    }
+
+    @Test(result="pkg1.pkg2")
+    String getQualifiedName2() {
+	return pkg2.getQualifiedName();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/ParameterDecl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,136 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450 5031171
+ * @summary ParameterDeclaration tests
+ * @library ../../lib
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+public class ParameterDecl extends Tester {
+
+    public static void main(String[] args) {
+	(new ParameterDecl()).run();
+    }
+
+
+    // Declarations used by tests
+
+    @interface AT1 {
+    }
+
+    @interface AT2 {
+	boolean value();
+    }
+
+    private void m1(@AT1 @AT2(true) final int p1) {
+    }
+
+    private void m2(int p1) {
+    }
+
+
+    private ParameterDeclaration p1 = null;	// a parameter
+
+    protected void init() {
+	p1 = getMethod("m1").getParameters().iterator().next();
+    }
+
+
+    // Declaration methods
+
+    @Test(result="param")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	p1.accept(new SimpleDeclarationVisitor() {
+	    public void visitFieldDeclaration(FieldDeclaration f) {
+		res.add("field");
+	    }
+	    public void visitParameterDeclaration(ParameterDeclaration p) {
+		res.add("param");
+	    }
+	});
+	return res;
+    }
+
+    @Test(result={"@ParameterDecl.AT1", "@ParameterDecl.AT2(true)"})
+    Collection<AnnotationMirror> getAnnotationMirrors() {
+	return p1.getAnnotationMirrors();
+    }
+
+    @Test(result={"final"})
+    Collection<Modifier> getModifiers() {
+	return p1.getModifiers();
+    }
+
+    @Test(result="ParameterDecl.java")
+    String getPosition() {
+	return p1.getPosition().file().getName();
+    }
+
+    @Test(result="p1")
+    String getSimpleName() {
+	return p1.getSimpleName();
+    }
+
+
+    // ParameterDeclaration methods
+
+    @Test(result="int")
+    TypeMirror getType() {
+	return p1.getType();
+    }
+
+
+    // toString, equals
+
+    @Test(result="int p1")
+    String toStringTest() {
+	return p1.toString();
+    }
+
+    @Test(result="true")
+    boolean equalsTest1() {
+	ParameterDeclaration p =
+	    getMethod("m1").getParameters().iterator().next();
+	return p1.equals(p);
+    }
+
+    // Not all p1's are equal.
+    @Test(result="false")
+    boolean equalsTest2() {
+	ParameterDeclaration p2 =
+	    getMethod("m2").getParameters().iterator().next();
+	return p1.equals(p2);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/pkg1/AClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+package pkg1;
+
+public class AClass {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/pkg1/AnAnnoType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+
+package pkg1;
+
+public @interface AnAnnoType {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/pkg1/AnEnum.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+package pkg1;
+
+enum AnEnum {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/pkg1/AnInterface.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+
+package pkg1;
+
+public interface AnInterface {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/pkg1/package-info.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/**
+ * Herein lieth the package comment.
+ * A doc comment it be, and wonderous to behold.
+ */
+@AnAnnoType
+package pkg1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/pkg1/pkg2/AnInterface.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package pkg1.pkg2;
+
+public interface AnInterface {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/declaration/pkg1/pkg2/package.html	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+Copyright 2004 Sun Microsystems, Inc.  All Rights Reserved.
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+This code is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 2 only, as
+published by the Free Software Foundation.  Sun designates this
+particular file as subject to the "Classpath" exception as provided
+by Sun in the LICENSE file that accompanied this code.
+
+This code is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+version 2 for more details (a copy is included in the LICENSE file that
+accompanied this code).
+
+You should have received a copy of the GNU General Public License version
+2 along with this work; if not, write to the Free Software Foundation,
+Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+CA 95054 USA or visit www.sun.com if you need additional information or
+have any questions.
+
+-->
+
+</head>
+<body bgcolor="white">
+
+Herein lieth the package comment.
+An HTML file it be, and wonderous to behold.
+
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/type/AnnoTyp.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,92 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450
+ * @summary AnnotationType tests
+ * @library ../../lib
+ * @compile -source 1.5 AnnoTyp.java
+ * @run main AnnoTyp
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+public class AnnoTyp extends Tester {
+
+    public static void main(String[] args) {
+	(new AnnoTyp()).run();
+    }
+
+
+    // Declaration used by tests
+
+    @interface AT {
+    }
+
+
+    private AnnotationType at;	// an annotation type
+
+    @AT
+    protected void init() {
+	at = getAnno("init", "AnnoTyp.AT").getAnnotationType();
+    }
+
+
+    // TypeMirror methods
+
+    @Test(result="anno type")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	at.accept(new SimpleTypeVisitor() {
+	    public void visitReferenceType(ReferenceType t) {
+		res.add("ref type");
+	    }
+	    public void visitClassType(ClassType t) {
+		res.add("class");
+	    }
+	    public void visitInterfaceType(InterfaceType t) {
+		res.add("interface");
+	    }
+	    public void visitAnnotationType(AnnotationType t) {
+		res.add("anno type");
+	    }
+	});
+	return res;
+    }
+
+
+    // AnnotationType method
+
+    @Test(result="AnnoTyp.AT")
+    AnnotationTypeDeclaration getDeclaration() {
+	return at.getDeclaration();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/type/ArrayTyp.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450 5009357
+ * @summary ArrayType tests
+ * @library ../../lib
+ * @compile -source 1.5 ArrayTyp.java
+ * @run main ArrayTyp
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+public class ArrayTyp extends Tester {
+
+    public static void main(String[] args) {
+	(new ArrayTyp()).run();
+    }
+
+
+    // Declaration used by tests
+
+    private boolean[] bs;
+    private String[][] bss;
+
+
+    private ArrayType arr;		// an array type
+    private ArrayType arrarr;		// a multi-dimensional array type
+
+    protected void init() {
+	arr = (ArrayType) getField("bs").getType();
+	arrarr = (ArrayType) getField("bss").getType();
+    }
+
+
+    // TypeMirror methods
+
+    @Test(result="array")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	arr.accept(new SimpleTypeVisitor() {
+	    public void visitTypeMirror(TypeMirror t) {
+		res.add("type");
+	    }
+	    public void visitArrayType(ArrayType t) {
+		res.add("array");
+	    }
+	    public void visitReferenceType(ReferenceType t) {
+		res.add("ref type");
+	    }
+	});
+	return res;
+    }
+
+    @Test(result="boolean[]")
+    String toStringTest() {
+	return arr.toString();
+    }
+
+    @Test(result="java.lang.String[][]")
+    String toStringTestMulti() {
+	return arrarr.toString();
+    }
+
+
+    // ArrayType method
+
+    @Test(result="boolean")
+    TypeMirror getComponentType() {
+	return (PrimitiveType) arr.getComponentType();
+    }
+
+    @Test(result="java.lang.String[]")
+    TypeMirror getComponentTypeMulti() {
+	return (ArrayType) arrarr.getComponentType();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/type/ClassTyp.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,239 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450 5009360 5055963
+ * @summary ClassType tests
+ * @library ../../lib
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+public class ClassTyp<T1,T2> extends Tester {
+
+    public static void main(String[] args) {
+	(new ClassTyp()).run();
+    }
+
+
+    // Declarations used by tests
+
+    static class C1<S> extends AbstractSet<S> implements Set<S> {
+	class C2<R> {
+	}
+
+	static class C3<R> {
+	    class C4<Q> {
+	    }
+	}
+
+	public Iterator<S> iterator() {
+	    return null;
+	}
+
+	public int size() {
+	    return 0;
+	}
+    }
+
+
+    // Generate some class types to test.
+    private C1<T1> f0;
+    private C1<String> f1;
+    private C1 f2;
+    private C1.C3<T2> f3;
+    private C1<T1>.C2<T2> f4;
+    private C1.C2 f5;
+    private C1<T1> f6;
+    private C1.C3<T2>.C4<T1> f7;
+    private static final int NUMTYPES = 8;
+
+    // Type mirrors corresponding to the types of the above fields
+    private ClassType[] t = new ClassType[NUMTYPES];
+
+    // One more type:  our own.
+    private ClassTyp<T1,T2> me = this;
+
+
+    protected void init() {
+	for (int i = 0; i < t.length; i++) {
+	    t[i] = (ClassType) getField("f"+i).getType();
+	}
+    }
+
+
+    // TypeMirror methods
+
+    @Test(result="class")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	t[0].accept(new SimpleTypeVisitor() {
+	    public void visitReferenceType(ReferenceType t) {
+		res.add("ref type");
+	    }
+	    public void visitClassType(ClassType t) {
+		res.add("class");
+	    }
+	    public void visitInterfaceType(InterfaceType t) {
+		res.add("interface");
+	    }
+	});
+	return res;
+    }
+
+    @Test(result="true")
+    boolean equals1() {
+	return t[0].equals(t[0]);
+    }
+
+    @Test(result="false")
+    boolean equals2() {
+	return t[0].equals(t[1]);
+    }
+
+    // Raw type is not same as type instantiated with unbounded type var.
+    @Test(result="false")
+    boolean equals3() {
+	return t[0].equals(t[2]);
+    }
+
+    // C1<T1> is same type as C1<T1>
+    @Test(result="true")
+    boolean equals4() {
+	return t[0].equals(t[6]);
+    }
+
+    @Test(result={
+	      "ClassTyp.C1<T1>",
+	      "ClassTyp.C1<java.lang.String>",
+	      "ClassTyp.C1",
+	      "ClassTyp.C1.C3<T2>",
+	      "ClassTyp.C1<T1>.C2<T2>",
+	      "ClassTyp.C1.C2",
+	      "ClassTyp.C1<T1>",
+	      "ClassTyp.C1.C3<T2>.C4<T1>"
+	  },
+	  ordered=true)
+    Collection<String> toStringTests() {
+	Collection<String> res = new ArrayList<String>();
+	for (ClassType c : t) {
+	    res.add(c.toString());
+	}
+	return res;
+    }
+
+
+    // DeclaredType methods
+
+    @Test(result={"T1"})
+    Collection<TypeMirror> getActualTypeArguments1() {
+	return t[0].getActualTypeArguments();
+    }
+
+    @Test(result={})
+    Collection<TypeMirror> getActualTypeArguments2() {
+	return t[2].getActualTypeArguments();
+    }
+
+    @Test(result={"T2"})
+    Collection<TypeMirror> getActualTypeArguments3() {
+	return t[3].getActualTypeArguments();
+    }
+
+    @Test(result="null")
+    DeclaredType getContainingType1() {
+	ClassType thisType = (ClassType) getField("me").getType();
+	return thisType.getContainingType();
+    }
+
+    @Test(result="ClassTyp")
+    DeclaredType getContainingType2() {
+	return t[0].getContainingType();
+    }
+
+    @Test(result="ClassTyp.C1")
+    DeclaredType getContainingType3() {
+	return t[3].getContainingType();
+    }
+
+    @Test(result="ClassTyp.C1<T1>")
+    DeclaredType getContainingType4() {
+	return t[4].getContainingType();
+    }
+
+    @Test(result={"java.util.Set<T1>"})
+    Collection<InterfaceType> getSuperinterfaces() {
+	return t[0].getSuperinterfaces();
+    }
+	
+
+    // ClassType methods
+
+    @Test(result="ClassTyp.C1<S>")
+    ClassDeclaration getDeclaration1() {
+	return t[0].getDeclaration();
+    }
+
+    @Test(result="ClassTyp.C1.C3<R>")
+    ClassDeclaration getDeclaration2() {
+	return t[3].getDeclaration();
+    }
+
+    @Test(result="ClassTyp.C1<S>.C2<R>")
+    ClassDeclaration getDeclaration3a() {
+	return t[4].getDeclaration();
+    }
+
+    @Test(result="ClassTyp.C1<S>.C2<R>")
+    ClassDeclaration getDeclaration3b() {
+	return t[5].getDeclaration();
+    }
+
+    @Test(result="true")
+    boolean getDeclarationEq() {
+	return t[0].getDeclaration() == t[6].getDeclaration();
+    }
+
+    @Test(result="java.util.AbstractSet<T1>")
+    ClassType getSuperclass1() {
+	return t[0].getSuperclass();
+    }
+
+    @Test(result="java.lang.Object")
+    ClassType getSuperclass2() {
+	return t[4].getSuperclass();
+    }
+
+    @Test(result="null")
+    ClassType getSuperclassOfObject() {
+	return t[4].getSuperclass().getSuperclass();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/type/EnumTyp.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450
+ * @summary EnumType tests
+ * @library ../../lib
+ * @compile -source 1.5 EnumTyp.java
+ * @run main EnumTyp
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+public class EnumTyp extends Tester {
+
+    public static void main(String[] args) {
+	(new EnumTyp()).run();
+    }
+
+
+    // Declarations used by tests
+
+    enum Suit {
+	CIVIL,
+	CRIMINAL
+    }
+
+    private Suit s;
+
+
+    private EnumType e;		// an enum type
+
+    protected void init() {
+	e = (EnumType) getField("s").getType();
+    }
+
+
+    // TypeMirror methods
+
+    @Test(result="enum")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	e.accept(new SimpleTypeVisitor() {
+	    public void visitTypeMirror(TypeMirror t) {
+		res.add("type");
+	    }
+	    public void visitReferenceType(ReferenceType t) {
+		res.add("ref type");
+	    }
+	    public void visitClassType(ClassType t) {
+		res.add("class");
+	    }
+	    public void visitEnumType(EnumType t) {
+		res.add("enum");
+	    }
+	    public void visitInterfaceType(InterfaceType t) {
+		res.add("interface");
+	    }
+	});
+	return res;
+    }
+
+
+    // EnumType method
+
+    @Test(result="EnumTyp.Suit")
+    EnumDeclaration getDeclaration() {
+	return e.getDeclaration();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/type/InterfaceTyp.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,201 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450 5055963
+ * @summary InterfaceType tests
+ * @library ../../lib
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+public class InterfaceTyp<T1,T2> extends Tester {
+
+    public static void main(String[] args) {
+	(new InterfaceTyp()).run();
+    }
+
+
+    // Declarations used by tests
+
+    interface I1<S> extends Set<String> {
+	interface I2<R> {
+	}
+    }
+
+
+    // Generate some interface types to test
+    private I1<T1> f0;
+    private I1<String> f1;
+    private I1 f2;
+    private I1.I2<String> f3;
+    private I1.I2 f4;
+    private I1<T1> f5;
+    private I3<T1> f6;
+    private static final int NUMTYPES = 7;
+
+    // Type mirrors corresponding to the types of the above fields
+    private InterfaceType[] t = new InterfaceType[NUMTYPES];
+
+    protected void init() {
+	for (int i = 0; i < t.length; i++) {
+	    t[i] = (InterfaceType) getField("f"+i).getType();
+	}
+    }
+
+
+    // TypeMirror methods
+
+    @Test(result="interface")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	t[0].accept(new SimpleTypeVisitor() {
+	    public void visitReferenceType(ReferenceType t) {
+		res.add("ref type");
+	    }
+	    public void visitClassType(ClassType t) {
+		res.add("class");
+	    }
+	    public void visitInterfaceType(InterfaceType t) {
+		res.add("interface");
+	    }
+	});
+	return res;
+    }
+
+    @Test(result="true")
+    boolean equals1() {
+	return t[0].equals(t[0]);
+    }
+
+    @Test(result="false")
+    boolean equals2() {
+	return t[0].equals(t[1]);
+    }
+
+    // Raw type is not same as type instantiated with unbounded type var.
+    @Test(result="false")
+    boolean equals3() {
+	return t[0].equals(t[2]);
+    }
+
+    // I1<T1> is same type as I1<T1>
+    @Test(result="true")
+    boolean equals4() {
+	return t[0].equals(t[5]);
+    }
+
+    @Test(result={
+	      "InterfaceTyp.I1<T1>",
+	      "InterfaceTyp.I1<java.lang.String>",
+	      "InterfaceTyp.I1",
+	      "InterfaceTyp.I1.I2<java.lang.String>",
+	      "InterfaceTyp.I1.I2",
+	      "InterfaceTyp.I1<T1>",
+	      "I3<T1>"
+	  },
+	  ordered=true)
+    Collection<String> toStringTests() {
+	Collection<String> res = new ArrayList<String>();
+	for (InterfaceType i : t) {
+	    res.add(i.toString());
+	}
+	return res;
+    }
+
+
+    // DeclaredType methods
+
+    @Test(result={"T1"})
+    Collection<TypeMirror> getActualTypeArguments1() {
+	return t[0].getActualTypeArguments();
+    }
+
+    @Test(result={})
+    Collection<TypeMirror> getActualTypeArguments2() {
+	return t[2].getActualTypeArguments();
+    }
+
+    @Test(result={"java.lang.String"})
+    Collection<TypeMirror> getActualTypeArguments3() {
+	return t[3].getActualTypeArguments();
+    }
+
+    @Test(result="InterfaceTyp")
+    DeclaredType getContainingType1() {
+	return t[0].getContainingType();
+    }
+
+    @Test(result="InterfaceTyp.I1")
+    DeclaredType getContainingType2() {
+	return t[3].getContainingType();
+    }
+
+    @Test(result="null")
+    DeclaredType getContainingTypeTopLevel() {
+	return t[6].getContainingType();
+    }
+
+    @Test(result={"java.util.Set<java.lang.String>"})
+    Collection<InterfaceType> getSuperinterfaces() {
+	return t[0].getSuperinterfaces();
+    }
+	
+
+
+    // InterfaceType method
+
+    @Test(result="InterfaceTyp.I1<S>")
+    InterfaceDeclaration getDeclaration1() {
+	return t[0].getDeclaration();
+    }
+
+    @Test(result="InterfaceTyp.I1.I2<R>")
+    InterfaceDeclaration getDeclaration2a() {
+	return t[3].getDeclaration();
+    }
+
+    @Test(result="InterfaceTyp.I1.I2<R>")
+    InterfaceDeclaration getDeclaration2b() {
+	return t[4].getDeclaration();
+    }
+
+    @Test(result="true")
+    boolean getDeclarationCaching() {
+	return t[0].getDeclaration() == t[5].getDeclaration();
+    }
+}
+
+
+// A top-level interface used by tests.
+
+interface I3<T> {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/type/PrimitiveTyp.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,92 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450
+ * @summary PrimitiveType tests
+ * @library ../../lib
+ * @compile -source 1.5 PrimitiveTyp.java
+ * @run main PrimitiveTyp
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+public class PrimitiveTyp extends Tester {
+
+    public static void main(String[] args) {
+	(new PrimitiveTyp()).run();
+    }
+
+
+    // Declaration used by tests
+
+    private boolean b;
+
+
+    private PrimitiveType prim;		// a primitive type
+
+    protected void init() {
+	prim = (PrimitiveType) getField("b").getType();
+    }
+
+
+    // TypeMirror methods
+
+    @Test(result="primitive")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	prim.accept(new SimpleTypeVisitor() {
+	    public void visitTypeMirror(TypeMirror t) {
+		res.add("type");
+	    }
+	    public void visitPrimitiveType(PrimitiveType t) {
+		res.add("primitive");
+	    }
+	    public void visitReferenceType(ReferenceType t) {
+		res.add("ref type");
+	    }
+	});
+	return res;
+    }
+
+    @Test(result="boolean")
+    String toStringTest() {
+	return prim.toString();
+    }
+
+
+    // PrimitiveType method
+
+    @Test(result="BOOLEAN")
+    PrimitiveType.Kind getKind() {
+	return prim.getKind();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/type/TypeVar.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450
+ * @summary TypeVariable tests
+ * @library ../../lib
+ * @compile -source 1.5 TypeVar.java
+ * @run main TypeVar
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+public class TypeVar<T, S extends Number & Runnable> extends Tester {
+
+    public static void main(String[] args) {
+	(new TypeVar()).run();
+    }
+
+
+    // Declarations used by tests
+
+    private T t;
+    private S s;
+
+
+    private TypeVariable tvT;	// type variable T
+    private TypeVariable tvS;	// type variable S
+
+    protected void init() {
+	tvT = (TypeVariable) getField("t").getType();
+	tvS = (TypeVariable) getField("s").getType();
+    }
+
+
+    // TypeMirror methods
+
+    @Test(result="type var")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	tvT.accept(new SimpleTypeVisitor() {
+	    public void visitTypeMirror(TypeMirror t) {
+		res.add("type");
+	    }
+	    public void visitReferenceType(ReferenceType t) {
+		res.add("ref type");
+	    }
+	    public void visitTypeVariable(TypeVariable t) {
+		res.add("type var");
+	    }
+	});
+	return res;
+    }
+
+    @Test(result="T")
+    String toStringTest1() {
+	return tvT.toString();
+    }
+
+    @Test(result="S")
+    String toStringTest2() {
+	return tvS.toString();
+    }
+
+
+    // TypeVariable method
+
+    @Test(result="S extends java.lang.Number & java.lang.Runnable")
+    TypeParameterDeclaration getDeclaration() {
+	return tvS.getDeclaration();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/type/WildcardTyp.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,170 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 4853450 5009396 5010636 5031156
+ * @summary WildcardType tests
+ * @library ../../lib
+ * @compile -source 1.5 WildcardTyp.java
+ * @run main WildcardTyp
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+public class WildcardTyp extends Tester {
+
+    public static void main(String[] args) {
+	(new WildcardTyp()).run();
+    }
+
+
+    // Declarations to use for testing
+
+    interface G<T> {
+    }
+
+    interface G1<N extends Number & Runnable> {
+    }
+
+    interface G2<T extends G2<T>> {
+    }
+
+    // Some wildcard types to test.
+    private G<?> f0;			// unbound
+    private G<? extends Number> f1;	// covariant
+    private G<? super Number> f2;	// contravariant
+    private G<? extends Object> f3;	// <sigh>
+    private G1<?> f4;	// "true" upper bound is an intersection type
+    private G2<?> f5;	// 'true" upper bound is a recursive F-bound and
+			// not expressible
+    private static final int NUMTYPES = 6;
+
+    // Type mirrors corresponding to the wildcard types of the above fields
+    private WildcardType[] t = new WildcardType[NUMTYPES];
+
+
+    protected void init() {
+	for (int i = 0; i < t.length; i++) {
+	    DeclaredType type = (DeclaredType) getField("f"+i).getType();
+	    t[i] = (WildcardType)
+		type.getActualTypeArguments().iterator().next();
+	}
+    }
+
+    private WildcardType wildcardFor(String field) {
+	DeclaredType d = (DeclaredType) getField(field).getType();
+	return (WildcardType) d.getActualTypeArguments().iterator().next();
+    }
+
+
+    // TypeMirror methods
+
+    @Test(result="wild thing")
+    Collection<String> accept() {
+	final Collection<String> res = new ArrayList<String>();
+
+	t[0].accept(new SimpleTypeVisitor() {
+	    public void visitTypeMirror(TypeMirror t) {
+		res.add("type");
+	    }
+	    public void visitReferenceType(ReferenceType t) {
+		res.add("ref type");
+	    }
+	    public void visitWildcardType(WildcardType t) {
+		res.add("wild thing");
+	    }
+	});
+	return res;
+    }
+
+    @Test(result={
+		"?",
+		"? extends java.lang.Number",
+		"? super java.lang.Number",
+		"? extends java.lang.Object",
+		"?",
+		"?"
+	  },
+	  ordered=true)
+    Collection<String> toStringTests() {
+	Collection<String> res = new ArrayList<String>();
+	for (WildcardType w : t) {
+	    res.add(w.toString());
+	}
+	return res;
+    }
+
+
+    // WildcardType methods
+
+    @Test(result={
+		"null",
+		"null",
+		"java.lang.Number",
+		"null",
+		"null",
+		"null"
+	  },
+	  ordered=true)
+    Collection<ReferenceType> getLowerBounds() {
+	Collection<ReferenceType> res = new ArrayList<ReferenceType>();
+	for (WildcardType w : t) {
+	    Collection<ReferenceType> bounds = w.getLowerBounds();
+	    int num = bounds.size();
+	    if (num > 1) {
+		throw new AssertionError("Bounds abound");
+	    }
+	    res.add((num > 0) ? bounds.iterator().next() : null);
+	}
+	return res;
+    }
+
+    @Test(result={
+		"null",
+		"java.lang.Number",
+		"null",
+		"java.lang.Object",
+		"null",
+		"null"
+	  },
+	  ordered=true)
+    Collection<ReferenceType> getUpperBounds() {
+	Collection<ReferenceType> res = new ArrayList<ReferenceType>();
+	for (WildcardType w : t) {
+	    Collection<ReferenceType> bounds = w.getUpperBounds();
+	    int num = bounds.size();
+	    if (num > 1) {
+		throw new AssertionError("Bounds abound");
+	    }
+	    res.add((num > 0) ? bounds.iterator().next() : null);
+	}
+	return res;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/util/Overrides.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,151 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 5037165
+ * @summary Test the Declarations.overrides method
+ * @library ../../lib
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+
+public class Overrides extends Tester {
+
+    public static void main(String[] args) {
+	(new Overrides()).run();
+    }
+
+
+    // Declarations used by tests
+
+    static class A {
+	void m1(int i) {};		// does not override itself
+	void m2(int i) {};
+	static void m3(int i) {};
+    }
+
+	static class B extends A {
+	    void m1(int j) {};		// overrides A.m1
+	    void m1(String i) {};	// does not override A.m1
+	    void m4(int i) {};		// does not override A.m1
+	}
+
+	    static class C extends B {
+		void m1(int i) {};	// overrides A.m1 and B.m1
+		void m2(int i) {};	// overrides A.m2
+	    }
+
+	static class D extends A {
+	    static void m3(int i) {};	// does not override A.m3
+	}
+
+    static class E {
+	void m1(int i) {};		// does not override A.m1
+    }
+
+
+
+    private Declarations decls;
+
+    private TypeDeclaration A;
+    private TypeDeclaration B;
+    private TypeDeclaration C;
+    private TypeDeclaration D;
+    private TypeDeclaration E;
+    private MethodDeclaration Am1;
+    private MethodDeclaration Am2;
+    private MethodDeclaration Am3;
+    private MethodDeclaration Bm1;
+    private MethodDeclaration Bm1b;
+    private MethodDeclaration Bm4;
+    private MethodDeclaration Cm1;
+    private MethodDeclaration Cm2;
+    private MethodDeclaration Dm3;
+    private MethodDeclaration Em1;
+
+    protected void init() {
+	decls = env.getDeclarationUtils();
+
+	A = env.getTypeDeclaration("Overrides.A");
+	B = env.getTypeDeclaration("Overrides.B");
+	C = env.getTypeDeclaration("Overrides.C");
+	D = env.getTypeDeclaration("Overrides.D");
+	E = env.getTypeDeclaration("Overrides.E");
+
+	Am1  = getMethod(A, "m1", "i");
+	Am2  = getMethod(A, "m2", "i");
+	Am3  = getMethod(A, "m3", "i");
+	Bm1  = getMethod(B, "m1", "j");
+	Bm1b = getMethod(B, "m1", "i");
+	Bm4  = getMethod(B, "m4", "i");
+	Cm1  = getMethod(C, "m1", "i");
+	Cm2  = getMethod(C, "m2", "i");
+	Dm3  = getMethod(D, "m3", "i");
+	Em1  = getMethod(E, "m1", "i");
+    }
+
+    private MethodDeclaration getMethod(TypeDeclaration t,
+					String methodName, String paramName) {
+	for (MethodDeclaration m : t.getMethods()) {
+	    if (methodName.equals(m.getSimpleName()) &&
+		    paramName.equals(m.getParameters().iterator().next()
+							.getSimpleName())) {
+		return m;
+	    }
+	}
+	throw new AssertionError();
+    }
+
+
+    // Declarations methods
+
+    @Test(result={"false",
+		  "true",
+		  "false",
+		  "false",
+		  "true",
+		  "true",
+		  "true",
+		  "false",
+		  "false"},
+	  ordered=true)
+    List<Boolean> overrides() {
+	return Arrays.asList(
+		decls.overrides(Am1, Am1),
+		decls.overrides(Bm1, Am1),
+		decls.overrides(Bm1b,Am1),
+		decls.overrides(Bm4, Am1),
+		decls.overrides(Cm1, Am1),
+		decls.overrides(Cm1, Bm1),
+		decls.overrides(Cm2, Am2),
+		decls.overrides(Dm3, Am3),
+		decls.overrides(Em1, Am1));
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/mirror/util/TypeCreation.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,120 @@
+/*
+ * Copyright 2004-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * @test
+ * @bug 5033381
+ * @summary Test the type creation methods in Types.
+ * @library ../../lib
+ */
+
+
+import java.util.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import static com.sun.mirror.type.PrimitiveType.Kind.*;
+
+
+public class TypeCreation extends Tester {
+
+    public static void main(String[] args) {
+	(new TypeCreation()).run();
+    }
+
+
+    // Declarations used by tests
+
+    class A {
+    }
+
+    class O<T> {
+	class I<S> {
+	}
+    }
+
+
+    private Types types;
+
+    private TypeDeclaration A;
+    private TypeDeclaration O;
+    private TypeDeclaration I;
+
+    private DeclaredType AType;
+
+    protected void init() {
+	types = env.getTypeUtils();
+	A = env.getTypeDeclaration("TypeCreation.A");
+	O = env.getTypeDeclaration("TypeCreation.O");
+	I = env.getTypeDeclaration("TypeCreation.O.I");
+
+	AType = types.getDeclaredType(A);
+    }
+
+
+    @Test(result="boolean")
+    PrimitiveType getPrimitiveType() {
+	return types.getPrimitiveType(BOOLEAN);
+    }
+
+    @Test(result="void")
+    VoidType getVoidType() {
+	return types.getVoidType();
+    }
+
+    @Test(result="boolean[]")
+    ArrayType getArrayType1() {
+	return types.getArrayType(
+		types.getPrimitiveType(BOOLEAN));
+    }
+
+    @Test(result="TypeCreation.A[]")
+    ArrayType getArrayType2() {
+	return types.getArrayType(AType);
+    }
+
+    @Test(result="? extends TypeCreation.A")
+    WildcardType getWildcardType() {
+	Collection<ReferenceType> uppers = new ArrayList<ReferenceType>();
+	Collection<ReferenceType> downers = new ArrayList<ReferenceType>();
+	uppers.add(AType);
+	return types.getWildcardType(uppers, downers);
+    }
+
+    @Test(result="TypeCreation.O<java.lang.String>")
+    DeclaredType getDeclaredType1() {
+	TypeDeclaration stringDecl = env.getTypeDeclaration("java.lang.String");
+	DeclaredType stringType = types.getDeclaredType(stringDecl);
+	return types.getDeclaredType(O, stringType);
+    }
+
+    @Test(result="TypeCreation.O<java.lang.String>.I<java.lang.Number>")
+    DeclaredType getDeclaredType2() {
+	TypeDeclaration numDecl = env.getTypeDeclaration("java.lang.Number");
+	DeclaredType numType = types.getDeclaredType(numDecl);
+	DeclaredType OType = getDeclaredType1();
+	return types.getDeclaredType(OType, I, numType);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/apt/verifyVariables.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,20 @@
+if [ "${TESTJAVA}" = "" ]
+then
+  echo "TESTJAVA not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+
+if [ "${TESTSRC}" = "" ]
+then
+  echo "TESTSRC not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+
+
+if [ "${TESTCLASSES}" = "" ]
+then
+  echo "TESTCLASSES not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+
+exit 0
--- a/j2se/test/tools/javac/4980495/static/Test.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/4980495/static/Test.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)Test.java	1.2 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4980495 6260444
  * @compile/fail/ref=Test.out -XDstdout -XDrawDiagnostics Test.java p1/A1.java p2/A2.java
  */
--- a/j2se/test/tools/javac/4980495/std/Test.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/4980495/std/Test.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)Test.java	1.2 06/11/01  /nodynamiccopyright/ 
+ * @test  /nodynamiccopyright/ 
  * @bug 4980495 6260444
  * @compile/fail/ref=Test.out -XDstdout -XDrawDiagnostics Test.java p1/A1.java p2/A2.java
  *
--- a/j2se/test/tools/javac/5005368.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/5005368.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)5005368.java	1.6 07/05/05
+ * @test
  * @bug 5005368
  * @summary com/sun/tools/javac/comp/Check.java refers to the undefined resource
  * @author gafter
--- a/j2se/test/tools/javac/5045412/Bar.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/5045412/Bar.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,11 +1,11 @@
 /**
- * @test @(#)Bar.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 5045412
  * @compile/fail/ref=out -XDstdout -XDrawDiagnostics -Xlint:serial -XDfailcomplete=java.io.Serializable Bar.java 
  */
 
 /**
- * @test @(#)Bar.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 5045412
  * @compile/fail/ref=out -XDstdout -XDrawDiagnostics -Xlint:serial -XDfailcomplete=java.io.Serializable Bar.java Foo.java
  */
--- a/j2se/test/tools/javac/6257443/T6257443.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6257443/T6257443.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)T6257443.java	1.8 07/05/05
+ * @test
  * @bug 6257443 6350124 6357979
  * @summary compiler can produce a .class file in some source output modes
  *
--- a/j2se/test/tools/javac/6330920/T6330920.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6330920/T6330920.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test    @(#)T6330920.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     6330920
  * @summary Verify that javac doesn't duplicate method error on method with error
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/6330997/T6330997.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6330997/T6330997.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6330997.java	1.9 07/05/05
+ * @test
  * @bug     6330997
  * @summary javac should accept class files with major version of the next release
  * @author  Wei Tao
--- a/j2se/test/tools/javac/6341866/T6341866.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6341866/T6341866.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)T6341866.java	1.6 07/05/05
+ * @test
  * @bug 6341866
  * @summary Source files loaded from source path are not subject to annotation processing
  * @build Anno T6341866
--- a/j2se/test/tools/javac/6342411/T6342411.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6342411/T6342411.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6342411.java	1.7 07/05/05
+ * @test
  * @bug     6342411
  * @summary Add bridge method to allow reflective access to public method in non-public class
  * @author  Neal M Gafter
--- a/j2se/test/tools/javac/6394683/T6394683.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6394683/T6394683.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)T6394683.java	1.6 07/05/05
+ * @test
  * @bug 6394683
  * @summary need to resolve different file-type precedence semantics for javac and 269
  */
--- a/j2se/test/tools/javac/6400383/T6400383.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6400383/T6400383.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6400383.java	1.6 07/05/05
+ * @test
  * @bug 6400383
  * @summary directory foo.java on javac command line causes javac to crash
  */
--- a/j2se/test/tools/javac/6402516/CheckClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6402516/CheckClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CheckClass.java	1.6 07/05/05
+ * @test
  * @bug 6402516
  * @summary need Trees.getScope(TreePath)
  * @build Checker CheckClass
--- a/j2se/test/tools/javac/6402516/CheckIsAccessible.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6402516/CheckIsAccessible.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CheckIsAccessible.java	1.6 07/05/05
+ * @test
  * @bug 6402516
  * @summary need Trees.getScope(TreePath)
  * @build Checker CheckIsAccessible
--- a/j2se/test/tools/javac/6402516/CheckLocalElements.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6402516/CheckLocalElements.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CheckLocalElements.java	1.6 07/05/05
+ * @test
  * @bug 6402516
  * @summary need Trees.getScope(TreePath)
  * @build Checker CheckLocalElements
--- a/j2se/test/tools/javac/6402516/CheckMethod.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6402516/CheckMethod.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CheckMethod.java	1.6 07/05/05
+ * @test
  * @bug 6402516
  * @summary need Trees.getScope(TreePath)
  * @build Checker CheckMethod
--- a/j2se/test/tools/javac/6410653/T6410653.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6410653/T6410653.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6410653.java	1.7 07/05/05
+ * @test
  * @bug     6410653 6401277
  * @summary REGRESSION: javac crashes if -d or -s argument is a file
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/6440583/T6440583.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6440583/T6440583.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6440583.java	1.6 07/05/05
+ * @test
  * @bug 6440583
  * @summary better error recovery
  */
--- a/j2se/test/tools/javac/6457284/T6457284.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6457284/T6457284.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6457284.java	1.4 07/05/05
+ * @test
  * @bug     6457284
  * @summary Internationalize "unnamed package" when the term is used in diagnostics
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/6464451/BigFinally.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6464451/BigFinally.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)BigFinally.java	1.4 07/05/05
+ * @test
  * @bug     6464451
  * @summary javac in 5.0ux can not compile try-finally block which has a lot of "return"
  * @author  Wei Tao
--- a/j2se/test/tools/javac/6464451/DeepNestedFinally.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6464451/DeepNestedFinally.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)DeepNestedFinally.java	1.4 07/05/05
+ * @test
  * @bug     6464451
  * @summary javac in 5.0ux can not compile try-finally block which has a lot of "return"
  * @author  Wei Tao
--- a/j2se/test/tools/javac/6464451/ManyExitsInTry.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6464451/ManyExitsInTry.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)ManyExitsInTry.java	1.4 07/05/05
+ * @test
  * @bug     6464451
  * @summary javac in 5.0ux can not compile try-finally block which has a lot of "return"
  * @author  Wei Tao
--- a/j2se/test/tools/javac/6491592/T6491592.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6491592/T6491592.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test    @(#)T6491592.java	1.2 07/04/05 /nodynamiccopyright/
+ * @test /nodynamiccopyright/
  * @bug     6491592
  * @summary Compiler crashes on assignment operator
  * @author  alex.buckley@...
--- a/j2se/test/tools/javac/6520152/T6520152.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6520152/T6520152.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test    @(#)T6520152.java	1.1 07/07/18
+ * @test
  * @bug     6520152
  * @summary ACC_FINAL flag for anonymous classes shouldn't be set
  * @compile T.java
--- a/j2se/test/tools/javac/6547131/T.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/6547131/T.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test    @(#)T.java	1.2 07/05/02
+ * @test
  * @bug     6547131
  * @summary java.lang.ClassFormatError when using old collection API
  * @compile T.java
--- a/j2se/test/tools/javac/AbstractOverride.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AbstractOverride.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AbstractOverride.java	1.6 07/05/05
+ * @test
  * @bug 4929736
  * @summary Overload resolution when an abstract method overrides a concrete one
  * @author gafter
--- a/j2se/test/tools/javac/AccessMethods/AccessMethodsLHS.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AccessMethods/AccessMethodsLHS.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 07/05/05 @(#)AccessMethodsLHS.java	1.6
+ * @test
  * @bug 4102566
  * @summary Test access methods for assignment targets.
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/AccessMethods/BitwiseAssignment.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AccessMethods/BitwiseAssignment.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BitwiseAssignment.java	1.7 07/05/05
+ * @test
  * @bug 4387704
  * @summary Check correct generation of bitwise assignment access method.
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/AccessMethods/ChainedAssignment.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AccessMethods/ChainedAssignment.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 07/05/05 @(#)ChainedAssignment.java	1.8
+ * @test
  * @bug 4098316 4522720
  * @summary Test chained assignments using access methods.
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/AccessMethods/ConstructorAccess.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AccessMethods/ConstructorAccess.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 07/05/05 @(#)ConstructorAccess.java	1.8
+ * @test
  * @bug 4116460
  * @summary Test access methods for private constructors.
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/AccessMethods/InternalHandshake.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AccessMethods/InternalHandshake.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InternalHandshake.java	1.6 07/05/05
+ * @test
  * @bug 4430144
  * @summary secret javac internal handshake for super access methods has side-effects.
  *
--- a/j2se/test/tools/javac/AccessMethods/LateAddition.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AccessMethods/LateAddition.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)LateAddition.java	1.6 07/05/05
+ * @test
  * @bug 4098093
  * @summary Compiler must properly handle access methods
  * created after their class has been checked.
--- a/j2se/test/tools/javac/AccessMethods/UplevelPrivateConstants.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AccessMethods/UplevelPrivateConstants.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UplevelPrivateConstants.java	1.6 07/05/05
+ * @test
  * @bug 4098737
  * @summary Compiler must treat an uplevel reference to a
  * private named constant as a constant expression.
--- a/j2se/test/tools/javac/AddReferenceThis.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AddReferenceThis.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AddReferenceThis.java	1.6 07/05/05
+ * @test
  * @bug 4062064
  * @summary Implicit casts from int to char used to screw up the internal
  *          `this' object in a bad way.
--- a/j2se/test/tools/javac/Ambig3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Ambig3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Ambig3.java	1.6 07/05/05
+ * @test
  * @bug 4906586
  * @summary Missing ambiguity error when two methods are equally specific
  * @author gafter
--- a/j2se/test/tools/javac/AnonClsInIntf.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AnonClsInIntf.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)AnonClsInIntf.java	1.6 07/05/05
+ * @test
  * @bug 4230690
  * @summary An anonyous class in an interface is allowed.
  *
--- a/j2se/test/tools/javac/AnonInnerException_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AnonInnerException_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AnonInnerException_1.java	1.6 07/05/05
+ * @test
  * @bug 4266172
  * @summary Verify that constructor for an anonymous class can throw
  * exceptions if its superclass can.
--- a/j2se/test/tools/javac/AnonInnerException_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AnonInnerException_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AnonInnerException_2.java	1.7 07/05/05
+ * @test
  * @bug 4266172 4054256
  * @summary Verify that instance initializer of inner class can throw checked exception.
  *
--- a/j2se/test/tools/javac/AnonInnerException_3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AnonInnerException_3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AnonInnerException_3.java	1.6 07/05/05
+ * @test
  * @bug 4266172
  * @summary Verify that fix for 4266172 does not affect named inner classes.
  * @author maddox
--- a/j2se/test/tools/javac/AnonStaticMember_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AnonStaticMember_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AnonStaticMember_1.java	1.6 07/05/05
+ * @test
  * @bug 4279339
  * @summary Verify that an anonymous class cannot contain a static field.
  * @author maddox
--- a/j2se/test/tools/javac/AnonStaticMember_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AnonStaticMember_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AnonStaticMember_2.java	1.6 07/05/05
+ * @test
  * @bug 4279339
  * @summary Verify that an anonymous class cannot contain a static method.
  * @author maddox
--- a/j2se/test/tools/javac/AnonStaticMember_3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AnonStaticMember_3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AnonStaticMember_3.java	1.6 07/05/05
+ * @test
  * @bug 4279339
  * @summary Verify that an anonymous class can contain static constant.
  * @author maddox
--- a/j2se/test/tools/javac/AnonymousConstructorExceptions.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AnonymousConstructorExceptions.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AnonymousConstructorExceptions.java	1.6 07/05/05
+ * @test
  * @bug 4337978
  * @summary Verify that anonymous classes inheriting from classes whose constructors
  * are declared to throw exceptions can be succesfully compiled.
--- a/j2se/test/tools/javac/AnonymousNull.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AnonymousNull.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AnonymousNull.java	1.7 07/05/05
+ * @test
  * @bug 4054689
  * @summary The compiler crashed whenever an anonymous class was created
  *          with `null' as one of its arguments.
--- a/j2se/test/tools/javac/AnonymousProtect/AnonymousProtect.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AnonymousProtect/AnonymousProtect.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AnonymousProtect.java	1.6 07/05/05
+ * @test
  * @bug 4308759
  * @summary Anonymous class with inaccessible type in constructor is rejected
  * @author gafter
--- a/j2se/test/tools/javac/AnonymousType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/AnonymousType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AnonymousType.java	1.7 07/05/05
+ * @test
  * @bug 4102056
  * @summary The compiler did not correctly set the type of an anonymous
  *          new expression.
--- a/j2se/test/tools/javac/ArrayCast.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ArrayCast.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ArrayCast.java	1.8 07/05/05
+ * @test
  * @bug 4080434
  * @summary Casts to an array type used to cause a NullPointerException during
  *          compilation.  This was fixed in 1.2beta2.
--- a/j2se/test/tools/javac/ArrayCloneCodeGen.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ArrayCloneCodeGen.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ArrayCloneCodeGen.java	1.7 07/05/05
+ * @test
  * @bug 4267335
  * @summary Verify that code generated for Array.clone() with -target 1.2 passes verifier.
  * @author maddox
--- a/j2se/test/tools/javac/BadAnnotation.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/BadAnnotation.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)BadAnnotation.java	1.6 07/05/05
+ * @test
  * @bug 5014305
  * @summary Malformed annotation type with varargs parameter crashes javac
  *
--- a/j2se/test/tools/javac/BadBreak.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/BadBreak.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)BadBreak.java	1.6 07/05/05
+ * @test
  * @bug 4035335
  * @summary Incorrect dead code analysis when break statements break
  * themselves.
--- a/j2se/test/tools/javac/BadCovar.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/BadCovar.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BadCovar.java	1.9 07/05/05
+ * @test
  * @bug 5007379
  * @summary Compiler allows inheritance of multiple methods with unrelated return types
  * @author gafter
--- a/j2se/test/tools/javac/BadHexConstant.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/BadHexConstant.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BadHexConstant.java	1.6 07/05/05
+ * @test
  * @bug 4049982
  * @summary Compiler permitted invalid hex literal.
  * @author turnidge
--- a/j2se/test/tools/javac/BadOptimization/DeadCode1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/BadOptimization/DeadCode1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DeadCode1.java	1.6 07/05/05
+ * @test
  * @bug 4057345 4120016 4120014
  * @summary try-catch 1:  Verify that overzealous dead-code elimination no
  * longer removes live code.
--- a/j2se/test/tools/javac/BadOptimization/DeadCode2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/BadOptimization/DeadCode2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DeadCode2.java	1.6 07/05/05
+ * @test
  * @bug 4057345 4120016 4120014
  * @summary try-catch 2:  Verify that overzealous dead-code elimination no
  * longer removes live code.
--- a/j2se/test/tools/javac/BadOptimization/DeadCode3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/BadOptimization/DeadCode3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DeadCode3.java	1.6 07/05/05
+ * @test
  * @bug 4057345 4120016 4120014
  * @summary final void function:  Verify that overzealous dead-code elimination
  * no longer removes live code.
--- a/j2se/test/tools/javac/BadOptimization/DeadCode4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/BadOptimization/DeadCode4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DeadCode4.java	1.6 07/05/05
+ * @test
  * @bug 4057345 4120016 4120014
  * @summary static init:  Verify that overzealous dead-code elimination no
  * longer removes live code.
--- a/j2se/test/tools/javac/BadOptimization/DeadCode5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/BadOptimization/DeadCode5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DeadCode5.java	1.6 07/05/05
+ * @test
  * @bug 4136312 4073244
  * @summary init:  Verify that overzealous dead-code elimination no
  * longer removes live code.
--- a/j2se/test/tools/javac/BadOptimization/DeadCode6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/BadOptimization/DeadCode6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DeadCode6.java	1.6 07/05/05
+ * @test
  * @bug 4073244
  * @summary nested classes:  Verify that overzealous dead-code elimination no
  * longer removes live code.
--- a/j2se/test/tools/javac/BadOptimization/Switch1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/BadOptimization/Switch1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Switch1.java	1.6 07/05/05
+ * @test
  * @bug 4099995 4118025
  * @summary Bad optimization of "switch" statement
  * @author dps
--- a/j2se/test/tools/javac/BadOptimization/Switch2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/BadOptimization/Switch2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Switch2.java	1.6 07/05/05
+ * @test
  * @bug 4099995 4118025
  * @summary Bad optimization of "switch" statement
  * @author dps
--- a/j2se/test/tools/javac/BoolArray.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/BoolArray.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BoolArray.java	1.6 07/05/05
+ * @test
  * @bug 4832887
  * @summary NPE from com.sun.tools.javac.v8.comp.Flow.checkInit in Mantis beta
  * @author gafter
--- a/j2se/test/tools/javac/BoundClassError.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/BoundClassError.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BoundClassError.java	1.6 07/05/05
+ * @test
  * @bug 4980352
  * @summary Verify compiler doesn't throw a NullPointerException when compiling.
  * @author tball
--- a/j2se/test/tools/javac/BreakAcrossClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/BreakAcrossClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BreakAcrossClass.java	1.6 07/05/05
+ * @test
  * @bug 4407643
  * @summary javac throws NullPointerException for break to label outside of class
  * @author gafter
--- a/j2se/test/tools/javac/Capture.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Capture.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Capture.java	1.7 07/05/05
+ * @test
  * @bug 4441338 4994508
  * @summary Captured variable synthetic parameters should be passed before explicit params.
  * @author gafter
--- a/j2se/test/tools/javac/CaptureInSubtype.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/CaptureInSubtype.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CaptureInSubtype.java	1.8 07/05/05
+ * @test
  * @bug 5044157
  * @summary type system loophole in wildcard substitution
  * @author Gilad Bracha
--- a/j2se/test/tools/javac/CascadedInnerNewInstance.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/CascadedInnerNewInstance.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 1.8 07/05/05
+ * @test
  * @bug 4030426
  * @summary Compiler should accept non-identifier expressions as
  * the outer instance in a 'new' expression for an inner class.
--- a/j2se/test/tools/javac/CastInterface2Array.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/CastInterface2Array.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastInterface2Array.java	1.7 07/05/05
+ * @test
  * @bug 4242396 4254264
  * @summary Verify that a compatible interface can be cast to an array type.
  * @author maddox
--- a/j2se/test/tools/javac/ClassCycle/ClassCycle1a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassCycle/ClassCycle1a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ClassCycle1a.java	1.6 07/05/05
+ * @test
  * @bug 4500240
  * @summary javac throws StackOverflowError for recursive inheritance
  *
--- a/j2se/test/tools/javac/ClassCycle/ClassCycle1b.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassCycle/ClassCycle1b.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,8 +22,6 @@
  */
 
 /*
- * @(#)ClassCycle1b.java	1.6 07/05/05
- * 
  * Auxiliary source file for ClassCycle1a.
  */
 
--- a/j2se/test/tools/javac/ClassCycle/ClassCycle2a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassCycle/ClassCycle2a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ClassCycle2a.java	1.6 07/05/05
+ * @test
  * @bug 4500240
  * @summary javac throws StackOverflowError for recursive inheritance
  *
--- a/j2se/test/tools/javac/ClassCycle/ClassCycle2b.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassCycle/ClassCycle2b.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,8 +22,6 @@
  */
 
 /*
- * @(#)ClassCycle2b.java	1.6 07/05/05
- * 
  * Auxiliary source file for ClassCycle2a.
  */
 
--- a/j2se/test/tools/javac/ClassCycle/ClassCycle3a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassCycle/ClassCycle3a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ClassCycle3a.java	1.6 07/05/05
+ * @test
  * @bug 4497044
  * @summary java.lang.StackOverflowError for cyclic inheritance
  *
--- a/j2se/test/tools/javac/ClassCycle/ClassCycle3b.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassCycle/ClassCycle3b.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,8 +22,6 @@
  */
 
 /*
- * @(#)ClassCycle3b.java	1.6 07/05/05
- * 
  * Auxiliary source file for ClassCycle3a.
  */
 
--- a/j2se/test/tools/javac/ClassFileModifiers/ClassModifiers.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassFileModifiers/ClassModifiers.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 07/05/05 @(#)ClassModifiers.java	1.12
+ * @test
  * @bug 4109894 4239646 4785453
  * @summary Verify that class modifiers bits written into class
  * file are correct, including those within InnerClasses attributes.
--- a/j2se/test/tools/javac/ClassFileModifiers/MemberModifiers.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassFileModifiers/MemberModifiers.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)MemberModifiers.java	1.12 07/05/05
+ * @test
  * @bug 4249112 4785453
  * @summary Verify that implicit member modifiers are set correctly.
  *
--- a/j2se/test/tools/javac/ClassIsAbstract.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassIsAbstract.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ClassIsAbstract.java	1.8 07/05/05
+ * @test
  * @bug 4110534
  * @summary The fix for 1240831 broke the compiler.  It should
  *          report that class Abs cannot be instantiated.
--- a/j2se/test/tools/javac/ClassLit.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassLit.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ClassLit.java	1.6 07/05/05
+ * @test
  * @bug 4884387
  * @summary Use ldc instruction for class literals
  * @author gafter
--- a/j2se/test/tools/javac/ClassLiterals/ClassLiteralHelperContext.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassLiterals/ClassLiteralHelperContext.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ClassLiteralHelperContext.java	1.8 07/05/05
+ * @test
  * @bug 4106051
  * @summary A helper method and cache cell should be defined for
  * every class containing a given class literal, ignoring any
--- a/j2se/test/tools/javac/ClassLiterals/InitializeOuter.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassLiterals/InitializeOuter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InitializeOuter.java	1.8 07/05/05
+ * @test
  * @bug 4401576
  * @summary Using a class literal causes outermost class to be initialized early
  * @author gafter
--- a/j2se/test/tools/javac/ClassLiterals/InitializeTarget.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassLiterals/InitializeTarget.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InitializeTarget.java	1.8 07/05/05
+ * @test
  * @bug 4468823
  * @summary class literal causes the referenced class to be initialized
  * @author gafter
--- a/j2se/test/tools/javac/ClassLiterals/InnerClassLiterals.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassLiterals/InnerClassLiterals.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,6 @@
  */
 
 /*
- * 07/05/05 @(#)InnerClassLiterals.java	1.6
  * @bug 4030384
  * @summary Verify inner class can be used in class literal.
  * Also includes a few other sanity checks.
--- a/j2se/test/tools/javac/ClassLiterals/LiteralInterfaceImpl.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassLiterals/LiteralInterfaceImpl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,6 @@
  */
 
 /*
- * 07/05/05 @(#)LiteralInterfaceImpl.java	1.7
  * @bug 4055017
  * @summary Test use of class literals within interfaces.
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/ClassLiterals/LiteralInterface_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassLiterals/LiteralInterface_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,8 +22,6 @@
  */
 
 /*
- * 07/05/05 @(#)LiteralInterface_1.java	1.7
- *
  * Auxiliary file for "LiteralInterfaceImpl.java".
  */
 
--- a/j2se/test/tools/javac/ClassLiterals/LiteralInterface_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassLiterals/LiteralInterface_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,8 +22,6 @@
  */
 
 /*
- * 07/05/05 @(#)LiteralInterface_2.java	1.7
- *
  * Auxiliary file for "LiteralInterfaceImpl.java".
  */
 
--- a/j2se/test/tools/javac/ClassLiterals/LiteralInterface_3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassLiterals/LiteralInterface_3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,8 +22,6 @@
  */
 
 /*
- * 07/05/05 @(#)LiteralInterface_3.java	1.7
- *
  * Auxiliary file for "LiteralInterfaceImpl.java".
  */
 
--- a/j2se/test/tools/javac/ClassLiterals/evalinit/ClassLiteralEvalInit.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassLiterals/evalinit/ClassLiteralEvalInit.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ClassLiteralEvalInit.java	1.6 07/05/05
+ * @test
  * @bug 4256830
  * @summary Check that references to TYPE fields generated during the translation
  * of class literals are handled correctly even if the wrapper classes haven't yet
--- a/j2se/test/tools/javac/ClassLiterals/evalinit/java/lang/Integer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassLiterals/evalinit/java/lang/Integer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)Integer.java	1.6 07/05/05
- */
-
 // Dummy java.lang.Integer
 
 package java.lang;
--- a/j2se/test/tools/javac/ClassLiterals/p1/C.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassLiterals/p1/C.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,9 +22,7 @@
  */
 
 /*
- * @(#)C.java	1.6 07/05/05
- *
- * Auxilliary file for ClassLiteralHelperContext test.
+ * Auxiliary file for ClassLiteralHelperContext test.
  * (4106051)
  */
 
--- a/j2se/test/tools/javac/ClassLiterals/p1/SuperClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassLiterals/p1/SuperClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,9 +22,7 @@
  */
 
 /*
- * @(#)SuperClass.java	1.6 07/05/05
- *
- * Auxilliary file for ClassLiteralHelperContext test.
+ * Auxiliary file for ClassLiteralHelperContext test.
  * (4106051)
  */
 
--- a/j2se/test/tools/javac/ClassModifiers/InterfaceAndInnerClsCtor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassModifiers/InterfaceAndInnerClsCtor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)InterfaceAndInnerClsCtor.java	1.6 07/05/05
+ * @test
  * @bug 4221648
  * @summary If an interface has an inner class, the constructor for that inner
  * class must be accessible to the interface, regardless of whether it is 
--- a/j2se/test/tools/javac/ClassPathTest/ClassPathTest.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassPathTest/ClassPathTest.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -24,7 +24,7 @@
 #
 
 
-# @test @(#)ClassPathTest.sh	1.10 07/07/18
+# @test
 # @bug 4241229 4785453
 # @summary Test -classpath option and classpath defaults.
 # @author maddox
--- a/j2se/test/tools/javac/ClassPathTest/ClassPathTest1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassPathTest/ClassPathTest1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,9 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)ClassPathTest1.java	1.6 07/05/05
- */
 import pkg.*;
 
 public class ClassPathTest1 {
--- a/j2se/test/tools/javac/ClassPathTest/ClassPathTest2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassPathTest/ClassPathTest2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,9 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)ClassPathTest2.java	1.6 07/05/05
- */
 import pkg.*;
 
 public class ClassPathTest2 {
--- a/j2se/test/tools/javac/ClassPathTest/ClassPathTest3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassPathTest/ClassPathTest3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,9 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)ClassPathTest3.java	1.6 07/05/05
- */
 import pkg.*;
 
 public class ClassPathTest3 {
--- a/j2se/test/tools/javac/ClassPathTest/bar/pkg/ClassPathTestAux2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassPathTest/bar/pkg/ClassPathTestAux2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,9 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)ClassPathTestAux2.java	1.6 07/05/05
- */
 package pkg;
 
 public class ClassPathTestAux2 {}
--- a/j2se/test/tools/javac/ClassPathTest/foo/pkg/ClassPathTestAux1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassPathTest/foo/pkg/ClassPathTestAux1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,9 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)ClassPathTestAux1.java	1.6 07/05/05
- */
 package pkg;
 
 public class ClassPathTestAux1 {}
--- a/j2se/test/tools/javac/ClassPathTest/pkg/ClassPathTestAux3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassPathTest/pkg/ClassPathTestAux3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,9 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)ClassPathTestAux3.java	1.6 07/05/05
- */
 package pkg;
 
 public class ClassPathTestAux3 {}
--- a/j2se/test/tools/javac/ClassToTypeParm.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ClassToTypeParm.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ClassToTypeParm.java	1.6 07/05/05
+ * @test
  * @bug 4948144
  * @summary Generics: assignment of Class to type parm's default should elicit error
  * @author never
--- a/j2se/test/tools/javac/CloneableProblem.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/CloneableProblem.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CloneableProblem.java	1.6 07/05/05
+ * @test
  * @bug 4047816
  * @summary certain inheritance patterns involving methods defined in
  *          Object used to cause spurious error messages.
--- a/j2se/test/tools/javac/Closure1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Closure1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Closure1.java	1.9 07/05/05
+ * @test
  * @bug 4030374
  * @summary Initialization of up-level links, immediately after super(), occurs too late.
  * @author gafter
--- a/j2se/test/tools/javac/Closure2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Closure2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Closure2.java	1.8 07/05/05
+ * @test
  * @bug 4030374
  * @summary Initialization of up-level links, immediately after super(), occurs too late.
  * @author gafter
--- a/j2se/test/tools/javac/Closure3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Closure3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Closure3.java	1.10 07/05/05
+ * @test
  * @bug 4030374
  * @summary Initialization of up-level links, immediately after super(), occurs too late.
  * @author gafter
--- a/j2se/test/tools/javac/Closure4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Closure4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Closure4.java	1.9 07/05/05
+ * @test
  * @bug 4030374
  * @summary Initialization of up-level links, immediately after super(), occurs too late.
  * @author gafter
--- a/j2se/test/tools/javac/Closure5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Closure5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Closure5.java	1.7 07/05/05
+ * @test
  * @bug 4416605
  * @summary Incorrect order for initializers in nested class
  * @author gafter
--- a/j2se/test/tools/javac/Closure6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Closure6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Closure6.java	1.6 07/05/05
+ * @test
  * @bug 4661758
  * @summary crash when anonymous static local in super() accesses enclosing variable
  * @author gafter
--- a/j2se/test/tools/javac/CompoundBox.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/CompoundBox.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CompoundBox.java	1.6 07/05/05
+ * @test
  * @bug 4960369
  * @summary drop compound boxing operations
  * @author gafter
--- a/j2se/test/tools/javac/ConditionalArgTypes_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ConditionalArgTypes_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ConditionalArgTypes_1.java	1.9 07/05/05
+ * @test
  * @bug 4312781 4881179 4949543
  * @summary Verify that both branches of a conditional expression must agree in type.
  * @author maddox
--- a/j2se/test/tools/javac/ConditionalArgTypes_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ConditionalArgTypes_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ConditionalArgTypes_2.java	1.9 07/05/05
+ * @test
  * @bug 4312781 4881179 4949543
  * @summary Verify that both branches of a conditional expression must agree in type.
  * @author maddox
--- a/j2se/test/tools/javac/ConditionalClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ConditionalClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ConditionalClass.java	1.6 07/05/05
+ * @test
  * @bug 4949627
  * @summary javac crashes on code for new rule for semantics of ? without -source 1.5
  * @author gafter
--- a/j2se/test/tools/javac/ConditionalInline.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ConditionalInline.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ConditionalInline.java	1.7 07/05/05
+ * @test
  * @bug 4069861
  * @summary The compiler got a null pointer exception on code like the
  *          following.
--- a/j2se/test/tools/javac/ConditionalWithVoid.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ConditionalWithVoid.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ConditionalWithVoid.java	1.6 07/05/05
+ * @test
  * @bug 4974927
  * @summary The compiler was allowing void types in its parsing of conditional expressions.
  * @author tball
--- a/j2se/test/tools/javac/ConstBoolAppend.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ConstBoolAppend.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ConstBoolAppend.java	1.8 07/05/05
+ * @test
  * @bug 4102672
  * @summary When a constant boolean expression was appended to a
  *          constant string, the value was accidentally being converted
--- a/j2se/test/tools/javac/ConstCharAppend.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ConstCharAppend.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ConstCharAppend.java	1.8 07/05/05
+ * @test
  * @bug 4103959
  * @summary When a constant character was appended to a constant string,
  *          the character was accidentally being converted into an
--- a/j2se/test/tools/javac/ConstantValues/ConstValInit.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ConstantValues/ConstValInit.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ConstValInit.java	1.6 07/05/05
+ * @test
  * @bug 4253590
  * @summary Verify that non-static constant fields are initialized correctly.
  *          Also, while a runtime initialization is required, verify that
--- a/j2se/test/tools/javac/ConstantValues/ConstValInlining.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ConstantValues/ConstValInlining.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ConstValInlining.java	1.11 07/05/05
+ * @test
  * @bug 4253590 4255513 4115099
  * @summary Verify that non-static fields with a ConstValue attribute inlined only when used as a simple name.
  * @author maddox, gafter (adapted from leo's bug report)
--- a/j2se/test/tools/javac/CyclicInheritance.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/CyclicInheritance.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test 1.13 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4018525 4059072 4277274 4785453
  * @summary Test that recursive 'extends' and 'implements' clauses are detected
  * and disallowed.
--- a/j2se/test/tools/javac/CyclicInheritance2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/CyclicInheritance2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 1.6 07/05/05
+ * @test
  * @bug 4781830
  * @summary incorrect cyclic inheritance error versus name hiding
  *
--- a/j2se/test/tools/javac/CyclicInheritance4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/CyclicInheritance4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 1.6 07/05/05
+ * @test
  * @bug 4781830
  * @summary incorrect cyclic inheritance error versus name hiding
  *
--- a/j2se/test/tools/javac/CyclicInheritance6/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/CyclicInheritance6/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.6 07/05/05
+ * @test
  * @summary Test for spurious cyclic inheritance due to import
  * @author Todd Turnbridge
  *
--- a/j2se/test/tools/javac/CyclicScoping/CyclicScoping_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/CyclicScoping/CyclicScoping_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CyclicScoping_1.java	1.6 07/05/05
+ * @test
  * @bug 4257805
  * @summary Verify detection of cyclically-scoped interface.
  * @author maddox
--- a/j2se/test/tools/javac/CyclicScoping/CyclicScoping_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/CyclicScoping/CyclicScoping_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CyclicScoping_2.java	1.6 07/05/05
+ * @test
  * @bug 4254215
  * @summary Verify rejection of illegal cyclically-scoped class.
  * @author maddox
--- a/j2se/test/tools/javac/DeadInnerClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DeadInnerClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DeadInnerClass.java	1.7 07/05/05
+ * @test
  * @bug 4059492
  * @summary The compiler crashed when it encountered inner classes inside
  *          of dead code which contained uplevel references.
--- a/j2se/test/tools/javac/DeclarationStatementInline.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DeclarationStatementInline.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DeclarationStatementInline.java	1.8 07/05/05
+ * @test
  * @bug 4073997
  * @summary The compiler used to crash when it tried to "inline" a
  *          DeclarationStatement.
--- a/j2se/test/tools/javac/DeepStringConcat.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DeepStringConcat.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DeepStringConcat.java	1.6 07/05/05
+ * @test
  * @bug 4496697
  * @summary Parser.foldStrings() should use iteration instead of recursion.
  * @author gafter
--- a/j2se/test/tools/javac/DefiniteAssignment/ConstantInfiniteWhile.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/ConstantInfiniteWhile.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ConstantInfiniteWhile.java	1.6 07/05/05
+ * @test
  * @bug 4053875
  * @summary Verify correct treatment of '|', '&', and '^' in constant expression
  *          controlling loop. No 'return' statements are necessary, as the loops
--- a/j2se/test/tools/javac/DefiniteAssignment/DABlock.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DABlock.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DABlock.java	1.6 %E
+ * @test %E
  * @bug 4398553
  * @summary The compiler sometimes incorrectly reused bits when computing DA/DU
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/DALoop1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DALoop1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DALoop1.java	1.6 07/05/05
+ * @test
  * @bug 4848018
  * @summary REGRESSION: NullPointerException in Flow.visitTry(Flow.java:873)
  * @author gafter
--- a/j2se/test/tools/javac/DefiniteAssignment/DASwitch.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DASwitch.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DASwitch.java	1.6 07/05/05
+ * @test
  * @bug 4695463
  * @summary DA versus switch: javac allows reference to uninitialized variable
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/DUAssert.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DUAssert.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DUAssert.java	1.7 %E
+ * @test %E
  * @bug 4478838 4533580
  * @summary Check correct handling of DU in assert statements
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/DUBeforeDefined1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DUBeforeDefined1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DUBeforeDefined1.java	1.6 07/05/05
+ * @test
  * @bug 4708676
  * @summary Compiler assertion failure with forward reference
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/DUBeforeDefined2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DUBeforeDefined2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DUBeforeDefined2.java	1.6 07/05/05
+ * @test
  * @bug 4708676
  * @summary Compiler assertion failure with forward reference
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/DUParam1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DUParam1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DUParam1.java	1.6 07/05/05
+ * @test
  * @bug 4533915
  * @summary javac should not analyze final parameters for definite assignment status
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/DUParam2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DUParam2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DUParam2.java	1.6 07/05/05
+ * @test
  * @bug 4533915
  * @summary javac should not analyze final parameters for definite assignment status
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/DUSwitch.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DUSwitch.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DUSwitch.java	1.7 07/05/05
+ * @test
  * @bug 4452153
  * @summary Check correct handling of DU in switch statements
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/DUSwitch2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DUSwitch2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DUSwitch2.java	1.6 07/05/05
+ * @test
  * @bug 4642819
  * @summary definite assignment versus switch
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/DUTry.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DUTry.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DUTry.java	1.6 %E
+ * @test %E
  * @bug 4458717
  * @summary Check correct handling of DU in try statements
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterIf_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterIf_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignAfterIf_1.java	1.6 %E
+ * @test %E
  * @bug 4094353
  * @summary Verify definite assignment state following one-armed if-statement with constant 'true'.
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterIf_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterIf_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignAfterIf_2.java	1.6 %E
+ * @test %E
  * @bug 4094353
  * @summary Verify definite assignment state following one-armed if-statement with constant 'false'.
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterThis_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterThis_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 1.16 07/05/05
+ * @test
  * @bug 4087865 4277291
  * @summary Verify definite assignment of blank finals after 'this(...)'
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterThis_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterThis_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 1.9 07/05/05
+ * @test
  * @bug 4087865
  * @summary Verify definite assignment of blank finals after 'this(...)'
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterTry1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterTry1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)DefAssignAfterTry1.java	1.8 07/05/05
+ * @test
  * @bug 4240487
  * @summary Verify that we keep track of init/uninits in Try statement
  * without finalizer.
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterTry2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterTry2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)DefAssignAfterTry2.java	1.8 07/05/05
+ * @test
  * @bug 4240487
  * @summary Verify that we keep track of init/uninits in Try statement
  * without finalizer.
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterTry3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignAfterTry3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)DefAssignAfterTry3.java	1.8 07/05/05
+ * @test
  * @bug 4240487
  * @summary Verify that we keep track of init/uninits in Try statement
  * without finalizer.
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignBoolean_1.java	1.6 07/05/05
+ * @test
  * @bug 4262168
  * @summary Verify that certain unverifiable boolean expressions fail DA test.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_10.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_10.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignBoolean_10.java	1.6 07/05/05
+ * @test
  * @bug 4262168
  * @summary Verify that certain unverifiable boolean expressions fail DA test.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_11.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_11.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignBoolean_11.java	1.7 07/05/05
+ * @test
  * @bug 4262168 6348328
  * @summary Verify that the valid boolean expression compiles.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_12.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_12.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignBoolean_12.java	1.7 07/05/05
+ * @test
  * @bug 4262168 6348328
  * @summary Verify that the valid boolean expression compiles.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_13.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_13.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignBoolean_13.java	1.7 07/05/05
+ * @test
  * @bug 4262168 6348328
  * @summary Verify that the valid boolean expression compiles.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_14.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_14.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignBoolean_14.java	1.7 07/05/05
+ * @test
  * @bug 4262168 6348328
  * @summary Verify that the valid boolean expression compiles.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_15.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_15.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,6 @@
  */
 
 /*
- * @(#)DefAssignBoolean_15.java	1.6 07/05/05
  * @bug 4262168
  * @summary Verify that certain unverifiable boolean expressions fail DA test.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_16.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_16.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,6 @@
  */
 
 /*
- * @(#)DefAssignBoolean_16.java	1.6 07/05/05
  * @bug 4262168
  * @summary Verify that certain unverifiable boolean expressions fail DA test.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignBoolean_2.java	1.6 07/05/05
+ * @test
  * @bug 4262168
  * @summary Verify that certain unverifiable boolean expressions fail DA test.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignBoolean_3.java	1.6 07/05/05
+ * @test
  * @bug 4262168
  * @summary Verify that certain unverifiable boolean expressions fail DA test.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignBoolean_4.java	1.6 07/05/05
+ * @test
  * @bug 4262168
  * @summary Verify that certain unverifiable boolean expressions fail DA test.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignBoolean_5.java	1.6 07/05/05
+ * @test
  * @bug 4262168
  * @summary Verify that certain unverifiable boolean expressions fail DA test.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignBoolean_6.java	1.6 07/05/05
+ * @test
  * @bug 4262168
  * @summary Verify that certain unverifiable boolean expressions fail DA test.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_7.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_7.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignBoolean_7.java	1.6 07/05/05
+ * @test
  * @bug 4262168
  * @summary Verify that certain unverifiable boolean expressions fail DA test.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_8.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_8.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignBoolean_8.java	1.6 07/05/05
+ * @test
  * @bug 4262168
  * @summary Verify that certain unverifiable boolean expressions fail DA test.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_9.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_9.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignBoolean_9.java	1.6 07/05/05
+ * @test
  * @bug 4262168
  * @summary Verify that certain unverifiable boolean expressions fail DA test.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignCond.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignCond.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignCond.java	1.7 07/05/05
+ * @test
  * @bug 4354393 4402005
  * @summary Verify correct treatment and code gen for ?: definite assignment
  * @author gafter
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignConstantBoolean.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignConstantBoolean.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignConstantBoolean.java	1.6 07/05/05
+ * @test
  * @bug 4304751
  * @summary Verify correct treatment of boolean constant expressions with '|'. "&', and '^'.
  * @author maddox
--- a/j2se/test/tools/javac/DefiniteAssignment/DefAssignNestedArg.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/DefAssignNestedArg.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DefAssignNestedArg.java	1.6 07/05/05
+ * @test
  * @bug 4306909
  * @summary Verify bug fix for 4306909
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/T4704365.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/T4704365.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4704365.java	1.6 07/05/05
+ * @test
  * @bug 4704365
  * @summary definite assignment status within the case expression
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/T4717164.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/T4717164.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4717164.java	1.6 07/05/05
+ * @test
  * @bug 4717164
  * @summary missing catch not reachable error when nested try-finally returns in finally
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/T4717165.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/T4717165.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4717165.java	1.6 07/05/05
+ * @test
  * @bug 4717165
  * @summary when can a statement complete normally? (break&continue versus finally)
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/T4718134.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/T4718134.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4718134.java	1.6 07/05/05
+ * @test
  * @bug 4718134
  * @summary DA/DU analysis vs break/continue vs finally that cannot complete normally
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/T4718142.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/T4718142.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4718142.java	1.6 07/05/05
+ * @test
  * @bug 4718142
  * @summary DU analysis not conservative for try-finally
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/T4718142a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/T4718142a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4718142a.java	1.6 07/05/05
+ * @test
  * @bug 4718142
  * @summary DU analysis not conservative for try-finally
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/T4718708.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/T4718708.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4718708.java	1.6 07/05/05
+ * @test
  * @bug 4718708
  * @summary bug in DU analysis of while loop
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/T4720379.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/T4720379.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4720379.java	1.6 07/05/05
+ * @test
  * @bug 4720379
  * @summary DA/DU versus assignment in false for loop condition
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/T4720751.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/T4720751.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4720751.java	1.6 07/05/05
+ * @test
  * @bug 4720751
  * @summary DU analysis for loops requires two passes
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/T4721062a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/T4721062a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4721062a.java	1.6 07/05/05
+ * @test
  * @bug 4721062
  * @summary DA treatment of return statements in constructors
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/T4721062b.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/T4721062b.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4721062b.java	1.6 07/05/05
+ * @test
  * @bug 4721062
  * @summary DA treatment of return statements in constructors
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/T4721076.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/T4721076.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4721076.java	1.6 07/05/05
+ * @test
  * @bug 4721076
  * @summary DU analysis for loop with break
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/T4721998.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/T4721998.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4721998.java	1.6 07/05/05
+ * @test
  * @bug 4721998
  * @summary JLS2: DA specs too conservative for break/continue/return out of try-finally
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/T4725725.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/T4725725.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4725725.java	1.6 07/05/05
+ * @test
  * @bug 4725725
  * @summary missing DA error in anonymous ctor
  * @author Neal Gafter (gafter)
--- a/j2se/test/tools/javac/DefiniteAssignment/ThrowBeforeTryFinally.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/ThrowBeforeTryFinally.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ThrowBeforeTryFinally.java	1.6 07/05/05
+ * @test
  * @bug 4696927
  * @summary spurious unthrown exception error when throw precedes try-finally
  * @author gafter
--- a/j2se/test/tools/javac/DefiniteAssignment/UncaughtException.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DefiniteAssignment/UncaughtException.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UncaughtException.java	1.6 07/05/05
+ * @test
  * @bug 4053998
  * @summary Compiler used to not notice the uncaught checked exception.
  * @author turnidge
--- a/j2se/test/tools/javac/DepParam.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DepParam.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DepParam.java	1.8 07/05/05
+ * @test
  * @bug 5003983 5109712
  * @summary REGRESSION: documentation comment with deprecated tag
  * @author gafter
--- a/j2se/test/tools/javac/Digits.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Digits.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)Digits.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 6183529
  * @summary javac gives warnings instead of errors on non-ASCII digits
  * @compile/fail/ref=Digits.out -XDstdout -XDrawDiagnostics Digits.java
--- a/j2se/test/tools/javac/DivByZero.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DivByZero.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DivByZero.java	1.7 07/05/05
+ * @test
  * @bug 4019300 4019304 4089107
  * @summary The compiler did not allow division by a known constant zero.
  * @compile DivByZero.java
--- a/j2se/test/tools/javac/DuplicateClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DuplicateClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DuplicateClass.java	1.8 07/05/05
+ * @test
  * @bug 4531500
  * @summary Cascade of problems from duplicate class can cause compiler crash.
  * @author gafter
--- a/j2se/test/tools/javac/DuplicateClass2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DuplicateClass2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DuplicateClass2.java	1.6 07/05/05
+ * @test
  * @bug 4643436
  * @summary avoid recompiling when duplicate source specified on command line
  * @author gafter
--- a/j2se/test/tools/javac/DuplicateImport.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/DuplicateImport.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DuplicateImport.java	1.7 07/05/05
+ * @test
  * @bug 4093217
  * @summary Duplicate import-on-demand declarations should be no-ops.
  * @author turnidge
--- a/j2se/test/tools/javac/EOI.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/EOI.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test %W% %E%
+ * @test
  * @bug 5016879
  * @summary REGRESSION: translation unit ending in identifier crashes javac
  * @author gafter
@@ -31,4 +31,3 @@
  */
 
 class foobar {}
-foobar
\ No newline at end of file
--- a/j2se/test/tools/javac/EarlyAssert.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/EarlyAssert.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)EarlyAssert.java	1.7 07/05/05
+ * @test
  * @bug 4402864
  * @summary Verify that assertions are enabled before the class is initialized 
  * and not thereafter
--- a/j2se/test/tools/javac/EmptyArray.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/EmptyArray.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)EmptyArray.java	1.6 07/05/05
+ * @test
  * @bug 4396418
  * @summary Empty array initializer with comma
  * @author gafter
--- a/j2se/test/tools/javac/EmptyBreak.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/EmptyBreak.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)EmptyBreak.java	1.6 07/05/05
+ * @test
  * @bug 4238511
  * @summary Empty "default/case" statements should not cause the compiler to crash.
  *
--- a/j2se/test/tools/javac/EmptyDocComments.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/EmptyDocComments.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)EmptyDocComments.java	1.9 07/05/05
+ * @test
  * @bug 4160204 4234488
  * @summary Create empty javadoc comments and verify that javac does not crash.
  * @compile EmptyDocComments.java
--- a/j2se/test/tools/javac/EmptySwitch.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/EmptySwitch.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)EmptySwitch.java	1.6 07/05/05
+ * @test
  * @bug 4740997
  * @summary switch statement with empty body
  * @author gafter
--- a/j2se/test/tools/javac/EnclosingAccessCheck.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/EnclosingAccessCheck.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)EnclosingAccessCheck.java	1.6 07/05/05
+ * @test
  * @bug 4143715
  * @summary Compiler should diagnose attempt to access a member of a package-private
  * class contained in another package.
--- a/j2se/test/tools/javac/Enum1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Enum1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Enum1.java	1.6 07/05/05
+ * @test
  * @bug 4934060
  * @summary private enum ctor versus specialized enum constant crashes javac
  * @author gafter
--- a/j2se/test/tools/javac/ExceptionalFinally.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ExceptionalFinally.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ExceptionalFinally.java	1.6 07/05/05
+ * @test
  * @bug 4510360
  * @summary REGRESSION: Unreported exception in code with "return" in finally block
  * @author gafter
--- a/j2se/test/tools/javac/ExceptionalFinally2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ExceptionalFinally2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ExceptionalFinally2.java	1.6 07/05/05
+ * @test
  * @bug 4630634
  * @summary missing warn about exception not thrown in try block if finally can't complete
  * @author gafter
--- a/j2se/test/tools/javac/ExprQualifiedType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ExprQualifiedType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ExprQualifiedType.java	1.8 07/05/05
+ * @test
  * @bug 4347611 4440249 4508227
  * @summary Check that qualified reference to type via an expression does not crash compiler.
  * @author maddox
--- a/j2se/test/tools/javac/ExtDirs/ExtDirs.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ExtDirs/ExtDirs.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -24,7 +24,7 @@
 #
 
 
-# @test @(#)ExtDirs.sh	1.11 07/07/18
+# @test
 # @bug 4204897 4256097 4785453 4863609
 # @summary Test that '.jar' files in -extdirs are found.
 # @author maddox
--- a/j2se/test/tools/javac/ExtendArray.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ExtendArray.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)ExtendArray.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4336282 4785453
  * @summary Verify that extending an erray class does not crash the compiler.
  *
--- a/j2se/test/tools/javac/ExtendsAccess/ExtendsAccess.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ExtendsAccess/ExtendsAccess.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test 1.13 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4087314 4087314 4785453
  * @summary Test access checking within 'extends' and 'implements' clause.
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/ExtendsAccess/p/ExtendsAccess.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ExtendsAccess/p/ExtendsAccess.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,8 +22,7 @@
  */
 
 /*
- * 1.6 07/05/05
- * Auxilliary file for test for 087314.
+ * Auxiliary file for test for 087314.
  * Test access checking within 'extends' and 'implements' clause.
  *
  */
--- a/j2se/test/tools/javac/ExtendsScope.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ExtendsScope.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ExtendsScope.java	1.7 07/05/05
+ * @test
  * @bug 4402884
  * @summary javac improperly extends superclass's scope to implements clause
  * @author gafter
--- a/j2se/test/tools/javac/ExtraneousEquals.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ExtraneousEquals.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)ExtraneousEquals.java	1.6 07/05/05
+ * @test
  * @bug 5019614
  * @summary variance prototype syntax leftover
  *
--- a/j2se/test/tools/javac/FaultySignature.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/FaultySignature.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FaultySignature.java	1.7 07/05/05
+ * @test
  * @bug 4085633
  * @summary javac used to pass the uplevel arguments into insideMember's
  *          constructor in the wrong order
--- a/j2se/test/tools/javac/FinalInitializer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/FinalInitializer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FinalInitializer.java	1.6 07/05/05
+ * @test
  * @bug 4306907
  * @summary Verify absence of bug in analysis of final initializers that caused crash.
  * @author maddox
--- a/j2se/test/tools/javac/FinalInitializer_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/FinalInitializer_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FinalInitializer_2.java	1.7 07/05/05
+ * @test
  * @bug 4974917
  * @summary bogus "already initialized" error
  * @author tball
--- a/j2se/test/tools/javac/FinalIntConcatenation.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/FinalIntConcatenation.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FinalIntConcatenation.java	1.7 07/05/05
+ * @test
  * @bug 4106244
  * @summary Final ints were getting incorrectly evaluated at compile time
  *          to the value null when they were used as a part of a constant
--- a/j2se/test/tools/javac/FinalThisReference.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/FinalThisReference.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FinalThisReference.java	1.6 07/05/05
+ * @test
  * @bug 4285004
  * @summary Verify that final field can have 'this' as initializer.
  * @author maddox
--- a/j2se/test/tools/javac/FinallyWarn.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/FinallyWarn.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FinallyWarn.java	1.7 07/05/05
+ * @test
  * @bug 4821353
  * @summary new warning "finally cannot complete normally" should not be enabled by default
  * @author gafter
--- a/j2se/test/tools/javac/FlatnameClash.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/FlatnameClash.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FlatnameClash.java	1.6 07/05/05
+ * @test
  * @bug 4302890
  * @summary Verify that clash between user-defined class and
  * flatname of member class is detected.
--- a/j2se/test/tools/javac/FlatnameClash2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/FlatnameClash2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FlatnameClash2.java	1.6 07/05/05
+ * @test
  * @bug 4629327
  * @summary Compiler crash on explicit use of synthetic name for inner class.
  * @author Neal Gafter
--- a/j2se/test/tools/javac/FloatingPointChanges/BadConstructorModifiers.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/FloatingPointChanges/BadConstructorModifiers.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)BadConstructorModifiers.java	1.7 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4153038 4785453
  * @summary strictfp may not be used with constructors
  * @author David Stoutamire (dps)
--- a/j2se/test/tools/javac/FloatingPointChanges/Test.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/FloatingPointChanges/Test.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Test.java	1.7 07/05/05
+ * @test
  * @bug 4150966 4151040 4107254 4180437
  * @summary General tests of strictfp changes and reflection
  * @author David Stoutamire (dps)
--- a/j2se/test/tools/javac/FoldConditional.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/FoldConditional.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FoldConditional.java	1.6 07/05/05
+ * @test
  * @bug 4403168
  * @summary Verify correct type of result of ?: operator when constant folding occurs
  * @author gafter
--- a/j2se/test/tools/javac/ForwardReference/ForwardReference_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ForwardReference/ForwardReference_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ForwardReference_2.java	1.6 07/05/05
+ * @test
  * @bug 4312145 4307810
  * @summary Verify that forward referenced static use is rejected.
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/ForwardReference/ForwardReference_4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ForwardReference/ForwardReference_4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ForwardReference_4.java	1.6 07/05/05
+ * @test
  * @bug 4312145 4307810
  * @summary Verify that forward referenced non-static use is rejected.
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/ForwardReference/ForwardReference_5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ForwardReference/ForwardReference_5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ForwardReference_5.java	1.6 07/05/05
+ * @test
  * @bug 4312127
  * @summary Verify that forward reference checks are not applied to locals.
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/ForwardReference/UseBeforeDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ForwardReference/UseBeforeDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UseBeforeDeclaration.java	1.6 07/05/05
+ * @test
  * @bug 4459133
  * @summary Forward reference legal or illegal?
  * @author gafter
--- a/j2se/test/tools/javac/GoodCovar.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/GoodCovar.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)GoodCovar.java	1.6 07/05/05
+ * @test
  * @bug 5007379 5034529
  * @summary multiple methods inheritence
  * @author gafter
--- a/j2se/test/tools/javac/HexFloatLiterals.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/HexFloatLiterals.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)HexFloatLiterals.java	1.10 07/05/05
+ * @test
  * @bug 4920023
  * @summary add "hexadecimal floating-point literal" support to javac as per 4896828
  * @author gafter
--- a/j2se/test/tools/javac/HexThree.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/HexThree.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)HexThree.java	1.7 07/05/05
+ * @test
  * @bug 4920023
  * @summary Test hex floating-point literals
  * @author darcy
--- a/j2se/test/tools/javac/HiddenAbstractMethod/Test	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/HiddenAbstractMethod/Test	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)Test	1.1 98/01/13
+ * @test
  * @bug 1240831
  * @summary Certain classes should have been reported as abstract, but
  *          the compiler failed to detect this.  This comes up when a
--- a/j2se/test/tools/javac/IllDefinedOrderOfInit.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/IllDefinedOrderOfInit.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)IllDefinedOrderOfInit.java	1.8 07/05/05
+ * @test
  * @bug 1227855
  * @summary The order of initialization used to be inconsistent, depending
  *          on whether a value was initialized to its default value.
--- a/j2se/test/tools/javac/IllegalAnnotation.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/IllegalAnnotation.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test @(#)IllegalAnnotation.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 5012028 6384539
  * @summary javac crash when declare an annotation type illegally
  *
--- a/j2se/test/tools/javac/IllegallyOptimizedException.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/IllegallyOptimizedException.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)IllegallyOptimizedException.java	1.8 07/05/05
+ * @test
  * @bug 4022932
  * @summary NegativeArraySizeException should not be optimized away.
  * @author turnidge
--- a/j2se/test/tools/javac/ImplicitToString.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ImplicitToString.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)ImplicitToString.java	1.6 07/05/05
+ * @test
  * @bug 4244408
  * @summary toString() should be called implicitly when += is used.
  *
--- a/j2se/test/tools/javac/ImportCycle/Dummy.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ImportCycle/Dummy.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Dummy.java	1.7 07/05/05
+ * @test
  * @bug 4086139
  * @summary Cyclic need during import resolution causes compiler crash
  * @author turnidge
--- a/j2se/test/tools/javac/ImportCycle/foo/Bottom.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ImportCycle/foo/Bottom.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,9 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)Bottom.java	1.7 07/05/05
- */
 package foo;
 
 import foo.Top;
--- a/j2se/test/tools/javac/ImportCycle/foo/Bottom2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ImportCycle/foo/Bottom2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)Bottom2.java	1.7 07/05/05
- */
-
 package foo;
 
 import foo.Top2.*;
--- a/j2se/test/tools/javac/ImportCycle/foo/Middle.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ImportCycle/foo/Middle.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,9 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)Middle.java	1.10 07/05/05
- */
 package foo;
 
 public interface Middle extends Bottom { }
--- a/j2se/test/tools/javac/ImportCycle/foo/Middle2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ImportCycle/foo/Middle2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)Middle2.java	1.7 07/05/05
- */
-
 package foo;
 
 public interface Middle2 extends Bottom2 { }
--- a/j2se/test/tools/javac/ImportCycle/foo/Top.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ImportCycle/foo/Top.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)Top.java	1.7 07/05/05
- */
-
 package foo;
 
 public interface Top extends Middle { }
--- a/j2se/test/tools/javac/ImportCycle/foo/Top2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ImportCycle/foo/Top2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)Top2.java	1.7 07/05/05
- */
-
 package foo;
 
 public interface Top2 extends Middle2 { }
--- a/j2se/test/tools/javac/ImportPackagePrivateInner/Dummy.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ImportPackagePrivateInner/Dummy.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Dummy.java	1.7 07/05/05
+ * @test
  * @bug 4086815
  * @summary Package accessible inner classes were not visible to
  *          import directive in same package.
--- a/j2se/test/tools/javac/ImportPackagePrivateInner/foo/Accessee.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ImportPackagePrivateInner/foo/Accessee.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)Accessee.java	1.8 07/05/05
- */
-
 package foo;
 
 public class Accessee {
--- a/j2se/test/tools/javac/ImportPackagePrivateInner/foo/Accessor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ImportPackagePrivateInner/foo/Accessor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)Accessor.java	1.9 07/05/05
- */
-
 package foo;
 
 import foo.Accessee.Inside;
--- a/j2se/test/tools/javac/ImportUnnamed/Dummy.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ImportUnnamed/Dummy.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Dummy.java	1.6 07/05/05
+ * @test
  * @bug 4361575
  * @summary Correct scoping and diagnostics for import declarations.
  * @author gafter
--- a/j2se/test/tools/javac/InconsistentInheritedSignature.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InconsistentInheritedSignature.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InconsistentInheritedSignature.java	1.6 07/05/05
+ * @test
  * @bug 4041948
  * @summary javac previously allowed interfaces to inherit methods with
  *          inconsistent signatures.
--- a/j2se/test/tools/javac/InconsistentStack.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InconsistentStack.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InconsistentStack.java	1.7 07/05/05
+ * @test
  * @bug 4482888
  * @summary javac produces unverifiable classfile compiling conditional operator
  * @author gafter
--- a/j2se/test/tools/javac/Increment.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Increment.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Increment.java	1.8 07/05/05
+ * @test
  * @bug 4044502 4090372
  * @summary The compiler refused to parse/accept increments of
  *          parenthesized expressions.
--- a/j2se/test/tools/javac/InheritedPrivateImpl.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InheritedPrivateImpl.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InheritedPrivateImpl.java	1.6 07/05/05
+ * @test
  * @bug 4641634
  * @summary inherited private method is considered an implementation of interface method
  * @author gafter
--- a/j2se/test/tools/javac/InitializerCompletion_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InitializerCompletion_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InitializerCompletion_1.java	1.6 07/05/05
+ * @test
  * @bug 4253548
  * @summary Verify that compiler requires that instance initializers may complete normally.
  * @author maddox
--- a/j2se/test/tools/javac/InitializerCompletion_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InitializerCompletion_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InitializerCompletion_2.java	1.6 07/05/05
+ * @test
  * @bug 4253548
  * @summary Verify that compiler allows an instance initializer that may fail to complete normally
  * if it is possible that it might.
--- a/j2se/test/tools/javac/InitializerCompletion_3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InitializerCompletion_3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InitializerCompletion_3.java	1.6 07/05/05
+ * @test
  * @bug 4253548
  * @summary Verify that compiler requires that static initializers may complete normally.
  * @author maddox
--- a/j2se/test/tools/javac/InitializerCompletion_4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InitializerCompletion_4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InitializerCompletion_4.java	1.6 07/05/05
+ * @test
  * @bug 4253548
  * @summary Verify that compiler allows a static initializer that may fail to complete normally
  * if it is possible that it might.
--- a/j2se/test/tools/javac/InnerClassesAttribute/Test.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InnerClassesAttribute/Test.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Test.java	1.8 07/05/05
+ * @test
  * @bug 4070745
  * @summary The compiler used to crash when it saw a correctly-formed
  *          InnerClasses attribute in a .class file.
--- a/j2se/test/tools/javac/InnerMemberRegression.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InnerMemberRegression.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InnerMemberRegression.java	1.7 07/05/05
+ * @test
  * @bug 4082816
  * @summary In jdk1.2beta1 this causes a NullPointerException in the compiler.
  *          That is bad.  This text is part of the test for yet another bug
--- a/j2se/test/tools/javac/InnerMethSig.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InnerMethSig.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InnerMethSig.java	1.6 07/05/05
+ * @test
  * @bug 4909550
  * @summary 1.5 beta-b15 java compiler throws NPE
  * @author gafter
--- a/j2se/test/tools/javac/InnerNamedConstant_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InnerNamedConstant_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 07/05/05 @(#)InnerNamedConstant_1.java	1.6
+ * @test
  * @bug 4095568
  * @summary Allow static final variables with constant initializers
  * in inner classes.
--- a/j2se/test/tools/javac/InnerNamedConstant_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InnerNamedConstant_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test 06/11/01 @(#)InnerNamedConstant_2.java	1.6  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4095568 4277286 4785453
  * @summary Verify rejection of illegal static variables in inner classes.
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/InnerTruth.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InnerTruth.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InnerTruth.java	1.6 07/05/05
+ * @test
  * @bug 4242399
  * @summary Verify sense of boolean constants is not reversed
  * inside inner classes.
--- a/j2se/test/tools/javac/InstanceInitException_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InstanceInitException_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InstanceInitException_1.java	1.6 07/05/05
+ * @test
  * @bug 4054256
  * @summary Verify that instance initializers can throw checked exceptions.
  * @author William Maddox
--- a/j2se/test/tools/javac/InstanceInitException_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InstanceInitException_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InstanceInitException_2.java	1.6 07/05/05
+ * @test
  * @bug 4054256
  * @summary Verify that exceptions in instance initializer must be declared in all constructors.
  * @author William Maddox
--- a/j2se/test/tools/javac/InterfaceAssert.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InterfaceAssert.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InterfaceAssert.java	1.7 07/05/05
+ * @test
  * @bug 4399129
  * @summary Check that assertions compile properly when nested in an interface
  * @author gafter
--- a/j2se/test/tools/javac/InterfaceFieldParsing_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InterfaceFieldParsing_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InterfaceFieldParsing_1.java	1.6 07/05/05
+ * @test
  * @bug 4283170
  * @summary Verify that multiple variables in one inteface field declaration all have initializers.
  * @author maddox
--- a/j2se/test/tools/javac/InterfaceInInner.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InterfaceInInner.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InterfaceInInner.java	1.7 07/05/05
+ * @test
  * @bug 4063740
  * @summary Interfaces may only be declared in top level classes.
  * @author turnidge
--- a/j2se/test/tools/javac/InterfaceMemberClassModifiers.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InterfaceMemberClassModifiers.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)InterfaceMemberClassModifiers.java	1.5 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4294065 4785453
  * @summary Verify that invalid access modifiers on interface members don't cause crash.
  * @author maddox
--- a/j2se/test/tools/javac/InterfaceObjectIncompatibility.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InterfaceObjectIncompatibility.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InterfaceObjectIncompatibility.java	1.7 07/05/05
+ * @test
  * @bug 4479164
  * @summary Throws clauses incompatible with Object methods allowed in interfaces
  * @author gafter
--- a/j2se/test/tools/javac/InterfaceObjectInheritance.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InterfaceObjectInheritance.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InterfaceObjectInheritance.java	1.6 07/05/05
+ * @test
  * @bug 4526026
  * @summary javac allows access to interface members inherited protected from Object
  * @author gafter
--- a/j2se/test/tools/javac/InterfaceOverrideCheck.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InterfaceOverrideCheck.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InterfaceOverrideCheck.java	1.6 07/05/05
+ * @test
  * @bug 4312154
  * @summary Verify that overriding compatibility is checked in interfaces.
  * @author maddox
--- a/j2se/test/tools/javac/InterfaceOverrideObject.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InterfaceOverrideObject.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InterfaceOverrideObject.java	1.6 07/05/05
+ * @test
  * @summary check proper behavior when an interface overrides a method from Object
  * @author gafter
  *
--- a/j2se/test/tools/javac/InvalidIntfCast.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/InvalidIntfCast.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InvalidIntfCast.java	1.8 07/05/05
+ * @test
  * @bug 4023359 4948130
  * @summary The compiler should detect an invalid cast between interfaces.
  * @author turnidge
--- a/j2se/test/tools/javac/JsrRet.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/JsrRet.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)JsrRet.java	1.6 07/05/05
+ * @test
  * @bug 4933139
  * @summary StackOverflowError from javac
  * @author gafter
--- a/j2se/test/tools/javac/LabelHiding_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/LabelHiding_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)LabelHiding_1.java	1.6 07/05/05
+ * @test
  * @bug 4309177
  * @summary Verify that label hiding check allows label in nested class to hide outer label.
  * @author maddox
--- a/j2se/test/tools/javac/LabeledDeclaration.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/LabeledDeclaration.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)LabeledDeclaration.java	1.7 07/05/05
+ * @test
  * @bug 4039843
  * @summary The compiler should not allow labeled declarations.
  * @author turnidge
--- a/j2se/test/tools/javac/LocalClasses_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/LocalClasses_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 1.10 07/05/05
+ * @test
  * @bug 4030421 4095716
  * @summary Verify that compiler can resolve local class names.
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/LocalClasses_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/LocalClasses_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test 1.13 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4074421 4277278 4785453
  * @summary Verify that a local class cannot be redefined within its scope.
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/ManyMembers2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ManyMembers2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ManyMembers2.java	1.6 07/05/05
+ * @test
  * @bug 4498624
  * @summary compiler crashes when number of members exceeds available recursion stack depth
  * @author gafter
--- a/j2se/test/tools/javac/MemberTypeInheritance.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/MemberTypeInheritance.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)MemberTypeInheritance.java	1.6 07/05/05
+ * @test
  * @bug 4254213
  * @summary Verify that member types of classes and interfaces can be inherited.
  *
--- a/j2se/test/tools/javac/MissingInclude.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/MissingInclude.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)MissingInclude.java	1.7 07/05/05
+ * @test
  * @bug 4509051 4785453
  * @summary javac <AT>sourcefiles should catch Exception, when sourcefiles doesn't exist.
  * @author gafter
--- a/j2se/test/tools/javac/NameClash/One.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NameClash/One.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)One.java	1.7 07/05/05
+ * @test
  * @bug 4090536
  * @summary The class One exists in package a and package b.  The compiler
  *          used to report this as an ambiguity.  It should not.
--- a/j2se/test/tools/javac/NameCollision.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NameCollision.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test @(#)NameCollision.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4222327 4785453
  * @summary Interface names for classes in the same scope should not
  * cause the compiler to crash.
--- a/j2se/test/tools/javac/NameCollision2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NameCollision2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NameCollision2.java	1.6 07/05/05
+ * @test
  * @bug 4615601
  * @summary False detection of duplicate local class declaration
  * @author gafter
--- a/j2se/test/tools/javac/NestedDuplicateLabels.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NestedDuplicateLabels.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NestedDuplicateLabels.java	1.7 07/05/05
+ * @test
  * @bug 1241001
  * @summary The compiler failed to detect duplicate, nested labels.
  * @author turnidge
--- a/j2se/test/tools/javac/NestedFinallyReturn.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NestedFinallyReturn.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NestedFinallyReturn.java	1.6 07/05/05
+ * @test
  * @bug 4084230
  * @summary Return from within nested try-finally should not crash compiler.
  * 
--- a/j2se/test/tools/javac/NestedInnerClassNames.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NestedInnerClassNames.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test 1.13 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4037746 4277279 4350658 4785453
  * @summary Verify that an inner class cannot have the same simple name as an enclosing one.
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/NewGeneric.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NewGeneric.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NewGeneric.java	1.6 07/05/05
+ * @test
  * @bug 4959929
  * @summary unclear diagnostic for "new T()"
  * @author never
--- a/j2se/test/tools/javac/NoClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NoClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NoClass.java	1.7 07/05/05
+ * @test
  * @bug 4041851
  * @summary The gramamr allows java files without class or interface
  *          declarations; when the compiler encountered this, it failed
--- a/j2se/test/tools/javac/NoNoClassDefFoundErrorError.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NoNoClassDefFoundErrorError.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NoNoClassDefFoundErrorError.java	1.12 07/05/05
+ * @test
  * @bug 4313429
  * @summary Compiling <Classname>.class on CLDC crashed the compiler.
  *
--- a/j2se/test/tools/javac/NonAmbiguousField/Test	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NonAmbiguousField/Test	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)Test	1.2 98/01/21
+ * @test
  * @bug 4053724
  * @summary Certain non-ambiguous field references were reported by the
  *          compiler as ambigous.
--- a/j2se/test/tools/javac/NonStaticFieldExpr1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NonStaticFieldExpr1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,4 +1,4 @@
-/* @test @(#)NonStaticFieldExpr1.java	1.8 06/11/01  /nodynamiccopyright/
+/* @test  /nodynamiccopyright/
    @bug 4087127 4785453
    @author dps
    @summary field: instance access through types is not allowed
--- a/j2se/test/tools/javac/NonStaticFieldExpr2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NonStaticFieldExpr2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,4 +1,4 @@
-/* @test @(#)NonStaticFieldExpr2.java	1.8 06/11/01  /nodynamiccopyright/
+/* @test  /nodynamiccopyright/
    @bug 4087127 4785453
    @author dps
    @summary method: instance access through types is not allowed
--- a/j2se/test/tools/javac/NonStaticFieldExpr3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NonStaticFieldExpr3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,4 +1,4 @@
-/* @test @(#)NonStaticFieldExpr3.java	1.8 06/11/01  /nodynamiccopyright/
+/* @test  /nodynamiccopyright/
    @bug 4087127 4785453
    @author dps
    @summary class: instance access through types is not allowed
--- a/j2se/test/tools/javac/NonStaticFieldExpr4c.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NonStaticFieldExpr4c.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NonStaticFieldExpr4c.java	1.6 07/05/05
+ * @test
  * @bug 4781832
  * @summary incorrect ambiguous variable reference error
  * @author gafter
--- a/j2se/test/tools/javac/NonStaticFinalVar.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NonStaticFinalVar.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)NonStaticFinalVar.java	1.6 07/05/05
+ * @test
  * @bug 4062064 4233660
  * @summary Some references to non-static variables do not work.
  *
--- a/j2se/test/tools/javac/Null2DArray.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Null2DArray.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Null2DArray.java	1.6 07/05/05
+ * @test
  * @bug 4368664
  * @summary VerifyError when using array of arrays
  * @author gafter
--- a/j2se/test/tools/javac/NullQualifiedNew.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NullQualifiedNew.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NullQualifiedNew.java	1.6 07/05/05
+ * @test
  * @bug 4309176
  * @summary Verify exception thrown for null outer instance
  * in qualifed new instance expression.
--- a/j2se/test/tools/javac/NullQualifiedNew2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NullQualifiedNew2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NullQualifiedNew2.java	1.7 07/05/05
+ * @test
  * @bug 4725678
  * @summary null pointer check too late for qualifying expr of anon class creation
  * @author gafter
--- a/j2se/test/tools/javac/NullQualifiedSuper1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NullQualifiedSuper1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NullQualifiedSuper1.java	1.7 07/05/05
+ * @test
  * @bug 4422082
  * @summary NullPointerException missing in an explicit constructor invocation
  * @author Neal Gafter
--- a/j2se/test/tools/javac/NullQualifiedSuper2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NullQualifiedSuper2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NullQualifiedSuper2.java	1.7 07/05/05
+ * @test
  * @bug 4422082
  * @summary NullPointerException missing in an explicit constructor invocation
  * @author Neal Gafter
--- a/j2se/test/tools/javac/NullStaticQualifier.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/NullStaticQualifier.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NullStaticQualifier.java	1.7 07/05/05
+ * @test
  * @bug 4449316 4655091
  * @summary missing null pointer check in discarded subexpression
  * @author gafter
--- a/j2se/test/tools/javac/Object1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Object1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Object1.java	1.6 07/05/05
+ * @test
  * @bug 4091755
  * @summary java.lang.Object can't be redefined without crashing javac
  * @author gafter
--- a/j2se/test/tools/javac/Object2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Object2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Object2.java	1.6 07/05/05
+ * @test
  * @bug 4091755
  * @summary java.lang.Object can't be redefined without crashing javac
  * @author gafter
--- a/j2se/test/tools/javac/ObjectIncompatibleInterface.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ObjectIncompatibleInterface.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ObjectIncompatibleInterface.java	1.6 07/05/05
+ * @test
  * @bug 4479715
  * @summary compiler incorrectly rejects interface int clone();
  * @author gafter
--- a/j2se/test/tools/javac/ObjectMethodRefFromInterface.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ObjectMethodRefFromInterface.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ObjectMethodRefFromInterface.java	1.7 07/05/05
+ * @test
  * @bug 4283170
  * @summary Verify that access to member of java.lang.Object via qualification of
  * object of an interface type is handled successfully.
--- a/j2se/test/tools/javac/OuterParameter_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/OuterParameter_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)OuterParameter_1.java	1.6 07/05/05
+ * @test
  * @bug 4257961
  * @summary Check that reference to parameter from within local class is compiled correctly.
  * @author maddox
--- a/j2se/test/tools/javac/OverrideChecks/InconsistentReturn.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/OverrideChecks/InconsistentReturn.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InconsistentReturn.java	1.6 07/05/05
+ * @test
  * @bug 4041948
  * @summary javac previously allowed interfaces to inherit methods with
  *          inconsistent return types.
--- a/j2se/test/tools/javac/OverrideChecks/InterfaceImplements.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/OverrideChecks/InterfaceImplements.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)InterfaceImplements.java	1.6 07/05/05
+ * @test
  * @bug     6399361
  * @summary java.lang.Override specification should be revised
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/OverrideChecks/InterfaceOverride.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/OverrideChecks/InterfaceOverride.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)InterfaceOverride.java	1.6 07/05/05
+ * @test
  * @bug     6399361
  * @summary java.lang.Override specification should be revised
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/OverrideChecks/Private.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/OverrideChecks/Private.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Private.java	1.6 07/05/05
+ * @test
  * @bug     6399361
  * @summary java.lang.Override specification should be revised
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/OverrideChecks/StaticOverride.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/OverrideChecks/StaticOverride.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)StaticOverride.java	1.7 07/05/05
+ * @test
  * @bug 4041948 4022450
  * @summary javac previously allowed static methods to override non-static
  *          methods in some cases.
--- a/j2se/test/tools/javac/OverrideChecks/T4720356a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/OverrideChecks/T4720356a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4720356a.java	1.6 07/05/05
+ * @test
  * @bug 4720356
  * @summary compiler fails to check cross-package overriding
  * @author gafter
--- a/j2se/test/tools/javac/OverrideChecks/T4720359a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/OverrideChecks/T4720359a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4720359a.java	1.6 07/05/05
+ * @test
  * @bug 4720359
  * @summary javac fails to check cross-package hiding
  * @author gafter
--- a/j2se/test/tools/javac/OverrideChecks/T4721069.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/OverrideChecks/T4721069.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4721069.java	1.6 07/05/05
+ * @test
  * @bug 4721069
  * @summary javac allows an interface to override a final method in Object
  * @author gafter
--- a/j2se/test/tools/javac/OverrideChecks/T6326485.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/OverrideChecks/T6326485.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6326485.java	1.6 07/05/05
+ * @test
  * @bug     6326485
  * @summary Compiler does not enforce rule that interfaces may not use Override annotation
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/OverrideChecks/T6399361.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/OverrideChecks/T6399361.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6399361.java	1.6 07/05/05
+ * @test
  * @bug     6399361
  * @summary java.lang.Override specification should be revised
  * @author  Gilad Bracha
--- a/j2se/test/tools/javac/OverrideChecks/ThrowsConflict.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/OverrideChecks/ThrowsConflict.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ThrowsConflict.java	1.6 07/05/05
+ * @test
  * @bug 4022674
  * @summary Compiler should detect throws-clauses' conflict.
  * @author turnidge
--- a/j2se/test/tools/javac/OverridePosition.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/OverridePosition.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)OverridePosition.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4524388 4785453
  * @summary "attemping to assign weaker access" message doesn't give method line number
  * @author Neal Gafter
--- a/j2se/test/tools/javac/PackageClassAmbiguity/Bad.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/PackageClassAmbiguity/Bad.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Bad.java	1.10 07/05/05
+ * @test
  * @bug 4101529
  * @summary The compiler used to create class names which were the same as
  *          existing package names and vice-versa.  The compiler now checks
--- a/j2se/test/tools/javac/PackageClassClash/PackageClassClash.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/PackageClassClash/PackageClassClash.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,6 @@
  */
 
 /*
- * @(#)PackageClassClash.java	1.6 07/05/05
  * @bug 4097882
  * @summary Verify that class name can be the same as package name.
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/Parens1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Parens1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Parens1.java	1.6 07/05/05
+ * @test
  * @bug 4391330
  * @summary compiler accepted (Integer).toString(123)
  * @author gafter
--- a/j2se/test/tools/javac/Parens2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Parens2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Parens2.java	1.6 07/05/05
+ * @test
  * @bug 4408036
  * @summary Compiler accepted "(i=2);" as a valid expession statement.
  * @author gafter
--- a/j2se/test/tools/javac/Parens3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Parens3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Parens3.java	1.6 07/05/05
+ * @test
  * @bug 4394546
  * @summary get no err msg if label wrapped in parentheses
  * @author gafter
--- a/j2se/test/tools/javac/Parens4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Parens4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Parens4.java	1.6 07/05/05
+ * @test
  * @bug 4933317
  * @summary javac accepts parens in package names
  * @author gafter
--- a/j2se/test/tools/javac/ParseConditional.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ParseConditional.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ParseConditional.java	1.6 07/05/05
+ * @test
  * @bug 4092958
  * @summary The compiler was too permissive in its parsing of conditional
  *          expressions.
--- a/j2se/test/tools/javac/Paths/CompileClose.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Paths/CompileClose.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CompileClose.java	1.8 07/05/05
+ * @test
  * @bug 5071352
  * @summary Make sure compiler closes all open files on Windows
  * @author Martin Buchholz
--- a/j2se/test/tools/javac/Paths/Diagnostics.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Paths/Diagnostics.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -24,7 +24,7 @@
 #
 
 #
-# @test @(#)Diagnostics.sh	1.10 07/07/18
+# @test
 # @bug 4884487 6295519 6236704 6429613
 # @summary Test for proper diagnostics during path manipulation operations
 # @author Martin Buchholz
--- a/j2se/test/tools/javac/Paths/Help.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Paths/Help.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -24,7 +24,7 @@
 #
 
 #
-# @test @(#)Help.sh	1.6 07/07/18
+# @test
 # @bug 4940642
 # @summary Check for -help and -X flags
 # @author Martin Buchholz
--- a/j2se/test/tools/javac/Paths/MineField.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Paths/MineField.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -24,7 +24,7 @@
 #
 
 #
-# @test @(#)MineField.sh	1.7 07/07/18
+# @test
 # @bug 4758537 4809833
 # @summary Test that javac and java find files in similar ways
 # @author Martin Buchholz
--- a/j2se/test/tools/javac/Paths/Util.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Paths/Util.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,6 @@
 #
 
 # Utilities for shell tests
-# @(#)Util.sh	1.6 07/07/18
 
 : ${TESTSRC=.} ${TESTCLASSES=.}
  java="${TESTJAVA+${TESTJAVA}/bin/}java"
--- a/j2se/test/tools/javac/Paths/wcMineField.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Paths/wcMineField.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -24,7 +24,7 @@
 #
 
 #
-# @test @(#)wcMineField.sh	1.6 07/07/18
+# @test
 # @summary Test classpath wildcards for javac and java -classpath option.
 # @bug 6268383
 # @run shell/timeout=600 wcMineField.sh
--- a/j2se/test/tools/javac/PrivateLocalConstructor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/PrivateLocalConstructor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)PrivateLocalConstructor.java	1.7 07/05/05
+ * @test
  * @bug 4365809
  * @summary Incorrect access method for private constructor in local class.
  * @author gafter
--- a/j2se/test/tools/javac/PrivateUplevelConstant.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/PrivateUplevelConstant.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)PrivateUplevelConstant.java	1.6 07/05/05
+ * @test
  * @bug 4098737
  * @summary Verify that private uplevel constant access is treated as constant.
  * @author maddox
--- a/j2se/test/tools/javac/ProtectedInnerClass/ProtectedInnerClass.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ProtectedInnerClass/ProtectedInnerClass.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -21,7 +21,7 @@
 # have any questions.
 #
 
-# @test 07/07/18 @(#)ProtectedInnerClass.sh	1.14
+# @test
 # @bug 4087314 4800342
 # @summary Verify allowed access to protected class from another package.
 # @author William Maddox (maddox)
--- a/j2se/test/tools/javac/ProtectedInnerClass/ProtectedInnerClass_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ProtectedInnerClass/ProtectedInnerClass_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ProtectedInnerClass_2.java	1.6 07/05/05
+ * @test
  * @bug 4307565
  * @summary Verify that access to inaccessable protected inner class is rejected.
  * @author William Maddox (maddox)
--- a/j2se/test/tools/javac/ProtectedInnerClass/p1/ProtectedInnerClass1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ProtectedInnerClass/p1/ProtectedInnerClass1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,8 +22,7 @@
  */
 
 /*
- * @(#)ProtectedInnerClass1.java	1.9 07/05/05
- * Auxilliary file for test for 4087314.
+ * Auxiliary file for test for 4087314.
  * Verify allowed access to protected class from another package.
  * This file must be compiled prior to compiling p2.ProtectedInnerClass2.
  * It is that compilation that will either succeed or fail.
--- a/j2se/test/tools/javac/ProtectedInnerClass/p2/ProtectedInnerClass2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ProtectedInnerClass/p2/ProtectedInnerClass2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,8 +22,7 @@
  */
 
 /*
- * @(#)ProtectedInnerClass2.java	1.12 07/05/05
- * Auxilliary file for test for 4087314.
+ * Auxiliary file for test for 4087314.
  * Verify allowed access to protected class from another package.
  *
  * This file should compile and run successfully.
--- a/j2se/test/tools/javac/ProtectedInnerClass/p2/ProtectedInnerClass3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ProtectedInnerClass/p2/ProtectedInnerClass3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,8 +22,6 @@
  */
 
 /*
- * @(#)ProtectedInnerClass3.java	1.6 07/05/05 
- *
  * Auxiliary file for ProtectedInnerClass_2.java (bugid 4307565)
  */
 
--- a/j2se/test/tools/javac/QualifiedAccess/QualifiedAccess_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/QualifiedAccess/QualifiedAccess_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test @(#)QualifiedAccess_1.java	1.9 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4094658 4277296 4785453
  * @summary Test enforcement of JLS 6.6.1 and 6.6.2 rules requiring that
  * the type to which a component member belongs be accessible in qualified
--- a/j2se/test/tools/javac/QualifiedAccess/QualifiedAccess_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/QualifiedAccess/QualifiedAccess_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test @(#)QualifiedAccess_2.java	1.7 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4094658 4277300 4785453
  * @summary Test enforcement of JLS 6.6.1 and 6.6.2 rules requiring that
  * the type to which a component member belongs be accessible in qualified
--- a/j2se/test/tools/javac/QualifiedAccess/QualifiedAccess_3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/QualifiedAccess/QualifiedAccess_3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test @(#)QualifiedAccess_3.java	1.10 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4094658 4785453
  * @summary Test enforcement of JLS 6.6.1 and 6.6.2 rules requiring that
  * the type to which a component member belongs be accessible in qualified
--- a/j2se/test/tools/javac/QualifiedAccess/QualifiedAccess_4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/QualifiedAccess/QualifiedAccess_4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)QualifiedAccess_4.java	1.6 07/05/05
+ * @test
  * @bug 4094658
  * @summary Test enforcement of JLS 6.6.1 and 6.6.2 rules requiring that
  * the type to which a component member belongs be accessible in qualified
--- a/j2se/test/tools/javac/QualifiedAccess/pack1/P1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/QualifiedAccess/pack1/P1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,8 +22,6 @@
  */
 
 /**
- * 1.6 07/05/05
- *
  * Support class for QualifiedAccess tests.
  */
 
--- a/j2se/test/tools/javac/QualifiedAccess/pack1/P2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/QualifiedAccess/pack1/P2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,8 +22,6 @@
  */
 
 /*
- * 1.6 07/05/05
- *
  * Support class for QualifiedAccess tests.
  */
 
--- a/j2se/test/tools/javac/QualifiedConstant.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/QualifiedConstant.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)QualifiedConstant.java	1.6 07/05/05
+ * @test
  * @bug 4266342
  * @summary Verify that instance variable not allowed as constant qualifier.
  * @author maddox
--- a/j2se/test/tools/javac/QualifiedNew.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/QualifiedNew.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)QualifiedNew.java	1.7 07/05/05
+ * @test
  * @bug 4406966
  * @summary null qualifying inner instance creation should be error.
  * @author gafter
--- a/j2se/test/tools/javac/QualifiedNewScope.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/QualifiedNewScope.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)QualifiedNewScope.java	1.6 07/05/05
+ * @test
  * @bug 4406269
  * @summary incorrect scoping for type name in qualified new expression.
  * @author gafter
--- a/j2se/test/tools/javac/QualifiedOuterThis.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/QualifiedOuterThis.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 1.7 07/05/05
+ * @test
  * @bug 4091327 4079087
  * @summary Verify resolution of qualified outer class 'this' references.
  * @author William Maddox (maddox) [shamelessly cribbed from bug report]
--- a/j2se/test/tools/javac/QualifiedOuterThis2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/QualifiedOuterThis2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)QualifiedOuterThis2.java	1.6 07/05/05
+ * @test
  * @bug 4843805
  * @summary compiler crash when class literals refers to enclosing class in a super clause
  * @author gafter
--- a/j2se/test/tools/javac/QualifiedThisAndSuper_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/QualifiedThisAndSuper_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)QualifiedThisAndSuper_1.java	1.6 07/05/05
+ * @test
  * @bug 4147520
  * @summary Verify correct implementation of qualified 'this' and 'super'.
  * @author maddox
--- a/j2se/test/tools/javac/QualifiedThisAndSuper_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/QualifiedThisAndSuper_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)QualifiedThisAndSuper_2.java	1.6 07/05/05
+ * @test
  * @bug 4147520
  * @summary Verify correct implementation of qualified 'this' and 'super'.
  * 
--- a/j2se/test/tools/javac/QualifiedThisAndSuper_3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/QualifiedThisAndSuper_3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)QualifiedThisAndSuper_3.java	1.6 07/05/05
+ * @test
  * @bug 4147520
  * @summary Verify correct implementation of qualified 'this' and 'super'.
  * @author maddox
--- a/j2se/test/tools/javac/QualifiedThisExactMatch.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/QualifiedThisExactMatch.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)QualifiedThisExactMatch.java	1.6 07/05/05
+ * @test
  * @bug 4102393 4133457
  * @summary Verify that <class>.this  matches <class> exactly, not a subclass.
  * @author maddox
--- a/j2se/test/tools/javac/RawCrash.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/RawCrash.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)RawCrash.java	1.6 07/05/05
+ * @test
  * @bug 4930761
  * @summary compiler crash with raw instantiation of generic inner class
  * @author gafter
--- a/j2se/test/tools/javac/ReturnAfterIfThenElse.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ReturnAfterIfThenElse.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ReturnAfterIfThenElse.java	1.6 07/05/05
+ * @test
  * @bug 4144008
  * @summary Both branches of if-then-else preceding end of method must not return normally,
  * even if boolean expression is constant.
--- a/j2se/test/tools/javac/SerialWarn.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/SerialWarn.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SerialWarn.java	1.7 07/05/05
+ * @test
  * @bug 4854628
  * @summary include Throwable subclasses in missing serialVersionUID warning
  * @author gafter
--- a/j2se/test/tools/javac/ShiftExpressionTest.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ShiftExpressionTest.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ShiftExpressionTest.java	1.7 07/05/05
+ * @test
  * @bug 4082814
  * @summary Constant shift expressions whose left operands were of type
  *          long were previously not evaluated correctly at compile-time.
--- a/j2se/test/tools/javac/Source5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Source5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Source5.java	1.6 07/05/05
+ * @test
  * @bug 5044157
  * @summary please accept -source 5 and -target 5
  * @author Peter von der Ahé
--- a/j2se/test/tools/javac/StandaloneQualifiedSuper.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/StandaloneQualifiedSuper.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)StandaloneQualifiedSuper.java	1.6 07/05/05
+ * @test
  * @bug 4147520
  * @summary Qualified 'super' must further qualify a member -- it cannot stand alone.
  *
--- a/j2se/test/tools/javac/StaticBlockScope.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/StaticBlockScope.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)StaticBlockScope.java	1.6 07/05/05
+ * @test
  * @bug 4680662
  * @summary InternalError using inner classes in static { } block
  * @author gafter
--- a/j2se/test/tools/javac/StoreClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/StoreClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)StoreClass.java	1.6 07/05/05
+ * @test
  * @bug 4350352
  * @summary InternalError: store unsupported: com.sun.tools.javac.v8.comp.Items
  * @author gafter
--- a/j2se/test/tools/javac/StrictAbstract.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/StrictAbstract.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)StrictAbstract.java	1.6 07/05/05
+ * @test
  * @bug 4428205
  * @summary ACC_STRICT is set for methods of strictfp interface
  * @author gafter
--- a/j2se/test/tools/javac/StringAppendAccessMethodOnLHS.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/StringAppendAccessMethodOnLHS.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)StringAppendAccessMethodOnLHS.java	1.6 07/05/05
+ * @test
  * @bug 4318526
  * @author iag, maddox
  * @summary Verify that the compiler does not crash if a method in an inner
--- a/j2se/test/tools/javac/StringConversion.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/StringConversion.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 1.9 07/05/05
+ * @test
  * @bug 4030173 4071548
  * @summary Verify correct conversion of non-string arguments in string concatenation.
  * @author maddox
--- a/j2se/test/tools/javac/SuperField.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/SuperField.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SuperField.java	1.6 07/05/05
+ * @test
  * @bug 4336291
  * @summary wrong bytecode for qualified access of superclass field
  * @author gafter
--- a/j2se/test/tools/javac/SuperMeth.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/SuperMeth.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SuperMeth.java	1.6 07/05/05
+ * @test
  * @bug 4734016
  * @summary Verify fails on inner class call to Outer.super.method()
  * @author gafter
--- a/j2se/test/tools/javac/SuperMethodResolve.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/SuperMethodResolve.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SuperMethodResolve.java	1.8 07/05/05
+ * @test
  * @bug 4275601 4758654 4761586
  * @summary Verify that method call via super finds correct method.
  * @author maddox (cribbed from bug report)
--- a/j2se/test/tools/javac/SuperNew.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/SuperNew.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SuperNew.java	1.6 07/05/05
+ * @test
  * @bug 4500836
  * @summary javac fails to find enclosing instance early in constructor
  * @author gafter
--- a/j2se/test/tools/javac/SuperNew2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/SuperNew2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SuperNew2.java	1.7 07/05/05
+ * @test
  * @bug 4636022
  * @summary Test for a regression noted in an internal milestone.
  * @author gafter
--- a/j2se/test/tools/javac/SuperNew3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/SuperNew3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SuperNew3.java	1.8 07/05/05
+ * @test
  * @bug 4432312 4721003
  * @summary compiler crash with assertion failure (inner classes)
  * @author gafter
--- a/j2se/test/tools/javac/SuperNew4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/SuperNew4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SuperNew4.java	1.6 07/05/05
+ * @test
  * @bug 4760298
  * @summary compiler crash with assertion failure (inner classes)
  * @author gafter
--- a/j2se/test/tools/javac/SuperclassConstructorException.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/SuperclassConstructorException.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SuperclassConstructorException.java	1.7 07/05/05
+ * @test
  * @bug 4350863 4358130
  * @summary Verify that name of superclass constructor exception can be
  * resolved correctly when instantiating a subclass.
--- a/j2se/test/tools/javac/SwitchFence.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/SwitchFence.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SwitchFence.java	1.8 07/05/05
+ * @test
  * @bug 4368309
  * @summary Simple switch statement with large case values gives OutOfMemoryError in javac.
  * @author gafter
--- a/j2se/test/tools/javac/SwitchScope.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/SwitchScope.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SwitchScope.java	1.6 07/05/05
+ * @test
  * @bug 4725650
  * @summary Restrict scope of local classes in switch-block-group
  * @author gafter
--- a/j2se/test/tools/javac/SynchronizedClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/SynchronizedClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,4 +1,4 @@
-/* @test @(#)SynchronizedClass.java	1.6 06/11/01  /nodynamiccopyright/
+/* @test  /nodynamiccopyright/
    @bug 4037020 4785453
    @summary Verify that ClassModifier "synchronized" is not allowed.
    @author dps
--- a/j2se/test/tools/javac/SynthName1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/SynthName1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SynthName1.java	1.7 07/05/05
+ * @test
  * @bug 4462714
  * @summary using of synthetic names in local class causes ClassFormatError
  * @author gafter
--- a/j2se/test/tools/javac/SynthName2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/SynthName2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SynthName2.java	1.8 07/05/05
+ * @test
  * @bug 4462714
  * @summary using of synthetic names in local class causes ClassFormatError
  * @author gafter
--- a/j2se/test/tools/javac/T4093617/T4093617.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T4093617/T4093617.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test    @(#)T4093617.java	1.5 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     4093617
  * @summary Object has no superclass
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T4848619/T4848619a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T4848619/T4848619a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T4848619a.java	1.7 07/05/05
+ * @test
  * @bug     4848619
  * @summary static final variable declared after use and self initialized
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T4848619/T4848619b.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T4848619/T4848619b.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T4848619b.java	1.7 07/05/05
+ * @test
  * @bug     4848619
  * @summary static final variable declared after use and self initialized
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T4906100.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T4906100.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)T4906100.java	1.2 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4906100
  * @summary detect empty statement after if
  * @compile/ref=T4906100.out -XDstdout -XDrawDiagnostics -Xlint:empty T4906100.java
--- a/j2se/test/tools/javac/T4994049/DeprecatedNOT.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T4994049/DeprecatedNOT.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)DeprecatedNOT.java	1.7 07/05/05
+ * @test
  * @bug     6229758
  * @summary deprecatedNOT! is
  * @author  Scott Seligman
--- a/j2se/test/tools/javac/T4994049/DeprecatedYES.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T4994049/DeprecatedYES.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)DeprecatedYES.java	1.7 07/05/05
+ * @test
  * @bug     6229758
  * @summary deprecatedNOT! is
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T4994049/T4994049.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T4994049/T4994049.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test    @(#)T4994049.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     4994049
  * @summary Improved diagnostics while parsing enums
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T5003235/T5003235a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T5003235/T5003235a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test    @(#)T5003235a.java	1.5 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     5003235
  * @summary Private inner class accessible from subclasses
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T5003235/T5003235b.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T5003235/T5003235b.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test    @(#)T5003235b.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     5003235
  * @summary Accessibility of private inner class
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T5003235/T5003235c.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T5003235/T5003235c.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test    @(#)T5003235c.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     5003235
  * @summary Access to private inner classes
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T5024091/T5024091.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T5024091/T5024091.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test    @(#)T5024091.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     5024091
  * @summary AssertionError shouldn't be thrown
  * @author  Wei Tao
--- a/j2se/test/tools/javac/T5048776.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T5048776.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)T5048776.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 5048776
  * @compile/ref=T5048776a.out -XDstdout -XDrawDiagnostics                  T5048776.java
  * @compile/ref=T5048776b.out -XDstdout -XDrawDiagnostics -Xlint:all,-path T5048776.java
--- a/j2se/test/tools/javac/T5090006/T5090006.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T5090006/T5090006.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T5090006.java	1.7 07/05/05
+ * @test
  * @bug 5090006
  * @summary javac fails with assertion error
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T5092545.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T5092545.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T5092545.java	1.7 07/05/05
+ * @test
  * @bug 5092545
  * @summary Assertion failed in javac (ClassWriter.java:513)
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T5105890.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T5105890.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T5105890.java	1.7 07/05/05
+ * @test
  * @bug 5105890
  * @summary (codegen) constant folding broken for conditional operator
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T6180021/AbstractSub.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6180021/AbstractSub.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)AbstractSub.java	1.7 07/05/05
+ * @test
  * @bug     6180021
  * @summary CompletionFailure during TypeTrans
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T6180021/Sub.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6180021/Sub.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Sub.java	1.7 07/05/05
+ * @test
  * @bug     6180021
  * @summary CompletionFailure during TypeTrans
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T6214885.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6214885.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)T6214885.java	1.2 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 6214885
  * @summary This test exercises features provided by the new internal Diagnostics API
  * @compile/fail/ref=T6214885a.out -XDstdout -XDdiags=%b:%l%_%t%m|%p%m T6214885.java
--- a/j2se/test/tools/javac/T6224167.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6224167.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)T6224167.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 6224167
  * @summary misleading error message when both array and varargs
  *	methods are defined
--- a/j2se/test/tools/javac/T6227617.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6227617.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)T6227617.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 6227617
  * @summary Lint option for redundant casts
  * @compile -Werror T6227617.java
--- a/j2se/test/tools/javac/T6230128.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6230128.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)T6230128.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 6230128
  * @compile/fail/ref=T6230128.out -XDstdout -XDrawDiagnostics T6230128.java
  */
--- a/j2se/test/tools/javac/T6231246/T6231246.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6231246/T6231246.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6231246.java	1.7 07/05/05
+ * @test
  * @bug     6231246
  * @summary Javac crash with -g:none
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T6231847.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6231847.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test    @(#)T6231847.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     6231847
  * @summary Crash in com.sun.tools.javac.comp.Attr.visitNewClass:1352
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T6232928.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6232928.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6232928.java	1.6 07/05/05
+ * @test
  * @bug 6232928
  * @summary Interface package-info should be marked abstract and synthetic
  * @author Wei Tao
--- a/j2se/test/tools/javac/T6234077.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6234077.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6234077.java	1.6 07/05/05
+ * @test
  * @bug 6234077
  * @compile/fail T6234077.java
  */
--- a/j2se/test/tools/javac/T6238612.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6238612.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6238612.java	1.6 07/05/05
+ * @test
  * @summary com.sun.tools.util.List.toArray violates Collection spec
  */
 
--- a/j2se/test/tools/javac/T6241723.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6241723.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)T6241723.java	1.2 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 6241723 
  * @summary compiler can miss some references to at-Deprecated classes
  * @compile/fail/ref=T6241723.out -XDstdout -XDrawDiagnostics -Xlint:deprecation -Werror T6241723.java
--- a/j2se/test/tools/javac/T6245591.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6245591.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)T6245591.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 6245591
  * @compile/ref=T6245591.out -XDstdout -XDrawDiagnostics -Xlint:all,-path T6245591.java
  */
--- a/j2se/test/tools/javac/T6247324.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6247324.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)T6247324.java	1.2 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 6247324
  * @compile/fail/ref=T6247324.out -XDrawDiagnostics -XDstdout -Xlint -Xlint:-path T6247324.java
  */
--- a/j2se/test/tools/javac/T6265400.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6265400.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6265400.java	1.9 07/05/05
+ * @test
  * @bug 6265400
  * @summary  Javac should be shielded from client code errors in JSR 199
  * @run main T6265400
--- a/j2se/test/tools/javac/T6266772.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6266772.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6266772.java	1.9 07/05/05
+ * @test
  * @bug     6266772
  * @summary javac crashes, assertion failure in Lower.java
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T6306967.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6306967.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6306967.java	1.7 07/05/05
+ * @test
  * @bug     6306967
  * @summary Variable x is used before initialized
  * @author  Wei Tao
--- a/j2se/test/tools/javac/T6341023.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6341023.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6341023.java	1.6 07/05/05
+ * @test
  * @bug 6341023
  * @summary Tree API: Tree.Kind should have mapping to interface
  */
--- a/j2se/test/tools/javac/T6356217/T6356217.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6356217/T6356217.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6356217.java	1.7 07/05/05
+ * @test
  * @bug     6356217
  * @summary ArrayIndexOutOfBoundsException shouldn't be thrown at Code$State.forceStackTop
  * @author  Wei Tao
--- a/j2se/test/tools/javac/T6358024.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6358024.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6358024.java	1.11 07/05/05
+ * @test
  * @bug 6358024
  * @summary TaskListener should be propogated between processing rounds
  */
--- a/j2se/test/tools/javac/T6358166.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6358166.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6358166.java	1.10 07/05/05
+ * @test
  * @bug 6358166 
  * @summary -verbose reports absurd times when annotation processing involved
  */
--- a/j2se/test/tools/javac/T6358168.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6358168.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6358168.java	1.11 07/05/05
+ * @test
  * @bug 6358168
  * @summary JavaCompiler.hasBeenUsed is not set in delegateCompiler
  */
--- a/j2se/test/tools/javac/T6361619.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6361619.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6361619.java	1.10 07/05/05
+ * @test
  * @bug 6361619 6392118 
  * @summary AssertionError from ClassReader; mismatch between JavacTaskImpl.context and JSR 269
  */
--- a/j2se/test/tools/javac/T6366196.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6366196.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6366196.java	1.7 07/05/05
+ * @test
  * @bug     6359661 6366196
  * @summary Unit test for corner cases of position encoding
  * @author  Wei Tao
--- a/j2se/test/tools/javac/T6370653.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6370653.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6370653.java	1.7 07/05/05
+ * @test
  * @bug     6370653
  * @summary Use iinc opcode for postfix decrement of local variable
  * @run main T6370653
--- a/j2se/test/tools/javac/T6379327.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6379327.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6379327.java	1.7 07/05/05
+ * @test
  * @bug     6379327
  * @summary Erroneous catch block not detected with anonymous class declaration
  * @author  Peter Jones, Wei Tao
--- a/j2se/test/tools/javac/T6394563.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6394563.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)T6394563.java	1.2 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 6394563 
  * @summary javac ignores -nowarn switch in 1.5.0_06 for deprecation warnings
  *
--- a/j2se/test/tools/javac/T6395974.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6395974.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6395974.java	1.10 07/05/05
+ * @test
  * @bug 6395974
  * @summary files are parsed even after failure to find annotation processor is reported
  */
--- a/j2se/test/tools/javac/T6397286.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6397286.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6397286.java	1.9 07/05/05
+ * @test
  * @bug 6397286
  * @summary TaskListener calls are not protected agains user exceptions
  */
--- a/j2se/test/tools/javac/T6404756.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6404756.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6404756.java	1.6 07/05/05
+ * @test
  * @bug 6404756
  * @summary javac mishandles deprecation warnings on some elements marked deprecated
  * @compile/fail -Werror -Xlint:deprecation T6404756.java
--- a/j2se/test/tools/javac/T6406771.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6406771.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)T6406771.java	1.5 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 6406771
  * @summary CompilationUnitTree needs access to a line map
  */
--- a/j2se/test/tools/javac/T6407066.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6407066.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6407066.java	1.9 07/05/05
+ * @test
  * @bug 6407066
  * @summary Paths code should not discard non-existent directories
  */
--- a/j2se/test/tools/javac/T6407257.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6407257.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6407257.java	1.6 07/05/05
+ * @test
  * @bug     6407257
  * @summary javac locks up when encountering cyclic inheritance
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/T6410706.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6410706.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6410706.java	1.8 07/05/05
+ * @test
  * @bug 6410706
  * @summary CONFORMANCE Mandatory warnings in Tree API
  */
--- a/j2se/test/tools/javac/T6413876.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6413876.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6413876.java	1.6 07/05/05
+ * @test
  * @bug 6413876
  * @summary REGRESSION javac -d /directory/ creates destination directories
  */
--- a/j2se/test/tools/javac/T6423583.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6423583.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6423583.java	1.7 07/05/05
+ * @test
  * @bug 6423583
  * @summary LiteralTree.getValue() should return Boolean for Kind.BOOLEAN_LITERAL literals
  * @build T6423583
--- a/j2se/test/tools/javac/T6435291/T6435291.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/T6435291/T6435291.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6435291.java	1.7 07/05/05
+ * @test
  * @bug     6435291
  * @summary javac shouldn't throw NPE while compiling invalid RuntimeInvisibleParameterAnnotations
  * @author  Wei Tao
--- a/j2se/test/tools/javac/ThrowNull.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ThrowNull.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ThrowNull.java	1.7 07/05/05
+ * @test
  * @bug 4328929 4872676
  *
  * @summary Verify that literal 'null' can be thrown, as its type is a
--- a/j2se/test/tools/javac/ThrowsIntersection_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ThrowsIntersection_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ThrowsIntersection_1.java	1.7 07/05/05
+ * @test
  * @bug 4042259
  * @summary Check that a class can inherit multiple methods with conflicting throws clauses.
  * @author maddox
--- a/j2se/test/tools/javac/ThrowsIntersection_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ThrowsIntersection_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ThrowsIntersection_2.java	1.6 07/05/05
+ * @test
  * @bug 4042259
  * @summary Check that a class can inherit multiple methods with conflicting throws clauses.
  * @author maddox
--- a/j2se/test/tools/javac/ThrowsIntersection_3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ThrowsIntersection_3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ThrowsIntersection_3.java	1.6 07/05/05
+ * @test
  * @bug 4042259
  * @summary Check that a class can inherit multiple methods with conflicting throws clauses.
  * @author maddox
--- a/j2se/test/tools/javac/ThrowsIntersection_4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/ThrowsIntersection_4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ThrowsIntersection_4.java	1.6 07/05/05
+ * @test
  * @bug 4042259
  * @summary Check that a class can inherit multiple methods with conflicting throws clauses.
  * @author maddox
--- a/j2se/test/tools/javac/TryInInstanceInit.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/TryInInstanceInit.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TryInInstanceInit.java	1.7 07/05/05
+ * @test
  * @bug 4038527
  * @summary Compiler used to throw an exception when it encountered
  *          a try-catch, try-finally, or synchronized statement in an
--- a/j2se/test/tools/javac/UncaughtOverflow.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/UncaughtOverflow.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UncaughtOverflow.java	1.6 07/05/05
+ * @test
  * @bug 4035346
  * @summary Compiler used to allow this initialization, despite the overflow.
  * @author turnidge
--- a/j2se/test/tools/javac/UncaughtOverflow2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/UncaughtOverflow2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UncaughtOverflow2.java	1.6 07/05/05
+ * @test
  * @bug 4097402
  * @summary Compiler used to allow this initialization, despite the overflow.
  * @author turnidge
--- a/j2se/test/tools/javac/UnreachableVar.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/UnreachableVar.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UnreachableVar.java	1.6 07/05/05
+ * @test
  * @bug 4704247
  * @summary code generator fails to assign a register to a var with an unreachable def
  * @author gafter
--- a/j2se/test/tools/javac/UnterminatedLineComment.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/UnterminatedLineComment.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test %W% %E%
+ * @test
  * @bug 4316827 4733858
  * @summary No diagnostic reported for "//" with no following LineTerminator
  *
@@ -34,4 +34,3 @@
  * please make sure your editor does not insert a newline there.
  */
 
-//
\ No newline at end of file
--- a/j2se/test/tools/javac/UplevelFromAnonInSuperCall.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/UplevelFromAnonInSuperCall.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UplevelFromAnonInSuperCall.java	1.8 07/05/05
+ * @test
  * @bug 4278953 4713248
  * @summary Verify that access to member of outer class from within anonymous
  * class in 'super()' call is allowed.
--- a/j2se/test/tools/javac/UseEnum.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/UseEnum.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)UseEnum.java	1.6 07/05/05
+ * @test
  * @bug 5013488
  * @summary Compiler AssertionError: com.sun.tools.javac.util.Bits.incl(Bits.java:73)
  *
--- a/j2se/test/tools/javac/VarDeclarationWithAssignment.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/VarDeclarationWithAssignment.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)VarDeclarationWithAssignment.java	1.7 07/05/05
+ * @test
  * @bug 4076729
  * @summary The statement "int j = (j = BLAH);" did not compile correctly in
  *          some contexts.
--- a/j2se/test/tools/javac/Verify.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/Verify.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Verify.java	1.6 07/05/05
+ * @test
  * @bug 4381996
  * @summary Java Bytecode Verification impossible [2]
  * @author gafter
--- a/j2se/test/tools/javac/VerifyDA.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/VerifyDA.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)VerifyDA.java	1.6 07/05/05
+ * @test
  * @bug 4836921
  * @summary javac (1.3.1 .. 1.4.2) generates invalid bytecode: def. ass. & finally w/ nested
  * @author gafter
--- a/j2se/test/tools/javac/VerifyVersionAnnotations.java	Fri Aug 17 01:47:29 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-/*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-/*
- * @test @(#)VerifyVersionAnnotations.java	1.8 07/05/05
- * @bug 5015955
- * @ignore until 6443677 is fixed.
- * @summary add at-Version annotation to sources
- * @compile VerifyVersionAnnotations.java
- * @run shell apt.sh -factory VerifyVersionAnnotations
- */
-
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.*;
-import com.sun.mirror.util.*;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import static java.util.Collections.*;
-import static com.sun.mirror.util.DeclarationVisitors.*;
-
-/*
- * This class is used to run an annotation processor that lists class
- * names.  The functionality of the processor is analogous to the
- * ListClass doclet in the Doclet Overview.
- */
-public class VerifyVersionAnnotations implements AnnotationProcessorFactory {
-    // Process any set of annotations
-    private static final Collection<String> supportedAnnotations
-        = unmodifiableCollection(Arrays.asList("*"));
-
-    // No supported options
-    private static final Collection<String> supportedOptions = emptySet();
-
-    public Collection<String> supportedAnnotationTypes() {
-        return supportedAnnotations;
-    }
-
-    public Collection<String> supportedOptions() {
-        return supportedOptions;
-    }
-
-    public AnnotationProcessor getProcessorFor(
-            Set<AnnotationTypeDeclaration> atds,
-            AnnotationProcessorEnvironment env) {
-        return new VersionVerifier(env);
-    }
-
-    private static class VersionVerifier implements AnnotationProcessor {
-        private final AnnotationProcessorEnvironment env;
-	private final TypeDeclaration versionDecl;
-        VersionVerifier(AnnotationProcessorEnvironment env) {
-            this.env = env;
-	    versionDecl = env.getTypeDeclaration("com.sun.tools.javac.util.Version");
-	    if (versionDecl == null)
-		throw new Error("cannot find @Version declaration");
-        }
-	
-        public void process() {
-	    String[] javacPackageNames = {
-		"com.sun.tools.javac",
-		"com.sun.tools.javac.main",
-		"com.sun.tools.javac.code",
-		"com.sun.tools.javac.comp",
-		"com.sun.tools.javac.parser",
-		"com.sun.tools.javac.jvm",
-		"com.sun.tools.javac.tree",
-		"com.sun.tools.javac.util"
-	    };
-
-	    Set<TypeDeclaration> javacDecls = new HashSet<TypeDeclaration>();
-	    for (String p: javacPackageNames) {
-		javacDecls.addAll(env.getPackage(p).getClasses());
-		javacDecls.addAll(env.getPackage(p).getInterfaces());
-		javacDecls.addAll(env.getPackage(p).getEnums());
-		javacDecls.addAll(env.getPackage(p).getAnnotationTypes());
-	    }
-		
-	    for (TypeDeclaration typeDecl : javacDecls) {
-		typeDecl.accept(getDeclarationScanner(new TypeVisitor(),
-						      NO_OP));
-	    }
-	}
-
-	private class TypeVisitor extends SimpleDeclarationVisitor {
-	    public void visitTypeDeclaration(TypeDeclaration d) {
-		if (d.getDeclaringType() == null
-		    && d.getSimpleName().indexOf("$") < 0) {
-		    for (AnnotationMirror am: d.getAnnotationMirrors()) {
-			AnnotationType at = am.getAnnotationType();
-			AnnotationTypeDeclaration ad = at.getDeclaration();
-			if (ad.equals(versionDecl)) {
-			    for (Map.Entry<AnnotationTypeElementDeclaration,AnnotationValue> e:
-				     am.getElementValues().entrySet()) {
-				System.err.println(d.getQualifiedName() 
-						   + " " + e.getKey()
-						   + " " + e.getValue());
-			    }
-			    return;
-			}
-		    }
-		    env.getMessager().printError(d.getQualifiedName() + " does not have a @Version annotation");
-		}
-		    
-	    }
-
-		
-	}
-    }
-}
--- a/j2se/test/tools/javac/VoidArray.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/VoidArray.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)VoidArray.java	1.6 07/05/05
+ * @test
  * @bug 4034979
  * @summary The compiler should never allow void[] to appear as a type
  *          in a program.
--- a/j2se/test/tools/javac/abstract/T1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/abstract/T1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T1.java	1.7 07/05/05
+ * @test
  * @bug 4706866
  * @summary javac doesn't implement transitive rule for overriding
  * @author gafter
--- a/j2se/test/tools/javac/abstract/T4717181a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/abstract/T4717181a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4717181a.java	1.6 07/05/05
+ * @test
  * @bug 4717181
  * @summary javac treats inherited abstract method as an overrider
  * @author gafter
--- a/j2se/test/tools/javac/abstract/T4717181b.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/abstract/T4717181b.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4717181b.java	1.8 07/05/05
+ * @test
  * @bug 4717181
  * @summary javac treats inherited abstract method as an overrider
  * @author gafter
--- a/j2se/test/tools/javac/abstract/U1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/abstract/U1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)U1.java	1.6 07/05/05
+ * @test
  * @bug 4706866
  * @summary javac doesn't implement transitive rule for overriding
  * @author gafter
--- a/j2se/test/tools/javac/accessVirtualInner/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/accessVirtualInner/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.7 07/05/05
+ * @test
  * @bug 4406917
  * @summary static call instead of virtual call in inner classes (access method bug)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/6214965/T6214965.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/6214965/T6214965.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6214965.java	1.10 07/05/05
+ * @test
  * @bug     6214965 6365854
  * @summary Compiler crash on redefing nested annotation types
  * @compile CompilerAnnotationTest.java CompilerAnnotationTest2.java
--- a/j2se/test/tools/javac/annotations/6359949/T6359949.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/6359949/T6359949.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6359949.java	1.7 07/05/05
+ * @test
  * @bug     6359949
  * @summary (at)Override of static shouldn't be accepted (compiler shouldissue an error/warning)
  * @compile T6359949.java
--- a/j2se/test/tools/javac/annotations/6359949/T6359949a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/6359949/T6359949a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6359949a.java	1.7 07/05/05
+ * @test
  * @bug     6359949
  * @summary (at)Override of static shouldn't be accepted (compiler shouldissue an error/warning)
  * @compile/fail T6359949a.java
--- a/j2se/test/tools/javac/annotations/6365854/T6365854.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/6365854/T6365854.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6365854.java	1.7 07/05/05
+ * @test
  * @bug     6365854
  * @summary javac crashes when compiling against an annotated class
  * @compile TestAnnotation.java TestCore.java
--- a/j2se/test/tools/javac/annotations/default/A.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/default/A.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)A.java	1.6 07/05/05
+ * @test
  * @bug 4901262
  * @summary Constraints regarding annotation defaults
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/AnnComma.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/AnnComma.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AnnComma.java	1.6 07/05/05
+ * @test
  * @bug 4973531
  * @summary annotation syntax allows extra ',' in parameter list.
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/ArrayLit.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/ArrayLit.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ArrayLit.java	1.6 07/05/05
+ * @test
  * @bug 4901266
  * @summary JSR175 (4): don't allow "new" in annotations
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Constant.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Constant.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Constant.java	1.6 07/05/05
+ * @test
  * @bug 4901268
  * @summary JSR175 (5): annotations must be "constants"
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Cycle1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Cycle1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Cycle1.java	1.6 07/05/05
+ * @test
  * @bug 4906400
  * @summary (JSR175) compiler allows self-containing annotation types
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Cycle2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Cycle2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Cycle2.java	1.6 07/05/05
+ * @test
  * @bug 4906400
  * @summary (JSR175) compiler allows self-containing annotation types
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Cycle3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Cycle3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Cycle3.java	1.6 07/05/05
+ * @test
  * @bug 5044125
  * @summary javac allows cyclic annotation interfaces with arrays
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Dep.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Dep.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Dep.java	1.7 07/05/05
+ * @test
  * @bug 4903501
  * @summary Please add annotation <at>Deprecated to supplant the javadoc tag
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Dup.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Dup.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Dup.java	1.6 07/05/05
+ * @test
  * @bug 4901265
  * @summary JSR175 (3): don't allow repeated annotations
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/DupTarget.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/DupTarget.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DupTarget.java	1.6 07/05/05
+ * @test
  * @bug 4901271
  * @summary <at>Target
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/MemberOver.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/MemberOver.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)MemberOver.java	1.6 07/05/05
+ * @test
  * @bug 4989667
  * @summary Annotation members must not have same signature as Object or Annotation members
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/MixedSource.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/MixedSource.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)MixedSource.java	1.6 07/05/05
+ * @test
  * @bug 5036565
  * @summary Annotations definitions are allowed using -source 1.4 but not annotations
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/NoAnnotationMethods.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/NoAnnotationMethods.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)NoAnnotationMethods.java	1.6 07/05/05
+ * @test
  * @bug     6393539
  * @summary no compile-time error for clone, etc. in annotation type
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/annotations/neg/NoObjectMethods.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/NoObjectMethods.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)NoObjectMethods.java	1.6 07/05/05
+ * @test
  * @bug     6393539
  * @summary no compile-time error for clone, etc. in annotation type
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/annotations/neg/ObjectMembers.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/ObjectMembers.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ObjectMembers.java	1.6 07/05/05
+ * @test
  * @bug 4901264
  * @summary JSR175 (2): don't allow annotating members from Object
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/OverrideNo.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/OverrideNo.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)OverrideNo.java	1.7 07/05/05
+ * @test
  * @bug 4901275 4989669
  * @summary JSR175 (7): implement <at>Overrides
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Package.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Package.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Package.java	1.6 07/05/05
+ * @test
  * @bug 4901290
  * @summary Package annotations
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Recovery.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Recovery.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Recovery.java	1.6 07/05/05
+ * @test
  * @bug 4993451
  * @summary compiler crash with malformed annotations
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Recovery1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Recovery1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Recovery1.java	1.6 07/05/05
+ * @test
  * @bug 4963450
  * @summary Assertion error is thrown when an annotation class cannot be found.
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Scope.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Scope.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Scope.java	1.6 07/05/05
+ * @test
  * @bug 4901280
  * @summary name lookup scope for annotations
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Syntax1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Syntax1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Syntax1.java	1.6 07/05/05
+ * @test
  * @bug 4974524
  * @summary compiler crash with ill-formed annotation
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/WrongTarget.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/WrongTarget.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)WrongTarget.java	1.6 07/05/05
+ * @test
  * @bug 4901271
  * @summary java.lang.annotation.Target
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/WrongTarget2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/WrongTarget2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)WrongTarget2.java	1.6 07/05/05
+ * @test
  * @bug 4973504
  * @summary Compiler allows Inherited meta-attribute on local variable declaration.
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/WrongValue.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/WrongValue.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)WrongValue.java	1.6 07/05/05
+ * @test
  * @bug 4951298
  * @summary compiler: crashes when attributes with same elements are used in place of other
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Z1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Z1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z1.java	1.6 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Z10.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Z10.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z10.java	1.6 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Z11.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Z11.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z11.java	1.6 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Z12.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Z12.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z12.java	1.6 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Z13.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Z13.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z13.java	1.6 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Z14.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Z14.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z14.java	1.6 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Z15.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Z15.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z15.java	1.6 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Z16.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Z16.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z16.java	1.6 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Z2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Z2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z2.java	1.6 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Z3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Z3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z3.java	1.6 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Z4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Z4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z4.java	1.6 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Z5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Z5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z5.java	1.6 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Z8.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Z8.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z8.java	1.6 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/neg/Z9.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/neg/Z9.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z9.java	1.6 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/AnnotationMethods.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/AnnotationMethods.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)AnnotationMethods.java	1.6 07/05/05
+ * @test
  * @bug     6393539
  * @summary no compile-time error for clone, etc. in annotation type
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/annotations/pos/AnnoteElideBraces.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/AnnoteElideBraces.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AnnoteElideBraces.java	1.7 07/05/05
+ * @test
  * @bug 4916220
  * @summary JSR175 (15): single element array annotation value
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/ClassA.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/ClassA.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ClassA.java	1.6 07/05/05
+ * @test
  * @bug 4951298 4975363
  * @summary javac crash loading class files containing Class-valued annotation fields
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/Dep.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/Dep.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Dep.java	1.6 07/05/05
+ * @test
  * @bug 4903501
  * @summary Please add annotation <at>Deprecated to supplant the javadoc tag
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/Enum1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/Enum1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Enum1.java	1.7 07/05/05
+ * @test
  * @bug 4916218
  * @summary JSR175: annotations on enum constant
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/Local.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/Local.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Local.java	1.6 07/05/05
+ * @test
  * @bug 4936182
  * @summary local variable annotations
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/Members.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/Members.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Members.java	1.6 07/05/05
+ * @test
  * @bug 4981309
  * @summary annotation types may contain constants, types
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/NType.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/NType.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NType.java	1.6 07/05/05
+ * @test
  * @bug 5008452
  * @summary compiler crash if annotation using an enum type defined inside the annotation
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/OverrideCheck.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/OverrideCheck.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)OverrideCheck.java	1.7 07/05/05
+ * @test
  * @bug 4904675 4989669
  * @summary crash in annotation class file reader
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/OverrideOK.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/OverrideOK.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)OverrideOK.java	1.7 07/05/05
+ * @test
  * @bug 4901275 4989669
  * @summary JSR175 (7): implement <at>Overrides
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/Parameter.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/Parameter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Parameter.java	1.7 07/05/05
+ * @test
  * @bug 4901285
  * @summary JSR175: Parameter annotations
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/Primitives.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/Primitives.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Primitives.java	1.6 07/05/05
+ * @test
  * @bug 5034991 5040842 5040853
  * @summary Modify class-file representation of Class-valued annotation elements
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/RightTarget.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/RightTarget.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)RightTarget.java	1.7 07/05/05
+ * @test
  * @bug 4901271
  * @summary java.lang.annotation.Target
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/Z1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/Z1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z1.java	1.7 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/Z2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/Z2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z2.java	1.7 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/Z3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/Z3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z3.java	1.7 07/05/05
+ * @test
  * @bug 4865660 4906400
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/Z4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/Z4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Z4.java	1.6 07/05/05
+ * @test
  * @bug 4865660
  * @summary implement "metadata" (attribute interfaces and program annotations)
  * @author gafter
--- a/j2se/test/tools/javac/annotations/pos/package-info.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/annotations/pos/package-info.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)package-info.java	1.6 07/05/05
+ * @test
  * @bug 4901290
  * @summary Package annotations
  * @author gafter
--- a/j2se/test/tools/javac/api/6400303/T6400303.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6400303/T6400303.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6400303.java	1.8 07/05/05
+ * @test
  * @bug     6400303
  * @summary REGRESSION: javadoc crashes in b75
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6410643/T6410643.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6410643/T6410643.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6410643.java	1.7 07/05/05
+ * @test
  * @bug     6410643
  * @summary JSR 199: The method JavaCompilerTool.run fails to handle null arguments
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6411310/T6411310.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6411310/T6411310.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6411310.java	1.6 07/05/05
+ * @test
  * @bug     6411310
  * @summary JSR 199: FileObject should support user-friendly names via getName()
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6411333/T6411333.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6411333/T6411333.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6411333.java	1.4 07/05/05
+ * @test
  * @bug     6411333 6400208 6400225 6400267
  * @summary Ensure 6400208, 6400225, and 6400267 are tested
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6412656/T6412656.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6412656/T6412656.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6412656.java	1.7 07/05/05
+ * @test
  * @bug     6412656 6443062
  * @summary JSR 199: pass annotation processor instances to compiler
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6415780/T6415780.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6415780/T6415780.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6415780.java	1.8 07/05/05
+ * @test
  * @bug     6415780
  * @summary JSR 199: javax.tools.JavaFileManager.getClassLoader always fails
  * @author  igor.tseytin@...
--- a/j2se/test/tools/javac/api/6418694/T6418694.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6418694/T6418694.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6418694.java	1.6 07/05/05
+ * @test
  * @bug     6418694
  * @summary JSR 199: JavaFileManager.hasLocation(Location)
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6420409/T6420409.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6420409/T6420409.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6420409.java	1.8 07/05/05
+ * @test
  * @bug     6420409
  * @summary JSR 199: StandardFileManager: cannot set CLASS_PATH location
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6420464/T6420464.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6420464/T6420464.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6420464.java	1.8 07/05/05
+ * @test
  * @bug     6420464
  * @summary JSR 199: JavaFileObject.isNameCompatible throws unspecified exception (IllegalArgumentException)
  * @author  Igor Tseytin
--- a/j2se/test/tools/javac/api/6421111/T6421111.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6421111/T6421111.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6421111.java	1.5 07/05/05
+ * @test
  * @bug     6421111
  * @summary NullPointerException thrown when retrieving bounds for the type parameter
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6421756/T6421756.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6421756/T6421756.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6421756.java	1.6 07/05/05
+ * @test
  * @bug     6421756
  * @summary 6421756 JSR 199: In the method JavaCompilerTool.getTask 'options' can be supplied in the place of 'classes'
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6422215/T6422215.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6422215/T6422215.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6422215.java	1.6 07/05/05
+ * @test
  * @bug     6422215
  * @summary JSR 199: What happens if a directory is missing
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6422327/T6422327.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6422327/T6422327.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6422327.java	1.6 07/05/05
+ * @test
  * @bug     6422327
  * @summary JSR 199: JavaCompilerTool can compile and generate '.class' of non '.java' files
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6423003/T6423003.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6423003/T6423003.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6423003.java	1.4 07/05/05
+ * @test
  * @bug     6423003
  * @summary JSR 199: confusing help message with compiler API
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6431257/T6431257.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6431257/T6431257.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6431257.java	1.6 07/05/05
+ * @test
  * @bug     6431257
  * @summary JSR 199: Changes to JavaFileManager to support JSR 269 Filer API
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6431435/T6431435.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6431435/T6431435.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6431435.java	1.9 07/05/05
+ * @test
  * @bug 6431435 6439406
  * @summary Tree API: source files loaded implicitly from source path
  * @run main T6431435
--- a/j2se/test/tools/javac/api/6437349/T6437349.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6437349/T6437349.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6437349.java	1.5 07/05/05
+ * @test
  * @bug     6437349
  * @summary JSR 199: JavaFileObject.isNameCompatible() will give true with some incompatible kinds
  * @library ../lib
--- a/j2se/test/tools/javac/api/6437999/T6437999.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6437999/T6437999.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6437999.java	1.6 07/05/05
+ * @test
  * @bug     6437999
  * @summary Unit test for encoding argument to standard file manager
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6440333/T6440333.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6440333/T6440333.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6440333.java	1.4 07/05/05
+ * @test
  * @bug     6440333
  * @summary SimpleJavaFileObject.toString() generates URI with some extra message
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6440528/T6440528.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6440528/T6440528.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6440528.java	1.6 07/05/05
+ * @test
  * @bug     6440528
  * @summary javac deposits package-info.class in bogus directory
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6452876/T6452876.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6452876/T6452876.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6452876.java	1.4 07/05/05
+ * @test
  * @bug     6452876
  * @summary JSR 199: DiagnosticCollector.report(null) should throw NPE
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/6468404/T6468404.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6468404/T6468404.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6468404.java	1.5 07/05/05
+ * @test
  * @bug     6468404
  * @summary ExecutableElement.getParameters() uses raw type for class loaded from -g bytecode
  * @author  jesse.glick@...
--- a/j2se/test/tools/javac/api/6471599/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/6471599/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Main.java	1.4 07/05/05
+ * @test
  * @bug     6471599
  * @summary Type of rhs cannot be obtained when assigning to erroneous symbol
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/Sibling.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/Sibling.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)Sibling.java	1.10 07/05/05
+ * @test
  * @bug     6399602
  * @summary Verify that files are created relative to sibling
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/T6257235.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/T6257235.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6257235.java	1.9 07/05/05
+ * @test
  * @bug     6257235
  * @summary setOption() and setExtendedOption() of JavacTool throws NullPointerException for undefined options
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/T6258271.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/T6258271.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6258271.java	1.10 07/05/05
+ * @test
  * @bug     6258271
  * @summary DiagnosticMessage exposes internal name __input
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/T6265137.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/T6265137.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6265137.java	1.10 07/05/05
+ * @test
  * @bug     6265137
  * @summary setOption() and setExtendedOption() of JavacTool will throw exception for some defined options
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/T6306137.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/T6306137.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6306137.java	1.10 07/05/05
+ * @test
  * @bug     6306137 
  * @summary JSR 199: encoding option doesn't affect standard file manager
  * @author  Peter von der Ahé
--- a/j2se/test/tools/javac/api/T6345974.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/T6345974.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6345974.java	1.9 07/05/05
+ * @test
  * @bug 6345974
  * @summary JCPrimitiveTypeTree.getPrimitiveTypeKind() inappropriately throws an 
  *		AssertionError for "void" 
--- a/j2se/test/tools/javac/api/T6357331.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/T6357331.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6357331.java	1.8 07/05/05
+ * @test
  * @bug 6357331
  * @summary NPE from JavacTask.getElements() after calling CompilationTask.run
  */
--- a/j2se/test/tools/javac/api/T6358786.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/T6358786.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6358786.java	1.11 07/05/05
+ * @test
  * @bug     6358786
  * @summary Doccomments are not returned from Tree API
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/T6358955.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/T6358955.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6358955.java	1.11 07/05/05
+ * @test
  * @bug 6358955 
  * @summary JavacFileManager.getFileForInput(dir) shuld throw IAE
  */
--- a/j2se/test/tools/javac/api/T6392782.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/T6392782.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6392782.java	1.9 07/05/05
+ * @test
  * @bug 6392782
  * @summary TreeScanner.visitImport returns null, not result of nested scan
  */
--- a/j2se/test/tools/javac/api/T6395981.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/T6395981.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6395981.java	1.8 07/05/05
+ * @test
  * @bug     6395981 6458819
  * @summary JavaCompilerTool and Tool must specify version of JLS and JVMS
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/T6397104.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/T6397104.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6397104.java	1.10 07/05/05
+ * @test
  * @bug     6397104
  * @summary JSR 199: JavaFileManager.getFileForOutput should have sibling argument
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/T6400205.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/T6400205.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6400205.java	1.9 07/05/05
+ * @test
  * @bug     6400205
  * @summary getClassLoader(location) returns null if getLocation(location) returns null
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/T6400207.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/T6400207.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6400207.java	1.9 07/05/05
+ * @test
  * @bug     6400207
  * @summary JSR 199: JavaFileManager.list and unset location
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/T6407011.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/T6407011.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6407011.java	1.10 07/05/05
+ * @test
  * @bug     6407011 6407066
  * @summary javac crashes in b78 with NPE in JavacFileManager:293
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/T6412669.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/T6412669.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6412669.java	1.8 07/05/05
+ * @test
  * @bug 6412669
  * @summary Should be able to get SourcePositions from 269 world
  */
--- a/j2se/test/tools/javac/api/T6431879.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/T6431879.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6431879.java	1.8 07/05/05
+ * @test
  * @bug 6431879
  * @summary TreePathSCanner(CompilationUnitTree tree, P p) overloading forces use of most specific type
  */
--- a/j2se/test/tools/javac/api/TestEvalExpression.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/TestEvalExpression.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TestEvalExpression.java	1.9 07/05/05
+ * @test
  * @bug     4164450
  * @summary JSR 199: Standard interface for Java compilers
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/TestGetTree.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/TestGetTree.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TestGetTree.java	1.9 07/05/05
+ * @test
  * @bug     6344177 6392177
  * @summary Can't get tree from a top level class
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/TestJavacTask.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/TestJavacTask.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TestJavacTask.java	1.10 07/05/05
+ * @test
  * @bug     4813736
  * @summary Provide a basic test of access to the Java Model from javac
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/TestJavacTaskScanner.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/TestJavacTaskScanner.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TestJavacTaskScanner.java	1.10 07/05/05
+ * @test
  * @bug     4813736
  * @summary Additional functionality test of task and JSR 269
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/TestOperators.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/TestOperators.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TestOperators.java	1.11 07/05/05
+ * @test
  * @bug     6338064 6346249 6340951 6392177
  * @summary Tree API: can't determine kind of operator
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/TestResolveIdent.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/TestResolveIdent.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)TestResolveIdent.java	1.10 07/05/05
+ * @test
  * @bug     6374357 6308351
  * @summary PackageElement.getEnclosedElements() throws ClassReader$BadClassFileException
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/api/evalexpr/ByteArrayClassLoader.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/evalexpr/ByteArrayClassLoader.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)ByteArrayClassLoader.java	1.7 07/05/05
- */
-
 package evalexpr;
 
 import java.util.Map;
--- a/j2se/test/tools/javac/api/evalexpr/CompileFromString.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/evalexpr/CompileFromString.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)CompileFromString.java	1.11 07/05/05
- */
-
 package evalexpr;
 
 import java.lang.reflect.Method;
--- a/j2se/test/tools/javac/api/evalexpr/MemoryFileManager.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/evalexpr/MemoryFileManager.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)MemoryFileManager.java	1.9 07/05/05
- */
-
 package evalexpr;
 
 import java.io.ByteArrayOutputStream;
--- a/j2se/test/tools/javac/api/guide/Test.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/api/guide/Test.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Test.java	1.4 07/05/05
+ * @test
  * @bug     6427274 6347778 6469079
  * @summary Various bugs fixed while writing Compiler API Guide
  * @author  Peter von der Ah\u0081
--- a/j2se/test/tools/javac/apt.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/apt.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -24,8 +24,6 @@
 #
 
 # 
-# SCCS: @(#)apt.sh	1.6 07/07/18
-#
 # Usage:
 #  @run apt.sh <apt-args>
 #
--- a/j2se/test/tools/javac/assert/Attach.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/assert/Attach.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Attach.java	1.8 07/05/05
+ * @test
  * @bug 4478095
  * @summary assertion flag attached to wrong class
  * @author gafter
--- a/j2se/test/tools/javac/assert/DU1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/assert/DU1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DU1.java	1.6 07/05/05
+ * @test
  * @bug 4468510
  * @summary Check correct DU computation for assertions.
  * @author gafter
--- a/j2se/test/tools/javac/assert/DU2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/assert/DU2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DU2.java	1.6 07/05/05
+ * @test
  * @bug 4468510
  * @summary Check correct DU computation for assertions.
  * @author gafter
--- a/j2se/test/tools/javac/assert/Position.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/assert/Position.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)Position.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4469737
  * @summary Verify the source position for assertions.
  * @author gafter
--- a/j2se/test/tools/javac/binaryCompat/T1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/binaryCompat/T1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T1.java	1.6 07/05/05
+ * @test
  * @bug 4705305
  * @summary javac generates incorrect class_index for static ref by simple name
  * @author gafter
--- a/j2se/test/tools/javac/boxing/BoxedForeach.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/boxing/BoxedForeach.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BoxedForeach.java	1.9 07/05/05
+ * @test
  * @bug 4921543 5009601
  * @summary boxing/unboxing versus foreach crashes javac
  * @author gafter
--- a/j2se/test/tools/javac/boxing/Boxing1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/boxing/Boxing1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Boxing1.java	1.14 07/05/05
+ * @test
  * @bug 4869233 4872709 4868735 4921949 4921209 4965701 4934916 4975565 4974939
  * @summary Boxing/unboxing positive unit and regression tests
  * @author gafter
--- a/j2se/test/tools/javac/boxing/Boxing2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/boxing/Boxing2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Boxing2.java	1.7 07/05/05
+ * @test
  * @bug 4974939
  * @summary Boxing/unboxing negative unit and regression tests
  * @author gafter
--- a/j2se/test/tools/javac/boxing/Boxing4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/boxing/Boxing4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Boxing4.java	1.6 07/05/05
+ * @test
  * @bug 4999689
  * @summary Compiler incorrectly create Integer in "Character c = 95"
  * @author gafter
--- a/j2se/test/tools/javac/boxing/BoxingCaching.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/boxing/BoxingCaching.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BoxingCaching.java	1.6 07/05/05
+ * @test
  * @bug 4990346
  * @summary Verify autoboxed values are cached as required.
  * @author Joseph D. Darcy
--- a/j2se/test/tools/javac/boxing/NoBoxingBool.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/boxing/NoBoxingBool.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NoBoxingBool.java	1.7 07/05/05
+ * @test
  * @bug 6177400
  * @summary Boxing allowed with -source 1.4
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/boxing/NoBoxingByte.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/boxing/NoBoxingByte.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NoBoxingByte.java	1.7 07/05/05
+ * @test
  * @bug 6177400
  * @summary Boxing allowed with -source 1.4
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/boxing/NoBoxingChar.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/boxing/NoBoxingChar.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NoBoxingChar.java	1.7 07/05/05
+ * @test
  * @bug 6177400
  * @summary Boxing allowed with -source 1.4
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/boxing/NoBoxingDouble.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/boxing/NoBoxingDouble.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NoBoxingDouble.java	1.7 07/05/05
+ * @test
  * @bug 6177400
  * @summary Boxing allowed with -source 1.4
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/boxing/NoBoxingFloat.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/boxing/NoBoxingFloat.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NoBoxingFloat.java	1.7 07/05/05
+ * @test
  * @bug 6177400
  * @summary Boxing allowed with -source 1.4
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/boxing/NoBoxingInt.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/boxing/NoBoxingInt.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NoBoxingInt.java	1.7 07/05/05
+ * @test
  * @bug 6177400
  * @summary Boxing allowed with -source 1.4
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/boxing/NoBoxingLong.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/boxing/NoBoxingLong.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NoBoxingLong.java	1.7 07/05/05
+ * @test
  * @bug 6177400
  * @summary Boxing allowed with -source 1.4
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/boxing/NoBoxingShort.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/boxing/NoBoxingShort.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NoBoxingShort.java	1.7 07/05/05
+ * @test
  * @bug 6177400
  * @summary Boxing allowed with -source 1.4
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/boxing/T5082929.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/boxing/T5082929.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5082929.java	1.5 07/05/05
+ * @test
  * @bug     5082929
  * @summary Comparing Float and Integer
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/boxing/T6348760.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/boxing/T6348760.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6348760.java	1.7 07/05/05
+ * @test
  * @bug     6348760
  * @summary crash: java.lang.AssertionError at com.sun.tools.javac.comp.Lower.abstractLval(Lower.java:1853)
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/boxing/T6369051.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/boxing/T6369051.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6369051.java	1.8 07/05/05
+ * @test
  * @bug     6369051
  * @summary javac cannot handle += operator correctly in Genericized code
  * @author  Hiroshi.Yamaguchi@...
--- a/j2se/test/tools/javac/capture/Capture1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/capture/Capture1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Capture1.java	1.6 07/05/05
+ * @test
  * @bug 5011312
  * @summary wildcard capture (snapshotting)
  * @author gafter
--- a/j2se/test/tools/javac/capture/Capture2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/capture/Capture2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Capture2.java	1.6 07/05/05
+ * @test
  * @bug 5029773
  * @summary soundness problem with failure to subsitute wildcard as type formal argument
  * @author gafter
--- a/j2se/test/tools/javac/capture/Capture3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/capture/Capture3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Capture3.java	1.6 07/05/05
+ * @test
  * @bug 4916563
  * @summary new wildcard subst scheme breaks java.lang.ref
  * @author gafter
--- a/j2se/test/tools/javac/capture/Capture4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/capture/Capture4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Capture4.java	1.6 07/05/05
+ * @test
  * @bug 4916650
  * @summary wildcards versus recursive F-bounds
  * @author gafter
--- a/j2se/test/tools/javac/capture/Capture5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/capture/Capture5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Capture5.java	1.6 07/05/05
+ * @test
  * @bug 4916650
  * @summary wildcards versus recursive F-bounds
  * @author Peter von der Ahe
--- a/j2se/test/tools/javac/capture/Martin.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/capture/Martin.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)Martin.java	1.6 07/05/05
+ * @test
  * @bug     6384510
  * @summary improper handling of wildcard captures
  * @author  Martin Buchholz
--- a/j2se/test/tools/javac/cast/4916620/T4916620.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/cast/4916620/T4916620.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T4916620.java	1.10 07/05/05
+ * @test
  * @bug     4916620
  * @summary legal cast is rejected
  * @author  Christian Plesner Hansen
--- a/j2se/test/tools/javac/cast/5034609/T5034609.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/cast/5034609/T5034609.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5034609.java	1.9 07/05/05
+ * @test
  * @bug     5034609
  * @summary Capture conversion implementation breaks a cast test
  * @compile -Xlint:unchecked -Werror T5034609.java
--- a/j2se/test/tools/javac/cast/5043020/T5043020.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/cast/5043020/T5043020.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5043020.java	1.8 07/05/05
+ * @test
  * @bug     5043020
  * @summary Spurious unchecked cast warning
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/cast/5064736/T5064736.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/cast/5064736/T5064736.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5064736.java	1.9 07/05/05
+ * @test
  * @bug     5064736
  * @summary Incompatible types are cast without error
  * @compile/fail T5064736.java
--- a/j2se/test/tools/javac/cast/5065215/T5065215.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/cast/5065215/T5065215.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5065215.java	1.8 07/05/05
+ * @test
  * @bug     5065215
  * @summary javac reports unnecessary unchecked warning
  * @compile -Xlint:unchecked -Werror T5065215.java
--- a/j2se/test/tools/javac/cast/6211853/T6211853.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/cast/6211853/T6211853.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6211853.java	1.8 07/05/05
+ * @test
  * @bug     6211853
  * @summary "unchecked" warning for checked cast
  * @compile -Xlint:unchecked -Werror T6211853.java
--- a/j2se/test/tools/javac/cast/6219964/T6219964.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/cast/6219964/T6219964.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6219964.java	1.8 07/05/05
+ * @test
  * @bug     6219964
  * @summary Compiler allows illegal cast of anonymous inner class
  * @compile/fail T6219964.java
--- a/j2se/test/tools/javac/cast/6256789/T6256789.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/cast/6256789/T6256789.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6256789.java	1.9 07/05/05
+ * @test
  * @bug     6256789
  * @summary Legal cast rejected
  * @compile -Xlint:unchecked -Werror T6256789.java
--- a/j2se/test/tools/javac/cast/6286112/T6286112.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/cast/6286112/T6286112.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6286112.java	1.9 07/05/05
+ * @test
  * @bug     6286112
  * @summary Wildcard cast problem
  * @compile -Xlint:unchecked -Werror T6286112.java
--- a/j2se/test/tools/javac/cast/6295056/T6295056.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/cast/6295056/T6295056.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6295056.java	1.9 07/05/05
+ * @test
  * @bug     6295056
  * @summary Unchecked cast not reported as unsafe
  * @compile/fail -Xlint:unchecked -Werror T6295056.java
--- a/j2se/test/tools/javac/cast/6302214/T6302214.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/cast/6302214/T6302214.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6302214.java	1.10 07/05/05
+ * @test
  * @bug     6302214
  * @summary erroneus "inconvertible types" error
  * @compile -Xlint:unchecked -Werror T6302214.java
--- a/j2se/test/tools/javac/cast/6302214/T6302214a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/cast/6302214/T6302214a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6302214a.java	1.9 07/05/05
+ * @test
  * @bug     6302214
  * @summary erroneus "inconvertible types" error
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/cast/6302956/T6302956.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/cast/6302956/T6302956.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6302956.java	1.8 07/05/05
+ * @test
  * @bug     6302956
  * @summary Illegal cast allowed Properties -> Map<String, String>
  * @compile/fail T6302956.java
--- a/j2se/test/tools/javac/cast/6358534/T6358534.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/cast/6358534/T6358534.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6358534.java	1.8 07/05/05
+ * @test
  * @bug     6358534
  * @summary Cast involving raw superclass not recognized as unchecked
  * @compile T6358534.java
--- a/j2se/test/tools/javac/cast/BoxedArray.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/cast/BoxedArray.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BoxedArray.java	1.8 07/05/05
+ * @test
  * @bug 5014309
  * @summary REGRESSION: compiler allows cast from Integer[] to int[]
  * @author gafter
--- a/j2se/test/tools/javac/cast/forum/T654170.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/cast/forum/T654170.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T654170.java	1.7 07/05/05
+ * @test
  * @bug     5066774
  * @summary Bad interaction between generics, instanceof, inner classes, and subclasses
  * @author  RGibson
--- a/j2se/test/tools/javac/code/ArrayClone.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/code/ArrayClone.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ArrayClone.java	1.6 07/05/05
+ * @test
  * @bug 4329886
  * @summary Clone() on arrays compiled incorrectly
  * @author gafter
--- a/j2se/test/tools/javac/completion/C.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/completion/C.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)C.java	1.7 07/05/05
+ * @test
  * @bug 4433676
  * @summary javac dies with NullPointerException in com.sun.tools.javac.v8.comp.Resolve.find
  * @author gafter
--- a/j2se/test/tools/javac/conditional/Conditional.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/conditional/Conditional.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Conditional.java	1.6 07/05/05
+ * @test
  * @bug 5077054
  * @summary Conditional operator applies assignment conversion
  * @author Tim Hanson, BEA
--- a/j2se/test/tools/javac/constDebug/ConstDebug.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/constDebug/ConstDebug.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ConstDebug.java	1.7 07/05/05
+ * @test
  * @bug 4645152 4785453
  * @summary javac compiler incorrectly inserts <clinit> when -g is specified
  * @author gafter
--- a/j2se/test/tools/javac/crossPackageImpl/CrossPackageImplA.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/crossPackageImpl/CrossPackageImplA.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CrossPackageImplA.java	1.6 07/05/05
+ * @test
  * @bug 4362349
  * @summary Cannot override abstract method in same package
  * @author gafter
--- a/j2se/test/tools/javac/depDocComment/DeprecatedDocComment.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/depDocComment/DeprecatedDocComment.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test @(#)DeprecatedDocComment.java	1.6 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4241231 4785453
  * @summary Make sure the compiler scans for deprecated tag in legal 
  * docComment only
--- a/j2se/test/tools/javac/depDocComment/SuppressDeprecation.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/depDocComment/SuppressDeprecation.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test @(#)SuppressDeprecation.java	1.6 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4216683 4346296 4656556 4785453
  * @summary New rules for when deprecation messages are suppressed
  * @author gafter
--- a/j2se/test/tools/javac/depOverrides/annotation/Test3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/depOverrides/annotation/Test3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)Test3.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 5086088
  * @summary check warnings generated when overriding deprecated methods
  *
--- a/j2se/test/tools/javac/depOverrides/doccomment/Test3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/depOverrides/doccomment/Test3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)Test3.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 5086088
  * @summary check warnings generated when overriding deprecated methods
  *
--- a/j2se/test/tools/javac/enum/6350057/T6350057.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/6350057/T6350057.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6350057.java	1.8
+ * @test
  * @bug 6350057
  * @summary Test that parameters on implicit enum methods have the right kind
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/enum/6384542/T6384542.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/6384542/T6384542.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test    @(#)T6384542.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     6384542
  * @summary crash: test/tools/javac/versions/check.sh
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/enum/6384542/T6384542a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/6384542/T6384542a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test    @(#)T6384542a.java	1.2 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     6384542
  * @summary crash: test/tools/javac/versions/check.sh
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/enum/6424358/T6424358.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/6424358/T6424358.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6424358.java	1.6 07/05/05
+ * @test
  * @bug     6424358
  * @summary Synthesized static enum method values() is final
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/enum/AbstractEmptyEnum.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/AbstractEmptyEnum.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AbstractEmptyEnum.java	1.6 07/05/05
+ * @test
  * @bug 5009601
  * @summary empty enum cannot be abstract
  * @author Joseph D. Darcy
--- a/j2se/test/tools/javac/enum/AbstractEnum1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/AbstractEnum1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AbstractEnum1.java	1.7 07/05/05
+ * @test
  * @bug 5054976
  * @summary compiler fails to flag an enum abstract
  * @author gafter
--- a/j2se/test/tools/javac/enum/DA1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/DA1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DA1.java	1.6 07/05/05
+ * @test
  * @bug 5023177
  * @summary One can refer static, const static variables from instance initializers of enum
  * @author gafter
--- a/j2se/test/tools/javac/enum/DA2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/DA2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DA2.java	1.6 07/05/05
+ * @test
  * @bug 5023177
  * @summary One can refer static, const static variables from instance initializers of enum
  * @author gafter
--- a/j2se/test/tools/javac/enum/DA3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/DA3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DA3.java	1.6 07/05/05
+ * @test
  * @bug 5023177
  * @summary One can refer static, const static variables from instance initializers of enum
  * @author gafter
--- a/j2se/test/tools/javac/enum/Def.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/Def.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Def.java	1.6 07/05/05
+ * @test
  * @bug 5051679
  * @summary constant static fields cannot be referenced from const, instance initializers
  * @author gafter
--- a/j2se/test/tools/javac/enum/Enum1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/Enum1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Enum1.java	1.7 07/05/05
+ * @test
  * @bug 4945532
  * @summary enums: test output of values().toString()
  * @author gafter
--- a/j2se/test/tools/javac/enum/Enum2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/Enum2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Enum2.java	1.6 07/05/05
+ * @test
  * @summary enums: an enumeration type may not be extended
  * @author gafter
  *
--- a/j2se/test/tools/javac/enum/Enum3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/Enum3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Enum3.java	1.7 07/05/05
+ * @test
  * @bug 4945532
  * @summary enums: test switch
  * @author gafter
--- a/j2se/test/tools/javac/enum/EnumImplicitPrivateConstructor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/EnumImplicitPrivateConstructor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)EnumImplicitPrivateConstructor.java	1.8 07/05/05
+ * @test
  * @bug 5009601 5010455 5005748
  * @summary enum constructors can be declared private
  * @author Joseph D. Darcy
--- a/j2se/test/tools/javac/enum/EnumInit.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/EnumInit.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)EnumInit.java	1.6 07/05/05
+ * @test
  * @bug 5025833
  * @summary compiling annatations with nested enums issuing *.java leads to crash
  * @author gafter
--- a/j2se/test/tools/javac/enum/EnumPrivateConstructor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/EnumPrivateConstructor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)EnumPrivateConstructor.java	1.6 07/05/05
+ * @test
  * @bug 5009601
  * @summary enum constructors can be declared private
  * @author Joseph D. Darcy
--- a/j2se/test/tools/javac/enum/EnumProtectedConstructor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/EnumProtectedConstructor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)EnumProtectedConstructor.java	1.6 07/05/05
+ * @test
  * @bug 5009601
  * @summary enum constructors cannot be declared public or protected
  * @author Joseph D. Darcy
--- a/j2se/test/tools/javac/enum/EnumPublicConstructor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/EnumPublicConstructor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)EnumPublicConstructor.java	1.6 07/05/05
+ * @test
  * @bug 5009601
  * @summary enum constructors cannot be declared public or protected
  * @author Joseph D. Darcy
--- a/j2se/test/tools/javac/enum/EnumSwitch1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/EnumSwitch1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)EnumSwitch1.java	1.6 07/05/05
+ * @test
  * @bug 4936393
  * @summary enum switch case labels required to be unqualified.
  * @author gafter
--- a/j2se/test/tools/javac/enum/EnumSwitch2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/EnumSwitch2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)EnumSwitch2.java	1.6 07/05/05
+ * @test
  * @bug 4936393
  * @summary enum switch case labels required to be unqualified.
  * @author gafter
--- a/j2se/test/tools/javac/enum/EnumSwitch3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/EnumSwitch3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)EnumSwitch3.java	1.6 07/05/05
+ * @test
  * @bug 4975914
  * @summary javac crash when enum defined after use
  * @author gafter
--- a/j2se/test/tools/javac/enum/EnumSwitch4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/EnumSwitch4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)EnumSwitch4.java	1.6 07/05/05
+ * @test
  * @bug 5006662
  * @summary enum switch on null fails to throw NullPointerException
  * @author gafter
--- a/j2se/test/tools/javac/enum/ExplicitlyAbstractEnum1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/ExplicitlyAbstractEnum1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ExplicitlyAbstractEnum1.java	1.6 07/05/05
+ * @test
  * @bug 5009601
  * @summary enum's cannot be explicitly declared abstract
  * @author Joseph D. Darcy
--- a/j2se/test/tools/javac/enum/ExplicitlyAbstractEnum2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/ExplicitlyAbstractEnum2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ExplicitlyAbstractEnum2.java	1.6 07/05/05
+ * @test
  * @bug 5009601
  * @summary enum's cannot be explicitly declared abstract even if they are abstract
  * @author Joseph D. Darcy
--- a/j2se/test/tools/javac/enum/ExplicitlyFinalEnum1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/ExplicitlyFinalEnum1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ExplicitlyFinalEnum1.java	1.6 07/05/05
+ * @test
  * @bug 5009601
  * @summary enum's cannot be explicitly declared final even if they are
  * @author Joseph D. Darcy
--- a/j2se/test/tools/javac/enum/ExplicitlyFinalEnum2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/ExplicitlyFinalEnum2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ExplicitlyFinalEnum2.java	1.6 07/05/05
+ * @test
  * @bug 5009601
  * @summary enum's cannot be explicitly declared final
  * @author Joseph D. Darcy
--- a/j2se/test/tools/javac/enum/FauxEnum1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/FauxEnum1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FauxEnum1.java	1.6 07/05/05
+ * @test
  * @bug 5009574
  * @summary verify java.lang.Enum can't be directly subclassed
  * @author Joseph D. Darcy
--- a/j2se/test/tools/javac/enum/FauxEnum2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/FauxEnum2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FauxEnum2.java	1.6 07/05/05
+ * @test
  * @bug 5009574
  * @summary verify java.lang.Enum can't be directly subclassed
  * @author Joseph D. Darcy
--- a/j2se/test/tools/javac/enum/FauxEnum3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/FauxEnum3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FauxEnum3.java	1.6 07/05/05
+ * @test
  * @bug 5009574
  * @summary verify an enum type can't be directly subclassed
  * @author Joseph D. Darcy
--- a/j2se/test/tools/javac/enum/FauxSpecialEnum1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/FauxSpecialEnum1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FauxSpecialEnum1.java	1.6 07/05/05
+ * @test
  * @bug 5009601
  * @summary verify specialized enum classes can't be abstract
  * @author Joseph D. Darcy
--- a/j2se/test/tools/javac/enum/FauxSpecialEnum2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/FauxSpecialEnum2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FauxSpecialEnum2.java	1.6 07/05/05
+ * @test
  * @bug 5009601
  * @summary verify specialized enum classes can't be abstract
  * @author Joseph D. Darcy
--- a/j2se/test/tools/javac/enum/LocalEnum.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/LocalEnum.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)LocalEnum.java	1.6 07/05/05
+ * @test
  * @bug 5019609
  * @summary javac fails to reject local enums
  * @author gafter
--- a/j2se/test/tools/javac/enum/NestedEnum.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/NestedEnum.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NestedEnum.java	1.6 07/05/05
+ * @test
  * @bug 5071831
  * @summary javac allows enum in an inner class
  * @author gafter
--- a/j2se/test/tools/javac/enum/NoFinal.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/NoFinal.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NoFinal.java	1.8 07/05/05
+ * @test
  * @bug 5097250 5087624
  * @summary Finalize methods on enums must be compile time error
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/enum/NoFinal2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/NoFinal2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NoFinal2.java	1.8 07/05/05
+ * @test
  * @bug 5097250 5087624
  * @summary Finalize methods on enums must be compile time error
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/enum/NoFinal3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/NoFinal3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NoFinal3.java	1.8 07/05/05
+ * @test
  * @bug 5097250 5087624
  * @summary Finalize methods on enums must be compile time error
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/enum/NoFinal4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/NoFinal4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NoFinal4.java	1.8 07/05/05
+ * @test
  * @bug 5097250 5087624
  * @summary Finalize methods on enums must be compile time error
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/enum/NoFinal5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/NoFinal5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NoFinal5.java	1.8 07/05/05
+ * @test
  * @bug 5097250 5087624
  * @summary Finalize methods on enums must be compile time error
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/enum/OkFinal.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/OkFinal.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)OkFinal.java	1.7 07/05/05
+ * @test
  * @bug 5097250
  * @summary Finalize methods on enums must be compile time error
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/enum/SynthValues.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/SynthValues.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SynthValues.java	1.6 07/05/05
+ * @test
  * @bug 4984627
  * @summary Enums: +VALUES field has no synthetic attribute
  * @author gafter
--- a/j2se/test/tools/javac/enum/T5075242.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/T5075242.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T5075242.java	1.6 07/05/05
+ * @test
  * @bug 5075242
  * @summary Cannot make compound type involving Enums
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/enum/T5081785.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/T5081785.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T5081785.java	1.6 07/05/05
+ * @test
  * @bug 5081785
  *
  * @summary Empty Enums allowed in non-static contexts
--- a/j2se/test/tools/javac/enum/TrailingComma.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/TrailingComma.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TrailingComma.java	1.6 07/05/05
+ * @test
  * @bug 4936392
  * @summary enum spec allows trailing comma on enum constant list
  * @author gafter
--- a/j2se/test/tools/javac/enum/UserValue.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/UserValue.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UserValue.java	1.6 07/05/05
+ * @test
  * @bug 4901558
  * @summary compiler crash on user-defined valueOf in enum
  * @author gafter
--- a/j2se/test/tools/javac/enum/ValueOf.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/ValueOf.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ValueOf.java	1.7 07/05/05
+ * @test
  * @bug 4872708 5058132
  * @summary Improper signature for valueOf
  * @author gafter
--- a/j2se/test/tools/javac/enum/enumSwitch/EnumSwitch.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/enumSwitch/EnumSwitch.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)EnumSwitch.java	1.6 07/05/05
+ * @test
  * @bug 5055142
  * @summary javac-generated code doesn't obey binary compatibility for enums
  * @author gafter
--- a/j2se/test/tools/javac/enum/forwardRef/T6425594.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/forwardRef/T6425594.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test    @(#)T6425594.java	1.2 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     6424491
  * @summary javac accepts illegal forward references
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/enum/forwardRef/TestEnum1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/forwardRef/TestEnum1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TestEnum1.java	1.7 07/05/05
+ * @test
  * @bug     6209839
  * @summary Illegal forward reference to enum constants allowed by javac
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/enum/forwardRef/TestEnum2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/forwardRef/TestEnum2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TestEnum2.java	1.7 07/05/05
+ * @test
  * @bug     6209839
  * @summary Illegal forward reference to enum constants allowed by javac
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/enum/forwardRef/TestEnum3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/forwardRef/TestEnum3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TestEnum3.java	1.7 07/05/05
+ * @test
  * @bug     6209839
  * @summary Illegal forward reference to enum constants allowed by javac
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/enum/forwardRef/TestEnum4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/forwardRef/TestEnum4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TestEnum4.java	1.7 07/05/05
+ * @test
  * @bug     6209839
  * @summary Illegal forward reference to enum constants allowed by javac
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/enum/forwardRef/TestEnum5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/forwardRef/TestEnum5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TestEnum5.java	1.7 07/05/05
+ * @test
  * @bug     6209839
  * @summary Illegal forward reference to enum constants allowed by javac
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/enum/forwardRef/TestEnum6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/enum/forwardRef/TestEnum6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TestEnum6.java	1.6 07/05/05
+ * @test
  * @bug     6424491
  * @summary Cannot initialise nested enums
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/expression/NullAppend.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/expression/NullAppend.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NullAppend.java	1.6 07/05/05
+ * @test
  * @bug 4620794
  * @summary compiler allows null + null
  * @author gafter
--- a/j2se/test/tools/javac/expression/NullAppend2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/expression/NullAppend2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NullAppend2.java	1.6 07/05/05
+ * @test
  * @bug 4717193
  * @summary javac improperly allows null + 1
  * @author gafter
--- a/j2se/test/tools/javac/expression/ObjectAppend.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/expression/ObjectAppend.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ObjectAppend.java	1.6 07/05/05
+ * @test
  * @bug 4642850
  * @summary compiler allows Object += String
  * @author gafter
--- a/j2se/test/tools/javac/falseCycle/FalseCycle.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/falseCycle/FalseCycle.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FalseCycle.java	1.8 07/05/05
+ * @test
  * @bug 4471999
  * @summary Cyclic inheritance error reported when multiple classes in source file.
  *
--- a/j2se/test/tools/javac/falseCycle/FalseCycleBase.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/falseCycle/FalseCycleBase.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,9 +22,7 @@
  */
 
 /*
- * @(#)FalseCycleBase.java	1.7 07/05/05
- *
- * Auxilliary file for falseCycle
+ * Auxiliary file for falseCycle
  */
 
 class FalseCycleBase {}
--- a/j2se/test/tools/javac/fatalErrors/NoJavaLang.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/fatalErrors/NoJavaLang.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)NoJavaLang.java	1.7 07/05/05
+ * @test
  * @bug 4263768 4785453
  * @summary Verify that the compiler does not crash when java.lang is not
  * found.
--- a/j2se/test/tools/javac/foreach/Foreach.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/foreach/Foreach.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Foreach.java	1.9 07/05/05
+ * @test
  * @bug 4855355
  * @summary implement "foreach" loops as specified in JSR 201
  * @author gafter
--- a/j2se/test/tools/javac/foreach/GenericIterator.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/foreach/GenericIterator.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)GenericIterator.java	1.6 07/05/05
+ * @test
  * @bug 4898618
  * @summary extended 'for' with generic collections causes the compiler to crash
  * @author gafter
--- a/j2se/test/tools/javac/foreach/IntersectIterator.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/foreach/IntersectIterator.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)IntersectIterator.java	1.6 07/05/05
+ * @test
  * @bug 5003207
  * @summary new "for" statement  fails to cast to second upper bound
  * @author gafter
--- a/j2se/test/tools/javac/foreach/ListOfListTest.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/foreach/ListOfListTest.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ListOfListTest.java	1.7 07/05/05
+ * @test
  * @bug 4915435
  * @summary NullPointerError in Resolve.findMethod() with foreach vs generics
  * @author gafter
--- a/j2se/test/tools/javac/foreach/SpecIterable.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/foreach/SpecIterable.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SpecIterable.java	1.6 07/05/05
+ * @test
  * @bug 4911157
  * @summary Runtime error because of missing method in iterator
  * @author gafter
--- a/j2se/test/tools/javac/foreach/StaticBlock.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/foreach/StaticBlock.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)StaticBlock.java	1.6 07/05/05
+ * @test
  * @bug 4881171
  * @summary compiler crash (NullPointerException) with foreach in static context
  * @author gafter
--- a/j2se/test/tools/javac/foreach/SuperfluousAbstract.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/foreach/SuperfluousAbstract.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SuperfluousAbstract.java	1.6 07/05/05
+ * @test
  * @bug 4912795
  * @summary AbstractMethodError throws if not redeclare abstract iterator() method
  * @author gafter
--- a/j2se/test/tools/javac/generics/5066774/T5066774.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/5066774/T5066774.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5066774.java	1.7 07/05/05
+ * @test
  * @bug     5066774
  * @summary Bad interaction between generics, instanceof, inner classes, and subclasses
  * @compile T5066774.java
--- a/j2se/test/tools/javac/generics/5086027/T5086027.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/5086027/T5086027.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5086027.java	1.7 07/05/05
+ * @test
  * @bug     5086027
  * @summary Inner class of generic class cannot extend Throwable
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/5086027/T5086027pos.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/5086027/T5086027pos.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5086027pos.java	1.7 07/05/05
+ * @test
  * @bug     5086027
  * @summary Inner class of generic class cannot extend Throwable
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/6192945/Method.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6192945/Method.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Method.java	1.4 07/05/05
+ * @test
  * @bug     6192945
  * @summary Declaration order of interdependent generic types should not matter
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/6192945/T6192945.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6192945/T6192945.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6192945.java	1.5 07/05/05
+ * @test
  * @bug     6192945
  * @summary Declaration order of interdependent generic types should not matter
  * @compile T6192945.java
--- a/j2se/test/tools/javac/generics/6207386/T6207386.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6207386/T6207386.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test    @(#)T6207386.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     6207386
  * @summary Undecidable type system leads to crash
  * @author  Martin Odersky
--- a/j2se/test/tools/javac/generics/6207386/Test.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6207386/Test.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Test.java	1.7 07/05/05
+ * @test
  * @bug     6207386
  * @summary Undecidable type system leads to crash
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/6213818/T6213818.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6213818/T6213818.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6213818.java	1.8 07/05/05
+ * @test
  * @bug     6213818
  * @summary Compilercrash with NullPointerException at SubstFcn.subst(Types.java:2057)
  * @compile T6213818.java
--- a/j2se/test/tools/javac/generics/6218229/T6218229.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6218229/T6218229.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6218229.java	1.7 07/05/05
+ * @test
  * @bug     6218229
  * @summary NPE in Check.checkCompatibleConcretes
  * @compile T6218229.java
--- a/j2se/test/tools/javac/generics/6227936/Orig.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6227936/Orig.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)Orig.java	1.8 07/05/05
+ * @test
  * @bug     6227936
  * @summary Wrong type of inherited method using specialized type parameter
  * @compile/fail Orig.java
--- a/j2se/test/tools/javac/generics/6227936/T6227936.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6227936/T6227936.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6227936.java	1.8 07/05/05
+ * @test
  * @bug     6227936
  * @summary Wrong type of inherited method using specialized type parameter
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/6245699/T6245699.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6245699/T6245699.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6245699.java	1.7 07/05/05
+ * @test
  * @bug     6245699
  * @summary Missing bridge for final method (gives AbstractMethodError at runtime)
  */
--- a/j2se/test/tools/javac/generics/6245699/T6245699a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6245699/T6245699a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6245699a.java	1.7 07/05/05
+ * @test
  * @bug     6270396 6245699
  * @summary Missing bridge for final method (gives AbstractMethodError at runtime)
  */
--- a/j2se/test/tools/javac/generics/6245699/T6245699b.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6245699/T6245699b.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6245699b.java	1.7 07/05/05
+ * @test
  * @bug     6270396 6245699
  * @summary Missing bridge for final method (gives AbstractMethodError at runtime)
  * @compile/fail T6245699b.java
--- a/j2se/test/tools/javac/generics/6245699/T6245699c.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6245699/T6245699c.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6245699c.java	1.7 07/05/05
+ * @test
  * @bug     6245699
  * @summary Missing bridge for final method (gives AbstractMethodError at runtime)
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/6268476/T6268476.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6268476/T6268476.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6268476.java	1.8 07/05/05
+ * @test
  * @bug     6268476
  * @summary Arrays and super wildcards broken
  * @compile T6268476.java
--- a/j2se/test/tools/javac/generics/6292765/T6292765.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6292765/T6292765.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6292765.java	1.5 07/05/05
+ * @test
  * @bug     6292765
  * @summary NPE at Check.checkCompatibleConcretes
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/6332204/T6332204.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6332204/T6332204.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6332204.java	1.7 07/05/05
+ * @test
  * @bug     6332204
  * @summary com.sun.tools.javac.code.Types.lub() throws NPE
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/6332204/T6346876.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6332204/T6346876.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6346876.java	1.8 07/05/05
+ * @test
  * @bug     6332204
  * @summary com.sun.tools.javac.code.Types.lub() throws NPE
  * @compile T6346876.java
--- a/j2se/test/tools/javac/generics/6356636/T6356636.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6356636/T6356636.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6356636.java	1.7 07/05/05
+ * @test
  * @bug     6356636
  * @summary Compiler fails to read signatures of inner classes with non-generic outer instance leading to crash
  * @compile a/AbstractFoo.java a/Bar.java
--- a/j2se/test/tools/javac/generics/6359951/T6359951.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6359951/T6359951.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test    @(#)T6359951.java	1.3 07/04/05  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     6359951
  * @summary Crash when using class field
  * 
--- a/j2se/test/tools/javac/generics/6372782/T6372782.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6372782/T6372782.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6372782.java	1.4 07/05/05
+ * @test
  * @bug     6372782 6292765
  * @summary possibly invalid "abstract method not implemented" emitted by compiler
  * @author  Alex Lam S.L.
--- a/j2se/test/tools/javac/generics/6413682/T6413682.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6413682/T6413682.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6413682.java	1.7 07/05/05
+ * @test
  * @bug     6413682
  * @summary Compiler confused about implicit type args and arrays
  * @compile/fail T6413682.java
--- a/j2se/test/tools/javac/generics/6413682/TestPos.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6413682/TestPos.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TestPos.java	1.4 07/05/05
+ * @test
  * @bug     6413682
  * @summary Compiler confused about implicit type args and arrays
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/6495506/T6495506.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/6495506/T6495506.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6495506.java	1.5 07/05/05
+ * @test
  * @bug     6495506
  * @summary Cast inserted by generics can cause IllegalAccessError
  * @compile A.java
--- a/j2se/test/tools/javac/generics/ArrayClone.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/ArrayClone.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ArrayClone.java	1.6 07/05/05
+ * @test
  * @bug 4900415
  * @summary The clone method on arrays should be strongly typed
  * @author gafter
--- a/j2se/test/tools/javac/generics/ArrayTypearg.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/ArrayTypearg.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ArrayTypearg.java	1.6 07/05/05
+ * @test
  * @bug 4881205
  * @summary generics: array as generic argument type fails
  * @author gafter
--- a/j2se/test/tools/javac/generics/BridgeClash.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/BridgeClash.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BridgeClash.java	1.6 07/05/05
+ * @test
  * @bug 4825927
  * @summary generics: incorrect erasure clash reported
  * @author gafter
--- a/j2se/test/tools/javac/generics/BridgeOrder.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/BridgeOrder.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BridgeOrder.java	1.6 07/05/05
+ * @test
  * @bug 4856981
  * @summary generics: overridden method gets invoked (bridge method problem)
  * @author gafter
--- a/j2se/test/tools/javac/generics/BridgeRestype.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/BridgeRestype.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BridgeRestype.java	1.7 07/05/05
+ * @test
  * @bug 4902704
  * @summary javac generates inappropriate bridge methods in -source 1.4
  * @author gafter
--- a/j2se/test/tools/javac/generics/CastCrash.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/CastCrash.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastCrash.java	1.7 07/05/05
+ * @test
  * @bug 5025346
  * @summary Crash on cast
  * @author gafter
--- a/j2se/test/tools/javac/generics/Casting.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/Casting.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Casting.java	1.9 07/05/05
+ * @test
  * @bug 4468840
  * @summary generics problem with casting
  * @author gafter
--- a/j2se/test/tools/javac/generics/Casting2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/Casting2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Casting2.java	1.8 07/05/05
+ * @test
  * @bug 4923047
  * @summary stack overflow error compiling EnumSet.java
  * @author gafter
--- a/j2se/test/tools/javac/generics/Casting3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/Casting3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Casting3.java	1.6 07/05/05
+ * @test
  * @bug 5040403
  * @summary compiler crash with stack overflow on unchecked cast
  * @author gafter
--- a/j2se/test/tools/javac/generics/Casting4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/Casting4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Casting4.java	1.6 07/05/05
+ * @test
  * @bug 5041230
  * @summary Cannot cast Comparable<?>s
  * @author gafter
--- a/j2se/test/tools/javac/generics/CatchTyparam.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/CatchTyparam.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CatchTyparam.java	1.6 07/05/05
+ * @test
  * @bug 5057445
  * @summary javac allows catching type parameter
  * @author gafter
--- a/j2se/test/tools/javac/generics/Conditional.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/Conditional.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Conditional.java	1.6 07/05/05
+ * @test
  * @bug 4881179 4883239
  * @summary Rule for semantics of ?: in the presence of generics and generic class Class
  * @author gafter
--- a/j2se/test/tools/javac/generics/Covar2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/Covar2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Covar2.java	1.8 07/05/05
+ * @test
  * @bug 4949303 4960369 4965756
  * @summary Additional unit tests for covariant returns
  * @author gafter
--- a/j2se/test/tools/javac/generics/Covar3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/Covar3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Covar3.java	1.7 07/05/05
+ * @test
  * @bug 4907941
  * @summary missing ambiguity error
  * @author gafter
--- a/j2se/test/tools/javac/generics/Covar4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/Covar4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Covar4.java	1.6 07/05/05
+ * @test
  * @bug 4965756
  * @summary no covariant returns involving primitives
  * @author gafter
--- a/j2se/test/tools/javac/generics/Crash01.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/Crash01.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Crash01.java	1.6 07/05/05
+ * @test
  * @bug 4856978
  * @summary generics: crash when using class in bound defined after usage
  * @author gafter
--- a/j2se/test/tools/javac/generics/Crash02.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/Crash02.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Crash02.java	1.7 07/05/05
+ * @test
  * @bug 4881292
  * @summary compiler crash in class writer
  * @author gafter
--- a/j2se/test/tools/javac/generics/CyclicInheritance3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/CyclicInheritance3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 1.6 07/05/05
+ * @test
  * @bug 4861743
  * @summary generics: incorrect cyclic inheritance error with type parameters
  *
--- a/j2se/test/tools/javac/generics/CyclicInheritance5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/CyclicInheritance5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test 1.6 07/05/05
+ * @test
  * @bug 4862621
  * @summary generics: incorrect cyclic inheritance error
  *
--- a/j2se/test/tools/javac/generics/ErasureClashCrash.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/ErasureClashCrash.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ErasureClashCrash.java	1.6 07/05/05
+ * @test
  * @bug 4951670
  * @summary javac crash with improper overrider
  * @author gafter
--- a/j2se/test/tools/javac/generics/ExtendedRaw1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/ExtendedRaw1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ExtendedRaw1.java	1.9 07/05/05
+ * @test
  * @bug 4463802
  * @summary generics: extension of raw not treated as raw.
  * @author gafter
--- a/j2se/test/tools/javac/generics/ExtendedRaw2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/ExtendedRaw2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ExtendedRaw2.java	1.7 07/05/05
+ * @test
  * @bug 4463802
  * @summary generics: extension of raw not treated as raw.
  * @author gafter
--- a/j2se/test/tools/javac/generics/ExtendedRaw3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/ExtendedRaw3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ExtendedRaw3.java	1.7 07/05/05
+ * @test
  * @bug 4632984
  * @summary generics: bridge method not considered to fulfil interface in abstract class
  * @author gafter
--- a/j2se/test/tools/javac/generics/ExtendedRaw4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/ExtendedRaw4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ExtendedRaw4.java	1.6 07/05/05
+ * @test
  * @bug 5030027
  * @summary REGRESSION: compatibility problem inheriting raw type
  * @author gafter
--- a/j2se/test/tools/javac/generics/FinalBridge.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/FinalBridge.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FinalBridge.java	1.8 07/05/05
+ * @test
  * @bug 4633201
  * @summary generics: bridge for inherited final method can cause verify error
  * @author gafter
--- a/j2se/test/tools/javac/generics/GenLit1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/GenLit1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)GenLit1.java	1.6 07/05/05
+ * @test
  * @bug 4987844
  * @summary compiler crash with ill-formed annotation
  * @author gafter
--- a/j2se/test/tools/javac/generics/GenLit2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/GenLit2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)GenLit2.java	1.6 07/05/05
+ * @test
  * @bug 4942201
  * @summary java allows class literal on generic type parameter array
  * @author gafter
--- a/j2se/test/tools/javac/generics/GenericAnonCtor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/GenericAnonCtor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)GenericAnonCtor.java	1.6 07/05/05
+ * @test
  * @bug 4985520
  * @summary javac crash on parameterized anonymous constructor invocation
  * @author gafter
--- a/j2se/test/tools/javac/generics/GenericMerge.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/GenericMerge.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)GenericMerge.java	1.6 07/05/05
+ * @test
  * @bug 4838146
  * @summary generics: compiler crash merging signatures of generic methods
  * @author gafter
--- a/j2se/test/tools/javac/generics/GenericOverride.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/GenericOverride.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)GenericOverride.java	1.6 07/05/05
+ * @test
  * @bug 5041233
  * @summary Cannot override non-trivial generic method
  * @author gafter
--- a/j2se/test/tools/javac/generics/GenericThrowable.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/GenericThrowable.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)GenericThrowable.java	1.6 07/05/05
+ * @test
  * @bug 4984157
  * @summary java.lang.Throwable inheritance in parameterized type
  * @author gafter
--- a/j2se/test/tools/javac/generics/GetClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/GetClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)GetClass.java	1.7 07/05/05
+ * @test
  * @bug 4919255 4982096 5004321
  * @summary the type of x.getClass() is no longer Class<? extends X>
  * @author gafter
--- a/j2se/test/tools/javac/generics/GetClass2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/GetClass2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)GetClass2.java	1.6 07/05/05
+ * @test
  * @bug 4982096 5004321
  * @summary the type of x.getClass() is Class<? extends |X|>
  * @author seligman
--- a/j2se/test/tools/javac/generics/InheritanceConflict.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/InheritanceConflict.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InheritanceConflict.java	1.6 07/05/05
+ * @test
  * @bug 4984158
  * @summary two inherited methods with same signature
  * @author gafter
--- a/j2se/test/tools/javac/generics/InheritanceConflict2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/InheritanceConflict2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InheritanceConflict2.java	1.6 07/05/05
+ * @test
  * @bug 4984158
  * @summary two inherited methods with same signature
  * @author gafter
--- a/j2se/test/tools/javac/generics/InheritanceConflict3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/InheritanceConflict3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InheritanceConflict3.java	1.6 07/05/05
+ * @test
  * @bug 4984158
  * @summary two inherited methods with same signature
  * @author darcy
--- a/j2se/test/tools/javac/generics/InnerInterface1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/InnerInterface1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InnerInterface1.java	1.7 07/05/05
+ * @test
  * @bug 4452899
  * @summary Inner interfaces are not treated as static
  * @author gafter
--- a/j2se/test/tools/javac/generics/InnerInterface2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/InnerInterface2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InnerInterface2.java	1.7 07/05/05
+ * @test
  * @bug 4482388
  * @summary inner interface causes "not within bounds"
  * @author gafter
--- a/j2se/test/tools/javac/generics/InstanceOf1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/InstanceOf1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InstanceOf1.java	1.6 07/05/05
+ * @test
  * @bug 4982096 5004321
  * @summary the type in an instanceof expression must be reifiable
  * @author seligman
--- a/j2se/test/tools/javac/generics/InstanceOf2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/InstanceOf2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InstanceOf2.java	1.6 07/05/05
+ * @test
  * @bug 4982096 5004321
  * @summary the type in an instanceof expression must be reifiable
  * @author seligman
--- a/j2se/test/tools/javac/generics/InstanceOf3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/InstanceOf3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InstanceOf3.java	1.6 07/05/05
+ * @test
  * @bug 4982096 5004321
  * @summary the type in an instanceof expression must be reifiable
  * @author seligman
--- a/j2se/test/tools/javac/generics/InterfaceCast1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/InterfaceCast1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InterfaceCast1.java	1.10 07/05/05
+ * @test
  * @bug 4453032
  * @summary overridden interface method causes the compiler to reject cast
  * @author gafter
--- a/j2se/test/tools/javac/generics/LoadOrder.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/LoadOrder.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)LoadOrder.java	1.7 07/05/05
+ * @test
  * @bug 4629627
  * @summary generics: generic class files can cause recursive class loading (crashing javac)
  * @author gafter
--- a/j2se/test/tools/javac/generics/MissingBridge.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/MissingBridge.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)MissingBridge.java	1.6 07/05/05
+ * @test
  * @bug 5021445
  * @summary Calling inherited generics method via interface causes AbstractMethodError
  * @author gafter
--- a/j2se/test/tools/javac/generics/MissingCast.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/MissingCast.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)MissingCast.java	1.7 07/05/05
+ * @test
  * @bug 5035001
  * @summary redundant cast with generified APIs causes verify error
  * @author gafter
--- a/j2se/test/tools/javac/generics/Multibound1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/Multibound1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Multibound1.java	1.7 07/05/05
+ * @test
  * @bug 4482403
  * @summary javac failed to check second bound
  * @author gafter
--- a/j2se/test/tools/javac/generics/MultipleInheritance.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/MultipleInheritance.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)MultipleInheritance.java	1.9 07/05/05
+ * @test
  * @bug 4480813
  * @summary generics problem with multiple interface extension
  * @author gafter
--- a/j2se/test/tools/javac/generics/NameOrder.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/NameOrder.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NameOrder.java	1.6 07/05/05
+ * @test
  * @bug 4851006
  * @summary generics: type inference failure due to a bug in ClassSymbol.isLess
  * @author gafter
--- a/j2se/test/tools/javac/generics/Nonlinear.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/Nonlinear.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Nonlinear.java	1.10 07/05/05
+ * @test
  * @bug 4607420
  * @summary A bug in the original JSR14 generics specification 
  *          created a loophole in the type system.
--- a/j2se/test/tools/javac/generics/ParametricException.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/ParametricException.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ParametricException.java	1.7 07/05/05
+ * @test
  * @bug 4509267
  * @summary generics: parametric exception type versus overriding
  * @author gafter
--- a/j2se/test/tools/javac/generics/ParenVerify.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/ParenVerify.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ParenVerify.java	1.6 07/05/05
+ * @test
  * @bug 4881397
  * @summary generics: verify error when redundant parens used!
  * @author gafter
--- a/j2se/test/tools/javac/generics/PermuteBound.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/PermuteBound.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)PermuteBound.java	1.6 07/05/05
+ * @test
  * @bug 4698375
  * @summary generics: subtyping problem when type parameters permuted
  * @author gafter
--- a/j2se/test/tools/javac/generics/PrimitiveClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/PrimitiveClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)PrimitiveClass.java	1.7 07/05/05
+ * @test
  * @bug 5028351
  * @summary int.class and ilk have wrong type (5028351 rejected)
  * @author gafter
--- a/j2se/test/tools/javac/generics/PrimitiveVariant.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/PrimitiveVariant.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)PrimitiveVariant.java	1.7 07/05/05
+ * @test
  * @bug 4471667
  * @summary compiler allows overriding with different primitive return type
  * @author gafter
--- a/j2se/test/tools/javac/generics/RawClient.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/RawClient.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)RawClient.java	1.8 07/05/05
+ * @test
  * @bug 5011073
  * @summary javac should implement JLS3 three-pass overload resolution
  * @author gafter
--- a/j2se/test/tools/javac/generics/RefEqual.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/RefEqual.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)RefEqual.java	1.6 07/05/05
+ * @test
  * @bug 4948130
  * @summary casting conversion checks changed for covariant returns
  * @author gafter
--- a/j2se/test/tools/javac/generics/ReverseOrder.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/ReverseOrder.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ReverseOrder.java	1.7 07/05/05
+ * @test
  * @bug 4898502
  * @summary problem with generic signature for reverseOrder
  * @author gafter
--- a/j2se/test/tools/javac/generics/SelfImplement.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/SelfImplement.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SelfImplement.java	1.6 07/05/05
+ * @test
  * @bug 4725668
  * @summary generics: reject implementation with incorrect return type
  * @author gafter
--- a/j2se/test/tools/javac/generics/SilentUnchecked.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/SilentUnchecked.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SilentUnchecked.java	1.7 07/05/05
+ * @test
  * @bug 5029336
  * @summary unchecked conversion from raw to reifiable generic requires no warning
  * @author gafter
--- a/j2se/test/tools/javac/generics/SuperTypeargs.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/SuperTypeargs.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SuperTypeargs.java	1.6 07/05/05
+ * @test
  * @bug 4906605
  * @summary compilation error for super.<T,E>f() and ClassName.super.<T,E>f()
  * @author gafter
--- a/j2se/test/tools/javac/generics/T4661029.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T4661029.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,6 @@
  */
 
 /*
- * @(#)T4661029.java	1.6 07/05/05
  * @bug 4661029
  * @summary generics: assertion error using Arrays.fill
  * @author gafter
--- a/j2se/test/tools/javac/generics/T4683314.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T4683314.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4683314.java	1.6 07/05/05
+ * @test
  * @bug 4683314
  * @summary generics: overload resolution error in non-generic code
  * @author gafter
--- a/j2se/test/tools/javac/generics/T4684378.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T4684378.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4684378.java	1.6 07/05/05
+ * @test
  * @bug 4684378
  * @summary generics: verify error in generated bytecode
  * @author gafter
--- a/j2se/test/tools/javac/generics/T4695348.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T4695348.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4695348.java	1.6 07/05/05
+ * @test
  * @bug 4695348
  * @summary generics: compiler allows ref to type bounds in static members
  * @author gafter
--- a/j2se/test/tools/javac/generics/T4695415.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T4695415.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4695415.java	1.6 07/05/05
+ * @test
  * @bug 4695415
  * @summary generics: bug in type inference when method result used as an argument
  * @author gafter
--- a/j2se/test/tools/javac/generics/T4695847.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T4695847.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4695847.java	1.6 07/05/05
+ * @test
  * @bug 4695847
  * @summary generics: problem with inference of primitive return values
  * @author gafter
--- a/j2se/test/tools/javac/generics/T4711570.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T4711570.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4711570.java	1.6 07/05/05
+ * @test
  * @bug 4711570
  * @summary generics: problem with methods when type parameter doesn't appear in signature
  * @author gafter
--- a/j2se/test/tools/javac/generics/T4711572.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T4711572.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4711572.java	1.6 07/05/05
+ * @test
  * @bug 4711572
  * @summary generics: problem with type inference for recursive methods
  * @author gafter
--- a/j2se/test/tools/javac/generics/T4711694.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T4711694.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4711694.java	1.6 07/05/05
+ * @test
  * @bug 4711694
  * @summary generics: missing bridge method for inherited implementation
  * @author gafter
--- a/j2se/test/tools/javac/generics/T4738171.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T4738171.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4738171.java	1.6 07/05/05
+ * @test
  * @bug 4738171
  * @summary generics: problem with equivalence of generic types
  * @author gafter
--- a/j2se/test/tools/javac/generics/T4739399.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T4739399.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4739399.java	1.6 07/05/05
+ * @test
  * @bug 4739399
  * @summary generics: crash after error regarding bounds on type variable
  * @author gafter
--- a/j2se/test/tools/javac/generics/T4757416.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T4757416.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4757416.java	1.6 07/05/05
+ * @test
  * @bug 4756416
  * @summary generics: erasure clash not detected
  * @author gafter
--- a/j2se/test/tools/javac/generics/T4784207a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T4784207a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4784207a.java	1.6 07/05/05
+ * @test
  * @bug 4784207
  * @summary generics: method overriding missed with separate compilation
  * @author gafter
--- a/j2se/test/tools/javac/generics/T4784219.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T4784219.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4784219.java	1.6 07/05/05
+ * @test
  * @bug 4784219
  * @summary generics: compiler crash after diagnostic
  * @author gafter
--- a/j2se/test/tools/javac/generics/T5011073.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T5011073.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T5011073.java	1.8 07/05/05
+ * @test
  * @bug 5011073
  * @summary javac should implement JLS3 three-pass overload resolution
  * @author gafter
--- a/j2se/test/tools/javac/generics/T5094318.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T5094318.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T5094318.java	1.7 07/05/05
+ * @test
  * @bug 5094318
  * @summary REGRESSION: Array cloning is not backwards compatible
  *
--- a/j2se/test/tools/javac/generics/T6391995.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/T6391995.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6391995.java	1.6 07/05/05
+ * @test
  * @bug     6391995
  * @summary removal of "rvalue conversion" causes problems
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/TyparamLit.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/TyparamLit.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TyparamLit.java	1.6 07/05/05
+ * @test
  * @bug 4881265
  * @summary generics: compiler allows T.class for type variable T
  * @author gafter
--- a/j2se/test/tools/javac/generics/TyparamStaticScope.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/TyparamStaticScope.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TyparamStaticScope.java	1.6 07/05/05
+ * @test
  * @bug 4994261
  * @summary javac mistakenly reports static use error for enclosing type parameter
  * @author gafter
--- a/j2se/test/tools/javac/generics/TyparamStaticScope2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/TyparamStaticScope2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TyparamStaticScope2.java	1.6 07/05/05
+ * @test
  * @bug 5046972
  * @summary type parameter referenced in static inner class improperly allowed!
  * @author gafter
--- a/j2se/test/tools/javac/generics/UncheckedArray.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/UncheckedArray.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UncheckedArray.java	1.6 07/05/05
+ * @test
  * @bug 4992316
  * @summary compiler allows new array of array of type parameter
  * @author gafter
--- a/j2se/test/tools/javac/generics/UncheckedConstructor.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/UncheckedConstructor.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UncheckedConstructor.java	1.6 07/05/05
+ * @test
  * @bug 4951260
  * @summary compiler disallows raw call to generic constructor
  * @author gafter
--- a/j2se/test/tools/javac/generics/UncheckedCovariance.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/UncheckedCovariance.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UncheckedCovariance.java	1.6 07/05/05
+ * @test
  * @bug 4949303
  * @summary A method returning a raw type cannot override a method returning a generic type
  * @author gafter
--- a/j2se/test/tools/javac/generics/UnsoundInference.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/UnsoundInference.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UnsoundInference.java	1.8 07/05/05
+ * @test
  * @bug 5020448
  * @summary Generic method allowing passing of types that don't match collection types
  * @author gafter
--- a/j2se/test/tools/javac/generics/Varargs.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/Varargs.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Varargs.java	1.6 07/05/05
+ * @test
  * @bug 4920438
  * @summary varargs doesn't work for generic methods
  * @author gafter
--- a/j2se/test/tools/javac/generics/Varargs2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/Varargs2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Varargs2.java	1.6 07/05/05
+ * @test
  * @bug 5014324
  * @summary generics + varargs API changes
  * @author gafter
--- a/j2se/test/tools/javac/generics/WrongNew.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/WrongNew.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)WrongNew.java	1.8 07/05/05
+ * @test
  * @bug 4487977
  * @summary generics: javac generares "new" of wrong class
  * @author gafter
--- a/j2se/test/tools/javac/generics/abstract/T4717181c.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/abstract/T4717181c.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4717181c.java	1.9 07/05/05
+ * @test
  * @bug 4717181
  * @summary javac treats inherited abstract method as an overrider
  * @author gafter
--- a/j2se/test/tools/javac/generics/bridge1/D.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/bridge1/D.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)D.java	1.6 07/05/05
+ * @test
  * @bug 4821489
  * @summary generics: missing bridge method
  * @author gafter
--- a/j2se/test/tools/javac/generics/classreader/HArrayMethod.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/classreader/HArrayMethod.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)HArrayMethod.java	1.6 07/05/05
+ * @test
  * @bug 4881400
  * @summary generics: override checks break when using separate compilation
  * @author gafter
--- a/j2se/test/tools/javac/generics/compat/CovariantCompat1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/compat/CovariantCompat1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CovariantCompat1.java	1.6 07/05/05
+ * @test
  * @bug 4836051
  * @summary generics: non-generic code should be able to call covariant method
  * @author gafter
--- a/j2se/test/tools/javac/generics/compat/OverrideBridge1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/compat/OverrideBridge1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)OverrideBridge1.java	1.10 07/05/05
+ * @test
  * @bug 4836048 4868021 5030040 5052968 5056864
  * @summary generics: compiler allows 1.4 code to override a bridge method
  * @author gafter
--- a/j2se/test/tools/javac/generics/compat/VisibleBridge.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/compat/VisibleBridge.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)VisibleBridge.java	1.7 07/05/05
+ * @test
  * @bug 4830291
  * @summary javac makes String non-backward compatible
  * @author gafter
--- a/j2se/test/tools/javac/generics/forwardSeparateBound/ForwardSeparateBound1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/forwardSeparateBound/ForwardSeparateBound1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,8 +22,6 @@
  */
 
 /*
- * @(#)ForwardSeparateBound1.java	1.6 07/05/05
- *
  * Auxiliary file for 4488671 (ForwardSeparateBound2).
  */
 
--- a/j2se/test/tools/javac/generics/forwardSeparateBound/ForwardSeparateBound2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/forwardSeparateBound/ForwardSeparateBound2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ForwardSeparateBound2.java	1.7 07/05/05
+ * @test
  * @bug 4488671
  * @summary generics: forward referenced bounds vs separate compilation
  * @author gafter
--- a/j2se/test/tools/javac/generics/genericAbstract/A.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/genericAbstract/A.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)A.java	1.7 07/05/05
+ * @test
  * @bug 4546513
  * @summary generics: generic interface method not implemented in abstract class causes err
  * @author gafter
--- a/j2se/test/tools/javac/generics/inference/4941882/T4941882.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/4941882/T4941882.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T4941882.java	1.7 07/05/05
+ * @test
  * @bug     4941882
  * @summary incorrect inference for result of lub(int[], float[])
  * @compile/fail T4941882.java
--- a/j2se/test/tools/javac/generics/inference/4942040/T4942040.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/4942040/T4942040.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T4942040.java	1.7 07/05/05
+ * @test
  * @bug     4942040
  * @summary improper handling of lub type for arrays, classes
  * @compile T4942040.java
--- a/j2se/test/tools/javac/generics/inference/4954546/T4954546.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/4954546/T4954546.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T4954546.java	1.7 07/05/05
+ * @test
  * @bug     4954546
  * @summary unverifiable code for method called from ?: expression with inferred
  */
--- a/j2se/test/tools/javac/generics/inference/4972073/T4972073.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/4972073/T4972073.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T4972073.java	1.5 07/05/05
+ * @test
  * @bug     4972073
  * @summary same interface allowed twice in compound type
  * @compile/fail T4972073.java
--- a/j2se/test/tools/javac/generics/inference/4972073/T4972073a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/4972073/T4972073a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T4972073a.java	1.4 07/05/05
+ * @test
  * @bug     4972073
  * @summary same interface allowed twice in compound type
  * @compile/fail T4972073a.java
--- a/j2se/test/tools/javac/generics/inference/4972073/T4972073b.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/4972073/T4972073b.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T4972073b.java	1.4 07/05/05
+ * @test
  * @bug     4972073
  * @summary same interface allowed twice in compound type
  * @compile/fail T4972073b.java
--- a/j2se/test/tools/javac/generics/inference/5003431/T5003431.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/5003431/T5003431.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5003431.java	1.7 07/05/05
+ * @test
  * @bug     5003431
  * @summary java.lang.Object cannot be dereferenced
  * @compile T5003431.java
--- a/j2se/test/tools/javac/generics/inference/5021635/T5021635.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/5021635/T5021635.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5021635.java	1.5 07/05/05
+ * @test
  * @bug     5021635
  * @summary Incorrect default inferred type parameter when type params interdependent
  * @compile T5021635.java
--- a/j2se/test/tools/javac/generics/inference/5021635/T6299211.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/5021635/T6299211.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6299211.java	1.6 07/05/05
+ * @test
  * @bug     6299211
  * @summary method type variable: inference broken for null
  * @compile T6299211.java
--- a/j2se/test/tools/javac/generics/inference/5034571/T5034571.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/5034571/T5034571.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5034571.java	1.7 07/05/05
+ * @test
  * @bug     5034571
  * @summary Wildcard capture must use the bounds of the formal
  * @compile T5034571.java
--- a/j2se/test/tools/javac/generics/inference/5042462/T5042462.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/5042462/T5042462.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5042462.java	1.5 07/05/05
+ * @test
  * @bug     5042462
  * @summary Problem with least upper bound (lub) and type variables
  * @compile T5042462.java
--- a/j2se/test/tools/javac/generics/inference/5044646/T5044646.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/5044646/T5044646.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5044646.java	1.5 07/05/05
+ * @test
  * @bug     5044646
  * @summary package-private indirect noninherited generic overriders
  * @compile p1/A1.java p2/A2.java p1/B.java
--- a/j2se/test/tools/javac/generics/inference/5049523/T5049523.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/5049523/T5049523.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5049523.java	1.7 07/05/05
+ * @test
  * @bug     5049523
  * @summary Inference should compute glb of type arguments
  * @compile T5049523.java
--- a/j2se/test/tools/javac/generics/inference/5070671/T5070671.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/5070671/T5070671.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5070671.java	1.7 07/05/05
+ * @test
  * @bug     5070671
  * @summary Arrays.binarySearch can't infer int[]
  * @compile T5070671.java
--- a/j2se/test/tools/javac/generics/inference/5073060/GenericsAndPackages.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/5073060/GenericsAndPackages.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)GenericsAndPackages.java	1.6 07/05/05
+ * @test
  * @bug     5073060
  * @summary Package private members not found for intersection types
  * @author  Bruce Eckel
--- a/j2se/test/tools/javac/generics/inference/5073060/Neg.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/5073060/Neg.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Neg.java	1.7 07/05/05
+ * @test
  * @bug     5073060
  * @summary Package private members not found for intersection types
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/inference/5073060/T5073060.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/5073060/T5073060.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T5073060.java	1.7 07/05/05
+ * @test
  * @bug     5073060
  * @summary Package private members not found for intersection types
  * @compile T5073060.java
--- a/j2se/test/tools/javac/generics/inference/5073060/T5073060a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/5073060/T5073060a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5073060a.java	1.7 07/05/05
+ * @test
  * @bug     5073060
  * @summary Package private members not found for intersection types
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/inference/5080917/T5080917.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/5080917/T5080917.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5080917.java	1.7 07/05/05
+ * @test
  * @bug     5080917
  * @summary lub computes strange compound types
  * @author  Steve Sides
--- a/j2se/test/tools/javac/generics/inference/5081782/Neg.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/5081782/Neg.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Neg.java	1.4 07/05/05
+ * @test
  * @bug     5081782
  * @summary type arguments to non-generic methods
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/inference/5081782/Pos.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/5081782/Pos.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Pos.java	1.5 07/05/05
+ * @test
  * @bug     5081782
  * @summary type arguments to non-generic methods
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/inference/6215213/T6215213.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/6215213/T6215213.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6215213.java	1.7 07/05/05
+ * @test
  * @bug     6215213
  * @summary Compiler JDK1.5 crashes with uses of generics
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/inference/6222762/T6222762.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/6222762/T6222762.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6222762.java	1.7 07/05/05
+ * @test
  * @bug     6222762
  * @summary Primitive arrays and varargs inference leads to crash in TreeMaker.Type(TreeMaker.java:531)
  */
--- a/j2se/test/tools/javac/generics/inference/6240565/T6240565.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/6240565/T6240565.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6240565.java	1.8 07/05/05
+ * @test
  * @bug     6240565
  * @summary Unboxing, arrays, and type variables doesn't work
  * @compile T6240565.java
--- a/j2se/test/tools/javac/generics/inference/6273455/T6273455.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/6273455/T6273455.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6273455.java	1.7 07/05/05
+ * @test
  * @bug     6273455
  * @summary Stack overflow in Types.java:347
  * @compile T6273455.java
--- a/j2se/test/tools/javac/generics/inference/6278587/T6278587.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/6278587/T6278587.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6278587.java	1.5 07/05/05
+ * @test
  * @bug     6278587
  * @summary Inference broken for subtypes of subtypes of F-bounded types
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/inference/6278587/T6278587Neg.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/6278587/T6278587Neg.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6278587Neg.java	1.4 07/05/05
+ * @test
  * @bug     6278587
  * @summary Inference broken for subtypes of subtypes of F-bounded types
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/inference/6302954/T6456971.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/6302954/T6456971.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6456971.java	1.5 07/05/05
+ * @test
  * @bug     6456971
  * @summary Varargs and inference problem
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/inference/6302954/T6476073.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/6302954/T6476073.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6476073.java	1.6 07/05/05
+ * @test
  * @bug     6476073
  * @summary Capture using super wildcard of type variables doesn't work
  * @compile T6476073.java
--- a/j2se/test/tools/javac/generics/inference/6302954/X.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/6302954/X.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)X.java	1.6 07/05/05
+ * @test
  * @bug     6302954
  * @summary Inference fails for type variable return constraint
  * @compile X.java
--- a/j2se/test/tools/javac/generics/inference/6356673/Test.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/6356673/Test.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Test.java	1.7 07/05/05
+ * @test
  * @bug     6356673
  * @summary javac incorrectly generates "reference to <xx> is ambiguous"
  * @compile Test.java
--- a/j2se/test/tools/javac/generics/inference/6359106/T6359106.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/6359106/T6359106.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6359106.java	1.7 07/05/05
+ * @test
  * @bug     6359106
  * @summary Valid generics code does not compile
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/inference/6365166/NewTest.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/6365166/NewTest.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)NewTest.java	1.8 07/05/05
+ * @test
  * @bug     6365166
  * @summary javac (generic) unable to resolve methods
  * @ignore  waiting for 6365166
--- a/j2se/test/tools/javac/generics/inference/6468384/T6468384.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/inference/6468384/T6468384.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6468384.java	1.6 07/05/05
+ * @test
  * @bug     6468384 6278587
  * @summary Problem with underconstrained type variables
  * @compile T6468384.java
--- a/j2se/test/tools/javac/generics/odersky/BadTest.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/odersky/BadTest.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BadTest.java	1.6 07/05/05
+ * @test
  * @ bug 
  * @summary Negative regression test from odersky
  * @author odersky
--- a/j2se/test/tools/javac/generics/odersky/BadTest2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/odersky/BadTest2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BadTest2.java	1.8 07/05/05
+ * @test
  * @ bug 
  * @summary Regression test from odersky
  * @author odersky
--- a/j2se/test/tools/javac/generics/odersky/BadTest3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/odersky/BadTest3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BadTest3.java	1.6 07/05/05
+ * @test
  * @ bug 
  * @summary Negative regression test from odersky
  * @author odersky
--- a/j2se/test/tools/javac/generics/odersky/BadTest4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/odersky/BadTest4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BadTest4.java	1.6 07/05/05
+ * @test
  * @ bug 
  * @summary Negative regression test from odersky
  * @author odersky
--- a/j2se/test/tools/javac/generics/odersky/Test.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/odersky/Test.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Test.java	1.10 07/05/05
+ * @test
  * @bug 4736963
  * @summary Positive regression test from odersky
  * @author odersky
--- a/j2se/test/tools/javac/generics/odersky/Test2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/odersky/Test2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Test2.java	1.6 07/05/05
+ * @test
  * @ bug 
  * @summary Positive regression test from odersky
  * @author odersky
--- a/j2se/test/tools/javac/generics/odersky/Test3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/odersky/Test3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Test3.java	1.6 07/05/05
+ * @test
  * @ bug 
  * @summary Positive regression test from odersky
  * @author odersky
--- a/j2se/test/tools/javac/generics/odersky/Test4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/odersky/Test4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Test4.java	1.7 07/05/05
+ * @test
  * @ bug 
  * @summary Positive regression test from odersky
  * @author odersky
--- a/j2se/test/tools/javac/generics/parametricException/J.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/parametricException/J.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)J.java	1.6 07/05/05
+ * @test
  * @bug 5038685
  * @summary javac appears to omit throws portion of generic signature attribute
  * @author gafter
--- a/j2se/test/tools/javac/generics/rare/Rare1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/rare/Rare1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Rare1.java	1.6 07/05/05
+ * @test
  * @bug 5024308
  * @summary "rare" types
  * @author gafter
--- a/j2se/test/tools/javac/generics/rare/Rare10.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/rare/Rare10.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Rare10.java	1.6 07/05/05
+ * @test
  * @bug 5024308
  * @summary "rare" types
  * @author gafter
--- a/j2se/test/tools/javac/generics/rare/Rare11.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/rare/Rare11.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Rare11.java	1.6 07/05/05
+ * @test
  * @bug 5024308
  * @summary "rare" types
  * @author gafter
--- a/j2se/test/tools/javac/generics/rare/Rare2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/rare/Rare2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Rare2.java	1.6 07/05/05
+ * @test
  * @bug 5024308
  * @summary "rare" types
  * @author gafter
--- a/j2se/test/tools/javac/generics/rare/Rare3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/rare/Rare3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Rare3.java	1.6 07/05/05
+ * @test
  * @bug 5024308
  * @summary "rare" types
  * @author gafter
--- a/j2se/test/tools/javac/generics/rare/Rare4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/rare/Rare4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Rare4.java	1.6 07/05/05
+ * @test
  * @bug 5024308
  * @summary "rare" types
  * @author gafter
--- a/j2se/test/tools/javac/generics/rare/Rare5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/rare/Rare5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Rare5.java	1.6 07/05/05
+ * @test
  * @bug 5024308
  * @summary "rare" types
  * @author gafter
--- a/j2se/test/tools/javac/generics/rare/Rare6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/rare/Rare6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Rare6.java	1.6 07/05/05
+ * @test
  * @bug 5024308
  * @summary "rare" types
  * @author gafter
--- a/j2se/test/tools/javac/generics/rare/Rare7.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/rare/Rare7.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Rare7.java	1.6 07/05/05
+ * @test
  * @bug 5024308
  * @summary "rare" types
  * @author gafter
--- a/j2se/test/tools/javac/generics/rare/Rare9.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/rare/Rare9.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Rare9.java	1.6 07/05/05
+ * @test
  * @bug 5024308
  * @summary "rare" types
  * @author gafter
--- a/j2se/test/tools/javac/generics/rawOverride/AttributeSet.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/rawOverride/AttributeSet.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AttributeSet.java	1.6 07/05/05
+ * @test
  * @bug 5073079
  * @summary Allow unchecked override of generified methods in
  * parameterless classes
--- a/j2se/test/tools/javac/generics/rawOverride/Fail1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/rawOverride/Fail1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Fail1.java	1.6 07/05/05
+ * @test
  * @bug 5073079
  * @summary Allow unchecked override of generified methods in
  * parameterless classes
--- a/j2se/test/tools/javac/generics/rawOverride/T6178365.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/rawOverride/T6178365.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6178365.java	1.7 07/05/05
+ * @test
  * @bug 6178365
  * @summary REGRESSION: Compile Error - Abstract error in LoginModule
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/rawOverride/Warn1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/rawOverride/Warn1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Warn1.java	1.6 07/05/05
+ * @test
  * @bug 5073079
  * @summary Allow unchecked override of generified methods in
  * parameterless classes
--- a/j2se/test/tools/javac/generics/rawOverride/Warn2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/rawOverride/Warn2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Warn2.java	1.6 07/05/05
+ * @test
  * @bug 5073079
  * @summary Allow unchecked override of generified methods in
  * parameterless classes
--- a/j2se/test/tools/javac/generics/rawSeparate/RetroLexer.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/rawSeparate/RetroLexer.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)RetroLexer.java	1.9 07/05/05
+ * @test
  * @bug 4464233
  * @summary raw types versus separate compilation causes type error
  * @author gafter
--- a/j2se/test/tools/javac/generics/syntax/6318240/Bar.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/syntax/6318240/Bar.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Bar.java	1.4 07/05/05
+ * @test
  * @bug     6318240
  * @summary Creation of array of inner class of an enclosing wildcard type doesn't work
  * @compile Bar.java
--- a/j2se/test/tools/javac/generics/syntax/6318240/BarNeg1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/syntax/6318240/BarNeg1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)BarNeg1.java	1.4 07/05/05
+ * @test
  * @bug     6318240
  * @summary Creation of array of inner class of an enclosing wildcard type doesn't work
  * @compile/fail BarNeg1.java
--- a/j2se/test/tools/javac/generics/syntax/6318240/BarNeg1a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/syntax/6318240/BarNeg1a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)BarNeg1a.java	1.4 07/05/05
+ * @test
  * @bug     6318240
  * @summary Creation of array of inner class of an enclosing wildcard type doesn't work
  * @compile/fail BarNeg1a.java
--- a/j2se/test/tools/javac/generics/syntax/6318240/BarNeg2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/syntax/6318240/BarNeg2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)BarNeg2.java	1.4 07/05/05
+ * @test
  * @bug     6318240
  * @summary Creation of array of inner class of an enclosing wildcard type doesn't work
  * @compile/fail BarNeg2.java
--- a/j2se/test/tools/javac/generics/syntax/6318240/BarNeg2a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/syntax/6318240/BarNeg2a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)BarNeg2a.java	1.4 07/05/05
+ * @test
  * @bug     6318240
  * @summary Creation of array of inner class of an enclosing wildcard type doesn't work
  * @compile/fail BarNeg2a.java
--- a/j2se/test/tools/javac/generics/syntax/6318240/Foo.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/syntax/6318240/Foo.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Foo.java	1.5 07/05/05
+ * @test
  * @bug     6318240
  * @summary Creation of array of inner class of an enclosing wildcard type doesn't work
  * @author  Scott Violet
--- a/j2se/test/tools/javac/generics/typeargs/Basic.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typeargs/Basic.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Basic.java	1.7 07/05/05
+ * @test
  * @bug 4851039
  * @summary explicit type arguments
  * @author gafter
--- a/j2se/test/tools/javac/generics/typeargs/Metharg1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typeargs/Metharg1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Metharg1.java	1.7 07/05/05
+ * @test
  * @bug 4851039
  * @summary explicit type arguments
  * @author gafter
--- a/j2se/test/tools/javac/generics/typeargs/Metharg2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typeargs/Metharg2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Metharg2.java	1.7 07/05/05
+ * @test
  * @bug 4851039
  * @summary explicit type arguments
  * @author gafter
--- a/j2se/test/tools/javac/generics/typeargs/Newarg1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typeargs/Newarg1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Newarg1.java	1.7 07/05/05
+ * @test
  * @bug 4851039
  * @summary explicit type arguments
  * @author gafter
--- a/j2se/test/tools/javac/generics/typeargs/Newarg2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typeargs/Newarg2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Newarg2.java	1.7 07/05/05
+ * @test
  * @bug 4851039
  * @summary explicit type arguments
  * @author gafter
--- a/j2se/test/tools/javac/generics/typeargs/Superarg1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typeargs/Superarg1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Superarg1.java	1.7 07/05/05
+ * @test
  * @bug 4851039
  * @summary explicit type arguments
  * @author gafter
--- a/j2se/test/tools/javac/generics/typeargs/ThisArg.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typeargs/ThisArg.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ThisArg.java	1.7 07/05/05
+ * @test
  * @bug 4851039
  * @summary explicit type arguments
  * @author gafter
--- a/j2se/test/tools/javac/generics/typevars/4856983/T4856983.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typevars/4856983/T4856983.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4856983.java	1.7 07/05/05
+ * @test
  * @bug 4856983
  * @summary (crash) mutually f-bounded type vars with multiple bounds may crash javac
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/typevars/4856983/T4856983a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typevars/4856983/T4856983a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4856983a.java	1.7 07/05/05
+ * @test
  * @bug 4856983
  * @summary (crash) mutually f-bounded type vars with multiple bounds may crash javac
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/typevars/4856983/T4856983b.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typevars/4856983/T4856983b.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4856983b.java	1.7 07/05/05
+ * @test
  * @bug 4856983
  * @summary (crash) mutually f-bounded type vars with multiple bounds may crash javac
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/typevars/5060485/Compatibility.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typevars/5060485/Compatibility.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Compatibility.java	1.4 07/05/05
+ * @test
  * @bug     5060485
  * @summary The scope of a class type parameter is too wide
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/typevars/5060485/Method.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typevars/5060485/Method.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Method.java	1.4 07/05/05
+ * @test
  * @bug     5060485
  * @summary The scope of a class type parameter is too wide
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/typevars/5060485/Neg1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typevars/5060485/Neg1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Neg1.java	1.4 07/05/05
+ * @test
  * @bug     5060485
  * @summary The scope of a class type parameter is too wide
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/typevars/5060485/Neg2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typevars/5060485/Neg2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Neg2.java	1.4 07/05/05
+ * @test
  * @bug     5060485
  * @summary The scope of a class type parameter is too wide
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/typevars/5060485/Pos.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typevars/5060485/Pos.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Pos.java	1.4 07/05/05
+ * @test
  * @bug     5060485
  * @summary The scope of a class type parameter is too wide
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/typevars/5060485/T5060485.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typevars/5060485/T5060485.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5060485.java	1.5 07/05/05
+ * @test
  * @bug     5060485
  * @summary The scope of a class type parameter is too wide
  * @compile T5060485.java
--- a/j2se/test/tools/javac/generics/typevars/5061359/T5061359.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typevars/5061359/T5061359.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5061359.java	1.6 07/05/05
+ * @test
  * @bug     5061359
  * @summary No error for ambiguous member of intersection
  * @compile/fail T5061359.java
--- a/j2se/test/tools/javac/generics/typevars/5061359/T5061359a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typevars/5061359/T5061359a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5061359a.java	1.6 07/05/05
+ * @test
  * @bug     5061359
  * @summary No error for ambiguous member of intersection
  * @clean   Base Intf
--- a/j2se/test/tools/javac/generics/typevars/5061359/T5061359b.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typevars/5061359/T5061359b.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T5061359b.java	1.5 07/05/05
+ * @test
  * @bug     5061359
  * @summary No error for ambiguous member of intersection
  * @compile T5061359b.java
--- a/j2se/test/tools/javac/generics/typevars/6182630/T6182630.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typevars/6182630/T6182630.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6182630.java	1.7 07/05/05
+ * @test
  * @bug 6182630
  * @summary Method with parameter bound to raw type avoids unchecked warning
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/typevars/6199146/T6199146.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typevars/6199146/T6199146.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6199146.java	1.6 07/05/05
+ * @test
  * @bug     6199146
  * @summary Javac accepts ambiguous compound type
  * @compile/fail T6199146.java
--- a/j2se/test/tools/javac/generics/typevars/6486430/T6486430.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typevars/6486430/T6486430.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6486430.java	1.6 07/05/05
+ * @test
  * @bug     6486430
  * @summary Compiler fails to reject access to static member in parameterized type
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/typevars/6486430/T6486430a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/typevars/6486430/T6486430a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6486430a.java	1.4 07/05/05
+ * @test
  * @bug     6486430
  * @summary Compiler fails to reject access to static member in parameterized type
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/wildcards/6320612/T6320612.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/6320612/T6320612.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6320612.java	1.8 07/05/05
+ * @test
  * @bug     6320612
  * @summary Unwarranted unchecked warning for inner class of "wildcard" type
  * @compile -Werror -Xlint:unchecked T6320612.java
--- a/j2se/test/tools/javac/generics/wildcards/6330931/T6330931.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/6330931/T6330931.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6330931.java	1.8 07/05/05
+ * @test
  * @bug     6330931
  * @summary Super wildcard has incorrect upper bound
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/wildcards/6437894/T6437894.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/6437894/T6437894.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test    @(#)T6437894.java	1.3 07/04/05  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     6437894
  * @summary Javac throws a NullPointerException
  * @author  jan.lahoda@...
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentDifferentTypes1.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with related type bounds.
  *
  * @compile -source 1.5 AssignmentDifferentTypes1.java
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentDifferentTypes2.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with related type bounds.
  *
  * @compile/fail -source 1.5 AssignmentDifferentTypes2.java
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentDifferentTypes3.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with related type bounds.
  *
  * @compile/fail -source 1.5 AssignmentDifferentTypes3.java
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentDifferentTypes4.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with related type bounds.
  *
  * @compile/fail -source 1.5 AssignmentDifferentTypes4.java
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentDifferentTypes5.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with related type bounds.
  *
  * @compile/fail -source 1.5 AssignmentDifferentTypes5.java
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentDifferentTypes6.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with related type bounds.
  *
  * @compile/fail -source 1.5 AssignmentDifferentTypes6.java
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes7.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes7.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentDifferentTypes7.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with related type bounds.
  *
  * @compile/fail -source 1.5 AssignmentDifferentTypes7.java
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes8.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes8.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentDifferentTypes8.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with related type bounds.
  *
  * @compile/fail -source 1.5 AssignmentDifferentTypes8.java
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes9.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentDifferentTypes9.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentDifferentTypes9.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with related type bounds.
  *
  * @compile/fail -source 1.5 AssignmentDifferentTypes9.java
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentSameType1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentSameType1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentSameType1.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with the same type bound.
  *
  * @compile -source 1.5 AssignmentSameType1.java
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentSameType2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentSameType2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentSameType2.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with the same type bound.
  *
  * @compile/fail -source 1.5 AssignmentSameType2.java
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentSameType3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentSameType3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentSameType3.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with the same type bound.
  *
  * @compile/fail -source 1.5 AssignmentSameType3.java
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentSameType4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentSameType4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentSameType4.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with the same type bound.
  *
  * @compile/fail -source 1.5 AssignmentSameType4.java
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentSameType5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentSameType5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentSameType5.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with the same type bound.
  *
  * @compile/fail -source 1.5 AssignmentSameType5.java
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentSameType6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentSameType6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentSameType6.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with the same type bound.
  *
  * @compile/fail -source 1.5 AssignmentSameType6.java
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentSameType7.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentSameType7.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentSameType7.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with the same type bound.
  *
  * @compile/fail -source 1.5 AssignmentSameType7.java
--- a/j2se/test/tools/javac/generics/wildcards/AssignmentSameType8.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/AssignmentSameType8.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AssignmentSameType8.java	1.6 07/05/05
+ * @test
  * @summary Test subtyping for wildcards with the same type bound.
  *
  * @compile/fail -source 1.5 AssignmentSameType8.java
--- a/j2se/test/tools/javac/generics/wildcards/BoundBug.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/BoundBug.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BoundBug.java	1.6 07/05/05
+ * @test
  * @bug 4890134
  * @summary generics: used of ? get bound error
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/ContraArg.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/ContraArg.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ContraArg.java	1.6 07/05/05
+ * @test
  * @bug 4872698
  * @summary generics: incorrect ambiguity error with super-bouded wildcards
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/T5097548.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/T5097548.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T5097548.java	1.7 07/05/05
+ * @test
  * @bug 5097548
  * @summary (crash) Stack overflow in capture conversion
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/wildcards/T5097548b.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/T5097548b.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T5097548b.java	1.7 07/05/05
+ * @test
  * @bug 5097548
  * @summary Stack overflow in capture conversion
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/generics/wildcards/UnboundArray.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/UnboundArray.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UnboundArray.java	1.6 07/05/05
+ * @test
  * @bug 4881259
  * @summary generics: allow arrays of unbounded generic types
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/AmbiguousCast.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/AmbiguousCast.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AmbiguousCast.java	1.6 07/05/05
+ * @test
  * @bug 4897892
  * @summary cast to parameterized type is accepted although it should be rejected
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/Capture.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/Capture.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Capture.java	1.6 07/05/05
+ * @test
  * @bug 4916634
  * @summary Wildcard capture
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail1.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail10.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail10.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail10.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail11.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail11.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail11.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail12.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail12.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail12.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail13.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail13.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail13.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail14.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail14.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail14.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail15.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail15.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail15.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail16.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail16.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail16.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail17.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail17.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail17.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail18.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail18.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail18.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail19.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail19.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail19.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail2.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail20.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail20.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail20.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail21.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail21.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail21.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail3.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail4.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail5.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail6.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail7.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail7.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail7.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail8.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail8.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail8.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastFail9.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastFail9.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastFail9.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastWarn10.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastWarn10.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastWarn10.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastWarn11.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastWarn11.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastWarn11.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastWarn12.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastWarn12.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastWarn12.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastWarn13.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastWarn13.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastWarn13.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastWarn14.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastWarn14.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastWarn14.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastWarn2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastWarn2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastWarn2.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastWarn3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastWarn3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastWarn3.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastWarn4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastWarn4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastWarn4.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastWarn5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastWarn5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastWarn5.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastWarn6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastWarn6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastWarn6.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastWarn7.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastWarn7.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastWarn7.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastWarn8.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastWarn8.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastWarn8.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/CastWarn9.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/CastWarn9.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastWarn9.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/ParamCast.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/ParamCast.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ParamCast.java	1.6 07/05/05
+ * @test
  * @bug 4916567
  * @summary Description
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/Readonly.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/Readonly.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Readonly.java	1.7 07/05/05
+ * @test
  * @bug 4916607 4931647
  * @summary an extends-bound (covariant) wildcard is like readonly
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/neg/Unbounded.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/neg/Unbounded.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Unbounded.java	1.6 07/05/05
+ * @test
  * @bug 4916607
  * @summary an unbounded (bivariant) wildcard doesn't allow reading
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/pos/AmbiguousCast2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/pos/AmbiguousCast2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)AmbiguousCast2.java	1.6 07/05/05
+ * @test
  * @bug 4856982
  * @summary generics: unable to cast between two convertible types
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/pos/BoundsCollision.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/pos/BoundsCollision.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BoundsCollision.java	1.6 07/05/05
+ * @test
  * @bug 4916665
  * @summary when upper bounds and lower bounds collide
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/pos/Capture.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/pos/Capture.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Capture.java	1.6 07/05/05
+ * @test
  * @bug 4916634
  * @summary Wildcard capture
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/pos/CastTest.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/pos/CastTest.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CastTest.java	1.7 07/05/05
+ * @test
  * @bug 4916607
  * @summary Test casts (legal, warning, and errors)
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/pos/InstanceOf.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/pos/InstanceOf.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InstanceOf.java	1.6 07/05/05
+ * @test
  * @bug 4892571
  * @summary generics: type cast with instance of
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/pos/ParamCast.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/pos/ParamCast.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ParamCast.java	1.7 07/05/05
+ * @test
  * @bug 4916567
  * @summary integrate improved wildcard substitution from CPH
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/pos/RvalConversion.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/pos/RvalConversion.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)RvalConversion.java	1.7 07/05/05
+ * @test
  * @bug 4918637 4931781
  * @summary rvalue conversion changes "? extends X" to "X".
  * @author gafter
--- a/j2se/test/tools/javac/generics/wildcards/pos/UncheckedCast1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/generics/wildcards/pos/UncheckedCast1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UncheckedCast1.java	1.6 07/05/05
+ * @test
  * @bug 4875036
  * @summary generics: failure of some unchecked casts
  * @author gafter
--- a/j2se/test/tools/javac/implicitThis/NewBeforeOuterConstructed.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/implicitThis/NewBeforeOuterConstructed.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)NewBeforeOuterConstructed.java	1.7 07/05/05
+ * @test
  * @bug 4249111
  * @summary 'new' of inner class should not be allowed unless outer is constructed
  *
--- a/j2se/test/tools/javac/implicitThis/NewBeforeOuterConstructed2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/implicitThis/NewBeforeOuterConstructed2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)NewBeforeOuterConstructed2.java	1.7 07/05/05
+ * @test
  * @bug 4689058
  * @summary unverifiable code for implicit outer in super constructor call
  *
--- a/j2se/test/tools/javac/implicitThis/NewBeforeOuterConstructed3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/implicitThis/NewBeforeOuterConstructed3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)NewBeforeOuterConstructed3.java	1.8 07/05/05
+ * @test
  * @bug 4704371 6313120
  * @summary compiler generates unverifiable code for implicit reference to uninit'd this
  * @compile/fail NewBeforeOuterConstructed3.java
--- a/j2se/test/tools/javac/implicitThis/WhichImplicitThis1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/implicitThis/WhichImplicitThis1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)WhichImplicitThis1.java	1.7 07/05/05
+ * @test
  * @bug 4635044 4787017
  * @summary Invalid error when implicitly referencing enclosing type
  *
--- a/j2se/test/tools/javac/implicitThis/WhichImplicitThis10.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/implicitThis/WhichImplicitThis10.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)WhichImplicitThis10.java	1.6 07/05/05
+ * @test
  * @bug 4787017
  * @summary finding implicit "this" for constructor invocation should ignore hiding, non-inheritance
  *
--- a/j2se/test/tools/javac/implicitThis/WhichImplicitThis11.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/implicitThis/WhichImplicitThis11.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)WhichImplicitThis11.java	1.6 07/05/05
+ * @test
  * @bug 4825093
  * @summary code involving inner classes causes verify error
  *
--- a/j2se/test/tools/javac/implicitThis/WhichImplicitThis2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/implicitThis/WhichImplicitThis2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)WhichImplicitThis2.java	1.7 07/05/05
+ * @test
  * @bug 4635044 4787017
  * @summary Invalid error when implicitly referencing enclosing type
  *
--- a/j2se/test/tools/javac/implicitThis/WhichImplicitThis3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/implicitThis/WhichImplicitThis3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)WhichImplicitThis3.java	1.6 07/05/05
+ * @test
  * @bug 4696701
  * @summary wrong enclosing instance for local class creation
  *
--- a/j2se/test/tools/javac/implicitThis/WhichImplicitThis4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/implicitThis/WhichImplicitThis4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)WhichImplicitThis4.java	1.6 07/05/05
+ * @test
  * @bug 4696701
  * @summary wrong enclosing instance for local class creation
  *
--- a/j2se/test/tools/javac/implicitThis/WhichImplicitThis5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/implicitThis/WhichImplicitThis5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)WhichImplicitThis5.java	1.8 07/05/05
+ * @test
  * @bug 4717593
  * @summary Hiding of fields not fully supported
  *
--- a/j2se/test/tools/javac/implicitThis/WhichImplicitThis6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/implicitThis/WhichImplicitThis6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)WhichImplicitThis6.java	1.6 07/05/05
+ * @test
  * @bug 4717633
  * @summary compiler fails to allow access to enclosing instance in super()
  *
--- a/j2se/test/tools/javac/implicitThis/WhichImplicitThis7.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/implicitThis/WhichImplicitThis7.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)WhichImplicitThis7.java	1.7 07/05/05
+ * @test
  * @bug 4714403
  * @summary private members in a superclass should not hide members from the enclosing scope
  *
--- a/j2se/test/tools/javac/implicitThis/WhichImplicitThis9.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/implicitThis/WhichImplicitThis9.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)WhichImplicitThis9.java	1.6 07/05/05
+ * @test
  * @bug 4721003
  * @summary anonymous class in explicit constructor invocation can refer implicitly to encl
  *
--- a/j2se/test/tools/javac/importChecks/ImportCanonical1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/importChecks/ImportCanonical1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ImportCanonical1.java	1.6 07/05/05
+ * @test
  * @bug 4462745
  * @summary compiler permits to import class given by its non-canonical name
  * @author gafter
--- a/j2se/test/tools/javac/importChecks/ImportIsFullyQualified.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/importChecks/ImportIsFullyQualified.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ImportIsFullyQualified.java	1.6 07/05/05
+ * @test
  * @bug 4335264
  * @summary Verify that import-on-demand must be fully qualified.
  * @author maddox
--- a/j2se/test/tools/javac/importChecks/ImportOfOwnClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/importChecks/ImportOfOwnClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ImportOfOwnClass.java	1.8 07/05/05
+ * @test
  * @bug 4081024 4662489
  * @summary Verify that clash is allowed between class declaration and import of same class.
  * @author maddox, gafter
--- a/j2se/test/tools/javac/importChecks/InvalidImportsNoClasses.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/importChecks/InvalidImportsNoClasses.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InvalidImportsNoClasses.java	1.6 07/05/05
+ * @test
  * @bug 4312063
  * @summary Verify that nonexistent imports detected when no classes declared in compilation unit.
  * @author maddox
--- a/j2se/test/tools/javac/importContext/anonPackage/Foo.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/importContext/anonPackage/Foo.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Foo.java	1.6 07/05/05
+ * @test
  * @bug 4304112
  * @summary Verify that imports are resolved in correct scope.
  * @author maddox
--- a/j2se/test/tools/javac/importContext/anonPackage/bar/Baz.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/importContext/anonPackage/bar/Baz.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)Baz.java	1.6 07/05/05
- */
-
 package bar;
 
 public class Baz {
--- a/j2se/test/tools/javac/importContext/namedPackage/Dummy.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/importContext/namedPackage/Dummy.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Dummy.java	1.6 07/05/05
+ * @test
  * @bug 4304112
  * @summary Verify that imports are resolved in correct scope.
  * @author maddox
--- a/j2se/test/tools/javac/importContext/namedPackage/bar/Baz.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/importContext/namedPackage/bar/Baz.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)Baz.java	1.6 07/05/05
- */
-
 package bar;
 
 public class Baz {
--- a/j2se/test/tools/javac/importContext/namedPackage/foo/Foo.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/importContext/namedPackage/foo/Foo.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)Foo.java	1.6 07/05/05
- */
-
 package foo;
 
 import bar.Baz;
--- a/j2se/test/tools/javac/importscope/A.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/importscope/A.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)A.java	1.7 07/05/05
+ * @test
  * @bug 4912075 4979456
  * @summary static import of private field crashes compiler
  * @author gafter
--- a/j2se/test/tools/javac/incompatibleNoninherited/A.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/incompatibleNoninherited/A.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)A.java	1.6 07/05/05
+ * @test
  * @bug 4738690
  * @summary javac improperly complains of conflict with non-inherited method
  * @author gafter
--- a/j2se/test/tools/javac/inheritAccess/PvtMbrsNotInherit1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/inheritAccess/PvtMbrsNotInherit1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)PvtMbrsNotInherit1.java	1.7 07/05/05
+ * @test
  * @bug 4240480
  * @summary Private members should not be inherited from superclasses.
  *
--- a/j2se/test/tools/javac/inheritedAccess/MethodReferenceQualification_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/inheritedAccess/MethodReferenceQualification_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)MethodReferenceQualification_1.java	1.6 07/05/05
+ * @test
  *
  * @bug 4283246
  * @summary Verify proper bytecode-level qualification of method accesses.
--- a/j2se/test/tools/javac/inheritedAccess/P1/priv.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/inheritedAccess/P1/priv.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)priv.java	1.6 07/05/05
- */
-
 package P1;
 
 class priv {
--- a/j2se/test/tools/javac/inheritedAccess/P1/pub.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/inheritedAccess/P1/pub.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)pub.java	1.6 07/05/05
- */
-
 package P1;
 
 public class pub extends priv {
--- a/j2se/test/tools/javac/innerClassFile/Driver.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/innerClassFile/Driver.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Driver.java	1.7 07/05/05
+ * @test
  * @bug 4491755 4785453
  * @summary Prob w/static inner class with same name as a regular class
  * @author gafter
--- a/j2se/test/tools/javac/javazip/Test.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/javazip/Test.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -23,9 +23,6 @@
 # have any questions.
 #
 
-# 
-# SCCS: @(#)Test.sh	1.7 07/07/18E
-
 # @test
 # @bug 4098712 6304984 6388453
 # @summary check that source files inside zip files on the class path are ignored
--- a/j2se/test/tools/javac/jvm/6397652/T6397652.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/jvm/6397652/T6397652.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6397652.java	1.7 07/05/05
+ * @test
  * @bug     6397652
  * @summary javac compilation failure when imported class with $ sign in the name
  * @author  Yuri Gaevsky
--- a/j2se/test/tools/javac/limits/ArrayDims1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/limits/ArrayDims1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ArrayDims1.java	1.7 07/05/05
+ * @test
  * @bug 4309152
  * @summary Compiler silently generates bytecode that exceeds VM limits
  * @author gafter
--- a/j2se/test/tools/javac/limits/ArrayDims2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/limits/ArrayDims2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ArrayDims2.java	1.6 07/05/05
+ * @test
  * @bug 4309152
  * @summary Compiler silently generates bytecode that exceeds VM limits
  * @author gafter
--- a/j2se/test/tools/javac/limits/ArrayDims3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/limits/ArrayDims3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ArrayDims3.java	1.6 07/05/05
+ * @test
  * @bug 4309152
  * @summary Compiler silently generates bytecode that exceeds VM limits
  * @author gafter
--- a/j2se/test/tools/javac/limits/ArrayDims4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/limits/ArrayDims4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ArrayDims4.java	1.6 07/05/05
+ * @test
  * @bug 4309152
  * @summary Compiler silently generates bytecode that exceeds VM limits
  * @author gafter
--- a/j2se/test/tools/javac/limits/ArrayDims5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/limits/ArrayDims5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ArrayDims5.java	1.6 07/05/05
+ * @test
  * @bug 4741759
  * @summary javac fails to diagnose too many array dimensions
  * @author gafter
--- a/j2se/test/tools/javac/limits/CodeSize.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/limits/CodeSize.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CodeSize.java	1.6 07/05/05
+ * @test
  * @bug 4309152
  * @summary Compiler silently generates bytecode that exceeds VM limits
  * @author gafter
--- a/j2se/test/tools/javac/limits/FinallyNesting.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/limits/FinallyNesting.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FinallyNesting.java	1.9 07/05/05
+ * @test
  * @bug 4739388
  * @summary regression: javac generates too much bytecode for deply nested try-finally
  * @author gafter
--- a/j2se/test/tools/javac/limits/LongName.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/limits/LongName.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)LongName.java	1.7 07/05/05
+ * @test
  * @bug 4309152
  * @summary Compiler silently generates bytecode that exceeds VM limits
  * @author gafter
--- a/j2se/test/tools/javac/limits/NumArgs1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/limits/NumArgs1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NumArgs1.java	1.6 07/05/05
+ * @test
  * @bug 4309152
  * @summary Compiler silently generates bytecode that exceeds VM limits
  * @author gafter
--- a/j2se/test/tools/javac/limits/NumArgs2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/limits/NumArgs2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NumArgs2.java	1.6 07/05/05
+ * @test
  * @bug 4309152
  * @summary Compiler silently generates bytecode that exceeds VM limits
  * @author gafter
--- a/j2se/test/tools/javac/limits/NumArgs3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/limits/NumArgs3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NumArgs3.java	1.6 07/05/05
+ * @test
  * @bug 4309152
  * @summary Compiler silently generates bytecode that exceeds VM limits
  * @author gafter
--- a/j2se/test/tools/javac/limits/NumArgs4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/limits/NumArgs4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NumArgs4.java	1.6 07/05/05
+ * @test
  * @bug 4309152
  * @summary Compiler silently generates bytecode that exceeds VM limits
  * @author gafter
--- a/j2se/test/tools/javac/limits/PoolSize1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/limits/PoolSize1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)PoolSize1.java	1.6 07/05/05
+ * @test
  * @bug 4309152
  * @summary Compiler silently generates bytecode that exceeds VM limits
  * @author gafter
--- a/j2se/test/tools/javac/limits/PoolSize2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/limits/PoolSize2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)PoolSize2.java	1.6 07/05/05
+ * @test
  * @bug 4309152
  * @summary Compiler silently generates bytecode that exceeds VM limits
  * @author gafter
--- a/j2se/test/tools/javac/limits/StringLength.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/limits/StringLength.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)StringLength.java	1.7 07/05/05
+ * @test
  * @bug 4309152 4805490
  * @summary Compiler silently generates bytecode that exceeds VM limits
  * @author gafter
--- a/j2se/test/tools/javac/links/T.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/links/T.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T.java	1.6 07/05/05
+ * @test
  * @bug 4266026
  * @summary javac no longer follows symlinks
  *
--- a/j2se/test/tools/javac/lint/Deprecation.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/lint/Deprecation.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Deprecation.java	1.7 07/05/05
+ * @test
  * @bug 4821359
  * @summary Add -Xlint flag
  * @author gafter
--- a/j2se/test/tools/javac/lint/FallThrough.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/lint/FallThrough.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FallThrough.java	1.9 07/05/05
+ * @test
  * @bug 4821359 4981267
  * @summary Add -Xlint flag
  * @author gafter
--- a/j2se/test/tools/javac/lint/NoWarn.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/lint/NoWarn.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test @(#)NoWarn.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 6183484
  * @summary verify -nowarn is the same as -Xlint:none
  * @compile/ref=NoWarn1.out -XDstdout -XDrawDiagnostics             NoWarn.java
--- a/j2se/test/tools/javac/lint/Unchecked.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/lint/Unchecked.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Unchecked.java	1.7 07/05/05
+ * @test
  * @bug 4821359
  * @summary Add -Xlint flag
  * @author gafter
--- a/j2se/test/tools/javac/mandatoryWarnings/deprecated/A.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/mandatoryWarnings/deprecated/A.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * SCCS: @(#)A.java	1.2 06/11/01  /nodynamiccopyright/
+ * /nodynamiccopyright/
  *
  * Test code for Test.sh
  */
--- a/j2se/test/tools/javac/mandatoryWarnings/deprecated/B.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/mandatoryWarnings/deprecated/B.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * SCCS: @(#)B.java	1.2 06/11/01  /nodynamiccopyright/
+ * /nodynamiccopyright/
  *
  * Test code for Test.sh
  */
--- a/j2se/test/tools/javac/mandatoryWarnings/unchecked/A.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/mandatoryWarnings/unchecked/A.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * SCCS: @(#)A.java	1.2 06/11/01  /nodynamiccopyright/
+ * /nodynamiccopyright/
  *
  * Test code for Test.sh
  */
--- a/j2se/test/tools/javac/mandatoryWarnings/unchecked/B.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/mandatoryWarnings/unchecked/B.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * SCCS: @(#)B.java	1.2 06/11/01  /nodynamiccopyright/
+ * /nodynamiccopyright/
  *
  * Test code for Test.sh
  */
--- a/j2se/test/tools/javac/miranda/4686148/Test.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/miranda/4686148/Test.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Test.java	1.6 07/05/05
+ * @test
  * @bug 4686148
  * @summary compiler allows non-public implementation of interface methods
  * @author gafter
--- a/j2se/test/tools/javac/miranda/4686811/Tryit.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/miranda/4686811/Tryit.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Tryit.java	1.7 07/05/05
+ * @test
  * @bug 4686811
  * @summary package private methods do not override across package boundary
  * @author gafter
--- a/j2se/test/tools/javac/miranda/4711056/T1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/miranda/4711056/T1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T1.java	1.6 07/05/05
+ * @test
  * @bug 4711056
  * @summary javac fails to detect conflicting interfaces with separate compilation
  * @author gafter
--- a/j2se/test/tools/javac/miranda/T4279316a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/miranda/T4279316a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4279316a.java	1.8 07/05/05
+ * @test
  * @bug 4279316 4758654 4839284
  * @summary inconsistency in overload resolution at compile time
  * @author gafter
--- a/j2se/test/tools/javac/miranda/T4279316b.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/miranda/T4279316b.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4279316b.java	1.8 07/05/05
+ * @test
  * @bug 4279316 4758654 4839284
  * @summary inconsistency in overload resolution at compile time
  * @author gafter
--- a/j2se/test/tools/javac/miranda/T4279316c.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/miranda/T4279316c.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4279316c.java	1.8 07/05/05
+ * @test
  * @bug 4279316 4758654 4839284
  * @summary inconsistency in overload resolution at compile time
  * @author gafter
--- a/j2se/test/tools/javac/miranda/T4279316d.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/miranda/T4279316d.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4279316d.java	1.8 07/05/05
+ * @test
  * @bug 4279316 4758654 4839284
  * @summary inconsistency in overload resolution at compile time
  * @author gafter
--- a/j2se/test/tools/javac/miranda/T4528315.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/miranda/T4528315.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4528315.java	1.6 07/05/05
+ * @test
  * @bug 4528315
  * @summary Multiple method inheritance and throws clauses
  * @author gafter
--- a/j2se/test/tools/javac/miranda/T4666866.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/miranda/T4666866.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)T4666866.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4666866 4785453
  * @summary REGRESSION: Generated error message unhelpful for missing methods
  * @author gafter
--- a/j2se/test/tools/javac/miranda/T4711325.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/miranda/T4711325.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4711325.java	1.10 07/05/05
+ * @test
  * @bug 4711325 4862139 5009712
  * @summary compiler allows unimplementable interfaces
  * @author gafter
--- a/j2se/test/tools/javac/missingClass/A.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/missingClass/A.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)A.java	1.7 07/05/05
+ * @test
  * @summary Verify that we check that a source file contains the class sought.
  * @author gafter
  *
--- a/j2se/test/tools/javac/missingSuperRecovery/MissingSuperRecovery.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/missingSuperRecovery/MissingSuperRecovery.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)MissingSuperRecovery.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4332631 4785453
  * @summary Check for proper error recovery when superclass of extended
  * class is no longer available during a subsequent compilation.
--- a/j2se/test/tools/javac/mixedTarget/CompatibleAbstracts1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/mixedTarget/CompatibleAbstracts1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CompatibleAbstracts1.java	1.9 07/05/05
+ * @test
  * @bug 5009712
  * @summary 1.4 javac should not accept the Covariant Return Type
  * @author gafter
--- a/j2se/test/tools/javac/mixedTarget/ExtendCovariant1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/mixedTarget/ExtendCovariant1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ExtendCovariant1.java	1.6 07/05/05
+ * @test
  * @bug 5009712
  * @summary 1.4 javac should not accept the Covariant Return Type
  * @author gafter
--- a/j2se/test/tools/javac/mixedTarget/ExtendCovariant2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/mixedTarget/ExtendCovariant2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ExtendCovariant2.java	1.8 07/05/05
+ * @test
  * @bug 5009712
  * @summary 1.4 javac should not accept the Covariant Return Type
  * @author gafter
--- a/j2se/test/tools/javac/nested/4903103/T4903103.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/nested/4903103/T4903103.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T4903103.java	1.10 07/05/05
+ * @test
  * @bug     4903103
  * @summary Can't compile subclasses of inner classes
  * @compile T4903103.java
--- a/j2se/test/tools/javac/nested/5009484/X.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/nested/5009484/X.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)X.java	1.7 07/05/05
+ * @test
  * @bug     5009484
  * @summary Compiler fails to resolve appropriate type for outer member
  * @author  Philippe P Mulet
--- a/j2se/test/tools/javac/nested/5009484/Y.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/nested/5009484/Y.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)Y.java	1.6 07/05/05
+ * @test
  * @bug     5009484
  * @summary Compiler fails to resolve appropriate type for outer member
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/newlines/Newlines.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/newlines/Newlines.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -21,7 +21,7 @@
 # have any questions.
 #
 
-# @test @(#)Newlines.sh	1.7 07/07/18
+# @test
 # @bug 4110560 4785453
 # @summary portability : javac.properties
 #
--- a/j2se/test/tools/javac/overload/T4494762.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/overload/T4494762.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T4494762.java	1.4 07/05/05
+ * @test
  * @bug     4494762 6491939
  * @summary Request for Clarification of JLS 15.12.2.2
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/overload/T4723909.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/overload/T4723909.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4723909.java	1.8 07/05/05
+ * @test
  * @bug 4723909 4758654 4839284
  * @summary class methods do not conform to JLS 15.12.2.2 definition of most specific method
  * @author gafter
--- a/j2se/test/tools/javac/overload/T4743490.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/overload/T4743490.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4743490.java	1.6 07/05/05
+ * @test
  * @bug 4743490
  * @summary overloading versus super.f(args) versus interfaces
  * @author gafter
--- a/j2se/test/tools/javac/overload/T5090220.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/overload/T5090220.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T5090220.java	1.8 07/05/05
+ * @test
  * @bug 5090220
  * @summary Autoboxing applied when calculating most-specific method
  * @compile/fail -source 5 T5090220.java
--- a/j2se/test/tools/javac/overrridecrash/B.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/overrridecrash/B.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)B.java	1.6 07/05/05
+ * @test
  * @bug 4909690
  * @summary AssertionError(com.sun.tools.javac.v8.code.Symbol$MethodSymbol.isOverridableIn)
  * @author gafter
--- a/j2se/test/tools/javac/p1/AS.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/p1/AS.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,8 +22,6 @@
  */
 
 /* 
- * @(#)AS.java	1.6 07/05/05
- *
  * Auxiliary file for QualifiedThisAndSuper_1.java, et. al.
  */
 
--- a/j2se/test/tools/javac/p1/BS.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/p1/BS.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,8 +22,6 @@
  */
 
 /* 
- * @(#)BS.java	1.6 07/05/05
- *
  * Auxiliary file for QualifiedThisAndSuper_1.java, et. al.
  */
 
--- a/j2se/test/tools/javac/p1/CS.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/p1/CS.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,8 +22,6 @@
  */
 
 /* 
- * @(#)CS.java	1.6 07/05/05
- *
  * Auxiliary file for QualifiedThisAndSuper_1.java, et. al.
  */
 
--- a/j2se/test/tools/javac/packone/Mediator.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/packone/Mediator.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,9 +22,7 @@
  */
 
 /*
- * %W 07/05/05
- *
- * Auxilliary file for EnclosingAccessCheck.
+ * Auxiliary file for EnclosingAccessCheck.
  */
 
 package packone;
--- a/j2se/test/tools/javac/packone/Secret.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/packone/Secret.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,9 +22,7 @@
  */
 
 /*
- * %W 07/05/05
- *
- * Auxilliary file for EnclosingAccessCheck.
+ * Auxiliary file for EnclosingAccessCheck.
  */
 
 package packone;
--- a/j2se/test/tools/javac/positions/T6253161.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/positions/T6253161.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test    @(#)T6253161.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     6253161
  * @summary Compiler will fail to find the correct location of serial warnings for anonymous inner classes
  * @author  Seetharama Avadhanam
--- a/j2se/test/tools/javac/positions/T6253161a.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/positions/T6253161a.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test    @(#)T6253161a.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     6253161
  * @summary Compiler will fail to find the correct location of serial warnings for anonymous inner classes
  * @author  Seetharama Avadhanam
--- a/j2se/test/tools/javac/positions/T6264029.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/positions/T6264029.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test    @(#)T6264029.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     6264029
  * @summary Compiler issues wrong unchecked warning for anonymous inner class
  * @author  Seetharama Avadhanam
--- a/j2se/test/tools/javac/positions/T6402077.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/positions/T6402077.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6402077.java	1.4 07/05/05
+ * @test
  * @bug     6402077
  * @summary Start position is wrong for package private constructors
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/positions/T6404194.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/positions/T6404194.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6404194.java	1.4 07/05/05
+ * @test
  * @bug     6404194
  * @summary javac parser generates incorrect end position for annotations with parentheses.
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/processing/6348193/T6348193.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/6348193/T6348193.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6348193.java	1.11 07/05/05
+ * @test
  * @bug 6348193
  * @summary AS8.1 UR2 BAT test failure with "javac"
  * @compile -proc:none T6348193.java
--- a/j2se/test/tools/javac/processing/6348499/T6348499.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/6348499/T6348499.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6348499.java	1.7 07/05/05
+ * @test
  * @bug 6441871
  * @summary javac crashes at com.sun.tools.javac.jvm.ClassReader$BadClassFile
  * @build A
--- a/j2se/test/tools/javac/processing/6350124/T6350124.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/6350124/T6350124.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6350124.java	1.10 07/05/05
+ * @test
  * @bug 6350124 6410012
  * @summary javac -s does not have the generated source files
  */
--- a/j2se/test/tools/javac/processing/6359313/T6359313.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/6359313/T6359313.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6359313.java	1.6 07/05/05
+ * @test
  * @bug     6359313
  * @summary error compiling annotated package
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/processing/6365040/T6365040.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/6365040/T6365040.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6365040.java	1.7
+ * @test
  * @bug 6365040 6358129
  * @summary Test -processor foo,bar,baz
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/6378728/T6378728.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/6378728/T6378728.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,7 +21,7 @@
  * have any questions.
  */
 
-/* @test    @(#)T6378728.java	1.11
+/* @test
  * @bug     6378728
  * @summary Verify -proc:only doesn't produce class files
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/6413690/T6413690.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/6413690/T6413690.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6413690.java	1.7 07/05/05
+ * @test
  * @bug     6413690 6380018
  * @summary JavacProcessingEnvironment does not enter trees from preceding rounds
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/processing/6414633/T6414633.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/6414633/T6414633.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6414633.java	1.9 07/05/05
+ * @test
  * @bug 6414633 6440109
  * @summary Only the first processor message at a source location is reported
  * @build A T6414633
--- a/j2se/test/tools/javac/processing/6430209/T6430209.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/6430209/T6430209.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6430209.java	1.7 07/05/05
+ * @test
  * @bug 6441871
  * @summary spurious compiler error elicited by packageElement.getEnclosedElements()
  * @build b6341534
--- a/j2se/test/tools/javac/processing/T6439826.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/T6439826.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T6439826.java	1.10 07/05/05
+ * @test
  * @bug 6439826 6411930 6380018 6392177
  * @summary Exception issuing Diagnostic while processing generated errant code
  */
--- a/j2se/test/tools/javac/processing/Xprint.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/Xprint.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)Xprint.java	1.9 07/05/05
+ * @test
  * @bug     6266828
  * @summary JSR 269: Java Language Model API
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/processing/completion/TestCompletions.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/completion/TestCompletions.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestCompletions.java	1.6
+ * @test
  * @bug 6341177
  * @summary Some simple tests of the methods in Completions
  * @author Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/environment/TestSourceVersion.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/environment/TestSourceVersion.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestSourceVersion.java	1.6
+ * @test
  * @bug 6402506
  * @summary Test that getSourceVersion works properly
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/environment/round/TestElementsAnnotatedWith.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/environment/round/TestElementsAnnotatedWith.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestElementsAnnotatedWith.java	1.11
+ * @test
  * @bug 6397298 6400986 6425592 6449798 6453386 6508401
  * @summary Tests that getElementsAnnotatedWith works properly.
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/errors/TestFatalityOfParseErrors.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/errors/TestFatalityOfParseErrors.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestFatalityOfParseErrors.java	1.7
+ * @test
  * @bug 6403459
  * @summary Test that generating programs with syntax errors is a fatal condition
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/errors/TestOptionSyntaxErrors.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/errors/TestOptionSyntaxErrors.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestOptionSyntaxErrors.java	1.6
+ * @test
  * @bug 6406212
  * @summary Test that annotation processor options with illegal syntax are rejected
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/errors/TestReturnCode.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/errors/TestReturnCode.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestReturnCode.java	1.6
+ * @test
  * @bug 6403468
  * @summary Test that an erroneous return code results from raising an error.
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/filer/TestFilerConstraints.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/filer/TestFilerConstraints.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestFilerConstraints.java	1.7
+ * @test
  * @bug 6380018 6453386 6457283
  * @summary Test that the constraints guaranteed by the Filer and maintained
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/filer/TestGetResource.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/filer/TestGetResource.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestGetResource.java	1.7
+ * @test
  * @bug 6380018 6449798
  * @summary Test Filer.getResource
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/filer/TestPackageInfo.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/filer/TestPackageInfo.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestPackageInfo.java	1.6
+ * @test
  * @bug 6380018 6392177
  * @summary Test the ability to create and process package-info.java files
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/messager/6362067/T6362067.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/messager/6362067/T6362067.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test    @(#)T6362067.java	1.5 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug     6362067
  * @summary Messager methods do not print out source position information
  * @build   T6362067
--- a/j2se/test/tools/javac/processing/messager/MessagerBasics.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/messager/MessagerBasics.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)MessagerBasics.java	1.8
+ * @test
  * @bug     6341173 6341072
  * @summary Test presence of Messager methods
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/model/6194785/T6194785.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/6194785/T6194785.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6194785.java	1.8 07/05/05
+ * @test
  * @bug     6194785
  * @summary ParameterDeclaration.getSimpleName does not return actual name from class files
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/processing/model/6341534/T6341534.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/6341534/T6341534.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6341534.java	1.7 07/05/05
+ * @test
  * @bug     6341534
  * @summary PackageElement.getEnclosedElements results in NullPointerException from parse(JavaCompiler.java:429)
  * @author  Steve Sides
--- a/j2se/test/tools/javac/processing/model/element/TestElement.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/element/TestElement.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestElement.java	1.6
+ * @test
  * @bug 6453386
  * @summary Test basic properties of javax.lang.element.Element
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/model/element/TestNames.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/element/TestNames.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestNames.java	1.6
+ * @test
  * @bug 6380016
  * @summary Test that the constraints guaranteed by the Filer and maintained
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/model/element/TestPackageElement.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/element/TestPackageElement.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestPackageElement.java	1.7
+ * @test
  * @bug 6449798 6399404
  * @summary Test basic workings of PackageElement
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/model/element/TypeParamBounds.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/element/TypeParamBounds.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TypeParamBounds.java	1.6 07/05/05
+ * @test
  * @bug     6423972
  * @summary Tests TypeParameter.getBounds.
  * @author  Scott Seligman
--- a/j2se/test/tools/javac/processing/model/testgetallmembers/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/testgetallmembers/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)Main.java	1.13 07/05/05
+ * @test
  * @bug     6374357 6308351
  * @summary PackageElement.getEnclosedElements() throws ClassReader$BadClassFileException
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/processing/model/type/MirroredTypeEx/OverEager.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/type/MirroredTypeEx/OverEager.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)OverEager.java	1.7 07/05/05
+ * @test
  * @bug     6362178
  * @summary MirroredType[s]Exception shouldn't be created too eagerly
  * @author  Scott Seligman
--- a/j2se/test/tools/javac/processing/model/type/NoTypes.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/type/NoTypes.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)NoTypes.java	1.7 07/05/05
+ * @test
  * @bug     6418666 6423973 6453386
  * @summary Test the NoTypes: VOID, PACKAGE, NONE
  * @author  Scott Seligman
--- a/j2se/test/tools/javac/processing/model/type/TestTypeKind.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/type/TestTypeKind.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TestTypeKind.java	1.6
+ * @test
  * @bug     6347716
  * @summary Test TypeKind.isPrimitive
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/model/util/BinaryName.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/util/BinaryName.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)BinaryName.java	1.6 07/05/05
+ * @test
  * @bug     6346251
  * @summary Test Elements.getBinaryName
  * @author  Scott Seligman
--- a/j2se/test/tools/javac/processing/model/util/GetTypeElemBadArg.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/util/GetTypeElemBadArg.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)GetTypeElemBadArg.java	1.7 07/05/05
+ * @test
  * @bug     6346506 6408241
  * @summary getTypeElement should tolerate a type that can't be found
  * @author  Scott Seligman
--- a/j2se/test/tools/javac/processing/model/util/NoSupers.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/util/NoSupers.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)NoSupers.java	1.6 07/05/05
+ * @test
  * @bug     6346453 
  * @summary directSupertypes should return empty list if arg has no supertypes
  * @author  Scott Seligman
--- a/j2se/test/tools/javac/processing/model/util/OverridesSpecEx.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/util/OverridesSpecEx.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)OverridesSpecEx.java	1.6 07/05/05
+ * @test
  * @bug     6453386
  * @summary Verify that example code in Elements.overrides works as spec'ed.
  * @author  Scott Seligman
--- a/j2se/test/tools/javac/processing/model/util/TypesBadArg.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/util/TypesBadArg.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TypesBadArg.java	1.7 07/05/05
+ * @test
  * @bug     6345812
  * @summary Validate argument kinds in Types utilities
  * @author  Scott Seligman
--- a/j2se/test/tools/javac/processing/model/util/deprecation/TestDeprecation.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/util/deprecation/TestDeprecation.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestDeprecation.java	1.7
+ * @test
  * @bug 6392818
  * @summary Tests Elements.isDeprecated(Element)
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/model/util/directSupersOfErr/DirectSupersOfErr.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/util/directSupersOfErr/DirectSupersOfErr.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)DirectSupersOfErr.java	1.7 07/05/05
+ * @test
  * @bug     6346973
  * @summary directSupertypes(t) should not return t
  * @author  Scott Seligman
--- a/j2se/test/tools/javac/processing/model/util/elements/TestGetPackageOf.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/util/elements/TestGetPackageOf.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestGetPackageOf.java	1.6
+ * @test
  * @bug 6453386
  * @summary Test Elements.getPackageOf
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/model/util/filter/TestIterables.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/model/util/filter/TestIterables.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestIterables.java	1.7
+ * @test
  * @bug 6406164
  * @summary Test that ElementFilter iterable methods behave properly.
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/processing/warnings/TestSourceVersionWarnings.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/processing/warnings/TestSourceVersionWarnings.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TestSourceVersionWarnings.java	1.7
+ * @test
  * @bug 6376083 6376084 6458819
  * @summary Test that warnings about source versions are output as expected.
  * @author  Joseph D. Darcy
--- a/j2se/test/tools/javac/proprietary/WarnClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/proprietary/WarnClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)WarnClass.java	1.6 07/05/05
+ * @test
  * @bug     6380059
  * @summary Emit warnings for proprietary packages in the boot class path
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/proprietary/WarnImport.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/proprietary/WarnImport.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)WarnImport.java	1.6 07/05/05
+ * @test
  * @bug     6380059
  * @summary Emit warnings for proprietary packages in the boot class path
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/proprietary/WarnMethod.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/proprietary/WarnMethod.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)WarnMethod.java	1.6 07/05/05
+ * @test
  * @bug     6380059
  * @summary Emit warnings for proprietary packages in the boot class path
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/proprietary/WarnStaticImport.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/proprietary/WarnStaticImport.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)WarnStaticImport.java	1.6 07/05/05
+ * @test
  * @bug     6380059
  * @summary Emit warnings for proprietary packages in the boot class path
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/proprietary/WarnVariable.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/proprietary/WarnVariable.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)WarnVariable.java	1.6 07/05/05
+ * @test
  * @bug     6380059
  * @summary Emit warnings for proprietary packages in the boot class path
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/proprietary/WarnWildcard.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/proprietary/WarnWildcard.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)WarnWildcard.java	1.6 07/05/05
+ * @test
  * @bug     6380059
  * @summary Emit warnings for proprietary packages in the boot class path
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/protectedAccess/ProtectedAccess_1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/protectedAccess/ProtectedAccess_1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ProtectedAccess_1.java	1.7 07/05/05
+ * @test
  * @bug 4249096
  * @summary Verify that special access checks for inherited protected members
  * are not applied to static members, per specification revision.
--- a/j2se/test/tools/javac/protectedAccess/ProtectedAccess_2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/protectedAccess/ProtectedAccess_2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ProtectedAccess_2.java	1.7 07/05/05
+ * @test
  * @bug 4277524
  * @summary Verify that static reference to protected member of unrelated class is disallowed.
  * @author maddox
--- a/j2se/test/tools/javac/protectedAccess/ProtectedAccess_3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/protectedAccess/ProtectedAccess_3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ProtectedAccess_3.java	1.7 07/05/05
+ * @test
  * @bug 4804371
  * @summary javac and java disagree about protected; results in a VerifyError
  * @author gafter
--- a/j2se/test/tools/javac/protectedAccess/ProtectedMemberAccess1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/protectedAccess/ProtectedMemberAccess1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ProtectedMemberAccess1.java	1.6 07/05/05
+ * @test
  * @bug 4319507
  * @summary Verify correct implementation of JLS2e 6.6.2.1
  * @author maddox
--- a/j2se/test/tools/javac/protectedAccess/ProtectedMemberAccess2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/protectedAccess/ProtectedMemberAccess2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)ProtectedMemberAccess2.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4319507 4785453
  * @summary Verify correct implementation of JLS2e 6.6.2.1
  * @author maddox
--- a/j2se/test/tools/javac/protectedAccess/ProtectedMemberAccess3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/protectedAccess/ProtectedMemberAccess3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)ProtectedMemberAccess3.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4319507 4785453
  * @summary Verify correct implementation of JLS2e 6.6.2.1
  * @author maddox
--- a/j2se/test/tools/javac/protectedAccess/ProtectedMemberAccess4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/protectedAccess/ProtectedMemberAccess4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)ProtectedMemberAccess4.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4319507 4785453
  * @summary Verify correct implementation of JLS2e 6.6.2.1
  * @author maddox
--- a/j2se/test/tools/javac/protectedAccess/ProtectedMemberAccess5/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/protectedAccess/ProtectedMemberAccess5/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.6 07/05/05
+ * @test
  * @bug 4786115
  * @summary (cl) Odd IllegalAccessError across jar-file boundaries
  * @author gafter
--- a/j2se/test/tools/javac/protectedAccess/p/SuperClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/protectedAccess/p/SuperClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)SuperClass.java	1.6 07/05/05
- */
-
 package p;
 
 public class SuperClass { 
--- a/j2se/test/tools/javac/protectedAccess/pkg/SuperClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/protectedAccess/pkg/SuperClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/* 
- * @(#)SuperClass.java	1.6 07/05/05
- */
-
 package pkg;
 
 public class SuperClass {
--- a/j2se/test/tools/javac/protectedInner/AnonInnerClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/protectedInner/AnonInnerClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)AnonInnerClass.java	1.6 07/05/05
+ * @test
  * @bug 4251061
  * @summary Verify that we can access inherited, protected method from 
  * an anonymous enclosing superclass.
--- a/j2se/test/tools/javac/protectedInner/InnerClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/protectedInner/InnerClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)InnerClass.java	1.6 07/05/05
+ * @test
  * @bug 4269441 
  * @summary Verify that we can access inherited, protected method from 
  * an inner class.
--- a/j2se/test/tools/javac/protectedInner/Outerclass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/protectedInner/Outerclass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test @(#)Outerclass.java	1.6 07/05/05
+ * @test
  * @bug 4860741
  * @summary VerifyError occurs when 2nd inner class accesses method from outer most class
  *
--- a/j2se/test/tools/javac/rawDiags/Error.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/rawDiags/Error.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)Error.java	1.4 06/11/01  /nodynamiccopyright/ 
+ * @test  /nodynamiccopyright/ 
  * @bug 6177732
  * @summary add hidden option to have compiler generate diagnostics in more machine-readable form
  * @compile/fail/ref=Error.out -XDrawDiagnostics -XDstdout Error.java
--- a/j2se/test/tools/javac/rawDiags/Warning.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/rawDiags/Warning.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)Warning.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 6177732
  * @summary add hidden option to have compiler generate diagnostics in more machine-readable form
  * @compile/ref=Warning.out -XDrawDiagnostics -XDstdout -Xlint:unchecked Warning.java
--- a/j2se/test/tools/javac/scope/6225935/Estatico4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/scope/6225935/Estatico4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)Estatico4.java	1.7 07/05/05
+ * @test
  * @bug     6214959
  * @summary Compiler fails do produce error message with ODD number of import static
  * @compile/fail Estatico4.java
--- a/j2se/test/tools/javac/scope/6225935/StaticImportAccess.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/scope/6225935/StaticImportAccess.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)StaticImportAccess.java	1.8 07/05/05
+ * @test
  * @bug     6225935
  * @summary "import static" accessibility rules for symbols different for no reason
  * @author  Martin Buchholz
--- a/j2se/test/tools/javac/scope/6225935/T6214959.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/scope/6225935/T6214959.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6214959.java	1.6 07/05/05
+ * @test
  * @bug     6214959
  * @summary Compiler fails do produce error message with ODD number of import static
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/scope/6225935/T6225935.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/scope/6225935/T6225935.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6225935.java	1.7 07/05/05
+ * @test
  * @bug     6225935
  * @summary "import static" accessibility rules for symbols different for no reason
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/scope/6225935/T6381787.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/scope/6225935/T6381787.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T6381787.java	1.6 07/05/05
+ * @test
  * @bug     6381787
  * @summary Failing Japanese Calendar regression tests
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/scope/6225935/Test.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/scope/6225935/Test.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)Test.java	1.6 07/05/05
+ * @test
  * @bug     6381787
  * @summary Failing Japanese Calendar regression tests
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/scope/6392998/T6392998.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/scope/6392998/T6392998.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6392998.java	1.6 07/05/05
+ * @test
  * @bug     6392998
  * @summary Mustang compiler throws AssertionError (beta2-b71 and higher)
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/sourcePath/SourcePath.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/sourcePath/SourcePath.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SourcePath.java	1.6 07/05/05
+ * @test
  * @bug 4648973
  * @summary compiler does not emit code for second class in source file
  * @author gafter
--- a/j2se/test/tools/javac/sourcePath2/SourcePath2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/sourcePath2/SourcePath2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SourcePath2.java	1.6 07/05/05
+ * @test
  * @bug 4648973
  * @summary compiler does not emit code for second class in source file
  * @author gafter
--- a/j2se/test/tools/javac/stackmap/T4955930.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/stackmap/T4955930.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)T4955930.java	1.7 07/05/05
+ * @test
  * @bug 4955930
  * @summary The "method0" StackMap attribute should have two entries instead of three
  * @author wtao
--- a/j2se/test/tools/javac/stackmap/UninitThis.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/stackmap/UninitThis.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UninitThis.java	1.8 07/05/05
+ * @test
  * @bug 4948063
  * @summary Invalid java.io.FileInputStream with v49 generate by javac
  * @author gafter
--- a/j2se/test/tools/javac/staticImport/Ambig1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/staticImport/Ambig1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Ambig1.java	1.6 07/05/05
+ * @test
  * @bug 4929736
  * @summary Missing ambiguity error when two methods are equally specific
  * @author gafter
--- a/j2se/test/tools/javac/staticImport/ImportInherit.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/staticImport/ImportInherit.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ImportInherit.java	1.6 07/05/05
+ * @test
  * @bug 4965363
  * @summary static import versus inherited members
  * @author gafter
--- a/j2se/test/tools/javac/staticImport/ImportPrivate.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/staticImport/ImportPrivate.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)ImportPrivate.java	1.6 07/05/05
+ * @test
  * @bug 4979456
  * @summary NPE while compiling static import of inaccessible class member
  * @author gafter
--- a/j2se/test/tools/javac/staticImport/PrivateStaticImport.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/staticImport/PrivateStaticImport.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)PrivateStaticImport.java	1.6 07/05/05
+ * @test
  * @bug 4912075
  * @summary static import of private field crashes compiler
  * @author gafter
--- a/j2se/test/tools/javac/staticImport/Shadow.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/staticImport/Shadow.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Shadow.java	1.8 07/05/05
+ * @test
  * @bug 5017254
  * @summary compiler fails to shadow inapplicable method with static import
  * @author gafter
--- a/j2se/test/tools/javac/staticImport/StaticImport.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/staticImport/StaticImport.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)StaticImport.java	1.9 07/05/05
+ * @test
  * @bug 4855358 4965039 4970828
  * @summary add support for JSR 201's static import facility
  * @author gafter
--- a/j2se/test/tools/javac/staticImport/StaticImport2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/staticImport/StaticImport2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)StaticImport2.java	1.6 07/05/05
+ * @test
  * @bug 4855358
  * @summary add support for JSR 201's static import facility
  * @author gafter
--- a/j2se/test/tools/javac/staticQualifiedNew/StaticQualifiedNew.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/staticQualifiedNew/StaticQualifiedNew.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)StaticQualifiedNew.java	1.6 07/05/05
+ * @test
  * @bug 4295650
  * @summary Verify that qualified 'new' of static class is forbidden.
  * @author maddox (after gbracha)
--- a/j2se/test/tools/javac/staticQualifiedNew/p2/X.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/staticQualifiedNew/p2/X.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)X.java	1.6 07/05/05
- */
-
 package p2;
 
 public class X {
--- a/j2se/test/tools/javac/unicode/FirstChar.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unicode/FirstChar.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FirstChar.java	1.7 07/05/05
+ * @test
  * @bug 5099360
  * @summary allow unicode escape at start of program
  * @author Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/unicode/NonasciiDigit.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unicode/NonasciiDigit.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NonasciiDigit.java	1.7 07/05/05
+ * @test
  * @bug 4707960 6183529
  * @summary javac accepts unicode digits - sometimes crashing
  * @author gafter
--- a/j2se/test/tools/javac/unicode/NonasciiDigit2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unicode/NonasciiDigit2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NonasciiDigit2.java	1.6 07/05/05
+ * @test
  * @bug 4707960 6183529
  * @summary javac accepts unicode digits - sometimes crashing
  * @author gafter
--- a/j2se/test/tools/javac/unicode/SubChar.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unicode/SubChar.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test %W% %E%
+ * @test
  * @bug 4330479
  * @summary ASCII SUB character is rejected in multi-line comments
  * @author gafter
@@ -46,4 +46,3 @@
     }
 }
 /* \u001A */
-\u001A
\ No newline at end of file
--- a/j2se/test/tools/javac/unicode/SupplementaryJavaID1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unicode/SupplementaryJavaID1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SupplementaryJavaID1.java	1.6 07/05/05
+ * @test
  * @bug 4914724
  * @summary Check that valid supplementary characters can be used as Java identifiers.
  * @author Naoto Sato
--- a/j2se/test/tools/javac/unicode/SupplementaryJavaID2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unicode/SupplementaryJavaID2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SupplementaryJavaID2.java	1.6 07/05/05
+ * @test
  * @bug 4914724
  * @summary Ensure that the invalid surrogate sequence, as the start of an identifier,
  *          causes a compilation failure
--- a/j2se/test/tools/javac/unicode/SupplementaryJavaID3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unicode/SupplementaryJavaID3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SupplementaryJavaID3.java	1.6 07/05/05
+ * @test
  * @bug 4914724
  * @summary Ensure that the invalid surrogate sequence, as the part of an identifier,
  *          causes a compilation failure
--- a/j2se/test/tools/javac/unicode/SupplementaryJavaID4.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unicode/SupplementaryJavaID4.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SupplementaryJavaID4.java	1.6 07/05/05
+ * @test
  * @bug 4914724
  * @summary Ensure that a supplementary character that cannot be the start of a Java
  *          identifier causes a compilation failure, if it is used as the start of an
--- a/j2se/test/tools/javac/unicode/SupplementaryJavaID5.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unicode/SupplementaryJavaID5.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SupplementaryJavaID5.java	1.6 07/05/05
+ * @test
  * @bug 4914724
  * @summary Ensure that a supplementary character that cannot be the part of a Java
  *          identifier causes a compilation failure, if it is used as the part of an
--- a/j2se/test/tools/javac/unicode/SupplementaryJavaID6.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unicode/SupplementaryJavaID6.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,10 +21,6 @@
  * have any questions.
  */
 
-/*
- * @(#)SupplementaryJavaID6.java	1.8 07/05/05
- */
-
 public class SupplementaryJavaID6 {
     public static void main(String[] s) {
         new SupplementaryJavaID6();
--- a/j2se/test/tools/javac/unicode/SupplementaryJavaID6.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unicode/SupplementaryJavaID6.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -24,7 +24,7 @@
 #
 
 #
-# @test @(#)SupplementaryJavaID6.sh	1.6 07/07/18
+# @test
 # @bug 4914724 4973116 5014511
 # @summary Ensure that a supplementary character can be used as part/whole of a class
 #          name on platforms that have Unicode aware filesystems.
--- a/j2se/test/tools/javac/unicode/TripleQuote.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unicode/TripleQuote.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TripleQuote.java	1.6 07/05/05
+ * @test
  * @bug 1265387
  * @summary ''' and '\u0027' are not legal char literals.
  * @author turnidge
--- a/j2se/test/tools/javac/unicode/UnicodeCommentDelimiter.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unicode/UnicodeCommentDelimiter.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UnicodeCommentDelimiter.java	1.6 07/05/05
+ * @test
  * @summary unicode escapes delimiting and inside of comments
  *
  * @compile UnicodeCommentDelimiter.java
--- a/j2se/test/tools/javac/unicode/UnicodeNewline.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unicode/UnicodeNewline.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /*
- * @test @(#)UnicodeNewline.java	1.4 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4739428 4785453
  * @summary when \u000a is used, diagnostics are reported on the wrong line.
  *
--- a/j2se/test/tools/javac/unicode/UnicodeUnicode.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unicode/UnicodeUnicode.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)UnicodeUnicode.java	1.6 07/05/05
+ * @test
  * @bug 4863451
  * @summary Unicode escape processing is redone
  * @author gafter
--- a/j2se/test/tools/javac/unicode/Unmappable.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unicode/Unmappable.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Unmappable.java	1.9 07/05/05
+ * @test
  * @bug 4767128 5048557 5048773
  * @summary diagnose encoding errors in Java source files
  * @author gafter
--- a/j2se/test/tools/javac/unit/T6198196.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unit/T6198196.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)T6198196.java	1.11 07/05/05
+ * @test
  * @bug     6198196 6278523
  * @summary package-info.java: Weird compiler error
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/unit/util/convert/EnclosingCandidates.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unit/util/convert/EnclosingCandidates.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)EnclosingCandidates.java	1.6 07/05/05
+ * @test
  * @bug     6397652
  * @summary javac compilation failure when imported class with $ sign in the name
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/unit/util/list/AbstractList.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unit/util/list/AbstractList.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)AbstractList.java	1.7 07/05/05
+ * @test
  * @bug     6320536
  * @summary com.sun.tools.javac.util.List.from(A[]) shouldn't be deprecated
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/unit/util/list/FromArray.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/unit/util/list/FromArray.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)FromArray.java	1.7 07/05/05
+ * @test
  * @bug     6289436
  * @summary com.sun.tools.javac.util.List.from(A[]) shouldn't be deprecated
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javac/util/filemanager/TestName.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/util/filemanager/TestName.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test    @(#)TestName.java	1.7 07/05/05
+ * @test
  * @bug     6409829
  * @summary JSR 199: enforce the use of valid package and class names
  *                   in get{Java,}FileFor{Input,Output}
--- a/j2se/test/tools/javac/util/list/TList.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/util/list/TList.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)TList.java	1.6 07/05/05
+ * @test
  * @bug 6267067 6351336 6389198
  * @summary unit test for javac List
  */
--- a/j2se/test/tools/javac/varargs/Anon.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/varargs/Anon.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Anon.java	1.7 07/05/05
+ * @test
  * @bug 4986231
  * @summary varargs versus anonymous constructors crashes javac
  * @author gafter
--- a/j2se/test/tools/javac/varargs/BadSyntax2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/varargs/BadSyntax2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BadSyntax2.java	1.8 07/05/05
+ * @test
  * @bug 4901611 5009693 4920438
  * @summary generic class method with vararg gets "java.lang.AssertionError: arraycode T"
  * @author gafter
--- a/j2se/test/tools/javac/varargs/Varargs1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/varargs/Varargs1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Varargs1.java	1.7 07/05/05
+ * @test
  * @bug 4856541 4812161
  * @summary varags, auto boxing
  * @author gafter
--- a/j2se/test/tools/javac/varargs/VarargsOverride.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/varargs/VarargsOverride.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)VarargsOverride.java	1.7 07/05/05
+ * @test
  * @bug 4984022
  * @summary overriding with method of different arity is prohibited
  * @author gafter
--- a/j2se/test/tools/javac/varargs/Warn1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/varargs/Warn1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Warn1.java	1.7 07/05/05
+ * @test
  * @bug 5024518
  * @summary need warning if varargs argument isn't boxed
  * @author gafter
--- a/j2se/test/tools/javac/varargs/Warn2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/varargs/Warn2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Warn2.java	1.7 07/05/05
+ * @test
  * @bug 5024518
  * @summary need warning if varargs argument isn't boxed
  * @author gafter
--- a/j2se/test/tools/javac/varargs/warning/Warn1.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/varargs/warning/Warn1.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Warn1.java	1.6 07/05/05
+ * @test
  * @bug 5035307
  * @summary fixed-arity warning given too often
  * @author gafter
--- a/j2se/test/tools/javac/varargs/warning/Warn2.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/varargs/warning/Warn2.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Warn2.java	1.6 07/05/05
+ * @test
  * @bug 5035307
  * @summary fixed-arity warning given too often
  * @author gafter
--- a/j2se/test/tools/javac/varargs/warning/Warn3.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/varargs/warning/Warn3.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Warn3.java	1.6 07/05/05
+ * @test
  * @bug 5035307
  * @summary fixed-arity warning given too often
  * @author gafter
--- a/j2se/test/tools/javac/versions/CheckClassFileVersion.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/versions/CheckClassFileVersion.java	Fri Aug 31 00:44:13 2007 +0000
@@ -21,8 +21,6 @@
  * have any questions.
  */
 
-// @(#)CheckClassFileVersion.java	1.6 07/05/05
-
 import java.io.*;
 import java.nio.*;
 import java.nio.channels.*;
--- a/j2se/test/tools/javac/versions/check.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/versions/check.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -21,7 +21,7 @@
 # have any questions.
 #
 
-# @test @(#)check.sh	1.12 07/07/18
+# @test
 # @bug 4981566 5028634 5094412 6304984
 # @summary Check interpretation of -target and -source options
 #
--- a/j2se/test/tools/javac/warnings/Deprecation.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/warnings/Deprecation.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test @(#)Deprecation.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4986256
  * @compile/ref=Deprecation.noLint.out -XDstdout                             -XDrawDiagnostics Deprecation.java
  * @compile/ref=Deprecation.lintDeprecation.out -XDstdout -Xlint:deprecation -XDrawDiagnostics Deprecation.java
--- a/j2se/test/tools/javac/warnings/DivZero.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/warnings/DivZero.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test @(#)DivZero.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4759494 4986256 
  * @compile/ref=DivZero.noLint.out -XDstdout                   -XDrawDiagnostics DivZero.java
  * @compile/ref=DivZero.lint.out -XDstdout    -Xlint:divzero   -XDrawDiagnostics DivZero.java
--- a/j2se/test/tools/javac/warnings/FallThrough.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/warnings/FallThrough.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test @(#)FallThrough.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4986256
  * @compile/ref=FallThrough.noLint.out -XDstdout                             -XDrawDiagnostics FallThrough.java
  * @compile/ref=FallThrough.lintAll.out -XDstdout         -Xlint:all,-path   -XDrawDiagnostics FallThrough.java
--- a/j2se/test/tools/javac/warnings/Unchecked.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javac/warnings/Unchecked.java	Fri Aug 31 00:44:13 2007 +0000
@@ -1,5 +1,5 @@
 /**
- * @test @(#)Unchecked.java	1.3 06/11/01  /nodynamiccopyright/
+ * @test  /nodynamiccopyright/
  * @bug 4986256
  * @compile/ref=Unchecked.noLint.out -XDstdout                         -XDrawDiagnostics Unchecked.java
  * @compile/ref=Unchecked.lintUnchecked.out -XDstdout -Xlint:unchecked -XDrawDiagnostics Unchecked.java
--- a/j2se/test/tools/javadoc/BooleanConst.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/BooleanConst.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BooleanConst.java	1.7 07/05/05
+ * @test
  * @bug 4587494
  * @summary Constant field values for boolean Data-Types don't use true and false
  * @author gafter
--- a/j2se/test/tools/javadoc/BreakIteratorWarning.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/BreakIteratorWarning.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BreakIteratorWarning.java	1.4 07/05/05
+ * @test
  * @bug 4959985
  * @summary Verify that (verbose) warnings are no longer generated when
  *	    the default first-sentence algorithm doesn't match the
--- a/j2se/test/tools/javadoc/FlagsTooEarly.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/FlagsTooEarly.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)FlagsTooEarly.java	1.4 07/05/05
+ * @test
  * @bug 4904495
  * @summary Compilation may go awry if we ask a symbol for its flags during
  *	    javac's Enter phase, before the flags are generally available.
--- a/j2se/test/tools/javadoc/InlineTagsWithBraces.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/InlineTagsWithBraces.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)InlineTagsWithBraces.java	1.4 07/05/05
+ * @test
  * @bug 4965490
  * @summary Verify that matching braces can appear within inline tags.
  */
--- a/j2se/test/tools/javadoc/LangVers.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/LangVers.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)LangVers.java	1.4 07/05/05
+ * @test
  * @bug 4909767
  * @summary Verify that omitting Doclet.languageVersion() hides 1.5 language
  *	features from the doclet.
--- a/j2se/test/tools/javadoc/MethodLinks.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/MethodLinks.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)MethodLinks.java	1.4 07/05/05
+ * @test
  * @bug 4628281
  * @summary Int. links missing from return/param types when .java files passd in
  * @author gafter
--- a/j2se/test/tools/javadoc/NoStar.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/NoStar.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NoStar.java	1.6 07/05/05
+ * @test
  * @bug 4587562
  * @summary tool: Indentation messed up for javadoc comments omitting preceding *
  * @author gafter
--- a/j2se/test/tools/javadoc/T4994049/T4994049.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/T4994049/T4994049.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /**
- * @test    @(#)T4994049.java	1.5 07/05/05
+ * @test
  * @bug     4994049
  * @summary Unit test for SourcePosition.column with respect to tab expansion
  * @author  Peter von der Ah\u00e9
--- a/j2se/test/tools/javadoc/XWerror.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/XWerror.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)XWerror.java	1.4 07/05/05
+ * @test
  * @bug 4099527
  * @summary javadoc tool: want flag to exit nonzero if there were warnings.
  * @author gafter
--- a/j2se/test/tools/javadoc/annotations/annotateMethodsFields/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/annotations/annotateMethodsFields/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.6 07/05/05
+ * @test
  * @bug 4904495 5008037
  * @summary Test annotations of methods, fields, enum constants, and
  *	    annotation type elements.
--- a/j2se/test/tools/javadoc/annotations/annotatePackage/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/annotations/annotatePackage/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.5 07/05/05
+ * @test
  * @bug 5031168
  * @summary Test package annotations and package-info.java package comments.
  * @library ../../lib
--- a/j2se/test/tools/javadoc/annotations/annotateParams/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/annotations/annotateParams/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.5 07/05/05
+ * @test
  * @bug 5031171
  * @summary Test parameter annotations.
  * @library ../../lib
--- a/j2se/test/tools/javadoc/annotations/badVals/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/annotations/badVals/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.4 07/05/05
+ * @test
  * @bug 5029874
  * @summary Verify that bad annotation values don't result in NPE
  * @library ../../lib
--- a/j2se/test/tools/javadoc/annotations/defaults/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/annotations/defaults/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.5 07/05/05
+ * @test
  * @bug 4904495
  * @summary Test an annotation type with default element values, and
  *	    annotations that use them.
--- a/j2se/test/tools/javadoc/annotations/elementTypes/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/annotations/elementTypes/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.6 07/05/05
+ * @test
  * @bug 4904495
  * @summary Test an annotation type and annotations with elements of various
  *	    types.
--- a/j2se/test/tools/javadoc/annotations/shortcuts/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/annotations/shortcuts/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.4 07/05/05
+ * @test
  * @bug 4904495
  * @summary Verify that "shortcuts" are used when printing annotations.
  * @library ../../lib
--- a/j2se/test/tools/javadoc/badSuper/BadSuper.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/badSuper/BadSuper.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)BadSuper.java	1.4 07/05/05
+ * @test
  * @bug 4983023
  * @summary A bad superclass shouldn't throw the standard doclet into a loop
  */
--- a/j2se/test/tools/javadoc/completionFailure/CompletionFailure.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/completionFailure/CompletionFailure.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)CompletionFailure.java	1.6 07/05/05
+ * @test
  * @bug 4670772 6328529
  * @summary Completion failures should be ignored in javadoc.
  * @author gafter
--- a/j2se/test/tools/javadoc/dupOk/DupOk.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/dupOk/DupOk.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)DupOk.java	1.6 07/05/05
+ * @test
  * @bug 4673477
  * @summary The first definition found for each class should be documented
  * @author gafter
--- a/j2se/test/tools/javadoc/enum/docComments/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/enum/docComments/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.4 07/05/05
+ * @test
  * @bug 4421066
  * @summary Verify the comments in an enum type.
  * @library ../../lib
--- a/j2se/test/tools/javadoc/enum/enumType/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/enum/enumType/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.4 07/05/05
+ * @test
  * @bug 4421066
  * @summary Verify the contents of an enum type.
  * @library ../../lib
--- a/j2se/test/tools/javadoc/generics/genericClass/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/generics/genericClass/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.4 07/05/05
+ * @test
  * @bug 4421066
  * @summary Verify the contents of the ClassDoc of a generic class.
  * @library ../../lib
--- a/j2se/test/tools/javadoc/generics/genericInnerAndOuter/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/generics/genericInnerAndOuter/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.5 07/05/05
+ * @test
  * @bug 4421066
  * @summary Verify the contents of the ClassDoc of
  *	    a generic class with a generic inner class.
--- a/j2se/test/tools/javadoc/generics/genericInterface/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/generics/genericInterface/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.4 07/05/05
+ * @test
  * @bug 4421066
  * @summary Verify the contents of the ClassDoc of a generic interface.
  * @library ../../lib
--- a/j2se/test/tools/javadoc/generics/genericMethod/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/generics/genericMethod/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.4 07/05/05
+ * @test
  * @bug 4421066
  * @summary Verify the reading of generic methods and constructors.
  * @library ../../lib
--- a/j2se/test/tools/javadoc/generics/genericSuper/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/generics/genericSuper/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.5 07/05/05
+ * @test
  * @bug 4421066
  * @summary Verify the contents of the ClassDoc of a generic class.
  * @library ../../lib
--- a/j2se/test/tools/javadoc/generics/supertypes/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/generics/supertypes/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.5 07/05/05
+ * @test
  * @bug 4922918
  * @summary Check supertypes and superinterfaces of parameterized types.
  * @library ../../lib
--- a/j2se/test/tools/javadoc/generics/throwsGeneric/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/generics/throwsGeneric/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.4 07/05/05
+ * @test
  * @bug 4421066
  * @summary Verify the reading of generic methods and constructors.
  * @library ../../lib
--- a/j2se/test/tools/javadoc/generics/tparamCycle/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/generics/tparamCycle/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.4 07/05/05
+ * @test
  * @bug 4421066
  * @summary Check a type parameter whose bound cycles back on itself.
  * @library ../../lib
--- a/j2se/test/tools/javadoc/generics/tparamTagOnMethod/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/generics/tparamTagOnMethod/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.4 07/05/05
+ * @test
  * @bug 4421066
  * @summary Verify the reading of type parameter tags on methods.
  * @library ../../lib
--- a/j2se/test/tools/javadoc/generics/tparamTagOnType/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/generics/tparamTagOnType/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.4 07/05/05
+ * @test
  * @bug 4421066
  * @summary Verify the reading of a type parameter tag on an interface.
  * @library ../../lib
--- a/j2se/test/tools/javadoc/generics/wildcards/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/generics/wildcards/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.4 07/05/05
+ * @test
  * @bug 4421066
  * @summary Verify the contents of the ClassDoc of a generic class.
  * @library ../../lib
--- a/j2se/test/tools/javadoc/imports/MissingImport.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/imports/MissingImport.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)MissingImport.java	1.4 07/05/05
+ * @test
  * @bug 5012972
  * @summary ClassDoc.getImportedClasses should return a class even if
  *	    it's not in the classpath.
--- a/j2se/test/tools/javadoc/lib/Tester.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/lib/Tester.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,12 +22,9 @@
  */
 
 /*
- * @(#)Tester.java	1.10 07/05/05
- *
  * A utility used to invoke and test the javadoc tool.
  *
  * @author Scott Seligman
- * @version 1.10 07/05/05
  */
 
 
--- a/j2se/test/tools/javadoc/nestedClass/NestedClass.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/nestedClass/NestedClass.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)NestedClass.java	1.4 07/05/05
+ * @test
  * @bug 4694497
  * @summary BDoclet API: Bad ClassDoc for nested classes when built from .class files
  * @author gafter
--- a/j2se/test/tools/javadoc/outputRedirect/OutputRedirect.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/outputRedirect/OutputRedirect.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -21,7 +21,7 @@
 # have any questions.
 #
 
-# @test @(#)OutputRedirect.sh	1.6 07/05/05
+# @test
 # @bug 4587487
 # @summary com.sun.tools.javadoc.Main.execute ignores PrintWriters
 # @author gafter
--- a/j2se/test/tools/javadoc/sourceOnly/SourceOnly.sh	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/sourceOnly/SourceOnly.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -21,7 +21,7 @@
 # have any questions.
 #
 
-# @test @(#)SourceOnly.sh	1.4 07/05/05
+# @test
 # @bug 4548768
 # @summary Javadoc in JDK 1.4 uses classpath and not just source dir
 # @author gafter
--- a/j2se/test/tools/javadoc/subpackageIgnore/SubpackageIgnore.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/subpackageIgnore/SubpackageIgnore.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)SubpackageIgnore.java	1.5 07/05/05
+ * @test
  * @bug 4773013
  * @summary When hunting subpackages, silently ignore any directory name that
  *	    can't be part of a subpackage.
--- a/j2se/test/tools/javadoc/varArgs/Main.java	Fri Aug 17 01:47:29 2007 +0000
+++ b/j2se/test/tools/javadoc/varArgs/Main.java	Fri Aug 31 00:44:13 2007 +0000
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test @(#)Main.java	1.5 07/05/05
+ * @test
  * @bug 4421066 5006659
  * @summary Verify the contents of a ClassDoc containing a varArgs method.
  *	    Verify that see/link tags can use "..." notation.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javah/6257087/foo.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2006-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+class foo {
+    class bar {
+	public native void aardvark();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javah/6257087/foo.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,47 @@
+#! /bin/sh -f
+# 
+# @test
+# @bug 6257087
+# @run shell foo.sh
+
+
+TS=${TESTSRC-.}
+TC=${TESTCLASSES-.}
+
+if [ "${TESTJAVA}" = "" ]
+then
+  echo "TESTJAVA not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
+  SunOS | Linux )
+    NULL=/dev/null
+    PS=":"
+    FS="/"
+    ;;
+  Windows* )
+    NULL=NUL
+    PS=";"
+    FS="\\"
+    ;;
+  * )
+    echo "Unrecognized system!"
+    exit 1;
+    ;;
+esac
+
+${TESTJAVA}${FS}bin${FS}javac -d ${TC} ${TS}${FS}foo.java > ${NULL}
+${TESTJAVA}${FS}bin${FS}javah -classpath ${TC} -d ${TC} foo
+diff -c ${TS}${FS}foo_bar.h ${TC}${FS}foo_bar.h
+result=$?
+
+if [ $result -eq 0 ]
+then
+  echo "Passed"
+else
+  echo "Failed"
+fi
+exit $result
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javah/6257087/foo_bar.h	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,21 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class foo_bar */
+
+#ifndef _Included_foo_bar
+#define _Included_foo_bar
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class:     foo_bar
+ * Method:    aardvark
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_foo_00024bar_aardvark
+  (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javah/ConstMacroTest.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,75 @@
+#!/bin/sh
+# @test	
+#
+
+# @bug 4786406 4781221 4780341 6214324
+#
+# Validates rewritten javah handling of class defined constants
+# and ensures that the appropriate macro definitions are placed
+# in the generated header file.
+
+if [ "${TESTSRC}" = "" ]
+then
+  echo "TESTSRC not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+echo "TESTSRC=${TESTSRC}"
+if [ "${TESTJAVA}" = "" ]
+then
+  echo "TESTJAVA not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+echo "TESTJAVA=${TESTJAVA}"
+if [ "${TESTCLASSES}" = "" ]
+then
+  echo "TESTCLASSES not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+echo "TESTCLASSES=${TESTCLASSES}"
+echo "CLASSPATH=${CLASSPATH}"
+
+EXPECTED_JAVAH_OUT_FILE=SubClassConsts.out
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
+  SunOS | Linux )
+    NULL=/dev/null
+    PS=":"
+    FS="/"
+    ;;
+  Windows* )
+    NULL=NUL
+    PS=";"
+    FS="\\"
+    EXPECTED_JAVAH_OUT_FILE=SubClassConsts.win
+    ;;
+  * )
+    echo "Unrecognized system!"
+    exit 1;
+    ;;
+ esac
+
+GENERATED_HEADER_FILE=SubClassConsts.h
+HEADER_FILE_FILTERED=SubClassConsts.h.linefeed-filtered
+
+rm -rf SuperClassConsts.class SubClassConsts.class
+
+cp ${TESTSRC}${FS}SuperClassConsts.java .
+cp ${TESTSRC}${FS}SubClassConsts.java .
+
+${TESTJAVA}${FS}bin${FS}javac -d . ${TESTSRC}${FS}SubClassConsts.java
+
+${TESTJAVA}${FS}bin${FS}javah SubClassConsts
+
+cmp  ${TESTSRC}${FS}${EXPECTED_JAVAH_OUT_FILE} ${GENERATED_HEADER_FILE}
+result=$?
+rm ${GENERATED_HEADER_FILE}
+
+if [ $result -eq 0 ]
+then
+  echo "Passed"
+else
+  echo "Failed"
+fi
+exit $result
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javah/MissingParamClassException.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * ParamClassTest has a native method param which subclasses
+ * this class
+ * 
+ */
+
+public class MissingParamClassException extends Exception {
+    public MissingParamClassException() {
+	System.out.println("MissingParamClassException constructor called");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javah/MissingParamClassTest.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,101 @@
+#!/bin/sh
+#
+# Verifies that javah won't attempt to generate a header file
+# if a native method in a supplied class contains a parameter
+# type whose corresponding class is missing or not in the 
+# classpath
+# @test	
+#
+# @bug 4942232
+
+TMP1=OUTPUT.txt
+
+if [ "${TESTSRC}" = "" ]
+then
+  echo "TESTSRC not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+echo "TESTSRC=${TESTSRC}"
+if [ "${TESTJAVA}" = "" ]
+then
+  echo "TESTJAVA not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+echo "TESTJAVA=${TESTJAVA}"
+if [ "${TESTCLASSES}" = "" ]
+then
+  echo "TESTCLASSES not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+echo "TESTCLASSES=${TESTCLASSES}"
+echo "CLASSPATH=${CLASSPATH}"
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
+  SunOS | Linux )
+    NULL=/dev/null
+    PS=":"
+    FS="/"
+    ;;
+  Windows* )
+    NULL=NUL
+    PS=";"
+    FS="\\"
+    ;;
+  * )
+    echo "Unrecognized system!"
+    exit 1;
+    ;;
+ esac
+
+GENERATED_HEADER_FILE=ParamClassTest.h
+
+rm -f ParamClassTest.class MissingParamClassException.class ParamClassTest.h
+rm -f ${TMP1}
+
+cp ${TESTSRC}${FS}ParamClassTest.java .
+cp ${TESTSRC}${FS}MissingParamClassException.java .
+
+${TESTJAVA}${FS}bin${FS}javac -d . ${TESTSRC}${FS}ParamClassTest.java
+
+# Before running javah remove dependent class file
+rm -f MissingParamClassException.class 
+
+${TESTJAVA}${FS}bin${FS}javah ParamClassTest 2>${TMP1}
+
+if [ -f $GENERATED_HEADER_FILE ]; then
+     echo "Failed"
+     exit 1
+fi
+if [ ! -f ${TMP1} ]; then
+     echo "Failed"
+     exit 1
+else
+     echo "Passed"
+     exit 0
+fi
+
+# Clean out work dir
+rm -f MissingParamClassException.class ParamClassTest.class
+rm -f $GENERATED_HEADER_FILE $TMP1 
+
+# Re-compile everything
+${TESTJAVA}${FS}bin${FS}javac -d . ${TESTSRC}${FS}ParamClassTest.java
+
+# Before re-run of javah remove dependent class file Param.class 
+rm -f Param.class
+
+${TESTJAVA}${FS}bin${FS}javah ParamClassTest 2>${TMP1}
+
+if [ -f $GENERATED_HEADER_FILE ]; then
+     echo "Failed"
+     exit 1
+fi
+if [ ! -f ${TMP1} ]; then
+     echo "Failed"
+     exit 1
+else
+     echo "Passed"
+     exit 0
+fi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javah/ParamClassTest.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * Class containing a native method which contains a native
+ * method with non primitive type
+ */
+
+public class ParamClassTest {
+    public native void method(Param s);
+
+    public static void main(String args[]) {
+    }
+}
+
+class Param extends MissingParamClassException {
+    Param() {
+	System.out.println("Param constructor");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javah/ReadOldClass.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,54 @@
+#
+# @test
+# @bug     4164450
+# @summary Ensure that javah/javadoc doesn't try to read (new) source files
+# @author  Peter von der Ah\u00e9
+# @run shell ReadOldClass.sh
+#
+
+TS=${TESTSRC-.}
+TC=${TESTCLASSES-.}
+
+if [ "${TESTJAVA}" = "" ]
+then
+  echo "TESTJAVA not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
+  SunOS | Linux )
+    NULL=/dev/null
+    PS=":"
+    FS="/"
+    ;;
+  Windows* )
+    NULL=NUL
+    PS=";"
+    FS="\\"
+    ;;
+  * )
+    echo "Unrecognized system!"
+    exit 1;
+    ;;
+esac
+
+cat > ${TC}/ReadOldClass.java <<EOF
+public class ReadOldClass {
+    public static void main(String[] args) {
+    }
+}
+EOF
+
+rm -f ${TC}/ReadOldClass.h
+
+set -e
+
+# compile the file
+${TESTJAVA}${FS}bin${FS}javac -d ${TC} ${TC}/ReadOldClass.java
+# ensure the source file is newer than the class file
+touch ${TC}/ReadOldClass.java
+${TESTJAVA}${FS}bin${FS}javah -jni -classpath ${TC} -d ${TC} ReadOldClass
+
+test -f ${TC}/ReadOldClass.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javah/SubClassConsts.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * Subclass defines its own set of constants
+ * It is itself serializable by virtue of extending SuperClassConsts
+ *
+ */
+public class SubClassConsts extends SuperClassConsts {
+
+    private final static int SUB_INT_CONSTANT = 2;
+    private final static double SUB_DOUBLE_CONSTANT = 2.25;
+    private final static float SUB_FLOAT_CONSTANT = 7.90f;
+    private final static boolean SUB_BOOLEAN_CONSTANT = true;
+
+    public SubClassConsts(String p) {
+	super(p);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javah/SubClassConsts.out	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,31 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class SubClassConsts */
+
+#ifndef _Included_SubClassConsts
+#define _Included_SubClassConsts
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef SubClassConsts_serialVersionUID
+#define SubClassConsts_serialVersionUID 6733861379283244755LL
+#undef SubClassConsts_SUPER_INT_CONSTANT
+#define SubClassConsts_SUPER_INT_CONSTANT 3L
+#undef SubClassConsts_SUPER_FLOAT_CONSTANT
+#define SubClassConsts_SUPER_FLOAT_CONSTANT 99.3f
+#undef SubClassConsts_SUPER_DOUBLE_CONSTANT
+#define SubClassConsts_SUPER_DOUBLE_CONSTANT 33.2
+#undef SubClassConsts_SUPER_BOOLEAN_CONSTANT
+#define SubClassConsts_SUPER_BOOLEAN_CONSTANT 0L
+#undef SubClassConsts_SUB_INT_CONSTANT
+#define SubClassConsts_SUB_INT_CONSTANT 2L
+#undef SubClassConsts_SUB_DOUBLE_CONSTANT
+#define SubClassConsts_SUB_DOUBLE_CONSTANT 2.25
+#undef SubClassConsts_SUB_FLOAT_CONSTANT
+#define SubClassConsts_SUB_FLOAT_CONSTANT 7.9f
+#undef SubClassConsts_SUB_BOOLEAN_CONSTANT
+#define SubClassConsts_SUB_BOOLEAN_CONSTANT 1L
+#ifdef __cplusplus
+}
+#endif
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javah/SubClassConsts.win	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,31 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class SubClassConsts */
+
+#ifndef _Included_SubClassConsts
+#define _Included_SubClassConsts
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef SubClassConsts_serialVersionUID
+#define SubClassConsts_serialVersionUID 6733861379283244755i64
+#undef SubClassConsts_SUPER_INT_CONSTANT
+#define SubClassConsts_SUPER_INT_CONSTANT 3L
+#undef SubClassConsts_SUPER_FLOAT_CONSTANT
+#define SubClassConsts_SUPER_FLOAT_CONSTANT 99.3f
+#undef SubClassConsts_SUPER_DOUBLE_CONSTANT
+#define SubClassConsts_SUPER_DOUBLE_CONSTANT 33.2
+#undef SubClassConsts_SUPER_BOOLEAN_CONSTANT
+#define SubClassConsts_SUPER_BOOLEAN_CONSTANT 0L
+#undef SubClassConsts_SUB_INT_CONSTANT
+#define SubClassConsts_SUB_INT_CONSTANT 2L
+#undef SubClassConsts_SUB_DOUBLE_CONSTANT
+#define SubClassConsts_SUB_DOUBLE_CONSTANT 2.25
+#undef SubClassConsts_SUB_FLOAT_CONSTANT
+#define SubClassConsts_SUB_FLOAT_CONSTANT 7.9f
+#undef SubClassConsts_SUB_BOOLEAN_CONSTANT
+#define SubClassConsts_SUB_BOOLEAN_CONSTANT 1L
+#ifdef __cplusplus
+}
+#endif
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javah/SuperClassConsts.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * Parent class implements serializable and provides static initializers
+ * for a bunch of primitive type class constants 
+ * (required for regtest 4786406, 4780341)
+ */
+
+import java.io.*;
+
+public class SuperClassConsts implements Serializable {
+
+    // Define class constant values, base class is serializable 
+
+    private static final long serialVersionUID = 6733861379283244755L;
+    public static final int SUPER_INT_CONSTANT = 3;
+    public final static float SUPER_FLOAT_CONSTANT = 99.3f;
+    public final static double SUPER_DOUBLE_CONSTANT  = 33.2;
+    public final static boolean SUPER_BOOLEAN_CONSTANT  = false;
+
+    // A token instance field
+    int instanceField;
+
+    public SuperClassConsts(String p) {
+    }
+	
+    public native int numValues();
+
+    private void writeObject(ObjectOutputStream s)
+        throws IOException
+    {
+	System.err.println("writing state");
+    }
+
+    /**
+     * readObject is called to restore the state of the FilePermission from
+     * a stream.
+     */
+    private void readObject(ObjectInputStream s)
+         throws IOException, ClassNotFoundException
+    {
+	System.err.println("reading back state");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javap/ExtPath.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2006-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/**
+ * @test
+ * @bug     6428896
+ * @summary javap cannot read multiple entries on the extension classpath
+ * @author  Wei Tao
+ * @run main/othervm ExtPath com.sun.crypto.provider.SunJCE
+ */
+
+import sun.tools.javap.Main;
+import java.io.*;
+
+public class ExtPath {
+    public static void main(String[] args) {
+        Main.entry(args);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javap/NotPackagePrivateInterface.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+/*
+ * This class is used by PublicInterfaceTest.sh to generate a class
+ * file with a public interface to verify javap will output the
+ * "public" modifier for such interfaces.  (At the vm level, the only
+ * access control properties an interface can can have are public and
+ * package private.)
+ */
+
+public interface NotPackagePrivateInterface {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javap/PublicInterfaceTest.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,37 @@
+# @test
+# @bug 4866831
+# @build NotPackagePrivateInterface
+# @run shell PublicInterfaceTest.sh
+# @summary Verify that javap marks public interfaces as public
+# @author Joseph D. Darcy
+
+# Verify directory context variables are set
+if [ "${TESTJAVA}" = "" ]
+then
+  echo "TESTJAVA not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+
+if [ "${TESTCLASSES}" = "" ]
+then
+  echo "TESTCLASSES not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+
+JAVAP="${TESTJAVA}/bin/javap -classpath ${TESTCLASSES} "
+
+$JAVAP NotPackagePrivateInterface | grep public
+
+# If the exit status of grep is 0, then "public" was correctly found
+# in the output of javap.
+
+RESULT=$?
+case "$RESULT" in
+        0  )
+	exit 0;
+        ;;
+
+        * )
+        echo "The javap tool did not output \"public\" for a public interface."
+        exit 1
+esac
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javap/pathsep.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,39 @@
+#!/bin/sh
+# @test
+# @bug 4798312
+# @summary In Windows, javap doesnt load classes from rt.jar
+# @author gafter
+#
+# @run shell pathsep.sh
+
+if [ "${TESTJAVA}" = "" ]
+then
+  echo "TESTJAVA not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+echo "TESTJAVA=${TESTJAVA}"
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
+  SunOS | Linux )
+    FS="/"
+    ;;
+  Windows* )
+    FS="\\"
+    ;;
+  * )
+    echo "Unrecognized system!"
+    exit 1;
+    ;;
+esac
+
+${TESTJAVA}${FS}bin${FS}javap java.lang.String
+result=$?
+if [ $result -eq 0 ]
+then
+  echo "Passed"
+else
+  echo "Failed"
+fi
+exit $result
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javap/stackmap/T6271292.java	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2005-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+
+public class T6271292 extends SuperClass {
+
+    public static void main(String[] args) {
+        SuperClass s = new SuperClass((args[0].equals("0")) ? 0 : 1);
+        s.test();
+    }
+    T6271292(boolean b) {
+        super(b ? 1 : 2);
+    }
+}
+
+class SuperClass {
+    double d;
+    SuperClass(double dd) { d = dd; }
+    
+    double test() {
+        if (d == 0) {
+            return d;
+        } else if (d > 0) {
+            return d++;
+        } else {
+            return d--;
+        }
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javap/stackmap/T6271292.out	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,14 @@
+   frame_type = 255 /* full_frame */
+   frame_type = 255 /* full_frame */
+   frame_type = 73 /* same_locals_1_stack_item */
+   frame_type = 255 /* full_frame */
+     offset_delta = 19
+     offset_delta = 0
+     offset_delta = 2
+     stack = [ uninitialized 0, uninitialized 0 ]
+     stack = [ uninitialized 0, uninitialized 0, double ]
+     stack = [ this ]
+     stack = [ this, double ]
+     locals = [ class "[Ljava/lang/String;" ]
+     locals = [ class "[Ljava/lang/String;" ]
+     locals = [ this, int ]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/j2se/test/tools/javap/stackmap/T6271292.sh	Fri Aug 31 00:44:13 2007 +0000
@@ -0,0 +1,63 @@
+# @test
+# @bug 6271292
+# @compile T6271292.java
+# @run shell T6271292.sh
+# @summary Verify that javap prints StackMapTable attribute contents
+# @author Wei Tao
+    
+if [ "${TESTSRC}" = "" ]
+then
+  echo "TESTSRC not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+printf 'TESTSRC="%s"' "${TESTSRC}" >&2 ; echo >&2
+if [ "${TESTJAVA}" = "" ]
+then
+  echo "TESTJAVA not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+printf 'TESTJAVA="%s"' "${TESTJAVA}" >&2 ; echo >&2
+if [ "${TESTCLASSES}" = "" ]
+then
+  echo "TESTCLASSES not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+printf 'TESTCLASSES="%s"' "${TESTCLASSES}" >&2 ; echo >&2
+printf 'CLASSPATH="%s"' "${CLASSPATH}" >&2 ; echo >&2
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
+  CYGWIN* | Windows* )
+    FS="\\"
+    ;;
+  * )
+    FS="/"
+    ;;
+esac
+
+JAVAPFILE=T6271292.javap
+OUTFILE=outfile
+
+"${TESTJAVA}${FS}bin${FS}javap" -classpath "${TESTCLASSES}" -verbose T6271292 > "${JAVAPFILE}"
+result="$?"
+if [ "$result" -ne 0 ] 
+then
+  exit "$result"
+fi
+
+grep "frame_type" "${JAVAPFILE}" > "${OUTFILE}"
+grep "offset_delta" "${JAVAPFILE}" >> "${OUTFILE}"
+grep "stack = " "${JAVAPFILE}" >> "${OUTFILE}"
+grep "locals = " "${JAVAPFILE}" >> "${OUTFILE}"
+diff "${OUTFILE}" "${TESTSRC}${FS}T6271292.out"
+result="$?"
+if [ "$result" -eq 0 ]
+then
+  echo "Passed"
+else
+  echo "Failed"
+fi
+exit "$result"
+
+